@wordpress/edit-site 5.23.0 → 5.24.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/actions/index.js +56 -38
- package/build/components/actions/index.js.map +1 -1
- package/build/components/block-editor/site-editor-canvas.js +7 -2
- package/build/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build/components/dataviews/add-filter.js +21 -20
- package/build/components/dataviews/add-filter.js.map +1 -1
- package/build/components/dataviews/constants.js +14 -0
- package/build/components/dataviews/constants.js.map +1 -0
- package/build/components/dataviews/dataviews.js +9 -7
- package/build/components/dataviews/dataviews.js.map +1 -1
- package/build/components/dataviews/filter-summary.js +62 -0
- package/build/components/dataviews/filter-summary.js.map +1 -0
- package/build/components/dataviews/filters.js +15 -30
- package/build/components/dataviews/filters.js.map +1 -1
- package/build/components/dataviews/item-actions.js +84 -30
- package/build/components/dataviews/item-actions.js.map +1 -1
- package/build/components/dataviews/pagination.js +4 -0
- package/build/components/dataviews/pagination.js.map +1 -1
- package/build/components/dataviews/view-actions.js +24 -24
- package/build/components/dataviews/view-actions.js.map +1 -1
- package/build/components/dataviews/view-grid.js +48 -25
- package/build/components/dataviews/view-grid.js.map +1 -1
- package/build/components/dataviews/view-list.js +28 -33
- package/build/components/dataviews/view-list.js.map +1 -1
- package/build/components/editor/index.js +23 -27
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/header.js +4 -2
- package/build/components/global-styles/header.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +22 -16
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +26 -5
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
- package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build/components/global-styles/ui.js +28 -36
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/header-edit-mode/document-actions/index.js +21 -16
- package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build/components/header-edit-mode/index.js +2 -1
- package/build/components/header-edit-mode/index.js.map +1 -1
- package/build/components/header-edit-mode/more-menu/index.js +1 -1
- package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
- package/build/components/list/added-by.js +43 -54
- package/build/components/list/added-by.js.map +1 -1
- package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
- package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
- package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
- package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
- package/build/components/page-content-focus-notifications/index.js +22 -0
- package/build/components/page-content-focus-notifications/index.js.map +1 -0
- package/build/components/page-pages/index.js +9 -15
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +1 -1
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates/dataviews-templates.js +166 -51
- package/build/components/page-templates/dataviews-templates.js.map +1 -1
- package/build/components/preferences-modal/index.js +1 -1
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/save-button/index.js +9 -6
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/save-hub/index.js +14 -0
- package/build/components/save-hub/index.js.map +1 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +7 -2
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-edit-mode/index.js +6 -5
- package/build/components/sidebar-edit-mode/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js +15 -26
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
- package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
- package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js +4 -8
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +2 -2
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
- package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/index.js +23 -4
- package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build/components/style-book/index.js +22 -12
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/components/welcome-guide/page.js +2 -2
- package/build/components/welcome-guide/page.js.map +1 -1
- package/build/components/welcome-guide/template.js +6 -3
- package/build/components/welcome-guide/template.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +24 -14
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/store/actions.js +4 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +2 -27
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +0 -23
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +1 -40
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +8 -4
- package/build/store/selectors.js.map +1 -1
- package/build/utils/constants.js +1 -12
- package/build/utils/constants.js.map +1 -1
- package/build-module/components/actions/index.js +55 -36
- package/build-module/components/actions/index.js.map +1 -1
- package/build-module/components/block-editor/site-editor-canvas.js +7 -2
- package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build-module/components/dataviews/add-filter.js +21 -20
- package/build-module/components/dataviews/add-filter.js.map +1 -1
- package/build-module/components/dataviews/constants.js +6 -0
- package/build-module/components/dataviews/constants.js.map +1 -0
- package/build-module/components/dataviews/dataviews.js +9 -7
- package/build-module/components/dataviews/dataviews.js.map +1 -1
- package/build-module/components/dataviews/filter-summary.js +55 -0
- package/build-module/components/dataviews/filter-summary.js.map +1 -0
- package/build-module/components/dataviews/filters.js +15 -28
- package/build-module/components/dataviews/filters.js.map +1 -1
- package/build-module/components/dataviews/item-actions.js +84 -30
- package/build-module/components/dataviews/item-actions.js.map +1 -1
- package/build-module/components/dataviews/pagination.js +4 -0
- package/build-module/components/dataviews/pagination.js.map +1 -1
- package/build-module/components/dataviews/view-actions.js +24 -24
- package/build-module/components/dataviews/view-actions.js.map +1 -1
- package/build-module/components/dataviews/view-grid.js +49 -26
- package/build-module/components/dataviews/view-grid.js.map +1 -1
- package/build-module/components/dataviews/view-list.js +28 -33
- package/build-module/components/dataviews/view-list.js.map +1 -1
- package/build-module/components/editor/index.js +26 -30
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/header.js +4 -2
- package/build-module/components/global-styles/header.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js +23 -17
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js +27 -6
- package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build-module/components/global-styles/ui.js +28 -36
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
- package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build-module/components/header-edit-mode/index.js +2 -1
- package/build-module/components/header-edit-mode/index.js.map +1 -1
- package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
- package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
- package/build-module/components/list/added-by.js +44 -55
- package/build-module/components/list/added-by.js.map +1 -1
- package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
- package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
- package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
- package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
- package/build-module/components/page-content-focus-notifications/index.js +14 -0
- package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
- package/build-module/components/page-pages/index.js +10 -16
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +1 -1
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates/dataviews-templates.js +168 -53
- package/build-module/components/page-templates/dataviews-templates.js.map +1 -1
- package/build-module/components/preferences-modal/index.js +1 -1
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/save-button/index.js +11 -8
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/save-hub/index.js +14 -0
- package/build-module/components/save-hub/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +7 -2
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/index.js +6 -5
- package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +16 -27
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
- package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +5 -9
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
- package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
- package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build-module/components/style-book/index.js +22 -12
- 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 +41 -9
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/welcome-guide/page.js +2 -2
- package/build-module/components/welcome-guide/page.js.map +1 -1
- package/build-module/components/welcome-guide/template.js +6 -3
- package/build-module/components/welcome-guide/template.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/store/actions.js +4 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +1 -25
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +0 -22
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +1 -38
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +8 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/constants.js +0 -10
- package/build-module/utils/constants.js.map +1 -1
- package/build-style/style-rtl.css +152 -62
- package/build-style/style.css +152 -62
- package/package.json +41 -41
- package/src/components/actions/index.js +76 -48
- package/src/components/block-editor/site-editor-canvas.js +8 -2
- package/src/components/dataviews/README.md +14 -11
- package/src/components/dataviews/add-filter.js +21 -24
- package/src/components/dataviews/constants.js +5 -0
- package/src/components/dataviews/dataviews.js +10 -10
- package/src/components/dataviews/filter-summary.js +79 -0
- package/src/components/dataviews/filters.js +18 -35
- package/src/components/dataviews/item-actions.js +106 -42
- package/src/components/dataviews/pagination.js +4 -0
- package/src/components/dataviews/style.scss +84 -8
- package/src/components/dataviews/view-actions.js +39 -41
- package/src/components/dataviews/view-grid.js +63 -38
- package/src/components/dataviews/view-list.js +50 -57
- package/src/components/editor/index.js +18 -34
- package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
- package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
- package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
- package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
- package/src/components/global-styles/header.js +2 -1
- package/src/components/global-styles/screen-block-list.js +37 -26
- package/src/components/global-styles/screen-revisions/index.js +39 -10
- package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
- package/src/components/global-styles/screen-revisions/style.scss +52 -28
- package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
- package/src/components/global-styles/style.scss +0 -11
- package/src/components/global-styles/ui.js +59 -74
- package/src/components/header-edit-mode/document-actions/index.js +20 -18
- package/src/components/header-edit-mode/index.js +1 -0
- package/src/components/header-edit-mode/more-menu/index.js +1 -1
- package/src/components/list/added-by.js +23 -63
- package/src/components/list/style.scss +11 -13
- package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +12 -13
- package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
- package/src/components/page-content-focus-notifications/index.js +14 -0
- package/src/components/page-pages/index.js +15 -20
- package/src/components/page-patterns/use-patterns.js +1 -1
- package/src/components/page-templates/dataviews-templates.js +169 -48
- package/src/components/page-templates/style.scss +13 -0
- package/src/components/preferences-modal/index.js +1 -1
- package/src/components/save-button/index.js +37 -24
- package/src/components/save-hub/index.js +15 -0
- package/src/components/save-hub/style.scss +7 -0
- package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -0
- package/src/components/sidebar-dataviews/default-views.js +7 -2
- package/src/components/sidebar-dataviews/style.scss +7 -0
- package/src/components/sidebar-edit-mode/index.js +13 -9
- package/src/components/sidebar-edit-mode/page-panels/edit-template.js +33 -52
- package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
- package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
- package/src/components/sidebar-edit-mode/page-panels/page-summary.js +8 -9
- package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
- package/src/components/sidebar-edit-mode/page-panels/style.scss +9 -19
- package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
- package/src/components/sidebar-navigation-screen/style.scss +1 -0
- package/src/components/sidebar-navigation-screen-page/index.js +24 -3
- package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
- package/src/components/style-book/index.js +48 -35
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +69 -17
- package/src/components/welcome-guide/page.js +2 -2
- package/src/components/welcome-guide/template.js +4 -2
- package/src/hooks/commands/use-edit-mode-commands.js +22 -16
- package/src/store/actions.js +5 -1
- package/src/store/private-actions.js +1 -24
- package/src/store/private-selectors.js +0 -22
- package/src/store/reducer.js +0 -39
- package/src/store/selectors.js +12 -4
- package/src/store/test/actions.js +3 -32
- package/src/store/test/reducer.js +0 -62
- package/src/store/test/selectors.js +0 -35
- package/src/style.scss +1 -0
- package/src/utils/constants.js +0 -10
- package/build/components/dataviews/in-filter.js +0 -51
- package/build/components/dataviews/in-filter.js.map +0 -1
- package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -63
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
- package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
- package/build/components/page-content-focus-manager/index.js +0 -61
- package/build/components/page-content-focus-manager/index.js.map +0 -1
- package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
- package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
- package/build-module/components/dataviews/in-filter.js +0 -42
- package/build-module/components/dataviews/in-filter.js.map +0 -1
- package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -56
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
- package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
- package/build-module/components/page-content-focus-manager/index.js +0 -52
- package/build-module/components/page-content-focus-manager/index.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
- package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
- package/src/components/dataviews/in-filter.js +0 -63
- package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -57
- package/src/components/page-content-focus-manager/index.js +0 -51
- package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","useDispatch","useSelect","__experimentalUseNavigator","useNavigator","__experimentalVStack","VStack","ExternalLink","__experimentalTruncate","Truncate","store","coreStore","useEntityRecord","decodeEntities","pencil","__unstableStripHTML","stripHTML","escapeAttribute","safeDecodeURIComponent","filterURLForDisplay","SidebarNavigationScreen","unlock","editSiteStore","SidebarButton","PageDetails","PageActions","SidebarNavigationScreenDetailsFooter","
|
|
1
|
+
{"version":3,"names":["__","useDispatch","useSelect","__experimentalUseNavigator","useNavigator","__experimentalVStack","VStack","ExternalLink","__experimentalTruncate","Truncate","store","coreStore","useEntityRecord","decodeEntities","pencil","__unstableStripHTML","stripHTML","escapeAttribute","safeDecodeURIComponent","filterURLForDisplay","useEffect","privateApis","routerPrivateApis","SidebarNavigationScreen","unlock","editSiteStore","SidebarButton","PageDetails","PageActions","SidebarNavigationScreenDetailsFooter","useHistory","SidebarNavigationScreenPage","setCanvasMode","history","params","postId","goTo","record","hasResolved","featuredMediaAltText","featuredMediaSourceUrl","select","getEntityRecord","attachedMedia","featured_media","media_details","sizes","medium","source_url","alt_text","description","raw","push","path","undefined","postType","canvas","featureImageAltText","title","rendered","createElement","actions","Fragment","toggleProps","as","onRemove","onClick","label","icon","meta","className","href","link","content","alignment","spacing","alt","src","excerpt","numberOfLines","id","footer","modified"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-page/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalVStack as VStack,\n\tExternalLink,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { pencil } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { escapeAttribute } from '@wordpress/escape-html';\nimport { safeDecodeURIComponent, filterURLForDisplay } from '@wordpress/url';\nimport { useEffect } from '@wordpress/element';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport SidebarButton from '../sidebar-button';\nimport PageDetails from './page-details';\nimport PageActions from '../page-actions';\nimport SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function SidebarNavigationScreenPage() {\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst history = useHistory();\n\tconst {\n\t\tparams: { postId },\n\t\tgoTo,\n\t} = useNavigator();\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'page',\n\t\tpostId\n\t);\n\n\tconst { featuredMediaAltText, featuredMediaSourceUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t// Featured image.\n\t\t\tconst attachedMedia = record?.featured_media\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\trecord?.featured_media\n\t\t\t\t )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tfeaturedMediaSourceUrl:\n\t\t\t\t\tattachedMedia?.media_details.sizes?.medium?.source_url ||\n\t\t\t\t\tattachedMedia?.source_url,\n\t\t\t\tfeaturedMediaAltText: escapeAttribute(\n\t\t\t\t\tattachedMedia?.alt_text ||\n\t\t\t\t\t\tattachedMedia?.description?.raw ||\n\t\t\t\t\t\t''\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ record ]\n\t);\n\n\t// Redirect to the main pages navigation screen if the page is not found or has been deleted.\n\tuseEffect( () => {\n\t\tif ( hasResolved && ! record ) {\n\t\t\thistory.push( {\n\t\t\t\tpath: '/page',\n\t\t\t\tpostId: undefined,\n\t\t\t\tpostType: undefined,\n\t\t\t\tcanvas: 'view',\n\t\t\t} );\n\t\t}\n\t}, [ hasResolved, history ] );\n\n\tconst featureImageAltText = featuredMediaAltText\n\t\t? decodeEntities( featuredMediaAltText )\n\t\t: decodeEntities( record?.title?.rendered || __( 'Featured image' ) );\n\n\treturn record ? (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ decodeEntities(\n\t\t\t\trecord?.title?.rendered || __( '(no title)' )\n\t\t\t) }\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t<PageActions\n\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\ttoggleProps={ { as: SidebarButton } }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tgoTo( '/page' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\tonClick={ () => setCanvasMode( 'edit' ) }\n\t\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tmeta={\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__page-link\"\n\t\t\t\t\thref={ record.link }\n\t\t\t\t>\n\t\t\t\t\t{ filterURLForDisplay(\n\t\t\t\t\t\tsafeDecodeURIComponent( record.link )\n\t\t\t\t\t) }\n\t\t\t\t</ExternalLink>\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ !! featuredMediaSourceUrl && (\n\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-page__featured-image-wrapper\"\n\t\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen-page__featured-image has-image\">\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\talt={ featureImageAltText }\n\t\t\t\t\t\t\t\t\tsrc={ featuredMediaSourceUrl }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t) }\n\t\t\t\t\t{ !! record?.excerpt?.rendered && (\n\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-page__excerpt\"\n\t\t\t\t\t\t\tnumberOfLines={ 3 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ stripHTML( record.excerpt.rendered ) }\n\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t) }\n\t\t\t\t\t<PageDetails id={ postId } />\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\trecord?.modified ? (\n\t\t\t\t\t<SidebarNavigationScreenDetailsFooter record={ record } />\n\t\t\t\t) : null\n\t\t\t}\n\t\t/>\n\t) : null;\n}\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import classnames from 'classnames';
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { Disabled, TabPanel, privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
11
11
|
import { __, sprintf } from '@wordpress/i18n';
|
|
12
12
|
import { getCategories, getBlockTypes, getBlockFromExample, createBlock } from '@wordpress/blocks';
|
|
13
13
|
import { BlockList, privateApis as blockEditorPrivateApis, store as blockEditorStore, __unstableEditorStyles as EditorStyles, __unstableIframe as Iframe } from '@wordpress/block-editor';
|
|
@@ -25,6 +25,11 @@ const {
|
|
|
25
25
|
ExperimentalBlockEditorProvider,
|
|
26
26
|
useGlobalStyle
|
|
27
27
|
} = unlock(blockEditorPrivateApis);
|
|
28
|
+
const {
|
|
29
|
+
CompositeV2: Composite,
|
|
30
|
+
CompositeItemV2: CompositeItem,
|
|
31
|
+
useCompositeStoreV2: useCompositeStore
|
|
32
|
+
} = unlock(componentsPrivateApis);
|
|
28
33
|
|
|
29
34
|
// The content area of the Style Book is rendered within an iframe so that global styles
|
|
30
35
|
// are applied to elements within the entire content area. To support elements that are
|
|
@@ -49,6 +54,8 @@ const STYLE_BOOK_IFRAME_STYLES = `
|
|
|
49
54
|
padding: 16px;
|
|
50
55
|
width: 100%;
|
|
51
56
|
box-sizing: border-box;
|
|
57
|
+
scroll-margin-top: 32px;
|
|
58
|
+
scroll-margin-bottom: 32px;
|
|
52
59
|
}
|
|
53
60
|
|
|
54
61
|
.edit-site-style-book__example.is-selected {
|
|
@@ -254,7 +261,8 @@ const StyleBookBody = ({
|
|
|
254
261
|
// translators: %s: Category of blocks, e.g. Text.
|
|
255
262
|
__('Examples of blocks in the %s category'), title) : __('Examples of blocks'),
|
|
256
263
|
isSelected: isSelected,
|
|
257
|
-
onSelect: onSelect
|
|
264
|
+
onSelect: onSelect,
|
|
265
|
+
key: category
|
|
258
266
|
}));
|
|
259
267
|
};
|
|
260
268
|
const Examples = memo(({
|
|
@@ -265,17 +273,17 @@ const Examples = memo(({
|
|
|
265
273
|
isSelected,
|
|
266
274
|
onSelect
|
|
267
275
|
}) => {
|
|
268
|
-
const
|
|
276
|
+
const compositeStore = useCompositeStore({
|
|
269
277
|
orientation: 'vertical'
|
|
270
278
|
});
|
|
271
279
|
return createElement(Composite, {
|
|
272
|
-
|
|
280
|
+
store: compositeStore,
|
|
273
281
|
className: className,
|
|
274
|
-
"aria-label": label
|
|
282
|
+
"aria-label": label,
|
|
283
|
+
role: "grid"
|
|
275
284
|
}, examples.filter(example => category ? example.category === category : true).map(example => createElement(Example, {
|
|
276
285
|
key: example.name,
|
|
277
286
|
id: `example-${example.name}`,
|
|
278
|
-
composite: composite,
|
|
279
287
|
title: example.title,
|
|
280
288
|
blocks: example.blocks,
|
|
281
289
|
isSelected: isSelected(example.name),
|
|
@@ -285,7 +293,6 @@ const Examples = memo(({
|
|
|
285
293
|
})));
|
|
286
294
|
});
|
|
287
295
|
const Example = ({
|
|
288
|
-
composite,
|
|
289
296
|
id,
|
|
290
297
|
title,
|
|
291
298
|
blocks,
|
|
@@ -300,8 +307,11 @@ const Example = ({
|
|
|
300
307
|
|
|
301
308
|
// Cache the list of blocks to avoid additional processing when the component is re-rendered.
|
|
302
309
|
const renderedBlocks = useMemo(() => Array.isArray(blocks) ? blocks : [blocks], [blocks]);
|
|
303
|
-
return createElement(
|
|
304
|
-
|
|
310
|
+
return createElement("div", {
|
|
311
|
+
role: "row"
|
|
312
|
+
}, createElement("div", {
|
|
313
|
+
role: "gridcell"
|
|
314
|
+
}, createElement(CompositeItem, {
|
|
305
315
|
className: classnames('edit-site-style-book__example', {
|
|
306
316
|
'is-selected': isSelected
|
|
307
317
|
}),
|
|
@@ -309,9 +319,9 @@ const Example = ({
|
|
|
309
319
|
"aria-label": sprintf(
|
|
310
320
|
// translators: %s: Title of a block, e.g. Heading.
|
|
311
321
|
__('Open %s styles in Styles panel'), title),
|
|
312
|
-
|
|
322
|
+
render: createElement("div", null),
|
|
313
323
|
role: "button",
|
|
314
|
-
|
|
324
|
+
onClick: onClick
|
|
315
325
|
}, createElement("span", {
|
|
316
326
|
className: "edit-site-style-book__example-title"
|
|
317
327
|
}, title), createElement("div", {
|
|
@@ -324,7 +334,7 @@ const Example = ({
|
|
|
324
334
|
settings: settings
|
|
325
335
|
}, createElement(BlockList, {
|
|
326
336
|
renderAppender: false
|
|
327
|
-
})))));
|
|
337
|
+
})))))));
|
|
328
338
|
};
|
|
329
339
|
export default StyleBook;
|
|
330
340
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","Disabled","TabPanel","__","sprintf","getCategories","getBlockTypes","getBlockFromExample","createBlock","BlockList","privateApis","blockEditorPrivateApis","store","blockEditorStore","__unstableEditorStyles","EditorStyles","__unstableIframe","Iframe","useSelect","useResizeObserver","useMemo","useState","memo","ENTER","SPACE","unlock","EditorCanvasContainer","ExperimentalBlockEditorProvider","useGlobalStyle","STYLE_BOOK_IFRAME_STYLES","getExamples","headingsExample","name","title","category","blocks","content","level","otherExamples","filter","blockType","example","supports","inserter","map","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","showTabs","resizeObserver","sizes","textColor","backgroundColor","examples","tabs","some","slug","icon","originalSettings","select","getSettings","settings","__unstableIsPreviewMode","createElement","closeButtonLabel","className","width","style","color","background","tab","StyleBookBody","isFocused","setIsFocused","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","preventDefault","readonly","buttonModeStyles","tabIndex","styles","Examples","label","composite","orientation","Example","key","id","renderedBlocks","Array","isArray","as","value","renderAppender"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n\tDisabled,\n\tTabPanel,\n} from '@wordpress/components';\n\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetCategories,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\n// The content area of the Style Book is rendered within an iframe so that global styles\n// are applied to elements within the entire content area. To support elements that are\n// not part of the block previews, such as headings and layout for the block previews,\n// additional CSS rules need to be passed into the iframe. These are hard-coded below.\n// Note that button styles are unset, and then focus rules from the `Button` component are\n// applied to the `button` element, targeted via `.edit-site-style-book__example`.\n// This is to ensure that browser default styles for buttons are not applied to the previews.\nconst STYLE_BOOK_IFRAME_STYLES = `\n\t.edit-site-style-book__examples {\n\t\tmax-width: 900px;\n\t\tmargin: 0 auto;\n\t}\n\n\t.edit-site-style-book__example {\n\t\tborder-radius: 2px;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 40px;\n\t\tmargin-bottom: 40px;\n\t\tpadding: 16px;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t}\n\n\t.edit-site-style-book__example.is-selected {\n\t\tbox-shadow: 0 0 0 1px var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t}\n\n\t.edit-site-style-book__example:focus:not(:disabled) {\n\t\tbox-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t\toutline: 3px solid transparent;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example {\n\t\tflex-direction: row;\n\t}\n\n\t.edit-site-style-book__example-title {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\tfont-size: 11px;\n\t\tfont-weight: 500;\n\t\tline-height: normal;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\ttext-transform: uppercase;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example-title {\n\t\ttext-align: right;\n\t\twidth: 120px;\n\t}\n\n\t.edit-site-style-book__example-preview {\n\t\twidth: 100%;\n\t}\n\n\t.edit-site-style-book__example-preview .block-editor-block-list__insertion-point,\n\t.edit-site-style-book__example-preview .block-list-appender {\n\t\tdisplay: none;\n\t}\n\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:first-child {\n\t\tmargin-top: 0;\n\t}\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:last-child {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nfunction getExamples() {\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 1,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 2,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 3,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 4,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 5,\n\t\t\t} ),\n\t\t],\n\t};\n\n\tconst otherExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\tblocks: getBlockFromExample( blockType.name, blockType.example ),\n\t\t} ) );\n\n\treturn [ headingsExample, ...otherExamples ];\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tshowTabs = true,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst examples = useMemo( getExamples, [] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetCategories()\n\t\t\t\t.filter( ( category ) =>\n\t\t\t\t\texamples.some(\n\t\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( category ) => ( {\n\t\t\t\t\tname: category.slug,\n\t\t\t\t\ttitle: category.title,\n\t\t\t\t\ticon: category.icon,\n\t\t\t\t} ) ),\n\t\t[ examples ]\n\t);\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={\n\t\t\t\tshowCloseButton ? __( 'Close Style Book' ) : null\n\t\t\t}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<TabPanel\n\t\t\t\t\t\tclassName=\"edit-site-style-book__tab-panel\"\n\t\t\t\t\t\ttabs={ tabs }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( tab ) => (\n\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\tcategory={ tab.name }\n\t\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TabPanel>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nconst StyleBookBody = ( {\n\tcategory,\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\n\ttitle,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst buttonModeStyles = onClick\n\t\t? 'body { cursor: pointer; } body * { pointer-events: none; }'\n\t\t: '';\n\n\treturn (\n\t\t<Iframe\n\t\t\tclassName={ classnames( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{\n\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t`.is-root-container { display: flow-root; }\n\t\t\t\t\t\tbody { position: relative; padding: 32px !important; }` +\n\t\t\t\t\t\tSTYLE_BOOK_IFRAME_STYLES +\n\t\t\t\t\t\tbuttonModeStyles\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName={ classnames( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\texamples={ examples }\n\t\t\t\tcategory={ category }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, examples, category, label, isSelected, onSelect } ) => {\n\t\tconst composite = useCompositeState( { orientation: 'vertical' } );\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t>\n\t\t\t\t{ examples\n\t\t\t\t\t.filter( ( example ) =>\n\t\t\t\t\t\tcategory ? example.category === category : true\n\t\t\t\t\t)\n\t\t\t\t\t.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected( example.name ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonSelect?.( example.name );\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</Composite>\n\t\t);\n\t}\n);\n\nconst Example = ( { composite, id, title, blocks, isSelected, onClick } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\treturn (\n\t\t<CompositeItem\n\t\t\t{ ...composite }\n\t\t\tclassName={ classnames( 'edit-site-style-book__example', {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t} ) }\n\t\t\tid={ id }\n\t\t\taria-label={ sprintf(\n\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\ttitle\n\t\t\t) }\n\t\t\tonClick={ onClick }\n\t\t\trole=\"button\"\n\t\t\tas=\"div\"\n\t\t>\n\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t{ title }\n\t\t\t</span>\n\t\t\t<div className=\"edit-site-style-book__example-preview\" aria-hidden>\n\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</CompositeItem>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","Disabled","TabPanel","privateApis","componentsPrivateApis","__","sprintf","getCategories","getBlockTypes","getBlockFromExample","createBlock","BlockList","blockEditorPrivateApis","store","blockEditorStore","__unstableEditorStyles","EditorStyles","__unstableIframe","Iframe","useSelect","useResizeObserver","useMemo","useState","memo","ENTER","SPACE","unlock","EditorCanvasContainer","ExperimentalBlockEditorProvider","useGlobalStyle","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","STYLE_BOOK_IFRAME_STYLES","getExamples","headingsExample","name","title","category","blocks","content","level","otherExamples","filter","blockType","example","supports","inserter","map","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","showTabs","resizeObserver","sizes","textColor","backgroundColor","examples","tabs","some","slug","icon","originalSettings","select","getSettings","settings","__unstableIsPreviewMode","createElement","closeButtonLabel","className","width","style","color","background","tab","StyleBookBody","isFocused","setIsFocused","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","preventDefault","readonly","buttonModeStyles","tabIndex","styles","Examples","label","key","compositeStore","orientation","Example","id","renderedBlocks","Array","isArray","render","value","renderAppender"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tTabPanel,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetCategories,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\n\n// The content area of the Style Book is rendered within an iframe so that global styles\n// are applied to elements within the entire content area. To support elements that are\n// not part of the block previews, such as headings and layout for the block previews,\n// additional CSS rules need to be passed into the iframe. These are hard-coded below.\n// Note that button styles are unset, and then focus rules from the `Button` component are\n// applied to the `button` element, targeted via `.edit-site-style-book__example`.\n// This is to ensure that browser default styles for buttons are not applied to the previews.\nconst STYLE_BOOK_IFRAME_STYLES = `\n\t.edit-site-style-book__examples {\n\t\tmax-width: 900px;\n\t\tmargin: 0 auto;\n\t}\n\n\t.edit-site-style-book__example {\n\t\tborder-radius: 2px;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 40px;\n\t\tmargin-bottom: 40px;\n\t\tpadding: 16px;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\tscroll-margin-top: 32px;\n\t\tscroll-margin-bottom: 32px;\n\t}\n\n\t.edit-site-style-book__example.is-selected {\n\t\tbox-shadow: 0 0 0 1px var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t}\n\n\t.edit-site-style-book__example:focus:not(:disabled) {\n\t\tbox-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t\toutline: 3px solid transparent;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example {\n\t\tflex-direction: row;\n\t}\n\n\t.edit-site-style-book__example-title {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\tfont-size: 11px;\n\t\tfont-weight: 500;\n\t\tline-height: normal;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\ttext-transform: uppercase;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example-title {\n\t\ttext-align: right;\n\t\twidth: 120px;\n\t}\n\n\t.edit-site-style-book__example-preview {\n\t\twidth: 100%;\n\t}\n\n\t.edit-site-style-book__example-preview .block-editor-block-list__insertion-point,\n\t.edit-site-style-book__example-preview .block-list-appender {\n\t\tdisplay: none;\n\t}\n\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:first-child {\n\t\tmargin-top: 0;\n\t}\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:last-child {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nfunction getExamples() {\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 1,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 2,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 3,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 4,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 5,\n\t\t\t} ),\n\t\t],\n\t};\n\n\tconst otherExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\tblocks: getBlockFromExample( blockType.name, blockType.example ),\n\t\t} ) );\n\n\treturn [ headingsExample, ...otherExamples ];\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tshowTabs = true,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst examples = useMemo( getExamples, [] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetCategories()\n\t\t\t\t.filter( ( category ) =>\n\t\t\t\t\texamples.some(\n\t\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( category ) => ( {\n\t\t\t\t\tname: category.slug,\n\t\t\t\t\ttitle: category.title,\n\t\t\t\t\ticon: category.icon,\n\t\t\t\t} ) ),\n\t\t[ examples ]\n\t);\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={\n\t\t\t\tshowCloseButton ? __( 'Close Style Book' ) : null\n\t\t\t}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<TabPanel\n\t\t\t\t\t\tclassName=\"edit-site-style-book__tab-panel\"\n\t\t\t\t\t\ttabs={ tabs }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( tab ) => (\n\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\tcategory={ tab.name }\n\t\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TabPanel>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nconst StyleBookBody = ( {\n\tcategory,\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\n\ttitle,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst buttonModeStyles = onClick\n\t\t? 'body { cursor: pointer; } body * { pointer-events: none; }'\n\t\t: '';\n\n\treturn (\n\t\t<Iframe\n\t\t\tclassName={ classnames( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{\n\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t`.is-root-container { display: flow-root; }\n\t\t\t\t\t\tbody { position: relative; padding: 32px !important; }` +\n\t\t\t\t\t\tSTYLE_BOOK_IFRAME_STYLES +\n\t\t\t\t\t\tbuttonModeStyles\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName={ classnames( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\texamples={ examples }\n\t\t\t\tcategory={ category }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ category }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, examples, category, label, isSelected, onSelect } ) => {\n\t\tconst compositeStore = useCompositeStore( { orientation: 'vertical' } );\n\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\tstore={ compositeStore }\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ examples\n\t\t\t\t\t.filter( ( example ) =>\n\t\t\t\t\t\tcategory ? example.category === category : true\n\t\t\t\t\t)\n\t\t\t\t\t.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected( example.name ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonSelect?.( example.name );\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</Composite>\n\t\t);\n\t}\n);\n\nconst Example = ( { id, title, blocks, isSelected, onClick } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<CompositeItem\n\t\t\t\t\tclassName={ classnames( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t) }\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</CompositeItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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"}
|
|
@@ -21,22 +21,40 @@ function useResolveEditedEntityAndContext({
|
|
|
21
21
|
postType
|
|
22
22
|
}) {
|
|
23
23
|
const {
|
|
24
|
-
|
|
24
|
+
hasLoadedAllDependencies,
|
|
25
25
|
homepageId,
|
|
26
|
-
url
|
|
26
|
+
url,
|
|
27
|
+
frontPageTemplateId
|
|
27
28
|
} = useSelect(select => {
|
|
28
29
|
const {
|
|
29
30
|
getSite,
|
|
30
|
-
getUnstableBase
|
|
31
|
+
getUnstableBase,
|
|
32
|
+
getEntityRecords
|
|
31
33
|
} = select(coreDataStore);
|
|
32
34
|
const siteData = getSite();
|
|
33
35
|
const base = getUnstableBase();
|
|
36
|
+
const templates = getEntityRecords('postType', TEMPLATE_POST_TYPE, {
|
|
37
|
+
per_page: -1
|
|
38
|
+
});
|
|
39
|
+
let _frontPateTemplateId;
|
|
40
|
+
if (templates) {
|
|
41
|
+
const frontPageTemplate = templates.find(t => t.slug === 'front-page');
|
|
42
|
+
_frontPateTemplateId = frontPageTemplate ? frontPageTemplate.id : false;
|
|
43
|
+
}
|
|
34
44
|
return {
|
|
35
|
-
|
|
36
|
-
homepageId: siteData?.show_on_front === 'page' ? siteData.page_on_front : null,
|
|
37
|
-
url: base?.home
|
|
45
|
+
hasLoadedAllDependencies: !!base && !!siteData,
|
|
46
|
+
homepageId: siteData?.show_on_front === 'page' ? siteData.page_on_front.toString() : null,
|
|
47
|
+
url: base?.home,
|
|
48
|
+
frontPageTemplateId: _frontPateTemplateId
|
|
38
49
|
};
|
|
39
50
|
}, []);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId
|
|
54
|
+
* in order to match the frontend as closely as possible in the site editor.
|
|
55
|
+
*
|
|
56
|
+
* It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.
|
|
57
|
+
*/
|
|
40
58
|
const resolvedTemplateId = useSelect(select => {
|
|
41
59
|
// If we're rendering a post type that doesn't have a template
|
|
42
60
|
// no need to resolve its template.
|
|
@@ -50,6 +68,17 @@ function useResolveEditedEntityAndContext({
|
|
|
50
68
|
__experimentalGetTemplateForLink
|
|
51
69
|
} = select(coreDataStore);
|
|
52
70
|
function resolveTemplateForPostTypeAndId(postTypeToResolve, postIdToResolve) {
|
|
71
|
+
// For the front page, we always use the front page template if existing.
|
|
72
|
+
if (postTypeToResolve === 'page' && homepageId === postIdToResolve) {
|
|
73
|
+
// We're still checking whether the front page template exists.
|
|
74
|
+
// Don't resolve the template yet.
|
|
75
|
+
if (frontPageTemplateId === undefined) {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
if (!!frontPageTemplateId) {
|
|
79
|
+
return frontPageTemplateId;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
53
82
|
const editedEntity = getEditedEntityRecord('postType', postTypeToResolve, postIdToResolve);
|
|
54
83
|
if (!editedEntity) {
|
|
55
84
|
return undefined;
|
|
@@ -72,6 +101,9 @@ function useResolveEditedEntityAndContext({
|
|
|
72
101
|
slug: `${postTypeToResolve}-${editedEntity?.slug}`
|
|
73
102
|
});
|
|
74
103
|
}
|
|
104
|
+
if (!hasLoadedAllDependencies) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
75
107
|
|
|
76
108
|
// If we're rendering a specific page, post... we need to resolve its template.
|
|
77
109
|
if (postType && postId) {
|
|
@@ -84,11 +116,11 @@ function useResolveEditedEntityAndContext({
|
|
|
84
116
|
}
|
|
85
117
|
|
|
86
118
|
// If we're not rendering a specific page, use the front page template.
|
|
87
|
-
if (
|
|
119
|
+
if (url) {
|
|
88
120
|
const template = __experimentalGetTemplateForLink(url);
|
|
89
121
|
return template?.id;
|
|
90
122
|
}
|
|
91
|
-
}, [homepageId,
|
|
123
|
+
}, [homepageId, hasLoadedAllDependencies, url, postId, postType, frontPageTemplateId]);
|
|
92
124
|
const context = useMemo(() => {
|
|
93
125
|
if (postTypesWithoutParentTemplate.includes(postType)) {
|
|
94
126
|
return {};
|
|
@@ -115,7 +147,7 @@ function useResolveEditedEntityAndContext({
|
|
|
115
147
|
context
|
|
116
148
|
};
|
|
117
149
|
}
|
|
118
|
-
if (
|
|
150
|
+
if (hasLoadedAllDependencies) {
|
|
119
151
|
return {
|
|
120
152
|
isReady: resolvedTemplateId !== undefined,
|
|
121
153
|
postType: TEMPLATE_POST_TYPE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","useSelect","useDispatch","store","coreDataStore","privateApis","routerPrivateApis","editSiteStore","unlock","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","useLocation","postTypesWithoutParentTemplate","user","useResolveEditedEntityAndContext","postId","postType","isRequestingSite","homepageId","url","select","getSite","getUnstableBase","siteData","base","show_on_front","page_on_front","home","resolvedTemplateId","includes","undefined","getEditedEntityRecord","getEntityRecords","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","currentTemplateSlug","template","currentTemplate","per_page","find","slug","id","context","isReady","useInitEditedEntity","params","setEditedEntity","useInitEditedEntityFromURL"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nfunction useResolveEditedEntityAndContext( { postId, postType } ) {\n\tconst { isRequestingSite, homepageId, url } = useSelect( ( select ) => {\n\t\tconst { getSite, getUnstableBase } = select( coreDataStore );\n\t\tconst siteData = getSite();\n\t\tconst base = getUnstableBase();\n\n\t\treturn {\n\t\t\tisRequestingSite: ! base,\n\t\t\thomepageId:\n\t\t\t\tsiteData?.show_on_front === 'page'\n\t\t\t\t\t? siteData.page_on_front\n\t\t\t\t\t: null,\n\t\t\turl: base?.home,\n\t\t};\n\t}, [] );\n\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: `${ postTypeToResolve }-${ editedEntity?.slug }`,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, post... we need to resolve its template.\n\t\t\tif ( postType && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( ! isRequestingSite && url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[ homepageId, isRequestingSite, url, postId, postType ]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId ] );\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( ( postType && postId ) || homepageId || ! isRequestingSite ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport function useInitEditedEntity( params ) {\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\treturn useInitEditedEntity( params );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useSelect","useDispatch","store","coreDataStore","privateApis","routerPrivateApis","editSiteStore","unlock","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","useLocation","postTypesWithoutParentTemplate","user","useResolveEditedEntityAndContext","postId","postType","hasLoadedAllDependencies","homepageId","url","frontPageTemplateId","select","getSite","getUnstableBase","getEntityRecords","siteData","base","templates","per_page","_frontPateTemplateId","frontPageTemplate","find","t","slug","id","show_on_front","page_on_front","toString","home","resolvedTemplateId","includes","undefined","getEditedEntityRecord","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","currentTemplateSlug","template","currentTemplate","context","isReady","useInitEditedEntity","params","setEditedEntity","useInitEditedEntityFromURL"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nfunction useResolveEditedEntityAndContext( { postId, postType } ) {\n\tconst { hasLoadedAllDependencies, homepageId, url, frontPageTemplateId } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSite, getUnstableBase, getEntityRecords } =\n\t\t\t\tselect( coreDataStore );\n\t\t\tconst siteData = getSite();\n\t\t\tconst base = getUnstableBase();\n\t\t\tconst templates = getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t);\n\t\t\tlet _frontPateTemplateId;\n\t\t\tif ( templates ) {\n\t\t\t\tconst frontPageTemplate = templates.find(\n\t\t\t\t\t( t ) => t.slug === 'front-page'\n\t\t\t\t);\n\t\t\t\t_frontPateTemplateId = frontPageTemplate\n\t\t\t\t\t? frontPageTemplate.id\n\t\t\t\t\t: false;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasLoadedAllDependencies: !! base && !! siteData,\n\t\t\t\thomepageId:\n\t\t\t\t\tsiteData?.show_on_front === 'page'\n\t\t\t\t\t\t? siteData.page_on_front.toString()\n\t\t\t\t\t\t: null,\n\t\t\t\turl: base?.home,\n\t\t\t\tfrontPageTemplateId: _frontPateTemplateId,\n\t\t\t};\n\t\t}, [] );\n\n\t/**\n\t * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId\n\t * in order to match the frontend as closely as possible in the site editor.\n\t *\n\t * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.\n\t */\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\t// For the front page, we always use the front page template if existing.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\thomepageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\t// We're still checking whether the front page template exists.\n\t\t\t\t\t// Don't resolve the template yet.\n\t\t\t\t\tif ( frontPageTemplateId === undefined ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !! frontPageTemplateId ) {\n\t\t\t\t\t\treturn frontPageTemplateId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: `${ postTypeToResolve }-${ editedEntity?.slug }`,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( ! hasLoadedAllDependencies ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, post... we need to resolve its template.\n\t\t\tif ( postType && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\thomepageId,\n\t\t\thasLoadedAllDependencies,\n\t\t\turl,\n\t\t\tpostId,\n\t\t\tpostType,\n\t\t\tfrontPageTemplateId,\n\t\t]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId ] );\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( hasLoadedAllDependencies ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport function useInitEditedEntity( params ) {\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\treturn useInitEditedEntity( params );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,oBAAoB;AACvD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,aAAa,QAAQ,sBAAsB;AAC7D,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASH,KAAK,IAAII,aAAa,QAAQ,aAAa;AACpD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SACCC,kBAAkB,EAClBC,uBAAuB,EACvBC,oBAAoB,EACpBC,aAAa,QACP,uBAAuB;AAE9B,MAAM;EAAEC;AAAY,CAAC,GAAGL,MAAM,CAAEF,iBAAkB,CAAC;AAEnD,MAAMQ,8BAA8B,GAAG,CACtCL,kBAAkB,EAClBC,uBAAuB,EACvBC,oBAAoB,EACpBC,aAAa,CAACG,IAAI,CAClB;AAED,SAASC,gCAAgCA,CAAE;EAAEC,MAAM;EAAEC;AAAS,CAAC,EAAG;EACjE,MAAM;IAAEC,wBAAwB;IAAEC,UAAU;IAAEC,GAAG;IAAEC;EAAoB,CAAC,GACvErB,SAAS,CAAIsB,MAAM,IAAM;IACxB,MAAM;MAAEC,OAAO;MAAEC,eAAe;MAAEC;IAAiB,CAAC,GACnDH,MAAM,CAAEnB,aAAc,CAAC;IACxB,MAAMuB,QAAQ,GAAGH,OAAO,CAAC,CAAC;IAC1B,MAAMI,IAAI,GAAGH,eAAe,CAAC,CAAC;IAC9B,MAAMI,SAAS,GAAGH,gBAAgB,CACjC,UAAU,EACVjB,kBAAkB,EAClB;MACCqB,QAAQ,EAAE,CAAC;IACZ,CACD,CAAC;IACD,IAAIC,oBAAoB;IACxB,IAAKF,SAAS,EAAG;MAChB,MAAMG,iBAAiB,GAAGH,SAAS,CAACI,IAAI,CACrCC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAK,YACrB,CAAC;MACDJ,oBAAoB,GAAGC,iBAAiB,GACrCA,iBAAiB,CAACI,EAAE,GACpB,KAAK;IACT;IAEA,OAAO;MACNjB,wBAAwB,EAAE,CAAC,CAAES,IAAI,IAAI,CAAC,CAAED,QAAQ;MAChDP,UAAU,EACTO,QAAQ,EAAEU,aAAa,KAAK,MAAM,GAC/BV,QAAQ,CAACW,aAAa,CAACC,QAAQ,CAAC,CAAC,GACjC,IAAI;MACRlB,GAAG,EAAEO,IAAI,EAAEY,IAAI;MACflB,mBAAmB,EAAES;IACtB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;;EAER;AACD;AACA;AACA;AACA;AACA;EACC,MAAMU,kBAAkB,GAAGxC,SAAS,CACjCsB,MAAM,IAAM;IACb;IACA;IACA,IAAKT,8BAA8B,CAAC4B,QAAQ,CAAExB,QAAS,CAAC,EAAG;MAC1D,OAAOyB,SAAS;IACjB;IAEA,MAAM;MACLC,qBAAqB;MACrBlB,gBAAgB;MAChBmB,oBAAoB;MACpBC;IACD,CAAC,GAAGvB,MAAM,CAAEnB,aAAc,CAAC;IAE3B,SAAS2C,+BAA+BA,CACvCC,iBAAiB,EACjBC,eAAe,EACd;MACD;MACA,IACCD,iBAAiB,KAAK,MAAM,IAC5B5B,UAAU,KAAK6B,eAAe,EAC7B;QACD;QACA;QACA,IAAK3B,mBAAmB,KAAKqB,SAAS,EAAG;UACxC,OAAOA,SAAS;QACjB;QAEA,IAAK,CAAC,CAAErB,mBAAmB,EAAG;UAC7B,OAAOA,mBAAmB;QAC3B;MACD;MAEA,MAAM4B,YAAY,GAAGN,qBAAqB,CACzC,UAAU,EACVI,iBAAiB,EACjBC,eACD,CAAC;MACD,IAAK,CAAEC,YAAY,EAAG;QACrB,OAAOP,SAAS;MACjB;MACA;MACA,MAAMQ,mBAAmB,GAAGD,YAAY,CAACE,QAAQ;MACjD,IAAKD,mBAAmB,EAAG;QAC1B,MAAME,eAAe,GAAG3B,gBAAgB,CACvC,UAAU,EACVjB,kBAAkB,EAClB;UACCqB,QAAQ,EAAE,CAAC;QACZ,CACD,CAAC,EAAEG,IAAI,CAAE,CAAE;UAAEE;QAAK,CAAC,KAAMA,IAAI,KAAKgB,mBAAoB,CAAC;QACvD,IAAKE,eAAe,EAAG;UACtB,OAAOA,eAAe,CAACjB,EAAE;QAC1B;MACD;;MAEA;MACA,OAAOS,oBAAoB,CAAE;QAC5BV,IAAI,EAAG,GAAGa,iBAAmB,IAAIE,YAAY,EAAEf,IAAM;MACtD,CAAE,CAAC;IACJ;IAEA,IAAK,CAAEhB,wBAAwB,EAAG;MACjC,OAAOwB,SAAS;IACjB;;IAEA;IACA,IAAKzB,QAAQ,IAAID,MAAM,EAAG;MACzB,OAAO8B,+BAA+B,CAAE7B,QAAQ,EAAED,MAAO,CAAC;IAC3D;;IAEA;IACA,IAAKG,UAAU,EAAG;MACjB,OAAO2B,+BAA+B,CAAE,MAAM,EAAE3B,UAAW,CAAC;IAC7D;;IAEA;IACA,IAAKC,GAAG,EAAG;MACV,MAAM+B,QAAQ,GAAGN,gCAAgC,CAAEzB,GAAI,CAAC;MACxD,OAAO+B,QAAQ,EAAEhB,EAAE;IACpB;EACD,CAAC,EACD,CACChB,UAAU,EACVD,wBAAwB,EACxBE,GAAG,EACHJ,MAAM,EACNC,QAAQ,EACRI,mBAAmB,CAErB,CAAC;EAED,MAAMgC,OAAO,GAAGtD,OAAO,CAAE,MAAM;IAC9B,IAAKc,8BAA8B,CAAC4B,QAAQ,CAAExB,QAAS,CAAC,EAAG;MAC1D,OAAO,CAAC,CAAC;IACV;IAEA,IAAKA,QAAQ,IAAID,MAAM,EAAG;MACzB,OAAO;QAAEC,QAAQ;QAAED;MAAO,CAAC;IAC5B;IAEA,IAAKG,UAAU,EAAG;MACjB,OAAO;QAAEF,QAAQ,EAAE,MAAM;QAAED,MAAM,EAAEG;MAAW,CAAC;IAChD;IAEA,OAAO,CAAC,CAAC;EACV,CAAC,EAAE,CAAEA,UAAU,EAAEF,QAAQ,EAAED,MAAM,CAAG,CAAC;EAErC,IAAKH,8BAA8B,CAAC4B,QAAQ,CAAExB,QAAS,CAAC,EAAG;IAC1D,OAAO;MAAEqC,OAAO,EAAE,IAAI;MAAErC,QAAQ;MAAED,MAAM;MAAEqC;IAAQ,CAAC;EACpD;EAEA,IAAKnC,wBAAwB,EAAG;IAC/B,OAAO;MACNoC,OAAO,EAAEd,kBAAkB,KAAKE,SAAS;MACzCzB,QAAQ,EAAET,kBAAkB;MAC5BQ,MAAM,EAAEwB,kBAAkB;MAC1Ba;IACD,CAAC;EACF;EAEA,OAAO;IAAEC,OAAO,EAAE;EAAM,CAAC;AAC1B;AAEA,OAAO,SAASC,mBAAmBA,CAAEC,MAAM,EAAG;EAC7C,MAAM;IAAEvC,QAAQ;IAAED,MAAM;IAAEqC,OAAO;IAAEC;EAAQ,CAAC,GAC3CvC,gCAAgC,CAAEyC,MAAO,CAAC;EAE3C,MAAM;IAAEC;EAAgB,CAAC,GAAGxD,WAAW,CAAEK,aAAc,CAAC;EAExDR,SAAS,CAAE,MAAM;IAChB,IAAKwD,OAAO,EAAG;MACdG,eAAe,CAAExC,QAAQ,EAAED,MAAM,EAAEqC,OAAQ,CAAC;IAC7C;EACD,CAAC,EAAE,CAAEC,OAAO,EAAErC,QAAQ,EAAED,MAAM,EAAEqC,OAAO,EAAEI,eAAe,CAAG,CAAC;AAC7D;AAEA,eAAe,SAASC,0BAA0BA,CAAA,EAAG;EACpD,MAAM;IAAEF,MAAM,GAAG,CAAC;EAAE,CAAC,GAAG5C,WAAW,CAAC,CAAC;EACrC,OAAO2C,mBAAmB,CAAEC,MAAO,CAAC;AACrC"}
|
|
@@ -19,9 +19,9 @@ export default function WelcomeGuidePage() {
|
|
|
19
19
|
const isPageActive = !!select(preferencesStore).get('core/edit-site', 'welcomeGuidePage');
|
|
20
20
|
const isEditorActive = !!select(preferencesStore).get('core/edit-site', 'welcomeGuide');
|
|
21
21
|
const {
|
|
22
|
-
|
|
22
|
+
isPage
|
|
23
23
|
} = select(editSiteStore);
|
|
24
|
-
return isPageActive && !isEditorActive &&
|
|
24
|
+
return isPageActive && !isEditorActive && isPage();
|
|
25
25
|
}, []);
|
|
26
26
|
if (!isVisible) {
|
|
27
27
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useDispatch","useSelect","Guide","__","store","preferencesStore","editSiteStore","WelcomeGuidePage","toggle","isVisible","select","isPageActive","get","isEditorActive","
|
|
1
|
+
{"version":3,"names":["useDispatch","useSelect","Guide","__","store","preferencesStore","editSiteStore","WelcomeGuidePage","toggle","isVisible","select","isPageActive","get","isEditorActive","isPage","heading","createElement","className","contentLabel","finishButtonText","onFinish","pages","image","autoPlay","loop","muted","width","height","src","type","content","Fragment"],"sources":["@wordpress/edit-site/src/components/welcome-guide/page.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function WelcomeGuidePage() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst isPageActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuidePage'\n\t\t);\n\t\tconst isEditorActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuide'\n\t\t);\n\t\tconst { isPage } = select( editSiteStore );\n\t\treturn isPageActive && ! isEditorActive && isPage();\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst heading = __( 'Editing a page' );\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-page\"\n\t\t\tcontentLabel={ heading }\n\t\t\tfinishButtonText={ __( 'Continue' ) }\n\t\t\tonFinish={ () => toggle( 'core/edit-site', 'welcomeGuidePage' ) }\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tclassName=\"edit-site-welcome-guide__video\"\n\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\twidth=\"312\"\n\t\t\t\t\t\t\theight=\"240\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<source\n\t\t\t\t\t\t\t\tsrc=\"https://s.w.org/images/block-editor/editing-your-page.mp4\"\n\t\t\t\t\t\t\t\ttype=\"video/mp4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</video>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ heading }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'It’s now possible to edit page content in the site editor. To customise other parts of the page like the header and footer switch to editing the template using the settings sidebar.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,wBAAwB;;AAElE;AACA;AACA;AACA,SAASD,KAAK,IAAIE,aAAa,QAAQ,aAAa;AAEpD,eAAe,SAASC,gBAAgBA,CAAA,EAAG;EAC1C,MAAM;IAAEC;EAAO,CAAC,GAAGR,WAAW,CAAEK,gBAAiB,CAAC;EAElD,MAAMI,SAAS,GAAGR,SAAS,CAAIS,MAAM,IAAM;IAC1C,MAAMC,YAAY,GAAG,CAAC,CAAED,MAAM,CAAEL,gBAAiB,CAAC,CAACO,GAAG,CACrD,gBAAgB,EAChB,kBACD,CAAC;IACD,MAAMC,cAAc,GAAG,CAAC,CAAEH,MAAM,CAAEL,gBAAiB,CAAC,CAACO,GAAG,CACvD,gBAAgB,EAChB,cACD,CAAC;IACD,MAAM;MAAEE;IAAO,CAAC,GAAGJ,MAAM,CAAEJ,aAAc,CAAC;IAC1C,OAAOK,YAAY,IAAI,CAAEE,cAAc,IAAIC,MAAM,CAAC,CAAC;EACpD,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEL,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMM,OAAO,GAAGZ,EAAE,CAAE,gBAAiB,CAAC;EAEtC,OACCa,aAAA,CAACd,KAAK;IACLe,SAAS,EAAC,oCAAoC;IAC9CC,YAAY,EAAGH,OAAS;IACxBI,gBAAgB,EAAGhB,EAAE,CAAE,UAAW,CAAG;IACrCiB,QAAQ,EAAGA,CAAA,KAAMZ,MAAM,CAAE,gBAAgB,EAAE,kBAAmB,CAAG;IACjEa,KAAK,EAAG,CACP;MACCC,KAAK,EACJN,aAAA;QACCC,SAAS,EAAC,gCAAgC;QAC1CM,QAAQ;QACRC,IAAI;QACJC,KAAK;QACLC,KAAK,EAAC,KAAK;QACXC,MAAM,EAAC;MAAK,GAEZX,aAAA;QACCY,GAAG,EAAC,2DAA2D;QAC/DC,IAAI,EAAC;MAAW,CAChB,CACK,CACP;MACDC,OAAO,EACNd,aAAA,CAAAe,QAAA,QACCf,aAAA;QAAIC,SAAS,EAAC;MAAkC,GAC7CF,OACC,CAAC,EACLC,aAAA;QAAGC,SAAS,EAAC;MAA+B,GACzCd,EAAE,CACH,uLACD,CACE,CACF;IAEJ,CAAC;EACC,CACH,CAAC;AAEJ"}
|
|
@@ -6,6 +6,7 @@ import { useDispatch, useSelect } from '@wordpress/data';
|
|
|
6
6
|
import { Guide } from '@wordpress/components';
|
|
7
7
|
import { __ } from '@wordpress/i18n';
|
|
8
8
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
9
|
+
import { store as editorStore } from '@wordpress/editor';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Internal dependencies
|
|
@@ -19,10 +20,12 @@ export default function WelcomeGuideTemplate() {
|
|
|
19
20
|
const isTemplateActive = !!select(preferencesStore).get('core/edit-site', 'welcomeGuideTemplate');
|
|
20
21
|
const isEditorActive = !!select(preferencesStore).get('core/edit-site', 'welcomeGuide');
|
|
21
22
|
const {
|
|
22
|
-
isPage
|
|
23
|
-
hasPageContentFocus
|
|
23
|
+
isPage
|
|
24
24
|
} = select(editSiteStore);
|
|
25
|
-
|
|
25
|
+
const {
|
|
26
|
+
getRenderingMode
|
|
27
|
+
} = select(editorStore);
|
|
28
|
+
return isTemplateActive && !isEditorActive && isPage() && getRenderingMode() === 'template-only';
|
|
26
29
|
}, []);
|
|
27
30
|
if (!isVisible) {
|
|
28
31
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useDispatch","useSelect","Guide","__","store","preferencesStore","editSiteStore","WelcomeGuideTemplate","toggle","isVisible","select","isTemplateActive","get","isEditorActive","isPage","
|
|
1
|
+
{"version":3,"names":["useDispatch","useSelect","Guide","__","store","preferencesStore","editorStore","editSiteStore","WelcomeGuideTemplate","toggle","isVisible","select","isTemplateActive","get","isEditorActive","isPage","getRenderingMode","heading","createElement","className","contentLabel","finishButtonText","onFinish","pages","image","autoPlay","loop","muted","width","height","src","type","content","Fragment"],"sources":["@wordpress/edit-site/src/components/welcome-guide/template.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function WelcomeGuideTemplate() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst isTemplateActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuideTemplate'\n\t\t);\n\t\tconst isEditorActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuide'\n\t\t);\n\t\tconst { isPage } = select( editSiteStore );\n\t\tconst { getRenderingMode } = select( editorStore );\n\t\treturn (\n\t\t\tisTemplateActive &&\n\t\t\t! isEditorActive &&\n\t\t\tisPage() &&\n\t\t\tgetRenderingMode() === 'template-only'\n\t\t);\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst heading = __( 'Editing a template' );\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-template\"\n\t\t\tcontentLabel={ heading }\n\t\t\tfinishButtonText={ __( 'Continue' ) }\n\t\t\tonFinish={ () =>\n\t\t\t\ttoggle( 'core/edit-site', 'welcomeGuideTemplate' )\n\t\t\t}\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tclassName=\"edit-site-welcome-guide__video\"\n\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\twidth=\"312\"\n\t\t\t\t\t\t\theight=\"240\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<source\n\t\t\t\t\t\t\t\tsrc=\"https://s.w.org/images/block-editor/editing-your-template.mp4\"\n\t\t\t\t\t\t\t\ttype=\"video/mp4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</video>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ heading }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Note that the same template can be used by multiple pages, so any changes made here may affect other pages on the site. To switch back to editing the page content click the ‘Back’ button in the toolbar.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,wBAAwB;AAClE,SAASD,KAAK,IAAIE,WAAW,QAAQ,mBAAmB;;AAExD;AACA;AACA;AACA,SAASF,KAAK,IAAIG,aAAa,QAAQ,aAAa;AAEpD,eAAe,SAASC,oBAAoBA,CAAA,EAAG;EAC9C,MAAM;IAAEC;EAAO,CAAC,GAAGT,WAAW,CAAEK,gBAAiB,CAAC;EAElD,MAAMK,SAAS,GAAGT,SAAS,CAAIU,MAAM,IAAM;IAC1C,MAAMC,gBAAgB,GAAG,CAAC,CAAED,MAAM,CAAEN,gBAAiB,CAAC,CAACQ,GAAG,CACzD,gBAAgB,EAChB,sBACD,CAAC;IACD,MAAMC,cAAc,GAAG,CAAC,CAAEH,MAAM,CAAEN,gBAAiB,CAAC,CAACQ,GAAG,CACvD,gBAAgB,EAChB,cACD,CAAC;IACD,MAAM;MAAEE;IAAO,CAAC,GAAGJ,MAAM,CAAEJ,aAAc,CAAC;IAC1C,MAAM;MAAES;IAAiB,CAAC,GAAGL,MAAM,CAAEL,WAAY,CAAC;IAClD,OACCM,gBAAgB,IAChB,CAAEE,cAAc,IAChBC,MAAM,CAAC,CAAC,IACRC,gBAAgB,CAAC,CAAC,KAAK,eAAe;EAExC,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEN,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMO,OAAO,GAAGd,EAAE,CAAE,oBAAqB,CAAC;EAE1C,OACCe,aAAA,CAAChB,KAAK;IACLiB,SAAS,EAAC,wCAAwC;IAClDC,YAAY,EAAGH,OAAS;IACxBI,gBAAgB,EAAGlB,EAAE,CAAE,UAAW,CAAG;IACrCmB,QAAQ,EAAGA,CAAA,KACVb,MAAM,CAAE,gBAAgB,EAAE,sBAAuB,CACjD;IACDc,KAAK,EAAG,CACP;MACCC,KAAK,EACJN,aAAA;QACCC,SAAS,EAAC,gCAAgC;QAC1CM,QAAQ;QACRC,IAAI;QACJC,KAAK;QACLC,KAAK,EAAC,KAAK;QACXC,MAAM,EAAC;MAAK,GAEZX,aAAA;QACCY,GAAG,EAAC,+DAA+D;QACnEC,IAAI,EAAC;MAAW,CAChB,CACK,CACP;MACDC,OAAO,EACNd,aAAA,CAAAe,QAAA,QACCf,aAAA;QAAIC,SAAS,EAAC;MAAkC,GAC7CF,OACC,CAAC,EACLC,aAAA;QAAGC,SAAS,EAAC;MAA+B,GACzChB,EAAE,CACH,4MACD,CACE,CACF;IAEJ,CAAC;EACC,CACH,CAAC;AAEJ"}
|
|
@@ -10,6 +10,7 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
|
10
10
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
11
11
|
import { store as interfaceStore } from '@wordpress/interface';
|
|
12
12
|
import { store as noticesStore } from '@wordpress/notices';
|
|
13
|
+
import { store as editorStore } from '@wordpress/editor';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Internal dependencies
|
|
@@ -33,15 +34,24 @@ function usePageContentFocusCommands() {
|
|
|
33
34
|
const {
|
|
34
35
|
isPage,
|
|
35
36
|
canvasMode,
|
|
36
|
-
|
|
37
|
-
} = useSelect(select =>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
renderingMode
|
|
38
|
+
} = useSelect(select => {
|
|
39
|
+
const {
|
|
40
|
+
isPage: _isPage,
|
|
41
|
+
getCanvasMode
|
|
42
|
+
} = unlock(select(editSiteStore));
|
|
43
|
+
const {
|
|
44
|
+
getRenderingMode
|
|
45
|
+
} = select(editorStore);
|
|
46
|
+
return {
|
|
47
|
+
isPage: _isPage(),
|
|
48
|
+
canvasMode: getCanvasMode(),
|
|
49
|
+
renderingMode: getRenderingMode()
|
|
50
|
+
};
|
|
51
|
+
}, []);
|
|
42
52
|
const {
|
|
43
|
-
|
|
44
|
-
} = useDispatch(
|
|
53
|
+
setRenderingMode
|
|
54
|
+
} = useDispatch(editorStore);
|
|
45
55
|
if (!isPage || canvasMode !== 'edit') {
|
|
46
56
|
return {
|
|
47
57
|
isLoading: false,
|
|
@@ -49,7 +59,7 @@ function usePageContentFocusCommands() {
|
|
|
49
59
|
};
|
|
50
60
|
}
|
|
51
61
|
const commands = [];
|
|
52
|
-
if (
|
|
62
|
+
if (renderingMode !== 'template-only') {
|
|
53
63
|
commands.push({
|
|
54
64
|
name: 'core/switch-to-template-focus',
|
|
55
65
|
/* translators: %1$s: template title */
|
|
@@ -58,7 +68,7 @@ function usePageContentFocusCommands() {
|
|
|
58
68
|
callback: ({
|
|
59
69
|
close
|
|
60
70
|
}) => {
|
|
61
|
-
|
|
71
|
+
setRenderingMode('template-only');
|
|
62
72
|
close();
|
|
63
73
|
}
|
|
64
74
|
});
|
|
@@ -70,7 +80,7 @@ function usePageContentFocusCommands() {
|
|
|
70
80
|
callback: ({
|
|
71
81
|
close
|
|
72
82
|
}) => {
|
|
73
|
-
|
|
83
|
+
setRenderingMode('template-locked');
|
|
74
84
|
close();
|
|
75
85
|
}
|
|
76
86
|
});
|
|
@@ -126,7 +136,7 @@ function useManipulateDocumentCommands() {
|
|
|
126
136
|
revertTemplate
|
|
127
137
|
} = useDispatch(editSiteStore);
|
|
128
138
|
const history = useHistory();
|
|
129
|
-
const
|
|
139
|
+
const isEditingPage = useSelect(select => select(editSiteStore).isPage() && select(editorStore).getRenderingMode() !== 'template-only', []);
|
|
130
140
|
if (!isLoaded) {
|
|
131
141
|
return {
|
|
132
142
|
isLoading: true,
|
|
@@ -134,7 +144,7 @@ function useManipulateDocumentCommands() {
|
|
|
134
144
|
};
|
|
135
145
|
}
|
|
136
146
|
const commands = [];
|
|
137
|
-
if (isTemplateRevertable(template) && !
|
|
147
|
+
if (isTemplateRevertable(template) && !isEditingPage) {
|
|
138
148
|
const label = template.type === TEMPLATE_POST_TYPE ? /* translators: %1$s: template title */
|
|
139
149
|
sprintf('Reset template: %s', decodeEntities(template.title)) : /* translators: %1$s: template part title */
|
|
140
150
|
sprintf('Reset template part: %s', decodeEntities(template.title));
|
|
@@ -150,7 +160,7 @@ function useManipulateDocumentCommands() {
|
|
|
150
160
|
}
|
|
151
161
|
});
|
|
152
162
|
}
|
|
153
|
-
if (isTemplateRemovable(template) && !
|
|
163
|
+
if (isTemplateRemovable(template) && !isEditingPage) {
|
|
154
164
|
const label = template.type === TEMPLATE_POST_TYPE ? /* translators: %1$s: template title */
|
|
155
165
|
sprintf('Delete template: %s', decodeEntities(template.title)) : /* translators: %1$s: template part title */
|
|
156
166
|
sprintf('Delete template part: %s', decodeEntities(template.title));
|