@wordpress/block-library 9.20.0 → 9.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/categories/edit.js +3 -3
  3. package/build/categories/edit.js.map +1 -1
  4. package/build/embed/edit.js +4 -1
  5. package/build/embed/edit.js.map +1 -1
  6. package/build/image/edit.js +3 -2
  7. package/build/image/edit.js.map +1 -1
  8. package/build/image/image.js +13 -8
  9. package/build/image/image.js.map +1 -1
  10. package/build/navigation/edit/index.js +8 -4
  11. package/build/navigation/edit/index.js.map +1 -1
  12. package/build/navigation-link/edit.js +27 -8
  13. package/build/navigation-link/edit.js.map +1 -1
  14. package/build/post-featured-image/edit.js +2 -1
  15. package/build/post-featured-image/edit.js.map +1 -1
  16. package/build/query-total/index.js +3 -0
  17. package/build/query-total/index.js.map +1 -1
  18. package/build/rss/edit.js +21 -1
  19. package/build/rss/edit.js.map +1 -1
  20. package/build/rss/index.js +7 -0
  21. package/build/rss/index.js.map +1 -1
  22. package/build/site-title/edit.js +1 -1
  23. package/build/site-title/edit.js.map +1 -1
  24. package/build/table-of-contents/edit.js +50 -8
  25. package/build/table-of-contents/edit.js.map +1 -1
  26. package/build/table-of-contents/hooks.js +7 -1
  27. package/build/table-of-contents/hooks.js.map +1 -1
  28. package/build/table-of-contents/index.js +3 -0
  29. package/build/table-of-contents/index.js.map +1 -1
  30. package/build-module/categories/edit.js +3 -3
  31. package/build-module/categories/edit.js.map +1 -1
  32. package/build-module/embed/edit.js +4 -1
  33. package/build-module/embed/edit.js.map +1 -1
  34. package/build-module/image/edit.js +3 -2
  35. package/build-module/image/edit.js.map +1 -1
  36. package/build-module/image/image.js +14 -9
  37. package/build-module/image/image.js.map +1 -1
  38. package/build-module/navigation/edit/index.js +8 -4
  39. package/build-module/navigation/edit/index.js.map +1 -1
  40. package/build-module/navigation-link/edit.js +28 -9
  41. package/build-module/navigation-link/edit.js.map +1 -1
  42. package/build-module/post-featured-image/edit.js +2 -1
  43. package/build-module/post-featured-image/edit.js.map +1 -1
  44. package/build-module/query-total/index.js +3 -0
  45. package/build-module/query-total/index.js.map +1 -1
  46. package/build-module/rss/edit.js +22 -2
  47. package/build-module/rss/edit.js.map +1 -1
  48. package/build-module/rss/index.js +7 -0
  49. package/build-module/rss/index.js.map +1 -1
  50. package/build-module/site-title/edit.js +1 -1
  51. package/build-module/site-title/edit.js.map +1 -1
  52. package/build-module/table-of-contents/edit.js +52 -10
  53. package/build-module/table-of-contents/edit.js.map +1 -1
  54. package/build-module/table-of-contents/hooks.js +7 -1
  55. package/build-module/table-of-contents/hooks.js.map +1 -1
  56. package/build-module/table-of-contents/index.js +3 -0
  57. package/build-module/table-of-contents/index.js.map +1 -1
  58. package/build-style/post-comments-form/style-rtl.css +3 -0
  59. package/build-style/post-comments-form/style.css +3 -0
  60. package/build-style/style-rtl.css +3 -0
  61. package/build-style/style.css +3 -0
  62. package/package.json +35 -35
  63. package/src/categories/edit.js +3 -3
  64. package/src/embed/edit.js +7 -1
  65. package/src/image/edit.js +3 -3
  66. package/src/image/image.js +9 -12
  67. package/src/navigation/edit/index.js +4 -0
  68. package/src/navigation-link/edit.js +45 -11
  69. package/src/post-comments-form/style.scss +5 -0
  70. package/src/post-featured-image/edit.js +2 -1
  71. package/src/query-total/block.json +3 -0
  72. package/src/query-total/index.php +1 -1
  73. package/src/rss/block.json +7 -0
  74. package/src/rss/edit.js +21 -0
  75. package/src/rss/index.php +27 -9
  76. package/src/site-title/edit.js +1 -1
  77. package/src/site-title/index.php +1 -1
  78. package/src/table-of-contents/block.json +3 -0
  79. package/src/table-of-contents/edit.js +45 -4
  80. package/src/table-of-contents/hooks.js +7 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_es","_interopRequireDefault","require","_data","_dom","_element","_url","_blockEditor","getLatestHeadings","select","clientId","_select$getPermalink","_getBlockAttributes","getBlockAttributes","getBlockName","getBlocksByName","getClientIdsOfDescendants","blockEditorStore","permalink","getPermalink","isPaginated","length","onlyIncludeCurrentPage","postContentClientId","allBlockClientIds","tocPage","tocIndex","indexOf","blockIndex","blockClientId","entries","latestHeadings","headingPage","headingPageLink","addQueryArgs","page","blockName","removeQueryArgs","headingAttributes","canBeLinked","anchor","push","content","stripHTML","replace","level","link","observeCallback","dispatch","updateBlockAttributes","__unstableMarkNextChangeAsNotPersistent","attributes","headings","fastDeepEqual","useObserveHeadings","registry","useRegistry","useEffect","subscribe"],"sources":["@wordpress/block-library/src/table-of-contents/hooks.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { useEffect } from '@wordpress/element';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction getLatestHeadings( select, clientId ) {\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetBlockName,\n\t\tgetBlocksByName,\n\t\tgetClientIdsOfDescendants,\n\t} = select( blockEditorStore );\n\n\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t// declaring @wordpress/editor as a dependency, we must access its\n\t// store by string. When the store is not available, editorSelectors\n\t// will be null, and the block's saved markup will lack permalinks.\n\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\tconst permalink = select( 'core/editor' ).getPermalink() ?? null;\n\n\tconst isPaginated = getBlocksByName( 'core/nextpage' ).length !== 0;\n\tconst { onlyIncludeCurrentPage } = getBlockAttributes( clientId ) ?? {};\n\n\t// Get post-content block client ID.\n\tconst [ postContentClientId = '' ] = getBlocksByName( 'core/post-content' );\n\n\t// Get the client ids of all blocks in the editor.\n\tconst allBlockClientIds = getClientIdsOfDescendants( postContentClientId );\n\n\t// If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.\n\tlet tocPage = 1;\n\n\tif ( isPaginated && onlyIncludeCurrentPage ) {\n\t\t// We can't use getBlockIndex because it only returns the index\n\t\t// relative to sibling blocks.\n\t\tconst tocIndex = allBlockClientIds.indexOf( clientId );\n\n\t\tfor ( const [\n\t\t\tblockIndex,\n\t\t\tblockClientId,\n\t\t] of allBlockClientIds.entries() ) {\n\t\t\t// If we've reached blocks after the Table of Contents, we've\n\t\t\t// finished calculating which page the block is on.\n\t\t\tif ( blockIndex >= tocIndex ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( getBlockName( blockClientId ) === 'core/nextpage' ) {\n\t\t\t\ttocPage++;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst latestHeadings = [];\n\n\t/** The page (of a paginated post) a heading will be part of. */\n\tlet headingPage = 1;\n\tlet headingPageLink = null;\n\n\t// If the core/editor store is available, we can add permalinks to the\n\t// generated table of contents.\n\tif ( typeof permalink === 'string' ) {\n\t\theadingPageLink = isPaginated\n\t\t\t? addQueryArgs( permalink, { page: headingPage } )\n\t\t\t: permalink;\n\t}\n\n\tfor ( const blockClientId of allBlockClientIds ) {\n\t\tconst blockName = getBlockName( blockClientId );\n\t\tif ( blockName === 'core/nextpage' ) {\n\t\t\theadingPage++;\n\n\t\t\t// If we're only including headings from the current page (of\n\t\t\t// a paginated post), then exit the loop if we've reached the\n\t\t\t// pages after the one with the Table of Contents block.\n\t\t\tif ( onlyIncludeCurrentPage && headingPage > tocPage ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\theadingPageLink = addQueryArgs(\n\t\t\t\t\tremoveQueryArgs( permalink, [ 'page' ] ),\n\t\t\t\t\t{ page: headingPage }\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// If we're including all headings or we've reached headings on\n\t\t// the same page as the Table of Contents block, add them to the\n\t\t// list.\n\t\telse if ( ! onlyIncludeCurrentPage || headingPage === tocPage ) {\n\t\t\tif ( blockName === 'core/heading' ) {\n\t\t\t\tconst headingAttributes = getBlockAttributes( blockClientId );\n\n\t\t\t\tconst canBeLinked =\n\t\t\t\t\ttypeof headingPageLink === 'string' &&\n\t\t\t\t\ttypeof headingAttributes.anchor === 'string' &&\n\t\t\t\t\theadingAttributes.anchor !== '';\n\n\t\t\t\tlatestHeadings.push( {\n\t\t\t\t\t// Convert line breaks to spaces, and get rid of HTML tags in the headings.\n\t\t\t\t\tcontent: stripHTML(\n\t\t\t\t\t\theadingAttributes.content.replace(\n\t\t\t\t\t\t\t/(<br *\\/?>)+/g,\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\tlevel: headingAttributes.level,\n\t\t\t\t\tlink: canBeLinked\n\t\t\t\t\t\t? `${ headingPageLink }#${ headingAttributes.anchor }`\n\t\t\t\t\t\t: null,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn latestHeadings;\n}\n\nfunction observeCallback( select, dispatch, clientId ) {\n\tconst { getBlockAttributes } = select( blockEditorStore );\n\tconst { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } =\n\t\tdispatch( blockEditorStore );\n\n\t/**\n\t * If the block no longer exists in the store, skip the update.\n\t * The \"undo\" action recreates the block and provides a new `clientId`.\n\t * The hook still might be observing the changes while the old block unmounts.\n\t */\n\tconst attributes = getBlockAttributes( clientId );\n\tif ( attributes === null ) {\n\t\treturn;\n\t}\n\n\tconst headings = getLatestHeadings( select, clientId );\n\tif ( ! fastDeepEqual( headings, attributes.headings ) ) {\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tupdateBlockAttributes( clientId, { headings } );\n\t}\n}\n\nexport function useObserveHeadings( clientId ) {\n\tconst registry = useRegistry();\n\tuseEffect( () => {\n\t\t// Todo: Limit subscription to block editor store when data no longer depends on `getPermalink`.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/45513\n\t\treturn registry.subscribe( () =>\n\t\t\tobserveCallback( registry.select, registry.dispatch, clientId )\n\t\t);\n\t}, [ registry, clientId ] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_es","_interopRequireDefault","require","_data","_dom","_element","_url","_blockEditor","getLatestHeadings","select","clientId","_select$getPermalink","_getBlockAttributes","getBlockAttributes","getBlockName","getBlocksByName","getClientIdsOfDescendants","blockEditorStore","permalink","getPermalink","isPaginated","length","onlyIncludeCurrentPage","maxLevel","postContentClientId","allBlockClientIds","tocPage","tocIndex","indexOf","blockIndex","blockClientId","entries","latestHeadings","headingPage","headingPageLink","addQueryArgs","page","blockName","removeQueryArgs","headingAttributes","level","canBeLinked","anchor","push","content","stripHTML","replace","link","observeCallback","dispatch","updateBlockAttributes","__unstableMarkNextChangeAsNotPersistent","attributes","headings","fastDeepEqual","useObserveHeadings","registry","useRegistry","useEffect","subscribe"],"sources":["@wordpress/block-library/src/table-of-contents/hooks.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { useEffect } from '@wordpress/element';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction getLatestHeadings( select, clientId ) {\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetBlockName,\n\t\tgetBlocksByName,\n\t\tgetClientIdsOfDescendants,\n\t} = select( blockEditorStore );\n\n\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t// declaring @wordpress/editor as a dependency, we must access its\n\t// store by string. When the store is not available, editorSelectors\n\t// will be null, and the block's saved markup will lack permalinks.\n\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\tconst permalink = select( 'core/editor' ).getPermalink() ?? null;\n\n\tconst isPaginated = getBlocksByName( 'core/nextpage' ).length !== 0;\n\tconst { onlyIncludeCurrentPage, maxLevel } =\n\t\tgetBlockAttributes( clientId ) ?? {};\n\n\t// Get post-content block client ID.\n\tconst [ postContentClientId = '' ] = getBlocksByName( 'core/post-content' );\n\n\t// Get the client ids of all blocks in the editor.\n\tconst allBlockClientIds = getClientIdsOfDescendants( postContentClientId );\n\n\t// If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.\n\tlet tocPage = 1;\n\n\tif ( isPaginated && onlyIncludeCurrentPage ) {\n\t\t// We can't use getBlockIndex because it only returns the index\n\t\t// relative to sibling blocks.\n\t\tconst tocIndex = allBlockClientIds.indexOf( clientId );\n\n\t\tfor ( const [\n\t\t\tblockIndex,\n\t\t\tblockClientId,\n\t\t] of allBlockClientIds.entries() ) {\n\t\t\t// If we've reached blocks after the Table of Contents, we've\n\t\t\t// finished calculating which page the block is on.\n\t\t\tif ( blockIndex >= tocIndex ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( getBlockName( blockClientId ) === 'core/nextpage' ) {\n\t\t\t\ttocPage++;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst latestHeadings = [];\n\n\t/** The page (of a paginated post) a heading will be part of. */\n\tlet headingPage = 1;\n\tlet headingPageLink = null;\n\n\t// If the core/editor store is available, we can add permalinks to the\n\t// generated table of contents.\n\tif ( typeof permalink === 'string' ) {\n\t\theadingPageLink = isPaginated\n\t\t\t? addQueryArgs( permalink, { page: headingPage } )\n\t\t\t: permalink;\n\t}\n\n\tfor ( const blockClientId of allBlockClientIds ) {\n\t\tconst blockName = getBlockName( blockClientId );\n\t\tif ( blockName === 'core/nextpage' ) {\n\t\t\theadingPage++;\n\n\t\t\t// If we're only including headings from the current page (of\n\t\t\t// a paginated post), then exit the loop if we've reached the\n\t\t\t// pages after the one with the Table of Contents block.\n\t\t\tif ( onlyIncludeCurrentPage && headingPage > tocPage ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\theadingPageLink = addQueryArgs(\n\t\t\t\t\tremoveQueryArgs( permalink, [ 'page' ] ),\n\t\t\t\t\t{ page: headingPage }\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// If we're including all headings or we've reached headings on\n\t\t// the same page as the Table of Contents block, add them to the\n\t\t// list.\n\t\telse if ( ! onlyIncludeCurrentPage || headingPage === tocPage ) {\n\t\t\tif ( blockName === 'core/heading' ) {\n\t\t\t\tconst headingAttributes = getBlockAttributes( blockClientId );\n\n\t\t\t\t// Skip headings that are deeper than maxLevel\n\t\t\t\tif ( maxLevel && headingAttributes.level > maxLevel ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst canBeLinked =\n\t\t\t\t\ttypeof headingPageLink === 'string' &&\n\t\t\t\t\ttypeof headingAttributes.anchor === 'string' &&\n\t\t\t\t\theadingAttributes.anchor !== '';\n\n\t\t\t\tlatestHeadings.push( {\n\t\t\t\t\t// Convert line breaks to spaces, and get rid of HTML tags in the headings.\n\t\t\t\t\tcontent: stripHTML(\n\t\t\t\t\t\theadingAttributes.content.replace(\n\t\t\t\t\t\t\t/(<br *\\/?>)+/g,\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\tlevel: headingAttributes.level,\n\t\t\t\t\tlink: canBeLinked\n\t\t\t\t\t\t? `${ headingPageLink }#${ headingAttributes.anchor }`\n\t\t\t\t\t\t: null,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn latestHeadings;\n}\n\nfunction observeCallback( select, dispatch, clientId ) {\n\tconst { getBlockAttributes } = select( blockEditorStore );\n\tconst { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } =\n\t\tdispatch( blockEditorStore );\n\n\t/**\n\t * If the block no longer exists in the store, skip the update.\n\t * The \"undo\" action recreates the block and provides a new `clientId`.\n\t * The hook still might be observing the changes while the old block unmounts.\n\t */\n\tconst attributes = getBlockAttributes( clientId );\n\tif ( attributes === null ) {\n\t\treturn;\n\t}\n\n\tconst headings = getLatestHeadings( select, clientId );\n\tif ( ! fastDeepEqual( headings, attributes.headings ) ) {\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tupdateBlockAttributes( clientId, { headings } );\n\t}\n}\n\nexport function useObserveHeadings( clientId ) {\n\tconst registry = useRegistry();\n\tuseEffect( () => {\n\t\t// Todo: Limit subscription to block editor store when data no longer depends on `getPermalink`.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/45513\n\t\treturn registry.subscribe( () =>\n\t\t\tobserveCallback( registry.select, registry.dispatch, clientId )\n\t\t);\n\t}, [ registry, clientId ] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -37,6 +37,9 @@ const metadata = exports.metadata = {
37
37
  onlyIncludeCurrentPage: {
38
38
  type: "boolean",
39
39
  "default": false
40
+ },
41
+ maxLevel: {
42
+ type: "number"
40
43
  }
41
44
  },
42
45
  supports: {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_edit","_save","metadata","exports","$schema","apiVersion","__experimental","name","title","category","description","keywords","textdomain","attributes","headings","type","items","onlyIncludeCurrentPage","supports","html","color","text","background","gradients","link","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","__experimentalDefaultControls","interactivity","clientNavigation","__experimentalBorder","radius","width","style","settings","icon","edit","save","example","innerBlocks","level","content","__","init","initBlock"],"sources":["@wordpress/block-library/src/table-of-contents/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { tableOfContents as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 2,\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 3,\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 2,\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 3,\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tattributes: {\n\t\t\theadings: [\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t\tlevel: 2,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t\tlevel: 3,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t\tlevel: 2,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t\tlevel: 3,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_edit","_save","metadata","exports","$schema","apiVersion","__experimental","name","title","category","description","keywords","textdomain","attributes","headings","type","items","onlyIncludeCurrentPage","maxLevel","supports","html","color","text","background","gradients","link","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","__experimentalDefaultControls","interactivity","clientNavigation","__experimentalBorder","radius","width","style","settings","icon","edit","save","example","innerBlocks","level","content","__","init","initBlock"],"sources":["@wordpress/block-library/src/table-of-contents/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { tableOfContents as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 2,\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 3,\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 2,\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 3,\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tattributes: {\n\t\t\theadings: [\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t\tlevel: 2,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t\tlevel: 3,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t\tlevel: 2,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t\tlevel: 3,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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","ignoreList":[]}
@@ -101,7 +101,7 @@ export default function CategoriesEdit({
101
101
  children: [showLabel ? /*#__PURE__*/_jsx(RichText, {
102
102
  className: "wp-block-categories__label",
103
103
  "aria-label": __('Label text'),
104
- placeholder: taxonomy.name,
104
+ placeholder: taxonomy?.name,
105
105
  withoutInteractiveFormatting: true,
106
106
  value: label,
107
107
  onChange: html => setAttributes({
@@ -110,12 +110,12 @@ export default function CategoriesEdit({
110
110
  }) : /*#__PURE__*/_jsx(VisuallyHidden, {
111
111
  as: "label",
112
112
  htmlFor: selectId,
113
- children: label ? label : taxonomy.name
113
+ children: label ? label : taxonomy?.name
114
114
  }), /*#__PURE__*/_jsxs("select", {
115
115
  id: selectId,
116
116
  children: [/*#__PURE__*/_jsx("option", {
117
117
  children: sprintf(/* translators: %s: taxonomy's singular name */
118
- __('Select %s'), taxonomy.labels.singular_name)
118
+ __('Select %s'), taxonomy?.labels?.singular_name)
119
119
  }), categoriesList.map(category => renderCategoryDropdownItem(category, 0))]
120
120
  })]
121
121
  });
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","Placeholder","SelectControl","Spinner","ToggleControl","VisuallyHidden","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","useInstanceId","InspectorControls","useBlockProps","RichText","decodeEntities","__","sprintf","pin","useEntityRecords","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","CategoriesEdit","attributes","displayAsDropdown","showHierarchy","showPostCounts","showOnlyTopLevel","showEmpty","label","showLabel","taxonomy","taxonomySlug","setAttributes","className","selectId","records","allTaxonomies","isResolvingTaxonomies","taxonomies","filter","t","visibility","public","find","slug","isHierarchicalTaxonomy","hierarchical","query","per_page","hide_empty","context","parent","categories","isResolving","getCategoriesList","parentId","length","toggleAttribute","attributeName","newValue","renderCategoryName","name","trim","renderCategoryList","categoriesList","map","category","renderCategoryListItem","childCategories","id","link","count","children","href","target","rel","childCategory","renderCategoryDropdown","placeholder","withoutInteractiveFormatting","value","onChange","html","as","htmlFor","labels","singular_name","renderCategoryDropdownItem","level","Array","from","TagName","classes","blockProps","dropdownMenuProps","resetAll","isArray","hasValue","onDeselect","isShownByDefault","__nextHasNoMarginBottom","__next40pxDefaultSize","options","selectedTaxonomy","checked","icon","no_terms"],"sources":["@wordpress/block-library/src/categories/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tPlaceholder,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n\tVisuallyHidden,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { pin } from '@wordpress/icons';\nimport { useEntityRecords } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function CategoriesEdit( {\n\tattributes: {\n\t\tdisplayAsDropdown,\n\t\tshowHierarchy,\n\t\tshowPostCounts,\n\t\tshowOnlyTopLevel,\n\t\tshowEmpty,\n\t\tlabel,\n\t\tshowLabel,\n\t\ttaxonomy: taxonomySlug,\n\t},\n\tsetAttributes,\n\tclassName,\n} ) {\n\tconst selectId = useInstanceId( CategoriesEdit, 'blocks-category-select' );\n\n\tconst { records: allTaxonomies, isResolvingTaxonomies } = useEntityRecords(\n\t\t'root',\n\t\t'taxonomy'\n\t);\n\n\tconst taxonomies = allTaxonomies?.filter( ( t ) => t.visibility.public );\n\n\tconst taxonomy = taxonomies?.find( ( t ) => t.slug === taxonomySlug );\n\n\tconst isHierarchicalTaxonomy =\n\t\t! isResolvingTaxonomies && taxonomy?.hierarchical;\n\n\tconst query = { per_page: -1, hide_empty: ! showEmpty, context: 'view' };\n\tif ( isHierarchicalTaxonomy && showOnlyTopLevel ) {\n\t\tquery.parent = 0;\n\t}\n\n\tconst { records: categories, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomySlug,\n\t\tquery\n\t);\n\n\tconst getCategoriesList = ( parentId ) => {\n\t\tif ( ! categories?.length ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( parentId === null ) {\n\t\t\treturn categories;\n\t\t}\n\t\treturn categories.filter( ( { parent } ) => parent === parentId );\n\t};\n\n\tconst toggleAttribute = ( attributeName ) => ( newValue ) =>\n\t\tsetAttributes( { [ attributeName ]: newValue } );\n\n\tconst renderCategoryName = ( name ) =>\n\t\t! name ? __( '(Untitled)' ) : decodeEntities( name ).trim();\n\n\tconst renderCategoryList = () => {\n\t\tconst parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;\n\t\tconst categoriesList = getCategoriesList( parentId );\n\t\treturn categoriesList.map( ( category ) =>\n\t\t\trenderCategoryListItem( category )\n\t\t);\n\t};\n\n\tconst renderCategoryListItem = ( category ) => {\n\t\tconst childCategories = getCategoriesList( category.id );\n\t\tconst { id, link, count, name } = category;\n\t\treturn (\n\t\t\t<li key={ id } className={ `cat-item cat-item-${ id }` }>\n\t\t\t\t<a href={ link } target=\"_blank\" rel=\"noreferrer noopener\">\n\t\t\t\t\t{ renderCategoryName( name ) }\n\t\t\t\t</a>\n\t\t\t\t{ showPostCounts && ` (${ count })` }\n\t\t\t\t{ isHierarchicalTaxonomy &&\n\t\t\t\t\tshowHierarchy &&\n\t\t\t\t\t!! childCategories.length && (\n\t\t\t\t\t\t<ul className=\"children\">\n\t\t\t\t\t\t\t{ childCategories.map( ( childCategory ) =>\n\t\t\t\t\t\t\t\trenderCategoryListItem( childCategory )\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</li>\n\t\t);\n\t};\n\n\tconst renderCategoryDropdown = () => {\n\t\tconst parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;\n\t\tconst categoriesList = getCategoriesList( parentId );\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ showLabel ? (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName=\"wp-block-categories__label\"\n\t\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\t\tplaceholder={ taxonomy.name }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<VisuallyHidden as=\"label\" htmlFor={ selectId }>\n\t\t\t\t\t\t{ label ? label : taxonomy.name }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t\t<select id={ selectId }>\n\t\t\t\t\t<option>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: taxonomy's singular name */\n\t\t\t\t\t\t\t__( 'Select %s' ),\n\t\t\t\t\t\t\ttaxonomy.labels.singular_name\n\t\t\t\t\t\t) }\n\t\t\t\t\t</option>\n\t\t\t\t\t{ categoriesList.map( ( category ) =>\n\t\t\t\t\t\trenderCategoryDropdownItem( category, 0 )\n\t\t\t\t\t) }\n\t\t\t\t</select>\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst renderCategoryDropdownItem = ( category, level ) => {\n\t\tconst { id, count, name } = category;\n\t\tconst childCategories = getCategoriesList( id );\n\t\treturn [\n\t\t\t<option key={ id } className={ `level-${ level }` }>\n\t\t\t\t{ Array.from( { length: level * 3 } ).map( () => '\\xa0' ) }\n\t\t\t\t{ renderCategoryName( name ) }\n\t\t\t\t{ showPostCounts && ` (${ count })` }\n\t\t\t</option>,\n\t\t\tisHierarchicalTaxonomy &&\n\t\t\t\tshowHierarchy &&\n\t\t\t\t!! childCategories.length &&\n\t\t\t\tchildCategories.map( ( childCategory ) =>\n\t\t\t\t\trenderCategoryDropdownItem( childCategory, level + 1 )\n\t\t\t\t),\n\t\t];\n\t};\n\n\tconst TagName =\n\t\t!! categories?.length && ! displayAsDropdown && ! isResolving\n\t\t\t? 'ul'\n\t\t\t: 'div';\n\n\tconst classes = clsx( className, {\n\t\t'wp-block-categories-list':\n\t\t\t!! categories?.length && ! displayAsDropdown && ! isResolving,\n\t\t'wp-block-categories-dropdown':\n\t\t\t!! categories?.length && displayAsDropdown && ! isResolving,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<TagName { ...blockProps }>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttaxonomy: 'category',\n\t\t\t\t\t\t\tdisplayAsDropdown: false,\n\t\t\t\t\t\t\tshowHierarchy: false,\n\t\t\t\t\t\t\tshowPostCounts: false,\n\t\t\t\t\t\t\tshowOnlyTopLevel: false,\n\t\t\t\t\t\t\tshowEmpty: false,\n\t\t\t\t\t\t\tshowLabel: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ Array.isArray( taxonomies ) && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => {\n\t\t\t\t\t\t\t\treturn taxonomySlug !== 'category';\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { taxonomy: 'category' } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\t\t\t\toptions={ taxonomies.map( ( t ) => ( {\n\t\t\t\t\t\t\t\t\tlabel: t.name,\n\t\t\t\t\t\t\t\t\tvalue: t.slug,\n\t\t\t\t\t\t\t\t} ) ) }\n\t\t\t\t\t\t\t\tvalue={ taxonomySlug }\n\t\t\t\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\ttaxonomy: selectedTaxonomy,\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! displayAsDropdown }\n\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAsDropdown: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAsDropdown' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ displayAsDropdown && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showLabel }\n\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showLabel: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"wp-block-categories__indentation\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\t\tchecked={ showLabel }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showLabel' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! showPostCounts }\n\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showPostCounts: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showPostCounts' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isHierarchicalTaxonomy && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! showOnlyTopLevel }\n\t\t\t\t\t\t\tlabel={ __( 'Show only top level terms' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showOnlyTopLevel: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show only top level terms' ) }\n\t\t\t\t\t\t\t\tchecked={ showOnlyTopLevel }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute(\n\t\t\t\t\t\t\t\t\t'showOnlyTopLevel'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! showEmpty }\n\t\t\t\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showEmpty: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\t\t\t\t\tchecked={ showEmpty }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showEmpty' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isHierarchicalTaxonomy && ! showOnlyTopLevel && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! showHierarchy }\n\t\t\t\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showHierarchy: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\t\t\t\t\tchecked={ showHierarchy }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showHierarchy' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ isResolving && (\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Terms' ) }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! isResolving && categories?.length === 0 && (\n\t\t\t\t<p>{ taxonomy.labels.no_terms }</p>\n\t\t\t) }\n\t\t\t{ ! isResolving &&\n\t\t\t\tcategories?.length > 0 &&\n\t\t\t\t( displayAsDropdown\n\t\t\t\t\t? renderCategoryDropdown()\n\t\t\t\t\t: renderCategoryList() ) }\n\t\t</TagName>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","Placeholder","SelectControl","Spinner","ToggleControl","VisuallyHidden","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","useInstanceId","InspectorControls","useBlockProps","RichText","decodeEntities","__","sprintf","pin","useEntityRecords","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","CategoriesEdit","attributes","displayAsDropdown","showHierarchy","showPostCounts","showOnlyTopLevel","showEmpty","label","showLabel","taxonomy","taxonomySlug","setAttributes","className","selectId","records","allTaxonomies","isResolvingTaxonomies","taxonomies","filter","t","visibility","public","find","slug","isHierarchicalTaxonomy","hierarchical","query","per_page","hide_empty","context","parent","categories","isResolving","getCategoriesList","parentId","length","toggleAttribute","attributeName","newValue","renderCategoryName","name","trim","renderCategoryList","categoriesList","map","category","renderCategoryListItem","childCategories","id","link","count","children","href","target","rel","childCategory","renderCategoryDropdown","placeholder","withoutInteractiveFormatting","value","onChange","html","as","htmlFor","labels","singular_name","renderCategoryDropdownItem","level","Array","from","TagName","classes","blockProps","dropdownMenuProps","resetAll","isArray","hasValue","onDeselect","isShownByDefault","__nextHasNoMarginBottom","__next40pxDefaultSize","options","selectedTaxonomy","checked","icon","no_terms"],"sources":["@wordpress/block-library/src/categories/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tPlaceholder,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n\tVisuallyHidden,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { pin } from '@wordpress/icons';\nimport { useEntityRecords } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function CategoriesEdit( {\n\tattributes: {\n\t\tdisplayAsDropdown,\n\t\tshowHierarchy,\n\t\tshowPostCounts,\n\t\tshowOnlyTopLevel,\n\t\tshowEmpty,\n\t\tlabel,\n\t\tshowLabel,\n\t\ttaxonomy: taxonomySlug,\n\t},\n\tsetAttributes,\n\tclassName,\n} ) {\n\tconst selectId = useInstanceId( CategoriesEdit, 'blocks-category-select' );\n\n\tconst { records: allTaxonomies, isResolvingTaxonomies } = useEntityRecords(\n\t\t'root',\n\t\t'taxonomy'\n\t);\n\n\tconst taxonomies = allTaxonomies?.filter( ( t ) => t.visibility.public );\n\n\tconst taxonomy = taxonomies?.find( ( t ) => t.slug === taxonomySlug );\n\n\tconst isHierarchicalTaxonomy =\n\t\t! isResolvingTaxonomies && taxonomy?.hierarchical;\n\n\tconst query = { per_page: -1, hide_empty: ! showEmpty, context: 'view' };\n\tif ( isHierarchicalTaxonomy && showOnlyTopLevel ) {\n\t\tquery.parent = 0;\n\t}\n\n\tconst { records: categories, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomySlug,\n\t\tquery\n\t);\n\n\tconst getCategoriesList = ( parentId ) => {\n\t\tif ( ! categories?.length ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( parentId === null ) {\n\t\t\treturn categories;\n\t\t}\n\t\treturn categories.filter( ( { parent } ) => parent === parentId );\n\t};\n\n\tconst toggleAttribute = ( attributeName ) => ( newValue ) =>\n\t\tsetAttributes( { [ attributeName ]: newValue } );\n\n\tconst renderCategoryName = ( name ) =>\n\t\t! name ? __( '(Untitled)' ) : decodeEntities( name ).trim();\n\n\tconst renderCategoryList = () => {\n\t\tconst parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;\n\t\tconst categoriesList = getCategoriesList( parentId );\n\t\treturn categoriesList.map( ( category ) =>\n\t\t\trenderCategoryListItem( category )\n\t\t);\n\t};\n\n\tconst renderCategoryListItem = ( category ) => {\n\t\tconst childCategories = getCategoriesList( category.id );\n\t\tconst { id, link, count, name } = category;\n\t\treturn (\n\t\t\t<li key={ id } className={ `cat-item cat-item-${ id }` }>\n\t\t\t\t<a href={ link } target=\"_blank\" rel=\"noreferrer noopener\">\n\t\t\t\t\t{ renderCategoryName( name ) }\n\t\t\t\t</a>\n\t\t\t\t{ showPostCounts && ` (${ count })` }\n\t\t\t\t{ isHierarchicalTaxonomy &&\n\t\t\t\t\tshowHierarchy &&\n\t\t\t\t\t!! childCategories.length && (\n\t\t\t\t\t\t<ul className=\"children\">\n\t\t\t\t\t\t\t{ childCategories.map( ( childCategory ) =>\n\t\t\t\t\t\t\t\trenderCategoryListItem( childCategory )\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</li>\n\t\t);\n\t};\n\n\tconst renderCategoryDropdown = () => {\n\t\tconst parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;\n\t\tconst categoriesList = getCategoriesList( parentId );\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ showLabel ? (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName=\"wp-block-categories__label\"\n\t\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\t\tplaceholder={ taxonomy?.name }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<VisuallyHidden as=\"label\" htmlFor={ selectId }>\n\t\t\t\t\t\t{ label ? label : taxonomy?.name }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t\t<select id={ selectId }>\n\t\t\t\t\t<option>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: taxonomy's singular name */\n\t\t\t\t\t\t\t__( 'Select %s' ),\n\t\t\t\t\t\t\ttaxonomy?.labels?.singular_name\n\t\t\t\t\t\t) }\n\t\t\t\t\t</option>\n\t\t\t\t\t{ categoriesList.map( ( category ) =>\n\t\t\t\t\t\trenderCategoryDropdownItem( category, 0 )\n\t\t\t\t\t) }\n\t\t\t\t</select>\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst renderCategoryDropdownItem = ( category, level ) => {\n\t\tconst { id, count, name } = category;\n\t\tconst childCategories = getCategoriesList( id );\n\t\treturn [\n\t\t\t<option key={ id } className={ `level-${ level }` }>\n\t\t\t\t{ Array.from( { length: level * 3 } ).map( () => '\\xa0' ) }\n\t\t\t\t{ renderCategoryName( name ) }\n\t\t\t\t{ showPostCounts && ` (${ count })` }\n\t\t\t</option>,\n\t\t\tisHierarchicalTaxonomy &&\n\t\t\t\tshowHierarchy &&\n\t\t\t\t!! childCategories.length &&\n\t\t\t\tchildCategories.map( ( childCategory ) =>\n\t\t\t\t\trenderCategoryDropdownItem( childCategory, level + 1 )\n\t\t\t\t),\n\t\t];\n\t};\n\n\tconst TagName =\n\t\t!! categories?.length && ! displayAsDropdown && ! isResolving\n\t\t\t? 'ul'\n\t\t\t: 'div';\n\n\tconst classes = clsx( className, {\n\t\t'wp-block-categories-list':\n\t\t\t!! categories?.length && ! displayAsDropdown && ! isResolving,\n\t\t'wp-block-categories-dropdown':\n\t\t\t!! categories?.length && displayAsDropdown && ! isResolving,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<TagName { ...blockProps }>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttaxonomy: 'category',\n\t\t\t\t\t\t\tdisplayAsDropdown: false,\n\t\t\t\t\t\t\tshowHierarchy: false,\n\t\t\t\t\t\t\tshowPostCounts: false,\n\t\t\t\t\t\t\tshowOnlyTopLevel: false,\n\t\t\t\t\t\t\tshowEmpty: false,\n\t\t\t\t\t\t\tshowLabel: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ Array.isArray( taxonomies ) && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => {\n\t\t\t\t\t\t\t\treturn taxonomySlug !== 'category';\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { taxonomy: 'category' } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\t\t\t\toptions={ taxonomies.map( ( t ) => ( {\n\t\t\t\t\t\t\t\t\tlabel: t.name,\n\t\t\t\t\t\t\t\t\tvalue: t.slug,\n\t\t\t\t\t\t\t\t} ) ) }\n\t\t\t\t\t\t\t\tvalue={ taxonomySlug }\n\t\t\t\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\ttaxonomy: selectedTaxonomy,\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! displayAsDropdown }\n\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAsDropdown: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAsDropdown' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ displayAsDropdown && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showLabel }\n\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showLabel: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"wp-block-categories__indentation\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\t\tchecked={ showLabel }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showLabel' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! showPostCounts }\n\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showPostCounts: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showPostCounts' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isHierarchicalTaxonomy && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! showOnlyTopLevel }\n\t\t\t\t\t\t\tlabel={ __( 'Show only top level terms' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showOnlyTopLevel: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show only top level terms' ) }\n\t\t\t\t\t\t\t\tchecked={ showOnlyTopLevel }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute(\n\t\t\t\t\t\t\t\t\t'showOnlyTopLevel'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! showEmpty }\n\t\t\t\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showEmpty: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\t\t\t\t\tchecked={ showEmpty }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showEmpty' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isHierarchicalTaxonomy && ! showOnlyTopLevel && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! showHierarchy }\n\t\t\t\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showHierarchy: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\t\t\t\t\tchecked={ showHierarchy }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showHierarchy' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ isResolving && (\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Terms' ) }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! isResolving && categories?.length === 0 && (\n\t\t\t\t<p>{ taxonomy.labels.no_terms }</p>\n\t\t\t) }\n\t\t\t{ ! isResolving &&\n\t\t\t\tcategories?.length > 0 &&\n\t\t\t\t( displayAsDropdown\n\t\t\t\t\t? renderCategoryDropdown()\n\t\t\t\t\t: renderCategoryList() ) }\n\t\t</TagName>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -150,7 +150,10 @@ const EmbedEdit = props => {
150
150
  // When obtaining an incoming preview,
151
151
  // we set the attributes derived from the preview data.
152
152
  const mergedAttributes = getMergedAttributes();
153
- setAttributes(mergedAttributes);
153
+ const hasChanges = Object.keys(mergedAttributes).some(key => mergedAttributes[key] !== attributes[key]);
154
+ if (hasChanges) {
155
+ setAttributes(mergedAttributes);
156
+ }
154
157
  if (onReplace) {
155
158
  const upgradedBlock = createUpgradedEmbedBlock(props, mergedAttributes);
156
159
  if (upgradedBlock) {
@@ -1 +1 @@
1
- {"version":3,"names":["createUpgradedEmbedBlock","getClassNames","removeAspectRatioClasses","fallback","getEmbedInfoByProvider","getMergedAttributesWithPreview","EmbedControls","embedContentIcon","EmbedLoading","EmbedPlaceholder","EmbedPreview","clsx","__","_x","sprintf","useState","useEffect","useDispatch","useSelect","useBlockProps","store","coreStore","View","getAuthority","Caption","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EmbedEdit","props","attributes","providerNameSlug","previewable","responsive","url","attributesUrl","isSelected","onReplace","setAttributes","insertBlocksAfter","onFocus","defaultEmbedInfo","title","icon","setURL","isEditingURL","setIsEditingURL","invalidateResolution","preview","fetching","themeSupportsResponsive","cannotEmbed","hasResolved","select","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","getThemeSupports","hasFinishedResolution","embedPreview","previewIsFallback","badEmbedProvider","html","type","undefined","wordpressCantEmbed","data","status","validPreview","getMergedAttributes","toggleResponsive","allowResponsive","className","newAllowResponsive","newURL","replace","URL","host","toString","mergedAttributes","upgradedBlock","blockProps","children","label","showEmbedPlaceholder","onSubmit","event","preventDefault","blockClass","value","onChange","tryAgain","caption","classFromPreview","showEditButton","blockSupportsResponsive","switchBackToURLInput","onCaptionChange","showToolbarButton"],"sources":["@wordpress/block-library/src/embed/edit.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tcreateUpgradedEmbedBlock,\n\tgetClassNames,\n\tremoveAspectRatioClasses,\n\tfallback,\n\tgetEmbedInfoByProvider,\n\tgetMergedAttributesWithPreview,\n} from './util';\nimport EmbedControls from './embed-controls';\nimport { embedContentIcon } from './icons';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { View } from '@wordpress/primitives';\nimport { getAuthority } from '@wordpress/url';\nimport { Caption } from '../utils/caption';\n\nconst EmbedEdit = ( props ) => {\n\tconst {\n\t\tattributes: {\n\t\t\tproviderNameSlug,\n\t\t\tpreviewable,\n\t\t\tresponsive,\n\t\t\turl: attributesUrl,\n\t\t},\n\t\tattributes,\n\t\tisSelected,\n\t\tonReplace,\n\t\tsetAttributes,\n\t\tinsertBlocksAfter,\n\t\tonFocus,\n\t} = props;\n\n\tconst defaultEmbedInfo = {\n\t\ttitle: _x( 'Embed', 'block title' ),\n\t\ticon: embedContentIcon,\n\t};\n\tconst { icon, title } =\n\t\tgetEmbedInfoByProvider( providerNameSlug ) || defaultEmbedInfo;\n\n\tconst [ url, setURL ] = useState( attributesUrl );\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst { invalidateResolution } = useDispatch( coreStore );\n\n\tconst {\n\t\tpreview,\n\t\tfetching,\n\t\tthemeSupportsResponsive,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEmbedPreview,\n\t\t\t\tisPreviewEmbedFallback,\n\t\t\t\tisRequestingEmbedPreview,\n\t\t\t\tgetThemeSupports,\n\t\t\t\thasFinishedResolution,\n\t\t\t} = select( coreStore );\n\t\t\tif ( ! attributesUrl ) {\n\t\t\t\treturn { fetching: false, cannotEmbed: false };\n\t\t\t}\n\n\t\t\tconst embedPreview = getEmbedPreview( attributesUrl );\n\t\t\tconst previewIsFallback = isPreviewEmbedFallback( attributesUrl );\n\n\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\tconst badEmbedProvider =\n\t\t\t\tembedPreview?.html === false &&\n\t\t\t\tembedPreview?.type === undefined;\n\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t// a valid JSON response with no HTML and `data.status` set to 404, rather\n\t\t\t// than generating a fallback response as other embeds do.\n\t\t\tconst wordpressCantEmbed = embedPreview?.data?.status === 404;\n\t\t\tconst validPreview =\n\t\t\t\t!! embedPreview && ! badEmbedProvider && ! wordpressCantEmbed;\n\t\t\treturn {\n\t\t\t\tpreview: validPreview ? embedPreview : undefined,\n\t\t\t\tfetching: isRequestingEmbedPreview( attributesUrl ),\n\t\t\t\tthemeSupportsResponsive:\n\t\t\t\t\tgetThemeSupports()[ 'responsive-embeds' ],\n\t\t\t\tcannotEmbed: ! validPreview || previewIsFallback,\n\t\t\t\thasResolved: hasFinishedResolution( 'getEmbedPreview', [\n\t\t\t\t\tattributesUrl,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ attributesUrl ]\n\t);\n\n\t/**\n\t * Returns the attributes derived from the preview, merged with the current attributes.\n\t *\n\t * @return {Object} Merged attributes.\n\t */\n\tconst getMergedAttributes = () =>\n\t\tgetMergedAttributesWithPreview(\n\t\t\tattributes,\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tresponsive\n\t\t);\n\n\tconst toggleResponsive = () => {\n\t\tconst { allowResponsive, className } = attributes;\n\t\tconst { html } = preview;\n\t\tconst newAllowResponsive = ! allowResponsive;\n\n\t\tsetAttributes( {\n\t\t\tallowResponsive: newAllowResponsive,\n\t\t\tclassName: getClassNames(\n\t\t\t\thtml,\n\t\t\t\tclassName,\n\t\t\t\tresponsive && newAllowResponsive\n\t\t\t),\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( preview?.html || ! cannotEmbed || ! hasResolved ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// At this stage, we're not fetching the preview and know it can't be embedded,\n\t\t// so try removing any trailing slash, and resubmit.\n\t\tconst newURL = attributesUrl.replace( /\\/$/, '' );\n\t\tsetURL( newURL );\n\t\tsetIsEditingURL( false );\n\t\tsetAttributes( { url: newURL } );\n\t}, [\n\t\tpreview?.html,\n\t\tattributesUrl,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t\tsetAttributes,\n\t] );\n\n\t// Try a different provider in case the embed url is not supported.\n\tuseEffect( () => {\n\t\tif ( ! cannotEmbed || fetching || ! url ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Until X provider is supported in WordPress, as a workaround we use Twitter provider.\n\t\tif ( getAuthority( url ) === 'x.com' ) {\n\t\t\tconst newURL = new URL( url );\n\t\t\tnewURL.host = 'twitter.com';\n\t\t\tsetAttributes( { url: newURL.toString() } );\n\t\t}\n\t}, [ url, cannotEmbed, fetching, setAttributes ] );\n\n\t// Handle incoming preview.\n\tuseEffect( () => {\n\t\tif ( preview && ! isEditingURL ) {\n\t\t\t// When obtaining an incoming preview,\n\t\t\t// we set the attributes derived from the preview data.\n\t\t\tconst mergedAttributes = getMergedAttributes();\n\t\t\tsetAttributes( mergedAttributes );\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\t\tprops,\n\t\t\t\t\tmergedAttributes\n\t\t\t\t);\n\n\t\t\t\tif ( upgradedBlock ) {\n\t\t\t\t\tonReplace( upgradedBlock );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ preview, isEditingURL ] );\n\n\tconst blockProps = useBlockProps();\n\n\tif ( fetching ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedLoading />\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\tconst label = sprintf( __( '%s URL' ), title );\n\n\t// No preview, or we can't embed the current URL, or we've clicked the edit button.\n\tconst showEmbedPlaceholder = ! preview || cannotEmbed || isEditingURL;\n\n\tif ( showEmbedPlaceholder ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedPlaceholder\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\tif ( event ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If the embed URL was changed, we need to reset the aspect ratio class.\n\t\t\t\t\t\t// To do this we have to remove the existing ratio class so it can be recalculated.\n\t\t\t\t\t\tconst blockClass = removeAspectRatioClasses(\n\t\t\t\t\t\t\tattributes.className\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\tsetAttributes( { url, className: blockClass } );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ url }\n\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\tonChange={ ( value ) => setURL( value ) }\n\t\t\t\t\tfallback={ () => fallback( url, onReplace ) }\n\t\t\t\t\ttryAgain={ () => {\n\t\t\t\t\t\tinvalidateResolution( 'getEmbedPreview', [ url ] );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// Even though we set attributes that get derived from the preview,\n\t// we don't access them directly because for the initial render,\n\t// the `setAttributes` call will not have taken effect. If we're\n\t// rendering responsive content, setting the responsive classes\n\t// after the preview has been rendered can result in unwanted\n\t// clipping or scrollbars. The `getAttributesFromPreview` function\n\t// that `getMergedAttributes` uses is memoized so that we're not\n\t// calculating them on every render.\n\tconst {\n\t\tcaption,\n\t\ttype,\n\t\tallowResponsive,\n\t\tclassName: classFromPreview,\n\t} = getMergedAttributes();\n\tconst className = clsx( classFromPreview, props.className );\n\n\treturn (\n\t\t<>\n\t\t\t<EmbedControls\n\t\t\t\tshowEditButton={ preview && ! cannotEmbed }\n\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\ttoggleResponsive={ toggleResponsive }\n\t\t\t\tswitchBackToURLInput={ () => setIsEditingURL( true ) }\n\t\t\t/>\n\t\t\t<figure\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( blockProps.className, className, {\n\t\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t\t\t[ `wp-block-embed-${ providerNameSlug }` ]:\n\t\t\t\t\t\tproviderNameSlug,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<EmbedPreview\n\t\t\t\t\tpreview={ preview }\n\t\t\t\t\tpreviewable={ previewable }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\turl={ url }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcaption={ caption }\n\t\t\t\t\tonCaptionChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Embed caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n};\n\nexport default EmbedEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createUpgradedEmbedBlock","getClassNames","removeAspectRatioClasses","fallback","getEmbedInfoByProvider","getMergedAttributesWithPreview","EmbedControls","embedContentIcon","EmbedLoading","EmbedPlaceholder","EmbedPreview","clsx","__","_x","sprintf","useState","useEffect","useDispatch","useSelect","useBlockProps","store","coreStore","View","getAuthority","Caption","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EmbedEdit","props","attributes","providerNameSlug","previewable","responsive","url","attributesUrl","isSelected","onReplace","setAttributes","insertBlocksAfter","onFocus","defaultEmbedInfo","title","icon","setURL","isEditingURL","setIsEditingURL","invalidateResolution","preview","fetching","themeSupportsResponsive","cannotEmbed","hasResolved","select","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","getThemeSupports","hasFinishedResolution","embedPreview","previewIsFallback","badEmbedProvider","html","type","undefined","wordpressCantEmbed","data","status","validPreview","getMergedAttributes","toggleResponsive","allowResponsive","className","newAllowResponsive","newURL","replace","URL","host","toString","mergedAttributes","hasChanges","Object","keys","some","key","upgradedBlock","blockProps","children","label","showEmbedPlaceholder","onSubmit","event","preventDefault","blockClass","value","onChange","tryAgain","caption","classFromPreview","showEditButton","blockSupportsResponsive","switchBackToURLInput","onCaptionChange","showToolbarButton"],"sources":["@wordpress/block-library/src/embed/edit.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tcreateUpgradedEmbedBlock,\n\tgetClassNames,\n\tremoveAspectRatioClasses,\n\tfallback,\n\tgetEmbedInfoByProvider,\n\tgetMergedAttributesWithPreview,\n} from './util';\nimport EmbedControls from './embed-controls';\nimport { embedContentIcon } from './icons';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { View } from '@wordpress/primitives';\nimport { getAuthority } from '@wordpress/url';\nimport { Caption } from '../utils/caption';\n\nconst EmbedEdit = ( props ) => {\n\tconst {\n\t\tattributes: {\n\t\t\tproviderNameSlug,\n\t\t\tpreviewable,\n\t\t\tresponsive,\n\t\t\turl: attributesUrl,\n\t\t},\n\t\tattributes,\n\t\tisSelected,\n\t\tonReplace,\n\t\tsetAttributes,\n\t\tinsertBlocksAfter,\n\t\tonFocus,\n\t} = props;\n\n\tconst defaultEmbedInfo = {\n\t\ttitle: _x( 'Embed', 'block title' ),\n\t\ticon: embedContentIcon,\n\t};\n\tconst { icon, title } =\n\t\tgetEmbedInfoByProvider( providerNameSlug ) || defaultEmbedInfo;\n\n\tconst [ url, setURL ] = useState( attributesUrl );\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst { invalidateResolution } = useDispatch( coreStore );\n\n\tconst {\n\t\tpreview,\n\t\tfetching,\n\t\tthemeSupportsResponsive,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEmbedPreview,\n\t\t\t\tisPreviewEmbedFallback,\n\t\t\t\tisRequestingEmbedPreview,\n\t\t\t\tgetThemeSupports,\n\t\t\t\thasFinishedResolution,\n\t\t\t} = select( coreStore );\n\t\t\tif ( ! attributesUrl ) {\n\t\t\t\treturn { fetching: false, cannotEmbed: false };\n\t\t\t}\n\n\t\t\tconst embedPreview = getEmbedPreview( attributesUrl );\n\t\t\tconst previewIsFallback = isPreviewEmbedFallback( attributesUrl );\n\n\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\tconst badEmbedProvider =\n\t\t\t\tembedPreview?.html === false &&\n\t\t\t\tembedPreview?.type === undefined;\n\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t// a valid JSON response with no HTML and `data.status` set to 404, rather\n\t\t\t// than generating a fallback response as other embeds do.\n\t\t\tconst wordpressCantEmbed = embedPreview?.data?.status === 404;\n\t\t\tconst validPreview =\n\t\t\t\t!! embedPreview && ! badEmbedProvider && ! wordpressCantEmbed;\n\t\t\treturn {\n\t\t\t\tpreview: validPreview ? embedPreview : undefined,\n\t\t\t\tfetching: isRequestingEmbedPreview( attributesUrl ),\n\t\t\t\tthemeSupportsResponsive:\n\t\t\t\t\tgetThemeSupports()[ 'responsive-embeds' ],\n\t\t\t\tcannotEmbed: ! validPreview || previewIsFallback,\n\t\t\t\thasResolved: hasFinishedResolution( 'getEmbedPreview', [\n\t\t\t\t\tattributesUrl,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ attributesUrl ]\n\t);\n\n\t/**\n\t * Returns the attributes derived from the preview, merged with the current attributes.\n\t *\n\t * @return {Object} Merged attributes.\n\t */\n\tconst getMergedAttributes = () =>\n\t\tgetMergedAttributesWithPreview(\n\t\t\tattributes,\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tresponsive\n\t\t);\n\n\tconst toggleResponsive = () => {\n\t\tconst { allowResponsive, className } = attributes;\n\t\tconst { html } = preview;\n\t\tconst newAllowResponsive = ! allowResponsive;\n\n\t\tsetAttributes( {\n\t\t\tallowResponsive: newAllowResponsive,\n\t\t\tclassName: getClassNames(\n\t\t\t\thtml,\n\t\t\t\tclassName,\n\t\t\t\tresponsive && newAllowResponsive\n\t\t\t),\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( preview?.html || ! cannotEmbed || ! hasResolved ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// At this stage, we're not fetching the preview and know it can't be embedded,\n\t\t// so try removing any trailing slash, and resubmit.\n\t\tconst newURL = attributesUrl.replace( /\\/$/, '' );\n\t\tsetURL( newURL );\n\t\tsetIsEditingURL( false );\n\t\tsetAttributes( { url: newURL } );\n\t}, [\n\t\tpreview?.html,\n\t\tattributesUrl,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t\tsetAttributes,\n\t] );\n\n\t// Try a different provider in case the embed url is not supported.\n\tuseEffect( () => {\n\t\tif ( ! cannotEmbed || fetching || ! url ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Until X provider is supported in WordPress, as a workaround we use Twitter provider.\n\t\tif ( getAuthority( url ) === 'x.com' ) {\n\t\t\tconst newURL = new URL( url );\n\t\t\tnewURL.host = 'twitter.com';\n\t\t\tsetAttributes( { url: newURL.toString() } );\n\t\t}\n\t}, [ url, cannotEmbed, fetching, setAttributes ] );\n\n\t// Handle incoming preview.\n\tuseEffect( () => {\n\t\tif ( preview && ! isEditingURL ) {\n\t\t\t// When obtaining an incoming preview,\n\t\t\t// we set the attributes derived from the preview data.\n\t\t\tconst mergedAttributes = getMergedAttributes();\n\t\t\tconst hasChanges = Object.keys( mergedAttributes ).some(\n\t\t\t\t( key ) => mergedAttributes[ key ] !== attributes[ key ]\n\t\t\t);\n\n\t\t\tif ( hasChanges ) {\n\t\t\t\tsetAttributes( mergedAttributes );\n\t\t\t}\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\t\tprops,\n\t\t\t\t\tmergedAttributes\n\t\t\t\t);\n\n\t\t\t\tif ( upgradedBlock ) {\n\t\t\t\t\tonReplace( upgradedBlock );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ preview, isEditingURL ] );\n\n\tconst blockProps = useBlockProps();\n\n\tif ( fetching ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedLoading />\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\tconst label = sprintf( __( '%s URL' ), title );\n\n\t// No preview, or we can't embed the current URL, or we've clicked the edit button.\n\tconst showEmbedPlaceholder = ! preview || cannotEmbed || isEditingURL;\n\n\tif ( showEmbedPlaceholder ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedPlaceholder\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\tif ( event ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If the embed URL was changed, we need to reset the aspect ratio class.\n\t\t\t\t\t\t// To do this we have to remove the existing ratio class so it can be recalculated.\n\t\t\t\t\t\tconst blockClass = removeAspectRatioClasses(\n\t\t\t\t\t\t\tattributes.className\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\tsetAttributes( { url, className: blockClass } );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ url }\n\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\tonChange={ ( value ) => setURL( value ) }\n\t\t\t\t\tfallback={ () => fallback( url, onReplace ) }\n\t\t\t\t\ttryAgain={ () => {\n\t\t\t\t\t\tinvalidateResolution( 'getEmbedPreview', [ url ] );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// Even though we set attributes that get derived from the preview,\n\t// we don't access them directly because for the initial render,\n\t// the `setAttributes` call will not have taken effect. If we're\n\t// rendering responsive content, setting the responsive classes\n\t// after the preview has been rendered can result in unwanted\n\t// clipping or scrollbars. The `getAttributesFromPreview` function\n\t// that `getMergedAttributes` uses is memoized so that we're not\n\t// calculating them on every render.\n\tconst {\n\t\tcaption,\n\t\ttype,\n\t\tallowResponsive,\n\t\tclassName: classFromPreview,\n\t} = getMergedAttributes();\n\tconst className = clsx( classFromPreview, props.className );\n\n\treturn (\n\t\t<>\n\t\t\t<EmbedControls\n\t\t\t\tshowEditButton={ preview && ! cannotEmbed }\n\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\ttoggleResponsive={ toggleResponsive }\n\t\t\t\tswitchBackToURLInput={ () => setIsEditingURL( true ) }\n\t\t\t/>\n\t\t\t<figure\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( blockProps.className, className, {\n\t\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t\t\t[ `wp-block-embed-${ providerNameSlug }` ]:\n\t\t\t\t\t\tproviderNameSlug,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<EmbedPreview\n\t\t\t\t\tpreview={ preview }\n\t\t\t\t\tpreviewable={ previewable }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\turl={ url }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcaption={ caption }\n\t\t\t\t\tonCaptionChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Embed caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n};\n\nexport default EmbedEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -89,7 +89,8 @@ export function ImageEdit({
89
89
  // Only observe the max width from the parent container when the parent layout is not flex nor grid.
90
90
  // This won't work for them because the container width changes with the image.
91
91
  // TODO: Find a way to observe the container width for flex and grid layouts.
92
- const isMaxWidthContainerWidth = !parentLayout || parentLayout.type !== 'flex' && parentLayout.type !== 'grid';
92
+ const layoutType = parentLayout?.type || parentLayout?.default?.type;
93
+ const isMaxWidthContainerWidth = !layoutType || layoutType !== 'flex' && layoutType !== 'grid';
93
94
  const [maxWidthObserver, maxContentWidth] = useMaxWidthObserver();
94
95
  const [placeholderResizeListener, {
95
96
  width: placeholderWidth
@@ -357,7 +358,7 @@ export function ImageEdit({
357
358
  context: context,
358
359
  clientId: clientId,
359
360
  blockEditingMode: blockEditingMode,
360
- parentLayoutType: parentLayout?.type,
361
+ parentLayoutType: layoutType,
361
362
  maxContentWidth: maxContentWidth
362
363
  }), /*#__PURE__*/_jsx(MediaPlaceholder, {
363
364
  icon: /*#__PURE__*/_jsx(BlockIcon, {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","isBlobURL","createBlobURL","createBlock","getBlockBindingsSource","Placeholder","useDispatch","useSelect","BlockIcon","useBlockProps","MediaPlaceholder","store","blockEditorStore","__experimentalUseBorderProps","useBorderProps","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","useBlockEditingMode","useEffect","useRef","useState","__","sprintf","image","icon","plugins","pluginsIcon","noticesStore","useResizeObserver","useUploadMediaFromBlobURL","Image","isValidFileType","useMaxWidthObserver","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isExternalImage","id","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","blob","containerRef","isMaxWidthContainerWidth","type","maxWidthObserver","maxContentWidth","placeholderResizeListener","placeholderWidth","isSmallContainer","altRef","current","captionRef","__unstableMarkNextChangeAsNotPersistent","replaceBlock","undefined","getSettings","getBlockRootClientId","getBlockName","canInsertBlockType","blockEditingMode","createErrorNotice","onUploadError","message","src","onSelectImagesList","images","win","ownerDocument","defaultView","every","file","File","files","rootClientId","some","imageBlocks","map","galleryBlock","onSelectImage","media","Array","isArray","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","href","onSelectURL","newURL","allowedTypes","onChange","onError","isExternal","mediaPreview","borderProps","shadowProps","classes","style","keys","length","blockProps","ref","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","bindings","source","canUserEditValue","args","label","placeholder","content","withIllustration","instructions","objectFit","children","parentLayoutType","onSelect","accept","handleUpload","value","disableMediaButtons"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL, createBlobURL } from '@wordpress/blob';\nimport { createBlock, getBlockBindingsSource } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tuseBlockProps,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\nimport { isValidFileType } from './utils';\nimport { useMaxWidthObserver } from './use-max-width-observer';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst containerRef = useRef();\n\t// Only observe the max width from the parent container when the parent layout is not flex nor grid.\n\t// This won't work for them because the container width changes with the image.\n\t// TODO: Find a way to observe the container width for flex and grid layouts.\n\tconst isMaxWidthContainerWidth =\n\t\t! parentLayout ||\n\t\t( parentLayout.type !== 'flex' && parentLayout.type !== 'grid' );\n\tconst [ maxWidthObserver, maxContentWidth ] = useMaxWidthObserver();\n\n\tconst [ placeholderResizeListener, { width: placeholderWidth } ] =\n\t\tuseResizeObserver();\n\n\tconst isSmallContainer = placeholderWidth && placeholderWidth < 160;\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst {\n\t\tgetSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tblob: undefined,\n\t\t} );\n\t}\n\n\tfunction onSelectImagesList( images ) {\n\t\tconst win = containerRef.current?.ownerDocument.defaultView;\n\n\t\tif ( images.every( ( file ) => file instanceof win.File ) ) {\n\t\t\t/** @type {File[]} */\n\t\t\tconst files = images;\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\tif ( files.some( ( file ) => ! isValidFileType( file ) ) ) {\n\t\t\t\t// Copied from the same notice in the gallery block.\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t\t),\n\t\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst imageBlocks = files\n\t\t\t\t.filter( ( file ) => isValidFileType( file ) )\n\t\t\t\t.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\tif ( getBlockName( rootClientId ) === 'core/gallery' ) {\n\t\t\t\treplaceBlock( clientId, imageBlocks );\n\t\t\t} else if ( canInsertBlockType( 'core/gallery', rootClientId ) ) {\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{},\n\t\t\t\t\timageBlocks\n\t\t\t\t);\n\n\t\t\t\treplaceBlock( clientId, galleryBlock );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( Array.isArray( media ) ) {\n\t\t\tonSelectImagesList( media );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\tsizeSlug: newSize,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName=\"edit-image-preview\"\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref: containerRef,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\ticon={\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t( lockUrlControls ? pluginsIcon : icon )\n\t\t\t\t}\n\t\t\t\twithIllustration={ ! isSingleSelected || isSmallContainer }\n\t\t\t\tlabel={ ! isSmallContainer && __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Drag and drop an image, upload, or choose from your library.'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\tlockUrlControlsMessage }\n\n\t\t\t\t{ ! lockUrlControls && ! isSmallContainer && content }\n\t\t\t\t{ placeholderResizeListener }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\tparentLayoutType={ parentLayout?.type }\n\t\t\t\t\tmaxContentWidth={ maxContentWidth }\n\t\t\t\t/>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\thandleUpload={ ( files ) => files.length === 1 }\n\t\t\t\t\tvalue={ { id, src } }\n\t\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t\t{\n\t\t\t\t// The listener cannot be placed as the first element as it will break the in-between inserter.\n\t\t\t\t// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120\n\t\t\t\tisSingleSelected && isMaxWidthContainerWidth && maxWidthObserver\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","isBlobURL","createBlobURL","createBlock","getBlockBindingsSource","Placeholder","useDispatch","useSelect","BlockIcon","useBlockProps","MediaPlaceholder","store","blockEditorStore","__experimentalUseBorderProps","useBorderProps","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","useBlockEditingMode","useEffect","useRef","useState","__","sprintf","image","icon","plugins","pluginsIcon","noticesStore","useResizeObserver","useUploadMediaFromBlobURL","Image","isValidFileType","useMaxWidthObserver","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isExternalImage","id","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","blob","containerRef","layoutType","type","default","isMaxWidthContainerWidth","maxWidthObserver","maxContentWidth","placeholderResizeListener","placeholderWidth","isSmallContainer","altRef","current","captionRef","__unstableMarkNextChangeAsNotPersistent","replaceBlock","undefined","getSettings","getBlockRootClientId","getBlockName","canInsertBlockType","blockEditingMode","createErrorNotice","onUploadError","message","src","onSelectImagesList","images","win","ownerDocument","defaultView","every","file","File","files","rootClientId","some","imageBlocks","map","galleryBlock","onSelectImage","media","Array","isArray","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","href","onSelectURL","newURL","allowedTypes","onChange","onError","isExternal","mediaPreview","borderProps","shadowProps","classes","style","keys","length","blockProps","ref","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","bindings","source","canUserEditValue","args","label","placeholder","content","withIllustration","instructions","objectFit","children","parentLayoutType","onSelect","accept","handleUpload","value","disableMediaButtons"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL, createBlobURL } from '@wordpress/blob';\nimport { createBlock, getBlockBindingsSource } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tuseBlockProps,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\nimport { isValidFileType } from './utils';\nimport { useMaxWidthObserver } from './use-max-width-observer';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst containerRef = useRef();\n\t// Only observe the max width from the parent container when the parent layout is not flex nor grid.\n\t// This won't work for them because the container width changes with the image.\n\t// TODO: Find a way to observe the container width for flex and grid layouts.\n\tconst layoutType = parentLayout?.type || parentLayout?.default?.type;\n\tconst isMaxWidthContainerWidth =\n\t\t! layoutType || ( layoutType !== 'flex' && layoutType !== 'grid' );\n\tconst [ maxWidthObserver, maxContentWidth ] = useMaxWidthObserver();\n\n\tconst [ placeholderResizeListener, { width: placeholderWidth } ] =\n\t\tuseResizeObserver();\n\n\tconst isSmallContainer = placeholderWidth && placeholderWidth < 160;\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst {\n\t\tgetSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tblob: undefined,\n\t\t} );\n\t}\n\n\tfunction onSelectImagesList( images ) {\n\t\tconst win = containerRef.current?.ownerDocument.defaultView;\n\n\t\tif ( images.every( ( file ) => file instanceof win.File ) ) {\n\t\t\t/** @type {File[]} */\n\t\t\tconst files = images;\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\tif ( files.some( ( file ) => ! isValidFileType( file ) ) ) {\n\t\t\t\t// Copied from the same notice in the gallery block.\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t\t),\n\t\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst imageBlocks = files\n\t\t\t\t.filter( ( file ) => isValidFileType( file ) )\n\t\t\t\t.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\tif ( getBlockName( rootClientId ) === 'core/gallery' ) {\n\t\t\t\treplaceBlock( clientId, imageBlocks );\n\t\t\t} else if ( canInsertBlockType( 'core/gallery', rootClientId ) ) {\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{},\n\t\t\t\t\timageBlocks\n\t\t\t\t);\n\n\t\t\t\treplaceBlock( clientId, galleryBlock );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( Array.isArray( media ) ) {\n\t\t\tonSelectImagesList( media );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\tsizeSlug: newSize,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName=\"edit-image-preview\"\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref: containerRef,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\ticon={\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t( lockUrlControls ? pluginsIcon : icon )\n\t\t\t\t}\n\t\t\t\twithIllustration={ ! isSingleSelected || isSmallContainer }\n\t\t\t\tlabel={ ! isSmallContainer && __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Drag and drop an image, upload, or choose from your library.'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\tlockUrlControlsMessage }\n\n\t\t\t\t{ ! lockUrlControls && ! isSmallContainer && content }\n\t\t\t\t{ placeholderResizeListener }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\tparentLayoutType={ layoutType }\n\t\t\t\t\tmaxContentWidth={ maxContentWidth }\n\t\t\t\t/>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\thandleUpload={ ( files ) => files.length === 1 }\n\t\t\t\t\tvalue={ { id, src } }\n\t\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t\t{\n\t\t\t\t// The listener cannot be placed as the first element as it will break the in-between inserter.\n\t\t\t\t// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120\n\t\t\t\tisSingleSelected && isMaxWidthContainerWidth && maxWidthObserver\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ import { getFilename } from '@wordpress/url';
12
12
  import { getBlockBindingsSource, switchToBlockType } from '@wordpress/blocks';
13
13
  import { crop, overlayText, upload, chevronDown } from '@wordpress/icons';
14
14
  import { store as noticesStore } from '@wordpress/notices';
15
- import { store as coreStore, useEntityProp } from '@wordpress/core-data';
15
+ import { store as coreStore } from '@wordpress/core-data';
16
16
 
17
17
  /**
18
18
  * Internal dependencies
@@ -233,10 +233,6 @@ export default function Image({
233
233
  const {
234
234
  allowResize = true
235
235
  } = context;
236
- const {
237
- getBlock,
238
- getSettings
239
- } = useSelect(blockEditorStore);
240
236
  const image = useSelect(select => id && isSingleSelected ? select(coreStore).getMedia(id, {
241
237
  context: 'view'
242
238
  }) : null, [id, isSingleSelected]);
@@ -248,7 +244,8 @@ export default function Image({
248
244
  } = useSelect(select => {
249
245
  const {
250
246
  getBlockRootClientId,
251
- canInsertBlockType
247
+ canInsertBlockType,
248
+ getSettings
252
249
  } = select(blockEditorStore);
253
250
  const rootClientId = getBlockRootClientId(clientId);
254
251
  const settings = getSettings();
@@ -259,6 +256,10 @@ export default function Image({
259
256
  canInsertCover: canInsertBlockType('core/cover', rootClientId)
260
257
  };
261
258
  }, [clientId]);
259
+ const {
260
+ getBlock,
261
+ getSettings
262
+ } = useSelect(blockEditorStore);
262
263
  const {
263
264
  replaceBlocks,
264
265
  toggleSelection
@@ -267,6 +268,9 @@ export default function Image({
267
268
  createErrorNotice,
268
269
  createSuccessNotice
269
270
  } = useDispatch(noticesStore);
271
+ const {
272
+ editEntityRecord
273
+ } = useDispatch(coreStore);
270
274
  const isLargeViewport = useViewportMatch('medium');
271
275
  const isWideAligned = ['wide', 'full'].includes(align);
272
276
  const [{
@@ -305,7 +309,7 @@ export default function Image({
305
309
  .fetch(url.includes('?') ? url : url + '?').then(response => response.blob()).then(blob => setExternalBlob(blob))
306
310
  // Do nothing, cannot upload.
307
311
  .catch(() => {});
308
- }, [id, url, isSingleSelected, externalBlob]);
312
+ }, [id, url, isSingleSelected, externalBlob, getSettings]);
309
313
 
310
314
  // Get naturalWidth and naturalHeight from image, and fall back to loaded natural
311
315
  // width and height. This resolves an issue in Safari where the loaded natural
@@ -711,7 +715,6 @@ export default function Image({
711
715
  queryId
712
716
  } = context;
713
717
  const isDescendentOfQueryLoop = Number.isFinite(queryId);
714
- const [, setFeaturedImage] = useEntityProp('postType', postType, 'featured_media', postId);
715
718
  let img = temporaryURL && hasImageErrored ?
716
719
  /*#__PURE__*/
717
720
  // Show a placeholder during upload when the blob URL can't be loaded. This can
@@ -891,7 +894,9 @@ export default function Image({
891
894
  * Set the post's featured image with the current image.
892
895
  */
893
896
  const setPostFeatureImage = () => {
894
- setFeaturedImage(id);
897
+ editEntityRecord('postType', postType, postId, {
898
+ featured_media: id
899
+ });
895
900
  createSuccessNotice(__('Post featured image updated.'), {
896
901
  type: 'snackbar'
897
902
  });