@wordpress/block-editor 9.0.0 → 9.3.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 (685) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -0
  3. package/build/autocompleters/block.js +3 -1
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-actions/index.js.map +1 -1
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-matrix-control/index.js +4 -13
  8. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js.map +1 -1
  10. package/build/components/block-content-overlay/index.js +4 -82
  11. package/build/components/block-content-overlay/index.js.map +1 -1
  12. package/build/components/block-context/index.js.map +1 -1
  13. package/build/components/block-controls/hook.js.map +1 -1
  14. package/build/components/block-draggable/draggable-chip.native.js +65 -0
  15. package/build/components/block-draggable/draggable-chip.native.js.map +1 -0
  16. package/build/components/block-draggable/dropping-insertion-point.native.js +157 -0
  17. package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  18. package/build/components/block-draggable/index.js.map +1 -1
  19. package/build/components/block-draggable/index.native.js +488 -0
  20. package/build/components/block-draggable/index.native.js.map +1 -0
  21. package/build/components/block-draggable/use-scroll-when-dragging.native.js +130 -0
  22. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  23. package/build/components/block-list/block-list-context.native.js +195 -0
  24. package/build/components/block-list/block-list-context.native.js.map +1 -0
  25. package/build/components/block-list/block-list-item-cell.native.js +67 -0
  26. package/build/components/block-list/block-list-item-cell.native.js.map +1 -0
  27. package/build/components/block-list/block-list-item.native.js +12 -9
  28. package/build/components/block-list/block-list-item.native.js.map +1 -1
  29. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  30. package/build/components/block-list/block.js.map +1 -1
  31. package/build/components/block-list/block.native.js +27 -5
  32. package/build/components/block-list/block.native.js.map +1 -1
  33. package/build/components/block-list/index.js +34 -32
  34. package/build/components/block-list/index.js.map +1 -1
  35. package/build/components/block-list/index.native.js +75 -23
  36. package/build/components/block-list/index.native.js.map +1 -1
  37. package/build/components/block-list/use-block-props/index.js +8 -4
  38. package/build/components/block-list/use-block-props/index.js.map +1 -1
  39. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  40. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  41. package/build/components/block-list/use-in-between-inserter.js +1 -1
  42. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  43. package/build/components/block-list-appender/index.js.map +1 -1
  44. package/build/components/block-list-appender/index.native.js.map +1 -1
  45. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  46. package/build/components/block-mobile-toolbar/index.native.js +10 -3
  47. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  48. package/build/components/block-mover/button.js.map +1 -1
  49. package/build/components/block-mover/index.native.js +17 -4
  50. package/build/components/block-mover/index.native.js.map +1 -1
  51. package/build/components/block-parent-selector/index.js.map +1 -1
  52. package/build/components/block-pattern-setup/index.js +1 -1
  53. package/build/components/block-pattern-setup/index.js.map +1 -1
  54. package/build/components/block-popover/inbetween.js +19 -8
  55. package/build/components/block-popover/inbetween.js.map +1 -1
  56. package/build/components/block-popover/index.js +5 -16
  57. package/build/components/block-popover/index.js.map +1 -1
  58. package/build/components/block-preview/auto.js.map +1 -1
  59. package/build/components/block-preview/index.js +1 -1
  60. package/build/components/block-preview/index.js.map +1 -1
  61. package/build/components/block-selection-clearer/index.js.map +1 -1
  62. package/build/components/block-settings-menu/block-mode-toggle.js +3 -7
  63. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  64. package/build/components/block-settings-menu/block-settings-dropdown.js +6 -3
  65. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  66. package/build/components/block-styles/index.js +6 -3
  67. package/build/components/block-styles/index.js.map +1 -1
  68. package/build/components/block-styles/menu-items.js +3 -7
  69. package/build/components/block-styles/menu-items.js.map +1 -1
  70. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  71. package/build/components/block-toolbar/index.native.js.map +1 -1
  72. package/build/components/block-toolbar/utils.js +5 -8
  73. package/build/components/block-toolbar/utils.js.map +1 -1
  74. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  75. package/build/components/block-tools/block-selection-button.js +1 -0
  76. package/build/components/block-tools/block-selection-button.js.map +1 -1
  77. package/build/components/block-tools/index.js.map +1 -1
  78. package/build/components/block-tools/selected-block-popover.js +1 -29
  79. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  80. package/build/components/block-types-list/index.native.js.map +1 -1
  81. package/build/components/block-variation-transforms/index.js +16 -2
  82. package/build/components/block-variation-transforms/index.js.map +1 -1
  83. package/build/components/border-radius-control/input-controls.js +10 -3
  84. package/build/components/border-radius-control/input-controls.js.map +1 -1
  85. package/build/components/color-style-selector/index.js.map +1 -1
  86. package/build/components/colors/with-colors.js.map +1 -1
  87. package/build/components/colors-gradients/dropdown.js +122 -41
  88. package/build/components/colors-gradients/dropdown.js.map +1 -1
  89. package/build/components/colors-gradients/panel-color-gradient-settings.js +35 -60
  90. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  91. package/build/components/convert-to-group-buttons/toolbar.js +22 -5
  92. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  93. package/build/components/copy-handler/index.js +17 -1
  94. package/build/components/copy-handler/index.js.map +1 -1
  95. package/build/components/default-block-appender/index.js.map +1 -1
  96. package/build/components/default-block-appender/index.native.js.map +1 -1
  97. package/build/components/default-style-picker/index.js.map +1 -1
  98. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  99. package/build/components/iframe/index.js +51 -50
  100. package/build/components/iframe/index.js.map +1 -1
  101. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  102. package/build/components/image-editor/use-save-image.js +3 -1
  103. package/build/components/image-editor/use-save-image.js.map +1 -1
  104. package/build/components/image-size-control/index.js +3 -1
  105. package/build/components/image-size-control/index.js.map +1 -1
  106. package/build/components/index.js +31 -13
  107. package/build/components/index.js.map +1 -1
  108. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  109. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  110. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  111. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  112. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  113. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  114. package/build/components/inserter/index.js.map +1 -1
  115. package/build/components/inserter/index.native.js +1 -1
  116. package/build/components/inserter/index.native.js.map +1 -1
  117. package/build/components/inserter/library.js +3 -7
  118. package/build/components/inserter/library.js.map +1 -1
  119. package/build/components/inserter/menu.js.map +1 -1
  120. package/build/components/inserter/menu.native.js.map +1 -1
  121. package/build/components/inserter/no-results.native.js.map +1 -1
  122. package/build/components/inserter/quick-inserter.js.map +1 -1
  123. package/build/components/inserter/search-items.js +1 -1
  124. package/build/components/inserter/search-items.js.map +1 -1
  125. package/build/components/inserter/search-results.native.js.map +1 -1
  126. package/build/components/inspector-popover-header/index.js +56 -0
  127. package/build/components/inspector-popover-header/index.js.map +1 -0
  128. package/build/components/line-height-control/index.js.map +1 -1
  129. package/build/components/link-control/constants.js +11 -1
  130. package/build/components/link-control/constants.js.map +1 -1
  131. package/build/components/link-control/index.js +4 -4
  132. package/build/components/link-control/index.js.map +1 -1
  133. package/build/components/link-control/search-create-button.js +1 -3
  134. package/build/components/link-control/search-create-button.js.map +1 -1
  135. package/build/components/link-control/search-input.js +5 -3
  136. package/build/components/link-control/search-input.js.map +1 -1
  137. package/build/components/link-control/search-results.js +4 -3
  138. package/build/components/link-control/search-results.js.map +1 -1
  139. package/build/components/link-control/settings-drawer.js +3 -7
  140. package/build/components/link-control/settings-drawer.js.map +1 -1
  141. package/build/components/link-control/use-search-handler.js +4 -4
  142. package/build/components/link-control/use-search-handler.js.map +1 -1
  143. package/build/components/list-view/block-contents.js.map +1 -1
  144. package/build/components/list-view/branch.js.map +1 -1
  145. package/build/components/list-view/drop-indicator.js +0 -1
  146. package/build/components/list-view/drop-indicator.js.map +1 -1
  147. package/build/components/list-view/index.js.map +1 -1
  148. package/build/components/list-view/use-block-selection.js.map +1 -1
  149. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  150. package/build/components/list-view/utils.js +1 -7
  151. package/build/components/list-view/utils.js.map +1 -1
  152. package/build/components/media-placeholder/index.js +4 -6
  153. package/build/components/media-placeholder/index.js.map +1 -1
  154. package/build/components/media-replace-flow/index.js +20 -7
  155. package/build/components/media-replace-flow/index.js.map +1 -1
  156. package/build/components/media-upload/index.native.js +10 -4
  157. package/build/components/media-upload/index.native.js.map +1 -1
  158. package/build/components/navigable-toolbar/index.js +12 -2
  159. package/build/components/navigable-toolbar/index.js.map +1 -1
  160. package/build/components/plain-text/index.native.js +62 -7
  161. package/build/components/plain-text/index.native.js.map +1 -1
  162. package/build/components/preview-options/index.js +4 -0
  163. package/build/components/preview-options/index.js.map +1 -1
  164. package/build/components/provider/use-block-sync.js +5 -3
  165. package/build/components/provider/use-block-sync.js.map +1 -1
  166. package/build/components/publish-date-time-picker/index.js +53 -0
  167. package/build/components/publish-date-time-picker/index.js.map +1 -0
  168. package/build/components/rich-text/embed-handler-picker.native.js +4 -8
  169. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  170. package/build/components/rich-text/format-toolbar-container.js +0 -1
  171. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  172. package/build/components/rich-text/index.js +2 -2
  173. package/build/components/rich-text/index.js.map +1 -1
  174. package/build/components/rich-text/index.native.js +5 -1
  175. package/build/components/rich-text/index.native.js.map +1 -1
  176. package/build/components/rich-text/use-format-types.js.map +1 -1
  177. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  178. package/build/components/skip-to-selected-block/index.js.map +1 -1
  179. package/build/components/ungroup-button/index.native.js +3 -7
  180. package/build/components/ungroup-button/index.native.js.map +1 -1
  181. package/build/components/url-input/index.js +18 -4
  182. package/build/components/url-input/index.js.map +1 -1
  183. package/build/components/use-block-display-information/index.js.map +1 -1
  184. package/build/components/use-block-drop-zone/index.js.map +1 -1
  185. package/build/components/use-block-drop-zone/index.native.js +167 -0
  186. package/build/components/use-block-drop-zone/index.native.js.map +1 -0
  187. package/build/components/use-display-block-controls/index.native.js.map +1 -1
  188. package/build/components/use-on-block-drop/index.js.map +1 -1
  189. package/build/components/use-on-block-drop/index.native.js +95 -0
  190. package/build/components/use-on-block-drop/index.native.js.map +1 -0
  191. package/build/components/use-setting/index.js.map +1 -1
  192. package/build/components/warning/index.js +6 -1
  193. package/build/components/warning/index.js.map +1 -1
  194. package/build/components/writing-flow/use-arrow-nav.js +12 -12
  195. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  196. package/build/components/writing-flow/use-click-selection.js.map +1 -1
  197. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  198. package/build/components/writing-flow/use-input.js +15 -0
  199. package/build/components/writing-flow/use-input.js.map +1 -1
  200. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  201. package/build/components/writing-flow/use-select-all.js.map +1 -1
  202. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  203. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  204. package/build/elements/index.js +9 -0
  205. package/build/elements/index.js.map +1 -0
  206. package/build/hooks/anchor.js.map +1 -1
  207. package/build/hooks/border.js +2 -7
  208. package/build/hooks/border.js.map +1 -1
  209. package/build/hooks/color-panel.js +14 -7
  210. package/build/hooks/color-panel.js.map +1 -1
  211. package/build/hooks/color-panel.native.js.map +1 -1
  212. package/build/hooks/color.js +8 -88
  213. package/build/hooks/color.js.map +1 -1
  214. package/build/hooks/dimensions.js +14 -4
  215. package/build/hooks/dimensions.js.map +1 -1
  216. package/build/hooks/font-family.js.map +1 -1
  217. package/build/hooks/gap.js.map +1 -1
  218. package/build/hooks/layout.js +38 -1
  219. package/build/hooks/layout.js.map +1 -1
  220. package/build/hooks/style.js +14 -13
  221. package/build/hooks/style.js.map +1 -1
  222. package/build/hooks/typography.js +6 -2
  223. package/build/hooks/typography.js.map +1 -1
  224. package/build/index.js +14 -0
  225. package/build/index.js.map +1 -1
  226. package/build/layouts/flex.js +5 -2
  227. package/build/layouts/flex.js.map +1 -1
  228. package/build/store/actions.js +14 -0
  229. package/build/store/actions.js.map +1 -1
  230. package/build/store/reducer.js +17 -2
  231. package/build/store/reducer.js.map +1 -1
  232. package/build/store/selectors.js +30 -2
  233. package/build/store/selectors.js.map +1 -1
  234. package/build/utils/pasting.js.map +1 -1
  235. package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
  236. package/build-module/autocompleters/block.js +4 -1
  237. package/build-module/autocompleters/block.js.map +1 -1
  238. package/build-module/components/block-actions/index.js.map +1 -1
  239. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  240. package/build-module/components/block-alignment-matrix-control/index.js +3 -11
  241. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  242. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  243. package/build-module/components/block-content-overlay/index.js +3 -78
  244. package/build-module/components/block-content-overlay/index.js.map +1 -1
  245. package/build-module/components/block-context/index.js.map +1 -1
  246. package/build-module/components/block-controls/hook.js.map +1 -1
  247. package/build-module/components/block-draggable/draggable-chip.native.js +51 -0
  248. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -0
  249. package/build-module/components/block-draggable/dropping-insertion-point.native.js +137 -0
  250. package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  251. package/build-module/components/block-draggable/index.js.map +1 -1
  252. package/build-module/components/block-draggable/index.native.js +453 -0
  253. package/build-module/components/block-draggable/index.native.js.map +1 -0
  254. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +120 -0
  255. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  256. package/build-module/components/block-list/block-list-context.native.js +179 -0
  257. package/build-module/components/block-list/block-list-context.native.js.map +1 -0
  258. package/build-module/components/block-list/block-list-item-cell.native.js +59 -0
  259. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -0
  260. package/build-module/components/block-list/block-list-item.native.js +12 -9
  261. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  262. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  263. package/build-module/components/block-list/block.js.map +1 -1
  264. package/build-module/components/block-list/block.native.js +26 -5
  265. package/build-module/components/block-list/block.native.js.map +1 -1
  266. package/build-module/components/block-list/index.js +35 -33
  267. package/build-module/components/block-list/index.js.map +1 -1
  268. package/build-module/components/block-list/index.native.js +72 -23
  269. package/build-module/components/block-list/index.native.js.map +1 -1
  270. package/build-module/components/block-list/use-block-props/index.js +9 -5
  271. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  272. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  273. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  274. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  275. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  276. package/build-module/components/block-list-appender/index.js.map +1 -1
  277. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  278. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  279. package/build-module/components/block-mobile-toolbar/index.native.js +9 -3
  280. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  281. package/build-module/components/block-mover/button.js.map +1 -1
  282. package/build-module/components/block-mover/index.native.js +18 -5
  283. package/build-module/components/block-mover/index.native.js.map +1 -1
  284. package/build-module/components/block-parent-selector/index.js.map +1 -1
  285. package/build-module/components/block-pattern-setup/index.js +1 -1
  286. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  287. package/build-module/components/block-popover/inbetween.js +19 -8
  288. package/build-module/components/block-popover/inbetween.js.map +1 -1
  289. package/build-module/components/block-popover/index.js +5 -15
  290. package/build-module/components/block-popover/index.js.map +1 -1
  291. package/build-module/components/block-preview/auto.js.map +1 -1
  292. package/build-module/components/block-preview/index.js +1 -1
  293. package/build-module/components/block-preview/index.js.map +1 -1
  294. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  295. package/build-module/components/block-settings-menu/block-mode-toggle.js +3 -5
  296. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  297. package/build-module/components/block-settings-menu/block-settings-dropdown.js +9 -3
  298. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  299. package/build-module/components/block-styles/index.js +5 -2
  300. package/build-module/components/block-styles/index.js.map +1 -1
  301. package/build-module/components/block-styles/menu-items.js +3 -5
  302. package/build-module/components/block-styles/menu-items.js.map +1 -1
  303. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  304. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  305. package/build-module/components/block-toolbar/utils.js +3 -5
  306. package/build-module/components/block-toolbar/utils.js.map +1 -1
  307. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  308. package/build-module/components/block-tools/block-selection-button.js +1 -0
  309. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  310. package/build-module/components/block-tools/index.js.map +1 -1
  311. package/build-module/components/block-tools/selected-block-popover.js +2 -29
  312. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  313. package/build-module/components/block-types-list/index.native.js.map +1 -1
  314. package/build-module/components/block-variation-transforms/index.js +13 -2
  315. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  316. package/build-module/components/border-radius-control/input-controls.js +11 -4
  317. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  318. package/build-module/components/color-style-selector/index.js.map +1 -1
  319. package/build-module/components/colors/with-colors.js.map +1 -1
  320. package/build-module/components/colors-gradients/dropdown.js +124 -43
  321. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  322. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +36 -64
  323. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  324. package/build-module/components/convert-to-group-buttons/toolbar.js +23 -6
  325. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  326. package/build-module/components/copy-handler/index.js +18 -2
  327. package/build-module/components/copy-handler/index.js.map +1 -1
  328. package/build-module/components/default-block-appender/index.js.map +1 -1
  329. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  330. package/build-module/components/default-style-picker/index.js.map +1 -1
  331. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  332. package/build-module/components/iframe/index.js +52 -51
  333. package/build-module/components/iframe/index.js.map +1 -1
  334. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  335. package/build-module/components/image-editor/use-save-image.js +2 -1
  336. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  337. package/build-module/components/image-size-control/index.js +4 -1
  338. package/build-module/components/image-size-control/index.js.map +1 -1
  339. package/build-module/components/index.js +4 -2
  340. package/build-module/components/index.js.map +1 -1
  341. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  342. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  343. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  344. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  345. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  346. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  347. package/build-module/components/inserter/index.js.map +1 -1
  348. package/build-module/components/inserter/index.native.js +1 -1
  349. package/build-module/components/inserter/index.native.js.map +1 -1
  350. package/build-module/components/inserter/library.js +2 -5
  351. package/build-module/components/inserter/library.js.map +1 -1
  352. package/build-module/components/inserter/menu.js.map +1 -1
  353. package/build-module/components/inserter/menu.native.js.map +1 -1
  354. package/build-module/components/inserter/no-results.native.js.map +1 -1
  355. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  356. package/build-module/components/inserter/search-items.js +2 -2
  357. package/build-module/components/inserter/search-items.js.map +1 -1
  358. package/build-module/components/inserter/search-results.native.js.map +1 -1
  359. package/build-module/components/inspector-popover-header/index.js +46 -0
  360. package/build-module/components/inspector-popover-header/index.js.map +1 -0
  361. package/build-module/components/line-height-control/index.js.map +1 -1
  362. package/build-module/components/link-control/constants.js +5 -0
  363. package/build-module/components/link-control/constants.js.map +1 -1
  364. package/build-module/components/link-control/index.js +2 -1
  365. package/build-module/components/link-control/index.js.map +1 -1
  366. package/build-module/components/link-control/search-create-button.js +1 -2
  367. package/build-module/components/link-control/search-create-button.js.map +1 -1
  368. package/build-module/components/link-control/search-input.js +3 -1
  369. package/build-module/components/link-control/search-input.js.map +1 -1
  370. package/build-module/components/link-control/search-results.js +3 -4
  371. package/build-module/components/link-control/search-results.js.map +1 -1
  372. package/build-module/components/link-control/settings-drawer.js +2 -5
  373. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  374. package/build-module/components/link-control/use-search-handler.js +5 -5
  375. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  376. package/build-module/components/list-view/block-contents.js.map +1 -1
  377. package/build-module/components/list-view/branch.js.map +1 -1
  378. package/build-module/components/list-view/drop-indicator.js +0 -1
  379. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  380. package/build-module/components/list-view/index.js.map +1 -1
  381. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  382. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  383. package/build-module/components/list-view/utils.js +1 -6
  384. package/build-module/components/list-view/utils.js.map +1 -1
  385. package/build-module/components/media-placeholder/index.js +2 -3
  386. package/build-module/components/media-placeholder/index.js.map +1 -1
  387. package/build-module/components/media-replace-flow/index.js +22 -9
  388. package/build-module/components/media-replace-flow/index.js.map +1 -1
  389. package/build-module/components/media-upload/index.native.js +8 -3
  390. package/build-module/components/media-upload/index.native.js.map +1 -1
  391. package/build-module/components/navigable-toolbar/index.js +12 -2
  392. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  393. package/build-module/components/plain-text/index.native.js +63 -8
  394. package/build-module/components/plain-text/index.native.js.map +1 -1
  395. package/build-module/components/preview-options/index.js +4 -0
  396. package/build-module/components/preview-options/index.js.map +1 -1
  397. package/build-module/components/provider/use-block-sync.js +4 -1
  398. package/build-module/components/provider/use-block-sync.js.map +1 -1
  399. package/build-module/components/publish-date-time-picker/index.js +40 -0
  400. package/build-module/components/publish-date-time-picker/index.js.map +1 -0
  401. package/build-module/components/rich-text/embed-handler-picker.native.js +3 -5
  402. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  403. package/build-module/components/rich-text/format-toolbar-container.js +0 -1
  404. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  405. package/build-module/components/rich-text/index.js +2 -2
  406. package/build-module/components/rich-text/index.js.map +1 -1
  407. package/build-module/components/rich-text/index.native.js +5 -1
  408. package/build-module/components/rich-text/index.native.js.map +1 -1
  409. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  410. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  411. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  412. package/build-module/components/ungroup-button/index.native.js +3 -5
  413. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  414. package/build-module/components/url-input/index.js +15 -2
  415. package/build-module/components/url-input/index.js.map +1 -1
  416. package/build-module/components/use-block-display-information/index.js.map +1 -1
  417. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  418. package/build-module/components/use-block-drop-zone/index.native.js +148 -0
  419. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -0
  420. package/build-module/components/use-display-block-controls/index.native.js.map +1 -1
  421. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  422. package/build-module/components/use-on-block-drop/index.native.js +83 -0
  423. package/build-module/components/use-on-block-drop/index.native.js.map +1 -0
  424. package/build-module/components/use-setting/index.js.map +1 -1
  425. package/build-module/components/warning/index.js +6 -1
  426. package/build-module/components/warning/index.js.map +1 -1
  427. package/build-module/components/writing-flow/use-arrow-nav.js +12 -11
  428. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  429. package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
  430. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  431. package/build-module/components/writing-flow/use-input.js +15 -0
  432. package/build-module/components/writing-flow/use-input.js.map +1 -1
  433. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  434. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  435. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  436. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  437. package/build-module/elements/index.js +2 -0
  438. package/build-module/elements/index.js.map +1 -0
  439. package/build-module/hooks/anchor.js.map +1 -1
  440. package/build-module/hooks/border.js +2 -7
  441. package/build-module/hooks/border.js.map +1 -1
  442. package/build-module/hooks/color-panel.js +11 -6
  443. package/build-module/hooks/color-panel.js.map +1 -1
  444. package/build-module/hooks/color-panel.native.js.map +1 -1
  445. package/build-module/hooks/color.js +8 -88
  446. package/build-module/hooks/color.js.map +1 -1
  447. package/build-module/hooks/dimensions.js +14 -4
  448. package/build-module/hooks/dimensions.js.map +1 -1
  449. package/build-module/hooks/font-family.js.map +1 -1
  450. package/build-module/hooks/gap.js.map +1 -1
  451. package/build-module/hooks/layout.js +39 -2
  452. package/build-module/hooks/layout.js.map +1 -1
  453. package/build-module/hooks/style.js +15 -14
  454. package/build-module/hooks/style.js.map +1 -1
  455. package/build-module/hooks/typography.js +6 -2
  456. package/build-module/hooks/typography.js.map +1 -1
  457. package/build-module/index.js +1 -0
  458. package/build-module/index.js.map +1 -1
  459. package/build-module/layouts/flex.js +4 -2
  460. package/build-module/layouts/flex.js.map +1 -1
  461. package/build-module/store/actions.js +12 -0
  462. package/build-module/store/actions.js.map +1 -1
  463. package/build-module/store/reducer.js +17 -2
  464. package/build-module/store/reducer.js.map +1 -1
  465. package/build-module/store/selectors.js +25 -2
  466. package/build-module/store/selectors.js.map +1 -1
  467. package/build-module/utils/pasting.js.map +1 -1
  468. package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
  469. package/build-style/style-rtl.css +79 -197
  470. package/build-style/style.css +79 -197
  471. package/package.json +30 -30
  472. package/src/autocompleters/block.js +2 -1
  473. package/src/components/block-actions/index.js +2 -3
  474. package/src/components/block-alignment-control/ui.js +4 -6
  475. package/src/components/block-alignment-matrix-control/index.js +3 -9
  476. package/src/components/block-breadcrumb/index.js +2 -5
  477. package/src/components/block-compare/test/block-view.js +2 -1
  478. package/src/components/block-content-overlay/index.js +10 -100
  479. package/src/components/block-content-overlay/style.scss +2 -11
  480. package/src/components/block-context/index.js +4 -4
  481. package/src/components/block-controls/hook.js +2 -3
  482. package/src/components/block-draggable/draggable-chip.native.js +49 -0
  483. package/src/components/block-draggable/dropping-insertion-point.native.js +181 -0
  484. package/src/components/block-draggable/dropping-insertion-point.native.scss +8 -0
  485. package/src/components/block-draggable/index.js +6 -13
  486. package/src/components/block-draggable/index.native.js +454 -0
  487. package/src/components/block-draggable/style.native.scss +19 -0
  488. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +73 -0
  489. package/src/components/block-draggable/test/helpers.native.js +183 -0
  490. package/src/components/block-draggable/test/index.native.js +493 -0
  491. package/src/components/block-draggable/use-scroll-when-dragging.native.js +135 -0
  492. package/src/components/block-edit/test/edit.js +2 -1
  493. package/src/components/block-list/block-list-context.native.js +175 -0
  494. package/src/components/block-list/block-list-item-cell.native.js +49 -0
  495. package/src/components/block-list/block-list-item.native.js +11 -23
  496. package/src/components/block-list/block-selection-button.native.js +2 -3
  497. package/src/components/block-list/block.js +8 -10
  498. package/src/components/block-list/block.native.js +47 -23
  499. package/src/components/block-list/index.js +46 -47
  500. package/src/components/block-list/index.native.js +63 -31
  501. package/src/components/block-list/test/block-list-context.native.js +245 -0
  502. package/src/components/block-list/test/fixtures/block-list-context.native.js +79 -0
  503. package/src/components/block-list/use-block-props/index.js +16 -8
  504. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +2 -3
  505. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +2 -3
  506. package/src/components/block-list/use-in-between-inserter.js +3 -4
  507. package/src/components/block-list-appender/index.js +2 -5
  508. package/src/components/block-list-appender/index.native.js +2 -3
  509. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +4 -6
  510. package/src/components/block-mobile-toolbar/index.native.js +9 -1
  511. package/src/components/block-mover/button.js +2 -3
  512. package/src/components/block-mover/index.native.js +26 -12
  513. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +10 -0
  514. package/src/components/block-parent-selector/index.js +2 -3
  515. package/src/components/block-pattern-setup/index.js +3 -5
  516. package/src/components/block-popover/inbetween.js +21 -8
  517. package/src/components/block-popover/index.js +2 -16
  518. package/src/components/block-popover/style.scss +1 -0
  519. package/src/components/block-preview/auto.js +4 -8
  520. package/src/components/block-preview/index.js +1 -4
  521. package/src/components/block-selection-clearer/index.js +2 -3
  522. package/src/components/block-settings-menu/block-mode-toggle.js +4 -8
  523. package/src/components/block-settings-menu/block-settings-dropdown.js +9 -9
  524. package/src/components/block-styles/index.js +3 -1
  525. package/src/components/block-styles/menu-items.js +2 -5
  526. package/src/components/block-switcher/block-transformations-menu.js +2 -4
  527. package/src/components/block-switcher/style.scss +2 -39
  528. package/src/components/block-toolbar/index.native.js +2 -5
  529. package/src/components/block-toolbar/utils.js +3 -11
  530. package/src/components/block-tools/block-contextual-toolbar.js +2 -5
  531. package/src/components/block-tools/block-selection-button.js +1 -0
  532. package/src/components/block-tools/index.js +2 -3
  533. package/src/components/block-tools/selected-block-popover.js +1 -36
  534. package/src/components/block-tools/style.scss +1 -12
  535. package/src/components/block-types-list/index.native.js +2 -4
  536. package/src/components/block-variation-transforms/index.js +10 -8
  537. package/src/components/border-radius-control/input-controls.js +16 -8
  538. package/src/components/border-radius-control/style.scss +3 -2
  539. package/src/components/color-palette/test/control.js +2 -1
  540. package/src/components/color-style-selector/index.js +27 -28
  541. package/src/components/colors/test/with-colors.js +14 -14
  542. package/src/components/colors/with-colors.js +8 -12
  543. package/src/components/colors-gradients/dropdown.js +135 -62
  544. package/src/components/colors-gradients/panel-color-gradient-settings.js +30 -76
  545. package/src/components/colors-gradients/style.scss +52 -50
  546. package/src/components/colors-gradients/test/control.js +10 -10
  547. package/src/components/convert-to-group-buttons/toolbar.js +32 -19
  548. package/src/components/copy-handler/README.md +7 -2
  549. package/src/components/copy-handler/index.js +26 -6
  550. package/src/components/default-block-appender/index.js +4 -6
  551. package/src/components/default-block-appender/index.native.js +4 -9
  552. package/src/components/default-style-picker/index.js +20 -21
  553. package/src/components/duotone-control/style.scss +1 -7
  554. package/src/components/font-sizes/with-font-sizes.js +2 -3
  555. package/src/components/iframe/index.js +62 -54
  556. package/src/components/image-editor/aspect-ratio-dropdown.js +2 -6
  557. package/src/components/image-editor/use-save-image.js +2 -1
  558. package/src/components/image-size-control/index.js +4 -7
  559. package/src/components/index.js +4 -2
  560. package/src/components/inner-blocks/use-inner-block-template-sync.js +2 -3
  561. package/src/components/inner-blocks/use-nested-settings-update.js +6 -9
  562. package/src/components/inserter/block-types-tab.native.js +2 -3
  563. package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -3
  564. package/src/components/inserter/hooks/use-insertion-point.js +3 -2
  565. package/src/components/inserter/hooks/use-patterns-state.js +4 -5
  566. package/src/components/inserter/index.js +4 -6
  567. package/src/components/inserter/index.native.js +7 -12
  568. package/src/components/inserter/library.js +2 -5
  569. package/src/components/inserter/menu.js +14 -19
  570. package/src/components/inserter/menu.native.js +8 -6
  571. package/src/components/inserter/no-results.native.js +2 -1
  572. package/src/components/inserter/quick-inserter.js +2 -3
  573. package/src/components/inserter/search-items.js +6 -6
  574. package/src/components/inserter/search-results.native.js +4 -6
  575. package/src/components/inserter/style.scss +2 -1
  576. package/src/components/inspector-popover-header/README.md +76 -0
  577. package/src/components/inspector-popover-header/index.js +56 -0
  578. package/src/components/inspector-popover-header/style.scss +16 -0
  579. package/src/components/line-height-control/index.js +1 -2
  580. package/src/components/link-control/constants.js +11 -0
  581. package/src/components/link-control/index.js +4 -4
  582. package/src/components/link-control/search-create-button.js +4 -2
  583. package/src/components/link-control/search-input.js +3 -1
  584. package/src/components/link-control/search-results.js +4 -5
  585. package/src/components/link-control/settings-drawer.js +2 -5
  586. package/src/components/link-control/test/fixtures/index.js +3 -4
  587. package/src/components/link-control/test/index.js +24 -36
  588. package/src/components/link-control/use-search-handler.js +13 -7
  589. package/src/components/list-view/block-contents.js +2 -4
  590. package/src/components/list-view/branch.js +22 -23
  591. package/src/components/list-view/drop-indicator.js +0 -1
  592. package/src/components/list-view/index.js +4 -8
  593. package/src/components/list-view/style.scss +2 -1
  594. package/src/components/list-view/use-block-selection.js +5 -5
  595. package/src/components/list-view/use-list-view-drop-zone.js +2 -1
  596. package/src/components/list-view/utils.js +1 -6
  597. package/src/components/media-placeholder/index.js +2 -3
  598. package/src/components/media-replace-flow/index.js +77 -48
  599. package/src/components/media-upload/index.native.js +6 -2
  600. package/src/components/media-upload/test/index.native.js +31 -6
  601. package/src/components/navigable-toolbar/index.js +13 -4
  602. package/src/components/panel-color-settings/test/index.js +2 -1
  603. package/src/components/plain-text/index.native.js +60 -8
  604. package/src/components/preview-options/index.js +4 -0
  605. package/src/components/preview-options/style.scss +0 -4
  606. package/src/components/provider/use-block-sync.js +5 -2
  607. package/src/components/publish-date-time-picker/README.md +52 -0
  608. package/src/components/publish-date-time-picker/index.js +39 -0
  609. package/src/components/responsive-block-control/test/index.js +3 -2
  610. package/src/components/rich-text/embed-handler-picker.native.js +2 -5
  611. package/src/components/rich-text/format-toolbar-container.js +0 -1
  612. package/src/components/rich-text/index.js +10 -5
  613. package/src/components/rich-text/index.native.js +4 -0
  614. package/src/components/rich-text/style.scss +2 -8
  615. package/src/components/rich-text/use-format-types.js +16 -16
  616. package/src/components/rich-text/use-mark-persistent.js +2 -3
  617. package/src/components/skip-to-selected-block/index.js +2 -3
  618. package/src/components/ungroup-button/index.native.js +4 -8
  619. package/src/components/url-input/index.js +24 -21
  620. package/src/components/use-block-display-information/index.js +4 -6
  621. package/src/components/use-block-drop-zone/index.js +2 -3
  622. package/src/components/use-block-drop-zone/index.native.js +171 -0
  623. package/src/components/use-block-drop-zone/test/index.js +22 -23
  624. package/src/components/use-display-block-controls/index.native.js +2 -3
  625. package/src/components/use-no-recursive-renders/test/use-no-recursive-renders.js +2 -3
  626. package/src/components/use-on-block-drop/index.js +2 -5
  627. package/src/components/use-on-block-drop/index.native.js +115 -0
  628. package/src/components/use-setting/index.js +8 -6
  629. package/src/components/warning/index.js +47 -42
  630. package/src/components/warning/test/__snapshots__/index.js.snap +15 -6
  631. package/src/components/warning/test/index.js +1 -1
  632. package/src/components/writing-flow/test/index.js +22 -4
  633. package/src/components/writing-flow/use-arrow-nav.js +22 -10
  634. package/src/components/writing-flow/use-click-selection.js +2 -5
  635. package/src/components/writing-flow/use-drag-selection.js +6 -9
  636. package/src/components/writing-flow/use-input.js +12 -0
  637. package/src/components/writing-flow/use-multi-selection.js +2 -4
  638. package/src/components/writing-flow/use-select-all.js +2 -5
  639. package/src/components/writing-flow/use-selection-observer.js +4 -6
  640. package/src/components/writing-flow/use-tab-nav.js +2 -5
  641. package/src/elements/index.js +1 -0
  642. package/src/hooks/anchor.js +1 -1
  643. package/src/hooks/border.js +2 -11
  644. package/src/hooks/border.scss +0 -48
  645. package/src/hooks/color-panel.js +17 -13
  646. package/src/hooks/color-panel.native.js +2 -2
  647. package/src/hooks/color.js +7 -76
  648. package/src/hooks/color.scss +5 -58
  649. package/src/hooks/dimensions.js +11 -3
  650. package/src/hooks/font-family.js +4 -2
  651. package/src/hooks/gap.js +2 -3
  652. package/src/hooks/layout.js +54 -4
  653. package/src/hooks/style.js +25 -39
  654. package/src/hooks/test/align.js +2 -1
  655. package/src/hooks/test/generated-class-name.js +2 -5
  656. package/src/hooks/test/utils.js +2 -5
  657. package/src/hooks/typography.js +2 -0
  658. package/src/index.js +1 -0
  659. package/src/layouts/flex.js +11 -3
  660. package/src/store/actions.js +784 -728
  661. package/src/store/reducer.js +202 -178
  662. package/src/store/selectors.js +82 -54
  663. package/src/store/test/actions.js +2 -1
  664. package/src/store/test/reducer.js +8 -1
  665. package/src/store/test/selectors.js +17 -21
  666. package/src/style.scss +1 -1
  667. package/src/utils/pasting.js +3 -3
  668. package/src/utils/transform-styles/transforms/wrap.js +30 -28
  669. package/tsconfig.tsbuildinfo +1 -1
  670. package/build/components/colors/color-panel.js +0 -82
  671. package/build/components/colors/color-panel.js.map +0 -1
  672. package/build/components/colors/color-panel.native.js +0 -11
  673. package/build/components/colors/color-panel.native.js.map +0 -1
  674. package/build/components/colors-gradients/tools-panel-color-dropdown.js +0 -89
  675. package/build/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  676. package/build-module/components/colors/color-panel.js +0 -70
  677. package/build-module/components/colors/color-panel.js.map +0 -1
  678. package/build-module/components/colors/color-panel.native.js +0 -4
  679. package/build-module/components/colors/color-panel.native.js.map +0 -1
  680. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js +0 -75
  681. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  682. package/src/components/block-alignment-matrix-control/style.scss +0 -10
  683. package/src/components/colors/color-panel.js +0 -91
  684. package/src/components/colors/color-panel.native.js +0 -3
  685. package/src/components/colors-gradients/tools-panel-color-dropdown.js +0 -85
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/copy-handler/index.js"],"names":["useCallback","serialize","pasteHandler","store","blocksStore","documentHasSelection","documentHasUncollapsedSelection","useDispatch","useSelect","__","_n","sprintf","noticesStore","useRefEffect","getPasteEventData","blockEditorStore","useNotifyCopy","getBlockName","getBlockType","createSuccessNotice","eventType","selectedBlockClientIds","notice","length","clientId","title","type","useClipboardHandler","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","notifyCopy","node","handler","event","target","ownerDocument","hasSelection","contains","activeElement","eventDefaultPrevented","defaultPrevented","preventDefault","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","blocks","head","tail","inBetweenBlocks","slice","serialized","clipboardData","setData","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","plainText","html","HTML","mode","addEventListener","removeEventListener","CopyHandler","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport {\n\tserialize,\n\tpasteHandler,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getPasteEventData } from '../../utils/pasting';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback( ( eventType, selectedBlockClientIds ) => {\n\t\tlet notice = '';\n\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst title = getBlockType( getBlockName( clientId ) )?.title;\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t );\n\t\t} else {\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being cut.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t );\n\t\t}\n\t\tcreateSuccessNotice( notice, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}, [] );\n}\n\nexport function useClipboardHandler() {\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument );\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst eventDefaultPrevented = event.defaultPrevented;\n\t\t\tevent.preventDefault();\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [\n\t\t\t\t\t\t\thead,\n\t\t\t\t\t\t\ttail,\n\t\t\t\t\t\t] = __unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\t\t\t\t\tconst serialized = serialize( blocks );\n\n\t\t\t\t\tevent.clipboardData.setData( 'text/plain', serialized );\n\t\t\t\t\tevent.clipboardData.setData( 'text/html', serialized );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tif ( eventDefaultPrevented ) {\n\t\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst { plainText, html } = getPasteEventData( event );\n\t\t\t\tconst blocks = pasteHandler( {\n\t\t\t\t\tHTML: html,\n\t\t\t\t\tplainText,\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} );\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n\nfunction CopyHandler( { children } ) {\n\treturn <div ref={ useClipboardHandler() }>{ children }</div>;\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/copy-handler/README.md\n */\nexport default CopyHandler;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/copy-handler/index.js"],"names":["useCallback","serialize","pasteHandler","store","blocksStore","documentHasSelection","documentHasUncollapsedSelection","__unstableStripHTML","stripHTML","useDispatch","useSelect","__","_n","sprintf","noticesStore","useRefEffect","getPasteEventData","blockEditorStore","useNotifyCopy","getBlockName","getBlockType","createSuccessNotice","eventType","selectedBlockClientIds","notice","length","clientId","title","type","useClipboardHandler","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","notifyCopy","node","handler","event","target","ownerDocument","hasSelection","contains","activeElement","eventDefaultPrevented","defaultPrevented","preventDefault","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","blocks","head","tail","inBetweenBlocks","slice","serialized","clipboardData","setData","toPlainText","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","plainText","html","HTML","mode","addEventListener","removeEventListener","CopyHandler","children","replace","trim"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,oBAA5B;AACA,SACCC,SADD,EAECC,YAFD,EAGCC,KAAK,IAAIC,WAHV,QAIO,mBAJP;AAKA,SACCC,oBADD,EAECC,+BAFD,EAGCC,mBAAmB,IAAIC,SAHxB,QAIO,gBAJP;AAKA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,EAAT,EAAaC,EAAb,EAAiBC,OAAjB,QAAgC,iBAAhC;AACA,SAASV,KAAK,IAAIW,YAAlB,QAAsC,oBAAtC;AACA,SAASC,YAAT,QAA6B,oBAA7B;AAEA;AACA;AACA;;AACA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,SAASb,KAAK,IAAIc,gBAAlB,QAA0C,aAA1C;AAEA,OAAO,SAASC,aAAT,GAAyB;AAC/B,QAAM;AAAEC,IAAAA;AAAF,MAAmBT,SAAS,CAAEO,gBAAF,CAAlC;AACA,QAAM;AAAEG,IAAAA;AAAF,MAAmBV,SAAS,CAAEN,WAAF,CAAlC;AACA,QAAM;AAAEiB,IAAAA;AAAF,MAA0BZ,WAAW,CAAEK,YAAF,CAA3C;AAEA,SAAOd,WAAW,CAAE,CAAEsB,SAAF,EAAaC,sBAAb,KAAyC;AAC5D,QAAIC,MAAM,GAAG,EAAb;;AACA,QAAKD,sBAAsB,CAACE,MAAvB,KAAkC,CAAvC,EAA2C;AAAA;;AAC1C,YAAMC,QAAQ,GAAGH,sBAAsB,CAAE,CAAF,CAAvC;AACA,YAAMI,KAAK,oBAAGP,YAAY,CAAED,YAAY,CAAEO,QAAF,CAAd,CAAf,kDAAG,cAA0CC,KAAxD;AACAH,MAAAA,MAAM,GACLF,SAAS,KAAK,MAAd,GACGT,OAAO,EACP;AACAF,MAAAA,EAAE,CAAE,2BAAF,CAFK,EAGPgB,KAHO,CADV,GAMGd,OAAO,EACP;AACAF,MAAAA,EAAE,CAAE,0BAAF,CAFK,EAGPgB,KAHO,CAPX;AAYA,KAfD,MAeO;AACNH,MAAAA,MAAM,GACLF,SAAS,KAAK,MAAd,GACGT,OAAO,EACP;AACAD,MAAAA,EAAE,CACD,+BADC,EAED,gCAFC,EAGDW,sBAAsB,CAACE,MAHtB,CAFK,EAOPF,sBAAsB,CAACE,MAPhB,CADV,GAUGZ,OAAO,EACP;AACAD,MAAAA,EAAE,CACD,8BADC,EAED,+BAFC,EAGDW,sBAAsB,CAACE,MAHtB,CAFK,EAOPF,sBAAsB,CAACE,MAPhB,CAXX;AAoBA;;AACDJ,IAAAA,mBAAmB,CAAEG,MAAF,EAAU;AAC5BI,MAAAA,IAAI,EAAE;AADsB,KAAV,CAAnB;AAGA,GA1CiB,EA0Cf,EA1Ce,CAAlB;AA2CA;AAED,OAAO,SAASC,mBAAT,GAA+B;AACrC,QAAM;AACLC,IAAAA,mBADK;AAELC,IAAAA,yBAFK;AAGLC,IAAAA,iBAHK;AAILC,IAAAA,WAJK;AAKLC,IAAAA,yBALK;AAMLC,IAAAA,8BANK;AAOLC,IAAAA,8BAPK;AAQLC,IAAAA;AARK,MASF3B,SAAS,CAAEO,gBAAF,CATb;AAUA,QAAM;AACLqB,IAAAA,UADK;AAELC,IAAAA,YAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,yBAJK;AAKLC,IAAAA;AALK,MAMFjC,WAAW,CAAEQ,gBAAF,CANf;AAOA,QAAM0B,UAAU,GAAGzB,aAAa,EAAhC;AAEA,SAAOH,YAAY,CAAI6B,IAAF,IAAY;AAChC,aAASC,OAAT,CAAkBC,KAAlB,EAA0B;AACzB,YAAMvB,sBAAsB,GAAGQ,yBAAyB,EAAxD;;AAEA,UAAKR,sBAAsB,CAACE,MAAvB,KAAkC,CAAvC,EAA2C;AAC1C;AACA,OALwB,CAOzB;;;AACA,UAAK,CAAEO,iBAAiB,EAAxB,EAA6B;AAC5B,cAAM;AAAEe,UAAAA;AAAF,YAAaD,KAAnB;AACA,cAAM;AAAEE,UAAAA;AAAF,YAAoBD,MAA1B,CAF4B,CAG5B;AACA;;AACA,cAAME,YAAY,GACjBH,KAAK,CAAClB,IAAN,KAAe,MAAf,IAAyBkB,KAAK,CAAClB,IAAN,KAAe,KAAxC,GACGtB,+BAA+B,CAAE0C,aAAF,CADlC,GAEG3C,oBAAoB,CAAE2C,aAAF,CAHxB,CAL4B,CAU5B;;AACA,YAAKC,YAAL,EAAoB;AACnB;AACA;AACD;;AAED,UAAK,CAAEL,IAAI,CAACM,QAAL,CAAeJ,KAAK,CAACC,MAAN,CAAaC,aAAb,CAA2BG,aAA1C,CAAP,EAAmE;AAClE;AACA;;AAED,YAAMC,qBAAqB,GAAGN,KAAK,CAACO,gBAApC;AACAP,MAAAA,KAAK,CAACQ,cAAN;;AAEA,YAAMC,oBAAoB,GAAGnB,8BAA8B,EAA3D;;AACA,YAAMoB,uBAAuB,GAC5BrB,8BAA8B,MAAMD,yBAAyB,EAD9D;;AAEA,YAAMuB,uBAAuB,GAC5B,CAAED,uBAAF,IAA6B,CAAED,oBADhC;;AAEA,UAAKT,KAAK,CAAClB,IAAN,KAAe,MAAf,IAAyBkB,KAAK,CAAClB,IAAN,KAAe,KAA7C,EAAqD;AACpD,YAAKL,sBAAsB,CAACE,MAAvB,KAAkC,CAAvC,EAA2C;AAC1Ca,UAAAA,UAAU,CAAEf,sBAAsB,CAAE,CAAF,CAAxB,CAAV;AACA,SAHmD,CAIpD;AACA;;;AACA,YAAKkC,uBAAL,EAA+B;AAC9Bf,UAAAA,yBAAyB;AACzB,SAFD,MAEO;AACNC,UAAAA,UAAU,CAAEG,KAAK,CAAClB,IAAR,EAAcL,sBAAd,CAAV;AACA,cAAImC,MAAJ,CAFM,CAGN;;AACA,cAAKF,uBAAL,EAA+B;AAC9BE,YAAAA,MAAM,GAAG5B,mBAAmB,CAAEP,sBAAF,CAA5B;AACA,WAFD,MAEO;AACN,kBAAM,CAAEoC,IAAF,EAAQC,IAAR,IACLvB,+CAA+C,EADhD;;AAEA,kBAAMwB,eAAe,GAAG/B,mBAAmB,CAC1CP,sBAAsB,CAACuC,KAAvB,CACC,CADD,EAECvC,sBAAsB,CAACE,MAAvB,GAAgC,CAFjC,CAD0C,CAA3C;AAMAiC,YAAAA,MAAM,GAAG,CAAEC,IAAF,EAAQ,GAAGE,eAAX,EAA4BD,IAA5B,CAAT;AACA;;AACD,gBAAMG,UAAU,GAAG9D,SAAS,CAAEyD,MAAF,CAA5B;AAEAZ,UAAAA,KAAK,CAACkB,aAAN,CAAoBC,OAApB,CACC,YADD,EAECC,WAAW,CAAEH,UAAF,CAFZ;AAIAjB,UAAAA,KAAK,CAACkB,aAAN,CAAoBC,OAApB,CAA6B,WAA7B,EAA0CF,UAA1C;AACA;AACD;;AAED,UAAKjB,KAAK,CAAClB,IAAN,KAAe,KAApB,EAA4B;AAC3B;AACA;AACA;AACA,YAAK4B,uBAAuB,IAAI,CAAEC,uBAAlC,EAA4D;AAC3DlB,UAAAA,YAAY,CAAEhB,sBAAF,CAAZ;AACA,SAFD,MAEO;AACNkB,UAAAA,yBAAyB;AACzB;AACD,OATD,MASO,IAAKK,KAAK,CAAClB,IAAN,KAAe,OAApB,EAA8B;AACpC,YAAKwB,qBAAL,EAA6B;AAC5B;AACA;AACA;;AACD,cAAM;AACLe,UAAAA,sCAAsC,EACrCC;AAFI,YAGFnC,WAAW,EAHf;AAIA,cAAM;AAAEoC,UAAAA,SAAF;AAAaC,UAAAA;AAAb,YAAsBtD,iBAAiB,CAAE8B,KAAF,CAA7C;AACA,cAAMY,MAAM,GAAGxD,YAAY,CAAE;AAC5BqE,UAAAA,IAAI,EAAED,IADsB;AAE5BD,UAAAA,SAF4B;AAG5BG,UAAAA,IAAI,EAAE,QAHsB;AAI5BJ,UAAAA;AAJ4B,SAAF,CAA3B;AAOA5B,QAAAA,aAAa,CACZjB,sBADY,EAEZmC,MAFY,EAGZA,MAAM,CAACjC,MAAP,GAAgB,CAHJ,EAIZ,CAAC,CAJW,CAAb;AAMA;AACD;;AAEDmB,IAAAA,IAAI,CAACI,aAAL,CAAmByB,gBAAnB,CAAqC,MAArC,EAA6C5B,OAA7C;AACAD,IAAAA,IAAI,CAACI,aAAL,CAAmByB,gBAAnB,CAAqC,KAArC,EAA4C5B,OAA5C;AACAD,IAAAA,IAAI,CAACI,aAAL,CAAmByB,gBAAnB,CAAqC,OAArC,EAA8C5B,OAA9C;AAEA,WAAO,MAAM;AACZD,MAAAA,IAAI,CAACI,aAAL,CAAmB0B,mBAAnB,CAAwC,MAAxC,EAAgD7B,OAAhD;AACAD,MAAAA,IAAI,CAACI,aAAL,CAAmB0B,mBAAnB,CAAwC,KAAxC,EAA+C7B,OAA/C;AACAD,MAAAA,IAAI,CAACI,aAAL,CAAmB0B,mBAAnB,CAAwC,OAAxC,EAAiD7B,OAAjD;AACA,KAJD;AAKA,GApHkB,EAoHhB,EApHgB,CAAnB;AAqHA;;AAED,SAAS8B,WAAT,OAAqC;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACpC,SAAO;AAAK,IAAA,GAAG,EAAG/C,mBAAmB;AAA9B,KAAqC+C,QAArC,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASV,WAAT,CAAsBI,IAAtB,EAA6B;AAC5B;AACAA,EAAAA,IAAI,GAAGA,IAAI,CAACO,OAAL,CAAc,OAAd,EAAuB,IAAvB,CAAP;AAEA,QAAMR,SAAS,GAAG7D,SAAS,CAAE8D,IAAF,CAAT,CAAkBQ,IAAlB,EAAlB,CAJ4B,CAM5B;;AACA,SAAOT,SAAS,CAACQ,OAAV,CAAmB,QAAnB,EAA6B,MAA7B,CAAP;AACA;AAED;AACA;AACA;;;AACA,eAAeF,WAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport {\n\tserialize,\n\tpasteHandler,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n\t__unstableStripHTML as stripHTML,\n} from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getPasteEventData } from '../../utils/pasting';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback( ( eventType, selectedBlockClientIds ) => {\n\t\tlet notice = '';\n\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst title = getBlockType( getBlockName( clientId ) )?.title;\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t );\n\t\t} else {\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being cut.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t );\n\t\t}\n\t\tcreateSuccessNotice( notice, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}, [] );\n}\n\nexport function useClipboardHandler() {\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument );\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst eventDefaultPrevented = event.defaultPrevented;\n\t\t\tevent.preventDefault();\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\t\t\t\t\tconst serialized = serialize( blocks );\n\n\t\t\t\t\tevent.clipboardData.setData(\n\t\t\t\t\t\t'text/plain',\n\t\t\t\t\t\ttoPlainText( serialized )\n\t\t\t\t\t);\n\t\t\t\t\tevent.clipboardData.setData( 'text/html', serialized );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tif ( eventDefaultPrevented ) {\n\t\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst { plainText, html } = getPasteEventData( event );\n\t\t\t\tconst blocks = pasteHandler( {\n\t\t\t\t\tHTML: html,\n\t\t\t\t\tplainText,\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} );\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n\nfunction CopyHandler( { children } ) {\n\treturn <div ref={ useClipboardHandler() }>{ children }</div>;\n}\n\n/**\n * Given a string of HTML representing serialized blocks, returns the plain\n * text extracted after stripping the HTML of any tags and fixing line breaks.\n *\n * @param {string} html Serialized blocks.\n * @return {string} The plain-text content with any html removed.\n */\nfunction toPlainText( html ) {\n\t// Manually handle BR tags as line breaks prior to `stripHTML` call\n\thtml = html.replace( /<br>/g, '\\n' );\n\n\tconst plainText = stripHTML( html ).trim();\n\n\t// Merge any consecutive line breaks\n\treturn plainText.replace( /\\n\\n+/g, '\\n\\n' );\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/copy-handler/README.md\n */\nexport default CopyHandler;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"names":["classnames","__","compose","decodeEntities","withSelect","withDispatch","ENTER","SPACE","Inserter","store","blockEditorStore","ZWNBSP","DefaultBlockAppender","isLocked","onAppend","showPrompt","placeholder","rootClientId","value","event","keyCode","select","ownProps","getBlockCount","getSettings","getTemplateLock","isEmpty","bodyPlaceholder","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Zero width non-breaking space, used as padding for the paragraph when it is\n * empty.\n */\nexport const ZWNBSP = '\\ufeff';\n\nexport function DefaultBlockAppender( {\n\tisLocked,\n\tonAppend,\n\tshowPrompt,\n\tplaceholder,\n\trootClientId,\n} ) {\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\tdecodeEntities( placeholder ) || __( 'Type / to choose a block' );\n\n\treturn (\n\t\t<div\n\t\t\tdata-root-client-id={ rootClientId || '' }\n\t\t\tclassName={ classnames( 'block-editor-default-block-appender', {\n\t\t\t\t'has-visible-prompt': showPrompt,\n\t\t\t} ) }\n\t\t>\n\t\t\t<p\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\t// We want this element to be styled as a paragraph by themes.\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={ __( 'Add default block' ) }\n\t\t\t\t// A wrapping container for this one already has the wp-block className.\n\t\t\t\tclassName=\"block-editor-default-block-appender__content\"\n\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\tif ( ENTER === event.keyCode || SPACE === event.keyCode ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tonClick={ () => onAppend() }\n\t\t\t\tonFocus={ () => {\n\t\t\t\t\tif ( showPrompt ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showPrompt ? value : ZWNBSP }\n\t\t\t</p>\n\t\t\t<Inserter\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tposition=\"bottom right\"\n\t\t\t\tisAppender\n\t\t\t\t__experimentalIsQuick\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getBlockCount, getSettings, getTemplateLock } = select(\n\t\t\tblockEditorStore\n\t\t);\n\n\t\tconst isEmpty = ! getBlockCount( ownProps.rootClientId );\n\t\tconst { bodyPlaceholder } = getSettings();\n\n\t\treturn {\n\t\t\tshowPrompt: isEmpty,\n\t\t\tisLocked: !! getTemplateLock( ownProps.rootClientId ),\n\t\t\tplaceholder: bodyPlaceholder,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst { insertDefaultBlock, startTyping } = dispatch(\n\t\t\tblockEditorStore\n\t\t);\n\n\t\treturn {\n\t\t\tonAppend() {\n\t\t\t\tconst { rootClientId } = ownProps;\n\n\t\t\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\t\t\tstartTyping();\n\t\t\t},\n\t\t};\n\t} )\n)( DefaultBlockAppender );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"names":["classnames","__","compose","decodeEntities","withSelect","withDispatch","ENTER","SPACE","Inserter","store","blockEditorStore","ZWNBSP","DefaultBlockAppender","isLocked","onAppend","showPrompt","placeholder","rootClientId","value","event","keyCode","select","ownProps","getBlockCount","getSettings","getTemplateLock","isEmpty","bodyPlaceholder","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Zero width non-breaking space, used as padding for the paragraph when it is\n * empty.\n */\nexport const ZWNBSP = '\\ufeff';\n\nexport function DefaultBlockAppender( {\n\tisLocked,\n\tonAppend,\n\tshowPrompt,\n\tplaceholder,\n\trootClientId,\n} ) {\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\tdecodeEntities( placeholder ) || __( 'Type / to choose a block' );\n\n\treturn (\n\t\t<div\n\t\t\tdata-root-client-id={ rootClientId || '' }\n\t\t\tclassName={ classnames( 'block-editor-default-block-appender', {\n\t\t\t\t'has-visible-prompt': showPrompt,\n\t\t\t} ) }\n\t\t>\n\t\t\t<p\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\t// We want this element to be styled as a paragraph by themes.\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={ __( 'Add default block' ) }\n\t\t\t\t// A wrapping container for this one already has the wp-block className.\n\t\t\t\tclassName=\"block-editor-default-block-appender__content\"\n\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\tif ( ENTER === event.keyCode || SPACE === event.keyCode ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tonClick={ () => onAppend() }\n\t\t\t\tonFocus={ () => {\n\t\t\t\t\tif ( showPrompt ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showPrompt ? value : ZWNBSP }\n\t\t\t</p>\n\t\t\t<Inserter\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tposition=\"bottom right\"\n\t\t\t\tisAppender\n\t\t\t\t__experimentalIsQuick\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getBlockCount, getSettings, getTemplateLock } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst isEmpty = ! getBlockCount( ownProps.rootClientId );\n\t\tconst { bodyPlaceholder } = getSettings();\n\n\t\treturn {\n\t\t\tshowPrompt: isEmpty,\n\t\t\tisLocked: !! getTemplateLock( ownProps.rootClientId ),\n\t\t\tplaceholder: bodyPlaceholder,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst { insertDefaultBlock, startTyping } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonAppend() {\n\t\t\t\tconst { rootClientId } = ownProps;\n\n\t\t\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\t\t\tstartTyping();\n\t\t\t},\n\t\t};\n\t} )\n)( DefaultBlockAppender );\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.native.js"],"names":["TouchableWithoutFeedback","View","__","RichText","compose","decodeEntities","withSelect","withDispatch","getDefaultBlockName","BlockInsertionPoint","styles","store","blockEditorStore","DefaultBlockAppender","isLocked","isVisible","onAppend","placeholder","containerStyle","showSeparator","value","blockHolder","select","ownProps","getBlockCount","getBlockName","isBlockValid","getTemplateLock","isEmpty","rootClientId","isLastBlockDefault","lastBlockClientId","isLastBlockValid","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAT,EAAmCC,IAAnC,QAA+C,cAA/C;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,QAAyB,yBAAzB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,cAAT,QAA+B,0BAA/B;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA;AACA;AACA;;AACA,OAAOC,mBAAP,MAAgC,+BAAhC;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,OAAO,SAASC,oBAAT,OAOH;AAAA,MAPkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,SAFqC;AAGrCC,IAAAA,QAHqC;AAIrCC,IAAAA,WAJqC;AAKrCC,IAAAA,cALqC;AAMrCC,IAAAA;AANqC,GAOlC;;AACH,MAAKL,QAAQ,IAAI,CAAEC,SAAnB,EAA+B;AAC9B,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GACV,OAAOH,WAAP,KAAuB,QAAvB,GACGZ,cAAc,CAAEY,WAAF,CADjB,GAEGf,EAAE,CAAE,gBAAF,CAHN;AAKA,SACC,cAAC,wBAAD;AAA0B,IAAA,OAAO,EAAGc;AAApC,KACC,cAAC,IAAD;AACC,IAAA,KAAK,EAAG,CACPN,MAAM,CAACW,WADA,EAEPF,aAAa,IAAID,cAFV,CADT;AAKC,IAAA,aAAa,EAAC;AALf,KAOGC,aAAa,GACd,cAAC,mBAAD,OADc,GAGd,cAAC,QAAD;AAAU,IAAA,WAAW,EAAGC,KAAxB;AAAgC,IAAA,QAAQ,EAAG,MAAM,CAAE;AAAnD,IAVF,CADD,CADD;AAiBA;AAED,eAAehB,OAAO,CACrBE,UAAU,CAAE,CAAEgB,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;AACLC,IAAAA,aADK;AAELC,IAAAA,YAFK;AAGLC,IAAAA,YAHK;AAILC,IAAAA;AAJK,MAKFL,MAAM,CAAEV,gBAAF,CALV;AAOA,QAAMgB,OAAO,GAAG,CAAEJ,aAAa,CAAED,QAAQ,CAACM,YAAX,CAA/B;AACA,QAAMC,kBAAkB,GACvBL,YAAY,CAAEF,QAAQ,CAACQ,iBAAX,CAAZ,KACAvB,mBAAmB,EAFpB;AAGA,QAAMwB,gBAAgB,GAAGN,YAAY,CAAEH,QAAQ,CAACQ,iBAAX,CAArC;AAEA,SAAO;AACNhB,IAAAA,SAAS,EAAEa,OAAO,IAAI,CAAEE,kBAAb,IAAmC,CAAEE,gBAD1C;AAENlB,IAAAA,QAAQ,EAAE,CAAC,CAAEa,eAAe,CAAEJ,QAAQ,CAACM,YAAX;AAFtB,GAAP;AAIA,CAlBS,CADW,EAoBrBtB,YAAY,CAAE,CAAE0B,QAAF,EAAYV,QAAZ,KAA0B;AACvC,QAAM;AAAEW,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MAAsCF,QAAQ,CACnDrB,gBADmD,CAApD;AAIA,SAAO;AACNI,IAAAA,QAAQ,GAAG;AACV,YAAM;AAAEa,QAAAA;AAAF,UAAmBN,QAAzB;AAEAW,MAAAA,kBAAkB,CAAEE,SAAF,EAAaP,YAAb,CAAlB;AACAM,MAAAA,WAAW;AACX;;AANK,GAAP;AAQA,CAbW,CApBS,CAAP,CAkCZtB,oBAlCY,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport styles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nexport function DefaultBlockAppender( {\n\tisLocked,\n\tisVisible,\n\tonAppend,\n\tplaceholder,\n\tcontainerStyle,\n\tshowSeparator,\n} ) {\n\tif ( isLocked || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\ttypeof placeholder === 'string'\n\t\t\t? decodeEntities( placeholder )\n\t\t\t: __( 'Start writing…' );\n\n\treturn (\n\t\t<TouchableWithoutFeedback onPress={ onAppend }>\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.blockHolder,\n\t\t\t\t\tshowSeparator && containerStyle,\n\t\t\t\t] }\n\t\t\t\tpointerEvents=\"box-only\"\n\t\t\t>\n\t\t\t\t{ showSeparator ? (\n\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t) : (\n\t\t\t\t\t<RichText placeholder={ value } onChange={ () => {} } />\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select, ownProps ) => {\n\t\tconst {\n\t\t\tgetBlockCount,\n\t\t\tgetBlockName,\n\t\t\tisBlockValid,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst isEmpty = ! getBlockCount( ownProps.rootClientId );\n\t\tconst isLastBlockDefault =\n\t\t\tgetBlockName( ownProps.lastBlockClientId ) ===\n\t\t\tgetDefaultBlockName();\n\t\tconst isLastBlockValid = isBlockValid( ownProps.lastBlockClientId );\n\n\t\treturn {\n\t\t\tisVisible: isEmpty || ! isLastBlockDefault || ! isLastBlockValid,\n\t\t\tisLocked: !! getTemplateLock( ownProps.rootClientId ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst { insertDefaultBlock, startTyping } = dispatch(\n\t\t\tblockEditorStore\n\t\t);\n\n\t\treturn {\n\t\t\tonAppend() {\n\t\t\t\tconst { rootClientId } = ownProps;\n\n\t\t\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\t\t\tstartTyping();\n\t\t\t},\n\t\t};\n\t} )\n)( DefaultBlockAppender );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.native.js"],"names":["TouchableWithoutFeedback","View","__","RichText","compose","decodeEntities","withSelect","withDispatch","getDefaultBlockName","BlockInsertionPoint","styles","store","blockEditorStore","DefaultBlockAppender","isLocked","isVisible","onAppend","placeholder","containerStyle","showSeparator","value","blockHolder","select","ownProps","getBlockCount","getBlockName","isBlockValid","getTemplateLock","isEmpty","rootClientId","isLastBlockDefault","lastBlockClientId","isLastBlockValid","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAT,EAAmCC,IAAnC,QAA+C,cAA/C;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,QAAyB,yBAAzB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,cAAT,QAA+B,0BAA/B;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA;AACA;AACA;;AACA,OAAOC,mBAAP,MAAgC,+BAAhC;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,OAAO,SAASC,oBAAT,OAOH;AAAA,MAPkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,SAFqC;AAGrCC,IAAAA,QAHqC;AAIrCC,IAAAA,WAJqC;AAKrCC,IAAAA,cALqC;AAMrCC,IAAAA;AANqC,GAOlC;;AACH,MAAKL,QAAQ,IAAI,CAAEC,SAAnB,EAA+B;AAC9B,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GACV,OAAOH,WAAP,KAAuB,QAAvB,GACGZ,cAAc,CAAEY,WAAF,CADjB,GAEGf,EAAE,CAAE,gBAAF,CAHN;AAKA,SACC,cAAC,wBAAD;AAA0B,IAAA,OAAO,EAAGc;AAApC,KACC,cAAC,IAAD;AACC,IAAA,KAAK,EAAG,CACPN,MAAM,CAACW,WADA,EAEPF,aAAa,IAAID,cAFV,CADT;AAKC,IAAA,aAAa,EAAC;AALf,KAOGC,aAAa,GACd,cAAC,mBAAD,OADc,GAGd,cAAC,QAAD;AAAU,IAAA,WAAW,EAAGC,KAAxB;AAAgC,IAAA,QAAQ,EAAG,MAAM,CAAE;AAAnD,IAVF,CADD,CADD;AAiBA;AAED,eAAehB,OAAO,CACrBE,UAAU,CAAE,CAAEgB,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA,YAAjB;AAA+BC,IAAAA,YAA/B;AAA6CC,IAAAA;AAA7C,MACLL,MAAM,CAAEV,gBAAF,CADP;AAGA,QAAMgB,OAAO,GAAG,CAAEJ,aAAa,CAAED,QAAQ,CAACM,YAAX,CAA/B;AACA,QAAMC,kBAAkB,GACvBL,YAAY,CAAEF,QAAQ,CAACQ,iBAAX,CAAZ,KACAvB,mBAAmB,EAFpB;AAGA,QAAMwB,gBAAgB,GAAGN,YAAY,CAAEH,QAAQ,CAACQ,iBAAX,CAArC;AAEA,SAAO;AACNhB,IAAAA,SAAS,EAAEa,OAAO,IAAI,CAAEE,kBAAb,IAAmC,CAAEE,gBAD1C;AAENlB,IAAAA,QAAQ,EAAE,CAAC,CAAEa,eAAe,CAAEJ,QAAQ,CAACM,YAAX;AAFtB,GAAP;AAIA,CAdS,CADW,EAgBrBtB,YAAY,CAAE,CAAE0B,QAAF,EAAYV,QAAZ,KAA0B;AACvC,QAAM;AAAEW,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MACLF,QAAQ,CAAErB,gBAAF,CADT;AAGA,SAAO;AACNI,IAAAA,QAAQ,GAAG;AACV,YAAM;AAAEa,QAAAA;AAAF,UAAmBN,QAAzB;AAEAW,MAAAA,kBAAkB,CAAEE,SAAF,EAAaP,YAAb,CAAlB;AACAM,MAAAA,WAAW;AACX;;AANK,GAAP;AAQA,CAZW,CAhBS,CAAP,CA6BZtB,oBA7BY,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport styles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nexport function DefaultBlockAppender( {\n\tisLocked,\n\tisVisible,\n\tonAppend,\n\tplaceholder,\n\tcontainerStyle,\n\tshowSeparator,\n} ) {\n\tif ( isLocked || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\ttypeof placeholder === 'string'\n\t\t\t? decodeEntities( placeholder )\n\t\t\t: __( 'Start writing…' );\n\n\treturn (\n\t\t<TouchableWithoutFeedback onPress={ onAppend }>\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.blockHolder,\n\t\t\t\t\tshowSeparator && containerStyle,\n\t\t\t\t] }\n\t\t\t\tpointerEvents=\"box-only\"\n\t\t\t>\n\t\t\t\t{ showSeparator ? (\n\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t) : (\n\t\t\t\t\t<RichText placeholder={ value } onChange={ () => {} } />\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getBlockCount, getBlockName, isBlockValid, getTemplateLock } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst isEmpty = ! getBlockCount( ownProps.rootClientId );\n\t\tconst isLastBlockDefault =\n\t\t\tgetBlockName( ownProps.lastBlockClientId ) ===\n\t\t\tgetDefaultBlockName();\n\t\tconst isLastBlockValid = isBlockValid( ownProps.lastBlockClientId );\n\n\t\treturn {\n\t\t\tisVisible: isEmpty || ! isLastBlockDefault || ! isLastBlockValid,\n\t\t\tisLocked: !! getTemplateLock( ownProps.rootClientId ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst { insertDefaultBlock, startTyping } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonAppend() {\n\t\t\t\tconst { rootClientId } = ownProps;\n\n\t\t\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\t\t\tstartTyping();\n\t\t\t},\n\t\t};\n\t} )\n)( DefaultBlockAppender );\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/default-style-picker/index.js"],"names":["store","blocksStore","useMemo","useCallback","__","SelectControl","useSelect","blockEditorStore","getDefaultStyle","DefaultStylePicker","blockName","preferredStyle","onUpdatePreferredStyleVariations","styles","select","settings","getSettings","preferredStyleVariations","__experimentalPreferredStyleVariations","value","onChange","getBlockStyles","selectOptions","label","map","name","defaultStyleName","selectOnChange","blockStyle"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,WAAlB,QAAqC,mBAArC;AACA,SAASC,OAAT,EAAkBC,WAAlB,QAAqC,oBAArC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASN,KAAK,IAAIO,gBAAlB,QAA0C,aAA1C;AACA,SAASC,eAAT,QAAgC,uBAAhC;AAEA,eAAe,SAASC,kBAAT,OAA6C;AAAA,MAAhB;AAAEC,IAAAA;AAAF,GAAgB;AAC3D,QAAM;AACLC,IAAAA,cADK;AAELC,IAAAA,gCAFK;AAGLC,IAAAA;AAHK,MAIFP,SAAS,CACVQ,MAAF,IAAc;AAAA;;AACb,UAAMC,QAAQ,GAAGD,MAAM,CAAEP,gBAAF,CAAN,CAA2BS,WAA3B,EAAjB;AACA,UAAMC,wBAAwB,GAC7BF,QAAQ,CAACG,sCADV;AAEA,WAAO;AACNP,MAAAA,cAAc,EAAEM,wBAAF,aAAEA,wBAAF,gDAAEA,wBAAwB,CAAEE,KAA5B,0DAAE,sBAAmCT,SAAnC,CADV;AAENE,MAAAA,gCAAgC,4BAC/BK,wBAD+B,aAC/BA,wBAD+B,uBAC/BA,wBAAwB,CAAEG,QADK,2EACO,IAHjC;AAINP,MAAAA,MAAM,EAAEC,MAAM,CAAEb,WAAF,CAAN,CAAsBoB,cAAtB,CAAsCX,SAAtC;AAJF,KAAP;AAMA,GAXW,EAYZ,CAAEA,SAAF,CAZY,CAJb;AAkBA,QAAMY,aAAa,GAAGpB,OAAO,CAC5B,MAAM,CACL;AAAEqB,IAAAA,KAAK,EAAEnB,EAAE,CAAE,SAAF,CAAX;AAA0Be,IAAAA,KAAK,EAAE;AAAjC,GADK,EAEL,GAAGN,MAAM,CAACW,GAAP,CAAY;AAAA,QAAE;AAAED,MAAAA,KAAF;AAASE,MAAAA;AAAT,KAAF;AAAA,WAAyB;AAAEF,MAAAA,KAAF;AAASJ,MAAAA,KAAK,EAAEM;AAAhB,KAAzB;AAAA,GAAZ,CAFE,CADsB,EAK5B,CAAEZ,MAAF,CAL4B,CAA7B;AAOA,QAAMa,gBAAgB,GAAGxB,OAAO,CAAE;AAAA;;AAAA,+BAAMM,eAAe,CAAEK,MAAF,CAArB,qDAAM,iBAA2BY,IAAjC;AAAA,GAAF,EAAyC,CACxEZ,MADwE,CAAzC,CAAhC;AAGA,QAAMc,cAAc,GAAGxB,WAAW,CAC/ByB,UAAF,IAAkB;AACjBhB,IAAAA,gCAAgC,CAAEF,SAAF,EAAakB,UAAb,CAAhC;AACA,GAHgC,EAIjC,CAAElB,SAAF,EAAaE,gCAAb,CAJiC,CAAlC,CA7B2D,CAoC3D;AACA;;AACA,MAAK,CAAED,cAAF,IAAoBA,cAAc,KAAKe,gBAA5C,EAA+D;AAC9D,WAAO,IAAP;AACA;;AAED,SACCd,gCAAgC,IAC/B;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,aAAD;AACC,IAAA,OAAO,EAAGU,aADX;AAEC,IAAA,KAAK,EAAGX,cAAc,IAAI,EAF3B;AAGC,IAAA,KAAK,EAAGP,EAAE,CAAE,eAAF,CAHX;AAIC,IAAA,QAAQ,EAAGuB;AAJZ,IADD,CAFF;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getDefaultStyle } from '../block-styles/utils';\n\nexport default function DefaultStylePicker( { blockName } ) {\n\tconst {\n\t\tpreferredStyle,\n\t\tonUpdatePreferredStyleVariations,\n\t\tstyles,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst preferredStyleVariations =\n\t\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\t\treturn {\n\t\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ blockName ],\n\t\t\t\tonUpdatePreferredStyleVariations:\n\t\t\t\t\tpreferredStyleVariations?.onChange ?? null,\n\t\t\t\tstyles: select( blocksStore ).getBlockStyles( blockName ),\n\t\t\t};\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst selectOptions = useMemo(\n\t\t() => [\n\t\t\t{ label: __( 'Not set' ), value: '' },\n\t\t\t...styles.map( ( { label, name } ) => ( { label, value: name } ) ),\n\t\t],\n\t\t[ styles ]\n\t);\n\tconst defaultStyleName = useMemo( () => getDefaultStyle( styles )?.name, [\n\t\tstyles,\n\t] );\n\tconst selectOnChange = useCallback(\n\t\t( blockStyle ) => {\n\t\t\tonUpdatePreferredStyleVariations( blockName, blockStyle );\n\t\t},\n\t\t[ blockName, onUpdatePreferredStyleVariations ]\n\t);\n\n\t// Until the functionality is migrated to global styles,\n\t// only show the default style picker if a non-default style has already been selected.\n\tif ( ! preferredStyle || preferredStyle === defaultStyleName ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tonUpdatePreferredStyleVariations && (\n\t\t\t<div className=\"default-style-picker__default-switcher\">\n\t\t\t\t<SelectControl\n\t\t\t\t\toptions={ selectOptions }\n\t\t\t\t\tvalue={ preferredStyle || '' }\n\t\t\t\t\tlabel={ __( 'Default Style' ) }\n\t\t\t\t\tonChange={ selectOnChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t)\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/default-style-picker/index.js"],"names":["store","blocksStore","useMemo","useCallback","__","SelectControl","useSelect","blockEditorStore","getDefaultStyle","DefaultStylePicker","blockName","preferredStyle","onUpdatePreferredStyleVariations","styles","select","settings","getSettings","preferredStyleVariations","__experimentalPreferredStyleVariations","value","onChange","getBlockStyles","selectOptions","label","map","name","defaultStyleName","selectOnChange","blockStyle"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,WAAlB,QAAqC,mBAArC;AACA,SAASC,OAAT,EAAkBC,WAAlB,QAAqC,oBAArC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASN,KAAK,IAAIO,gBAAlB,QAA0C,aAA1C;AACA,SAASC,eAAT,QAAgC,uBAAhC;AAEA,eAAe,SAASC,kBAAT,OAA6C;AAAA,MAAhB;AAAEC,IAAAA;AAAF,GAAgB;AAC3D,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,gCAAlB;AAAoDC,IAAAA;AAApD,MACLP,SAAS,CACNQ,MAAF,IAAc;AAAA;;AACb,UAAMC,QAAQ,GAAGD,MAAM,CAAEP,gBAAF,CAAN,CAA2BS,WAA3B,EAAjB;AACA,UAAMC,wBAAwB,GAC7BF,QAAQ,CAACG,sCADV;AAEA,WAAO;AACNP,MAAAA,cAAc,EACbM,wBADa,aACbA,wBADa,gDACbA,wBAAwB,CAAEE,KADb,0DACb,sBAAmCT,SAAnC,CAFK;AAGNE,MAAAA,gCAAgC,4BAC/BK,wBAD+B,aAC/BA,wBAD+B,uBAC/BA,wBAAwB,CAAEG,QADK,2EACO,IAJjC;AAKNP,MAAAA,MAAM,EAAEC,MAAM,CAAEb,WAAF,CAAN,CAAsBoB,cAAtB,CAAsCX,SAAtC;AALF,KAAP;AAOA,GAZO,EAaR,CAAEA,SAAF,CAbQ,CADV;AAgBA,QAAMY,aAAa,GAAGpB,OAAO,CAC5B,MAAM,CACL;AAAEqB,IAAAA,KAAK,EAAEnB,EAAE,CAAE,SAAF,CAAX;AAA0Be,IAAAA,KAAK,EAAE;AAAjC,GADK,EAEL,GAAGN,MAAM,CAACW,GAAP,CAAY;AAAA,QAAE;AAAED,MAAAA,KAAF;AAASE,MAAAA;AAAT,KAAF;AAAA,WAAyB;AAAEF,MAAAA,KAAF;AAASJ,MAAAA,KAAK,EAAEM;AAAhB,KAAzB;AAAA,GAAZ,CAFE,CADsB,EAK5B,CAAEZ,MAAF,CAL4B,CAA7B;AAOA,QAAMa,gBAAgB,GAAGxB,OAAO,CAC/B;AAAA;;AAAA,+BAAMM,eAAe,CAAEK,MAAF,CAArB,qDAAM,iBAA2BY,IAAjC;AAAA,GAD+B,EAE/B,CAAEZ,MAAF,CAF+B,CAAhC;AAIA,QAAMc,cAAc,GAAGxB,WAAW,CAC/ByB,UAAF,IAAkB;AACjBhB,IAAAA,gCAAgC,CAAEF,SAAF,EAAakB,UAAb,CAAhC;AACA,GAHgC,EAIjC,CAAElB,SAAF,EAAaE,gCAAb,CAJiC,CAAlC,CA5B2D,CAmC3D;AACA;;AACA,MAAK,CAAED,cAAF,IAAoBA,cAAc,KAAKe,gBAA5C,EAA+D;AAC9D,WAAO,IAAP;AACA;;AAED,SACCd,gCAAgC,IAC/B;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,aAAD;AACC,IAAA,OAAO,EAAGU,aADX;AAEC,IAAA,KAAK,EAAGX,cAAc,IAAI,EAF3B;AAGC,IAAA,KAAK,EAAGP,EAAE,CAAE,eAAF,CAHX;AAIC,IAAA,QAAQ,EAAGuB;AAJZ,IADD,CAFF;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getDefaultStyle } from '../block-styles/utils';\n\nexport default function DefaultStylePicker( { blockName } ) {\n\tconst { preferredStyle, onUpdatePreferredStyleVariations, styles } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tconst preferredStyleVariations =\n\t\t\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\t\t\treturn {\n\t\t\t\t\tpreferredStyle:\n\t\t\t\t\t\tpreferredStyleVariations?.value?.[ blockName ],\n\t\t\t\t\tonUpdatePreferredStyleVariations:\n\t\t\t\t\t\tpreferredStyleVariations?.onChange ?? null,\n\t\t\t\t\tstyles: select( blocksStore ).getBlockStyles( blockName ),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ blockName ]\n\t\t);\n\tconst selectOptions = useMemo(\n\t\t() => [\n\t\t\t{ label: __( 'Not set' ), value: '' },\n\t\t\t...styles.map( ( { label, name } ) => ( { label, value: name } ) ),\n\t\t],\n\t\t[ styles ]\n\t);\n\tconst defaultStyleName = useMemo(\n\t\t() => getDefaultStyle( styles )?.name,\n\t\t[ styles ]\n\t);\n\tconst selectOnChange = useCallback(\n\t\t( blockStyle ) => {\n\t\t\tonUpdatePreferredStyleVariations( blockName, blockStyle );\n\t\t},\n\t\t[ blockName, onUpdatePreferredStyleVariations ]\n\t);\n\n\t// Until the functionality is migrated to global styles,\n\t// only show the default style picker if a non-default style has already been selected.\n\tif ( ! preferredStyle || preferredStyle === defaultStyleName ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tonUpdatePreferredStyleVariations && (\n\t\t\t<div className=\"default-style-picker__default-switcher\">\n\t\t\t\t<SelectControl\n\t\t\t\t\toptions={ selectOptions }\n\t\t\t\t\tvalue={ preferredStyle || '' }\n\t\t\t\t\tlabel={ __( 'Default Style' ) }\n\t\t\t\t\tonChange={ selectOnChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t)\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/font-sizes/with-font-sizes.js"],"names":["find","pickBy","reduce","some","upperFirst","createHigherOrderComponent","compose","Component","getFontSize","getFontSizeClass","useSetting","DEFAULT_FONT_SIZES","fontSizeNames","fontSizeAttributeNames","fontSizeAttributeNamesAccumulator","fontSizeAttributeName","WrappedComponent","props","fontSizes","constructor","setters","createSetters","state","settersAccumulator","customFontSizeAttributeName","upperFirstFontSizeAttributeName","createSetFontSize","fontSizeValue","fontSizeObject","size","Number","setAttributes","slug","undefined","getDerivedStateFromProps","previousState","attributes","didAttributesChange","newState","newStateAccumulator","fontSizeAttributeValue","class","render"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, pickBy, reduce, some, upperFirst } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, compose } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getFontSize, getFontSizeClass } from './utils';\nimport useSetting from '../use-setting';\n\nconst DEFAULT_FONT_SIZES = [];\n\n/**\n * Higher-order component, which handles font size logic for class generation,\n * font size value retrieval, and font size change handling.\n *\n * @param {...(Object|string)} fontSizeNames The arguments should all be strings.\n * Each string contains the font size\n * attribute name e.g: 'fontSize'.\n *\n * @return {Function} Higher-order component.\n */\nexport default ( ...fontSizeNames ) => {\n\t/*\n\t * Computes an object whose key is the font size attribute name as passed in the array,\n\t * and the value is the custom font size attribute name.\n\t * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized.\n\t */\n\tconst fontSizeAttributeNames = reduce(\n\t\tfontSizeNames,\n\t\t( fontSizeAttributeNamesAccumulator, fontSizeAttributeName ) => {\n\t\t\tfontSizeAttributeNamesAccumulator[\n\t\t\t\tfontSizeAttributeName\n\t\t\t] = `custom${ upperFirst( fontSizeAttributeName ) }`;\n\t\t\treturn fontSizeAttributeNamesAccumulator;\n\t\t},\n\t\t{}\n\t);\n\n\treturn createHigherOrderComponent(\n\t\tcompose( [\n\t\t\tcreateHigherOrderComponent(\n\t\t\t\t( WrappedComponent ) => ( props ) => {\n\t\t\t\t\tconst fontSizes =\n\t\t\t\t\t\tuseSetting( 'typography.fontSizes' ) ||\n\t\t\t\t\t\tDEFAULT_FONT_SIZES;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\tfontSizes={ fontSizes }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t'withFontSizes'\n\t\t\t),\n\t\t\t( WrappedComponent ) => {\n\t\t\t\treturn class extends Component {\n\t\t\t\t\tconstructor( props ) {\n\t\t\t\t\t\tsuper( props );\n\n\t\t\t\t\t\tthis.setters = this.createSetters();\n\n\t\t\t\t\t\tthis.state = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetters() {\n\t\t\t\t\t\treturn reduce(\n\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tsettersAccumulator,\n\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst upperFirstFontSizeAttributeName = upperFirst(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t\t`set${ upperFirstFontSizeAttributeName }`\n\t\t\t\t\t\t\t\t] = this.createSetFontSize(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn settersAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetFontSize(\n\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ( fontSizeValue ) => {\n\t\t\t\t\t\t\tconst fontSizeObject = find( this.props.fontSizes, {\n\t\t\t\t\t\t\t\tsize: Number( fontSizeValue ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t\t[ fontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t[ customFontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: fontSizeValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t\t{ attributes, fontSizes },\n\t\t\t\t\t\tpreviousState\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst didAttributesChange = (\n\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\tif ( previousState[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t// If new font size is name compare with the previous slug.\n\t\t\t\t\t\t\t\tif ( attributes[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ] !==\n\t\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t\t.slug\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\t// If font size is not named, update when the font size value changes.\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t.size !==\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// In this case we need to build the font size object.\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! some(\n\t\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newState = reduce(\n\t\t\t\t\t\t\tpickBy(\n\t\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tnewStateAccumulator,\n\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst fontSizeAttributeValue =\n\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ];\n\t\t\t\t\t\t\t\tconst fontSizeObject = getFontSize(\n\t\t\t\t\t\t\t\t\tfontSizes,\n\t\t\t\t\t\t\t\t\tfontSizeAttributeValue,\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tnewStateAccumulator[ fontSizeAttributeName ] = {\n\t\t\t\t\t\t\t\t\t...fontSizeObject,\n\t\t\t\t\t\t\t\t\tclass: getFontSizeClass(\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue\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\treturn newStateAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...previousState,\n\t\t\t\t\t\t\t...newState,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\trender() {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\t\tfontSizes: undefined,\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t...this.setters,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t] ),\n\t\t'withFontSizes'\n\t);\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/font-sizes/with-font-sizes.js"],"names":["find","pickBy","reduce","some","upperFirst","createHigherOrderComponent","compose","Component","getFontSize","getFontSizeClass","useSetting","DEFAULT_FONT_SIZES","fontSizeNames","fontSizeAttributeNames","fontSizeAttributeNamesAccumulator","fontSizeAttributeName","WrappedComponent","props","fontSizes","constructor","setters","createSetters","state","settersAccumulator","customFontSizeAttributeName","upperFirstFontSizeAttributeName","createSetFontSize","fontSizeValue","fontSizeObject","size","Number","setAttributes","slug","undefined","getDerivedStateFromProps","previousState","attributes","didAttributesChange","newState","newStateAccumulator","fontSizeAttributeValue","class","render"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, pickBy, reduce, some, upperFirst } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, compose } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getFontSize, getFontSizeClass } from './utils';\nimport useSetting from '../use-setting';\n\nconst DEFAULT_FONT_SIZES = [];\n\n/**\n * Higher-order component, which handles font size logic for class generation,\n * font size value retrieval, and font size change handling.\n *\n * @param {...(Object|string)} fontSizeNames The arguments should all be strings.\n * Each string contains the font size\n * attribute name e.g: 'fontSize'.\n *\n * @return {Function} Higher-order component.\n */\nexport default ( ...fontSizeNames ) => {\n\t/*\n\t * Computes an object whose key is the font size attribute name as passed in the array,\n\t * and the value is the custom font size attribute name.\n\t * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized.\n\t */\n\tconst fontSizeAttributeNames = reduce(\n\t\tfontSizeNames,\n\t\t( fontSizeAttributeNamesAccumulator, fontSizeAttributeName ) => {\n\t\t\tfontSizeAttributeNamesAccumulator[\n\t\t\t\tfontSizeAttributeName\n\t\t\t] = `custom${ upperFirst( fontSizeAttributeName ) }`;\n\t\t\treturn fontSizeAttributeNamesAccumulator;\n\t\t},\n\t\t{}\n\t);\n\n\treturn createHigherOrderComponent(\n\t\tcompose( [\n\t\t\tcreateHigherOrderComponent(\n\t\t\t\t( WrappedComponent ) => ( props ) => {\n\t\t\t\t\tconst fontSizes =\n\t\t\t\t\t\tuseSetting( 'typography.fontSizes' ) ||\n\t\t\t\t\t\tDEFAULT_FONT_SIZES;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\tfontSizes={ fontSizes }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t'withFontSizes'\n\t\t\t),\n\t\t\t( WrappedComponent ) => {\n\t\t\t\treturn class extends Component {\n\t\t\t\t\tconstructor( props ) {\n\t\t\t\t\t\tsuper( props );\n\n\t\t\t\t\t\tthis.setters = this.createSetters();\n\n\t\t\t\t\t\tthis.state = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetters() {\n\t\t\t\t\t\treturn reduce(\n\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tsettersAccumulator,\n\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst upperFirstFontSizeAttributeName =\n\t\t\t\t\t\t\t\t\tupperFirst( fontSizeAttributeName );\n\t\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t\t`set${ upperFirstFontSizeAttributeName }`\n\t\t\t\t\t\t\t\t] = this.createSetFontSize(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn settersAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetFontSize(\n\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ( fontSizeValue ) => {\n\t\t\t\t\t\t\tconst fontSizeObject = find( this.props.fontSizes, {\n\t\t\t\t\t\t\t\tsize: Number( fontSizeValue ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t\t[ fontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t[ customFontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: fontSizeValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t\t{ attributes, fontSizes },\n\t\t\t\t\t\tpreviousState\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst didAttributesChange = (\n\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\tif ( previousState[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t// If new font size is name compare with the previous slug.\n\t\t\t\t\t\t\t\tif ( attributes[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ] !==\n\t\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t\t.slug\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\t// If font size is not named, update when the font size value changes.\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t.size !==\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// In this case we need to build the font size object.\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! some(\n\t\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newState = reduce(\n\t\t\t\t\t\t\tpickBy(\n\t\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tnewStateAccumulator,\n\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst fontSizeAttributeValue =\n\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ];\n\t\t\t\t\t\t\t\tconst fontSizeObject = getFontSize(\n\t\t\t\t\t\t\t\t\tfontSizes,\n\t\t\t\t\t\t\t\t\tfontSizeAttributeValue,\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tnewStateAccumulator[ fontSizeAttributeName ] = {\n\t\t\t\t\t\t\t\t\t...fontSizeObject,\n\t\t\t\t\t\t\t\t\tclass: getFontSizeClass(\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue\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\treturn newStateAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...previousState,\n\t\t\t\t\t\t\t...newState,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\trender() {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\t\tfontSizes: undefined,\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t...this.setters,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t] ),\n\t\t'withFontSizes'\n\t);\n};\n"]}
@@ -9,7 +9,7 @@ import classnames from 'classnames';
9
9
  * WordPress dependencies
10
10
  */
11
11
 
12
- import { useState, createPortal, forwardRef, useEffect, useMemo, useReducer } from '@wordpress/element';
12
+ import { useState, createPortal, forwardRef, useMemo, useReducer } from '@wordpress/element';
13
13
  import { __ } from '@wordpress/i18n';
14
14
  import { useMergeRefs, useRefEffect } from '@wordpress/compose';
15
15
  import { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';
@@ -28,63 +28,63 @@ const BLOCK_PREFIX = 'wp-block';
28
28
  *
29
29
  * Ideally, this hook should be removed in the future and styles should be added
30
30
  * explicitly as editor styles.
31
- *
32
- * @param {Document} doc The document to append cloned stylesheets to.
33
31
  */
34
32
 
35
- function styleSheetsCompat(doc) {
36
- // Search the document for stylesheets targetting the editor canvas.
37
- Array.from(document.styleSheets).forEach(styleSheet => {
38
- try {
39
- // May fail for external styles.
40
- // eslint-disable-next-line no-unused-expressions
41
- styleSheet.cssRules;
42
- } catch (e) {
43
- return;
44
- }
33
+ function useStylesCompatibility() {
34
+ return useRefEffect(node => {
35
+ // Search the document for stylesheets targetting the editor canvas.
36
+ Array.from(document.styleSheets).forEach(styleSheet => {
37
+ try {
38
+ // May fail for external styles.
39
+ // eslint-disable-next-line no-unused-expressions
40
+ styleSheet.cssRules;
41
+ } catch (e) {
42
+ return;
43
+ }
45
44
 
46
- const {
47
- ownerNode,
48
- cssRules
49
- } = styleSheet;
45
+ const {
46
+ ownerNode,
47
+ cssRules
48
+ } = styleSheet;
50
49
 
51
- if (!cssRules) {
52
- return;
53
- } // Generally, ignore inline styles. We add inline styles belonging to a
54
- // stylesheet later, which may or may not match the selectors.
50
+ if (!cssRules) {
51
+ return;
52
+ } // Generally, ignore inline styles. We add inline styles belonging to a
53
+ // stylesheet later, which may or may not match the selectors.
55
54
 
56
55
 
57
- if (ownerNode.tagName !== 'LINK') {
58
- return;
59
- } // Don't try to add the reset styles, which were removed as a dependency
60
- // from `edit-blocks` for the iframe since we don't need to reset admin
61
- // styles.
56
+ if (ownerNode.tagName !== 'LINK') {
57
+ return;
58
+ } // Don't try to add the reset styles, which were removed as a dependency
59
+ // from `edit-blocks` for the iframe since we don't need to reset admin
60
+ // styles.
62
61
 
63
62
 
64
- if (ownerNode.id === 'wp-reset-editor-styles-css') {
65
- return;
66
- }
63
+ if (ownerNode.id === 'wp-reset-editor-styles-css') {
64
+ return;
65
+ }
67
66
 
68
- const isMatch = Array.from(cssRules).find(_ref => {
69
- let {
70
- selectorText
71
- } = _ref;
72
- return selectorText && (selectorText.includes(`.${BODY_CLASS_NAME}`) || selectorText.includes(`.${BLOCK_PREFIX}`));
73
- });
67
+ const isMatch = Array.from(cssRules).find(_ref => {
68
+ let {
69
+ selectorText
70
+ } = _ref;
71
+ return selectorText && (selectorText.includes(`.${BODY_CLASS_NAME}`) || selectorText.includes(`.${BLOCK_PREFIX}`));
72
+ });
74
73
 
75
- if (isMatch && !doc.getElementById(ownerNode.id)) {
76
- // Display warning once we have a way to add style dependencies to the editor.
77
- // See: https://github.com/WordPress/gutenberg/pull/37466.
78
- doc.head.appendChild(ownerNode.cloneNode(true)); // Add inline styles belonging to the stylesheet.
74
+ if (isMatch && !node.ownerDocument.getElementById(ownerNode.id)) {
75
+ // Display warning once we have a way to add style dependencies to the editor.
76
+ // See: https://github.com/WordPress/gutenberg/pull/37466.
77
+ node.appendChild(ownerNode.cloneNode(true)); // Add inline styles belonging to the stylesheet.
79
78
 
80
- const inlineCssId = ownerNode.id.replace('-css', '-inline-css');
81
- const inlineCssElement = document.getElementById(inlineCssId);
79
+ const inlineCssId = ownerNode.id.replace('-css', '-inline-css');
80
+ const inlineCssElement = document.getElementById(inlineCssId);
82
81
 
83
- if (inlineCssElement) {
84
- doc.head.appendChild(inlineCssElement.cloneNode(true));
82
+ if (inlineCssElement) {
83
+ node.appendChild(inlineCssElement.cloneNode(true));
84
+ }
85
85
  }
86
- }
87
- });
86
+ });
87
+ }, []);
88
88
  }
89
89
  /**
90
90
  * Bubbles some event types (keydown, keypress, and dragover) to parent document
@@ -224,11 +224,7 @@ function Iframe(_ref3, ref) {
224
224
  });
225
225
  }, []);
226
226
  const bodyRef = useMergeRefs([contentRef, clearerRef, writingFlowRef]);
227
- useEffect(() => {
228
- if (iframeDocument) {
229
- styleSheetsCompat(iframeDocument);
230
- }
231
- }, [iframeDocument]);
227
+ const styleCompatibilityRef = useStylesCompatibility();
232
228
  head = createElement(Fragment, null, createElement("style", null, 'body{margin:0}'), styles.map(_ref4 => {
233
229
  let {
234
230
  tagName,
@@ -266,7 +262,12 @@ function Iframe(_ref3, ref) {
266
262
  }, head), createElement("body", {
267
263
  ref: bodyRef,
268
264
  className: classnames(BODY_CLASS_NAME, ...bodyClasses)
269
- }, createElement(StyleProvider, {
265
+ }, createElement("div", {
266
+ style: {
267
+ display: 'none'
268
+ },
269
+ ref: styleCompatibilityRef
270
+ }), createElement(StyleProvider, {
270
271
  document: iframeDocument
271
272
  }, children))), iframeDocument.documentElement)), tabIndex >= 0 && after);
272
273
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/iframe/index.js"],"names":["classnames","useState","createPortal","forwardRef","useEffect","useMemo","useReducer","__","useMergeRefs","useRefEffect","__experimentalStyleProvider","StyleProvider","useBlockSelectionClearer","useWritingFlow","BODY_CLASS_NAME","BLOCK_PREFIX","styleSheetsCompat","doc","Array","from","document","styleSheets","forEach","styleSheet","cssRules","e","ownerNode","tagName","id","isMatch","find","selectorText","includes","getElementById","head","appendChild","cloneNode","inlineCssId","replace","inlineCssElement","bubbleEvents","defaultView","frameElement","bubbleEvent","event","prototype","Object","getPrototypeOf","constructorName","constructor","name","Constructor","window","init","key","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","cancelled","dispatchEvent","preventDefault","eventTypes","addEventListener","useParsedAssets","html","implementation","createHTMLDocument","body","innerHTML","children","loadScript","src","Promise","resolve","reject","script","ownerDocument","createElement","onload","onerror","Iframe","ref","contentRef","tabIndex","assets","props","forceRender","iframeDocument","setIframeDocument","bodyClasses","setBodyClasses","styles","scripts","clearerRef","before","writingFlowRef","after","setRef","node","setDocumentIfReady","contentDocument","readyState","documentElement","classList","filter","startsWith","dir","removeChild","removeEventListener","headRef","element","reduce","promise","then","finally","bodyRef","map","href","rel","media","textContent","TagName","toLowerCase"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreatePortal,\n\tforwardRef,\n\tuseEffect,\n\tuseMemo,\n\tuseReducer,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useWritingFlow } from '../writing-flow';\n\nconst BODY_CLASS_NAME = 'editor-styles-wrapper';\nconst BLOCK_PREFIX = 'wp-block';\n\n/**\n * Clones stylesheets targetting the editor canvas to the given document. A\n * stylesheet is considered targetting the editor a canvas if it contains the\n * `editor-styles-wrapper`, `wp-block`, or `wp-block-*` class selectors.\n *\n * Ideally, this hook should be removed in the future and styles should be added\n * explicitly as editor styles.\n *\n * @param {Document} doc The document to append cloned stylesheets to.\n */\nfunction styleSheetsCompat( doc ) {\n\t// Search the document for stylesheets targetting the editor canvas.\n\tArray.from( document.styleSheets ).forEach( ( styleSheet ) => {\n\t\ttry {\n\t\t\t// May fail for external styles.\n\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\tstyleSheet.cssRules;\n\t\t} catch ( e ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { ownerNode, cssRules } = styleSheet;\n\n\t\tif ( ! cssRules ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Generally, ignore inline styles. We add inline styles belonging to a\n\t\t// stylesheet later, which may or may not match the selectors.\n\t\tif ( ownerNode.tagName !== 'LINK' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Don't try to add the reset styles, which were removed as a dependency\n\t\t// from `edit-blocks` for the iframe since we don't need to reset admin\n\t\t// styles.\n\t\tif ( ownerNode.id === 'wp-reset-editor-styles-css' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isMatch = Array.from( cssRules ).find(\n\t\t\t( { selectorText } ) =>\n\t\t\t\tselectorText &&\n\t\t\t\t( selectorText.includes( `.${ BODY_CLASS_NAME }` ) ||\n\t\t\t\t\tselectorText.includes( `.${ BLOCK_PREFIX }` ) )\n\t\t);\n\n\t\tif ( isMatch && ! doc.getElementById( ownerNode.id ) ) {\n\t\t\t// Display warning once we have a way to add style dependencies to the editor.\n\t\t\t// See: https://github.com/WordPress/gutenberg/pull/37466.\n\n\t\t\tdoc.head.appendChild( ownerNode.cloneNode( true ) );\n\n\t\t\t// Add inline styles belonging to the stylesheet.\n\t\t\tconst inlineCssId = ownerNode.id.replace( '-css', '-inline-css' );\n\t\t\tconst inlineCssElement = document.getElementById( inlineCssId );\n\n\t\t\tif ( inlineCssElement ) {\n\t\t\t\tdoc.head.appendChild( inlineCssElement.cloneNode( true ) );\n\t\t\t}\n\t\t}\n\t} );\n}\n\n/**\n * Bubbles some event types (keydown, keypress, and dragover) to parent document\n * document to ensure that the keyboard shortcuts and drag and drop work.\n *\n * Ideally, we should remove event bubbling in the future. Keyboard shortcuts\n * should be context dependent, e.g. actions on blocks like Cmd+A should not\n * work globally outside the block editor.\n *\n * @param {Document} doc Document to attach listeners to.\n */\nfunction bubbleEvents( doc ) {\n\tconst { defaultView } = doc;\n\tconst { frameElement } = defaultView;\n\n\tfunction bubbleEvent( event ) {\n\t\tconst prototype = Object.getPrototypeOf( event );\n\t\tconst constructorName = prototype.constructor.name;\n\t\tconst Constructor = window[ constructorName ];\n\n\t\tconst init = {};\n\n\t\tfor ( const key in event ) {\n\t\t\tinit[ key ] = event[ key ];\n\t\t}\n\n\t\tif ( event instanceof defaultView.MouseEvent ) {\n\t\t\tconst rect = frameElement.getBoundingClientRect();\n\t\t\tinit.clientX += rect.left;\n\t\t\tinit.clientY += rect.top;\n\t\t}\n\n\t\tconst newEvent = new Constructor( event.type, init );\n\t\tconst cancelled = ! frameElement.dispatchEvent( newEvent );\n\n\t\tif ( cancelled ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tconst eventTypes = [ 'dragover' ];\n\n\tfor ( const name of eventTypes ) {\n\t\tdoc.addEventListener( name, bubbleEvent );\n\t}\n}\n\nfunction useParsedAssets( html ) {\n\treturn useMemo( () => {\n\t\tconst doc = document.implementation.createHTMLDocument( '' );\n\t\tdoc.body.innerHTML = html;\n\t\treturn Array.from( doc.body.children );\n\t}, [ html ] );\n}\n\nasync function loadScript( head, { id, src } ) {\n\treturn new Promise( ( resolve, reject ) => {\n\t\tconst script = head.ownerDocument.createElement( 'script' );\n\t\tscript.id = id;\n\t\tif ( src ) {\n\t\t\tscript.src = src;\n\t\t\tscript.onload = () => resolve();\n\t\t\tscript.onerror = () => reject();\n\t\t} else {\n\t\t\tresolve();\n\t\t}\n\t\thead.appendChild( script );\n\t} );\n}\n\nfunction Iframe(\n\t{ contentRef, children, head, tabIndex = 0, assets, ...props },\n\tref\n) {\n\tconst [ , forceRender ] = useReducer( () => ( {} ) );\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst styles = useParsedAssets( assets?.styles );\n\tconst scripts = useParsedAssets( assets?.scripts );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\n\tconst setRef = useRefEffect( ( node ) => {\n\t\tfunction setDocumentIfReady() {\n\t\t\tconst { contentDocument, ownerDocument } = node;\n\t\t\tconst { readyState, documentElement } = contentDocument;\n\n\t\t\tif ( readyState !== 'interactive' && readyState !== 'complete' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tbubbleEvents( contentDocument );\n\t\t\tsetIframeDocument( contentDocument );\n\t\t\tclearerRef( documentElement );\n\n\t\t\t// Ideally ALL classes that are added through get_body_class should\n\t\t\t// be added in the editor too, which we'll somehow have to get from\n\t\t\t// the server in the future (which will run the PHP filters).\n\t\t\tsetBodyClasses(\n\t\t\t\tArray.from( ownerDocument.body.classList ).filter(\n\t\t\t\t\t( name ) =>\n\t\t\t\t\t\tname.startsWith( 'admin-color-' ) ||\n\t\t\t\t\t\tname.startsWith( 'post-type-' ) ||\n\t\t\t\t\t\tname === 'wp-embed-responsive'\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tcontentDocument.dir = ownerDocument.dir;\n\t\t\tdocumentElement.removeChild( contentDocument.head );\n\t\t\tdocumentElement.removeChild( contentDocument.body );\n\n\t\t\treturn true;\n\t\t}\n\n\t\t// Document set with srcDoc is not immediately ready.\n\t\tnode.addEventListener( 'load', setDocumentIfReady );\n\n\t\treturn () => node.removeEventListener( 'load', setDocumentIfReady );\n\t}, [] );\n\tconst headRef = useRefEffect( ( element ) => {\n\t\tscripts\n\t\t\t.reduce(\n\t\t\t\t( promise, script ) =>\n\t\t\t\t\tpromise.then( () => loadScript( element, script ) ),\n\t\t\t\tPromise.resolve()\n\t\t\t)\n\t\t\t.finally( () => {\n\t\t\t\t// When script are loaded, re-render blocks to allow them\n\t\t\t\t// to initialise.\n\t\t\t\tforceRender();\n\t\t\t} );\n\t}, [] );\n\tconst bodyRef = useMergeRefs( [ contentRef, clearerRef, writingFlowRef ] );\n\n\tuseEffect( () => {\n\t\tif ( iframeDocument ) {\n\t\t\tstyleSheetsCompat( iframeDocument );\n\t\t}\n\t}, [ iframeDocument ] );\n\n\thead = (\n\t\t<>\n\t\t\t<style>{ 'body{margin:0}' }</style>\n\t\t\t{ styles.map(\n\t\t\t\t( { tagName, href, id, rel, media, textContent } ) => {\n\t\t\t\t\tconst TagName = tagName.toLowerCase();\n\n\t\t\t\t\tif ( TagName === 'style' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TagName { ...{ id } } key={ id }>\n\t\t\t\t\t\t\t\t{ textContent }\n\t\t\t\t\t\t\t</TagName>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TagName { ...{ href, id, rel, media } } key={ id } />\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ head }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ tabIndex >= 0 && before }\n\t\t\t<iframe\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, setRef ] ) }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t// Correct doctype is required to enable rendering in standards mode\n\t\t\t\tsrcDoc=\"<!doctype html>\"\n\t\t\t\ttitle={ __( 'Editor canvas' ) }\n\t\t\t>\n\t\t\t\t{ iframeDocument &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<head ref={ headRef }>{ head }</head>\n\t\t\t\t\t\t\t<body\n\t\t\t\t\t\t\t\tref={ bodyRef }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tBODY_CLASS_NAME,\n\t\t\t\t\t\t\t\t\t...bodyClasses\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<StyleProvider document={ iframeDocument }>\n\t\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t\t</StyleProvider>\n\t\t\t\t\t\t\t</body>\n\t\t\t\t\t\t</>,\n\t\t\t\t\t\tiframeDocument.documentElement\n\t\t\t\t\t) }\n\t\t\t</iframe>\n\t\t\t{ tabIndex >= 0 && after }\n\t\t</>\n\t);\n}\n\nexport default forwardRef( Iframe );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/iframe/index.js"],"names":["classnames","useState","createPortal","forwardRef","useMemo","useReducer","__","useMergeRefs","useRefEffect","__experimentalStyleProvider","StyleProvider","useBlockSelectionClearer","useWritingFlow","BODY_CLASS_NAME","BLOCK_PREFIX","useStylesCompatibility","node","Array","from","document","styleSheets","forEach","styleSheet","cssRules","e","ownerNode","tagName","id","isMatch","find","selectorText","includes","ownerDocument","getElementById","appendChild","cloneNode","inlineCssId","replace","inlineCssElement","bubbleEvents","doc","defaultView","frameElement","bubbleEvent","event","prototype","Object","getPrototypeOf","constructorName","constructor","name","Constructor","window","init","key","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","cancelled","dispatchEvent","preventDefault","eventTypes","addEventListener","useParsedAssets","html","implementation","createHTMLDocument","body","innerHTML","children","loadScript","head","src","Promise","resolve","reject","script","createElement","onload","onerror","Iframe","ref","contentRef","tabIndex","assets","props","forceRender","iframeDocument","setIframeDocument","bodyClasses","setBodyClasses","styles","scripts","clearerRef","before","writingFlowRef","after","setRef","setDocumentIfReady","contentDocument","readyState","documentElement","classList","filter","startsWith","dir","removeChild","removeEventListener","headRef","element","reduce","promise","then","finally","bodyRef","styleCompatibilityRef","map","href","rel","media","textContent","TagName","toLowerCase","display"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreatePortal,\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useWritingFlow } from '../writing-flow';\n\nconst BODY_CLASS_NAME = 'editor-styles-wrapper';\nconst BLOCK_PREFIX = 'wp-block';\n\n/**\n * Clones stylesheets targetting the editor canvas to the given document. A\n * stylesheet is considered targetting the editor a canvas if it contains the\n * `editor-styles-wrapper`, `wp-block`, or `wp-block-*` class selectors.\n *\n * Ideally, this hook should be removed in the future and styles should be added\n * explicitly as editor styles.\n */\nfunction useStylesCompatibility() {\n\treturn useRefEffect( ( node ) => {\n\t\t// Search the document for stylesheets targetting the editor canvas.\n\t\tArray.from( document.styleSheets ).forEach( ( styleSheet ) => {\n\t\t\ttry {\n\t\t\t\t// May fail for external styles.\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\tstyleSheet.cssRules;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { ownerNode, cssRules } = styleSheet;\n\n\t\t\tif ( ! cssRules ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Generally, ignore inline styles. We add inline styles belonging to a\n\t\t\t// stylesheet later, which may or may not match the selectors.\n\t\t\tif ( ownerNode.tagName !== 'LINK' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Don't try to add the reset styles, which were removed as a dependency\n\t\t\t// from `edit-blocks` for the iframe since we don't need to reset admin\n\t\t\t// styles.\n\t\t\tif ( ownerNode.id === 'wp-reset-editor-styles-css' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isMatch = Array.from( cssRules ).find(\n\t\t\t\t( { selectorText } ) =>\n\t\t\t\t\tselectorText &&\n\t\t\t\t\t( selectorText.includes( `.${ BODY_CLASS_NAME }` ) ||\n\t\t\t\t\t\tselectorText.includes( `.${ BLOCK_PREFIX }` ) )\n\t\t\t);\n\n\t\t\tif (\n\t\t\t\tisMatch &&\n\t\t\t\t! node.ownerDocument.getElementById( ownerNode.id )\n\t\t\t) {\n\t\t\t\t// Display warning once we have a way to add style dependencies to the editor.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/37466.\n\t\t\t\tnode.appendChild( ownerNode.cloneNode( true ) );\n\n\t\t\t\t// Add inline styles belonging to the stylesheet.\n\t\t\t\tconst inlineCssId = ownerNode.id.replace(\n\t\t\t\t\t'-css',\n\t\t\t\t\t'-inline-css'\n\t\t\t\t);\n\t\t\t\tconst inlineCssElement = document.getElementById( inlineCssId );\n\n\t\t\t\tif ( inlineCssElement ) {\n\t\t\t\t\tnode.appendChild( inlineCssElement.cloneNode( true ) );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}, [] );\n}\n\n/**\n * Bubbles some event types (keydown, keypress, and dragover) to parent document\n * document to ensure that the keyboard shortcuts and drag and drop work.\n *\n * Ideally, we should remove event bubbling in the future. Keyboard shortcuts\n * should be context dependent, e.g. actions on blocks like Cmd+A should not\n * work globally outside the block editor.\n *\n * @param {Document} doc Document to attach listeners to.\n */\nfunction bubbleEvents( doc ) {\n\tconst { defaultView } = doc;\n\tconst { frameElement } = defaultView;\n\n\tfunction bubbleEvent( event ) {\n\t\tconst prototype = Object.getPrototypeOf( event );\n\t\tconst constructorName = prototype.constructor.name;\n\t\tconst Constructor = window[ constructorName ];\n\n\t\tconst init = {};\n\n\t\tfor ( const key in event ) {\n\t\t\tinit[ key ] = event[ key ];\n\t\t}\n\n\t\tif ( event instanceof defaultView.MouseEvent ) {\n\t\t\tconst rect = frameElement.getBoundingClientRect();\n\t\t\tinit.clientX += rect.left;\n\t\t\tinit.clientY += rect.top;\n\t\t}\n\n\t\tconst newEvent = new Constructor( event.type, init );\n\t\tconst cancelled = ! frameElement.dispatchEvent( newEvent );\n\n\t\tif ( cancelled ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tconst eventTypes = [ 'dragover' ];\n\n\tfor ( const name of eventTypes ) {\n\t\tdoc.addEventListener( name, bubbleEvent );\n\t}\n}\n\nfunction useParsedAssets( html ) {\n\treturn useMemo( () => {\n\t\tconst doc = document.implementation.createHTMLDocument( '' );\n\t\tdoc.body.innerHTML = html;\n\t\treturn Array.from( doc.body.children );\n\t}, [ html ] );\n}\n\nasync function loadScript( head, { id, src } ) {\n\treturn new Promise( ( resolve, reject ) => {\n\t\tconst script = head.ownerDocument.createElement( 'script' );\n\t\tscript.id = id;\n\t\tif ( src ) {\n\t\t\tscript.src = src;\n\t\t\tscript.onload = () => resolve();\n\t\t\tscript.onerror = () => reject();\n\t\t} else {\n\t\t\tresolve();\n\t\t}\n\t\thead.appendChild( script );\n\t} );\n}\n\nfunction Iframe(\n\t{ contentRef, children, head, tabIndex = 0, assets, ...props },\n\tref\n) {\n\tconst [ , forceRender ] = useReducer( () => ( {} ) );\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst styles = useParsedAssets( assets?.styles );\n\tconst scripts = useParsedAssets( assets?.scripts );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\n\tconst setRef = useRefEffect( ( node ) => {\n\t\tfunction setDocumentIfReady() {\n\t\t\tconst { contentDocument, ownerDocument } = node;\n\t\t\tconst { readyState, documentElement } = contentDocument;\n\n\t\t\tif ( readyState !== 'interactive' && readyState !== 'complete' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tbubbleEvents( contentDocument );\n\t\t\tsetIframeDocument( contentDocument );\n\t\t\tclearerRef( documentElement );\n\n\t\t\t// Ideally ALL classes that are added through get_body_class should\n\t\t\t// be added in the editor too, which we'll somehow have to get from\n\t\t\t// the server in the future (which will run the PHP filters).\n\t\t\tsetBodyClasses(\n\t\t\t\tArray.from( ownerDocument.body.classList ).filter(\n\t\t\t\t\t( name ) =>\n\t\t\t\t\t\tname.startsWith( 'admin-color-' ) ||\n\t\t\t\t\t\tname.startsWith( 'post-type-' ) ||\n\t\t\t\t\t\tname === 'wp-embed-responsive'\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tcontentDocument.dir = ownerDocument.dir;\n\t\t\tdocumentElement.removeChild( contentDocument.head );\n\t\t\tdocumentElement.removeChild( contentDocument.body );\n\n\t\t\treturn true;\n\t\t}\n\n\t\t// Document set with srcDoc is not immediately ready.\n\t\tnode.addEventListener( 'load', setDocumentIfReady );\n\n\t\treturn () => node.removeEventListener( 'load', setDocumentIfReady );\n\t}, [] );\n\tconst headRef = useRefEffect( ( element ) => {\n\t\tscripts\n\t\t\t.reduce(\n\t\t\t\t( promise, script ) =>\n\t\t\t\t\tpromise.then( () => loadScript( element, script ) ),\n\t\t\t\tPromise.resolve()\n\t\t\t)\n\t\t\t.finally( () => {\n\t\t\t\t// When script are loaded, re-render blocks to allow them\n\t\t\t\t// to initialise.\n\t\t\t\tforceRender();\n\t\t\t} );\n\t}, [] );\n\tconst bodyRef = useMergeRefs( [ contentRef, clearerRef, writingFlowRef ] );\n\tconst styleCompatibilityRef = useStylesCompatibility();\n\n\thead = (\n\t\t<>\n\t\t\t<style>{ 'body{margin:0}' }</style>\n\t\t\t{ styles.map(\n\t\t\t\t( { tagName, href, id, rel, media, textContent } ) => {\n\t\t\t\t\tconst TagName = tagName.toLowerCase();\n\n\t\t\t\t\tif ( TagName === 'style' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TagName { ...{ id } } key={ id }>\n\t\t\t\t\t\t\t\t{ textContent }\n\t\t\t\t\t\t\t</TagName>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TagName { ...{ href, id, rel, media } } key={ id } />\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ head }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ tabIndex >= 0 && before }\n\t\t\t<iframe\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, setRef ] ) }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t// Correct doctype is required to enable rendering in standards mode\n\t\t\t\tsrcDoc=\"<!doctype html>\"\n\t\t\t\ttitle={ __( 'Editor canvas' ) }\n\t\t\t>\n\t\t\t\t{ iframeDocument &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<head ref={ headRef }>{ head }</head>\n\t\t\t\t\t\t\t<body\n\t\t\t\t\t\t\t\tref={ bodyRef }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tBODY_CLASS_NAME,\n\t\t\t\t\t\t\t\t\t...bodyClasses\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t * This is a wrapper for the extra styles and scripts\n\t\t\t\t\t\t\t\t * rendered imperatively by cloning the parent,\n\t\t\t\t\t\t\t\t * it's important that this div's content remains uncontrolled.\n\t\t\t\t\t\t\t\t */ }\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={ { display: 'none' } }\n\t\t\t\t\t\t\t\t\tref={ styleCompatibilityRef }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<StyleProvider document={ iframeDocument }>\n\t\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t\t</StyleProvider>\n\t\t\t\t\t\t\t</body>\n\t\t\t\t\t\t</>,\n\t\t\t\t\t\tiframeDocument.documentElement\n\t\t\t\t\t) }\n\t\t\t</iframe>\n\t\t\t{ tabIndex >= 0 && after }\n\t\t</>\n\t);\n}\n\nexport default forwardRef( Iframe );\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/image-editor/aspect-ratio-dropdown.js"],"names":["check","aspectRatio","aspectRatioIcon","DropdownMenu","MenuGroup","MenuItem","__","POPOVER_PROPS","useImageEditingContext","AspectGroup","aspectRatios","isDisabled","label","onClick","value","map","title","aspect","undefined","AspectRatioDropdown","toggleProps","isInProgress","setAspect","defaultAspect","onClose","newAspect"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { check, aspectRatio as aspectRatioIcon } from '@wordpress/icons';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { POPOVER_PROPS } from './constants';\nimport { useImageEditingContext } from './context';\n\nfunction AspectGroup( { aspectRatios, isDisabled, label, onClick, value } ) {\n\treturn (\n\t\t<MenuGroup label={ label }>\n\t\t\t{ aspectRatios.map( ( { title, aspect } ) => (\n\t\t\t\t<MenuItem\n\t\t\t\t\tkey={ aspect }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonClick( aspect );\n\t\t\t\t\t} }\n\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\tisSelected={ aspect === value }\n\t\t\t\t\ticon={ aspect === value ? check : undefined }\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</MenuItem>\n\t\t\t) ) }\n\t\t</MenuGroup>\n\t);\n}\n\nexport default function AspectRatioDropdown( { toggleProps } ) {\n\tconst {\n\t\tisInProgress,\n\t\taspect,\n\t\tsetAspect,\n\t\tdefaultAspect,\n\t} = useImageEditingContext();\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ aspectRatioIcon }\n\t\t\tlabel={ __( 'Aspect Ratio' ) }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tclassName=\"wp-block-image__aspect-ratio\"\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<AspectGroup\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( 'Original' ),\n\t\t\t\t\t\t\t\taspect: defaultAspect,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( 'Square' ),\n\t\t\t\t\t\t\t\taspect: 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t\t<AspectGroup\n\t\t\t\t\t\tlabel={ __( 'Landscape' ) }\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '16:10' ),\n\t\t\t\t\t\t\t\taspect: 16 / 10,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '16:9' ),\n\t\t\t\t\t\t\t\taspect: 16 / 9,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '4:3' ),\n\t\t\t\t\t\t\t\taspect: 4 / 3,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '3:2' ),\n\t\t\t\t\t\t\t\taspect: 3 / 2,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t\t<AspectGroup\n\t\t\t\t\t\tlabel={ __( 'Portrait' ) }\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '10:16' ),\n\t\t\t\t\t\t\t\taspect: 10 / 16,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '9:16' ),\n\t\t\t\t\t\t\t\taspect: 9 / 16,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '3:4' ),\n\t\t\t\t\t\t\t\taspect: 3 / 4,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '2:3' ),\n\t\t\t\t\t\t\t\taspect: 2 / 3,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/image-editor/aspect-ratio-dropdown.js"],"names":["check","aspectRatio","aspectRatioIcon","DropdownMenu","MenuGroup","MenuItem","__","POPOVER_PROPS","useImageEditingContext","AspectGroup","aspectRatios","isDisabled","label","onClick","value","map","title","aspect","undefined","AspectRatioDropdown","toggleProps","isInProgress","setAspect","defaultAspect","onClose","newAspect"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { check, aspectRatio as aspectRatioIcon } from '@wordpress/icons';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { POPOVER_PROPS } from './constants';\nimport { useImageEditingContext } from './context';\n\nfunction AspectGroup( { aspectRatios, isDisabled, label, onClick, value } ) {\n\treturn (\n\t\t<MenuGroup label={ label }>\n\t\t\t{ aspectRatios.map( ( { title, aspect } ) => (\n\t\t\t\t<MenuItem\n\t\t\t\t\tkey={ aspect }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonClick( aspect );\n\t\t\t\t\t} }\n\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\tisSelected={ aspect === value }\n\t\t\t\t\ticon={ aspect === value ? check : undefined }\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</MenuItem>\n\t\t\t) ) }\n\t\t</MenuGroup>\n\t);\n}\n\nexport default function AspectRatioDropdown( { toggleProps } ) {\n\tconst { isInProgress, aspect, setAspect, defaultAspect } =\n\t\tuseImageEditingContext();\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ aspectRatioIcon }\n\t\t\tlabel={ __( 'Aspect Ratio' ) }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tclassName=\"wp-block-image__aspect-ratio\"\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<AspectGroup\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( 'Original' ),\n\t\t\t\t\t\t\t\taspect: defaultAspect,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( 'Square' ),\n\t\t\t\t\t\t\t\taspect: 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t\t<AspectGroup\n\t\t\t\t\t\tlabel={ __( 'Landscape' ) }\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '16:10' ),\n\t\t\t\t\t\t\t\taspect: 16 / 10,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '16:9' ),\n\t\t\t\t\t\t\t\taspect: 16 / 9,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '4:3' ),\n\t\t\t\t\t\t\t\taspect: 4 / 3,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '3:2' ),\n\t\t\t\t\t\t\t\taspect: 3 / 2,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t\t<AspectGroup\n\t\t\t\t\t\tlabel={ __( 'Portrait' ) }\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '10:16' ),\n\t\t\t\t\t\t\t\taspect: 10 / 16,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '9:16' ),\n\t\t\t\t\t\t\t\taspect: 9 / 16,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '3:4' ),\n\t\t\t\t\t\t\t\taspect: 3 / 4,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '2:3' ),\n\t\t\t\t\t\t\t\taspect: 2 / 3,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"]}
@@ -6,6 +6,7 @@ import { useDispatch } from '@wordpress/data';
6
6
  import { useCallback, useMemo, useState } from '@wordpress/element';
7
7
  import { __, sprintf } from '@wordpress/i18n';
8
8
  import { store as noticesStore } from '@wordpress/notices';
9
+ import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
9
10
  export default function useSaveImage(_ref) {
10
11
  let {
11
12
  crop,
@@ -53,7 +54,7 @@ export default function useSaveImage(_ref) {
53
54
  }).catch(error => {
54
55
  createErrorNotice(sprintf(
55
56
  /* translators: 1. Error message */
56
- __('Could not edit image. %s'), error.message), {
57
+ __('Could not edit image. %s'), stripHTML(error.message)), {
57
58
  id: 'image-editing-error',
58
59
  type: 'snackbar'
59
60
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/image-editor/use-save-image.js"],"names":["apiFetch","useDispatch","useCallback","useMemo","useState","__","sprintf","store","noticesStore","useSaveImage","crop","rotation","height","width","aspect","url","id","onSaveImage","onFinishEditing","createErrorNotice","isInProgress","setIsInProgress","cancel","apply","attrs","src","path","method","data","then","response","source_url","undefined","catch","error","message","type","finally"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,QAAP,MAAqB,sBAArB;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,WAAT,EAAsBC,OAAtB,EAA+BC,QAA/B,QAA+C,oBAA/C;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,KAAK,IAAIC,YAAlB,QAAsC,oBAAtC;AAEA,eAAe,SAASC,YAAT,OAUX;AAAA,MAVkC;AACrCC,IAAAA,IADqC;AAErCC,IAAAA,QAFqC;AAGrCC,IAAAA,MAHqC;AAIrCC,IAAAA,KAJqC;AAKrCC,IAAAA,MALqC;AAMrCC,IAAAA,GANqC;AAOrCC,IAAAA,EAPqC;AAQrCC,IAAAA,WARqC;AASrCC,IAAAA;AATqC,GAUlC;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAwBlB,WAAW,CAAEO,YAAF,CAAzC;AACA,QAAM,CAAEY,YAAF,EAAgBC,eAAhB,IAAoCjB,QAAQ,CAAE,KAAF,CAAlD;AAEA,QAAMkB,MAAM,GAAGpB,WAAW,CAAE,MAAM;AACjCmB,IAAAA,eAAe,CAAE,KAAF,CAAf;AACAH,IAAAA,eAAe;AACf,GAHyB,EAGvB,CAAEG,eAAF,EAAmBH,eAAnB,CAHuB,CAA1B;AAKA,QAAMK,KAAK,GAAGrB,WAAW,CAAE,MAAM;AAChCmB,IAAAA,eAAe,CAAE,IAAF,CAAf;AAEA,QAAIG,KAAK,GAAG,EAAZ,CAHgC,CAKhC;AACA;;AACA,QAAKd,IAAI,CAACG,KAAL,GAAa,IAAb,IAAqBH,IAAI,CAACE,MAAL,GAAc,IAAxC,EAA+C;AAC9CY,MAAAA,KAAK,GAAGd,IAAR;AACA;;AAED,QAAKC,QAAQ,GAAG,CAAhB,EAAoB;AACnBa,MAAAA,KAAK,CAACb,QAAN,GAAiBA,QAAjB;AACA;;AAEDa,IAAAA,KAAK,CAACC,GAAN,GAAYV,GAAZ;AAEAf,IAAAA,QAAQ,CAAE;AACT0B,MAAAA,IAAI,EAAG,gBAAgBV,EAAI,OADlB;AAETW,MAAAA,MAAM,EAAE,MAFC;AAGTC,MAAAA,IAAI,EAAEJ;AAHG,KAAF,CAAR,CAKEK,IALF,CAKUC,QAAF,IAAgB;AACtBb,MAAAA,WAAW,CAAE;AACZD,QAAAA,EAAE,EAAEc,QAAQ,CAACd,EADD;AAEZD,QAAAA,GAAG,EAAEe,QAAQ,CAACC,UAFF;AAGZnB,QAAAA,MAAM,EAAEA,MAAM,IAAIC,KAAV,GAAkBA,KAAK,GAAGC,MAA1B,GAAmCkB;AAH/B,OAAF,CAAX;AAKA,KAXF,EAYEC,KAZF,CAYWC,KAAF,IAAa;AACpBf,MAAAA,iBAAiB,CAChBb,OAAO;AACN;AACAD,MAAAA,EAAE,CAAE,0BAAF,CAFI,EAGN6B,KAAK,CAACC,OAHA,CADS,EAMhB;AACCnB,QAAAA,EAAE,EAAE,qBADL;AAECoB,QAAAA,IAAI,EAAE;AAFP,OANgB,CAAjB;AAWA,KAxBF,EAyBEC,OAzBF,CAyBW,MAAM;AACfhB,MAAAA,eAAe,CAAE,KAAF,CAAf;AACAH,MAAAA,eAAe;AACf,KA5BF;AA6BA,GA9CwB,EA8CtB,CACFG,eADE,EAEFX,IAFE,EAGFC,QAHE,EAIFC,MAJE,EAKFC,KALE,EAMFC,MANE,EAOFC,GAPE,EAQFE,WARE,EASFE,iBATE,EAUFE,eAVE,EAWFH,eAXE,CA9CsB,CAAzB;AA4DA,SAAOf,OAAO,CACb,OAAQ;AACPiB,IAAAA,YADO;AAEPG,IAAAA,KAFO;AAGPD,IAAAA;AAHO,GAAR,CADa,EAMb,CAAEF,YAAF,EAAgBG,KAAhB,EAAuBD,MAAvB,CANa,CAAd;AAQA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function useSaveImage( {\n\tcrop,\n\trotation,\n\theight,\n\twidth,\n\taspect,\n\turl,\n\tid,\n\tonSaveImage,\n\tonFinishEditing,\n} ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst [ isInProgress, setIsInProgress ] = useState( false );\n\n\tconst cancel = useCallback( () => {\n\t\tsetIsInProgress( false );\n\t\tonFinishEditing();\n\t}, [ setIsInProgress, onFinishEditing ] );\n\n\tconst apply = useCallback( () => {\n\t\tsetIsInProgress( true );\n\n\t\tlet attrs = {};\n\n\t\t// The crop script may return some very small, sub-pixel values when the image was not cropped.\n\t\t// Crop only when the new size has changed by more than 0.1%.\n\t\tif ( crop.width < 99.9 || crop.height < 99.9 ) {\n\t\t\tattrs = crop;\n\t\t}\n\n\t\tif ( rotation > 0 ) {\n\t\t\tattrs.rotation = rotation;\n\t\t}\n\n\t\tattrs.src = url;\n\n\t\tapiFetch( {\n\t\t\tpath: `/wp/v2/media/${ id }/edit`,\n\t\t\tmethod: 'POST',\n\t\t\tdata: attrs,\n\t\t} )\n\t\t\t.then( ( response ) => {\n\t\t\t\tonSaveImage( {\n\t\t\t\t\tid: response.id,\n\t\t\t\t\turl: response.source_url,\n\t\t\t\t\theight: height && width ? width / aspect : undefined,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: 1. Error message */\n\t\t\t\t\t\t__( 'Could not edit image. %s' ),\n\t\t\t\t\t\terror.message\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'image-editing-error',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.finally( () => {\n\t\t\t\tsetIsInProgress( false );\n\t\t\t\tonFinishEditing();\n\t\t\t} );\n\t}, [\n\t\tsetIsInProgress,\n\t\tcrop,\n\t\trotation,\n\t\theight,\n\t\twidth,\n\t\taspect,\n\t\turl,\n\t\tonSaveImage,\n\t\tcreateErrorNotice,\n\t\tsetIsInProgress,\n\t\tonFinishEditing,\n\t] );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tisInProgress,\n\t\t\tapply,\n\t\t\tcancel,\n\t\t} ),\n\t\t[ isInProgress, apply, cancel ]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/image-editor/use-save-image.js"],"names":["apiFetch","useDispatch","useCallback","useMemo","useState","__","sprintf","store","noticesStore","__unstableStripHTML","stripHTML","useSaveImage","crop","rotation","height","width","aspect","url","id","onSaveImage","onFinishEditing","createErrorNotice","isInProgress","setIsInProgress","cancel","apply","attrs","src","path","method","data","then","response","source_url","undefined","catch","error","message","type","finally"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\nexport default function useSaveImage( {\n\tcrop,\n\trotation,\n\theight,\n\twidth,\n\taspect,\n\turl,\n\tid,\n\tonSaveImage,\n\tonFinishEditing,\n} ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst [ isInProgress, setIsInProgress ] = useState( false );\n\n\tconst cancel = useCallback( () => {\n\t\tsetIsInProgress( false );\n\t\tonFinishEditing();\n\t}, [ setIsInProgress, onFinishEditing ] );\n\n\tconst apply = useCallback( () => {\n\t\tsetIsInProgress( true );\n\n\t\tlet attrs = {};\n\n\t\t// The crop script may return some very small, sub-pixel values when the image was not cropped.\n\t\t// Crop only when the new size has changed by more than 0.1%.\n\t\tif ( crop.width < 99.9 || crop.height < 99.9 ) {\n\t\t\tattrs = crop;\n\t\t}\n\n\t\tif ( rotation > 0 ) {\n\t\t\tattrs.rotation = rotation;\n\t\t}\n\n\t\tattrs.src = url;\n\n\t\tapiFetch( {\n\t\t\tpath: `/wp/v2/media/${ id }/edit`,\n\t\t\tmethod: 'POST',\n\t\t\tdata: attrs,\n\t\t} )\n\t\t\t.then( ( response ) => {\n\t\t\t\tonSaveImage( {\n\t\t\t\t\tid: response.id,\n\t\t\t\t\turl: response.source_url,\n\t\t\t\t\theight: height && width ? width / aspect : undefined,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: 1. Error message */\n\t\t\t\t\t\t__( 'Could not edit image. %s' ),\n\t\t\t\t\t\tstripHTML( error.message )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'image-editing-error',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.finally( () => {\n\t\t\t\tsetIsInProgress( false );\n\t\t\t\tonFinishEditing();\n\t\t\t} );\n\t}, [\n\t\tsetIsInProgress,\n\t\tcrop,\n\t\trotation,\n\t\theight,\n\t\twidth,\n\t\taspect,\n\t\turl,\n\t\tonSaveImage,\n\t\tcreateErrorNotice,\n\t\tsetIsInProgress,\n\t\tonFinishEditing,\n\t] );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tisInProgress,\n\t\t\tapply,\n\t\t\tcancel,\n\t\t} ),\n\t\t[ isInProgress, apply, cancel ]\n\t);\n}\n"]}
@@ -3,7 +3,7 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { isEmpty, noop } from 'lodash';
6
+ import { isEmpty } from 'lodash';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
@@ -16,6 +16,9 @@ import { __ } from '@wordpress/i18n';
16
16
 
17
17
  import useDimensionHandler from './use-dimension-handler';
18
18
  const IMAGE_SIZE_PRESETS = [25, 50, 75, 100];
19
+
20
+ const noop = () => {};
21
+
19
22
  export default function ImageSizeControl(_ref) {
20
23
  let {
21
24
  imageWidth,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/image-size-control/index.js"],"names":["isEmpty","noop","Button","ButtonGroup","SelectControl","TextControl","__","useDimensionHandler","IMAGE_SIZE_PRESETS","ImageSizeControl","imageWidth","imageHeight","imageSizeOptions","isResizable","slug","width","height","onChange","onChangeImage","currentHeight","currentWidth","updateDimension","updateDimensions","value","map","scale","scaledWidth","Math","round","scaledHeight","isCurrent","undefined"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty, noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tButtonGroup,\n\tSelectControl,\n\tTextControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDimensionHandler from './use-dimension-handler';\n\nconst IMAGE_SIZE_PRESETS = [ 25, 50, 75, 100 ];\n\nexport default function ImageSizeControl( {\n\timageWidth,\n\timageHeight,\n\timageSizeOptions = [],\n\tisResizable = true,\n\tslug,\n\twidth,\n\theight,\n\tonChange,\n\tonChangeImage = noop,\n} ) {\n\tconst {\n\t\tcurrentHeight,\n\t\tcurrentWidth,\n\t\tupdateDimension,\n\t\tupdateDimensions,\n\t} = useDimensionHandler( height, width, imageHeight, imageWidth, onChange );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isEmpty( imageSizeOptions ) && (\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\tvalue={ slug }\n\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\tonChange={ onChangeImage }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isResizable && (\n\t\t\t\t<div className=\"block-editor-image-size-control\">\n\t\t\t\t\t<p className=\"block-editor-image-size-control__row\">\n\t\t\t\t\t\t{ __( 'Image dimensions' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<div className=\"block-editor-image-size-control__row\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tclassName=\"block-editor-image-size-control__width\"\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tvalue={ currentWidth }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'width', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tclassName=\"block-editor-image-size-control__height\"\n\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\tvalue={ currentHeight }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'height', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"block-editor-image-size-control__row\">\n\t\t\t\t\t\t<ButtonGroup aria-label={ __( 'Image size presets' ) }>\n\t\t\t\t\t\t\t{ IMAGE_SIZE_PRESETS.map( ( scale ) => {\n\t\t\t\t\t\t\t\tconst scaledWidth = Math.round(\n\t\t\t\t\t\t\t\t\timageWidth * ( scale / 100 )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tconst scaledHeight = Math.round(\n\t\t\t\t\t\t\t\t\timageHeight * ( scale / 100 )\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tconst isCurrent =\n\t\t\t\t\t\t\t\t\tcurrentWidth === scaledWidth &&\n\t\t\t\t\t\t\t\t\tcurrentHeight === scaledHeight;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ scale }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\tisCurrent ? 'primary' : undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisPressed={ isCurrent }\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tupdateDimensions(\n\t\t\t\t\t\t\t\t\t\t\t\tscaledHeight,\n\t\t\t\t\t\t\t\t\t\t\t\tscaledWidth\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ scale }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t\t<Button isSmall onClick={ () => updateDimensions() }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/image-size-control/index.js"],"names":["isEmpty","Button","ButtonGroup","SelectControl","TextControl","__","useDimensionHandler","IMAGE_SIZE_PRESETS","noop","ImageSizeControl","imageWidth","imageHeight","imageSizeOptions","isResizable","slug","width","height","onChange","onChangeImage","currentHeight","currentWidth","updateDimension","updateDimensions","value","map","scale","scaledWidth","Math","round","scaledHeight","isCurrent","undefined"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tButtonGroup,\n\tSelectControl,\n\tTextControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDimensionHandler from './use-dimension-handler';\n\nconst IMAGE_SIZE_PRESETS = [ 25, 50, 75, 100 ];\nconst noop = () => {};\n\nexport default function ImageSizeControl( {\n\timageWidth,\n\timageHeight,\n\timageSizeOptions = [],\n\tisResizable = true,\n\tslug,\n\twidth,\n\theight,\n\tonChange,\n\tonChangeImage = noop,\n} ) {\n\tconst { currentHeight, currentWidth, updateDimension, updateDimensions } =\n\t\tuseDimensionHandler( height, width, imageHeight, imageWidth, onChange );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isEmpty( imageSizeOptions ) && (\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\tvalue={ slug }\n\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\tonChange={ onChangeImage }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isResizable && (\n\t\t\t\t<div className=\"block-editor-image-size-control\">\n\t\t\t\t\t<p className=\"block-editor-image-size-control__row\">\n\t\t\t\t\t\t{ __( 'Image dimensions' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<div className=\"block-editor-image-size-control__row\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tclassName=\"block-editor-image-size-control__width\"\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tvalue={ currentWidth }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'width', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tclassName=\"block-editor-image-size-control__height\"\n\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\tvalue={ currentHeight }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'height', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"block-editor-image-size-control__row\">\n\t\t\t\t\t\t<ButtonGroup aria-label={ __( 'Image size presets' ) }>\n\t\t\t\t\t\t\t{ IMAGE_SIZE_PRESETS.map( ( scale ) => {\n\t\t\t\t\t\t\t\tconst scaledWidth = Math.round(\n\t\t\t\t\t\t\t\t\timageWidth * ( scale / 100 )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tconst scaledHeight = Math.round(\n\t\t\t\t\t\t\t\t\timageHeight * ( scale / 100 )\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tconst isCurrent =\n\t\t\t\t\t\t\t\t\tcurrentWidth === scaledWidth &&\n\t\t\t\t\t\t\t\t\tcurrentHeight === scaledHeight;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ scale }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\tisCurrent ? 'primary' : undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisPressed={ isCurrent }\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tupdateDimensions(\n\t\t\t\t\t\t\t\t\t\t\t\tscaledHeight,\n\t\t\t\t\t\t\t\t\t\t\t\tscaledWidth\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ scale }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t\t<Button isSmall onClick={ () => updateDimensions() }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}