@wordpress/edit-site 3.0.2 → 3.0.3
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/README.md +1 -1
- package/build/components/block-editor/back-button.js +60 -0
- package/build/components/block-editor/back-button.js.map +1 -0
- package/build/components/block-editor/index.js +18 -4
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/edit-template-part-menu-button/index.js +63 -0
- package/build/components/edit-template-part-menu-button/index.js.map +1 -0
- package/build/components/editor/global-styles-provider.js +1 -1
- package/build/components/editor/global-styles-provider.js.map +1 -1
- package/build/components/editor/index.js +7 -7
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor/utils.js +1 -1
- package/build/components/editor/utils.js.map +1 -1
- package/build/components/{sidebar → global-styles}/border-panel.js +0 -0
- package/build/components/global-styles/border-panel.js.map +1 -0
- package/build/components/{sidebar → global-styles}/color-palette-panel.js +4 -2
- package/build/components/global-styles/color-palette-panel.js.map +1 -0
- package/build/components/{sidebar → global-styles}/color-panel.js +7 -11
- package/build/components/global-styles/color-panel.js.map +1 -0
- package/build/components/global-styles/context-menu.js +58 -0
- package/build/components/global-styles/context-menu.js.map +1 -0
- package/build/components/{sidebar → global-styles}/dimensions-panel.js +6 -7
- package/build/components/global-styles/dimensions-panel.js.map +1 -0
- package/build/components/global-styles/header.js +54 -0
- package/build/components/global-styles/header.js.map +1 -0
- package/build/components/global-styles/index.js +89 -0
- package/build/components/global-styles/index.js.map +1 -0
- package/build/components/global-styles/navigation-button.js +43 -0
- package/build/components/global-styles/navigation-button.js.map +1 -0
- package/build/components/global-styles/palette.js +57 -0
- package/build/components/global-styles/palette.js.map +1 -0
- package/build/components/global-styles/preview.js +59 -0
- package/build/components/global-styles/preview.js.map +1 -0
- package/build/components/global-styles/screen-block-list.js +76 -0
- package/build/components/global-styles/screen-block-list.js.map +1 -0
- package/build/components/global-styles/screen-block.js +45 -0
- package/build/components/global-styles/screen-block.js.map +1 -0
- package/build/components/global-styles/screen-color-palette.js +48 -0
- package/build/components/global-styles/screen-color-palette.js.map +1 -0
- package/build/components/global-styles/screen-colors.js +51 -0
- package/build/components/global-styles/screen-colors.js.map +1 -0
- package/build/components/global-styles/screen-layout.js +60 -0
- package/build/components/global-styles/screen-layout.js.map +1 -0
- package/build/components/global-styles/screen-root.js +44 -0
- package/build/components/global-styles/screen-root.js.map +1 -0
- package/build/components/global-styles/screen-typography.js +50 -0
- package/build/components/global-styles/screen-typography.js.map +1 -0
- package/build/components/global-styles/subtitle.js +25 -0
- package/build/components/global-styles/subtitle.js.map +1 -0
- package/build/components/{sidebar → global-styles}/typography-panel.js +1 -3
- package/build/components/global-styles/typography-panel.js.map +1 -0
- package/build/components/header/plugin-more-menu-item/index.js +82 -0
- package/build/components/header/plugin-more-menu-item/index.js.map +1 -0
- package/build/components/header/plugin-sidebar-more-menu-item/index.js +75 -0
- package/build/components/header/plugin-sidebar-more-menu-item/index.js.map +1 -0
- package/build/components/header/undo-redo/redo.js +1 -1
- package/build/components/header/undo-redo/redo.js.map +1 -1
- package/build/components/header/undo-redo/undo.js +1 -1
- package/build/components/header/undo-redo/undo.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +2 -10
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/navigation-sidebar/index.js +1 -1
- package/build/components/navigation-sidebar/index.js.map +1 -1
- package/build/components/navigation-sidebar/navigation-panel/constants.js +10 -10
- package/build/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
- package/build/components/save-button/index.js +1 -1
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/secondary-sidebar/inserter-sidebar.js +2 -1
- package/build/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build/components/sidebar/global-styles-sidebar.js +11 -161
- package/build/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build/components/sidebar/index.js +1 -6
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar/plugin-sidebar/index.js +95 -0
- package/build/components/sidebar/plugin-sidebar/index.js.map +1 -0
- package/build/components/template-details/index.js +12 -6
- package/build/components/template-details/index.js.map +1 -1
- package/build/components/template-details/template-areas.js +73 -0
- package/build/components/template-details/template-areas.js.map +1 -0
- package/build/components/template-part-converter/index.js +1 -1
- package/build/components/template-part-converter/index.js.map +1 -1
- package/build/components/url-query-controller/index.js +1 -1
- package/build/components/url-query-controller/index.js.map +1 -1
- package/build/index.js +24 -0
- package/build/index.js.map +1 -1
- package/build/store/actions.js +54 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js +19 -1
- package/build/store/constants.js.map +1 -1
- package/build/store/reducer.js +16 -7
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +91 -9
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-editor/back-button.js +48 -0
- package/build-module/components/block-editor/back-button.js.map +1 -0
- package/build-module/components/block-editor/index.js +15 -4
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/edit-template-part-menu-button/index.js +49 -0
- package/build-module/components/edit-template-part-menu-button/index.js.map +1 -0
- package/build-module/components/editor/global-styles-provider.js +1 -1
- package/build-module/components/editor/global-styles-provider.js.map +1 -1
- package/build-module/components/editor/index.js +4 -5
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/editor/utils.js +1 -1
- package/build-module/components/editor/utils.js.map +1 -1
- package/build-module/components/{sidebar → global-styles}/border-panel.js +0 -0
- package/build-module/components/global-styles/border-panel.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/color-palette-panel.js +4 -2
- package/build-module/components/global-styles/color-palette-panel.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/color-panel.js +8 -12
- package/build-module/components/global-styles/color-panel.js.map +1 -0
- package/build-module/components/global-styles/context-menu.js +41 -0
- package/build-module/components/global-styles/context-menu.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/dimensions-panel.js +6 -7
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
- package/build-module/components/global-styles/header.js +41 -0
- package/build-module/components/global-styles/header.js.map +1 -0
- package/build-module/components/global-styles/index.js +70 -0
- package/build-module/components/global-styles/index.js.map +1 -0
- package/build-module/components/global-styles/navigation-button.js +31 -0
- package/build-module/components/global-styles/navigation-button.js.map +1 -0
- package/build-module/components/global-styles/palette.js +43 -0
- package/build-module/components/global-styles/palette.js.map +1 -0
- package/build-module/components/global-styles/preview.js +50 -0
- package/build-module/components/global-styles/preview.js.map +1 -0
- package/build-module/components/global-styles/screen-block-list.js +58 -0
- package/build-module/components/global-styles/screen-block-list.js.map +1 -0
- package/build-module/components/global-styles/screen-block.js +32 -0
- package/build-module/components/global-styles/screen-block.js.map +1 -0
- package/build-module/components/global-styles/screen-color-palette.js +35 -0
- package/build-module/components/global-styles/screen-color-palette.js.map +1 -0
- package/build-module/components/global-styles/screen-colors.js +38 -0
- package/build-module/components/global-styles/screen-colors.js.map +1 -0
- package/build-module/components/global-styles/screen-layout.js +44 -0
- package/build-module/components/global-styles/screen-layout.js.map +1 -0
- package/build-module/components/global-styles/screen-root.js +29 -0
- package/build-module/components/global-styles/screen-root.js.map +1 -0
- package/build-module/components/global-styles/screen-typography.js +37 -0
- package/build-module/components/global-styles/screen-typography.js.map +1 -0
- package/build-module/components/global-styles/subtitle.js +17 -0
- package/build-module/components/global-styles/subtitle.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/typography-panel.js +1 -2
- package/build-module/components/global-styles/typography-panel.js.map +1 -0
- package/build-module/components/header/plugin-more-menu-item/index.js +70 -0
- package/build-module/components/header/plugin-more-menu-item/index.js.map +1 -0
- package/build-module/components/header/plugin-sidebar-more-menu-item/index.js +64 -0
- package/build-module/components/header/plugin-sidebar-more-menu-item/index.js.map +1 -0
- package/build-module/components/header/undo-redo/redo.js +1 -1
- package/build-module/components/header/undo-redo/redo.js.map +1 -1
- package/build-module/components/header/undo-redo/undo.js +1 -1
- package/build-module/components/header/undo-redo/undo.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +3 -11
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/navigation-sidebar/index.js +1 -1
- package/build-module/components/navigation-sidebar/index.js.map +1 -1
- package/build-module/components/navigation-sidebar/navigation-panel/constants.js +5 -3
- package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
- package/build-module/components/save-button/index.js +1 -1
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/secondary-sidebar/inserter-sidebar.js +2 -1
- package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build-module/components/sidebar/global-styles-sidebar.js +13 -159
- package/build-module/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build-module/components/sidebar/index.js +2 -7
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-sidebar/index.js +84 -0
- package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -0
- package/build-module/components/template-details/index.js +13 -8
- package/build-module/components/template-details/index.js.map +1 -1
- package/build-module/components/template-details/template-areas.js +60 -0
- package/build-module/components/template-details/template-areas.js.map +1 -0
- package/build-module/components/template-part-converter/index.js +1 -1
- package/build-module/components/template-part-converter/index.js.map +1 -1
- package/build-module/components/url-query-controller/index.js +1 -1
- package/build-module/components/url-query-controller/index.js.map +1 -1
- package/build-module/index.js +3 -0
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +45 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/constants.js +13 -0
- package/build-module/store/constants.js.map +1 -1
- package/build-module/store/reducer.js +16 -7
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +85 -9
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +122 -17
- package/build-style/style.css +122 -17
- package/package.json +26 -26
- package/src/components/block-editor/back-button.js +44 -0
- package/src/components/block-editor/index.js +16 -1
- package/src/components/block-editor/style.scss +26 -0
- package/src/components/edit-template-part-menu-button/index.js +57 -0
- package/src/components/editor/global-styles-provider.js +1 -1
- package/src/components/editor/index.js +5 -8
- package/src/components/editor/utils.js +1 -0
- package/src/components/{sidebar → global-styles}/border-panel.js +0 -0
- package/src/components/{sidebar → global-styles}/color-palette-panel.js +13 -11
- package/src/components/{sidebar → global-styles}/color-panel.js +12 -17
- package/src/components/global-styles/context-menu.js +54 -0
- package/src/components/{sidebar → global-styles}/dimensions-panel.js +6 -10
- package/src/components/global-styles/header.js +50 -0
- package/src/components/global-styles/index.js +81 -0
- package/src/components/global-styles/navigation-button.js +35 -0
- package/src/components/global-styles/palette.js +67 -0
- package/src/components/global-styles/preview.js +41 -0
- package/src/components/global-styles/screen-block-list.js +59 -0
- package/src/components/global-styles/screen-block.js +28 -0
- package/src/components/global-styles/screen-color-palette.js +33 -0
- package/src/components/global-styles/screen-colors.js +36 -0
- package/src/components/global-styles/screen-layout.js +45 -0
- package/src/components/global-styles/screen-root.js +43 -0
- package/src/components/global-styles/screen-typography.js +33 -0
- package/src/components/global-styles/style.scss +35 -0
- package/src/components/global-styles/subtitle.js +10 -0
- package/src/components/{sidebar → global-styles}/typography-panel.js +1 -2
- package/src/components/header/plugin-more-menu-item/index.js +71 -0
- package/src/components/header/plugin-sidebar-more-menu-item/index.js +64 -0
- package/src/components/header/undo-redo/redo.js +4 -1
- package/src/components/header/undo-redo/undo.js +4 -1
- package/src/components/keyboard-shortcuts/index.js +25 -40
- package/src/components/navigation-sidebar/index.js +1 -1
- package/src/components/navigation-sidebar/navigation-panel/constants.js +9 -4
- package/src/components/navigation-sidebar/navigation-panel/style.scss +1 -0
- package/src/components/save-button/index.js +1 -1
- package/src/components/secondary-sidebar/inserter-sidebar.js +1 -0
- package/src/components/sidebar/global-styles-sidebar.js +14 -187
- package/src/components/sidebar/index.js +2 -7
- package/src/components/sidebar/plugin-sidebar/index.js +80 -0
- package/src/components/sidebar/style.scss +40 -0
- package/src/components/template-details/index.js +17 -7
- package/src/components/template-details/style.scss +36 -27
- package/src/components/template-details/template-areas.js +66 -0
- package/src/components/template-part-converter/index.js +1 -1
- package/src/components/url-query-controller/index.js +1 -1
- package/src/index.js +3 -0
- package/src/store/actions.js +53 -1
- package/src/store/constants.js +15 -0
- package/src/store/reducer.js +26 -12
- package/src/store/selectors.js +96 -9
- package/src/store/test/reducer.js +40 -23
- package/src/store/test/selectors.js +34 -3
- package/src/style.scss +1 -0
- package/build/components/sidebar/border-panel.js.map +0 -1
- package/build/components/sidebar/color-palette-panel.js.map +0 -1
- package/build/components/sidebar/color-panel.js.map +0 -1
- package/build/components/sidebar/dimensions-panel.js.map +0 -1
- package/build/components/sidebar/typography-panel.js.map +0 -1
- package/build-module/components/sidebar/border-panel.js.map +0 -1
- package/build-module/components/sidebar/color-palette-panel.js.map +0 -1
- package/build-module/components/sidebar/color-panel.js.map +0 -1
- package/build-module/components/sidebar/dimensions-panel.js.map +0 -1
- package/build-module/components/sidebar/typography-panel.js.map +0 -1
|
@@ -8,6 +8,7 @@ import { addQueryArgs, getPathAndQueryString } from '@wordpress/url';
|
|
|
8
8
|
import { __ } from '@wordpress/i18n';
|
|
9
9
|
import { store as noticesStore } from '@wordpress/notices';
|
|
10
10
|
import { store as coreStore } from '@wordpress/core-data';
|
|
11
|
+
import { store as interfaceStore } from '@wordpress/interface';
|
|
11
12
|
/**
|
|
12
13
|
* Internal dependencies
|
|
13
14
|
*/
|
|
@@ -114,7 +115,7 @@ export function* removeTemplate(templateId) {
|
|
|
114
115
|
/**
|
|
115
116
|
* Returns an action object used to set a template part.
|
|
116
117
|
*
|
|
117
|
-
* @param {
|
|
118
|
+
* @param {string} templatePartId The template part ID.
|
|
118
119
|
*
|
|
119
120
|
* @return {Object} Action object.
|
|
120
121
|
*/
|
|
@@ -125,6 +126,20 @@ export function setTemplatePart(templatePartId) {
|
|
|
125
126
|
templatePartId
|
|
126
127
|
};
|
|
127
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Returns an action object used to push a template part to navigation history.
|
|
131
|
+
*
|
|
132
|
+
* @param {string} templatePartId The template part ID.
|
|
133
|
+
*
|
|
134
|
+
* @return {Object} Action object.
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
export function pushTemplatePart(templatePartId) {
|
|
138
|
+
return {
|
|
139
|
+
type: 'PUSH_TEMPLATE_PART',
|
|
140
|
+
templatePartId
|
|
141
|
+
};
|
|
142
|
+
}
|
|
128
143
|
/**
|
|
129
144
|
* Updates the homeTemplateId state with the templateId of the page resolved
|
|
130
145
|
* from the given path.
|
|
@@ -174,6 +189,15 @@ export function* setPage(page) {
|
|
|
174
189
|
};
|
|
175
190
|
return templateId;
|
|
176
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Go back to the current editing page.
|
|
194
|
+
*/
|
|
195
|
+
|
|
196
|
+
export function goBack() {
|
|
197
|
+
return {
|
|
198
|
+
type: 'GO_BACK'
|
|
199
|
+
};
|
|
200
|
+
}
|
|
177
201
|
/**
|
|
178
202
|
* Displays the site homepage for editing in the editor.
|
|
179
203
|
*/
|
|
@@ -369,4 +393,24 @@ export function* revertTemplate(template) {
|
|
|
369
393
|
});
|
|
370
394
|
}
|
|
371
395
|
}
|
|
396
|
+
/**
|
|
397
|
+
* Returns an action object used in signalling that the user opened an editor sidebar.
|
|
398
|
+
*
|
|
399
|
+
* @param {?string} name Sidebar name to be opened.
|
|
400
|
+
*
|
|
401
|
+
* @yield {Object} Action object.
|
|
402
|
+
*/
|
|
403
|
+
|
|
404
|
+
export function* openGeneralSidebar(name) {
|
|
405
|
+
yield controls.dispatch(interfaceStore, 'enableComplementaryArea', editSiteStoreName, name);
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Returns an action object signalling that the user closed the sidebar.
|
|
409
|
+
*
|
|
410
|
+
* @yield {Object} Action object.
|
|
411
|
+
*/
|
|
412
|
+
|
|
413
|
+
export function* closeGeneralSidebar() {
|
|
414
|
+
yield controls.dispatch(interfaceStore, 'disableComplementaryArea', editSiteStoreName);
|
|
415
|
+
}
|
|
372
416
|
//# sourceMappingURL=actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/store/actions.js"],"names":["parse","__unstableSerializeAndClean","controls","dispatch","apiFetch","addQueryArgs","getPathAndQueryString","__","store","noticesStore","coreStore","STORE_NAME","editSiteStoreName","isTemplateRevertable","toggleFeature","feature","type","__experimentalSetPreviewDeviceType","deviceType","setTemplate","templateId","templateSlug","pageContext","template","resolveSelect","slug","page","context","addTemplate","newTemplate","content","id","blocks","undoIgnore","removeTemplate","path","method","select","setTemplatePart","templatePartId","setHomeTemplateId","homeTemplateId","setPage","postId","entity","postType","link","showHomepage","show_on_front","showOnFront","page_on_front","frontpageId","siteUrl","homeTemplate","setNavigationPanelActiveMenu","menu","openNavigationPanelToMenu","setIsNavigationPanelOpened","isOpen","setIsInserterOpened","value","updateSettings","settings","setIsListViewOpened","revertTemplate","templateEntity","fileTemplatePath","baseURL","source","fileTemplate","serializeBlocks","blocksForSerialization","edited","raw","undoRevert","editEntityRecord","actions","label","onClick","error","errorMessage","message","code"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse, __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { controls, dispatch } from '@wordpress/data';\nimport { apiFetch } from '@wordpress/data-controls';\nimport { addQueryArgs, getPathAndQueryString } from '@wordpress/url';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME as editSiteStoreName } from './constants';\nimport isTemplateRevertable from '../utils/is-template-revertable';\n\n/**\n * Returns an action object used to toggle a feature flag.\n *\n * @param {string} feature Feature name.\n *\n * @return {Object} Action object.\n */\nexport function toggleFeature( feature ) {\n\treturn {\n\t\ttype: 'TOGGLE_FEATURE',\n\t\tfeature,\n\t};\n}\n\n/**\n * Returns an action object used to toggle the width of the editing canvas.\n *\n * @param {string} deviceType\n *\n * @return {Object} Action object.\n */\nexport function __experimentalSetPreviewDeviceType( deviceType ) {\n\treturn {\n\t\ttype: 'SET_PREVIEW_DEVICE_TYPE',\n\t\tdeviceType,\n\t};\n}\n\n/**\n * Returns an action object used to set a template.\n *\n * @param {number} templateId The template ID.\n * @param {string} templateSlug The template slug.\n * @return {Object} Action object.\n */\nexport function* setTemplate( templateId, templateSlug ) {\n\tconst pageContext = { templateSlug };\n\tif ( ! templateSlug ) {\n\t\tconst template = yield controls.resolveSelect(\n\t\t\tcoreStore,\n\t\t\t'getEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplateId\n\t\t);\n\t\tpageContext.templateSlug = template?.slug;\n\t}\n\treturn {\n\t\ttype: 'SET_TEMPLATE',\n\t\ttemplateId,\n\t\tpage: { context: pageContext },\n\t};\n}\n\n/**\n * Adds a new template, and sets it as the current template.\n *\n * @param {Object} template The template.\n *\n * @return {Object} Action object used to set the current template.\n */\nexport function* addTemplate( template ) {\n\tconst newTemplate = yield controls.dispatch(\n\t\tcoreStore,\n\t\t'saveEntityRecord',\n\t\t'postType',\n\t\t'wp_template',\n\t\ttemplate\n\t);\n\n\tif ( template.content ) {\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'editEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\tnewTemplate.id,\n\t\t\t{ blocks: parse( template.content ) },\n\t\t\t{ undoIgnore: true }\n\t\t);\n\t}\n\n\treturn {\n\t\ttype: 'SET_TEMPLATE',\n\t\ttemplateId: newTemplate.id,\n\t\tpage: { context: { templateSlug: newTemplate.slug } },\n\t};\n}\n\n/**\n * Removes a template, and updates the current page and template.\n *\n * @param {number} templateId The template ID.\n */\nexport function* removeTemplate( templateId ) {\n\tyield apiFetch( {\n\t\tpath: `/wp/v2/templates/${ templateId }`,\n\t\tmethod: 'DELETE',\n\t} );\n\tconst page = yield controls.select( editSiteStoreName, 'getPage' );\n\tyield controls.dispatch( editSiteStoreName, 'setPage', page );\n}\n\n/**\n * Returns an action object used to set a template part.\n *\n * @param {number} templatePartId The template part ID.\n *\n * @return {Object} Action object.\n */\nexport function setTemplatePart( templatePartId ) {\n\treturn {\n\t\ttype: 'SET_TEMPLATE_PART',\n\t\ttemplatePartId,\n\t};\n}\n\n/**\n * Updates the homeTemplateId state with the templateId of the page resolved\n * from the given path.\n *\n * @param {number} homeTemplateId The template ID for the homepage.\n */\nexport function setHomeTemplateId( homeTemplateId ) {\n\treturn {\n\t\ttype: 'SET_HOME_TEMPLATE',\n\t\thomeTemplateId,\n\t};\n}\n\n/**\n * Resolves the template for a page and displays both. If no path is given, attempts\n * to use the postId to generate a path like `?p=${ postId }`.\n *\n * @param {Object} page The page object.\n * @param {string} page.type The page type.\n * @param {string} page.slug The page slug.\n * @param {string} page.path The page path.\n * @param {Object} page.context The page context.\n *\n * @return {number} The resolved template ID for the page route.\n */\nexport function* setPage( page ) {\n\tif ( ! page.path && page.context?.postId ) {\n\t\tconst entity = yield controls.resolveSelect(\n\t\t\tcoreStore,\n\t\t\t'getEntityRecord',\n\t\t\t'postType',\n\t\t\tpage.context.postType || 'post',\n\t\t\tpage.context.postId\n\t\t);\n\n\t\tpage.path = getPathAndQueryString( entity.link );\n\t}\n\tconst { id: templateId, slug: templateSlug } = yield controls.resolveSelect(\n\t\tcoreStore,\n\t\t'__experimentalGetTemplateForLink',\n\t\tpage.path\n\t);\n\tyield {\n\t\ttype: 'SET_PAGE',\n\t\tpage: ! templateSlug\n\t\t\t? page\n\t\t\t: {\n\t\t\t\t\t...page,\n\t\t\t\t\tcontext: {\n\t\t\t\t\t\t...page.context,\n\t\t\t\t\t\ttemplateSlug,\n\t\t\t\t\t},\n\t\t\t },\n\t\ttemplateId,\n\t};\n\treturn templateId;\n}\n\n/**\n * Displays the site homepage for editing in the editor.\n */\nexport function* showHomepage() {\n\tconst {\n\t\tshow_on_front: showOnFront,\n\t\tpage_on_front: frontpageId,\n\t} = yield controls.resolveSelect(\n\t\tcoreStore,\n\t\t'getEntityRecord',\n\t\t'root',\n\t\t'site'\n\t);\n\n\tconst { siteUrl } = yield controls.select(\n\t\teditSiteStoreName,\n\t\t'getSettings'\n\t);\n\n\tconst page = {\n\t\tpath: siteUrl,\n\t\tcontext:\n\t\t\tshowOnFront === 'page'\n\t\t\t\t? {\n\t\t\t\t\t\tpostType: 'page',\n\t\t\t\t\t\tpostId: frontpageId,\n\t\t\t\t }\n\t\t\t\t: {},\n\t};\n\n\tconst homeTemplate = yield* setPage( page );\n\tyield setHomeTemplateId( homeTemplate );\n}\n\n/**\n * Returns an action object used to set the active navigation panel menu.\n *\n * @param {string} menu Menu prop of active menu.\n *\n * @return {Object} Action object.\n */\nexport function setNavigationPanelActiveMenu( menu ) {\n\treturn {\n\t\ttype: 'SET_NAVIGATION_PANEL_ACTIVE_MENU',\n\t\tmenu,\n\t};\n}\n\n/**\n * Opens the navigation panel and sets its active menu at the same time.\n *\n * @param {string} menu Identifies the menu to open.\n */\nexport function openNavigationPanelToMenu( menu ) {\n\treturn {\n\t\ttype: 'OPEN_NAVIGATION_PANEL_TO_MENU',\n\t\tmenu,\n\t};\n}\n\n/**\n * Sets whether the navigation panel should be open.\n *\n * @param {boolean} isOpen If true, opens the nav panel. If false, closes it. It\n * does not toggle the state, but sets it directly.\n */\nexport function setIsNavigationPanelOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_NAVIGATION_PANEL_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the inserter.\n *\n * @param {boolean|Object} value Whether the inserter should be\n * opened (true) or closed (false).\n * To specify an insertion point,\n * use an object.\n * @param {string} value.rootClientId The root client ID to insert at.\n * @param {number} value.insertionIndex The index to insert at.\n *\n * @return {Object} Action object.\n */\nexport function setIsInserterOpened( value ) {\n\treturn {\n\t\ttype: 'SET_IS_INSERTER_OPENED',\n\t\tvalue,\n\t};\n}\n\n/**\n * Returns an action object used to update the settings.\n *\n * @param {Object} settings New settings.\n *\n * @return {Object} Action object.\n */\nexport function updateSettings( settings ) {\n\treturn {\n\t\ttype: 'UPDATE_SETTINGS',\n\t\tsettings,\n\t};\n}\n\n/**\n * Sets whether the list view panel should be open.\n *\n * @param {boolean} isOpen If true, opens the list view. If false, closes it.\n * It does not toggle the state, but sets it directly.\n */\nexport function setIsListViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_LIST_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Reverts a template to its original theme-provided file.\n *\n * @param {Object} template The template to revert.\n */\nexport function* revertTemplate( template ) {\n\tif ( ! isTemplateRevertable( template ) ) {\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createErrorNotice',\n\t\t\t__( 'This template is not revertable.' ),\n\t\t\t{ type: 'snackbar' }\n\t\t);\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst templateEntity = yield controls.select(\n\t\t\tcoreStore,\n\t\t\t'getEntity',\n\t\t\t'postType',\n\t\t\ttemplate.type\n\t\t);\n\t\tif ( ! templateEntity ) {\n\t\t\tyield controls.dispatch(\n\t\t\t\tnoticesStore,\n\t\t\t\t'createErrorNotice',\n\t\t\t\t__(\n\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst fileTemplatePath = addQueryArgs(\n\t\t\t`${ templateEntity.baseURL }/${ template.id }`,\n\t\t\t{ context: 'edit', source: 'theme' }\n\t\t);\n\t\tconst fileTemplate = yield apiFetch( { path: fileTemplatePath } );\n\t\tif ( ! fileTemplate ) {\n\t\t\tyield controls.dispatch(\n\t\t\t\tnoticesStore,\n\t\t\t\t'createErrorNotice',\n\t\t\t\t__(\n\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst serializeBlocks = ( { blocks: blocksForSerialization = [] } ) =>\n\t\t\t__unstableSerializeAndClean( blocksForSerialization );\n\t\tconst edited = yield controls.select(\n\t\t\tcoreStore,\n\t\t\t'getEditedEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id\n\t\t);\n\t\t// We are fixing up the undo level here to make sure we can undo\n\t\t// the revert in the header toolbar correctly.\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'editEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id,\n\t\t\t{\n\t\t\t\tcontent: serializeBlocks, // required to make the `undo` behave correctly\n\t\t\t\tblocks: edited.blocks, // required to revert the blocks in the editor\n\t\t\t\tsource: 'custom', // required to avoid turning the editor into a dirty state\n\t\t\t},\n\t\t\t{\n\t\t\t\tundoIgnore: true, // required to merge this edit with the last undo level\n\t\t\t}\n\t\t);\n\n\t\tconst blocks = parse( fileTemplate?.content?.raw );\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'editEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\tfileTemplate.id,\n\t\t\t{\n\t\t\t\tcontent: serializeBlocks,\n\t\t\t\tblocks,\n\t\t\t\tsource: 'theme',\n\t\t\t}\n\t\t);\n\n\t\tconst undoRevert = async () => {\n\t\t\tawait dispatch( coreStore ).editEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\tedited.id,\n\t\t\t\t{\n\t\t\t\t\tcontent: serializeBlocks,\n\t\t\t\t\tblocks: edited.blocks,\n\t\t\t\t\tsource: 'custom',\n\t\t\t\t}\n\t\t\t);\n\t\t};\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createSuccessNotice',\n\t\t\t__( 'Template reverted.' ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\tonClick: undoRevert,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t);\n\t} catch ( error ) {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? error.message\n\t\t\t\t: __( 'Template revert failed. Please reload.' );\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createErrorNotice',\n\t\t\terrorMessage,\n\t\t\t{ type: 'snackbar' }\n\t\t);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/store/actions.js"],"names":["parse","__unstableSerializeAndClean","controls","dispatch","apiFetch","addQueryArgs","getPathAndQueryString","__","store","noticesStore","coreStore","interfaceStore","STORE_NAME","editSiteStoreName","isTemplateRevertable","toggleFeature","feature","type","__experimentalSetPreviewDeviceType","deviceType","setTemplate","templateId","templateSlug","pageContext","template","resolveSelect","slug","page","context","addTemplate","newTemplate","content","id","blocks","undoIgnore","removeTemplate","path","method","select","setTemplatePart","templatePartId","pushTemplatePart","setHomeTemplateId","homeTemplateId","setPage","postId","entity","postType","link","goBack","showHomepage","show_on_front","showOnFront","page_on_front","frontpageId","siteUrl","homeTemplate","setNavigationPanelActiveMenu","menu","openNavigationPanelToMenu","setIsNavigationPanelOpened","isOpen","setIsInserterOpened","value","updateSettings","settings","setIsListViewOpened","revertTemplate","templateEntity","fileTemplatePath","baseURL","source","fileTemplate","serializeBlocks","blocksForSerialization","edited","raw","undoRevert","editEntityRecord","actions","label","onClick","error","errorMessage","message","code","openGeneralSidebar","name","closeGeneralSidebar"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse, __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { controls, dispatch } from '@wordpress/data';\nimport { apiFetch } from '@wordpress/data-controls';\nimport { addQueryArgs, getPathAndQueryString } from '@wordpress/url';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME as editSiteStoreName } from './constants';\nimport isTemplateRevertable from '../utils/is-template-revertable';\n\n/**\n * Returns an action object used to toggle a feature flag.\n *\n * @param {string} feature Feature name.\n *\n * @return {Object} Action object.\n */\nexport function toggleFeature( feature ) {\n\treturn {\n\t\ttype: 'TOGGLE_FEATURE',\n\t\tfeature,\n\t};\n}\n\n/**\n * Returns an action object used to toggle the width of the editing canvas.\n *\n * @param {string} deviceType\n *\n * @return {Object} Action object.\n */\nexport function __experimentalSetPreviewDeviceType( deviceType ) {\n\treturn {\n\t\ttype: 'SET_PREVIEW_DEVICE_TYPE',\n\t\tdeviceType,\n\t};\n}\n\n/**\n * Returns an action object used to set a template.\n *\n * @param {number} templateId The template ID.\n * @param {string} templateSlug The template slug.\n * @return {Object} Action object.\n */\nexport function* setTemplate( templateId, templateSlug ) {\n\tconst pageContext = { templateSlug };\n\tif ( ! templateSlug ) {\n\t\tconst template = yield controls.resolveSelect(\n\t\t\tcoreStore,\n\t\t\t'getEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplateId\n\t\t);\n\t\tpageContext.templateSlug = template?.slug;\n\t}\n\treturn {\n\t\ttype: 'SET_TEMPLATE',\n\t\ttemplateId,\n\t\tpage: { context: pageContext },\n\t};\n}\n\n/**\n * Adds a new template, and sets it as the current template.\n *\n * @param {Object} template The template.\n *\n * @return {Object} Action object used to set the current template.\n */\nexport function* addTemplate( template ) {\n\tconst newTemplate = yield controls.dispatch(\n\t\tcoreStore,\n\t\t'saveEntityRecord',\n\t\t'postType',\n\t\t'wp_template',\n\t\ttemplate\n\t);\n\n\tif ( template.content ) {\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'editEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\tnewTemplate.id,\n\t\t\t{ blocks: parse( template.content ) },\n\t\t\t{ undoIgnore: true }\n\t\t);\n\t}\n\n\treturn {\n\t\ttype: 'SET_TEMPLATE',\n\t\ttemplateId: newTemplate.id,\n\t\tpage: { context: { templateSlug: newTemplate.slug } },\n\t};\n}\n\n/**\n * Removes a template, and updates the current page and template.\n *\n * @param {number} templateId The template ID.\n */\nexport function* removeTemplate( templateId ) {\n\tyield apiFetch( {\n\t\tpath: `/wp/v2/templates/${ templateId }`,\n\t\tmethod: 'DELETE',\n\t} );\n\tconst page = yield controls.select( editSiteStoreName, 'getPage' );\n\tyield controls.dispatch( editSiteStoreName, 'setPage', page );\n}\n\n/**\n * Returns an action object used to set a template part.\n *\n * @param {string} templatePartId The template part ID.\n *\n * @return {Object} Action object.\n */\nexport function setTemplatePart( templatePartId ) {\n\treturn {\n\t\ttype: 'SET_TEMPLATE_PART',\n\t\ttemplatePartId,\n\t};\n}\n\n/**\n * Returns an action object used to push a template part to navigation history.\n *\n * @param {string} templatePartId The template part ID.\n *\n * @return {Object} Action object.\n */\nexport function pushTemplatePart( templatePartId ) {\n\treturn {\n\t\ttype: 'PUSH_TEMPLATE_PART',\n\t\ttemplatePartId,\n\t};\n}\n\n/**\n * Updates the homeTemplateId state with the templateId of the page resolved\n * from the given path.\n *\n * @param {number} homeTemplateId The template ID for the homepage.\n */\nexport function setHomeTemplateId( homeTemplateId ) {\n\treturn {\n\t\ttype: 'SET_HOME_TEMPLATE',\n\t\thomeTemplateId,\n\t};\n}\n\n/**\n * Resolves the template for a page and displays both. If no path is given, attempts\n * to use the postId to generate a path like `?p=${ postId }`.\n *\n * @param {Object} page The page object.\n * @param {string} page.type The page type.\n * @param {string} page.slug The page slug.\n * @param {string} page.path The page path.\n * @param {Object} page.context The page context.\n *\n * @return {number} The resolved template ID for the page route.\n */\nexport function* setPage( page ) {\n\tif ( ! page.path && page.context?.postId ) {\n\t\tconst entity = yield controls.resolveSelect(\n\t\t\tcoreStore,\n\t\t\t'getEntityRecord',\n\t\t\t'postType',\n\t\t\tpage.context.postType || 'post',\n\t\t\tpage.context.postId\n\t\t);\n\n\t\tpage.path = getPathAndQueryString( entity.link );\n\t}\n\tconst { id: templateId, slug: templateSlug } = yield controls.resolveSelect(\n\t\tcoreStore,\n\t\t'__experimentalGetTemplateForLink',\n\t\tpage.path\n\t);\n\tyield {\n\t\ttype: 'SET_PAGE',\n\t\tpage: ! templateSlug\n\t\t\t? page\n\t\t\t: {\n\t\t\t\t\t...page,\n\t\t\t\t\tcontext: {\n\t\t\t\t\t\t...page.context,\n\t\t\t\t\t\ttemplateSlug,\n\t\t\t\t\t},\n\t\t\t },\n\t\ttemplateId,\n\t};\n\treturn templateId;\n}\n\n/**\n * Go back to the current editing page.\n */\nexport function goBack() {\n\treturn {\n\t\ttype: 'GO_BACK',\n\t};\n}\n\n/**\n * Displays the site homepage for editing in the editor.\n */\nexport function* showHomepage() {\n\tconst {\n\t\tshow_on_front: showOnFront,\n\t\tpage_on_front: frontpageId,\n\t} = yield controls.resolveSelect(\n\t\tcoreStore,\n\t\t'getEntityRecord',\n\t\t'root',\n\t\t'site'\n\t);\n\n\tconst { siteUrl } = yield controls.select(\n\t\teditSiteStoreName,\n\t\t'getSettings'\n\t);\n\n\tconst page = {\n\t\tpath: siteUrl,\n\t\tcontext:\n\t\t\tshowOnFront === 'page'\n\t\t\t\t? {\n\t\t\t\t\t\tpostType: 'page',\n\t\t\t\t\t\tpostId: frontpageId,\n\t\t\t\t }\n\t\t\t\t: {},\n\t};\n\n\tconst homeTemplate = yield* setPage( page );\n\tyield setHomeTemplateId( homeTemplate );\n}\n\n/**\n * Returns an action object used to set the active navigation panel menu.\n *\n * @param {string} menu Menu prop of active menu.\n *\n * @return {Object} Action object.\n */\nexport function setNavigationPanelActiveMenu( menu ) {\n\treturn {\n\t\ttype: 'SET_NAVIGATION_PANEL_ACTIVE_MENU',\n\t\tmenu,\n\t};\n}\n\n/**\n * Opens the navigation panel and sets its active menu at the same time.\n *\n * @param {string} menu Identifies the menu to open.\n */\nexport function openNavigationPanelToMenu( menu ) {\n\treturn {\n\t\ttype: 'OPEN_NAVIGATION_PANEL_TO_MENU',\n\t\tmenu,\n\t};\n}\n\n/**\n * Sets whether the navigation panel should be open.\n *\n * @param {boolean} isOpen If true, opens the nav panel. If false, closes it. It\n * does not toggle the state, but sets it directly.\n */\nexport function setIsNavigationPanelOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_NAVIGATION_PANEL_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the inserter.\n *\n * @param {boolean|Object} value Whether the inserter should be\n * opened (true) or closed (false).\n * To specify an insertion point,\n * use an object.\n * @param {string} value.rootClientId The root client ID to insert at.\n * @param {number} value.insertionIndex The index to insert at.\n *\n * @return {Object} Action object.\n */\nexport function setIsInserterOpened( value ) {\n\treturn {\n\t\ttype: 'SET_IS_INSERTER_OPENED',\n\t\tvalue,\n\t};\n}\n\n/**\n * Returns an action object used to update the settings.\n *\n * @param {Object} settings New settings.\n *\n * @return {Object} Action object.\n */\nexport function updateSettings( settings ) {\n\treturn {\n\t\ttype: 'UPDATE_SETTINGS',\n\t\tsettings,\n\t};\n}\n\n/**\n * Sets whether the list view panel should be open.\n *\n * @param {boolean} isOpen If true, opens the list view. If false, closes it.\n * It does not toggle the state, but sets it directly.\n */\nexport function setIsListViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_LIST_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Reverts a template to its original theme-provided file.\n *\n * @param {Object} template The template to revert.\n */\nexport function* revertTemplate( template ) {\n\tif ( ! isTemplateRevertable( template ) ) {\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createErrorNotice',\n\t\t\t__( 'This template is not revertable.' ),\n\t\t\t{ type: 'snackbar' }\n\t\t);\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst templateEntity = yield controls.select(\n\t\t\tcoreStore,\n\t\t\t'getEntity',\n\t\t\t'postType',\n\t\t\ttemplate.type\n\t\t);\n\t\tif ( ! templateEntity ) {\n\t\t\tyield controls.dispatch(\n\t\t\t\tnoticesStore,\n\t\t\t\t'createErrorNotice',\n\t\t\t\t__(\n\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst fileTemplatePath = addQueryArgs(\n\t\t\t`${ templateEntity.baseURL }/${ template.id }`,\n\t\t\t{ context: 'edit', source: 'theme' }\n\t\t);\n\t\tconst fileTemplate = yield apiFetch( { path: fileTemplatePath } );\n\t\tif ( ! fileTemplate ) {\n\t\t\tyield controls.dispatch(\n\t\t\t\tnoticesStore,\n\t\t\t\t'createErrorNotice',\n\t\t\t\t__(\n\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst serializeBlocks = ( { blocks: blocksForSerialization = [] } ) =>\n\t\t\t__unstableSerializeAndClean( blocksForSerialization );\n\t\tconst edited = yield controls.select(\n\t\t\tcoreStore,\n\t\t\t'getEditedEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id\n\t\t);\n\t\t// We are fixing up the undo level here to make sure we can undo\n\t\t// the revert in the header toolbar correctly.\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'editEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id,\n\t\t\t{\n\t\t\t\tcontent: serializeBlocks, // required to make the `undo` behave correctly\n\t\t\t\tblocks: edited.blocks, // required to revert the blocks in the editor\n\t\t\t\tsource: 'custom', // required to avoid turning the editor into a dirty state\n\t\t\t},\n\t\t\t{\n\t\t\t\tundoIgnore: true, // required to merge this edit with the last undo level\n\t\t\t}\n\t\t);\n\n\t\tconst blocks = parse( fileTemplate?.content?.raw );\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'editEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\tfileTemplate.id,\n\t\t\t{\n\t\t\t\tcontent: serializeBlocks,\n\t\t\t\tblocks,\n\t\t\t\tsource: 'theme',\n\t\t\t}\n\t\t);\n\n\t\tconst undoRevert = async () => {\n\t\t\tawait dispatch( coreStore ).editEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\tedited.id,\n\t\t\t\t{\n\t\t\t\t\tcontent: serializeBlocks,\n\t\t\t\t\tblocks: edited.blocks,\n\t\t\t\t\tsource: 'custom',\n\t\t\t\t}\n\t\t\t);\n\t\t};\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createSuccessNotice',\n\t\t\t__( 'Template reverted.' ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\tonClick: undoRevert,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t);\n\t} catch ( error ) {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? error.message\n\t\t\t\t: __( 'Template revert failed. Please reload.' );\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createErrorNotice',\n\t\t\terrorMessage,\n\t\t\t{ type: 'snackbar' }\n\t\t);\n\t}\n}\n/**\n * Returns an action object used in signalling that the user opened an editor sidebar.\n *\n * @param {?string} name Sidebar name to be opened.\n *\n * @yield {Object} Action object.\n */\nexport function* openGeneralSidebar( name ) {\n\tyield controls.dispatch(\n\t\tinterfaceStore,\n\t\t'enableComplementaryArea',\n\t\teditSiteStoreName,\n\t\tname\n\t);\n}\n\n/**\n * Returns an action object signalling that the user closed the sidebar.\n *\n * @yield {Object} Action object.\n */\nexport function* closeGeneralSidebar() {\n\tyield controls.dispatch(\n\t\tinterfaceStore,\n\t\t'disableComplementaryArea',\n\t\teditSiteStoreName\n\t);\n}\n"]}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
1
5
|
/**
|
|
2
6
|
* The identifier for the data store.
|
|
3
7
|
*
|
|
4
8
|
* @type {string}
|
|
5
9
|
*/
|
|
10
|
+
|
|
6
11
|
export const STORE_NAME = 'core/edit-site';
|
|
12
|
+
export const TEMPLATE_PART_AREA_HEADER = 'header';
|
|
13
|
+
export const TEMPLATE_PART_AREA_FOOTER = 'footer';
|
|
14
|
+
export const TEMPLATE_PART_AREA_SIDEBAR = 'sidebar';
|
|
15
|
+
export const TEMPLATE_PART_AREA_TO_NAME = {
|
|
16
|
+
[TEMPLATE_PART_AREA_HEADER]: __('Header'),
|
|
17
|
+
[TEMPLATE_PART_AREA_FOOTER]: __('Footer'),
|
|
18
|
+
[TEMPLATE_PART_AREA_SIDEBAR]: __('Sidebar')
|
|
19
|
+
};
|
|
7
20
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/store/constants.js"],"names":["STORE_NAME"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/store/constants.js"],"names":["__","STORE_NAME","TEMPLATE_PART_AREA_HEADER","TEMPLATE_PART_AREA_FOOTER","TEMPLATE_PART_AREA_SIDEBAR","TEMPLATE_PART_AREA_TO_NAME"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,UAAU,GAAG,gBAAnB;AAEP,OAAO,MAAMC,yBAAyB,GAAG,QAAlC;AACP,OAAO,MAAMC,yBAAyB,GAAG,QAAlC;AACP,OAAO,MAAMC,0BAA0B,GAAG,SAAnC;AAEP,OAAO,MAAMC,0BAA0B,GAAG;AACzC,GAAEH,yBAAF,GAA+BF,EAAE,CAAE,QAAF,CADQ;AAEzC,GAAEG,yBAAF,GAA+BH,EAAE,CAAE,QAAF,CAFQ;AAGzC,GAAEI,0BAAF,GAAgCJ,EAAE,CAAE,SAAF;AAHO,CAAnC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * The identifier for the data store.\n *\n * @type {string}\n */\nexport const STORE_NAME = 'core/edit-site';\n\nexport const TEMPLATE_PART_AREA_HEADER = 'header';\nexport const TEMPLATE_PART_AREA_FOOTER = 'footer';\nexport const TEMPLATE_PART_AREA_SIDEBAR = 'sidebar';\n\nexport const TEMPLATE_PART_AREA_TO_NAME = {\n\t[ TEMPLATE_PART_AREA_HEADER ]: __( 'Header' ),\n\t[ TEMPLATE_PART_AREA_FOOTER ]: __( 'Footer' ),\n\t[ TEMPLATE_PART_AREA_SIDEBAR ]: __( 'Sidebar' ),\n};\n"]}
|
|
@@ -72,27 +72,36 @@ export function settings(state = {}, action) {
|
|
|
72
72
|
* Reducer keeping track of the currently edited Post Type,
|
|
73
73
|
* Post Id and the context provided to fill the content of the block editor.
|
|
74
74
|
*
|
|
75
|
-
* @param {
|
|
75
|
+
* @param {Array} state Current state history.
|
|
76
76
|
* @param {Object} action Dispatched action.
|
|
77
77
|
*
|
|
78
|
-
* @return {
|
|
78
|
+
* @return {Array} Updated state.
|
|
79
79
|
*/
|
|
80
80
|
|
|
81
|
-
export function editedPost(state =
|
|
81
|
+
export function editedPost(state = [], action) {
|
|
82
82
|
switch (action.type) {
|
|
83
83
|
case 'SET_TEMPLATE':
|
|
84
84
|
case 'SET_PAGE':
|
|
85
|
-
return {
|
|
85
|
+
return [{
|
|
86
86
|
type: 'wp_template',
|
|
87
87
|
id: action.templateId,
|
|
88
88
|
page: action.page
|
|
89
|
-
};
|
|
89
|
+
}];
|
|
90
90
|
|
|
91
91
|
case 'SET_TEMPLATE_PART':
|
|
92
|
-
return {
|
|
92
|
+
return [{
|
|
93
93
|
type: 'wp_template_part',
|
|
94
94
|
id: action.templatePartId
|
|
95
|
-
};
|
|
95
|
+
}];
|
|
96
|
+
|
|
97
|
+
case 'PUSH_TEMPLATE_PART':
|
|
98
|
+
return [...state, {
|
|
99
|
+
type: 'wp_template_part',
|
|
100
|
+
id: action.templatePartId
|
|
101
|
+
}];
|
|
102
|
+
|
|
103
|
+
case 'GO_BACK':
|
|
104
|
+
return state.slice(0, -1);
|
|
96
105
|
}
|
|
97
106
|
|
|
98
107
|
return state;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/store/reducer.js"],"names":["combineReducers","PREFERENCES_DEFAULTS","MENU_ROOT","preferences","features","state","action","type","feature","deviceType","settings","editedPost","id","templateId","page","templatePartId","homeTemplateId","navigationPanel","menu","isOpen","value","blockInserterPanel","listViewPanel"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { PREFERENCES_DEFAULTS } from './defaults';\nimport { MENU_ROOT } from '../components/navigation-sidebar/navigation-panel/constants';\n\n/**\n * Reducer returning the user preferences.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n * @return {Object} Updated state.\n */\nexport const preferences = combineReducers( {\n\tfeatures( state = PREFERENCES_DEFAULTS.features, action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'TOGGLE_FEATURE': {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\t[ action.feature ]: ! state[ action.feature ],\n\t\t\t\t};\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn state;\n\t\t}\n\t},\n} );\n\n/**\n * Reducer returning the editing canvas device type.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function deviceType( state = 'Desktop', action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_PREVIEW_DEVICE_TYPE':\n\t\t\treturn action.deviceType;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the settings.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function settings( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'UPDATE_SETTINGS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t...action.settings,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer keeping track of the currently edited Post Type,\n * Post Id and the context provided to fill the content of the block editor.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function editedPost( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_TEMPLATE':\n\t\tcase 'SET_PAGE':\n\t\t\treturn {\n\t\t\t\ttype: 'wp_template',\n\t\t\t\tid: action.templateId,\n\t\t\t\tpage: action.page,\n\t\t\t};\n\t\tcase 'SET_TEMPLATE_PART':\n\t\t\treturn {\n\t\t\t\ttype: 'wp_template_part',\n\t\t\t\tid: action.templatePartId,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer for information about the site's homepage.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function homeTemplateId( state, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_HOME_TEMPLATE':\n\t\t\treturn action.homeTemplateId;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer for information about the navigation panel, such as its active menu\n * and whether it should be opened or closed.\n *\n * Note: this reducer interacts with the inserter and list view panels reducers\n * to make sure that only one of the three panels is open at the same time.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n */\nexport function navigationPanel(\n\tstate = { menu: MENU_ROOT, isOpen: false },\n\taction\n) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_NAVIGATION_PANEL_ACTIVE_MENU':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenu: action.menu,\n\t\t\t};\n\t\tcase 'OPEN_NAVIGATION_PANEL_TO_MENU':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisOpen: true,\n\t\t\t\tmenu: action.menu,\n\t\t\t};\n\t\tcase 'SET_IS_NAVIGATION_PANEL_OPENED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenu: ! action.isOpen ? MENU_ROOT : state.menu, // Set menu to root when closing panel.\n\t\t\t\tisOpen: action.isOpen,\n\t\t\t};\n\t\tcase 'SET_IS_LIST_VIEW_OPENED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenu: state.isOpen && action.isOpen ? MENU_ROOT : state.menu, // Set menu to root when closing panel.\n\t\t\t\tisOpen: action.isOpen ? false : state.isOpen,\n\t\t\t};\n\t\tcase 'SET_IS_INSERTER_OPENED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenu: state.isOpen && action.value ? MENU_ROOT : state.menu, // Set menu to root when closing panel.\n\t\t\t\tisOpen: action.value ? false : state.isOpen,\n\t\t\t};\n\t}\n\treturn state;\n}\n\n/**\n * Reducer to set the block inserter panel open or closed.\n *\n * Note: this reducer interacts with the navigation and list view panels reducers\n * to make sure that only one of the three panels is open at the same time.\n *\n * @param {boolean|Object} state Current state.\n * @param {Object} action Dispatched action.\n */\nexport function blockInserterPanel( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN_NAVIGATION_PANEL_TO_MENU':\n\t\t\treturn false;\n\t\tcase 'SET_IS_NAVIGATION_PANEL_OPENED':\n\t\tcase 'SET_IS_LIST_VIEW_OPENED':\n\t\t\treturn action.isOpen ? false : state;\n\t\tcase 'SET_IS_INSERTER_OPENED':\n\t\t\treturn action.value;\n\t}\n\treturn state;\n}\n\n/**\n * Reducer to set the list view panel open or closed.\n *\n * Note: this reducer interacts with the navigation and inserter panels reducers\n * to make sure that only one of the three panels is open at the same time.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n */\nexport function listViewPanel( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN_NAVIGATION_PANEL_TO_MENU':\n\t\t\treturn false;\n\t\tcase 'SET_IS_NAVIGATION_PANEL_OPENED':\n\t\t\treturn action.isOpen ? false : state;\n\t\tcase 'SET_IS_INSERTER_OPENED':\n\t\t\treturn action.value ? false : state;\n\t\tcase 'SET_IS_LIST_VIEW_OPENED':\n\t\t\treturn action.isOpen;\n\t}\n\treturn state;\n}\n\nexport default combineReducers( {\n\tpreferences,\n\tdeviceType,\n\tsettings,\n\teditedPost,\n\thomeTemplateId,\n\tnavigationPanel,\n\tblockInserterPanel,\n\tlistViewPanel,\n} );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/store/reducer.js"],"names":["combineReducers","PREFERENCES_DEFAULTS","MENU_ROOT","preferences","features","state","action","type","feature","deviceType","settings","editedPost","id","templateId","page","templatePartId","slice","homeTemplateId","navigationPanel","menu","isOpen","value","blockInserterPanel","listViewPanel"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { PREFERENCES_DEFAULTS } from './defaults';\nimport { MENU_ROOT } from '../components/navigation-sidebar/navigation-panel/constants';\n\n/**\n * Reducer returning the user preferences.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n * @return {Object} Updated state.\n */\nexport const preferences = combineReducers( {\n\tfeatures( state = PREFERENCES_DEFAULTS.features, action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'TOGGLE_FEATURE': {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\t[ action.feature ]: ! state[ action.feature ],\n\t\t\t\t};\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn state;\n\t\t}\n\t},\n} );\n\n/**\n * Reducer returning the editing canvas device type.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function deviceType( state = 'Desktop', action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_PREVIEW_DEVICE_TYPE':\n\t\t\treturn action.deviceType;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the settings.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function settings( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'UPDATE_SETTINGS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t...action.settings,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer keeping track of the currently edited Post Type,\n * Post Id and the context provided to fill the content of the block editor.\n *\n * @param {Array} state Current state history.\n * @param {Object} action Dispatched action.\n *\n * @return {Array} Updated state.\n */\nexport function editedPost( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_TEMPLATE':\n\t\tcase 'SET_PAGE':\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttype: 'wp_template',\n\t\t\t\t\tid: action.templateId,\n\t\t\t\t\tpage: action.page,\n\t\t\t\t},\n\t\t\t];\n\t\tcase 'SET_TEMPLATE_PART':\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttype: 'wp_template_part',\n\t\t\t\t\tid: action.templatePartId,\n\t\t\t\t},\n\t\t\t];\n\t\tcase 'PUSH_TEMPLATE_PART':\n\t\t\treturn [\n\t\t\t\t...state,\n\t\t\t\t{\n\t\t\t\t\ttype: 'wp_template_part',\n\t\t\t\t\tid: action.templatePartId,\n\t\t\t\t},\n\t\t\t];\n\t\tcase 'GO_BACK':\n\t\t\treturn state.slice( 0, -1 );\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer for information about the site's homepage.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function homeTemplateId( state, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_HOME_TEMPLATE':\n\t\t\treturn action.homeTemplateId;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer for information about the navigation panel, such as its active menu\n * and whether it should be opened or closed.\n *\n * Note: this reducer interacts with the inserter and list view panels reducers\n * to make sure that only one of the three panels is open at the same time.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n */\nexport function navigationPanel(\n\tstate = { menu: MENU_ROOT, isOpen: false },\n\taction\n) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_NAVIGATION_PANEL_ACTIVE_MENU':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenu: action.menu,\n\t\t\t};\n\t\tcase 'OPEN_NAVIGATION_PANEL_TO_MENU':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisOpen: true,\n\t\t\t\tmenu: action.menu,\n\t\t\t};\n\t\tcase 'SET_IS_NAVIGATION_PANEL_OPENED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenu: ! action.isOpen ? MENU_ROOT : state.menu, // Set menu to root when closing panel.\n\t\t\t\tisOpen: action.isOpen,\n\t\t\t};\n\t\tcase 'SET_IS_LIST_VIEW_OPENED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenu: state.isOpen && action.isOpen ? MENU_ROOT : state.menu, // Set menu to root when closing panel.\n\t\t\t\tisOpen: action.isOpen ? false : state.isOpen,\n\t\t\t};\n\t\tcase 'SET_IS_INSERTER_OPENED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenu: state.isOpen && action.value ? MENU_ROOT : state.menu, // Set menu to root when closing panel.\n\t\t\t\tisOpen: action.value ? false : state.isOpen,\n\t\t\t};\n\t}\n\treturn state;\n}\n\n/**\n * Reducer to set the block inserter panel open or closed.\n *\n * Note: this reducer interacts with the navigation and list view panels reducers\n * to make sure that only one of the three panels is open at the same time.\n *\n * @param {boolean|Object} state Current state.\n * @param {Object} action Dispatched action.\n */\nexport function blockInserterPanel( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN_NAVIGATION_PANEL_TO_MENU':\n\t\t\treturn false;\n\t\tcase 'SET_IS_NAVIGATION_PANEL_OPENED':\n\t\tcase 'SET_IS_LIST_VIEW_OPENED':\n\t\t\treturn action.isOpen ? false : state;\n\t\tcase 'SET_IS_INSERTER_OPENED':\n\t\t\treturn action.value;\n\t}\n\treturn state;\n}\n\n/**\n * Reducer to set the list view panel open or closed.\n *\n * Note: this reducer interacts with the navigation and inserter panels reducers\n * to make sure that only one of the three panels is open at the same time.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n */\nexport function listViewPanel( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN_NAVIGATION_PANEL_TO_MENU':\n\t\t\treturn false;\n\t\tcase 'SET_IS_NAVIGATION_PANEL_OPENED':\n\t\t\treturn action.isOpen ? false : state;\n\t\tcase 'SET_IS_INSERTER_OPENED':\n\t\t\treturn action.value ? false : state;\n\t\tcase 'SET_IS_LIST_VIEW_OPENED':\n\t\t\treturn action.isOpen;\n\t}\n\treturn state;\n}\n\nexport default combineReducers( {\n\tpreferences,\n\tdeviceType,\n\tsettings,\n\teditedPost,\n\thomeTemplateId,\n\tnavigationPanel,\n\tblockInserterPanel,\n\tlistViewPanel,\n} );\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { get, map } from 'lodash';
|
|
4
|
+
import { get, map, keyBy } from 'lodash';
|
|
5
5
|
import createSelector from 'rememo';
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -10,12 +10,17 @@ import createSelector from 'rememo';
|
|
|
10
10
|
import { store as coreDataStore } from '@wordpress/core-data';
|
|
11
11
|
import { createRegistrySelector } from '@wordpress/data';
|
|
12
12
|
import { uploadMedia } from '@wordpress/media-utils';
|
|
13
|
+
import { isTemplatePart } from '@wordpress/blocks';
|
|
13
14
|
/**
|
|
14
15
|
* Internal dependencies
|
|
15
16
|
*/
|
|
16
17
|
|
|
17
18
|
import { MENU_ROOT, MENU_TEMPLATE_PARTS, MENU_TEMPLATES_UNUSED, TEMPLATE_PARTS_SUB_MENUS } from '../components/navigation-sidebar/navigation-panel/constants';
|
|
18
19
|
import { getTemplateLocation, isTemplateSuperseded } from '../components/navigation-sidebar/navigation-panel/template-hierarchy';
|
|
20
|
+
/**
|
|
21
|
+
* @typedef {'template'|'template_type'} TemplateType Template type.
|
|
22
|
+
*/
|
|
23
|
+
|
|
19
24
|
/**
|
|
20
25
|
* Returns whether the given feature is enabled or not.
|
|
21
26
|
*
|
|
@@ -96,27 +101,58 @@ export const getSettings = createSelector((state, setIsInserterOpen) => {
|
|
|
96
101
|
export function getHomeTemplateId(state) {
|
|
97
102
|
return state.homeTemplateId;
|
|
98
103
|
}
|
|
104
|
+
|
|
105
|
+
function getCurrentEditedPost(state) {
|
|
106
|
+
return state.editedPost[state.editedPost.length - 1] || {};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function getPreviousEditedPost(state) {
|
|
110
|
+
return state.editedPost[state.editedPost.length - 2] || {};
|
|
111
|
+
}
|
|
99
112
|
/**
|
|
100
113
|
* Returns the current edited post type (wp_template or wp_template_part).
|
|
101
114
|
*
|
|
102
115
|
* @param {Object} state Global application state.
|
|
103
116
|
*
|
|
104
|
-
* @return {
|
|
117
|
+
* @return {TemplateType?} Template type.
|
|
105
118
|
*/
|
|
106
119
|
|
|
120
|
+
|
|
107
121
|
export function getEditedPostType(state) {
|
|
108
|
-
return state.
|
|
122
|
+
return getCurrentEditedPost(state).type;
|
|
109
123
|
}
|
|
110
124
|
/**
|
|
111
125
|
* Returns the ID of the currently edited template or template part.
|
|
112
126
|
*
|
|
113
127
|
* @param {Object} state Global application state.
|
|
114
128
|
*
|
|
115
|
-
* @return {
|
|
129
|
+
* @return {string?} Post ID.
|
|
116
130
|
*/
|
|
117
131
|
|
|
118
132
|
export function getEditedPostId(state) {
|
|
119
|
-
return state.
|
|
133
|
+
return getCurrentEditedPost(state).id;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Returns the previous edited post type (wp_template or wp_template_part).
|
|
137
|
+
*
|
|
138
|
+
* @param {Object} state Global application state.
|
|
139
|
+
*
|
|
140
|
+
* @return {TemplateType?} Template type.
|
|
141
|
+
*/
|
|
142
|
+
|
|
143
|
+
export function getPreviousEditedPostType(state) {
|
|
144
|
+
return getPreviousEditedPost(state).type;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Returns the ID of the previous edited template or template part.
|
|
148
|
+
*
|
|
149
|
+
* @param {Object} state Global application state.
|
|
150
|
+
*
|
|
151
|
+
* @return {string?} Post ID.
|
|
152
|
+
*/
|
|
153
|
+
|
|
154
|
+
export function getPreviousEditedPostId(state) {
|
|
155
|
+
return getPreviousEditedPost(state).id;
|
|
120
156
|
}
|
|
121
157
|
/**
|
|
122
158
|
* Returns the current page object.
|
|
@@ -127,7 +163,7 @@ export function getEditedPostId(state) {
|
|
|
127
163
|
*/
|
|
128
164
|
|
|
129
165
|
export function getPage(state) {
|
|
130
|
-
return state.
|
|
166
|
+
return getCurrentEditedPost(state).page;
|
|
131
167
|
}
|
|
132
168
|
/**
|
|
133
169
|
* Returns the active menu in the navigation panel.
|
|
@@ -202,17 +238,19 @@ export function isInserterOpened(state) {
|
|
|
202
238
|
*
|
|
203
239
|
* @param {Object} state Global application state.
|
|
204
240
|
*
|
|
205
|
-
* @return {Object} The root client ID
|
|
241
|
+
* @return {Object} The root client ID, index to insert at and starting filter value.
|
|
206
242
|
*/
|
|
207
243
|
|
|
208
244
|
export function __experimentalGetInsertionPoint(state) {
|
|
209
245
|
const {
|
|
210
246
|
rootClientId,
|
|
211
|
-
insertionIndex
|
|
247
|
+
insertionIndex,
|
|
248
|
+
filterValue
|
|
212
249
|
} = state.blockInserterPanel;
|
|
213
250
|
return {
|
|
214
251
|
rootClientId,
|
|
215
|
-
insertionIndex
|
|
252
|
+
insertionIndex,
|
|
253
|
+
filterValue
|
|
216
254
|
};
|
|
217
255
|
}
|
|
218
256
|
/**
|
|
@@ -226,4 +264,42 @@ export function __experimentalGetInsertionPoint(state) {
|
|
|
226
264
|
export function isListViewOpened(state) {
|
|
227
265
|
return state.listViewPanel;
|
|
228
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* Returns the template part blocks grouped by areas for the current edited template.
|
|
269
|
+
*
|
|
270
|
+
* @param {Object} state Global application state.
|
|
271
|
+
* @return {Object} Template part blocks by areas.
|
|
272
|
+
*/
|
|
273
|
+
|
|
274
|
+
export const getTemplateAreaBlocks = createRegistrySelector(select => state => {
|
|
275
|
+
const templateType = getEditedPostType(state);
|
|
276
|
+
const templateId = getEditedPostId(state);
|
|
277
|
+
const template = select(coreDataStore).getEditedEntityRecord('postType', templateType, templateId);
|
|
278
|
+
const templateParts = select(coreDataStore).getEntityRecords('postType', 'wp_template_part', {
|
|
279
|
+
per_page: -1
|
|
280
|
+
});
|
|
281
|
+
const templatePartsById = keyBy(templateParts, templatePart => templatePart.id);
|
|
282
|
+
const templatePartBlocksByAreas = {};
|
|
283
|
+
|
|
284
|
+
for (const block of (_template$blocks = template.blocks) !== null && _template$blocks !== void 0 ? _template$blocks : []) {
|
|
285
|
+
var _template$blocks;
|
|
286
|
+
|
|
287
|
+
if (isTemplatePart(block)) {
|
|
288
|
+
const {
|
|
289
|
+
attributes: {
|
|
290
|
+
theme,
|
|
291
|
+
slug
|
|
292
|
+
}
|
|
293
|
+
} = block;
|
|
294
|
+
const templatePartId = `${theme}//${slug}`;
|
|
295
|
+
const templatePart = templatePartsById[templatePartId];
|
|
296
|
+
|
|
297
|
+
if (templatePart) {
|
|
298
|
+
templatePartBlocksByAreas[templatePart.area] = block;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
return templatePartBlocksByAreas;
|
|
304
|
+
});
|
|
229
305
|
//# sourceMappingURL=selectors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/store/selectors.js"],"names":["get","map","createSelector","store","coreDataStore","createRegistrySelector","uploadMedia","MENU_ROOT","MENU_TEMPLATE_PARTS","MENU_TEMPLATES_UNUSED","TEMPLATE_PARTS_SUB_MENUS","getTemplateLocation","isTemplateSuperseded","isFeatureActive","state","feature","preferences","features","__experimentalGetPreviewDeviceType","deviceType","getCanUserCreateMedia","select","canUser","getSettings","setIsInserterOpen","settings","outlineMode","focusMode","hasFixedToolbar","__experimentalSetIsInserterOpened","canUserCreateMedia","mediaUpload","onError","rest","wpAllowedMimeTypes","allowedMimeTypes","message","getHomeTemplateId","homeTemplateId","getEditedPostType","editedPost","type","getEditedPostId","id","getPage","page","getNavigationPanelActiveMenu","navigationPanel","menu","getCurrentTemplateNavigationPanelSubMenu","templateType","templateId","template","getEntityRecord","find","submenu","area","templates","getEntityRecords","per_page","showOnFront","getEditedEntityRecord","show_on_front","slug","isNavigationOpened","isOpen","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","rootClientId","insertionIndex","isListViewOpened","listViewPanel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, map } from 'lodash';\nimport createSelector from 'rememo';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { createRegistrySelector } from '@wordpress/data';\nimport { uploadMedia } from '@wordpress/media-utils';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMENU_ROOT,\n\tMENU_TEMPLATE_PARTS,\n\tMENU_TEMPLATES_UNUSED,\n\tTEMPLATE_PARTS_SUB_MENUS,\n} from '../components/navigation-sidebar/navigation-panel/constants';\nimport {\n\tgetTemplateLocation,\n\tisTemplateSuperseded,\n} from '../components/navigation-sidebar/navigation-panel/template-hierarchy';\n\n/**\n * Returns whether the given feature is enabled or not.\n *\n * @param {Object} state Global application state.\n * @param {string} feature Feature slug.\n *\n * @return {boolean} Is active.\n */\nexport function isFeatureActive( state, feature ) {\n\treturn get( state.preferences.features, [ feature ], false );\n}\n\n/**\n * Returns the current editing canvas device type.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Device type.\n */\nexport function __experimentalGetPreviewDeviceType( state ) {\n\treturn state.deviceType;\n}\n\n/**\n * Returns whether the current user can create media or not.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Whether the current user can create media or not.\n */\nexport const getCanUserCreateMedia = createRegistrySelector( ( select ) => () =>\n\tselect( coreDataStore ).canUser( 'create', 'media' )\n);\n\n/**\n * Returns the settings, taking into account active features and permissions.\n *\n * @param {Object} state Global application state.\n * @param {Function} setIsInserterOpen Setter for the open state of the global inserter.\n *\n * @return {Object} Settings.\n */\nexport const getSettings = createSelector(\n\t( state, setIsInserterOpen ) => {\n\t\tconst settings = {\n\t\t\t...state.settings,\n\t\t\toutlineMode: true,\n\t\t\tfocusMode: isFeatureActive( state, 'focusMode' ),\n\t\t\thasFixedToolbar: isFeatureActive( state, 'fixedToolbar' ),\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpen,\n\t\t};\n\n\t\tconst canUserCreateMedia = getCanUserCreateMedia( state );\n\t\tif ( ! canUserCreateMedia ) {\n\t\t\treturn settings;\n\t\t}\n\n\t\tsettings.mediaUpload = ( { onError, ...rest } ) => {\n\t\t\tuploadMedia( {\n\t\t\t\twpAllowedMimeTypes: state.settings.allowedMimeTypes,\n\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t};\n\t\treturn settings;\n\t},\n\t( state ) => [\n\t\tgetCanUserCreateMedia( state ),\n\t\tstate.settings,\n\t\tisFeatureActive( state, 'focusMode' ),\n\t\tisFeatureActive( state, 'fixedToolbar' ),\n\t]\n);\n\n/**\n * Returns the current home template ID.\n *\n * @param {Object} state Global application state.\n *\n * @return {number?} Home template ID.\n */\nexport function getHomeTemplateId( state ) {\n\treturn state.homeTemplateId;\n}\n\n/**\n * Returns the current edited post type (wp_template or wp_template_part).\n *\n * @param {Object} state Global application state.\n *\n * @return {number?} Template ID.\n */\nexport function getEditedPostType( state ) {\n\treturn state.editedPost.type;\n}\n\n/**\n * Returns the ID of the currently edited template or template part.\n *\n * @param {Object} state Global application state.\n *\n * @return {number?} Post ID.\n */\nexport function getEditedPostId( state ) {\n\treturn state.editedPost.id;\n}\n\n/**\n * Returns the current page object.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Page.\n */\nexport function getPage( state ) {\n\treturn state.editedPost.page;\n}\n\n/**\n * Returns the active menu in the navigation panel.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Active menu.\n */\nexport function getNavigationPanelActiveMenu( state ) {\n\treturn state.navigationPanel.menu;\n}\n\n/**\n * Returns the current template or template part's corresponding\n * navigation panel's sub menu, to be used with `openNavigationPanelToMenu`.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} The current template or template part's sub menu.\n */\nexport const getCurrentTemplateNavigationPanelSubMenu = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst templateType = getEditedPostType( state );\n\t\tconst templateId = getEditedPostId( state );\n\t\tconst template = templateId\n\t\t\t? select( coreDataStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplateType,\n\t\t\t\t\ttemplateId\n\t\t\t )\n\t\t\t: null;\n\n\t\tif ( ! template ) {\n\t\t\treturn MENU_ROOT;\n\t\t}\n\n\t\tif ( 'wp_template_part' === templateType ) {\n\t\t\treturn (\n\t\t\t\tTEMPLATE_PARTS_SUB_MENUS.find(\n\t\t\t\t\t( submenu ) => submenu.area === template?.area\n\t\t\t\t)?.menu || MENU_TEMPLATE_PARTS\n\t\t\t);\n\t\t}\n\n\t\tconst templates = select( coreDataStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t);\n\t\tconst showOnFront = select( coreDataStore ).getEditedEntityRecord(\n\t\t\t'root',\n\t\t\t'site'\n\t\t).show_on_front;\n\n\t\tif (\n\t\t\tisTemplateSuperseded(\n\t\t\t\ttemplate.slug,\n\t\t\t\tmap( templates, 'slug' ),\n\t\t\t\tshowOnFront\n\t\t\t)\n\t\t) {\n\t\t\treturn MENU_TEMPLATES_UNUSED;\n\t\t}\n\n\t\treturn getTemplateLocation( template.slug );\n\t}\n);\n\n/**\n * Returns the current opened/closed state of the navigation panel.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} True if the navigation panel should be open; false if closed.\n */\nexport function isNavigationOpened( state ) {\n\treturn state.navigationPanel.isOpen;\n}\n\n/**\n * Returns the current opened/closed state of the inserter panel.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} True if the inserter panel should be open; false if closed.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID and index to insert at.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tconst { rootClientId, insertionIndex } = state.blockInserterPanel;\n\treturn { rootClientId, insertionIndex };\n}\n\n/**\n * Returns the current opened/closed state of the list view panel.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} True if the list view panel should be open; false if closed.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/store/selectors.js"],"names":["get","map","keyBy","createSelector","store","coreDataStore","createRegistrySelector","uploadMedia","isTemplatePart","MENU_ROOT","MENU_TEMPLATE_PARTS","MENU_TEMPLATES_UNUSED","TEMPLATE_PARTS_SUB_MENUS","getTemplateLocation","isTemplateSuperseded","isFeatureActive","state","feature","preferences","features","__experimentalGetPreviewDeviceType","deviceType","getCanUserCreateMedia","select","canUser","getSettings","setIsInserterOpen","settings","outlineMode","focusMode","hasFixedToolbar","__experimentalSetIsInserterOpened","canUserCreateMedia","mediaUpload","onError","rest","wpAllowedMimeTypes","allowedMimeTypes","message","getHomeTemplateId","homeTemplateId","getCurrentEditedPost","editedPost","length","getPreviousEditedPost","getEditedPostType","type","getEditedPostId","id","getPreviousEditedPostType","getPreviousEditedPostId","getPage","page","getNavigationPanelActiveMenu","navigationPanel","menu","getCurrentTemplateNavigationPanelSubMenu","templateType","templateId","template","getEntityRecord","find","submenu","area","templates","getEntityRecords","per_page","showOnFront","getEditedEntityRecord","show_on_front","slug","isNavigationOpened","isOpen","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","rootClientId","insertionIndex","filterValue","isListViewOpened","listViewPanel","getTemplateAreaBlocks","templateParts","templatePartsById","templatePart","templatePartBlocksByAreas","block","blocks","attributes","theme","templatePartId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, map, keyBy } from 'lodash';\nimport createSelector from 'rememo';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { createRegistrySelector } from '@wordpress/data';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { isTemplatePart } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMENU_ROOT,\n\tMENU_TEMPLATE_PARTS,\n\tMENU_TEMPLATES_UNUSED,\n\tTEMPLATE_PARTS_SUB_MENUS,\n} from '../components/navigation-sidebar/navigation-panel/constants';\nimport {\n\tgetTemplateLocation,\n\tisTemplateSuperseded,\n} from '../components/navigation-sidebar/navigation-panel/template-hierarchy';\n\n/**\n * @typedef {'template'|'template_type'} TemplateType Template type.\n */\n\n/**\n * Returns whether the given feature is enabled or not.\n *\n * @param {Object} state Global application state.\n * @param {string} feature Feature slug.\n *\n * @return {boolean} Is active.\n */\nexport function isFeatureActive( state, feature ) {\n\treturn get( state.preferences.features, [ feature ], false );\n}\n\n/**\n * Returns the current editing canvas device type.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Device type.\n */\nexport function __experimentalGetPreviewDeviceType( state ) {\n\treturn state.deviceType;\n}\n\n/**\n * Returns whether the current user can create media or not.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Whether the current user can create media or not.\n */\nexport const getCanUserCreateMedia = createRegistrySelector( ( select ) => () =>\n\tselect( coreDataStore ).canUser( 'create', 'media' )\n);\n\n/**\n * Returns the settings, taking into account active features and permissions.\n *\n * @param {Object} state Global application state.\n * @param {Function} setIsInserterOpen Setter for the open state of the global inserter.\n *\n * @return {Object} Settings.\n */\nexport const getSettings = createSelector(\n\t( state, setIsInserterOpen ) => {\n\t\tconst settings = {\n\t\t\t...state.settings,\n\t\t\toutlineMode: true,\n\t\t\tfocusMode: isFeatureActive( state, 'focusMode' ),\n\t\t\thasFixedToolbar: isFeatureActive( state, 'fixedToolbar' ),\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpen,\n\t\t};\n\n\t\tconst canUserCreateMedia = getCanUserCreateMedia( state );\n\t\tif ( ! canUserCreateMedia ) {\n\t\t\treturn settings;\n\t\t}\n\n\t\tsettings.mediaUpload = ( { onError, ...rest } ) => {\n\t\t\tuploadMedia( {\n\t\t\t\twpAllowedMimeTypes: state.settings.allowedMimeTypes,\n\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t};\n\t\treturn settings;\n\t},\n\t( state ) => [\n\t\tgetCanUserCreateMedia( state ),\n\t\tstate.settings,\n\t\tisFeatureActive( state, 'focusMode' ),\n\t\tisFeatureActive( state, 'fixedToolbar' ),\n\t]\n);\n\n/**\n * Returns the current home template ID.\n *\n * @param {Object} state Global application state.\n *\n * @return {number?} Home template ID.\n */\nexport function getHomeTemplateId( state ) {\n\treturn state.homeTemplateId;\n}\n\nfunction getCurrentEditedPost( state ) {\n\treturn state.editedPost[ state.editedPost.length - 1 ] || {};\n}\n\nfunction getPreviousEditedPost( state ) {\n\treturn state.editedPost[ state.editedPost.length - 2 ] || {};\n}\n\n/**\n * Returns the current edited post type (wp_template or wp_template_part).\n *\n * @param {Object} state Global application state.\n *\n * @return {TemplateType?} Template type.\n */\nexport function getEditedPostType( state ) {\n\treturn getCurrentEditedPost( state ).type;\n}\n\n/**\n * Returns the ID of the currently edited template or template part.\n *\n * @param {Object} state Global application state.\n *\n * @return {string?} Post ID.\n */\nexport function getEditedPostId( state ) {\n\treturn getCurrentEditedPost( state ).id;\n}\n\n/**\n * Returns the previous edited post type (wp_template or wp_template_part).\n *\n * @param {Object} state Global application state.\n *\n * @return {TemplateType?} Template type.\n */\nexport function getPreviousEditedPostType( state ) {\n\treturn getPreviousEditedPost( state ).type;\n}\n\n/**\n * Returns the ID of the previous edited template or template part.\n *\n * @param {Object} state Global application state.\n *\n * @return {string?} Post ID.\n */\nexport function getPreviousEditedPostId( state ) {\n\treturn getPreviousEditedPost( state ).id;\n}\n\n/**\n * Returns the current page object.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Page.\n */\nexport function getPage( state ) {\n\treturn getCurrentEditedPost( state ).page;\n}\n\n/**\n * Returns the active menu in the navigation panel.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Active menu.\n */\nexport function getNavigationPanelActiveMenu( state ) {\n\treturn state.navigationPanel.menu;\n}\n\n/**\n * Returns the current template or template part's corresponding\n * navigation panel's sub menu, to be used with `openNavigationPanelToMenu`.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} The current template or template part's sub menu.\n */\nexport const getCurrentTemplateNavigationPanelSubMenu = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst templateType = getEditedPostType( state );\n\t\tconst templateId = getEditedPostId( state );\n\t\tconst template = templateId\n\t\t\t? select( coreDataStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplateType,\n\t\t\t\t\ttemplateId\n\t\t\t )\n\t\t\t: null;\n\n\t\tif ( ! template ) {\n\t\t\treturn MENU_ROOT;\n\t\t}\n\n\t\tif ( 'wp_template_part' === templateType ) {\n\t\t\treturn (\n\t\t\t\tTEMPLATE_PARTS_SUB_MENUS.find(\n\t\t\t\t\t( submenu ) => submenu.area === template?.area\n\t\t\t\t)?.menu || MENU_TEMPLATE_PARTS\n\t\t\t);\n\t\t}\n\n\t\tconst templates = select( coreDataStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t);\n\t\tconst showOnFront = select( coreDataStore ).getEditedEntityRecord(\n\t\t\t'root',\n\t\t\t'site'\n\t\t).show_on_front;\n\n\t\tif (\n\t\t\tisTemplateSuperseded(\n\t\t\t\ttemplate.slug,\n\t\t\t\tmap( templates, 'slug' ),\n\t\t\t\tshowOnFront\n\t\t\t)\n\t\t) {\n\t\t\treturn MENU_TEMPLATES_UNUSED;\n\t\t}\n\n\t\treturn getTemplateLocation( template.slug );\n\t}\n);\n\n/**\n * Returns the current opened/closed state of the navigation panel.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} True if the navigation panel should be open; false if closed.\n */\nexport function isNavigationOpened( state ) {\n\treturn state.navigationPanel.isOpen;\n}\n\n/**\n * Returns the current opened/closed state of the inserter panel.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} True if the inserter panel should be open; false if closed.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tconst {\n\t\trootClientId,\n\t\tinsertionIndex,\n\t\tfilterValue,\n\t} = state.blockInserterPanel;\n\treturn { rootClientId, insertionIndex, filterValue };\n}\n\n/**\n * Returns the current opened/closed state of the list view panel.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} True if the list view panel should be open; false if closed.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n\n/**\n * Returns the template part blocks grouped by areas for the current edited template.\n *\n * @param {Object} state Global application state.\n * @return {Object} Template part blocks by areas.\n */\nexport const getTemplateAreaBlocks = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst templateType = getEditedPostType( state );\n\t\tconst templateId = getEditedPostId( state );\n\t\tconst template = select( coreDataStore ).getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\ttemplateType,\n\t\t\ttemplateId\n\t\t);\n\n\t\tconst templateParts = select( coreDataStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t);\n\t\tconst templatePartsById = keyBy(\n\t\t\ttemplateParts,\n\t\t\t( templatePart ) => templatePart.id\n\t\t);\n\n\t\tconst templatePartBlocksByAreas = {};\n\n\t\tfor ( const block of template.blocks ?? [] ) {\n\t\t\tif ( isTemplatePart( block ) ) {\n\t\t\t\tconst {\n\t\t\t\t\tattributes: { theme, slug },\n\t\t\t\t} = block;\n\t\t\t\tconst templatePartId = `${ theme }//${ slug }`;\n\t\t\t\tconst templatePart = templatePartsById[ templatePartId ];\n\n\t\t\t\tif ( templatePart ) {\n\t\t\t\t\ttemplatePartBlocksByAreas[ templatePart.area ] = block;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn templatePartBlocksByAreas;\n\t}\n);\n"]}
|