@wordpress/block-library 6.0.25 → 6.0.28

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 (123) hide show
  1. package/build/gallery/constants.js +5 -1
  2. package/build/gallery/constants.js.map +1 -1
  3. package/build/gallery/transforms.js +8 -2
  4. package/build/gallery/transforms.js.map +1 -1
  5. package/build/gallery/utils.js +4 -3
  6. package/build/gallery/utils.js.map +1 -1
  7. package/build/heading/edit.js +14 -2
  8. package/build/heading/edit.js.map +1 -1
  9. package/build/page-list/edit.js +37 -10
  10. package/build/page-list/edit.js.map +1 -1
  11. package/build/post-featured-image/dimension-controls.js +50 -30
  12. package/build/post-featured-image/dimension-controls.js.map +1 -1
  13. package/build/post-featured-image/edit.js +4 -2
  14. package/build/post-featured-image/edit.js.map +1 -1
  15. package/build/site-logo/edit.js +0 -25
  16. package/build/site-logo/edit.js.map +1 -1
  17. package/build/social-links/deprecated.js +1 -62
  18. package/build/social-links/deprecated.js.map +1 -1
  19. package/build/social-links/edit.js +1 -1
  20. package/build/social-links/edit.js.map +1 -1
  21. package/build/spacer/controls.js +111 -0
  22. package/build/spacer/controls.js.map +1 -0
  23. package/build/spacer/controls.native.js +95 -0
  24. package/build/spacer/controls.native.js.map +1 -0
  25. package/build/spacer/deprecated.js +53 -0
  26. package/build/spacer/deprecated.js.map +1 -0
  27. package/build/spacer/edit.js +111 -82
  28. package/build/spacer/edit.js.map +1 -1
  29. package/build/spacer/edit.native.js +76 -0
  30. package/build/spacer/edit.native.js.map +1 -0
  31. package/build/spacer/index.js +7 -4
  32. package/build/spacer/index.js.map +1 -1
  33. package/build/spacer/save.js +6 -3
  34. package/build/spacer/save.js.map +1 -1
  35. package/build/table/deprecated.js +1 -1
  36. package/build/table/deprecated.js.map +1 -1
  37. package/build-module/gallery/constants.js +2 -0
  38. package/build-module/gallery/constants.js.map +1 -1
  39. package/build-module/gallery/transforms.js +8 -2
  40. package/build-module/gallery/transforms.js.map +1 -1
  41. package/build-module/gallery/utils.js +5 -4
  42. package/build-module/gallery/utils.js.map +1 -1
  43. package/build-module/heading/edit.js +15 -3
  44. package/build-module/heading/edit.js.map +1 -1
  45. package/build-module/page-list/edit.js +38 -11
  46. package/build-module/page-list/edit.js.map +1 -1
  47. package/build-module/post-featured-image/dimension-controls.js +52 -29
  48. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  49. package/build-module/post-featured-image/edit.js +4 -2
  50. package/build-module/post-featured-image/edit.js.map +1 -1
  51. package/build-module/site-logo/edit.js +0 -25
  52. package/build-module/site-logo/edit.js.map +1 -1
  53. package/build-module/social-links/deprecated.js +1 -62
  54. package/build-module/social-links/deprecated.js.map +1 -1
  55. package/build-module/social-links/edit.js +1 -1
  56. package/build-module/social-links/edit.js.map +1 -1
  57. package/build-module/spacer/controls.js +101 -0
  58. package/build-module/spacer/controls.js.map +1 -0
  59. package/build-module/spacer/controls.native.js +82 -0
  60. package/build-module/spacer/controls.native.js.map +1 -0
  61. package/build-module/spacer/deprecated.js +44 -0
  62. package/build-module/spacer/deprecated.js.map +1 -0
  63. package/build-module/spacer/edit.js +108 -82
  64. package/build-module/spacer/edit.js.map +1 -1
  65. package/build-module/spacer/edit.native.js +61 -0
  66. package/build-module/spacer/edit.native.js.map +1 -0
  67. package/build-module/spacer/index.js +6 -4
  68. package/build-module/spacer/index.js.map +1 -1
  69. package/build-module/spacer/save.js +6 -3
  70. package/build-module/spacer/save.js.map +1 -1
  71. package/build-module/table/deprecated.js +1 -1
  72. package/build-module/table/deprecated.js.map +1 -1
  73. package/build-style/common-rtl.css +8 -0
  74. package/build-style/common.css +8 -0
  75. package/build-style/cover/style-rtl.css +67 -5
  76. package/build-style/cover/style.css +67 -5
  77. package/build-style/editor-rtl.css +8 -7
  78. package/build-style/editor.css +8 -7
  79. package/build-style/gallery/style-rtl.css +2 -1
  80. package/build-style/gallery/style.css +2 -1
  81. package/build-style/page-list/editor-rtl.css +4 -0
  82. package/build-style/page-list/editor.css +4 -0
  83. package/build-style/post-featured-image/editor-rtl.css +0 -7
  84. package/build-style/post-featured-image/editor.css +0 -7
  85. package/build-style/post-template/style-rtl.css +4 -0
  86. package/build-style/post-template/style.css +4 -0
  87. package/build-style/spacer/editor-rtl.css +4 -0
  88. package/build-style/spacer/editor.css +4 -0
  89. package/build-style/style-rtl.css +81 -6
  90. package/build-style/style.css +81 -6
  91. package/package.json +9 -9
  92. package/src/archives/index.php +1 -1
  93. package/src/common.scss +8 -0
  94. package/src/cover/style.scss +19 -3
  95. package/src/gallery/constants.js +2 -0
  96. package/src/gallery/style.scss +4 -1
  97. package/src/gallery/transforms.js +7 -1
  98. package/src/gallery/utils.js +7 -3
  99. package/src/heading/edit.js +18 -5
  100. package/src/navigation/index.php +4 -4
  101. package/src/page-list/edit.js +47 -9
  102. package/src/page-list/editor.scss +4 -0
  103. package/src/page-list/index.php +5 -0
  104. package/src/post-featured-image/dimension-controls.js +75 -50
  105. package/src/post-featured-image/edit.js +6 -4
  106. package/src/post-featured-image/editor.scss +0 -8
  107. package/src/post-template/style.scss +5 -0
  108. package/src/search/index.php +12 -7
  109. package/src/site-logo/edit.js +1 -32
  110. package/src/site-logo/index.php +1 -1
  111. package/src/site-title/index.php +0 -1
  112. package/src/social-links/deprecated.js +0 -59
  113. package/src/social-links/edit.js +1 -1
  114. package/src/spacer/block.json +3 -3
  115. package/src/spacer/controls.js +108 -0
  116. package/src/spacer/controls.native.js +82 -0
  117. package/src/spacer/deprecated.js +41 -0
  118. package/src/spacer/edit.js +127 -113
  119. package/src/spacer/edit.native.js +68 -0
  120. package/src/spacer/editor.scss +6 -0
  121. package/src/spacer/index.js +2 -0
  122. package/src/spacer/save.js +5 -2
  123. package/src/table/deprecated.js +5 -1
@@ -3,11 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.LINK_DESTINATION_NONE = exports.LINK_DESTINATION_MEDIA = exports.LINK_DESTINATION_ATTACHMENT = void 0;
6
+ exports.LINK_DESTINATION_NONE = exports.LINK_DESTINATION_MEDIA_WP_CORE = exports.LINK_DESTINATION_MEDIA = exports.LINK_DESTINATION_ATTACHMENT_WP_CORE = exports.LINK_DESTINATION_ATTACHMENT = void 0;
7
7
  const LINK_DESTINATION_NONE = 'none';
8
8
  exports.LINK_DESTINATION_NONE = LINK_DESTINATION_NONE;
9
9
  const LINK_DESTINATION_MEDIA = 'media';
10
10
  exports.LINK_DESTINATION_MEDIA = LINK_DESTINATION_MEDIA;
11
11
  const LINK_DESTINATION_ATTACHMENT = 'attachment';
12
12
  exports.LINK_DESTINATION_ATTACHMENT = LINK_DESTINATION_ATTACHMENT;
13
+ const LINK_DESTINATION_MEDIA_WP_CORE = 'file';
14
+ exports.LINK_DESTINATION_MEDIA_WP_CORE = LINK_DESTINATION_MEDIA_WP_CORE;
15
+ const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';
16
+ exports.LINK_DESTINATION_ATTACHMENT_WP_CORE = LINK_DESTINATION_ATTACHMENT_WP_CORE;
13
17
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/constants.js"],"names":["LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT"],"mappings":";;;;;;AAAO,MAAMA,qBAAqB,GAAG,MAA9B;;AACA,MAAMC,sBAAsB,GAAG,OAA/B;;AACA,MAAMC,2BAA2B,GAAG,YAApC","sourcesContent":["export const LINK_DESTINATION_NONE = 'none';\nexport const LINK_DESTINATION_MEDIA = 'media';\nexport const LINK_DESTINATION_ATTACHMENT = 'attachment';\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/constants.js"],"names":["LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA_WP_CORE","LINK_DESTINATION_ATTACHMENT_WP_CORE"],"mappings":";;;;;;AAAO,MAAMA,qBAAqB,GAAG,MAA9B;;AACA,MAAMC,sBAAsB,GAAG,OAA/B;;AACA,MAAMC,2BAA2B,GAAG,YAApC;;AACA,MAAMC,8BAA8B,GAAG,MAAvC;;AACA,MAAMC,mCAAmC,GAAG,MAA5C","sourcesContent":["export const LINK_DESTINATION_NONE = 'none';\nexport const LINK_DESTINATION_MEDIA = 'media';\nexport const LINK_DESTINATION_ATTACHMENT = 'attachment';\nexport const LINK_DESTINATION_MEDIA_WP_CORE = 'file';\nexport const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';\n"]}
@@ -343,7 +343,10 @@ const transforms = {
343
343
  url,
344
344
  alt,
345
345
  caption,
346
- imageSizeSlug
346
+ sizeSlug: imageSizeSlug,
347
+ linkDestination,
348
+ href,
349
+ linkTarget
347
350
  }
348
351
  } = _ref14;
349
352
  return (0, _blocks.createBlock)('core/image', {
@@ -352,7 +355,10 @@ const transforms = {
352
355
  alt,
353
356
  caption,
354
357
  sizeSlug: imageSizeSlug,
355
- align
358
+ align,
359
+ linkDestination,
360
+ href,
361
+ linkTarget
356
362
  });
357
363
  });
358
364
  }
@@ -1 +1 @@
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"]}
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","href","linkTarget","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\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\t\tlinkTarget,\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\tlinkDestination,\n\t\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\t\tlinkTarget,\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"]}
@@ -22,10 +22,10 @@ var _constants2 = require("../image/constants");
22
22
  * @return {Object} New attributes to assign to image block.
23
23
  */
24
24
  function getHrefAndDestination(image, destination) {
25
- // Need to determine the URL that the selected destination maps to.
26
- // Gutenberg and WordPress use different constants so the new link
27
- // destination also needs to be tweaked.
25
+ // Gutenberg and WordPress use different constants so if image_default_link_type
26
+ // option is set we need to map from the WP Core values.
28
27
  switch (destination) {
28
+ case _constants.LINK_DESTINATION_MEDIA_WP_CORE:
29
29
  case _constants.LINK_DESTINATION_MEDIA:
30
30
  return {
31
31
  href: (image === null || image === void 0 ? void 0 : image.source_url) || (image === null || image === void 0 ? void 0 : image.url),
@@ -33,6 +33,7 @@ function getHrefAndDestination(image, destination) {
33
33
  linkDestination: _constants2.LINK_DESTINATION_MEDIA
34
34
  };
35
35
 
36
+ case _constants.LINK_DESTINATION_ATTACHMENT_WP_CORE:
36
37
  case _constants.LINK_DESTINATION_ATTACHMENT:
37
38
  return {
38
39
  href: image === null || image === void 0 ? void 0 : image.link,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/utils.js"],"names":["getHrefAndDestination","image","destination","LINK_DESTINATION_MEDIA","href","source_url","url","linkDestination","IMAGE_LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","link","IMAGE_LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_NONE","undefined","IMAGE_LINK_DESTINATION_NONE"],"mappings":";;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAT,CAAgCC,KAAhC,EAAuCC,WAAvC,EAAqD;AAC3D;AACA;AACA;AACA,UAASA,WAAT;AACC,SAAKC,iCAAL;AACC,aAAO;AACNC,QAAAA,IAAI,EAAE,CAAAH,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAqBJ,KAArB,aAAqBA,KAArB,uBAAqBA,KAAK,CAAEK,GAA5B,CADA;AACiC;AACvCC,QAAAA,eAAe,EAAEC;AAFX,OAAP;;AAID,SAAKC,sCAAL;AACC,aAAO;AACNL,QAAAA,IAAI,EAAEH,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAES,IADP;AAENH,QAAAA,eAAe,EAAEI;AAFX,OAAP;;AAID,SAAKC,gCAAL;AACC,aAAO;AACNR,QAAAA,IAAI,EAAES,SADA;AAENN,QAAAA,eAAe,EAAEO;AAFX,OAAP;AAZF;;AAkBA,SAAO,EAAP;AACA","sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport {\n\tLINK_DESTINATION_ATTACHMENT as IMAGE_LINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA as IMAGE_LINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE as IMAGE_LINK_DESTINATION_NONE,\n} from '../image/constants';\n\n/**\n * Determines new href and linkDestination values for an image block from the\n * supplied Gallery link destination.\n *\n * @param {Object} image Gallery image.\n * @param {string} destination Gallery's selected link destination.\n * @return {Object} New attributes to assign to image block.\n */\nexport function getHrefAndDestination( image, destination ) {\n\t// Need to determine the URL that the selected destination maps to.\n\t// Gutenberg and WordPress use different constants so the new link\n\t// destination also needs to be tweaked.\n\tswitch ( destination ) {\n\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\treturn {\n\t\t\t\thref: image?.source_url || image?.url, // eslint-disable-line camelcase\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_MEDIA,\n\t\t\t};\n\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\treturn {\n\t\t\t\thref: image?.link,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_ATTACHMENT,\n\t\t\t};\n\t\tcase LINK_DESTINATION_NONE:\n\t\t\treturn {\n\t\t\t\thref: undefined,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_NONE,\n\t\t\t};\n\t}\n\n\treturn {};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/utils.js"],"names":["getHrefAndDestination","image","destination","LINK_DESTINATION_MEDIA_WP_CORE","LINK_DESTINATION_MEDIA","href","source_url","url","linkDestination","IMAGE_LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT_WP_CORE","LINK_DESTINATION_ATTACHMENT","link","IMAGE_LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_NONE","undefined","IMAGE_LINK_DESTINATION_NONE"],"mappings":";;;;;;;AAGA;;AAOA;;AAVA;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAT,CAAgCC,KAAhC,EAAuCC,WAAvC,EAAqD;AAC3D;AACA;AAEA,UAASA,WAAT;AACC,SAAKC,yCAAL;AACA,SAAKC,iCAAL;AACC,aAAO;AACNC,QAAAA,IAAI,EAAE,CAAAJ,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEK,UAAP,MAAqBL,KAArB,aAAqBA,KAArB,uBAAqBA,KAAK,CAAEM,GAA5B,CADA;AACiC;AACvCC,QAAAA,eAAe,EAAEC;AAFX,OAAP;;AAID,SAAKC,8CAAL;AACA,SAAKC,sCAAL;AACC,aAAO;AACNN,QAAAA,IAAI,EAAEJ,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAEW,IADP;AAENJ,QAAAA,eAAe,EAAEK;AAFX,OAAP;;AAID,SAAKC,gCAAL;AACC,aAAO;AACNT,QAAAA,IAAI,EAAEU,SADA;AAENP,QAAAA,eAAe,EAAEQ;AAFX,OAAP;AAdF;;AAoBA,SAAO,EAAP;AACA","sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA_WP_CORE,\n\tLINK_DESTINATION_ATTACHMENT_WP_CORE,\n} from './constants';\nimport {\n\tLINK_DESTINATION_ATTACHMENT as IMAGE_LINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA as IMAGE_LINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE as IMAGE_LINK_DESTINATION_NONE,\n} from '../image/constants';\n\n/**\n * Determines new href and linkDestination values for an image block from the\n * supplied Gallery link destination.\n *\n * @param {Object} image Gallery image.\n * @param {string} destination Gallery's selected link destination.\n * @return {Object} New attributes to assign to image block.\n */\nexport function getHrefAndDestination( image, destination ) {\n\t// Gutenberg and WordPress use different constants so if image_default_link_type\n\t// option is set we need to map from the WP Core values.\n\n\tswitch ( destination ) {\n\t\tcase LINK_DESTINATION_MEDIA_WP_CORE:\n\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\treturn {\n\t\t\t\thref: image?.source_url || image?.url, // eslint-disable-line camelcase\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_MEDIA,\n\t\t\t};\n\t\tcase LINK_DESTINATION_ATTACHMENT_WP_CORE:\n\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\treturn {\n\t\t\t\thref: image?.link,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_ATTACHMENT,\n\t\t\t};\n\t\tcase LINK_DESTINATION_NONE:\n\t\t\treturn {\n\t\t\t\thref: undefined,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_NONE,\n\t\t\t};\n\t}\n\n\treturn {};\n}\n"]}
@@ -59,12 +59,24 @@ function HeadingEdit(_ref) {
59
59
  }),
60
60
  style
61
61
  });
62
+ const {
63
+ canGenerateAnchors
64
+ } = (0, _data.useSelect)(select => {
65
+ const settings = select(_blockEditor.store).getSettings();
66
+ return {
67
+ canGenerateAnchors: !!settings.__experimentalGenerateAnchors
68
+ };
69
+ }, []);
62
70
  const {
63
71
  __unstableMarkNextChangeAsNotPersistent
64
72
  } = (0, _data.useDispatch)(_blockEditor.store); // Initially set anchor for headings that have content but no anchor set.
65
73
  // This is used when transforming a block to heading, or for legacy anchors.
66
74
 
67
75
  (0, _element.useEffect)(() => {
76
+ if (!canGenerateAnchors) {
77
+ return;
78
+ }
79
+
68
80
  if (!anchor && content) {
69
81
  // This side-effect should not create an undo level.
70
82
  __unstableMarkNextChangeAsNotPersistent();
@@ -77,14 +89,14 @@ function HeadingEdit(_ref) {
77
89
  (0, _autogenerateAnchors.setAnchor)(clientId, anchor); // Remove anchor map when block unmounts.
78
90
 
79
91
  return () => (0, _autogenerateAnchors.setAnchor)(clientId, null);
80
- }, [content, anchor]);
92
+ }, [anchor, content, clientId, canGenerateAnchors]);
81
93
 
82
94
  const onContentChange = value => {
83
95
  const newAttrs = {
84
96
  content: value
85
97
  };
86
98
 
87
- if (!anchor || !value || (0, _autogenerateAnchors.generateAnchor)(clientId, content) === anchor) {
99
+ if (canGenerateAnchors && (!anchor || !value || (0, _autogenerateAnchors.generateAnchor)(clientId, content) === anchor)) {
88
100
  newAttrs.anchor = (0, _autogenerateAnchors.generateAnchor)(clientId, value);
89
101
  }
90
102
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/heading/edit.js"],"names":["HeadingEdit","attributes","setAttributes","mergeBlocks","onReplace","style","clientId","textAlign","content","level","placeholder","anchor","tagName","blockProps","className","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","onContentChange","value","newAttrs","newLevel","nextAlign","isOriginal","block"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport HeadingLevelDropdown from './heading-level-dropdown';\nimport { generateAnchor, setAnchor } from './autogenerate-anchors';\n\nfunction HeadingEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tstyle,\n\tclientId,\n} ) {\n\tconst { textAlign, content, level, placeholder, anchor } = attributes;\n\tconst tagName = 'h' + level;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\tstyle,\n\t} );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\n\t// Initially set anchor for headings that have content but no anchor set.\n\t// This is used when transforming a block to heading, or for legacy anchors.\n\tuseEffect( () => {\n\t\tif ( ! anchor && content ) {\n\t\t\t// This side-effect should not create an undo level.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tanchor: generateAnchor( clientId, content ),\n\t\t\t} );\n\t\t}\n\t\tsetAnchor( clientId, anchor );\n\n\t\t// Remove anchor map when block unmounts.\n\t\treturn () => setAnchor( clientId, null );\n\t}, [ content, anchor ] );\n\n\tconst onContentChange = ( value ) => {\n\t\tconst newAttrs = { content: value };\n\t\tif (\n\t\t\t! anchor ||\n\t\t\t! value ||\n\t\t\tgenerateAnchor( clientId, content ) === anchor\n\t\t) {\n\t\t\tnewAttrs.anchor = generateAnchor( clientId, value );\n\t\t}\n\t\tsetAttributes( newAttrs );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tselectedLevel={ level }\n\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName={ tagName }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ onContentChange }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet block;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tblock = createBlock( 'core/heading', {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tblock = createBlock(\n\t\t\t\t\t\t\tgetDefaultBlockName() ?? 'core/heading'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ () => onReplace( [] ) }\n\t\t\t\taria-label={ __( 'Heading text' ) }\n\t\t\t\tplaceholder={ placeholder || __( 'Heading' ) }\n\t\t\t\ttextAlign={ textAlign }\n\t\t\t\t{ ...blockProps }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default HeadingEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/heading/edit.js"],"names":["HeadingEdit","attributes","setAttributes","mergeBlocks","onReplace","style","clientId","textAlign","content","level","placeholder","anchor","tagName","blockProps","className","canGenerateAnchors","select","settings","blockEditorStore","getSettings","__experimentalGenerateAnchors","__unstableMarkNextChangeAsNotPersistent","onContentChange","value","newAttrs","newLevel","nextAlign","isOriginal","block"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport HeadingLevelDropdown from './heading-level-dropdown';\nimport { generateAnchor, setAnchor } from './autogenerate-anchors';\n\nfunction HeadingEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tstyle,\n\tclientId,\n} ) {\n\tconst { textAlign, content, level, placeholder, anchor } = attributes;\n\tconst tagName = 'h' + level;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\tstyle,\n\t} );\n\n\tconst { canGenerateAnchors } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\treturn {\n\t\t\tcanGenerateAnchors: !! settings.__experimentalGenerateAnchors,\n\t\t};\n\t}, [] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\n\t// Initially set anchor for headings that have content but no anchor set.\n\t// This is used when transforming a block to heading, or for legacy anchors.\n\tuseEffect( () => {\n\t\tif ( ! canGenerateAnchors ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! anchor && content ) {\n\t\t\t// This side-effect should not create an undo level.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tanchor: generateAnchor( clientId, content ),\n\t\t\t} );\n\t\t}\n\t\tsetAnchor( clientId, anchor );\n\n\t\t// Remove anchor map when block unmounts.\n\t\treturn () => setAnchor( clientId, null );\n\t}, [ anchor, content, clientId, canGenerateAnchors ] );\n\n\tconst onContentChange = ( value ) => {\n\t\tconst newAttrs = { content: value };\n\t\tif (\n\t\t\tcanGenerateAnchors &&\n\t\t\t( ! anchor ||\n\t\t\t\t! value ||\n\t\t\t\tgenerateAnchor( clientId, content ) === anchor )\n\t\t) {\n\t\t\tnewAttrs.anchor = generateAnchor( clientId, value );\n\t\t}\n\t\tsetAttributes( newAttrs );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tselectedLevel={ level }\n\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName={ tagName }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ onContentChange }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet block;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tblock = createBlock( 'core/heading', {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tblock = createBlock(\n\t\t\t\t\t\t\tgetDefaultBlockName() ?? 'core/heading'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ () => onReplace( [] ) }\n\t\t\t\taria-label={ __( 'Heading text' ) }\n\t\t\t\tplaceholder={ placeholder || __( 'Heading' ) }\n\t\t\t\ttextAlign={ textAlign }\n\t\t\t\t{ ...blockProps }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default HeadingEdit;\n"]}
@@ -51,8 +51,9 @@ function PageListEdit(_ref) {
51
51
  } = _ref;
52
52
  const {
53
53
  pagesByParentId,
54
- totalPages
55
- } = usePagesByParentId();
54
+ totalPages,
55
+ hasResolvedPages
56
+ } = usePageData();
56
57
  const isNavigationChild = ('showSubmenuIcon' in context);
57
58
  const allowConvertToLinks = isNavigationChild && totalPages <= MAX_PAGE_COUNT;
58
59
  const [isOpen, setOpen] = (0, _element.useState)(false);
@@ -79,18 +80,33 @@ function PageListEdit(_ref) {
79
80
  }, (0, _i18n.__)('Edit'))), allowConvertToLinks && isOpen && (0, _element.createElement)(_convertToLinksModal.default, {
80
81
  onClose: closeModal,
81
82
  clientId: clientId
82
- }), totalPages === undefined && (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_components.Placeholder, null, (0, _element.createElement)(_components.Spinner, null))), totalPages === 0 && (0, _element.createElement)("div", blockProps, (0, _element.createElement)("span", null, (0, _i18n.__)('Page List: No pages to show.'))), totalPages > 0 && (0, _element.createElement)("ul", blockProps, (0, _element.createElement)(PageItems, {
83
+ }), !hasResolvedPages && (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_components.Placeholder, null, (0, _element.createElement)(_components.Spinner, null))), hasResolvedPages && totalPages === null && (0, _element.createElement)("div", blockProps, (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_components.Notice, {
84
+ status: 'warning',
85
+ isDismissible: false
86
+ }, (0, _i18n.__)('Page List: Cannot retrieve Pages.')))), totalPages === 0 && (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_components.Notice, {
87
+ status: 'info',
88
+ isDismissible: false
89
+ }, (0, _i18n.__)('Page List: Cannot retrieve Pages.'))), totalPages > 0 && (0, _element.createElement)("ul", blockProps, (0, _element.createElement)(PageItems, {
83
90
  context: context,
84
91
  pagesByParentId: pagesByParentId
85
92
  })));
86
93
  }
87
94
 
88
- function usePagesByParentId() {
95
+ function useFrontPageId() {
96
+ return (0, _data.useSelect)(select => {
97
+ const site = select(_coreData.store).getEntityRecord('root', 'site');
98
+ return (site === null || site === void 0 ? void 0 : site.show_on_front) === 'page' && (site === null || site === void 0 ? void 0 : site.page_on_front);
99
+ }, []);
100
+ }
101
+
102
+ function usePageData() {
89
103
  const {
90
- pages
104
+ pages,
105
+ hasResolvedPages
91
106
  } = (0, _data.useSelect)(select => {
92
107
  const {
93
- getEntityRecords
108
+ getEntityRecords,
109
+ hasFinishedResolution
94
110
  } = select(_coreData.store);
95
111
  return {
96
112
  pages: getEntityRecords('postType', 'page', {
@@ -98,10 +114,18 @@ function usePagesByParentId() {
98
114
  order: 'asc',
99
115
  _fields: ['id', 'link', 'parent', 'title', 'menu_order'],
100
116
  per_page: -1
101
- })
117
+ }),
118
+ hasResolvedPages: hasFinishedResolution('getEntityRecords', ['postType', 'page', {
119
+ orderby: 'menu_order',
120
+ order: 'asc',
121
+ _fields: ['id', 'link', 'parent', 'title', 'menu_order'],
122
+ per_page: -1
123
+ }])
102
124
  };
103
125
  }, []);
104
126
  return (0, _element.useMemo)(() => {
127
+ var _pages$length;
128
+
105
129
  // TODO: Once the REST API supports passing multiple values to
106
130
  // 'orderby', this can be removed.
107
131
  // https://core.trac.wordpress.org/ticket/39037
@@ -121,9 +145,10 @@ function usePagesByParentId() {
121
145
  }, new Map());
122
146
  return {
123
147
  pagesByParentId,
124
- totalPages: pages === null || pages === void 0 ? void 0 : pages.length
148
+ hasResolvedPages,
149
+ totalPages: (_pages$length = pages === null || pages === void 0 ? void 0 : pages.length) !== null && _pages$length !== void 0 ? _pages$length : null
125
150
  };
126
- }, [pages]);
151
+ }, [pages, hasResolvedPages]);
127
152
  }
128
153
 
129
154
  const PageItems = (0, _element.memo)(function PageItems(_ref2) {
@@ -134,6 +159,7 @@ const PageItems = (0, _element.memo)(function PageItems(_ref2) {
134
159
  depth = 0
135
160
  } = _ref2;
136
161
  const pages = pagesByParentId.get(parentId);
162
+ const frontPageId = useFrontPageId();
137
163
 
138
164
  if (!(pages !== null && pages !== void 0 && pages.length)) {
139
165
  return [];
@@ -150,7 +176,8 @@ const PageItems = (0, _element.memo)(function PageItems(_ref2) {
150
176
  'has-child': hasChildren,
151
177
  'wp-block-navigation-item': isNavigationChild,
152
178
  'open-on-click': context.openSubmenusOnClick,
153
- 'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon
179
+ 'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon,
180
+ 'menu-item-home': page.id === frontPageId
154
181
  })
155
182
  }, hasChildren && context.openSubmenusOnClick ? (0, _element.createElement)(ItemSubmenuToggle, {
156
183
  title: (_page$title = page.title) === null || _page$title === void 0 ? void 0 : _page$title.rendered
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","usePagesByParentId","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","undefined","pages","select","getEntityRecords","coreStore","orderby","order","_fields","per_page","sortedPages","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","title","rendered","link","ItemSubmenuToggle"],"mappings":";;;;;;;;;AAgBA;;AAbA;;AACA;;AAKA;;AAKA;;AACA;;AAEA;;AACA;;AAKA;;AACA;;AAxBA;AACA;AACA;;AAIA;AACA;AACA;;AAYA;AACA;AACA;AAIA;AACA;AACA,MAAMA,cAAc,GAAG,GAAvB;;AAEe,SAASC,YAAT,OAA+C;AAAA;;AAAA,MAAxB;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAwB;AAC7D,QAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAAkCC,kBAAkB,EAA1D;AAEA,QAAMC,iBAAiB,IAAG,qBAAqBL,OAAxB,CAAvB;AACA,QAAMM,mBAAmB,GACxBD,iBAAiB,IAAIF,UAAU,IAAIL,cADpC;AAGA,QAAM,CAAES,MAAF,EAAUC,OAAV,IAAsB,uBAAU,KAAV,CAA5B;;AACA,QAAMC,SAAS,GAAG,MAAMD,OAAO,CAAE,IAAF,CAA/B;;AACA,QAAME,UAAU,GAAG,MAAMF,OAAO,CAAE,KAAF,CAAhC;;AAEA,QAAMG,UAAU,GAAG,gCAAe;AACjCC,IAAAA,SAAS,EAAE,yBAAY,oBAAZ,EAAkC;AAC5C,wBAAkB,CAAC,CAAEZ,OAAO,CAACa,SADe;AAE5C,OAAE,oCACD,OADC,EAEDb,OAAO,CAACa,SAFP,CAAF,GAGK,CAAC,CAAEb,OAAO,CAACa,SAL4B;AAM5C,wBAAkB,CAAC,CAAEb,OAAO,CAACc,eANe;AAO5C,OAAE,oCACD,kBADC,EAEDd,OAAO,CAACc,eAFP,CAAF,GAGK,CAAC,CAAEd,OAAO,CAACc;AAV4B,KAAlC,CADsB;AAajCC,IAAAA,KAAK,EAAE,EAAE,sBAAGf,OAAO,CAACe,KAAX,mDAAG,eAAeC,KAAlB;AAAF;AAb0B,GAAf,CAAnB;AAgBA,SACC,qDACGV,mBAAmB,IACpB,4BAAC,0BAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,yBAAD;AAAe,IAAA,KAAK,EAAG,cAAI,MAAJ,CAAvB;AAAsC,IAAA,OAAO,EAAGG;AAAhD,KACG,cAAI,MAAJ,CADH,CADD,CAFF,EAQGH,mBAAmB,IAAIC,MAAvB,IACD,4BAAC,4BAAD;AACC,IAAA,OAAO,EAAGG,UADX;AAEC,IAAA,QAAQ,EAAGT;AAFZ,IATF,EAcGE,UAAU,KAAKc,SAAf,IACD,mCAAUN,UAAV,EACC,4BAAC,uBAAD,QACC,4BAAC,mBAAD,OADD,CADD,CAfF,EAqBGR,UAAU,KAAK,CAAf,IACD,mCAAUQ,UAAV,EACC,0CAAQ,cAAI,8BAAJ,CAAR,CADD,CAtBF,EA0BGR,UAAU,GAAG,CAAb,IACD,kCAASQ,UAAT,EACC,4BAAC,SAAD;AACC,IAAA,OAAO,EAAGX,OADX;AAEC,IAAA,eAAe,EAAGE;AAFnB,IADD,CA3BF,CADD;AAqCA;;AAED,SAASE,kBAAT,GAA8B;AAC7B,QAAM;AAAEc,IAAAA;AAAF,MAAY,qBAAaC,MAAF,IAAc;AAC1C,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAEE,eAAF,CAAnC;AAEA,WAAO;AACNH,MAAAA,KAAK,EAAEE,gBAAgB,CAAE,UAAF,EAAc,MAAd,EAAsB;AAC5CE,QAAAA,OAAO,EAAE,YADmC;AAE5CC,QAAAA,KAAK,EAAE,KAFqC;AAG5CC,QAAAA,OAAO,EAAE,CAAE,IAAF,EAAQ,MAAR,EAAgB,QAAhB,EAA0B,OAA1B,EAAmC,YAAnC,CAHmC;AAI5CC,QAAAA,QAAQ,EAAE,CAAC;AAJiC,OAAtB;AADjB,KAAP;AAQA,GAXiB,EAWf,EAXe,CAAlB;AAaA,SAAO,sBAAS,MAAM;AACrB;AACA;AACA;AACA,UAAMC,WAAW,GAAG,oBAAQR,KAAR,EAAe,CAAE,YAAF,EAAgB,gBAAhB,CAAf,CAApB;AACA,UAAMhB,eAAe,GAAGwB,WAAW,CAACC,MAAZ,CAAoB,CAAEC,WAAF,EAAeC,IAAf,KAAyB;AACpE,YAAM;AAAEC,QAAAA;AAAF,UAAaD,IAAnB;;AACA,UAAKD,WAAW,CAACG,GAAZ,CAAiBD,MAAjB,CAAL,EAAiC;AAChCF,QAAAA,WAAW,CAACI,GAAZ,CAAiBF,MAAjB,EAA0BG,IAA1B,CAAgCJ,IAAhC;AACA,OAFD,MAEO;AACND,QAAAA,WAAW,CAACM,GAAZ,CAAiBJ,MAAjB,EAAyB,CAAED,IAAF,CAAzB;AACA;;AACD,aAAOD,WAAP;AACA,KARuB,EAQrB,IAAIO,GAAJ,EARqB,CAAxB;AAUA,WAAO;AACNjC,MAAAA,eADM;AAENC,MAAAA,UAAU,EAAEe,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAEkB;AAFb,KAAP;AAIA,GAnBM,EAmBJ,CAAElB,KAAF,CAnBI,CAAP;AAoBA;;AAED,MAAMmB,SAAS,GAAG,mBAAM,SAASA,SAAT,QAKpB;AAAA,MALwC;AAC3CrC,IAAAA,OAD2C;AAE3CE,IAAAA,eAF2C;AAG3CoC,IAAAA,QAAQ,GAAG,CAHgC;AAI3CC,IAAAA,KAAK,GAAG;AAJmC,GAKxC;AACH,QAAMrB,KAAK,GAAGhB,eAAe,CAAC8B,GAAhB,CAAqBM,QAArB,CAAd;;AAEA,MAAK,EAAEpB,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEkB,MAAT,CAAL,EAAuB;AACtB,WAAO,EAAP;AACA;;AAED,SAAOlB,KAAK,CAACsB,GAAN,CAAaX,IAAF,IAAY;AAAA;;AAC7B,UAAMY,WAAW,GAAGvC,eAAe,CAAC6B,GAAhB,CAAqBF,IAAI,CAACa,EAA1B,CAApB;AACA,UAAMrC,iBAAiB,IAAG,qBAAqBL,OAAxB,CAAvB;AACA,WACC;AACC,MAAA,GAAG,EAAG6B,IAAI,CAACa,EADZ;AAEC,MAAA,SAAS,EAAG,yBAAY,2BAAZ,EAAyC;AACpD,qBAAaD,WADuC;AAEpD,oCAA4BpC,iBAFwB;AAGpD,yBAAiBL,OAAO,CAAC2C,mBAH2B;AAIpD,+BACC,CAAE3C,OAAO,CAAC2C,mBAAV,IACA3C,OAAO,CAAC4C;AAN2C,OAAzC;AAFb,OAWGH,WAAW,IAAIzC,OAAO,CAAC2C,mBAAvB,GACD,4BAAC,iBAAD;AAAmB,MAAA,KAAK,iBAAGd,IAAI,CAACgB,KAAR,gDAAG,YAAYC;AAAvC,MADC,GAGD;AACC,MAAA,SAAS,EAAG,yBACX,iCADW,EAEX;AACC,6CAAqCzC;AADtC,OAFW,CADb;AAOC,MAAA,IAAI,EAAGwB,IAAI,CAACkB;AAPb,uBASGlB,IAAI,CAACgB,KATR,iDASG,aAAYC,QATf,CAdF,EA0BGL,WAAW,IACZ,qDACG,CAAEzC,OAAO,CAAC2C,mBAAV,IACD3C,OAAO,CAAC4C,eADP,IAC0B,4BAAC,iBAAD,OAF7B,EAGC;AACC,MAAA,SAAS,EAAG,yBAAY,mBAAZ,EAAiC;AAC5C,kDAA0CvC;AADE,OAAjC;AADb,OAKC,4BAAC,SAAD;AACC,MAAA,OAAO,EAAGL,OADX;AAEC,MAAA,eAAe,EAAGE,eAFnB;AAGC,MAAA,QAAQ,EAAG2B,IAAI,CAACa,EAHjB;AAIC,MAAA,KAAK,EAAGH,KAAK,GAAG;AAJjB,MALD,CAHD,CA3BF,CADD;AA+CA,GAlDM,CAAP;AAmDA,CA/DiB,CAAlB;;AAiEA,SAASS,iBAAT,QAAwC;AAAA,MAAZ;AAAEH,IAAAA;AAAF,GAAY;AACvC,SACC;AACC,IAAA,SAAS,EAAC,uEADX;AAEC,qBAAc;AAFf,KAIGA,KAJH,EAKC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,4BAAC,sBAAD,OADD,CALD,CADD;AAWA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { sortBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, Placeholder, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( { context, clientId } ) {\n\tconst { pagesByParentId, totalPages } = usePagesByParentId();\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\tcontext.textColor\n\t\t\t) ]: !! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ totalPages === undefined && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</Placeholder>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages === 0 && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<span>{ __( 'Page List: No pages to show.' ) }</span>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages > 0 && (\n\t\t\t\t<ul { ...blockProps }>\n\t\t\t\t\t<PageItems\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t/>\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction usePagesByParentId() {\n\tconst { pages } = useSelect( ( select ) => {\n\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\treturn {\n\t\t\tpages: getEntityRecords( 'postType', 'page', {\n\t\t\t\torderby: 'menu_order',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\t\tper_page: -1,\n\t\t\t} ),\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = sortBy( pages, [ 'menu_order', 'title.rendered' ] );\n\t\tconst pagesByParentId = sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\n\t\treturn {\n\t\t\tpagesByParentId,\n\t\t\ttotalPages: pages?.length,\n\t\t};\n\t}, [ pages ] );\n}\n\nconst PageItems = memo( function PageItems( {\n\tcontext,\n\tpagesByParentId,\n\tparentId = 0,\n\tdepth = 0,\n} ) {\n\tconst pages = pagesByParentId.get( parentId );\n\n\tif ( ! pages?.length ) {\n\t\treturn [];\n\t}\n\n\treturn pages.map( ( page ) => {\n\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\t\treturn (\n\t\t\t<li\n\t\t\t\tkey={ page.id }\n\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t\t'has-child': hasChildren,\n\t\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t\t! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<ItemSubmenuToggle title={ page.title?.rendered } />\n\t\t\t\t) : (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-pages-list__item__link',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'wp-block-navigation-item__content': isNavigationChild,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thref={ page.link }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ hasChildren && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\t\tcontext.showSubmenuIcon && <ItemSubmenuToggle /> }\n\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\tclassName={ classnames( 'submenu-container', {\n\t\t\t\t\t\t\t\t'wp-block-navigation__submenu-container': isNavigationChild,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PageItems\n\t\t\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t\t\t\tparentId={ page.id }\n\t\t\t\t\t\t\t\tdepth={ depth + 1 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t} );\n} );\n\nfunction ItemSubmenuToggle( { title } ) {\n\treturn (\n\t\t<button\n\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\taria-expanded=\"false\"\n\t\t>\n\t\t\t{ title }\n\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t<ItemSubmenuIcon />\n\t\t\t</span>\n\t\t</button>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","hasResolvedPages","usePageData","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","useFrontPageId","select","site","coreStore","getEntityRecord","show_on_front","page_on_front","pages","getEntityRecords","hasFinishedResolution","orderby","order","_fields","per_page","sortedPages","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","frontPageId","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","title","rendered","link","ItemSubmenuToggle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { sortBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tPlaceholder,\n\tSpinner,\n\tNotice,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( { context, clientId } ) {\n\tconst { pagesByParentId, totalPages, hasResolvedPages } = usePageData();\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\tcontext.textColor\n\t\t\t) ]: !! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! hasResolvedPages && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</Placeholder>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ hasResolvedPages && totalPages === null && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ totalPages === 0 && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'info' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages > 0 && (\n\t\t\t\t<ul { ...blockProps }>\n\t\t\t\t\t<PageItems\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t/>\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useFrontPageId() {\n\treturn useSelect( ( select ) => {\n\t\tconst site = select( coreStore ).getEntityRecord( 'root', 'site' );\n\t\treturn site?.show_on_front === 'page' && site?.page_on_front;\n\t}, [] );\n}\n\nfunction usePageData() {\n\tconst { pages, hasResolvedPages } = useSelect( ( select ) => {\n\t\tconst { getEntityRecords, hasFinishedResolution } = select( coreStore );\n\n\t\treturn {\n\t\t\tpages: getEntityRecords( 'postType', 'page', {\n\t\t\t\torderby: 'menu_order',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\t\tper_page: -1,\n\t\t\t} ),\n\t\t\thasResolvedPages: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t'postType',\n\t\t\t\t'page',\n\t\t\t\t{\n\t\t\t\t\torderby: 'menu_order',\n\t\t\t\t\torder: 'asc',\n\t\t\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\t\t\tper_page: -1,\n\t\t\t\t},\n\t\t\t] ),\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = sortBy( pages, [ 'menu_order', 'title.rendered' ] );\n\t\tconst pagesByParentId = sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\n\t\treturn {\n\t\t\tpagesByParentId,\n\t\t\thasResolvedPages,\n\t\t\ttotalPages: pages?.length ?? null,\n\t\t};\n\t}, [ pages, hasResolvedPages ] );\n}\n\nconst PageItems = memo( function PageItems( {\n\tcontext,\n\tpagesByParentId,\n\tparentId = 0,\n\tdepth = 0,\n} ) {\n\tconst pages = pagesByParentId.get( parentId );\n\tconst frontPageId = useFrontPageId();\n\n\tif ( ! pages?.length ) {\n\t\treturn [];\n\t}\n\n\treturn pages.map( ( page ) => {\n\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\t\treturn (\n\t\t\t<li\n\t\t\t\tkey={ page.id }\n\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t\t'has-child': hasChildren,\n\t\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t\t! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon,\n\t\t\t\t\t'menu-item-home': page.id === frontPageId,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<ItemSubmenuToggle title={ page.title?.rendered } />\n\t\t\t\t) : (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-pages-list__item__link',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'wp-block-navigation-item__content': isNavigationChild,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thref={ page.link }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ hasChildren && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\t\tcontext.showSubmenuIcon && <ItemSubmenuToggle /> }\n\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\tclassName={ classnames( 'submenu-container', {\n\t\t\t\t\t\t\t\t'wp-block-navigation__submenu-container': isNavigationChild,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PageItems\n\t\t\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t\t\t\tparentId={ page.id }\n\t\t\t\t\t\t\t\tdepth={ depth + 1 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t} );\n} );\n\nfunction ItemSubmenuToggle( { title } ) {\n\treturn (\n\t\t<button\n\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\taria-expanded=\"false\"\n\t\t>\n\t\t\t{ title }\n\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t<ItemSubmenuIcon />\n\t\t\t</span>\n\t\t</button>\n\t);\n}\n"]}
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -9,18 +7,12 @@ exports.default = void 0;
9
7
 
10
8
  var _element = require("@wordpress/element");
11
9
 
12
- var _classnames = _interopRequireDefault(require("classnames"));
13
-
14
10
  var _i18n = require("@wordpress/i18n");
15
11
 
16
12
  var _components = require("@wordpress/components");
17
13
 
18
14
  var _blockEditor = require("@wordpress/block-editor");
19
15
 
20
- /**
21
- * External dependencies
22
- */
23
-
24
16
  /**
25
17
  * WordPress dependencies
26
18
  */
@@ -34,6 +26,7 @@ const SCALE_OPTIONS = (0, _element.createElement)(_element.Fragment, null, (0, _
34
26
  value: "fill",
35
27
  label: (0, _i18n._x)('Fill', 'Scale option for Image dimension control')
36
28
  }));
29
+ const DEFAULT_SCALE = 'cover';
37
30
  const scaleHelp = {
38
31
  cover: (0, _i18n.__)('Image is scaled and cropped to fill the entire space without being distorted.'),
39
32
  contain: (0, _i18n.__)('Image is scaled to fill the space without clipping nor distorting.'),
@@ -42,6 +35,7 @@ const scaleHelp = {
42
35
 
43
36
  const DimensionControls = _ref => {
44
37
  let {
38
+ clientId,
45
39
  attributes: {
46
40
  width,
47
41
  height,
@@ -69,40 +63,66 @@ const DimensionControls = _ref => {
69
63
  };
70
64
 
71
65
  const scaleLabel = (0, _i18n._x)('Scale', 'Image scaling options');
72
- return (0, _element.createElement)(_components.PanelBody, {
73
- title: (0, _i18n.__)('Dimensions')
74
- }, (0, _element.createElement)(_components.Flex, {
75
- justify: "space-between",
76
- className: (0, _classnames.default)('block-library-post-featured-image-dimension-controls', {
77
- 'scale-control-is-visible': !!height
78
- })
79
- }, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.__experimentalUnitControl, {
66
+ return (0, _element.createElement)(_blockEditor.InspectorControls, {
67
+ __experimentalGroup: "dimensions"
68
+ }, (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
69
+ className: "single-column",
70
+ hasValue: () => !!height,
71
+ label: (0, _i18n.__)('Height'),
72
+ onDeselect: () => setAttributes({
73
+ height: undefined
74
+ }),
75
+ resetAllFilter: () => ({
76
+ height: undefined
77
+ }),
78
+ isShownByDefault: true,
79
+ panelId: clientId
80
+ }, (0, _element.createElement)(_components.__experimentalUnitControl, {
80
81
  label: (0, _i18n.__)('Height'),
81
82
  labelPosition: "top",
82
83
  value: height || '',
83
- onChange: nextHeight => {
84
- onDimensionChange('height', nextHeight);
85
- },
84
+ min: 0,
85
+ onChange: nextHeight => onDimensionChange('height', nextHeight),
86
86
  units: units
87
- })), (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.__experimentalUnitControl, {
87
+ })), (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
88
+ className: "single-column",
89
+ hasValue: () => !!width,
90
+ label: (0, _i18n.__)('Width'),
91
+ onDeselect: () => setAttributes({
92
+ width: undefined
93
+ }),
94
+ resetAllFilter: () => ({
95
+ width: undefined
96
+ }),
97
+ isShownByDefault: true,
98
+ panelId: clientId
99
+ }, (0, _element.createElement)(_components.__experimentalUnitControl, {
88
100
  label: (0, _i18n.__)('Width'),
89
101
  labelPosition: "top",
90
102
  value: width || '',
91
- onChange: nextWidth => {
92
- onDimensionChange('width', nextWidth);
93
- },
103
+ min: 0,
104
+ onChange: nextWidth => onDimensionChange('width', nextWidth),
94
105
  units: units
95
- }))), !!height && (0, _element.createElement)(_components.__experimentalToggleGroupControl, {
106
+ })), !!height && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
107
+ hasValue: () => !!scale && scale !== DEFAULT_SCALE,
108
+ label: scaleLabel,
109
+ onDeselect: () => setAttributes({
110
+ scale: DEFAULT_SCALE
111
+ }),
112
+ resetAllFilter: () => ({
113
+ scale: DEFAULT_SCALE
114
+ }),
115
+ isShownByDefault: true,
116
+ panelId: clientId
117
+ }, (0, _element.createElement)(_components.__experimentalToggleGroupControl, {
96
118
  label: scaleLabel,
97
119
  value: scale,
98
120
  help: scaleHelp[scale],
99
- onChange: value => {
100
- setAttributes({
101
- scale: value
102
- });
103
- },
121
+ onChange: value => setAttributes({
122
+ scale: value
123
+ }),
104
124
  isBlock: true
105
- }, SCALE_OPTIONS));
125
+ }, SCALE_OPTIONS)));
106
126
  };
107
127
 
108
128
  var _default = DimensionControls;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/dimension-controls.js"],"names":["SCALE_OPTIONS","scaleHelp","cover","contain","fill","DimensionControls","attributes","width","height","scale","setAttributes","defaultUnits","units","availableUnits","onDimensionChange","dimension","nextValue","parsedValue","parseFloat","isNaN","scaleLabel","nextHeight","nextWidth","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\t__experimentalUnitControl as UnitControl,\n\tFlex,\n\tFlexItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useSetting } from '@wordpress/block-editor';\n\nconst SCALE_OPTIONS = (\n\t<>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"cover\"\n\t\t\tlabel={ _x( 'Cover', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"contain\"\n\t\t\tlabel={ _x(\n\t\t\t\t'Contain',\n\t\t\t\t'Scale option for Image dimension control'\n\t\t\t) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"fill\"\n\t\t\tlabel={ _x( 'Fill', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t</>\n);\n\nconst scaleHelp = {\n\tcover: __(\n\t\t'Image is scaled and cropped to fill the entire space without being distorted.'\n\t),\n\tcontain: __(\n\t\t'Image is scaled to fill the space without clipping nor distorting.'\n\t),\n\tfill: __(\n\t\t'Image will be stretched and distorted to completely fill the space.'\n\t),\n};\n\nconst DimensionControls = ( {\n\tattributes: { width, height, scale },\n\tsetAttributes,\n} ) => {\n\tconst defaultUnits = [ 'px', '%', 'vw', 'em', 'rem' ];\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || defaultUnits,\n\t} );\n\tconst onDimensionChange = ( dimension, nextValue ) => {\n\t\tconst parsedValue = parseFloat( nextValue );\n\t\t/**\n\t\t * If we have no value set and we change the unit,\n\t\t * we don't want to set the attribute, as it would\n\t\t * end up having the unit as value without any number.\n\t\t */\n\t\tif ( isNaN( parsedValue ) && nextValue ) return;\n\t\tsetAttributes( {\n\t\t\t[ dimension ]: parsedValue < 0 ? '0' : nextValue,\n\t\t} );\n\t};\n\tconst scaleLabel = _x( 'Scale', 'Image scaling options' );\n\treturn (\n\t\t<PanelBody title={ __( 'Dimensions' ) }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName={ classNames(\n\t\t\t\t\t'block-library-post-featured-image-dimension-controls',\n\t\t\t\t\t{ 'scale-control-is-visible': !! height }\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\tvalue={ height || '' }\n\t\t\t\t\t\tonChange={ ( nextHeight ) => {\n\t\t\t\t\t\t\tonDimensionChange( 'height', nextHeight );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\tonDimensionChange( 'width', nextWidth );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t\t{ !! height && (\n\t\t\t\t<ToggleGroupControl\n\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\tvalue={ scale }\n\t\t\t\t\thelp={ scaleHelp[ scale ] }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tscale: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tisBlock\n\t\t\t\t>\n\t\t\t\t\t{ SCALE_OPTIONS }\n\t\t\t\t</ToggleGroupControl>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n};\n\nexport default DimensionControls;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/dimension-controls.js"],"names":["SCALE_OPTIONS","DEFAULT_SCALE","scaleHelp","cover","contain","fill","DimensionControls","clientId","attributes","width","height","scale","setAttributes","defaultUnits","units","availableUnits","onDimensionChange","dimension","nextValue","parsedValue","parseFloat","isNaN","scaleLabel","undefined","nextHeight","nextWidth","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls, useSetting } from '@wordpress/block-editor';\n\nconst SCALE_OPTIONS = (\n\t<>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"cover\"\n\t\t\tlabel={ _x( 'Cover', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"contain\"\n\t\t\tlabel={ _x(\n\t\t\t\t'Contain',\n\t\t\t\t'Scale option for Image dimension control'\n\t\t\t) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"fill\"\n\t\t\tlabel={ _x( 'Fill', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t</>\n);\n\nconst DEFAULT_SCALE = 'cover';\n\nconst scaleHelp = {\n\tcover: __(\n\t\t'Image is scaled and cropped to fill the entire space without being distorted.'\n\t),\n\tcontain: __(\n\t\t'Image is scaled to fill the space without clipping nor distorting.'\n\t),\n\tfill: __(\n\t\t'Image will be stretched and distorted to completely fill the space.'\n\t),\n};\n\nconst DimensionControls = ( {\n\tclientId,\n\tattributes: { width, height, scale },\n\tsetAttributes,\n} ) => {\n\tconst defaultUnits = [ 'px', '%', 'vw', 'em', 'rem' ];\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || defaultUnits,\n\t} );\n\tconst onDimensionChange = ( dimension, nextValue ) => {\n\t\tconst parsedValue = parseFloat( nextValue );\n\t\t/**\n\t\t * If we have no value set and we change the unit,\n\t\t * we don't want to set the attribute, as it would\n\t\t * end up having the unit as value without any number.\n\t\t */\n\t\tif ( isNaN( parsedValue ) && nextValue ) return;\n\t\tsetAttributes( {\n\t\t\t[ dimension ]: parsedValue < 0 ? '0' : nextValue,\n\t\t} );\n\t};\n\tconst scaleLabel = _x( 'Scale', 'Image scaling options' );\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! height }\n\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { height: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\theight: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ height || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\tonDimensionChange( 'height', nextHeight )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! width }\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tonDimensionChange( 'width', nextWidth )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t{ !! height && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! scale && scale !== DEFAULT_SCALE }\n\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\t\tvalue={ scale }\n\t\t\t\t\t\thelp={ scaleHelp[ scale ] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tscale: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t{ SCALE_OPTIONS }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n};\n\nexport default DimensionControls;\n"]}