@wordpress/block-library 6.0.11 → 6.0.12

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 (102) hide show
  1. package/build/cover/edit.js +1 -0
  2. package/build/cover/edit.js.map +1 -1
  3. package/build/gallery/deprecated.js +314 -26
  4. package/build/gallery/deprecated.js.map +1 -1
  5. package/build/gallery/edit-wrapper.js +10 -27
  6. package/build/gallery/edit-wrapper.js.map +1 -1
  7. package/build/gallery/edit.js +10 -12
  8. package/build/gallery/edit.js.map +1 -1
  9. package/build/gallery/save.js +3 -3
  10. package/build/gallery/save.js.map +1 -1
  11. package/build/gallery/shared.js +24 -0
  12. package/build/gallery/shared.js.map +1 -1
  13. package/build/gallery/transforms.js +8 -22
  14. package/build/gallery/transforms.js.map +1 -1
  15. package/build/gallery/use-mobile-warning.js +1 -1
  16. package/build/gallery/use-mobile-warning.js.map +1 -1
  17. package/build/gallery/v1/edit.js +2 -21
  18. package/build/gallery/v1/edit.js.map +1 -1
  19. package/build/navigation/edit/index.js +1 -0
  20. package/build/navigation/edit/index.js.map +1 -1
  21. package/build/navigation/edit/inner-blocks.js +0 -4
  22. package/build/navigation/edit/inner-blocks.js.map +1 -1
  23. package/build/navigation-submenu/edit.js +4 -0
  24. package/build/navigation-submenu/edit.js.map +1 -1
  25. package/build/query-pagination/index.js +1 -1
  26. package/build/query-pagination-next/index.js +1 -1
  27. package/build/query-pagination-numbers/index.js +1 -1
  28. package/build/query-pagination-previous/index.js +1 -1
  29. package/build/separator/separator-settings.js +1 -0
  30. package/build/separator/separator-settings.js.map +1 -1
  31. package/build/social-links/edit.js +1 -0
  32. package/build/social-links/edit.js.map +1 -1
  33. package/build-module/cover/edit.js +1 -0
  34. package/build-module/cover/edit.js.map +1 -1
  35. package/build-module/gallery/deprecated.js +309 -27
  36. package/build-module/gallery/deprecated.js.map +1 -1
  37. package/build-module/gallery/edit-wrapper.js +7 -27
  38. package/build-module/gallery/edit-wrapper.js.map +1 -1
  39. package/build-module/gallery/edit.js +10 -12
  40. package/build-module/gallery/edit.js.map +1 -1
  41. package/build-module/gallery/save.js +2 -3
  42. package/build-module/gallery/save.js.map +1 -1
  43. package/build-module/gallery/shared.js +22 -0
  44. package/build-module/gallery/shared.js.map +1 -1
  45. package/build-module/gallery/transforms.js +9 -21
  46. package/build-module/gallery/transforms.js.map +1 -1
  47. package/build-module/gallery/use-mobile-warning.js +1 -1
  48. package/build-module/gallery/use-mobile-warning.js.map +1 -1
  49. package/build-module/gallery/v1/edit.js +4 -22
  50. package/build-module/gallery/v1/edit.js.map +1 -1
  51. package/build-module/navigation/edit/index.js +1 -0
  52. package/build-module/navigation/edit/index.js.map +1 -1
  53. package/build-module/navigation/edit/inner-blocks.js +0 -4
  54. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  55. package/build-module/navigation-submenu/edit.js +4 -0
  56. package/build-module/navigation-submenu/edit.js.map +1 -1
  57. package/build-module/query-pagination/index.js +1 -1
  58. package/build-module/query-pagination-next/index.js +1 -1
  59. package/build-module/query-pagination-numbers/index.js +1 -1
  60. package/build-module/query-pagination-previous/index.js +1 -1
  61. package/build-module/separator/separator-settings.js +1 -0
  62. package/build-module/separator/separator-settings.js.map +1 -1
  63. package/build-module/social-links/edit.js +1 -0
  64. package/build-module/social-links/edit.js.map +1 -1
  65. package/build-style/columns/editor-rtl.css +1 -1
  66. package/build-style/columns/editor.css +1 -1
  67. package/build-style/editor-rtl.css +1 -1
  68. package/build-style/editor.css +1 -1
  69. package/build-style/navigation/style-rtl.css +4 -1
  70. package/build-style/navigation/style.css +4 -1
  71. package/build-style/style-rtl.css +4 -1
  72. package/build-style/style.css +4 -1
  73. package/package.json +8 -8
  74. package/src/columns/editor.scss +3 -2
  75. package/src/cover/edit.js +1 -0
  76. package/src/gallery/deprecated.js +831 -559
  77. package/src/gallery/edit-wrapper.js +7 -27
  78. package/src/gallery/edit.js +10 -12
  79. package/src/gallery/save.js +2 -1
  80. package/src/gallery/shared.js +24 -0
  81. package/src/gallery/transforms.js +9 -27
  82. package/src/gallery/use-mobile-warning.js +1 -1
  83. package/src/gallery/v1/edit.js +1 -28
  84. package/src/navigation/edit/index.js +1 -0
  85. package/src/navigation/edit/inner-blocks.js +0 -5
  86. package/src/navigation/index.php +149 -18
  87. package/src/navigation/style.scss +4 -1
  88. package/src/navigation-submenu/edit.js +6 -0
  89. package/src/navigation-submenu/index.php +30 -45
  90. package/src/page-list/index.php +5 -9
  91. package/src/query-pagination/block.json +1 -1
  92. package/src/query-pagination-next/block.json +1 -1
  93. package/src/query-pagination-numbers/block.json +1 -1
  94. package/src/query-pagination-previous/block.json +1 -1
  95. package/src/separator/separator-settings.js +1 -0
  96. package/src/social-links/edit.js +1 -0
  97. package/src/template-part/index.php +36 -0
  98. package/build/gallery/v1/update-gallery-modal.js +0 -114
  99. package/build/gallery/v1/update-gallery-modal.js.map +0 -1
  100. package/build-module/gallery/v1/update-gallery-modal.js +0 -97
  101. package/build-module/gallery/v1/update-gallery-modal.js.map +0 -1
  102. package/src/gallery/v1/update-gallery-modal.js +0 -97
@@ -11,10 +11,6 @@ var _blocks = require("@wordpress/blocks");
11
11
 
12
12
  var _blob = require("@wordpress/blob");
13
13
 
14
- var _data = require("@wordpress/data");
15
-
16
- var _blockEditor = require("@wordpress/block-editor");
17
-
18
14
  var _hooks = require("@wordpress/hooks");
19
15
 
20
16
  var _constants = require("./constants");
@@ -60,9 +56,7 @@ const parseShortcodeIds = ids => {
60
56
  function updateThirdPartyTransformToGallery(block) {
61
57
  var _block$attributes;
62
58
 
63
- const settings = (0, _data.select)(_blockEditor.store).getSettings();
64
-
65
- if (settings.__unstableGalleryWithImageBlocks && block.name === 'core/gallery' && ((_block$attributes = block.attributes) === null || _block$attributes === void 0 ? void 0 : _block$attributes.images.length) > 0) {
59
+ if ((0, _shared.isGalleryV2Enabled)() && block.name === 'core/gallery' && ((_block$attributes = block.attributes) === null || _block$attributes === void 0 ? void 0 : _block$attributes.images.length) > 0) {
66
60
  const innerBlocks = block.attributes.images.map(_ref => {
67
61
  let {
68
62
  url,
@@ -159,9 +153,8 @@ const transforms = {
159
153
  } = _ref4;
160
154
  return url;
161
155
  });
162
- const settings = (0, _data.select)(_blockEditor.store).getSettings();
163
156
 
164
- if (settings.__unstableGalleryWithImageBlocks) {
157
+ if ((0, _shared.isGalleryV2Enabled)()) {
165
158
  const innerBlocks = validImages.map(image => {
166
159
  return (0, _blocks.createBlock)('core/image', image);
167
160
  });
@@ -208,9 +201,8 @@ const transforms = {
208
201
  ids
209
202
  }
210
203
  } = _ref7;
211
- const settings = (0, _data.select)(_blockEditor.store).getSettings();
212
204
 
213
- if (!settings.__unstableGalleryWithImageBlocks) {
205
+ if (!(0, _shared.isGalleryV2Enabled)()) {
214
206
  return parseShortcodeIds(ids).map(id => ({
215
207
  id: (0, _lodash.toString)(id)
216
208
  }));
@@ -225,9 +217,8 @@ const transforms = {
225
217
  ids
226
218
  }
227
219
  } = _ref8;
228
- const settings = (0, _data.select)(_blockEditor.store).getSettings();
229
220
 
230
- if (!settings.__unstableGalleryWithImageBlocks) {
221
+ if (!(0, _shared.isGalleryV2Enabled)()) {
231
222
  return parseShortcodeIds(ids);
232
223
  }
233
224
  }
@@ -240,9 +231,8 @@ const transforms = {
240
231
  ids
241
232
  }
242
233
  } = _ref9;
243
- const settings = (0, _data.select)(_blockEditor.store).getSettings();
244
234
 
245
- if (settings.__unstableGalleryWithImageBlocks) {
235
+ if ((0, _shared.isGalleryV2Enabled)()) {
246
236
  return parseShortcodeIds(ids).map(id => ({
247
237
  id: parseInt(id)
248
238
  }));
@@ -268,9 +258,8 @@ const transforms = {
268
258
  link
269
259
  }
270
260
  } = _ref11;
271
- const settings = (0, _data.select)(_blockEditor.store).getSettings();
272
261
 
273
- if (!settings.__unstableGalleryWithImageBlocks) {
262
+ if (!(0, _shared.isGalleryV2Enabled)()) {
274
263
  switch (link) {
275
264
  case 'post':
276
265
  return _constants2.LINK_DESTINATION_ATTACHMENT;
@@ -318,9 +307,7 @@ const transforms = {
318
307
  },
319
308
 
320
309
  transform(files) {
321
- const settings = (0, _data.select)(_blockEditor.store).getSettings();
322
-
323
- if (settings.__unstableGalleryWithImageBlocks) {
310
+ if ((0, _shared.isGalleryV2Enabled)()) {
324
311
  const innerBlocks = files.map(file => (0, _blocks.createBlock)('core/image', {
325
312
  url: (0, _blob.createBlobURL)(file)
326
313
  }));
@@ -346,9 +333,8 @@ const transforms = {
346
333
  ids,
347
334
  sizeSlug
348
335
  } = _ref13;
349
- const settings = (0, _data.select)(_blockEditor.store).getSettings();
350
336
 
351
- if (settings.__unstableGalleryWithImageBlocks) {
337
+ if ((0, _shared.isGalleryV2Enabled)()) {
352
338
  if (innerBlocks.length > 0) {
353
339
  return innerBlocks.map(_ref14 => {
354
340
  let {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/transforms.js"],"names":["parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","settings","blockEditorStore","getSettings","__unstableGalleryWithImageBlocks","name","attributes","images","length","innerBlocks","url","alt","sizeSlug","linkDestination","updateThirdPartyTransformFromGallery","toBlock","fromBlocks","from","Array","isArray","galleryBlock","find","transformedBlock","includes","transforms","type","isMultiBlock","blocks","transform","align","undefined","validImages","image","caption","tag","shortcode","named","shortCodeTransforms","columns","linkTo","link","DEPRECATED_LINK_DESTINATION_ATTACHMENT","DEPRECATED_LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","isMatch","priority","files","file","indexOf","to","imageSizeSlug","index"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { filter, every, toString } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\nimport {\n\tLINK_DESTINATION_ATTACHMENT as DEPRECATED_LINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA as DEPRECATED_LINK_DESTINATION_MEDIA,\n} from './v1/constants';\nimport { pickRelevantMediaFiles } from './shared';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this tranform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tconst settings = select( blockEditorStore ).getSettings();\n\tif (\n\t\tsettings.__unstableGalleryWithImageBlocks &&\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = every( attributes, [ 'align', align ] )\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = every( attributes, [ 'sizeSlug', sizeSlug ] )\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = filter( attributes, ( { url } ) => url );\n\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tif ( settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/gallery',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/gallery', {\n\t\t\t\t\timages: validImages.map(\n\t\t\t\t\t\t( { id, url, alt, caption } ) => ( {\n\t\t\t\t\t\t\tid: toString( id ),\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t\tids: validImages.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t\t\talign,\n\t\t\t\t\tsizeSlug,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\n\t\t\tattributes: {\n\t\t\t\timages: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tconst settings = select(\n\t\t\t\t\t\t\tblockEditorStore\n\t\t\t\t\t\t).getSettings();\n\t\t\t\t\t\tif ( ! settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: toString( id ),\n\t\t\t\t\t\t\t} ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tids: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tconst settings = select(\n\t\t\t\t\t\t\tblockEditorStore\n\t\t\t\t\t\t).getSettings();\n\t\t\t\t\t\tif ( ! settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids );\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tshortCodeTransforms: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tconst settings = select(\n\t\t\t\t\t\t\tblockEditorStore\n\t\t\t\t\t\t).getSettings();\n\t\t\t\t\t\tif ( settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: parseInt( id ),\n\t\t\t\t\t\t\t} ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcolumns: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tshortcode: ( { named: { columns = '3' } } ) => {\n\t\t\t\t\t\treturn parseInt( columns, 10 );\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlinkTo: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { link } } ) => {\n\t\t\t\t\t\tconst settings = select(\n\t\t\t\t\t\t\tblockEditorStore\n\t\t\t\t\t\t).getSettings();\n\t\t\t\t\t\tif ( ! settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\t\t\tswitch ( link ) {\n\t\t\t\t\t\t\t\tcase 'post':\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\t\tcase 'file':\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_MEDIA;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch ( link ) {\n\t\t\t\t\t\t\tcase 'post':\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\tcase 'file':\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_MEDIA;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_NONE;\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\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrrides the image block transformation when mulitple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tevery(\n\t\t\t\t\t\tfiles,\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tif ( settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t\t}\n\t\t\t\tconst block = createBlock( 'core/gallery', {\n\t\t\t\t\timages: files.map( ( file ) =>\n\t\t\t\t\t\tpickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align, images, ids, sizeSlug }, innerBlocks ) => {\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tif ( settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t\t( {\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\timageSizeSlug,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t\t}\n\t\t\t\tif ( images.length > 0 ) {\n\t\t\t\t\treturn images.map( ( { url, alt, caption }, index ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\tid: ids[ index ],\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/transforms.js"],"names":["parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","name","attributes","images","length","innerBlocks","url","alt","sizeSlug","linkDestination","updateThirdPartyTransformFromGallery","toBlock","fromBlocks","from","Array","isArray","galleryBlock","find","transformedBlock","includes","transforms","type","isMultiBlock","blocks","transform","align","undefined","validImages","image","caption","tag","shortcode","named","shortCodeTransforms","columns","linkTo","link","DEPRECATED_LINK_DESTINATION_ATTACHMENT","DEPRECATED_LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","isMatch","priority","files","file","indexOf","to","imageSizeSlug","index"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { filter, every, toString } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\nimport {\n\tLINK_DESTINATION_ATTACHMENT as DEPRECATED_LINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA as DEPRECATED_LINK_DESTINATION_MEDIA,\n} from './v1/constants';\nimport { pickRelevantMediaFiles, isGalleryV2Enabled } from './shared';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this tranform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tif (\n\t\tisGalleryV2Enabled() &&\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = every( attributes, [ 'align', align ] )\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = every( attributes, [ 'sizeSlug', sizeSlug ] )\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = filter( attributes, ( { url } ) => url );\n\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/gallery',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/gallery', {\n\t\t\t\t\timages: validImages.map(\n\t\t\t\t\t\t( { id, url, alt, caption } ) => ( {\n\t\t\t\t\t\t\tid: toString( id ),\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t\tids: validImages.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t\t\talign,\n\t\t\t\t\tsizeSlug,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\n\t\t\tattributes: {\n\t\t\t\timages: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tif ( ! isGalleryV2Enabled() ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: toString( id ),\n\t\t\t\t\t\t\t} ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tids: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tif ( ! isGalleryV2Enabled() ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids );\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tshortCodeTransforms: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: parseInt( id ),\n\t\t\t\t\t\t\t} ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcolumns: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tshortcode: ( { named: { columns = '3' } } ) => {\n\t\t\t\t\t\treturn parseInt( columns, 10 );\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlinkTo: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { link } } ) => {\n\t\t\t\t\t\tif ( ! isGalleryV2Enabled() ) {\n\t\t\t\t\t\t\tswitch ( link ) {\n\t\t\t\t\t\t\t\tcase 'post':\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\t\tcase 'file':\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_MEDIA;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch ( link ) {\n\t\t\t\t\t\t\tcase 'post':\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\tcase 'file':\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_MEDIA;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_NONE;\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\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrrides the image block transformation when mulitple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tevery(\n\t\t\t\t\t\tfiles,\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t\t}\n\t\t\t\tconst block = createBlock( 'core/gallery', {\n\t\t\t\t\timages: files.map( ( file ) =>\n\t\t\t\t\t\tpickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align, images, ids, sizeSlug }, innerBlocks ) => {\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t\t( {\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\timageSizeSlug,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t\t}\n\t\t\t\tif ( images.length > 0 ) {\n\t\t\t\t\treturn images.map( ( { url, alt, caption }, index ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\tid: ids[ index ],\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
@@ -34,7 +34,7 @@ function useMobileWarning(newImages) {
34
34
  return;
35
35
  }
36
36
 
37
- createWarningNotice((0, _i18n.__)('Editing this Gallery in the WordPress mobile app requires version 18.2 or higher.'), {
37
+ createWarningNotice((0, _i18n.__)('If you want to edit the gallery you just added in the mobile app, to avoid losing any data please make sure you use version 18.2 of the app or above.'), {
38
38
  type: 'snackbar',
39
39
  explicitDismiss: true
40
40
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/use-mobile-warning.js"],"names":["useMobileWarning","newImages","createWarningNotice","noticesStore","toggleFeature","interfaceStore","isMobileWarningActive","select","isFeatureActive","type","explicitDismiss"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AACA;;AANA;AACA;AACA;AAMe,SAASA,gBAAT,CAA2BC,SAA3B,EAAuC;AACrD,QAAM;AAAEC,IAAAA;AAAF,MAA0B,uBAAaC,cAAb,CAAhC;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAoB,uBAAaC,gBAAb,CAA1B;AACA,QAAMC,qBAAqB,GAAG,qBAAaC,MAAF,IAAc;AACtD,UAAM;AAAEC,MAAAA;AAAF,QAAsBD,MAAM,CAAEF,gBAAF,CAAlC;AACA,WAAOG,eAAe,CAAE,gBAAF,EAAoB,sBAApB,CAAtB;AACA,GAH6B,EAG3B,EAH2B,CAA9B;;AAKA,MAAK,CAAEF,qBAAF,IAA2B,CAAEL,SAAlC,EAA8C;AAC7C;AACA;;AAEDC,EAAAA,mBAAmB,CAClB,cACC,mFADD,CADkB,EAIlB;AAAEO,IAAAA,IAAI,EAAE,UAAR;AAAoBC,IAAAA,eAAe,EAAE;AAArC,GAJkB,CAAnB;AAMAN,EAAAA,aAAa,CAAE,gBAAF,EAAoB,sBAApB,CAAb;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function useMobileWarning( newImages ) {\n\tconst { createWarningNotice } = useDispatch( noticesStore );\n\tconst { toggleFeature } = useDispatch( interfaceStore );\n\tconst isMobileWarningActive = useSelect( ( select ) => {\n\t\tconst { isFeatureActive } = select( interfaceStore );\n\t\treturn isFeatureActive( 'core/edit-post', 'mobileGalleryWarning' );\n\t}, [] );\n\n\tif ( ! isMobileWarningActive || ! newImages ) {\n\t\treturn;\n\t}\n\n\tcreateWarningNotice(\n\t\t__(\n\t\t\t'Editing this Gallery in the WordPress mobile app requires version 18.2 or higher.'\n\t\t),\n\t\t{ type: 'snackbar', explicitDismiss: true }\n\t);\n\ttoggleFeature( 'core/edit-post', 'mobileGalleryWarning' );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/use-mobile-warning.js"],"names":["useMobileWarning","newImages","createWarningNotice","noticesStore","toggleFeature","interfaceStore","isMobileWarningActive","select","isFeatureActive","type","explicitDismiss"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AACA;;AANA;AACA;AACA;AAMe,SAASA,gBAAT,CAA2BC,SAA3B,EAAuC;AACrD,QAAM;AAAEC,IAAAA;AAAF,MAA0B,uBAAaC,cAAb,CAAhC;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAoB,uBAAaC,gBAAb,CAA1B;AACA,QAAMC,qBAAqB,GAAG,qBAAaC,MAAF,IAAc;AACtD,UAAM;AAAEC,MAAAA;AAAF,QAAsBD,MAAM,CAAEF,gBAAF,CAAlC;AACA,WAAOG,eAAe,CAAE,gBAAF,EAAoB,sBAApB,CAAtB;AACA,GAH6B,EAG3B,EAH2B,CAA9B;;AAKA,MAAK,CAAEF,qBAAF,IAA2B,CAAEL,SAAlC,EAA8C;AAC7C;AACA;;AAEDC,EAAAA,mBAAmB,CAClB,cACC,uJADD,CADkB,EAIlB;AAAEO,IAAAA,IAAI,EAAE,UAAR;AAAoBC,IAAAA,eAAe,EAAE;AAArC,GAJkB,CAAnB;AAMAN,EAAAA,aAAa,CAAE,gBAAF,EAAoB,sBAApB,CAAb;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function useMobileWarning( newImages ) {\n\tconst { createWarningNotice } = useDispatch( noticesStore );\n\tconst { toggleFeature } = useDispatch( interfaceStore );\n\tconst isMobileWarningActive = useSelect( ( select ) => {\n\t\tconst { isFeatureActive } = select( interfaceStore );\n\t\treturn isFeatureActive( 'core/edit-post', 'mobileGalleryWarning' );\n\t}, [] );\n\n\tif ( ! isMobileWarningActive || ! newImages ) {\n\t\treturn;\n\t}\n\n\tcreateWarningNotice(\n\t\t__(\n\t\t\t'If you want to edit the gallery you just added in the mobile app, to avoid losing any data please make sure you use version 18.2 of the app or above.'\n\t\t),\n\t\t{ type: 'snackbar', explicitDismiss: true }\n\t);\n\ttoggleFeature( 'core/edit-post', 'mobileGalleryWarning' );\n}\n"]}
@@ -41,8 +41,6 @@ var _gallery = _interopRequireDefault(require("./gallery"));
41
41
 
42
42
  var _constants = require("./constants");
43
43
 
44
- var _updateGalleryModal = _interopRequireDefault(require("./update-gallery-modal"));
45
-
46
44
  /**
47
45
  * External dependencies
48
46
  */
@@ -104,12 +102,10 @@ function GalleryEdit(props) {
104
102
  imageSizes,
105
103
  mediaUpload,
106
104
  getMedia,
107
- wasBlockJustInserted,
108
- __unstableGalleryWithImageBlocks
105
+ wasBlockJustInserted
109
106
  } = (0, _data.useSelect)(select => {
110
107
  const settings = select(_blockEditor.store).getSettings();
111
108
  return {
112
- __unstableGalleryWithImageBlocks: settings.__unstableGalleryWithImageBlocks,
113
109
  imageSizes: settings.imageSizes,
114
110
  mediaUpload: settings.mediaUpload,
115
111
  getMedia: select(_coreData.store).getMedia,
@@ -404,12 +400,6 @@ function GalleryEdit(props) {
404
400
  onFocus: onFocus,
405
401
  autoOpenMediaUpload: !hasImages && isSelected && wasBlockJustInserted
406
402
  });
407
- const [isUpdateOpen, setUpdateOpen] = (0, _element.useState)(false);
408
-
409
- const openUpdateModal = () => setUpdateOpen(true);
410
-
411
- const closeUpdateModal = () => setUpdateOpen(false);
412
-
413
403
  const blockProps = (0, _blockEditor.useBlockProps)();
414
404
 
415
405
  if (!hasImages) {
@@ -445,16 +435,7 @@ function GalleryEdit(props) {
445
435
  options: imageSizeOptions,
446
436
  onChange: updateImagesSize,
447
437
  hideCancelButton: true
448
- }))), _element.Platform.isWeb && __unstableGalleryWithImageBlocks && (0, _element.createElement)(_blockEditor.BlockControls, {
449
- group: "other"
450
- }, (0, _element.createElement)(_components.ToolbarButton, {
451
- onClick: openUpdateModal,
452
- title: (0, _i18n.__)('Update'),
453
- label: (0, _i18n.__)('Update to the new gallery format')
454
- }, (0, _i18n.__)('Update'))), _element.Platform.isWeb && isUpdateOpen && (0, _element.createElement)(_updateGalleryModal.default, {
455
- onClose: closeUpdateModal,
456
- clientId: clientId
457
- }), noticeUI, (0, _element.createElement)(_gallery.default, (0, _extends2.default)({}, props, {
438
+ }))), noticeUI, (0, _element.createElement)(_gallery.default, (0, _extends2.default)({}, props, {
458
439
  selectedImage: selectedImage,
459
440
  mediaPlaceholder: mediaPlaceholder,
460
441
  onMoveBackward: onMoveBackward,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","__unstableGalleryWithImageBlocks","settings","getSettings","coreStore","resizedImages","ids","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","mediaDetailsUrl","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","img","i","Math","min","selectCaption","newImage","newImageId","currentImage","currentImageCaption","caption","attachment","onSelectImages","map","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","name","updateImagesSize","newSizeSlug","updatedImages","url","OS","filesList","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","some","mediaPlaceholder","sharedIcon","title","instructions","undefined","isUpdateOpen","setUpdateOpen","openUpdateModal","closeUpdateModal","blockProps","imageSizeOptions","shouldShowSizeOptions","isWeb","withNotices","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tevery,\n\tfilter,\n\tfind,\n\tforEach,\n\tget,\n\tisEmpty,\n\tmap,\n\treduce,\n\tsome,\n\ttoString,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport UpdateGalleryModal from './update-gallery-modal';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\n\tconst {\n\t\timageSizes,\n\t\tmediaUpload,\n\t\tgetMedia,\n\t\twasBlockJustInserted,\n\t\t__unstableGalleryWithImageBlocks,\n\t} = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\treturn {\n\t\t\t__unstableGalleryWithImageBlocks:\n\t\t\t\tsettings.__unstableGalleryWithImageBlocks,\n\t\t\timageSizes: settings.imageSizes,\n\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn reduce(\n\t\t\t\tattributes.ids,\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = reduce(\n\t\t\t\t\t\timageSizes,\n\t\t\t\t\t\t( currentSizes, size ) => {\n\t\t\t\t\t\t\tconst defaultUrl = get( image, [\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\tconst mediaDetailsUrl = get( image, [\n\t\t\t\t\t\t\t\t'media_details',\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'source_url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: map( newAttrs.images, ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = filter( images, ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = toString( newImage.id );\n\t\tconst currentImage = find( images, { id: newImageId } );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = find( attachmentCaptions, {\n\t\t\tid: newImageId,\n\t\t} );\n\n\t\t// if the attachment caption is updated\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\treturn map(\n\t\t\tfilter( imageSizes, ( { slug } ) =>\n\t\t\t\tsome( resizedImages, ( sizes ) => sizes[ slug ] )\n\t\t\t),\n\t\t\t( { name, slug } ) => ( { value: slug, label: name } )\n\t\t);\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = map( images, ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url = get( resizedImages, [\n\t\t\t\tparseInt( image.id, 10 ),\n\t\t\t\tnewSizeSlug,\n\t\t\t] );\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\tevery( images, ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = map( images, ( { url } ) => getBlobByURL( url ) );\n\t\t\tforEach( images, ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// image_default_link_type in options.php\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst [ isUpdateOpen, setUpdateOpen ] = useState( false );\n\tconst openUpdateModal = () => setUpdateOpen( true );\n\tconst closeUpdateModal = () => setUpdateOpen( false );\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && ! isEmpty( imageSizeOptions );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Gallery settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ /* TODO: Remove platform condition when native conversion is ready */ }\n\t\t\t{ Platform.isWeb && __unstableGalleryWithImageBlocks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ openUpdateModal }\n\t\t\t\t\t\ttitle={ __( 'Update' ) }\n\t\t\t\t\t\tlabel={ __( 'Update to the new gallery format' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ Platform.isWeb && isUpdateOpen && (\n\t\t\t\t<UpdateGalleryModal\n\t\t\t\t\tonClose={ closeUpdateModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","coreStore","resizedImages","ids","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","mediaDetailsUrl","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","img","i","Math","min","selectCaption","newImage","newImageId","currentImage","currentImageCaption","caption","attachment","onSelectImages","map","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","name","updateImagesSize","newSizeSlug","updatedImages","url","OS","filesList","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","some","mediaPlaceholder","sharedIcon","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","withNotices","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tevery,\n\tfilter,\n\tfind,\n\tforEach,\n\tget,\n\tisEmpty,\n\tmap,\n\treduce,\n\tsome,\n\ttoString,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\n\tconst {\n\t\timageSizes,\n\t\tmediaUpload,\n\t\tgetMedia,\n\t\twasBlockJustInserted,\n\t} = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\treturn {\n\t\t\timageSizes: settings.imageSizes,\n\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn reduce(\n\t\t\t\tattributes.ids,\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = reduce(\n\t\t\t\t\t\timageSizes,\n\t\t\t\t\t\t( currentSizes, size ) => {\n\t\t\t\t\t\t\tconst defaultUrl = get( image, [\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\tconst mediaDetailsUrl = get( image, [\n\t\t\t\t\t\t\t\t'media_details',\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'source_url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: map( newAttrs.images, ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = filter( images, ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = toString( newImage.id );\n\t\tconst currentImage = find( images, { id: newImageId } );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = find( attachmentCaptions, {\n\t\t\tid: newImageId,\n\t\t} );\n\n\t\t// if the attachment caption is updated\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\treturn map(\n\t\t\tfilter( imageSizes, ( { slug } ) =>\n\t\t\t\tsome( resizedImages, ( sizes ) => sizes[ slug ] )\n\t\t\t),\n\t\t\t( { name, slug } ) => ( { value: slug, label: name } )\n\t\t);\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = map( images, ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url = get( resizedImages, [\n\t\t\t\tparseInt( image.id, 10 ),\n\t\t\t\tnewSizeSlug,\n\t\t\t] );\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\tevery( images, ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = map( images, ( { url } ) => getBlobByURL( url ) );\n\t\t\tforEach( images, ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// image_default_link_type in options.php\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && ! isEmpty( imageSizeOptions );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Gallery settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
@@ -333,6 +333,7 @@ function Navigation(_ref) {
333
333
  label: (0, _i18n.__)('Show icons')
334
334
  })), hasColorSettings && (0, _element.createElement)(_blockEditor.PanelColorSettings, {
335
335
  __experimentalHasMultipleOrigins: true,
336
+ __experimentalIsRenderedInSidebar: true,
336
337
  title: (0, _i18n.__)('Color'),
337
338
  initialOpen: false,
338
339
  colorSettings: [{
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","context","navigationArea","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","customAppender","CustomAppender","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","areaMenu","setAreaMenu","navigationAreaMenu","undefined","ref","setRef","postId","hasAlreadyRendered","RecursionProvider","innerBlocks","isInnerBlockSelected","select","getBlocks","hasSelectedInnerBlock","blockEditorStore","hasExistingNavItems","length","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isWithinUnassignedArea","isPlaceholderShown","setIsPlaceholderShown","isResponsiveMenuOpen","setResponsiveMenuVisibility","isNavigationMenuResolved","isNavigationMenuMissing","canSwitchNavigationMenu","hasResolvedNavigationMenus","navigationMenus","navigationMenu","navRef","isDraftNavigationMenu","status","listViewToolbarButton","listViewModal","isEntityAvailable","blockProps","class","slug","style","overlayClassnames","overlayStyles","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","current","subMenuElement","querySelector","startWithEmptyMenu","hasUnsavedBlocks","post","id","PlaceholderComponent","Placeholder","onClose","value","onChange","label"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { EntityProvider, useEntityProp } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tToolbarDropdownMenu,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useListViewModal from './use-list-view-modal';\nimport useNavigationMenu from '../use-navigation-menu';\nimport Placeholder from './placeholder';\nimport PlaceholderPreview from './placeholder/placeholder-preview';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\tcontext: { navigationArea },\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n\tcustomAppender: CustomAppender = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: { justifyContent, orientation = 'horizontal' } = {},\n\t} = attributes;\n\n\tconst [ areaMenu, setAreaMenu ] = useEntityProp(\n\t\t'root',\n\t\t'navigationArea',\n\t\t'navigation',\n\t\tnavigationArea\n\t);\n\n\tconst navigationAreaMenu = areaMenu === 0 ? undefined : areaMenu;\n\n\tconst ref = navigationArea ? navigationAreaMenu : attributes.ref;\n\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( postId );\n\t\t\t}\n\t\t},\n\t\t[ navigationArea ]\n\t);\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\n\n\tconst { innerBlocks, isInnerBlockSelected } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst hasExistingNavItems = !! innerBlocks.length;\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst isWithinUnassignedArea = navigationArea && ! ref;\n\n\tconst [ isPlaceholderShown, setIsPlaceholderShown ] = useState(\n\t\t! hasExistingNavItems || isWithinUnassignedArea\n\t);\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\n\n\tconst {\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tcanSwitchNavigationMenu,\n\t\thasResolvedNavigationMenus,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navRef = useRef();\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst { listViewToolbarButton, listViewModal } = useListViewModal(\n\t\tclientId\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\ttextColor?.slug\n\t\t\t) ]: !! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor?.slug\n\t\t\t) ]: !! backgroundColor?.slug,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\t// Hide the placeholder if an navigation menu entity has loaded.\n\tuseEffect( () => {\n\t\tsetIsPlaceholderShown( ! isEntityAvailable );\n\t}, [ isEntityAvailable ] );\n\n\t// If the ref no longer exists the reset the inner blocks\n\t// to provide a clean slate.\n\tuseEffect( () => {\n\t\tif ( ref === undefined && innerBlocks.length > 0 ) {\n\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t}\n\t\t// innerBlocks are intentionally not listed as deps. This function is only concerned\n\t\t// with the snapshot from the time when ref became undefined.\n\t}, [ clientId, ref, innerBlocks ] );\n\n\tconst startWithEmptyMenu = useCallback( () => {\n\t\tif ( navigationArea ) {\n\t\t\tsetAreaMenu( 0 );\n\t\t}\n\t\tsetAttributes( {\n\t\t\tref: undefined,\n\t\t} );\n\n\t\tsetIsPlaceholderShown( true );\n\t}, [ clientId ] );\n\n\t// If the block has inner blocks, but no menu id, this was an older\n\t// navigation block added before the block used a wp_navigation entity.\n\t// Either this block was saved in the content or inserted by a pattern.\n\t// Consider this 'unsaved'. Offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu.\n\tconst hasUnsavedBlocks =\n\t\thasExistingNavItems && ! isEntityAvailable && ! isWithinUnassignedArea;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<UnsavedInnerBlocks\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tblocks={ innerBlocks }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\thasSavedUnsavedInnerBlocks={ hasSavedUnsavedInnerBlocks }\n\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\tsetRef( post.id );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button onClick={ startWithEmptyMenu } variant=\"link\">\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\t\tlabel={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ttext={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tonSelect={ ( { id } ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetRef( id );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonCreateNew={ startWithEmptyMenu }\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</ToolbarDropdownMenu>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolbarGroup>{ listViewToolbarButton }</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t\t{ listViewModal }\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ ! attributes.openSubmenusOnClick && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tlabel={ __( 'Show icons' ) }\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) }\n\t\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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</PanelColorSettings>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\tonDelete={ () => {\n\t\t\t\t\t\t\t\tif ( navigationArea ) {\n\t\t\t\t\t\t\t\t\tsetAreaMenu( 0 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tref: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\t\t\t\t<nav { ...blockProps }>\n\t\t\t\t\t{ isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderComponent\n\t\t\t\t\t\t\tonFinish={ ( post ) => {\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( false );\n\t\t\t\t\t\t\t\tif ( post ) {\n\t\t\t\t\t\t\t\t\tsetRef( post.id );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tcanSwitchNavigationMenu={ canSwitchNavigationMenu }\n\t\t\t\t\t\t\thasResolvedNavigationMenus={\n\t\t\t\t\t\t\t\thasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEntityAvailable && ! isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isPlaceholderShown && (\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tisVisible={ ! isPlaceholderShown }\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tappender={ CustomAppender }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t) }\n\t\t\t\t</nav>\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","context","navigationArea","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","customAppender","CustomAppender","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","areaMenu","setAreaMenu","navigationAreaMenu","undefined","ref","setRef","postId","hasAlreadyRendered","RecursionProvider","innerBlocks","isInnerBlockSelected","select","getBlocks","hasSelectedInnerBlock","blockEditorStore","hasExistingNavItems","length","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isWithinUnassignedArea","isPlaceholderShown","setIsPlaceholderShown","isResponsiveMenuOpen","setResponsiveMenuVisibility","isNavigationMenuResolved","isNavigationMenuMissing","canSwitchNavigationMenu","hasResolvedNavigationMenus","navigationMenus","navigationMenu","navRef","isDraftNavigationMenu","status","listViewToolbarButton","listViewModal","isEntityAvailable","blockProps","class","slug","style","overlayClassnames","overlayStyles","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","current","subMenuElement","querySelector","startWithEmptyMenu","hasUnsavedBlocks","post","id","PlaceholderComponent","Placeholder","onClose","value","onChange","label"],"mappings":";;;;;;;;;AAQA;;AALA;;AAYA;;AAYA;;AACA;;AACA;;AASA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AApDA;AACA;AACA;;AAGA;AACA;AACA;;AAiCA;AACA;AACA;AAYA,SAASA,gBAAT,CAA2BC,IAA3B,EAAkC;AACjC,SAAOA,IAAI,CAACC,aAAL,CAAmBC,WAAnB,CAA+BH,gBAA/B,CAAiDC,IAAjD,CAAP;AACA;;AAED,SAASG,YAAT,CAAuBC,sBAAvB,EAA+CC,QAA/C,EAAyDC,aAAzD,EAAyE;AACxE,MAAK,CAAEF,sBAAP,EAAgC;AAC/B;AACA;;AACDC,EAAAA,QAAQ,CAAEN,gBAAgB,CAAEK,sBAAF,CAAhB,CAA2CG,KAA7C,CAAR;AAEA,MAAIC,mBAAmB,GAAGJ,sBAA1B;AACA,MAAIK,eAAe,GAAGV,gBAAgB,CAAES,mBAAF,CAAhB,CACpBC,eADF;;AAEA,SACCA,eAAe,KAAK,kBAApB,IACAD,mBAAmB,CAACE,UADpB,IAEAF,mBAAmB,CAACE,UAApB,CAA+BC,QAA/B,KACCH,mBAAmB,CAACE,UAApB,CAA+BE,YAJjC,EAKE;AACDJ,IAAAA,mBAAmB,GAAGA,mBAAmB,CAACE,UAA1C;AACAD,IAAAA,eAAe,GAAGV,gBAAgB,CAAES,mBAAF,CAAhB,CAChBC,eADF;AAEA;;AAEDH,EAAAA,aAAa,CAAEG,eAAF,CAAb;AACA;;AAED,SAASI,UAAT,OAsBI;AAAA,MAtBiB;AACpBC,IAAAA,UADoB;AAEpBC,IAAAA,aAFoB;AAGpBC,IAAAA,QAHoB;AAIpBC,IAAAA,UAJoB;AAKpBC,IAAAA,SALoB;AAMpBT,IAAAA,eANoB;AAOpBU,IAAAA,kBAPoB;AAQpBC,IAAAA,SARoB;AASpBC,IAAAA,YAToB;AAUpBC,IAAAA,sBAVoB;AAWpBC,IAAAA,yBAXoB;AAYpBC,IAAAA,gBAZoB;AAapBC,IAAAA,mBAboB;AAcpBC,IAAAA,OAAO,EAAE;AAAEC,MAAAA;AAAF,KAdW;AAgBpB;AACA;AACAC,IAAAA,0BAA0B,GAAG,IAlBT;AAmBpBC,IAAAA,gBAAgB,GAAG,IAnBC;AAoBpBC,IAAAA,iBAAiB,EAAEC,iBAAiB,GAAG,IApBnB;AAqBpBC,IAAAA,cAAc,EAAEC,cAAc,GAAG;AArBb,GAsBjB;AACH,QAAM;AACLC,IAAAA,mBADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,cAAF;AAAkBC,MAAAA,WAAW,GAAG;AAAhC,QAAiD;AAJpD,MAKFzB,UALJ;AAOA,QAAM,CAAE0B,QAAF,EAAYC,WAAZ,IAA4B,6BACjC,MADiC,EAEjC,gBAFiC,EAGjC,YAHiC,EAIjCd,cAJiC,CAAlC;AAOA,QAAMe,kBAAkB,GAAGF,QAAQ,KAAK,CAAb,GAAiBG,SAAjB,GAA6BH,QAAxD;AAEA,QAAMI,GAAG,GAAGjB,cAAc,GAAGe,kBAAH,GAAwB5B,UAAU,CAAC8B,GAA7D;AAEA,QAAMC,MAAM,GAAG,0BACZC,MAAF,IAAc;AACb/B,IAAAA,aAAa,CAAE;AAAE6B,MAAAA,GAAG,EAAEE;AAAP,KAAF,CAAb;;AACA,QAAKnB,cAAL,EAAsB;AACrBc,MAAAA,WAAW,CAAEK,MAAF,CAAX;AACA;AACD,GANa,EAOd,CAAEnB,cAAF,CAPc,CAAf;AAUA,QAAM,CAAEoB,kBAAF,EAAsBC,iBAAtB,IAA4C,sDAChD,kBAAkBJ,GAAK,EADyB,CAAlD;AAIA,QAAM;AAAEK,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAwC,qBAC3CC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,SAAF;AAAaC,MAAAA;AAAb,QAAuCF,MAAM,CAClDG,kBADkD,CAAnD;AAGA,WAAO;AACNL,MAAAA,WAAW,EAAEG,SAAS,CAAEpC,QAAF,CADhB;AAENkC,MAAAA,oBAAoB,EAAEG,qBAAqB,CAAErC,QAAF,EAAY,IAAZ;AAFrC,KAAP;AAIA,GAT4C,EAU7C,CAAEA,QAAF,CAV6C,CAA9C;AAYA,QAAMuC,mBAAmB,GAAG,CAAC,CAAEN,WAAW,CAACO,MAA3C;AACA,QAAM;AACLC,IAAAA,kBADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA;AAHK,MAIF,uBAAaL,kBAAb,CAJJ;AAMA,QAAM,CACLM,0BADK,EAELC,6BAFK,IAGF,uBAAU,KAAV,CAHJ;AAKA,QAAMC,sBAAsB,GAAGnC,cAAc,IAAI,CAAEiB,GAAnD;AAEA,QAAM,CAAEmB,kBAAF,EAAsBC,qBAAtB,IAAgD,uBACrD,CAAET,mBAAF,IAAyBO,sBAD4B,CAAtD;AAIA,QAAM,CAAEG,oBAAF,EAAwBC,2BAAxB,IAAwD,uBAC7D,KAD6D,CAA9D;AAIA,QAAM;AACLC,IAAAA,wBADK;AAELC,IAAAA,uBAFK;AAGLC,IAAAA,uBAHK;AAILC,IAAAA,0BAJK;AAKLC,IAAAA,eALK;AAMLC,IAAAA;AANK,MAOF,gCAAmB5B,GAAnB,CAPJ;AASA,QAAM6B,MAAM,GAAG,sBAAf;AACA,QAAMC,qBAAqB,GAAG,CAAAF,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEG,MAAhB,MAA2B,OAAzD;AAEA,QAAM;AAAEC,IAAAA,qBAAF;AAAyBC,IAAAA;AAAzB,MAA2C,+BAChD7D,QADgD,CAAjD;AAIA,QAAM8D,iBAAiB,GACtB,CAAEV,uBAAF,IAA6BD,wBAD9B;AAGA,QAAMY,UAAU,GAAG,gCAAe;AACjCnC,IAAAA,GAAG,EAAE6B,MAD4B;AAEjCvD,IAAAA,SAAS,EAAE,yBAAYA,SAAZ,EAAuB;AACjC,+BAAyBoB,cAAc,KAAK,OADX;AAEjC,uCAAiCA,cAAc,KAAK,eAFnB;AAGjC,uBAAiB,YAAYH,WAHI;AAIjC,wBAAkB,CAAC,CAAEf,SAAS,CAACb,KAAb,IAAsB,CAAC,EAAEa,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAE4D,KAAb,CAJR;AAKjC,OAAE,oCACD,OADC,EAED5D,SAFC,aAEDA,SAFC,uBAEDA,SAAS,CAAE6D,IAFV,CAAF,GAGK,CAAC,EAAE7D,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAE6D,IAAb,CAR2B;AASjC,wBAAkB,CAAC,CAAExE,eAAe,CAACF,KAAnB,IAA4BE,eAAe,CAACuE,KAT7B;AAUjC,OAAE,oCACD,kBADC,EAEDvE,eAFC,aAEDA,eAFC,uBAEDA,eAAe,CAAEwE,IAFhB,CAAF,GAGK,CAAC,EAAExE,eAAF,aAAEA,eAAF,eAAEA,eAAe,CAAEwE,IAAnB;AAb2B,KAAvB,CAFsB;AAiBjCC,IAAAA,KAAK,EAAE;AACN3E,MAAAA,KAAK,EAAE,EAAEa,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAE6D,IAAb,MAAqB7D,SAArB,aAAqBA,SAArB,uBAAqBA,SAAS,CAAEb,KAAhC,CADD;AAENE,MAAAA,eAAe,EAAE,EAAEA,eAAF,aAAEA,eAAF,eAAEA,eAAe,CAAEwE,IAAnB,MAA2BxE,eAA3B,aAA2BA,eAA3B,uBAA2BA,eAAe,CAAEF,KAA5C;AAFX;AAjB0B,GAAf,CAAnB;AAuBA,QAAM4E,iBAAiB,GAAG,yBAAY;AACrC,sBACC,CAAC,CAAE3D,gBAAgB,CAACjB,KAApB,IAA6B,CAAC,EAAEiB,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEwD,KAApB,CAFM;AAGrC,KAAE,oCACD,OADC,EAEDxD,gBAFC,aAEDA,gBAFC,uBAEDA,gBAAgB,CAAEyD,IAFjB,CAAF,GAGK,CAAC,EAAEzD,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEyD,IAApB,CAN+B;AAOrC,sBACC,CAAC,CAAE3D,sBAAsB,CAACf,KAA1B,KAAmCe,sBAAnC,aAAmCA,sBAAnC,uBAAmCA,sBAAsB,CAAE0D,KAA3D,CARoC;AASrC,KAAE,oCACD,kBADC,EAED1D,sBAFC,aAEDA,sBAFC,uBAEDA,sBAAsB,CAAE2D,IAFvB,CAAF,GAGK,CAAC,EAAE3D,sBAAF,aAAEA,sBAAF,eAAEA,sBAAsB,CAAE2D,IAA1B;AAZ+B,GAAZ,CAA1B;AAeA,QAAMG,aAAa,GAAG;AACrB7E,IAAAA,KAAK,EAAE,EAAEiB,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEyD,IAApB,MAA4BzD,gBAA5B,aAA4BA,gBAA5B,uBAA4BA,gBAAgB,CAAEjB,KAA9C,CADc;AAErBE,IAAAA,eAAe,EACd,EAAEa,sBAAF,aAAEA,sBAAF,eAAEA,sBAAsB,CAAE2D,IAA1B,MACA3D,sBADA,aACAA,sBADA,uBACAA,sBAAsB,CAAEf,KADxB,KAEAe,sBAAsB,CAACf;AALH,GAAtB,CA5HG,CAoIH;;AACA,QAAM8E,sBAAsB,GAAGC,kBAASC,EAAT,KAAgB,KAA/C;AAEA,QAAM,CAAEC,uBAAF,EAA2BC,0BAA3B,IAA0D,wBAAhE;AACA,QAAM,CAAEC,aAAF,EAAiBC,gBAAjB,IAAsC,wBAA5C;AACA,QAAM,CACLC,8BADK,EAELC,iCAFK,IAGF,wBAHJ;AAIA,QAAM,CAAEC,oBAAF,EAAwBC,uBAAxB,IAAoD,wBAA1D,CA7IG,CA+IH;AACA;;AACA,0BAAW,MAAM;AAChB,QAAKxD,WAAL,EAAmB;AAClBoB,MAAAA,uCAAuC;;AACvC5C,MAAAA,aAAa,CAAE;AAAEwB,QAAAA;AAAF,OAAF,CAAb;AACA;AACD,GALD,EAKG,CAAEA,WAAF,CALH;AAOA,0BAAW,MAAM;AAChB,QAAK,CAAE8C,sBAAP,EAAgC;AAC/B;AACA;;AACDlF,IAAAA,YAAY,CACXsE,MAAM,CAACuB,OADI,EAEXL,gBAFW,EAGXF,0BAHW,CAAZ;AAKA,UAAMQ,cAAc,GAAGxB,MAAM,CAACuB,OAAP,CAAeE,aAAf,CACtB,uEADsB,CAAvB;;AAGA,QAAKD,cAAL,EAAsB;AACrB9F,MAAAA,YAAY,CACX8F,cADW,EAEXF,uBAFW,EAGXF,iCAHW,CAAZ;AAKA;AACD,GAnBD,EAxJG,CA6KH;;AACA,0BAAW,MAAM;AAChB7B,IAAAA,qBAAqB,CAAE,CAAEc,iBAAJ,CAArB;AACA,GAFD,EAEG,CAAEA,iBAAF,CAFH,EA9KG,CAkLH;AACA;;AACA,0BAAW,MAAM;AAChB,QAAKlC,GAAG,KAAKD,SAAR,IAAqBM,WAAW,CAACO,MAAZ,GAAqB,CAA/C,EAAmD;AAClDC,MAAAA,kBAAkB,CAAEzC,QAAF,EAAY,EAAZ,CAAlB;AACA,KAHe,CAIhB;AACA;;AACA,GAND,EAMG,CAAEA,QAAF,EAAY4B,GAAZ,EAAiBK,WAAjB,CANH;AAQA,QAAMkD,kBAAkB,GAAG,0BAAa,MAAM;AAC7C,QAAKxE,cAAL,EAAsB;AACrBc,MAAAA,WAAW,CAAE,CAAF,CAAX;AACA;;AACD1B,IAAAA,aAAa,CAAE;AACd6B,MAAAA,GAAG,EAAED;AADS,KAAF,CAAb;AAIAqB,IAAAA,qBAAqB,CAAE,IAAF,CAArB;AACA,GAT0B,EASxB,CAAEhD,QAAF,CATwB,CAA3B,CA5LG,CAuMH;AACA;AACA;AACA;AACA;;AACA,QAAMoF,gBAAgB,GACrB7C,mBAAmB,IAAI,CAAEuB,iBAAzB,IAA8C,CAAEhB,sBADjD;;AAEA,MAAKsC,gBAAL,EAAwB;AACvB,WACC,4BAAC,2BAAD;AACC,MAAA,UAAU,EAAGrB,UADd;AAEC,MAAA,MAAM,EAAG9B,WAFV;AAGC,MAAA,QAAQ,EAAGjC,QAHZ;AAIC,MAAA,eAAe,EAAGuD,eAJnB;AAKC,MAAA,YAAY,EAAGtD,UAAU,IAAIiC,oBAL9B;AAMC,MAAA,0BAA0B,EAAGU,0BAN9B;AAOC,MAAA,MAAM,EAAKyC,IAAF,IAAY;AACpBxC,QAAAA,6BAA6B,CAAE,IAAF,CAA7B,CADoB,CAEpB;;AACAhB,QAAAA,MAAM,CAAEwD,IAAI,CAACC,EAAP,CAAN;AACA;AAXF,MADD;AAeA,GA9NE,CAgOH;AACA;;;AACA,MAAK1D,GAAG,IAAIwB,uBAAZ,EAAsC;AACrC,WACC,mCAAUW,UAAV,EACC,4BAAC,oBAAD,QACG,cACD,sDADC,CADH,EAIC,4BAAC,kBAAD;AAAQ,MAAA,OAAO,EAAGoB,kBAAlB;AAAuC,MAAA,OAAO,EAAC;AAA/C,OACG,cAAI,oBAAJ,CADH,CAJD,CADD,CADD;AAYA;;AAED,MAAKrB,iBAAiB,IAAI/B,kBAA1B,EAA+C;AAC9C,WACC,mCAAUgC,UAAV,EACC,4BAAC,oBAAD,QACG,cAAI,yCAAJ,CADH,CADD,CADD;AAOA;;AAED,QAAMwB,oBAAoB,GAAGxE,iBAAiB,GAC3CA,iBAD2C,GAE3CyE,oBAFH;AAIA,SACC,4BAAC,wBAAD;AAAgB,IAAA,IAAI,EAAC,UAArB;AAAgC,IAAA,IAAI,EAAC,eAArC;AAAqD,IAAA,EAAE,EAAG5D;AAA1D,KACC,4BAAC,iBAAD,QACC,4BAAC,0BAAD,QACG,CAAE8B,qBAAF,IAA2BI,iBAA3B,IACD,4BAAC,wBAAD,QACC,4BAAC,+BAAD;AACC,IAAA,KAAK,EAAG,cAAI,aAAJ,CADT;AAEC,IAAA,IAAI,EAAG,cAAI,aAAJ,CAFR;AAGC,IAAA,IAAI,EAAG;AAHR,KAKG;AAAA,QAAE;AAAE2B,MAAAA;AAAF,KAAF;AAAA,WACD,4BAAC,+BAAD;AACC,MAAA,QAAQ,EAAG,SAAc;AAAA,YAAZ;AAAEH,UAAAA;AAAF,SAAY;AACxBzD,QAAAA,MAAM,CAAEyD,EAAF,CAAN;AACAG,QAAAA,OAAO;AACP,OAJF;AAKC,MAAA,WAAW,EAAGN;AALf,MADC;AAAA,GALH,CADD,CAFF,EAoBC,4BAAC,wBAAD,QAAgBvB,qBAAhB,CApBD,CADD,EAuBGC,aAvBH,EAwBC,4BAAC,8BAAD,QACGjD,0BAA0B,IAC3B,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,SAAJ;AAAnB,KACC,wCAAM,cAAI,cAAJ,CAAN,CADD,EAEC,4BAAC,4CAAD;AACC,IAAA,KAAK,EAAG,cAAI,wBAAJ,CADT;AAEC,IAAA,KAAK,EAAGO,WAFT;AAGC,IAAA,IAAI,EAAG,cACN,qEADM,CAHR;AAMC,IAAA,QAAQ,EAAKuE,KAAF,IACV3F,aAAa,CAAE;AAAEoB,MAAAA,WAAW,EAAEuE;AAAf,KAAF,CAPf;AASC,IAAA,OAAO,MATR;AAUC,IAAA,mBAAmB;AAVpB,KAYC,4BAAC,kDAAD;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,KAAK,EAAG,cAAI,KAAJ;AAFT,IAZD,EAgBC,4BAAC,kDAAD;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,KAAK,EAAG,cAAI,QAAJ;AAFT,IAhBD,EAoBC,4BAAC,kDAAD;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,KAAK,EAAG,cAAI,QAAJ;AAFT,IApBD,CAFD,EA2BC,wCAAM,cAAI,UAAJ,CAAN,CA3BD,EA4BC,4BAAC,yBAAD;AACC,IAAA,OAAO,EAAGxE,mBADX;AAEC,IAAA,QAAQ,EAAKwE,KAAF,IAAa;AACvB3F,MAAAA,aAAa,CAAE;AACdmB,QAAAA,mBAAmB,EAAEwE;AADP,OAAF,CAAb;AAGA,KANF;AAOC,IAAA,KAAK,EAAG,cAAI,eAAJ;AAPT,IA5BD,EAqCG,CAAE5F,UAAU,CAACoB,mBAAb,IACD,4BAAC,yBAAD;AACC,IAAA,OAAO,EAAGE,eADX;AAEC,IAAA,QAAQ,EAAKsE,KAAF,IAAa;AACvB3F,MAAAA,aAAa,CAAE;AACdqB,QAAAA,eAAe,EAAEsE;AADH,OAAF,CAAb;AAGA,KANF;AAOC,IAAA,KAAK,EAAG,cAAI,YAAJ;AAPT,IAtCF,CAFF,EAoDG7E,gBAAgB,IACjB,4BAAC,+BAAD;AACC,IAAA,gCAAgC,MADjC;AAEC,IAAA,iCAAiC,MAFlC;AAGC,IAAA,KAAK,EAAG,cAAI,OAAJ,CAHT;AAIC,IAAA,WAAW,EAAG,KAJf;AAKC,IAAA,aAAa,EAAG,CACf;AACC6E,MAAAA,KAAK,EAAEtF,SAAS,CAACb,KADlB;AAECoG,MAAAA,QAAQ,EAAEtF,YAFX;AAGCuF,MAAAA,KAAK,EAAE,cAAI,MAAJ;AAHR,KADe,EAMf;AACCF,MAAAA,KAAK,EAAEjG,eAAe,CAACF,KADxB;AAECoG,MAAAA,QAAQ,EAAExF,kBAFX;AAGCyF,MAAAA,KAAK,EAAE,cAAI,YAAJ;AAHR,KANe,EAWf;AACCF,MAAAA,KAAK,EAAElF,gBAAgB,CAACjB,KADzB;AAECoG,MAAAA,QAAQ,EAAElF,mBAFX;AAGCmF,MAAAA,KAAK,EAAE,cAAI,wBAAJ;AAHR,KAXe,EAgBf;AACCF,MAAAA,KAAK,EAAEpF,sBAAsB,CAACf,KAD/B;AAECoG,MAAAA,QAAQ,EAAEpF,yBAFX;AAGCqF,MAAAA,KAAK,EAAE,cAAI,8BAAJ;AAHR,KAhBe;AALjB,KA4BGvB,sBAAsB,IACvB,qDACC,4BAAC,4BAAD;AACC,IAAA,eAAe,EACdG,uBAFF;AAIC,IAAA,SAAS,EAAGE;AAJb,IADD,EAOC,4BAAC,4BAAD;AACC,IAAA,eAAe,EACdE,8BAFF;AAIC,IAAA,SAAS,EAAGE;AAJb,IAPD,CA7BF,CArDF,CAxBD,EA4HGhB,iBAAiB,IAClB,4BAAC,8BAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACC,4BAAC,kCAAD,OADD,EAEC,4BAAC,oCAAD;AACC,IAAA,QAAQ,EAAG,MAAM;AAChB,UAAKnD,cAAL,EAAsB;AACrBc,QAAAA,WAAW,CAAE,CAAF,CAAX;AACA;;AACD1B,MAAAA,aAAa,CAAE;AACd6B,QAAAA,GAAG,EAAED;AADS,OAAF,CAAb;AAGAqB,MAAAA,qBAAqB,CAAE,IAAF,CAArB;AACA;AATF,IAFD,CA7HF,EA4IC,mCAAUe,UAAV,EACGhB,kBAAkB,IACnB,4BAAC,oBAAD;AACC,IAAA,QAAQ,EAAKsC,IAAF,IAAY;AACtBrC,MAAAA,qBAAqB,CAAE,KAAF,CAArB;;AACA,UAAKqC,IAAL,EAAY;AACXxD,QAAAA,MAAM,CAAEwD,IAAI,CAACC,EAAP,CAAN;AACA;;AACD5C,MAAAA,WAAW,CAAE1C,QAAF,CAAX;AACA,KAPF;AAQC,IAAA,uBAAuB,EAAGqD,uBAR3B;AASC,IAAA,0BAA0B,EACzBC,0BAVF;AAYC,IAAA,QAAQ,EAAGtD;AAZZ,IAFF,EAiBG,CAAE8D,iBAAF,IAAuB,CAAEf,kBAAzB,IACD,4BAAC,2BAAD;AAAoB,IAAA,SAAS;AAA7B,IAlBF,EAoBG,CAAEA,kBAAF,IACD,4BAAC,0BAAD;AACC,IAAA,EAAE,EAAG/C,QADN;AAEC,IAAA,QAAQ,EAAGkD,2BAFZ;AAGC,IAAA,MAAM,EAAGD,oBAHV;AAIC,IAAA,YAAY,EAAG,YAAY9B,WAJ5B;AAKC,IAAA,iBAAiB,EAAG,aAAaA,WALlC;AAMC,IAAA,UAAU,EAAGgD,iBANd;AAOC,IAAA,MAAM,EAAGC;AAPV,KASGN,iBAAiB,IAClB,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAG,CAAEf,kBADf;AAEC,IAAA,QAAQ,EAAG/C,QAFZ;AAGC,IAAA,QAAQ,EAAGiB,cAHZ;AAIC,IAAA,oBAAoB,EACnB,CAAC,CAAEF,iBALL;AAOC,IAAA,WAAW,EAAGQ;AAPf,IAVF,CArBF,CA5ID,CADD,CADD;AA6LA;;eAEc,6BACd;AAAEnB,EAAAA,SAAS,EAAE;AAAb,CADc,EAEd;AAAEX,EAAAA,eAAe,EAAE;AAAnB,CAFc,EAGd;AAAEa,EAAAA,sBAAsB,EAAE;AAA1B,CAHc,EAId;AAAEE,EAAAA,gBAAgB,EAAE;AAApB,CAJc,EAKZX,UALY,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { EntityProvider, useEntityProp } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tToolbarDropdownMenu,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useListViewModal from './use-list-view-modal';\nimport useNavigationMenu from '../use-navigation-menu';\nimport Placeholder from './placeholder';\nimport PlaceholderPreview from './placeholder/placeholder-preview';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\tcontext: { navigationArea },\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n\tcustomAppender: CustomAppender = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: { justifyContent, orientation = 'horizontal' } = {},\n\t} = attributes;\n\n\tconst [ areaMenu, setAreaMenu ] = useEntityProp(\n\t\t'root',\n\t\t'navigationArea',\n\t\t'navigation',\n\t\tnavigationArea\n\t);\n\n\tconst navigationAreaMenu = areaMenu === 0 ? undefined : areaMenu;\n\n\tconst ref = navigationArea ? navigationAreaMenu : attributes.ref;\n\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( postId );\n\t\t\t}\n\t\t},\n\t\t[ navigationArea ]\n\t);\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\n\n\tconst { innerBlocks, isInnerBlockSelected } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst hasExistingNavItems = !! innerBlocks.length;\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst isWithinUnassignedArea = navigationArea && ! ref;\n\n\tconst [ isPlaceholderShown, setIsPlaceholderShown ] = useState(\n\t\t! hasExistingNavItems || isWithinUnassignedArea\n\t);\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\n\n\tconst {\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tcanSwitchNavigationMenu,\n\t\thasResolvedNavigationMenus,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navRef = useRef();\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst { listViewToolbarButton, listViewModal } = useListViewModal(\n\t\tclientId\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\ttextColor?.slug\n\t\t\t) ]: !! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor?.slug\n\t\t\t) ]: !! backgroundColor?.slug,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\t// Hide the placeholder if an navigation menu entity has loaded.\n\tuseEffect( () => {\n\t\tsetIsPlaceholderShown( ! isEntityAvailable );\n\t}, [ isEntityAvailable ] );\n\n\t// If the ref no longer exists the reset the inner blocks\n\t// to provide a clean slate.\n\tuseEffect( () => {\n\t\tif ( ref === undefined && innerBlocks.length > 0 ) {\n\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t}\n\t\t// innerBlocks are intentionally not listed as deps. This function is only concerned\n\t\t// with the snapshot from the time when ref became undefined.\n\t}, [ clientId, ref, innerBlocks ] );\n\n\tconst startWithEmptyMenu = useCallback( () => {\n\t\tif ( navigationArea ) {\n\t\t\tsetAreaMenu( 0 );\n\t\t}\n\t\tsetAttributes( {\n\t\t\tref: undefined,\n\t\t} );\n\n\t\tsetIsPlaceholderShown( true );\n\t}, [ clientId ] );\n\n\t// If the block has inner blocks, but no menu id, this was an older\n\t// navigation block added before the block used a wp_navigation entity.\n\t// Either this block was saved in the content or inserted by a pattern.\n\t// Consider this 'unsaved'. Offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu.\n\tconst hasUnsavedBlocks =\n\t\thasExistingNavItems && ! isEntityAvailable && ! isWithinUnassignedArea;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<UnsavedInnerBlocks\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tblocks={ innerBlocks }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\thasSavedUnsavedInnerBlocks={ hasSavedUnsavedInnerBlocks }\n\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\tsetRef( post.id );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button onClick={ startWithEmptyMenu } variant=\"link\">\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\t\tlabel={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ttext={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tonSelect={ ( { id } ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetRef( id );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonCreateNew={ startWithEmptyMenu }\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</ToolbarDropdownMenu>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolbarGroup>{ listViewToolbarButton }</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t\t{ listViewModal }\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ ! attributes.openSubmenusOnClick && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tlabel={ __( 'Show icons' ) }\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) }\n\t\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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</PanelColorSettings>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\tonDelete={ () => {\n\t\t\t\t\t\t\t\tif ( navigationArea ) {\n\t\t\t\t\t\t\t\t\tsetAreaMenu( 0 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tref: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\t\t\t\t<nav { ...blockProps }>\n\t\t\t\t\t{ isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderComponent\n\t\t\t\t\t\t\tonFinish={ ( post ) => {\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( false );\n\t\t\t\t\t\t\t\tif ( post ) {\n\t\t\t\t\t\t\t\t\tsetRef( post.id );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tcanSwitchNavigationMenu={ canSwitchNavigationMenu }\n\t\t\t\t\t\t\thasResolvedNavigationMenus={\n\t\t\t\t\t\t\t\thasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEntityAvailable && ! isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isPlaceholderShown && (\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tisVisible={ ! isPlaceholderShown }\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tappender={ CustomAppender }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t) }\n\t\t\t\t</nav>\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
@@ -84,10 +84,6 @@ function NavigationInnerBlocks(_ref) {
84
84
  __experimentalDirectInsert: shouldDirectInsert,
85
85
  orientation,
86
86
  renderAppender: CustomAppender || appender,
87
- // Ensure block toolbar is not too far removed from item
88
- // being edited when in vertical mode.
89
- // see: https://github.com/WordPress/gutenberg/pull/34615.
90
- __experimentalCaptureToolbars: orientation !== 'vertical',
91
87
  // Template lock set to false here so that the Nav
92
88
  // Block on the experimental menus screen does not
93
89
  // inherit templateLock={ 'all' }.