@wordpress/edit-site 6.17.1 → 6.18.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/add-new-pattern/index.js +0 -1
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/add-new-template/add-custom-template-modal-content.js +0 -1
- package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build/components/add-new-template/index.js +0 -1
- package/build/components/add-new-template/index.js.map +1 -1
- package/build/components/add-new-template/utils.js +0 -1
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/editor/index.js +7 -5
- package/build/components/editor/index.js.map +1 -1
- package/build/components/{maybe-editor/index.js → editor/site-preview.js} +9 -25
- package/build/components/editor/site-preview.js.map +1 -0
- package/build/components/editor-canvas-container/index.js +0 -1
- package/build/components/editor-canvas-container/index.js.map +1 -1
- package/build/components/global-styles/font-families.js +0 -1
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-library-modal/collection-font-variant.js +2 -5
- package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +0 -1
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +0 -1
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-demo.js +0 -1
- package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +0 -1
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +0 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-details.js +0 -1
- package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-variant.js +1 -5
- package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/upload-fonts.js +0 -1
- package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +0 -1
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +0 -1
- package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js +0 -1
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +0 -1
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js +0 -1
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/toggleFont.js +0 -1
- package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -1
- package/build/components/global-styles/font-sizes/font-size.js +0 -1
- package/build/components/global-styles/font-sizes/font-size.js.map +1 -1
- package/build/components/global-styles/font-sizes/font-sizes.js +0 -1
- package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -1
- package/build/components/global-styles/highlighted-colors.js +0 -1
- package/build/components/global-styles/highlighted-colors.js.map +1 -1
- package/build/components/global-styles/hooks.js +0 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/palette.js +0 -1
- package/build/components/global-styles/palette.js.map +1 -1
- package/build/components/global-styles/preset-colors.js +0 -1
- package/build/components/global-styles/preset-colors.js.map +1 -1
- package/build/components/global-styles/preview-styles.js +0 -1
- package/build/components/global-styles/preview-styles.js.map +1 -1
- package/build/components/global-styles/preview-wrapper.js +0 -1
- package/build/components/global-styles/preview-wrapper.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +9 -3
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-css.js +9 -1
- package/build/components/global-styles/screen-css.js.map +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js +0 -1
- 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 +0 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build/components/global-styles/screen-root.js +1 -0
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/shadow-utils.js +0 -1
- package/build/components/global-styles/shadow-utils.js.map +1 -1
- package/build/components/global-styles/shadows-edit-panel.js +0 -1
- package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build/components/global-styles/shadows-panel.js +0 -1
- package/build/components/global-styles/shadows-panel.js.map +1 -1
- package/build/components/global-styles/style-variations-container.js +0 -1
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/typeset.js +0 -1
- package/build/components/global-styles/typeset.js.map +1 -1
- package/build/components/global-styles/ui.js +0 -1
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/utils.js +0 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/global-styles/variations/variations-color.js +0 -1
- package/build/components/global-styles/variations/variations-color.js.map +1 -1
- package/build/components/global-styles/variations/variations-panel.js +0 -1
- package/build/components/global-styles/variations/variations-panel.js.map +1 -1
- package/build/components/global-styles/variations/variations-typography.js +0 -1
- package/build/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build/components/global-styles-renderer/index.js +0 -1
- package/build/components/global-styles-renderer/index.js.map +1 -1
- package/build/components/media/index.js +2 -3
- package/build/components/media/index.js.map +1 -1
- package/build/components/page-patterns/fields.js +0 -1
- package/build/components/page-patterns/fields.js.map +1 -1
- package/build/components/page-patterns/header.js +0 -1
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/index.js +0 -1
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/search-items.js +0 -1
- package/build/components/page-patterns/search-items.js.map +1 -1
- package/build/components/page-patterns/use-pattern-settings.js +0 -1
- package/build/components/page-patterns/use-pattern-settings.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +0 -1
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates/index.js +0 -1
- package/build/components/page-templates/index.js.map +1 -1
- package/build/components/post-edit/index.js +0 -1
- package/build/components/post-edit/index.js.map +1 -1
- package/build/components/post-list/index.js +0 -1
- package/build/components/post-list/index.js.map +1 -1
- package/build/components/posts-app-routes/index.js +0 -1
- package/build/components/posts-app-routes/index.js.map +1 -1
- package/build/components/resizable-frame/index.js +1 -1
- package/build/components/resizable-frame/index.js.map +1 -1
- package/build/components/save-button/index.js +0 -1
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/save-hub/index.js +0 -1
- package/build/components/save-hub/index.js.map +1 -1
- package/build/components/save-keyboard-shortcut/index.js +0 -1
- package/build/components/save-keyboard-shortcut/index.js.map +1 -1
- package/build/components/save-panel/index.js +0 -1
- package/build/components/save-panel/index.js.map +1 -1
- package/build/components/sidebar/index.js +0 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js +0 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build/components/sidebar-dataviews/dataview-item.js +0 -1
- package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +0 -1
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen/index.js +0 -6
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-main/index.js +12 -2
- package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +0 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +0 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +0 -1
- package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +0 -1
- package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/content.js +0 -1
- package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
- package/build/components/site-editor-routes/home.js +3 -3
- package/build/components/site-editor-routes/home.js.map +1 -1
- package/build/components/site-editor-routes/index.js +2 -2
- package/build/components/site-editor-routes/index.js.map +1 -1
- package/build/components/site-editor-routes/notfound.js +33 -0
- package/build/components/site-editor-routes/notfound.js.map +1 -0
- package/build/components/site-editor-routes/template-item.js +3 -3
- package/build/components/site-editor-routes/template-item.js.map +1 -1
- package/build/components/site-editor-routes/template-part-item.js +3 -3
- package/build/components/site-editor-routes/template-part-item.js.map +1 -1
- package/build/components/style-book/categories.js +0 -1
- package/build/components/style-book/categories.js.map +1 -1
- package/build/components/style-book/color-examples.js +0 -1
- package/build/components/style-book/color-examples.js.map +1 -1
- package/build/components/style-book/duotone-examples.js +0 -1
- package/build/components/style-book/duotone-examples.js.map +1 -1
- package/build/components/style-book/examples.js +0 -1
- package/build/components/style-book/examples.js.map +1 -1
- package/build/components/style-book/index.js +7 -18
- package/build/components/style-book/index.js.map +1 -1
- package/build/index.js +0 -1
- package/build/index.js.map +1 -1
- package/build/posts.js +0 -1
- package/build/posts.js.map +1 -1
- package/build/store/reducer.js +0 -1
- package/build/store/reducer.js.map +1 -1
- package/build/utils/get-filtered-template-parts.js +0 -1
- package/build/utils/get-filtered-template-parts.js.map +1 -1
- package/build/utils/set-nested-value.js +0 -1
- package/build/utils/set-nested-value.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +0 -1
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/add-new-template/add-custom-template-modal-content.js +0 -1
- package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build-module/components/add-new-template/index.js +0 -1
- package/build-module/components/add-new-template/index.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +0 -1
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/editor/index.js +7 -5
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/{maybe-editor/index.js → editor/site-preview.js} +8 -25
- package/build-module/components/editor/site-preview.js.map +1 -0
- package/build-module/components/editor-canvas-container/index.js +0 -1
- package/build-module/components/editor-canvas-container/index.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +0 -1
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +3 -6
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +0 -1
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +0 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-demo.js +0 -1
- package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js +0 -1
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +0 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-details.js +0 -1
- package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js +3 -7
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js +0 -1
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -1
- package/build-module/components/global-styles/font-sizes/font-size.js +0 -1
- package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -1
- package/build-module/components/global-styles/font-sizes/font-sizes.js +0 -1
- package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -1
- package/build-module/components/global-styles/highlighted-colors.js +0 -1
- package/build-module/components/global-styles/highlighted-colors.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +0 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/palette.js +0 -1
- package/build-module/components/global-styles/palette.js.map +1 -1
- package/build-module/components/global-styles/preset-colors.js +0 -1
- package/build-module/components/global-styles/preset-colors.js.map +1 -1
- package/build-module/components/global-styles/preview-styles.js +0 -1
- package/build-module/components/global-styles/preview-styles.js.map +1 -1
- package/build-module/components/global-styles/preview-wrapper.js +0 -1
- package/build-module/components/global-styles/preview-wrapper.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js +10 -4
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-css.js +9 -1
- package/build-module/components/global-styles/screen-css.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +0 -1
- 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 +0 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +1 -0
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/shadow-utils.js +0 -1
- package/build-module/components/global-styles/shadow-utils.js.map +1 -1
- package/build-module/components/global-styles/shadows-edit-panel.js +0 -1
- package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build-module/components/global-styles/shadows-panel.js +0 -1
- package/build-module/components/global-styles/shadows-panel.js.map +1 -1
- package/build-module/components/global-styles/style-variations-container.js +0 -1
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/typeset.js +0 -1
- package/build-module/components/global-styles/typeset.js.map +1 -1
- package/build-module/components/global-styles/ui.js +0 -1
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/utils.js +0 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-color.js +0 -1
- package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-panel.js +0 -1
- package/build-module/components/global-styles/variations/variations-panel.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-typography.js +0 -1
- package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build-module/components/global-styles-renderer/index.js +0 -1
- package/build-module/components/global-styles-renderer/index.js.map +1 -1
- package/build-module/components/media/index.js +2 -3
- package/build-module/components/media/index.js.map +1 -1
- package/build-module/components/page-patterns/fields.js +0 -1
- package/build-module/components/page-patterns/fields.js.map +1 -1
- package/build-module/components/page-patterns/header.js +0 -1
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/index.js +0 -1
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/search-items.js +0 -1
- package/build-module/components/page-patterns/search-items.js.map +1 -1
- package/build-module/components/page-patterns/use-pattern-settings.js +0 -1
- package/build-module/components/page-patterns/use-pattern-settings.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +0 -1
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates/index.js +0 -1
- package/build-module/components/page-templates/index.js.map +1 -1
- package/build-module/components/post-edit/index.js +0 -1
- package/build-module/components/post-edit/index.js.map +1 -1
- package/build-module/components/post-list/index.js +0 -1
- package/build-module/components/post-list/index.js.map +1 -1
- package/build-module/components/posts-app-routes/index.js +0 -1
- package/build-module/components/posts-app-routes/index.js.map +1 -1
- package/build-module/components/resizable-frame/index.js +1 -1
- package/build-module/components/resizable-frame/index.js.map +1 -1
- package/build-module/components/save-button/index.js +0 -1
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/save-hub/index.js +0 -1
- package/build-module/components/save-hub/index.js.map +1 -1
- package/build-module/components/save-keyboard-shortcut/index.js +0 -1
- package/build-module/components/save-keyboard-shortcut/index.js.map +1 -1
- package/build-module/components/save-panel/index.js +0 -1
- package/build-module/components/save-panel/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +0 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +0 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js +0 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +0 -1
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen/index.js +0 -6
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/index.js +12 -2
- package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js +0 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +0 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +0 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +0 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +0 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
- package/build-module/components/site-editor-routes/home.js +3 -3
- package/build-module/components/site-editor-routes/home.js.map +1 -1
- package/build-module/components/site-editor-routes/index.js +2 -2
- package/build-module/components/site-editor-routes/index.js.map +1 -1
- package/build-module/components/site-editor-routes/notfound.js +25 -0
- package/build-module/components/site-editor-routes/notfound.js.map +1 -0
- package/build-module/components/site-editor-routes/template-item.js +3 -3
- package/build-module/components/site-editor-routes/template-item.js.map +1 -1
- package/build-module/components/site-editor-routes/template-part-item.js +3 -3
- package/build-module/components/site-editor-routes/template-part-item.js.map +1 -1
- package/build-module/components/style-book/categories.js +0 -1
- package/build-module/components/style-book/categories.js.map +1 -1
- package/build-module/components/style-book/color-examples.js +0 -1
- package/build-module/components/style-book/color-examples.js.map +1 -1
- package/build-module/components/style-book/duotone-examples.js +0 -1
- package/build-module/components/style-book/duotone-examples.js.map +1 -1
- package/build-module/components/style-book/examples.js +0 -1
- package/build-module/components/style-book/examples.js.map +1 -1
- package/build-module/components/style-book/index.js +7 -18
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/index.js +0 -1
- package/build-module/index.js.map +1 -1
- package/build-module/posts.js +0 -1
- package/build-module/posts.js.map +1 -1
- package/build-module/store/reducer.js +0 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/utils/get-filtered-template-parts.js +0 -1
- package/build-module/utils/get-filtered-template-parts.js.map +1 -1
- package/build-module/utils/set-nested-value.js +0 -1
- package/build-module/utils/set-nested-value.js.map +1 -1
- package/build-style/posts-rtl.css +8 -4
- package/build-style/posts.css +8 -4
- package/build-style/style-rtl.css +17 -24
- package/build-style/style.css +17 -24
- package/package.json +42 -42
- package/src/components/editor/index.js +12 -6
- package/src/components/{maybe-editor/index.js → editor/site-preview.js} +7 -20
- package/src/components/global-styles/font-library-modal/collection-font-variant.js +3 -11
- package/src/components/global-styles/font-library-modal/library-font-variant.js +3 -12
- package/src/components/global-styles/screen-block-list.js +15 -6
- package/src/components/global-styles/screen-css.js +9 -0
- package/src/components/global-styles/screen-root.js +1 -0
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/layout/style.scss +4 -0
- package/src/components/media/index.js +2 -2
- package/src/components/page-patterns/style.scss +2 -0
- package/src/components/page-templates/style.scss +2 -0
- package/src/components/resizable-frame/index.js +1 -1
- package/src/components/sidebar-navigation-screen/index.js +0 -9
- package/src/components/sidebar-navigation-screen/style.scss +0 -23
- package/src/components/sidebar-navigation-screen-main/index.js +15 -10
- package/src/components/site-editor-routes/home.js +2 -2
- package/src/components/site-editor-routes/index.js +2 -0
- package/src/components/site-editor-routes/notfound.js +27 -0
- package/src/components/site-editor-routes/template-item.js +3 -3
- package/src/components/site-editor-routes/template-part-item.js +3 -3
- package/src/components/style-book/index.js +1 -13
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/maybe-editor/index.js.map +0 -1
- package/build-module/components/maybe-editor/index.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_i18n","_icons","_data","_router","_patterns","_notices","_coreData","_editor","_lockUnlock","_constants","_jsxRuntime","useHistory","useLocation","unlock","routerPrivateApis","CreatePatternModal","useAddPatternCategory","editPatternsPrivateApis","CreateTemplatePartModal","editorPrivateApis","AddNewPattern","history","location","showPatternModal","setShowPatternModal","useState","showTemplatePartModal","setShowTemplatePartModal","createPatternFromFile","useDispatch","patternsStore","createSuccessNotice","createErrorNotice","noticesStore","patternUploadInputRef","useRef","isBlockBasedTheme","addNewPatternLabel","addNewTemplatePartLabel","canCreatePattern","canCreateTemplatePart","useSelect","select","getCurrentTheme","getPostType","canUser","coreStore","is_block_theme","PATTERN_TYPES","user","labels","add_new_item","TEMPLATE_PART_POST_TYPE","kind","name","handleCreatePattern","pattern","navigate","id","handleCreateTemplatePart","templatePart","handleError","controls","push","icon","symbol","onClick","title","symbolFilled","upload","current","click","__","categoryMap","findOrCreateTerm","length","jsxs","Fragment","children","jsx","DropdownMenu","toggleProps","variant","showTooltip","__next40pxDefaultSize","text","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","currentCategoryId","query","postType","currentCategory","Array","from","values","find","term","categoryId","undefined","PATTERN_DEFAULT_CATEGORY","sprintf","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal, useAddPatternCategory } = unlock(\n\teditPatternsPrivateApis\n);\nconst { CreateTemplatePartModal } = unlock( editorPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst {\n\t\tisBlockBasedTheme,\n\t\taddNewPatternLabel,\n\t\taddNewTemplatePartLabel,\n\t\tcanCreatePattern,\n\t\tcanCreateTemplatePart,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getPostType, canUser } = select( coreStore );\n\t\treturn {\n\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\taddNewPatternLabel: getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t\taddNewTemplatePartLabel: getPostType( TEMPLATE_PART_POST_TYPE )\n\t\t\t\t?.labels?.add_new_item,\n\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\tcanCreatePattern: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: PATTERN_TYPES.user,\n\t\t\t} ),\n\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: TEMPLATE_PART_POST_TYPE,\n\t\t\t} ),\n\t\t};\n\t}, [] );\n\n\tfunction handleCreatePattern( { pattern } ) {\n\t\tsetShowPatternModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ PATTERN_TYPES.user }/${ pattern.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ TEMPLATE_PART_POST_TYPE }/${ templatePart.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [];\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: addNewPatternLabel,\n\t\t} );\n\t}\n\n\tif ( isBlockBasedTheme && canCreateTemplatePart ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: addNewTemplatePartLabel,\n\t\t} );\n\t}\n\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: upload,\n\t\t\tonClick: () => {\n\t\t\t\tpatternUploadInputRef.current.click();\n\t\t\t},\n\t\t\ttitle: __( 'Import pattern from JSON' ),\n\t\t} );\n\t}\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\tif ( controls.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ addNewPatternLabel && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\tshowTooltip: false,\n\t\t\t\t\t\t__next40pxDefaultSize: true,\n\t\t\t\t\t} }\n\t\t\t\t\ttext={ addNewPatternLabel }\n\t\t\t\t\tlabel={ addNewPatternLabel }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet currentCategoryId;\n\t\t\t\t\t\t// When we're not handling template parts, we should\n\t\t\t\t\t\t// add or create the proper pattern category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tlocation.query.postType !== TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t * categoryMap.values() returns an iterator.\n\t\t\t\t\t\t\t * Iterator.prototype.find() is not yet widely supported.\n\t\t\t\t\t\t\t * Convert to array to use the Array.prototype.find method.\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tconst currentCategory = Array.from(\n\t\t\t\t\t\t\t\tcategoryMap.values()\n\t\t\t\t\t\t\t).find(\n\t\t\t\t\t\t\t\t( term ) =>\n\t\t\t\t\t\t\t\t\tterm.name === location.query.categoryId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( currentCategory ) {\n\t\t\t\t\t\t\t\tcurrentCategoryId =\n\t\t\t\t\t\t\t\t\tcurrentCategory.id ||\n\t\t\t\t\t\t\t\t\t( await findOrCreateTerm(\n\t\t\t\t\t\t\t\t\t\tcurrentCategory.label\n\t\t\t\t\t\t\t\t\t) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already and if we're not in the `my-patterns`\n\t\t\t\t\t\t// category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! currentCategoryId &&\n\t\t\t\t\t\t\tlocation.query.categoryId !== 'my-patterns'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t`/pattern?categoryId=${ PATTERN_DEFAULT_CATEGORY }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_i18n","_icons","_data","_router","_patterns","_notices","_coreData","_editor","_lockUnlock","_constants","_jsxRuntime","useHistory","useLocation","unlock","routerPrivateApis","CreatePatternModal","useAddPatternCategory","editPatternsPrivateApis","CreateTemplatePartModal","editorPrivateApis","AddNewPattern","history","location","showPatternModal","setShowPatternModal","useState","showTemplatePartModal","setShowTemplatePartModal","createPatternFromFile","useDispatch","patternsStore","createSuccessNotice","createErrorNotice","noticesStore","patternUploadInputRef","useRef","isBlockBasedTheme","addNewPatternLabel","addNewTemplatePartLabel","canCreatePattern","canCreateTemplatePart","useSelect","select","getCurrentTheme","getPostType","canUser","coreStore","is_block_theme","PATTERN_TYPES","user","labels","add_new_item","TEMPLATE_PART_POST_TYPE","kind","name","handleCreatePattern","pattern","navigate","id","handleCreateTemplatePart","templatePart","handleError","controls","push","icon","symbol","onClick","title","symbolFilled","upload","current","click","__","categoryMap","findOrCreateTerm","length","jsxs","Fragment","children","jsx","DropdownMenu","toggleProps","variant","showTooltip","__next40pxDefaultSize","text","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","currentCategoryId","query","postType","currentCategory","Array","from","values","find","term","categoryId","undefined","PATTERN_DEFAULT_CATEGORY","sprintf","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal, useAddPatternCategory } = unlock(\n\teditPatternsPrivateApis\n);\nconst { CreateTemplatePartModal } = unlock( editorPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst {\n\t\tisBlockBasedTheme,\n\t\taddNewPatternLabel,\n\t\taddNewTemplatePartLabel,\n\t\tcanCreatePattern,\n\t\tcanCreateTemplatePart,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getPostType, canUser } = select( coreStore );\n\t\treturn {\n\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\taddNewPatternLabel: getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t\taddNewTemplatePartLabel: getPostType( TEMPLATE_PART_POST_TYPE )\n\t\t\t\t?.labels?.add_new_item,\n\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\tcanCreatePattern: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: PATTERN_TYPES.user,\n\t\t\t} ),\n\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: TEMPLATE_PART_POST_TYPE,\n\t\t\t} ),\n\t\t};\n\t}, [] );\n\n\tfunction handleCreatePattern( { pattern } ) {\n\t\tsetShowPatternModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ PATTERN_TYPES.user }/${ pattern.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ TEMPLATE_PART_POST_TYPE }/${ templatePart.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [];\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: addNewPatternLabel,\n\t\t} );\n\t}\n\n\tif ( isBlockBasedTheme && canCreateTemplatePart ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: addNewTemplatePartLabel,\n\t\t} );\n\t}\n\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: upload,\n\t\t\tonClick: () => {\n\t\t\t\tpatternUploadInputRef.current.click();\n\t\t\t},\n\t\t\ttitle: __( 'Import pattern from JSON' ),\n\t\t} );\n\t}\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\tif ( controls.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ addNewPatternLabel && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\tshowTooltip: false,\n\t\t\t\t\t\t__next40pxDefaultSize: true,\n\t\t\t\t\t} }\n\t\t\t\t\ttext={ addNewPatternLabel }\n\t\t\t\t\tlabel={ addNewPatternLabel }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet currentCategoryId;\n\t\t\t\t\t\t// When we're not handling template parts, we should\n\t\t\t\t\t\t// add or create the proper pattern category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tlocation.query.postType !== TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t * categoryMap.values() returns an iterator.\n\t\t\t\t\t\t\t * Iterator.prototype.find() is not yet widely supported.\n\t\t\t\t\t\t\t * Convert to array to use the Array.prototype.find method.\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tconst currentCategory = Array.from(\n\t\t\t\t\t\t\t\tcategoryMap.values()\n\t\t\t\t\t\t\t).find(\n\t\t\t\t\t\t\t\t( term ) =>\n\t\t\t\t\t\t\t\t\tterm.name === location.query.categoryId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( currentCategory ) {\n\t\t\t\t\t\t\t\tcurrentCategoryId =\n\t\t\t\t\t\t\t\t\tcurrentCategory.id ||\n\t\t\t\t\t\t\t\t\t( await findOrCreateTerm(\n\t\t\t\t\t\t\t\t\t\tcurrentCategory.label\n\t\t\t\t\t\t\t\t\t) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already and if we're not in the `my-patterns`\n\t\t\t\t\t\t// category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! currentCategoryId &&\n\t\t\t\t\t\t\tlocation.query.categoryId !== 'my-patterns'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t`/pattern?categoryId=${ PATTERN_DEFAULT_CATEGORY }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_i18n","_components","_coreData","_htmlEntities","_compose","_utils","_jsxRuntime","EMPTY_ARRAY","SuggestionListItem","suggestion","search","onSelect","entityForSuggestions","baseCssClass","jsxs","Composite","Item","render","jsx","Button","__next40pxDefaultSize","role","className","onClick","config","getSpecificTemplate","children","__experimentalText","size","lineHeight","weight","TextHighlight","text","decodeEntities","name","highlight","link","useSearchSuggestions","query","useMemo","order","context","per_page","queryArgs","records","searchResults","hasResolved","searchHasResolved","useEntityRecords","type","slug","suggestions","setSuggestions","useState","useEffect","newSuggestions","length","recordNamePath","mapToIHasNameAndId","SuggestionList","setSearch","debouncedSearch","useDebouncedInput","labels","showSearchControl","setShowSearchControl","Fragment","SearchControl","__nextHasNoMarginBottom","onChange","value","label","search_items","placeholder","orientation","__","map","as","not_found","AddCustomTemplateModalContent","showSearchEntities","setShowSearchEntities","hasGeneralTemplate","__experimentalVStack","spacing","alignment","Flex","gap","align","FlexItem","isBlock","title","description","templatePrefix","template","all_items","singular_name","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/add-new-template/add-custom-template-modal-content.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tTextHighlight,\n\tComposite,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { mapToIHasNameAndId } from './utils';\n\nconst EMPTY_ARRAY = [];\n\nfunction SuggestionListItem( {\n\tsuggestion,\n\tsearch,\n\tonSelect,\n\tentityForSuggestions,\n} ) {\n\tconst baseCssClass =\n\t\t'edit-site-custom-template-modal__suggestions_list__list-item';\n\treturn (\n\t\t<Composite.Item\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tclassName={ baseCssClass }\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tentityForSuggestions.config.getSpecificTemplate(\n\t\t\t\t\t\t\t\tsuggestion\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Text\n\t\t\t\tsize=\"body\"\n\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\tweight={ 500 }\n\t\t\t\tclassName={ `${ baseCssClass }__title` }\n\t\t\t>\n\t\t\t\t<TextHighlight\n\t\t\t\t\ttext={ decodeEntities( suggestion.name ) }\n\t\t\t\t\thighlight={ search }\n\t\t\t\t/>\n\t\t\t</Text>\n\t\t\t{ suggestion.link && (\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\tclassName={ `${ baseCssClass }__info` }\n\t\t\t\t>\n\t\t\t\t\t{ suggestion.link }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</Composite.Item>\n\t);\n}\n\nfunction useSearchSuggestions( entityForSuggestions, search ) {\n\tconst { config } = entityForSuggestions;\n\tconst query = useMemo(\n\t\t() => ( {\n\t\t\torder: 'asc',\n\t\t\tcontext: 'view',\n\t\t\tsearch,\n\t\t\tper_page: search ? 20 : 10,\n\t\t\t...config.queryArgs( search ),\n\t\t} ),\n\t\t[ search, config ]\n\t);\n\tconst { records: searchResults, hasResolved: searchHasResolved } =\n\t\tuseEntityRecords(\n\t\t\tentityForSuggestions.type,\n\t\t\tentityForSuggestions.slug,\n\t\t\tquery\n\t\t);\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tlet newSuggestions = EMPTY_ARRAY;\n\t\tif ( searchResults?.length ) {\n\t\t\tnewSuggestions = searchResults;\n\t\t\tif ( config.recordNamePath ) {\n\t\t\t\tnewSuggestions = mapToIHasNameAndId(\n\t\t\t\t\tnewSuggestions,\n\t\t\t\t\tconfig.recordNamePath\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Update suggestions only when the query has resolved, so as to keep\n\t\t// the previous results in the UI.\n\t\tsetSuggestions( newSuggestions );\n\t}, [ searchResults, searchHasResolved ] );\n\treturn suggestions;\n}\n\nfunction SuggestionList( { entityForSuggestions, onSelect } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput();\n\tconst suggestions = useSearchSuggestions(\n\t\tentityForSuggestions,\n\t\tdebouncedSearch\n\t);\n\tconst { labels } = entityForSuggestions;\n\tconst [ showSearchControl, setShowSearchControl ] = useState( false );\n\tif ( ! showSearchControl && suggestions?.length > 9 ) {\n\t\tsetShowSearchControl( true );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ showSearchControl && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearch }\n\t\t\t\t\tvalue={ search }\n\t\t\t\t\tlabel={ labels.search_items }\n\t\t\t\t\tplaceholder={ labels.search_items }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! suggestions?.length && (\n\t\t\t\t<Composite\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__suggestions_list\"\n\t\t\t\t\taria-label={ __( 'Suggestions list' ) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion ) => (\n\t\t\t\t\t\t<SuggestionListItem\n\t\t\t\t\t\t\tkey={ suggestion.slug }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tsearch={ debouncedSearch }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t{ debouncedSearch && ! suggestions?.length && (\n\t\t\t\t<Text\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__no-results\"\n\t\t\t\t>\n\t\t\t\t\t{ labels.not_found }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction AddCustomTemplateModalContent( { onSelect, entityForSuggestions } ) {\n\tconst [ showSearchEntities, setShowSearchEntities ] = useState(\n\t\tentityForSuggestions.hasGeneralTemplate\n\t);\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-custom-template-modal__contents-wrapper\"\n\t\t\talignment=\"left\"\n\t\t>\n\t\t\t{ ! showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select whether to create a single template for all items or a specific one.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"edit-site-custom-template-modal__contents\"\n\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\talign=\"initial\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} = entityForSuggestions.template;\n\t\t\t\t\t\t\t\tonSelect( {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.all_items }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For all items' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowSearchEntities( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.singular_name }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For a specific item' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This template will be used only for the specific item chosen.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<SuggestionList\n\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default AddCustomTemplateModalContent;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_components","_coreData","_htmlEntities","_compose","_utils","_jsxRuntime","EMPTY_ARRAY","SuggestionListItem","suggestion","search","onSelect","entityForSuggestions","baseCssClass","jsxs","Composite","Item","render","jsx","Button","__next40pxDefaultSize","role","className","onClick","config","getSpecificTemplate","children","__experimentalText","size","lineHeight","weight","TextHighlight","text","decodeEntities","name","highlight","link","useSearchSuggestions","query","useMemo","order","context","per_page","queryArgs","records","searchResults","hasResolved","searchHasResolved","useEntityRecords","type","slug","suggestions","setSuggestions","useState","useEffect","newSuggestions","length","recordNamePath","mapToIHasNameAndId","SuggestionList","setSearch","debouncedSearch","useDebouncedInput","labels","showSearchControl","setShowSearchControl","Fragment","SearchControl","__nextHasNoMarginBottom","onChange","value","label","search_items","placeholder","orientation","__","map","as","not_found","AddCustomTemplateModalContent","showSearchEntities","setShowSearchEntities","hasGeneralTemplate","__experimentalVStack","spacing","alignment","Flex","gap","align","FlexItem","isBlock","title","description","templatePrefix","template","all_items","singular_name","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/add-new-template/add-custom-template-modal-content.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tTextHighlight,\n\tComposite,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { mapToIHasNameAndId } from './utils';\n\nconst EMPTY_ARRAY = [];\n\nfunction SuggestionListItem( {\n\tsuggestion,\n\tsearch,\n\tonSelect,\n\tentityForSuggestions,\n} ) {\n\tconst baseCssClass =\n\t\t'edit-site-custom-template-modal__suggestions_list__list-item';\n\treturn (\n\t\t<Composite.Item\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tclassName={ baseCssClass }\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tentityForSuggestions.config.getSpecificTemplate(\n\t\t\t\t\t\t\t\tsuggestion\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Text\n\t\t\t\tsize=\"body\"\n\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\tweight={ 500 }\n\t\t\t\tclassName={ `${ baseCssClass }__title` }\n\t\t\t>\n\t\t\t\t<TextHighlight\n\t\t\t\t\ttext={ decodeEntities( suggestion.name ) }\n\t\t\t\t\thighlight={ search }\n\t\t\t\t/>\n\t\t\t</Text>\n\t\t\t{ suggestion.link && (\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\tclassName={ `${ baseCssClass }__info` }\n\t\t\t\t>\n\t\t\t\t\t{ suggestion.link }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</Composite.Item>\n\t);\n}\n\nfunction useSearchSuggestions( entityForSuggestions, search ) {\n\tconst { config } = entityForSuggestions;\n\tconst query = useMemo(\n\t\t() => ( {\n\t\t\torder: 'asc',\n\t\t\tcontext: 'view',\n\t\t\tsearch,\n\t\t\tper_page: search ? 20 : 10,\n\t\t\t...config.queryArgs( search ),\n\t\t} ),\n\t\t[ search, config ]\n\t);\n\tconst { records: searchResults, hasResolved: searchHasResolved } =\n\t\tuseEntityRecords(\n\t\t\tentityForSuggestions.type,\n\t\t\tentityForSuggestions.slug,\n\t\t\tquery\n\t\t);\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tlet newSuggestions = EMPTY_ARRAY;\n\t\tif ( searchResults?.length ) {\n\t\t\tnewSuggestions = searchResults;\n\t\t\tif ( config.recordNamePath ) {\n\t\t\t\tnewSuggestions = mapToIHasNameAndId(\n\t\t\t\t\tnewSuggestions,\n\t\t\t\t\tconfig.recordNamePath\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Update suggestions only when the query has resolved, so as to keep\n\t\t// the previous results in the UI.\n\t\tsetSuggestions( newSuggestions );\n\t}, [ searchResults, searchHasResolved ] );\n\treturn suggestions;\n}\n\nfunction SuggestionList( { entityForSuggestions, onSelect } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput();\n\tconst suggestions = useSearchSuggestions(\n\t\tentityForSuggestions,\n\t\tdebouncedSearch\n\t);\n\tconst { labels } = entityForSuggestions;\n\tconst [ showSearchControl, setShowSearchControl ] = useState( false );\n\tif ( ! showSearchControl && suggestions?.length > 9 ) {\n\t\tsetShowSearchControl( true );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ showSearchControl && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearch }\n\t\t\t\t\tvalue={ search }\n\t\t\t\t\tlabel={ labels.search_items }\n\t\t\t\t\tplaceholder={ labels.search_items }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! suggestions?.length && (\n\t\t\t\t<Composite\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__suggestions_list\"\n\t\t\t\t\taria-label={ __( 'Suggestions list' ) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion ) => (\n\t\t\t\t\t\t<SuggestionListItem\n\t\t\t\t\t\t\tkey={ suggestion.slug }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tsearch={ debouncedSearch }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t{ debouncedSearch && ! suggestions?.length && (\n\t\t\t\t<Text\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__no-results\"\n\t\t\t\t>\n\t\t\t\t\t{ labels.not_found }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction AddCustomTemplateModalContent( { onSelect, entityForSuggestions } ) {\n\tconst [ showSearchEntities, setShowSearchEntities ] = useState(\n\t\tentityForSuggestions.hasGeneralTemplate\n\t);\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-custom-template-modal__contents-wrapper\"\n\t\t\talignment=\"left\"\n\t\t>\n\t\t\t{ ! showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select whether to create a single template for all items or a specific one.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"edit-site-custom-template-modal__contents\"\n\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\talign=\"initial\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} = entityForSuggestions.template;\n\t\t\t\t\t\t\t\tonSelect( {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.all_items }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For all items' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowSearchEntities( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.singular_name }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For a specific item' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This template will be used only for the specific item chosen.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<SuggestionList\n\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default AddCustomTemplateModalContent;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_htmlEntities","_element","_data","_coreData","_compose","_icons","_i18n","_notices","_router","_constants","_addCustomTemplateModalContent","_utils","_addCustomGenericTemplateModalContent","_lockUnlock","_jsxRuntime","useHistory","unlock","routerPrivateApis","DEFAULT_TEMPLATE_SLUGS","TEMPLATE_ICONS","home","verse","single","pin","page","archive","search","notFound","index","list","category","author","commentAuthorAvatar","taxonomy","blockMeta","date","calendar","tag","attachment","media","TemplateListItem","title","direction","className","description","icon","onClick","children","jsx","Button","__next40pxDefaultSize","label","showTooltip","jsxs","Flex","as","spacing","align","justify","style","width","Icon","__experimentalVStack","alignment","__experimentalText","weight","lineHeight","modalContentMap","templatesList","customTemplate","customGenericTemplate","NewTemplateModal","onClose","modalContent","setModalContent","useState","entityForSuggestions","setEntityForSuggestions","isSubmitting","setIsSubmitting","missingTemplates","useMissingTemplates","history","saveEntityRecord","useDispatch","coreStore","createErrorNotice","createSuccessNotice","noticesStore","isMobile","useViewportMatch","homeUrl","useSelect","select","getEntityRecord","TEMPLATE_SHORT_DESCRIPTIONS","sprintf","__","Date","getFullYear","createTemplate","template","isWPSuggestion","slug","newTemplate","TEMPLATE_POST_TYPE","toString","status","is_wp_suggestion","throwOnError","navigate","id","decodeEntities","rendered","type","error","errorMessage","message","code","onModalClose","modalTitle","labels","singular_name","Modal","clsx","onRequestClose","overlayClassName","undefined","__experimentalGrid","columns","gap","map","layout","edit","default","onSelect","NewTemplate","showModal","setShowModal","postType","getPostType","Fragment","variant","add_new_item","existingTemplates","useExistingTemplates","defaultTemplateTypes","useDefaultTemplateTypes","existingTemplateSlugs","missingDefaultTemplates","filter","includes","onClickMenuItem","_entityForSuggestions","enhancedMissingDefaultTemplateTypes","defaultTaxonomiesMenuItems","taxonomiesMenuItems","useTaxonomiesMenuItems","defaultPostTypesMenuItems","postTypesMenuItems","usePostTypeMenuItems","authorMenuItem","useAuthorMenuItem","forEach","menuItem","matchIndex","findIndex","push","sort","template1","template2","indexOf","usePostTypeArchiveMenuItems","_default","exports","memo"],"sources":["@wordpress/edit-site/src/components/add-new-template/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalGrid as Grid,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tIcon,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, memo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tarchive,\n\tblockMeta,\n\tcalendar,\n\tcategory,\n\tcommentAuthorAvatar,\n\tedit,\n\thome,\n\tlayout,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tpin,\n\tverse,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n/**\n * Internal dependencies\n */\nimport AddCustomTemplateModalContent from './add-custom-template-modal-content';\nimport {\n\tuseExistingTemplates,\n\tuseDefaultTemplateTypes,\n\tuseTaxonomiesMenuItems,\n\tusePostTypeMenuItems,\n\tuseAuthorMenuItem,\n\tusePostTypeArchiveMenuItems,\n} from './utils';\nimport AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'home',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\thome: verse,\n\tsingle: pin,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: commentAuthorAvatar,\n\ttaxonomy: blockMeta,\n\tdate: calendar,\n\ttag,\n\tattachment: media,\n};\n\nfunction TemplateListItem( {\n\ttitle,\n\tdirection,\n\tclassName,\n\tdescription,\n\ticon,\n\tonClick,\n\tchildren,\n} ) {\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\tonClick={ onClick }\n\t\t\tlabel={ description }\n\t\t\tshowTooltip={ !! description }\n\t\t>\n\t\t\t<Flex\n\t\t\t\tas=\"span\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\tdirection={ direction }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-add-new-template__template-icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-name\"\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tspacing={ 0 }\n\t\t\t\t>\n\t\t\t\t\t<Text\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t\t{ children }\n\t\t\t\t</VStack>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nconst modalContentMap = {\n\ttemplatesList: 1,\n\tcustomTemplate: 2,\n\tcustomGenericTemplate: 3,\n};\n\nfunction NewTemplateModal( { onClose } ) {\n\tconst [ modalContent, setModalContent ] = useState(\n\t\tmodalContentMap.templatesList\n\t);\n\tconst [ entityForSuggestions, setEntityForSuggestions ] = useState( {} );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst missingTemplates = useMissingTemplates( setEntityForSuggestions, () =>\n\t\tsetModalContent( modalContentMap.customTemplate )\n\t);\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tconst homeUrl = useSelect( ( select ) => {\n\t\t// Site index.\n\t\treturn select( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t?.home;\n\t}, [] );\n\n\tconst TEMPLATE_SHORT_DESCRIPTIONS = {\n\t\t'front-page': homeUrl,\n\t\tdate: sprintf(\n\t\t\t// translators: %s: The homepage url.\n\t\t\t__( 'E.g. %s' ),\n\t\t\thomeUrl + '/' + new Date().getFullYear()\n\t\t),\n\t};\n\n\tasync function createTemplate( template, isWPSuggestion = true ) {\n\t\tif ( isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsSubmitting( true );\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tis_wp_suggestion: isWPSuggestion,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.navigate(\n\t\t\t\t`/${ TEMPLATE_POST_TYPE }/${ newTemplate.id }?canvas=edit`\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newTemplate.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\tconst onModalClose = () => {\n\t\tonClose();\n\t\tsetModalContent( modalContentMap.templatesList );\n\t};\n\n\tlet modalTitle = __( 'Add template' );\n\tif ( modalContent === modalContentMap.customTemplate ) {\n\t\tmodalTitle = sprintf(\n\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t__( 'Add template: %s' ),\n\t\t\tentityForSuggestions.labels.singular_name\n\t\t);\n\t} else if ( modalContent === modalContentMap.customGenericTemplate ) {\n\t\tmodalTitle = __( 'Create custom template' );\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle }\n\t\t\tclassName={ clsx( 'edit-site-add-new-template__modal', {\n\t\t\t\t'edit-site-add-new-template__modal_template_list':\n\t\t\t\t\tmodalContent === modalContentMap.templatesList,\n\t\t\t\t'edit-site-custom-template-modal':\n\t\t\t\t\tmodalContent === modalContentMap.customTemplate,\n\t\t\t} ) }\n\t\t\tonRequestClose={ onModalClose }\n\t\t\toverlayClassName={\n\t\t\t\tmodalContent === modalContentMap.customGenericTemplate\n\t\t\t\t\t? 'edit-site-custom-generic-template__modal'\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t>\n\t\t\t{ modalContent === modalContentMap.templatesList && (\n\t\t\t\t<Grid\n\t\t\t\t\tcolumns={ isMobile ? 2 : 3 }\n\t\t\t\t\tgap={ 4 }\n\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-list__contents\"\n\t\t\t\t>\n\t\t\t\t\t<Flex className=\"edit-site-add-new-template__template-list__prompt\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select what the new template should apply to:'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ missingTemplates.map( ( template ) => {\n\t\t\t\t\t\tconst { title, slug, onClick } = template;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-button\"\n\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\tTEMPLATE_SHORT_DESCRIPTIONS[ slug ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ticon={ TEMPLATE_ICONS[ slug ] || layout }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tonClick\n\t\t\t\t\t\t\t\t\t\t? onClick( template )\n\t\t\t\t\t\t\t\t\t\t: createTemplate( template )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\ttitle={ __( 'Custom template' ) }\n\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\tclassName=\"edit-site-add-new-template__custom-template-button\"\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tsetModalContent(\n\t\t\t\t\t\t\t\tmodalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</TemplateListItem>\n\t\t\t\t</Grid>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customTemplate && (\n\t\t\t\t<AddCustomTemplateModalContent\n\t\t\t\t\tonSelect={ createTemplate }\n\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customGenericTemplate && (\n\t\t\t\t<AddCustomGenericTemplateModalContent\n\t\t\t\t\tonClose={ onModalClose }\n\t\t\t\t\tcreateTemplate={ createTemplate }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Modal>\n\t);\n}\n\nfunction NewTemplate() {\n\tconst [ showModal, setShowModal ] = useState( false );\n\n\tconst { postType } = useSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn {\n\t\t\tpostType: getPostType( TEMPLATE_POST_TYPE ),\n\t\t};\n\t}, [] );\n\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ showModal && (\n\t\t\t\t<NewTemplateModal onClose={ () => setShowModal( false ) } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useMissingTemplates( setEntityForSuggestions, onClick ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst missingDefaultTemplates = ( defaultTemplateTypes || [] ).filter(\n\t\t( template ) =>\n\t\t\tDEFAULT_TEMPLATE_SLUGS.includes( template.slug ) &&\n\t\t\t! existingTemplateSlugs.includes( template.slug )\n\t);\n\tconst onClickMenuItem = ( _entityForSuggestions ) => {\n\t\tonClick?.();\n\t\tsetEntityForSuggestions( _entityForSuggestions );\n\t};\n\t// We need to replace existing default template types with\n\t// the create specific template functionality. The original\n\t// info (title, description, etc.) is preserved in the\n\t// used hooks.\n\tconst enhancedMissingDefaultTemplateTypes = [ ...missingDefaultTemplates ];\n\tconst { defaultTaxonomiesMenuItems, taxonomiesMenuItems } =\n\t\tuseTaxonomiesMenuItems( onClickMenuItem );\n\tconst { defaultPostTypesMenuItems, postTypesMenuItems } =\n\t\tusePostTypeMenuItems( onClickMenuItem );\n\n\tconst authorMenuItem = useAuthorMenuItem( onClickMenuItem );\n\t[\n\t\t...defaultTaxonomiesMenuItems,\n\t\t...defaultPostTypesMenuItems,\n\t\tauthorMenuItem,\n\t].forEach( ( menuItem ) => {\n\t\tif ( ! menuItem ) {\n\t\t\treturn;\n\t\t}\n\t\tconst matchIndex = enhancedMissingDefaultTemplateTypes.findIndex(\n\t\t\t( template ) => template.slug === menuItem.slug\n\t\t);\n\t\t// Some default template types might have been filtered above from\n\t\t// `missingDefaultTemplates` because they only check for the general\n\t\t// template. So here we either replace or append the item, augmented\n\t\t// with the check if it has available specific item to create a\n\t\t// template for.\n\t\tif ( matchIndex > -1 ) {\n\t\t\tenhancedMissingDefaultTemplateTypes[ matchIndex ] = menuItem;\n\t\t} else {\n\t\t\tenhancedMissingDefaultTemplateTypes.push( menuItem );\n\t\t}\n\t} );\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tenhancedMissingDefaultTemplateTypes?.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\tconst missingTemplates = [\n\t\t...enhancedMissingDefaultTemplateTypes,\n\t\t...usePostTypeArchiveMenuItems(),\n\t\t...postTypesMenuItems,\n\t\t...taxonomiesMenuItems,\n\t];\n\treturn missingTemplates;\n}\n\nexport default memo( NewTemplate );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_htmlEntities","_element","_data","_coreData","_compose","_icons","_i18n","_notices","_router","_constants","_addCustomTemplateModalContent","_utils","_addCustomGenericTemplateModalContent","_lockUnlock","_jsxRuntime","useHistory","unlock","routerPrivateApis","DEFAULT_TEMPLATE_SLUGS","TEMPLATE_ICONS","home","verse","single","pin","page","archive","search","notFound","index","list","category","author","commentAuthorAvatar","taxonomy","blockMeta","date","calendar","tag","attachment","media","TemplateListItem","title","direction","className","description","icon","onClick","children","jsx","Button","__next40pxDefaultSize","label","showTooltip","jsxs","Flex","as","spacing","align","justify","style","width","Icon","__experimentalVStack","alignment","__experimentalText","weight","lineHeight","modalContentMap","templatesList","customTemplate","customGenericTemplate","NewTemplateModal","onClose","modalContent","setModalContent","useState","entityForSuggestions","setEntityForSuggestions","isSubmitting","setIsSubmitting","missingTemplates","useMissingTemplates","history","saveEntityRecord","useDispatch","coreStore","createErrorNotice","createSuccessNotice","noticesStore","isMobile","useViewportMatch","homeUrl","useSelect","select","getEntityRecord","TEMPLATE_SHORT_DESCRIPTIONS","sprintf","__","Date","getFullYear","createTemplate","template","isWPSuggestion","slug","newTemplate","TEMPLATE_POST_TYPE","toString","status","is_wp_suggestion","throwOnError","navigate","id","decodeEntities","rendered","type","error","errorMessage","message","code","onModalClose","modalTitle","labels","singular_name","Modal","clsx","onRequestClose","overlayClassName","undefined","__experimentalGrid","columns","gap","map","layout","edit","default","onSelect","NewTemplate","showModal","setShowModal","postType","getPostType","Fragment","variant","add_new_item","existingTemplates","useExistingTemplates","defaultTemplateTypes","useDefaultTemplateTypes","existingTemplateSlugs","missingDefaultTemplates","filter","includes","onClickMenuItem","_entityForSuggestions","enhancedMissingDefaultTemplateTypes","defaultTaxonomiesMenuItems","taxonomiesMenuItems","useTaxonomiesMenuItems","defaultPostTypesMenuItems","postTypesMenuItems","usePostTypeMenuItems","authorMenuItem","useAuthorMenuItem","forEach","menuItem","matchIndex","findIndex","push","sort","template1","template2","indexOf","usePostTypeArchiveMenuItems","_default","exports","memo"],"sources":["@wordpress/edit-site/src/components/add-new-template/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalGrid as Grid,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tIcon,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, memo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tarchive,\n\tblockMeta,\n\tcalendar,\n\tcategory,\n\tcommentAuthorAvatar,\n\tedit,\n\thome,\n\tlayout,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tpin,\n\tverse,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n/**\n * Internal dependencies\n */\nimport AddCustomTemplateModalContent from './add-custom-template-modal-content';\nimport {\n\tuseExistingTemplates,\n\tuseDefaultTemplateTypes,\n\tuseTaxonomiesMenuItems,\n\tusePostTypeMenuItems,\n\tuseAuthorMenuItem,\n\tusePostTypeArchiveMenuItems,\n} from './utils';\nimport AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'home',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\thome: verse,\n\tsingle: pin,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: commentAuthorAvatar,\n\ttaxonomy: blockMeta,\n\tdate: calendar,\n\ttag,\n\tattachment: media,\n};\n\nfunction TemplateListItem( {\n\ttitle,\n\tdirection,\n\tclassName,\n\tdescription,\n\ticon,\n\tonClick,\n\tchildren,\n} ) {\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\tonClick={ onClick }\n\t\t\tlabel={ description }\n\t\t\tshowTooltip={ !! description }\n\t\t>\n\t\t\t<Flex\n\t\t\t\tas=\"span\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\tdirection={ direction }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-add-new-template__template-icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-name\"\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tspacing={ 0 }\n\t\t\t\t>\n\t\t\t\t\t<Text\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t\t{ children }\n\t\t\t\t</VStack>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nconst modalContentMap = {\n\ttemplatesList: 1,\n\tcustomTemplate: 2,\n\tcustomGenericTemplate: 3,\n};\n\nfunction NewTemplateModal( { onClose } ) {\n\tconst [ modalContent, setModalContent ] = useState(\n\t\tmodalContentMap.templatesList\n\t);\n\tconst [ entityForSuggestions, setEntityForSuggestions ] = useState( {} );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst missingTemplates = useMissingTemplates( setEntityForSuggestions, () =>\n\t\tsetModalContent( modalContentMap.customTemplate )\n\t);\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tconst homeUrl = useSelect( ( select ) => {\n\t\t// Site index.\n\t\treturn select( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t?.home;\n\t}, [] );\n\n\tconst TEMPLATE_SHORT_DESCRIPTIONS = {\n\t\t'front-page': homeUrl,\n\t\tdate: sprintf(\n\t\t\t// translators: %s: The homepage url.\n\t\t\t__( 'E.g. %s' ),\n\t\t\thomeUrl + '/' + new Date().getFullYear()\n\t\t),\n\t};\n\n\tasync function createTemplate( template, isWPSuggestion = true ) {\n\t\tif ( isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsSubmitting( true );\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tis_wp_suggestion: isWPSuggestion,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.navigate(\n\t\t\t\t`/${ TEMPLATE_POST_TYPE }/${ newTemplate.id }?canvas=edit`\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newTemplate.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\tconst onModalClose = () => {\n\t\tonClose();\n\t\tsetModalContent( modalContentMap.templatesList );\n\t};\n\n\tlet modalTitle = __( 'Add template' );\n\tif ( modalContent === modalContentMap.customTemplate ) {\n\t\tmodalTitle = sprintf(\n\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t__( 'Add template: %s' ),\n\t\t\tentityForSuggestions.labels.singular_name\n\t\t);\n\t} else if ( modalContent === modalContentMap.customGenericTemplate ) {\n\t\tmodalTitle = __( 'Create custom template' );\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle }\n\t\t\tclassName={ clsx( 'edit-site-add-new-template__modal', {\n\t\t\t\t'edit-site-add-new-template__modal_template_list':\n\t\t\t\t\tmodalContent === modalContentMap.templatesList,\n\t\t\t\t'edit-site-custom-template-modal':\n\t\t\t\t\tmodalContent === modalContentMap.customTemplate,\n\t\t\t} ) }\n\t\t\tonRequestClose={ onModalClose }\n\t\t\toverlayClassName={\n\t\t\t\tmodalContent === modalContentMap.customGenericTemplate\n\t\t\t\t\t? 'edit-site-custom-generic-template__modal'\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t>\n\t\t\t{ modalContent === modalContentMap.templatesList && (\n\t\t\t\t<Grid\n\t\t\t\t\tcolumns={ isMobile ? 2 : 3 }\n\t\t\t\t\tgap={ 4 }\n\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-list__contents\"\n\t\t\t\t>\n\t\t\t\t\t<Flex className=\"edit-site-add-new-template__template-list__prompt\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select what the new template should apply to:'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ missingTemplates.map( ( template ) => {\n\t\t\t\t\t\tconst { title, slug, onClick } = template;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-button\"\n\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\tTEMPLATE_SHORT_DESCRIPTIONS[ slug ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ticon={ TEMPLATE_ICONS[ slug ] || layout }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tonClick\n\t\t\t\t\t\t\t\t\t\t? onClick( template )\n\t\t\t\t\t\t\t\t\t\t: createTemplate( template )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\ttitle={ __( 'Custom template' ) }\n\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\tclassName=\"edit-site-add-new-template__custom-template-button\"\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tsetModalContent(\n\t\t\t\t\t\t\t\tmodalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</TemplateListItem>\n\t\t\t\t</Grid>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customTemplate && (\n\t\t\t\t<AddCustomTemplateModalContent\n\t\t\t\t\tonSelect={ createTemplate }\n\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customGenericTemplate && (\n\t\t\t\t<AddCustomGenericTemplateModalContent\n\t\t\t\t\tonClose={ onModalClose }\n\t\t\t\t\tcreateTemplate={ createTemplate }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Modal>\n\t);\n}\n\nfunction NewTemplate() {\n\tconst [ showModal, setShowModal ] = useState( false );\n\n\tconst { postType } = useSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn {\n\t\t\tpostType: getPostType( TEMPLATE_POST_TYPE ),\n\t\t};\n\t}, [] );\n\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ showModal && (\n\t\t\t\t<NewTemplateModal onClose={ () => setShowModal( false ) } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useMissingTemplates( setEntityForSuggestions, onClick ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst missingDefaultTemplates = ( defaultTemplateTypes || [] ).filter(\n\t\t( template ) =>\n\t\t\tDEFAULT_TEMPLATE_SLUGS.includes( template.slug ) &&\n\t\t\t! existingTemplateSlugs.includes( template.slug )\n\t);\n\tconst onClickMenuItem = ( _entityForSuggestions ) => {\n\t\tonClick?.();\n\t\tsetEntityForSuggestions( _entityForSuggestions );\n\t};\n\t// We need to replace existing default template types with\n\t// the create specific template functionality. The original\n\t// info (title, description, etc.) is preserved in the\n\t// used hooks.\n\tconst enhancedMissingDefaultTemplateTypes = [ ...missingDefaultTemplates ];\n\tconst { defaultTaxonomiesMenuItems, taxonomiesMenuItems } =\n\t\tuseTaxonomiesMenuItems( onClickMenuItem );\n\tconst { defaultPostTypesMenuItems, postTypesMenuItems } =\n\t\tusePostTypeMenuItems( onClickMenuItem );\n\n\tconst authorMenuItem = useAuthorMenuItem( onClickMenuItem );\n\t[\n\t\t...defaultTaxonomiesMenuItems,\n\t\t...defaultPostTypesMenuItems,\n\t\tauthorMenuItem,\n\t].forEach( ( menuItem ) => {\n\t\tif ( ! menuItem ) {\n\t\t\treturn;\n\t\t}\n\t\tconst matchIndex = enhancedMissingDefaultTemplateTypes.findIndex(\n\t\t\t( template ) => template.slug === menuItem.slug\n\t\t);\n\t\t// Some default template types might have been filtered above from\n\t\t// `missingDefaultTemplates` because they only check for the general\n\t\t// template. So here we either replace or append the item, augmented\n\t\t// with the check if it has available specific item to create a\n\t\t// template for.\n\t\tif ( matchIndex > -1 ) {\n\t\t\tenhancedMissingDefaultTemplateTypes[ matchIndex ] = menuItem;\n\t\t} else {\n\t\t\tenhancedMissingDefaultTemplateTypes.push( menuItem );\n\t\t}\n\t} );\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tenhancedMissingDefaultTemplateTypes?.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\tconst missingTemplates = [\n\t\t...enhancedMissingDefaultTemplateTypes,\n\t\t...usePostTypeArchiveMenuItems(),\n\t\t...postTypesMenuItems,\n\t\t...taxonomiesMenuItems,\n\t];\n\treturn missingTemplates;\n}\n\nexport default memo( NewTemplate );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_coreData","_htmlEntities","_element","_i18n","_icons","_constants","EMPTY_OBJECT","getValueFromObjectPath","object","path","value","split","forEach","fieldName","mapToIHasNameAndId","entities","map","entity","name","decodeEntities","exports","useExistingTemplates","useSelect","select","coreStore","getEntityRecords","TEMPLATE_POST_TYPE","per_page","useDefaultTemplateTypes","getEntityRecord","default_template_types","usePublicPostTypes","postTypes","getPostTypes","useMemo","excludedPostTypes","filter","viewable","slug","includes","usePublicTaxonomies","taxonomies","getTaxonomies","visibility","publicly_queryable","usePostTypeArchiveMenuItems","publicPostTypes","postTypesWithArchives","postType","has_archive","existingTemplates","postTypeLabels","reduce","accumulator","labels","singularName","singular_name","toLowerCase","needsUniqueIdentifier","useCallback","some","existingTemplate","title","sprintf","__","description","icon","startsWith","slice","archive","templatePrefix","usePostTypeMenuItems","onClickMenuItem","defaultTemplateTypes","templateLabels","templateName","template_name","templatePrefixes","suffix","postTypesInfo","useEntitiesInfo","existingTemplateSlugs","menuItems","generalTemplateSlug","defaultTemplateType","find","_slug","hasGeneralTemplate","_needsUniqueIdentifier","menuItemTitle","_x","menuItem","post","hasEntities","onClick","template","type","config","recordNamePath","queryArgs","search","_fields","orderBy","exclude","existingEntitiesIds","getSpecificTemplate","suggestion","templateSlug","push","postTypesMenuItems","key","defaultPostTypesMenuItems","useTaxonomiesMenuItems","publicTaxonomies","taxonomyLabels","taxonomiesInfo","taxonomy","blockMeta","taxonomiesMenuItems","defaultTaxonomiesMenuItems","USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX","user","USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS","who","useAuthorMenuItem","authorInfo","authorMenuItem","search_items","not_found","all_items","useExistingTemplateSlugs","existingSlugs","Object","entries","prefix","slugsWithTemplates","_accumulator","_prefix","substring","length","useTemplatesToExclude","entityName","additionalQueryParameters","slugsToExcludePerEntity","recordsToExcludePerEntity","entitiesWithTemplates","context","entitiesHasRecords","keys","id","entitiesInfo"],"sources":["@wordpress/edit-site/src/components/add-new-template/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { blockMeta, post, archive } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst EMPTY_OBJECT = {};\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.split( '.' ).forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of entities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * @typedef {Object} EntitiesInfo\n * @property {boolean} hasEntities If an entity has available records(posts, terms, etc..).\n * @property {number[]} existingEntitiesIds An array of the existing entities ids.\n */\n\nexport const useExistingTemplates = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).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[]\n\t);\n};\n\nexport const useDefaultTemplateTypes = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t\t?.default_template_types || [],\n\t\t[]\n\t);\n};\n\nconst usePublicPostTypes = () => {\n\tconst postTypes = useSelect(\n\t\t( select ) => select( coreStore ).getPostTypes( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\treturn postTypes?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t}, [ postTypes ] );\n};\n\nconst usePublicTaxonomies = () => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\nexport function usePostTypeArchiveMenuItems() {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst postTypesWithArchives = useMemo(\n\t\t() => publicPostTypes?.filter( ( postType ) => postType.has_archive ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst existingTemplates = useExistingTemplates();\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst postTypeLabels = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\t\taccumulator[ singularName ] =\n\t\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst needsUniqueIdentifier = useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\treturn postTypeLabels[ singularName ] > 1 && singularName !== slug;\n\t\t},\n\t\t[ postTypeLabels ]\n\t);\n\treturn useMemo(\n\t\t() =>\n\t\t\tpostTypesWithArchives\n\t\t\t\t?.filter(\n\t\t\t\t\t( postType ) =>\n\t\t\t\t\t\t! ( existingTemplates || [] ).some(\n\t\t\t\t\t\t\t( existingTemplate ) =>\n\t\t\t\t\t\t\t\texistingTemplate.slug ===\n\t\t\t\t\t\t\t\t'archive-' + postType.slug\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( postType ) => {\n\t\t\t\t\tlet title;\n\t\t\t\t\tif ( needsUniqueIdentifier( postType ) ) {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t__( 'Archive: %1$s (%2$s)' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name,\n\t\t\t\t\t\t\tpostType.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Archive: %s' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tslug: 'archive-' + postType.slug,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Displays an archive with the latest posts of type: %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon:\n\t\t\t\t\t\t\ttypeof postType.icon === 'string' &&\n\t\t\t\t\t\t\tpostType.icon.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t\t? postType.icon.slice( 10 )\n\t\t\t\t\t\t\t\t: archive,\n\t\t\t\t\t\ttemplatePrefix: 'archive',\n\t\t\t\t\t};\n\t\t\t\t} ) || [],\n\t\t[ postTypesWithArchives, existingTemplates, needsUniqueIdentifier ]\n\t);\n}\n\nexport const usePostTypeMenuItems = ( onClickMenuItem ) => {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst templateLabels = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\t\tconst templateName = (\n\t\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t\t).toLowerCase();\n\t\t\t\taccumulator[ templateName ] =\n\t\t\t\t\t( accumulator[ templateName ] || 0 ) + 1;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst needsUniqueIdentifier = useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst templateName = (\n\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t).toLowerCase();\n\t\t\treturn templateLabels[ templateName ] > 1 && templateName !== slug;\n\t\t},\n\t\t[ templateLabels ]\n\t);\n\n\t// `page`is a special case in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( slug !== 'page' ) {\n\t\t\t\t\tsuffix = `single-${ suffix }`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst postTypesInfo = useEntitiesInfo( 'postType', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicPostTypes || [] ).reduce(\n\t\t( accumulator, postType ) => {\n\t\t\tconst { slug, labels, icon } = postType;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier( postType );\n\t\t\tlet menuItemTitle =\n\t\t\t\tlabels.template_name ||\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t__( 'Single item: %s' ),\n\t\t\t\t\tlabels.singular_name\n\t\t\t\t);\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = labels.template_name\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the template e.g: \"Single Item: Post\". 2: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t_x( '%1$s (%2$s)', 'post type menu label' ),\n\t\t\t\t\t\t\tlabels.template_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the post type e.g: \"Post\". 2: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t'Single item: %1$s (%2$s)',\n\t\t\t\t\t\t\t\t'post type menu label'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t );\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Displays a single item: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon:\n\t\t\t\t\t\t\ttypeof icon === 'string' &&\n\t\t\t\t\t\t\ticon.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t\t? icon.slice( 10 )\n\t\t\t\t\t\t\t\t: post,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = postTypesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'postType',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\trecordNamePath: 'title.rendered',\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,title,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'relevance' : 'modified',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\tpostTypesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default post types\n\t// and one for the rest.\n\tconst postTypesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, postType ) => {\n\t\t\t\t\tconst { slug } = postType;\n\t\t\t\t\tlet key = 'postTypesMenuItems';\n\t\t\t\t\tif ( slug === 'page' ) {\n\t\t\t\t\t\tkey = 'defaultPostTypesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( postType );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultPostTypesMenuItems: [], postTypesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn postTypesMenuItems;\n};\n\nexport const useTaxonomiesMenuItems = ( onClickMenuItem ) => {\n\tconst publicTaxonomies = usePublicTaxonomies();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// `category` and `post_tag` are special cases in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicTaxonomies?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( ! [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\t\t\tsuffix = `taxonomy-${ suffix }`;\n\t\t\t\t}\n\t\t\t\tif ( slug === 'post_tag' ) {\n\t\t\t\t\tsuffix = `tag`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicTaxonomies ]\n\t);\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst taxonomyLabels = publicTaxonomies?.reduce(\n\t\t( accumulator, { labels } ) => {\n\t\t\tconst templateName = (\n\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t).toLowerCase();\n\t\t\taccumulator[ templateName ] =\n\t\t\t\t( accumulator[ templateName ] || 0 ) + 1;\n\t\t\treturn accumulator;\n\t\t},\n\t\t{}\n\t);\n\tconst needsUniqueIdentifier = ( labels, slug ) => {\n\t\tif ( [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst templateName = (\n\t\t\tlabels.template_name || labels.singular_name\n\t\t).toLowerCase();\n\t\treturn taxonomyLabels[ templateName ] > 1 && templateName !== slug;\n\t};\n\tconst taxonomiesInfo = useEntitiesInfo( 'taxonomy', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicTaxonomies || [] ).reduce(\n\t\t( accumulator, taxonomy ) => {\n\t\t\tconst { slug, labels } = taxonomy;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier(\n\t\t\t\tlabels,\n\t\t\t\tslug\n\t\t\t);\n\t\t\tlet menuItemTitle = labels.template_name || labels.singular_name;\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = labels.template_name\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the template e.g: \"Products by Category\". 2s: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t\t\t_x( '%1$s (%2$s)', 'taxonomy template menu label' ),\n\t\t\t\t\t\t\tlabels.template_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the taxonomy e.g: \"Category\". 2: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t\t\t_x( '%1$s (%2$s)', 'taxonomy menu label' ),\n\t\t\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t );\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the taxonomy e.g: \"Product Categories\".\n\t\t\t\t\t\t\t__( 'Displays taxonomy: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ticon: blockMeta,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = taxonomiesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'taxonomy',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'name' : 'count',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\ttaxonomiesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default taxonomies\n\t// and one for the rest.\n\tconst taxonomiesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, taxonomy ) => {\n\t\t\t\t\tconst { slug } = taxonomy;\n\t\t\t\t\tlet key = 'taxonomiesMenuItems';\n\t\t\t\t\tif ( [ 'category', 'tag' ].includes( slug ) ) {\n\t\t\t\t\t\tkey = 'defaultTaxonomiesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( taxonomy );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultTaxonomiesMenuItems: [], taxonomiesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn taxonomiesMenuItems;\n};\n\nconst USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX = { user: 'author' };\nconst USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS = { user: { who: 'authors' } };\nexport function useAuthorMenuItem( onClickMenuItem ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst authorInfo = useEntitiesInfo(\n\t\t'root',\n\t\tUSE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX,\n\t\tUSE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS\n\t);\n\tlet authorMenuItem = defaultTemplateTypes?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( ! authorMenuItem ) {\n\t\tauthorMenuItem = {\n\t\t\tdescription: __(\n\t\t\t\t'Displays latest posts written by a single author.'\n\t\t\t),\n\t\t\tslug: 'author',\n\t\t\ttitle: 'Author',\n\t\t};\n\t}\n\tconst hasGeneralTemplate = !! existingTemplates?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( authorInfo.user?.hasEntities ) {\n\t\tauthorMenuItem = { ...authorMenuItem, templatePrefix: 'author' };\n\t\tauthorMenuItem.onClick = ( template ) => {\n\t\t\tonClickMenuItem( {\n\t\t\t\ttype: 'root',\n\t\t\t\tslug: 'user',\n\t\t\t\tconfig: {\n\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\torderBy: search ? 'name' : 'registered_date',\n\t\t\t\t\t\t\texclude: authorInfo.user.existingEntitiesIds,\n\t\t\t\t\t\t\twho: 'authors',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\tconst templateSlug = `author-${ suggestion.slug }`;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\ttemplatePrefix: 'author',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tsingular_name: __( 'Author' ),\n\t\t\t\t\tsearch_items: __( 'Search Authors' ),\n\t\t\t\t\tnot_found: __( 'No authors found.' ),\n\t\t\t\t\tall_items: __( 'All Authors' ),\n\t\t\t\t},\n\t\t\t\thasGeneralTemplate,\n\t\t\t\ttemplate,\n\t\t\t} );\n\t\t};\n\t}\n\tif ( ! hasGeneralTemplate || authorInfo.user?.hasEntities ) {\n\t\treturn authorMenuItem;\n\t}\n}\n\n/**\n * Helper hook that filters all the existing templates by the given\n * object with the entity's slug as key and the template prefix as value.\n *\n * Example:\n * `existingTemplates` is: [ { slug: 'tag-apple' }, { slug: 'page-about' }, { slug: 'tag' } ]\n * `templatePrefixes` is: { post_tag: 'tag' }\n * It will return: { post_tag: ['apple'] }\n *\n * Note: We append the `-` to the given template prefix in this function for our checks.\n *\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @return {Record<string,string[]>} An object with the entity's slug as key and an array with the existing template slugs as value.\n */\nconst useExistingTemplateSlugs = ( templatePrefixes ) => {\n\tconst existingTemplates = useExistingTemplates();\n\tconst existingSlugs = useMemo( () => {\n\t\treturn Object.entries( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, [ slug, prefix ] ) => {\n\t\t\t\tconst slugsWithTemplates = ( existingTemplates || [] ).reduce(\n\t\t\t\t\t( _accumulator, existingTemplate ) => {\n\t\t\t\t\t\tconst _prefix = `${ prefix }-`;\n\t\t\t\t\t\tif ( existingTemplate.slug.startsWith( _prefix ) ) {\n\t\t\t\t\t\t\t_accumulator.push(\n\t\t\t\t\t\t\t\texistingTemplate.slug.substring(\n\t\t\t\t\t\t\t\t\t_prefix.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn _accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tif ( slugsWithTemplates.length ) {\n\t\t\t\t\taccumulator[ slug ] = slugsWithTemplates;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, existingTemplates ] );\n\treturn existingSlugs;\n};\n\n/**\n * Helper hook that finds the existing records with an associated template,\n * as they need to be excluded from the template suggestions.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the existing records as value.\n */\nconst useTemplatesToExclude = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = {}\n) => {\n\tconst slugsToExcludePerEntity =\n\t\tuseExistingTemplateSlugs( templatePrefixes );\n\tconst recordsToExcludePerEntity = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.entries( slugsToExcludePerEntity || {} ).reduce(\n\t\t\t\t( accumulator, [ slug, slugsWithTemplates ] ) => {\n\t\t\t\t\tconst entitiesWithTemplates = select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\tslug: slugsWithTemplates,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} );\n\t\t\t\t\tif ( entitiesWithTemplates?.length ) {\n\t\t\t\t\t\taccumulator[ slug ] = entitiesWithTemplates;\n\t\t\t\t\t}\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[ slugsToExcludePerEntity ]\n\t);\n\treturn recordsToExcludePerEntity;\n};\n\n/**\n * Helper hook that returns information about an entity having\n * records that we can create a specific template for.\n *\n * For example we can search for `terms` in `taxonomy` entity or\n * `posts` in `postType` entity.\n *\n * First we need to find the existing records with an associated template,\n * to query afterwards for any remaining record, by excluding them.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the EntitiesInfo as value.\n */\nconst useEntitiesInfo = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = EMPTY_OBJECT\n) => {\n\tconst recordsToExcludePerEntity = useTemplatesToExclude(\n\t\tentityName,\n\t\ttemplatePrefixes,\n\t\tadditionalQueryParameters\n\t);\n\tconst entitiesHasRecords = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t\t( accumulator, slug ) => {\n\t\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t\t) || [];\n\t\t\t\t\taccumulator[ slug ] = !! select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\texclude: existingEntitiesIds,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} )?.length;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[\n\t\t\ttemplatePrefixes,\n\t\t\trecordsToExcludePerEntity,\n\t\t\tentityName,\n\t\t\tadditionalQueryParameters,\n\t\t]\n\t);\n\tconst entitiesInfo = useMemo( () => {\n\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, slug ) => {\n\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t) || [];\n\t\t\t\taccumulator[ slug ] = {\n\t\t\t\t\thasEntities: entitiesHasRecords[ slug ],\n\t\t\t\t\texistingEntitiesIds,\n\t\t\t\t};\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, recordsToExcludePerEntity, entitiesHasRecords ] );\n\treturn entitiesInfo;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_data","require","_coreData","_htmlEntities","_element","_i18n","_icons","_constants","EMPTY_OBJECT","getValueFromObjectPath","object","path","value","split","forEach","fieldName","mapToIHasNameAndId","entities","map","entity","name","decodeEntities","exports","useExistingTemplates","useSelect","select","coreStore","getEntityRecords","TEMPLATE_POST_TYPE","per_page","useDefaultTemplateTypes","getEntityRecord","default_template_types","usePublicPostTypes","postTypes","getPostTypes","useMemo","excludedPostTypes","filter","viewable","slug","includes","usePublicTaxonomies","taxonomies","getTaxonomies","visibility","publicly_queryable","usePostTypeArchiveMenuItems","publicPostTypes","postTypesWithArchives","postType","has_archive","existingTemplates","postTypeLabels","reduce","accumulator","labels","singularName","singular_name","toLowerCase","needsUniqueIdentifier","useCallback","some","existingTemplate","title","sprintf","__","description","icon","startsWith","slice","archive","templatePrefix","usePostTypeMenuItems","onClickMenuItem","defaultTemplateTypes","templateLabels","templateName","template_name","templatePrefixes","suffix","postTypesInfo","useEntitiesInfo","existingTemplateSlugs","menuItems","generalTemplateSlug","defaultTemplateType","find","_slug","hasGeneralTemplate","_needsUniqueIdentifier","menuItemTitle","_x","menuItem","post","hasEntities","onClick","template","type","config","recordNamePath","queryArgs","search","_fields","orderBy","exclude","existingEntitiesIds","getSpecificTemplate","suggestion","templateSlug","push","postTypesMenuItems","key","defaultPostTypesMenuItems","useTaxonomiesMenuItems","publicTaxonomies","taxonomyLabels","taxonomiesInfo","taxonomy","blockMeta","taxonomiesMenuItems","defaultTaxonomiesMenuItems","USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX","user","USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS","who","useAuthorMenuItem","authorInfo","authorMenuItem","search_items","not_found","all_items","useExistingTemplateSlugs","existingSlugs","Object","entries","prefix","slugsWithTemplates","_accumulator","_prefix","substring","length","useTemplatesToExclude","entityName","additionalQueryParameters","slugsToExcludePerEntity","recordsToExcludePerEntity","entitiesWithTemplates","context","entitiesHasRecords","keys","id","entitiesInfo"],"sources":["@wordpress/edit-site/src/components/add-new-template/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { blockMeta, post, archive } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst EMPTY_OBJECT = {};\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.split( '.' ).forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of entities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * @typedef {Object} EntitiesInfo\n * @property {boolean} hasEntities If an entity has available records(posts, terms, etc..).\n * @property {number[]} existingEntitiesIds An array of the existing entities ids.\n */\n\nexport const useExistingTemplates = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).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[]\n\t);\n};\n\nexport const useDefaultTemplateTypes = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t\t?.default_template_types || [],\n\t\t[]\n\t);\n};\n\nconst usePublicPostTypes = () => {\n\tconst postTypes = useSelect(\n\t\t( select ) => select( coreStore ).getPostTypes( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\treturn postTypes?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t}, [ postTypes ] );\n};\n\nconst usePublicTaxonomies = () => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\nexport function usePostTypeArchiveMenuItems() {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst postTypesWithArchives = useMemo(\n\t\t() => publicPostTypes?.filter( ( postType ) => postType.has_archive ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst existingTemplates = useExistingTemplates();\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst postTypeLabels = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\t\taccumulator[ singularName ] =\n\t\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst needsUniqueIdentifier = useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\treturn postTypeLabels[ singularName ] > 1 && singularName !== slug;\n\t\t},\n\t\t[ postTypeLabels ]\n\t);\n\treturn useMemo(\n\t\t() =>\n\t\t\tpostTypesWithArchives\n\t\t\t\t?.filter(\n\t\t\t\t\t( postType ) =>\n\t\t\t\t\t\t! ( existingTemplates || [] ).some(\n\t\t\t\t\t\t\t( existingTemplate ) =>\n\t\t\t\t\t\t\t\texistingTemplate.slug ===\n\t\t\t\t\t\t\t\t'archive-' + postType.slug\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( postType ) => {\n\t\t\t\t\tlet title;\n\t\t\t\t\tif ( needsUniqueIdentifier( postType ) ) {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t__( 'Archive: %1$s (%2$s)' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name,\n\t\t\t\t\t\t\tpostType.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Archive: %s' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tslug: 'archive-' + postType.slug,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Displays an archive with the latest posts of type: %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon:\n\t\t\t\t\t\t\ttypeof postType.icon === 'string' &&\n\t\t\t\t\t\t\tpostType.icon.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t\t? postType.icon.slice( 10 )\n\t\t\t\t\t\t\t\t: archive,\n\t\t\t\t\t\ttemplatePrefix: 'archive',\n\t\t\t\t\t};\n\t\t\t\t} ) || [],\n\t\t[ postTypesWithArchives, existingTemplates, needsUniqueIdentifier ]\n\t);\n}\n\nexport const usePostTypeMenuItems = ( onClickMenuItem ) => {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst templateLabels = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\t\tconst templateName = (\n\t\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t\t).toLowerCase();\n\t\t\t\taccumulator[ templateName ] =\n\t\t\t\t\t( accumulator[ templateName ] || 0 ) + 1;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst needsUniqueIdentifier = useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst templateName = (\n\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t).toLowerCase();\n\t\t\treturn templateLabels[ templateName ] > 1 && templateName !== slug;\n\t\t},\n\t\t[ templateLabels ]\n\t);\n\n\t// `page`is a special case in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( slug !== 'page' ) {\n\t\t\t\t\tsuffix = `single-${ suffix }`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst postTypesInfo = useEntitiesInfo( 'postType', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicPostTypes || [] ).reduce(\n\t\t( accumulator, postType ) => {\n\t\t\tconst { slug, labels, icon } = postType;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier( postType );\n\t\t\tlet menuItemTitle =\n\t\t\t\tlabels.template_name ||\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t__( 'Single item: %s' ),\n\t\t\t\t\tlabels.singular_name\n\t\t\t\t);\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = labels.template_name\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the template e.g: \"Single Item: Post\". 2: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t_x( '%1$s (%2$s)', 'post type menu label' ),\n\t\t\t\t\t\t\tlabels.template_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the post type e.g: \"Post\". 2: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t'Single item: %1$s (%2$s)',\n\t\t\t\t\t\t\t\t'post type menu label'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t );\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Displays a single item: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon:\n\t\t\t\t\t\t\ttypeof icon === 'string' &&\n\t\t\t\t\t\t\ticon.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t\t? icon.slice( 10 )\n\t\t\t\t\t\t\t\t: post,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = postTypesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'postType',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\trecordNamePath: 'title.rendered',\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,title,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'relevance' : 'modified',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\tpostTypesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default post types\n\t// and one for the rest.\n\tconst postTypesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, postType ) => {\n\t\t\t\t\tconst { slug } = postType;\n\t\t\t\t\tlet key = 'postTypesMenuItems';\n\t\t\t\t\tif ( slug === 'page' ) {\n\t\t\t\t\t\tkey = 'defaultPostTypesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( postType );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultPostTypesMenuItems: [], postTypesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn postTypesMenuItems;\n};\n\nexport const useTaxonomiesMenuItems = ( onClickMenuItem ) => {\n\tconst publicTaxonomies = usePublicTaxonomies();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// `category` and `post_tag` are special cases in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicTaxonomies?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( ! [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\t\t\tsuffix = `taxonomy-${ suffix }`;\n\t\t\t\t}\n\t\t\t\tif ( slug === 'post_tag' ) {\n\t\t\t\t\tsuffix = `tag`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicTaxonomies ]\n\t);\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst taxonomyLabels = publicTaxonomies?.reduce(\n\t\t( accumulator, { labels } ) => {\n\t\t\tconst templateName = (\n\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t).toLowerCase();\n\t\t\taccumulator[ templateName ] =\n\t\t\t\t( accumulator[ templateName ] || 0 ) + 1;\n\t\t\treturn accumulator;\n\t\t},\n\t\t{}\n\t);\n\tconst needsUniqueIdentifier = ( labels, slug ) => {\n\t\tif ( [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst templateName = (\n\t\t\tlabels.template_name || labels.singular_name\n\t\t).toLowerCase();\n\t\treturn taxonomyLabels[ templateName ] > 1 && templateName !== slug;\n\t};\n\tconst taxonomiesInfo = useEntitiesInfo( 'taxonomy', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicTaxonomies || [] ).reduce(\n\t\t( accumulator, taxonomy ) => {\n\t\t\tconst { slug, labels } = taxonomy;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier(\n\t\t\t\tlabels,\n\t\t\t\tslug\n\t\t\t);\n\t\t\tlet menuItemTitle = labels.template_name || labels.singular_name;\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = labels.template_name\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the template e.g: \"Products by Category\". 2s: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t\t\t_x( '%1$s (%2$s)', 'taxonomy template menu label' ),\n\t\t\t\t\t\t\tlabels.template_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the taxonomy e.g: \"Category\". 2: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t\t\t_x( '%1$s (%2$s)', 'taxonomy menu label' ),\n\t\t\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t );\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the taxonomy e.g: \"Product Categories\".\n\t\t\t\t\t\t\t__( 'Displays taxonomy: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ticon: blockMeta,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = taxonomiesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'taxonomy',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'name' : 'count',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\ttaxonomiesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default taxonomies\n\t// and one for the rest.\n\tconst taxonomiesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, taxonomy ) => {\n\t\t\t\t\tconst { slug } = taxonomy;\n\t\t\t\t\tlet key = 'taxonomiesMenuItems';\n\t\t\t\t\tif ( [ 'category', 'tag' ].includes( slug ) ) {\n\t\t\t\t\t\tkey = 'defaultTaxonomiesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( taxonomy );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultTaxonomiesMenuItems: [], taxonomiesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn taxonomiesMenuItems;\n};\n\nconst USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX = { user: 'author' };\nconst USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS = { user: { who: 'authors' } };\nexport function useAuthorMenuItem( onClickMenuItem ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst authorInfo = useEntitiesInfo(\n\t\t'root',\n\t\tUSE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX,\n\t\tUSE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS\n\t);\n\tlet authorMenuItem = defaultTemplateTypes?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( ! authorMenuItem ) {\n\t\tauthorMenuItem = {\n\t\t\tdescription: __(\n\t\t\t\t'Displays latest posts written by a single author.'\n\t\t\t),\n\t\t\tslug: 'author',\n\t\t\ttitle: 'Author',\n\t\t};\n\t}\n\tconst hasGeneralTemplate = !! existingTemplates?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( authorInfo.user?.hasEntities ) {\n\t\tauthorMenuItem = { ...authorMenuItem, templatePrefix: 'author' };\n\t\tauthorMenuItem.onClick = ( template ) => {\n\t\t\tonClickMenuItem( {\n\t\t\t\ttype: 'root',\n\t\t\t\tslug: 'user',\n\t\t\t\tconfig: {\n\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\torderBy: search ? 'name' : 'registered_date',\n\t\t\t\t\t\t\texclude: authorInfo.user.existingEntitiesIds,\n\t\t\t\t\t\t\twho: 'authors',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\tconst templateSlug = `author-${ suggestion.slug }`;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\ttemplatePrefix: 'author',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tsingular_name: __( 'Author' ),\n\t\t\t\t\tsearch_items: __( 'Search Authors' ),\n\t\t\t\t\tnot_found: __( 'No authors found.' ),\n\t\t\t\t\tall_items: __( 'All Authors' ),\n\t\t\t\t},\n\t\t\t\thasGeneralTemplate,\n\t\t\t\ttemplate,\n\t\t\t} );\n\t\t};\n\t}\n\tif ( ! hasGeneralTemplate || authorInfo.user?.hasEntities ) {\n\t\treturn authorMenuItem;\n\t}\n}\n\n/**\n * Helper hook that filters all the existing templates by the given\n * object with the entity's slug as key and the template prefix as value.\n *\n * Example:\n * `existingTemplates` is: [ { slug: 'tag-apple' }, { slug: 'page-about' }, { slug: 'tag' } ]\n * `templatePrefixes` is: { post_tag: 'tag' }\n * It will return: { post_tag: ['apple'] }\n *\n * Note: We append the `-` to the given template prefix in this function for our checks.\n *\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @return {Record<string,string[]>} An object with the entity's slug as key and an array with the existing template slugs as value.\n */\nconst useExistingTemplateSlugs = ( templatePrefixes ) => {\n\tconst existingTemplates = useExistingTemplates();\n\tconst existingSlugs = useMemo( () => {\n\t\treturn Object.entries( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, [ slug, prefix ] ) => {\n\t\t\t\tconst slugsWithTemplates = ( existingTemplates || [] ).reduce(\n\t\t\t\t\t( _accumulator, existingTemplate ) => {\n\t\t\t\t\t\tconst _prefix = `${ prefix }-`;\n\t\t\t\t\t\tif ( existingTemplate.slug.startsWith( _prefix ) ) {\n\t\t\t\t\t\t\t_accumulator.push(\n\t\t\t\t\t\t\t\texistingTemplate.slug.substring(\n\t\t\t\t\t\t\t\t\t_prefix.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn _accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tif ( slugsWithTemplates.length ) {\n\t\t\t\t\taccumulator[ slug ] = slugsWithTemplates;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, existingTemplates ] );\n\treturn existingSlugs;\n};\n\n/**\n * Helper hook that finds the existing records with an associated template,\n * as they need to be excluded from the template suggestions.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the existing records as value.\n */\nconst useTemplatesToExclude = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = {}\n) => {\n\tconst slugsToExcludePerEntity =\n\t\tuseExistingTemplateSlugs( templatePrefixes );\n\tconst recordsToExcludePerEntity = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.entries( slugsToExcludePerEntity || {} ).reduce(\n\t\t\t\t( accumulator, [ slug, slugsWithTemplates ] ) => {\n\t\t\t\t\tconst entitiesWithTemplates = select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\tslug: slugsWithTemplates,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} );\n\t\t\t\t\tif ( entitiesWithTemplates?.length ) {\n\t\t\t\t\t\taccumulator[ slug ] = entitiesWithTemplates;\n\t\t\t\t\t}\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[ slugsToExcludePerEntity ]\n\t);\n\treturn recordsToExcludePerEntity;\n};\n\n/**\n * Helper hook that returns information about an entity having\n * records that we can create a specific template for.\n *\n * For example we can search for `terms` in `taxonomy` entity or\n * `posts` in `postType` entity.\n *\n * First we need to find the existing records with an associated template,\n * to query afterwards for any remaining record, by excluding them.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the EntitiesInfo as value.\n */\nconst useEntitiesInfo = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = EMPTY_OBJECT\n) => {\n\tconst recordsToExcludePerEntity = useTemplatesToExclude(\n\t\tentityName,\n\t\ttemplatePrefixes,\n\t\tadditionalQueryParameters\n\t);\n\tconst entitiesHasRecords = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t\t( accumulator, slug ) => {\n\t\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t\t) || [];\n\t\t\t\t\taccumulator[ slug ] = !! select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\texclude: existingEntitiesIds,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} )?.length;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[\n\t\t\ttemplatePrefixes,\n\t\t\trecordsToExcludePerEntity,\n\t\t\tentityName,\n\t\t\tadditionalQueryParameters,\n\t\t]\n\t);\n\tconst entitiesInfo = useMemo( () => {\n\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, slug ) => {\n\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t) || [];\n\t\t\t\taccumulator[ slug ] = {\n\t\t\t\t\thasEntities: entitiesHasRecords[ slug ],\n\t\t\t\t\texistingEntitiesIds,\n\t\t\t\t};\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, recordsToExcludePerEntity, entitiesHasRecords ] );\n\treturn entitiesInfo;\n};\n"],"mappings":"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","ignoreList":[]}
|