@wordpress/editor 14.8.3 → 14.8.5
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/build/bindings/post-meta.js +64 -42
- package/build/bindings/post-meta.js.map +1 -1
- package/build/components/editor-interface/index.js +7 -3
- package/build/components/editor-interface/index.js.map +1 -1
- package/build/components/entities-saved-states/index.js +8 -6
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/plugin-sidebar/index.js +2 -6
- package/build/components/plugin-sidebar/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-upload-media.js +3 -3
- package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build/components/preview-dropdown/index.js +14 -1
- package/build/components/preview-dropdown/index.js.map +1 -1
- package/build/components/provider/index.js +10 -14
- package/build/components/provider/index.js.map +1 -1
- package/build/components/visual-editor/index.js +6 -6
- package/build/components/visual-editor/index.js.map +1 -1
- package/build/components/zoom-out-toggle/index.js +22 -6
- package/build/components/zoom-out-toggle/index.js.map +1 -1
- package/build/store/actions.js +15 -4
- package/build/store/actions.js.map +1 -1
- package/build-module/bindings/post-meta.js +65 -42
- package/build-module/bindings/post-meta.js.map +1 -1
- package/build-module/components/editor-interface/index.js +7 -3
- package/build-module/components/editor-interface/index.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +8 -6
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/plugin-sidebar/index.js +2 -6
- package/build-module/components/plugin-sidebar/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-upload-media.js +3 -3
- package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build-module/components/preview-dropdown/index.js +14 -1
- package/build-module/components/preview-dropdown/index.js.map +1 -1
- package/build-module/components/provider/index.js +10 -14
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/visual-editor/index.js +6 -6
- package/build-module/components/visual-editor/index.js.map +1 -1
- package/build-module/components/zoom-out-toggle/index.js +22 -6
- package/build-module/components/zoom-out-toggle/index.js.map +1 -1
- package/build-module/store/actions.js +16 -5
- package/build-module/store/actions.js.map +1 -1
- package/build-style/style-rtl.css +2 -2
- package/build-style/style.css +2 -2
- package/build-types/bindings/post-meta.d.ts +3 -8
- package/build-types/bindings/post-meta.d.ts.map +1 -1
- package/build-types/components/editor-interface/index.d.ts.map +1 -1
- package/build-types/components/entities-saved-states/index.d.ts.map +1 -1
- package/build-types/components/plugin-sidebar/index.d.ts.map +1 -1
- package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
- package/build-types/components/provider/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/index.d.ts.map +1 -1
- package/build-types/components/zoom-out-toggle/index.d.ts.map +1 -1
- package/build-types/store/actions.d.ts.map +1 -1
- package/package.json +30 -30
- package/src/bindings/post-meta.js +73 -65
- package/src/components/editor-interface/index.js +6 -4
- package/src/components/entities-saved-states/index.js +10 -8
- package/src/components/entities-saved-states/style.scss +2 -2
- package/src/components/plugin-sidebar/index.js +1 -6
- package/src/components/post-publish-panel/maybe-upload-media.js +3 -3
- package/src/components/preview-dropdown/index.js +11 -1
- package/src/components/provider/index.js +13 -20
- package/src/components/visual-editor/index.js +8 -6
- package/src/components/zoom-out-toggle/index.js +23 -6
- package/src/store/actions.js +26 -11
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -15,21 +15,60 @@ var _lockUnlock = require("../lock-unlock");
|
|
|
15
15
|
* Internal dependencies
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Gets a list of post meta fields with their values and labels
|
|
20
|
+
* to be consumed in the needed callbacks.
|
|
21
|
+
* If the value is not available based on context, like in templates,
|
|
22
|
+
* it falls back to the default value, label, or key.
|
|
23
|
+
*
|
|
24
|
+
* @param {Object} registry The registry context exposed through `useRegistry`.
|
|
25
|
+
* @param {Object} context The context provided.
|
|
26
|
+
* @return {Object} List of post meta fields with their value and label.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```js
|
|
30
|
+
* {
|
|
31
|
+
* field_1_key: {
|
|
32
|
+
* label: 'Field 1 Label',
|
|
33
|
+
* value: 'Field 1 Value',
|
|
34
|
+
* },
|
|
35
|
+
* field_2_key: {
|
|
36
|
+
* label: 'Field 2 Label',
|
|
37
|
+
* value: 'Field 2 Value',
|
|
38
|
+
* },
|
|
39
|
+
* ...
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
function getPostMetaFields(registry, context) {
|
|
21
44
|
const {
|
|
22
45
|
getEditedEntityRecord
|
|
23
46
|
} = registry.select(_coreData.store);
|
|
47
|
+
const {
|
|
48
|
+
getRegisteredPostMeta
|
|
49
|
+
} = (0, _lockUnlock.unlock)(registry.select(_coreData.store));
|
|
50
|
+
let entityMetaValues;
|
|
51
|
+
// Try to get the current entity meta values.
|
|
24
52
|
if (context?.postType && context?.postId) {
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
53
|
+
entityMetaValues = getEditedEntityRecord('postType', context?.postType, context?.postId).meta;
|
|
54
|
+
}
|
|
55
|
+
const registeredFields = getRegisteredPostMeta(context?.postType);
|
|
56
|
+
const metaFields = {};
|
|
57
|
+
Object.entries(registeredFields || {}).forEach(([key, props]) => {
|
|
58
|
+
// Don't include footnotes or private fields.
|
|
59
|
+
if (key !== 'footnotes' && key.charAt(0) !== '_') {
|
|
60
|
+
var _entityMetaValues$key;
|
|
61
|
+
metaFields[key] = {
|
|
62
|
+
label: props.title || key,
|
|
63
|
+
value: // When using the entity value, an empty string IS a valid value.
|
|
64
|
+
(_entityMetaValues$key = entityMetaValues?.[key]) !== null && _entityMetaValues$key !== void 0 ? _entityMetaValues$key :
|
|
65
|
+
// When using the default, an empty string IS NOT a valid value.
|
|
66
|
+
props.default || undefined
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
if (!Object.keys(metaFields || {}).length) {
|
|
71
|
+
return null;
|
|
33
72
|
}
|
|
34
73
|
return metaFields;
|
|
35
74
|
}
|
|
@@ -40,17 +79,17 @@ var _default = exports.default = {
|
|
|
40
79
|
context,
|
|
41
80
|
bindings
|
|
42
81
|
}) {
|
|
43
|
-
const
|
|
44
|
-
getRegisteredPostMeta
|
|
45
|
-
} = (0, _lockUnlock.unlock)(registry.select(_coreData.store));
|
|
46
|
-
const registeredFields = getRegisteredPostMeta(context?.postType);
|
|
47
|
-
const metaFields = getMetadata(registry, context, registeredFields);
|
|
82
|
+
const metaFields = getPostMetaFields(registry, context);
|
|
48
83
|
const newValues = {};
|
|
49
84
|
for (const [attributeName, source] of Object.entries(bindings)) {
|
|
50
|
-
var _ref
|
|
85
|
+
var _ref;
|
|
51
86
|
// Use the value, the field label, or the field key.
|
|
52
|
-
const
|
|
53
|
-
|
|
87
|
+
const fieldKey = source.args.key;
|
|
88
|
+
const {
|
|
89
|
+
value: fieldValue,
|
|
90
|
+
label: fieldLabel
|
|
91
|
+
} = metaFields?.[fieldKey] || {};
|
|
92
|
+
newValues[attributeName] = (_ref = fieldValue !== null && fieldValue !== void 0 ? fieldValue : fieldLabel) !== null && _ref !== void 0 ? _ref : fieldKey;
|
|
54
93
|
}
|
|
55
94
|
return newValues;
|
|
56
95
|
},
|
|
@@ -71,7 +110,7 @@ var _default = exports.default = {
|
|
|
71
110
|
});
|
|
72
111
|
},
|
|
73
112
|
canUserEditValue({
|
|
74
|
-
|
|
113
|
+
registry,
|
|
75
114
|
context,
|
|
76
115
|
args
|
|
77
116
|
}) {
|
|
@@ -79,27 +118,25 @@ var _default = exports.default = {
|
|
|
79
118
|
if (context?.query || context?.queryId) {
|
|
80
119
|
return false;
|
|
81
120
|
}
|
|
82
|
-
const postType = context?.postType || select(_store.store).getCurrentPostType();
|
|
121
|
+
const postType = context?.postType || registry.select(_store.store).getCurrentPostType();
|
|
83
122
|
|
|
84
123
|
// Check that editing is happening in the post editor and not a template.
|
|
85
124
|
if (postType === 'wp_template') {
|
|
86
125
|
return false;
|
|
87
126
|
}
|
|
88
|
-
|
|
89
|
-
// Check that the custom field is not protected and available in the REST API.
|
|
127
|
+
const fieldValue = getPostMetaFields(registry, context)?.[args.key]?.value;
|
|
90
128
|
// Empty string or `false` could be a valid value, so we need to check if the field value is undefined.
|
|
91
|
-
const fieldValue = select(_coreData.store).getEntityRecord('postType', postType, context?.postId)?.meta?.[args.key];
|
|
92
129
|
if (fieldValue === undefined) {
|
|
93
130
|
return false;
|
|
94
131
|
}
|
|
95
132
|
// Check that custom fields metabox is not enabled.
|
|
96
|
-
const areCustomFieldsEnabled = select(_store.store).getEditorSettings().enableCustomFields;
|
|
133
|
+
const areCustomFieldsEnabled = registry.select(_store.store).getEditorSettings().enableCustomFields;
|
|
97
134
|
if (areCustomFieldsEnabled) {
|
|
98
135
|
return false;
|
|
99
136
|
}
|
|
100
137
|
|
|
101
138
|
// Check that the user has the capability to edit post meta.
|
|
102
|
-
const canUserEdit = select(_coreData.store).canUser('update', {
|
|
139
|
+
const canUserEdit = registry.select(_coreData.store).canUser('update', {
|
|
103
140
|
kind: 'postType',
|
|
104
141
|
name: context?.postType,
|
|
105
142
|
id: context?.postId
|
|
@@ -113,22 +150,7 @@ var _default = exports.default = {
|
|
|
113
150
|
registry,
|
|
114
151
|
context
|
|
115
152
|
}) {
|
|
116
|
-
|
|
117
|
-
getRegisteredPostMeta
|
|
118
|
-
} = (0, _lockUnlock.unlock)(registry.select(_coreData.store));
|
|
119
|
-
const registeredFields = getRegisteredPostMeta(context?.postType);
|
|
120
|
-
const metaFields = getMetadata(registry, context, registeredFields);
|
|
121
|
-
if (!metaFields || !Object.keys(metaFields).length) {
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
return Object.fromEntries(Object.entries(metaFields)
|
|
125
|
-
// Remove footnotes or private keys from the list of fields.
|
|
126
|
-
.filter(([key]) => key !== 'footnotes' && key.charAt(0) !== '_')
|
|
127
|
-
// Return object with label and value.
|
|
128
|
-
.map(([key, value]) => [key, {
|
|
129
|
-
label: registeredFields?.[key]?.title || key,
|
|
130
|
-
value
|
|
131
|
-
}]));
|
|
153
|
+
return getPostMetaFields(registry, context);
|
|
132
154
|
}
|
|
133
155
|
};
|
|
134
156
|
//# sourceMappingURL=post-meta.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_coreData","require","_store","_lockUnlock","
|
|
1
|
+
{"version":3,"names":["_coreData","require","_store","_lockUnlock","getPostMetaFields","registry","context","getEditedEntityRecord","select","coreDataStore","getRegisteredPostMeta","unlock","entityMetaValues","postType","postId","meta","registeredFields","metaFields","Object","entries","forEach","key","props","charAt","_entityMetaValues$key","label","title","value","default","undefined","keys","length","_default","exports","name","getValues","bindings","newValues","attributeName","source","_ref","fieldKey","args","fieldValue","fieldLabel","setValues","newMeta","values","newValue","dispatch","editEntityRecord","canUserEditValue","query","queryId","editorStore","getCurrentPostType","areCustomFieldsEnabled","getEditorSettings","enableCustomFields","canUserEdit","canUser","kind","id","getFieldsList"],"sources":["@wordpress/editor/src/bindings/post-meta.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\n/**\n * Gets a list of post meta fields with their values and labels\n * to be consumed in the needed callbacks.\n * If the value is not available based on context, like in templates,\n * it falls back to the default value, label, or key.\n *\n * @param {Object} registry The registry context exposed through `useRegistry`.\n * @param {Object} context The context provided.\n * @return {Object} List of post meta fields with their value and label.\n *\n * @example\n * ```js\n * {\n * field_1_key: {\n * label: 'Field 1 Label',\n * value: 'Field 1 Value',\n * },\n * field_2_key: {\n * label: 'Field 2 Label',\n * value: 'Field 2 Value',\n * },\n * ...\n * }\n * ```\n */\nfunction getPostMetaFields( registry, context ) {\n\tconst { getEditedEntityRecord } = registry.select( coreDataStore );\n\tconst { getRegisteredPostMeta } = unlock(\n\t\tregistry.select( coreDataStore )\n\t);\n\n\tlet entityMetaValues;\n\t// Try to get the current entity meta values.\n\tif ( context?.postType && context?.postId ) {\n\t\tentityMetaValues = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\tcontext?.postType,\n\t\t\tcontext?.postId\n\t\t).meta;\n\t}\n\n\tconst registeredFields = getRegisteredPostMeta( context?.postType );\n\tconst metaFields = {};\n\tObject.entries( registeredFields || {} ).forEach( ( [ key, props ] ) => {\n\t\t// Don't include footnotes or private fields.\n\t\tif ( key !== 'footnotes' && key.charAt( 0 ) !== '_' ) {\n\t\t\tmetaFields[ key ] = {\n\t\t\t\tlabel: props.title || key,\n\t\t\t\tvalue:\n\t\t\t\t\t// When using the entity value, an empty string IS a valid value.\n\t\t\t\t\tentityMetaValues?.[ key ] ??\n\t\t\t\t\t// When using the default, an empty string IS NOT a valid value.\n\t\t\t\t\t( props.default || undefined ),\n\t\t\t};\n\t\t}\n\t} );\n\n\tif ( ! Object.keys( metaFields || {} ).length ) {\n\t\treturn null;\n\t}\n\n\treturn metaFields;\n}\n\nexport default {\n\tname: 'core/post-meta',\n\tgetValues( { registry, context, bindings } ) {\n\t\tconst metaFields = getPostMetaFields( registry, context );\n\n\t\tconst newValues = {};\n\t\tfor ( const [ attributeName, source ] of Object.entries( bindings ) ) {\n\t\t\t// Use the value, the field label, or the field key.\n\t\t\tconst fieldKey = source.args.key;\n\t\t\tconst { value: fieldValue, label: fieldLabel } =\n\t\t\t\tmetaFields?.[ fieldKey ] || {};\n\t\t\tnewValues[ attributeName ] = fieldValue ?? fieldLabel ?? fieldKey;\n\t\t}\n\t\treturn newValues;\n\t},\n\tsetValues( { registry, context, bindings } ) {\n\t\tconst newMeta = {};\n\t\tObject.values( bindings ).forEach( ( { args, newValue } ) => {\n\t\t\tnewMeta[ args.key ] = newValue;\n\t\t} );\n\t\tregistry\n\t\t\t.dispatch( coreDataStore )\n\t\t\t.editEntityRecord( 'postType', context?.postType, context?.postId, {\n\t\t\t\tmeta: newMeta,\n\t\t\t} );\n\t},\n\tcanUserEditValue( { registry, context, args } ) {\n\t\t// Lock editing in query loop.\n\t\tif ( context?.query || context?.queryId ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst postType =\n\t\t\tcontext?.postType ||\n\t\t\tregistry.select( editorStore ).getCurrentPostType();\n\n\t\t// Check that editing is happening in the post editor and not a template.\n\t\tif ( postType === 'wp_template' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst fieldValue = getPostMetaFields( registry, context )?.[ args.key ]\n\t\t\t?.value;\n\t\t// Empty string or `false` could be a valid value, so we need to check if the field value is undefined.\n\t\tif ( fieldValue === undefined ) {\n\t\t\treturn false;\n\t\t}\n\t\t// Check that custom fields metabox is not enabled.\n\t\tconst areCustomFieldsEnabled = registry\n\t\t\t.select( editorStore )\n\t\t\t.getEditorSettings().enableCustomFields;\n\t\tif ( areCustomFieldsEnabled ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check that the user has the capability to edit post meta.\n\t\tconst canUserEdit = registry\n\t\t\t.select( coreDataStore )\n\t\t\t.canUser( 'update', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: context?.postType,\n\t\t\t\tid: context?.postId,\n\t\t\t} );\n\t\tif ( ! canUserEdit ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\tgetFieldsList( { registry, context } ) {\n\t\treturn getPostMetaFields( registry, context );\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,6 +23,7 @@ var _savePublishPanels = _interopRequireDefault(require("../save-publish-panels"
|
|
|
23
23
|
var _textEditor = _interopRequireDefault(require("../text-editor"));
|
|
24
24
|
var _visualEditor = _interopRequireDefault(require("../visual-editor"));
|
|
25
25
|
var _contentSlotFill = _interopRequireDefault(require("./content-slot-fill"));
|
|
26
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
26
27
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
28
|
/**
|
|
28
29
|
* External dependencies
|
|
@@ -74,7 +75,7 @@ function EditorInterface({
|
|
|
74
75
|
nextShortcut,
|
|
75
76
|
showBlockBreadcrumbs,
|
|
76
77
|
documentLabel,
|
|
77
|
-
|
|
78
|
+
isZoomOut
|
|
78
79
|
} = (0, _data.useSelect)(select => {
|
|
79
80
|
const {
|
|
80
81
|
get
|
|
@@ -85,6 +86,9 @@ function EditorInterface({
|
|
|
85
86
|
} = select(_store.store);
|
|
86
87
|
const editorSettings = getEditorSettings();
|
|
87
88
|
const postTypeLabel = getPostTypeLabel();
|
|
89
|
+
const {
|
|
90
|
+
isZoomOut: _isZoomOut
|
|
91
|
+
} = (0, _lockUnlock.unlock)(select(_blockEditor.store));
|
|
88
92
|
return {
|
|
89
93
|
mode: select(_store.store).getEditorMode(),
|
|
90
94
|
isRichEditingEnabled: editorSettings.richEditingEnabled,
|
|
@@ -97,7 +101,7 @@ function EditorInterface({
|
|
|
97
101
|
showBlockBreadcrumbs: get('core', 'showBlockBreadcrumbs'),
|
|
98
102
|
// translators: Default label for the Document in the Block Breadcrumb.
|
|
99
103
|
documentLabel: postTypeLabel || (0, _i18n._x)('Document', 'noun'),
|
|
100
|
-
|
|
104
|
+
isZoomOut: _isZoomOut()
|
|
101
105
|
};
|
|
102
106
|
}, []);
|
|
103
107
|
const isLargeViewport = (0, _compose.useViewportMatch)('medium');
|
|
@@ -159,7 +163,7 @@ function EditorInterface({
|
|
|
159
163
|
})
|
|
160
164
|
})]
|
|
161
165
|
}),
|
|
162
|
-
footer: !isPreviewMode && !isDistractionFree && isLargeViewport && showBlockBreadcrumbs && isRichEditingEnabled &&
|
|
166
|
+
footer: !isPreviewMode && !isDistractionFree && isLargeViewport && showBlockBreadcrumbs && isRichEditingEnabled && !isZoomOut && mode === 'visual' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockBreadcrumb, {
|
|
163
167
|
rootLabelText: documentLabel
|
|
164
168
|
}),
|
|
165
169
|
actions: !isPreviewMode ? customSavePanel || /*#__PURE__*/(0, _jsxRuntime.jsx)(_savePublishPanels.default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_interface","_data","_i18n","_preferences","_blockEditor","_keyboardShortcuts","_compose","_element","_store","_editorNotices","_header","_inserterSidebar","_listViewSidebar","_savePublishPanels","_textEditor","_visualEditor","_contentSlotFill","_jsxRuntime","interfaceLabels","header","__","body","sidebar","actions","footer","EditorInterface","className","enableRegionNavigation","styles","children","forceIsDirty","contentRef","disableIframe","autoFocus","customSaveButton","customSavePanel","forceDisableBlockTools","title","iframeProps","mode","isRichEditingEnabled","isInserterOpened","isListViewOpened","isDistractionFree","isPreviewMode","previousShortcut","nextShortcut","showBlockBreadcrumbs","documentLabel","blockEditorMode","useSelect","select","get","preferencesStore","getEditorSettings","getPostTypeLabel","editorStore","editorSettings","postTypeLabel","getEditorMode","richEditingEnabled","__unstableIsPreviewMode","keyboardShortcutsStore","getAllShortcutKeyCombinations","_x","blockEditorStore","__unstableGetEditorMode","isLargeViewport","useViewportMatch","secondarySidebarLabel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","useState","closeEntitiesSavedStates","useCallback","arg","jsx","InterfaceSkeleton","clsx","labels","secondarySidebar","default","isEditorIframed","editorNotices","ComplementaryArea","Slot","scope","content","jsxs","Fragment","editorCanvasView","BlockToolbar","hideDragHandle","BlockBreadcrumb","rootLabelText","isEntitiesSavedStatesOpen","forceIsDirtyPublishPanel","undefined","shortcuts","previous","next"],"sources":["@wordpress/editor/src/components/editor-interface/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { InterfaceSkeleton, ComplementaryArea } from '@wordpress/interface';\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tstore as blockEditorStore,\n\tBlockBreadcrumb,\n\tBlockToolbar,\n} from '@wordpress/block-editor';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport EditorNotices from '../editor-notices';\nimport Header from '../header';\nimport InserterSidebar from '../inserter-sidebar';\nimport ListViewSidebar from '../list-view-sidebar';\nimport SavePublishPanels from '../save-publish-panels';\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditorContentSlotFill from './content-slot-fill';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nexport default function EditorInterface( {\n\tclassName,\n\tenableRegionNavigation,\n\tstyles,\n\tchildren,\n\tforceIsDirty,\n\tcontentRef,\n\tdisableIframe,\n\tautoFocus,\n\tcustomSaveButton,\n\tcustomSavePanel,\n\tforceDisableBlockTools,\n\ttitle,\n\tiframeProps,\n} ) {\n\tconst {\n\t\tmode,\n\t\tisRichEditingEnabled,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tisDistractionFree,\n\t\tisPreviewMode,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t\tshowBlockBreadcrumbs,\n\t\tdocumentLabel,\n\t\tblockEditorMode,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\n\t\treturn {\n\t\t\tmode: select( editorStore ).getEditorMode(),\n\t\t\tisRichEditingEnabled: editorSettings.richEditingEnabled,\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editorStore ).isListViewOpened(),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\tisPreviewMode: editorSettings.__unstableIsPreviewMode,\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/editor/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/editor/next-region' ),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\tdocumentLabel: postTypeLabel || _x( 'Document', 'noun' ),\n\t\t\tblockEditorMode:\n\t\t\t\tselect( blockEditorStore ).__unstableGetEditorMode(),\n\t\t};\n\t}, [] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'Document Overview' )\n\t\t: __( 'Block Library' );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =\n\t\tuseState( false );\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tenableRegionNavigation={ enableRegionNavigation }\n\t\t\tisDistractionFree={ isDistractionFree }\n\t\t\tclassName={ clsx( 'editor-editor-interface', className, {\n\t\t\t\t'is-entity-save-view-open': !! entitiesSavedStatesCallback,\n\t\t\t\t'is-distraction-free': isDistractionFree && ! isPreviewMode,\n\t\t\t} ) }\n\t\t\tlabels={ {\n\t\t\t\t...interfaceLabels,\n\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t} }\n\t\t\theader={\n\t\t\t\t! isPreviewMode && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcustomSaveButton={ customSaveButton }\n\t\t\t\t\t\tforceDisableBlockTools={ forceDisableBlockTools }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tisEditorIframed={ ! disableIframe }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\teditorNotices={ <EditorNotices /> }\n\t\t\tsecondarySidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\tmode === 'visual' &&\n\t\t\t\t( ( isInserterOpened && <InserterSidebar /> ) ||\n\t\t\t\t\t( isListViewOpened && <ListViewSidebar /> ) )\n\t\t\t}\n\t\t\tsidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree && <ComplementaryArea.Slot scope=\"core\" />\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ ! isDistractionFree && ! isPreviewMode && (\n\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t) }\n\n\t\t\t\t\t<EditorContentSlotFill.Slot>\n\t\t\t\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t\t\t\teditorCanvasView\n\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{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t( mode === 'text' ||\n\t\t\t\t\t\t\t\t\t\t\t! isRichEditingEnabled ) && (\n\t\t\t\t\t\t\t\t\t\t\t<TextEditor\n\t\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\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{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t! isLargeViewport &&\n\t\t\t\t\t\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ( isPreviewMode ||\n\t\t\t\t\t\t\t\t\t\t( isRichEditingEnabled &&\n\t\t\t\t\t\t\t\t\t\t\tmode === 'visual' ) ) && (\n\t\t\t\t\t\t\t\t\t\t<VisualEditor\n\t\t\t\t\t\t\t\t\t\t\tstyles={ styles }\n\t\t\t\t\t\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\t\t\t\t\t\tdisableIframe={ disableIframe }\n\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\n\t\t\t\t\t\t\t\t\t\t\tiframeProps={ iframeProps }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ children }\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</EditorContentSlotFill.Slot>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree &&\n\t\t\t\tisLargeViewport &&\n\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\tisRichEditingEnabled &&\n\t\t\t\tblockEditorMode !== 'zoom-out' &&\n\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t)\n\t\t\t}\n\t\t\tactions={\n\t\t\t\t! isPreviewMode\n\t\t\t\t\t? customSavePanel || (\n\t\t\t\t\t\t\t<SavePublishPanels\n\t\t\t\t\t\t\t\tcloseEntitiesSavedStates={\n\t\t\t\t\t\t\t\t\tcloseEntitiesSavedStates\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisEntitiesSavedStatesOpen={\n\t\t\t\t\t\t\t\t\tentitiesSavedStatesCallback\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tforceIsDirtyPublishPanel={ forceIsDirty }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tshortcuts={ {\n\t\t\t\tprevious: previousShortcut,\n\t\t\t\tnext: nextShortcut,\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_interface","_data","_i18n","_preferences","_blockEditor","_keyboardShortcuts","_compose","_element","_store","_editorNotices","_header","_inserterSidebar","_listViewSidebar","_savePublishPanels","_textEditor","_visualEditor","_contentSlotFill","_lockUnlock","_jsxRuntime","interfaceLabels","header","__","body","sidebar","actions","footer","EditorInterface","className","enableRegionNavigation","styles","children","forceIsDirty","contentRef","disableIframe","autoFocus","customSaveButton","customSavePanel","forceDisableBlockTools","title","iframeProps","mode","isRichEditingEnabled","isInserterOpened","isListViewOpened","isDistractionFree","isPreviewMode","previousShortcut","nextShortcut","showBlockBreadcrumbs","documentLabel","isZoomOut","useSelect","select","get","preferencesStore","getEditorSettings","getPostTypeLabel","editorStore","editorSettings","postTypeLabel","_isZoomOut","unlock","blockEditorStore","getEditorMode","richEditingEnabled","__unstableIsPreviewMode","keyboardShortcutsStore","getAllShortcutKeyCombinations","_x","isLargeViewport","useViewportMatch","secondarySidebarLabel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","useState","closeEntitiesSavedStates","useCallback","arg","jsx","InterfaceSkeleton","clsx","labels","secondarySidebar","default","isEditorIframed","editorNotices","ComplementaryArea","Slot","scope","content","jsxs","Fragment","editorCanvasView","BlockToolbar","hideDragHandle","BlockBreadcrumb","rootLabelText","isEntitiesSavedStatesOpen","forceIsDirtyPublishPanel","undefined","shortcuts","previous","next"],"sources":["@wordpress/editor/src/components/editor-interface/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { InterfaceSkeleton, ComplementaryArea } from '@wordpress/interface';\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tstore as blockEditorStore,\n\tBlockBreadcrumb,\n\tBlockToolbar,\n} from '@wordpress/block-editor';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport EditorNotices from '../editor-notices';\nimport Header from '../header';\nimport InserterSidebar from '../inserter-sidebar';\nimport ListViewSidebar from '../list-view-sidebar';\nimport SavePublishPanels from '../save-publish-panels';\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditorContentSlotFill from './content-slot-fill';\n\nimport { unlock } from '../../lock-unlock';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nexport default function EditorInterface( {\n\tclassName,\n\tenableRegionNavigation,\n\tstyles,\n\tchildren,\n\tforceIsDirty,\n\tcontentRef,\n\tdisableIframe,\n\tautoFocus,\n\tcustomSaveButton,\n\tcustomSavePanel,\n\tforceDisableBlockTools,\n\ttitle,\n\tiframeProps,\n} ) {\n\tconst {\n\t\tmode,\n\t\tisRichEditingEnabled,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tisDistractionFree,\n\t\tisPreviewMode,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t\tshowBlockBreadcrumbs,\n\t\tdocumentLabel,\n\t\tisZoomOut,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\t\tconst { isZoomOut: _isZoomOut } = unlock( select( blockEditorStore ) );\n\n\t\treturn {\n\t\t\tmode: select( editorStore ).getEditorMode(),\n\t\t\tisRichEditingEnabled: editorSettings.richEditingEnabled,\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editorStore ).isListViewOpened(),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\tisPreviewMode: editorSettings.__unstableIsPreviewMode,\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/editor/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/editor/next-region' ),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\tdocumentLabel: postTypeLabel || _x( 'Document', 'noun' ),\n\t\t\tisZoomOut: _isZoomOut(),\n\t\t};\n\t}, [] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'Document Overview' )\n\t\t: __( 'Block Library' );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =\n\t\tuseState( false );\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tenableRegionNavigation={ enableRegionNavigation }\n\t\t\tisDistractionFree={ isDistractionFree }\n\t\t\tclassName={ clsx( 'editor-editor-interface', className, {\n\t\t\t\t'is-entity-save-view-open': !! entitiesSavedStatesCallback,\n\t\t\t\t'is-distraction-free': isDistractionFree && ! isPreviewMode,\n\t\t\t} ) }\n\t\t\tlabels={ {\n\t\t\t\t...interfaceLabels,\n\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t} }\n\t\t\theader={\n\t\t\t\t! isPreviewMode && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcustomSaveButton={ customSaveButton }\n\t\t\t\t\t\tforceDisableBlockTools={ forceDisableBlockTools }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tisEditorIframed={ ! disableIframe }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\teditorNotices={ <EditorNotices /> }\n\t\t\tsecondarySidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\tmode === 'visual' &&\n\t\t\t\t( ( isInserterOpened && <InserterSidebar /> ) ||\n\t\t\t\t\t( isListViewOpened && <ListViewSidebar /> ) )\n\t\t\t}\n\t\t\tsidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree && <ComplementaryArea.Slot scope=\"core\" />\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ ! isDistractionFree && ! isPreviewMode && (\n\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t) }\n\n\t\t\t\t\t<EditorContentSlotFill.Slot>\n\t\t\t\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t\t\t\teditorCanvasView\n\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{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t( mode === 'text' ||\n\t\t\t\t\t\t\t\t\t\t\t! isRichEditingEnabled ) && (\n\t\t\t\t\t\t\t\t\t\t\t<TextEditor\n\t\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\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{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t! isLargeViewport &&\n\t\t\t\t\t\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ( isPreviewMode ||\n\t\t\t\t\t\t\t\t\t\t( isRichEditingEnabled &&\n\t\t\t\t\t\t\t\t\t\t\tmode === 'visual' ) ) && (\n\t\t\t\t\t\t\t\t\t\t<VisualEditor\n\t\t\t\t\t\t\t\t\t\t\tstyles={ styles }\n\t\t\t\t\t\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\t\t\t\t\t\tdisableIframe={ disableIframe }\n\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\n\t\t\t\t\t\t\t\t\t\t\tiframeProps={ iframeProps }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ children }\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</EditorContentSlotFill.Slot>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree &&\n\t\t\t\tisLargeViewport &&\n\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\tisRichEditingEnabled &&\n\t\t\t\t! isZoomOut &&\n\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t)\n\t\t\t}\n\t\t\tactions={\n\t\t\t\t! isPreviewMode\n\t\t\t\t\t? customSavePanel || (\n\t\t\t\t\t\t\t<SavePublishPanels\n\t\t\t\t\t\t\t\tcloseEntitiesSavedStates={\n\t\t\t\t\t\t\t\t\tcloseEntitiesSavedStates\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisEntitiesSavedStatesOpen={\n\t\t\t\t\t\t\t\t\tentitiesSavedStatesCallback\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tforceIsDirtyPublishPanel={ forceIsDirty }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tshortcuts={ {\n\t\t\t\tprevious: previousShortcut,\n\t\t\t\tnext: nextShortcut,\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAKA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AAKA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,cAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,OAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,gBAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,gBAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,kBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,WAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,aAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,gBAAA,GAAAlB,sBAAA,CAAAC,OAAA;AAEA,IAAAkB,WAAA,GAAAlB,OAAA;AAA2C,IAAAmB,WAAA,GAAAnB,OAAA;AAlC3C;AACA;AACA;;AAGA;AACA;AACA;;AAcA;AACA;AACA;;AAaA,MAAMoB,eAAe,GAAG;EACvB;EACAC,MAAM,EAAE,IAAAC,QAAE,EAAE,gBAAiB,CAAC;EAC9B;EACAC,IAAI,EAAE,IAAAD,QAAE,EAAE,gBAAiB,CAAC;EAC5B;EACAE,OAAO,EAAE,IAAAF,QAAE,EAAE,iBAAkB,CAAC;EAChC;EACAG,OAAO,EAAE,IAAAH,QAAE,EAAE,gBAAiB,CAAC;EAC/B;EACAI,MAAM,EAAE,IAAAJ,QAAE,EAAE,eAAgB;AAC7B,CAAC;AAEc,SAASK,eAAeA,CAAE;EACxCC,SAAS;EACTC,sBAAsB;EACtBC,MAAM;EACNC,QAAQ;EACRC,YAAY;EACZC,UAAU;EACVC,aAAa;EACbC,SAAS;EACTC,gBAAgB;EAChBC,eAAe;EACfC,sBAAsB;EACtBC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,IAAI;IACJC,oBAAoB;IACpBC,gBAAgB;IAChBC,gBAAgB;IAChBC,iBAAiB;IACjBC,aAAa;IACbC,gBAAgB;IAChBC,YAAY;IACZC,oBAAoB;IACpBC,aAAa;IACbC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MAAEC;IAAI,CAAC,GAAGD,MAAM,CAAEE,kBAAiB,CAAC;IAC1C,MAAM;MAAEC,iBAAiB;MAAEC;IAAiB,CAAC,GAAGJ,MAAM,CAAEK,YAAY,CAAC;IACrE,MAAMC,cAAc,GAAGH,iBAAiB,CAAC,CAAC;IAC1C,MAAMI,aAAa,GAAGH,gBAAgB,CAAC,CAAC;IACxC,MAAM;MAAEN,SAAS,EAAEU;IAAW,CAAC,GAAG,IAAAC,kBAAM,EAAET,MAAM,CAAEU,kBAAiB,CAAE,CAAC;IAEtE,OAAO;MACNtB,IAAI,EAAEY,MAAM,CAAEK,YAAY,CAAC,CAACM,aAAa,CAAC,CAAC;MAC3CtB,oBAAoB,EAAEiB,cAAc,CAACM,kBAAkB;MACvDtB,gBAAgB,EAAEU,MAAM,CAAEK,YAAY,CAAC,CAACf,gBAAgB,CAAC,CAAC;MAC1DC,gBAAgB,EAAES,MAAM,CAAEK,YAAY,CAAC,CAACd,gBAAgB,CAAC,CAAC;MAC1DC,iBAAiB,EAAES,GAAG,CAAE,MAAM,EAAE,iBAAkB,CAAC;MACnDR,aAAa,EAAEa,cAAc,CAACO,uBAAuB;MACrDnB,gBAAgB,EAAEM,MAAM,CACvBc,wBACD,CAAC,CAACC,6BAA6B,CAAE,6BAA8B,CAAC;MAChEpB,YAAY,EAAEK,MAAM,CACnBc,wBACD,CAAC,CAACC,6BAA6B,CAAE,yBAA0B,CAAC;MAC5DnB,oBAAoB,EAAEK,GAAG,CAAE,MAAM,EAAE,sBAAuB,CAAC;MAC3D;MACAJ,aAAa,EAAEU,aAAa,IAAI,IAAAS,QAAE,EAAE,UAAU,EAAE,MAAO,CAAC;MACxDlB,SAAS,EAAEU,UAAU,CAAC;IACvB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMS,eAAe,GAAG,IAAAC,yBAAgB,EAAE,QAAS,CAAC;EACpD,MAAMC,qBAAqB,GAAG5B,gBAAgB,GAC3C,IAAAtB,QAAE,EAAE,mBAAoB,CAAC,GACzB,IAAAA,QAAE,EAAE,eAAgB,CAAC;;EAExB;EACA;EACA,MAAM,CAAEmD,2BAA2B,EAAEC,8BAA8B,CAAE,GACpE,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAClB,MAAMC,wBAAwB,GAAG,IAAAC,oBAAW,EACzCC,GAAG,IAAM;IACV,IAAK,OAAOL,2BAA2B,KAAK,UAAU,EAAG;MACxDA,2BAA2B,CAAEK,GAAI,CAAC;IACnC;IACAJ,8BAA8B,CAAE,KAAM,CAAC;EACxC,CAAC,EACD,CAAED,2BAA2B,CAC9B,CAAC;EAED,oBACC,IAAAtD,WAAA,CAAA4D,GAAA,EAAC9E,UAAA,CAAA+E,iBAAiB;IACjBnD,sBAAsB,EAAGA,sBAAwB;IACjDgB,iBAAiB,EAAGA,iBAAmB;IACvCjB,SAAS,EAAG,IAAAqD,aAAI,EAAE,yBAAyB,EAAErD,SAAS,EAAE;MACvD,0BAA0B,EAAE,CAAC,CAAE6C,2BAA2B;MAC1D,qBAAqB,EAAE5B,iBAAiB,IAAI,CAAEC;IAC/C,CAAE,CAAG;IACLoC,MAAM,EAAG;MACR,GAAG9D,eAAe;MAClB+D,gBAAgB,EAAEX;IACnB,CAAG;IACHnD,MAAM,EACL,CAAEyB,aAAa,iBACd,IAAA3B,WAAA,CAAA4D,GAAA,EAACpE,OAAA,CAAAyE,OAAM;MACNpD,YAAY,EAAGA,YAAc;MAC7B0C,8BAA8B,EAC7BA,8BACA;MACDtC,gBAAgB,EAAGA,gBAAkB;MACrCE,sBAAsB,EAAGA,sBAAwB;MACjDC,KAAK,EAAGA,KAAO;MACf8C,eAAe,EAAG,CAAEnD;IAAe,CACnC,CAEF;IACDoD,aAAa,eAAG,IAAAnE,WAAA,CAAA4D,GAAA,EAACrE,cAAA,CAAA0E,OAAa,IAAE,CAAG;IACnCD,gBAAgB,EACf,CAAErC,aAAa,IACfL,IAAI,KAAK,QAAQ,KACbE,gBAAgB,iBAAI,IAAAxB,WAAA,CAAA4D,GAAA,EAACnE,gBAAA,CAAAwE,OAAe,IAAE,CAAC,IACxCxC,gBAAgB,iBAAI,IAAAzB,WAAA,CAAA4D,GAAA,EAAClE,gBAAA,CAAAuE,OAAe,IAAE,CAAG,CAC5C;IACD5D,OAAO,EACN,CAAEsB,aAAa,IACf,CAAED,iBAAiB,iBAAI,IAAA1B,WAAA,CAAA4D,GAAA,EAAC9E,UAAA,CAAAsF,iBAAiB,CAACC,IAAI;MAACC,KAAK,EAAC;IAAM,CAAE,CAC7D;IACDC,OAAO,eACN,IAAAvE,WAAA,CAAAwE,IAAA,EAAAxE,WAAA,CAAAyE,QAAA;MAAA7D,QAAA,GACG,CAAEc,iBAAiB,IAAI,CAAEC,aAAa,iBACvC,IAAA3B,WAAA,CAAA4D,GAAA,EAACrE,cAAA,CAAA0E,OAAa,IAAE,CAChB,eAED,IAAAjE,WAAA,CAAA4D,GAAA,EAAC9D,gBAAA,CAAAmE,OAAqB,CAACI,IAAI;QAAAzD,QAAA,EACxBA,CAAE,CAAE8D,gBAAgB,CAAE,KACvBA,gBAAgB,GACfA,gBAAgB,gBAEhB,IAAA1E,WAAA,CAAAwE,IAAA,EAAAxE,WAAA,CAAAyE,QAAA;UAAA7D,QAAA,GACG,CAAEe,aAAa,KACdL,IAAI,KAAK,MAAM,IAChB,CAAEC,oBAAoB,CAAE,iBACxB,IAAAvB,WAAA,CAAA4D,GAAA,EAAChE,WAAA,CAAAqE;UACA;UACA;UAAA;YACAjD,SAAS,EAAGA;UAAW,CACvB,CACD,EACA,CAAEW,aAAa,IAChB,CAAEwB,eAAe,IACjB7B,IAAI,KAAK,QAAQ,iBAChB,IAAAtB,WAAA,CAAA4D,GAAA,EAAC1E,YAAA,CAAAyF,YAAY;YAACC,cAAc;UAAA,CAAE,CAC9B,EACA,CAAEjD,aAAa,IACdJ,oBAAoB,IACrBD,IAAI,KAAK,QAAU,kBACpB,IAAAtB,WAAA,CAAA4D,GAAA,EAAC/D,aAAA,CAAAoE,OAAY;YACZtD,MAAM,EAAGA,MAAQ;YACjBG,UAAU,EAAGA,UAAY;YACzBC,aAAa,EAAGA;YAChB;YACA;YAAA;YACAC,SAAS,EAAGA,SAAW;YACvBK,WAAW,EAAGA;UAAa,CAC3B,CACD,EACCT,QAAQ;QAAA,CACT;MACF,CAEyB,CAAC;IAAA,CAC5B,CACF;IACDL,MAAM,EACL,CAAEoB,aAAa,IACf,CAAED,iBAAiB,IACnByB,eAAe,IACfrB,oBAAoB,IACpBP,oBAAoB,IACpB,CAAES,SAAS,IACXV,IAAI,KAAK,QAAQ,iBAChB,IAAAtB,WAAA,CAAA4D,GAAA,EAAC1E,YAAA,CAAA2F,eAAe;MAACC,aAAa,EAAG/C;IAAe,CAAE,CAEnD;IACDzB,OAAO,EACN,CAAEqB,aAAa,GACZT,eAAe,iBACf,IAAAlB,WAAA,CAAA4D,GAAA,EAACjE,kBAAA,CAAAsE,OAAiB;MACjBR,wBAAwB,EACvBA,wBACA;MACDsB,yBAAyB,EACxBzB,2BACA;MACDC,8BAA8B,EAC7BA,8BACA;MACDyB,wBAAwB,EAAGnE;IAAc,CACzC,CACA,GACDoE,SACH;IACDC,SAAS,EAAG;MACXC,QAAQ,EAAEvD,gBAAgB;MAC1BwD,IAAI,EAAEvD;IACP;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -122,10 +122,18 @@ function EntitiesSavedStatesExtensible({
|
|
|
122
122
|
className: "entities-saved-states__panel-header",
|
|
123
123
|
gap: 2,
|
|
124
124
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
|
|
125
|
+
isBlock: true,
|
|
126
|
+
as: _components.Button,
|
|
127
|
+
variant: "secondary",
|
|
128
|
+
size: "compact",
|
|
129
|
+
onClick: dismissPanel,
|
|
130
|
+
children: (0, _i18n.__)('Cancel')
|
|
131
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
|
|
125
132
|
isBlock: true,
|
|
126
133
|
as: _components.Button,
|
|
127
134
|
ref: saveButtonRef,
|
|
128
135
|
variant: "primary",
|
|
136
|
+
size: "compact",
|
|
129
137
|
disabled: !saveEnabled,
|
|
130
138
|
accessibleWhenDisabled: true,
|
|
131
139
|
onClick: () => saveDirtyEntities({
|
|
@@ -136,12 +144,6 @@ function EntitiesSavedStatesExtensible({
|
|
|
136
144
|
}),
|
|
137
145
|
className: "editor-entities-saved-states__save-button",
|
|
138
146
|
children: saveLabel
|
|
139
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
|
|
140
|
-
isBlock: true,
|
|
141
|
-
as: _components.Button,
|
|
142
|
-
variant: "secondary",
|
|
143
|
-
onClick: dismissPanel,
|
|
144
|
-
children: (0, _i18n.__)('Cancel')
|
|
145
147
|
})]
|
|
146
148
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
147
149
|
className: "entities-saved-states__text-prompt",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_compose","_data","_entityTypeList","_interopRequireDefault","_useIsDirty","_store","_lockUnlock","_jsxRuntime","identity","values","EntitiesSavedStates","close","renderDialog","undefined","isDirtyProps","useIsDirty","jsx","EntitiesSavedStatesExtensible","additionalPrompt","onSave","saveEnabled","saveEnabledProp","saveLabel","__","dirtyEntityRecords","isDirty","setUnselectedEntities","unselectedEntities","saveButtonRef","useRef","saveDirtyEntities","unlock","useDispatch","editorStore","partitionedSavables","reduce","acc","record","name","push","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","filter","Array","isArray","dismissPanel","useCallback","saveDialogRef","saveDialogProps","useDialog","onClose","dialogLabel","useInstanceId","dialogDescription","jsxs","ref","className","role","children","Flex","gap","FlexItem","isBlock","as","Button","variant","disabled","accessibleWhenDisabled","onClick","entitiesToSkip","id","createInterpolateElement","sprintf","_n","length","strong","map","list","default"],"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tuseCallback,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalUseDialog as useDialog,\n\tuseInstanceId,\n} from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\nimport { useIsDirty } from './hooks/use-is-dirty';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction identity( values ) {\n\treturn values;\n}\n\n/**\n * Renders the component for managing saved states of entities.\n *\n * @param {Object} props The component props.\n * @param {Function} props.close The function to close the dialog.\n * @param {Function} props.renderDialog The function to render the dialog.\n *\n * @return {JSX.Element} The rendered component.\n */\nexport default function EntitiesSavedStates( {\n\tclose,\n\trenderDialog = undefined,\n} ) {\n\tconst isDirtyProps = useIsDirty();\n\treturn (\n\t\t<EntitiesSavedStatesExtensible\n\t\t\tclose={ close }\n\t\t\trenderDialog={ renderDialog }\n\t\t\t{ ...isDirtyProps }\n\t\t/>\n\t);\n}\n\n/**\n * Renders a panel for saving entities with dirty records.\n *\n * @param {Object} props The component props.\n * @param {string} props.additionalPrompt Additional prompt to display.\n * @param {Function} props.close Function to close the panel.\n * @param {Function} props.onSave Function to call when saving entities.\n * @param {boolean} props.saveEnabled Flag indicating if save is enabled.\n * @param {string} props.saveLabel Label for the save button.\n * @param {Function} props.renderDialog Function to render a custom dialog.\n * @param {Array} props.dirtyEntityRecords Array of dirty entity records.\n * @param {boolean} props.isDirty Flag indicating if there are dirty entities.\n * @param {Function} props.setUnselectedEntities Function to set unselected entities.\n * @param {Array} props.unselectedEntities Array of unselected entities.\n *\n * @return {JSX.Element} The rendered component.\n */\nexport function EntitiesSavedStatesExtensible( {\n\tadditionalPrompt = undefined,\n\tclose,\n\tonSave = identity,\n\tsaveEnabled: saveEnabledProp = undefined,\n\tsaveLabel = __( 'Save' ),\n\trenderDialog = undefined,\n\tdirtyEntityRecords,\n\tisDirty,\n\tsetUnselectedEntities,\n\tunselectedEntities,\n} ) {\n\tconst saveButtonRef = useRef();\n\tconst { saveDirtyEntities } = unlock( useDispatch( editorStore ) );\n\t// To group entities by type.\n\tconst partitionedSavables = dirtyEntityRecords.reduce( ( acc, record ) => {\n\t\tconst { name } = record;\n\t\tif ( ! acc[ name ] ) {\n\t\t\tacc[ name ] = [];\n\t\t}\n\t\tacc[ name ].push( record );\n\t\treturn acc;\n\t}, {} );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\tconst saveEnabled = saveEnabledProp ?? isDirty;\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\tconst dialogLabel = useInstanceId( EntitiesSavedStatesExtensible, 'label' );\n\tconst dialogDescription = useInstanceId(\n\t\tEntitiesSavedStatesExtensible,\n\t\t'description'\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t\trole={ renderDialog ? 'dialog' : undefined }\n\t\t\taria-labelledby={ renderDialog ? dialogLabel : undefined }\n\t\t\taria-describedby={ renderDialog ? dialogDescription : undefined }\n\t\t>\n\t\t\t<Flex className=\"entities-saved-states__panel-header\" gap={ 2 }>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={ ! saveEnabled }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tsaveDirtyEntities( {\n\t\t\t\t\t\t\tonSave,\n\t\t\t\t\t\t\tdirtyEntityRecords,\n\t\t\t\t\t\t\tentitiesToSkip: unselectedEntities,\n\t\t\t\t\t\t\tclose,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ saveLabel }\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"entities-saved-states__text-prompt--header-wrapper\"\n\t\t\t\t\tid={ renderDialog ? dialogLabel : undefined }\n\t\t\t\t>\n\t\t\t\t\t<strong className=\"entities-saved-states__text-prompt--header\">\n\t\t\t\t\t\t{ __( 'Are you ready to save?' ) }\n\t\t\t\t\t</strong>\n\t\t\t\t\t{ additionalPrompt }\n\t\t\t\t</div>\n\t\t\t\t<p id={ renderDialog ? dialogDescription : undefined }>\n\t\t\t\t\t{ isDirty\n\t\t\t\t\t\t? createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: number of site changes waiting to be saved. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'There is <strong>%d site change</strong> waiting to be saved.',\n\t\t\t\t\t\t\t\t\t\t'There are <strong>%d site changes</strong> waiting to be saved.',\n\t\t\t\t\t\t\t\t\t\tsortedPartitionedSavables.length\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsortedPartitionedSavables.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t{ strong: <strong /> }\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Select the items you want to save.' ) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_compose","_data","_entityTypeList","_interopRequireDefault","_useIsDirty","_store","_lockUnlock","_jsxRuntime","identity","values","EntitiesSavedStates","close","renderDialog","undefined","isDirtyProps","useIsDirty","jsx","EntitiesSavedStatesExtensible","additionalPrompt","onSave","saveEnabled","saveEnabledProp","saveLabel","__","dirtyEntityRecords","isDirty","setUnselectedEntities","unselectedEntities","saveButtonRef","useRef","saveDirtyEntities","unlock","useDispatch","editorStore","partitionedSavables","reduce","acc","record","name","push","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","filter","Array","isArray","dismissPanel","useCallback","saveDialogRef","saveDialogProps","useDialog","onClose","dialogLabel","useInstanceId","dialogDescription","jsxs","ref","className","role","children","Flex","gap","FlexItem","isBlock","as","Button","variant","size","onClick","disabled","accessibleWhenDisabled","entitiesToSkip","id","createInterpolateElement","sprintf","_n","length","strong","map","list","default"],"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tuseCallback,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalUseDialog as useDialog,\n\tuseInstanceId,\n} from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\nimport { useIsDirty } from './hooks/use-is-dirty';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction identity( values ) {\n\treturn values;\n}\n\n/**\n * Renders the component for managing saved states of entities.\n *\n * @param {Object} props The component props.\n * @param {Function} props.close The function to close the dialog.\n * @param {Function} props.renderDialog The function to render the dialog.\n *\n * @return {JSX.Element} The rendered component.\n */\nexport default function EntitiesSavedStates( {\n\tclose,\n\trenderDialog = undefined,\n} ) {\n\tconst isDirtyProps = useIsDirty();\n\treturn (\n\t\t<EntitiesSavedStatesExtensible\n\t\t\tclose={ close }\n\t\t\trenderDialog={ renderDialog }\n\t\t\t{ ...isDirtyProps }\n\t\t/>\n\t);\n}\n\n/**\n * Renders a panel for saving entities with dirty records.\n *\n * @param {Object} props The component props.\n * @param {string} props.additionalPrompt Additional prompt to display.\n * @param {Function} props.close Function to close the panel.\n * @param {Function} props.onSave Function to call when saving entities.\n * @param {boolean} props.saveEnabled Flag indicating if save is enabled.\n * @param {string} props.saveLabel Label for the save button.\n * @param {Function} props.renderDialog Function to render a custom dialog.\n * @param {Array} props.dirtyEntityRecords Array of dirty entity records.\n * @param {boolean} props.isDirty Flag indicating if there are dirty entities.\n * @param {Function} props.setUnselectedEntities Function to set unselected entities.\n * @param {Array} props.unselectedEntities Array of unselected entities.\n *\n * @return {JSX.Element} The rendered component.\n */\nexport function EntitiesSavedStatesExtensible( {\n\tadditionalPrompt = undefined,\n\tclose,\n\tonSave = identity,\n\tsaveEnabled: saveEnabledProp = undefined,\n\tsaveLabel = __( 'Save' ),\n\trenderDialog = undefined,\n\tdirtyEntityRecords,\n\tisDirty,\n\tsetUnselectedEntities,\n\tunselectedEntities,\n} ) {\n\tconst saveButtonRef = useRef();\n\tconst { saveDirtyEntities } = unlock( useDispatch( editorStore ) );\n\t// To group entities by type.\n\tconst partitionedSavables = dirtyEntityRecords.reduce( ( acc, record ) => {\n\t\tconst { name } = record;\n\t\tif ( ! acc[ name ] ) {\n\t\t\tacc[ name ] = [];\n\t\t}\n\t\tacc[ name ].push( record );\n\t\treturn acc;\n\t}, {} );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\tconst saveEnabled = saveEnabledProp ?? isDirty;\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\tconst dialogLabel = useInstanceId( EntitiesSavedStatesExtensible, 'label' );\n\tconst dialogDescription = useInstanceId(\n\t\tEntitiesSavedStatesExtensible,\n\t\t'description'\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t\trole={ renderDialog ? 'dialog' : undefined }\n\t\t\taria-labelledby={ renderDialog ? dialogLabel : undefined }\n\t\t\taria-describedby={ renderDialog ? dialogDescription : undefined }\n\t\t>\n\t\t\t<Flex className=\"entities-saved-states__panel-header\" gap={ 2 }>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tdisabled={ ! saveEnabled }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tsaveDirtyEntities( {\n\t\t\t\t\t\t\tonSave,\n\t\t\t\t\t\t\tdirtyEntityRecords,\n\t\t\t\t\t\t\tentitiesToSkip: unselectedEntities,\n\t\t\t\t\t\t\tclose,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ saveLabel }\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"entities-saved-states__text-prompt--header-wrapper\"\n\t\t\t\t\tid={ renderDialog ? dialogLabel : undefined }\n\t\t\t\t>\n\t\t\t\t\t<strong className=\"entities-saved-states__text-prompt--header\">\n\t\t\t\t\t\t{ __( 'Are you ready to save?' ) }\n\t\t\t\t\t</strong>\n\t\t\t\t\t{ additionalPrompt }\n\t\t\t\t</div>\n\t\t\t\t<p id={ renderDialog ? dialogDescription : undefined }>\n\t\t\t\t\t{ isDirty\n\t\t\t\t\t\t? createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: number of site changes waiting to be saved. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'There is <strong>%d site change</strong> waiting to be saved.',\n\t\t\t\t\t\t\t\t\t\t'There are <strong>%d site changes</strong> waiting to be saved.',\n\t\t\t\t\t\t\t\t\t\tsortedPartitionedSavables.length\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsortedPartitionedSavables.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t{ strong: <strong /> }\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Select the items you want to save.' ) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,QAAA,GAAAH,OAAA;AAIA,IAAAI,KAAA,GAAAJ,OAAA;AAKA,IAAAK,eAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAA2C,IAAAU,WAAA,GAAAV,OAAA;AAtB3C;AACA;AACA;;AAcA;AACA;AACA;;AAMA,SAASW,QAAQA,CAAEC,MAAM,EAAG;EAC3B,OAAOA,MAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,mBAAmBA,CAAE;EAC5CC,KAAK;EACLC,YAAY,GAAGC;AAChB,CAAC,EAAG;EACH,MAAMC,YAAY,GAAG,IAAAC,sBAAU,EAAC,CAAC;EACjC,oBACC,IAAAR,WAAA,CAAAS,GAAA,EAACC,6BAA6B;IAC7BN,KAAK,EAAGA,KAAO;IACfC,YAAY,EAAGA,YAAc;IAAA,GACxBE;EAAY,CACjB,CAAC;AAEJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,6BAA6BA,CAAE;EAC9CC,gBAAgB,GAAGL,SAAS;EAC5BF,KAAK;EACLQ,MAAM,GAAGX,QAAQ;EACjBY,WAAW,EAAEC,eAAe,GAAGR,SAAS;EACxCS,SAAS,GAAG,IAAAC,QAAE,EAAE,MAAO,CAAC;EACxBX,YAAY,GAAGC,SAAS;EACxBW,kBAAkB;EAClBC,OAAO;EACPC,qBAAqB;EACrBC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,IAAAC,eAAM,EAAC,CAAC;EAC9B,MAAM;IAAEC;EAAkB,CAAC,GAAG,IAAAC,kBAAM,EAAE,IAAAC,iBAAW,EAAEC,YAAY,CAAE,CAAC;EAClE;EACA,MAAMC,mBAAmB,GAAGV,kBAAkB,CAACW,MAAM,CAAE,CAAEC,GAAG,EAAEC,MAAM,KAAM;IACzE,MAAM;MAAEC;IAAK,CAAC,GAAGD,MAAM;IACvB,IAAK,CAAED,GAAG,CAAEE,IAAI,CAAE,EAAG;MACpBF,GAAG,CAAEE,IAAI,CAAE,GAAG,EAAE;IACjB;IACAF,GAAG,CAAEE,IAAI,CAAE,CAACC,IAAI,CAAEF,MAAO,CAAC;IAC1B,OAAOD,GAAG;EACX,CAAC,EAAE,CAAC,CAAE,CAAC;;EAEP;EACA,MAAM;IACLI,IAAI,EAAEC,YAAY;IAClBC,WAAW,EAAEC,gBAAgB;IAC7BC,gBAAgB,EAAEC,oBAAoB;IACtC,GAAGC;EACJ,CAAC,GAAGZ,mBAAmB;EACvB,MAAMa,yBAAyB,GAAG,CACjCN,YAAY,EACZE,gBAAgB,EAChBE,oBAAoB,EACpB,GAAGG,MAAM,CAACvC,MAAM,CAAEqC,eAAgB,CAAC,CACnC,CAACG,MAAM,CAAEC,KAAK,CAACC,OAAQ,CAAC;EAEzB,MAAM/B,WAAW,GAAGC,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAII,OAAO;EAC9C;EACA;EACA,MAAM2B,YAAY,GAAG,IAAAC,oBAAW,EAAE,MAAM1C,KAAK,CAAC,CAAC,EAAE,CAAEA,KAAK,CAAG,CAAC;EAE5D,MAAM,CAAE2C,aAAa,EAAEC,eAAe,CAAE,GAAG,IAAAC,gCAAS,EAAE;IACrDC,OAAO,EAAEA,CAAA,KAAML,YAAY,CAAC;EAC7B,CAAE,CAAC;EACH,MAAMM,WAAW,GAAG,IAAAC,sBAAa,EAAE1C,6BAA6B,EAAE,OAAQ,CAAC;EAC3E,MAAM2C,iBAAiB,GAAG,IAAAD,sBAAa,EACtC1C,6BAA6B,EAC7B,aACD,CAAC;EAED,oBACC,IAAAV,WAAA,CAAAsD,IAAA;IACCC,GAAG,EAAGR,aAAe;IAAA,GAChBC,eAAe;IACpBQ,SAAS,EAAC,8BAA8B;IACxCC,IAAI,EAAGpD,YAAY,GAAG,QAAQ,GAAGC,SAAW;IAC5C,mBAAkBD,YAAY,GAAG8C,WAAW,GAAG7C,SAAW;IAC1D,oBAAmBD,YAAY,GAAGgD,iBAAiB,GAAG/C,SAAW;IAAAoD,QAAA,gBAEjE,IAAA1D,WAAA,CAAAsD,IAAA,EAACjE,WAAA,CAAAsE,IAAI;MAACH,SAAS,EAAC,qCAAqC;MAACI,GAAG,EAAG,CAAG;MAAAF,QAAA,gBAC9D,IAAA1D,WAAA,CAAAS,GAAA,EAACpB,WAAA,CAAAwE,QAAQ;QACRC,OAAO;QACPC,EAAE,EAAGC,kBAAQ;QACbC,OAAO,EAAC,WAAW;QACnBC,IAAI,EAAC,SAAS;QACdC,OAAO,EAAGtB,YAAc;QAAAa,QAAA,EAEtB,IAAA1C,QAAE,EAAE,QAAS;MAAC,CACP,CAAC,eACX,IAAAhB,WAAA,CAAAS,GAAA,EAACpB,WAAA,CAAAwE,QAAQ;QACRC,OAAO;QACPC,EAAE,EAAGC,kBAAQ;QACbT,GAAG,EAAGlC,aAAe;QACrB4C,OAAO,EAAC,SAAS;QACjBC,IAAI,EAAC,SAAS;QACdE,QAAQ,EAAG,CAAEvD,WAAa;QAC1BwD,sBAAsB;QACtBF,OAAO,EAAGA,CAAA,KACT5C,iBAAiB,CAAE;UAClBX,MAAM;UACNK,kBAAkB;UAClBqD,cAAc,EAAElD,kBAAkB;UAClChB;QACD,CAAE,CACF;QACDoD,SAAS,EAAC,2CAA2C;QAAAE,QAAA,EAEnD3C;MAAS,CACF,CAAC;IAAA,CACN,CAAC,eAEP,IAAAf,WAAA,CAAAsD,IAAA;MAAKE,SAAS,EAAC,oCAAoC;MAAAE,QAAA,gBAClD,IAAA1D,WAAA,CAAAsD,IAAA;QACCE,SAAS,EAAC,oDAAoD;QAC9De,EAAE,EAAGlE,YAAY,GAAG8C,WAAW,GAAG7C,SAAW;QAAAoD,QAAA,gBAE7C,IAAA1D,WAAA,CAAAS,GAAA;UAAQ+C,SAAS,EAAC,4CAA4C;UAAAE,QAAA,EAC3D,IAAA1C,QAAE,EAAE,wBAAyB;QAAC,CACzB,CAAC,EACPL,gBAAgB;MAAA,CACd,CAAC,eACN,IAAAX,WAAA,CAAAS,GAAA;QAAG8D,EAAE,EAAGlE,YAAY,GAAGgD,iBAAiB,GAAG/C,SAAW;QAAAoD,QAAA,EACnDxC,OAAO,GACN,IAAAsD,iCAAwB,EACxB,IAAAC,aAAO,GACN;QACA,IAAAC,QAAE,EACD,+DAA+D,EAC/D,iEAAiE,EACjElC,yBAAyB,CAACmC,MAC3B,CAAC,EACDnC,yBAAyB,CAACmC,MAC3B,CAAC,EACD;UAAEC,MAAM,eAAE,IAAA5E,WAAA,CAAAS,GAAA,cAAS;QAAE,CACrB,CAAC,GACD,IAAAO,QAAE,EAAE,oCAAqC;MAAC,CAC3C,CAAC;IAAA,CACA,CAAC,EAEJwB,yBAAyB,CAACqC,GAAG,CAAIC,IAAI,IAAM;MAC5C,oBACC,IAAA9E,WAAA,CAAAS,GAAA,EAACd,eAAA,CAAAoF,OAAc;QAEdD,IAAI,EAAGA,IAAM;QACb1D,kBAAkB,EAAGA,kBAAoB;QACzCD,qBAAqB,EAAGA;MAAuB,GAHzC2D,IAAI,CAAE,CAAC,CAAE,CAAC/C,IAIhB,CAAC;IAEJ,CAAE,CAAC;EAAA,CACC,CAAC;AAER","ignoreList":[]}
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = PluginSidebar;
|
|
7
7
|
var _data = require("@wordpress/data");
|
|
8
8
|
var _i18n = require("@wordpress/i18n");
|
|
9
|
-
var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
|
|
10
9
|
var _interface = require("@wordpress/interface");
|
|
11
10
|
var _store = require("../../store");
|
|
12
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -87,12 +86,10 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
87
86
|
...props
|
|
88
87
|
}) {
|
|
89
88
|
const {
|
|
90
|
-
postTitle
|
|
91
|
-
shortcut
|
|
89
|
+
postTitle
|
|
92
90
|
} = (0, _data.useSelect)(select => {
|
|
93
91
|
return {
|
|
94
|
-
postTitle: select(_store.store).getEditedPostAttribute('title')
|
|
95
|
-
shortcut: select(_keyboardShortcuts.store).getShortcutRepresentation('core/editor/toggle-sidebar')
|
|
92
|
+
postTitle: select(_store.store).getEditedPostAttribute('title')
|
|
96
93
|
};
|
|
97
94
|
}, []);
|
|
98
95
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_interface.ComplementaryArea, {
|
|
@@ -100,7 +97,6 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
100
97
|
className: "editor-sidebar",
|
|
101
98
|
smallScreenTitle: postTitle || (0, _i18n.__)('(no title)'),
|
|
102
99
|
scope: "core",
|
|
103
|
-
toggleShortcut: shortcut,
|
|
104
100
|
...props
|
|
105
101
|
});
|
|
106
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_i18n","
|
|
1
|
+
{"version":3,"names":["_data","require","_i18n","_interface","_store","_jsxRuntime","PluginSidebar","className","props","postTitle","useSelect","select","editorStore","getEditedPostAttribute","jsx","ComplementaryArea","panelClassName","smallScreenTitle","__","scope"],"sources":["@wordpress/editor/src/components/plugin-sidebar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { ComplementaryArea } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Renders a sidebar when activated. The contents within the `PluginSidebar` will appear as content within the sidebar.\n * It also automatically renders a corresponding `PluginSidebarMenuItem` component when `isPinnable` flag is set to `true`.\n * If you wish to display the sidebar, you can with use the `PluginSidebarMoreMenuItem` component or the `wp.data.dispatch` API:\n *\n * ```js\n * wp.data.dispatch( 'core/edit-post' ).openGeneralSidebar( 'plugin-name/sidebar-name' );\n * ```\n *\n * @see PluginSidebarMoreMenuItem\n *\n * @param {Object} props Element props.\n * @param {string} props.name A string identifying the sidebar. Must be unique for every sidebar registered within the scope of your plugin.\n * @param {string} [props.className] An optional class name added to the sidebar body.\n * @param {string} props.title Title displayed at the top of the sidebar.\n * @param {boolean} [props.isPinnable=true] Whether to allow to pin sidebar to the toolbar. When set to `true` it also automatically renders a corresponding menu item.\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered when the sidebar is pinned to toolbar.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var el = React.createElement;\n * var PanelBody = wp.components.PanelBody;\n * var PluginSidebar = wp.editor.PluginSidebar;\n * var moreIcon = React.createElement( 'svg' ); //... svg element.\n *\n * function MyPluginSidebar() {\n * \treturn el(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'my-sidebar',\n * \t\t\t\ttitle: 'My sidebar title',\n * \t\t\t\ticon: moreIcon,\n * \t\t\t},\n * \t\t\tel(\n * \t\t\t\tPanelBody,\n * \t\t\t\t{},\n * \t\t\t\t__( 'My sidebar content' )\n * \t\t\t)\n * \t);\n * }\n * ```\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PanelBody } from '@wordpress/components';\n * import { PluginSidebar } from '@wordpress/editor';\n * import { more } from '@wordpress/icons';\n *\n * const MyPluginSidebar = () => (\n * \t<PluginSidebar\n * \t\tname=\"my-sidebar\"\n * \t\ttitle=\"My sidebar title\"\n * \t\ticon={ more }\n * \t>\n * \t\t<PanelBody>\n * \t\t\t{ __( 'My sidebar content' ) }\n * \t\t</PanelBody>\n * \t</PluginSidebar>\n * );\n * ```\n */\nexport default function PluginSidebar( { className, ...props } ) {\n\tconst { postTitle } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostTitle: select( editorStore ).getEditedPostAttribute( 'title' ),\n\t\t};\n\t}, [] );\n\treturn (\n\t\t<ComplementaryArea\n\t\t\tpanelClassName={ className }\n\t\t\tclassName=\"editor-sidebar\"\n\t\t\tsmallScreenTitle={ postTitle || __( '(no title)' ) }\n\t\t\tscope=\"core\"\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAAmD,IAAAI,WAAA,GAAAJ,OAAA;AAVnD;AACA;AACA;;AAKA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACe,SAASK,aAAaA,CAAE;EAAEC,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAG;EAChE,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC9C,OAAO;MACNF,SAAS,EAAEE,MAAM,CAAEC,YAAY,CAAC,CAACC,sBAAsB,CAAE,OAAQ;IAClE,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,oBACC,IAAAR,WAAA,CAAAS,GAAA,EAACX,UAAA,CAAAY,iBAAiB;IACjBC,cAAc,EAAGT,SAAW;IAC5BA,SAAS,EAAC,gBAAgB;IAC1BU,gBAAgB,EAAGR,SAAS,IAAI,IAAAS,QAAE,EAAE,YAAa,CAAG;IACpDC,KAAK,EAAC,MAAM;IAAA,GACPX;EAAK,CACV,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -118,8 +118,8 @@ function Image({
|
|
|
118
118
|
scale: 0
|
|
119
119
|
},
|
|
120
120
|
style: {
|
|
121
|
-
width: '
|
|
122
|
-
height: '
|
|
121
|
+
width: '32px',
|
|
122
|
+
height: '32px',
|
|
123
123
|
objectFit: 'cover',
|
|
124
124
|
borderRadius: '2px',
|
|
125
125
|
cursor: 'pointer'
|
|
@@ -247,7 +247,7 @@ function MaybeUploadMediaPanel() {
|
|
|
247
247
|
}, block.clientId);
|
|
248
248
|
})
|
|
249
249
|
}), isUploading || isAnimating ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
250
|
-
|
|
250
|
+
size: "compact",
|
|
251
251
|
variant: "primary",
|
|
252
252
|
onClick: uploadImages,
|
|
253
253
|
children: (0, _i18n.__)('Upload')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_data","_i18n","_blockEditor","_element","_blob","_mediaUtil","_jsxRuntime","flattenBlocks","blocks","result","forEach","block","push","innerBlocks","hasExternalMedia","name","attributes","url","id","mediaUrl","mediaId","undefined","getMediaInfo","alt","mediaAlt","Image","clientId","selectBlock","useDispatch","blockEditorStore","jsx","__unstableMotion","img","tabIndex","role","__","onClick","onKeyDown","event","key","preventDefault","src","animate","opacity","exit","scale","style","width","height","objectFit","borderRadius","cursor","whileHover","MaybeUploadMediaPanel","isUploading","setIsUploading","useState","isAnimating","setIsAnimating","hadUploadError","setHadUploadError","editorBlocks","mediaUpload","useSelect","select","getBlocks","getSettings","blocksWithExternalMedia","filter","updateBlockAttributes","length","panelBodyTitle","className","children","updateBlockWithUploadedMedia","media","uploadImages","mediaUrls","Set","map","uploadPromises","Object","fromEntries","entries","fetchMedia","filePromise","uploadPromise","then","blob","Promise","resolve","reject","filesList","onFileChange","isBlobURL","onError","allSettled","catch","finally","jsxs","PanelBody","initialOpen","title","display","flexWrap","gap","__unstableAnimatePresence","onExitComplete","Spinner","Button","__next40pxDefaultSize","variant"],"sources":["@wordpress/editor/src/components/post-publish-panel/maybe-upload-media.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tButton,\n\tSpinner,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { fetchMedia } from './media-util';\n\nfunction flattenBlocks( blocks ) {\n\tconst result = [];\n\n\tblocks.forEach( ( block ) => {\n\t\tresult.push( block );\n\t\tresult.push( ...flattenBlocks( block.innerBlocks ) );\n\t} );\n\n\treturn result;\n}\n\n/**\n * Determine whether a block has external media.\n *\n * Different blocks use different attribute names (and potentially\n * different logic as well) in determining whether the media is\n * present, and whether it's external.\n *\n * @param {{name: string, attributes: Object}} block The block.\n * @return {boolean?} Whether the block has external media\n */\nfunction hasExternalMedia( block ) {\n\tif ( block.name === 'core/image' || block.name === 'core/cover' ) {\n\t\treturn block.attributes.url && ! block.attributes.id;\n\t}\n\n\tif ( block.name === 'core/media-text' ) {\n\t\treturn block.attributes.mediaUrl && ! block.attributes.mediaId;\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Retrieve media info from a block.\n *\n * Different blocks use different attribute names, so we need this\n * function to normalize things into a consistent naming scheme.\n *\n * @param {{name: string, attributes: Object}} block The block.\n * @return {{url: ?string, alt: ?string, id: ?number}} The media info for the block.\n */\nfunction getMediaInfo( block ) {\n\tif ( block.name === 'core/image' || block.name === 'core/cover' ) {\n\t\tconst { url, alt, id } = block.attributes;\n\t\treturn { url, alt, id };\n\t}\n\n\tif ( block.name === 'core/media-text' ) {\n\t\tconst { mediaUrl: url, mediaAlt: alt, mediaId: id } = block.attributes;\n\t\treturn { url, alt, id };\n\t}\n\n\treturn {};\n}\n\n// Image component to represent a single image in the upload dialog.\nfunction Image( { clientId, alt, url } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<motion.img\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\taria-label={ __( 'Select image block.' ) }\n\t\t\tonClick={ () => {\n\t\t\t\tselectBlock( clientId );\n\t\t\t} }\n\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tkey={ clientId }\n\t\t\talt={ alt }\n\t\t\tsrc={ url }\n\t\t\tanimate={ { opacity: 1 } }\n\t\t\texit={ { opacity: 0, scale: 0 } }\n\t\t\tstyle={ {\n\t\t\t\twidth: '36px',\n\t\t\t\theight: '36px',\n\t\t\t\tobjectFit: 'cover',\n\t\t\t\tborderRadius: '2px',\n\t\t\t\tcursor: 'pointer',\n\t\t\t} }\n\t\t\twhileHover={ { scale: 1.08 } }\n\t\t/>\n\t);\n}\n\nexport default function MaybeUploadMediaPanel() {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst [ isAnimating, setIsAnimating ] = useState( false );\n\tconst [ hadUploadError, setHadUploadError ] = useState( false );\n\tconst { editorBlocks, mediaUpload } = useSelect(\n\t\t( select ) => ( {\n\t\t\teditorBlocks: select( blockEditorStore ).getBlocks(),\n\t\t\tmediaUpload: select( blockEditorStore ).getSettings().mediaUpload,\n\t\t} ),\n\t\t[]\n\t);\n\n\t// Get a list of blocks with external media.\n\tconst blocksWithExternalMedia = flattenBlocks( editorBlocks ).filter(\n\t\t( block ) => hasExternalMedia( block )\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tif ( ! mediaUpload || ! blocksWithExternalMedia.length ) {\n\t\treturn null;\n\t}\n\n\tconst panelBodyTitle = [\n\t\t__( 'Suggestion:' ),\n\t\t<span className=\"editor-post-publish-panel__link\" key=\"label\">\n\t\t\t{ __( 'External media' ) }\n\t\t</span>,\n\t];\n\n\t/**\n\t * Update an individual block to point to newly-added library media.\n\t *\n\t * Different blocks use different attribute names, so we need this\n\t * function to ensure we modify the correct attributes for each type.\n\t *\n\t * @param {{name: string, attributes: Object}} block The block.\n\t * @param {{id: number, url: string}} media Media library file info.\n\t */\n\tfunction updateBlockWithUploadedMedia( block, media ) {\n\t\tif ( block.name === 'core/image' || block.name === 'core/cover' ) {\n\t\t\tupdateBlockAttributes( block.clientId, {\n\t\t\t\tid: media.id,\n\t\t\t\turl: media.url,\n\t\t\t} );\n\t\t}\n\n\t\tif ( block.name === 'core/media-text' ) {\n\t\t\tupdateBlockAttributes( block.clientId, {\n\t\t\t\tmediaId: media.id,\n\t\t\t\tmediaUrl: media.url,\n\t\t\t} );\n\t\t}\n\t}\n\n\t// Handle fetching and uploading all external media in the post.\n\tfunction uploadImages() {\n\t\tsetIsUploading( true );\n\t\tsetHadUploadError( false );\n\n\t\t// Multiple blocks can be using the same URL, so we\n\t\t// should ensure we only fetch and upload each of them once.\n\t\tconst mediaUrls = new Set(\n\t\t\tblocksWithExternalMedia.map( ( block ) => {\n\t\t\t\tconst { url } = getMediaInfo( block );\n\t\t\t\treturn url;\n\t\t\t} )\n\t\t);\n\n\t\t// Create an upload promise for each URL, that we can wait for in all\n\t\t// blocks that make use of that media.\n\t\tconst uploadPromises = Object.fromEntries(\n\t\t\tObject.entries( fetchMedia( [ ...mediaUrls ] ) ).map(\n\t\t\t\t( [ url, filePromise ] ) => {\n\t\t\t\t\tconst uploadPromise = filePromise.then(\n\t\t\t\t\t\t( blob ) =>\n\t\t\t\t\t\t\tnew Promise( ( resolve, reject ) => {\n\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\t\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\t\t\t\t\t\t\tif ( isBlobURL( media.url ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tresolve( media );\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tonError() {\n\t\t\t\t\t\t\t\t\t\treject();\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn [ url, uploadPromise ];\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\n\t\t// Wait for all blocks to be updated with library media.\n\t\tPromise.allSettled(\n\t\t\tblocksWithExternalMedia.map( ( block ) => {\n\t\t\t\tconst { url } = getMediaInfo( block );\n\n\t\t\t\treturn uploadPromises[ url ]\n\t\t\t\t\t.then( ( media ) =>\n\t\t\t\t\t\tupdateBlockWithUploadedMedia( block, media )\n\t\t\t\t\t)\n\t\t\t\t\t.then( () => setIsAnimating( true ) )\n\t\t\t\t\t.catch( () => setHadUploadError( true ) );\n\t\t\t} )\n\t\t).finally( () => {\n\t\t\tsetIsUploading( false );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PanelBody initialOpen title={ panelBodyTitle }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Upload external images to the Media Library. Images from different domains may load slowly, display incorrectly, or be removed unexpectedly.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<div\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\tflexWrap: 'wrap',\n\t\t\t\t\tgap: '8px',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<AnimatePresence\n\t\t\t\t\tonExitComplete={ () => setIsAnimating( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ blocksWithExternalMedia.map( ( block ) => {\n\t\t\t\t\t\tconst { url, alt } = getMediaInfo( block );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\tkey={ block.clientId }\n\t\t\t\t\t\t\t\tclientId={ block.clientId }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\talt={ alt }\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</AnimatePresence>\n\t\t\t\t{ isUploading || isAnimating ? (\n\t\t\t\t\t<Spinner />\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ uploadImages }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ hadUploadError && <p>{ __( 'Upload failed, try again.' ) }</p> }\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_data","_i18n","_blockEditor","_element","_blob","_mediaUtil","_jsxRuntime","flattenBlocks","blocks","result","forEach","block","push","innerBlocks","hasExternalMedia","name","attributes","url","id","mediaUrl","mediaId","undefined","getMediaInfo","alt","mediaAlt","Image","clientId","selectBlock","useDispatch","blockEditorStore","jsx","__unstableMotion","img","tabIndex","role","__","onClick","onKeyDown","event","key","preventDefault","src","animate","opacity","exit","scale","style","width","height","objectFit","borderRadius","cursor","whileHover","MaybeUploadMediaPanel","isUploading","setIsUploading","useState","isAnimating","setIsAnimating","hadUploadError","setHadUploadError","editorBlocks","mediaUpload","useSelect","select","getBlocks","getSettings","blocksWithExternalMedia","filter","updateBlockAttributes","length","panelBodyTitle","className","children","updateBlockWithUploadedMedia","media","uploadImages","mediaUrls","Set","map","uploadPromises","Object","fromEntries","entries","fetchMedia","filePromise","uploadPromise","then","blob","Promise","resolve","reject","filesList","onFileChange","isBlobURL","onError","allSettled","catch","finally","jsxs","PanelBody","initialOpen","title","display","flexWrap","gap","__unstableAnimatePresence","onExitComplete","Spinner","Button","size","variant"],"sources":["@wordpress/editor/src/components/post-publish-panel/maybe-upload-media.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tButton,\n\tSpinner,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { fetchMedia } from './media-util';\n\nfunction flattenBlocks( blocks ) {\n\tconst result = [];\n\n\tblocks.forEach( ( block ) => {\n\t\tresult.push( block );\n\t\tresult.push( ...flattenBlocks( block.innerBlocks ) );\n\t} );\n\n\treturn result;\n}\n\n/**\n * Determine whether a block has external media.\n *\n * Different blocks use different attribute names (and potentially\n * different logic as well) in determining whether the media is\n * present, and whether it's external.\n *\n * @param {{name: string, attributes: Object}} block The block.\n * @return {boolean?} Whether the block has external media\n */\nfunction hasExternalMedia( block ) {\n\tif ( block.name === 'core/image' || block.name === 'core/cover' ) {\n\t\treturn block.attributes.url && ! block.attributes.id;\n\t}\n\n\tif ( block.name === 'core/media-text' ) {\n\t\treturn block.attributes.mediaUrl && ! block.attributes.mediaId;\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Retrieve media info from a block.\n *\n * Different blocks use different attribute names, so we need this\n * function to normalize things into a consistent naming scheme.\n *\n * @param {{name: string, attributes: Object}} block The block.\n * @return {{url: ?string, alt: ?string, id: ?number}} The media info for the block.\n */\nfunction getMediaInfo( block ) {\n\tif ( block.name === 'core/image' || block.name === 'core/cover' ) {\n\t\tconst { url, alt, id } = block.attributes;\n\t\treturn { url, alt, id };\n\t}\n\n\tif ( block.name === 'core/media-text' ) {\n\t\tconst { mediaUrl: url, mediaAlt: alt, mediaId: id } = block.attributes;\n\t\treturn { url, alt, id };\n\t}\n\n\treturn {};\n}\n\n// Image component to represent a single image in the upload dialog.\nfunction Image( { clientId, alt, url } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<motion.img\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\taria-label={ __( 'Select image block.' ) }\n\t\t\tonClick={ () => {\n\t\t\t\tselectBlock( clientId );\n\t\t\t} }\n\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tkey={ clientId }\n\t\t\talt={ alt }\n\t\t\tsrc={ url }\n\t\t\tanimate={ { opacity: 1 } }\n\t\t\texit={ { opacity: 0, scale: 0 } }\n\t\t\tstyle={ {\n\t\t\t\twidth: '32px',\n\t\t\t\theight: '32px',\n\t\t\t\tobjectFit: 'cover',\n\t\t\t\tborderRadius: '2px',\n\t\t\t\tcursor: 'pointer',\n\t\t\t} }\n\t\t\twhileHover={ { scale: 1.08 } }\n\t\t/>\n\t);\n}\n\nexport default function MaybeUploadMediaPanel() {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst [ isAnimating, setIsAnimating ] = useState( false );\n\tconst [ hadUploadError, setHadUploadError ] = useState( false );\n\tconst { editorBlocks, mediaUpload } = useSelect(\n\t\t( select ) => ( {\n\t\t\teditorBlocks: select( blockEditorStore ).getBlocks(),\n\t\t\tmediaUpload: select( blockEditorStore ).getSettings().mediaUpload,\n\t\t} ),\n\t\t[]\n\t);\n\n\t// Get a list of blocks with external media.\n\tconst blocksWithExternalMedia = flattenBlocks( editorBlocks ).filter(\n\t\t( block ) => hasExternalMedia( block )\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tif ( ! mediaUpload || ! blocksWithExternalMedia.length ) {\n\t\treturn null;\n\t}\n\n\tconst panelBodyTitle = [\n\t\t__( 'Suggestion:' ),\n\t\t<span className=\"editor-post-publish-panel__link\" key=\"label\">\n\t\t\t{ __( 'External media' ) }\n\t\t</span>,\n\t];\n\n\t/**\n\t * Update an individual block to point to newly-added library media.\n\t *\n\t * Different blocks use different attribute names, so we need this\n\t * function to ensure we modify the correct attributes for each type.\n\t *\n\t * @param {{name: string, attributes: Object}} block The block.\n\t * @param {{id: number, url: string}} media Media library file info.\n\t */\n\tfunction updateBlockWithUploadedMedia( block, media ) {\n\t\tif ( block.name === 'core/image' || block.name === 'core/cover' ) {\n\t\t\tupdateBlockAttributes( block.clientId, {\n\t\t\t\tid: media.id,\n\t\t\t\turl: media.url,\n\t\t\t} );\n\t\t}\n\n\t\tif ( block.name === 'core/media-text' ) {\n\t\t\tupdateBlockAttributes( block.clientId, {\n\t\t\t\tmediaId: media.id,\n\t\t\t\tmediaUrl: media.url,\n\t\t\t} );\n\t\t}\n\t}\n\n\t// Handle fetching and uploading all external media in the post.\n\tfunction uploadImages() {\n\t\tsetIsUploading( true );\n\t\tsetHadUploadError( false );\n\n\t\t// Multiple blocks can be using the same URL, so we\n\t\t// should ensure we only fetch and upload each of them once.\n\t\tconst mediaUrls = new Set(\n\t\t\tblocksWithExternalMedia.map( ( block ) => {\n\t\t\t\tconst { url } = getMediaInfo( block );\n\t\t\t\treturn url;\n\t\t\t} )\n\t\t);\n\n\t\t// Create an upload promise for each URL, that we can wait for in all\n\t\t// blocks that make use of that media.\n\t\tconst uploadPromises = Object.fromEntries(\n\t\t\tObject.entries( fetchMedia( [ ...mediaUrls ] ) ).map(\n\t\t\t\t( [ url, filePromise ] ) => {\n\t\t\t\t\tconst uploadPromise = filePromise.then(\n\t\t\t\t\t\t( blob ) =>\n\t\t\t\t\t\t\tnew Promise( ( resolve, reject ) => {\n\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\t\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\t\t\t\t\t\t\tif ( isBlobURL( media.url ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tresolve( media );\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tonError() {\n\t\t\t\t\t\t\t\t\t\treject();\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn [ url, uploadPromise ];\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\n\t\t// Wait for all blocks to be updated with library media.\n\t\tPromise.allSettled(\n\t\t\tblocksWithExternalMedia.map( ( block ) => {\n\t\t\t\tconst { url } = getMediaInfo( block );\n\n\t\t\t\treturn uploadPromises[ url ]\n\t\t\t\t\t.then( ( media ) =>\n\t\t\t\t\t\tupdateBlockWithUploadedMedia( block, media )\n\t\t\t\t\t)\n\t\t\t\t\t.then( () => setIsAnimating( true ) )\n\t\t\t\t\t.catch( () => setHadUploadError( true ) );\n\t\t\t} )\n\t\t).finally( () => {\n\t\t\tsetIsUploading( false );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PanelBody initialOpen title={ panelBodyTitle }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Upload external images to the Media Library. Images from different domains may load slowly, display incorrectly, or be removed unexpectedly.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<div\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\tflexWrap: 'wrap',\n\t\t\t\t\tgap: '8px',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<AnimatePresence\n\t\t\t\t\tonExitComplete={ () => setIsAnimating( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ blocksWithExternalMedia.map( ( block ) => {\n\t\t\t\t\t\tconst { url, alt } = getMediaInfo( block );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\tkey={ block.clientId }\n\t\t\t\t\t\t\t\tclientId={ block.clientId }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\talt={ alt }\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</AnimatePresence>\n\t\t\t\t{ isUploading || isAnimating ? (\n\t\t\t\t\t<Spinner />\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ uploadImages }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ hadUploadError && <p>{ __( 'Upload failed, try again.' ) }</p> }\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|