@wordpress/block-editor 14.7.1-next.082ed6819.0 → 14.8.1-next.cd6172eb0.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 (262) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/autocompleters/block.js +2 -4
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/autocompleters/link.js +2 -4
  5. package/build/autocompleters/link.js.map +1 -1
  6. package/build/components/block-canvas/index.js +3 -6
  7. package/build/components/block-canvas/index.js.map +1 -1
  8. package/build/components/block-list/block.js +6 -5
  9. package/build/components/block-list/block.js.map +1 -1
  10. package/build/components/block-list/index.js +0 -1
  11. package/build/components/block-list/index.js.map +1 -1
  12. package/build/components/block-list/use-block-props/index.js +7 -2
  13. package/build/components/block-list/use-block-props/index.js.map +1 -1
  14. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +34 -0
  15. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -0
  16. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +98 -5
  17. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  18. package/build/components/block-patterns-list/index.js +13 -4
  19. package/build/components/block-patterns-list/index.js.map +1 -1
  20. package/build/components/block-popover/inbetween.js +4 -0
  21. package/build/components/block-popover/inbetween.js.map +1 -1
  22. package/build/components/block-settings-menu/block-settings-dropdown.js +7 -4
  23. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  24. package/build/components/block-settings-menu-controls/index.js +1 -1
  25. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  26. package/build/components/block-switcher/index.js +12 -22
  27. package/build/components/block-switcher/index.js.map +1 -1
  28. package/build/components/block-switcher/use-transformed-patterns.js +0 -1
  29. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  30. package/build/components/block-switcher/utils.js +0 -1
  31. package/build/components/block-switcher/utils.js.map +1 -1
  32. package/build/components/block-toolbar/index.js +17 -9
  33. package/build/components/block-toolbar/index.js.map +1 -1
  34. package/build/components/block-variation-transforms/index.js +0 -1
  35. package/build/components/block-variation-transforms/index.js.map +1 -1
  36. package/build/components/date-format-picker/index.js +0 -1
  37. package/build/components/date-format-picker/index.js.map +1 -1
  38. package/build/components/font-appearance-control/index.js +1 -0
  39. package/build/components/font-appearance-control/index.js.map +1 -1
  40. package/build/components/font-family/index.js +10 -0
  41. package/build/components/font-family/index.js.map +1 -1
  42. package/build/components/global-styles/dimensions-panel.js +17 -16
  43. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  44. package/build/components/global-styles/get-global-styles-changes.js +0 -1
  45. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  46. package/build/components/iframe/index.js +12 -216
  47. package/build/components/iframe/index.js.map +1 -1
  48. package/build/components/iframe/use-scale-canvas.js +398 -0
  49. package/build/components/iframe/use-scale-canvas.js.map +1 -0
  50. package/build/components/image-editor/use-save-image.js +22 -3
  51. package/build/components/image-editor/use-save-image.js.map +1 -1
  52. package/build/components/inserter/block-patterns-tab/index.js +0 -10
  53. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  54. package/build/components/inserter/menu.js +2 -1
  55. package/build/components/inserter/menu.js.map +1 -1
  56. package/build/components/inserter-draggable-blocks/index.js +19 -10
  57. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  58. package/build/components/letter-spacing-control/index.js +10 -0
  59. package/build/components/letter-spacing-control/index.js.map +1 -1
  60. package/build/components/line-height-control/index.js +1 -0
  61. package/build/components/line-height-control/index.js.map +1 -1
  62. package/build/components/media-placeholder/index.js +18 -18
  63. package/build/components/media-placeholder/index.js.map +1 -1
  64. package/build/components/observe-typing/index.js +0 -1
  65. package/build/components/observe-typing/index.js.map +1 -1
  66. package/build/components/recursion-provider/index.js +0 -1
  67. package/build/components/recursion-provider/index.js.map +1 -1
  68. package/build/components/rich-text/index.js +5 -1
  69. package/build/components/rich-text/index.js.map +1 -1
  70. package/build/components/rich-text/native/use-format-types.js +0 -1
  71. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  72. package/build/components/rich-text/use-format-types.js +0 -1
  73. package/build/components/rich-text/use-format-types.js.map +1 -1
  74. package/build/components/spacing-sizes-control/utils.js +0 -1
  75. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  76. package/build/components/typewriter/index.js +0 -1
  77. package/build/components/typewriter/index.js.map +1 -1
  78. package/build/components/use-block-drop-zone/index.js +11 -2
  79. package/build/components/use-block-drop-zone/index.js.map +1 -1
  80. package/build/components/use-moving-animation/index.js +15 -2
  81. package/build/components/use-moving-animation/index.js.map +1 -1
  82. package/build/components/use-resize-canvas/index.js +1 -1
  83. package/build/components/use-resize-canvas/index.js.map +1 -1
  84. package/build/components/writing-flow/use-drag-selection.js +11 -0
  85. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  86. package/build/components/writing-flow/use-tab-nav.js +6 -2
  87. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  88. package/build/hooks/block-bindings.js +4 -3
  89. package/build/hooks/block-bindings.js.map +1 -1
  90. package/build/hooks/gap.js +1 -1
  91. package/build/hooks/gap.js.map +1 -1
  92. package/build/hooks/generated-class-name.js +0 -1
  93. package/build/hooks/generated-class-name.js.map +1 -1
  94. package/build/store/private-selectors.js +1 -7
  95. package/build/store/private-selectors.js.map +1 -1
  96. package/build/store/reducer.js +478 -2
  97. package/build/store/reducer.js.map +1 -1
  98. package/build/store/selectors.js +12 -55
  99. package/build/store/selectors.js.map +1 -1
  100. package/build/utils/object.js +0 -1
  101. package/build/utils/object.js.map +1 -1
  102. package/build-module/autocompleters/block.js +2 -4
  103. package/build-module/autocompleters/block.js.map +1 -1
  104. package/build-module/autocompleters/link.js +2 -4
  105. package/build-module/autocompleters/link.js.map +1 -1
  106. package/build-module/components/block-canvas/index.js +3 -6
  107. package/build-module/components/block-canvas/index.js.map +1 -1
  108. package/build-module/components/block-list/block.js +8 -7
  109. package/build-module/components/block-list/block.js.map +1 -1
  110. package/build-module/components/block-list/index.js +0 -1
  111. package/build-module/components/block-list/index.js.map +1 -1
  112. package/build-module/components/block-list/use-block-props/index.js +7 -2
  113. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  114. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +28 -0
  115. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -0
  116. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +97 -5
  117. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  118. package/build-module/components/block-patterns-list/index.js +13 -4
  119. package/build-module/components/block-patterns-list/index.js.map +1 -1
  120. package/build-module/components/block-popover/inbetween.js +4 -0
  121. package/build-module/components/block-popover/inbetween.js.map +1 -1
  122. package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -4
  123. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  124. package/build-module/components/block-settings-menu-controls/index.js +1 -1
  125. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  126. package/build-module/components/block-switcher/index.js +13 -23
  127. package/build-module/components/block-switcher/index.js.map +1 -1
  128. package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
  129. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  130. package/build-module/components/block-switcher/utils.js +0 -1
  131. package/build-module/components/block-switcher/utils.js.map +1 -1
  132. package/build-module/components/block-toolbar/index.js +17 -9
  133. package/build-module/components/block-toolbar/index.js.map +1 -1
  134. package/build-module/components/block-variation-transforms/index.js +0 -1
  135. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  136. package/build-module/components/date-format-picker/index.js +0 -1
  137. package/build-module/components/date-format-picker/index.js.map +1 -1
  138. package/build-module/components/font-appearance-control/index.js +1 -0
  139. package/build-module/components/font-appearance-control/index.js.map +1 -1
  140. package/build-module/components/font-family/index.js +10 -0
  141. package/build-module/components/font-family/index.js.map +1 -1
  142. package/build-module/components/global-styles/dimensions-panel.js +17 -16
  143. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  144. package/build-module/components/global-styles/get-global-styles-changes.js +0 -1
  145. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  146. package/build-module/components/iframe/index.js +14 -218
  147. package/build-module/components/iframe/index.js.map +1 -1
  148. package/build-module/components/iframe/use-scale-canvas.js +392 -0
  149. package/build-module/components/iframe/use-scale-canvas.js.map +1 -0
  150. package/build-module/components/image-editor/use-save-image.js +22 -3
  151. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  152. package/build-module/components/inserter/block-patterns-tab/index.js +1 -11
  153. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  154. package/build-module/components/inserter/menu.js +2 -1
  155. package/build-module/components/inserter/menu.js.map +1 -1
  156. package/build-module/components/inserter-draggable-blocks/index.js +20 -11
  157. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  158. package/build-module/components/letter-spacing-control/index.js +9 -0
  159. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  160. package/build-module/components/line-height-control/index.js +1 -0
  161. package/build-module/components/line-height-control/index.js.map +1 -1
  162. package/build-module/components/media-placeholder/index.js +18 -18
  163. package/build-module/components/media-placeholder/index.js.map +1 -1
  164. package/build-module/components/observe-typing/index.js +0 -1
  165. package/build-module/components/observe-typing/index.js.map +1 -1
  166. package/build-module/components/recursion-provider/index.js +0 -1
  167. package/build-module/components/recursion-provider/index.js.map +1 -1
  168. package/build-module/components/rich-text/index.js +5 -1
  169. package/build-module/components/rich-text/index.js.map +1 -1
  170. package/build-module/components/rich-text/native/use-format-types.js +0 -1
  171. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  172. package/build-module/components/rich-text/use-format-types.js +0 -1
  173. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  174. package/build-module/components/spacing-sizes-control/utils.js +0 -1
  175. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  176. package/build-module/components/typewriter/index.js +0 -1
  177. package/build-module/components/typewriter/index.js.map +1 -1
  178. package/build-module/components/use-block-drop-zone/index.js +11 -2
  179. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  180. package/build-module/components/use-moving-animation/index.js +15 -2
  181. package/build-module/components/use-moving-animation/index.js.map +1 -1
  182. package/build-module/components/use-resize-canvas/index.js +1 -1
  183. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  184. package/build-module/components/writing-flow/use-drag-selection.js +11 -0
  185. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  186. package/build-module/components/writing-flow/use-tab-nav.js +6 -2
  187. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  188. package/build-module/hooks/block-bindings.js +4 -3
  189. package/build-module/hooks/block-bindings.js.map +1 -1
  190. package/build-module/hooks/gap.js +1 -1
  191. package/build-module/hooks/gap.js.map +1 -1
  192. package/build-module/hooks/generated-class-name.js +0 -1
  193. package/build-module/hooks/generated-class-name.js.map +1 -1
  194. package/build-module/store/private-selectors.js +1 -6
  195. package/build-module/store/private-selectors.js.map +1 -1
  196. package/build-module/store/reducer.js +479 -3
  197. package/build-module/store/reducer.js.map +1 -1
  198. package/build-module/store/selectors.js +12 -55
  199. package/build-module/store/selectors.js.map +1 -1
  200. package/build-module/utils/object.js +0 -1
  201. package/build-module/utils/object.js.map +1 -1
  202. package/build-style/content-rtl.css +24 -26
  203. package/build-style/content.css +24 -26
  204. package/build-style/style-rtl.css +51 -16
  205. package/build-style/style.css +51 -16
  206. package/package.json +32 -32
  207. package/src/autocompleters/block.js +2 -4
  208. package/src/autocompleters/link.js +2 -4
  209. package/src/components/alignment-control/stories/aliginment-toolbar.story.js +47 -0
  210. package/src/components/alignment-control/stories/index.story.js +51 -0
  211. package/src/components/alignment-control/test/__snapshots__/index.js.snap +5 -5
  212. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +4 -4
  213. package/src/components/block-canvas/index.js +3 -5
  214. package/src/components/block-canvas/style.scss +2 -1
  215. package/src/components/block-draggable/content.scss +11 -5
  216. package/src/components/block-list/block.js +7 -13
  217. package/src/components/block-list/content.scss +6 -0
  218. package/src/components/block-list/use-block-props/index.js +7 -0
  219. package/src/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +25 -0
  220. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +112 -8
  221. package/src/components/block-patterns-list/index.js +12 -1
  222. package/src/components/block-patterns-list/style.scss +16 -5
  223. package/src/components/block-popover/inbetween.js +4 -0
  224. package/src/components/block-settings-menu/block-settings-dropdown.js +6 -1
  225. package/src/components/block-settings-menu-controls/index.js +2 -1
  226. package/src/components/block-switcher/index.js +19 -21
  227. package/src/components/block-switcher/style.scss +0 -9
  228. package/src/components/block-title/test/index.js +2 -0
  229. package/src/components/block-toolbar/index.js +16 -6
  230. package/src/components/block-tools/style.scss +44 -0
  231. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
  232. package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
  233. package/src/components/font-appearance-control/index.js +1 -0
  234. package/src/components/font-family/index.js +10 -0
  235. package/src/components/font-family/style.scss +5 -0
  236. package/src/components/global-styles/dimensions-panel.js +16 -16
  237. package/src/components/iframe/content.scss +40 -42
  238. package/src/components/iframe/index.js +13 -313
  239. package/src/components/iframe/use-scale-canvas.js +490 -0
  240. package/src/components/image-editor/use-save-image.js +27 -2
  241. package/src/components/inserter/block-patterns-tab/index.js +1 -17
  242. package/src/components/inserter/menu.js +8 -1
  243. package/src/components/inserter-draggable-blocks/index.js +19 -29
  244. package/src/components/letter-spacing-control/README.md +2 -1
  245. package/src/components/letter-spacing-control/index.js +17 -0
  246. package/src/components/line-height-control/index.js +1 -0
  247. package/src/components/media-placeholder/index.js +25 -28
  248. package/src/components/rich-text/index.js +5 -0
  249. package/src/components/use-block-drop-zone/index.js +18 -1
  250. package/src/components/use-moving-animation/index.js +15 -0
  251. package/src/components/use-resize-canvas/index.js +1 -1
  252. package/src/components/writing-flow/use-drag-selection.js +11 -0
  253. package/src/components/writing-flow/use-tab-nav.js +9 -6
  254. package/src/hooks/block-bindings.js +8 -4
  255. package/src/hooks/gap.js +1 -1
  256. package/src/store/private-selectors.js +2 -17
  257. package/src/store/reducer.js +639 -2
  258. package/src/store/selectors.js +19 -69
  259. package/src/store/test/private-selectors.js +1 -0
  260. package/src/store/test/reducer.js +849 -0
  261. package/src/store/test/selectors.js +4 -110
  262. package/src/style.scss +1 -0
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  "use strict";
3
2
 
4
3
  Object.defineProperty(exports, "__esModule", {
@@ -1 +1 @@
1
- {"version":3,"names":["setImmutably","object","path","value","Array","isArray","leaf","pop","prev","key","lvl","getValueFromObjectPath","defaultValue","_value","arrayPath","split","forEach","fieldName","exports","uniqByProperty","array","property","seen","Set","filter","item","has","add"],"sources":["@wordpress/block-editor/src/utils/object.js"],"sourcesContent":["/**\n * Immutably sets a value inside an object. Like `lodash#set`, but returning a\n * new object. Treats nullish initial values as empty objects. Clones any\n * nested objects. Supports arrays, too.\n *\n * @param {Object} object Object to set a value in.\n * @param {number|string|Array} path Path in the object to modify.\n * @param {*} value New value to set.\n * @return {Object} Cloned object with the new value set.\n */\nexport function setImmutably( object, path, value ) {\n\t// Normalize path\n\tpath = Array.isArray( path ) ? [ ...path ] : [ path ];\n\n\t// Shallowly clone the base of the object\n\tobject = Array.isArray( object ) ? [ ...object ] : { ...object };\n\n\tconst leaf = path.pop();\n\n\t// Traverse object from root to leaf, shallowly cloning at each level\n\tlet prev = object;\n\tfor ( const key of path ) {\n\t\tconst lvl = prev[ key ];\n\t\tprev = prev[ key ] = Array.isArray( lvl ) ? [ ...lvl ] : { ...lvl };\n\t}\n\n\tprev[ leaf ] = value;\n\n\treturn object;\n}\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as either:\n * - a string of properties, separated by dots, for example: \"x.y\".\n * - an array of properties, for example `[ 'x', 'y' ]`.\n * You can also specify a default value in case the result is nullish.\n *\n * @param {Object} object Input object.\n * @param {string|Array} path Path to the object property.\n * @param {*} defaultValue Default value if the value at the specified path is nullish.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path, defaultValue ) => {\n\tconst arrayPath = Array.isArray( path ) ? path : path.split( '.' );\n\tlet value = object;\n\tarrayPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value ?? defaultValue;\n};\n\n/**\n * Helper util to filter out objects with duplicate values for a given property.\n *\n * @param {Object[]} array Array of objects to filter.\n * @param {string} property Property to filter unique values by.\n *\n * @return {Object[]} Array of objects with unique values for the specified property.\n */\nexport function uniqByProperty( array, property ) {\n\tconst seen = new Set();\n\treturn array.filter( ( item ) => {\n\t\tconst value = item[ property ];\n\t\treturn seen.has( value ) ? false : seen.add( value );\n\t} );\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,YAAYA,CAAEC,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAG;EACnD;EACAD,IAAI,GAAGE,KAAK,CAACC,OAAO,CAAEH,IAAK,CAAC,GAAG,CAAE,GAAGA,IAAI,CAAE,GAAG,CAAEA,IAAI,CAAE;;EAErD;EACAD,MAAM,GAAGG,KAAK,CAACC,OAAO,CAAEJ,MAAO,CAAC,GAAG,CAAE,GAAGA,MAAM,CAAE,GAAG;IAAE,GAAGA;EAAO,CAAC;EAEhE,MAAMK,IAAI,GAAGJ,IAAI,CAACK,GAAG,CAAC,CAAC;;EAEvB;EACA,IAAIC,IAAI,GAAGP,MAAM;EACjB,KAAM,MAAMQ,GAAG,IAAIP,IAAI,EAAG;IACzB,MAAMQ,GAAG,GAAGF,IAAI,CAAEC,GAAG,CAAE;IACvBD,IAAI,GAAGA,IAAI,CAAEC,GAAG,CAAE,GAAGL,KAAK,CAACC,OAAO,CAAEK,GAAI,CAAC,GAAG,CAAE,GAAGA,GAAG,CAAE,GAAG;MAAE,GAAGA;IAAI,CAAC;EACpE;EAEAF,IAAI,CAAEF,IAAI,CAAE,GAAGH,KAAK;EAEpB,OAAOF,MAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMU,sBAAsB,GAAGA,CAAEV,MAAM,EAAEC,IAAI,EAAEU,YAAY,KAAM;EAAA,IAAAC,MAAA;EACvE,MAAMC,SAAS,GAAGV,KAAK,CAACC,OAAO,CAAEH,IAAK,CAAC,GAAGA,IAAI,GAAGA,IAAI,CAACa,KAAK,CAAE,GAAI,CAAC;EAClE,IAAIZ,KAAK,GAAGF,MAAM;EAClBa,SAAS,CAACE,OAAO,CAAIC,SAAS,IAAM;IACnCd,KAAK,GAAGA,KAAK,GAAIc,SAAS,CAAE;EAC7B,CAAE,CAAC;EACH,QAAAJ,MAAA,GAAOV,KAAK,cAAAU,MAAA,cAAAA,MAAA,GAAID,YAAY;AAC7B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAM,OAAA,CAAAP,sBAAA,GAAAA,sBAAA;AAQO,SAASQ,cAAcA,CAAEC,KAAK,EAAEC,QAAQ,EAAG;EACjD,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAC,CAAC;EACtB,OAAOH,KAAK,CAACI,MAAM,CAAIC,IAAI,IAAM;IAChC,MAAMtB,KAAK,GAAGsB,IAAI,CAAEJ,QAAQ,CAAE;IAC9B,OAAOC,IAAI,CAACI,GAAG,CAAEvB,KAAM,CAAC,GAAG,KAAK,GAAGmB,IAAI,CAACK,GAAG,CAAExB,KAAM,CAAC;EACrD,CAAE,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["setImmutably","object","path","value","Array","isArray","leaf","pop","prev","key","lvl","getValueFromObjectPath","defaultValue","_value","arrayPath","split","forEach","fieldName","exports","uniqByProperty","array","property","seen","Set","filter","item","has","add"],"sources":["@wordpress/block-editor/src/utils/object.js"],"sourcesContent":["/**\n * Immutably sets a value inside an object. Like `lodash#set`, but returning a\n * new object. Treats nullish initial values as empty objects. Clones any\n * nested objects. Supports arrays, too.\n *\n * @param {Object} object Object to set a value in.\n * @param {number|string|Array} path Path in the object to modify.\n * @param {*} value New value to set.\n * @return {Object} Cloned object with the new value set.\n */\nexport function setImmutably( object, path, value ) {\n\t// Normalize path\n\tpath = Array.isArray( path ) ? [ ...path ] : [ path ];\n\n\t// Shallowly clone the base of the object\n\tobject = Array.isArray( object ) ? [ ...object ] : { ...object };\n\n\tconst leaf = path.pop();\n\n\t// Traverse object from root to leaf, shallowly cloning at each level\n\tlet prev = object;\n\tfor ( const key of path ) {\n\t\tconst lvl = prev[ key ];\n\t\tprev = prev[ key ] = Array.isArray( lvl ) ? [ ...lvl ] : { ...lvl };\n\t}\n\n\tprev[ leaf ] = value;\n\n\treturn object;\n}\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as either:\n * - a string of properties, separated by dots, for example: \"x.y\".\n * - an array of properties, for example `[ 'x', 'y' ]`.\n * You can also specify a default value in case the result is nullish.\n *\n * @param {Object} object Input object.\n * @param {string|Array} path Path to the object property.\n * @param {*} defaultValue Default value if the value at the specified path is nullish.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path, defaultValue ) => {\n\tconst arrayPath = Array.isArray( path ) ? path : path.split( '.' );\n\tlet value = object;\n\tarrayPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value ?? defaultValue;\n};\n\n/**\n * Helper util to filter out objects with duplicate values for a given property.\n *\n * @param {Object[]} array Array of objects to filter.\n * @param {string} property Property to filter unique values by.\n *\n * @return {Object[]} Array of objects with unique values for the specified property.\n */\nexport function uniqByProperty( array, property ) {\n\tconst seen = new Set();\n\treturn array.filter( ( item ) => {\n\t\tconst value = item[ property ];\n\t\treturn seen.has( value ) ? false : seen.add( value );\n\t} );\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,YAAYA,CAAEC,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAG;EACnD;EACAD,IAAI,GAAGE,KAAK,CAACC,OAAO,CAAEH,IAAK,CAAC,GAAG,CAAE,GAAGA,IAAI,CAAE,GAAG,CAAEA,IAAI,CAAE;;EAErD;EACAD,MAAM,GAAGG,KAAK,CAACC,OAAO,CAAEJ,MAAO,CAAC,GAAG,CAAE,GAAGA,MAAM,CAAE,GAAG;IAAE,GAAGA;EAAO,CAAC;EAEhE,MAAMK,IAAI,GAAGJ,IAAI,CAACK,GAAG,CAAC,CAAC;;EAEvB;EACA,IAAIC,IAAI,GAAGP,MAAM;EACjB,KAAM,MAAMQ,GAAG,IAAIP,IAAI,EAAG;IACzB,MAAMQ,GAAG,GAAGF,IAAI,CAAEC,GAAG,CAAE;IACvBD,IAAI,GAAGA,IAAI,CAAEC,GAAG,CAAE,GAAGL,KAAK,CAACC,OAAO,CAAEK,GAAI,CAAC,GAAG,CAAE,GAAGA,GAAG,CAAE,GAAG;MAAE,GAAGA;IAAI,CAAC;EACpE;EAEAF,IAAI,CAAEF,IAAI,CAAE,GAAGH,KAAK;EAEpB,OAAOF,MAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMU,sBAAsB,GAAGA,CAAEV,MAAM,EAAEC,IAAI,EAAEU,YAAY,KAAM;EAAA,IAAAC,MAAA;EACvE,MAAMC,SAAS,GAAGV,KAAK,CAACC,OAAO,CAAEH,IAAK,CAAC,GAAGA,IAAI,GAAGA,IAAI,CAACa,KAAK,CAAE,GAAI,CAAC;EAClE,IAAIZ,KAAK,GAAGF,MAAM;EAClBa,SAAS,CAACE,OAAO,CAAIC,SAAS,IAAM;IACnCd,KAAK,GAAGA,KAAK,GAAIc,SAAS,CAAE;EAC7B,CAAE,CAAC;EACH,QAAAJ,MAAA,GAAOV,KAAK,cAAAU,MAAA,cAAAA,MAAA,GAAID,YAAY;AAC7B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAM,OAAA,CAAAP,sBAAA,GAAAA,sBAAA;AAQO,SAASQ,cAAcA,CAAEC,KAAK,EAAEC,QAAQ,EAAG;EACjD,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAC,CAAC;EACtB,OAAOH,KAAK,CAACI,MAAM,CAAIC,IAAI,IAAM;IAChC,MAAMtB,KAAK,GAAGsB,IAAI,CAAEJ,QAAQ,CAAE;IAC9B,OAAOC,IAAI,CAACI,GAAG,CAAEvB,KAAM,CAAC,GAAG,KAAK,GAAGmB,IAAI,CAACK,GAAG,CAAExB,KAAM,CAAC;EACrD,CAAE,CAAC;AACJ","ignoreList":[]}
@@ -18,12 +18,10 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
18
18
  const noop = () => {};
19
19
  const SHOWN_BLOCK_TYPES = 9;
20
20
 
21
- /** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */
22
-
23
21
  /**
24
22
  * Creates a blocks repeater for replacing the current block with a selected block type.
25
23
  *
26
- * @return {WPCompleter} A blocks completer.
24
+ * @return {Object} A blocks completer.
27
25
  */
28
26
  function createBlockCompleter() {
29
27
  return {
@@ -107,7 +105,7 @@ function createBlockCompleter() {
107
105
  /**
108
106
  * Creates a blocks repeater for replacing the current block with a selected block type.
109
107
  *
110
- * @return {WPCompleter} A blocks completer.
108
+ * @return {Object} A blocks completer.
111
109
  */
112
110
  export default createBlockCompleter();
113
111
  //# sourceMappingURL=block.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","createBlock","createBlocksFromInnerBlocksTemplate","parse","store","blocksStore","useMemo","searchBlockItems","useBlockTypesState","BlockIcon","blockEditorStore","orderBy","orderInserterBlockItems","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","noop","SHOWN_BLOCK_TYPES","createBlockCompleter","name","className","triggerPrefix","useItems","filterValue","rootClientId","selectedBlockId","prioritizedBlocks","select","getSelectedBlockClientId","getBlock","getBlockListSettings","getBlockRootClientId","getActiveBlockVariation","selectedBlockClientId","blockName","attributes","activeBlockVariation","_rootClientId","prioritizedInserterBlocks","items","categories","collections","filteredItems","initialFilteredItems","trim","filter","item","id","slice","options","map","blockItem","title","icon","isDisabled","key","value","label","children","showColors","allowContext","before","after","test","getOptionCompletion","inserterItem","initialAttributes","innerBlocks","syncStatus","content","action","__unstableSkipMigrationLogs"],"sources":["@wordpress/block-editor/src/autocompleters/block.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tparse,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { searchBlockItems } from '../components/inserter/search-items';\nimport useBlockTypesState from '../components/inserter/hooks/use-block-types-state';\nimport BlockIcon from '../components/block-icon';\nimport { store as blockEditorStore } from '../store';\nimport { orderBy } from '../utils/sorting';\nimport { orderInserterBlockItems } from '../utils/order-inserter-block-items';\n\nconst noop = () => {};\nconst SHOWN_BLOCK_TYPES = 9;\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nfunction createBlockCompleter() {\n\treturn {\n\t\tname: 'blocks',\n\t\tclassName: 'block-editor-autocompleters__block',\n\t\ttriggerPrefix: '/',\n\n\t\tuseItems( filterValue ) {\n\t\t\tconst { rootClientId, selectedBlockId, prioritizedBlocks } =\n\t\t\t\tuseSelect( ( select ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t\t\tgetBlock,\n\t\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\t\t\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\t\t\tconst { name: blockName, attributes } = getBlock(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\tconst activeBlockVariation = getActiveBlockVariation(\n\t\t\t\t\t\tblockName,\n\t\t\t\t\t\tattributes\n\t\t\t\t\t);\n\t\t\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tselectedBlockId: activeBlockVariation\n\t\t\t\t\t\t\t? `${ blockName }/${ activeBlockVariation.name }`\n\t\t\t\t\t\t\t: blockName,\n\t\t\t\t\t\trootClientId: _rootClientId,\n\t\t\t\t\t\tprioritizedBlocks:\n\t\t\t\t\t\t\tgetBlockListSettings( _rootClientId )\n\t\t\t\t\t\t\t\t?.prioritizedInserterBlocks,\n\t\t\t\t\t};\n\t\t\t\t}, [] );\n\t\t\tconst [ items, categories, collections ] = useBlockTypesState(\n\t\t\t\trootClientId,\n\t\t\t\tnoop,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tconst filteredItems = useMemo( () => {\n\t\t\t\tconst initialFilteredItems = !! filterValue.trim()\n\t\t\t\t\t? searchBlockItems(\n\t\t\t\t\t\t\titems,\n\t\t\t\t\t\t\tcategories,\n\t\t\t\t\t\t\tcollections,\n\t\t\t\t\t\t\tfilterValue\n\t\t\t\t\t )\n\t\t\t\t\t: orderInserterBlockItems(\n\t\t\t\t\t\t\torderBy( items, 'frecency', 'desc' ),\n\t\t\t\t\t\t\tprioritizedBlocks\n\t\t\t\t\t );\n\n\t\t\t\treturn initialFilteredItems\n\t\t\t\t\t.filter( ( item ) => item.id !== selectedBlockId )\n\t\t\t\t\t.slice( 0, SHOWN_BLOCK_TYPES );\n\t\t\t}, [\n\t\t\t\tfilterValue,\n\t\t\t\tselectedBlockId,\n\t\t\t\titems,\n\t\t\t\tcategories,\n\t\t\t\tcollections,\n\t\t\t\tprioritizedBlocks,\n\t\t\t] );\n\n\t\t\tconst options = useMemo(\n\t\t\t\t() =>\n\t\t\t\t\tfilteredItems.map( ( blockItem ) => {\n\t\t\t\t\t\tconst { title, icon, isDisabled } = blockItem;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tkey: `block-${ blockItem.id }`,\n\t\t\t\t\t\t\tvalue: blockItem,\n\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tisDisabled,\n\t\t\t\t\t\t};\n\t\t\t\t\t} ),\n\t\t\t\t[ filteredItems ]\n\t\t\t);\n\n\t\t\treturn [ options ];\n\t\t},\n\t\tallowContext( before, after ) {\n\t\t\treturn ! ( /\\S/.test( before ) || /\\S/.test( after ) );\n\t\t},\n\t\tgetOptionCompletion( inserterItem ) {\n\t\t\tconst {\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tinnerBlocks,\n\t\t\t\tsyncStatus,\n\t\t\t\tcontent,\n\t\t\t} = inserterItem;\n\n\t\t\treturn {\n\t\t\t\taction: 'replace',\n\t\t\t\tvalue:\n\t\t\t\t\tsyncStatus === 'unsynced'\n\t\t\t\t\t\t? parse( content, {\n\t\t\t\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: createBlock(\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tinitialAttributes,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ),\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nexport default createBlockCompleter();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","createBlock","createBlocksFromInnerBlocksTemplate","parse","store","blocksStore","useMemo","searchBlockItems","useBlockTypesState","BlockIcon","blockEditorStore","orderBy","orderInserterBlockItems","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","noop","SHOWN_BLOCK_TYPES","createBlockCompleter","name","className","triggerPrefix","useItems","filterValue","rootClientId","selectedBlockId","prioritizedBlocks","select","getSelectedBlockClientId","getBlock","getBlockListSettings","getBlockRootClientId","getActiveBlockVariation","selectedBlockClientId","blockName","attributes","activeBlockVariation","_rootClientId","prioritizedInserterBlocks","items","categories","collections","filteredItems","initialFilteredItems","trim","filter","item","id","slice","options","map","blockItem","title","icon","isDisabled","key","value","label","children","showColors","allowContext","before","after","test","getOptionCompletion","inserterItem","initialAttributes","innerBlocks","syncStatus","content","action","__unstableSkipMigrationLogs"],"sources":["@wordpress/block-editor/src/autocompleters/block.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tparse,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { searchBlockItems } from '../components/inserter/search-items';\nimport useBlockTypesState from '../components/inserter/hooks/use-block-types-state';\nimport BlockIcon from '../components/block-icon';\nimport { store as blockEditorStore } from '../store';\nimport { orderBy } from '../utils/sorting';\nimport { orderInserterBlockItems } from '../utils/order-inserter-block-items';\n\nconst noop = () => {};\nconst SHOWN_BLOCK_TYPES = 9;\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {Object} A blocks completer.\n */\nfunction createBlockCompleter() {\n\treturn {\n\t\tname: 'blocks',\n\t\tclassName: 'block-editor-autocompleters__block',\n\t\ttriggerPrefix: '/',\n\n\t\tuseItems( filterValue ) {\n\t\t\tconst { rootClientId, selectedBlockId, prioritizedBlocks } =\n\t\t\t\tuseSelect( ( select ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t\t\tgetBlock,\n\t\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\t\t\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\t\t\tconst { name: blockName, attributes } = getBlock(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\tconst activeBlockVariation = getActiveBlockVariation(\n\t\t\t\t\t\tblockName,\n\t\t\t\t\t\tattributes\n\t\t\t\t\t);\n\t\t\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tselectedBlockId: activeBlockVariation\n\t\t\t\t\t\t\t? `${ blockName }/${ activeBlockVariation.name }`\n\t\t\t\t\t\t\t: blockName,\n\t\t\t\t\t\trootClientId: _rootClientId,\n\t\t\t\t\t\tprioritizedBlocks:\n\t\t\t\t\t\t\tgetBlockListSettings( _rootClientId )\n\t\t\t\t\t\t\t\t?.prioritizedInserterBlocks,\n\t\t\t\t\t};\n\t\t\t\t}, [] );\n\t\t\tconst [ items, categories, collections ] = useBlockTypesState(\n\t\t\t\trootClientId,\n\t\t\t\tnoop,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tconst filteredItems = useMemo( () => {\n\t\t\t\tconst initialFilteredItems = !! filterValue.trim()\n\t\t\t\t\t? searchBlockItems(\n\t\t\t\t\t\t\titems,\n\t\t\t\t\t\t\tcategories,\n\t\t\t\t\t\t\tcollections,\n\t\t\t\t\t\t\tfilterValue\n\t\t\t\t\t )\n\t\t\t\t\t: orderInserterBlockItems(\n\t\t\t\t\t\t\torderBy( items, 'frecency', 'desc' ),\n\t\t\t\t\t\t\tprioritizedBlocks\n\t\t\t\t\t );\n\n\t\t\t\treturn initialFilteredItems\n\t\t\t\t\t.filter( ( item ) => item.id !== selectedBlockId )\n\t\t\t\t\t.slice( 0, SHOWN_BLOCK_TYPES );\n\t\t\t}, [\n\t\t\t\tfilterValue,\n\t\t\t\tselectedBlockId,\n\t\t\t\titems,\n\t\t\t\tcategories,\n\t\t\t\tcollections,\n\t\t\t\tprioritizedBlocks,\n\t\t\t] );\n\n\t\t\tconst options = useMemo(\n\t\t\t\t() =>\n\t\t\t\t\tfilteredItems.map( ( blockItem ) => {\n\t\t\t\t\t\tconst { title, icon, isDisabled } = blockItem;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tkey: `block-${ blockItem.id }`,\n\t\t\t\t\t\t\tvalue: blockItem,\n\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tisDisabled,\n\t\t\t\t\t\t};\n\t\t\t\t\t} ),\n\t\t\t\t[ filteredItems ]\n\t\t\t);\n\n\t\t\treturn [ options ];\n\t\t},\n\t\tallowContext( before, after ) {\n\t\t\treturn ! ( /\\S/.test( before ) || /\\S/.test( after ) );\n\t\t},\n\t\tgetOptionCompletion( inserterItem ) {\n\t\t\tconst {\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tinnerBlocks,\n\t\t\t\tsyncStatus,\n\t\t\t\tcontent,\n\t\t\t} = inserterItem;\n\n\t\t\treturn {\n\t\t\t\taction: 'replace',\n\t\t\t\tvalue:\n\t\t\t\t\tsyncStatus === 'unsynced'\n\t\t\t\t\t\t? parse( content, {\n\t\t\t\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: createBlock(\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tinitialAttributes,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ),\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {Object} A blocks completer.\n */\nexport default createBlockCompleter();\n"],"mappings":"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","ignoreList":[]}
@@ -10,12 +10,10 @@ import { decodeEntities } from '@wordpress/html-entities';
10
10
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  const SHOWN_SUGGESTIONS = 10;
12
12
 
13
- /** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */
14
-
15
13
  /**
16
14
  * Creates a suggestion list for links to posts or pages.
17
15
  *
18
- * @return {WPCompleter} A links completer.
16
+ * @return {Object} A links completer.
19
17
  */
20
18
  function createLinkCompleter() {
21
19
  return {
@@ -57,7 +55,7 @@ function createLinkCompleter() {
57
55
  /**
58
56
  * Creates a suggestion list for links to posts or pages..
59
57
  *
60
- * @return {WPCompleter} A link completer.
58
+ * @return {Object} A link completer.
61
59
  */
62
60
  export default createLinkCompleter();
63
61
  //# sourceMappingURL=link.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["apiFetch","addQueryArgs","Icon","page","post","decodeEntities","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SHOWN_SUGGESTIONS","createLinkCompleter","name","className","triggerPrefix","options","letters","path","per_page","search","type","order_by","filter","option","title","getOptionKeywords","item","expansionWords","split","getOptionLabel","children","icon","subtype","getOptionCompletion","href","url"],"sources":["@wordpress/block-editor/src/autocompleters/link.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Icon, page, post } from '@wordpress/icons';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst SHOWN_SUGGESTIONS = 10;\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a suggestion list for links to posts or pages.\n *\n * @return {WPCompleter} A links completer.\n */\nfunction createLinkCompleter() {\n\treturn {\n\t\tname: 'links',\n\t\tclassName: 'block-editor-autocompleters__link',\n\t\ttriggerPrefix: '[[',\n\t\toptions: async ( letters ) => {\n\t\t\tlet options = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/wp/v2/search', {\n\t\t\t\t\tper_page: SHOWN_SUGGESTIONS,\n\t\t\t\t\tsearch: letters,\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\torder_by: 'menu_order',\n\t\t\t\t} ),\n\t\t\t} );\n\n\t\t\toptions = options.filter( ( option ) => option.title !== '' );\n\n\t\t\treturn options;\n\t\t},\n\t\tgetOptionKeywords( item ) {\n\t\t\tconst expansionWords = item.title.split( /\\s+/ );\n\t\t\treturn [ ...expansionWords ];\n\t\t},\n\t\tgetOptionLabel( item ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\ticon={ item.subtype === 'page' ? page : post }\n\t\t\t\t\t/>\n\t\t\t\t\t{ decodeEntities( item.title ) }\n\t\t\t\t</>\n\t\t\t);\n\t\t},\n\t\tgetOptionCompletion( item ) {\n\t\t\treturn <a href={ item.url }>{ item.title }</a>;\n\t\t},\n\t};\n}\n\n/**\n * Creates a suggestion list for links to posts or pages..\n *\n * @return {WPCompleter} A link completer.\n */\nexport default createLinkCompleter();\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,QAAQ,MAAM,sBAAsB;AAC3C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,IAAI,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,cAAc,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE1D,MAAMC,iBAAiB,GAAG,EAAE;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASC,mBAAmBA,CAAA,EAAG;EAC9B,OAAO;IACNC,IAAI,EAAE,OAAO;IACbC,SAAS,EAAE,mCAAmC;IAC9CC,aAAa,EAAE,IAAI;IACnBC,OAAO,EAAE,MAAQC,OAAO,IAAM;MAC7B,IAAID,OAAO,GAAG,MAAMjB,QAAQ,CAAE;QAC7BmB,IAAI,EAAElB,YAAY,CAAE,eAAe,EAAE;UACpCmB,QAAQ,EAAER,iBAAiB;UAC3BS,MAAM,EAAEH,OAAO;UACfI,IAAI,EAAE,MAAM;UACZC,QAAQ,EAAE;QACX,CAAE;MACH,CAAE,CAAC;MAEHN,OAAO,GAAGA,OAAO,CAACO,MAAM,CAAIC,MAAM,IAAMA,MAAM,CAACC,KAAK,KAAK,EAAG,CAAC;MAE7D,OAAOT,OAAO;IACf,CAAC;IACDU,iBAAiBA,CAAEC,IAAI,EAAG;MACzB,MAAMC,cAAc,GAAGD,IAAI,CAACF,KAAK,CAACI,KAAK,CAAE,KAAM,CAAC;MAChD,OAAO,CAAE,GAAGD,cAAc,CAAE;IAC7B,CAAC;IACDE,cAAcA,CAAEH,IAAI,EAAG;MACtB,oBACCjB,KAAA,CAAAF,SAAA;QAAAuB,QAAA,gBACCzB,IAAA,CAACL,IAAI;UAEJ+B,IAAI,EAAGL,IAAI,CAACM,OAAO,KAAK,MAAM,GAAG/B,IAAI,GAAGC;QAAM,GAD1C,MAEJ,CAAC,EACAC,cAAc,CAAEuB,IAAI,CAACF,KAAM,CAAC;MAAA,CAC7B,CAAC;IAEL,CAAC;IACDS,mBAAmBA,CAAEP,IAAI,EAAG;MAC3B,oBAAOrB,IAAA;QAAG6B,IAAI,EAAGR,IAAI,CAACS,GAAK;QAAAL,QAAA,EAAGJ,IAAI,CAACF;MAAK,CAAK,CAAC;IAC/C;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAeb,mBAAmB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["apiFetch","addQueryArgs","Icon","page","post","decodeEntities","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SHOWN_SUGGESTIONS","createLinkCompleter","name","className","triggerPrefix","options","letters","path","per_page","search","type","order_by","filter","option","title","getOptionKeywords","item","expansionWords","split","getOptionLabel","children","icon","subtype","getOptionCompletion","href","url"],"sources":["@wordpress/block-editor/src/autocompleters/link.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Icon, page, post } from '@wordpress/icons';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst SHOWN_SUGGESTIONS = 10;\n\n/**\n * Creates a suggestion list for links to posts or pages.\n *\n * @return {Object} A links completer.\n */\nfunction createLinkCompleter() {\n\treturn {\n\t\tname: 'links',\n\t\tclassName: 'block-editor-autocompleters__link',\n\t\ttriggerPrefix: '[[',\n\t\toptions: async ( letters ) => {\n\t\t\tlet options = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/wp/v2/search', {\n\t\t\t\t\tper_page: SHOWN_SUGGESTIONS,\n\t\t\t\t\tsearch: letters,\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\torder_by: 'menu_order',\n\t\t\t\t} ),\n\t\t\t} );\n\n\t\t\toptions = options.filter( ( option ) => option.title !== '' );\n\n\t\t\treturn options;\n\t\t},\n\t\tgetOptionKeywords( item ) {\n\t\t\tconst expansionWords = item.title.split( /\\s+/ );\n\t\t\treturn [ ...expansionWords ];\n\t\t},\n\t\tgetOptionLabel( item ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\ticon={ item.subtype === 'page' ? page : post }\n\t\t\t\t\t/>\n\t\t\t\t\t{ decodeEntities( item.title ) }\n\t\t\t\t</>\n\t\t\t);\n\t\t},\n\t\tgetOptionCompletion( item ) {\n\t\t\treturn <a href={ item.url }>{ item.title }</a>;\n\t\t},\n\t};\n}\n\n/**\n * Creates a suggestion list for links to posts or pages..\n *\n * @return {Object} A link completer.\n */\nexport default createLinkCompleter();\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,QAAQ,MAAM,sBAAsB;AAC3C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,IAAI,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,cAAc,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE1D,MAAMC,iBAAiB,GAAG,EAAE;;AAE5B;AACA;AACA;AACA;AACA;AACA,SAASC,mBAAmBA,CAAA,EAAG;EAC9B,OAAO;IACNC,IAAI,EAAE,OAAO;IACbC,SAAS,EAAE,mCAAmC;IAC9CC,aAAa,EAAE,IAAI;IACnBC,OAAO,EAAE,MAAQC,OAAO,IAAM;MAC7B,IAAID,OAAO,GAAG,MAAMjB,QAAQ,CAAE;QAC7BmB,IAAI,EAAElB,YAAY,CAAE,eAAe,EAAE;UACpCmB,QAAQ,EAAER,iBAAiB;UAC3BS,MAAM,EAAEH,OAAO;UACfI,IAAI,EAAE,MAAM;UACZC,QAAQ,EAAE;QACX,CAAE;MACH,CAAE,CAAC;MAEHN,OAAO,GAAGA,OAAO,CAACO,MAAM,CAAIC,MAAM,IAAMA,MAAM,CAACC,KAAK,KAAK,EAAG,CAAC;MAE7D,OAAOT,OAAO;IACf,CAAC;IACDU,iBAAiBA,CAAEC,IAAI,EAAG;MACzB,MAAMC,cAAc,GAAGD,IAAI,CAACF,KAAK,CAACI,KAAK,CAAE,KAAM,CAAC;MAChD,OAAO,CAAE,GAAGD,cAAc,CAAE;IAC7B,CAAC;IACDE,cAAcA,CAAEH,IAAI,EAAG;MACtB,oBACCjB,KAAA,CAAAF,SAAA;QAAAuB,QAAA,gBACCzB,IAAA,CAACL,IAAI;UAEJ+B,IAAI,EAAGL,IAAI,CAACM,OAAO,KAAK,MAAM,GAAG/B,IAAI,GAAGC;QAAM,GAD1C,MAEJ,CAAC,EACAC,cAAc,CAAEuB,IAAI,CAACF,KAAM,CAAC;MAAA,CAC7B,CAAC;IAEL,CAAC;IACDS,mBAAmBA,CAAEP,IAAI,EAAG;MAC3B,oBAAOrB,IAAA;QAAG6B,IAAI,EAAGR,IAAI,CAACS,GAAK;QAAAL,QAAA,EAAGJ,IAAI,CAACF;MAAK,CAAK,CAAC;IAC/C;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAeb,mBAAmB,CAAC,CAAC","ignoreList":[]}
@@ -48,9 +48,9 @@ export function ExperimentalBlockCanvas({
48
48
  if (!shouldIframe) {
49
49
  return /*#__PURE__*/_jsxs(BlockTools, {
50
50
  __unstableContentRef: localRef,
51
+ className: "block-editor-block-canvas",
51
52
  style: {
52
- height,
53
- display: 'flex'
53
+ height
54
54
  },
55
55
  children: [/*#__PURE__*/_jsx(EditorStyles, {
56
56
  styles: styles,
@@ -60,16 +60,13 @@ export function ExperimentalBlockCanvas({
60
60
  ref: contentRef,
61
61
  className: "editor-styles-wrapper",
62
62
  tabIndex: -1,
63
- style: {
64
- height: '100%',
65
- width: '100%'
66
- },
67
63
  children: children
68
64
  })]
69
65
  });
70
66
  }
71
67
  return /*#__PURE__*/_jsx(BlockTools, {
72
68
  __unstableContentRef: localRef,
69
+ className: "block-editor-block-canvas",
73
70
  style: {
74
71
  height,
75
72
  display: 'flex'
@@ -1 +1 @@
1
- {"version":3,"names":["useMergeRefs","useViewportMatch","useRef","useSelect","BlockList","BlockTools","EditorStyles","Iframe","WritingFlow","useMouseMoveTypingReset","useBlockSelectionClearer","useBlockCommands","store","blockEditorStore","unlock","jsx","_jsx","jsxs","_jsxs","EDITOR_STYLE_TRANSFORM_OPTIONS","ignoredSelectors","ExperimentalBlockCanvas","shouldIframe","height","children","styles","contentRef","contentRefProp","iframeProps","isTabletViewport","resetTypingRef","clearerRef","localRef","zoomLevel","select","getZoomLevel","zoomOutIframeProps","scale","frameSize","__unstableContentRef","style","display","scope","transformOptions","ref","className","tabIndex","width","name","BlockCanvas"],"sources":["@wordpress/block-editor/src/components/block-canvas/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMergeRefs, useViewportMatch } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport BlockTools from '../block-tools';\nimport EditorStyles from '../editor-styles';\nimport Iframe from '../iframe';\nimport WritingFlow from '../writing-flow';\nimport { useMouseMoveTypingReset } from '../observe-typing';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useBlockCommands } from '../use-block-commands';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n// EditorStyles is a memoized component, so avoid passing a new\n// object reference on each render.\nconst EDITOR_STYLE_TRANSFORM_OPTIONS = {\n\t// Don't transform selectors that already specify `.editor-styles-wrapper`.\n\tignoredSelectors: [ /\\.editor-styles-wrapper/gi ],\n};\n\nexport function ExperimentalBlockCanvas( {\n\tshouldIframe = true,\n\theight = '300px',\n\tchildren = <BlockList />,\n\tstyles,\n\tcontentRef: contentRefProp,\n\tiframeProps,\n} ) {\n\tuseBlockCommands();\n\tconst isTabletViewport = useViewportMatch( 'medium', '<' );\n\tconst resetTypingRef = useMouseMoveTypingReset();\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst localRef = useRef();\n\tconst contentRef = useMergeRefs( [ contentRefProp, clearerRef, localRef ] );\n\tconst zoomLevel = useSelect(\n\t\t( select ) => unlock( select( blockEditorStore ) ).getZoomLevel(),\n\t\t[]\n\t);\n\tconst zoomOutIframeProps =\n\t\tzoomLevel !== 100 && ! isTabletViewport\n\t\t\t? {\n\t\t\t\t\tscale: zoomLevel,\n\t\t\t\t\tframeSize: '40px',\n\t\t\t }\n\t\t\t: {};\n\n\tif ( ! shouldIframe ) {\n\t\treturn (\n\t\t\t<BlockTools\n\t\t\t\t__unstableContentRef={ localRef }\n\t\t\t\tstyle={ { height, display: 'flex' } }\n\t\t\t>\n\t\t\t\t<EditorStyles\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tscope=\":where(.editor-styles-wrapper)\"\n\t\t\t\t\ttransformOptions={ EDITOR_STYLE_TRANSFORM_OPTIONS }\n\t\t\t\t/>\n\t\t\t\t<WritingFlow\n\t\t\t\t\tref={ contentRef }\n\t\t\t\t\tclassName=\"editor-styles-wrapper\"\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</WritingFlow>\n\t\t\t</BlockTools>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockTools\n\t\t\t__unstableContentRef={ localRef }\n\t\t\tstyle={ { height, display: 'flex' } }\n\t\t>\n\t\t\t<Iframe\n\t\t\t\t{ ...iframeProps }\n\t\t\t\t{ ...zoomOutIframeProps }\n\t\t\t\tref={ resetTypingRef }\n\t\t\t\tcontentRef={ contentRef }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...iframeProps?.style,\n\t\t\t\t} }\n\t\t\t\tname=\"editor-canvas\"\n\t\t\t>\n\t\t\t\t<EditorStyles styles={ styles } />\n\t\t\t\t{ children }\n\t\t\t</Iframe>\n\t\t</BlockTools>\n\t);\n}\n\n/**\n * BlockCanvas component is a component used to display the canvas of the block editor.\n * What we call the canvas is an iframe containing the block list that you can manipulate.\n * The component is also responsible of wiring up all the necessary hooks to enable\n * the keyboard navigation across blocks in the editor and inject content styles into the iframe.\n *\n * @example\n *\n * ```jsx\n * function MyBlockEditor() {\n * const [ blocks, updateBlocks ] = useState([]);\n * return (\n * <BlockEditorProvider\n * value={ blocks }\n * onInput={ updateBlocks }\n * onChange={ persistBlocks }\n * >\n * <BlockCanvas height=\"400px\" />\n * </BlockEditorProvider>\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.height Canvas height, defaults to 300px.\n * @param {Array} props.styles Content styles to inject into the iframe.\n * @param {Element} props.children Content of the canvas, defaults to the BlockList component.\n * @return {Element} Block Breadcrumb.\n */\nfunction BlockCanvas( { children, height, styles } ) {\n\treturn (\n\t\t<ExperimentalBlockCanvas height={ height } styles={ styles }>\n\t\t\t{ children }\n\t\t</ExperimentalBlockCanvas>\n\t);\n}\n\nexport default BlockCanvas;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMergeRefs","useViewportMatch","useRef","useSelect","BlockList","BlockTools","EditorStyles","Iframe","WritingFlow","useMouseMoveTypingReset","useBlockSelectionClearer","useBlockCommands","store","blockEditorStore","unlock","jsx","_jsx","jsxs","_jsxs","EDITOR_STYLE_TRANSFORM_OPTIONS","ignoredSelectors","ExperimentalBlockCanvas","shouldIframe","height","children","styles","contentRef","contentRefProp","iframeProps","isTabletViewport","resetTypingRef","clearerRef","localRef","zoomLevel","select","getZoomLevel","zoomOutIframeProps","scale","frameSize","__unstableContentRef","className","style","scope","transformOptions","ref","tabIndex","display","name","BlockCanvas"],"sources":["@wordpress/block-editor/src/components/block-canvas/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMergeRefs, useViewportMatch } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport BlockTools from '../block-tools';\nimport EditorStyles from '../editor-styles';\nimport Iframe from '../iframe';\nimport WritingFlow from '../writing-flow';\nimport { useMouseMoveTypingReset } from '../observe-typing';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useBlockCommands } from '../use-block-commands';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n// EditorStyles is a memoized component, so avoid passing a new\n// object reference on each render.\nconst EDITOR_STYLE_TRANSFORM_OPTIONS = {\n\t// Don't transform selectors that already specify `.editor-styles-wrapper`.\n\tignoredSelectors: [ /\\.editor-styles-wrapper/gi ],\n};\n\nexport function ExperimentalBlockCanvas( {\n\tshouldIframe = true,\n\theight = '300px',\n\tchildren = <BlockList />,\n\tstyles,\n\tcontentRef: contentRefProp,\n\tiframeProps,\n} ) {\n\tuseBlockCommands();\n\tconst isTabletViewport = useViewportMatch( 'medium', '<' );\n\tconst resetTypingRef = useMouseMoveTypingReset();\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst localRef = useRef();\n\tconst contentRef = useMergeRefs( [ contentRefProp, clearerRef, localRef ] );\n\tconst zoomLevel = useSelect(\n\t\t( select ) => unlock( select( blockEditorStore ) ).getZoomLevel(),\n\t\t[]\n\t);\n\tconst zoomOutIframeProps =\n\t\tzoomLevel !== 100 && ! isTabletViewport\n\t\t\t? {\n\t\t\t\t\tscale: zoomLevel,\n\t\t\t\t\tframeSize: '40px',\n\t\t\t }\n\t\t\t: {};\n\n\tif ( ! shouldIframe ) {\n\t\treturn (\n\t\t\t<BlockTools\n\t\t\t\t__unstableContentRef={ localRef }\n\t\t\t\tclassName=\"block-editor-block-canvas\"\n\t\t\t\tstyle={ { height } }\n\t\t\t>\n\t\t\t\t<EditorStyles\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tscope=\":where(.editor-styles-wrapper)\"\n\t\t\t\t\ttransformOptions={ EDITOR_STYLE_TRANSFORM_OPTIONS }\n\t\t\t\t/>\n\t\t\t\t<WritingFlow\n\t\t\t\t\tref={ contentRef }\n\t\t\t\t\tclassName=\"editor-styles-wrapper\"\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</WritingFlow>\n\t\t\t</BlockTools>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockTools\n\t\t\t__unstableContentRef={ localRef }\n\t\t\tclassName=\"block-editor-block-canvas\"\n\t\t\tstyle={ { height, display: 'flex' } }\n\t\t>\n\t\t\t<Iframe\n\t\t\t\t{ ...iframeProps }\n\t\t\t\t{ ...zoomOutIframeProps }\n\t\t\t\tref={ resetTypingRef }\n\t\t\t\tcontentRef={ contentRef }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...iframeProps?.style,\n\t\t\t\t} }\n\t\t\t\tname=\"editor-canvas\"\n\t\t\t>\n\t\t\t\t<EditorStyles styles={ styles } />\n\t\t\t\t{ children }\n\t\t\t</Iframe>\n\t\t</BlockTools>\n\t);\n}\n\n/**\n * BlockCanvas component is a component used to display the canvas of the block editor.\n * What we call the canvas is an iframe containing the block list that you can manipulate.\n * The component is also responsible of wiring up all the necessary hooks to enable\n * the keyboard navigation across blocks in the editor and inject content styles into the iframe.\n *\n * @example\n *\n * ```jsx\n * function MyBlockEditor() {\n * const [ blocks, updateBlocks ] = useState([]);\n * return (\n * <BlockEditorProvider\n * value={ blocks }\n * onInput={ updateBlocks }\n * onChange={ persistBlocks }\n * >\n * <BlockCanvas height=\"400px\" />\n * </BlockEditorProvider>\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.height Canvas height, defaults to 300px.\n * @param {Array} props.styles Content styles to inject into the iframe.\n * @param {Element} props.children Content of the canvas, defaults to the BlockList component.\n * @return {Element} Block Breadcrumb.\n */\nfunction BlockCanvas( { children, height, styles } ) {\n\treturn (\n\t\t<ExperimentalBlockCanvas height={ height } styles={ styles }>\n\t\t\t{ children }\n\t\t</ExperimentalBlockCanvas>\n\t);\n}\n\nexport default BlockCanvas;\n"],"mappings":"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","ignoreList":[]}
@@ -6,10 +6,10 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { memo, useCallback, RawHTML, useContext, useMemo } from '@wordpress/element';
9
+ import { memo, RawHTML, useContext, useMemo } from '@wordpress/element';
10
10
  import { getBlockType, getSaveContent, isUnmodifiedDefaultBlock, serializeRawBlock, switchToBlockType, getDefaultBlockName, isUnmodifiedBlock, isReusableBlock, getBlockDefaultClassName, hasBlockSupport, createBlock, store as blocksStore } from '@wordpress/blocks';
11
11
  import { withFilters } from '@wordpress/components';
12
- import { withDispatch, useDispatch, useSelect } from '@wordpress/data';
12
+ import { withDispatch, useSelect } from '@wordpress/data';
13
13
  import { compose } from '@wordpress/compose';
14
14
  import { safeHTML } from '@wordpress/dom';
15
15
 
@@ -84,6 +84,7 @@ function BlockListBlock({
84
84
  wrapperProps,
85
85
  setAttributes,
86
86
  onReplace,
87
+ onRemove,
87
88
  onInsertBlocksAfter,
88
89
  onMerge,
89
90
  toggleSelection
@@ -95,10 +96,6 @@ function BlockListBlock({
95
96
  themeSupportsLayout,
96
97
  ...context
97
98
  } = useContext(PrivateBlockContext);
98
- const {
99
- removeBlock
100
- } = useDispatch(blockEditorStore);
101
- const onRemove = useCallback(() => removeBlock(clientId), [clientId, removeBlock]);
102
99
  const parentLayout = useLayout() || {};
103
100
 
104
101
  // We wrap the BlockEdit component in a div that hides it when editing in
@@ -408,6 +405,9 @@ const applyWithDispatch = withDispatch((dispatch, ownProps, registry) => {
408
405
  const replacementBlocks = blocks?.length === 1 && Array.isArray(blocks[0]) ? blocks[0] : blocks;
409
406
  replaceBlocks([ownProps.clientId], replacementBlocks, indexToSelect, initialPosition);
410
407
  },
408
+ onRemove() {
409
+ removeBlock(ownProps.clientId);
410
+ },
411
411
  toggleSelection(selectionEnabled) {
412
412
  toggleSelection(selectionEnabled);
413
413
  }
@@ -626,7 +626,8 @@ function BlockListBlockProvider(props) {
626
626
  mayDisplayControls,
627
627
  mayDisplayParentControls,
628
628
  originalBlockClientId,
629
- themeSupportsLayout
629
+ themeSupportsLayout,
630
+ canMove
630
631
  };
631
632
 
632
633
  // Here we separate between the props passed to BlockListBlock and any other
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","memo","useCallback","RawHTML","useContext","useMemo","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","serializeRawBlock","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","isReusableBlock","getBlockDefaultClassName","hasBlockSupport","createBlock","store","blocksStore","withFilters","withDispatch","useDispatch","useSelect","compose","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","blockEditorStore","useLayout","PrivateBlockContext","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","removeBlock","onRemove","parentLayout","blockEdit","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","isPreviewMode","blockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","display","apiVersion","dataAlign","restWrapperProps","updatedWrapperProps","Provider","value","fallback","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","selectBlock","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","switchToDefaultOrRemove","defaultBlockName","defaultBlockType","replacement","nextBlockClientId","batch","merge","moveFirstItemUp","_clientId","changeSelection","wrapperBlockName","wrapperBlockType","isTextualWrapper","category","targetRootClientId","blockOrder","firstClientId","every","nextRootClientId","rootAttributes","previousRootAttributes","key","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled","BlockListBlockProvider","selectedProps","isBlockSelected","getBlockMode","getTemplateLock","isSectionBlock","_isSectionBlock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","getTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","getBlocksByName","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","__unstableHasActiveBlockOverlayActive","getSelectedBlocksInitialCaretPosition","blockWithoutAttributes","_hasBlockSupport","getActiveBlockVariation","blockName","supportsLayout","hasLightBlockWrapper","previewContext","isReusable","defaultClassName","blockTitle","title","_isSelected","canMove","match","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","multiple","blocksWithSameName","isInvalid","isTemporarilyEditingAsBlocks","id","blockApiVersion","isSubtreeDisabled","hasOverlay","isHighlighted","isPartiallySelected","hasChildSelected","isEditingDisabled","hasEditableOutline","originalBlockClientId","privateContext"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tRawHTML,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\thasBlockSupport,\n\tcreateBlock,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = clsx( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t\tisPreviewMode={ context.isPreviewMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\tconst updatedWrapperProps = {\n\t\t...restWrapperProps,\n\t\tclassName: clsx(\n\t\t\trestWrapperProps.className,\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\t! ( dataAlign && isSticky ) && className\n\t\t),\n\t};\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: updatedWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tselectBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\tfunction switchToDefaultOrRemove() {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\t\tconst defaultBlockType = getBlockType( defaultBlockName );\n\t\t\t\tif ( getBlockName( clientId ) !== defaultBlockName ) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tblock,\n\t\t\t\t\t\tdefaultBlockName\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t} else if ( isUnmodifiedDefaultBlock( block ) ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\tselectBlock( nextBlockClientId );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} else if ( defaultBlockType.merge ) {\n\t\t\t\t\tconst attributes = defaultBlockType.merge(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tblock.attributes\n\t\t\t\t\t);\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t[ clientId ],\n\t\t\t\t\t\t[ createBlock( defaultBlockName, attributes ) ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst wrapperBlockName = getBlockName( _clientId );\n\t\t\t\tconst wrapperBlockType = getBlockType( wrapperBlockName );\n\t\t\t\tconst isTextualWrapper = wrapperBlockType.category === 'text';\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else if ( isTextualWrapper ) {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\treplacement &&\n\t\t\t\t\t\t\t\treplacement.length &&\n\t\t\t\t\t\t\t\treplacement.every( ( block ) =>\n\t\t\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\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\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tisSectionBlock: _isSectionBlock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\tgetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlocksByName,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst { supportsLayout, isPreviewMode } = getSettings();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst previewContext = {\n\t\t\t\tisPreviewMode,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t\tblockTitle: blockType?.title,\n\t\t\t};\n\n\t\t\t// When in preview mode, we can avoid a lot of selection and\n\t\t\t// editing related selectors.\n\t\t\tif ( isPreviewMode ) {\n\t\t\t\treturn previewContext;\n\t\t\t}\n\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId );\n\t\t\tconst canMove = canMoveBlock( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\tconst multiple = hasBlockSupport( blockName, 'multiple', true );\n\n\t\t\t// For block types with `multiple` support, there is no \"original\n\t\t\t// block\" to be found in the content, as the block itself is valid.\n\t\t\tconst blocksWithSameName = multiple\n\t\t\t\t? []\n\t\t\t\t: getBlocksByName( blockName );\n\t\t\tconst isInvalid =\n\t\t\t\tblocksWithSameName.length &&\n\t\t\t\tblocksWithSameName[ 0 ] !== clientId;\n\n\t\t\treturn {\n\t\t\t\t...previewContext,\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\tisSectionBlock: _isSectionBlock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\tgetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition: _isSelected\n\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\toriginalBlockClientId: isInvalid\n\t\t\t\t\t? blocksWithSameName[ 0 ]\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tisPreviewMode,\n\t\t// Fill values that end up as a public API and may not be defined in\n\t\t// preview mode.\n\t\tmode = 'visual',\n\t\tisSelectionEnabled = false,\n\t\tisLocked = false,\n\t\tcanRemove = false,\n\t\tcanMove = false,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected = false,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t\toriginalBlockClientId,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tisPreviewMode,\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\toriginalBlockClientId,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","memo","RawHTML","useContext","useMemo","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","serializeRawBlock","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","isReusableBlock","getBlockDefaultClassName","hasBlockSupport","createBlock","store","blocksStore","withFilters","withDispatch","useSelect","compose","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","blockEditorStore","useLayout","PrivateBlockContext","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onRemove","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","parentLayout","blockEdit","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","isPreviewMode","blockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","display","apiVersion","dataAlign","restWrapperProps","updatedWrapperProps","Provider","value","fallback","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","removeBlock","selectBlock","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","switchToDefaultOrRemove","defaultBlockName","defaultBlockType","replacement","nextBlockClientId","batch","merge","moveFirstItemUp","_clientId","changeSelection","wrapperBlockName","wrapperBlockType","isTextualWrapper","category","targetRootClientId","blockOrder","firstClientId","every","nextRootClientId","rootAttributes","previousRootAttributes","key","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled","BlockListBlockProvider","selectedProps","isBlockSelected","getBlockMode","getTemplateLock","isSectionBlock","_isSectionBlock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","getTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","getBlocksByName","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","__unstableHasActiveBlockOverlayActive","getSelectedBlocksInitialCaretPosition","blockWithoutAttributes","_hasBlockSupport","getActiveBlockVariation","blockName","supportsLayout","hasLightBlockWrapper","previewContext","isReusable","defaultClassName","blockTitle","title","_isSelected","canMove","match","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","multiple","blocksWithSameName","isInvalid","isTemporarilyEditingAsBlocks","id","blockApiVersion","isSubtreeDisabled","hasOverlay","isHighlighted","isPartiallySelected","hasChildSelected","isEditingDisabled","hasEditableOutline","originalBlockClientId","privateContext"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { memo, RawHTML, useContext, useMemo } from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\thasBlockSupport,\n\tcreateBlock,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = clsx( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonRemove,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t\tisPreviewMode={ context.isPreviewMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\tconst updatedWrapperProps = {\n\t\t...restWrapperProps,\n\t\tclassName: clsx(\n\t\t\trestWrapperProps.className,\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\t! ( dataAlign && isSticky ) && className\n\t\t),\n\t};\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: updatedWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tselectBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\tfunction switchToDefaultOrRemove() {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\t\tconst defaultBlockType = getBlockType( defaultBlockName );\n\t\t\t\tif ( getBlockName( clientId ) !== defaultBlockName ) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tblock,\n\t\t\t\t\t\tdefaultBlockName\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t} else if ( isUnmodifiedDefaultBlock( block ) ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\tselectBlock( nextBlockClientId );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} else if ( defaultBlockType.merge ) {\n\t\t\t\t\tconst attributes = defaultBlockType.merge(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tblock.attributes\n\t\t\t\t\t);\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t[ clientId ],\n\t\t\t\t\t\t[ createBlock( defaultBlockName, attributes ) ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst wrapperBlockName = getBlockName( _clientId );\n\t\t\t\tconst wrapperBlockType = getBlockType( wrapperBlockName );\n\t\t\t\tconst isTextualWrapper = wrapperBlockType.category === 'text';\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else if ( isTextualWrapper ) {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\treplacement &&\n\t\t\t\t\t\t\t\treplacement.length &&\n\t\t\t\t\t\t\t\treplacement.every( ( block ) =>\n\t\t\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\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\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\tonRemove() {\n\t\t\tremoveBlock( ownProps.clientId );\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tisSectionBlock: _isSectionBlock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\tgetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlocksByName,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst { supportsLayout, isPreviewMode } = getSettings();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst previewContext = {\n\t\t\t\tisPreviewMode,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t\tblockTitle: blockType?.title,\n\t\t\t};\n\n\t\t\t// When in preview mode, we can avoid a lot of selection and\n\t\t\t// editing related selectors.\n\t\t\tif ( isPreviewMode ) {\n\t\t\t\treturn previewContext;\n\t\t\t}\n\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId );\n\t\t\tconst canMove = canMoveBlock( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\tconst multiple = hasBlockSupport( blockName, 'multiple', true );\n\n\t\t\t// For block types with `multiple` support, there is no \"original\n\t\t\t// block\" to be found in the content, as the block itself is valid.\n\t\t\tconst blocksWithSameName = multiple\n\t\t\t\t? []\n\t\t\t\t: getBlocksByName( blockName );\n\t\t\tconst isInvalid =\n\t\t\t\tblocksWithSameName.length &&\n\t\t\t\tblocksWithSameName[ 0 ] !== clientId;\n\n\t\t\treturn {\n\t\t\t\t...previewContext,\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\tisSectionBlock: _isSectionBlock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\tgetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition: _isSelected\n\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\toriginalBlockClientId: isInvalid\n\t\t\t\t\t? blocksWithSameName[ 0 ]\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tisPreviewMode,\n\t\t// Fill values that end up as a public API and may not be defined in\n\t\t// preview mode.\n\t\tmode = 'visual',\n\t\tisSelectionEnabled = false,\n\t\tisLocked = false,\n\t\tcanRemove = false,\n\t\tcanMove = false,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected = false,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t\toriginalBlockClientId,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tisPreviewMode,\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\toriginalBlockClientId,\n\t\tthemeSupportsLayout,\n\t\tcanMove,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  /**
3
2
  * External dependencies
4
3
  */
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","AsyncModeProvider","useSelect","useDispatch","useRegistry","useViewportMatch","useMergeRefs","useDebounce","createContext","useMemo","useCallback","useEffect","BlockListBlock","BlockListAppender","useInBetweenInserter","store","blockEditorStore","LayoutProvider","defaultLayout","useBlockSelectionClearer","useInnerBlocksProps","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","useTypingObserver","ZoomOutSeparator","unlock","jsx","_jsx","jsxs","_jsxs","IntersectionObserver","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","isLargeViewport","isOutlineMode","isFocusMode","temporarilyEditingAsBlocks","select","getSettings","getTemporarilyEditingAsBlocks","isTyping","outlineMode","focusMode","registry","setBlockVisibility","delayedBlockVisibilityUpdates","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","ref","Provider","value","children","StopEditingAsBlocksOnOutsideSelect","stopEditingAsBlocks","isBlockOrDescendantSelected","isBlockSelected","hasSelectedInnerBlock","BlockList","EMPTY_ARRAY","EMPTY_SET","Set","Items","placeholder","rootClientId","renderAppender","CustomAppender","__experimentalAppenderTagName","layout","hasAppender","hasCustomAppender","order","isZoomOut","selectedBlocks","visibleBlocks","shouldRenderAppender","getBlockOrder","getSelectedBlockClientId","getSelectedBlockClientIds","__unstableGetVisibleBlocks","getTemplateLock","getBlockEditingMode","isSectionBlock","_isZoomOut","_order","isPreviewMode","selectedBlockClientId","length","map","has","includes","position","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\tuseDebounce,\n} from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tuseEffect,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\nimport { useTypingObserver } from '../observe-typing';\nimport { ZoomOutSeparator } from './zoom-out-separator';\nimport { unlock } from '../../lock-unlock';\n\nexport const IntersectionObserver = createContext();\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { isOutlineMode, isFocusMode, temporarilyEditingAsBlocks } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSettings, getTemporarilyEditingAsBlocks, isTyping } =\n\t\t\t\tunlock( select( blockEditorStore ) );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode && ! isTyping(),\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\ttemporarilyEditingAsBlocks: getTemporarilyEditingAsBlocks(),\n\t\t\t};\n\t\t}, [] );\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tuseTypingObserver(),\n\t\t\t] ),\n\t\t\tclassName: clsx( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t\t{ !! temporarilyEditingAsBlocks && (\n\t\t\t\t<StopEditingAsBlocksOnOutsideSelect\n\t\t\t\t\tclientId={ temporarilyEditingAsBlocks }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</IntersectionObserver.Provider>\n\t);\n}\n\nfunction StopEditingAsBlocksOnOutsideSelect( { clientId } ) {\n\tconst { stopEditingAsBlocks } = unlock( useDispatch( blockEditorStore ) );\n\tconst isBlockOrDescendantSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\thasSelectedInnerBlock( clientId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isBlockOrDescendantSelected ) {\n\t\t\tstopEditingAsBlocks( clientId );\n\t\t}\n\t}, [ isBlockOrDescendantSelected, clientId, stopEditingAsBlocks ] );\n\treturn null;\n}\n\nexport default function BlockList( settings ) {\n\treturn (\n\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t<Root { ...settings } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\nconst EMPTY_SET = new Set();\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender: CustomAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\t// Avoid passing CustomAppender to useSelect because it could be a new\n\t// function on every render.\n\tconst hasAppender = CustomAppender !== false;\n\tconst hasCustomAppender = !! CustomAppender;\n\tconst {\n\t\torder,\n\t\tisZoomOut,\n\t\tselectedBlocks,\n\t\tvisibleBlocks,\n\t\tshouldRenderAppender,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisSectionBlock,\n\t\t\t\tisZoomOut: _isZoomOut,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst _order = getBlockOrder( rootClientId );\n\n\t\t\tif ( getSettings().isPreviewMode ) {\n\t\t\t\treturn {\n\t\t\t\t\torder: _order,\n\t\t\t\t\tselectedBlocks: EMPTY_ARRAY,\n\t\t\t\t\tvisibleBlocks: EMPTY_SET,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\treturn {\n\t\t\t\torder: _order,\n\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t\tisZoomOut: _isZoomOut(),\n\t\t\t\tshouldRenderAppender:\n\t\t\t\t\t! isSectionBlock( rootClientId ) &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) !== 'disabled' &&\n\t\t\t\t\t! getTemplateLock( rootClientId ) &&\n\t\t\t\t\thasAppender &&\n\t\t\t\t\t! _isZoomOut() &&\n\t\t\t\t\t( hasCustomAppender ||\n\t\t\t\t\t\trootClientId === selectedBlockClientId ||\n\t\t\t\t\t\t( ! rootClientId &&\n\t\t\t\t\t\t\t! selectedBlockClientId &&\n\t\t\t\t\t\t\t! _order.length ) ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, hasAppender, hasCustomAppender ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"top\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"bottom\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t{ shouldRenderAppender && (\n\t\t\t\t<BlockListAppender\n\t\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tCustomAppender={ CustomAppender }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","AsyncModeProvider","useSelect","useDispatch","useRegistry","useViewportMatch","useMergeRefs","useDebounce","createContext","useMemo","useCallback","useEffect","BlockListBlock","BlockListAppender","useInBetweenInserter","store","blockEditorStore","LayoutProvider","defaultLayout","useBlockSelectionClearer","useInnerBlocksProps","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","useTypingObserver","ZoomOutSeparator","unlock","jsx","_jsx","jsxs","_jsxs","IntersectionObserver","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","isLargeViewport","isOutlineMode","isFocusMode","temporarilyEditingAsBlocks","select","getSettings","getTemporarilyEditingAsBlocks","isTyping","outlineMode","focusMode","registry","setBlockVisibility","delayedBlockVisibilityUpdates","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","ref","Provider","value","children","StopEditingAsBlocksOnOutsideSelect","stopEditingAsBlocks","isBlockOrDescendantSelected","isBlockSelected","hasSelectedInnerBlock","BlockList","EMPTY_ARRAY","EMPTY_SET","Set","Items","placeholder","rootClientId","renderAppender","CustomAppender","__experimentalAppenderTagName","layout","hasAppender","hasCustomAppender","order","isZoomOut","selectedBlocks","visibleBlocks","shouldRenderAppender","getBlockOrder","getSelectedBlockClientId","getSelectedBlockClientIds","__unstableGetVisibleBlocks","getTemplateLock","getBlockEditingMode","isSectionBlock","_isZoomOut","_order","isPreviewMode","selectedBlockClientId","length","map","has","includes","position","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\tuseDebounce,\n} from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tuseEffect,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\nimport { useTypingObserver } from '../observe-typing';\nimport { ZoomOutSeparator } from './zoom-out-separator';\nimport { unlock } from '../../lock-unlock';\n\nexport const IntersectionObserver = createContext();\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { isOutlineMode, isFocusMode, temporarilyEditingAsBlocks } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSettings, getTemporarilyEditingAsBlocks, isTyping } =\n\t\t\t\tunlock( select( blockEditorStore ) );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode && ! isTyping(),\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\ttemporarilyEditingAsBlocks: getTemporarilyEditingAsBlocks(),\n\t\t\t};\n\t\t}, [] );\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tuseTypingObserver(),\n\t\t\t] ),\n\t\t\tclassName: clsx( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t\t{ !! temporarilyEditingAsBlocks && (\n\t\t\t\t<StopEditingAsBlocksOnOutsideSelect\n\t\t\t\t\tclientId={ temporarilyEditingAsBlocks }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</IntersectionObserver.Provider>\n\t);\n}\n\nfunction StopEditingAsBlocksOnOutsideSelect( { clientId } ) {\n\tconst { stopEditingAsBlocks } = unlock( useDispatch( blockEditorStore ) );\n\tconst isBlockOrDescendantSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\thasSelectedInnerBlock( clientId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isBlockOrDescendantSelected ) {\n\t\t\tstopEditingAsBlocks( clientId );\n\t\t}\n\t}, [ isBlockOrDescendantSelected, clientId, stopEditingAsBlocks ] );\n\treturn null;\n}\n\nexport default function BlockList( settings ) {\n\treturn (\n\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t<Root { ...settings } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\nconst EMPTY_SET = new Set();\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender: CustomAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\t// Avoid passing CustomAppender to useSelect because it could be a new\n\t// function on every render.\n\tconst hasAppender = CustomAppender !== false;\n\tconst hasCustomAppender = !! CustomAppender;\n\tconst {\n\t\torder,\n\t\tisZoomOut,\n\t\tselectedBlocks,\n\t\tvisibleBlocks,\n\t\tshouldRenderAppender,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisSectionBlock,\n\t\t\t\tisZoomOut: _isZoomOut,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst _order = getBlockOrder( rootClientId );\n\n\t\t\tif ( getSettings().isPreviewMode ) {\n\t\t\t\treturn {\n\t\t\t\t\torder: _order,\n\t\t\t\t\tselectedBlocks: EMPTY_ARRAY,\n\t\t\t\t\tvisibleBlocks: EMPTY_SET,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\treturn {\n\t\t\t\torder: _order,\n\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t\tisZoomOut: _isZoomOut(),\n\t\t\t\tshouldRenderAppender:\n\t\t\t\t\t! isSectionBlock( rootClientId ) &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) !== 'disabled' &&\n\t\t\t\t\t! getTemplateLock( rootClientId ) &&\n\t\t\t\t\thasAppender &&\n\t\t\t\t\t! _isZoomOut() &&\n\t\t\t\t\t( hasCustomAppender ||\n\t\t\t\t\t\trootClientId === selectedBlockClientId ||\n\t\t\t\t\t\t( ! rootClientId &&\n\t\t\t\t\t\t\t! selectedBlockClientId &&\n\t\t\t\t\t\t\t! _order.length ) ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, hasAppender, hasCustomAppender ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"top\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"bottom\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t{ shouldRenderAppender && (\n\t\t\t\t<BlockListAppender\n\t\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tCustomAppender={ CustomAppender }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}