@wordpress/block-library 8.33.0 → 8.34.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 (259) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/block/edit.js +15 -8
  3. package/build/block/edit.js.map +1 -1
  4. package/build/block-keyboard-shortcuts/index.js +95 -0
  5. package/build/block-keyboard-shortcuts/index.js.map +1 -0
  6. package/build/column/edit.js +28 -19
  7. package/build/column/edit.js.map +1 -1
  8. package/build/column/edit.native.js +3 -1
  9. package/build/column/edit.native.js.map +1 -1
  10. package/build/columns/edit.js +69 -53
  11. package/build/columns/edit.js.map +1 -1
  12. package/build/columns/variations.js +18 -28
  13. package/build/columns/variations.js.map +1 -1
  14. package/build/comment-template/util.js +3 -1
  15. package/build/comment-template/util.js.map +1 -1
  16. package/build/cover/shared.js +3 -1
  17. package/build/cover/shared.js.map +1 -1
  18. package/build/embed/embed-placeholder.js +8 -3
  19. package/build/embed/embed-placeholder.js.map +1 -1
  20. package/build/embed/util.js +3 -1
  21. package/build/embed/util.js.map +1 -1
  22. package/build/embed/variations.js +3 -1
  23. package/build/embed/variations.js.map +1 -1
  24. package/build/embed/wp-embed-preview.js +6 -2
  25. package/build/embed/wp-embed-preview.js.map +1 -1
  26. package/build/group/index.js +0 -8
  27. package/build/group/index.js.map +1 -1
  28. package/build/group/placeholder.js +18 -19
  29. package/build/group/placeholder.js.map +1 -1
  30. package/build/image/image.js +3 -1
  31. package/build/image/image.js.map +1 -1
  32. package/build/image/view.js +3 -1
  33. package/build/image/view.js.map +1 -1
  34. package/build/index.js +9 -1
  35. package/build/index.js.map +1 -1
  36. package/build/list-item/hooks/use-merge.js +12 -4
  37. package/build/list-item/hooks/use-merge.js.map +1 -1
  38. package/build/list-item/hooks/use-outdent-list-item.js +15 -5
  39. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  40. package/build/navigation/edit/are-blocks-dirty.js +9 -3
  41. package/build/navigation/edit/are-blocks-dirty.js.map +1 -1
  42. package/build/navigation/edit/deleted-navigation-warning.js +1 -1
  43. package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
  44. package/build/navigation/edit/menu-inspector-controls.js +3 -1
  45. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  46. package/build/navigation/edit/navigation-menu-selector.js +1 -1
  47. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  48. package/build/navigation/index.js +0 -9
  49. package/build/navigation/index.js.map +1 -1
  50. package/build/navigation/view.js +3 -1
  51. package/build/navigation/view.js.map +1 -1
  52. package/build/navigation-link/edit.js +94 -85
  53. package/build/navigation-link/edit.js.map +1 -1
  54. package/build/navigation-link/link-ui.js +2 -7
  55. package/build/navigation-link/link-ui.js.map +1 -1
  56. package/build/paragraph/index.js +0 -1
  57. package/build/paragraph/index.js.map +1 -1
  58. package/build/paragraph/transforms.js +0 -1
  59. package/build/paragraph/transforms.js.map +1 -1
  60. package/build/post-excerpt/edit.js +3 -1
  61. package/build/post-excerpt/edit.js.map +1 -1
  62. package/build/post-featured-image/dimension-controls.js +3 -1
  63. package/build/post-featured-image/dimension-controls.js.map +1 -1
  64. package/build/post-navigation-link/variations.js +3 -1
  65. package/build/post-navigation-link/variations.js.map +1 -1
  66. package/build/post-template/edit.js +18 -8
  67. package/build/post-template/edit.js.map +1 -1
  68. package/build/post-terms/edit.js +3 -1
  69. package/build/post-terms/edit.js.map +1 -1
  70. package/build/private-apis.js +21 -0
  71. package/build/private-apis.js.map +1 -0
  72. package/build/query/edit/enhanced-pagination-modal.js +1 -1
  73. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  74. package/build/query/edit/inspector-controls/author-control.js +6 -2
  75. package/build/query/edit/inspector-controls/author-control.js.map +1 -1
  76. package/build/query/edit/inspector-controls/create-new-post-link.js +3 -1
  77. package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
  78. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
  79. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  80. package/build/query/edit/inspector-controls/parent-control.js +18 -6
  81. package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
  82. package/build/query/edit/inspector-controls/taxonomy-controls.js +9 -3
  83. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  84. package/build/query/utils.js +3 -1
  85. package/build/query/utils.js.map +1 -1
  86. package/build/query-title/variations.js +3 -1
  87. package/build/query-title/variations.js.map +1 -1
  88. package/build/social-link/edit.js +1 -1
  89. package/build/social-link/edit.js.map +1 -1
  90. package/build/social-link/variations.js +3 -1
  91. package/build/social-link/variations.js.map +1 -1
  92. package/build/template-part/variations.js +6 -2
  93. package/build/template-part/variations.js.map +1 -1
  94. package/build-module/block/edit.js +15 -8
  95. package/build-module/block/edit.js.map +1 -1
  96. package/build-module/block-keyboard-shortcuts/index.js +88 -0
  97. package/build-module/block-keyboard-shortcuts/index.js.map +1 -0
  98. package/build-module/column/edit.js +28 -19
  99. package/build-module/column/edit.js.map +1 -1
  100. package/build-module/column/edit.native.js +3 -1
  101. package/build-module/column/edit.native.js.map +1 -1
  102. package/build-module/columns/edit.js +69 -53
  103. package/build-module/columns/edit.js.map +1 -1
  104. package/build-module/columns/variations.js +18 -28
  105. package/build-module/columns/variations.js.map +1 -1
  106. package/build-module/comment-template/util.js +3 -1
  107. package/build-module/comment-template/util.js.map +1 -1
  108. package/build-module/cover/shared.js +3 -1
  109. package/build-module/cover/shared.js.map +1 -1
  110. package/build-module/embed/embed-placeholder.js +9 -4
  111. package/build-module/embed/embed-placeholder.js.map +1 -1
  112. package/build-module/embed/util.js +3 -1
  113. package/build-module/embed/util.js.map +1 -1
  114. package/build-module/embed/variations.js +3 -1
  115. package/build-module/embed/variations.js.map +1 -1
  116. package/build-module/embed/wp-embed-preview.js +6 -2
  117. package/build-module/embed/wp-embed-preview.js.map +1 -1
  118. package/build-module/group/index.js +0 -8
  119. package/build-module/group/index.js.map +1 -1
  120. package/build-module/group/placeholder.js +18 -19
  121. package/build-module/group/placeholder.js.map +1 -1
  122. package/build-module/image/image.js +3 -1
  123. package/build-module/image/image.js.map +1 -1
  124. package/build-module/image/view.js +3 -1
  125. package/build-module/image/view.js.map +1 -1
  126. package/build-module/index.js +1 -0
  127. package/build-module/index.js.map +1 -1
  128. package/build-module/list-item/hooks/use-merge.js +12 -4
  129. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  130. package/build-module/list-item/hooks/use-outdent-list-item.js +15 -5
  131. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  132. package/build-module/navigation/edit/are-blocks-dirty.js +9 -3
  133. package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -1
  134. package/build-module/navigation/edit/deleted-navigation-warning.js +1 -1
  135. package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
  136. package/build-module/navigation/edit/menu-inspector-controls.js +3 -1
  137. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  138. package/build-module/navigation/edit/navigation-menu-selector.js +1 -1
  139. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  140. package/build-module/navigation/index.js +0 -9
  141. package/build-module/navigation/index.js.map +1 -1
  142. package/build-module/navigation/view.js +3 -1
  143. package/build-module/navigation/view.js.map +1 -1
  144. package/build-module/navigation-link/edit.js +94 -85
  145. package/build-module/navigation-link/edit.js.map +1 -1
  146. package/build-module/navigation-link/link-ui.js +3 -8
  147. package/build-module/navigation-link/link-ui.js.map +1 -1
  148. package/build-module/paragraph/index.js +0 -1
  149. package/build-module/paragraph/index.js.map +1 -1
  150. package/build-module/paragraph/transforms.js +0 -1
  151. package/build-module/paragraph/transforms.js.map +1 -1
  152. package/build-module/post-excerpt/edit.js +3 -1
  153. package/build-module/post-excerpt/edit.js.map +1 -1
  154. package/build-module/post-featured-image/dimension-controls.js +3 -1
  155. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  156. package/build-module/post-navigation-link/variations.js +3 -1
  157. package/build-module/post-navigation-link/variations.js.map +1 -1
  158. package/build-module/post-template/edit.js +18 -8
  159. package/build-module/post-template/edit.js.map +1 -1
  160. package/build-module/post-terms/edit.js +3 -1
  161. package/build-module/post-terms/edit.js.map +1 -1
  162. package/build-module/private-apis.js +14 -0
  163. package/build-module/private-apis.js.map +1 -0
  164. package/build-module/query/edit/enhanced-pagination-modal.js +1 -1
  165. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  166. package/build-module/query/edit/inspector-controls/author-control.js +6 -2
  167. package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
  168. package/build-module/query/edit/inspector-controls/create-new-post-link.js +3 -1
  169. package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
  170. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
  171. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  172. package/build-module/query/edit/inspector-controls/parent-control.js +18 -6
  173. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
  174. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +9 -3
  175. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  176. package/build-module/query/utils.js +3 -1
  177. package/build-module/query/utils.js.map +1 -1
  178. package/build-module/query-title/variations.js +3 -1
  179. package/build-module/query-title/variations.js.map +1 -1
  180. package/build-module/social-link/edit.js +1 -1
  181. package/build-module/social-link/edit.js.map +1 -1
  182. package/build-module/social-link/variations.js +3 -1
  183. package/build-module/social-link/variations.js.map +1 -1
  184. package/build-module/template-part/variations.js +6 -2
  185. package/build-module/template-part/variations.js.map +1 -1
  186. package/build-style/editor-rtl.css +15 -49
  187. package/build-style/editor.css +15 -49
  188. package/build-style/embed/editor-rtl.css +0 -3
  189. package/build-style/embed/editor.css +0 -3
  190. package/build-style/group/editor-rtl.css +0 -44
  191. package/build-style/group/editor.css +0 -44
  192. package/build-style/group/style-rtl.css +4 -0
  193. package/build-style/group/style.css +4 -0
  194. package/build-style/navigation-link/style-rtl.css +0 -8
  195. package/build-style/navigation-link/style.css +0 -8
  196. package/build-style/post-featured-image/editor-rtl.css +1 -0
  197. package/build-style/post-featured-image/editor.css +1 -0
  198. package/build-style/site-logo/editor-rtl.css +1 -0
  199. package/build-style/site-logo/editor.css +1 -0
  200. package/build-style/social-link/editor-rtl.css +13 -2
  201. package/build-style/social-link/editor.css +13 -2
  202. package/build-style/style-rtl.css +4 -8
  203. package/build-style/style.css +4 -8
  204. package/package.json +35 -34
  205. package/src/block/edit.js +19 -12
  206. package/src/block-keyboard-shortcuts/index.js +113 -0
  207. package/src/column/edit.js +26 -20
  208. package/src/column/edit.native.js +3 -1
  209. package/src/columns/edit.js +93 -83
  210. package/src/columns/variations.js +12 -34
  211. package/src/comment-template/util.js +3 -1
  212. package/src/cover/shared.js +3 -1
  213. package/src/embed/editor.scss +0 -2
  214. package/src/embed/embed-placeholder.js +21 -9
  215. package/src/embed/util.js +3 -1
  216. package/src/embed/variations.js +3 -1
  217. package/src/embed/wp-embed-preview.js +6 -2
  218. package/src/gallery/test/helpers.native.js +3 -3
  219. package/src/group/editor.scss +0 -47
  220. package/src/group/index.js +0 -8
  221. package/src/group/placeholder.js +18 -18
  222. package/src/group/style.scss +5 -0
  223. package/src/image/image.js +3 -1
  224. package/src/image/view.js +3 -1
  225. package/src/index.js +2 -0
  226. package/src/list-item/hooks/use-merge.js +12 -4
  227. package/src/list-item/hooks/use-outdent-list-item.js +15 -5
  228. package/src/navigation/block.json +0 -9
  229. package/src/navigation/edit/are-blocks-dirty.js +8 -3
  230. package/src/navigation/edit/deleted-navigation-warning.js +1 -1
  231. package/src/navigation/edit/menu-inspector-controls.js +3 -1
  232. package/src/navigation/edit/navigation-menu-selector.js +1 -1
  233. package/src/navigation/edit/test/navigation-menu-selector.js +5 -5
  234. package/src/navigation/view.js +3 -1
  235. package/src/navigation-link/edit.js +91 -91
  236. package/src/navigation-link/link-ui.js +74 -89
  237. package/src/navigation-link/style.scss +0 -12
  238. package/src/paragraph/block.json +0 -1
  239. package/src/post-excerpt/edit.js +3 -1
  240. package/src/post-featured-image/dimension-controls.js +3 -1
  241. package/src/post-featured-image/editor.scss +1 -0
  242. package/src/post-navigation-link/variations.js +3 -1
  243. package/src/post-template/edit.js +9 -4
  244. package/src/post-terms/edit.js +3 -1
  245. package/src/private-apis.js +13 -0
  246. package/src/query/edit/enhanced-pagination-modal.js +5 -1
  247. package/src/query/edit/inspector-controls/author-control.js +6 -2
  248. package/src/query/edit/inspector-controls/create-new-post-link.js +3 -1
  249. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +13 -3
  250. package/src/query/edit/inspector-controls/parent-control.js +18 -6
  251. package/src/query/edit/inspector-controls/taxonomy-controls.js +9 -3
  252. package/src/query/index.php +1 -1
  253. package/src/query/utils.js +3 -1
  254. package/src/query-title/variations.js +3 -1
  255. package/src/site-logo/editor.scss +1 -0
  256. package/src/social-link/edit.js +2 -2
  257. package/src/social-link/editor.scss +25 -11
  258. package/src/social-link/variations.js +3 -1
  259. package/src/template-part/variations.js +6 -2
@@ -72,7 +72,9 @@ const useInferredLayout = (blocks, parentLayout) => {
72
72
  };
73
73
  function hasOverridableBlocks(blocks) {
74
74
  return blocks.some(block => {
75
- if (isOverridableBlock(block)) return true;
75
+ if (isOverridableBlock(block)) {
76
+ return true;
77
+ }
76
78
  return hasOverridableBlocks(block.innerBlocks);
77
79
  });
78
80
  }
@@ -121,7 +123,9 @@ function getContentValuesFromInnerBlocks(blocks, defaultValues, legacyIdMap) {
121
123
  const content = {};
122
124
  for (const block of blocks) {
123
125
  var _legacyIdMap$block$cl2;
124
- if (block.name === patternBlockName) continue;
126
+ if (block.name === patternBlockName) {
127
+ continue;
128
+ }
125
129
  if (block.innerBlocks.length) {
126
130
  Object.assign(content, getContentValuesFromInnerBlocks(block.innerBlocks, defaultValues, legacyIdMap));
127
131
  }
@@ -197,8 +201,9 @@ function ReusableBlockEdit({
197
201
  } = useEntityRecord('postType', 'wp_block', ref);
198
202
  const isMissing = hasResolved && !record;
199
203
 
200
- // The initial value of the `content` attribute.
201
- const initialContent = useRef(content);
204
+ // The value of the `content` attribute, stored in a `ref` to avoid triggering the effect
205
+ // that runs `applyInitialContentValuesToInnerBlocks` unnecessarily.
206
+ const contentRef = useRef(content);
202
207
 
203
208
  // The default content values from the original pattern for overridable attributes.
204
209
  // Set by the `applyInitialContentValuesToInnerBlocks` function.
@@ -262,14 +267,14 @@ function ReusableBlockEdit({
262
267
  // Apply the initial overrides from the pattern block to the inner blocks.
263
268
  useEffect(() => {
264
269
  // Build a map of clientIds to the old nano id system to provide back compat.
265
- legacyIdMap.current = getLegacyIdMap(initialBlocks, initialContent.current);
270
+ legacyIdMap.current = getLegacyIdMap(initialBlocks, contentRef.current);
266
271
  defaultContent.current = {};
267
272
  const originalEditingMode = getBlockEditingMode(patternClientId);
268
273
  // Replace the contents of the blocks with the overrides.
269
274
  registry.batch(() => {
270
275
  setBlockEditingMode(patternClientId, 'default');
271
276
  syncDerivedUpdates(() => {
272
- const blocks = hasPatternOverridesSource ? applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current, legacyIdMap.current) : initialBlocks;
277
+ const blocks = hasPatternOverridesSource ? applyInitialContentValuesToInnerBlocks(initialBlocks, contentRef.current, defaultContent.current, legacyIdMap.current) : initialBlocks;
273
278
  replaceInnerBlocks(patternClientId, blocks);
274
279
  });
275
280
  setBlockEditingMode(patternClientId, originalEditingMode);
@@ -288,7 +293,7 @@ function ReusableBlockEdit({
288
293
  })
289
294
  });
290
295
  const innerBlocksProps = useInnerBlocksProps(blockProps, {
291
- templateLock: 'all',
296
+ templateLock: 'contentOnly',
292
297
  layout,
293
298
  renderAppender: innerBlocks?.length ? undefined : InnerBlocks.ButtonBlockAppender
294
299
  });
@@ -308,9 +313,11 @@ function ReusableBlockEdit({
308
313
  if (blocks !== prevBlocks) {
309
314
  prevBlocks = blocks;
310
315
  syncDerivedUpdates(() => {
316
+ const updatedContent = getContentValuesFromInnerBlocks(blocks, defaultContent.current, legacyIdMap.current);
311
317
  setAttributes({
312
- content: getContentValuesFromInnerBlocks(blocks, defaultContent.current, legacyIdMap.current)
318
+ content: updatedContent
313
319
  });
320
+ contentRef.current = updatedContent;
314
321
  });
315
322
  }
316
323
  }, blockEditorStore);
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","parse","cloneBlock","blocksStore","RichTextData","name","patternBlockName","unlock","useLayoutClasses","isOverridableBlock","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableBlocks","getOverridableAttributes","Object","entries","bindings","filter","binding","source","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","assign","_content$metadataName","keys","setBlockEditMode","setEditMode","mode","forEach","editMode","RecursionWarning","blockProps","createElement","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","__unstableParentLayout","patternClientId","setAttributes","registry","record","editedRecord","hasResolved","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","originalEditingMode","batch","layoutClasses","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","Fragment","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( innerBlocks ),\n\t\t[ hasPatternOverridesSource, innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tinitialContent.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\tconst blocks = hasPatternOverridesSource\n\t\t\t\t\t? applyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t )\n\t\t\t\t\t: initialBlocks;\n\n\t\t\t\treplaceInnerBlocks( patternClientId, blocks );\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tif ( ! hasPatternOverridesSource ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\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}, blockEditorStore );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\tsyncDerivedUpdates,\n\t\tpatternClientId,\n\t\tregistry,\n\t\tsetAttributes,\n\t] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","parse","cloneBlock","blocksStore","RichTextData","name","patternBlockName","unlock","useLayoutClasses","isOverridableBlock","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableBlocks","getOverridableAttributes","Object","entries","bindings","filter","binding","source","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","assign","_content$metadataName","keys","setBlockEditMode","setEditMode","mode","forEach","editMode","RecursionWarning","blockProps","createElement","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","__unstableParentLayout","patternClientId","setAttributes","registry","record","editedRecord","hasResolved","isMissing","contentRef","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","originalEditingMode","batch","layoutClasses","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","updatedContent","handleEditOriginal","postId","postType","resetContent","children","Fragment","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The value of the `content` attribute, stored in a `ref` to avoid triggering the effect\n\t// that runs `applyInitialContentValuesToInnerBlocks` unnecessarily.\n\tconst contentRef = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( innerBlocks ),\n\t\t[ hasPatternOverridesSource, innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tcontentRef.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\tconst blocks = hasPatternOverridesSource\n\t\t\t\t\t? applyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\t\tcontentRef.current,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t )\n\t\t\t\t\t: initialBlocks;\n\n\t\t\t\treplaceInnerBlocks( patternClientId, blocks );\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'contentOnly',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tif ( ! hasPatternOverridesSource ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tconst updatedContent = getContentValuesFromInnerBlocks(\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t);\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: updatedContent,\n\t\t\t\t\t} );\n\t\t\t\t\tcontentRef.current = updatedContent;\n\t\t\t\t} );\n\t\t\t}\n\t\t}, blockEditorStore );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\tsyncDerivedUpdates,\n\t\tpatternClientId,\n\t\tregistry,\n\t\tsetAttributes,\n\t] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useEffect } from '@wordpress/element';
5
+ import { useSelect, useDispatch } from '@wordpress/data';
6
+ import { useShortcut, store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
7
+ import { __ } from '@wordpress/i18n';
8
+ import { createBlock } from '@wordpress/blocks';
9
+ import { store as blockEditorStore } from '@wordpress/block-editor';
10
+ function BlockKeyboardShortcuts() {
11
+ const {
12
+ registerShortcut
13
+ } = useDispatch(keyboardShortcutsStore);
14
+ const {
15
+ replaceBlocks
16
+ } = useDispatch(blockEditorStore);
17
+ const {
18
+ getBlockName,
19
+ getSelectedBlockClientId,
20
+ getBlockAttributes
21
+ } = useSelect(blockEditorStore);
22
+ const handleTransformHeadingAndParagraph = (event, level) => {
23
+ event.preventDefault();
24
+ const currentClientId = getSelectedBlockClientId();
25
+ if (currentClientId === null) {
26
+ return;
27
+ }
28
+ const blockName = getBlockName(currentClientId);
29
+ const isParagraph = blockName === 'core/paragraph';
30
+ const isHeading = blockName === 'core/heading';
31
+ if (!isParagraph && !isHeading) {
32
+ return;
33
+ }
34
+ const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading';
35
+ const attributes = getBlockAttributes(currentClientId);
36
+
37
+ // Avoid unnecessary block transform when attempting to transform to
38
+ // the same block type and/or same level.
39
+ if (isParagraph && level === 0 || isHeading && attributes.level === level) {
40
+ return;
41
+ }
42
+ const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign';
43
+ const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
44
+ replaceBlocks(currentClientId, createBlock(destinationBlockName, {
45
+ level,
46
+ content: attributes.content,
47
+ ...{
48
+ [destinationTextAlign]: attributes[textAlign]
49
+ }
50
+ }));
51
+ };
52
+ useEffect(() => {
53
+ registerShortcut({
54
+ name: 'core/block-editor/transform-heading-to-paragraph',
55
+ category: 'block-library',
56
+ description: __('Transform heading to paragraph.'),
57
+ keyCombination: {
58
+ modifier: 'access',
59
+ character: '0'
60
+ },
61
+ aliases: [{
62
+ modifier: 'access',
63
+ character: '7'
64
+ }]
65
+ });
66
+ [1, 2, 3, 4, 5, 6].forEach(level => {
67
+ registerShortcut({
68
+ name: `core/block-editor/transform-paragraph-to-heading-${level}`,
69
+ category: 'block-library',
70
+ description: __('Transform paragraph to heading.'),
71
+ keyCombination: {
72
+ modifier: 'access',
73
+ character: `${level}`
74
+ }
75
+ });
76
+ });
77
+ }, []);
78
+ useShortcut('core/block-editor/transform-heading-to-paragraph', event => handleTransformHeadingAndParagraph(event, 0));
79
+ [1, 2, 3, 4, 5, 6].forEach(level => {
80
+ //the loop is based off on a constant therefore
81
+ //the hook will execute the same way every time
82
+ //eslint-disable-next-line react-hooks/rules-of-hooks
83
+ useShortcut(`core/block-editor/transform-paragraph-to-heading-${level}`, event => handleTransformHeadingAndParagraph(event, level));
84
+ });
85
+ return null;
86
+ }
87
+ export default BlockKeyboardShortcuts;
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useSelect","useDispatch","useShortcut","store","keyboardShortcutsStore","__","createBlock","blockEditorStore","BlockKeyboardShortcuts","registerShortcut","replaceBlocks","getBlockName","getSelectedBlockClientId","getBlockAttributes","handleTransformHeadingAndParagraph","event","level","preventDefault","currentClientId","blockName","isParagraph","isHeading","destinationBlockName","attributes","textAlign","destinationTextAlign","content","name","category","description","keyCombination","modifier","character","aliases","forEach"],"sources":["@wordpress/block-library/src/block-keyboard-shortcuts/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction BlockKeyboardShortcuts() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { getBlockName, getSelectedBlockClientId, getBlockAttributes } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst handleTransformHeadingAndParagraph = ( event, level ) => {\n\t\tevent.preventDefault();\n\n\t\tconst currentClientId = getSelectedBlockClientId();\n\t\tif ( currentClientId === null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockName = getBlockName( currentClientId );\n\t\tconst isParagraph = blockName === 'core/paragraph';\n\t\tconst isHeading = blockName === 'core/heading';\n\n\t\tif ( ! isParagraph && ! isHeading ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst destinationBlockName =\n\t\t\tlevel === 0 ? 'core/paragraph' : 'core/heading';\n\n\t\tconst attributes = getBlockAttributes( currentClientId );\n\n\t\t// Avoid unnecessary block transform when attempting to transform to\n\t\t// the same block type and/or same level.\n\t\tif (\n\t\t\t( isParagraph && level === 0 ) ||\n\t\t\t( isHeading && attributes.level === level )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst textAlign =\n\t\t\tblockName === 'core/paragraph' ? 'align' : 'textAlign';\n\t\tconst destinationTextAlign =\n\t\t\tdestinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, {\n\t\t\t\tlevel,\n\t\t\t\tcontent: attributes.content,\n\t\t\t\t...{ [ destinationTextAlign ]: attributes[ textAlign ] },\n\t\t\t} )\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/transform-heading-to-paragraph',\n\t\t\tcategory: 'block-library',\n\t\t\tdescription: __( 'Transform heading to paragraph.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: '0',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: '7',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tregisterShortcut( {\n\t\t\t\tname: `core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t\tcategory: 'block-library',\n\t\t\t\tdescription: __( 'Transform paragraph to heading.' ),\n\t\t\t\tkeyCombination: {\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: `${ level }`,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\t}, [] );\n\n\tuseShortcut(\n\t\t'core/block-editor/transform-heading-to-paragraph',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 0 )\n\t);\n\n\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t//the loop is based off on a constant therefore\n\t\t//the hook will execute the same way every time\n\t\t//eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseShortcut(\n\t\t\t`core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t( event ) => handleTransformHeadingAndParagraph( event, level )\n\t\t);\n\t} );\n\n\treturn null;\n}\n\nexport default BlockKeyboardShortcuts;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SACCC,WAAW,EACXC,KAAK,IAAIC,sBAAsB,QACzB,+BAA+B;AACtC,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASH,KAAK,IAAII,gBAAgB,QAAQ,yBAAyB;AAEnE,SAASC,sBAAsBA,CAAA,EAAG;EACjC,MAAM;IAAEC;EAAiB,CAAC,GAAGR,WAAW,CAAEG,sBAAuB,CAAC;EAClE,MAAM;IAAEM;EAAc,CAAC,GAAGT,WAAW,CAAEM,gBAAiB,CAAC;EACzD,MAAM;IAAEI,YAAY;IAAEC,wBAAwB;IAAEC;EAAmB,CAAC,GACnEb,SAAS,CAAEO,gBAAiB,CAAC;EAE9B,MAAMO,kCAAkC,GAAGA,CAAEC,KAAK,EAAEC,KAAK,KAAM;IAC9DD,KAAK,CAACE,cAAc,CAAC,CAAC;IAEtB,MAAMC,eAAe,GAAGN,wBAAwB,CAAC,CAAC;IAClD,IAAKM,eAAe,KAAK,IAAI,EAAG;MAC/B;IACD;IAEA,MAAMC,SAAS,GAAGR,YAAY,CAAEO,eAAgB,CAAC;IACjD,MAAME,WAAW,GAAGD,SAAS,KAAK,gBAAgB;IAClD,MAAME,SAAS,GAAGF,SAAS,KAAK,cAAc;IAE9C,IAAK,CAAEC,WAAW,IAAI,CAAEC,SAAS,EAAG;MACnC;IACD;IAEA,MAAMC,oBAAoB,GACzBN,KAAK,KAAK,CAAC,GAAG,gBAAgB,GAAG,cAAc;IAEhD,MAAMO,UAAU,GAAGV,kBAAkB,CAAEK,eAAgB,CAAC;;IAExD;IACA;IACA,IACGE,WAAW,IAAIJ,KAAK,KAAK,CAAC,IAC1BK,SAAS,IAAIE,UAAU,CAACP,KAAK,KAAKA,KAAO,EAC1C;MACD;IACD;IAEA,MAAMQ,SAAS,GACdL,SAAS,KAAK,gBAAgB,GAAG,OAAO,GAAG,WAAW;IACvD,MAAMM,oBAAoB,GACzBH,oBAAoB,KAAK,gBAAgB,GAAG,OAAO,GAAG,WAAW;IAElEZ,aAAa,CACZQ,eAAe,EACfZ,WAAW,CAAEgB,oBAAoB,EAAE;MAClCN,KAAK;MACLU,OAAO,EAAEH,UAAU,CAACG,OAAO;MAC3B,GAAG;QAAE,CAAED,oBAAoB,GAAIF,UAAU,CAAEC,SAAS;MAAG;IACxD,CAAE,CACH,CAAC;EACF,CAAC;EAEDzB,SAAS,CAAE,MAAM;IAChBU,gBAAgB,CAAE;MACjBkB,IAAI,EAAE,kDAAkD;MACxDC,QAAQ,EAAE,eAAe;MACzBC,WAAW,EAAExB,EAAE,CAAE,iCAAkC,CAAC;MACpDyB,cAAc,EAAE;QACfC,QAAQ,EAAE,QAAQ;QAClBC,SAAS,EAAE;MACZ,CAAC;MACDC,OAAO,EAAE,CACR;QACCF,QAAQ,EAAE,QAAQ;QAClBC,SAAS,EAAE;MACZ,CAAC;IAEH,CAAE,CAAC;IAEH,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAACE,OAAO,CAAIlB,KAAK,IAAM;MAC1CP,gBAAgB,CAAE;QACjBkB,IAAI,EAAG,oDAAoDX,KAAO,EAAC;QACnEY,QAAQ,EAAE,eAAe;QACzBC,WAAW,EAAExB,EAAE,CAAE,iCAAkC,CAAC;QACpDyB,cAAc,EAAE;UACfC,QAAQ,EAAE,QAAQ;UAClBC,SAAS,EAAG,GAAGhB,KAAO;QACvB;MACD,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ,CAAC,EAAE,EAAG,CAAC;EAEPd,WAAW,CACV,kDAAkD,EAChDa,KAAK,IAAMD,kCAAkC,CAAEC,KAAK,EAAE,CAAE,CAC3D,CAAC;EAED,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAACmB,OAAO,CAAIlB,KAAK,IAAM;IAC1C;IACA;IACA;IACAd,WAAW,CACT,oDAAoDc,KAAO,EAAC,EAC3DD,KAAK,IAAMD,kCAAkC,CAAEC,KAAK,EAAEC,KAAM,CAC/D,CAAC;EACF,CAAE,CAAC;EAEH,OAAO,IAAI;AACZ;AAEA,eAAeR,sBAAsB","ignoreList":[]}
@@ -11,6 +11,30 @@ import { InnerBlocks, BlockControls, BlockVerticalAlignmentToolbar, InspectorCon
11
11
  import { __experimentalUseCustomUnits as useCustomUnits, PanelBody, __experimentalUnitControl as UnitControl } from '@wordpress/components';
12
12
  import { useSelect, useDispatch } from '@wordpress/data';
13
13
  import { sprintf, __ } from '@wordpress/i18n';
14
+ function ColumnInspectorControls({
15
+ width,
16
+ setAttributes
17
+ }) {
18
+ const [availableUnits] = useSettings('spacing.units');
19
+ const units = useCustomUnits({
20
+ availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vw']
21
+ });
22
+ return createElement(PanelBody, {
23
+ title: __('Settings')
24
+ }, createElement(UnitControl, {
25
+ label: __('Width'),
26
+ labelPosition: "edge",
27
+ __unstableInputWidth: "80px",
28
+ value: width || '',
29
+ onChange: nextWidth => {
30
+ nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth;
31
+ setAttributes({
32
+ width: nextWidth
33
+ });
34
+ },
35
+ units: units
36
+ }));
37
+ }
14
38
  function ColumnEdit({
15
39
  attributes: {
16
40
  verticalAlignment,
@@ -24,10 +48,6 @@ function ColumnEdit({
24
48
  const classes = classnames('block-core-columns', {
25
49
  [`is-vertically-aligned-${verticalAlignment}`]: verticalAlignment
26
50
  });
27
- const [availableUnits] = useSettings('spacing.units');
28
- const units = useCustomUnits({
29
- availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vw']
30
- });
31
51
  const {
32
52
  columnsIds,
33
53
  hasChildBlocks,
@@ -80,21 +100,10 @@ function ColumnEdit({
80
100
  onChange: updateAlignment,
81
101
  value: verticalAlignment,
82
102
  controls: ['top', 'center', 'bottom', 'stretch']
83
- })), createElement(InspectorControls, null, createElement(PanelBody, {
84
- title: __('Settings')
85
- }, createElement(UnitControl, {
86
- label: __('Width'),
87
- labelPosition: "edge",
88
- __unstableInputWidth: "80px",
89
- value: width || '',
90
- onChange: nextWidth => {
91
- nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth;
92
- setAttributes({
93
- width: nextWidth
94
- });
95
- },
96
- units: units
97
- }))), createElement("div", {
103
+ })), createElement(InspectorControls, null, createElement(ColumnInspectorControls, {
104
+ width: width,
105
+ setAttributes: setAttributes
106
+ })), createElement("div", {
98
107
  ...innerBlocksProps
99
108
  }));
100
109
  }
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","InnerBlocks","BlockControls","BlockVerticalAlignmentToolbar","InspectorControls","useBlockProps","useSettings","useInnerBlocksProps","store","blockEditorStore","__experimentalUseCustomUnits","useCustomUnits","PanelBody","__experimentalUnitControl","UnitControl","useSelect","useDispatch","sprintf","__","ColumnEdit","attributes","verticalAlignment","width","templateLock","allowedBlocks","setAttributes","clientId","classes","availableUnits","units","columnsIds","hasChildBlocks","rootClientId","select","getBlockOrder","getBlockRootClientId","rootId","length","updateBlockAttributes","updateAlignment","value","widthWithUnit","Number","isFinite","blockProps","className","style","flexBasis","undefined","columnsCount","currentColumnPosition","indexOf","label","innerBlocksProps","renderAppender","ButtonBlockAppender","createElement","Fragment","onChange","controls","title","labelPosition","__unstableInputWidth","nextWidth","parseFloat"],"sources":["@wordpress/block-library/src/column/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSettings,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tPanelBody,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\nfunction ColumnEdit( {\n\tattributes: { verticalAlignment, width, templateLock, allowedBlocks },\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst classes = classnames( 'block-core-columns', {\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t} );\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t} );\n\n\tconst { columnsIds, hasChildBlocks, rootClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootId = getBlockRootClientId( clientId );\n\n\t\t\treturn {\n\t\t\t\thasChildBlocks: getBlockOrder( clientId ).length > 0,\n\t\t\t\trootClientId: rootId,\n\t\t\t\tcolumnsIds: getBlockOrder( rootId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst updateAlignment = ( value ) => {\n\t\t// Update own alignment.\n\t\tsetAttributes( { verticalAlignment: value } );\n\t\t// Reset parent Columns block.\n\t\tupdateBlockAttributes( rootClientId, {\n\t\t\tverticalAlignment: null,\n\t\t} );\n\t};\n\n\tconst widthWithUnit = Number.isFinite( width ) ? width + '%' : width;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t\tstyle: widthWithUnit ? { flexBasis: widthWithUnit } : undefined,\n\t} );\n\n\tconst columnsCount = columnsIds.length;\n\tconst currentColumnPosition = columnsIds.indexOf( clientId ) + 1;\n\n\tconst label = sprintf(\n\t\t/* translators: 1: Block label (i.e. \"Block: Column\"), 2: Position of the selected block, 3: Total number of sibling blocks of the same type */\n\t\t__( '%1$s (%2$d of %3$d)' ),\n\t\tblockProps[ 'aria-label' ],\n\t\tcurrentColumnPosition,\n\t\tcolumnsCount\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ ...blockProps, 'aria-label': label },\n\t\t{\n\t\t\ttemplateLock,\n\t\t\tallowedBlocks,\n\t\t\trenderAppender: hasChildBlocks\n\t\t\t\t? undefined\n\t\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t\t}\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\tcontrols={ [ 'top', 'center', 'bottom', 'stretch' ] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth ) ? '0' : nextWidth;\n\t\t\t\t\t\t\tsetAttributes( { width: nextWidth } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tunits={ units }\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\nexport default ColumnEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["classnames","InnerBlocks","BlockControls","BlockVerticalAlignmentToolbar","InspectorControls","useBlockProps","useSettings","useInnerBlocksProps","store","blockEditorStore","__experimentalUseCustomUnits","useCustomUnits","PanelBody","__experimentalUnitControl","UnitControl","useSelect","useDispatch","sprintf","__","ColumnInspectorControls","width","setAttributes","availableUnits","units","createElement","title","label","labelPosition","__unstableInputWidth","value","onChange","nextWidth","parseFloat","ColumnEdit","attributes","verticalAlignment","templateLock","allowedBlocks","clientId","classes","columnsIds","hasChildBlocks","rootClientId","select","getBlockOrder","getBlockRootClientId","rootId","length","updateBlockAttributes","updateAlignment","widthWithUnit","Number","isFinite","blockProps","className","style","flexBasis","undefined","columnsCount","currentColumnPosition","indexOf","innerBlocksProps","renderAppender","ButtonBlockAppender","Fragment","controls"],"sources":["@wordpress/block-library/src/column/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSettings,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tPanelBody,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\nfunction ColumnInspectorControls( { width, setAttributes } ) {\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t} );\n\treturn (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<UnitControl\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\tvalue={ width || '' }\n\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\tnextWidth = 0 > parseFloat( nextWidth ) ? '0' : nextWidth;\n\t\t\t\t\tsetAttributes( { width: nextWidth } );\n\t\t\t\t} }\n\t\t\t\tunits={ units }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ColumnEdit( {\n\tattributes: { verticalAlignment, width, templateLock, allowedBlocks },\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst classes = classnames( 'block-core-columns', {\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t} );\n\tconst { columnsIds, hasChildBlocks, rootClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootId = getBlockRootClientId( clientId );\n\n\t\t\treturn {\n\t\t\t\thasChildBlocks: getBlockOrder( clientId ).length > 0,\n\t\t\t\trootClientId: rootId,\n\t\t\t\tcolumnsIds: getBlockOrder( rootId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst updateAlignment = ( value ) => {\n\t\t// Update own alignment.\n\t\tsetAttributes( { verticalAlignment: value } );\n\t\t// Reset parent Columns block.\n\t\tupdateBlockAttributes( rootClientId, {\n\t\t\tverticalAlignment: null,\n\t\t} );\n\t};\n\n\tconst widthWithUnit = Number.isFinite( width ) ? width + '%' : width;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t\tstyle: widthWithUnit ? { flexBasis: widthWithUnit } : undefined,\n\t} );\n\n\tconst columnsCount = columnsIds.length;\n\tconst currentColumnPosition = columnsIds.indexOf( clientId ) + 1;\n\n\tconst label = sprintf(\n\t\t/* translators: 1: Block label (i.e. \"Block: Column\"), 2: Position of the selected block, 3: Total number of sibling blocks of the same type */\n\t\t__( '%1$s (%2$d of %3$d)' ),\n\t\tblockProps[ 'aria-label' ],\n\t\tcurrentColumnPosition,\n\t\tcolumnsCount\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ ...blockProps, 'aria-label': label },\n\t\t{\n\t\t\ttemplateLock,\n\t\t\tallowedBlocks,\n\t\t\trenderAppender: hasChildBlocks\n\t\t\t\t? undefined\n\t\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t\t}\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\tcontrols={ [ 'top', 'center', 'bottom', 'stretch' ] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ColumnInspectorControls\n\t\t\t\t\twidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nexport default ColumnEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -134,7 +134,9 @@ function ColumnEditWrapper(props) {
134
134
  verticalAlignment
135
135
  } = props.attributes;
136
136
  const getVerticalAlignmentRemap = alignment => {
137
- if (!alignment) return styles.flexBase;
137
+ if (!alignment) {
138
+ return styles.flexBase;
139
+ }
138
140
  return {
139
141
  ...styles.flexBase,
140
142
  ...styles[`is-vertically-aligned-${alignment}`]
@@ -1 +1 @@
1
- {"version":3,"names":["View","Dimensions","withSelect","compose","withPreferredColorScheme","useEffect","useState","useCallback","InnerBlocks","BlockControls","BlockVerticalAlignmentToolbar","InspectorControls","store","blockEditorStore","useSettings","PanelBody","FooterMessageControl","UnitControl","getValueAndUnit","__experimentalUseCustomUnits","useCustomUnits","__","styles","ColumnsPreview","getWidths","getWidthWithUnit","isPercentageUnit","ColumnEdit","attributes","setAttributes","hasChildren","isSelected","getStylesFromColorScheme","contentStyle","columns","selectedColumnIndex","parentAlignment","clientId","blockWidth","verticalAlignment","width","valueUnit","screenWidth","Math","floor","get","widthUnit","setWidthUnit","availableUnits","units","updateAlignment","alignment","onChangeWidth","nextWidth","widthWithUnit","onChangeUnit","nextUnit","widthWithoutUnit","parseFloat","onChange","renderAppender","columnWidth","isFullWidth","createElement","style","columnAppender","fullwidthColumnAppender","fullwidthHasInnerColumnAppender","hasInnerColumnAppender","ButtonBlockAppender","columnPlaceholder","columnPlaceholderDark","parentWidth","Fragment","value","title","label","min","max","undefined","onComplete","onUnitChange","unit","preview","columnWidths","innerBlocksBottomSpace","ColumnEditWrapper","props","getVerticalAlignmentRemap","flexBase","select","getBlockCount","getBlockRootClientId","getSelectedBlockClientId","getBlocks","getBlockOrder","getBlockAttributes","selectedBlockClientId","parentId","blockOrder","indexOf"],"sources":["@wordpress/block-library/src/column/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { useEffect, useState, useCallback } from '@wordpress/element';\nimport {\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tFooterMessageControl,\n\tUnitControl,\n\tgetValueAndUnit,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\nimport ColumnsPreview from './column-preview';\nimport {\n\tgetWidths,\n\tgetWidthWithUnit,\n\tisPercentageUnit,\n} from '../columns/utils';\n\nfunction ColumnEdit( {\n\tattributes,\n\tsetAttributes,\n\thasChildren,\n\tisSelected,\n\tgetStylesFromColorScheme,\n\tcontentStyle,\n\tcolumns,\n\tselectedColumnIndex,\n\tparentAlignment,\n\tclientId,\n\tblockWidth,\n} ) {\n\tif ( ! contentStyle ) {\n\t\tcontentStyle = { [ clientId ]: {} };\n\t}\n\n\tconst { verticalAlignment, width } = attributes;\n\tconst { valueUnit = '%' } = getValueAndUnit( width ) || {};\n\n\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\n\tconst [ widthUnit, setWidthUnit ] = useState( valueUnit || '%' );\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t} );\n\n\tconst updateAlignment = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tuseEffect( () => {\n\t\tsetWidthUnit( valueUnit );\n\t}, [ valueUnit ] );\n\n\tuseEffect( () => {\n\t\tif ( ! verticalAlignment && parentAlignment ) {\n\t\t\tupdateAlignment( parentAlignment );\n\t\t}\n\t}, [] );\n\n\tconst onChangeWidth = ( nextWidth ) => {\n\t\tconst widthWithUnit = getWidthWithUnit( nextWidth, widthUnit );\n\n\t\tsetAttributes( {\n\t\t\twidth: widthWithUnit,\n\t\t} );\n\t};\n\n\tconst onChangeUnit = ( nextUnit ) => {\n\t\tsetWidthUnit( nextUnit );\n\t\tconst widthWithoutUnit = parseFloat(\n\t\t\twidth || getWidths( columns )[ selectedColumnIndex ]\n\t\t);\n\n\t\tsetAttributes( {\n\t\t\twidth: getWidthWithUnit( widthWithoutUnit, nextUnit ),\n\t\t} );\n\t};\n\n\tconst onChange = ( nextWidth ) => {\n\t\tif ( isPercentageUnit( widthUnit ) || ! widthUnit ) {\n\t\t\treturn;\n\t\t}\n\t\tonChangeWidth( nextWidth );\n\t};\n\n\tconst renderAppender = useCallback( () => {\n\t\tif ( isSelected ) {\n\t\t\tconst { width: columnWidth } = contentStyle[ clientId ] || {};\n\t\t\tconst isFullWidth = columnWidth === screenWidth;\n\n\t\t\treturn (\n\t\t\t\t<View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\tstyles.columnAppender,\n\t\t\t\t\t\tisFullWidth && styles.fullwidthColumnAppender,\n\t\t\t\t\t\tisFullWidth &&\n\t\t\t\t\t\t\thasChildren &&\n\t\t\t\t\t\t\tstyles.fullwidthHasInnerColumnAppender,\n\t\t\t\t\t\t! isFullWidth &&\n\t\t\t\t\t\t\thasChildren &&\n\t\t\t\t\t\t\tstyles.hasInnerColumnAppender,\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<InnerBlocks.ButtonBlockAppender />\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [ contentStyle, clientId, screenWidth, isSelected, hasChildren ] );\n\n\tif ( ! isSelected && ! hasChildren ) {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\tstyles.columnPlaceholder,\n\t\t\t\t\t\tstyles.columnPlaceholderDark\n\t\t\t\t\t),\n\t\t\t\t\tcontentStyle[ clientId ],\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst parentWidth =\n\t\tcontentStyle &&\n\t\tcontentStyle[ clientId ] &&\n\t\tcontentStyle[ clientId ].width;\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit )\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonComplete={ onChangeWidth }\n\t\t\t\t\t\t\t\tonUnitChange={ onChangeUnit }\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\tgetWidths( columns )[ selectedColumnIndex ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tunit={ widthUnit }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tpreview={\n\t\t\t\t\t\t\t\t\t<ColumnsPreview\n\t\t\t\t\t\t\t\t\t\tcolumnWidths={ getWidths(\n\t\t\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tselectedColumnIndex={\n\t\t\t\t\t\t\t\t\t\t\tselectedColumnIndex\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Note: Column layout may vary between themes and screen sizes'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tisSelected && hasChildren && styles.innerBlocksBottomSpace,\n\t\t\t\t\tcontentStyle[ clientId ],\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t<InnerBlocks\n\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n}\n\nfunction ColumnEditWrapper( props ) {\n\tconst { verticalAlignment } = props.attributes;\n\n\tconst getVerticalAlignmentRemap = ( alignment ) => {\n\t\tif ( ! alignment ) return styles.flexBase;\n\t\treturn {\n\t\t\t...styles.flexBase,\n\t\t\t...styles[ `is-vertically-aligned-${ alignment }` ],\n\t\t};\n\t};\n\n\treturn (\n\t\t<View style={ getVerticalAlignmentRemap( verticalAlignment ) }>\n\t\t\t<ColumnEdit { ...props } />\n\t\t</View>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockCount,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetBlocks,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockAttributes,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst isSelected = selectedBlockClientId === clientId;\n\n\t\tconst parentId = getBlockRootClientId( clientId );\n\t\tconst hasChildren = !! getBlockCount( clientId );\n\n\t\tconst blockOrder = getBlockOrder( parentId );\n\n\t\tconst selectedColumnIndex = blockOrder.indexOf( clientId );\n\t\tconst columns = getBlocks( parentId );\n\n\t\tconst parentAlignment =\n\t\t\tgetBlockAttributes( parentId )?.verticalAlignment;\n\n\t\treturn {\n\t\t\thasChildren,\n\t\t\tisSelected,\n\t\t\tselectedColumnIndex,\n\t\t\tcolumns,\n\t\t\tparentAlignment,\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( ColumnEditWrapper );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["View","Dimensions","withSelect","compose","withPreferredColorScheme","useEffect","useState","useCallback","InnerBlocks","BlockControls","BlockVerticalAlignmentToolbar","InspectorControls","store","blockEditorStore","useSettings","PanelBody","FooterMessageControl","UnitControl","getValueAndUnit","__experimentalUseCustomUnits","useCustomUnits","__","styles","ColumnsPreview","getWidths","getWidthWithUnit","isPercentageUnit","ColumnEdit","attributes","setAttributes","hasChildren","isSelected","getStylesFromColorScheme","contentStyle","columns","selectedColumnIndex","parentAlignment","clientId","blockWidth","verticalAlignment","width","valueUnit","screenWidth","Math","floor","get","widthUnit","setWidthUnit","availableUnits","units","updateAlignment","alignment","onChangeWidth","nextWidth","widthWithUnit","onChangeUnit","nextUnit","widthWithoutUnit","parseFloat","onChange","renderAppender","columnWidth","isFullWidth","createElement","style","columnAppender","fullwidthColumnAppender","fullwidthHasInnerColumnAppender","hasInnerColumnAppender","ButtonBlockAppender","columnPlaceholder","columnPlaceholderDark","parentWidth","Fragment","value","title","label","min","max","undefined","onComplete","onUnitChange","unit","preview","columnWidths","innerBlocksBottomSpace","ColumnEditWrapper","props","getVerticalAlignmentRemap","flexBase","select","getBlockCount","getBlockRootClientId","getSelectedBlockClientId","getBlocks","getBlockOrder","getBlockAttributes","selectedBlockClientId","parentId","blockOrder","indexOf"],"sources":["@wordpress/block-library/src/column/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { useEffect, useState, useCallback } from '@wordpress/element';\nimport {\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tFooterMessageControl,\n\tUnitControl,\n\tgetValueAndUnit,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\nimport ColumnsPreview from './column-preview';\nimport {\n\tgetWidths,\n\tgetWidthWithUnit,\n\tisPercentageUnit,\n} from '../columns/utils';\n\nfunction ColumnEdit( {\n\tattributes,\n\tsetAttributes,\n\thasChildren,\n\tisSelected,\n\tgetStylesFromColorScheme,\n\tcontentStyle,\n\tcolumns,\n\tselectedColumnIndex,\n\tparentAlignment,\n\tclientId,\n\tblockWidth,\n} ) {\n\tif ( ! contentStyle ) {\n\t\tcontentStyle = { [ clientId ]: {} };\n\t}\n\n\tconst { verticalAlignment, width } = attributes;\n\tconst { valueUnit = '%' } = getValueAndUnit( width ) || {};\n\n\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\n\tconst [ widthUnit, setWidthUnit ] = useState( valueUnit || '%' );\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t} );\n\n\tconst updateAlignment = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tuseEffect( () => {\n\t\tsetWidthUnit( valueUnit );\n\t}, [ valueUnit ] );\n\n\tuseEffect( () => {\n\t\tif ( ! verticalAlignment && parentAlignment ) {\n\t\t\tupdateAlignment( parentAlignment );\n\t\t}\n\t}, [] );\n\n\tconst onChangeWidth = ( nextWidth ) => {\n\t\tconst widthWithUnit = getWidthWithUnit( nextWidth, widthUnit );\n\n\t\tsetAttributes( {\n\t\t\twidth: widthWithUnit,\n\t\t} );\n\t};\n\n\tconst onChangeUnit = ( nextUnit ) => {\n\t\tsetWidthUnit( nextUnit );\n\t\tconst widthWithoutUnit = parseFloat(\n\t\t\twidth || getWidths( columns )[ selectedColumnIndex ]\n\t\t);\n\n\t\tsetAttributes( {\n\t\t\twidth: getWidthWithUnit( widthWithoutUnit, nextUnit ),\n\t\t} );\n\t};\n\n\tconst onChange = ( nextWidth ) => {\n\t\tif ( isPercentageUnit( widthUnit ) || ! widthUnit ) {\n\t\t\treturn;\n\t\t}\n\t\tonChangeWidth( nextWidth );\n\t};\n\n\tconst renderAppender = useCallback( () => {\n\t\tif ( isSelected ) {\n\t\t\tconst { width: columnWidth } = contentStyle[ clientId ] || {};\n\t\t\tconst isFullWidth = columnWidth === screenWidth;\n\n\t\t\treturn (\n\t\t\t\t<View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\tstyles.columnAppender,\n\t\t\t\t\t\tisFullWidth && styles.fullwidthColumnAppender,\n\t\t\t\t\t\tisFullWidth &&\n\t\t\t\t\t\t\thasChildren &&\n\t\t\t\t\t\t\tstyles.fullwidthHasInnerColumnAppender,\n\t\t\t\t\t\t! isFullWidth &&\n\t\t\t\t\t\t\thasChildren &&\n\t\t\t\t\t\t\tstyles.hasInnerColumnAppender,\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<InnerBlocks.ButtonBlockAppender />\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [ contentStyle, clientId, screenWidth, isSelected, hasChildren ] );\n\n\tif ( ! isSelected && ! hasChildren ) {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\tstyles.columnPlaceholder,\n\t\t\t\t\t\tstyles.columnPlaceholderDark\n\t\t\t\t\t),\n\t\t\t\t\tcontentStyle[ clientId ],\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst parentWidth =\n\t\tcontentStyle &&\n\t\tcontentStyle[ clientId ] &&\n\t\tcontentStyle[ clientId ].width;\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit )\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonComplete={ onChangeWidth }\n\t\t\t\t\t\t\t\tonUnitChange={ onChangeUnit }\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\tgetWidths( columns )[ selectedColumnIndex ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tunit={ widthUnit }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tpreview={\n\t\t\t\t\t\t\t\t\t<ColumnsPreview\n\t\t\t\t\t\t\t\t\t\tcolumnWidths={ getWidths(\n\t\t\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tselectedColumnIndex={\n\t\t\t\t\t\t\t\t\t\t\tselectedColumnIndex\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Note: Column layout may vary between themes and screen sizes'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tisSelected && hasChildren && styles.innerBlocksBottomSpace,\n\t\t\t\t\tcontentStyle[ clientId ],\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t<InnerBlocks\n\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n}\n\nfunction ColumnEditWrapper( props ) {\n\tconst { verticalAlignment } = props.attributes;\n\n\tconst getVerticalAlignmentRemap = ( alignment ) => {\n\t\tif ( ! alignment ) {\n\t\t\treturn styles.flexBase;\n\t\t}\n\t\treturn {\n\t\t\t...styles.flexBase,\n\t\t\t...styles[ `is-vertically-aligned-${ alignment }` ],\n\t\t};\n\t};\n\n\treturn (\n\t\t<View style={ getVerticalAlignmentRemap( verticalAlignment ) }>\n\t\t\t<ColumnEdit { ...props } />\n\t\t</View>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockCount,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetBlocks,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockAttributes,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst isSelected = selectedBlockClientId === clientId;\n\n\t\tconst parentId = getBlockRootClientId( clientId );\n\t\tconst hasChildren = !! getBlockCount( clientId );\n\n\t\tconst blockOrder = getBlockOrder( parentId );\n\n\t\tconst selectedColumnIndex = blockOrder.indexOf( clientId );\n\t\tconst columns = getBlocks( parentId );\n\n\t\tconst parentAlignment =\n\t\t\tgetBlockAttributes( parentId )?.verticalAlignment;\n\n\t\treturn {\n\t\t\thasChildren,\n\t\t\tisSelected,\n\t\t\tselectedColumnIndex,\n\t\t\tcolumns,\n\t\t\tparentAlignment,\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( ColumnEditWrapper );\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,IAAI,EAAEC,UAAU,QAAQ,cAAc;;AAE/C;AACA;AACA;AACA,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,OAAO,EAAEC,wBAAwB,QAAQ,oBAAoB;AACtE,SAASC,SAAS,EAAEC,QAAQ,EAAEC,WAAW,QAAQ,oBAAoB;AACrE,SACCC,WAAW,EACXC,aAAa,EACbC,6BAA6B,EAC7BC,iBAAiB,EACjBC,KAAK,IAAIC,gBAAgB,EACzBC,WAAW,QACL,yBAAyB;AAChC,SACCC,SAAS,EACTC,oBAAoB,EACpBC,WAAW,EACXC,eAAe,EACfC,4BAA4B,IAAIC,cAAc,QACxC,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC;AACA;AACA;AACA,OAAOC,MAAM,MAAM,eAAe;AAClC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,SACCC,SAAS,EACTC,gBAAgB,EAChBC,gBAAgB,QACV,kBAAkB;AAEzB,SAASC,UAAUA,CAAE;EACpBC,UAAU;EACVC,aAAa;EACbC,WAAW;EACXC,UAAU;EACVC,wBAAwB;EACxBC,YAAY;EACZC,OAAO;EACPC,mBAAmB;EACnBC,eAAe;EACfC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,IAAK,CAAEL,YAAY,EAAG;IACrBA,YAAY,GAAG;MAAE,CAAEI,QAAQ,GAAI,CAAC;IAAE,CAAC;EACpC;EAEA,MAAM;IAAEE,iBAAiB;IAAEC;EAAM,CAAC,GAAGZ,UAAU;EAC/C,MAAM;IAAEa,SAAS,GAAG;EAAI,CAAC,GAAGvB,eAAe,CAAEsB,KAAM,CAAC,IAAI,CAAC,CAAC;EAE1D,MAAME,WAAW,GAAGC,IAAI,CAACC,KAAK,CAAE3C,UAAU,CAAC4C,GAAG,CAAE,QAAS,CAAC,CAACL,KAAM,CAAC;EAElE,MAAM,CAAEM,SAAS,EAAEC,YAAY,CAAE,GAAGzC,QAAQ,CAAEmC,SAAS,IAAI,GAAI,CAAC;EAEhE,MAAM,CAAEO,cAAc,CAAE,GAAGlC,WAAW,CAAE,eAAgB,CAAC;EACzD,MAAMmC,KAAK,GAAG7B,cAAc,CAAE;IAC7B4B,cAAc,EAAEA,cAAc,IAAI,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI;EACjE,CAAE,CAAC;EAEH,MAAME,eAAe,GAAKC,SAAS,IAAM;IACxCtB,aAAa,CAAE;MAAEU,iBAAiB,EAAEY;IAAU,CAAE,CAAC;EAClD,CAAC;EAED9C,SAAS,CAAE,MAAM;IAChB0C,YAAY,CAAEN,SAAU,CAAC;EAC1B,CAAC,EAAE,CAAEA,SAAS,CAAG,CAAC;EAElBpC,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEkC,iBAAiB,IAAIH,eAAe,EAAG;MAC7Cc,eAAe,CAAEd,eAAgB,CAAC;IACnC;EACD,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMgB,aAAa,GAAKC,SAAS,IAAM;IACtC,MAAMC,aAAa,GAAG7B,gBAAgB,CAAE4B,SAAS,EAAEP,SAAU,CAAC;IAE9DjB,aAAa,CAAE;MACdW,KAAK,EAAEc;IACR,CAAE,CAAC;EACJ,CAAC;EAED,MAAMC,YAAY,GAAKC,QAAQ,IAAM;IACpCT,YAAY,CAAES,QAAS,CAAC;IACxB,MAAMC,gBAAgB,GAAGC,UAAU,CAClClB,KAAK,IAAIhB,SAAS,CAAEU,OAAQ,CAAC,CAAEC,mBAAmB,CACnD,CAAC;IAEDN,aAAa,CAAE;MACdW,KAAK,EAAEf,gBAAgB,CAAEgC,gBAAgB,EAAED,QAAS;IACrD,CAAE,CAAC;EACJ,CAAC;EAED,MAAMG,QAAQ,GAAKN,SAAS,IAAM;IACjC,IAAK3B,gBAAgB,CAAEoB,SAAU,CAAC,IAAI,CAAEA,SAAS,EAAG;MACnD;IACD;IACAM,aAAa,CAAEC,SAAU,CAAC;EAC3B,CAAC;EAED,MAAMO,cAAc,GAAGrD,WAAW,CAAE,MAAM;IACzC,IAAKwB,UAAU,EAAG;MACjB,MAAM;QAAES,KAAK,EAAEqB;MAAY,CAAC,GAAG5B,YAAY,CAAEI,QAAQ,CAAE,IAAI,CAAC,CAAC;MAC7D,MAAMyB,WAAW,GAAGD,WAAW,KAAKnB,WAAW;MAE/C,OACCqB,aAAA,CAAC/D,IAAI;QACJgE,KAAK,EAAG,CACP1C,MAAM,CAAC2C,cAAc,EACrBH,WAAW,IAAIxC,MAAM,CAAC4C,uBAAuB,EAC7CJ,WAAW,IACVhC,WAAW,IACXR,MAAM,CAAC6C,+BAA+B,EACvC,CAAEL,WAAW,IACZhC,WAAW,IACXR,MAAM,CAAC8C,sBAAsB;MAC5B,GAEHL,aAAA,CAACvD,WAAW,CAAC6D,mBAAmB,MAAE,CAC7B,CAAC;IAET;IACA,OAAO,IAAI;EACZ,CAAC,EAAE,CAAEpC,YAAY,EAAEI,QAAQ,EAAEK,WAAW,EAAEX,UAAU,EAAED,WAAW,CAAG,CAAC;EAErE,IAAK,CAAEC,UAAU,IAAI,CAAED,WAAW,EAAG;IACpC,OACCiC,aAAA,CAAC/D,IAAI;MACJgE,KAAK,EAAG,CACPhC,wBAAwB,CACvBV,MAAM,CAACgD,iBAAiB,EACxBhD,MAAM,CAACiD,qBACR,CAAC,EACDtC,YAAY,CAAEI,QAAQ,CAAE;IACtB,CACH,CAAC;EAEJ;EAEA,MAAMmC,WAAW,GAChBvC,YAAY,IACZA,YAAY,CAAEI,QAAQ,CAAE,IACxBJ,YAAY,CAAEI,QAAQ,CAAE,CAACG,KAAK;EAE/B,OACCuB,aAAA,CAAAU,QAAA,QACG1C,UAAU,IACXgC,aAAA,CAAAU,QAAA,QACCV,aAAA,CAACtD,aAAa,QACbsD,aAAA,CAACrD,6BAA6B;IAC7BiD,QAAQ,EAAGT,eAAiB;IAC5BwB,KAAK,EAAGnC;EAAmB,CAC3B,CACa,CAAC,EAChBwB,aAAA,CAACpD,iBAAiB,QACjBoD,aAAA,CAAChD,SAAS;IAAC4D,KAAK,EAAGtD,EAAE,CAAE,UAAW;EAAG,GACpC0C,aAAA,CAAC9C,WAAW;IACX2D,KAAK,EAAGvD,EAAE,CAAE,OAAQ,CAAG;IACvBwD,GAAG,EAAG,CAAG;IACTC,GAAG,EACFpD,gBAAgB,CAAEoB,SAAU,CAAC,GAC1B,GAAG,GACHiC,SACH;IACDpB,QAAQ,EAAGA,QAAU;IACrBqB,UAAU,EAAG5B,aAAe;IAC5B6B,YAAY,EAAG1B,YAAc;IAC7BmB,KAAK,EACJlD,SAAS,CAAEU,OAAQ,CAAC,CAAEC,mBAAmB,CACzC;IACD+C,IAAI,EAAGpC,SAAW;IAClBG,KAAK,EAAGA,KAAO;IACfkC,OAAO,EACNpB,aAAA,CAACxC,cAAc;MACd6D,YAAY,EAAG5D,SAAS,CACvBU,OAAO,EACP,KACD,CAAG;MACHC,mBAAmB,EAClBA;IACA,CACD;EACD,CACD,CACS,CAAC,EACZ4B,aAAA,CAAChD,SAAS,QACTgD,aAAA,CAAC/C,oBAAoB;IACpB4D,KAAK,EAAGvD,EAAE,CACT,8DACD;EAAG,CACH,CACS,CACO,CAClB,CACF,EACD0C,aAAA,CAAC/D,IAAI;IACJgE,KAAK,EAAG,CACPjC,UAAU,IAAID,WAAW,IAAIR,MAAM,CAAC+D,sBAAsB,EAC1DpD,YAAY,CAAEI,QAAQ,CAAE;EACtB,GAEH0B,aAAA,CAACvD,WAAW;IACXoD,cAAc,EAAGA,cAAgB;IACjCY,WAAW,EAAGA,WAAa;IAC3BlC,UAAU,EAAGA;EAAY,CACzB,CACI,CACL,CAAC;AAEL;AAEA,SAASgD,iBAAiBA,CAAEC,KAAK,EAAG;EACnC,MAAM;IAAEhD;EAAkB,CAAC,GAAGgD,KAAK,CAAC3D,UAAU;EAE9C,MAAM4D,yBAAyB,GAAKrC,SAAS,IAAM;IAClD,IAAK,CAAEA,SAAS,EAAG;MAClB,OAAO7B,MAAM,CAACmE,QAAQ;IACvB;IACA,OAAO;MACN,GAAGnE,MAAM,CAACmE,QAAQ;MAClB,GAAGnE,MAAM,CAAG,yBAAyB6B,SAAW,EAAC;IAClD,CAAC;EACF,CAAC;EAED,OACCY,aAAA,CAAC/D,IAAI;IAACgE,KAAK,EAAGwB,yBAAyB,CAAEjD,iBAAkB;EAAG,GAC7DwB,aAAA,CAACpC,UAAU;IAAA,GAAM4D;EAAK,CAAI,CACrB,CAAC;AAET;AAEA,eAAepF,OAAO,CAAE,CACvBD,UAAU,CAAE,CAAEwF,MAAM,EAAE;EAAErD;AAAS,CAAC,KAAM;EACvC,MAAM;IACLsD,aAAa;IACbC,oBAAoB;IACpBC,wBAAwB;IACxBC,SAAS;IACTC,aAAa;IACbC;EACD,CAAC,GAAGN,MAAM,CAAE7E,gBAAiB,CAAC;EAE9B,MAAMoF,qBAAqB,GAAGJ,wBAAwB,CAAC,CAAC;EACxD,MAAM9D,UAAU,GAAGkE,qBAAqB,KAAK5D,QAAQ;EAErD,MAAM6D,QAAQ,GAAGN,oBAAoB,CAAEvD,QAAS,CAAC;EACjD,MAAMP,WAAW,GAAG,CAAC,CAAE6D,aAAa,CAAEtD,QAAS,CAAC;EAEhD,MAAM8D,UAAU,GAAGJ,aAAa,CAAEG,QAAS,CAAC;EAE5C,MAAM/D,mBAAmB,GAAGgE,UAAU,CAACC,OAAO,CAAE/D,QAAS,CAAC;EAC1D,MAAMH,OAAO,GAAG4D,SAAS,CAAEI,QAAS,CAAC;EAErC,MAAM9D,eAAe,GACpB4D,kBAAkB,CAAEE,QAAS,CAAC,EAAE3D,iBAAiB;EAElD,OAAO;IACNT,WAAW;IACXC,UAAU;IACVI,mBAAmB;IACnBD,OAAO;IACPE;EACD,CAAC;AACF,CAAE,CAAC,EACHhC,wBAAwB,CACvB,CAAC,CAAEkF,iBAAkB,CAAC","ignoreList":[]}