@wordpress/edit-site 5.31.0 → 5.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/block-editor/editor-canvas.js +8 -1
- package/build/components/block-editor/editor-canvas.js.map +1 -1
- package/build/components/block-editor/site-editor-canvas.js +15 -4
- package/build/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build/components/editor/index.js +12 -3
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor-canvas-container/index.js +1 -2
- package/build/components/editor-canvas-container/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +38 -0
- package/build/components/global-styles/background-panel.js.map +1 -0
- package/build/components/global-styles/font-families.js +1 -1
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +38 -9
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js +20 -2
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/palette.js +3 -1
- package/build/components/global-styles/palette.js.map +1 -1
- package/build/components/global-styles/preview-colors.js +2 -2
- package/build/components/global-styles/preview-colors.js.map +1 -1
- package/build/components/global-styles/root-menu.js +8 -2
- package/build/components/global-styles/root-menu.js.map +1 -1
- package/build/components/global-styles/screen-background.js +34 -0
- package/build/components/global-styles/screen-background.js.map +1 -0
- package/build/components/global-styles/screen-color-palette.js +2 -2
- package/build/components/global-styles/screen-color-palette.js.map +1 -1
- package/build/components/global-styles/screen-colors.js +6 -4
- package/build/components/global-styles/screen-colors.js.map +1 -1
- package/build/components/global-styles/screen-style-variations.js +3 -37
- package/build/components/global-styles/screen-style-variations.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +6 -6
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/style-variations-container.js +5 -2
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/ui.js +4 -1
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/variations/variations-color.js +10 -3
- package/build/components/global-styles/variations/variations-color.js.map +1 -1
- package/build/components/global-styles/variations/variations-typography.js +9 -2
- package/build/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +3 -0
- package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build/components/layout/animation.js +129 -0
- package/build/components/layout/animation.js.map +1 -0
- package/build/components/layout/index.js +9 -17
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/router.js +21 -18
- package/build/components/layout/router.js.map +1 -1
- package/build/components/page-pages/index.js +19 -17
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-patterns/index.js +18 -28
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/search-items.js +16 -58
- package/build/components/page-patterns/search-items.js.map +1 -1
- package/build/components/page-templates-template-parts/actions.js +54 -41
- package/build/components/page-templates-template-parts/actions.js.map +1 -1
- package/build/components/page-templates-template-parts/index.js +26 -59
- package/build/components/page-templates-template-parts/index.js.map +1 -1
- package/build/components/plugin-template-setting-panel/index.js +12 -1
- package/build/components/plugin-template-setting-panel/index.js.map +1 -1
- package/build/components/save-button/index.js +45 -16
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/save-hub/index.js +8 -112
- package/build/components/save-hub/index.js.map +1 -1
- package/build/components/sidebar/index.js +1 -5
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +1 -1
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +1 -1
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/index.js +1 -2
- package/build/components/sidebar-edit-mode/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/index.js +5 -15
- package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
- package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/index.js +10 -16
- package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-footer/index.js +5 -1
- package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.js +10 -5
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +1 -5
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/style-book/index.js +1 -1
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
- package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build/hooks/index.js +0 -1
- package/build/hooks/index.js.map +1 -1
- package/build/store/selectors.js +1 -9
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-editor/editor-canvas.js +8 -1
- package/build-module/components/block-editor/editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/site-editor-canvas.js +15 -4
- package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build-module/components/editor/index.js +13 -4
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/editor-canvas-container/index.js +1 -2
- package/build-module/components/editor-canvas-container/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +31 -0
- package/build-module/components/global-styles/background-panel.js.map +1 -0
- package/build-module/components/global-styles/font-families.js +1 -1
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +38 -9
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js +20 -2
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/palette.js +3 -1
- package/build-module/components/global-styles/palette.js.map +1 -1
- package/build-module/components/global-styles/preview-colors.js +2 -2
- package/build-module/components/global-styles/preview-colors.js.map +1 -1
- package/build-module/components/global-styles/root-menu.js +9 -3
- package/build-module/components/global-styles/root-menu.js.map +1 -1
- package/build-module/components/global-styles/screen-background.js +26 -0
- package/build-module/components/global-styles/screen-background.js.map +1 -0
- package/build-module/components/global-styles/screen-color-palette.js +2 -2
- package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
- package/build-module/components/global-styles/screen-colors.js +6 -4
- package/build-module/components/global-styles/screen-colors.js.map +1 -1
- package/build-module/components/global-styles/screen-style-variations.js +4 -38
- package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +6 -6
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/style-variations-container.js +5 -2
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/ui.js +4 -1
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-color.js +10 -3
- package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-typography.js +9 -2
- package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +3 -0
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build-module/components/layout/animation.js +122 -0
- package/build-module/components/layout/animation.js.map +1 -0
- package/build-module/components/layout/index.js +9 -17
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/router.js +21 -18
- package/build-module/components/layout/router.js.map +1 -1
- package/build-module/components/page-pages/index.js +19 -17
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/index.js +20 -30
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/search-items.js +14 -55
- package/build-module/components/page-patterns/search-items.js.map +1 -1
- package/build-module/components/page-templates-template-parts/actions.js +54 -40
- package/build-module/components/page-templates-template-parts/actions.js.map +1 -1
- package/build-module/components/page-templates-template-parts/index.js +29 -62
- package/build-module/components/page-templates-template-parts/index.js.map +1 -1
- package/build-module/components/plugin-template-setting-panel/index.js +12 -1
- package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
- package/build-module/components/save-button/index.js +46 -17
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/save-hub/index.js +10 -114
- package/build-module/components/save-hub/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +1 -5
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +1 -1
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/index.js +1 -2
- package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/index.js +8 -18
- package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
- package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/index.js +11 -17
- package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-footer/index.js +5 -1
- package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js +10 -5
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js +1 -5
- package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build-module/components/style-book/index.js +1 -1
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build-module/hooks/index.js +0 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/store/selectors.js +1 -9
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +116 -104
- package/build-style/style.css +116 -104
- package/package.json +44 -44
- package/src/components/block-editor/editor-canvas.js +14 -2
- package/src/components/block-editor/site-editor-canvas.js +10 -7
- package/src/components/editor/index.js +11 -4
- package/src/components/editor-canvas-container/index.js +0 -1
- package/src/components/global-styles/background-panel.js +34 -0
- package/src/components/global-styles/font-families.js +1 -1
- package/src/components/global-styles/font-library-modal/context.js +43 -14
- package/src/components/global-styles/font-library-modal/style.scss +1 -1
- package/src/components/global-styles/font-library-modal/utils/index.js +17 -4
- package/src/components/global-styles/palette.js +3 -1
- package/src/components/global-styles/preview-colors.js +2 -2
- package/src/components/global-styles/root-menu.js +12 -1
- package/src/components/global-styles/screen-background.js +29 -0
- package/src/components/global-styles/screen-color-palette.js +2 -2
- package/src/components/global-styles/screen-colors.js +4 -4
- package/src/components/global-styles/screen-style-variations.js +4 -36
- package/src/components/global-styles/screen-typography.js +6 -9
- package/src/components/global-styles/style-variations-container.js +2 -1
- package/src/components/global-styles/style.scss +14 -12
- package/src/components/global-styles/ui.js +5 -0
- package/src/components/global-styles/variations/style.scss +32 -17
- package/src/components/global-styles/variations/variations-color.js +4 -2
- package/src/components/global-styles/variations/variations-typography.js +4 -1
- package/src/components/header-edit-mode/style.scss +28 -17
- package/src/components/keyboard-shortcut-help-modal/index.js +4 -0
- package/src/components/layout/animation.js +122 -0
- package/src/components/layout/index.js +12 -27
- package/src/components/layout/router.js +25 -19
- package/src/components/layout/style.scss +2 -0
- package/src/components/page-pages/index.js +27 -43
- package/src/components/page-patterns/index.js +20 -28
- package/src/components/page-patterns/search-items.js +13 -58
- package/src/components/page-templates-template-parts/actions.js +106 -91
- package/src/components/page-templates-template-parts/index.js +34 -78
- package/src/components/page-templates-template-parts/style.scss +5 -0
- package/src/components/plugin-template-setting-panel/index.js +14 -1
- package/src/components/save-button/index.js +55 -26
- package/src/components/save-hub/index.js +20 -164
- package/src/components/sidebar/index.js +0 -5
- package/src/components/sidebar-dataviews/default-views.js +1 -1
- package/src/components/sidebar-dataviews/index.js +1 -1
- package/src/components/sidebar-edit-mode/index.js +0 -2
- package/src/components/sidebar-edit-mode/page-panels/index.js +29 -60
- package/src/components/sidebar-edit-mode/page-panels/page-content.js +10 -10
- package/src/components/sidebar-edit-mode/template-panel/index.js +23 -33
- package/src/components/sidebar-edit-mode/template-panel/style.scss +1 -29
- package/src/components/sidebar-navigation-screen/style.scss +12 -9
- package/src/components/sidebar-navigation-screen-details-footer/index.js +6 -2
- package/src/components/sidebar-navigation-screen-global-styles/index.js +7 -13
- package/src/components/sidebar-navigation-screen-patterns/index.js +0 -7
- package/src/components/style-book/index.js +1 -3
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
- package/src/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
- package/src/hooks/index.js +0 -1
- package/src/store/selectors.js +3 -15
- package/src/style.scss +0 -1
- package/build/components/actions/index.js +0 -319
- package/build/components/actions/index.js.map +0 -1
- package/build/components/sidebar-edit-mode/sidebar-card/index.js +0 -48
- package/build/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
- package/build/components/sidebar-edit-mode/template-panel/template-areas.js +0 -70
- package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
- package/build/components/sidebar-navigation-screen-pages/index.js +0 -175
- package/build/components/sidebar-navigation-screen-pages/index.js.map +0 -1
- package/build/hooks/template-part-edit.js +0 -82
- package/build/hooks/template-part-edit.js.map +0 -1
- package/build/store/utils.js +0 -71
- package/build/store/utils.js.map +0 -1
- package/build-module/components/actions/index.js +0 -308
- package/build-module/components/actions/index.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/sidebar-card/index.js +0 -40
- package/build-module/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +0 -63
- package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
- package/build-module/components/sidebar-navigation-screen-pages/index.js +0 -167
- package/build-module/components/sidebar-navigation-screen-pages/index.js.map +0 -1
- package/build-module/hooks/template-part-edit.js +0 -75
- package/build-module/hooks/template-part-edit.js.map +0 -1
- package/build-module/store/utils.js +0 -64
- package/build-module/store/utils.js.map +0 -1
- package/src/components/actions/index.js +0 -409
- package/src/components/sidebar-edit-mode/sidebar-card/index.js +0 -53
- package/src/components/sidebar-edit-mode/sidebar-card/style.scss +0 -36
- package/src/components/sidebar-edit-mode/template-panel/template-areas.js +0 -86
- package/src/components/sidebar-navigation-screen-pages/index.js +0 -238
- package/src/hooks/template-part-edit.js +0 -89
- package/src/store/test/utils.js +0 -191
- package/src/store/utils.js +0 -69
|
@@ -2,10 +2,9 @@ import { createElement } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
|
-
import { backup, trash } from '@wordpress/icons';
|
|
6
5
|
import { __, sprintf, _n } from '@wordpress/i18n';
|
|
7
6
|
import { useDispatch } from '@wordpress/data';
|
|
8
|
-
import {
|
|
7
|
+
import { useState } from '@wordpress/element';
|
|
9
8
|
import { store as coreStore } from '@wordpress/core-data';
|
|
10
9
|
import { store as noticesStore } from '@wordpress/notices';
|
|
11
10
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
@@ -19,58 +18,74 @@ import { store as editSiteStore } from '../../store';
|
|
|
19
18
|
import isTemplateRevertable from '../../utils/is-template-revertable';
|
|
20
19
|
import isTemplateRemovable from '../../utils/is-template-removable';
|
|
21
20
|
import { TEMPLATE_POST_TYPE } from '../../utils/constants';
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
21
|
+
export const resetTemplateAction = {
|
|
22
|
+
id: 'reset-template',
|
|
23
|
+
label: __('Clear customizations'),
|
|
24
|
+
isEligible: isTemplateRevertable,
|
|
25
|
+
supportsBulk: true,
|
|
26
|
+
hideModalHeader: true,
|
|
27
|
+
RenderModal: ({
|
|
28
|
+
items,
|
|
29
|
+
closeModal,
|
|
30
|
+
onPerform
|
|
31
|
+
}) => {
|
|
32
|
+
const {
|
|
33
|
+
revertTemplate
|
|
34
|
+
} = useDispatch(editSiteStore);
|
|
35
|
+
const {
|
|
36
|
+
saveEditedEntityRecord
|
|
37
|
+
} = useDispatch(coreStore);
|
|
38
|
+
const {
|
|
39
|
+
createSuccessNotice,
|
|
40
|
+
createErrorNotice
|
|
41
|
+
} = useDispatch(noticesStore);
|
|
42
|
+
const onConfirm = async () => {
|
|
41
43
|
try {
|
|
42
|
-
for (const template of
|
|
44
|
+
for (const template of items) {
|
|
43
45
|
await revertTemplate(template, {
|
|
44
46
|
allowUndo: false
|
|
45
47
|
});
|
|
46
48
|
await saveEditedEntityRecord('postType', template.type, template.id);
|
|
47
49
|
}
|
|
48
|
-
createSuccessNotice(
|
|
49
|
-
__('%s items reverted.'),
|
|
50
|
-
__('"%s" reverted.'), decodeEntities(
|
|
50
|
+
createSuccessNotice(items.length > 1 ? sprintf( /* translators: The number of items. */
|
|
51
|
+
__('%s items reverted.'), items.length) : sprintf( /* translators: The template/part's name. */
|
|
52
|
+
__('"%s" reverted.'), decodeEntities(items[0].title.rendered)), {
|
|
51
53
|
type: 'snackbar',
|
|
52
54
|
id: 'edit-site-template-reverted'
|
|
53
55
|
});
|
|
54
56
|
} catch (error) {
|
|
55
57
|
let fallbackErrorMessage;
|
|
56
|
-
if (
|
|
57
|
-
fallbackErrorMessage =
|
|
58
|
+
if (items[0].type === TEMPLATE_POST_TYPE) {
|
|
59
|
+
fallbackErrorMessage = items.length === 1 ? __('An error occurred while reverting the template.') : __('An error occurred while reverting the templates.');
|
|
58
60
|
} else {
|
|
59
|
-
fallbackErrorMessage =
|
|
61
|
+
fallbackErrorMessage = items.length === 1 ? __('An error occurred while reverting the template part.') : __('An error occurred while reverting the template parts.');
|
|
60
62
|
}
|
|
61
63
|
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : fallbackErrorMessage;
|
|
62
64
|
createErrorNotice(errorMessage, {
|
|
63
65
|
type: 'snackbar'
|
|
64
66
|
});
|
|
65
67
|
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
};
|
|
69
|
+
return createElement(VStack, {
|
|
70
|
+
spacing: "5"
|
|
71
|
+
}, createElement(Text, null, __('Are you sure you want to clear these customizations?')), createElement(HStack, {
|
|
72
|
+
justify: "right"
|
|
73
|
+
}, createElement(Button, {
|
|
74
|
+
variant: "tertiary",
|
|
75
|
+
onClick: closeModal
|
|
76
|
+
}, __('Cancel')), createElement(Button, {
|
|
77
|
+
variant: "primary",
|
|
78
|
+
onClick: async () => {
|
|
79
|
+
await onConfirm(items);
|
|
80
|
+
onPerform?.();
|
|
81
|
+
closeModal();
|
|
82
|
+
}
|
|
83
|
+
}, __('Clear'))));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
69
86
|
export const deleteTemplateAction = {
|
|
70
87
|
id: 'delete-template',
|
|
71
88
|
label: __('Delete'),
|
|
72
|
-
isPrimary: true,
|
|
73
|
-
icon: trash,
|
|
74
89
|
isEligible: isTemplateRemovable,
|
|
75
90
|
supportsBulk: true,
|
|
76
91
|
hideModalHeader: true,
|
|
@@ -99,9 +114,7 @@ export const deleteTemplateAction = {
|
|
|
99
114
|
await removeTemplates(templates, {
|
|
100
115
|
allowUndo: false
|
|
101
116
|
});
|
|
102
|
-
|
|
103
|
-
onPerform();
|
|
104
|
-
}
|
|
117
|
+
onPerform?.();
|
|
105
118
|
closeModal();
|
|
106
119
|
}
|
|
107
120
|
}, __('Delete'))));
|
|
@@ -148,8 +161,6 @@ export const renameTemplateAction = {
|
|
|
148
161
|
{
|
|
149
162
|
throwOnError: true
|
|
150
163
|
});
|
|
151
|
-
// TODO: this action will be reused in template parts list, so
|
|
152
|
-
// let's keep this for a bit, even it's always a `template` now.
|
|
153
164
|
createSuccessNotice(template.type === TEMPLATE_POST_TYPE ? __('Template renamed.') : __('Template part renamed.'), {
|
|
154
165
|
type: 'snackbar'
|
|
155
166
|
});
|
|
@@ -167,6 +178,7 @@ export const renameTemplateAction = {
|
|
|
167
178
|
spacing: "5"
|
|
168
179
|
}, createElement(TextControl, {
|
|
169
180
|
__nextHasNoMarginBottom: true,
|
|
181
|
+
__next40pxDefaultSize: true,
|
|
170
182
|
label: __('Name'),
|
|
171
183
|
value: editedTitle,
|
|
172
184
|
onChange: setEditedTitle,
|
|
@@ -175,10 +187,12 @@ export const renameTemplateAction = {
|
|
|
175
187
|
justify: "right"
|
|
176
188
|
}, createElement(Button, {
|
|
177
189
|
variant: "tertiary",
|
|
178
|
-
onClick: closeModal
|
|
190
|
+
onClick: closeModal,
|
|
191
|
+
__next40pxDefaultSize: true
|
|
179
192
|
}, __('Cancel')), createElement(Button, {
|
|
180
193
|
variant: "primary",
|
|
181
|
-
type: "submit"
|
|
194
|
+
type: "submit",
|
|
195
|
+
__next40pxDefaultSize: true
|
|
182
196
|
}, __('Save')))));
|
|
183
197
|
}
|
|
184
198
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["backup","trash","__","sprintf","_n","useDispatch","useMemo","useState","store","coreStore","noticesStore","decodeEntities","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","unlock","editSiteStore","isTemplateRevertable","isTemplateRemovable","TEMPLATE_POST_TYPE","useResetTemplateAction","revertTemplate","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","id","label","isPrimary","icon","isEligible","supportsBulk","callback","templates","template","allowUndo","type","length","title","rendered","error","fallbackErrorMessage","errorMessage","message","code","deleteTemplateAction","hideModalHeader","RenderModal","items","closeModal","onPerform","removeTemplates","createElement","spacing","justify","variant","onClick","renameTemplateAction","is_custom","editedTitle","setEditedTitle","editEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","event","preventDefault","throwOnError","onSubmit","__nextHasNoMarginBottom","value","onChange","required"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { backup, trash } from '@wordpress/icons';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport function useResetTemplateAction() {\n\tconst { revertTemplate } = useDispatch( editSiteStore );\n\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'reset-template',\n\t\t\tlabel: __( 'Reset' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tisEligible: isTemplateRevertable,\n\t\t\tsupportsBulk: true,\n\t\t\tasync callback( templates ) {\n\t\t\t\ttry {\n\t\t\t\t\tfor ( const template of templates ) {\n\t\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\ttemplates.length > 1\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t__( '%s items reverted.' ),\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t\t__( '\"%s\" reverted.' ),\n\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\ttemplates[ 0 ].title.rendered\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\t\tif ( templates[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t}\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateErrorNotice,\n\t\t\tcreateSuccessNotice,\n\t\t\trevertTemplate,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n\nexport const deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible: isTemplateRemovable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items: templates, closeModal, onPerform } ) => {\n\t\tconst { removeTemplates } = unlock( useDispatch( editSiteStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait removeTemplates( templates, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tif ( onPerform ) {\n\t\t\t\t\t\t\t\tonPerform();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// TODO: this action will be reused in template parts list, so\n\t\t\t\t// let's keep this for a bit, even it's always a `template` now.\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["__","sprintf","_n","useDispatch","useState","store","coreStore","noticesStore","decodeEntities","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","unlock","editSiteStore","isTemplateRevertable","isTemplateRemovable","TEMPLATE_POST_TYPE","resetTemplateAction","id","label","isEligible","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onPerform","revertTemplate","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","onConfirm","template","allowUndo","type","length","title","rendered","error","fallbackErrorMessage","errorMessage","message","code","createElement","spacing","justify","variant","onClick","deleteTemplateAction","templates","removeTemplates","renameTemplateAction","is_custom","editedTitle","setEditedTitle","editEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","event","preventDefault","throwOnError","onSubmit","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport const resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Clear customizations' ),\n\tisEligible: isTemplateRevertable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items, closeModal, onPerform } ) => {\n\t\tconst { revertTemplate } = useDispatch( editSiteStore );\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t} );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t__( '%s items reverted.' ),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t__( '\"%s\" reverted.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( items[ 0 ].title.rendered )\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Are you sure you want to clear these customizations?'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonPerform?.();\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisEligible: isTemplateRemovable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items: templates, closeModal, onPerform } ) => {\n\t\tconst { removeTemplates } = unlock( useDispatch( editSiteStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait removeTemplates( templates, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonPerform?.();\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n"],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { createElement, Fragment } from "react";
|
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
5
|
import classnames from 'classnames';
|
|
6
|
-
import removeAccents from 'remove-accents';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* WordPress dependencies
|
|
@@ -15,8 +14,9 @@ import { useEntityRecords } from '@wordpress/core-data';
|
|
|
15
14
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
16
15
|
import { parse } from '@wordpress/blocks';
|
|
17
16
|
import { BlockPreview, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
18
|
-
import { DataViews,
|
|
17
|
+
import { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';
|
|
19
18
|
import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
19
|
+
import { privateApis as editorPrivateApis } from '@wordpress/editor';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Internal dependencies
|
|
@@ -25,12 +25,14 @@ import Page from '../page';
|
|
|
25
25
|
import { default as Link, useLink } from '../routes/link';
|
|
26
26
|
import AddNewTemplate from '../add-new-template';
|
|
27
27
|
import { useAddedBy } from './hooks';
|
|
28
|
-
import { TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, ENUMERATION_TYPE, OPERATOR_IS_ANY,
|
|
29
|
-
import {
|
|
30
|
-
import { postRevisionsAction } from '../actions';
|
|
28
|
+
import { TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, ENUMERATION_TYPE, OPERATOR_IS_ANY, LAYOUT_GRID, LAYOUT_TABLE, LAYOUT_LIST } from '../../utils/constants';
|
|
29
|
+
import { resetTemplateAction, deleteTemplateAction, renameTemplateAction } from './actions';
|
|
31
30
|
import usePatternSettings from '../page-patterns/use-pattern-settings';
|
|
32
31
|
import { unlock } from '../../lock-unlock';
|
|
33
32
|
import AddNewTemplatePart from './add-new-template-part';
|
|
33
|
+
const {
|
|
34
|
+
usePostActions
|
|
35
|
+
} = unlock(editorPrivateApis);
|
|
34
36
|
const {
|
|
35
37
|
ExperimentalBlockEditorProvider,
|
|
36
38
|
useGlobalStyle
|
|
@@ -46,7 +48,8 @@ const defaultConfigPerViewType = {
|
|
|
46
48
|
},
|
|
47
49
|
[LAYOUT_GRID]: {
|
|
48
50
|
mediaField: 'preview',
|
|
49
|
-
primaryField: 'title'
|
|
51
|
+
primaryField: 'title',
|
|
52
|
+
displayAsColumnFields: ['description']
|
|
50
53
|
},
|
|
51
54
|
[LAYOUT_LIST]: {
|
|
52
55
|
primaryField: 'title',
|
|
@@ -68,9 +71,6 @@ const DEFAULT_VIEW = {
|
|
|
68
71
|
layout: defaultConfigPerViewType[LAYOUT_TABLE],
|
|
69
72
|
filters: []
|
|
70
73
|
};
|
|
71
|
-
function normalizeSearchInput(input = '') {
|
|
72
|
-
return removeAccents(input.trim().toLowerCase());
|
|
73
|
-
}
|
|
74
74
|
function Title({
|
|
75
75
|
item,
|
|
76
76
|
viewType
|
|
@@ -120,7 +120,9 @@ function AuthorField({
|
|
|
120
120
|
className: "page-templates-author-field__icon"
|
|
121
121
|
}, createElement(Icon, {
|
|
122
122
|
icon: icon
|
|
123
|
-
})), createElement("span",
|
|
123
|
+
})), createElement("span", {
|
|
124
|
+
className: "page-templates-author-field__name"
|
|
125
|
+
}, text));
|
|
124
126
|
}
|
|
125
127
|
function Preview({
|
|
126
128
|
item,
|
|
@@ -254,7 +256,8 @@ export default function PageTemplatesTemplateParts({
|
|
|
254
256
|
viewType: view.type
|
|
255
257
|
}),
|
|
256
258
|
maxWidth: 400,
|
|
257
|
-
enableHiding: false
|
|
259
|
+
enableHiding: false,
|
|
260
|
+
enableGlobalSearch: true
|
|
258
261
|
}];
|
|
259
262
|
if (postType === TEMPLATE_POST_TYPE) {
|
|
260
263
|
_fields.push({
|
|
@@ -272,7 +275,8 @@ export default function PageTemplatesTemplateParts({
|
|
|
272
275
|
},
|
|
273
276
|
maxWidth: 400,
|
|
274
277
|
minWidth: 320,
|
|
275
|
-
enableSorting: false
|
|
278
|
+
enableSorting: false,
|
|
279
|
+
enableGlobalSearch: true
|
|
276
280
|
});
|
|
277
281
|
}
|
|
278
282
|
// TODO: The plan is to support fields reordering, which would require an API like `order` or something
|
|
@@ -301,57 +305,20 @@ export default function PageTemplatesTemplateParts({
|
|
|
301
305
|
data,
|
|
302
306
|
paginationInfo
|
|
303
307
|
} = useMemo(() => {
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
let filteredData = [...records];
|
|
314
|
-
// Handle global search.
|
|
315
|
-
if (view.search) {
|
|
316
|
-
const normalizedSearch = normalizeSearchInput(view.search);
|
|
317
|
-
filteredData = filteredData.filter(item => {
|
|
318
|
-
const title = item.title?.rendered || item.slug;
|
|
319
|
-
return normalizeSearchInput(title).includes(normalizedSearch) || normalizeSearchInput(item.description).includes(normalizedSearch);
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
// Handle filters.
|
|
324
|
-
if (view.filters.length > 0) {
|
|
325
|
-
view.filters.forEach(filter => {
|
|
326
|
-
if (filter.field === 'author' && filter.operator === OPERATOR_IS_ANY && filter?.value?.length > 0) {
|
|
327
|
-
filteredData = filteredData.filter(item => {
|
|
328
|
-
return filter.value.includes(item.author_text);
|
|
329
|
-
});
|
|
330
|
-
} else if (filter.field === 'author' && filter.operator === OPERATOR_IS_NONE && filter?.value?.length > 0) {
|
|
331
|
-
filteredData = filteredData.filter(item => {
|
|
332
|
-
return !filter.value.includes(item.author_text);
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
// Handle sorting.
|
|
339
|
-
if (view.sort) {
|
|
340
|
-
filteredData = sortByTextFields({
|
|
341
|
-
data: filteredData,
|
|
342
|
-
view,
|
|
343
|
-
fields,
|
|
344
|
-
textFields: ['title', 'author']
|
|
308
|
+
return filterSortAndPaginate(records, view, fields);
|
|
309
|
+
}, [records, view, fields]);
|
|
310
|
+
const onActionPerformed = useCallback((actionId, items) => {
|
|
311
|
+
if (actionId === 'edit-post') {
|
|
312
|
+
const post = items[0];
|
|
313
|
+
history.push({
|
|
314
|
+
postId: post.id,
|
|
315
|
+
postType: post.type,
|
|
316
|
+
canvas: 'edit'
|
|
345
317
|
});
|
|
346
318
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
view
|
|
351
|
-
});
|
|
352
|
-
}, [records, view, fields]);
|
|
353
|
-
const resetTemplateAction = useResetTemplateAction();
|
|
354
|
-
const actions = useMemo(() => [resetTemplateAction, renameTemplateAction, postRevisionsAction, deleteTemplateAction], [resetTemplateAction]);
|
|
319
|
+
}, [history]);
|
|
320
|
+
const [editAction, viewRevisionsAction] = usePostActions(onActionPerformed, ['edit-post', 'view-post-revisions']);
|
|
321
|
+
const actions = useMemo(() => [editAction, resetTemplateAction, renameTemplateAction, viewRevisionsAction, deleteTemplateAction], [editAction, viewRevisionsAction]);
|
|
355
322
|
const onChangeView = useCallback(newView => {
|
|
356
323
|
if (newView.type !== view.type) {
|
|
357
324
|
newView = {
|
|
@@ -386,7 +353,7 @@ export default function PageTemplatesTemplateParts({
|
|
|
386
353
|
view: view,
|
|
387
354
|
onChangeView: onChangeView,
|
|
388
355
|
onSelectionChange: onSelectionChange,
|
|
389
|
-
deferredRendering: !view.hiddenFields?.includes('preview')
|
|
356
|
+
deferredRendering: view.type === LAYOUT_GRID || !view.hiddenFields?.includes('preview')
|
|
390
357
|
}));
|
|
391
358
|
}
|
|
392
359
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","removeAccents","Icon","__experimentalText","Text","__experimentalHStack","HStack","VisuallyHidden","__","useState","useMemo","useCallback","useEffect","useEntityRecords","decodeEntities","parse","BlockPreview","privateApis","blockEditorPrivateApis","DataViews","sortByTextFields","getPaginationResults","routerPrivateApis","Page","default","Link","useLink","AddNewTemplate","useAddedBy","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","ENUMERATION_TYPE","OPERATOR_IS_ANY","OPERATOR_IS_NONE","LAYOUT_GRID","LAYOUT_TABLE","LAYOUT_LIST","useResetTemplateAction","deleteTemplateAction","renameTemplateAction","postRevisionsAction","usePatternSettings","unlock","AddNewTemplatePart","ExperimentalBlockEditorProvider","useGlobalStyle","useHistory","useLocation","EMPTY_ARRAY","defaultConfigPerViewType","primaryField","mediaField","DEFAULT_VIEW","type","search","page","perPage","sort","field","direction","hiddenFields","layout","filters","normalizeSearchInput","input","trim","toLowerCase","Title","item","viewType","title","rendered","linkProps","params","postId","id","postType","canvas","state","backPath","createElement","AuthorField","isImageLoaded","setIsImageLoaded","text","icon","imageUrl","withIcon","alignment","spacing","className","onLoad","alt","src","Preview","settings","backgroundColor","blocks","content","raw","onClick","isEmpty","length","style","PageTemplatesTemplateParts","activeView","defaultView","usedType","operator","value","view","setView","currentView","records","isResolving","isLoadingData","per_page","history","onSelectionChange","items","push","undefined","authors","authorsSet","Set","forEach","template","add","author_text","Array","from","map","author","label","fields","_fields","header","render","minWidth","maxWidth","enableSorting","getValue","enableHiding","description","Fragment","variant","elements","width","data","paginationInfo","totalItems","totalPages","filteredData","normalizedSearch","filter","slug","includes","textFields","resetTemplateAction","actions","onChangeView","newView","templateType","showIcon","toggleProps","isLoading","deferredRendering"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tDataViews,\n\tsortByTextFields,\n\tgetPaginationResults,\n} from '@wordpress/dataviews';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport { default as Link, useLink } from '../routes/link';\nimport AddNewTemplate from '../add-new-template';\nimport { useAddedBy } from './hooks';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tENUMERATION_TYPE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\nimport {\n\tuseResetTemplateAction,\n\tdeleteTemplateAction,\n\trenameTemplateAction,\n} from './actions';\nimport { postRevisionsAction } from '../actions';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport AddNewTemplatePart from './add-new-template-part';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_TABLE ]: {\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tprimaryField: 'title',\n\t\tmediaField: 'preview',\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_TABLE,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'title',\n\t\tdirection: 'asc',\n\t},\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'preview' ],\n\tlayout: defaultConfigPerViewType[ LAYOUT_TABLE ],\n\tfilters: [],\n};\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nfunction Title( { item, viewType } ) {\n\tif ( viewType === LAYOUT_LIST ) {\n\t\treturn decodeEntities( item.title?.rendered ) || __( '(no title)' );\n\t}\n\tconst linkProps = {\n\t\tparams: {\n\t\t\tpostId: item.id,\n\t\t\tpostType: item.type,\n\t\t\tcanvas: 'edit',\n\t\t},\n\t};\n\tif ( item.type === TEMPLATE_PART_POST_TYPE ) {\n\t\tlinkProps.state = {\n\t\t\tbackPath: '/wp_template_part/all',\n\t\t};\n\t}\n\treturn (\n\t\t<Link { ...linkProps }>\n\t\t\t{ decodeEntities( item.title?.rendered ) || __( '(no title)' ) }\n\t\t</Link>\n\t);\n}\n\nfunction AuthorField( { item, viewType } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\tconst withIcon = viewType !== LAYOUT_LIST;\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ withIcon && imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'page-templates-author-field__avatar',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ withIcon && ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span>{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction Preview( { item, viewType } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( item.content.raw );\n\t}, [ item.content.raw ] );\n\tconst { onClick } = useLink( {\n\t\tpostId: item.id,\n\t\tpostType: item.type,\n\t\tcanvas: 'edit',\n\t} );\n\n\tconst isEmpty = ! blocks?.length;\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName={ `page-templates-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ viewType === LAYOUT_LIST && ! isEmpty && (\n\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t) }\n\t\t\t\t{ viewType !== LAYOUT_LIST && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"page-templates-preview-field__button\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\taria-label={ item.title?.rendered || item.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isEmpty &&\n\t\t\t\t\t\t\t( item.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t\t\t? __( 'Empty template' )\n\t\t\t\t\t\t\t\t: __( 'Empty template part' ) ) }\n\t\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ blocks } /> }\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\nexport default function PageTemplatesTemplateParts( { postType } ) {\n\tconst { params } = useLocation();\n\tconst { activeView = 'all', layout } = params;\n\tconst defaultView = useMemo( () => {\n\t\tconst usedType = layout ?? DEFAULT_VIEW.type;\n\t\treturn {\n\t\t\t...DEFAULT_VIEW,\n\t\t\ttype: usedType,\n\t\t\tlayout: defaultConfigPerViewType[ usedType ],\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: 'isAny',\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t};\n\t}, [ layout, activeView ] );\n\tconst [ view, setView ] = useState( defaultView );\n\tuseEffect( () => {\n\t\tsetView( ( currentView ) => ( {\n\t\t\t...currentView,\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: OPERATOR_IS_ANY,\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t} ) );\n\t}, [ activeView ] );\n\n\tconst { records, isResolving: isLoadingData } = useEntityRecords(\n\t\t'postType',\n\t\tpostType,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst history = useHistory();\n\tconst onSelectionChange = useCallback(\n\t\t( items ) => {\n\t\t\tif ( view?.type === LAYOUT_LIST ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tpostId: items.length === 1 ? items[ 0 ].id : undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history, params, view?.type ]\n\t);\n\n\tconst authors = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\trecords.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ records ] );\n\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <Preview item={ item } viewType={ view.type } />;\n\t\t\t\t},\n\t\t\t\tminWidth: 120,\n\t\t\t\tmaxWidth: 120,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader:\n\t\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template' )\n\t\t\t\t\t\t: __( 'Template Part' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( postType === TEMPLATE_POST_TYPE ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Description' ),\n\t\t\t\tid: 'description',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn item.description ? (\n\t\t\t\t\t\t<span className=\"page-templates-description\">\n\t\t\t\t\t\t\t{ decodeEntities( item.description ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tview.type === LAYOUT_TABLE && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text variant=\"muted\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t—\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t{ __( 'No description.' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\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},\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tminWidth: 320,\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\t// TODO: The plan is to support fields reordering, which would require an API like `order` or something\n\t\t// similar. With the aforementioned API we wouldn't need to construct the fields array like this.\n\t\t_fields.push( {\n\t\t\theader: __( 'Author' ),\n\t\t\tid: 'author',\n\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\trender: ( { item } ) => {\n\t\t\t\treturn <AuthorField viewType={ view.type } item={ item } />;\n\t\t\t},\n\t\t\ttype: ENUMERATION_TYPE,\n\t\t\telements: authors,\n\t\t\twidth: '1%',\n\t\t} );\n\t\treturn _fields;\n\t}, [ postType, authors, view.type ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn {\n\t\t\t\tdata: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredData = [ ...records ];\n\t\t// Handle global search.\n\t\tif ( view.search ) {\n\t\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\tconst title = item.title?.rendered || item.slug;\n\t\t\t\treturn (\n\t\t\t\t\tnormalizeSearchInput( title ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t) ||\n\t\t\t\t\tnormalizeSearchInput( item.description ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\t// Handle filters.\n\t\tif ( view.filters.length > 0 ) {\n\t\t\tview.filters.forEach( ( filter ) => {\n\t\t\t\tif (\n\t\t\t\t\tfilter.field === 'author' &&\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.includes( item.author_text );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.field === 'author' &&\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn ! filter.value.includes( item.author_text );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tfilteredData = sortByTextFields( {\n\t\t\t\tdata: filteredData,\n\t\t\t\tview,\n\t\t\t\tfields,\n\t\t\t\ttextFields: [ 'title', 'author' ],\n\t\t\t} );\n\t\t}\n\t\t// Handle pagination.\n\t\treturn getPaginationResults( {\n\t\t\tdata: filteredData,\n\t\t\tview,\n\t\t} );\n\t}, [ records, view, fields ] );\n\n\tconst resetTemplateAction = useResetTemplateAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\tresetTemplateAction,\n\t\t\trenameTemplateAction,\n\t\t\tpostRevisionsAction,\n\t\t\tdeleteTemplateAction,\n\t\t],\n\t\t[ resetTemplateAction ]\n\t);\n\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tlayout: newView.type,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView, history, params ]\n\t);\n\n\treturn (\n\t\t<Page\n\t\t\tclassName=\"edit-site-page-template-template-parts-dataviews\"\n\t\t\ttitle={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t? __( 'Templates' )\n\t\t\t\t\t: __( 'Template Parts' )\n\t\t\t}\n\t\t\tactions={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE ? (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ postType }\n\t\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<AddNewTemplatePart />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\tdeferredRendering={ ! view.hiddenFields?.includes( 'preview' ) }\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,SACCC,IAAI,EACJC,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,EAC9BC,cAAc,QACR,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,EAAEC,OAAO,EAAEC,WAAW,EAAEC,SAAS,QAAQ,oBAAoB;AAC9E,SAASC,gBAAgB,QAAQ,sBAAsB;AACvD,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,KAAK,QAAQ,mBAAmB;AACzC,SACCC,YAAY,EACZC,WAAW,IAAIC,sBAAsB,QAC/B,yBAAyB;AAChC,SACCC,SAAS,EACTC,gBAAgB,EAChBC,oBAAoB,QACd,sBAAsB;AAC7B,SAASJ,WAAW,IAAIK,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,OAAOC,IAAI,MAAM,SAAS;AAC1B,SAASC,OAAO,IAAIC,IAAI,EAAEC,OAAO,QAAQ,gBAAgB;AACzD,OAAOC,cAAc,MAAM,qBAAqB;AAChD,SAASC,UAAU,QAAQ,SAAS;AACpC,SACCC,kBAAkB,EAClBC,uBAAuB,EACvBC,gBAAgB,EAChBC,eAAe,EACfC,gBAAgB,EAChBC,WAAW,EACXC,YAAY,EACZC,WAAW,QACL,uBAAuB;AAC9B,SACCC,sBAAsB,EACtBC,oBAAoB,EACpBC,oBAAoB,QACd,WAAW;AAClB,SAASC,mBAAmB,QAAQ,YAAY;AAChD,OAAOC,kBAAkB,MAAM,uCAAuC;AACtE,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,kBAAkB,MAAM,yBAAyB;AAExD,MAAM;EAAEC,+BAA+B;EAAEC;AAAe,CAAC,GAAGH,MAAM,CACjExB,sBACD,CAAC;AACD,MAAM;EAAE4B,UAAU;EAAEC;AAAY,CAAC,GAAGL,MAAM,CAAEpB,iBAAkB,CAAC;AAE/D,MAAM0B,WAAW,GAAG,EAAE;AAEtB,MAAMC,wBAAwB,GAAG;EAChC,CAAEd,YAAY,GAAI;IACjBe,YAAY,EAAE;EACf,CAAC;EACD,CAAEhB,WAAW,GAAI;IAChBiB,UAAU,EAAE,SAAS;IACrBD,YAAY,EAAE;EACf,CAAC;EACD,CAAEd,WAAW,GAAI;IAChBc,YAAY,EAAE,OAAO;IACrBC,UAAU,EAAE;EACb;AACD,CAAC;AAED,MAAMC,YAAY,GAAG;EACpBC,IAAI,EAAElB,YAAY;EAClBmB,MAAM,EAAE,EAAE;EACVC,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE,EAAE;EACXC,IAAI,EAAE;IACLC,KAAK,EAAE,OAAO;IACdC,SAAS,EAAE;EACZ,CAAC;EACD;EACA;EACAC,YAAY,EAAE,CAAE,SAAS,CAAE;EAC3BC,MAAM,EAAEZ,wBAAwB,CAAEd,YAAY,CAAE;EAChD2B,OAAO,EAAE;AACV,CAAC;AAED,SAASC,oBAAoBA,CAAEC,KAAK,GAAG,EAAE,EAAG;EAC3C,OAAO/D,aAAa,CAAE+D,KAAK,CAACC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAE,CAAC;AACnD;AAEA,SAASC,KAAKA,CAAE;EAAEC,IAAI;EAAEC;AAAS,CAAC,EAAG;EACpC,IAAKA,QAAQ,KAAKjC,WAAW,EAAG;IAC/B,OAAOtB,cAAc,CAAEsD,IAAI,CAACE,KAAK,EAAEC,QAAS,CAAC,IAAI/D,EAAE,CAAE,YAAa,CAAC;EACpE;EACA,MAAMgE,SAAS,GAAG;IACjBC,MAAM,EAAE;MACPC,MAAM,EAAEN,IAAI,CAACO,EAAE;MACfC,QAAQ,EAAER,IAAI,CAACf,IAAI;MACnBwB,MAAM,EAAE;IACT;EACD,CAAC;EACD,IAAKT,IAAI,CAACf,IAAI,KAAKvB,uBAAuB,EAAG;IAC5C0C,SAAS,CAACM,KAAK,GAAG;MACjBC,QAAQ,EAAE;IACX,CAAC;EACF;EACA,OACCC,aAAA,CAACvD,IAAI;IAAA,GAAM+C;EAAS,GACjB1D,cAAc,CAAEsD,IAAI,CAACE,KAAK,EAAEC,QAAS,CAAC,IAAI/D,EAAE,CAAE,YAAa,CACxD,CAAC;AAET;AAEA,SAASyE,WAAWA,CAAE;EAAEb,IAAI;EAAEC;AAAS,CAAC,EAAG;EAC1C,MAAM,CAAEa,aAAa,EAAEC,gBAAgB,CAAE,GAAG1E,QAAQ,CAAE,KAAM,CAAC;EAC7D,MAAM;IAAE2E,IAAI;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAG1D,UAAU,CAAEwC,IAAI,CAACf,IAAI,EAAEe,IAAI,CAACO,EAAG,CAAC;EACjE,MAAMY,QAAQ,GAAGlB,QAAQ,KAAKjC,WAAW;EAEzC,OACC4C,aAAA,CAAC1E,MAAM;IAACkF,SAAS,EAAC,MAAM;IAACC,OAAO,EAAG;EAAG,GACnCF,QAAQ,IAAID,QAAQ,IACrBN,aAAA;IACCU,SAAS,EAAG1F,UAAU,CACrB,qCAAqC,EACrC;MACC,WAAW,EAAEkF;IACd,CACD;EAAG,GAEHF,aAAA;IACCW,MAAM,EAAGA,CAAA,KAAMR,gBAAgB,CAAE,IAAK,CAAG;IACzCS,GAAG,EAAC,EAAE;IACNC,GAAG,EAAGP;EAAU,CAChB,CACG,CACL,EACCC,QAAQ,IAAI,CAAED,QAAQ,IACvBN,aAAA;IAAKU,SAAS,EAAC;EAAmC,GACjDV,aAAA,CAAC9E,IAAI;IAACmF,IAAI,EAAGA;EAAM,CAAE,CACjB,CACL,EACDL,aAAA,eAAQI,IAAY,CACb,CAAC;AAEX;AAEA,SAASU,OAAOA,CAAE;EAAE1B,IAAI;EAAEC;AAAS,CAAC,EAAG;EACtC,MAAM0B,QAAQ,GAAGtD,kBAAkB,CAAC,CAAC;EACrC,MAAM,CAAEuD,eAAe,GAAG,OAAO,CAAE,GAAGnD,cAAc,CAAE,kBAAmB,CAAC;EAC1E,MAAMoD,MAAM,GAAGvF,OAAO,CAAE,MAAM;IAC7B,OAAOK,KAAK,CAAEqD,IAAI,CAAC8B,OAAO,CAACC,GAAI,CAAC;EACjC,CAAC,EAAE,CAAE/B,IAAI,CAAC8B,OAAO,CAACC,GAAG,CAAG,CAAC;EACzB,MAAM;IAAEC;EAAQ,CAAC,GAAG1E,OAAO,CAAE;IAC5BgD,MAAM,EAAEN,IAAI,CAACO,EAAE;IACfC,QAAQ,EAAER,IAAI,CAACf,IAAI;IACnBwB,MAAM,EAAE;EACT,CAAE,CAAC;EAEH,MAAMwB,OAAO,GAAG,CAAEJ,MAAM,EAAEK,MAAM;EAChC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OACCtB,aAAA,CAACpC,+BAA+B;IAACmD,QAAQ,EAAGA;EAAU,GACrDf,aAAA;IACCU,SAAS,EAAI,4CAA4CrB,QAAU,EAAG;IACtEkC,KAAK,EAAG;MAAEP;IAAgB;EAAG,GAE3B3B,QAAQ,KAAKjC,WAAW,IAAI,CAAEiE,OAAO,IACtCrB,aAAA,CAAChE,YAAY;IAACiF,MAAM,EAAGA;EAAQ,CAAE,CACjC,EACC5B,QAAQ,KAAKjC,WAAW,IACzB4C,aAAA;IACCU,SAAS,EAAC,sCAAsC;IAChDrC,IAAI,EAAC,QAAQ;IACb+C,OAAO,EAAGA,OAAS;IACnB,cAAahC,IAAI,CAACE,KAAK,EAAEC,QAAQ,IAAIH,IAAI,CAACE;EAAO,GAE/C+B,OAAO,KACNjC,IAAI,CAACf,IAAI,KAAKxB,kBAAkB,GAC/BrB,EAAE,CAAE,gBAAiB,CAAC,GACtBA,EAAE,CAAE,qBAAsB,CAAC,CAAE,EAC/B,CAAE6F,OAAO,IAAIrB,aAAA,CAAChE,YAAY;IAACiF,MAAM,EAAGA;EAAQ,CAAE,CACzC,CAEL,CAC2B,CAAC;AAEpC;AAEA,eAAe,SAASO,0BAA0BA,CAAE;EAAE5B;AAAS,CAAC,EAAG;EAClE,MAAM;IAAEH;EAAO,CAAC,GAAG1B,WAAW,CAAC,CAAC;EAChC,MAAM;IAAE0D,UAAU,GAAG,KAAK;IAAE5C;EAAO,CAAC,GAAGY,MAAM;EAC7C,MAAMiC,WAAW,GAAGhG,OAAO,CAAE,MAAM;IAClC,MAAMiG,QAAQ,GAAG9C,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIT,YAAY,CAACC,IAAI;IAC5C,OAAO;MACN,GAAGD,YAAY;MACfC,IAAI,EAAEsD,QAAQ;MACd9C,MAAM,EAAEZ,wBAAwB,CAAE0D,QAAQ,CAAE;MAC5C7C,OAAO,EACN2C,UAAU,KAAK,KAAK,GACjB,CACA;QACC/C,KAAK,EAAE,QAAQ;QACfkD,QAAQ,EAAE,OAAO;QACjBC,KAAK,EAAE,CAAEJ,UAAU;MACpB,CAAC,CACA,GACD;IACL,CAAC;EACF,CAAC,EAAE,CAAE5C,MAAM,EAAE4C,UAAU,CAAG,CAAC;EAC3B,MAAM,CAAEK,IAAI,EAAEC,OAAO,CAAE,GAAGtG,QAAQ,CAAEiG,WAAY,CAAC;EACjD9F,SAAS,CAAE,MAAM;IAChBmG,OAAO,CAAIC,WAAW,KAAQ;MAC7B,GAAGA,WAAW;MACdlD,OAAO,EACN2C,UAAU,KAAK,KAAK,GACjB,CACA;QACC/C,KAAK,EAAE,QAAQ;QACfkD,QAAQ,EAAE5E,eAAe;QACzB6E,KAAK,EAAE,CAAEJ,UAAU;MACpB,CAAC,CACA,GACD;IACL,CAAC,CAAG,CAAC;EACN,CAAC,EAAE,CAAEA,UAAU,CAAG,CAAC;EAEnB,MAAM;IAAEQ,OAAO;IAAEC,WAAW,EAAEC;EAAc,CAAC,GAAGtG,gBAAgB,CAC/D,UAAU,EACV+D,QAAQ,EACR;IACCwC,QAAQ,EAAE,CAAC;EACZ,CACD,CAAC;EACD,MAAMC,OAAO,GAAGvE,UAAU,CAAC,CAAC;EAC5B,MAAMwE,iBAAiB,GAAG3G,WAAW,CAClC4G,KAAK,IAAM;IACZ,IAAKT,IAAI,EAAEzD,IAAI,KAAKjB,WAAW,EAAG;MACjCiF,OAAO,CAACG,IAAI,CAAE;QACb,GAAG/C,MAAM;QACTC,MAAM,EAAE6C,KAAK,CAACjB,MAAM,KAAK,CAAC,GAAGiB,KAAK,CAAE,CAAC,CAAE,CAAC5C,EAAE,GAAG8C;MAC9C,CAAE,CAAC;IACJ;EACD,CAAC,EACD,CAAEJ,OAAO,EAAE5C,MAAM,EAAEqC,IAAI,EAAEzD,IAAI,CAC9B,CAAC;EAED,MAAMqE,OAAO,GAAGhH,OAAO,CAAE,MAAM;IAC9B,IAAK,CAAEuG,OAAO,EAAG;MAChB,OAAOjE,WAAW;IACnB;IACA,MAAM2E,UAAU,GAAG,IAAIC,GAAG,CAAC,CAAC;IAC5BX,OAAO,CAACY,OAAO,CAAIC,QAAQ,IAAM;MAChCH,UAAU,CAACI,GAAG,CAAED,QAAQ,CAACE,WAAY,CAAC;IACvC,CAAE,CAAC;IACH,OAAOC,KAAK,CAACC,IAAI,CAAEP,UAAW,CAAC,CAACQ,GAAG,CAAIC,MAAM,KAAQ;MACpDvB,KAAK,EAAEuB,MAAM;MACbC,KAAK,EAAED;IACR,CAAC,CAAG,CAAC;EACN,CAAC,EAAE,CAAEnB,OAAO,CAAG,CAAC;EAEhB,MAAMqB,MAAM,GAAG5H,OAAO,CAAE,MAAM;IAC7B,MAAM6H,OAAO,GAAG,CACf;MACCC,MAAM,EAAEhI,EAAE,CAAE,SAAU,CAAC;MACvBmE,EAAE,EAAE,SAAS;MACb8D,MAAM,EAAEA,CAAE;QAAErE;MAAK,CAAC,KAAM;QACvB,OAAOY,aAAA,CAACc,OAAO;UAAC1B,IAAI,EAAGA,IAAM;UAACC,QAAQ,EAAGyC,IAAI,CAACzD;QAAM,CAAE,CAAC;MACxD,CAAC;MACDqF,QAAQ,EAAE,GAAG;MACbC,QAAQ,EAAE,GAAG;MACbC,aAAa,EAAE;IAChB,CAAC,EACD;MACCJ,MAAM,EACL5D,QAAQ,KAAK/C,kBAAkB,GAC5BrB,EAAE,CAAE,UAAW,CAAC,GAChBA,EAAE,CAAE,eAAgB,CAAC;MACzBmE,EAAE,EAAE,OAAO;MACXkE,QAAQ,EAAEA,CAAE;QAAEzE;MAAK,CAAC,KAAMA,IAAI,CAACE,KAAK,EAAEC,QAAQ;MAC9CkE,MAAM,EAAEA,CAAE;QAAErE;MAAK,CAAC,KACjBY,aAAA,CAACb,KAAK;QAACC,IAAI,EAAGA,IAAM;QAACC,QAAQ,EAAGyC,IAAI,CAACzD;MAAM,CAAE,CAC7C;MACDsF,QAAQ,EAAE,GAAG;MACbG,YAAY,EAAE;IACf,CAAC,CACD;IACD,IAAKlE,QAAQ,KAAK/C,kBAAkB,EAAG;MACtC0G,OAAO,CAACf,IAAI,CAAE;QACbgB,MAAM,EAAEhI,EAAE,CAAE,aAAc,CAAC;QAC3BmE,EAAE,EAAE,aAAa;QACjB8D,MAAM,EAAEA,CAAE;UAAErE;QAAK,CAAC,KAAM;UACvB,OAAOA,IAAI,CAAC2E,WAAW,GACtB/D,aAAA;YAAMU,SAAS,EAAC;UAA4B,GACzC5E,cAAc,CAAEsD,IAAI,CAAC2E,WAAY,CAC9B,CAAC,GAEPjC,IAAI,CAACzD,IAAI,KAAKlB,YAAY,IACzB6C,aAAA,CAAAgE,QAAA,QACChE,aAAA,CAAC5E,IAAI;YAAC6I,OAAO,EAAC,OAAO;YAAC,eAAY;UAAM,GAAC,QAEnC,CAAC,EACPjE,aAAA,CAACzE,cAAc,QACZC,EAAE,CAAE,iBAAkB,CACT,CACf,CAEH;QACF,CAAC;QACDmI,QAAQ,EAAE,GAAG;QACbD,QAAQ,EAAE,GAAG;QACbE,aAAa,EAAE;MAChB,CAAE,CAAC;IACJ;IACA;IACA;IACAL,OAAO,CAACf,IAAI,CAAE;MACbgB,MAAM,EAAEhI,EAAE,CAAE,QAAS,CAAC;MACtBmE,EAAE,EAAE,QAAQ;MACZkE,QAAQ,EAAEA,CAAE;QAAEzE;MAAK,CAAC,KAAMA,IAAI,CAAC4D,WAAW;MAC1CS,MAAM,EAAEA,CAAE;QAAErE;MAAK,CAAC,KAAM;QACvB,OAAOY,aAAA,CAACC,WAAW;UAACZ,QAAQ,EAAGyC,IAAI,CAACzD,IAAM;UAACe,IAAI,EAAGA;QAAM,CAAE,CAAC;MAC5D,CAAC;MACDf,IAAI,EAAEtB,gBAAgB;MACtBmH,QAAQ,EAAExB,OAAO;MACjByB,KAAK,EAAE;IACR,CAAE,CAAC;IACH,OAAOZ,OAAO;EACf,CAAC,EAAE,CAAE3D,QAAQ,EAAE8C,OAAO,EAAEZ,IAAI,CAACzD,IAAI,CAAG,CAAC;EAErC,MAAM;IAAE+F,IAAI;IAAEC;EAAe,CAAC,GAAG3I,OAAO,CAAE,MAAM;IAC/C,IAAK,CAAEuG,OAAO,EAAG;MAChB,OAAO;QACNmC,IAAI,EAAEpG,WAAW;QACjBqG,cAAc,EAAE;UAAEC,UAAU,EAAE,CAAC;UAAEC,UAAU,EAAE;QAAE;MAChD,CAAC;IACF;IACA,IAAIC,YAAY,GAAG,CAAE,GAAGvC,OAAO,CAAE;IACjC;IACA,IAAKH,IAAI,CAACxD,MAAM,EAAG;MAClB,MAAMmG,gBAAgB,GAAG1F,oBAAoB,CAAE+C,IAAI,CAACxD,MAAO,CAAC;MAC5DkG,YAAY,GAAGA,YAAY,CAACE,MAAM,CAAItF,IAAI,IAAM;QAC/C,MAAME,KAAK,GAAGF,IAAI,CAACE,KAAK,EAAEC,QAAQ,IAAIH,IAAI,CAACuF,IAAI;QAC/C,OACC5F,oBAAoB,CAAEO,KAAM,CAAC,CAACsF,QAAQ,CACrCH,gBACD,CAAC,IACD1F,oBAAoB,CAAEK,IAAI,CAAC2E,WAAY,CAAC,CAACa,QAAQ,CAChDH,gBACD,CAAC;MAEH,CAAE,CAAC;IACJ;;IAEA;IACA,IAAK3C,IAAI,CAAChD,OAAO,CAACwC,MAAM,GAAG,CAAC,EAAG;MAC9BQ,IAAI,CAAChD,OAAO,CAAC+D,OAAO,CAAI6B,MAAM,IAAM;QACnC,IACCA,MAAM,CAAChG,KAAK,KAAK,QAAQ,IACzBgG,MAAM,CAAC9C,QAAQ,KAAK5E,eAAe,IACnC0H,MAAM,EAAE7C,KAAK,EAAEP,MAAM,GAAG,CAAC,EACxB;UACDkD,YAAY,GAAGA,YAAY,CAACE,MAAM,CAAItF,IAAI,IAAM;YAC/C,OAAOsF,MAAM,CAAC7C,KAAK,CAAC+C,QAAQ,CAAExF,IAAI,CAAC4D,WAAY,CAAC;UACjD,CAAE,CAAC;QACJ,CAAC,MAAM,IACN0B,MAAM,CAAChG,KAAK,KAAK,QAAQ,IACzBgG,MAAM,CAAC9C,QAAQ,KAAK3E,gBAAgB,IACpCyH,MAAM,EAAE7C,KAAK,EAAEP,MAAM,GAAG,CAAC,EACxB;UACDkD,YAAY,GAAGA,YAAY,CAACE,MAAM,CAAItF,IAAI,IAAM;YAC/C,OAAO,CAAEsF,MAAM,CAAC7C,KAAK,CAAC+C,QAAQ,CAAExF,IAAI,CAAC4D,WAAY,CAAC;UACnD,CAAE,CAAC;QACJ;MACD,CAAE,CAAC;IACJ;;IAEA;IACA,IAAKlB,IAAI,CAACrD,IAAI,EAAG;MAChB+F,YAAY,GAAGpI,gBAAgB,CAAE;QAChCgI,IAAI,EAAEI,YAAY;QAClB1C,IAAI;QACJwB,MAAM;QACNuB,UAAU,EAAE,CAAE,OAAO,EAAE,QAAQ;MAChC,CAAE,CAAC;IACJ;IACA;IACA,OAAOxI,oBAAoB,CAAE;MAC5B+H,IAAI,EAAEI,YAAY;MAClB1C;IACD,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEG,OAAO,EAAEH,IAAI,EAAEwB,MAAM,CAAG,CAAC;EAE9B,MAAMwB,mBAAmB,GAAGzH,sBAAsB,CAAC,CAAC;EACpD,MAAM0H,OAAO,GAAGrJ,OAAO,CACtB,MAAM,CACLoJ,mBAAmB,EACnBvH,oBAAoB,EACpBC,mBAAmB,EACnBF,oBAAoB,CACpB,EACD,CAAEwH,mBAAmB,CACtB,CAAC;EAED,MAAME,YAAY,GAAGrJ,WAAW,CAC7BsJ,OAAO,IAAM;IACd,IAAKA,OAAO,CAAC5G,IAAI,KAAKyD,IAAI,CAACzD,IAAI,EAAG;MACjC4G,OAAO,GAAG;QACT,GAAGA,OAAO;QACVpG,MAAM,EAAE;UACP,GAAGZ,wBAAwB,CAAEgH,OAAO,CAAC5G,IAAI;QAC1C;MACD,CAAC;MAEDgE,OAAO,CAACG,IAAI,CAAE;QACb,GAAG/C,MAAM;QACTZ,MAAM,EAAEoG,OAAO,CAAC5G;MACjB,CAAE,CAAC;IACJ;IAEA0D,OAAO,CAAEkD,OAAQ,CAAC;EACnB,CAAC,EACD,CAAEnD,IAAI,CAACzD,IAAI,EAAE0D,OAAO,EAAEM,OAAO,EAAE5C,MAAM,CACtC,CAAC;EAED,OACCO,aAAA,CAACzD,IAAI;IACJmE,SAAS,EAAC,kDAAkD;IAC5DpB,KAAK,EACJM,QAAQ,KAAK/C,kBAAkB,GAC5BrB,EAAE,CAAE,WAAY,CAAC,GACjBA,EAAE,CAAE,gBAAiB,CACxB;IACDuJ,OAAO,EACNnF,QAAQ,KAAK/C,kBAAkB,GAC9BmD,aAAA,CAACrD,cAAc;MACduI,YAAY,EAAGtF,QAAU;MACzBuF,QAAQ,EAAG,KAAO;MAClBC,WAAW,EAAG;QAAEnB,OAAO,EAAE;MAAU;IAAG,CACtC,CAAC,GAEFjE,aAAA,CAACrC,kBAAkB,MAAE;EAEtB,GAEDqC,aAAA,CAAC7D,SAAS;IACTkI,cAAc,EAAGA,cAAgB;IACjCf,MAAM,EAAGA,MAAQ;IACjByB,OAAO,EAAGA,OAAS;IACnBX,IAAI,EAAGA,IAAM;IACbiB,SAAS,EAAGlD,aAAe;IAC3BL,IAAI,EAAGA,IAAM;IACbkD,YAAY,EAAGA,YAAc;IAC7B1C,iBAAiB,EAAGA,iBAAmB;IACvCgD,iBAAiB,EAAG,CAAExD,IAAI,CAAClD,YAAY,EAAEgG,QAAQ,CAAE,SAAU;EAAG,CAChE,CACI,CAAC;AAET"}
|
|
1
|
+
{"version":3,"names":["classnames","Icon","__experimentalText","Text","__experimentalHStack","HStack","VisuallyHidden","__","useState","useMemo","useCallback","useEffect","useEntityRecords","decodeEntities","parse","BlockPreview","privateApis","blockEditorPrivateApis","DataViews","filterSortAndPaginate","routerPrivateApis","editorPrivateApis","Page","default","Link","useLink","AddNewTemplate","useAddedBy","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","ENUMERATION_TYPE","OPERATOR_IS_ANY","LAYOUT_GRID","LAYOUT_TABLE","LAYOUT_LIST","resetTemplateAction","deleteTemplateAction","renameTemplateAction","usePatternSettings","unlock","AddNewTemplatePart","usePostActions","ExperimentalBlockEditorProvider","useGlobalStyle","useHistory","useLocation","EMPTY_ARRAY","defaultConfigPerViewType","primaryField","mediaField","displayAsColumnFields","DEFAULT_VIEW","type","search","page","perPage","sort","field","direction","hiddenFields","layout","filters","Title","item","viewType","title","rendered","linkProps","params","postId","id","postType","canvas","state","backPath","createElement","AuthorField","isImageLoaded","setIsImageLoaded","text","icon","imageUrl","withIcon","alignment","spacing","className","onLoad","alt","src","Preview","settings","backgroundColor","blocks","content","raw","onClick","isEmpty","length","style","PageTemplatesTemplateParts","activeView","defaultView","usedType","operator","value","view","setView","currentView","records","isResolving","isLoadingData","per_page","history","onSelectionChange","items","push","undefined","authors","authorsSet","Set","forEach","template","add","author_text","Array","from","map","author","label","fields","_fields","header","render","minWidth","maxWidth","enableSorting","getValue","enableHiding","enableGlobalSearch","description","Fragment","variant","elements","width","data","paginationInfo","onActionPerformed","actionId","post","editAction","viewRevisionsAction","actions","onChangeView","newView","templateType","showIcon","toggleProps","isLoading","deferredRendering","includes"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport { default as Link, useLink } from '../routes/link';\nimport AddNewTemplate from '../add-new-template';\nimport { useAddedBy } from './hooks';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tENUMERATION_TYPE,\n\tOPERATOR_IS_ANY,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\nimport {\n\tresetTemplateAction,\n\tdeleteTemplateAction,\n\trenameTemplateAction,\n} from './actions';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport AddNewTemplatePart from './add-new-template-part';\n\nconst { usePostActions } = unlock( editorPrivateApis );\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_TABLE ]: {\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t\tdisplayAsColumnFields: [ 'description' ],\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tprimaryField: 'title',\n\t\tmediaField: 'preview',\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_TABLE,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'title',\n\t\tdirection: 'asc',\n\t},\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'preview' ],\n\tlayout: defaultConfigPerViewType[ LAYOUT_TABLE ],\n\tfilters: [],\n};\n\nfunction Title( { item, viewType } ) {\n\tif ( viewType === LAYOUT_LIST ) {\n\t\treturn decodeEntities( item.title?.rendered ) || __( '(no title)' );\n\t}\n\tconst linkProps = {\n\t\tparams: {\n\t\t\tpostId: item.id,\n\t\t\tpostType: item.type,\n\t\t\tcanvas: 'edit',\n\t\t},\n\t};\n\tif ( item.type === TEMPLATE_PART_POST_TYPE ) {\n\t\tlinkProps.state = {\n\t\t\tbackPath: '/wp_template_part/all',\n\t\t};\n\t}\n\treturn (\n\t\t<Link { ...linkProps }>\n\t\t\t{ decodeEntities( item.title?.rendered ) || __( '(no title)' ) }\n\t\t</Link>\n\t);\n}\n\nfunction AuthorField( { item, viewType } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\tconst withIcon = viewType !== LAYOUT_LIST;\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ withIcon && imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'page-templates-author-field__avatar',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ withIcon && ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span className=\"page-templates-author-field__name\">{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction Preview( { item, viewType } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( item.content.raw );\n\t}, [ item.content.raw ] );\n\tconst { onClick } = useLink( {\n\t\tpostId: item.id,\n\t\tpostType: item.type,\n\t\tcanvas: 'edit',\n\t} );\n\n\tconst isEmpty = ! blocks?.length;\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName={ `page-templates-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ viewType === LAYOUT_LIST && ! isEmpty && (\n\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t) }\n\t\t\t\t{ viewType !== LAYOUT_LIST && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"page-templates-preview-field__button\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\taria-label={ item.title?.rendered || item.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isEmpty &&\n\t\t\t\t\t\t\t( item.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t\t\t? __( 'Empty template' )\n\t\t\t\t\t\t\t\t: __( 'Empty template part' ) ) }\n\t\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ blocks } /> }\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\nexport default function PageTemplatesTemplateParts( { postType } ) {\n\tconst { params } = useLocation();\n\tconst { activeView = 'all', layout } = params;\n\tconst defaultView = useMemo( () => {\n\t\tconst usedType = layout ?? DEFAULT_VIEW.type;\n\t\treturn {\n\t\t\t...DEFAULT_VIEW,\n\t\t\ttype: usedType,\n\t\t\tlayout: defaultConfigPerViewType[ usedType ],\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: 'isAny',\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t};\n\t}, [ layout, activeView ] );\n\tconst [ view, setView ] = useState( defaultView );\n\tuseEffect( () => {\n\t\tsetView( ( currentView ) => ( {\n\t\t\t...currentView,\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: OPERATOR_IS_ANY,\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t} ) );\n\t}, [ activeView ] );\n\n\tconst { records, isResolving: isLoadingData } = useEntityRecords(\n\t\t'postType',\n\t\tpostType,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst history = useHistory();\n\tconst onSelectionChange = useCallback(\n\t\t( items ) => {\n\t\t\tif ( view?.type === LAYOUT_LIST ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tpostId: items.length === 1 ? items[ 0 ].id : undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history, params, view?.type ]\n\t);\n\n\tconst authors = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\trecords.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ records ] );\n\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <Preview item={ item } viewType={ view.type } />;\n\t\t\t\t},\n\t\t\t\tminWidth: 120,\n\t\t\t\tmaxWidth: 120,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader:\n\t\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template' )\n\t\t\t\t\t\t: __( 'Template Part' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t},\n\t\t];\n\t\tif ( postType === TEMPLATE_POST_TYPE ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Description' ),\n\t\t\t\tid: 'description',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn item.description ? (\n\t\t\t\t\t\t<span className=\"page-templates-description\">\n\t\t\t\t\t\t\t{ decodeEntities( item.description ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tview.type === LAYOUT_TABLE && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text variant=\"muted\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t—\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t{ __( 'No description.' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\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},\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tminWidth: 320,\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t} );\n\t\t}\n\t\t// TODO: The plan is to support fields reordering, which would require an API like `order` or something\n\t\t// similar. With the aforementioned API we wouldn't need to construct the fields array like this.\n\t\t_fields.push( {\n\t\t\theader: __( 'Author' ),\n\t\t\tid: 'author',\n\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\trender: ( { item } ) => {\n\t\t\t\treturn <AuthorField viewType={ view.type } item={ item } />;\n\t\t\t},\n\t\t\ttype: ENUMERATION_TYPE,\n\t\t\telements: authors,\n\t\t\twidth: '1%',\n\t\t} );\n\t\treturn _fields;\n\t}, [ postType, authors, view.type ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( records, view, fields );\n\t}, [ records, view, fields ] );\n\n\tconst onActionPerformed = useCallback(\n\t\t( actionId, items ) => {\n\t\t\tif ( actionId === 'edit-post' ) {\n\t\t\t\tconst post = items[ 0 ];\n\t\t\t\thistory.push( {\n\t\t\t\t\tpostId: post.id,\n\t\t\t\t\tpostType: post.type,\n\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history ]\n\t);\n\tconst [ editAction, viewRevisionsAction ] = usePostActions(\n\t\tonActionPerformed,\n\t\t[ 'edit-post', 'view-post-revisions' ]\n\t);\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\teditAction,\n\t\t\tresetTemplateAction,\n\t\t\trenameTemplateAction,\n\t\t\tviewRevisionsAction,\n\t\t\tdeleteTemplateAction,\n\t\t],\n\t\t[ editAction, viewRevisionsAction ]\n\t);\n\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tlayout: newView.type,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView, history, params ]\n\t);\n\n\treturn (\n\t\t<Page\n\t\t\tclassName=\"edit-site-page-template-template-parts-dataviews\"\n\t\t\ttitle={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t? __( 'Templates' )\n\t\t\t\t\t: __( 'Template Parts' )\n\t\t\t}\n\t\t\tactions={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE ? (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ postType }\n\t\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<AddNewTemplatePart />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\tdeferredRendering={\n\t\t\t\t\tview.type === LAYOUT_GRID ||\n\t\t\t\t\t! view.hiddenFields?.includes( 'preview' )\n\t\t\t\t}\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
1
2
|
/**
|
|
2
3
|
* Defines an extensibility slot for the Template sidebar.
|
|
3
4
|
*/
|
|
@@ -5,12 +6,22 @@
|
|
|
5
6
|
/**
|
|
6
7
|
* WordPress dependencies
|
|
7
8
|
*/
|
|
9
|
+
import { store as editorStore } from '@wordpress/editor';
|
|
10
|
+
import { useSelect } from '@wordpress/data';
|
|
8
11
|
import { createSlotFill } from '@wordpress/components';
|
|
9
12
|
const {
|
|
10
13
|
Fill,
|
|
11
14
|
Slot
|
|
12
15
|
} = createSlotFill('PluginTemplateSettingPanel');
|
|
13
|
-
const PluginTemplateSettingPanel =
|
|
16
|
+
const PluginTemplateSettingPanel = ({
|
|
17
|
+
children
|
|
18
|
+
}) => {
|
|
19
|
+
const isCurrentEntityTemplate = useSelect(select => select(editorStore).getCurrentPostType() === 'wp_template', []);
|
|
20
|
+
if (!isCurrentEntityTemplate) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return createElement(Fill, null, children);
|
|
24
|
+
};
|
|
14
25
|
PluginTemplateSettingPanel.Slot = Slot;
|
|
15
26
|
|
|
16
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createSlotFill","Fill","Slot","PluginTemplateSettingPanel"],"sources":["@wordpress/edit-site/src/components/plugin-template-setting-panel/index.js"],"sourcesContent":["/**\n * Defines an extensibility slot for the Template sidebar.\n */\n\n/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill, Slot } = createSlotFill( 'PluginTemplateSettingPanel' );\n\nconst PluginTemplateSettingPanel = Fill;\nPluginTemplateSettingPanel.Slot = Slot;\n\n/**\n * Renders items in the Template Sidebar below the main information\n * like the Template Card.\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { PluginTemplateSettingPanel } from '@wordpress/edit-site';\n *\n * const MyTemplateSettingTest = () => (\n * \t\t<PluginTemplateSettingPanel>\n *\t\t\t<p>Hello, World!</p>\n *\t\t</PluginTemplateSettingPanel>\n *\t);\n * ```\n *\n * @return {Component} The component to be rendered.\n */\nexport default PluginTemplateSettingPanel;\n"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,cAAc,QAAQ,uBAAuB;AAEtD,MAAM;EAAEC,IAAI;EAAEC;AAAK,CAAC,GAAGF,cAAc,CAAE,4BAA6B,CAAC;AAErE,MAAMG,0BAA0B,
|
|
1
|
+
{"version":3,"names":["store","editorStore","useSelect","createSlotFill","Fill","Slot","PluginTemplateSettingPanel","children","isCurrentEntityTemplate","select","getCurrentPostType","createElement"],"sources":["@wordpress/edit-site/src/components/plugin-template-setting-panel/index.js"],"sourcesContent":["/**\n * Defines an extensibility slot for the Template sidebar.\n */\n\n/**\n * WordPress dependencies\n */\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill, Slot } = createSlotFill( 'PluginTemplateSettingPanel' );\n\nconst PluginTemplateSettingPanel = ( { children } ) => {\n\tconst isCurrentEntityTemplate = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getCurrentPostType() === 'wp_template',\n\t\t[]\n\t);\n\tif ( ! isCurrentEntityTemplate ) {\n\t\treturn null;\n\t}\n\treturn <Fill>{ children }</Fill>;\n};\n\nPluginTemplateSettingPanel.Slot = Slot;\n\n/**\n * Renders items in the Template Sidebar below the main information\n * like the Template Card.\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { PluginTemplateSettingPanel } from '@wordpress/edit-site';\n *\n * const MyTemplateSettingTest = () => (\n * \t\t<PluginTemplateSettingPanel>\n *\t\t\t<p>Hello, World!</p>\n *\t\t</PluginTemplateSettingPanel>\n *\t);\n * ```\n *\n * @return {Component} The component to be rendered.\n */\nexport default PluginTemplateSettingPanel;\n"],"mappings":";AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACxD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,cAAc,QAAQ,uBAAuB;AAEtD,MAAM;EAAEC,IAAI;EAAEC;AAAK,CAAC,GAAGF,cAAc,CAAE,4BAA6B,CAAC;AAErE,MAAMG,0BAA0B,GAAGA,CAAE;EAAEC;AAAS,CAAC,KAAM;EACtD,MAAMC,uBAAuB,GAAGN,SAAS,CACtCO,MAAM,IACPA,MAAM,CAAER,WAAY,CAAC,CAACS,kBAAkB,CAAC,CAAC,KAAK,aAAa,EAC7D,EACD,CAAC;EACD,IAAK,CAAEF,uBAAuB,EAAG;IAChC,OAAO,IAAI;EACZ;EACA,OAAOG,aAAA,CAACP,IAAI,QAAGG,QAAgB,CAAC;AACjC,CAAC;AAEDD,0BAA0B,CAACD,IAAI,GAAGA,IAAI;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeC,0BAA0B"}
|