@wordpress/block-library 8.7.0 → 8.8.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 (270) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/column/index.js +2 -1
  3. package/build/column/index.js.map +1 -1
  4. package/build/columns/edit.js +24 -6
  5. package/build/columns/edit.js.map +1 -1
  6. package/build/columns/index.js +2 -1
  7. package/build/columns/index.js.map +1 -1
  8. package/build/columns/utils.js +4 -9
  9. package/build/columns/utils.js.map +1 -1
  10. package/build/cover/edit/index.js +46 -50
  11. package/build/cover/edit/index.js.map +1 -1
  12. package/build/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +32 -6
  13. package/build/cover/edit/resizable-cover-popover.js.map +1 -0
  14. package/build/cover/index.js +12 -0
  15. package/build/cover/index.js.map +1 -1
  16. package/build/details/edit.js +67 -0
  17. package/build/details/edit.js.map +1 -0
  18. package/build/details/index.js +110 -0
  19. package/build/details/index.js.map +1 -0
  20. package/build/details/save.js +33 -0
  21. package/build/details/save.js.map +1 -0
  22. package/build/details-content/edit.js +34 -0
  23. package/build/details-content/edit.js.map +1 -0
  24. package/build/details-content/index.js +94 -0
  25. package/build/details-content/index.js.map +1 -0
  26. package/build/details-content/save.js +20 -0
  27. package/build/details-content/save.js.map +1 -0
  28. package/build/details-summary/edit.js +42 -0
  29. package/build/details-summary/edit.js.map +1 -0
  30. package/build/details-summary/index.js +97 -0
  31. package/build/details-summary/index.js.map +1 -0
  32. package/build/details-summary/save.js +24 -0
  33. package/build/details-summary/save.js.map +1 -0
  34. package/build/embed/deprecated.js +4 -1
  35. package/build/embed/deprecated.js.map +1 -1
  36. package/build/embed/embed-link-settings.native.js +1 -1
  37. package/build/embed/embed-link-settings.native.js.map +1 -1
  38. package/build/embed/embed-placeholder.js +1 -1
  39. package/build/embed/embed-placeholder.js.map +1 -1
  40. package/build/embed/index.js +4 -1
  41. package/build/embed/index.js.map +1 -1
  42. package/build/embed/transforms.js +4 -1
  43. package/build/embed/transforms.js.map +1 -1
  44. package/build/embed/util.js +4 -1
  45. package/build/embed/util.js.map +1 -1
  46. package/build/file/edit.native.js +0 -2
  47. package/build/file/edit.native.js.map +1 -1
  48. package/build/gallery/use-get-media.native.js +2 -1
  49. package/build/gallery/use-get-media.native.js.map +1 -1
  50. package/build/image/index.js +4 -2
  51. package/build/image/index.js.map +1 -1
  52. package/build/index.js +24 -6
  53. package/build/index.js.map +1 -1
  54. package/build/media-text/media-container.js +2 -6
  55. package/build/media-text/media-container.js.map +1 -1
  56. package/build/media-text/media-container.native.js +3 -3
  57. package/build/media-text/media-container.native.js.map +1 -1
  58. package/build/navigation/deprecated.js +8 -11
  59. package/build/navigation/deprecated.js.map +1 -1
  60. package/build/navigation/edit/unsaved-inner-blocks.js +1 -14
  61. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  62. package/build/post-author/index.js +0 -1
  63. package/build/post-author/index.js.map +1 -1
  64. package/build/post-featured-image/dimension-controls.js +2 -1
  65. package/build/post-featured-image/dimension-controls.js.map +1 -1
  66. package/build/post-featured-image/edit.js +8 -22
  67. package/build/post-featured-image/edit.js.map +1 -1
  68. package/build/post-time-to-read/edit.js +1 -1
  69. package/build/post-time-to-read/edit.js.map +1 -1
  70. package/build/post-time-to-read/index.js +7 -0
  71. package/build/post-time-to-read/index.js.map +1 -1
  72. package/build/spacer/controls.js +25 -6
  73. package/build/spacer/controls.js.map +1 -1
  74. package/build/spacer/edit.js +14 -4
  75. package/build/spacer/edit.js.map +1 -1
  76. package/build/spacer/save.js +2 -2
  77. package/build/spacer/save.js.map +1 -1
  78. package/build/table/state.js +35 -35
  79. package/build/table/state.js.map +1 -1
  80. package/build/term-description/index.js +1 -2
  81. package/build/term-description/index.js.map +1 -1
  82. package/build/utils/clean-empty-object.js +5 -2
  83. package/build/utils/clean-empty-object.js.map +1 -1
  84. package/build-module/column/index.js +2 -1
  85. package/build-module/column/index.js.map +1 -1
  86. package/build-module/columns/edit.js +24 -6
  87. package/build-module/columns/edit.js.map +1 -1
  88. package/build-module/columns/index.js +2 -1
  89. package/build-module/columns/index.js.map +1 -1
  90. package/build-module/columns/utils.js +4 -8
  91. package/build-module/columns/utils.js.map +1 -1
  92. package/build-module/cover/edit/index.js +48 -52
  93. package/build-module/cover/edit/index.js.map +1 -1
  94. package/build-module/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +31 -6
  95. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -0
  96. package/build-module/cover/index.js +12 -0
  97. package/build-module/cover/index.js.map +1 -1
  98. package/build-module/details/edit.js +52 -0
  99. package/build-module/details/edit.js.map +1 -0
  100. package/build-module/details/index.js +91 -0
  101. package/build-module/details/index.js.map +1 -0
  102. package/build-module/details/save.js +20 -0
  103. package/build-module/details/save.js.map +1 -0
  104. package/build-module/details-content/edit.js +23 -0
  105. package/build-module/details-content/edit.js.map +1 -0
  106. package/build-module/details-content/index.js +76 -0
  107. package/build-module/details-content/index.js.map +1 -0
  108. package/build-module/details-content/save.js +11 -0
  109. package/build-module/details-content/save.js.map +1 -0
  110. package/build-module/details-summary/edit.js +30 -0
  111. package/build-module/details-summary/edit.js.map +1 -0
  112. package/build-module/details-summary/index.js +79 -0
  113. package/build-module/details-summary/index.js.map +1 -0
  114. package/build-module/details-summary/save.js +16 -0
  115. package/build-module/details-summary/save.js.map +1 -0
  116. package/build-module/embed/deprecated.js +4 -1
  117. package/build-module/embed/deprecated.js.map +1 -1
  118. package/build-module/embed/embed-link-settings.native.js +1 -1
  119. package/build-module/embed/embed-link-settings.native.js.map +1 -1
  120. package/build-module/embed/embed-placeholder.js +1 -1
  121. package/build-module/embed/embed-placeholder.js.map +1 -1
  122. package/build-module/embed/index.js +4 -1
  123. package/build-module/embed/index.js.map +1 -1
  124. package/build-module/embed/transforms.js +4 -1
  125. package/build-module/embed/transforms.js.map +1 -1
  126. package/build-module/embed/util.js +4 -1
  127. package/build-module/embed/util.js.map +1 -1
  128. package/build-module/file/edit.native.js +0 -2
  129. package/build-module/file/edit.native.js.map +1 -1
  130. package/build-module/gallery/use-get-media.native.js +2 -1
  131. package/build-module/gallery/use-get-media.native.js.map +1 -1
  132. package/build-module/image/index.js +4 -2
  133. package/build-module/image/index.js.map +1 -1
  134. package/build-module/index.js +21 -6
  135. package/build-module/index.js.map +1 -1
  136. package/build-module/media-text/media-container.js +1 -5
  137. package/build-module/media-text/media-container.js.map +1 -1
  138. package/build-module/media-text/media-container.native.js +1 -1
  139. package/build-module/media-text/media-container.native.js.map +1 -1
  140. package/build-module/navigation/deprecated.js +8 -10
  141. package/build-module/navigation/deprecated.js.map +1 -1
  142. package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -14
  143. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  144. package/build-module/post-author/index.js +0 -1
  145. package/build-module/post-author/index.js.map +1 -1
  146. package/build-module/post-featured-image/dimension-controls.js +2 -1
  147. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  148. package/build-module/post-featured-image/edit.js +8 -22
  149. package/build-module/post-featured-image/edit.js.map +1 -1
  150. package/build-module/post-time-to-read/edit.js +1 -1
  151. package/build-module/post-time-to-read/edit.js.map +1 -1
  152. package/build-module/post-time-to-read/index.js +7 -0
  153. package/build-module/post-time-to-read/index.js.map +1 -1
  154. package/build-module/spacer/controls.js +27 -9
  155. package/build-module/spacer/controls.js.map +1 -1
  156. package/build-module/spacer/edit.js +14 -5
  157. package/build-module/spacer/edit.js.map +1 -1
  158. package/build-module/spacer/save.js +3 -3
  159. package/build-module/spacer/save.js.map +1 -1
  160. package/build-module/table/state.js +35 -33
  161. package/build-module/table/state.js.map +1 -1
  162. package/build-module/term-description/index.js +1 -2
  163. package/build-module/term-description/index.js.map +1 -1
  164. package/build-module/utils/clean-empty-object.js +6 -3
  165. package/build-module/utils/clean-empty-object.js.map +1 -1
  166. package/build-style/columns/style-rtl.css +4 -1
  167. package/build-style/columns/style.css +4 -1
  168. package/build-style/common-rtl.css +1 -1
  169. package/build-style/common.css +1 -1
  170. package/build-style/cover/editor-rtl.css +11 -12
  171. package/build-style/cover/editor.css +11 -12
  172. package/build-style/cover/style-rtl.css +3 -2
  173. package/build-style/cover/style.css +3 -2
  174. package/build-style/details/style-rtl.css +91 -0
  175. package/build-style/details/style.css +91 -0
  176. package/build-style/details-summary/editor-rtl.css +91 -0
  177. package/build-style/details-summary/editor.css +91 -0
  178. package/build-style/details-summary/style-rtl.css +91 -0
  179. package/build-style/details-summary/style.css +91 -0
  180. package/build-style/editor-rtl.css +34 -48
  181. package/build-style/editor.css +34 -48
  182. package/build-style/file/style-rtl.css +4 -3
  183. package/build-style/file/style.css +4 -3
  184. package/build-style/post-excerpt/style-rtl.css +1 -1
  185. package/build-style/post-excerpt/style.css +1 -1
  186. package/build-style/pullquote/style-rtl.css +4 -1
  187. package/build-style/pullquote/style.css +4 -1
  188. package/build-style/shortcode/editor-rtl.css +15 -34
  189. package/build-style/shortcode/editor.css +15 -34
  190. package/build-style/spacer/editor-rtl.css +4 -2
  191. package/build-style/spacer/editor.css +4 -2
  192. package/build-style/style-rtl.css +25 -9
  193. package/build-style/style.css +25 -9
  194. package/package.json +31 -31
  195. package/src/column/block.json +2 -1
  196. package/src/columns/block.json +2 -1
  197. package/src/columns/edit.js +33 -9
  198. package/src/columns/style.scss +5 -1
  199. package/src/columns/utils.js +8 -9
  200. package/src/common.scss +1 -1
  201. package/src/cover/block.json +12 -0
  202. package/src/cover/edit/index.js +44 -37
  203. package/src/cover/edit/resizable-cover-popover.js +82 -0
  204. package/src/cover/editor.scss +20 -13
  205. package/src/cover/index.php +9 -10
  206. package/src/cover/style.scss +2 -1
  207. package/src/cover/test/edit.js +1 -1
  208. package/src/details/block.json +54 -0
  209. package/src/details/edit.js +59 -0
  210. package/src/details/index.js +35 -0
  211. package/src/details/save.js +15 -0
  212. package/src/details/style.scss +3 -0
  213. package/src/details-content/block.json +50 -0
  214. package/src/details-content/edit.js +29 -0
  215. package/src/details-content/index.js +23 -0
  216. package/src/details-content/save.js +12 -0
  217. package/src/details-summary/block.json +53 -0
  218. package/src/details-summary/edit.js +27 -0
  219. package/src/details-summary/editor.scss +3 -0
  220. package/src/details-summary/index.js +23 -0
  221. package/src/details-summary/save.js +13 -0
  222. package/src/details-summary/style.scss +3 -0
  223. package/src/editor.scss +1 -0
  224. package/src/embed/block.json +4 -1
  225. package/src/embed/embed-link-settings.native.js +1 -1
  226. package/src/embed/embed-placeholder.js +1 -1
  227. package/src/file/edit.native.js +0 -2
  228. package/src/file/style.scss +5 -2
  229. package/src/gallery/test/use-get-media.native.js +24 -0
  230. package/src/gallery/use-get-media.native.js +1 -1
  231. package/src/image/block.json +4 -2
  232. package/src/index.js +13 -3
  233. package/src/media-text/media-container.js +1 -5
  234. package/src/media-text/media-container.native.js +1 -1
  235. package/src/navigation/deprecated.js +15 -19
  236. package/src/navigation/edit/unsaved-inner-blocks.js +34 -46
  237. package/src/navigation/index.php +0 -4
  238. package/src/paragraph/test/edit.native.js +356 -1
  239. package/src/post-author/block.json +0 -1
  240. package/src/post-excerpt/index.php +3 -3
  241. package/src/post-excerpt/style.scss +2 -1
  242. package/src/post-featured-image/dimension-controls.js +5 -1
  243. package/src/post-featured-image/edit.js +8 -29
  244. package/src/post-time-to-read/block.json +7 -0
  245. package/src/post-time-to-read/edit.js +1 -1
  246. package/src/post-time-to-read/index.php +3 -3
  247. package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -2
  248. package/src/preformatted/test/edit.native.js +45 -2
  249. package/src/pullquote/style.scss +5 -1
  250. package/src/pullquote/test/edit.native.js +70 -0
  251. package/src/quote/test/edit.native.js +92 -0
  252. package/src/search/index.php +1 -1
  253. package/src/shortcode/editor.scss +26 -5
  254. package/src/spacer/controls.js +42 -17
  255. package/src/spacer/edit.js +23 -4
  256. package/src/spacer/editor.scss +2 -1
  257. package/src/spacer/save.js +3 -3
  258. package/src/style.scss +2 -0
  259. package/src/table/state.js +83 -66
  260. package/src/term-description/block.json +1 -2
  261. package/src/utils/clean-empty-object.js +4 -4
  262. package/src/verse/test/edit.native.js +33 -0
  263. package/build/cover/edit/resizable-cover.js.map +0 -1
  264. package/build/media-text/media-container-icon.js +0 -27
  265. package/build/media-text/media-container-icon.js.map +0 -1
  266. package/build-module/cover/edit/resizable-cover.js.map +0 -1
  267. package/build-module/media-text/media-container-icon.js +0 -17
  268. package/build-module/media-text/media-container-icon.js.map +0 -1
  269. package/src/cover/edit/resizable-cover.js +0 -61
  270. package/src/media-text/media-container-icon.js +0 -12
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 8.8.0 (2023-04-12)
6
+
5
7
  ## 8.7.0 (2023-03-29)
6
8
 
7
9
  ## 8.6.0 (2023-03-15)
@@ -64,7 +64,8 @@ const metadata = {
64
64
  blockGap: true,
65
65
  padding: true,
66
66
  __experimentalDefaultControls: {
67
- padding: true
67
+ padding: true,
68
+ blockGap: true
68
69
  }
69
70
  },
70
71
  __experimentalBorder: {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/column/index.js"],"names":["name","metadata","settings","icon","edit","save","deprecated","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAEA;;AAZA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,IAAI,EAAJA,aAFuB;AAGvBC,EAAAA,IAAI,EAAJA,aAHuB;AAIvBC,EAAAA,UAAU,EAAVA;AAJuB,CAAjB;;;AAOA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEP,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { column as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/column/index.js"],"names":["name","metadata","settings","icon","edit","save","deprecated","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAEA;;AAZA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,IAAI,EAAJA,aAFuB;AAGvBC,EAAAA,IAAI,EAAJA,aAHuB;AAIvBC,EAAAA,UAAU,EAAVA;AAJuB,CAAjB;;;AAOA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEP,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { column as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -61,11 +61,29 @@ function ColumnsEditContainer(_ref) {
61
61
  } = attributes;
62
62
  const {
63
63
  count,
64
- canInsertColumnBlock
64
+ canInsertColumnBlock,
65
+ minCount
65
66
  } = (0, _data.useSelect)(select => {
67
+ const {
68
+ canInsertBlockType,
69
+ canRemoveBlock,
70
+ getBlocks,
71
+ getBlockCount
72
+ } = select(_blockEditor.store);
73
+ const innerBlocks = getBlocks(clientId); // Get the indexes of columns for which removal is prevented.
74
+ // The highest index will be used to determine the minimum column count.
75
+
76
+ const preventRemovalBlockIndexes = innerBlocks.reduce((acc, block, index) => {
77
+ if (!canRemoveBlock(block.clientId)) {
78
+ acc.push(index);
79
+ }
80
+
81
+ return acc;
82
+ }, []);
66
83
  return {
67
- count: select(_blockEditor.store).getBlockCount(clientId),
68
- canInsertColumnBlock: select(_blockEditor.store).canInsertBlockType('core/column', clientId)
84
+ count: getBlockCount(clientId),
85
+ canInsertColumnBlock: canInsertBlockType('core/column', clientId),
86
+ minCount: Math.max(...preventRemovalBlockIndexes) + 1
69
87
  };
70
88
  }, [clientId]);
71
89
  const classes = (0, _classnames.default)({
@@ -88,8 +106,8 @@ function ColumnsEditContainer(_ref) {
88
106
  __nextHasNoMarginBottom: true,
89
107
  label: (0, _i18n.__)('Columns'),
90
108
  value: count,
91
- onChange: value => updateColumns(count, value),
92
- min: 1,
109
+ onChange: value => updateColumns(count, Math.max(minCount, value)),
110
+ min: Math.max(1, minCount),
93
111
  max: Math.max(6, count)
94
112
  }), count > 6 && (0, _element.createElement)(_components.Notice, {
95
113
  status: "warning",
@@ -178,7 +196,7 @@ const ColumnsEditContainerWrapper = (0, _data.withDispatch)((dispatch, ownProps,
178
196
  }).map(() => {
179
197
  return (0, _blocks.createBlock)('core/column');
180
198
  })];
181
- } else {
199
+ } else if (newColumns < previousColumns) {
182
200
  // The removed column will be the last of the inner blocks.
183
201
  innerBlocks = innerBlocks.slice(0, -(previousColumns - newColumns));
184
202
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/columns/edit.js"],"names":["ALLOWED_BLOCKS","ColumnsEditContainer","attributes","setAttributes","updateAlignment","updateColumns","clientId","isStackedOnMobile","verticalAlignment","templateLock","count","canInsertColumnBlock","select","blockEditorStore","getBlockCount","canInsertBlockType","classes","blockProps","className","innerBlocksProps","allowedBlocks","orientation","renderAppender","value","Math","max","ColumnsEditContainerWrapper","dispatch","ownProps","registry","updateBlockAttributes","getBlockOrder","innerBlockClientIds","forEach","innerBlockClientId","previousColumns","newColumns","replaceInnerBlocks","getBlocks","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","Array","from","length","map","width","slice","Placeholder","name","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","blocksStore","icon","src","title","nextVariation","ColumnsEdit","props","hasInnerBlocks","Component"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\n\nimport {\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n} from './utils';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n */\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\nfunction ColumnsEditContainer( {\n\tattributes,\n\tsetAttributes,\n\tupdateAlignment,\n\tupdateColumns,\n\tclientId,\n} ) {\n\tconst { isStackedOnMobile, verticalAlignment, templateLock } = attributes;\n\n\tconst { count, canInsertColumnBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tcount: select( blockEditorStore ).getBlockCount( clientId ),\n\t\t\t\tcanInsertColumnBlock: select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).canInsertBlockType( 'core/column', clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst classes = classnames( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\ttemplateLock,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tupdateColumns( count, value )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst ColumnsEditContainerWrapper = withDispatch(\n\t( dispatch, ownProps, registry ) => ( {\n\t\t/**\n\t\t * Update all child Column blocks with a new vertical alignment setting\n\t\t * based on whatever alignment is passed in. This allows change to parent\n\t\t * to overide anything set on a individual column basis.\n\t\t *\n\t\t * @param {string} verticalAlignment the vertical alignment setting\n\t\t */\n\t\tupdateAlignment( verticalAlignment ) {\n\t\t\tconst { clientId, setAttributes } = ownProps;\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\t\t\tconst { getBlockOrder } = registry.select( blockEditorStore );\n\n\t\t\t// Update own alignment.\n\t\t\tsetAttributes( { verticalAlignment } );\n\n\t\t\t// Update all child Column Blocks to match.\n\t\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\t\t\tinnerBlockClientIds.forEach( ( innerBlockClientId ) => {\n\t\t\t\tupdateBlockAttributes( innerBlockClientId, {\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Updates the column count, including necessary revisions to child Column\n\t\t * blocks to grant required or redistribute available space.\n\t\t *\n\t\t * @param {number} previousColumns Previous column count.\n\t\t * @param {number} newColumns New column count.\n\t\t */\n\t\tupdateColumns( previousColumns, newColumns ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks } = dispatch( blockEditorStore );\n\t\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths =\n\t\t\t\thasExplicitPercentColumnWidths( innerBlocks );\n\n\t\t\t// Redistribute available width for existing inner blocks.\n\t\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\n\t\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t\t// constraining the available working width.\n\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t100 - newColumnWidth\n\t\t\t\t);\n\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t\t...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( isAddingColumn ) {\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...innerBlocks,\n\t\t\t\t\t...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\n\t\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\t\tinnerBlocks = innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\t-( previousColumns - newColumns )\n\t\t\t\t);\n\n\t\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t\t100\n\t\t\t\t\t);\n\n\t\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t\t},\n\t} )\n)( ColumnsEditContainer );\n\nfunction Placeholder( { clientId, name, setAttributes } ) {\n\tconst { blockType, defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ blockType?.icon?.src }\n\t\t\t\tlabel={ blockType?.title }\n\t\t\t\tvariations={ variations }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tallowSkip\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocks( clientId ).length > 0,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks\n\t\t? ColumnsEditContainerWrapper\n\t\t: Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/columns/edit.js"],"names":["ALLOWED_BLOCKS","ColumnsEditContainer","attributes","setAttributes","updateAlignment","updateColumns","clientId","isStackedOnMobile","verticalAlignment","templateLock","count","canInsertColumnBlock","minCount","select","canInsertBlockType","canRemoveBlock","getBlocks","getBlockCount","blockEditorStore","innerBlocks","preventRemovalBlockIndexes","reduce","acc","block","index","push","Math","max","classes","blockProps","className","innerBlocksProps","allowedBlocks","orientation","renderAppender","value","ColumnsEditContainerWrapper","dispatch","ownProps","registry","updateBlockAttributes","getBlockOrder","innerBlockClientIds","forEach","innerBlockClientId","previousColumns","newColumns","replaceInnerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","Array","from","length","map","width","slice","Placeholder","name","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","blocksStore","icon","src","title","nextVariation","ColumnsEdit","props","hasInnerBlocks","Component"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\n\nimport {\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n} from './utils';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n */\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\nfunction ColumnsEditContainer( {\n\tattributes,\n\tsetAttributes,\n\tupdateAlignment,\n\tupdateColumns,\n\tclientId,\n} ) {\n\tconst { isStackedOnMobile, verticalAlignment, templateLock } = attributes;\n\n\tconst { count, canInsertColumnBlock, minCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst innerBlocks = getBlocks( clientId );\n\n\t\t\t// Get the indexes of columns for which removal is prevented.\n\t\t\t// The highest index will be used to determine the minimum column count.\n\t\t\tconst preventRemovalBlockIndexes = innerBlocks.reduce(\n\t\t\t\t( acc, block, index ) => {\n\t\t\t\t\tif ( ! canRemoveBlock( block.clientId ) ) {\n\t\t\t\t\t\tacc.push( index );\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcount: getBlockCount( clientId ),\n\t\t\t\tcanInsertColumnBlock: canInsertBlockType(\n\t\t\t\t\t'core/column',\n\t\t\t\t\tclientId\n\t\t\t\t),\n\t\t\t\tminCount: Math.max( ...preventRemovalBlockIndexes ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst classes = classnames( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\ttemplateLock,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tupdateColumns(\n\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\tMath.max( minCount, value )\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\tmin={ Math.max( 1, minCount ) }\n\t\t\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst ColumnsEditContainerWrapper = withDispatch(\n\t( dispatch, ownProps, registry ) => ( {\n\t\t/**\n\t\t * Update all child Column blocks with a new vertical alignment setting\n\t\t * based on whatever alignment is passed in. This allows change to parent\n\t\t * to overide anything set on a individual column basis.\n\t\t *\n\t\t * @param {string} verticalAlignment the vertical alignment setting\n\t\t */\n\t\tupdateAlignment( verticalAlignment ) {\n\t\t\tconst { clientId, setAttributes } = ownProps;\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\t\t\tconst { getBlockOrder } = registry.select( blockEditorStore );\n\n\t\t\t// Update own alignment.\n\t\t\tsetAttributes( { verticalAlignment } );\n\n\t\t\t// Update all child Column Blocks to match.\n\t\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\t\t\tinnerBlockClientIds.forEach( ( innerBlockClientId ) => {\n\t\t\t\tupdateBlockAttributes( innerBlockClientId, {\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Updates the column count, including necessary revisions to child Column\n\t\t * blocks to grant required or redistribute available space.\n\t\t *\n\t\t * @param {number} previousColumns Previous column count.\n\t\t * @param {number} newColumns New column count.\n\t\t */\n\t\tupdateColumns( previousColumns, newColumns ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks } = dispatch( blockEditorStore );\n\t\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths =\n\t\t\t\thasExplicitPercentColumnWidths( innerBlocks );\n\n\t\t\t// Redistribute available width for existing inner blocks.\n\t\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\n\t\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t\t// constraining the available working width.\n\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t100 - newColumnWidth\n\t\t\t\t);\n\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t\t...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( isAddingColumn ) {\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...innerBlocks,\n\t\t\t\t\t...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\n\t\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( newColumns < previousColumns ) {\n\t\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\t\tinnerBlocks = innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\t-( previousColumns - newColumns )\n\t\t\t\t);\n\t\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t\t100\n\t\t\t\t\t);\n\n\t\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t\t},\n\t} )\n)( ColumnsEditContainer );\n\nfunction Placeholder( { clientId, name, setAttributes } ) {\n\tconst { blockType, defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ blockType?.icon?.src }\n\t\t\t\tlabel={ blockType?.title }\n\t\t\t\tvariations={ variations }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tallowSkip\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocks( clientId ).length > 0,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks\n\t\t? ColumnsEditContainerWrapper\n\t\t: Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"]}
@@ -71,7 +71,8 @@ const metadata = {
71
71
  margin: ["top", "bottom"],
72
72
  padding: true,
73
73
  __experimentalDefaultControls: {
74
- padding: true
74
+ padding: true,
75
+ blockGap: true
75
76
  }
76
77
  },
77
78
  __experimentalLayout: {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/columns/index.js"],"names":["name","metadata","settings","icon","variations","example","viewportWidth","innerBlocks","attributes","content","url","deprecated","edit","save","transforms","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAfA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,UAAU,EAAVA,mBAFuB;AAGvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,aAAa,EAAE,GADP;AACY;AACpBC,IAAAA,WAAW,EAAE,CACZ;AACCP,MAAAA,IAAI,EAAE,aADP;AAECO,MAAAA,WAAW,EAAE,CACZ;AACCP,QAAAA,IAAI,EAAE,gBADP;AAECQ,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAE,cACR,qFADQ;AAFE;AAFb,OADY,EAUZ;AACCT,QAAAA,IAAI,EAAE,YADP;AAECQ,QAAAA,UAAU,EAAE;AACXE,UAAAA,GAAG,EAAE;AADM;AAFb,OAVY,EAgBZ;AACCV,QAAAA,IAAI,EAAE,gBADP;AAECQ,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAE,cACR,6DADQ;AAFE;AAFb,OAhBY;AAFd,KADY,EA8BZ;AACCT,MAAAA,IAAI,EAAE,aADP;AAECO,MAAAA,WAAW,EAAE,CACZ;AACCP,QAAAA,IAAI,EAAE,gBADP;AAECQ,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAE,cACR,+JADQ;AAFE;AAFb,OADY,EAUZ;AACCT,QAAAA,IAAI,EAAE,gBADP;AAECQ,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAE,cACR,yGADQ;AAFE;AAFb,OAVY;AAFd,KA9BY;AAFL,GAHc;AA4DvBE,EAAAA,UAAU,EAAVA,mBA5DuB;AA6DvBC,EAAAA,IAAI,EAAJA,aA7DuB;AA8DvBC,EAAAA,IAAI,EAAJA,aA9DuB;AA+DvBC,EAAAA,UAAU,EAAVA;AA/DuB,CAAjB;;;AAkEA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEf,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { columns as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tvariations,\n\texample: {\n\t\tviewportWidth: 600, // Columns collapse \"@media (max-width: 599px)\".\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/image',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Suspendisse commodo neque lacus, a dictum orci interdum et.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\tdeprecated,\n\tedit,\n\tsave,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/columns/index.js"],"names":["name","metadata","settings","icon","variations","example","viewportWidth","innerBlocks","attributes","content","url","deprecated","edit","save","transforms","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAfA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,UAAU,EAAVA,mBAFuB;AAGvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,aAAa,EAAE,GADP;AACY;AACpBC,IAAAA,WAAW,EAAE,CACZ;AACCP,MAAAA,IAAI,EAAE,aADP;AAECO,MAAAA,WAAW,EAAE,CACZ;AACCP,QAAAA,IAAI,EAAE,gBADP;AAECQ,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAE,cACR,qFADQ;AAFE;AAFb,OADY,EAUZ;AACCT,QAAAA,IAAI,EAAE,YADP;AAECQ,QAAAA,UAAU,EAAE;AACXE,UAAAA,GAAG,EAAE;AADM;AAFb,OAVY,EAgBZ;AACCV,QAAAA,IAAI,EAAE,gBADP;AAECQ,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAE,cACR,6DADQ;AAFE;AAFb,OAhBY;AAFd,KADY,EA8BZ;AACCT,MAAAA,IAAI,EAAE,aADP;AAECO,MAAAA,WAAW,EAAE,CACZ;AACCP,QAAAA,IAAI,EAAE,gBADP;AAECQ,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAE,cACR,+JADQ;AAFE;AAFb,OADY,EAUZ;AACCT,QAAAA,IAAI,EAAE,gBADP;AAECQ,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAE,cACR,yGADQ;AAFE;AAFb,OAVY;AAFd,KA9BY;AAFL,GAHc;AA4DvBE,EAAAA,UAAU,EAAVA,mBA5DuB;AA6DvBC,EAAAA,IAAI,EAAJA,aA7DuB;AA8DvBC,EAAAA,IAAI,EAAJA,aA9DuB;AA+DvBC,EAAAA,UAAU,EAAVA;AA/DuB,CAAjB;;;AAkEA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEf,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { columns as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tvariations,\n\texample: {\n\t\tviewportWidth: 600, // Columns collapse \"@media (max-width: 599px)\".\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/image',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Suspendisse commodo neque lacus, a dictum orci interdum et.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\tdeprecated,\n\tedit,\n\tsave,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -14,12 +14,6 @@ exports.hasExplicitPercentColumnWidths = hasExplicitPercentColumnWidths;
14
14
  exports.isPercentageUnit = isPercentageUnit;
15
15
  exports.toWidthPrecision = void 0;
16
16
 
17
- var _lodash = require("lodash");
18
-
19
- /**
20
- * External dependencies
21
- */
22
-
23
17
  /**
24
18
  * Returns a column width attribute value rounded to standard precision.
25
19
  * Returns `undefined` if the value is not a valid finite number.
@@ -103,10 +97,11 @@ function getColumnWidths(blocks) {
103
97
  function getRedistributedColumnWidths(blocks, availableWidth) {
104
98
  let totalBlockCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : blocks.length;
105
99
  const totalWidth = getTotalColumnsWidth(blocks, totalBlockCount);
106
- return (0, _lodash.mapValues)(getColumnWidths(blocks, totalBlockCount), width => {
100
+ return Object.fromEntries(Object.entries(getColumnWidths(blocks, totalBlockCount)).map(_ref => {
101
+ let [clientId, width] = _ref;
107
102
  const newWidth = availableWidth * width / totalWidth;
108
- return toWidthPrecision(newWidth);
109
- });
103
+ return [clientId, toWidthPrecision(newWidth)];
104
+ }));
110
105
  }
111
106
  /**
112
107
  * Returns true if column blocks within the provided set are assigned with
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/columns/utils.js"],"names":["toWidthPrecision","value","unitlessValue","parseFloat","Number","isFinite","toFixed","undefined","getEffectiveColumnWidth","block","totalBlockCount","width","attributes","getTotalColumnsWidth","blocks","length","reduce","sum","getColumnWidths","accumulator","Object","assign","clientId","getRedistributedColumnWidths","availableWidth","totalWidth","newWidth","hasExplicitPercentColumnWidths","every","blockWidth","endsWith","getMappedColumnWidths","widths","map","getWidths","withParsing","innerColumn","innerColumnWidth","getWidthWithUnit","unit","isPercentageUnit","Math","min"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { mapValues } from 'lodash';\n\n/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\nexport const toWidthPrecision = ( value ) => {\n\tconst unitlessValue = parseFloat( value );\n\treturn Number.isFinite( unitlessValue )\n\t\t? parseFloat( unitlessValue.toFixed( 2 ) )\n\t\t: undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block Block object.\n * @param {number} totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\nexport function getEffectiveColumnWidth( block, totalBlockCount ) {\n\tconst { width = 100 / totalBlockCount } = block.attributes;\n\treturn toWidthPrecision( width );\n}\n\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\nexport function getTotalColumnsWidth(\n\tblocks,\n\ttotalBlockCount = blocks.length\n) {\n\treturn blocks.reduce(\n\t\t( sum, block ) =>\n\t\t\tsum + getEffectiveColumnWidth( block, totalBlockCount ),\n\t\t0\n\t);\n}\n\n/**\n * Returns an object of `clientId` → `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\nexport function getColumnWidths( blocks, totalBlockCount = blocks.length ) {\n\treturn blocks.reduce( ( accumulator, block ) => {\n\t\tconst width = getEffectiveColumnWidth( block, totalBlockCount );\n\t\treturn Object.assign( accumulator, { [ block.clientId ]: width } );\n\t}, {} );\n}\n\n/**\n * Returns an object of `clientId` → `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {number} availableWidth Maximum width to fit within.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\nexport function getRedistributedColumnWidths(\n\tblocks,\n\tavailableWidth,\n\ttotalBlockCount = blocks.length\n) {\n\tconst totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );\n\n\treturn mapValues( getColumnWidths( blocks, totalBlockCount ), ( width ) => {\n\t\tconst newWidth = ( availableWidth * width ) / totalWidth;\n\t\treturn toWidthPrecision( newWidth );\n\t} );\n}\n\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\nexport function hasExplicitPercentColumnWidths( blocks ) {\n\treturn blocks.every( ( block ) => {\n\t\tconst blockWidth = block.attributes.width;\n\t\treturn Number.isFinite(\n\t\t\tblockWidth?.endsWith?.( '%' )\n\t\t\t\t? parseFloat( blockWidth )\n\t\t\t\t: blockWidth\n\t\t);\n\t} );\n}\n\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\nexport function getMappedColumnWidths( blocks, widths ) {\n\treturn blocks.map( ( block ) => ( {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...block.attributes,\n\t\t\twidth: `${ widths[ block.clientId ] }%`,\n\t\t},\n\t} ) );\n}\n\n/**\n * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?boolean} withParsing Whether value has to be parsed.\n *\n * @return {Array<number,string>} Column widths.\n */\nexport function getWidths( blocks, withParsing = true ) {\n\treturn blocks.map( ( innerColumn ) => {\n\t\tconst innerColumnWidth =\n\t\t\tinnerColumn.attributes.width || 100 / blocks.length;\n\n\t\treturn withParsing ? parseFloat( innerColumnWidth ) : innerColumnWidth;\n\t} );\n}\n\n/**\n * Returns a column width with unit.\n *\n * @param {string} width Column width.\n * @param {string} unit Column width unit.\n *\n * @return {string} Column width with unit.\n */\nexport function getWidthWithUnit( width, unit ) {\n\twidth = 0 > parseFloat( width ) ? '0' : width;\n\n\tif ( isPercentageUnit( unit ) ) {\n\t\twidth = Math.min( width, 100 );\n\t}\n\n\treturn `${ width }${ unit }`;\n}\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Column width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/columns/utils.js"],"names":["toWidthPrecision","value","unitlessValue","parseFloat","Number","isFinite","toFixed","undefined","getEffectiveColumnWidth","block","totalBlockCount","width","attributes","getTotalColumnsWidth","blocks","length","reduce","sum","getColumnWidths","accumulator","Object","assign","clientId","getRedistributedColumnWidths","availableWidth","totalWidth","fromEntries","entries","map","newWidth","hasExplicitPercentColumnWidths","every","blockWidth","endsWith","getMappedColumnWidths","widths","getWidths","withParsing","innerColumn","innerColumnWidth","getWidthWithUnit","unit","isPercentageUnit","Math","min"],"mappings":"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","sourcesContent":["/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\nexport const toWidthPrecision = ( value ) => {\n\tconst unitlessValue = parseFloat( value );\n\treturn Number.isFinite( unitlessValue )\n\t\t? parseFloat( unitlessValue.toFixed( 2 ) )\n\t\t: undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block Block object.\n * @param {number} totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\nexport function getEffectiveColumnWidth( block, totalBlockCount ) {\n\tconst { width = 100 / totalBlockCount } = block.attributes;\n\treturn toWidthPrecision( width );\n}\n\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\nexport function getTotalColumnsWidth(\n\tblocks,\n\ttotalBlockCount = blocks.length\n) {\n\treturn blocks.reduce(\n\t\t( sum, block ) =>\n\t\t\tsum + getEffectiveColumnWidth( block, totalBlockCount ),\n\t\t0\n\t);\n}\n\n/**\n * Returns an object of `clientId` → `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\nexport function getColumnWidths( blocks, totalBlockCount = blocks.length ) {\n\treturn blocks.reduce( ( accumulator, block ) => {\n\t\tconst width = getEffectiveColumnWidth( block, totalBlockCount );\n\t\treturn Object.assign( accumulator, { [ block.clientId ]: width } );\n\t}, {} );\n}\n\n/**\n * Returns an object of `clientId` → `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {number} availableWidth Maximum width to fit within.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\nexport function getRedistributedColumnWidths(\n\tblocks,\n\tavailableWidth,\n\ttotalBlockCount = blocks.length\n) {\n\tconst totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );\n\n\treturn Object.fromEntries(\n\t\tObject.entries( getColumnWidths( blocks, totalBlockCount ) ).map(\n\t\t\t( [ clientId, width ] ) => {\n\t\t\t\tconst newWidth = ( availableWidth * width ) / totalWidth;\n\t\t\t\treturn [ clientId, toWidthPrecision( newWidth ) ];\n\t\t\t}\n\t\t)\n\t);\n}\n\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\nexport function hasExplicitPercentColumnWidths( blocks ) {\n\treturn blocks.every( ( block ) => {\n\t\tconst blockWidth = block.attributes.width;\n\t\treturn Number.isFinite(\n\t\t\tblockWidth?.endsWith?.( '%' )\n\t\t\t\t? parseFloat( blockWidth )\n\t\t\t\t: blockWidth\n\t\t);\n\t} );\n}\n\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\nexport function getMappedColumnWidths( blocks, widths ) {\n\treturn blocks.map( ( block ) => ( {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...block.attributes,\n\t\t\twidth: `${ widths[ block.clientId ] }%`,\n\t\t},\n\t} ) );\n}\n\n/**\n * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?boolean} withParsing Whether value has to be parsed.\n *\n * @return {Array<number,string>} Column widths.\n */\nexport function getWidths( blocks, withParsing = true ) {\n\treturn blocks.map( ( innerColumn ) => {\n\t\tconst innerColumnWidth =\n\t\t\tinnerColumn.attributes.width || 100 / blocks.length;\n\n\t\treturn withParsing ? parseFloat( innerColumnWidth ) : innerColumnWidth;\n\t} );\n}\n\n/**\n * Returns a column width with unit.\n *\n * @param {string} width Column width.\n * @param {string} unit Column width unit.\n *\n * @return {string} Column width with unit.\n */\nexport function getWidthWithUnit( width, unit ) {\n\twidth = 0 > parseFloat( width ) ? '0' : width;\n\n\tif ( isPercentageUnit( unit ) ) {\n\t\twidth = Math.min( width, 100 );\n\t}\n\n\treturn `${ width }${ unit }`;\n}\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Column width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n"]}
@@ -43,7 +43,7 @@ var _blockControls = _interopRequireDefault(require("./block-controls"));
43
43
 
44
44
  var _coverPlaceholder = _interopRequireDefault(require("./cover-placeholder"));
45
45
 
46
- var _resizableCover = _interopRequireDefault(require("./resizable-cover"));
46
+ var _resizableCoverPopover = _interopRequireDefault(require("./resizable-cover-popover"));
47
47
 
48
48
  /**
49
49
  * External dependencies
@@ -152,6 +152,16 @@ function CoverEdit(_ref) {
152
152
  }, [isCoverDark]);
153
153
  const isImageBackground = _shared.IMAGE_BACKGROUND_TYPE === backgroundType;
154
154
  const isVideoBackground = _shared.VIDEO_BACKGROUND_TYPE === backgroundType;
155
+ const [resizeListener, {
156
+ height,
157
+ width
158
+ }] = (0, _compose.useResizeObserver)();
159
+ const resizableBoxDimensions = (0, _element.useMemo)(() => {
160
+ return {
161
+ height: minHeightUnit === 'px' ? minHeight : 'auto',
162
+ width: 'auto'
163
+ };
164
+ }, [minHeight, minHeightUnit]);
155
165
  const minHeightWithUnit = minHeight && minHeightUnit ? `${minHeight}${minHeightUnit}` : minHeight;
156
166
  const isImgElement = !(hasParallax || isRepeated);
157
167
  const style = {
@@ -223,16 +233,42 @@ function CoverEdit(_ref) {
223
233
  currentSettings: currentSettings,
224
234
  toggleUseFeaturedImage: toggleUseFeaturedImage
225
235
  });
236
+ const resizableCoverProps = {
237
+ className: 'block-library-cover__resize-container',
238
+ clientId,
239
+ height,
240
+ minHeight: minHeightWithUnit,
241
+ onResizeStart: () => {
242
+ setAttributes({
243
+ minHeightUnit: 'px'
244
+ });
245
+ toggleSelection(false);
246
+ },
247
+ onResize: value => {
248
+ setAttributes({
249
+ minHeight: value
250
+ });
251
+ },
252
+ onResizeStop: newMinHeight => {
253
+ toggleSelection(true);
254
+ setAttributes({
255
+ minHeight: newMinHeight
256
+ });
257
+ },
258
+ showHandle: true,
259
+ size: resizableBoxDimensions,
260
+ width
261
+ };
226
262
 
227
263
  if (!useFeaturedImage && !hasInnerBlocks && !hasBackground) {
228
- return (0, _element.createElement)(_element.Fragment, null, blockControls, inspectorControls, (0, _element.createElement)(TagName, (0, _extends2.default)({}, blockProps, {
229
- className: (0, _classnames.default)('is-placeholder', blockProps.className)
230
- }), (0, _element.createElement)(_coverPlaceholder.default, {
264
+ return (0, _element.createElement)(_element.Fragment, null, blockControls, inspectorControls, isSelected && (0, _element.createElement)(_resizableCoverPopover.default, resizableCoverProps), (0, _element.createElement)(TagName, (0, _extends2.default)({}, blockProps, {
265
+ className: (0, _classnames.default)('is-placeholder', blockProps.className),
266
+ style: { ...blockProps.style,
267
+ minHeight: minHeightWithUnit || undefined
268
+ }
269
+ }), resizeListener, (0, _element.createElement)(_coverPlaceholder.default, {
231
270
  onSelectMedia: onSelectMedia,
232
271
  onError: onUploadError,
233
- style: {
234
- minHeight: minHeightWithUnit || undefined
235
- },
236
272
  toggleUseFeaturedImage: toggleUseFeaturedImage
237
273
  }, (0, _element.createElement)("div", {
238
274
  className: "wp-block-cover__placeholder-background-options"
@@ -241,27 +277,7 @@ function CoverEdit(_ref) {
241
277
  value: overlayColor.color,
242
278
  onChange: setOverlayColor,
243
279
  clearable: false
244
- }))), (0, _element.createElement)(_resizableCover.default, {
245
- className: "block-library-cover__resize-container",
246
- onResizeStart: () => {
247
- setAttributes({
248
- minHeightUnit: 'px'
249
- });
250
- toggleSelection(false);
251
- },
252
- onResize: value => {
253
- setAttributes({
254
- minHeight: value
255
- });
256
- },
257
- onResizeStop: newMinHeight => {
258
- toggleSelection(true);
259
- setAttributes({
260
- minHeight: newMinHeight
261
- });
262
- },
263
- showHandle: isSelected
264
- })));
280
+ })))));
265
281
  }
266
282
 
267
283
  const classes = (0, _classnames.default)({
@@ -278,27 +294,7 @@ function CoverEdit(_ref) {
278
294
  ...blockProps.style
279
295
  },
280
296
  "data-url": url
281
- }), (0, _element.createElement)(_resizableCover.default, {
282
- className: "block-library-cover__resize-container",
283
- onResizeStart: () => {
284
- setAttributes({
285
- minHeightUnit: 'px'
286
- });
287
- toggleSelection(false);
288
- },
289
- onResize: value => {
290
- setAttributes({
291
- minHeight: value
292
- });
293
- },
294
- onResizeStop: newMinHeight => {
295
- toggleSelection(true);
296
- setAttributes({
297
- minHeight: newMinHeight
298
- });
299
- },
300
- showHandle: isSelected
301
- }), (!useFeaturedImage || url) && (0, _element.createElement)("span", {
297
+ }), resizeListener, (!useFeaturedImage || url) && (0, _element.createElement)("span", {
302
298
  "aria-hidden": "true",
303
299
  className: (0, _classnames.default)('wp-block-cover__background', (0, _shared.dimRatioToClass)(dimRatio), {
304
300
  [overlayColor.class]: overlayColor.class,
@@ -344,7 +340,7 @@ function CoverEdit(_ref) {
344
340
  onSelectMedia: onSelectMedia,
345
341
  onError: onUploadError,
346
342
  toggleUseFeaturedImage: toggleUseFeaturedImage
347
- }), (0, _element.createElement)("div", innerBlocksProps)));
343
+ }), (0, _element.createElement)("div", innerBlocksProps)), isSelected && (0, _element.createElement)(_resizableCoverPopover.default, resizableCoverProps));
348
344
  }
349
345
 
350
346
  var _default = (0, _compose.compose)([(0, _blockEditor.withColors)({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/cover/edit/index.js"],"names":["namesPlugin","getInnerBlocksTemplate","attributes","align","placeholder","isTemporaryMedia","id","url","CoverEdit","clientId","isSelected","overlayColor","setAttributes","setOverlayColor","toggleSelection","context","postId","postType","contentPosition","useFeaturedImage","dimRatio","focalPoint","hasParallax","isDark","isRepeated","minHeight","minHeightUnit","alt","allowedBlocks","templateLock","tagName","TagName","featuredImage","media","select","coreStore","getMedia","mediaUrl","source_url","replaceAll","backgroundType","IMAGE_BACKGROUND_TYPE","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","createErrorNotice","noticesStore","gradientClass","gradientValue","onSelectMedia","isUploadingMedia","onUploadError","message","type","isCoverDark","color","isImageBackground","isVideoBackground","VIDEO_BACKGROUND_TYPE","minHeightWithUnit","isImgElement","style","undefined","backgroundImage","backgroundPosition","bgStyle","backgroundColor","mediaStyle","objectPosition","hasBackground","hasInnerBlocks","getBlock","innerBlocks","length","ref","blockProps","hasFontSizes","innerBlocksTemplate","fontSize","innerBlocksProps","className","template","templateInsertUpdatesSelection","mediaElement","currentSettings","toggleUseFeaturedImage","blockControls","inspectorControls","value","newMinHeight","classes","class"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { Placeholder, Spinner } from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport {\n\twithColors,\n\tColorPalette,\n\tuseBlockProps,\n\tuseSetting,\n\tuseInnerBlocksProps,\n\t__experimentalUseGradient,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport {\n\tattributesFromMedia,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n\tmediaPosition,\n} from '../shared';\nimport useCoverIsDark from './use-cover-is-dark';\nimport CoverInspectorControls from './inspector-controls';\nimport CoverBlockControls from './block-controls';\nimport CoverPlaceholder from './cover-placeholder';\nimport ResizableCover from './resizable-cover';\n\nextend( [ namesPlugin ] );\n\nfunction getInnerBlocksTemplate( attributes ) {\n\treturn [\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\talign: 'center',\n\t\t\t\tplaceholder: __( 'Write title…' ),\n\t\t\t\t...attributes,\n\t\t\t},\n\t\t],\n\t];\n}\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while\n * the media (image or video) is being uploaded and will not have an id allocated yet.\n *\n * @param {number} id The id of the media.\n * @param {string} url The url of the media.\n *\n * @return {boolean} Is the URL a Blob URL.\n */\nconst isTemporaryMedia = ( id, url ) => ! id && isBlobURL( url );\n\nfunction CoverEdit( {\n\tattributes,\n\tclientId,\n\tisSelected,\n\toverlayColor,\n\tsetAttributes,\n\tsetOverlayColor,\n\ttoggleSelection,\n\tcontext: { postId, postType },\n} ) {\n\tconst {\n\t\tcontentPosition,\n\t\tid,\n\t\tuseFeaturedImage,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisDark,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\talt,\n\t\tallowedBlocks,\n\t\ttemplateLock,\n\t\ttagName: TagName = 'div',\n\t} = attributes;\n\n\tconst [ featuredImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst media = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\tconst mediaUrl = media?.source_url;\n\n\t// instead of destructuring the attributes\n\t// we define the url and background type\n\t// depending on the value of the useFeaturedImage flag\n\t// to preview in edit the dynamic featured image\n\tconst url = useFeaturedImage\n\t\t? mediaUrl\n\t\t: // Ensure the url is not malformed due to sanitization through `wp_kses`.\n\t\t attributes.url?.replaceAll( '&amp;', '&' );\n\tconst backgroundType = useFeaturedImage\n\t\t? IMAGE_BACKGROUND_TYPE\n\t\t: attributes.backgroundType;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { gradientClass, gradientValue } = __experimentalUseGradient();\n\tconst onSelectMedia = attributesFromMedia( setAttributes, dimRatio );\n\tconst isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst isCoverDark = useCoverIsDark( url, dimRatio, overlayColor.color );\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isDark: isCoverDark } );\n\t}, [ isCoverDark ] );\n\n\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\tconst minHeightWithUnit =\n\t\tminHeight && minHeightUnit\n\t\t\t? `${ minHeight }${ minHeightUnit }`\n\t\t\t: minHeight;\n\n\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\tconst style = {\n\t\tminHeight: minHeightWithUnit || undefined,\n\t};\n\n\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\tconst backgroundPosition = mediaPosition( focalPoint );\n\n\tconst bgStyle = { backgroundColor: overlayColor.color };\n\tconst mediaStyle = {\n\t\tobjectPosition:\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t: undefined,\n\t};\n\n\tconst hasBackground = !! ( url || overlayColor.color || gradientValue );\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlock( clientId ).innerBlocks.length >\n\t\t\t0,\n\t\t[ clientId ]\n\t);\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( { ref } );\n\n\t// Check for fontSize support before we pass a fontSize attribute to the innerBlocks.\n\tconst hasFontSizes = !! useSetting( 'typography.fontSizes' )?.length;\n\tconst innerBlocksTemplate = getInnerBlocksTemplate( {\n\t\tfontSize: hasFontSizes ? 'large' : undefined,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t},\n\t\t{\n\t\t\t// Avoid template sync when the `templateLock` value is `all` or `contentOnly`.\n\t\t\t// See: https://github.com/WordPress/gutenberg/pull/45632\n\t\t\ttemplate: ! hasInnerBlocks ? innerBlocksTemplate : undefined,\n\t\t\ttemplateInsertUpdatesSelection: true,\n\t\t\tallowedBlocks,\n\t\t\ttemplateLock,\n\t\t}\n\t);\n\n\tconst mediaElement = useRef();\n\tconst currentSettings = {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\thasInnerBlocks,\n\t\turl,\n\t\tisImgElement,\n\t\toverlayColor,\n\t};\n\n\tconst toggleUseFeaturedImage = () => {\n\t\tsetAttributes( {\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tuseFeaturedImage: ! useFeaturedImage,\n\t\t\tdimRatio: dimRatio === 100 ? 50 : dimRatio,\n\t\t\tbackgroundType: useFeaturedImage\n\t\t\t\t? IMAGE_BACKGROUND_TYPE\n\t\t\t\t: undefined,\n\t\t} );\n\t};\n\n\tconst blockControls = (\n\t\t<CoverBlockControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t/>\n\t);\n\n\tconst inspectorControls = (\n\t\t<CoverInspectorControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tclientId={ clientId }\n\t\t\tsetOverlayColor={ setOverlayColor }\n\t\t\tcoverRef={ ref }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t/>\n\t);\n\n\tif ( ! useFeaturedImage && ! hasInnerBlocks && ! hasBackground ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ blockControls }\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<TagName\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'is-placeholder',\n\t\t\t\t\t\tblockProps.className\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<CoverPlaceholder\n\t\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminHeight: minHeightWithUnit || undefined,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"wp-block-cover__placeholder-background-options\">\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t\tvalue={ overlayColor.color }\n\t\t\t\t\t\t\t\tonChange={ setOverlayColor }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CoverPlaceholder>\n\t\t\t\t\t<ResizableCover\n\t\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResize={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { minHeight: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst classes = classnames(\n\t\t{\n\t\t\t'is-dark-theme': isDark,\n\t\t\t'is-light': ! isDark,\n\t\t\t'is-transient': isUploadingMedia,\n\t\t\t'has-parallax': hasParallax,\n\t\t\t'is-repeated': isRepeated,\n\t\t\t'has-custom-content-position':\n\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t{ inspectorControls }\n\t\t\t<TagName\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( classes, blockProps.className ) }\n\t\t\t\tstyle={ { ...style, ...blockProps.style } }\n\t\t\t\tdata-url={ url }\n\t\t\t>\n\t\t\t\t<ResizableCover\n\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonResize={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( { minHeight: value } );\n\t\t\t\t\t} }\n\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t} }\n\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t/>\n\n\t\t\t\t{ ( ! useFeaturedImage || url ) && (\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[ overlayColor.class ]: overlayColor.class,\n\t\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={ { backgroundImage: gradientValue, ...bgStyle } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ ! url && useFeaturedImage && (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\tclassName=\"wp-block-cover__image--placeholder-image\"\n\t\t\t\t\t\twithIllustration={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ url &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t( isImgElement ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\tclassName=\"wp-block-cover__image-background\"\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t'wp-block-cover__image-background'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tstyle={ { backgroundImage, backgroundPosition } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ url && isVideoBackground && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploadingMedia && <Spinner /> }\n\t\t\t\t<CoverPlaceholder\n\t\t\t\t\tdisableMediaButtons\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t/>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</TagName>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithColors( { overlayColor: 'background-color' } ),\n] )( CoverEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/edit/index.js"],"names":["namesPlugin","getInnerBlocksTemplate","attributes","align","placeholder","isTemporaryMedia","id","url","CoverEdit","clientId","isSelected","overlayColor","setAttributes","setOverlayColor","toggleSelection","context","postId","postType","contentPosition","useFeaturedImage","dimRatio","focalPoint","hasParallax","isDark","isRepeated","minHeight","minHeightUnit","alt","allowedBlocks","templateLock","tagName","TagName","featuredImage","media","select","coreStore","getMedia","mediaUrl","source_url","replaceAll","backgroundType","IMAGE_BACKGROUND_TYPE","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","createErrorNotice","noticesStore","gradientClass","gradientValue","onSelectMedia","isUploadingMedia","onUploadError","message","type","isCoverDark","color","isImageBackground","isVideoBackground","VIDEO_BACKGROUND_TYPE","resizeListener","height","width","resizableBoxDimensions","minHeightWithUnit","isImgElement","style","undefined","backgroundImage","backgroundPosition","bgStyle","backgroundColor","mediaStyle","objectPosition","hasBackground","hasInnerBlocks","getBlock","innerBlocks","length","ref","blockProps","hasFontSizes","innerBlocksTemplate","fontSize","innerBlocksProps","className","template","templateInsertUpdatesSelection","mediaElement","currentSettings","toggleUseFeaturedImage","blockControls","inspectorControls","resizableCoverProps","onResizeStart","onResize","value","onResizeStop","newMinHeight","showHandle","size","classes","class"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useRef } from '@wordpress/element';\nimport { Placeholder, Spinner } from '@wordpress/components';\nimport { compose, useResizeObserver } from '@wordpress/compose';\nimport {\n\twithColors,\n\tColorPalette,\n\tuseBlockProps,\n\tuseSetting,\n\tuseInnerBlocksProps,\n\t__experimentalUseGradient,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport {\n\tattributesFromMedia,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n\tmediaPosition,\n} from '../shared';\nimport useCoverIsDark from './use-cover-is-dark';\nimport CoverInspectorControls from './inspector-controls';\nimport CoverBlockControls from './block-controls';\nimport CoverPlaceholder from './cover-placeholder';\nimport ResizableCoverPopover from './resizable-cover-popover';\n\nextend( [ namesPlugin ] );\n\nfunction getInnerBlocksTemplate( attributes ) {\n\treturn [\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\talign: 'center',\n\t\t\t\tplaceholder: __( 'Write title…' ),\n\t\t\t\t...attributes,\n\t\t\t},\n\t\t],\n\t];\n}\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while\n * the media (image or video) is being uploaded and will not have an id allocated yet.\n *\n * @param {number} id The id of the media.\n * @param {string} url The url of the media.\n *\n * @return {boolean} Is the URL a Blob URL.\n */\nconst isTemporaryMedia = ( id, url ) => ! id && isBlobURL( url );\n\nfunction CoverEdit( {\n\tattributes,\n\tclientId,\n\tisSelected,\n\toverlayColor,\n\tsetAttributes,\n\tsetOverlayColor,\n\ttoggleSelection,\n\tcontext: { postId, postType },\n} ) {\n\tconst {\n\t\tcontentPosition,\n\t\tid,\n\t\tuseFeaturedImage,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisDark,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\talt,\n\t\tallowedBlocks,\n\t\ttemplateLock,\n\t\ttagName: TagName = 'div',\n\t} = attributes;\n\n\tconst [ featuredImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst media = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\tconst mediaUrl = media?.source_url;\n\n\t// instead of destructuring the attributes\n\t// we define the url and background type\n\t// depending on the value of the useFeaturedImage flag\n\t// to preview in edit the dynamic featured image\n\tconst url = useFeaturedImage\n\t\t? mediaUrl\n\t\t: // Ensure the url is not malformed due to sanitization through `wp_kses`.\n\t\t attributes.url?.replaceAll( '&amp;', '&' );\n\tconst backgroundType = useFeaturedImage\n\t\t? IMAGE_BACKGROUND_TYPE\n\t\t: attributes.backgroundType;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { gradientClass, gradientValue } = __experimentalUseGradient();\n\tconst onSelectMedia = attributesFromMedia( setAttributes, dimRatio );\n\tconst isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst isCoverDark = useCoverIsDark( url, dimRatio, overlayColor.color );\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isDark: isCoverDark } );\n\t}, [ isCoverDark ] );\n\n\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\tconst [ resizeListener, { height, width } ] = useResizeObserver();\n\tconst resizableBoxDimensions = useMemo( () => {\n\t\treturn {\n\t\t\theight: minHeightUnit === 'px' ? minHeight : 'auto',\n\t\t\twidth: 'auto',\n\t\t};\n\t}, [ minHeight, minHeightUnit ] );\n\n\tconst minHeightWithUnit =\n\t\tminHeight && minHeightUnit\n\t\t\t? `${ minHeight }${ minHeightUnit }`\n\t\t\t: minHeight;\n\n\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\tconst style = {\n\t\tminHeight: minHeightWithUnit || undefined,\n\t};\n\n\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\tconst backgroundPosition = mediaPosition( focalPoint );\n\n\tconst bgStyle = { backgroundColor: overlayColor.color };\n\tconst mediaStyle = {\n\t\tobjectPosition:\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t: undefined,\n\t};\n\n\tconst hasBackground = !! ( url || overlayColor.color || gradientValue );\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlock( clientId ).innerBlocks.length >\n\t\t\t0,\n\t\t[ clientId ]\n\t);\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( { ref } );\n\n\t// Check for fontSize support before we pass a fontSize attribute to the innerBlocks.\n\tconst hasFontSizes = !! useSetting( 'typography.fontSizes' )?.length;\n\tconst innerBlocksTemplate = getInnerBlocksTemplate( {\n\t\tfontSize: hasFontSizes ? 'large' : undefined,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t},\n\t\t{\n\t\t\t// Avoid template sync when the `templateLock` value is `all` or `contentOnly`.\n\t\t\t// See: https://github.com/WordPress/gutenberg/pull/45632\n\t\t\ttemplate: ! hasInnerBlocks ? innerBlocksTemplate : undefined,\n\t\t\ttemplateInsertUpdatesSelection: true,\n\t\t\tallowedBlocks,\n\t\t\ttemplateLock,\n\t\t}\n\t);\n\n\tconst mediaElement = useRef();\n\tconst currentSettings = {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\thasInnerBlocks,\n\t\turl,\n\t\tisImgElement,\n\t\toverlayColor,\n\t};\n\n\tconst toggleUseFeaturedImage = () => {\n\t\tsetAttributes( {\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tuseFeaturedImage: ! useFeaturedImage,\n\t\t\tdimRatio: dimRatio === 100 ? 50 : dimRatio,\n\t\t\tbackgroundType: useFeaturedImage\n\t\t\t\t? IMAGE_BACKGROUND_TYPE\n\t\t\t\t: undefined,\n\t\t} );\n\t};\n\n\tconst blockControls = (\n\t\t<CoverBlockControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t/>\n\t);\n\n\tconst inspectorControls = (\n\t\t<CoverInspectorControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tclientId={ clientId }\n\t\t\tsetOverlayColor={ setOverlayColor }\n\t\t\tcoverRef={ ref }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t/>\n\t);\n\n\tconst resizableCoverProps = {\n\t\tclassName: 'block-library-cover__resize-container',\n\t\tclientId,\n\t\theight,\n\t\tminHeight: minHeightWithUnit,\n\t\tonResizeStart: () => {\n\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\ttoggleSelection( false );\n\t\t},\n\t\tonResize: ( value ) => {\n\t\t\tsetAttributes( { minHeight: value } );\n\t\t},\n\t\tonResizeStop: ( newMinHeight ) => {\n\t\t\ttoggleSelection( true );\n\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t},\n\t\tshowHandle: true,\n\t\tsize: resizableBoxDimensions,\n\t\twidth,\n\t};\n\n\tif ( ! useFeaturedImage && ! hasInnerBlocks && ! hasBackground ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ blockControls }\n\t\t\t\t{ inspectorControls }\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<ResizableCoverPopover { ...resizableCoverProps } />\n\t\t\t\t) }\n\t\t\t\t<TagName\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'is-placeholder',\n\t\t\t\t\t\tblockProps.className\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...blockProps.style,\n\t\t\t\t\t\tminHeight: minHeightWithUnit || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ resizeListener }\n\t\t\t\t\t<CoverPlaceholder\n\t\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"wp-block-cover__placeholder-background-options\">\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t\tvalue={ overlayColor.color }\n\t\t\t\t\t\t\t\tonChange={ setOverlayColor }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CoverPlaceholder>\n\t\t\t\t</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst classes = classnames(\n\t\t{\n\t\t\t'is-dark-theme': isDark,\n\t\t\t'is-light': ! isDark,\n\t\t\t'is-transient': isUploadingMedia,\n\t\t\t'has-parallax': hasParallax,\n\t\t\t'is-repeated': isRepeated,\n\t\t\t'has-custom-content-position':\n\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t{ inspectorControls }\n\t\t\t<TagName\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( classes, blockProps.className ) }\n\t\t\t\tstyle={ { ...style, ...blockProps.style } }\n\t\t\t\tdata-url={ url }\n\t\t\t>\n\t\t\t\t{ resizeListener }\n\t\t\t\t{ ( ! useFeaturedImage || url ) && (\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[ overlayColor.class ]: overlayColor.class,\n\t\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={ { backgroundImage: gradientValue, ...bgStyle } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ ! url && useFeaturedImage && (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\tclassName=\"wp-block-cover__image--placeholder-image\"\n\t\t\t\t\t\twithIllustration={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ url &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t( isImgElement ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\tclassName=\"wp-block-cover__image-background\"\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t'wp-block-cover__image-background'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tstyle={ { backgroundImage, backgroundPosition } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ url && isVideoBackground && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploadingMedia && <Spinner /> }\n\t\t\t\t<CoverPlaceholder\n\t\t\t\t\tdisableMediaButtons\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t/>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</TagName>\n\t\t\t{ isSelected && (\n\t\t\t\t<ResizableCoverPopover { ...resizableCoverProps } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithColors( { overlayColor: 'background-color' } ),\n] )( CoverEdit );\n"]}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = ResizableCover;
8
+ exports.default = ResizableCoverPopover;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
@@ -13,7 +13,9 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
 
16
- var _components = require("@wordpress/components");
16
+ var _blockEditor = require("@wordpress/block-editor");
17
+
18
+ var _privateApis = require("../../private-apis");
17
19
 
18
20
  /**
19
21
  * External dependencies
@@ -22,6 +24,10 @@ var _components = require("@wordpress/components");
22
24
  /**
23
25
  * WordPress dependencies
24
26
  */
27
+
28
+ /**
29
+ * Internal dependencies
30
+ */
25
31
  const RESIZABLE_BOX_ENABLE_OPTION = {
26
32
  top: false,
27
33
  right: false,
@@ -33,16 +39,29 @@ const RESIZABLE_BOX_ENABLE_OPTION = {
33
39
  topLeft: false
34
40
  };
35
41
 
36
- function ResizableCover(_ref) {
42
+ function ResizableCoverPopover(_ref) {
37
43
  let {
38
44
  className,
39
- onResizeStart,
45
+ height,
46
+ minHeight,
40
47
  onResize,
48
+ onResizeStart,
41
49
  onResizeStop,
50
+ showHandle,
51
+ size,
52
+ width,
42
53
  ...props
43
54
  } = _ref;
55
+ const {
56
+ ResizableBoxPopover
57
+ } = (0, _privateApis.unlock)(_blockEditor.privateApis);
44
58
  const [isResizing, setIsResizing] = (0, _element.useState)(false);
45
- return (0, _element.createElement)(_components.ResizableBox, (0, _extends2.default)({
59
+ const dimensions = (0, _element.useMemo)(() => ({
60
+ height,
61
+ minHeight,
62
+ width
63
+ }), [minHeight, height, width]);
64
+ const resizableBoxProps = {
46
65
  className: (0, _classnames.default)(className, {
47
66
  'is-resizing': isResizing
48
67
  }),
@@ -62,12 +81,19 @@ function ResizableCover(_ref) {
62
81
  onResizeStop(elt.clientHeight);
63
82
  setIsResizing(false);
64
83
  },
84
+ showHandle,
85
+ size,
65
86
  __experimentalShowTooltip: true,
66
87
  __experimentalTooltipProps: {
67
88
  axis: 'y',
68
89
  position: 'bottom',
69
90
  isVisible: isResizing
70
91
  }
92
+ };
93
+ return (0, _element.createElement)(ResizableBoxPopover, (0, _extends2.default)({
94
+ className: "block-library-cover__resizable-box-popover",
95
+ __unstableRefreshSize: dimensions,
96
+ resizableBoxProps: resizableBoxProps
71
97
  }, props));
72
98
  }
73
- //# sourceMappingURL=resizable-cover.js.map
99
+ //# sourceMappingURL=resizable-cover-popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/edit/resizable-cover-popover.js"],"names":["RESIZABLE_BOX_ENABLE_OPTION","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","ResizableCoverPopover","className","height","minHeight","onResize","onResizeStart","onResizeStop","showHandle","size","width","props","ResizableBoxPopover","blockEditorPrivateApis","isResizing","setIsResizing","dimensions","resizableBoxProps","enable","_event","_direction","elt","clientHeight","__experimentalShowTooltip","__experimentalTooltipProps","axis","position","isVisible"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AAMA;;AAKA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGA,MAAMA,2BAA2B,GAAG;AACnCC,EAAAA,GAAG,EAAE,KAD8B;AAEnCC,EAAAA,KAAK,EAAE,KAF4B;AAGnCC,EAAAA,MAAM,EAAE,IAH2B;AAInCC,EAAAA,IAAI,EAAE,KAJ6B;AAKnCC,EAAAA,QAAQ,EAAE,KALyB;AAMnCC,EAAAA,WAAW,EAAE,KANsB;AAOnCC,EAAAA,UAAU,EAAE,KAPuB;AAQnCC,EAAAA,OAAO,EAAE;AAR0B,CAApC;;AAWe,SAASC,qBAAT,OAWX;AAAA,MAX2C;AAC9CC,IAAAA,SAD8C;AAE9CC,IAAAA,MAF8C;AAG9CC,IAAAA,SAH8C;AAI9CC,IAAAA,QAJ8C;AAK9CC,IAAAA,aAL8C;AAM9CC,IAAAA,YAN8C;AAO9CC,IAAAA,UAP8C;AAQ9CC,IAAAA,IAR8C;AAS9CC,IAAAA,KAT8C;AAU9C,OAAGC;AAV2C,GAW3C;AACH,QAAM;AAAEC,IAAAA;AAAF,MAA0B,yBAAQC,wBAAR,CAAhC;AACA,QAAM,CAAEC,UAAF,EAAcC,aAAd,IAAgC,uBAAU,KAAV,CAAtC;AACA,QAAMC,UAAU,GAAG,sBAClB,OAAQ;AAAEb,IAAAA,MAAF;AAAUC,IAAAA,SAAV;AAAqBM,IAAAA;AAArB,GAAR,CADkB,EAElB,CAAEN,SAAF,EAAaD,MAAb,EAAqBO,KAArB,CAFkB,CAAnB;AAKA,QAAMO,iBAAiB,GAAG;AACzBf,IAAAA,SAAS,EAAE,yBAAYA,SAAZ,EAAuB;AAAE,qBAAeY;AAAjB,KAAvB,CADc;AAEzBI,IAAAA,MAAM,EAAE1B,2BAFiB;AAGzBc,IAAAA,aAAa,EAAE,CAAEa,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AAC7Cf,MAAAA,aAAa,CAAEe,GAAG,CAACC,YAAN,CAAb;AACAjB,MAAAA,QAAQ,CAAEgB,GAAG,CAACC,YAAN,CAAR;AACA,KANwB;AAOzBjB,IAAAA,QAAQ,EAAE,CAAEc,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AACxChB,MAAAA,QAAQ,CAAEgB,GAAG,CAACC,YAAN,CAAR;;AACA,UAAK,CAAER,UAAP,EAAoB;AACnBC,QAAAA,aAAa,CAAE,IAAF,CAAb;AACA;AACD,KAZwB;AAazBR,IAAAA,YAAY,EAAE,CAAEY,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AAC5Cd,MAAAA,YAAY,CAAEc,GAAG,CAACC,YAAN,CAAZ;AACAP,MAAAA,aAAa,CAAE,KAAF,CAAb;AACA,KAhBwB;AAiBzBP,IAAAA,UAjByB;AAkBzBC,IAAAA,IAlByB;AAmBzBc,IAAAA,yBAAyB,EAAE,IAnBF;AAoBzBC,IAAAA,0BAA0B,EAAE;AAC3BC,MAAAA,IAAI,EAAE,GADqB;AAE3BC,MAAAA,QAAQ,EAAE,QAFiB;AAG3BC,MAAAA,SAAS,EAAEb;AAHgB;AApBH,GAA1B;AA2BA,SACC,4BAAC,mBAAD;AACC,IAAA,SAAS,EAAC,4CADX;AAEC,IAAA,qBAAqB,EAAGE,UAFzB;AAGC,IAAA,iBAAiB,EAAGC;AAHrB,KAIMN,KAJN,EADD;AAQA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../private-apis';\n\nconst RESIZABLE_BOX_ENABLE_OPTION = {\n\ttop: false,\n\tright: false,\n\tbottom: true,\n\tleft: false,\n\ttopRight: false,\n\tbottomRight: false,\n\tbottomLeft: false,\n\ttopLeft: false,\n};\n\nexport default function ResizableCoverPopover( {\n\tclassName,\n\theight,\n\tminHeight,\n\tonResize,\n\tonResizeStart,\n\tonResizeStop,\n\tshowHandle,\n\tsize,\n\twidth,\n\t...props\n} ) {\n\tconst { ResizableBoxPopover } = unlock( blockEditorPrivateApis );\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst dimensions = useMemo(\n\t\t() => ( { height, minHeight, width } ),\n\t\t[ minHeight, height, width ]\n\t);\n\n\tconst resizableBoxProps = {\n\t\tclassName: classnames( className, { 'is-resizing': isResizing } ),\n\t\tenable: RESIZABLE_BOX_ENABLE_OPTION,\n\t\tonResizeStart: ( _event, _direction, elt ) => {\n\t\t\tonResizeStart( elt.clientHeight );\n\t\t\tonResize( elt.clientHeight );\n\t\t},\n\t\tonResize: ( _event, _direction, elt ) => {\n\t\t\tonResize( elt.clientHeight );\n\t\t\tif ( ! isResizing ) {\n\t\t\t\tsetIsResizing( true );\n\t\t\t}\n\t\t},\n\t\tonResizeStop: ( _event, _direction, elt ) => {\n\t\t\tonResizeStop( elt.clientHeight );\n\t\t\tsetIsResizing( false );\n\t\t},\n\t\tshowHandle,\n\t\tsize,\n\t\t__experimentalShowTooltip: true,\n\t\t__experimentalTooltipProps: {\n\t\t\taxis: 'y',\n\t\t\tposition: 'bottom',\n\t\t\tisVisible: isResizing,\n\t\t},\n\t};\n\n\treturn (\n\t\t<ResizableBoxPopover\n\t\t\tclassName=\"block-library-cover__resizable-box-popover\"\n\t\t\t__unstableRefreshSize={ dimensions }\n\t\t\tresizableBoxProps={ resizableBoxProps }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"]}