@wordpress/editor 13.4.0 → 13.6.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 (133) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/document-outline/index.js +7 -1
  3. package/build/components/document-outline/index.js.map +1 -1
  4. package/build/components/editor-help/index.native.js +13 -10
  5. package/build/components/editor-help/index.native.js.map +1 -1
  6. package/build/components/media-categories/index.js +1 -1
  7. package/build/components/media-categories/index.js.map +1 -1
  8. package/build/components/page-attributes/check.js +6 -10
  9. package/build/components/page-attributes/check.js.map +1 -1
  10. package/build/components/page-attributes/parent.js +9 -6
  11. package/build/components/page-attributes/parent.js.map +1 -1
  12. package/build/components/post-author/check.js +3 -7
  13. package/build/components/post-author/check.js.map +1 -1
  14. package/build/components/post-featured-image/index.js +7 -12
  15. package/build/components/post-featured-image/index.js.map +1 -1
  16. package/build/components/post-locked-modal/index.js +1 -7
  17. package/build/components/post-locked-modal/index.js.map +1 -1
  18. package/build/components/post-pending-status/check.js +3 -7
  19. package/build/components/post-pending-status/check.js.map +1 -1
  20. package/build/components/post-preview-button/index.js +3 -3
  21. package/build/components/post-preview-button/index.js.map +1 -1
  22. package/build/components/post-publish-button/index.js +4 -4
  23. package/build/components/post-publish-button/index.js.map +1 -1
  24. package/build/components/post-publish-button/label.js +3 -7
  25. package/build/components/post-publish-button/label.js.map +1 -1
  26. package/build/components/post-publish-panel/index.js +4 -8
  27. package/build/components/post-publish-panel/index.js.map +1 -1
  28. package/build/components/post-publish-panel/maybe-post-format-panel.js +3 -7
  29. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  30. package/build/components/post-publish-panel/postpublish.js +5 -9
  31. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  32. package/build/components/post-publish-panel/prepublish.js +3 -7
  33. package/build/components/post-publish-panel/prepublish.js.map +1 -1
  34. package/build/components/post-schedule/check.js +3 -7
  35. package/build/components/post-schedule/check.js.map +1 -1
  36. package/build/components/post-sticky/check.js +3 -7
  37. package/build/components/post-sticky/check.js.map +1 -1
  38. package/build/components/post-taxonomies/flat-term-selector.js +12 -7
  39. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  40. package/build/components/post-taxonomies/hierarchical-term-selector.js +18 -12
  41. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  42. package/build/components/post-taxonomies/most-used-terms.js +1 -8
  43. package/build/components/post-taxonomies/most-used-terms.js.map +1 -1
  44. package/build/components/post-visibility/check.js +3 -7
  45. package/build/components/post-visibility/check.js.map +1 -1
  46. package/build/components/provider/use-block-editor-settings.js +1 -1
  47. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  48. package/build/components/theme-support-check/index.js +3 -7
  49. package/build/components/theme-support-check/index.js.map +1 -1
  50. package/build/store/utils/notice-builder.js +4 -8
  51. package/build/store/utils/notice-builder.js.map +1 -1
  52. package/build-module/components/document-outline/index.js +8 -2
  53. package/build-module/components/document-outline/index.js.map +1 -1
  54. package/build-module/components/editor-help/index.native.js +13 -9
  55. package/build-module/components/editor-help/index.native.js.map +1 -1
  56. package/build-module/components/media-categories/index.js +1 -1
  57. package/build-module/components/media-categories/index.js.map +1 -1
  58. package/build-module/components/page-attributes/check.js +6 -9
  59. package/build-module/components/page-attributes/check.js.map +1 -1
  60. package/build-module/components/page-attributes/parent.js +9 -5
  61. package/build-module/components/page-attributes/parent.js.map +1 -1
  62. package/build-module/components/post-author/check.js +3 -6
  63. package/build-module/components/post-author/check.js.map +1 -1
  64. package/build-module/components/post-featured-image/index.js +7 -11
  65. package/build-module/components/post-featured-image/index.js.map +1 -1
  66. package/build-module/components/post-locked-modal/index.js +1 -6
  67. package/build-module/components/post-locked-modal/index.js.map +1 -1
  68. package/build-module/components/post-pending-status/check.js +3 -6
  69. package/build-module/components/post-pending-status/check.js.map +1 -1
  70. package/build-module/components/post-preview-button/index.js +3 -2
  71. package/build-module/components/post-preview-button/index.js.map +1 -1
  72. package/build-module/components/post-publish-button/index.js +4 -3
  73. package/build-module/components/post-publish-button/index.js.map +1 -1
  74. package/build-module/components/post-publish-button/label.js +3 -6
  75. package/build-module/components/post-publish-button/label.js.map +1 -1
  76. package/build-module/components/post-publish-panel/index.js +4 -7
  77. package/build-module/components/post-publish-panel/index.js.map +1 -1
  78. package/build-module/components/post-publish-panel/maybe-post-format-panel.js +3 -6
  79. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  80. package/build-module/components/post-publish-panel/postpublish.js +5 -8
  81. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  82. package/build-module/components/post-publish-panel/prepublish.js +3 -6
  83. package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
  84. package/build-module/components/post-schedule/check.js +3 -6
  85. package/build-module/components/post-schedule/check.js.map +1 -1
  86. package/build-module/components/post-sticky/check.js +3 -6
  87. package/build-module/components/post-sticky/check.js.map +1 -1
  88. package/build-module/components/post-taxonomies/flat-term-selector.js +12 -6
  89. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  90. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +18 -11
  91. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  92. package/build-module/components/post-taxonomies/most-used-terms.js +1 -7
  93. package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
  94. package/build-module/components/post-visibility/check.js +3 -6
  95. package/build-module/components/post-visibility/check.js.map +1 -1
  96. package/build-module/components/provider/use-block-editor-settings.js +1 -1
  97. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  98. package/build-module/components/theme-support-check/index.js +3 -6
  99. package/build-module/components/theme-support-check/index.js.map +1 -1
  100. package/build-module/store/utils/notice-builder.js +4 -7
  101. package/build-module/store/utils/notice-builder.js.map +1 -1
  102. package/build-style/style-rtl.css +1 -1
  103. package/build-style/style.css +1 -1
  104. package/package.json +30 -30
  105. package/src/components/autosave-monitor/test/index.js +4 -4
  106. package/src/components/document-outline/index.js +6 -3
  107. package/src/components/editor-help/index.native.js +21 -14
  108. package/src/components/media-categories/index.js +1 -1
  109. package/src/components/page-attributes/check.js +3 -12
  110. package/src/components/page-attributes/parent.js +41 -41
  111. package/src/components/post-author/check.js +2 -10
  112. package/src/components/post-featured-image/index.js +5 -10
  113. package/src/components/post-locked-modal/index.js +1 -6
  114. package/src/components/post-pending-status/check.js +2 -10
  115. package/src/components/post-preview-button/index.js +1 -2
  116. package/src/components/post-publish-button/index.js +3 -7
  117. package/src/components/post-publish-button/label.js +2 -10
  118. package/src/components/post-publish-panel/index.js +3 -11
  119. package/src/components/post-publish-panel/maybe-post-format-panel.js +2 -10
  120. package/src/components/post-publish-panel/postpublish.js +3 -8
  121. package/src/components/post-publish-panel/prepublish.js +2 -10
  122. package/src/components/post-publish-panel/style.scss +1 -1
  123. package/src/components/post-schedule/check.js +2 -10
  124. package/src/components/post-sticky/check.js +1 -10
  125. package/src/components/post-taxonomies/flat-term-selector.js +14 -32
  126. package/src/components/post-taxonomies/hierarchical-term-selector.js +15 -37
  127. package/src/components/post-taxonomies/most-used-terms.js +1 -7
  128. package/src/components/post-text-editor/test/index.js +0 -2
  129. package/src/components/post-visibility/check.js +2 -10
  130. package/src/components/provider/use-block-editor-settings.js +1 -0
  131. package/src/components/theme-support-check/index.js +1 -6
  132. package/src/store/test/actions.js +0 -2
  133. package/src/store/utils/notice-builder.js +2 -7
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 13.6.0 (2023-03-15)
6
+
7
+ ## 13.5.0 (2023-03-01)
8
+
5
9
  ## 13.4.0 (2023-02-15)
6
10
 
7
11
  ## 13.3.0 (2023-02-01)
@@ -89,6 +89,9 @@ const DocumentOutline = _ref => {
89
89
  hasOutlineItemsDisabled
90
90
  } = _ref;
91
91
  const headings = computeOutlineHeadings(blocks);
92
+ const {
93
+ selectBlock
94
+ } = (0, _data.useDispatch)(_blockEditor.store);
92
95
 
93
96
  if (headings.length < 1) {
94
97
  return null;
@@ -122,7 +125,10 @@ const DocumentOutline = _ref => {
122
125
  isValid: isValid,
123
126
  isDisabled: hasOutlineItemsDisabled,
124
127
  href: `#block-${item.clientId}`,
125
- onSelect: onSelect
128
+ onSelect: () => {
129
+ selectBlock(item.clientId);
130
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect();
131
+ }
126
132
  }, item.isEmpty ? emptyHeadingContent : (0, _richText.getTextContent)((0, _richText.create)({
127
133
  html: item.attributes.content
128
134
  })), isIncorrectLevel && incorrectLevelContent, item.level === 1 && hasMultipleH1 && multipleH1Headings, hasTitle && item.level === 1 && !hasMultipleH1 && singleH1Headings);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/document-outline/index.js"],"names":["emptyHeadingContent","incorrectLevelContent","singleH1Headings","multipleH1Headings","computeOutlineHeadings","blocks","flatMap","block","name","level","attributes","isEmpty","isEmptyHeading","innerBlocks","heading","content","length","DocumentOutline","title","onSelect","isTitleSupported","hasOutlineItemsDisabled","headings","prevHeadingLevel","titleNode","document","querySelector","hasTitle","countByLevel","reduce","acc","hasMultipleH1","id","map","item","index","isIncorrectLevel","isValid","clientId","html","select","getBlocks","blockEditorStore","getEditedPostAttribute","editorStore","getPostType","coreStore","postType","supports"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { create, getTextContent } from '@wordpress/rich-text';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport DocumentOutlineItem from './item';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module constants\n */\nconst emptyHeadingContent = <em>{ __( '(Empty heading)' ) }</em>;\nconst incorrectLevelContent = [\n\t<br key=\"incorrect-break\" />,\n\t<em key=\"incorrect-message\">{ __( '(Incorrect heading level)' ) }</em>,\n];\nconst singleH1Headings = [\n\t<br key=\"incorrect-break-h1\" />,\n\t<em key=\"incorrect-message-h1\">\n\t\t{ __( '(Your theme may already use a H1 for the post title)' ) }\n\t</em>,\n];\nconst multipleH1Headings = [\n\t<br key=\"incorrect-break-multiple-h1\" />,\n\t<em key=\"incorrect-message-multiple-h1\">\n\t\t{ __( '(Multiple H1 headings are not recommended)' ) }\n\t</em>,\n];\n\n/**\n * Returns an array of heading blocks enhanced with the following properties:\n * level - An integer with the heading level.\n * isEmpty - Flag indicating if the heading has no content.\n *\n * @param {?Array} blocks An array of blocks.\n *\n * @return {Array} An array of heading blocks enhanced with the properties described above.\n */\nconst computeOutlineHeadings = ( blocks = [] ) => {\n\treturn blocks.flatMap( ( block = {} ) => {\n\t\tif ( block.name === 'core/heading' ) {\n\t\t\treturn {\n\t\t\t\t...block,\n\t\t\t\tlevel: block.attributes.level,\n\t\t\t\tisEmpty: isEmptyHeading( block ),\n\t\t\t};\n\t\t}\n\t\treturn computeOutlineHeadings( block.innerBlocks );\n\t} );\n};\n\nconst isEmptyHeading = ( heading ) =>\n\t! heading.attributes.content || heading.attributes.content.length === 0;\n\nexport const DocumentOutline = ( {\n\tblocks = [],\n\ttitle,\n\tonSelect,\n\tisTitleSupported,\n\thasOutlineItemsDisabled,\n} ) => {\n\tconst headings = computeOutlineHeadings( blocks );\n\n\tif ( headings.length < 1 ) {\n\t\treturn null;\n\t}\n\n\tlet prevHeadingLevel = 1;\n\n\t// Not great but it's the simplest way to locate the title right now.\n\tconst titleNode = document.querySelector( '.editor-post-title__input' );\n\tconst hasTitle = isTitleSupported && title && titleNode;\n\tconst countByLevel = headings.reduce(\n\t\t( acc, heading ) => ( {\n\t\t\t...acc,\n\t\t\t[ heading.level ]: ( acc[ heading.level ] || 0 ) + 1,\n\t\t} ),\n\t\t{}\n\t);\n\tconst hasMultipleH1 = countByLevel[ 1 ] > 1;\n\n\treturn (\n\t\t<div className=\"document-outline\">\n\t\t\t<ul>\n\t\t\t\t{ hasTitle && (\n\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\tlevel={ __( 'Title' ) }\n\t\t\t\t\t\tisValid\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\thref={ `#${ titleNode.id }` }\n\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t) }\n\t\t\t\t{ headings.map( ( item, index ) => {\n\t\t\t\t\t// Headings remain the same, go up by one, or down by any amount.\n\t\t\t\t\t// Otherwise there are missing levels.\n\t\t\t\t\tconst isIncorrectLevel = item.level > prevHeadingLevel + 1;\n\n\t\t\t\t\tconst isValid =\n\t\t\t\t\t\t! item.isEmpty &&\n\t\t\t\t\t\t! isIncorrectLevel &&\n\t\t\t\t\t\t!! item.level &&\n\t\t\t\t\t\t( item.level !== 1 ||\n\t\t\t\t\t\t\t( ! hasMultipleH1 && ! hasTitle ) );\n\t\t\t\t\tprevHeadingLevel = item.level;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tlevel={ `H${ item.level }` }\n\t\t\t\t\t\t\tisValid={ isValid }\n\t\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t\t\thref={ `#block-${ item.clientId }` }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.isEmpty\n\t\t\t\t\t\t\t\t? emptyHeadingContent\n\t\t\t\t\t\t\t\t: getTextContent(\n\t\t\t\t\t\t\t\t\t\tcreate( {\n\t\t\t\t\t\t\t\t\t\t\thtml: item.attributes.content,\n\t\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{ isIncorrectLevel && incorrectLevelContent }\n\t\t\t\t\t\t\t{ item.level === 1 &&\n\t\t\t\t\t\t\t\thasMultipleH1 &&\n\t\t\t\t\t\t\t\tmultipleH1Headings }\n\t\t\t\t\t\t\t{ hasTitle &&\n\t\t\t\t\t\t\t\titem.level === 1 &&\n\t\t\t\t\t\t\t\t! hasMultipleH1 &&\n\t\t\t\t\t\t\t\tsingleH1Headings }\n\t\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</div>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst { getBlocks } = select( blockEditorStore );\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tblocks: getBlocks(),\n\t\t\tisTitleSupported: postType?.supports?.title ?? false,\n\t\t};\n\t} )\n)( DocumentOutline );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/document-outline/index.js"],"names":["emptyHeadingContent","incorrectLevelContent","singleH1Headings","multipleH1Headings","computeOutlineHeadings","blocks","flatMap","block","name","level","attributes","isEmpty","isEmptyHeading","innerBlocks","heading","content","length","DocumentOutline","title","onSelect","isTitleSupported","hasOutlineItemsDisabled","headings","selectBlock","blockEditorStore","prevHeadingLevel","titleNode","document","querySelector","hasTitle","countByLevel","reduce","acc","hasMultipleH1","id","map","item","index","isIncorrectLevel","isValid","clientId","html","select","getBlocks","getEditedPostAttribute","editorStore","getPostType","coreStore","postType","supports"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { withSelect, useDispatch } from '@wordpress/data';\nimport { create, getTextContent } from '@wordpress/rich-text';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport DocumentOutlineItem from './item';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module constants\n */\nconst emptyHeadingContent = <em>{ __( '(Empty heading)' ) }</em>;\nconst incorrectLevelContent = [\n\t<br key=\"incorrect-break\" />,\n\t<em key=\"incorrect-message\">{ __( '(Incorrect heading level)' ) }</em>,\n];\nconst singleH1Headings = [\n\t<br key=\"incorrect-break-h1\" />,\n\t<em key=\"incorrect-message-h1\">\n\t\t{ __( '(Your theme may already use a H1 for the post title)' ) }\n\t</em>,\n];\nconst multipleH1Headings = [\n\t<br key=\"incorrect-break-multiple-h1\" />,\n\t<em key=\"incorrect-message-multiple-h1\">\n\t\t{ __( '(Multiple H1 headings are not recommended)' ) }\n\t</em>,\n];\n\n/**\n * Returns an array of heading blocks enhanced with the following properties:\n * level - An integer with the heading level.\n * isEmpty - Flag indicating if the heading has no content.\n *\n * @param {?Array} blocks An array of blocks.\n *\n * @return {Array} An array of heading blocks enhanced with the properties described above.\n */\nconst computeOutlineHeadings = ( blocks = [] ) => {\n\treturn blocks.flatMap( ( block = {} ) => {\n\t\tif ( block.name === 'core/heading' ) {\n\t\t\treturn {\n\t\t\t\t...block,\n\t\t\t\tlevel: block.attributes.level,\n\t\t\t\tisEmpty: isEmptyHeading( block ),\n\t\t\t};\n\t\t}\n\t\treturn computeOutlineHeadings( block.innerBlocks );\n\t} );\n};\n\nconst isEmptyHeading = ( heading ) =>\n\t! heading.attributes.content || heading.attributes.content.length === 0;\n\nexport const DocumentOutline = ( {\n\tblocks = [],\n\ttitle,\n\tonSelect,\n\tisTitleSupported,\n\thasOutlineItemsDisabled,\n} ) => {\n\tconst headings = computeOutlineHeadings( blocks );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tif ( headings.length < 1 ) {\n\t\treturn null;\n\t}\n\n\tlet prevHeadingLevel = 1;\n\n\t// Not great but it's the simplest way to locate the title right now.\n\tconst titleNode = document.querySelector( '.editor-post-title__input' );\n\tconst hasTitle = isTitleSupported && title && titleNode;\n\tconst countByLevel = headings.reduce(\n\t\t( acc, heading ) => ( {\n\t\t\t...acc,\n\t\t\t[ heading.level ]: ( acc[ heading.level ] || 0 ) + 1,\n\t\t} ),\n\t\t{}\n\t);\n\tconst hasMultipleH1 = countByLevel[ 1 ] > 1;\n\n\treturn (\n\t\t<div className=\"document-outline\">\n\t\t\t<ul>\n\t\t\t\t{ hasTitle && (\n\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\tlevel={ __( 'Title' ) }\n\t\t\t\t\t\tisValid\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\thref={ `#${ titleNode.id }` }\n\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t) }\n\t\t\t\t{ headings.map( ( item, index ) => {\n\t\t\t\t\t// Headings remain the same, go up by one, or down by any amount.\n\t\t\t\t\t// Otherwise there are missing levels.\n\t\t\t\t\tconst isIncorrectLevel = item.level > prevHeadingLevel + 1;\n\n\t\t\t\t\tconst isValid =\n\t\t\t\t\t\t! item.isEmpty &&\n\t\t\t\t\t\t! isIncorrectLevel &&\n\t\t\t\t\t\t!! item.level &&\n\t\t\t\t\t\t( item.level !== 1 ||\n\t\t\t\t\t\t\t( ! hasMultipleH1 && ! hasTitle ) );\n\t\t\t\t\tprevHeadingLevel = item.level;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tlevel={ `H${ item.level }` }\n\t\t\t\t\t\t\tisValid={ isValid }\n\t\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t\t\thref={ `#block-${ item.clientId }` }\n\t\t\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\t\t\tselectBlock( item.clientId );\n\t\t\t\t\t\t\t\tonSelect?.();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.isEmpty\n\t\t\t\t\t\t\t\t? emptyHeadingContent\n\t\t\t\t\t\t\t\t: getTextContent(\n\t\t\t\t\t\t\t\t\t\tcreate( {\n\t\t\t\t\t\t\t\t\t\t\thtml: item.attributes.content,\n\t\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{ isIncorrectLevel && incorrectLevelContent }\n\t\t\t\t\t\t\t{ item.level === 1 &&\n\t\t\t\t\t\t\t\thasMultipleH1 &&\n\t\t\t\t\t\t\t\tmultipleH1Headings }\n\t\t\t\t\t\t\t{ hasTitle &&\n\t\t\t\t\t\t\t\titem.level === 1 &&\n\t\t\t\t\t\t\t\t! hasMultipleH1 &&\n\t\t\t\t\t\t\t\tsingleH1Headings }\n\t\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</div>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst { getBlocks } = select( blockEditorStore );\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tblocks: getBlocks(),\n\t\t\tisTitleSupported: postType?.supports?.title ?? false,\n\t\t};\n\t} )\n)( DocumentOutline );\n"]}
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
- var _lodash = require("lodash");
15
-
16
14
  var _reactNative = require("react-native");
17
15
 
18
16
  var _stack = require("@react-navigation/stack");
@@ -64,22 +62,27 @@ var _helpSectionTitle = _interopRequireDefault(require("./help-section-title"));
64
62
  */
65
63
  const HELP_TOPICS = [{
66
64
  label: (0, _i18n.__)('What is a block?'),
65
+ slug: 'what-is-a-block',
67
66
  icon: _icons.helpFilled,
68
67
  view: (0, _element.createElement)(_introToBlocks.default, null)
69
68
  }, {
70
69
  label: (0, _i18n.__)('Add blocks'),
70
+ slug: 'add-blocks',
71
71
  icon: _icons.plusCircleFilled,
72
72
  view: (0, _element.createElement)(_addBlocks.default, null)
73
73
  }, {
74
74
  label: (0, _i18n.__)('Move blocks'),
75
+ slug: 'move-blocks',
75
76
  icon: _iconMoveBlocks.default,
76
77
  view: (0, _element.createElement)(_moveBlocks.default, null)
77
78
  }, {
78
79
  label: (0, _i18n.__)('Remove blocks'),
80
+ slug: 'remove-blocks',
79
81
  icon: _icons.trash,
80
82
  view: (0, _element.createElement)(_removeBlocks.default, null)
81
83
  }, {
82
84
  label: (0, _i18n.__)('Customize blocks'),
85
+ slug: 'customize-blocks',
83
86
  icon: _icons.cog,
84
87
  view: (0, _element.createElement)(_customizeBlocks.default, null)
85
88
  }];
@@ -145,27 +148,27 @@ function EditorHelpTopics(_ref) {
145
148
  }), (0, _element.createElement)(_components.PanelBody, null, (0, _element.createElement)(_helpSectionTitle.default, null, (0, _i18n.__)('The basics')), HELP_TOPICS.map((_ref3, index) => {
146
149
  let {
147
150
  label,
148
- icon
151
+ icon,
152
+ slug
149
153
  } = _ref3;
150
- const labelSlug = (0, _lodash.kebabCase)(label);
151
154
  const isLastItem = index === HELP_TOPICS.length - 1;
152
155
  return (0, _element.createElement)(_helpTopicRow.default, {
153
- key: labelSlug,
156
+ key: slug,
154
157
  label: label,
155
158
  icon: icon,
156
- screenName: labelSlug,
159
+ screenName: slug,
157
160
  isLastItem: isLastItem
158
161
  });
159
162
  }), showSupport && supportSection));
160
163
  }))), HELP_TOPICS.map(_ref4 => {
161
164
  let {
162
165
  view,
163
- label
166
+ label,
167
+ slug
164
168
  } = _ref4;
165
- const labelSlug = (0, _lodash.kebabCase)(label);
166
169
  return (0, _element.createElement)(_helpDetailNavigationScreen.default, {
167
- key: labelSlug,
168
- name: labelSlug,
170
+ key: slug,
171
+ name: slug,
169
172
  content: view,
170
173
  label: label,
171
174
  options: {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/editor-help/index.native.js"],"names":["HELP_TOPICS","label","icon","helpFilled","view","plusCircleFilled","moveBlocksIcon","trash","cog","EditorHelpTopics","close","isVisible","onClose","showSupport","postType","select","editorStore","getEditedPostAttribute","title","supportSection","requestContactCustomerSupport","requestGotoCustomerSupportOptions","styles","contentContainer","navigationContainer","container","listProps","contentContainerStyle","StyleSheet","flatten","paddingBottom","Math","max","safeAreaBottomInset","marginTop","map","index","labelSlug","isLastItem","length","gestureEnabled","TransitionPresets","DefaultTransition"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\nimport { SafeAreaView, ScrollView, StyleSheet, View } from 'react-native';\nimport { TransitionPresets } from '@react-navigation/stack';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBottomSheet,\n\tBottomSheetConsumer,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { helpFilled, plusCircleFilled, trash, cog } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport {\n\trequestContactCustomerSupport,\n\trequestGotoCustomerSupportOptions,\n} from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport HelpDetailNavigationScreen from './help-detail-navigation-screen';\nimport HelpTopicRow from './help-topic-row';\nimport HelpGetSupportButton from './help-get-support-button';\nimport IntroToBlocks from './intro-to-blocks';\nimport AddBlocks from './add-blocks';\nimport MoveBlocks from './move-blocks';\nimport RemoveBlocks from './remove-blocks';\nimport CustomizeBlocks from './customize-blocks';\nimport moveBlocksIcon from './icon-move-blocks';\nimport HelpSectionTitle from './help-section-title';\n\nconst HELP_TOPICS = [\n\t{\n\t\tlabel: __( 'What is a block?' ),\n\t\ticon: helpFilled,\n\t\tview: <IntroToBlocks />,\n\t},\n\t{\n\t\tlabel: __( 'Add blocks' ),\n\t\ticon: plusCircleFilled,\n\t\tview: <AddBlocks />,\n\t},\n\t{ label: __( 'Move blocks' ), icon: moveBlocksIcon, view: <MoveBlocks /> },\n\t{ label: __( 'Remove blocks' ), icon: trash, view: <RemoveBlocks /> },\n\t{\n\t\tlabel: __( 'Customize blocks' ),\n\t\ticon: cog,\n\t\tview: <CustomizeBlocks />,\n\t},\n];\n\nfunction EditorHelpTopics( { close, isVisible, onClose, showSupport } ) {\n\tconst { postType } = useSelect( ( select ) => ( {\n\t\tpostType: select( editorStore ).getEditedPostAttribute( 'type' ),\n\t} ) );\n\n\tconst title =\n\t\tpostType === 'page'\n\t\t\t? __( 'How to edit your page' )\n\t\t\t: __( 'How to edit your post' );\n\n\tconst supportSection = (\n\t\t<>\n\t\t\t<HelpSectionTitle>{ __( 'Get support' ) }</HelpSectionTitle>\n\t\t\t<HelpGetSupportButton\n\t\t\t\ttitle={ __( 'Contact support' ) }\n\t\t\t\tonPress={ requestContactCustomerSupport }\n\t\t\t/>\n\t\t\t<HelpGetSupportButton\n\t\t\t\ttitle={ __( 'More support options' ) }\n\t\t\t\tonPress={ requestGotoCustomerSupportOptions }\n\t\t\t/>\n\t\t</>\n\t);\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ isVisible }\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\thasNavigation\n\t\t\tcontentStyle={ styles.contentContainer }\n\t\t\ttestID=\"editor-help-modal\"\n\t\t>\n\t\t\t<SafeAreaView>\n\t\t\t\t<BottomSheet.NavigationContainer\n\t\t\t\t\tanimate\n\t\t\t\t\tmain\n\t\t\t\t\tstyle={ styles.navigationContainer }\n\t\t\t\t>\n\t\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\t\tisScrollable\n\t\t\t\t\t\tfullScreen\n\t\t\t\t\t\tname=\"help-topics\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t\t<BottomSheet.NavBar>\n\t\t\t\t\t\t\t\t<BottomSheet.NavBar.DismissButton\n\t\t\t\t\t\t\t\t\tonPress={ close }\n\t\t\t\t\t\t\t\t\tiosText={ __( 'Close' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<BottomSheet.NavBar.Heading>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</BottomSheet.NavBar.Heading>\n\t\t\t\t\t\t\t</BottomSheet.NavBar>\n\t\t\t\t\t\t\t<BottomSheetConsumer>\n\t\t\t\t\t\t\t\t{ ( { listProps } ) => {\n\t\t\t\t\t\t\t\t\tconst contentContainerStyle =\n\t\t\t\t\t\t\t\t\t\tStyleSheet.flatten(\n\t\t\t\t\t\t\t\t\t\t\tlistProps.contentContainerStyle\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\t\t\t\t{ ...listProps }\n\t\t\t\t\t\t\t\t\t\t\tcontentContainerStyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\t...contentContainerStyle,\n\t\t\t\t\t\t\t\t\t\t\t\tpaddingBottom: Math.max(\n\t\t\t\t\t\t\t\t\t\t\t\t\tlistProps.safeAreaBottomInset,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontentContainerStyle.paddingBottom\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t\t\t\t\t * Remove margin set via `hideHeader`. Combining a header\n\t\t\t\t\t\t\t\t\t\t\t\t * and navigation in this bottom sheet is at odds with the\n\t\t\t\t\t\t\t\t\t\t\t\t * current `BottomSheet` implementation.\n\t\t\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: 0,\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t\t\t\t\t\t<HelpSectionTitle>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'The basics' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</HelpSectionTitle>\n\t\t\t\t\t\t\t\t\t\t\t\t{ /* Print out help topics. */ }\n\t\t\t\t\t\t\t\t\t\t\t\t{ HELP_TOPICS.map(\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ label, icon },\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst labelSlug =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkebabCase( label );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst isLastItem =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tHELP_TOPICS.length -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<HelpTopicRow\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabelSlug\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tscreenName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabelSlug\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLastItem={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLastItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t{ showSupport &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tsupportSection }\n\t\t\t\t\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t\t\t\t\t</ScrollView>\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</BottomSheetConsumer>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t\t{ /* Print out help detail screens. */ }\n\t\t\t\t\t{ HELP_TOPICS.map( ( { view, label } ) => {\n\t\t\t\t\t\tconst labelSlug = kebabCase( label );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<HelpDetailNavigationScreen\n\t\t\t\t\t\t\t\tkey={ labelSlug }\n\t\t\t\t\t\t\t\tname={ labelSlug }\n\t\t\t\t\t\t\t\tcontent={ view }\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\toptions={ {\n\t\t\t\t\t\t\t\t\tgestureEnabled: false,\n\t\t\t\t\t\t\t\t\t...TransitionPresets.DefaultTransition,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</BottomSheet.NavigationContainer>\n\t\t\t</SafeAreaView>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default EditorHelpTopics;\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/editor-help/index.native.js"],"names":["HELP_TOPICS","label","slug","icon","helpFilled","view","plusCircleFilled","moveBlocksIcon","trash","cog","EditorHelpTopics","close","isVisible","onClose","showSupport","postType","select","editorStore","getEditedPostAttribute","title","supportSection","requestContactCustomerSupport","requestGotoCustomerSupportOptions","styles","contentContainer","navigationContainer","container","listProps","contentContainerStyle","StyleSheet","flatten","paddingBottom","Math","max","safeAreaBottomInset","marginTop","map","index","isLastItem","length","gestureEnabled","TransitionPresets","DefaultTransition"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { SafeAreaView, ScrollView, StyleSheet, View } from 'react-native';\nimport { TransitionPresets } from '@react-navigation/stack';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBottomSheet,\n\tBottomSheetConsumer,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { helpFilled, plusCircleFilled, trash, cog } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport {\n\trequestContactCustomerSupport,\n\trequestGotoCustomerSupportOptions,\n} from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport HelpDetailNavigationScreen from './help-detail-navigation-screen';\nimport HelpTopicRow from './help-topic-row';\nimport HelpGetSupportButton from './help-get-support-button';\nimport IntroToBlocks from './intro-to-blocks';\nimport AddBlocks from './add-blocks';\nimport MoveBlocks from './move-blocks';\nimport RemoveBlocks from './remove-blocks';\nimport CustomizeBlocks from './customize-blocks';\nimport moveBlocksIcon from './icon-move-blocks';\nimport HelpSectionTitle from './help-section-title';\n\nconst HELP_TOPICS = [\n\t{\n\t\tlabel: __( 'What is a block?' ),\n\t\tslug: 'what-is-a-block',\n\t\ticon: helpFilled,\n\t\tview: <IntroToBlocks />,\n\t},\n\t{\n\t\tlabel: __( 'Add blocks' ),\n\t\tslug: 'add-blocks',\n\t\ticon: plusCircleFilled,\n\t\tview: <AddBlocks />,\n\t},\n\t{\n\t\tlabel: __( 'Move blocks' ),\n\t\tslug: 'move-blocks',\n\t\ticon: moveBlocksIcon,\n\t\tview: <MoveBlocks />,\n\t},\n\t{\n\t\tlabel: __( 'Remove blocks' ),\n\t\tslug: 'remove-blocks',\n\t\ticon: trash,\n\t\tview: <RemoveBlocks />,\n\t},\n\t{\n\t\tlabel: __( 'Customize blocks' ),\n\t\tslug: 'customize-blocks',\n\t\ticon: cog,\n\t\tview: <CustomizeBlocks />,\n\t},\n];\n\nfunction EditorHelpTopics( { close, isVisible, onClose, showSupport } ) {\n\tconst { postType } = useSelect( ( select ) => ( {\n\t\tpostType: select( editorStore ).getEditedPostAttribute( 'type' ),\n\t} ) );\n\n\tconst title =\n\t\tpostType === 'page'\n\t\t\t? __( 'How to edit your page' )\n\t\t\t: __( 'How to edit your post' );\n\n\tconst supportSection = (\n\t\t<>\n\t\t\t<HelpSectionTitle>{ __( 'Get support' ) }</HelpSectionTitle>\n\t\t\t<HelpGetSupportButton\n\t\t\t\ttitle={ __( 'Contact support' ) }\n\t\t\t\tonPress={ requestContactCustomerSupport }\n\t\t\t/>\n\t\t\t<HelpGetSupportButton\n\t\t\t\ttitle={ __( 'More support options' ) }\n\t\t\t\tonPress={ requestGotoCustomerSupportOptions }\n\t\t\t/>\n\t\t</>\n\t);\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ isVisible }\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\thasNavigation\n\t\t\tcontentStyle={ styles.contentContainer }\n\t\t\ttestID=\"editor-help-modal\"\n\t\t>\n\t\t\t<SafeAreaView>\n\t\t\t\t<BottomSheet.NavigationContainer\n\t\t\t\t\tanimate\n\t\t\t\t\tmain\n\t\t\t\t\tstyle={ styles.navigationContainer }\n\t\t\t\t>\n\t\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\t\tisScrollable\n\t\t\t\t\t\tfullScreen\n\t\t\t\t\t\tname=\"help-topics\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t\t<BottomSheet.NavBar>\n\t\t\t\t\t\t\t\t<BottomSheet.NavBar.DismissButton\n\t\t\t\t\t\t\t\t\tonPress={ close }\n\t\t\t\t\t\t\t\t\tiosText={ __( 'Close' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<BottomSheet.NavBar.Heading>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</BottomSheet.NavBar.Heading>\n\t\t\t\t\t\t\t</BottomSheet.NavBar>\n\t\t\t\t\t\t\t<BottomSheetConsumer>\n\t\t\t\t\t\t\t\t{ ( { listProps } ) => {\n\t\t\t\t\t\t\t\t\tconst contentContainerStyle =\n\t\t\t\t\t\t\t\t\t\tStyleSheet.flatten(\n\t\t\t\t\t\t\t\t\t\t\tlistProps.contentContainerStyle\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\t\t\t\t{ ...listProps }\n\t\t\t\t\t\t\t\t\t\t\tcontentContainerStyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\t...contentContainerStyle,\n\t\t\t\t\t\t\t\t\t\t\t\tpaddingBottom: Math.max(\n\t\t\t\t\t\t\t\t\t\t\t\t\tlistProps.safeAreaBottomInset,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontentContainerStyle.paddingBottom\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t\t\t\t\t * Remove margin set via `hideHeader`. Combining a header\n\t\t\t\t\t\t\t\t\t\t\t\t * and navigation in this bottom sheet is at odds with the\n\t\t\t\t\t\t\t\t\t\t\t\t * current `BottomSheet` implementation.\n\t\t\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: 0,\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t\t\t\t\t\t<HelpSectionTitle>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'The basics' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</HelpSectionTitle>\n\t\t\t\t\t\t\t\t\t\t\t\t{ /* Print out help topics. */ }\n\t\t\t\t\t\t\t\t\t\t\t\t{ HELP_TOPICS.map(\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ label, icon, slug },\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst isLastItem =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tHELP_TOPICS.length -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<HelpTopicRow\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tscreenName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLastItem={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLastItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t{ showSupport &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tsupportSection }\n\t\t\t\t\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t\t\t\t\t</ScrollView>\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</BottomSheetConsumer>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t\t{ /* Print out help detail screens. */ }\n\t\t\t\t\t{ HELP_TOPICS.map( ( { view, label, slug } ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<HelpDetailNavigationScreen\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\tname={ slug }\n\t\t\t\t\t\t\t\tcontent={ view }\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\toptions={ {\n\t\t\t\t\t\t\t\t\tgestureEnabled: false,\n\t\t\t\t\t\t\t\t\t...TransitionPresets.DefaultTransition,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</BottomSheet.NavigationContainer>\n\t\t\t</SafeAreaView>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default EditorHelpTopics;\n"]}
@@ -104,7 +104,7 @@ const getOpenverseCaption = item => {
104
104
  } else {
105
105
  _caption = title ? (0, _i18n.sprintf)( // translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: "CC0 1.0".
106
106
  (0, _i18n._x)('"%1$s"/ %2$s', 'caption'), getExternalLink(foreignLandingUrl, (0, _htmlEntities.decodeEntities)(title)), licenseUrl ? getExternalLink(`${licenseUrl}?ref=openverse`, fullLicense) : fullLicense) : (0, _i18n.sprintf)( // translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: "CC0 1.0".
107
- (0, _i18n._x)('<a %1$s>Work</a>/ %3$s', 'caption'), getExternalLinkAttributes(foreignLandingUrl), licenseUrl ? getExternalLink(`${licenseUrl}?ref=openverse`, fullLicense) : fullLicense);
107
+ (0, _i18n._x)('<a %1$s>Work</a>/ %2$s', 'caption'), getExternalLinkAttributes(foreignLandingUrl), licenseUrl ? getExternalLink(`${licenseUrl}?ref=openverse`, fullLicense) : fullLicense);
108
108
  }
109
109
 
110
110
  return _caption.replace(/\s{2}/g, ' ');
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/media-categories/index.js"],"names":["getExternalLink","url","text","getExternalLinkAttributes","getOpenverseLicense","license","licenseVersion","licenseName","trim","toUpperCase","replace","includes","getOpenverseCaption","item","title","foreign_landing_url","foreignLandingUrl","creator","creator_url","creatorUrl","license_version","license_url","licenseUrl","fullLicense","_creator","_caption","coreMediaFetch","query","mediaItems","coreStore","getMediaItems","orderBy","search","map","mediaItem","alt","alt_text","source_url","previewUrl","media_details","sizes","medium","caption","raw","inserterMediaCategories","name","labels","search_items","mediaType","fetch","media_type","defaultArgs","mature","excluded_source","finalQuery","mapFromInserterMediaRequest","per_page","URL","Object","entries","forEach","key","value","queryKey","searchParams","set","response","window","headers","jsonResponse","json","results","result","toLowerCase","startsWith","slice","sourceId","id","undefined","thumbnail","getReportUrl","isExternalResource"],"mappings":"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","sourcesContent":["/**\n * The `editor` settings here need to be in sync with the corresponding ones in `editor` package.\n * See `packages/editor/src/components/media-categories/index.js`.\n *\n * In the future we could consider creating an Openvese package that can be used in both `editor` and `site-editor`.\n * The rest of the settings would still need to be in sync though.\n */\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf, _x } from '@wordpress/i18n';\nimport { resolveSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\n\n/** @typedef {import('@wordpress/block-editor').InserterMediaRequest} InserterMediaRequest */\n/** @typedef {import('@wordpress/block-editor').InserterMediaItem} InserterMediaItem */\n/**\n * Interface for inserter media category labels.\n *\n * @typedef {Object} InserterMediaCategoryLabels\n * @property {string} name General name of the media category. It's used in the inserter media items list.\n * @property {string} [search_items='Search'] Label for searching items. Default is ‘Search Posts’ / ‘Search Pages’.\n */\n/**\n * Interface for inserter media category.\n *\n * @typedef {Object} InserterMediaCategory\n * @property {string} name The name of the media category, that should be unique among all media categories.\n * @property {InserterMediaCategoryLabels} labels Labels for the media category.\n * @property {('image'|'audio'|'video')} mediaType The media type of the media category.\n * @property {(InserterMediaRequest) => Promise<InserterMediaItem[]>} fetch The function to fetch media items for the category.\n * @property {(InserterMediaItem) => string} [getReportUrl] If the media category supports reporting media items, this function should return\n * the report url for the media item. It accepts the `InserterMediaItem` as an argument.\n * @property {boolean} [isExternalResource] If the media category is an external resource, this should be set to true.\n * This is used to avoid making a request to the external resource when the user\n * opens the inserter for the first time.\n */\n\nconst getExternalLink = ( url, text ) =>\n\t`<a ${ getExternalLinkAttributes( url ) }>${ text }</a>`;\n\nconst getExternalLinkAttributes = ( url ) =>\n\t`href=\"${ url }\" target=\"_blank\" rel=\"noreferrer noopener\"`;\n\nconst getOpenverseLicense = ( license, licenseVersion ) => {\n\tlet licenseName = license.trim();\n\t// PDM has no abbreviation\n\tif ( license !== 'pdm' ) {\n\t\tlicenseName = license.toUpperCase().replace( 'SAMPLING', 'Sampling' );\n\t}\n\t// If version is known, append version to the name.\n\t// The license has to have a version to be valid. Only\n\t// PDM (public domain mark) doesn't have a version.\n\tif ( licenseVersion ) {\n\t\tlicenseName += ` ${ licenseVersion }`;\n\t}\n\t// For licenses other than public-domain marks, prepend 'CC' to the name.\n\tif ( ! [ 'pdm', 'cc0' ].includes( license ) ) {\n\t\tlicenseName = `CC ${ licenseName }`;\n\t}\n\treturn licenseName;\n};\n\nconst getOpenverseCaption = ( item ) => {\n\tconst {\n\t\ttitle,\n\t\tforeign_landing_url: foreignLandingUrl,\n\t\tcreator,\n\t\tcreator_url: creatorUrl,\n\t\tlicense,\n\t\tlicense_version: licenseVersion,\n\t\tlicense_url: licenseUrl,\n\t} = item;\n\tconst fullLicense = getOpenverseLicense( license, licenseVersion );\n\tconst _creator = decodeEntities( creator );\n\tlet _caption;\n\tif ( _creator ) {\n\t\t_caption = title\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %1s: Title of a media work from Openverse; %2s: Name of the work's creator; %3s: Work's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '\"%1$s\" by %2$s/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLink(\n\t\t\t\t\t\tforeignLandingUrl,\n\t\t\t\t\t\tdecodeEntities( title )\n\t\t\t\t\t),\n\t\t\t\t\tcreatorUrl\n\t\t\t\t\t\t? getExternalLink( creatorUrl, _creator )\n\t\t\t\t\t\t: _creator,\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %1s: Link attributes for a given Openverse media work; %2s: Name of the work's creator; %3s: Works's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '<a %1$s>Work</a> by %2$s/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLinkAttributes( foreignLandingUrl ),\n\t\t\t\t\tcreatorUrl\n\t\t\t\t\t\t? getExternalLink( creatorUrl, _creator )\n\t\t\t\t\t\t: _creator,\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t );\n\t} else {\n\t\t_caption = title\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '\"%1$s\"/ %2$s', 'caption' ),\n\t\t\t\t\tgetExternalLink(\n\t\t\t\t\t\tforeignLandingUrl,\n\t\t\t\t\t\tdecodeEntities( title )\n\t\t\t\t\t),\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '<a %1$s>Work</a>/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLinkAttributes( foreignLandingUrl ),\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t );\n\t}\n\treturn _caption.replace( /\\s{2}/g, ' ' );\n};\n\nconst coreMediaFetch = async ( query = {} ) => {\n\tconst mediaItems = await resolveSelect( coreStore ).getMediaItems( {\n\t\t...query,\n\t\torderBy: !! query?.search ? 'relevance' : 'date',\n\t} );\n\treturn mediaItems.map( ( mediaItem ) => ( {\n\t\t...mediaItem,\n\t\talt: mediaItem.alt_text,\n\t\turl: mediaItem.source_url,\n\t\tpreviewUrl: mediaItem.media_details?.sizes?.medium?.source_url,\n\t\tcaption: mediaItem.caption?.raw,\n\t} ) );\n};\n\n/** @type {InserterMediaCategory[]} */\nconst inserterMediaCategories = [\n\t{\n\t\tname: 'images',\n\t\tlabels: {\n\t\t\tname: __( 'Images' ),\n\t\t\tsearch_items: __( 'Search images' ),\n\t\t},\n\t\tmediaType: 'image',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'image' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'videos',\n\t\tlabels: {\n\t\t\tname: __( 'Videos' ),\n\t\t\tsearch_items: __( 'Search videos' ),\n\t\t},\n\t\tmediaType: 'video',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'video' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'audio',\n\t\tlabels: {\n\t\t\tname: __( 'Audio' ),\n\t\t\tsearch_items: __( 'Search audio' ),\n\t\t},\n\t\tmediaType: 'audio',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'audio' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'openverse',\n\t\tlabels: {\n\t\t\tname: __( 'Openverse' ),\n\t\t\tsearch_items: __( 'Search Openverse' ),\n\t\t},\n\t\tmediaType: 'image',\n\t\tasync fetch( query = {} ) {\n\t\t\tconst defaultArgs = {\n\t\t\t\tmature: false,\n\t\t\t\texcluded_source: 'flickr,inaturalist,wikimedia',\n\t\t\t\tlicense: 'pdm,cc0',\n\t\t\t};\n\t\t\tconst finalQuery = { ...query, ...defaultArgs };\n\t\t\tconst mapFromInserterMediaRequest = {\n\t\t\t\tper_page: 'page_size',\n\t\t\t\tsearch: 'q',\n\t\t\t};\n\t\t\tconst url = new URL(\n\t\t\t\t'https://api.openverse.engineering/v1/images/'\n\t\t\t);\n\t\t\tObject.entries( finalQuery ).forEach( ( [ key, value ] ) => {\n\t\t\t\tconst queryKey = mapFromInserterMediaRequest[ key ] || key;\n\t\t\t\turl.searchParams.set( queryKey, value );\n\t\t\t} );\n\t\t\tconst response = await window.fetch( url, {\n\t\t\t\theaders: {\n\t\t\t\t\t'User-Agent': 'WordPress/inserter-media-fetch',\n\t\t\t\t},\n\t\t\t} );\n\t\t\tconst jsonResponse = await response.json();\n\t\t\tconst results = jsonResponse.results;\n\t\t\treturn results.map( ( result ) => ( {\n\t\t\t\t...result,\n\t\t\t\t// This is a temp solution for better titles, until Openverse API\n\t\t\t\t// completes the cleaning up of some titles of their upstream data.\n\t\t\t\ttitle: result.title?.toLowerCase().startsWith( 'file:' )\n\t\t\t\t\t? result.title.slice( 5 )\n\t\t\t\t\t: result.title,\n\t\t\t\tsourceId: result.id,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: getOpenverseCaption( result ),\n\t\t\t\tpreviewUrl: result.thumbnail,\n\t\t\t} ) );\n\t\t},\n\t\tgetReportUrl: ( { sourceId } ) =>\n\t\t\t`https://wordpress.org/openverse/image/${ sourceId }/report/`,\n\t\tisExternalResource: true,\n\t},\n];\n\nexport default inserterMediaCategories;\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/media-categories/index.js"],"names":["getExternalLink","url","text","getExternalLinkAttributes","getOpenverseLicense","license","licenseVersion","licenseName","trim","toUpperCase","replace","includes","getOpenverseCaption","item","title","foreign_landing_url","foreignLandingUrl","creator","creator_url","creatorUrl","license_version","license_url","licenseUrl","fullLicense","_creator","_caption","coreMediaFetch","query","mediaItems","coreStore","getMediaItems","orderBy","search","map","mediaItem","alt","alt_text","source_url","previewUrl","media_details","sizes","medium","caption","raw","inserterMediaCategories","name","labels","search_items","mediaType","fetch","media_type","defaultArgs","mature","excluded_source","finalQuery","mapFromInserterMediaRequest","per_page","URL","Object","entries","forEach","key","value","queryKey","searchParams","set","response","window","headers","jsonResponse","json","results","result","toLowerCase","startsWith","slice","sourceId","id","undefined","thumbnail","getReportUrl","isExternalResource"],"mappings":"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","sourcesContent":["/**\n * The `editor` settings here need to be in sync with the corresponding ones in `editor` package.\n * See `packages/editor/src/components/media-categories/index.js`.\n *\n * In the future we could consider creating an Openvese package that can be used in both `editor` and `site-editor`.\n * The rest of the settings would still need to be in sync though.\n */\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf, _x } from '@wordpress/i18n';\nimport { resolveSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\n\n/** @typedef {import('@wordpress/block-editor').InserterMediaRequest} InserterMediaRequest */\n/** @typedef {import('@wordpress/block-editor').InserterMediaItem} InserterMediaItem */\n/**\n * Interface for inserter media category labels.\n *\n * @typedef {Object} InserterMediaCategoryLabels\n * @property {string} name General name of the media category. It's used in the inserter media items list.\n * @property {string} [search_items='Search'] Label for searching items. Default is ‘Search Posts’ / ‘Search Pages’.\n */\n/**\n * Interface for inserter media category.\n *\n * @typedef {Object} InserterMediaCategory\n * @property {string} name The name of the media category, that should be unique among all media categories.\n * @property {InserterMediaCategoryLabels} labels Labels for the media category.\n * @property {('image'|'audio'|'video')} mediaType The media type of the media category.\n * @property {(InserterMediaRequest) => Promise<InserterMediaItem[]>} fetch The function to fetch media items for the category.\n * @property {(InserterMediaItem) => string} [getReportUrl] If the media category supports reporting media items, this function should return\n * the report url for the media item. It accepts the `InserterMediaItem` as an argument.\n * @property {boolean} [isExternalResource] If the media category is an external resource, this should be set to true.\n * This is used to avoid making a request to the external resource when the user\n * opens the inserter for the first time.\n */\n\nconst getExternalLink = ( url, text ) =>\n\t`<a ${ getExternalLinkAttributes( url ) }>${ text }</a>`;\n\nconst getExternalLinkAttributes = ( url ) =>\n\t`href=\"${ url }\" target=\"_blank\" rel=\"noreferrer noopener\"`;\n\nconst getOpenverseLicense = ( license, licenseVersion ) => {\n\tlet licenseName = license.trim();\n\t// PDM has no abbreviation\n\tif ( license !== 'pdm' ) {\n\t\tlicenseName = license.toUpperCase().replace( 'SAMPLING', 'Sampling' );\n\t}\n\t// If version is known, append version to the name.\n\t// The license has to have a version to be valid. Only\n\t// PDM (public domain mark) doesn't have a version.\n\tif ( licenseVersion ) {\n\t\tlicenseName += ` ${ licenseVersion }`;\n\t}\n\t// For licenses other than public-domain marks, prepend 'CC' to the name.\n\tif ( ! [ 'pdm', 'cc0' ].includes( license ) ) {\n\t\tlicenseName = `CC ${ licenseName }`;\n\t}\n\treturn licenseName;\n};\n\nconst getOpenverseCaption = ( item ) => {\n\tconst {\n\t\ttitle,\n\t\tforeign_landing_url: foreignLandingUrl,\n\t\tcreator,\n\t\tcreator_url: creatorUrl,\n\t\tlicense,\n\t\tlicense_version: licenseVersion,\n\t\tlicense_url: licenseUrl,\n\t} = item;\n\tconst fullLicense = getOpenverseLicense( license, licenseVersion );\n\tconst _creator = decodeEntities( creator );\n\tlet _caption;\n\tif ( _creator ) {\n\t\t_caption = title\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %1s: Title of a media work from Openverse; %2s: Name of the work's creator; %3s: Work's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '\"%1$s\" by %2$s/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLink(\n\t\t\t\t\t\tforeignLandingUrl,\n\t\t\t\t\t\tdecodeEntities( title )\n\t\t\t\t\t),\n\t\t\t\t\tcreatorUrl\n\t\t\t\t\t\t? getExternalLink( creatorUrl, _creator )\n\t\t\t\t\t\t: _creator,\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %1s: Link attributes for a given Openverse media work; %2s: Name of the work's creator; %3s: Works's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '<a %1$s>Work</a> by %2$s/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLinkAttributes( foreignLandingUrl ),\n\t\t\t\t\tcreatorUrl\n\t\t\t\t\t\t? getExternalLink( creatorUrl, _creator )\n\t\t\t\t\t\t: _creator,\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t );\n\t} else {\n\t\t_caption = title\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '\"%1$s\"/ %2$s', 'caption' ),\n\t\t\t\t\tgetExternalLink(\n\t\t\t\t\t\tforeignLandingUrl,\n\t\t\t\t\t\tdecodeEntities( title )\n\t\t\t\t\t),\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '<a %1$s>Work</a>/ %2$s', 'caption' ),\n\t\t\t\t\tgetExternalLinkAttributes( foreignLandingUrl ),\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t );\n\t}\n\treturn _caption.replace( /\\s{2}/g, ' ' );\n};\n\nconst coreMediaFetch = async ( query = {} ) => {\n\tconst mediaItems = await resolveSelect( coreStore ).getMediaItems( {\n\t\t...query,\n\t\torderBy: !! query?.search ? 'relevance' : 'date',\n\t} );\n\treturn mediaItems.map( ( mediaItem ) => ( {\n\t\t...mediaItem,\n\t\talt: mediaItem.alt_text,\n\t\turl: mediaItem.source_url,\n\t\tpreviewUrl: mediaItem.media_details?.sizes?.medium?.source_url,\n\t\tcaption: mediaItem.caption?.raw,\n\t} ) );\n};\n\n/** @type {InserterMediaCategory[]} */\nconst inserterMediaCategories = [\n\t{\n\t\tname: 'images',\n\t\tlabels: {\n\t\t\tname: __( 'Images' ),\n\t\t\tsearch_items: __( 'Search images' ),\n\t\t},\n\t\tmediaType: 'image',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'image' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'videos',\n\t\tlabels: {\n\t\t\tname: __( 'Videos' ),\n\t\t\tsearch_items: __( 'Search videos' ),\n\t\t},\n\t\tmediaType: 'video',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'video' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'audio',\n\t\tlabels: {\n\t\t\tname: __( 'Audio' ),\n\t\t\tsearch_items: __( 'Search audio' ),\n\t\t},\n\t\tmediaType: 'audio',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'audio' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'openverse',\n\t\tlabels: {\n\t\t\tname: __( 'Openverse' ),\n\t\t\tsearch_items: __( 'Search Openverse' ),\n\t\t},\n\t\tmediaType: 'image',\n\t\tasync fetch( query = {} ) {\n\t\t\tconst defaultArgs = {\n\t\t\t\tmature: false,\n\t\t\t\texcluded_source: 'flickr,inaturalist,wikimedia',\n\t\t\t\tlicense: 'pdm,cc0',\n\t\t\t};\n\t\t\tconst finalQuery = { ...query, ...defaultArgs };\n\t\t\tconst mapFromInserterMediaRequest = {\n\t\t\t\tper_page: 'page_size',\n\t\t\t\tsearch: 'q',\n\t\t\t};\n\t\t\tconst url = new URL(\n\t\t\t\t'https://api.openverse.engineering/v1/images/'\n\t\t\t);\n\t\t\tObject.entries( finalQuery ).forEach( ( [ key, value ] ) => {\n\t\t\t\tconst queryKey = mapFromInserterMediaRequest[ key ] || key;\n\t\t\t\turl.searchParams.set( queryKey, value );\n\t\t\t} );\n\t\t\tconst response = await window.fetch( url, {\n\t\t\t\theaders: {\n\t\t\t\t\t'User-Agent': 'WordPress/inserter-media-fetch',\n\t\t\t\t},\n\t\t\t} );\n\t\t\tconst jsonResponse = await response.json();\n\t\t\tconst results = jsonResponse.results;\n\t\t\treturn results.map( ( result ) => ( {\n\t\t\t\t...result,\n\t\t\t\t// This is a temp solution for better titles, until Openverse API\n\t\t\t\t// completes the cleaning up of some titles of their upstream data.\n\t\t\t\ttitle: result.title?.toLowerCase().startsWith( 'file:' )\n\t\t\t\t\t? result.title.slice( 5 )\n\t\t\t\t\t: result.title,\n\t\t\t\tsourceId: result.id,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: getOpenverseCaption( result ),\n\t\t\t\tpreviewUrl: result.thumbnail,\n\t\t\t} ) );\n\t\t},\n\t\tgetReportUrl: ( { sourceId } ) =>\n\t\t\t`https://wordpress.org/openverse/image/${ sourceId }/report/`,\n\t\tisExternalResource: true,\n\t},\n];\n\nexport default inserterMediaCategories;\n"]}
@@ -6,18 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.PageAttributesCheck = PageAttributesCheck;
7
7
  exports.default = void 0;
8
8
 
9
- var _lodash = require("lodash");
10
-
11
9
  var _data = require("@wordpress/data");
12
10
 
13
11
  var _coreData = require("@wordpress/core-data");
14
12
 
15
13
  var _store = require("../../store");
16
14
 
17
- /**
18
- * External dependencies
19
- */
20
-
21
15
  /**
22
16
  * WordPress dependencies
23
17
  */
@@ -29,16 +23,18 @@ function PageAttributesCheck(_ref) {
29
23
  let {
30
24
  children
31
25
  } = _ref;
32
- const postType = (0, _data.useSelect)(select => {
26
+ const supportsPageAttributes = (0, _data.useSelect)(select => {
27
+ var _postType$supports;
28
+
33
29
  const {
34
30
  getEditedPostAttribute
35
31
  } = select(_store.store);
36
32
  const {
37
33
  getPostType
38
34
  } = select(_coreData.store);
39
- return getPostType(getEditedPostAttribute('type'));
40
- }, []);
41
- const supportsPageAttributes = (0, _lodash.get)(postType, ['supports', 'page-attributes'], false); // Only render fields if post type supports page attributes or available templates exist.
35
+ const postType = getPostType(getEditedPostAttribute('type'));
36
+ return !!(postType !== null && postType !== void 0 && (_postType$supports = postType.supports) !== null && _postType$supports !== void 0 && _postType$supports['page-attributes']);
37
+ }, []); // Only render fields if post type supports page attributes or available templates exist.
42
38
 
43
39
  if (!supportsPageAttributes) {
44
40
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/page-attributes/check.js"],"names":["PageAttributesCheck","children","postType","select","getEditedPostAttribute","editorStore","getPostType","coreStore","supportsPageAttributes"],"mappings":";;;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGO,SAASA,mBAAT,OAA6C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACnD,QAAMC,QAAQ,GAAG,qBAAaC,MAAF,IAAc;AACzC,UAAM;AAAEC,MAAAA;AAAF,QAA6BD,MAAM,CAAEE,YAAF,CAAzC;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAkBH,MAAM,CAAEI,eAAF,CAA9B;AAEA,WAAOD,WAAW,CAAEF,sBAAsB,CAAE,MAAF,CAAxB,CAAlB;AACA,GALgB,EAKd,EALc,CAAjB;AAMA,QAAMI,sBAAsB,GAAG,iBAC9BN,QAD8B,EAE9B,CAAE,UAAF,EAAc,iBAAd,CAF8B,EAG9B,KAH8B,CAA/B,CAPmD,CAanD;;AACA,MAAK,CAAEM,sBAAP,EAAgC;AAC/B,WAAO,IAAP;AACA;;AAED,SAAOP,QAAP;AACA;;eAEcD,mB","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PageAttributesCheck( { children } ) {\n\tconst postType = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn getPostType( getEditedPostAttribute( 'type' ) );\n\t}, [] );\n\tconst supportsPageAttributes = get(\n\t\tpostType,\n\t\t[ 'supports', 'page-attributes' ],\n\t\tfalse\n\t);\n\n\t// Only render fields if post type supports page attributes or available templates exist.\n\tif ( ! supportsPageAttributes ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default PageAttributesCheck;\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/page-attributes/check.js"],"names":["PageAttributesCheck","children","supportsPageAttributes","select","getEditedPostAttribute","editorStore","getPostType","coreStore","postType","supports"],"mappings":";;;;;;;;AAGA;;AACA;;AAKA;;AATA;AACA;AACA;;AAIA;AACA;AACA;AAGO,SAASA,mBAAT,OAA6C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACnD,QAAMC,sBAAsB,GAAG,qBAAaC,MAAF,IAAc;AAAA;;AACvD,UAAM;AAAEC,MAAAA;AAAF,QAA6BD,MAAM,CAAEE,YAAF,CAAzC;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAkBH,MAAM,CAAEI,eAAF,CAA9B;AACA,UAAMC,QAAQ,GAAGF,WAAW,CAAEF,sBAAsB,CAAE,MAAF,CAAxB,CAA5B;AAEA,WAAO,CAAC,EAAEI,QAAF,aAAEA,QAAF,qCAAEA,QAAQ,CAAEC,QAAZ,+CAAE,mBAAsB,iBAAtB,CAAF,CAAR;AACA,GAN8B,EAM5B,EAN4B,CAA/B,CADmD,CASnD;;AACA,MAAK,CAAEP,sBAAP,EAAgC;AAC/B,WAAO,IAAP;AACA;;AAED,SAAOD,QAAP;AACA;;eAEcD,mB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PageAttributesCheck( { children } ) {\n\tconst supportsPageAttributes = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn !! postType?.supports?.[ 'page-attributes' ];\n\t}, [] );\n\n\t// Only render fields if post type supports page attributes or available templates exist.\n\tif ( ! supportsPageAttributes ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default PageAttributesCheck;\n"]}
@@ -10,8 +10,6 @@ exports.getItemPriority = exports.default = void 0;
10
10
 
11
11
  var _element = require("@wordpress/element");
12
12
 
13
- var _lodash = require("lodash");
14
-
15
13
  var _removeAccents = _interopRequireDefault(require("remove-accents"));
16
14
 
17
15
  var _i18n = require("@wordpress/i18n");
@@ -65,16 +63,21 @@ const getItemPriority = (name, searchValue) => {
65
63
  exports.getItemPriority = getItemPriority;
66
64
 
67
65
  function PageAttributesParent() {
66
+ var _postType$labels;
67
+
68
68
  const {
69
69
  editPost
70
70
  } = (0, _data.useDispatch)(_store.store);
71
71
  const [fieldValue, setFieldValue] = (0, _element.useState)(false);
72
72
  const {
73
+ isHierarchical,
73
74
  parentPost,
74
75
  parentPostId,
75
76
  items,
76
77
  postType
77
78
  } = (0, _data.useSelect)(select => {
79
+ var _pType$hierarchical;
80
+
78
81
  const {
79
82
  getPostType,
80
83
  getEntityRecords,
@@ -88,7 +91,7 @@ function PageAttributesParent() {
88
91
  const pageId = getEditedPostAttribute('parent');
89
92
  const pType = getPostType(postTypeSlug);
90
93
  const postId = getCurrentPostId();
91
- const isHierarchical = (0, _lodash.get)(pType, ['hierarchical'], false);
94
+ const postIsHierarchical = (_pType$hierarchical = pType === null || pType === void 0 ? void 0 : pType.hierarchical) !== null && _pType$hierarchical !== void 0 ? _pType$hierarchical : false;
92
95
  const query = {
93
96
  per_page: 100,
94
97
  exclude: postId,
@@ -103,14 +106,14 @@ function PageAttributesParent() {
103
106
  }
104
107
 
105
108
  return {
109
+ isHierarchical: postIsHierarchical,
106
110
  parentPostId: pageId,
107
111
  parentPost: pageId ? getEntityRecord('postType', postTypeSlug, pageId) : null,
108
- items: isHierarchical ? getEntityRecords('postType', postTypeSlug, query) : [],
112
+ items: postIsHierarchical ? getEntityRecords('postType', postTypeSlug, query) : [],
109
113
  postType: pType
110
114
  };
111
115
  }, [fieldValue]);
112
- const isHierarchical = (0, _lodash.get)(postType, ['hierarchical'], false);
113
- const parentPageLabel = (0, _lodash.get)(postType, ['labels', 'parent_item_colon']);
116
+ const parentPageLabel = postType === null || postType === void 0 ? void 0 : (_postType$labels = postType.labels) === null || _postType$labels === void 0 ? void 0 : _postType$labels.parent_item_colon;
114
117
  const pageItems = items || [];
115
118
  const parentOptions = (0, _element.useMemo)(() => {
116
119
  const getOptionsFromTree = function (tree) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/page-attributes/parent.js"],"names":["getTitle","post","title","rendered","id","getItemPriority","name","searchValue","normalizedName","toLowerCase","normalizedSearch","startsWith","length","Infinity","PageAttributesParent","editPost","editorStore","fieldValue","setFieldValue","parentPost","parentPostId","items","postType","select","getPostType","getEntityRecords","getEntityRecord","coreStore","getCurrentPostId","getEditedPostAttribute","postTypeSlug","pageId","pType","postId","isHierarchical","query","per_page","exclude","parent_exclude","orderby","order","_fields","search","parentPageLabel","pageItems","parentOptions","getOptionsFromTree","tree","level","mappedNodes","map","treeNode","value","label","repeat","rawName","children","sortedNodes","sort","a","b","priorityA","priorityB","flat","item","parent","opts","optsHasParent","find","unshift","handleKeydown","inputValue","handleChange","selectedPostId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ComboboxControl } from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\nfunction getTitle( post ) {\n\treturn post?.title?.rendered\n\t\t? decodeEntities( post.title.rendered )\n\t\t: `#${ post.id } (${ __( 'no title' ) })`;\n}\n\nexport const getItemPriority = ( name, searchValue ) => {\n\tconst normalizedName = removeAccents( name || '' ).toLowerCase();\n\tconst normalizedSearch = removeAccents( searchValue || '' ).toLowerCase();\n\tif ( normalizedName === normalizedSearch ) {\n\t\treturn 0;\n\t}\n\n\tif ( normalizedName.startsWith( normalizedSearch ) ) {\n\t\treturn normalizedName.length;\n\t}\n\n\treturn Infinity;\n};\n\nexport function PageAttributesParent() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ fieldValue, setFieldValue ] = useState( false );\n\tconst { parentPost, parentPostId, items, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getEntityRecords, getEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getCurrentPostId, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst postTypeSlug = getEditedPostAttribute( 'type' );\n\t\t\tconst pageId = getEditedPostAttribute( 'parent' );\n\t\t\tconst pType = getPostType( postTypeSlug );\n\t\t\tconst postId = getCurrentPostId();\n\t\t\tconst isHierarchical = get( pType, [ 'hierarchical' ], false );\n\t\t\tconst query = {\n\t\t\t\tper_page: 100,\n\t\t\t\texclude: postId,\n\t\t\t\tparent_exclude: postId,\n\t\t\t\torderby: 'menu_order',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: 'id,title,parent',\n\t\t\t};\n\n\t\t\t// Perform a search when the field is changed.\n\t\t\tif ( !! fieldValue ) {\n\t\t\t\tquery.search = fieldValue;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tparentPostId: pageId,\n\t\t\t\tparentPost: pageId\n\t\t\t\t\t? getEntityRecord( 'postType', postTypeSlug, pageId )\n\t\t\t\t\t: null,\n\t\t\t\titems: isHierarchical\n\t\t\t\t\t? getEntityRecords( 'postType', postTypeSlug, query )\n\t\t\t\t\t: [],\n\t\t\t\tpostType: pType,\n\t\t\t};\n\t\t},\n\t\t[ fieldValue ]\n\t);\n\n\tconst isHierarchical = get( postType, [ 'hierarchical' ], false );\n\tconst parentPageLabel = get( postType, [ 'labels', 'parent_item_colon' ] );\n\tconst pageItems = items || [];\n\n\tconst parentOptions = useMemo( () => {\n\t\tconst getOptionsFromTree = ( tree, level = 0 ) => {\n\t\t\tconst mappedNodes = tree.map( ( treeNode ) => [\n\t\t\t\t{\n\t\t\t\t\tvalue: treeNode.id,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'— '.repeat( level ) + decodeEntities( treeNode.name ),\n\t\t\t\t\trawName: treeNode.name,\n\t\t\t\t},\n\t\t\t\t...getOptionsFromTree( treeNode.children || [], level + 1 ),\n\t\t\t] );\n\n\t\t\tconst sortedNodes = mappedNodes.sort( ( [ a ], [ b ] ) => {\n\t\t\t\tconst priorityA = getItemPriority( a.rawName, fieldValue );\n\t\t\t\tconst priorityB = getItemPriority( b.rawName, fieldValue );\n\t\t\t\treturn priorityA >= priorityB ? 1 : -1;\n\t\t\t} );\n\n\t\t\treturn sortedNodes.flat();\n\t\t};\n\n\t\tlet tree = pageItems.map( ( item ) => ( {\n\t\t\tid: item.id,\n\t\t\tparent: item.parent,\n\t\t\tname: getTitle( item ),\n\t\t} ) );\n\n\t\t// Only build a hierarchical tree when not searching.\n\t\tif ( ! fieldValue ) {\n\t\t\ttree = buildTermsTree( tree );\n\t\t}\n\n\t\tconst opts = getOptionsFromTree( tree );\n\n\t\t// Ensure the current parent is in the options list.\n\t\tconst optsHasParent = opts.find(\n\t\t\t( item ) => item.value === parentPostId\n\t\t);\n\t\tif ( parentPost && ! optsHasParent ) {\n\t\t\topts.unshift( {\n\t\t\t\tvalue: parentPostId,\n\t\t\t\tlabel: getTitle( parentPost ),\n\t\t\t} );\n\t\t}\n\t\treturn opts;\n\t}, [ pageItems, fieldValue ] );\n\n\tif ( ! isHierarchical || ! parentPageLabel ) {\n\t\treturn null;\n\t}\n\t/**\n\t * Handle user input.\n\t *\n\t * @param {string} inputValue The current value of the input field.\n\t */\n\tconst handleKeydown = ( inputValue ) => {\n\t\tsetFieldValue( inputValue );\n\t};\n\n\t/**\n\t * Handle author selection.\n\t *\n\t * @param {Object} selectedPostId The selected Author.\n\t */\n\tconst handleChange = ( selectedPostId ) => {\n\t\teditPost( { parent: selectedPostId } );\n\t};\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\tlabel={ parentPageLabel }\n\t\t\tvalue={ parentPostId }\n\t\t\toptions={ parentOptions }\n\t\t\tonFilterValueChange={ debounce( handleKeydown, 300 ) }\n\t\t\tonChange={ handleChange }\n\t\t/>\n\t);\n}\n\nexport default PageAttributesParent;\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/page-attributes/parent.js"],"names":["getTitle","post","title","rendered","id","getItemPriority","name","searchValue","normalizedName","toLowerCase","normalizedSearch","startsWith","length","Infinity","PageAttributesParent","editPost","editorStore","fieldValue","setFieldValue","isHierarchical","parentPost","parentPostId","items","postType","select","getPostType","getEntityRecords","getEntityRecord","coreStore","getCurrentPostId","getEditedPostAttribute","postTypeSlug","pageId","pType","postId","postIsHierarchical","hierarchical","query","per_page","exclude","parent_exclude","orderby","order","_fields","search","parentPageLabel","labels","parent_item_colon","pageItems","parentOptions","getOptionsFromTree","tree","level","mappedNodes","map","treeNode","value","label","repeat","rawName","children","sortedNodes","sort","a","b","priorityA","priorityB","flat","item","parent","opts","optsHasParent","find","unshift","handleKeydown","inputValue","handleChange","selectedPostId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ComboboxControl } from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\nfunction getTitle( post ) {\n\treturn post?.title?.rendered\n\t\t? decodeEntities( post.title.rendered )\n\t\t: `#${ post.id } (${ __( 'no title' ) })`;\n}\n\nexport const getItemPriority = ( name, searchValue ) => {\n\tconst normalizedName = removeAccents( name || '' ).toLowerCase();\n\tconst normalizedSearch = removeAccents( searchValue || '' ).toLowerCase();\n\tif ( normalizedName === normalizedSearch ) {\n\t\treturn 0;\n\t}\n\n\tif ( normalizedName.startsWith( normalizedSearch ) ) {\n\t\treturn normalizedName.length;\n\t}\n\n\treturn Infinity;\n};\n\nexport function PageAttributesParent() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ fieldValue, setFieldValue ] = useState( false );\n\tconst { isHierarchical, parentPost, parentPostId, items, postType } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getPostType, getEntityRecords, getEntityRecord } =\n\t\t\t\t\tselect( coreStore );\n\t\t\t\tconst { getCurrentPostId, getEditedPostAttribute } =\n\t\t\t\t\tselect( editorStore );\n\t\t\t\tconst postTypeSlug = getEditedPostAttribute( 'type' );\n\t\t\t\tconst pageId = getEditedPostAttribute( 'parent' );\n\t\t\t\tconst pType = getPostType( postTypeSlug );\n\t\t\t\tconst postId = getCurrentPostId();\n\t\t\t\tconst postIsHierarchical = pType?.hierarchical ?? false;\n\t\t\t\tconst query = {\n\t\t\t\t\tper_page: 100,\n\t\t\t\t\texclude: postId,\n\t\t\t\t\tparent_exclude: postId,\n\t\t\t\t\torderby: 'menu_order',\n\t\t\t\t\torder: 'asc',\n\t\t\t\t\t_fields: 'id,title,parent',\n\t\t\t\t};\n\n\t\t\t\t// Perform a search when the field is changed.\n\t\t\t\tif ( !! fieldValue ) {\n\t\t\t\t\tquery.search = fieldValue;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tisHierarchical: postIsHierarchical,\n\t\t\t\t\tparentPostId: pageId,\n\t\t\t\t\tparentPost: pageId\n\t\t\t\t\t\t? getEntityRecord( 'postType', postTypeSlug, pageId )\n\t\t\t\t\t\t: null,\n\t\t\t\t\titems: postIsHierarchical\n\t\t\t\t\t\t? getEntityRecords( 'postType', postTypeSlug, query )\n\t\t\t\t\t\t: [],\n\t\t\t\t\tpostType: pType,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ fieldValue ]\n\t\t);\n\n\tconst parentPageLabel = postType?.labels?.parent_item_colon;\n\tconst pageItems = items || [];\n\n\tconst parentOptions = useMemo( () => {\n\t\tconst getOptionsFromTree = ( tree, level = 0 ) => {\n\t\t\tconst mappedNodes = tree.map( ( treeNode ) => [\n\t\t\t\t{\n\t\t\t\t\tvalue: treeNode.id,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'— '.repeat( level ) + decodeEntities( treeNode.name ),\n\t\t\t\t\trawName: treeNode.name,\n\t\t\t\t},\n\t\t\t\t...getOptionsFromTree( treeNode.children || [], level + 1 ),\n\t\t\t] );\n\n\t\t\tconst sortedNodes = mappedNodes.sort( ( [ a ], [ b ] ) => {\n\t\t\t\tconst priorityA = getItemPriority( a.rawName, fieldValue );\n\t\t\t\tconst priorityB = getItemPriority( b.rawName, fieldValue );\n\t\t\t\treturn priorityA >= priorityB ? 1 : -1;\n\t\t\t} );\n\n\t\t\treturn sortedNodes.flat();\n\t\t};\n\n\t\tlet tree = pageItems.map( ( item ) => ( {\n\t\t\tid: item.id,\n\t\t\tparent: item.parent,\n\t\t\tname: getTitle( item ),\n\t\t} ) );\n\n\t\t// Only build a hierarchical tree when not searching.\n\t\tif ( ! fieldValue ) {\n\t\t\ttree = buildTermsTree( tree );\n\t\t}\n\n\t\tconst opts = getOptionsFromTree( tree );\n\n\t\t// Ensure the current parent is in the options list.\n\t\tconst optsHasParent = opts.find(\n\t\t\t( item ) => item.value === parentPostId\n\t\t);\n\t\tif ( parentPost && ! optsHasParent ) {\n\t\t\topts.unshift( {\n\t\t\t\tvalue: parentPostId,\n\t\t\t\tlabel: getTitle( parentPost ),\n\t\t\t} );\n\t\t}\n\t\treturn opts;\n\t}, [ pageItems, fieldValue ] );\n\n\tif ( ! isHierarchical || ! parentPageLabel ) {\n\t\treturn null;\n\t}\n\t/**\n\t * Handle user input.\n\t *\n\t * @param {string} inputValue The current value of the input field.\n\t */\n\tconst handleKeydown = ( inputValue ) => {\n\t\tsetFieldValue( inputValue );\n\t};\n\n\t/**\n\t * Handle author selection.\n\t *\n\t * @param {Object} selectedPostId The selected Author.\n\t */\n\tconst handleChange = ( selectedPostId ) => {\n\t\teditPost( { parent: selectedPostId } );\n\t};\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\tlabel={ parentPageLabel }\n\t\t\tvalue={ parentPostId }\n\t\t\toptions={ parentOptions }\n\t\t\tonFilterValueChange={ debounce( handleKeydown, 300 ) }\n\t\t\tonChange={ handleChange }\n\t\t/>\n\t);\n}\n\nexport default PageAttributesParent;\n"]}
@@ -9,8 +9,6 @@ exports.default = PostAuthorCheck;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
- var _lodash = require("lodash");
13
-
14
12
  var _data = require("@wordpress/data");
15
13
 
16
14
  var _coreData = require("@wordpress/core-data");
@@ -21,10 +19,6 @@ var _store = require("../../store");
21
19
 
22
20
  var _constants = require("./constants");
23
21
 
24
- /**
25
- * External dependencies
26
- */
27
-
28
22
  /**
29
23
  * WordPress dependencies
30
24
  */
@@ -40,10 +34,12 @@ function PostAuthorCheck(_ref) {
40
34
  hasAssignAuthorAction,
41
35
  hasAuthors
42
36
  } = (0, _data.useSelect)(select => {
37
+ var _post$_links$wpActio, _post$_links;
38
+
43
39
  const post = select(_store.store).getCurrentPost();
44
40
  const authors = select(_coreData.store).getUsers(_constants.AUTHORS_QUERY);
45
41
  return {
46
- hasAssignAuthorAction: (0, _lodash.get)(post, ['_links', 'wp:action-assign-author'], false),
42
+ hasAssignAuthorAction: (_post$_links$wpActio = (_post$_links = post._links) === null || _post$_links === void 0 ? void 0 : _post$_links['wp:action-assign-author']) !== null && _post$_links$wpActio !== void 0 ? _post$_links$wpActio : false,
47
43
  hasAuthors: (authors === null || authors === void 0 ? void 0 : authors.length) >= 1
48
44
  };
49
45
  }, []);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-author/check.js"],"names":["PostAuthorCheck","children","hasAssignAuthorAction","hasAuthors","select","post","editorStore","getCurrentPost","authors","coreStore","getUsers","AUTHORS_QUERY","length"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAKe,SAASA,eAAT,OAAyC;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACvD,QAAM;AAAEC,IAAAA,qBAAF;AAAyBC,IAAAA;AAAzB,MAAwC,qBAAaC,MAAF,IAAc;AACtE,UAAMC,IAAI,GAAGD,MAAM,CAAEE,YAAF,CAAN,CAAsBC,cAAtB,EAAb;AACA,UAAMC,OAAO,GAAGJ,MAAM,CAAEK,eAAF,CAAN,CAAoBC,QAApB,CAA8BC,wBAA9B,CAAhB;AACA,WAAO;AACNT,MAAAA,qBAAqB,EAAE,iBACtBG,IADsB,EAEtB,CAAE,QAAF,EAAY,yBAAZ,CAFsB,EAGtB,KAHsB,CADjB;AAMNF,MAAAA,UAAU,EAAE,CAAAK,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEI,MAAT,KAAmB;AANzB,KAAP;AAQA,GAX6C,EAW3C,EAX2C,CAA9C;;AAaA,MAAK,CAAEV,qBAAF,IAA2B,CAAEC,UAAlC,EAA+C;AAC9C,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,6BAAD;AAAsB,IAAA,WAAW,EAAC;AAAlC,KACGF,QADH,CADD;AAKA","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\nimport { AUTHORS_QUERY } from './constants';\n\nexport default function PostAuthorCheck( { children } ) {\n\tconst { hasAssignAuthorAction, hasAuthors } = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tconst authors = select( coreStore ).getUsers( AUTHORS_QUERY );\n\t\treturn {\n\t\t\thasAssignAuthorAction: get(\n\t\t\t\tpost,\n\t\t\t\t[ '_links', 'wp:action-assign-author' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\thasAuthors: authors?.length >= 1,\n\t\t};\n\t}, [] );\n\n\tif ( ! hasAssignAuthorAction || ! hasAuthors ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"author\">\n\t\t\t{ children }\n\t\t</PostTypeSupportCheck>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-author/check.js"],"names":["PostAuthorCheck","children","hasAssignAuthorAction","hasAuthors","select","post","editorStore","getCurrentPost","authors","coreStore","getUsers","AUTHORS_QUERY","_links","length"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAXA;AACA;AACA;;AAIA;AACA;AACA;AAKe,SAASA,eAAT,OAAyC;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACvD,QAAM;AAAEC,IAAAA,qBAAF;AAAyBC,IAAAA;AAAzB,MAAwC,qBAAaC,MAAF,IAAc;AAAA;;AACtE,UAAMC,IAAI,GAAGD,MAAM,CAAEE,YAAF,CAAN,CAAsBC,cAAtB,EAAb;AACA,UAAMC,OAAO,GAAGJ,MAAM,CAAEK,eAAF,CAAN,CAAoBC,QAApB,CAA8BC,wBAA9B,CAAhB;AACA,WAAO;AACNT,MAAAA,qBAAqB,0CACpBG,IAAI,CAACO,MADe,iDACpB,aAAe,yBAAf,CADoB,uEAC0B,KAFzC;AAGNT,MAAAA,UAAU,EAAE,CAAAK,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEK,MAAT,KAAmB;AAHzB,KAAP;AAKA,GAR6C,EAQ3C,EAR2C,CAA9C;;AAUA,MAAK,CAAEX,qBAAF,IAA2B,CAAEC,UAAlC,EAA+C;AAC9C,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,6BAAD;AAAsB,IAAA,WAAW,EAAC;AAAlC,KACGF,QADH,CADD;AAKA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\nimport { AUTHORS_QUERY } from './constants';\n\nexport default function PostAuthorCheck( { children } ) {\n\tconst { hasAssignAuthorAction, hasAuthors } = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tconst authors = select( coreStore ).getUsers( AUTHORS_QUERY );\n\t\treturn {\n\t\t\thasAssignAuthorAction:\n\t\t\t\tpost._links?.[ 'wp:action-assign-author' ] ?? false,\n\t\t\thasAuthors: authors?.length >= 1,\n\t\t};\n\t}, [] );\n\n\tif ( ! hasAssignAuthorAction || ! hasAuthors ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"author\">\n\t\t\t{ children }\n\t\t</PostTypeSupportCheck>\n\t);\n}\n"]}
@@ -9,8 +9,6 @@ exports.default = void 0;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
- var _lodash = require("lodash");
13
-
14
12
  var _i18n = require("@wordpress/i18n");
15
13
 
16
14
  var _hooks = require("@wordpress/hooks");
@@ -31,10 +29,6 @@ var _check = _interopRequireDefault(require("./check"));
31
29
 
32
30
  var _store = require("../../store");
33
31
 
34
- /**
35
- * External dependencies
36
- */
37
-
38
32
  /**
39
33
  * WordPress dependencies
40
34
  */
@@ -86,7 +80,7 @@ function getMediaDetails(media, postId) {
86
80
  }
87
81
 
88
82
  function PostFeaturedImage(_ref) {
89
- var _media$media_details$3, _media$media_details$4;
83
+ var _media$media_details$3, _media$media_details$4, _postType$labels, _postType$labels3, _postType$labels4;
90
84
 
91
85
  let {
92
86
  currentPostId,
@@ -102,7 +96,6 @@ function PostFeaturedImage(_ref) {
102
96
  const mediaUpload = (0, _data.useSelect)(select => {
103
97
  return select(_blockEditor.store).getSettings().mediaUpload;
104
98
  }, []);
105
- const postLabel = (0, _lodash.get)(postType, ['labels'], {});
106
99
  const {
107
100
  mediaWidth,
108
101
  mediaHeight,
@@ -144,12 +137,14 @@ function PostFeaturedImage(_ref) {
144
137
  (0, _i18n.__)('The current image has no alternative text. The file name is: %s'), ((_media$media_details$3 = media.media_details.sizes) === null || _media$media_details$3 === void 0 ? void 0 : (_media$media_details$4 = _media$media_details$3.full) === null || _media$media_details$4 === void 0 ? void 0 : _media$media_details$4.file) || media.slug)), (0, _element.createElement)(_blockEditor.MediaUploadCheck, {
145
138
  fallback: instructions
146
139
  }, (0, _element.createElement)(_blockEditor.MediaUpload, {
147
- title: postLabel.featured_image || DEFAULT_FEATURE_IMAGE_LABEL,
140
+ title: (postType === null || postType === void 0 ? void 0 : (_postType$labels = postType.labels) === null || _postType$labels === void 0 ? void 0 : _postType$labels.featured_image) || DEFAULT_FEATURE_IMAGE_LABEL,
148
141
  onSelect: onUpdateImage,
149
142
  unstableFeaturedImageFlow: true,
150
143
  allowedTypes: ALLOWED_MEDIA_TYPES,
151
144
  modalClass: "editor-post-featured-image__media-modal",
152
145
  render: _ref3 => {
146
+ var _postType$labels2;
147
+
153
148
  let {
154
149
  open
155
150
  } = _ref3;
@@ -167,13 +162,13 @@ function PostFeaturedImage(_ref) {
167
162
  }, (0, _element.createElement)("img", {
168
163
  src: mediaSourceUrl,
169
164
  alt: ""
170
- })), isLoading && (0, _element.createElement)(_components.Spinner, null), !featuredImageId && !isLoading && (postLabel.set_featured_image || DEFAULT_SET_FEATURE_IMAGE_LABEL)), (0, _element.createElement)(_components.DropZone, {
165
+ })), isLoading && (0, _element.createElement)(_components.Spinner, null), !featuredImageId && !isLoading && ((postType === null || postType === void 0 ? void 0 : (_postType$labels2 = postType.labels) === null || _postType$labels2 === void 0 ? void 0 : _postType$labels2.set_featured_image) || DEFAULT_SET_FEATURE_IMAGE_LABEL)), (0, _element.createElement)(_components.DropZone, {
171
166
  onFilesDrop: onDropFiles
172
167
  }));
173
168
  },
174
169
  value: featuredImageId
175
170
  })), !!featuredImageId && (0, _element.createElement)(_blockEditor.MediaUploadCheck, null, media && (0, _element.createElement)(_blockEditor.MediaUpload, {
176
- title: postLabel.featured_image || DEFAULT_FEATURE_IMAGE_LABEL,
171
+ title: (postType === null || postType === void 0 ? void 0 : (_postType$labels3 = postType.labels) === null || _postType$labels3 === void 0 ? void 0 : _postType$labels3.featured_image) || DEFAULT_FEATURE_IMAGE_LABEL,
177
172
  onSelect: onUpdateImage,
178
173
  unstableFeaturedImageFlow: true,
179
174
  allowedTypes: ALLOWED_MEDIA_TYPES,
@@ -191,7 +186,7 @@ function PostFeaturedImage(_ref) {
191
186
  onClick: onRemoveImage,
192
187
  variant: "link",
193
188
  isDestructive: true
194
- }, postLabel.remove_featured_image || DEFAULT_REMOVE_FEATURE_IMAGE_LABEL))));
189
+ }, (postType === null || postType === void 0 ? void 0 : (_postType$labels4 = postType.labels) === null || _postType$labels4 === void 0 ? void 0 : _postType$labels4.remove_featured_image) || DEFAULT_REMOVE_FEATURE_IMAGE_LABEL))));
195
190
  }
196
191
 
197
192
  const applyWithSelect = (0, _data.withSelect)(select => {