@wordpress/editor 13.4.0 → 13.5.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.
- package/CHANGELOG.md +2 -0
- package/build/components/document-outline/index.js +7 -1
- package/build/components/document-outline/index.js.map +1 -1
- package/build/components/page-attributes/check.js +6 -10
- package/build/components/page-attributes/check.js.map +1 -1
- package/build/components/page-attributes/parent.js +9 -6
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/post-author/check.js +3 -7
- package/build/components/post-author/check.js.map +1 -1
- package/build/components/post-featured-image/index.js +7 -12
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-locked-modal/index.js +1 -7
- package/build/components/post-locked-modal/index.js.map +1 -1
- package/build/components/post-pending-status/check.js +3 -7
- package/build/components/post-pending-status/check.js.map +1 -1
- package/build/components/post-preview-button/index.js +3 -3
- package/build/components/post-preview-button/index.js.map +1 -1
- package/build/components/post-publish-button/index.js +4 -4
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-button/label.js +3 -7
- package/build/components/post-publish-button/label.js.map +1 -1
- package/build/components/post-publish-panel/index.js +4 -8
- package/build/components/post-publish-panel/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-post-format-panel.js +3 -7
- package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
- package/build/components/post-publish-panel/postpublish.js +5 -9
- package/build/components/post-publish-panel/postpublish.js.map +1 -1
- package/build/components/post-publish-panel/prepublish.js +3 -7
- package/build/components/post-publish-panel/prepublish.js.map +1 -1
- package/build/components/post-schedule/check.js +3 -7
- package/build/components/post-schedule/check.js.map +1 -1
- package/build/components/post-sticky/check.js +3 -7
- package/build/components/post-sticky/check.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +12 -7
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/hierarchical-term-selector.js +18 -12
- package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/most-used-terms.js +1 -8
- package/build/components/post-taxonomies/most-used-terms.js.map +1 -1
- package/build/components/post-visibility/check.js +3 -7
- package/build/components/post-visibility/check.js.map +1 -1
- package/build/components/theme-support-check/index.js +3 -7
- package/build/components/theme-support-check/index.js.map +1 -1
- package/build/store/utils/notice-builder.js +4 -8
- package/build/store/utils/notice-builder.js.map +1 -1
- package/build-module/components/document-outline/index.js +8 -2
- package/build-module/components/document-outline/index.js.map +1 -1
- package/build-module/components/page-attributes/check.js +6 -9
- package/build-module/components/page-attributes/check.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +9 -5
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/post-author/check.js +3 -6
- package/build-module/components/post-author/check.js.map +1 -1
- package/build-module/components/post-featured-image/index.js +7 -11
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-locked-modal/index.js +1 -6
- package/build-module/components/post-locked-modal/index.js.map +1 -1
- package/build-module/components/post-pending-status/check.js +3 -6
- package/build-module/components/post-pending-status/check.js.map +1 -1
- package/build-module/components/post-preview-button/index.js +3 -2
- package/build-module/components/post-preview-button/index.js.map +1 -1
- package/build-module/components/post-publish-button/index.js +4 -3
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-button/label.js +3 -6
- package/build-module/components/post-publish-button/label.js.map +1 -1
- package/build-module/components/post-publish-panel/index.js +4 -7
- package/build-module/components/post-publish-panel/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-post-format-panel.js +3 -6
- package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
- package/build-module/components/post-publish-panel/postpublish.js +5 -8
- package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
- package/build-module/components/post-publish-panel/prepublish.js +3 -6
- package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
- package/build-module/components/post-schedule/check.js +3 -6
- package/build-module/components/post-schedule/check.js.map +1 -1
- package/build-module/components/post-sticky/check.js +3 -6
- package/build-module/components/post-sticky/check.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +12 -6
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js +18 -11
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/most-used-terms.js +1 -7
- package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
- package/build-module/components/post-visibility/check.js +3 -6
- package/build-module/components/post-visibility/check.js.map +1 -1
- package/build-module/components/theme-support-check/index.js +3 -6
- package/build-module/components/theme-support-check/index.js.map +1 -1
- package/build-module/store/utils/notice-builder.js +4 -7
- package/build-module/store/utils/notice-builder.js.map +1 -1
- package/build-style/style-rtl.css +1 -1
- package/build-style/style.css +1 -1
- package/package.json +30 -30
- package/src/components/document-outline/index.js +6 -3
- package/src/components/page-attributes/check.js +3 -12
- package/src/components/page-attributes/parent.js +41 -41
- package/src/components/post-author/check.js +2 -10
- package/src/components/post-featured-image/index.js +5 -10
- package/src/components/post-locked-modal/index.js +1 -6
- package/src/components/post-pending-status/check.js +2 -10
- package/src/components/post-preview-button/index.js +1 -2
- package/src/components/post-publish-button/index.js +3 -7
- package/src/components/post-publish-button/label.js +2 -10
- package/src/components/post-publish-panel/index.js +3 -11
- package/src/components/post-publish-panel/maybe-post-format-panel.js +2 -10
- package/src/components/post-publish-panel/postpublish.js +3 -8
- package/src/components/post-publish-panel/prepublish.js +2 -10
- package/src/components/post-publish-panel/style.scss +1 -1
- package/src/components/post-schedule/check.js +2 -10
- package/src/components/post-sticky/check.js +1 -10
- package/src/components/post-taxonomies/flat-term-selector.js +14 -32
- package/src/components/post-taxonomies/hierarchical-term-selector.js +15 -37
- package/src/components/post-taxonomies/most-used-terms.js +1 -7
- package/src/components/post-visibility/check.js +2 -10
- package/src/components/theme-support-check/index.js +1 -6
- package/src/store/utils/notice-builder.js +2 -7
|
@@ -6,18 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ThemeSupportCheck = ThemeSupportCheck;
|
|
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
|
*/
|
|
@@ -33,7 +27,9 @@ function ThemeSupportCheck(_ref) {
|
|
|
33
27
|
supportKeys
|
|
34
28
|
} = _ref;
|
|
35
29
|
const isSupported = (Array.isArray(supportKeys) ? supportKeys : [supportKeys]).some(key => {
|
|
36
|
-
|
|
30
|
+
var _themeSupports$key;
|
|
31
|
+
|
|
32
|
+
const supported = (_themeSupports$key = themeSupports === null || themeSupports === void 0 ? void 0 : themeSupports[key]) !== null && _themeSupports$key !== void 0 ? _themeSupports$key : false; // 'post-thumbnails' can be boolean or an array of post types.
|
|
37
33
|
// In the latter case, we need to verify `postType` exists
|
|
38
34
|
// within `supported`. If `postType` isn't passed, then the check
|
|
39
35
|
// should fail.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/theme-support-check/index.js"],"names":["ThemeSupportCheck","themeSupports","children","postType","supportKeys","isSupported","Array","isArray","some","key","supported","includes","select","getThemeSupports","coreStore","getEditedPostAttribute","editorStore"],"mappings":";;;;;;;;AAGA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/theme-support-check/index.js"],"names":["ThemeSupportCheck","themeSupports","children","postType","supportKeys","isSupported","Array","isArray","some","key","supported","includes","select","getThemeSupports","coreStore","getEditedPostAttribute","editorStore"],"mappings":";;;;;;;;AAGA;;AACA;;AAKA;;AATA;AACA;AACA;;AAIA;AACA;AACA;AAGO,SAASA,iBAAT,OAKH;AAAA,MAL+B;AAClCC,IAAAA,aADkC;AAElCC,IAAAA,QAFkC;AAGlCC,IAAAA,QAHkC;AAIlCC,IAAAA;AAJkC,GAK/B;AACH,QAAMC,WAAW,GAAG,CACnBC,KAAK,CAACC,OAAN,CAAeH,WAAf,IAA+BA,WAA/B,GAA6C,CAAEA,WAAF,CAD1B,EAEjBI,IAFiB,CAETC,GAAF,IAAW;AAAA;;AACnB,UAAMC,SAAS,yBAAGT,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAIQ,GAAJ,CAAhB,mEAA6B,KAA5C,CADmB,CAEnB;AACA;AACA;AACA;;AACA,QAAK,sBAAsBA,GAAtB,IAA6BH,KAAK,CAACC,OAAN,CAAeG,SAAf,CAAlC,EAA+D;AAC9D,aAAOA,SAAS,CAACC,QAAV,CAAoBR,QAApB,CAAP;AACA;;AACD,WAAOO,SAAP;AACA,GAZmB,CAApB;;AAcA,MAAK,CAAEL,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,SAAOH,QAAP;AACA;;eAEc,sBAAcU,MAAF,IAAc;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAAuBD,MAAM,CAAEE,eAAF,CAAnC;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA6BH,MAAM,CAAEI,YAAF,CAAzC;AACA,SAAO;AACNb,IAAAA,QAAQ,EAAEY,sBAAsB,CAAE,MAAF,CAD1B;AAENd,IAAAA,aAAa,EAAEY,gBAAgB;AAFzB,GAAP;AAIA,CAPc,EAOVb,iBAPU,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { withSelect } 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 ThemeSupportCheck( {\n\tthemeSupports,\n\tchildren,\n\tpostType,\n\tsupportKeys,\n} ) {\n\tconst isSupported = (\n\t\tArray.isArray( supportKeys ) ? supportKeys : [ supportKeys ]\n\t ).some( ( key ) => {\n\t\tconst supported = themeSupports?.[ key ] ?? false;\n\t\t// 'post-thumbnails' can be boolean or an array of post types.\n\t\t// In the latter case, we need to verify `postType` exists\n\t\t// within `supported`. If `postType` isn't passed, then the check\n\t\t// should fail.\n\t\tif ( 'post-thumbnails' === key && Array.isArray( supported ) ) {\n\t\t\treturn supported.includes( postType );\n\t\t}\n\t\treturn supported;\n\t} );\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getThemeSupports } = select( coreStore );\n\tconst { getEditedPostAttribute } = select( editorStore );\n\treturn {\n\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\tthemeSupports: getThemeSupports(),\n\t};\n} )( ThemeSupportCheck );\n"]}
|
|
@@ -11,8 +11,6 @@ var _i18n = require("@wordpress/i18n");
|
|
|
11
11
|
|
|
12
12
|
var _constants = require("../constants");
|
|
13
13
|
|
|
14
|
-
var _lodash = require("lodash");
|
|
15
|
-
|
|
16
14
|
/**
|
|
17
15
|
* WordPress dependencies
|
|
18
16
|
*/
|
|
@@ -21,10 +19,6 @@ var _lodash = require("lodash");
|
|
|
21
19
|
* Internal dependencies
|
|
22
20
|
*/
|
|
23
21
|
|
|
24
|
-
/**
|
|
25
|
-
* External dependencies
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
22
|
/**
|
|
29
23
|
* Builds the arguments for a success notification dispatch.
|
|
30
24
|
*
|
|
@@ -34,13 +28,15 @@ var _lodash = require("lodash");
|
|
|
34
28
|
* notification should be sent.
|
|
35
29
|
*/
|
|
36
30
|
function getNotificationArgumentsForSaveSuccess(data) {
|
|
31
|
+
var _data$options, _postType$viewable;
|
|
32
|
+
|
|
37
33
|
const {
|
|
38
34
|
previousPost,
|
|
39
35
|
post,
|
|
40
36
|
postType
|
|
41
37
|
} = data; // Autosaves are neither shown a notice nor redirected.
|
|
42
38
|
|
|
43
|
-
if ((
|
|
39
|
+
if ((_data$options = data.options) !== null && _data$options !== void 0 && _data$options.isAutosave) {
|
|
44
40
|
return [];
|
|
45
41
|
} // No notice is shown after trashing a post
|
|
46
42
|
|
|
@@ -53,7 +49,7 @@ function getNotificationArgumentsForSaveSuccess(data) {
|
|
|
53
49
|
const isPublished = publishStatus.includes(previousPost.status);
|
|
54
50
|
const willPublish = publishStatus.includes(post.status);
|
|
55
51
|
let noticeMessage;
|
|
56
|
-
let shouldShowLink = (0
|
|
52
|
+
let shouldShowLink = (_postType$viewable = postType === null || postType === void 0 ? void 0 : postType.viewable) !== null && _postType$viewable !== void 0 ? _postType$viewable : false;
|
|
57
53
|
let isDraft; // Always should a notice, which will be spoken for accessibility.
|
|
58
54
|
|
|
59
55
|
if (!isPublished && !willPublish) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/store/utils/notice-builder.js"],"names":["getNotificationArgumentsForSaveSuccess","data","previousPost","post","postType","options","status","publishStatus","isPublished","includes","willPublish","noticeMessage","shouldShowLink","isDraft","labels","item_reverted_to_draft","publish","item_published","private","item_published_privately","future","item_scheduled","item_updated","actions","push","label","view_item","url","link","id","SAVE_POST_NOTICE_ID","type","getNotificationArgumentsForSaveFail","edits","error","code","indexOf","messages","message","test","join","getNotificationArgumentsForTrashFail","TRASH_POST_NOTICE_ID"],"mappings":";;;;;;;;;AAGA;;AAKA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/store/utils/notice-builder.js"],"names":["getNotificationArgumentsForSaveSuccess","data","previousPost","post","postType","options","isAutosave","status","publishStatus","isPublished","includes","willPublish","noticeMessage","shouldShowLink","viewable","isDraft","labels","item_reverted_to_draft","publish","item_published","private","item_published_privately","future","item_scheduled","item_updated","actions","push","label","view_item","url","link","id","SAVE_POST_NOTICE_ID","type","getNotificationArgumentsForSaveFail","edits","error","code","indexOf","messages","message","test","join","getNotificationArgumentsForTrashFail","TRASH_POST_NOTICE_ID"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { SAVE_POST_NOTICE_ID, TRASH_POST_NOTICE_ID } from '../constants';\n\n/**\n * Builds the arguments for a success notification dispatch.\n *\n * @param {Object} data Incoming data to build the arguments from.\n *\n * @return {Array} Arguments for dispatch. An empty array signals no\n * notification should be sent.\n */\nexport function getNotificationArgumentsForSaveSuccess( data ) {\n\tconst { previousPost, post, postType } = data;\n\t// Autosaves are neither shown a notice nor redirected.\n\tif ( data.options?.isAutosave ) {\n\t\treturn [];\n\t}\n\n\t// No notice is shown after trashing a post\n\tif ( post.status === 'trash' && previousPost.status !== 'trash' ) {\n\t\treturn [];\n\t}\n\n\tconst publishStatus = [ 'publish', 'private', 'future' ];\n\tconst isPublished = publishStatus.includes( previousPost.status );\n\tconst willPublish = publishStatus.includes( post.status );\n\n\tlet noticeMessage;\n\tlet shouldShowLink = postType?.viewable ?? false;\n\tlet isDraft;\n\n\t// Always should a notice, which will be spoken for accessibility.\n\tif ( ! isPublished && ! willPublish ) {\n\t\t// If saving a non-published post, don't show notice.\n\t\tnoticeMessage = __( 'Draft saved.' );\n\t\tisDraft = true;\n\t} else if ( isPublished && ! willPublish ) {\n\t\t// If undoing publish status, show specific notice.\n\t\tnoticeMessage = postType.labels.item_reverted_to_draft;\n\t\tshouldShowLink = false;\n\t} else if ( ! isPublished && willPublish ) {\n\t\t// If publishing or scheduling a post, show the corresponding\n\t\t// publish message.\n\t\tnoticeMessage = {\n\t\t\tpublish: postType.labels.item_published,\n\t\t\tprivate: postType.labels.item_published_privately,\n\t\t\tfuture: postType.labels.item_scheduled,\n\t\t}[ post.status ];\n\t} else {\n\t\t// Generic fallback notice.\n\t\tnoticeMessage = postType.labels.item_updated;\n\t}\n\n\tconst actions = [];\n\tif ( shouldShowLink ) {\n\t\tactions.push( {\n\t\t\tlabel: isDraft ? __( 'View Preview' ) : postType.labels.view_item,\n\t\t\turl: post.link,\n\t\t} );\n\t}\n\treturn [\n\t\tnoticeMessage,\n\t\t{\n\t\t\tid: SAVE_POST_NOTICE_ID,\n\t\t\ttype: 'snackbar',\n\t\t\tactions,\n\t\t},\n\t];\n}\n\n/**\n * Builds the fail notification arguments for dispatch.\n *\n * @param {Object} data Incoming data to build the arguments with.\n *\n * @return {Array} Arguments for dispatch. An empty array signals no\n * notification should be sent.\n */\nexport function getNotificationArgumentsForSaveFail( data ) {\n\tconst { post, edits, error } = data;\n\tif ( error && 'rest_autosave_no_changes' === error.code ) {\n\t\t// Autosave requested a new autosave, but there were no changes. This shouldn't\n\t\t// result in an error notice for the user.\n\t\treturn [];\n\t}\n\n\tconst publishStatus = [ 'publish', 'private', 'future' ];\n\tconst isPublished = publishStatus.indexOf( post.status ) !== -1;\n\t// If the post was being published, we show the corresponding publish error message\n\t// Unless we publish an \"updating failed\" message.\n\tconst messages = {\n\t\tpublish: __( 'Publishing failed.' ),\n\t\tprivate: __( 'Publishing failed.' ),\n\t\tfuture: __( 'Scheduling failed.' ),\n\t};\n\tlet noticeMessage =\n\t\t! isPublished && publishStatus.indexOf( edits.status ) !== -1\n\t\t\t? messages[ edits.status ]\n\t\t\t: __( 'Updating failed.' );\n\n\t// Check if message string contains HTML. Notice text is currently only\n\t// supported as plaintext, and stripping the tags may muddle the meaning.\n\tif ( error.message && ! /<\\/?[^>]*>/.test( error.message ) ) {\n\t\tnoticeMessage = [ noticeMessage, error.message ].join( ' ' );\n\t}\n\treturn [\n\t\tnoticeMessage,\n\t\t{\n\t\t\tid: SAVE_POST_NOTICE_ID,\n\t\t},\n\t];\n}\n\n/**\n * Builds the trash fail notification arguments for dispatch.\n *\n * @param {Object} data\n *\n * @return {Array} Arguments for dispatch.\n */\nexport function getNotificationArgumentsForTrashFail( data ) {\n\treturn [\n\t\tdata.error.message && data.error.code !== 'unknown_error'\n\t\t\t? data.error.message\n\t\t\t: __( 'Trashing failed' ),\n\t\t{\n\t\t\tid: TRASH_POST_NOTICE_ID,\n\t\t},\n\t];\n}\n"]}
|
|
@@ -5,7 +5,7 @@ import { createElement } from "@wordpress/element";
|
|
|
5
5
|
*/
|
|
6
6
|
import { __ } from '@wordpress/i18n';
|
|
7
7
|
import { compose } from '@wordpress/compose';
|
|
8
|
-
import { withSelect } from '@wordpress/data';
|
|
8
|
+
import { withSelect, useDispatch } from '@wordpress/data';
|
|
9
9
|
import { create, getTextContent } from '@wordpress/rich-text';
|
|
10
10
|
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
11
11
|
import { store as coreStore } from '@wordpress/core-data';
|
|
@@ -72,6 +72,9 @@ export const DocumentOutline = _ref => {
|
|
|
72
72
|
hasOutlineItemsDisabled
|
|
73
73
|
} = _ref;
|
|
74
74
|
const headings = computeOutlineHeadings(blocks);
|
|
75
|
+
const {
|
|
76
|
+
selectBlock
|
|
77
|
+
} = useDispatch(blockEditorStore);
|
|
75
78
|
|
|
76
79
|
if (headings.length < 1) {
|
|
77
80
|
return null;
|
|
@@ -105,7 +108,10 @@ export const DocumentOutline = _ref => {
|
|
|
105
108
|
isValid: isValid,
|
|
106
109
|
isDisabled: hasOutlineItemsDisabled,
|
|
107
110
|
href: `#block-${item.clientId}`,
|
|
108
|
-
onSelect:
|
|
111
|
+
onSelect: () => {
|
|
112
|
+
selectBlock(item.clientId);
|
|
113
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect();
|
|
114
|
+
}
|
|
109
115
|
}, item.isEmpty ? emptyHeadingContent : getTextContent(create({
|
|
110
116
|
html: item.attributes.content
|
|
111
117
|
})), 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":["__","compose","withSelect","create","getTextContent","store","blockEditorStore","coreStore","DocumentOutlineItem","editorStore","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","getEditedPostAttribute","getPostType","postType","supports"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,UAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/document-outline/index.js"],"names":["__","compose","withSelect","useDispatch","create","getTextContent","store","blockEditorStore","coreStore","DocumentOutlineItem","editorStore","emptyHeadingContent","incorrectLevelContent","singleH1Headings","multipleH1Headings","computeOutlineHeadings","blocks","flatMap","block","name","level","attributes","isEmpty","isEmptyHeading","innerBlocks","heading","content","length","DocumentOutline","title","onSelect","isTitleSupported","hasOutlineItemsDisabled","headings","selectBlock","prevHeadingLevel","titleNode","document","querySelector","hasTitle","countByLevel","reduce","acc","hasMultipleH1","id","map","item","index","isIncorrectLevel","isValid","clientId","html","select","getBlocks","getEditedPostAttribute","getPostType","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"]}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { get } from 'lodash';
|
|
5
1
|
/**
|
|
6
2
|
* WordPress dependencies
|
|
7
3
|
*/
|
|
8
|
-
|
|
9
4
|
import { useSelect } from '@wordpress/data';
|
|
10
5
|
import { store as coreStore } from '@wordpress/core-data';
|
|
11
6
|
/**
|
|
@@ -17,16 +12,18 @@ export function PageAttributesCheck(_ref) {
|
|
|
17
12
|
let {
|
|
18
13
|
children
|
|
19
14
|
} = _ref;
|
|
20
|
-
const
|
|
15
|
+
const supportsPageAttributes = useSelect(select => {
|
|
16
|
+
var _postType$supports;
|
|
17
|
+
|
|
21
18
|
const {
|
|
22
19
|
getEditedPostAttribute
|
|
23
20
|
} = select(editorStore);
|
|
24
21
|
const {
|
|
25
22
|
getPostType
|
|
26
23
|
} = select(coreStore);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
const postType = getPostType(getEditedPostAttribute('type'));
|
|
25
|
+
return !!(postType !== null && postType !== void 0 && (_postType$supports = postType.supports) !== null && _postType$supports !== void 0 && _postType$supports['page-attributes']);
|
|
26
|
+
}, []); // Only render fields if post type supports page attributes or available templates exist.
|
|
30
27
|
|
|
31
28
|
if (!supportsPageAttributes) {
|
|
32
29
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/page-attributes/check.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/page-attributes/check.js"],"names":["useSelect","store","coreStore","editorStore","PageAttributesCheck","children","supportsPageAttributes","select","getEditedPostAttribute","getPostType","postType","supports"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,mBAAT,OAA6C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACnD,QAAMC,sBAAsB,GAAGN,SAAS,CAAIO,MAAF,IAAc;AAAA;;AACvD,UAAM;AAAEC,MAAAA;AAAF,QAA6BD,MAAM,CAAEJ,WAAF,CAAzC;AACA,UAAM;AAAEM,MAAAA;AAAF,QAAkBF,MAAM,CAAEL,SAAF,CAA9B;AACA,UAAMQ,QAAQ,GAAGD,WAAW,CAAED,sBAAsB,CAAE,MAAF,CAAxB,CAA5B;AAEA,WAAO,CAAC,EAAEE,QAAF,aAAEA,QAAF,qCAAEA,QAAQ,CAAEC,QAAZ,+CAAE,mBAAsB,iBAAtB,CAAF,CAAR;AACA,GANuC,EAMrC,EANqC,CAAxC,CADmD,CASnD;;AACA,MAAK,CAAEL,sBAAP,EAAgC;AAC/B,WAAO,IAAP;AACA;;AAED,SAAOD,QAAP;AACA;AAED,eAAeD,mBAAf","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"]}
|
|
@@ -3,7 +3,6 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
|
-
import { get } from 'lodash';
|
|
7
6
|
import removeAccents from 'remove-accents';
|
|
8
7
|
/**
|
|
9
8
|
* WordPress dependencies
|
|
@@ -44,16 +43,21 @@ export const getItemPriority = (name, searchValue) => {
|
|
|
44
43
|
return Infinity;
|
|
45
44
|
};
|
|
46
45
|
export function PageAttributesParent() {
|
|
46
|
+
var _postType$labels;
|
|
47
|
+
|
|
47
48
|
const {
|
|
48
49
|
editPost
|
|
49
50
|
} = useDispatch(editorStore);
|
|
50
51
|
const [fieldValue, setFieldValue] = useState(false);
|
|
51
52
|
const {
|
|
53
|
+
isHierarchical,
|
|
52
54
|
parentPost,
|
|
53
55
|
parentPostId,
|
|
54
56
|
items,
|
|
55
57
|
postType
|
|
56
58
|
} = useSelect(select => {
|
|
59
|
+
var _pType$hierarchical;
|
|
60
|
+
|
|
57
61
|
const {
|
|
58
62
|
getPostType,
|
|
59
63
|
getEntityRecords,
|
|
@@ -67,7 +71,7 @@ export function PageAttributesParent() {
|
|
|
67
71
|
const pageId = getEditedPostAttribute('parent');
|
|
68
72
|
const pType = getPostType(postTypeSlug);
|
|
69
73
|
const postId = getCurrentPostId();
|
|
70
|
-
const
|
|
74
|
+
const postIsHierarchical = (_pType$hierarchical = pType === null || pType === void 0 ? void 0 : pType.hierarchical) !== null && _pType$hierarchical !== void 0 ? _pType$hierarchical : false;
|
|
71
75
|
const query = {
|
|
72
76
|
per_page: 100,
|
|
73
77
|
exclude: postId,
|
|
@@ -82,14 +86,14 @@ export function PageAttributesParent() {
|
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
return {
|
|
89
|
+
isHierarchical: postIsHierarchical,
|
|
85
90
|
parentPostId: pageId,
|
|
86
91
|
parentPost: pageId ? getEntityRecord('postType', postTypeSlug, pageId) : null,
|
|
87
|
-
items:
|
|
92
|
+
items: postIsHierarchical ? getEntityRecords('postType', postTypeSlug, query) : [],
|
|
88
93
|
postType: pType
|
|
89
94
|
};
|
|
90
95
|
}, [fieldValue]);
|
|
91
|
-
const
|
|
92
|
-
const parentPageLabel = get(postType, ['labels', 'parent_item_colon']);
|
|
96
|
+
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;
|
|
93
97
|
const pageItems = items || [];
|
|
94
98
|
const parentOptions = useMemo(() => {
|
|
95
99
|
const getOptionsFromTree = function (tree) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/page-attributes/parent.js"],"names":["get","removeAccents","__","ComboboxControl","debounce","useState","useMemo","useSelect","useDispatch","decodeEntities","store","coreStore","buildTermsTree","editorStore","getTitle","post","title","rendered","id","getItemPriority","name","searchValue","normalizedName","toLowerCase","normalizedSearch","startsWith","length","Infinity","PageAttributesParent","editPost","fieldValue","setFieldValue","parentPost","parentPostId","items","postType","select","getPostType","getEntityRecords","getEntityRecord","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":["removeAccents","__","ComboboxControl","debounce","useState","useMemo","useSelect","useDispatch","decodeEntities","store","coreStore","buildTermsTree","editorStore","getTitle","post","title","rendered","id","getItemPriority","name","searchValue","normalizedName","toLowerCase","normalizedSearch","startsWith","length","Infinity","PageAttributesParent","editPost","fieldValue","setFieldValue","isHierarchical","parentPost","parentPostId","items","postType","select","getPostType","getEntityRecords","getEntityRecord","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"]}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { createElement } from "@wordpress/element";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* External dependencies
|
|
5
|
-
*/
|
|
6
|
-
import { get } from 'lodash';
|
|
7
3
|
/**
|
|
8
4
|
* WordPress dependencies
|
|
9
5
|
*/
|
|
10
|
-
|
|
11
6
|
import { useSelect } from '@wordpress/data';
|
|
12
7
|
import { store as coreStore } from '@wordpress/core-data';
|
|
13
8
|
/**
|
|
@@ -25,10 +20,12 @@ export default function PostAuthorCheck(_ref) {
|
|
|
25
20
|
hasAssignAuthorAction,
|
|
26
21
|
hasAuthors
|
|
27
22
|
} = useSelect(select => {
|
|
23
|
+
var _post$_links$wpActio, _post$_links;
|
|
24
|
+
|
|
28
25
|
const post = select(editorStore).getCurrentPost();
|
|
29
26
|
const authors = select(coreStore).getUsers(AUTHORS_QUERY);
|
|
30
27
|
return {
|
|
31
|
-
hasAssignAuthorAction:
|
|
28
|
+
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,
|
|
32
29
|
hasAuthors: (authors === null || authors === void 0 ? void 0 : authors.length) >= 1
|
|
33
30
|
};
|
|
34
31
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-author/check.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-author/check.js"],"names":["useSelect","store","coreStore","PostTypeSupportCheck","editorStore","AUTHORS_QUERY","PostAuthorCheck","children","hasAssignAuthorAction","hasAuthors","select","post","getCurrentPost","authors","getUsers","_links","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,4BAAjC;AACA,SAASF,KAAK,IAAIG,WAAlB,QAAqC,aAArC;AACA,SAASC,aAAT,QAA8B,aAA9B;AAEA,eAAe,SAASC,eAAT,OAAyC;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACvD,QAAM;AAAEC,IAAAA,qBAAF;AAAyBC,IAAAA;AAAzB,MAAwCT,SAAS,CAAIU,MAAF,IAAc;AAAA;;AACtE,UAAMC,IAAI,GAAGD,MAAM,CAAEN,WAAF,CAAN,CAAsBQ,cAAtB,EAAb;AACA,UAAMC,OAAO,GAAGH,MAAM,CAAER,SAAF,CAAN,CAAoBY,QAApB,CAA8BT,aAA9B,CAAhB;AACA,WAAO;AACNG,MAAAA,qBAAqB,0CACpBG,IAAI,CAACI,MADe,iDACpB,aAAe,yBAAf,CADoB,uEAC0B,KAFzC;AAGNN,MAAAA,UAAU,EAAE,CAAAI,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEG,MAAT,KAAmB;AAHzB,KAAP;AAKA,GARsD,EAQpD,EARoD,CAAvD;;AAUA,MAAK,CAAER,qBAAF,IAA2B,CAAEC,UAAlC,EAA+C;AAC9C,WAAO,IAAP;AACA;;AAED,SACC,cAAC,oBAAD;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"]}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { createElement } from "@wordpress/element";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* External dependencies
|
|
5
|
-
*/
|
|
6
|
-
import { get } from 'lodash';
|
|
7
3
|
/**
|
|
8
4
|
* WordPress dependencies
|
|
9
5
|
*/
|
|
10
|
-
|
|
11
6
|
import { __, sprintf } from '@wordpress/i18n';
|
|
12
7
|
import { applyFilters } from '@wordpress/hooks';
|
|
13
8
|
import { DropZone, Button, Spinner, ResponsiveWrapper, withNotices, withFilters } from '@wordpress/components';
|
|
@@ -70,7 +65,7 @@ function getMediaDetails(media, postId) {
|
|
|
70
65
|
}
|
|
71
66
|
|
|
72
67
|
function PostFeaturedImage(_ref) {
|
|
73
|
-
var _media$media_details$3, _media$media_details$4;
|
|
68
|
+
var _media$media_details$3, _media$media_details$4, _postType$labels, _postType$labels3, _postType$labels4;
|
|
74
69
|
|
|
75
70
|
let {
|
|
76
71
|
currentPostId,
|
|
@@ -86,7 +81,6 @@ function PostFeaturedImage(_ref) {
|
|
|
86
81
|
const mediaUpload = useSelect(select => {
|
|
87
82
|
return select(blockEditorStore).getSettings().mediaUpload;
|
|
88
83
|
}, []);
|
|
89
|
-
const postLabel = get(postType, ['labels'], {});
|
|
90
84
|
const {
|
|
91
85
|
mediaWidth,
|
|
92
86
|
mediaHeight,
|
|
@@ -128,12 +122,14 @@ function PostFeaturedImage(_ref) {
|
|
|
128
122
|
__('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)), createElement(MediaUploadCheck, {
|
|
129
123
|
fallback: instructions
|
|
130
124
|
}, createElement(MediaUpload, {
|
|
131
|
-
title:
|
|
125
|
+
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,
|
|
132
126
|
onSelect: onUpdateImage,
|
|
133
127
|
unstableFeaturedImageFlow: true,
|
|
134
128
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
135
129
|
modalClass: "editor-post-featured-image__media-modal",
|
|
136
130
|
render: _ref3 => {
|
|
131
|
+
var _postType$labels2;
|
|
132
|
+
|
|
137
133
|
let {
|
|
138
134
|
open
|
|
139
135
|
} = _ref3;
|
|
@@ -151,13 +147,13 @@ function PostFeaturedImage(_ref) {
|
|
|
151
147
|
}, createElement("img", {
|
|
152
148
|
src: mediaSourceUrl,
|
|
153
149
|
alt: ""
|
|
154
|
-
})), isLoading && createElement(Spinner, null), !featuredImageId && !isLoading && (
|
|
150
|
+
})), isLoading && createElement(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)), createElement(DropZone, {
|
|
155
151
|
onFilesDrop: onDropFiles
|
|
156
152
|
}));
|
|
157
153
|
},
|
|
158
154
|
value: featuredImageId
|
|
159
155
|
})), !!featuredImageId && createElement(MediaUploadCheck, null, media && createElement(MediaUpload, {
|
|
160
|
-
title:
|
|
156
|
+
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,
|
|
161
157
|
onSelect: onUpdateImage,
|
|
162
158
|
unstableFeaturedImageFlow: true,
|
|
163
159
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
@@ -175,7 +171,7 @@ function PostFeaturedImage(_ref) {
|
|
|
175
171
|
onClick: onRemoveImage,
|
|
176
172
|
variant: "link",
|
|
177
173
|
isDestructive: true
|
|
178
|
-
},
|
|
174
|
+
}, (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))));
|
|
179
175
|
}
|
|
180
176
|
|
|
181
177
|
const applyWithSelect = withSelect(select => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-featured-image/index.js"],"names":["get","__","sprintf","applyFilters","DropZone","Button","Spinner","ResponsiveWrapper","withNotices","withFilters","isBlobURL","useState","compose","useSelect","withDispatch","withSelect","MediaUpload","MediaUploadCheck","store","blockEditorStore","coreStore","PostFeaturedImageCheck","editorStore","ALLOWED_MEDIA_TYPES","DEFAULT_FEATURE_IMAGE_LABEL","DEFAULT_SET_FEATURE_IMAGE_LABEL","DEFAULT_REMOVE_FEATURE_IMAGE_LABEL","instructions","getMediaDetails","media","postId","defaultSize","id","media_details","sizes","mediaWidth","width","mediaHeight","height","mediaSourceUrl","source_url","fallbackSize","PostFeaturedImage","currentPostId","featuredImageId","onUpdateImage","onRemoveImage","postType","noticeUI","noticeOperations","isLoading","setIsLoading","mediaUpload","select","getSettings","postLabel","onDropFiles","filesList","allowedTypes","onFileChange","image","url","onError","message","removeAllNotices","createErrorNotice","alt_text","full","file","slug","featured_image","open","set_featured_image","remove_featured_image","applyWithSelect","getMedia","getPostType","getCurrentPostId","getEditedPostAttribute","context","applyWithDispatch","dispatch","editPost","featured_media","onDropImage"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport {\n\tDropZone,\n\tButton,\n\tSpinner,\n\tResponsiveWrapper,\n\twithNotices,\n\twithFilters,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useState } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { useSelect, withDispatch, withSelect } from '@wordpress/data';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFeaturedImageCheck from './check';\nimport { store as editorStore } from '../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n// Used when labels from post type were not yet loaded or when they are not present.\nconst DEFAULT_FEATURE_IMAGE_LABEL = __( 'Featured image' );\nconst DEFAULT_SET_FEATURE_IMAGE_LABEL = __( 'Set featured image' );\nconst DEFAULT_REMOVE_FEATURE_IMAGE_LABEL = __( 'Remove image' );\n\nconst instructions = (\n\t<p>\n\t\t{ __(\n\t\t\t'To edit the featured image, you need permission to upload media.'\n\t\t) }\n\t</p>\n);\n\nfunction getMediaDetails( media, postId ) {\n\tif ( ! media ) {\n\t\treturn {};\n\t}\n\n\tconst defaultSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'large',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( defaultSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ defaultSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ defaultSize ].height,\n\t\t\tmediaSourceUrl: media.media_details.sizes[ defaultSize ].source_url,\n\t\t};\n\t}\n\n\t// Use fallbackSize when defaultSize is not available.\n\tconst fallbackSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'thumbnail',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( fallbackSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ fallbackSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ fallbackSize ].height,\n\t\t\tmediaSourceUrl:\n\t\t\t\tmedia.media_details.sizes[ fallbackSize ].source_url,\n\t\t};\n\t}\n\n\t// Use full image size when fallbackSize and defaultSize are not available.\n\treturn {\n\t\tmediaWidth: media.media_details.width,\n\t\tmediaHeight: media.media_details.height,\n\t\tmediaSourceUrl: media.source_url,\n\t};\n}\n\nfunction PostFeaturedImage( {\n\tcurrentPostId,\n\tfeaturedImageId,\n\tonUpdateImage,\n\tonRemoveImage,\n\tmedia,\n\tpostType,\n\tnoticeUI,\n\tnoticeOperations,\n} ) {\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst postLabel = get( postType, [ 'labels' ], {} );\n\tconst { mediaWidth, mediaHeight, mediaSourceUrl } = getMediaDetails(\n\t\tmedia,\n\t\tcurrentPostId\n\t);\n\n\tfunction onDropFiles( filesList ) {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonUpdateImage( image );\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError( message ) {\n\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PostFeaturedImageCheck>\n\t\t\t{ noticeUI }\n\t\t\t<div className=\"editor-post-featured-image\">\n\t\t\t\t{ media && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ `editor-post-featured-image-${ featuredImageId }-describedby` }\n\t\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image alt text.\n\t\t\t\t\t\t\t\t__( 'Current image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image filename.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'The current image has no alternative text. The file name is: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmedia.media_details.sizes?.full?.file ||\n\t\t\t\t\t\t\t\t\tmedia.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<MediaUploadCheck fallback={ instructions }>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tpostLabel.featured_image ||\n\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<div className=\"editor-post-featured-image__container\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? 'editor-post-featured-image__toggle'\n\t\t\t\t\t\t\t\t\t\t\t: 'editor-post-featured-image__preview'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit or update the image' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: `editor-post-featured-image-${ featuredImageId }-describedby`\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\t\t{ !! featuredImageId && media && (\n\t\t\t\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\t\t\t\tnaturalWidth={ mediaWidth }\n\t\t\t\t\t\t\t\t\t\t\tnaturalHeight={ mediaHeight }\n\t\t\t\t\t\t\t\t\t\t\tisInline\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={ mediaSourceUrl }\n\t\t\t\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t\t{ ! featuredImageId &&\n\t\t\t\t\t\t\t\t\t\t! isLoading &&\n\t\t\t\t\t\t\t\t\t\t( postLabel.set_featured_image ||\n\t\t\t\t\t\t\t\t\t\t\tDEFAULT_SET_FEATURE_IMAGE_LABEL ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ featuredImageId }\n\t\t\t\t\t/>\n\t\t\t\t</MediaUploadCheck>\n\t\t\t\t{ !! featuredImageId && (\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t{ media && (\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\tpostLabel.featured_image ||\n\t\t\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Replace Image' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ onRemoveImage }\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postLabel.remove_featured_image ||\n\t\t\t\t\t\t\t\tDEFAULT_REMOVE_FEATURE_IMAGE_LABEL }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PostFeaturedImageCheck>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getMedia, getPostType } = select( coreStore );\n\tconst { getCurrentPostId, getEditedPostAttribute } = select( editorStore );\n\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn {\n\t\tmedia: featuredImageId\n\t\t\t? getMedia( featuredImageId, { context: 'view' } )\n\t\t\t: null,\n\t\tcurrentPostId: getCurrentPostId(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tfeaturedImageId,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch(\n\t( dispatch, { noticeOperations }, { select } ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateImage( image ) {\n\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t},\n\t\t\tonDropImage( filesList ) {\n\t\t\t\tselect( blockEditorStore )\n\t\t\t\t\t.getSettings()\n\t\t\t\t\t.mediaUpload( {\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t\tfilesList,\n\t\t\t\t\t\tonFileChange( [ image ] ) {\n\t\t\t\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t},\n\t\t\tonRemoveImage() {\n\t\t\t\teditPost( { featured_media: 0 } );\n\t\t\t},\n\t\t};\n\t}\n);\n\nexport default compose(\n\twithNotices,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\twithFilters( 'editor.PostFeaturedImage' )\n)( PostFeaturedImage );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-featured-image/index.js"],"names":["__","sprintf","applyFilters","DropZone","Button","Spinner","ResponsiveWrapper","withNotices","withFilters","isBlobURL","useState","compose","useSelect","withDispatch","withSelect","MediaUpload","MediaUploadCheck","store","blockEditorStore","coreStore","PostFeaturedImageCheck","editorStore","ALLOWED_MEDIA_TYPES","DEFAULT_FEATURE_IMAGE_LABEL","DEFAULT_SET_FEATURE_IMAGE_LABEL","DEFAULT_REMOVE_FEATURE_IMAGE_LABEL","instructions","getMediaDetails","media","postId","defaultSize","id","media_details","sizes","mediaWidth","width","mediaHeight","height","mediaSourceUrl","source_url","fallbackSize","PostFeaturedImage","currentPostId","featuredImageId","onUpdateImage","onRemoveImage","postType","noticeUI","noticeOperations","isLoading","setIsLoading","mediaUpload","select","getSettings","onDropFiles","filesList","allowedTypes","onFileChange","image","url","onError","message","removeAllNotices","createErrorNotice","alt_text","full","file","slug","labels","featured_image","open","set_featured_image","remove_featured_image","applyWithSelect","getMedia","getPostType","getCurrentPostId","getEditedPostAttribute","context","applyWithDispatch","dispatch","editPost","featured_media","onDropImage"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport {\n\tDropZone,\n\tButton,\n\tSpinner,\n\tResponsiveWrapper,\n\twithNotices,\n\twithFilters,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useState } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { useSelect, withDispatch, withSelect } from '@wordpress/data';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFeaturedImageCheck from './check';\nimport { store as editorStore } from '../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n// Used when labels from post type were not yet loaded or when they are not present.\nconst DEFAULT_FEATURE_IMAGE_LABEL = __( 'Featured image' );\nconst DEFAULT_SET_FEATURE_IMAGE_LABEL = __( 'Set featured image' );\nconst DEFAULT_REMOVE_FEATURE_IMAGE_LABEL = __( 'Remove image' );\n\nconst instructions = (\n\t<p>\n\t\t{ __(\n\t\t\t'To edit the featured image, you need permission to upload media.'\n\t\t) }\n\t</p>\n);\n\nfunction getMediaDetails( media, postId ) {\n\tif ( ! media ) {\n\t\treturn {};\n\t}\n\n\tconst defaultSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'large',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( defaultSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ defaultSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ defaultSize ].height,\n\t\t\tmediaSourceUrl: media.media_details.sizes[ defaultSize ].source_url,\n\t\t};\n\t}\n\n\t// Use fallbackSize when defaultSize is not available.\n\tconst fallbackSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'thumbnail',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( fallbackSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ fallbackSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ fallbackSize ].height,\n\t\t\tmediaSourceUrl:\n\t\t\t\tmedia.media_details.sizes[ fallbackSize ].source_url,\n\t\t};\n\t}\n\n\t// Use full image size when fallbackSize and defaultSize are not available.\n\treturn {\n\t\tmediaWidth: media.media_details.width,\n\t\tmediaHeight: media.media_details.height,\n\t\tmediaSourceUrl: media.source_url,\n\t};\n}\n\nfunction PostFeaturedImage( {\n\tcurrentPostId,\n\tfeaturedImageId,\n\tonUpdateImage,\n\tonRemoveImage,\n\tmedia,\n\tpostType,\n\tnoticeUI,\n\tnoticeOperations,\n} ) {\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst { mediaWidth, mediaHeight, mediaSourceUrl } = getMediaDetails(\n\t\tmedia,\n\t\tcurrentPostId\n\t);\n\n\tfunction onDropFiles( filesList ) {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonUpdateImage( image );\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError( message ) {\n\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PostFeaturedImageCheck>\n\t\t\t{ noticeUI }\n\t\t\t<div className=\"editor-post-featured-image\">\n\t\t\t\t{ media && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ `editor-post-featured-image-${ featuredImageId }-describedby` }\n\t\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image alt text.\n\t\t\t\t\t\t\t\t__( 'Current image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image filename.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'The current image has no alternative text. The file name is: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmedia.media_details.sizes?.full?.file ||\n\t\t\t\t\t\t\t\t\tmedia.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<MediaUploadCheck fallback={ instructions }>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tpostType?.labels?.featured_image ||\n\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<div className=\"editor-post-featured-image__container\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? 'editor-post-featured-image__toggle'\n\t\t\t\t\t\t\t\t\t\t\t: 'editor-post-featured-image__preview'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit or update the image' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: `editor-post-featured-image-${ featuredImageId }-describedby`\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\t\t{ !! featuredImageId && media && (\n\t\t\t\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\t\t\t\tnaturalWidth={ mediaWidth }\n\t\t\t\t\t\t\t\t\t\t\tnaturalHeight={ mediaHeight }\n\t\t\t\t\t\t\t\t\t\t\tisInline\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={ mediaSourceUrl }\n\t\t\t\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t\t{ ! featuredImageId &&\n\t\t\t\t\t\t\t\t\t\t! isLoading &&\n\t\t\t\t\t\t\t\t\t\t( postType?.labels\n\t\t\t\t\t\t\t\t\t\t\t?.set_featured_image ||\n\t\t\t\t\t\t\t\t\t\t\tDEFAULT_SET_FEATURE_IMAGE_LABEL ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ featuredImageId }\n\t\t\t\t\t/>\n\t\t\t\t</MediaUploadCheck>\n\t\t\t\t{ !! featuredImageId && (\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t{ media && (\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\tpostType?.labels?.featured_image ||\n\t\t\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Replace Image' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ onRemoveImage }\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postType?.labels?.remove_featured_image ||\n\t\t\t\t\t\t\t\tDEFAULT_REMOVE_FEATURE_IMAGE_LABEL }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PostFeaturedImageCheck>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getMedia, getPostType } = select( coreStore );\n\tconst { getCurrentPostId, getEditedPostAttribute } = select( editorStore );\n\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn {\n\t\tmedia: featuredImageId\n\t\t\t? getMedia( featuredImageId, { context: 'view' } )\n\t\t\t: null,\n\t\tcurrentPostId: getCurrentPostId(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tfeaturedImageId,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch(\n\t( dispatch, { noticeOperations }, { select } ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateImage( image ) {\n\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t},\n\t\t\tonDropImage( filesList ) {\n\t\t\t\tselect( blockEditorStore )\n\t\t\t\t\t.getSettings()\n\t\t\t\t\t.mediaUpload( {\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t\tfilesList,\n\t\t\t\t\t\tonFileChange( [ image ] ) {\n\t\t\t\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t},\n\t\t\tonRemoveImage() {\n\t\t\t\teditPost( { featured_media: 0 } );\n\t\t\t},\n\t\t};\n\t}\n);\n\nexport default compose(\n\twithNotices,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\twithFilters( 'editor.PostFeaturedImage' )\n)( PostFeaturedImage );\n"]}
|