@wordpress/editor 14.3.0 → 14.5.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 +8 -0
- package/README.md +2 -1
- package/build/bindings/api.js +65 -0
- package/build/bindings/api.js.map +1 -0
- package/build/bindings/pattern-overrides.js +23 -13
- package/build/bindings/pattern-overrides.js.map +1 -1
- package/build/bindings/post-meta.js +35 -12
- package/build/bindings/post-meta.js.map +1 -1
- package/build/components/block-settings-menu/content-only-settings-menu.js +4 -1
- package/build/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
- package/build/components/blog-title/index.js +7 -3
- package/build/components/blog-title/index.js.map +1 -1
- package/build/components/collapsible-block-toolbar/index.js +2 -3
- package/build/components/collapsible-block-toolbar/index.js.map +1 -1
- package/build/components/commands/index.js +8 -2
- package/build/components/commands/index.js.map +1 -1
- package/build/components/document-bar/index.js +1 -1
- package/build/components/document-bar/index.js.map +1 -1
- package/build/components/global-styles-provider/index.js +15 -3
- package/build/components/global-styles-provider/index.js.map +1 -1
- package/build/components/header/back-button.js +7 -8
- package/build/components/header/back-button.js.map +1 -1
- package/build/components/header/index.js +21 -20
- package/build/components/header/index.js.map +1 -1
- package/build/components/page-attributes/order.js +1 -67
- package/build/components/page-attributes/order.js.map +1 -1
- package/build/components/page-attributes/panel.js +1 -4
- package/build/components/page-attributes/panel.js.map +1 -1
- package/build/components/page-attributes/parent.js +6 -2
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/post-actions/actions.js +131 -344
- package/build/components/post-actions/actions.js.map +1 -1
- package/build/components/post-actions/index.js +16 -6
- package/build/components/post-actions/index.js.map +1 -1
- package/build/components/post-author/hook.js +10 -3
- package/build/components/post-author/hook.js.map +1 -1
- package/build/components/post-author/panel.js +2 -1
- package/build/components/post-author/panel.js.map +1 -1
- package/build/components/post-card-panel/index.js +9 -3
- package/build/components/post-card-panel/index.js.map +1 -1
- package/build/components/post-comments/index.js +6 -20
- package/build/components/post-comments/index.js.map +1 -1
- package/build/components/post-content-information/index.js +7 -1
- package/build/components/post-content-information/index.js.map +1 -1
- package/build/components/post-discussion/panel.js +2 -2
- package/build/components/post-discussion/panel.js.map +1 -1
- package/build/components/post-excerpt/panel.js +1 -1
- package/build/components/post-excerpt/panel.js.map +1 -1
- package/build/components/post-featured-image/index.js +3 -1
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-last-revision/index.js +2 -1
- package/build/components/post-last-revision/index.js.map +1 -1
- package/build/components/post-publish-button/index.js +4 -11
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-category-panel.js +4 -1
- package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
- package/build/components/post-publish-panel/maybe-tags-panel.js +2 -1
- package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
- package/build/components/post-status/index.js +47 -51
- package/build/components/post-status/index.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +17 -6
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/index.js +7 -1
- package/build/components/post-taxonomies/index.js.map +1 -1
- package/build/components/post-template/block-theme.js +4 -4
- package/build/components/post-template/block-theme.js.map +1 -1
- package/build/components/post-template/classic-theme.js +8 -2
- package/build/components/post-template/classic-theme.js.map +1 -1
- package/build/components/post-template/create-new-template-modal.js +3 -0
- package/build/components/post-template/create-new-template-modal.js.map +1 -1
- package/build/components/post-template/create-new-template.js +4 -1
- package/build/components/post-template/create-new-template.js.map +1 -1
- package/build/components/post-template/hooks.js +5 -1
- package/build/components/post-template/hooks.js.map +1 -1
- package/build/components/post-template/panel.js +8 -2
- package/build/components/post-template/panel.js.map +1 -1
- package/build/components/post-trash/check.js +6 -4
- package/build/components/post-trash/check.js.map +1 -1
- package/build/components/post-url/panel.js +9 -4
- package/build/components/post-url/panel.js.map +1 -1
- package/build/components/posts-per-page/index.js +6 -2
- package/build/components/posts-per-page/index.js.map +1 -1
- package/build/components/preview-dropdown/index.js +82 -17
- package/build/components/preview-dropdown/index.js.map +1 -1
- package/build/components/provider/disable-non-page-content-blocks.js +14 -18
- package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +15 -6
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/components/save-publish-panels/index.js +1 -2
- package/build/components/save-publish-panels/index.js.map +1 -1
- package/build/components/sidebar/index.js +3 -9
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/site-discussion/index.js +12 -22
- package/build/components/site-discussion/index.js.map +1 -1
- package/build/components/template-content-panel/index.js +17 -15
- package/build/components/template-content-panel/index.js.map +1 -1
- package/build/components/visual-editor/edit-template-blocks-notification.js +4 -4
- package/build/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
- package/build/components/visual-editor/index.js +7 -3
- package/build/components/visual-editor/index.js.map +1 -1
- package/build/{hooks → components/visual-editor}/use-select-nearest-editable-block.js +1 -1
- package/build/components/visual-editor/use-select-nearest-editable-block.js.map +1 -0
- package/build/dataviews/actions/delete-post.js +2 -0
- package/build/dataviews/actions/delete-post.js.map +1 -1
- package/build/dataviews/actions/export-pattern.native.js +9 -0
- package/build/dataviews/actions/export-pattern.native.js.map +1 -0
- package/build/dataviews/actions/permanently-delete-post.js +107 -0
- package/build/dataviews/actions/permanently-delete-post.js.map +1 -0
- package/build/dataviews/actions/restore-post.js +112 -0
- package/build/dataviews/actions/restore-post.js.map +1 -0
- package/build/dataviews/actions/trash-post.js +142 -0
- package/build/dataviews/actions/trash-post.js.map +1 -0
- package/build/dataviews/store/private-actions.js +45 -0
- package/build/dataviews/store/private-actions.js.map +1 -1
- package/build/dataviews/store/private-selectors.js +10 -10
- package/build/dataviews/store/private-selectors.js.map +1 -1
- package/build/dataviews/store/reducer.js +15 -1
- package/build/dataviews/store/reducer.js.map +1 -1
- package/build/dataviews/types.js.map +1 -1
- package/build/hooks/pattern-overrides.js +1 -1
- package/build/hooks/pattern-overrides.js.map +1 -1
- package/build/index.js +0 -1
- package/build/index.js.map +1 -1
- package/build/private-apis.js +3 -2
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +16 -2
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +8 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +33 -2
- package/build/store/private-selectors.js.map +1 -1
- package/build/utils/media-upload/index.js +35 -2
- package/build/utils/media-upload/index.js.map +1 -1
- package/build-module/bindings/api.js +57 -0
- package/build-module/bindings/api.js.map +1 -0
- package/build-module/bindings/pattern-overrides.js +23 -13
- package/build-module/bindings/pattern-overrides.js.map +1 -1
- package/build-module/bindings/post-meta.js +35 -12
- package/build-module/bindings/post-meta.js.map +1 -1
- package/build-module/components/block-settings-menu/content-only-settings-menu.js +4 -1
- package/build-module/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
- package/build-module/components/blog-title/index.js +7 -3
- package/build-module/components/blog-title/index.js.map +1 -1
- package/build-module/components/collapsible-block-toolbar/index.js +1 -2
- package/build-module/components/collapsible-block-toolbar/index.js.map +1 -1
- package/build-module/components/commands/index.js +8 -2
- package/build-module/components/commands/index.js.map +1 -1
- package/build-module/components/document-bar/index.js +1 -1
- package/build-module/components/document-bar/index.js.map +1 -1
- package/build-module/components/global-styles-provider/index.js +15 -3
- package/build-module/components/global-styles-provider/index.js.map +1 -1
- package/build-module/components/header/back-button.js +5 -7
- package/build-module/components/header/back-button.js.map +1 -1
- package/build-module/components/header/index.js +21 -22
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/page-attributes/order.js +4 -70
- package/build-module/components/page-attributes/order.js.map +1 -1
- package/build-module/components/page-attributes/panel.js +1 -6
- package/build-module/components/page-attributes/panel.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +7 -3
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/post-actions/actions.js +137 -350
- package/build-module/components/post-actions/actions.js.map +1 -1
- package/build-module/components/post-actions/index.js +16 -6
- package/build-module/components/post-actions/index.js.map +1 -1
- package/build-module/components/post-author/hook.js +10 -3
- package/build-module/components/post-author/hook.js.map +1 -1
- package/build-module/components/post-author/panel.js +2 -1
- package/build-module/components/post-author/panel.js.map +1 -1
- package/build-module/components/post-card-panel/index.js +9 -3
- package/build-module/components/post-card-panel/index.js.map +1 -1
- package/build-module/components/post-comments/index.js +8 -24
- package/build-module/components/post-comments/index.js.map +1 -1
- package/build-module/components/post-content-information/index.js +7 -1
- package/build-module/components/post-content-information/index.js.map +1 -1
- package/build-module/components/post-discussion/panel.js +3 -3
- package/build-module/components/post-discussion/panel.js.map +1 -1
- package/build-module/components/post-excerpt/panel.js +1 -1
- package/build-module/components/post-excerpt/panel.js.map +1 -1
- package/build-module/components/post-featured-image/index.js +3 -1
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-last-revision/index.js +2 -1
- package/build-module/components/post-last-revision/index.js.map +1 -1
- package/build-module/components/post-publish-button/index.js +4 -11
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-category-panel.js +4 -1
- package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-tags-panel.js +2 -1
- package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
- package/build-module/components/post-status/index.js +49 -53
- package/build-module/components/post-status/index.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +17 -6
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/index.js +7 -1
- package/build-module/components/post-taxonomies/index.js.map +1 -1
- package/build-module/components/post-template/block-theme.js +4 -4
- package/build-module/components/post-template/block-theme.js.map +1 -1
- package/build-module/components/post-template/classic-theme.js +8 -2
- package/build-module/components/post-template/classic-theme.js.map +1 -1
- package/build-module/components/post-template/create-new-template-modal.js +3 -0
- package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
- package/build-module/components/post-template/create-new-template.js +4 -1
- package/build-module/components/post-template/create-new-template.js.map +1 -1
- package/build-module/components/post-template/hooks.js +5 -1
- package/build-module/components/post-template/hooks.js.map +1 -1
- package/build-module/components/post-template/panel.js +8 -2
- package/build-module/components/post-template/panel.js.map +1 -1
- package/build-module/components/post-trash/check.js +6 -4
- package/build-module/components/post-trash/check.js.map +1 -1
- package/build-module/components/post-url/panel.js +10 -7
- package/build-module/components/post-url/panel.js.map +1 -1
- package/build-module/components/posts-per-page/index.js +6 -2
- package/build-module/components/posts-per-page/index.js.map +1 -1
- package/build-module/components/preview-dropdown/index.js +84 -19
- package/build-module/components/preview-dropdown/index.js.map +1 -1
- package/build-module/components/provider/disable-non-page-content-blocks.js +15 -19
- package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +15 -6
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/components/save-publish-panels/index.js +1 -2
- package/build-module/components/save-publish-panels/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +3 -9
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/site-discussion/index.js +14 -24
- package/build-module/components/site-discussion/index.js.map +1 -1
- package/build-module/components/template-content-panel/index.js +18 -16
- package/build-module/components/template-content-panel/index.js.map +1 -1
- package/build-module/components/visual-editor/edit-template-blocks-notification.js +4 -4
- package/build-module/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
- package/build-module/components/visual-editor/index.js +7 -3
- package/build-module/components/visual-editor/index.js.map +1 -1
- package/build-module/{hooks → components/visual-editor}/use-select-nearest-editable-block.js +1 -1
- package/build-module/components/visual-editor/use-select-nearest-editable-block.js.map +1 -0
- package/build-module/dataviews/actions/delete-post.js +2 -0
- package/build-module/dataviews/actions/delete-post.js.map +1 -1
- package/build-module/dataviews/actions/export-pattern.native.js +3 -0
- package/build-module/dataviews/actions/export-pattern.native.js.map +1 -0
- package/build-module/dataviews/actions/permanently-delete-post.js +99 -0
- package/build-module/dataviews/actions/permanently-delete-post.js.map +1 -0
- package/build-module/dataviews/actions/restore-post.js +104 -0
- package/build-module/dataviews/actions/restore-post.js.map +1 -0
- package/build-module/dataviews/actions/trash-post.js +135 -0
- package/build-module/dataviews/actions/trash-post.js.map +1 -0
- package/build-module/dataviews/store/private-actions.js +40 -0
- package/build-module/dataviews/store/private-actions.js.map +1 -1
- package/build-module/dataviews/store/private-selectors.js +8 -9
- package/build-module/dataviews/store/private-selectors.js.map +1 -1
- package/build-module/dataviews/store/reducer.js +15 -1
- package/build-module/dataviews/store/reducer.js.map +1 -1
- package/build-module/dataviews/types.js.map +1 -1
- package/build-module/hooks/pattern-overrides.js +1 -1
- package/build-module/hooks/pattern-overrides.js.map +1 -1
- package/build-module/index.js +0 -1
- package/build-module/index.js.map +1 -1
- package/build-module/private-apis.js +3 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +16 -2
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +8 -1
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +32 -2
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/utils/media-upload/index.js +36 -3
- package/build-module/utils/media-upload/index.js.map +1 -1
- package/build-style/style-rtl.css +97 -45
- package/build-style/style.css +97 -45
- package/build-types/bindings/api.d.ts +25 -0
- package/build-types/bindings/api.d.ts.map +1 -0
- package/build-types/bindings/pattern-overrides.d.ts +5 -6
- package/build-types/bindings/pattern-overrides.d.ts.map +1 -1
- package/build-types/bindings/post-meta.d.ts +11 -7
- package/build-types/bindings/post-meta.d.ts.map +1 -1
- package/build-types/components/autocompleters/user.d.ts +2 -2
- package/build-types/components/autocompleters/user.d.ts.map +1 -1
- package/build-types/components/block-settings-menu/plugin-block-settings-menu-item.d.ts.map +1 -1
- package/build-types/components/blog-title/index.d.ts.map +1 -1
- package/build-types/components/collapsible-block-toolbar/index.d.ts +1 -2
- package/build-types/components/collapsible-block-toolbar/index.d.ts.map +1 -1
- package/build-types/components/commands/index.d.ts.map +1 -1
- package/build-types/components/document-bar/index.d.ts.map +1 -1
- package/build-types/components/document-outline/check.d.ts.map +1 -1
- package/build-types/components/document-outline/index.d.ts.map +1 -1
- package/build-types/components/editor-history/redo.d.ts +1 -1
- package/build-types/components/editor-history/undo.d.ts +1 -1
- package/build-types/components/editor-notices/index.d.ts.map +1 -1
- package/build-types/components/editor-snackbars/index.d.ts.map +1 -1
- package/build-types/components/entities-saved-states/index.d.ts.map +1 -1
- package/build-types/components/global-styles-provider/index.d.ts.map +1 -1
- package/build-types/components/header/back-button.d.ts +1 -0
- package/build-types/components/header/back-button.d.ts.map +1 -1
- package/build-types/components/header/index.d.ts.map +1 -1
- package/build-types/components/local-autosave-monitor/index.d.ts.map +1 -1
- package/build-types/components/media-categories/index.d.ts.map +1 -1
- package/build-types/components/more-menu/tools-more-menu-group.d.ts.map +1 -1
- package/build-types/components/more-menu/view-more-menu-group.d.ts.map +1 -1
- package/build-types/components/page-attributes/check.d.ts.map +1 -1
- package/build-types/components/page-attributes/order.d.ts +1 -1
- package/build-types/components/page-attributes/order.d.ts.map +1 -1
- package/build-types/components/page-attributes/panel.d.ts.map +1 -1
- package/build-types/components/page-attributes/parent.d.ts.map +1 -1
- package/build-types/components/plugin-document-setting-panel/index.d.ts.map +1 -1
- package/build-types/components/plugin-post-publish-panel/index.d.ts.map +1 -1
- package/build-types/components/plugin-post-status-info/index.d.ts.map +1 -1
- package/build-types/components/plugin-pre-publish-panel/index.d.ts.map +1 -1
- package/build-types/components/plugin-sidebar/index.d.ts.map +1 -1
- package/build-types/components/plugin-sidebar-more-menu-item/index.d.ts.map +1 -1
- package/build-types/components/post-actions/actions.d.ts.map +1 -1
- package/build-types/components/post-actions/index.d.ts.map +1 -1
- package/build-types/components/post-author/check.d.ts.map +1 -1
- package/build-types/components/post-author/hook.d.ts +1 -1
- package/build-types/components/post-author/hook.d.ts.map +1 -1
- package/build-types/components/post-author/index.d.ts.map +1 -1
- package/build-types/components/post-author/panel.d.ts.map +1 -1
- package/build-types/components/post-card-panel/index.d.ts.map +1 -1
- package/build-types/components/post-comments/index.d.ts.map +1 -1
- package/build-types/components/post-content-information/index.d.ts.map +1 -1
- package/build-types/components/post-discussion/panel.d.ts.map +1 -1
- package/build-types/components/post-excerpt/check.d.ts.map +1 -1
- package/build-types/components/post-excerpt/index.d.ts.map +1 -1
- package/build-types/components/post-excerpt/panel.d.ts.map +1 -1
- package/build-types/components/post-excerpt/plugin.d.ts.map +1 -1
- package/build-types/components/post-featured-image/check.d.ts.map +1 -1
- package/build-types/components/post-featured-image/panel.d.ts.map +1 -1
- package/build-types/components/post-format/index.d.ts.map +1 -1
- package/build-types/components/post-format/panel.d.ts.map +1 -1
- package/build-types/components/post-last-revision/check.d.ts.map +1 -1
- package/build-types/components/post-last-revision/index.d.ts.map +1 -1
- package/build-types/components/post-last-revision/panel.d.ts.map +1 -1
- package/build-types/components/post-locked-modal/index.d.ts.map +1 -1
- package/build-types/components/post-pending-status/check.d.ts.map +1 -1
- package/build-types/components/post-pending-status/index.d.ts.map +1 -1
- package/build-types/components/post-preview-button/index.d.ts.map +1 -1
- package/build-types/components/post-publish-button/index.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/maybe-category-panel.d.ts.map +1 -1
- package/build-types/components/post-saved-state/index.d.ts +1 -1
- package/build-types/components/post-saved-state/index.d.ts.map +1 -1
- package/build-types/components/post-schedule/check.d.ts.map +1 -1
- package/build-types/components/post-schedule/index.d.ts.map +1 -1
- package/build-types/components/post-schedule/label.d.ts.map +1 -1
- package/build-types/components/post-schedule/panel.d.ts.map +1 -1
- package/build-types/components/post-slug/check.d.ts.map +1 -1
- package/build-types/components/post-slug/index.d.ts.map +1 -1
- package/build-types/components/post-status/index.d.ts +2 -1
- package/build-types/components/post-status/index.d.ts.map +1 -1
- package/build-types/components/post-sticky/check.d.ts.map +1 -1
- package/build-types/components/post-sticky/index.d.ts.map +1 -1
- package/build-types/components/post-switch-to-draft-button/index.d.ts.map +1 -1
- package/build-types/components/post-sync-status/index.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/check.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/flat-term-selector.d.ts +9 -7
- package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts +13 -11
- package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/index.d.ts.map +1 -1
- package/build-types/components/post-template/block-theme.d.ts.map +1 -1
- package/build-types/components/post-template/classic-theme.d.ts.map +1 -1
- package/build-types/components/post-template/create-new-template-modal.d.ts.map +1 -1
- package/build-types/components/post-template/create-new-template.d.ts.map +1 -1
- package/build-types/components/post-template/hooks.d.ts.map +1 -1
- package/build-types/components/post-template/panel.d.ts.map +1 -1
- package/build-types/components/post-text-editor/index.d.ts.map +1 -1
- package/build-types/components/post-trash/check.d.ts.map +1 -1
- package/build-types/components/post-trash/index.d.ts.map +1 -1
- package/build-types/components/post-type-support-check/index.d.ts.map +1 -1
- package/build-types/components/post-url/check.d.ts.map +1 -1
- package/build-types/components/post-url/index.d.ts.map +1 -1
- package/build-types/components/post-url/label.d.ts.map +1 -1
- package/build-types/components/post-url/panel.d.ts.map +1 -1
- package/build-types/components/post-visibility/check.d.ts.map +1 -1
- package/build-types/components/post-visibility/index.d.ts.map +1 -1
- package/build-types/components/posts-per-page/index.d.ts.map +1 -1
- package/build-types/components/preferences-modal/enable-plugin-document-setting-panel.d.ts.map +1 -1
- package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
- package/build-types/components/provider/disable-non-page-content-blocks.d.ts.map +1 -1
- package/build-types/components/provider/index.d.ts.map +1 -1
- package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
- package/build-types/components/save-publish-panels/index.d.ts.map +1 -1
- package/build-types/components/sidebar/index.d.ts.map +1 -1
- package/build-types/components/site-discussion/index.d.ts.map +1 -1
- package/build-types/components/template-content-panel/index.d.ts +1 -3
- package/build-types/components/template-content-panel/index.d.ts.map +1 -1
- package/build-types/components/theme-support-check/index.d.ts.map +1 -1
- package/build-types/components/time-to-read/index.d.ts.map +1 -1
- package/build-types/components/unsaved-changes-warning/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/edit-template-blocks-notification.d.ts +1 -1
- package/build-types/components/visual-editor/edit-template-blocks-notification.d.ts.map +1 -1
- package/build-types/components/visual-editor/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/use-select-nearest-editable-block.d.ts.map +1 -0
- package/build-types/components/word-count/index.d.ts.map +1 -1
- package/build-types/dataviews/actions/delete-post.d.ts.map +1 -1
- package/build-types/dataviews/actions/export-pattern.native.d.ts +3 -0
- package/build-types/dataviews/actions/export-pattern.native.d.ts.map +1 -0
- package/build-types/dataviews/actions/permanently-delete-post.d.ts +5 -0
- package/build-types/dataviews/actions/permanently-delete-post.d.ts.map +1 -0
- package/build-types/dataviews/actions/restore-post.d.ts +5 -0
- package/build-types/dataviews/actions/restore-post.d.ts.map +1 -0
- package/build-types/dataviews/actions/trash-post.d.ts +5 -0
- package/build-types/dataviews/actions/trash-post.d.ts.map +1 -0
- package/build-types/dataviews/api.d.ts +1 -1
- package/build-types/dataviews/api.d.ts.map +1 -1
- package/build-types/dataviews/store/private-actions.d.ts +8 -3
- package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
- package/build-types/dataviews/store/private-selectors.d.ts +2 -2
- package/build-types/dataviews/store/private-selectors.d.ts.map +1 -1
- package/build-types/dataviews/store/reducer.d.ts +4 -1
- package/build-types/dataviews/store/reducer.d.ts.map +1 -1
- package/build-types/dataviews/types.d.ts +9 -0
- package/build-types/dataviews/types.d.ts.map +1 -1
- package/build-types/hooks/custom-sources-backwards-compatibility.d.ts +1 -1
- package/build-types/hooks/custom-sources-backwards-compatibility.d.ts.map +1 -1
- package/build-types/hooks/pattern-overrides.d.ts.map +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/store/actions.d.ts.map +1 -1
- package/build-types/store/private-actions.d.ts.map +1 -1
- package/build-types/store/private-selectors.d.ts +11 -0
- package/build-types/store/private-selectors.d.ts.map +1 -1
- package/build-types/store/reducer.d.ts +1 -0
- package/build-types/store/reducer.d.ts.map +1 -1
- package/build-types/store/selectors.d.ts +0 -1
- package/build-types/store/selectors.d.ts.map +1 -1
- package/build-types/utils/media-upload/index.d.ts.map +1 -1
- package/package.json +38 -37
- package/src/bindings/api.js +57 -0
- package/src/bindings/pattern-overrides.js +28 -17
- package/src/bindings/post-meta.js +39 -14
- package/src/components/block-settings-menu/content-only-settings-menu.js +4 -4
- package/src/components/blog-title/index.js +8 -3
- package/src/components/collapsible-block-toolbar/index.js +1 -3
- package/src/components/collapsible-block-toolbar/style.scss +0 -3
- package/src/components/commands/index.js +4 -2
- package/src/components/document-bar/index.js +1 -1
- package/src/components/document-bar/style.scss +2 -6
- package/src/components/document-tools/style.scss +4 -4
- package/src/components/editor-interface/style.scss +9 -0
- package/src/components/global-styles-provider/index.js +22 -11
- package/src/components/header/back-button.js +6 -6
- package/src/components/header/index.js +27 -27
- package/src/components/header/style.scss +64 -21
- package/src/components/inserter-sidebar/style.scss +1 -6
- package/src/components/list-view-sidebar/style.scss +4 -0
- package/src/components/page-attributes/order.js +3 -77
- package/src/components/page-attributes/panel.js +1 -7
- package/src/components/page-attributes/parent.js +25 -7
- package/src/components/post-actions/actions.js +158 -463
- package/src/components/post-actions/index.js +19 -7
- package/src/components/post-author/hook.js +11 -3
- package/src/components/post-author/panel.js +3 -1
- package/src/components/post-card-panel/index.js +9 -3
- package/src/components/post-comments/index.js +8 -21
- package/src/components/post-content-information/index.js +7 -1
- package/src/components/post-discussion/panel.js +5 -3
- package/src/components/post-excerpt/panel.js +2 -1
- package/src/components/post-featured-image/index.js +5 -1
- package/src/components/post-last-revision/index.js +1 -0
- package/src/components/post-panel-row/style.scss +0 -1
- package/src/components/post-publish-button/index.js +4 -17
- package/src/components/post-publish-panel/maybe-category-panel.js +4 -1
- package/src/components/post-publish-panel/maybe-tags-panel.js +1 -1
- package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +2 -2
- package/src/components/post-status/index.js +29 -51
- package/src/components/post-taxonomies/flat-term-selector.js +19 -5
- package/src/components/post-taxonomies/index.js +8 -1
- package/src/components/post-template/block-theme.js +5 -1
- package/src/components/post-template/classic-theme.js +8 -3
- package/src/components/post-template/create-new-template-modal.js +7 -1
- package/src/components/post-template/create-new-template.js +4 -1
- package/src/components/post-template/hooks.js +8 -2
- package/src/components/post-template/panel.js +10 -2
- package/src/components/post-trash/check.js +9 -5
- package/src/components/post-url/panel.js +15 -4
- package/src/components/posts-per-page/index.js +7 -2
- package/src/components/preview-dropdown/index.js +113 -35
- package/src/components/preview-dropdown/style.scss +5 -0
- package/src/components/provider/disable-non-page-content-blocks.js +27 -24
- package/src/components/provider/use-block-editor-settings.js +15 -6
- package/src/components/save-publish-panels/index.js +1 -4
- package/src/components/sidebar/index.js +2 -5
- package/src/components/site-discussion/index.js +15 -22
- package/src/components/template-content-panel/index.js +37 -21
- package/src/components/visual-editor/edit-template-blocks-notification.js +5 -1
- package/src/components/visual-editor/index.js +13 -8
- package/src/components/visual-editor/style.scss +1 -4
- package/src/{hooks → components/visual-editor}/use-select-nearest-editable-block.js +1 -1
- package/src/dataviews/actions/delete-post.tsx +2 -0
- package/src/dataviews/actions/export-pattern.native.tsx +3 -0
- package/src/dataviews/actions/permanently-delete-post.tsx +116 -0
- package/src/dataviews/actions/restore-post.tsx +134 -0
- package/src/dataviews/actions/trash-post.tsx +196 -0
- package/src/dataviews/store/private-actions.ts +68 -0
- package/src/dataviews/store/private-selectors.ts +9 -17
- package/src/dataviews/store/reducer.ts +20 -1
- package/src/dataviews/types.ts +11 -0
- package/src/hooks/pattern-overrides.js +1 -1
- package/src/index.js +0 -1
- package/src/private-apis.js +6 -2
- package/src/store/actions.js +36 -13
- package/src/store/private-actions.js +8 -4
- package/src/store/private-selectors.js +45 -2
- package/src/store/test/actions.js +9 -3
- package/src/store/test/private-selectors.js +78 -0
- package/src/utils/media-upload/index.js +38 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/build/bindings/index.js +0 -22
- package/build/bindings/index.js.map +0 -1
- package/build/dataviews/actions/index.js +0 -32
- package/build/dataviews/actions/index.js.map +0 -1
- package/build/hooks/use-select-nearest-editable-block.js.map +0 -1
- package/build/store/utils/get-filtered-template-parts.js +0 -71
- package/build/store/utils/get-filtered-template-parts.js.map +0 -1
- package/build/utils/set-nested-value.js +0 -44
- package/build/utils/set-nested-value.js.map +0 -1
- package/build-module/bindings/index.js +0 -17
- package/build-module/bindings/index.js.map +0 -1
- package/build-module/dataviews/actions/index.js +0 -24
- package/build-module/dataviews/actions/index.js.map +0 -1
- package/build-module/hooks/use-select-nearest-editable-block.js.map +0 -1
- package/build-module/store/utils/get-filtered-template-parts.js +0 -64
- package/build-module/store/utils/get-filtered-template-parts.js.map +0 -1
- package/build-module/utils/set-nested-value.js +0 -38
- package/build-module/utils/set-nested-value.js.map +0 -1
- package/build-types/bindings/index.d.ts +0 -2
- package/build-types/bindings/index.d.ts.map +0 -1
- package/build-types/dataviews/actions/index.d.ts +0 -2
- package/build-types/dataviews/actions/index.d.ts.map +0 -1
- package/build-types/hooks/use-select-nearest-editable-block.d.ts.map +0 -1
- package/build-types/store/utils/get-filtered-template-parts.d.ts +0 -3
- package/build-types/store/utils/get-filtered-template-parts.d.ts.map +0 -1
- package/build-types/utils/set-nested-value.d.ts +0 -20
- package/build-types/utils/set-nested-value.d.ts.map +0 -1
- package/src/bindings/index.js +0 -15
- package/src/components/document-outline/test/__snapshots__/index.js.snap +0 -111
- package/src/components/document-outline/test/index.js +0 -185
- package/src/dataviews/actions/index.ts +0 -25
- package/src/store/utils/get-filtered-template-parts.js +0 -69
- package/src/store/utils/test/get-filtered-template-parts.js +0 -189
- package/src/utils/set-nested-value.js +0 -39
- /package/build-types/{hooks → components/visual-editor}/use-select-nearest-editable-block.d.ts +0 -0
|
@@ -8,7 +8,8 @@ exports.getEntityActions = getEntityActions;
|
|
|
8
8
|
exports.getInserterSidebarToggleRef = getInserterSidebarToggleRef;
|
|
9
9
|
exports.getInsertionPoint = void 0;
|
|
10
10
|
exports.getListViewToggleRef = getListViewToggleRef;
|
|
11
|
-
exports.hasPostMetaChanges = exports.getPostIcon = void 0;
|
|
11
|
+
exports.hasPostMetaChanges = exports.getPostIcon = exports.getPostBlocksByName = void 0;
|
|
12
|
+
exports.isEntityReady = isEntityReady;
|
|
12
13
|
var _fastDeepEqual = _interopRequireDefault(require("fast-deep-equal"));
|
|
13
14
|
var _blockEditor = require("@wordpress/block-editor");
|
|
14
15
|
var _data = require("@wordpress/data");
|
|
@@ -84,7 +85,7 @@ const getPostIcon = exports.getPostIcon = (0, _data.createRegistrySelector)(sele
|
|
|
84
85
|
// `icon` is the `menu_icon` property of a post type. We
|
|
85
86
|
// only handle `dashicons` for now, even if the `menu_icon`
|
|
86
87
|
// also supports urls and svg as values.
|
|
87
|
-
if (postTypeEntity?.icon
|
|
88
|
+
if (typeof postTypeEntity?.icon === 'string' && postTypeEntity.icon.startsWith('dashicons-')) {
|
|
88
89
|
return postTypeEntity.icon.slice(10);
|
|
89
90
|
}
|
|
90
91
|
return _icons.page;
|
|
@@ -125,4 +126,34 @@ const hasPostMetaChanges = exports.hasPostMetaChanges = (0, _data.createRegistry
|
|
|
125
126
|
function getEntityActions(state, ...args) {
|
|
126
127
|
return (0, _privateSelectors.getEntityActions)(state.dataviews, ...args);
|
|
127
128
|
}
|
|
129
|
+
function isEntityReady(state, ...args) {
|
|
130
|
+
return (0, _privateSelectors.isEntityReady)(state.dataviews, ...args);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Similar to getBlocksByName in @wordpress/block-editor, but only returns the top-most
|
|
135
|
+
* blocks that aren't descendants of the query block.
|
|
136
|
+
*
|
|
137
|
+
* @param {Object} state Global application state.
|
|
138
|
+
* @param {Array|string} blockNames Block names of the blocks to retrieve.
|
|
139
|
+
*
|
|
140
|
+
* @return {Array} Block client IDs.
|
|
141
|
+
*/
|
|
142
|
+
const getPostBlocksByName = exports.getPostBlocksByName = (0, _data.createRegistrySelector)(select => (0, _data.createSelector)((state, blockNames) => {
|
|
143
|
+
blockNames = Array.isArray(blockNames) ? blockNames : [blockNames];
|
|
144
|
+
const {
|
|
145
|
+
getBlocksByName,
|
|
146
|
+
getBlockParents,
|
|
147
|
+
getBlockName
|
|
148
|
+
} = select(_blockEditor.store);
|
|
149
|
+
return getBlocksByName(blockNames).filter(clientId => getBlockParents(clientId).every(parentClientId => {
|
|
150
|
+
const parentBlockName = getBlockName(parentClientId);
|
|
151
|
+
return (
|
|
152
|
+
// Ignore descendents of the query block.
|
|
153
|
+
parentBlockName !== 'core/query' &&
|
|
154
|
+
// Enable only the top-most block.
|
|
155
|
+
!blockNames.includes(parentBlockName)
|
|
156
|
+
);
|
|
157
|
+
}));
|
|
158
|
+
}, () => [select(_blockEditor.store).getBlocks()]));
|
|
128
159
|
//# sourceMappingURL=private-selectors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_fastDeepEqual","_interopRequireDefault","require","_blockEditor","_data","_icons","_coreData","_selectors","_privateSelectors","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","filterValue","getInsertionPoint","exports","createRegistrySelector","select","createSelector","state","blockInserterPanel","getRenderingMode","postContentClientId","blockEditorStore","getBlocksByName","getListViewToggleRef","listViewToggleRef","getInserterSidebarToggleRef","inserterSidebarToggleRef","CARD_ICONS","wp_block","symbol","wp_navigation","navigation","page","pageIcon","post","verse","getPostIcon","postType","options","__experimentalGetDefaultTemplatePartAreas","find","item","area","icon","layout","postTypeEntity","coreStore","getPostType","startsWith","slice","hasPostMetaChanges","postId","type","currentPostType","id","currentPostId","getCurrentPost","edits","getEntityRecordNonTransientEdits","meta","originalPostMeta","getEntityRecord","fastDeepEqual","footnotes","getEntityActions","args","_getEntityActions","dataviews"],"sources":["@wordpress/editor/src/store/private-selectors.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport {\n\tlayout,\n\tsymbol,\n\tnavigation,\n\tpage as pageIcon,\n\tverse,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetRenderingMode,\n\tgetCurrentPost,\n\t__experimentalGetDefaultTemplatePartAreas,\n} from './selectors';\nimport { getEntityActions as _getEntityActions } from '../dataviews/store/private-selectors';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n\tfilterValue: undefined,\n};\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport const getInsertionPoint = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state ) => {\n\t\t\tif ( typeof state.blockInserterPanel === 'object' ) {\n\t\t\t\treturn state.blockInserterPanel;\n\t\t\t}\n\n\t\t\tif ( getRenderingMode( state ) === 'template-locked' ) {\n\t\t\t\tconst [ postContentClientId ] =\n\t\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t\t'core/post-content'\n\t\t\t\t\t);\n\t\t\t\tif ( postContentClientId ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\trootClientId: postContentClientId,\n\t\t\t\t\t\tinsertionIndex: undefined,\n\t\t\t\t\t\tfilterValue: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn EMPTY_INSERTION_POINT;\n\t\t},\n\t\t( state ) => {\n\t\t\tconst [ postContentClientId ] =\n\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t'core/post-content'\n\t\t\t\t);\n\t\t\treturn [\n\t\t\t\tstate.blockInserterPanel,\n\t\t\t\tgetRenderingMode( state ),\n\t\t\t\tpostContentClientId,\n\t\t\t];\n\t\t}\n\t)\n);\n\nexport function getListViewToggleRef( state ) {\n\treturn state.listViewToggleRef;\n}\nexport function getInserterSidebarToggleRef( state ) {\n\treturn state.inserterSidebarToggleRef;\n}\nconst CARD_ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigation,\n\tpage: pageIcon,\n\tpost: verse,\n};\n\nexport const getPostIcon = createRegistrySelector(\n\t( select ) => ( state, postType, options ) => {\n\t\t{\n\t\t\tif (\n\t\t\t\tpostType === 'wp_template_part' ||\n\t\t\t\tpostType === 'wp_template'\n\t\t\t) {\n\t\t\t\treturn (\n\t\t\t\t\t__experimentalGetDefaultTemplatePartAreas( state ).find(\n\t\t\t\t\t\t( item ) => options.area === item.area\n\t\t\t\t\t)?.icon || layout\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( CARD_ICONS[ postType ] ) {\n\t\t\t\treturn CARD_ICONS[ postType ];\n\t\t\t}\n\t\t\tconst postTypeEntity = select( coreStore ).getPostType( postType );\n\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t// also supports urls and svg as values.\n\t\t\tif ( postTypeEntity?.icon?.startsWith( 'dashicons-' ) ) {\n\t\t\t\treturn postTypeEntity.icon.slice( 10 );\n\t\t\t}\n\t\t\treturn pageIcon;\n\t\t}\n\t}\n);\n\n/**\n * Returns true if there are unsaved changes to the\n * post's meta fields, and false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} postType The post type of the post.\n * @param {number} postId The ID of the post.\n *\n * @return {boolean} Whether there are edits or not in the meta fields of the relevant post.\n */\nexport const hasPostMetaChanges = createRegistrySelector(\n\t( select ) => ( state, postType, postId ) => {\n\t\tconst { type: currentPostType, id: currentPostId } =\n\t\t\tgetCurrentPost( state );\n\t\t// If no postType or postId is passed, use the current post.\n\t\tconst edits = select( coreStore ).getEntityRecordNonTransientEdits(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t);\n\n\t\tif ( ! edits?.meta ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Compare if anything apart from `footnotes` has changed.\n\t\tconst originalPostMeta = select( coreStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t)?.meta;\n\n\t\treturn ! fastDeepEqual(\n\t\t\t{ ...originalPostMeta, footnotes: undefined },\n\t\t\t{ ...edits.meta, footnotes: undefined }\n\t\t);\n\t}\n);\n\nexport function getEntityActions( state, ...args ) {\n\treturn _getEntityActions( state.dataviews, ...args );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_fastDeepEqual","_interopRequireDefault","require","_blockEditor","_data","_icons","_coreData","_selectors","_privateSelectors","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","filterValue","getInsertionPoint","exports","createRegistrySelector","select","createSelector","state","blockInserterPanel","getRenderingMode","postContentClientId","blockEditorStore","getBlocksByName","getListViewToggleRef","listViewToggleRef","getInserterSidebarToggleRef","inserterSidebarToggleRef","CARD_ICONS","wp_block","symbol","wp_navigation","navigation","page","pageIcon","post","verse","getPostIcon","postType","options","__experimentalGetDefaultTemplatePartAreas","find","item","area","icon","layout","postTypeEntity","coreStore","getPostType","startsWith","slice","hasPostMetaChanges","postId","type","currentPostType","id","currentPostId","getCurrentPost","edits","getEntityRecordNonTransientEdits","meta","originalPostMeta","getEntityRecord","fastDeepEqual","footnotes","getEntityActions","args","_getEntityActions","dataviews","isEntityReady","_isEntityReady","getPostBlocksByName","blockNames","Array","isArray","getBlockParents","getBlockName","filter","clientId","every","parentClientId","parentBlockName","includes","getBlocks"],"sources":["@wordpress/editor/src/store/private-selectors.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport {\n\tlayout,\n\tsymbol,\n\tnavigation,\n\tpage as pageIcon,\n\tverse,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetRenderingMode,\n\tgetCurrentPost,\n\t__experimentalGetDefaultTemplatePartAreas,\n} from './selectors';\nimport {\n\tgetEntityActions as _getEntityActions,\n\tisEntityReady as _isEntityReady,\n} from '../dataviews/store/private-selectors';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n\tfilterValue: undefined,\n};\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport const getInsertionPoint = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state ) => {\n\t\t\tif ( typeof state.blockInserterPanel === 'object' ) {\n\t\t\t\treturn state.blockInserterPanel;\n\t\t\t}\n\n\t\t\tif ( getRenderingMode( state ) === 'template-locked' ) {\n\t\t\t\tconst [ postContentClientId ] =\n\t\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t\t'core/post-content'\n\t\t\t\t\t);\n\t\t\t\tif ( postContentClientId ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\trootClientId: postContentClientId,\n\t\t\t\t\t\tinsertionIndex: undefined,\n\t\t\t\t\t\tfilterValue: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn EMPTY_INSERTION_POINT;\n\t\t},\n\t\t( state ) => {\n\t\t\tconst [ postContentClientId ] =\n\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t'core/post-content'\n\t\t\t\t);\n\t\t\treturn [\n\t\t\t\tstate.blockInserterPanel,\n\t\t\t\tgetRenderingMode( state ),\n\t\t\t\tpostContentClientId,\n\t\t\t];\n\t\t}\n\t)\n);\n\nexport function getListViewToggleRef( state ) {\n\treturn state.listViewToggleRef;\n}\nexport function getInserterSidebarToggleRef( state ) {\n\treturn state.inserterSidebarToggleRef;\n}\nconst CARD_ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigation,\n\tpage: pageIcon,\n\tpost: verse,\n};\n\nexport const getPostIcon = createRegistrySelector(\n\t( select ) => ( state, postType, options ) => {\n\t\t{\n\t\t\tif (\n\t\t\t\tpostType === 'wp_template_part' ||\n\t\t\t\tpostType === 'wp_template'\n\t\t\t) {\n\t\t\t\treturn (\n\t\t\t\t\t__experimentalGetDefaultTemplatePartAreas( state ).find(\n\t\t\t\t\t\t( item ) => options.area === item.area\n\t\t\t\t\t)?.icon || layout\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( CARD_ICONS[ postType ] ) {\n\t\t\t\treturn CARD_ICONS[ postType ];\n\t\t\t}\n\t\t\tconst postTypeEntity = select( coreStore ).getPostType( postType );\n\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t// also supports urls and svg as values.\n\t\t\tif (\n\t\t\t\ttypeof postTypeEntity?.icon === 'string' &&\n\t\t\t\tpostTypeEntity.icon.startsWith( 'dashicons-' )\n\t\t\t) {\n\t\t\t\treturn postTypeEntity.icon.slice( 10 );\n\t\t\t}\n\t\t\treturn pageIcon;\n\t\t}\n\t}\n);\n\n/**\n * Returns true if there are unsaved changes to the\n * post's meta fields, and false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} postType The post type of the post.\n * @param {number} postId The ID of the post.\n *\n * @return {boolean} Whether there are edits or not in the meta fields of the relevant post.\n */\nexport const hasPostMetaChanges = createRegistrySelector(\n\t( select ) => ( state, postType, postId ) => {\n\t\tconst { type: currentPostType, id: currentPostId } =\n\t\t\tgetCurrentPost( state );\n\t\t// If no postType or postId is passed, use the current post.\n\t\tconst edits = select( coreStore ).getEntityRecordNonTransientEdits(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t);\n\n\t\tif ( ! edits?.meta ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Compare if anything apart from `footnotes` has changed.\n\t\tconst originalPostMeta = select( coreStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t)?.meta;\n\n\t\treturn ! fastDeepEqual(\n\t\t\t{ ...originalPostMeta, footnotes: undefined },\n\t\t\t{ ...edits.meta, footnotes: undefined }\n\t\t);\n\t}\n);\n\nexport function getEntityActions( state, ...args ) {\n\treturn _getEntityActions( state.dataviews, ...args );\n}\n\nexport function isEntityReady( state, ...args ) {\n\treturn _isEntityReady( state.dataviews, ...args );\n}\n\n/**\n * Similar to getBlocksByName in @wordpress/block-editor, but only returns the top-most\n * blocks that aren't descendants of the query block.\n *\n * @param {Object} state Global application state.\n * @param {Array|string} blockNames Block names of the blocks to retrieve.\n *\n * @return {Array} Block client IDs.\n */\nexport const getPostBlocksByName = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state, blockNames ) => {\n\t\t\tblockNames = Array.isArray( blockNames )\n\t\t\t\t? blockNames\n\t\t\t\t: [ blockNames ];\n\t\t\tconst { getBlocksByName, getBlockParents, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn getBlocksByName( blockNames ).filter( ( clientId ) =>\n\t\t\t\tgetBlockParents( clientId ).every( ( parentClientId ) => {\n\t\t\t\t\tconst parentBlockName = getBlockName( parentClientId );\n\t\t\t\t\treturn (\n\t\t\t\t\t\t// Ignore descendents of the query block.\n\t\t\t\t\t\tparentBlockName !== 'core/query' &&\n\t\t\t\t\t\t// Enable only the top-most block.\n\t\t\t\t\t\t! blockNames.includes( parentBlockName )\n\t\t\t\t\t);\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\t() => [ select( blockEditorStore ).getBlocks() ]\n\t)\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,9 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = mediaUpload;
|
|
7
|
+
var _uuid = require("uuid");
|
|
7
8
|
var _data = require("@wordpress/data");
|
|
8
9
|
var _mediaUtils = require("@wordpress/media-utils");
|
|
9
10
|
var _store = require("../../store");
|
|
11
|
+
/**
|
|
12
|
+
* External dependencies
|
|
13
|
+
*/
|
|
14
|
+
|
|
10
15
|
/**
|
|
11
16
|
* WordPress dependencies
|
|
12
17
|
*/
|
|
@@ -41,18 +46,43 @@ function mediaUpload({
|
|
|
41
46
|
getCurrentPost,
|
|
42
47
|
getEditorSettings
|
|
43
48
|
} = (0, _data.select)(_store.store);
|
|
49
|
+
const {
|
|
50
|
+
lockPostAutosaving,
|
|
51
|
+
unlockPostAutosaving,
|
|
52
|
+
lockPostSaving,
|
|
53
|
+
unlockPostSaving
|
|
54
|
+
} = (0, _data.dispatch)(_store.store);
|
|
44
55
|
const wpAllowedMimeTypes = getEditorSettings().allowedMimeTypes;
|
|
56
|
+
const lockKey = `image-upload-${(0, _uuid.v4)()}`;
|
|
57
|
+
let imageIsUploading = false;
|
|
45
58
|
maxUploadFileSize = maxUploadFileSize || getEditorSettings().maxUploadFileSize;
|
|
46
59
|
const currentPost = getCurrentPost();
|
|
47
60
|
// Templates and template parts' numerical ID is stored in `wp_id`.
|
|
48
61
|
const currentPostId = typeof currentPost?.id === 'number' ? currentPost.id : currentPost?.wp_id;
|
|
62
|
+
const setSaveLock = () => {
|
|
63
|
+
lockPostSaving(lockKey);
|
|
64
|
+
lockPostAutosaving(lockKey);
|
|
65
|
+
imageIsUploading = true;
|
|
66
|
+
};
|
|
49
67
|
const postData = currentPostId ? {
|
|
50
68
|
post: currentPostId
|
|
51
69
|
} : {};
|
|
70
|
+
const clearSaveLock = () => {
|
|
71
|
+
unlockPostSaving(lockKey);
|
|
72
|
+
unlockPostAutosaving(lockKey);
|
|
73
|
+
imageIsUploading = false;
|
|
74
|
+
};
|
|
52
75
|
(0, _mediaUtils.uploadMedia)({
|
|
53
76
|
allowedTypes,
|
|
54
77
|
filesList,
|
|
55
|
-
onFileChange
|
|
78
|
+
onFileChange: file => {
|
|
79
|
+
if (!imageIsUploading) {
|
|
80
|
+
setSaveLock();
|
|
81
|
+
} else {
|
|
82
|
+
clearSaveLock();
|
|
83
|
+
}
|
|
84
|
+
onFileChange(file);
|
|
85
|
+
},
|
|
56
86
|
additionalData: {
|
|
57
87
|
...postData,
|
|
58
88
|
...additionalData
|
|
@@ -60,7 +90,10 @@ function mediaUpload({
|
|
|
60
90
|
maxUploadFileSize,
|
|
61
91
|
onError: ({
|
|
62
92
|
message
|
|
63
|
-
}) =>
|
|
93
|
+
}) => {
|
|
94
|
+
clearSaveLock();
|
|
95
|
+
onError(message);
|
|
96
|
+
},
|
|
64
97
|
wpAllowedMimeTypes
|
|
65
98
|
});
|
|
66
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_uuid","require","_data","_mediaUtils","_store","noop","mediaUpload","additionalData","allowedTypes","filesList","maxUploadFileSize","onError","onFileChange","getCurrentPost","getEditorSettings","select","editorStore","lockPostAutosaving","unlockPostAutosaving","lockPostSaving","unlockPostSaving","dispatch","wpAllowedMimeTypes","allowedMimeTypes","lockKey","uuid","imageIsUploading","currentPost","currentPostId","id","wp_id","setSaveLock","postData","post","clearSaveLock","uploadMedia","file","message"],"sources":["@wordpress/editor/src/utils/media-upload/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { select, dispatch } from '@wordpress/data';\nimport { uploadMedia } from '@wordpress/media-utils';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\n/**\n * Upload a media file when the file upload button is activated.\n * Wrapper around mediaUpload() that injects the current post ID.\n *\n * @param {Object} $0 Parameters object passed to the function.\n * @param {?Object} $0.additionalData Additional data to include in the request.\n * @param {string} $0.allowedTypes Array with the types of media that can be uploaded, if unset all types are allowed.\n * @param {Array} $0.filesList List of files.\n * @param {?number} $0.maxUploadFileSize Maximum upload size in bytes allowed for the site.\n * @param {Function} $0.onError Function called when an error happens.\n * @param {Function} $0.onFileChange Function called each time a file or a temporary representation of the file is available.\n */\nexport default function mediaUpload( {\n\tadditionalData = {},\n\tallowedTypes,\n\tfilesList,\n\tmaxUploadFileSize,\n\tonError = noop,\n\tonFileChange,\n} ) {\n\tconst { getCurrentPost, getEditorSettings } = select( editorStore );\n\tconst {\n\t\tlockPostAutosaving,\n\t\tunlockPostAutosaving,\n\t\tlockPostSaving,\n\t\tunlockPostSaving,\n\t} = dispatch( editorStore );\n\n\tconst wpAllowedMimeTypes = getEditorSettings().allowedMimeTypes;\n\tconst lockKey = `image-upload-${ uuid() }`;\n\tlet imageIsUploading = false;\n\tmaxUploadFileSize =\n\t\tmaxUploadFileSize || getEditorSettings().maxUploadFileSize;\n\tconst currentPost = getCurrentPost();\n\t// Templates and template parts' numerical ID is stored in `wp_id`.\n\tconst currentPostId =\n\t\ttypeof currentPost?.id === 'number'\n\t\t\t? currentPost.id\n\t\t\t: currentPost?.wp_id;\n\tconst setSaveLock = () => {\n\t\tlockPostSaving( lockKey );\n\t\tlockPostAutosaving( lockKey );\n\t\timageIsUploading = true;\n\t};\n\n\tconst postData = currentPostId ? { post: currentPostId } : {};\n\tconst clearSaveLock = () => {\n\t\tunlockPostSaving( lockKey );\n\t\tunlockPostAutosaving( lockKey );\n\t\timageIsUploading = false;\n\t};\n\n\tuploadMedia( {\n\t\tallowedTypes,\n\t\tfilesList,\n\t\tonFileChange: ( file ) => {\n\t\t\tif ( ! imageIsUploading ) {\n\t\t\t\tsetSaveLock();\n\t\t\t} else {\n\t\t\t\tclearSaveLock();\n\t\t\t}\n\t\t\tonFileChange( file );\n\t\t},\n\t\tadditionalData: {\n\t\t\t...postData,\n\t\t\t...additionalData,\n\t\t},\n\t\tmaxUploadFileSize,\n\t\tonError: ( { message } ) => {\n\t\t\tclearSaveLock();\n\t\t\tonError( message );\n\t\t},\n\t\twpAllowedMimeTypes,\n\t} );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAMI,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,WAAWA,CAAE;EACpCC,cAAc,GAAG,CAAC,CAAC;EACnBC,YAAY;EACZC,SAAS;EACTC,iBAAiB;EACjBC,OAAO,GAAGN,IAAI;EACdO;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,cAAc;IAAEC;EAAkB,CAAC,GAAG,IAAAC,YAAM,EAAEC,YAAY,CAAC;EACnE,MAAM;IACLC,kBAAkB;IAClBC,oBAAoB;IACpBC,cAAc;IACdC;EACD,CAAC,GAAG,IAAAC,cAAQ,EAAEL,YAAY,CAAC;EAE3B,MAAMM,kBAAkB,GAAGR,iBAAiB,CAAC,CAAC,CAACS,gBAAgB;EAC/D,MAAMC,OAAO,GAAI,gBAAgB,IAAAC,QAAI,EAAC,CAAG,EAAC;EAC1C,IAAIC,gBAAgB,GAAG,KAAK;EAC5BhB,iBAAiB,GAChBA,iBAAiB,IAAII,iBAAiB,CAAC,CAAC,CAACJ,iBAAiB;EAC3D,MAAMiB,WAAW,GAAGd,cAAc,CAAC,CAAC;EACpC;EACA,MAAMe,aAAa,GAClB,OAAOD,WAAW,EAAEE,EAAE,KAAK,QAAQ,GAChCF,WAAW,CAACE,EAAE,GACdF,WAAW,EAAEG,KAAK;EACtB,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACzBZ,cAAc,CAAEK,OAAQ,CAAC;IACzBP,kBAAkB,CAAEO,OAAQ,CAAC;IAC7BE,gBAAgB,GAAG,IAAI;EACxB,CAAC;EAED,MAAMM,QAAQ,GAAGJ,aAAa,GAAG;IAAEK,IAAI,EAAEL;EAAc,CAAC,GAAG,CAAC,CAAC;EAC7D,MAAMM,aAAa,GAAGA,CAAA,KAAM;IAC3Bd,gBAAgB,CAAEI,OAAQ,CAAC;IAC3BN,oBAAoB,CAAEM,OAAQ,CAAC;IAC/BE,gBAAgB,GAAG,KAAK;EACzB,CAAC;EAED,IAAAS,uBAAW,EAAE;IACZ3B,YAAY;IACZC,SAAS;IACTG,YAAY,EAAIwB,IAAI,IAAM;MACzB,IAAK,CAAEV,gBAAgB,EAAG;QACzBK,WAAW,CAAC,CAAC;MACd,CAAC,MAAM;QACNG,aAAa,CAAC,CAAC;MAChB;MACAtB,YAAY,CAAEwB,IAAK,CAAC;IACrB,CAAC;IACD7B,cAAc,EAAE;MACf,GAAGyB,QAAQ;MACX,GAAGzB;IACJ,CAAC;IACDG,iBAAiB;IACjBC,OAAO,EAAEA,CAAE;MAAE0B;IAAQ,CAAC,KAAM;MAC3BH,aAAa,CAAC,CAAC;MACfvB,OAAO,CAAE0B,OAAQ,CAAC;IACnB,CAAC;IACDf;EACD,CAAE,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { privateApis as blocksPrivateApis, store as blocksStore } from '@wordpress/blocks';
|
|
5
|
+
import { dispatch } from '@wordpress/data';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import patternOverrides from './pattern-overrides';
|
|
11
|
+
import postMeta from './post-meta';
|
|
12
|
+
import { unlock } from '../lock-unlock';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Function to register core block bindings sources provided by the editor.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```js
|
|
19
|
+
* import { registerCoreBlockBindingsSources } from '@wordpress/editor';
|
|
20
|
+
*
|
|
21
|
+
* registerCoreBlockBindingsSources();
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function registerCoreBlockBindingsSources() {
|
|
25
|
+
const {
|
|
26
|
+
registerBlockBindingsSource
|
|
27
|
+
} = unlock(blocksPrivateApis);
|
|
28
|
+
registerBlockBindingsSource(patternOverrides);
|
|
29
|
+
registerBlockBindingsSource(postMeta);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Function to bootstrap core block bindings sources defined in the server.
|
|
34
|
+
*
|
|
35
|
+
* @param {Object} sources Object containing the sources to bootstrap.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```js
|
|
39
|
+
* import { bootstrapBlockBindingsSourcesFromServer } from '@wordpress/editor';
|
|
40
|
+
*
|
|
41
|
+
* bootstrapBlockBindingsSourcesFromServer( sources );
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export function bootstrapBlockBindingsSourcesFromServer(sources) {
|
|
45
|
+
if (sources) {
|
|
46
|
+
const {
|
|
47
|
+
addBootstrappedBlockBindingsSource
|
|
48
|
+
} = unlock(dispatch(blocksStore));
|
|
49
|
+
for (const [name, args] of Object.entries(sources)) {
|
|
50
|
+
addBootstrappedBlockBindingsSource({
|
|
51
|
+
name,
|
|
52
|
+
...args
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["privateApis","blocksPrivateApis","store","blocksStore","dispatch","patternOverrides","postMeta","unlock","registerCoreBlockBindingsSources","registerBlockBindingsSource","bootstrapBlockBindingsSourcesFromServer","sources","addBootstrappedBlockBindingsSource","name","args","Object","entries"],"sources":["@wordpress/editor/src/bindings/api.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blocksPrivateApis,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { dispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport patternOverrides from './pattern-overrides';\nimport postMeta from './post-meta';\nimport { unlock } from '../lock-unlock';\n\n/**\n * Function to register core block bindings sources provided by the editor.\n *\n * @example\n * ```js\n * import { registerCoreBlockBindingsSources } from '@wordpress/editor';\n *\n * registerCoreBlockBindingsSources();\n * ```\n */\nexport function registerCoreBlockBindingsSources() {\n\tconst { registerBlockBindingsSource } = unlock( blocksPrivateApis );\n\tregisterBlockBindingsSource( patternOverrides );\n\tregisterBlockBindingsSource( postMeta );\n}\n\n/**\n * Function to bootstrap core block bindings sources defined in the server.\n *\n * @param {Object} sources Object containing the sources to bootstrap.\n *\n * @example\n * ```js\n * import { bootstrapBlockBindingsSourcesFromServer } from '@wordpress/editor';\n *\n * bootstrapBlockBindingsSourcesFromServer( sources );\n * ```\n */\nexport function bootstrapBlockBindingsSourcesFromServer( sources ) {\n\tif ( sources ) {\n\t\tconst { addBootstrappedBlockBindingsSource } = unlock(\n\t\t\tdispatch( blocksStore )\n\t\t);\n\t\tfor ( const [ name, args ] of Object.entries( sources ) ) {\n\t\t\taddBootstrappedBlockBindingsSource( {\n\t\t\t\tname,\n\t\t\t\t...args,\n\t\t\t} );\n\t\t}\n\t}\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,WAAW,IAAIC,iBAAiB,EAChCC,KAAK,IAAIC,WAAW,QACd,mBAAmB;AAC1B,SAASC,QAAQ,QAAQ,iBAAiB;;AAE1C;AACA;AACA;AACA,OAAOC,gBAAgB,MAAM,qBAAqB;AAClD,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,MAAM,QAAQ,gBAAgB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gCAAgCA,CAAA,EAAG;EAClD,MAAM;IAAEC;EAA4B,CAAC,GAAGF,MAAM,CAAEN,iBAAkB,CAAC;EACnEQ,2BAA2B,CAAEJ,gBAAiB,CAAC;EAC/CI,2BAA2B,CAAEH,QAAS,CAAC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,uCAAuCA,CAAEC,OAAO,EAAG;EAClE,IAAKA,OAAO,EAAG;IACd,MAAM;MAAEC;IAAmC,CAAC,GAAGL,MAAM,CACpDH,QAAQ,CAAED,WAAY,CACvB,CAAC;IACD,KAAM,MAAM,CAAEU,IAAI,EAAEC,IAAI,CAAE,IAAIC,MAAM,CAACC,OAAO,CAAEL,OAAQ,CAAC,EAAG;MACzDC,kCAAkC,CAAE;QACnCC,IAAI;QACJ,GAAGC;MACJ,CAAE,CAAC;IACJ;EACD;AACD","ignoreList":[]}
|
|
@@ -1,38 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { _x } from '@wordpress/i18n';
|
|
5
4
|
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
6
5
|
const CONTENT = 'content';
|
|
7
6
|
export default {
|
|
8
7
|
name: 'core/pattern-overrides',
|
|
9
|
-
|
|
10
|
-
getValue({
|
|
8
|
+
getValues({
|
|
11
9
|
registry,
|
|
12
10
|
clientId,
|
|
13
11
|
context,
|
|
14
|
-
|
|
12
|
+
bindings
|
|
15
13
|
}) {
|
|
16
14
|
const patternOverridesContent = context['pattern/overrides'];
|
|
17
15
|
const {
|
|
18
16
|
getBlockAttributes
|
|
19
17
|
} = registry.select(blockEditorStore);
|
|
20
18
|
const currentBlockAttributes = getBlockAttributes(clientId);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const overridableValue = patternOverridesContent?.[currentBlockAttributes?.metadata?.name]?.[attributeName];
|
|
19
|
+
const overridesValues = {};
|
|
20
|
+
for (const attributeName of Object.keys(bindings)) {
|
|
21
|
+
const overridableValue = patternOverridesContent?.[currentBlockAttributes?.metadata?.name]?.[attributeName];
|
|
25
22
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
// If it has not been overriden, return the original value.
|
|
24
|
+
// Check undefined because empty string is a valid value.
|
|
25
|
+
if (overridableValue === undefined) {
|
|
26
|
+
overridesValues[attributeName] = currentBlockAttributes[attributeName];
|
|
27
|
+
continue;
|
|
28
|
+
} else {
|
|
29
|
+
overridesValues[attributeName] = overridableValue === '' ? undefined : overridableValue;
|
|
30
|
+
}
|
|
29
31
|
}
|
|
30
|
-
return
|
|
32
|
+
return overridesValues;
|
|
31
33
|
},
|
|
32
34
|
setValues({
|
|
33
35
|
registry,
|
|
34
36
|
clientId,
|
|
35
|
-
|
|
37
|
+
bindings
|
|
36
38
|
}) {
|
|
37
39
|
const {
|
|
38
40
|
getBlockAttributes,
|
|
@@ -46,6 +48,14 @@ export default {
|
|
|
46
48
|
}
|
|
47
49
|
const [patternClientId] = getBlockParentsByBlockName(clientId, 'core/block', true);
|
|
48
50
|
|
|
51
|
+
// Extract the updated attributes from the source bindings.
|
|
52
|
+
const attributes = Object.entries(bindings).reduce((attrs, [key, {
|
|
53
|
+
newValue
|
|
54
|
+
}]) => {
|
|
55
|
+
attrs[key] = newValue;
|
|
56
|
+
return attrs;
|
|
57
|
+
}, {});
|
|
58
|
+
|
|
49
59
|
// If there is no pattern client ID, sync blocks with the same name and same attributes.
|
|
50
60
|
if (!patternClientId) {
|
|
51
61
|
const syncBlocksWithSameName = blocks => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["store","blockEditorStore","CONTENT","name","getValues","registry","clientId","context","bindings","patternOverridesContent","getBlockAttributes","select","currentBlockAttributes","overridesValues","attributeName","Object","keys","overridableValue","metadata","undefined","setValues","getBlockParentsByBlockName","getBlocks","blockName","patternClientId","attributes","entries","reduce","attrs","key","newValue","syncBlocksWithSameName","blocks","block","dispatch","updateBlockAttributes","innerBlocks","currentBindingValue","acc","value","canUserEditValue"],"sources":["@wordpress/editor/src/bindings/pattern-overrides.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst CONTENT = 'content';\n\nexport default {\n\tname: 'core/pattern-overrides',\n\tgetValues( { registry, clientId, context, bindings } ) {\n\t\tconst patternOverridesContent = context[ 'pattern/overrides' ];\n\t\tconst { getBlockAttributes } = registry.select( blockEditorStore );\n\t\tconst currentBlockAttributes = getBlockAttributes( clientId );\n\n\t\tconst overridesValues = {};\n\t\tfor ( const attributeName of Object.keys( bindings ) ) {\n\t\t\tconst overridableValue =\n\t\t\t\tpatternOverridesContent?.[\n\t\t\t\t\tcurrentBlockAttributes?.metadata?.name\n\t\t\t\t]?.[ attributeName ];\n\n\t\t\t// If it has not been overriden, return the original value.\n\t\t\t// Check undefined because empty string is a valid value.\n\t\t\tif ( overridableValue === undefined ) {\n\t\t\t\toverridesValues[ attributeName ] =\n\t\t\t\t\tcurrentBlockAttributes[ attributeName ];\n\t\t\t\tcontinue;\n\t\t\t} else {\n\t\t\t\toverridesValues[ attributeName ] =\n\t\t\t\t\toverridableValue === '' ? undefined : overridableValue;\n\t\t\t}\n\t\t}\n\t\treturn overridesValues;\n\t},\n\tsetValues( { registry, clientId, bindings } ) {\n\t\tconst { getBlockAttributes, getBlockParentsByBlockName, getBlocks } =\n\t\t\tregistry.select( blockEditorStore );\n\t\tconst currentBlockAttributes = getBlockAttributes( clientId );\n\t\tconst blockName = currentBlockAttributes?.metadata?.name;\n\t\tif ( ! blockName ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ patternClientId ] = getBlockParentsByBlockName(\n\t\t\tclientId,\n\t\t\t'core/block',\n\t\t\ttrue\n\t\t);\n\n\t\t// Extract the updated attributes from the source bindings.\n\t\tconst attributes = Object.entries( bindings ).reduce(\n\t\t\t( attrs, [ key, { newValue } ] ) => {\n\t\t\t\tattrs[ key ] = newValue;\n\t\t\t\treturn attrs;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\n\t\t// If there is no pattern client ID, sync blocks with the same name and same attributes.\n\t\tif ( ! patternClientId ) {\n\t\t\tconst syncBlocksWithSameName = ( blocks ) => {\n\t\t\t\tfor ( const block of blocks ) {\n\t\t\t\t\tif ( block.attributes?.metadata?.name === blockName ) {\n\t\t\t\t\t\tregistry\n\t\t\t\t\t\t\t.dispatch( blockEditorStore )\n\t\t\t\t\t\t\t.updateBlockAttributes(\n\t\t\t\t\t\t\t\tblock.clientId,\n\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tsyncBlocksWithSameName( block.innerBlocks );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tsyncBlocksWithSameName( getBlocks() );\n\t\t\treturn;\n\t\t}\n\t\tconst currentBindingValue =\n\t\t\tgetBlockAttributes( patternClientId )?.[ CONTENT ];\n\t\tregistry\n\t\t\t.dispatch( blockEditorStore )\n\t\t\t.updateBlockAttributes( patternClientId, {\n\t\t\t\t[ CONTENT ]: {\n\t\t\t\t\t...currentBindingValue,\n\t\t\t\t\t[ blockName ]: {\n\t\t\t\t\t\t...currentBindingValue?.[ blockName ],\n\t\t\t\t\t\t...Object.entries( attributes ).reduce(\n\t\t\t\t\t\t\t( acc, [ key, value ] ) => {\n\t\t\t\t\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\t\t\t\t\t// We use an empty string to represent undefined for now until\n\t\t\t\t\t\t\t\t// we support a richer format for overrides and the block bindings API.\n\t\t\t\t\t\t\t\tacc[ key ] = value === undefined ? '' : value;\n\t\t\t\t\t\t\t\treturn acc;\n\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},\n\t\t\t} );\n\t},\n\tcanUserEditValue: () => true,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { store as coreDataStore } from '@wordpress/core-data';
|
|
5
|
-
import { _x } from '@wordpress/i18n';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Internal dependencies
|
|
@@ -10,29 +9,37 @@ import { _x } from '@wordpress/i18n';
|
|
|
10
9
|
import { store as editorStore } from '../store';
|
|
11
10
|
export default {
|
|
12
11
|
name: 'core/post-meta',
|
|
13
|
-
label: _x('Post Meta', 'block bindings source'),
|
|
14
12
|
getPlaceholder({
|
|
15
13
|
args
|
|
16
14
|
}) {
|
|
17
15
|
return args.key;
|
|
18
16
|
},
|
|
19
|
-
|
|
17
|
+
getValues({
|
|
20
18
|
registry,
|
|
21
19
|
context,
|
|
22
|
-
|
|
20
|
+
bindings
|
|
23
21
|
}) {
|
|
24
|
-
|
|
22
|
+
const meta = registry.select(coreDataStore).getEditedEntityRecord('postType', context?.postType, context?.postId)?.meta;
|
|
23
|
+
const newValues = {};
|
|
24
|
+
for (const [attributeName, source] of Object.entries(bindings)) {
|
|
25
|
+
newValues[attributeName] = meta?.[source.args.key];
|
|
26
|
+
}
|
|
27
|
+
return newValues;
|
|
25
28
|
},
|
|
26
|
-
|
|
29
|
+
setValues({
|
|
27
30
|
registry,
|
|
28
31
|
context,
|
|
29
|
-
|
|
30
|
-
value
|
|
32
|
+
bindings
|
|
31
33
|
}) {
|
|
34
|
+
const newMeta = {};
|
|
35
|
+
Object.values(bindings).forEach(({
|
|
36
|
+
args,
|
|
37
|
+
newValue
|
|
38
|
+
}) => {
|
|
39
|
+
newMeta[args.key] = newValue;
|
|
40
|
+
});
|
|
32
41
|
registry.dispatch(coreDataStore).editEntityRecord('postType', context?.postType, context?.postId, {
|
|
33
|
-
meta:
|
|
34
|
-
[args.key]: value
|
|
35
|
-
}
|
|
42
|
+
meta: newMeta
|
|
36
43
|
});
|
|
37
44
|
},
|
|
38
45
|
canUserEditValue({
|
|
@@ -58,11 +65,27 @@ export default {
|
|
|
58
65
|
}
|
|
59
66
|
|
|
60
67
|
// Check that the user has the capability to edit post meta.
|
|
61
|
-
const canUserEdit = select(coreDataStore).
|
|
68
|
+
const canUserEdit = select(coreDataStore).canUser('update', {
|
|
69
|
+
kind: 'postType',
|
|
70
|
+
name: context?.postType,
|
|
71
|
+
id: context?.postId
|
|
72
|
+
});
|
|
62
73
|
if (!canUserEdit) {
|
|
63
74
|
return false;
|
|
64
75
|
}
|
|
65
76
|
return true;
|
|
77
|
+
},
|
|
78
|
+
getFieldsList({
|
|
79
|
+
registry,
|
|
80
|
+
context
|
|
81
|
+
}) {
|
|
82
|
+
const metaFields = registry.select(coreDataStore).getEditedEntityRecord('postType', context?.postType, context?.postId).meta;
|
|
83
|
+
if (!metaFields || !Object.keys(metaFields).length) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Remove footnotes from the list of fields
|
|
88
|
+
return Object.fromEntries(Object.entries(metaFields).filter(([key]) => key !== 'footnotes'));
|
|
66
89
|
}
|
|
67
90
|
};
|
|
68
91
|
//# sourceMappingURL=post-meta.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["store","coreDataStore","
|
|
1
|
+
{"version":3,"names":["store","coreDataStore","editorStore","name","getPlaceholder","args","key","getValues","registry","context","bindings","meta","select","getEditedEntityRecord","postType","postId","newValues","attributeName","source","Object","entries","setValues","newMeta","values","forEach","newValue","dispatch","editEntityRecord","canUserEditValue","query","queryId","getCurrentPostType","isFieldExposed","getEntityRecord","canUserEdit","canUser","kind","id","getFieldsList","metaFields","keys","length","fromEntries","filter"],"sources":["@wordpress/editor/src/bindings/post-meta.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../store';\n\nexport default {\n\tname: 'core/post-meta',\n\tgetPlaceholder( { args } ) {\n\t\treturn args.key;\n\t},\n\tgetValues( { registry, context, bindings } ) {\n\t\tconst meta = registry\n\t\t\t.select( coreDataStore )\n\t\t\t.getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tcontext?.postType,\n\t\t\t\tcontext?.postId\n\t\t\t)?.meta;\n\t\tconst newValues = {};\n\t\tfor ( const [ attributeName, source ] of Object.entries( bindings ) ) {\n\t\t\tnewValues[ attributeName ] = meta?.[ source.args.key ];\n\t\t}\n\t\treturn newValues;\n\t},\n\tsetValues( { registry, context, bindings } ) {\n\t\tconst newMeta = {};\n\t\tObject.values( bindings ).forEach( ( { args, newValue } ) => {\n\t\t\tnewMeta[ args.key ] = newValue;\n\t\t} );\n\t\tregistry\n\t\t\t.dispatch( coreDataStore )\n\t\t\t.editEntityRecord( 'postType', context?.postType, context?.postId, {\n\t\t\t\tmeta: newMeta,\n\t\t\t} );\n\t},\n\tcanUserEditValue( { select, context, args } ) {\n\t\t// Lock editing in query loop.\n\t\tif ( context?.query || context?.queryId ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst postType =\n\t\t\tcontext?.postType || select( editorStore ).getCurrentPostType();\n\n\t\t// Check that editing is happening in the post editor and not a template.\n\t\tif ( postType === 'wp_template' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check that the custom field is not protected and available in the REST API.\n\t\tconst isFieldExposed = !! select( coreDataStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tcontext?.postId\n\t\t)?.meta?.[ args.key ];\n\n\t\tif ( ! isFieldExposed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check that the user has the capability to edit post meta.\n\t\tconst canUserEdit = select( coreDataStore ).canUser( 'update', {\n\t\t\tkind: 'postType',\n\t\t\tname: context?.postType,\n\t\t\tid: context?.postId,\n\t\t} );\n\t\tif ( ! canUserEdit ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\tgetFieldsList( { registry, context } ) {\n\t\tconst metaFields = registry\n\t\t\t.select( coreDataStore )\n\t\t\t.getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tcontext?.postType,\n\t\t\t\tcontext?.postId\n\t\t\t).meta;\n\n\t\tif ( ! metaFields || ! Object.keys( metaFields ).length ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Remove footnotes from the list of fields\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries( metaFields ).filter(\n\t\t\t\t( [ key ] ) => key !== 'footnotes'\n\t\t\t)\n\t\t);\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -50,7 +50,10 @@ function ContentOnlySettingsMenuItems({
|
|
|
50
50
|
record = select(coreStore).getEntityRecord('postType', 'wp_template', templateId);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
const _canEditTemplates = select(coreStore).canUser('create',
|
|
53
|
+
const _canEditTemplates = select(coreStore).canUser('create', {
|
|
54
|
+
kind: 'postType',
|
|
55
|
+
name: 'wp_template'
|
|
56
|
+
});
|
|
54
57
|
return {
|
|
55
58
|
canEditTemplates: _canEditTemplates,
|
|
56
59
|
entity: record,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BlockSettingsMenuControls","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuFirstItem","store","blockEditorStore","useBlockDisplayInformation","coreStore","__experimentalText","Text","MenuItem","useSelect","useDispatch","__","editorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ContentOnlySettingsMenuItems","clientId","onClose","entity","onNavigateToEntityRecord","canEditTemplates","select","getBlockEditingMode","getBlockParentsByBlockName","getSettings","getBlockAttributes","contentOnly","patternParent","record","getEntityRecord","ref","getCurrentTemplateId","templateId","getContentLockingParent","_canEditTemplates","canUser","TemplateLockContentOnlyMenuItems","isPattern","type","helpText","children","onClick","postId","id","postType","disabled","variant","as","className","contentLockingParent","blockDisplayInformation","modifyContentLockBlock","selectBlock","title","ContentOnlySettingsMenu","selectedClientIds","length"],"sources":["@wordpress/editor/src/components/block-settings-menu/content-only-settings-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockSettingsMenuControls,\n\t__unstableBlockSettingsMenuFirstItem as BlockSettingsMenuFirstItem,\n\tstore as blockEditorStore,\n\tuseBlockDisplayInformation,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalText as Text, MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction ContentOnlySettingsMenuItems( { clientId, onClose } ) {\n\tconst { entity, onNavigateToEntityRecord, canEditTemplates } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst contentOnly =\n\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly';\n\t\t\tif ( ! contentOnly ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst patternParent = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/block',\n\t\t\t\ttrue\n\t\t\t)[ 0 ];\n\n\t\t\tlet record;\n\t\t\tif ( patternParent ) {\n\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tgetBlockAttributes( patternParent ).ref\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst { getCurrentTemplateId } = select( editorStore );\n\t\t\t\tconst templateId = getCurrentTemplateId();\n\t\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\t\tselect( blockEditorStore )\n\t\t\t\t);\n\t\t\t\tif ( ! getContentLockingParent( clientId ) && templateId ) {\n\t\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_template',\n\t\t\t\t\t\ttemplateId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst _canEditTemplates = select( coreStore ).canUser(\n\t\t\t\t'create',\n\t\t\t\t'templates'\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcanEditTemplates: _canEditTemplates,\n\t\t\t\tentity: record,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! entity ) {\n\t\treturn (\n\t\t\t<TemplateLockContentOnlyMenuItems\n\t\t\t\tclientId={ clientId }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst isPattern = entity.type === 'wp_block';\n\tlet helpText = isPattern\n\t\t? __(\n\t\t\t\t'Edit the pattern to move, delete, or make further changes to this block.'\n\t\t )\n\t\t: __(\n\t\t\t\t'Edit the template to move, delete, or make further changes to this block.'\n\t\t );\n\n\tif ( ! canEditTemplates ) {\n\t\thelpText = __(\n\t\t\t'Only users with permissions to edit the template can move or delete this block'\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\tpostId: entity.id,\n\t\t\t\t\t\t\tpostType: entity.type,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! canEditTemplates }\n\t\t\t\t>\n\t\t\t\t\t{ isPattern ? __( 'Edit pattern' ) : __( 'Edit template' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ helpText }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nfunction TemplateLockContentOnlyMenuItems( { clientId, onClose } ) {\n\tconst { contentLockingParent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontentLockingParent: getContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst blockDisplayInformation =\n\t\tuseBlockDisplayInformation( contentLockingParent );\n\t// Disable reason: We're using a hook here so it has to be on top-level.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { modifyContentLockBlock, selectBlock } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tif ( ! blockDisplayInformation?.title ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tselectBlock( contentLockingParent );\n\t\t\t\t\t\tmodifyContentLockBlock( contentLockingParent );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Unlock' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ __(\n\t\t\t\t\t'Temporarily unlock the parent block to edit, delete or make further changes to this block.'\n\t\t\t\t) }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nexport default function ContentOnlySettingsMenu() {\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds, onClose } ) =>\n\t\t\t\tselectedClientIds.length === 1 && (\n\t\t\t\t\t<ContentOnlySettingsMenuItems\n\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["BlockSettingsMenuControls","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuFirstItem","store","blockEditorStore","useBlockDisplayInformation","coreStore","__experimentalText","Text","MenuItem","useSelect","useDispatch","__","editorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ContentOnlySettingsMenuItems","clientId","onClose","entity","onNavigateToEntityRecord","canEditTemplates","select","getBlockEditingMode","getBlockParentsByBlockName","getSettings","getBlockAttributes","contentOnly","patternParent","record","getEntityRecord","ref","getCurrentTemplateId","templateId","getContentLockingParent","_canEditTemplates","canUser","kind","name","TemplateLockContentOnlyMenuItems","isPattern","type","helpText","children","onClick","postId","id","postType","disabled","variant","as","className","contentLockingParent","blockDisplayInformation","modifyContentLockBlock","selectBlock","title","ContentOnlySettingsMenu","selectedClientIds","length"],"sources":["@wordpress/editor/src/components/block-settings-menu/content-only-settings-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockSettingsMenuControls,\n\t__unstableBlockSettingsMenuFirstItem as BlockSettingsMenuFirstItem,\n\tstore as blockEditorStore,\n\tuseBlockDisplayInformation,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalText as Text, MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction ContentOnlySettingsMenuItems( { clientId, onClose } ) {\n\tconst { entity, onNavigateToEntityRecord, canEditTemplates } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst contentOnly =\n\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly';\n\t\t\tif ( ! contentOnly ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst patternParent = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/block',\n\t\t\t\ttrue\n\t\t\t)[ 0 ];\n\n\t\t\tlet record;\n\t\t\tif ( patternParent ) {\n\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tgetBlockAttributes( patternParent ).ref\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst { getCurrentTemplateId } = select( editorStore );\n\t\t\t\tconst templateId = getCurrentTemplateId();\n\t\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\t\tselect( blockEditorStore )\n\t\t\t\t);\n\t\t\t\tif ( ! getContentLockingParent( clientId ) && templateId ) {\n\t\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_template',\n\t\t\t\t\t\ttemplateId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst _canEditTemplates = select( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} );\n\t\t\treturn {\n\t\t\t\tcanEditTemplates: _canEditTemplates,\n\t\t\t\tentity: record,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! entity ) {\n\t\treturn (\n\t\t\t<TemplateLockContentOnlyMenuItems\n\t\t\t\tclientId={ clientId }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst isPattern = entity.type === 'wp_block';\n\tlet helpText = isPattern\n\t\t? __(\n\t\t\t\t'Edit the pattern to move, delete, or make further changes to this block.'\n\t\t )\n\t\t: __(\n\t\t\t\t'Edit the template to move, delete, or make further changes to this block.'\n\t\t );\n\n\tif ( ! canEditTemplates ) {\n\t\thelpText = __(\n\t\t\t'Only users with permissions to edit the template can move or delete this block'\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\tpostId: entity.id,\n\t\t\t\t\t\t\tpostType: entity.type,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! canEditTemplates }\n\t\t\t\t>\n\t\t\t\t\t{ isPattern ? __( 'Edit pattern' ) : __( 'Edit template' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ helpText }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nfunction TemplateLockContentOnlyMenuItems( { clientId, onClose } ) {\n\tconst { contentLockingParent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontentLockingParent: getContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst blockDisplayInformation =\n\t\tuseBlockDisplayInformation( contentLockingParent );\n\t// Disable reason: We're using a hook here so it has to be on top-level.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { modifyContentLockBlock, selectBlock } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tif ( ! blockDisplayInformation?.title ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tselectBlock( contentLockingParent );\n\t\t\t\t\t\tmodifyContentLockBlock( contentLockingParent );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Unlock' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ __(\n\t\t\t\t\t'Temporarily unlock the parent block to edit, delete or make further changes to this block.'\n\t\t\t\t) }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nexport default function ContentOnlySettingsMenu() {\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds, onClose } ) =>\n\t\t\t\tselectedClientIds.length === 1 && (\n\t\t\t\t\t<ContentOnlySettingsMenuItems\n\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,yBAAyB,EACzBC,oCAAoC,IAAIC,0BAA0B,EAClEC,KAAK,IAAIC,gBAAgB,EACzBC,0BAA0B,QACpB,yBAAyB;AAChC,SAASF,KAAK,IAAIG,SAAS,QAAQ,sBAAsB;AACzD,SAASC,kBAAkB,IAAIC,IAAI,EAAEC,QAAQ,QAAQ,uBAAuB;AAC5E,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAAST,KAAK,IAAIU,WAAW,QAAQ,aAAa;AAClD,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE3C,SAASC,4BAA4BA,CAAE;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EAC9D,MAAM;IAAEC,MAAM;IAAEC,wBAAwB;IAAEC;EAAiB,CAAC,GAAGhB,SAAS,CACrEiB,MAAM,IAAM;IACb,MAAM;MACLC,mBAAmB;MACnBC,0BAA0B;MAC1BC,WAAW;MACXC;IACD,CAAC,GAAGJ,MAAM,CAAEvB,gBAAiB,CAAC;IAC9B,MAAM4B,WAAW,GAChBJ,mBAAmB,CAAEN,QAAS,CAAC,KAAK,aAAa;IAClD,IAAK,CAAEU,WAAW,EAAG;MACpB,OAAO,CAAC,CAAC;IACV;IACA,MAAMC,aAAa,GAAGJ,0BAA0B,CAC/CP,QAAQ,EACR,YAAY,EACZ,IACD,CAAC,CAAE,CAAC,CAAE;IAEN,IAAIY,MAAM;IACV,IAAKD,aAAa,EAAG;MACpBC,MAAM,GAAGP,MAAM,CAAErB,SAAU,CAAC,CAAC6B,eAAe,CAC3C,UAAU,EACV,UAAU,EACVJ,kBAAkB,CAAEE,aAAc,CAAC,CAACG,GACrC,CAAC;IACF,CAAC,MAAM;MACN,MAAM;QAAEC;MAAqB,CAAC,GAAGV,MAAM,CAAEd,WAAY,CAAC;MACtD,MAAMyB,UAAU,GAAGD,oBAAoB,CAAC,CAAC;MACzC,MAAM;QAAEE;MAAwB,CAAC,GAAGzB,MAAM,CACzCa,MAAM,CAAEvB,gBAAiB,CAC1B,CAAC;MACD,IAAK,CAAEmC,uBAAuB,CAAEjB,QAAS,CAAC,IAAIgB,UAAU,EAAG;QAC1DJ,MAAM,GAAGP,MAAM,CAAErB,SAAU,CAAC,CAAC6B,eAAe,CAC3C,UAAU,EACV,aAAa,EACbG,UACD,CAAC;MACF;IACD;IACA,MAAME,iBAAiB,GAAGb,MAAM,CAAErB,SAAU,CAAC,CAACmC,OAAO,CAAE,QAAQ,EAAE;MAChEC,IAAI,EAAE,UAAU;MAChBC,IAAI,EAAE;IACP,CAAE,CAAC;IACH,OAAO;MACNjB,gBAAgB,EAAEc,iBAAiB;MACnChB,MAAM,EAAEU,MAAM;MACdT,wBAAwB,EACvBK,WAAW,CAAC,CAAC,CAACL;IAChB,CAAC;EACF,CAAC,EACD,CAAEH,QAAQ,CACX,CAAC;EAED,IAAK,CAAEE,MAAM,EAAG;IACf,oBACCR,IAAA,CAAC4B,gCAAgC;MAChCtB,QAAQ,EAAGA,QAAU;MACrBC,OAAO,EAAGA;IAAS,CACnB,CAAC;EAEJ;EAEA,MAAMsB,SAAS,GAAGrB,MAAM,CAACsB,IAAI,KAAK,UAAU;EAC5C,IAAIC,QAAQ,GAAGF,SAAS,GACrBjC,EAAE,CACF,0EACA,CAAC,GACDA,EAAE,CACF,2EACA,CAAC;EAEJ,IAAK,CAAEc,gBAAgB,EAAG;IACzBqB,QAAQ,GAAGnC,EAAE,CACZ,gFACD,CAAC;EACF;EAEA,oBACCQ,KAAA,CAAAF,SAAA;IAAA8B,QAAA,gBACChC,IAAA,CAACd,0BAA0B;MAAA8C,QAAA,eAC1BhC,IAAA,CAACP,QAAQ;QACRwC,OAAO,EAAGA,CAAA,KAAM;UACfxB,wBAAwB,CAAE;YACzByB,MAAM,EAAE1B,MAAM,CAAC2B,EAAE;YACjBC,QAAQ,EAAE5B,MAAM,CAACsB;UAClB,CAAE,CAAC;QACJ,CAAG;QACHO,QAAQ,EAAG,CAAE3B,gBAAkB;QAAAsB,QAAA,EAE7BH,SAAS,GAAGjC,EAAE,CAAE,cAAe,CAAC,GAAGA,EAAE,CAAE,eAAgB;MAAC,CACjD;IAAC,CACgB,CAAC,eAC7BI,IAAA,CAACR,IAAI;MACJ8C,OAAO,EAAC,OAAO;MACfC,EAAE,EAAC,GAAG;MACNC,SAAS,EAAC,gDAAgD;MAAAR,QAAA,EAExDD;IAAQ,CACL,CAAC;EAAA,CACN,CAAC;AAEL;AAEA,SAASH,gCAAgCA,CAAE;EAAEtB,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EAClE,MAAM;IAAEkC;EAAqB,CAAC,GAAG/C,SAAS,CACvCiB,MAAM,IAAM;IACb,MAAM;MAAEY;IAAwB,CAAC,GAAGzB,MAAM,CACzCa,MAAM,CAAEvB,gBAAiB,CAC1B,CAAC;IACD,OAAO;MACNqD,oBAAoB,EAAElB,uBAAuB,CAAEjB,QAAS;IACzD,CAAC;EACF,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;EACD,MAAMoC,uBAAuB,GAC5BrD,0BAA0B,CAAEoD,oBAAqB,CAAC;EACnD;EACA;EACA,MAAM;IAAEE,sBAAsB;IAAEC;EAAY,CAAC,GAAG9C,MAAM,CACrDH,WAAW,CAAEP,gBAAiB,CAC/B,CAAC;EAED,IAAK,CAAEsD,uBAAuB,EAAEG,KAAK,EAAG;IACvC,OAAO,IAAI;EACZ;EAEA,oBACCzC,KAAA,CAAAF,SAAA;IAAA8B,QAAA,gBACChC,IAAA,CAACd,0BAA0B;MAAA8C,QAAA,eAC1BhC,IAAA,CAACP,QAAQ;QACRwC,OAAO,EAAGA,CAAA,KAAM;UACfW,WAAW,CAAEH,oBAAqB,CAAC;UACnCE,sBAAsB,CAAEF,oBAAqB,CAAC;UAC9ClC,OAAO,CAAC,CAAC;QACV,CAAG;QAAAyB,QAAA,EAEDpC,EAAE,CAAE,QAAS;MAAC,CACP;IAAC,CACgB,CAAC,eAC7BI,IAAA,CAACR,IAAI;MACJ8C,OAAO,EAAC,OAAO;MACfC,EAAE,EAAC,GAAG;MACNC,SAAS,EAAC,gDAAgD;MAAAR,QAAA,EAExDpC,EAAE,CACH,4FACD;IAAC,CACI,CAAC;EAAA,CACN,CAAC;AAEL;AAEA,eAAe,SAASkD,uBAAuBA,CAAA,EAAG;EACjD,oBACC9C,IAAA,CAAChB,yBAAyB;IAAAgD,QAAA,EACvBA,CAAE;MAAEe,iBAAiB;MAAExC;IAAQ,CAAC,KACjCwC,iBAAiB,CAACC,MAAM,KAAK,CAAC,iBAC7BhD,IAAA,CAACK,4BAA4B;MAC5BC,QAAQ,EAAGyC,iBAAiB,CAAE,CAAC,CAAI;MACnCxC,OAAO,EAAGA;IAAS,CACnB;EACD,CAEwB,CAAC;AAE9B","ignoreList":[]}
|
|
@@ -32,9 +32,13 @@ export default function BlogTitle() {
|
|
|
32
32
|
} = useSelect(select => {
|
|
33
33
|
const {
|
|
34
34
|
getEntityRecord,
|
|
35
|
-
getEditedEntityRecord
|
|
35
|
+
getEditedEntityRecord,
|
|
36
|
+
canUser
|
|
36
37
|
} = select(coreStore);
|
|
37
|
-
const siteSettings =
|
|
38
|
+
const siteSettings = canUser('read', {
|
|
39
|
+
kind: 'root',
|
|
40
|
+
name: 'site'
|
|
41
|
+
}) ? getEntityRecord('root', 'site') : undefined;
|
|
38
42
|
const _postsPageRecord = siteSettings?.page_for_posts ? getEditedEntityRecord('postType', 'page', siteSettings?.page_for_posts) : EMPTY_OBJECT;
|
|
39
43
|
const {
|
|
40
44
|
getEditedPostAttribute,
|
|
@@ -95,7 +99,7 @@ export default function BlogTitle() {
|
|
|
95
99
|
title: __('Blog title'),
|
|
96
100
|
onClose: onClose
|
|
97
101
|
}), /*#__PURE__*/_jsx(InputControl, {
|
|
98
|
-
placeholder: __('No
|
|
102
|
+
placeholder: __('No title'),
|
|
99
103
|
size: "__unstable-large",
|
|
100
104
|
value: postsPageTitle,
|
|
101
105
|
onChange: debounce(setPostsPageTitle, 300),
|