@wordpress/block-library 8.5.0 → 8.7.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 +4 -0
- package/build/buttons/edit.native.js +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/buttons/index.js +1 -0
- package/build/buttons/index.js.map +1 -1
- package/build/buttons/transforms.js +1 -0
- package/build/buttons/transforms.js.map +1 -1
- package/build/columns/edit.js +14 -10
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +1 -1
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/index.js +4 -0
- package/build/columns/index.js.map +1 -1
- package/build/comments/edit/placeholder.js +8 -5
- package/build/comments/edit/placeholder.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +2 -2
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/index.js +13 -4
- package/build/cover/index.js.map +1 -1
- package/build/cover/variations.js +29 -0
- package/build/cover/variations.js.map +1 -0
- package/build/embed/edit.js +13 -14
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js +18 -14
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/util.js +39 -12
- package/build/embed/util.js.map +1 -1
- package/build/gallery/edit.js +9 -5
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/use-image-sizes.js +1 -1
- package/build/gallery/use-image-sizes.js.map +1 -1
- package/build/group/deprecated.js +4 -2
- package/build/group/deprecated.js.map +1 -1
- package/build/group/edit.js +22 -5
- package/build/group/edit.js.map +1 -1
- package/build/group/placeholder.js +11 -1
- package/build/group/placeholder.js.map +1 -1
- package/build/group/variations.js +23 -3
- package/build/group/variations.js.map +1 -1
- package/build/image/edit.js +1 -1
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +8 -6
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +7 -2
- package/build/image/index.js.map +1 -1
- package/build/latest-posts/edit.js +11 -10
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/edit.native.js +3 -3
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/media-text/constants.js +17 -1
- package/build/media-text/constants.js.map +1 -1
- package/build/media-text/deprecated.js +228 -18
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +10 -22
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/edit.native.js +6 -5
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/index.js +1 -1
- package/build/media-text/transforms.js +32 -44
- package/build/media-text/transforms.js.map +1 -1
- package/build/navigation/edit/index.js +55 -96
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +2 -5
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +26 -22
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +14 -1
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +1 -1
- package/build/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build/navigation/index.js +0 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigation-link/edit.js +0 -11
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +0 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -13
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +59 -45
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list-item/edit.js +3 -2
- package/build/page-list-item/edit.js.map +1 -1
- package/build/post-content/edit.js +6 -1
- package/build/post-content/edit.js.map +1 -1
- package/build/post-date/edit.js +2 -1
- package/build/post-date/edit.js.map +1 -1
- package/build/post-date/index.js +4 -1
- package/build/post-date/index.js.map +1 -1
- package/build/post-date/variations.js +28 -0
- package/build/post-date/variations.js.map +1 -0
- package/build/post-excerpt/edit.js +39 -10
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +2 -8
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-template/index.js +1 -1
- package/build/post-time-to-read/index.js +17 -1
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/pullquote/deprecated.js +3 -3
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/query/edit/query-placeholder.js +3 -2
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/utils.js +26 -9
- package/build/query/utils.js.map +1 -1
- package/build/quote/index.js +1 -0
- package/build/quote/index.js.map +1 -1
- package/build/spacer/edit.js +16 -6
- package/build/spacer/edit.js.map +1 -1
- package/build/table/state.js +12 -4
- package/build/table/state.js.map +1 -1
- package/build/template-part/edit/import-controls.js +4 -24
- package/build/template-part/edit/import-controls.js.map +1 -1
- package/build/template-part/edit/utils/transformers.js +69 -19
- package/build/template-part/edit/utils/transformers.js.map +1 -1
- package/build/text-columns/edit.js +3 -7
- package/build/text-columns/edit.js.map +1 -1
- package/build/text-columns/save.js +11 -13
- package/build/text-columns/save.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/buttons/index.js +1 -0
- package/build-module/buttons/index.js.map +1 -1
- package/build-module/buttons/transforms.js +1 -0
- package/build-module/buttons/transforms.js.map +1 -1
- package/build-module/columns/edit.js +14 -9
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +1 -1
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/index.js +4 -0
- package/build-module/columns/index.js.map +1 -1
- package/build-module/comments/edit/placeholder.js +9 -5
- package/build-module/comments/edit/placeholder.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +2 -2
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/index.js +12 -4
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/variations.js +19 -0
- package/build-module/cover/variations.js.map +1 -0
- package/build-module/embed/edit.js +14 -15
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/edit.native.js +19 -15
- package/build-module/embed/edit.native.js.map +1 -1
- package/build-module/embed/util.js +34 -10
- package/build-module/embed/util.js.map +1 -1
- package/build-module/gallery/edit.js +9 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/use-image-sizes.js +1 -1
- package/build-module/gallery/use-image-sizes.js.map +1 -1
- package/build-module/group/deprecated.js +4 -2
- package/build-module/group/deprecated.js.map +1 -1
- package/build-module/group/edit.js +21 -5
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/placeholder.js +11 -1
- package/build-module/group/placeholder.js.map +1 -1
- package/build-module/group/variations.js +24 -1
- package/build-module/group/variations.js.map +1 -1
- package/build-module/image/edit.js +1 -1
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +8 -6
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +7 -2
- package/build-module/image/index.js.map +1 -1
- package/build-module/latest-posts/edit.js +11 -9
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/edit.native.js +3 -3
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/media-text/constants.js +10 -0
- package/build-module/media-text/constants.js.map +1 -1
- package/build-module/media-text/deprecated.js +227 -18
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.js +5 -17
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/edit.native.js +4 -3
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/index.js +1 -1
- package/build-module/media-text/transforms.js +32 -44
- package/build-module/media-text/transforms.js.map +1 -1
- package/build-module/navigation/edit/index.js +57 -98
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +2 -5
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +25 -22
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +14 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build-module/navigation/index.js +0 -1
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation-link/edit.js +0 -11
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +0 -1
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -13
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +61 -47
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list-item/edit.js +3 -2
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/post-content/edit.js +6 -1
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-date/edit.js +2 -1
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-date/index.js +3 -1
- package/build-module/post-date/index.js.map +1 -1
- package/build-module/post-date/variations.js +18 -0
- package/build-module/post-date/variations.js.map +1 -0
- package/build-module/post-excerpt/edit.js +38 -11
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +2 -8
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-template/index.js +1 -1
- package/build-module/post-time-to-read/index.js +17 -1
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/pullquote/deprecated.js +3 -2
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +4 -3
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/utils.js +21 -6
- package/build-module/query/utils.js.map +1 -1
- package/build-module/quote/index.js +1 -0
- package/build-module/quote/index.js.map +1 -1
- package/build-module/spacer/edit.js +16 -6
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table/state.js +13 -5
- package/build-module/table/state.js.map +1 -1
- package/build-module/template-part/edit/import-controls.js +4 -23
- package/build-module/template-part/edit/import-controls.js.map +1 -1
- package/build-module/template-part/edit/utils/transformers.js +69 -20
- package/build-module/template-part/edit/utils/transformers.js.map +1 -1
- package/build-module/text-columns/edit.js +3 -6
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/text-columns/save.js +11 -12
- package/build-module/text-columns/save.js.map +1 -1
- package/build-style/categories/editor-rtl.css +5 -0
- package/build-style/categories/editor.css +5 -0
- package/build-style/categories/style-rtl.css +4 -0
- package/build-style/categories/style.css +4 -0
- package/build-style/cover/style-rtl.css +11 -5
- package/build-style/cover/style.css +11 -5
- package/build-style/editor-rtl.css +11 -1
- package/build-style/editor.css +11 -1
- package/build-style/navigation/editor-rtl.css +1 -1
- package/build-style/navigation/editor.css +1 -1
- package/build-style/navigation/style-rtl.css +2 -0
- package/build-style/navigation/style.css +2 -0
- package/build-style/page-list/editor-rtl.css +4 -0
- package/build-style/page-list/editor.css +4 -0
- package/build-style/post-featured-image/editor-rtl.css +1 -0
- package/build-style/post-featured-image/editor.css +1 -0
- package/build-style/post-featured-image/style-rtl.css +1 -0
- package/build-style/post-featured-image/style.css +1 -0
- package/build-style/post-template/style-rtl.css +1 -1
- package/build-style/post-template/style.css +1 -1
- package/build-style/post-time-to-read/style-rtl.css +91 -0
- package/build-style/post-time-to-read/style.css +91 -0
- package/build-style/search/style-rtl.css +8 -7
- package/build-style/search/style.css +8 -7
- package/build-style/style-rtl.css +31 -13
- package/build-style/style.css +31 -13
- package/package.json +31 -31
- package/src/audio/test/__snapshots__/edit.native.js.snap +44 -4
- package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/audio/test/transforms.native.js +42 -0
- package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/block/test/transforms.native.js +40 -0
- package/src/buttons/block.json +1 -0
- package/src/buttons/edit.native.js +1 -1
- package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/buttons/test/transforms.native.js +48 -0
- package/src/categories/editor.scss +5 -0
- package/src/categories/style.scss +4 -0
- package/src/columns/block.json +4 -0
- package/src/columns/edit.js +30 -18
- package/src/columns/edit.native.js +1 -1
- package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
- package/src/columns/test/transforms.native.js +91 -0
- package/src/comment-template/index.php +1 -2
- package/src/comments/edit/placeholder.js +16 -4
- package/src/comments/index.php +1 -0
- package/src/cover/block.json +9 -3
- package/src/cover/edit/inspector-controls.js +4 -5
- package/src/cover/index.js +2 -0
- package/src/cover/style.scss +16 -7
- package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/cover/test/edit.js +324 -0
- package/src/cover/test/transforms.native.js +112 -0
- package/src/cover/variations.js +20 -0
- package/src/embed/edit.js +16 -12
- package/src/embed/edit.native.js +28 -18
- package/src/embed/test/__snapshots__/transforms.native.js.snap +23 -0
- package/src/embed/test/index.js +12 -0
- package/src/embed/test/transforms.native.js +44 -0
- package/src/embed/util.js +29 -8
- package/src/file/test/__snapshots__/edit.native.js.snap +18 -2
- package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/file/test/transforms.native.js +42 -0
- package/src/freeform/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/freeform/test/transforms.native.js +39 -0
- package/src/gallery/edit.js +8 -2
- package/src/gallery/test/__snapshots__/transforms.native.js.snap +53 -0
- package/src/gallery/test/transforms.native.js +52 -0
- package/src/gallery/use-image-sizes.js +1 -1
- package/src/group/deprecated.js +4 -2
- package/src/group/edit.js +27 -9
- package/src/group/placeholder.js +13 -1
- package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
- package/src/group/test/transforms.native.js +75 -0
- package/src/group/variations.js +14 -1
- package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/heading/test/transforms.native.js +46 -0
- package/src/home-link/index.php +2 -2
- package/src/image/block.json +7 -2
- package/src/image/edit.js +1 -1
- package/src/image/edit.native.js +1 -1
- package/src/image/image.js +15 -7
- package/src/image/index.php +7 -2
- package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
- package/src/image/test/transforms.native.js +48 -0
- package/src/latest-comments/style.scss +1 -1
- package/src/latest-posts/edit.js +14 -16
- package/src/latest-posts/edit.native.js +3 -3
- package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/latest-posts/test/transforms.native.js +61 -0
- package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
- package/src/list/test/transforms.native.js +56 -0
- package/src/media-text/block.json +1 -1
- package/src/media-text/constants.js +16 -0
- package/src/media-text/deprecated.js +235 -3
- package/src/media-text/edit.js +15 -24
- package/src/media-text/edit.native.js +3 -9
- package/src/media-text/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/media-text/test/transforms.native.js +112 -0
- package/src/media-text/transforms.js +24 -51
- package/src/missing/test/__snapshots__/edit.native.js.snap +20 -2
- package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/more/test/transforms.native.js +42 -0
- package/src/navigation/block.json +0 -1
- package/src/navigation/edit/index.js +99 -115
- package/src/navigation/edit/menu-inspector-controls.js +2 -7
- package/src/navigation/edit/navigation-menu-selector.js +41 -25
- package/src/navigation/edit/unsaved-inner-blocks.js +46 -33
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +82 -83
- package/src/navigation/edit/use-create-navigation-menu.js +1 -1
- package/src/navigation/edit/use-navigation-notice.js +1 -1
- package/src/navigation/editor.scss +23 -20
- package/src/navigation/index.php +18 -39
- package/src/navigation/style.scss +6 -4
- package/src/navigation-link/edit.js +0 -9
- package/src/navigation-link/index.php +7 -9
- package/src/navigation-link/link-ui.js +0 -1
- package/src/navigation-submenu/edit.js +0 -10
- package/src/navigation-submenu/index.php +45 -74
- package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/nextpage/test/transforms.native.js +42 -0
- package/src/page-list/edit.js +78 -44
- package/src/page-list/editor.scss +6 -0
- package/src/page-list-item/edit.js +2 -3
- package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
- package/src/paragraph/test/transforms.native.js +50 -0
- package/src/post-author/index.php +1 -1
- package/src/post-content/edit.js +5 -1
- package/src/post-date/edit.js +4 -1
- package/src/post-date/index.js +2 -0
- package/src/post-date/variations.js +20 -0
- package/src/post-excerpt/edit.js +48 -16
- package/src/post-excerpt/index.php +1 -2
- package/src/post-featured-image/dimension-controls.js +2 -10
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-featured-image/editor.scss +1 -0
- package/src/post-featured-image/style.scss +1 -0
- package/src/post-template/block.json +1 -1
- package/src/post-template/style.scss +1 -1
- package/src/post-time-to-read/block.json +17 -1
- package/src/post-time-to-read/style.scss +4 -0
- package/src/preformatted/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/preformatted/test/transforms.native.js +42 -0
- package/src/pullquote/deprecated.js +2 -6
- package/src/pullquote/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/pullquote/test/transforms.native.js +46 -0
- package/src/query/edit/query-placeholder.js +10 -5
- package/src/query/test/utils.js +33 -1
- package/src/query/utils.js +19 -6
- package/src/query-title/index.php +2 -5
- package/src/quote/block.json +1 -0
- package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
- package/src/quote/test/transforms.native.js +67 -0
- package/src/search/style.scss +16 -12
- package/src/search/test/__snapshots__/edit.native.js.snap +11 -1
- package/src/search/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/search/test/transforms.native.js +40 -0
- package/src/separator/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/separator/test/transforms.native.js +42 -0
- package/src/shortcode/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/shortcode/test/transforms.native.js +42 -0
- package/src/social-links/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/social-links/test/transforms.native.js +53 -0
- package/src/spacer/edit.js +18 -5
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/spacer/test/transforms.native.js +42 -0
- package/src/style.scss +1 -0
- package/src/table/state.js +8 -17
- package/src/template-part/edit/import-controls.js +2 -29
- package/src/template-part/edit/utils/transformers.js +96 -19
- package/src/text-columns/edit.js +1 -6
- package/src/text-columns/save.js +1 -6
- package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/verse/test/transforms.native.js +42 -0
- package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
- package/src/video/test/transforms.native.js +48 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/cover/test/block-controls.js +0 -62
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["classnames","createBlock","InspectorControls","BlockControls","useBlockProps","useInnerBlocksProps","getColorClassName","store","blockEditorStore","Warning","PanelBody","ToolbarButton","Spinner","Notice","ComboboxControl","Button","__","sprintf","useMemo","useState","useEffect","useEntityRecords","useSelect","useConvertToNavigationLinks","convertDescription","ConvertToLinksModal","MAX_PAGE_COUNT","NOOP","BlockContent","blockProps","innerBlocksProps","hasResolvedPages","blockList","pages","parentPageID","length","parentPageDetails","find","page","id","title","rendered","ConvertToLinks","onClick","disabled","isOpen","setOpen","openModal","closeModal","PageListEdit","context","clientId","attributes","setAttributes","records","hasResolved","per_page","_fields","orderby","order","allowConvertToLinks","pagesByParentId","Map","sortedPages","sort","a","b","menu_order","localeCompare","reduce","accumulator","parent","has","get","push","set","convertToNavigationLinks","className","textColor","backgroundColor","style","color","getBlockList","parentId","childPages","template","hasChildren","pageProps","label","link","url","item","children","makePagesTree","level","tree","value","repeat","rawName","pagesTree","allowedBlocks","renderAppender","__unstableDisableDropZone","templateLock","onInput","onChange","isNested","select","getBlockParentsByBlockName","blockParents"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,mBAA5B;AACA,SACCC,iBADD,EAECC,aAFD,EAGCC,aAHD,EAICC,mBAJD,EAKCC,iBALD,EAMCC,KAAK,IAAIC,gBANV,EAOCC,OAPD,QAQO,yBARP;AASA,SACCC,SADD,EAECC,aAFD,EAGCC,OAHD,EAICC,MAJD,EAKCC,eALD,EAMCC,MAND,QAOO,uBAPP;AAQA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,OAAT,EAAkBC,QAAlB,EAA4BC,SAA5B,QAA6C,oBAA7C;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,2BAAT,QAA4C,mCAA5C;AACA,SACCC,kBADD,EAECC,mBAFD,QAGO,0BAHP,C,CAKA;AACA;;AACA,MAAMC,cAAc,GAAG,GAAvB;;AACA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AACA,SAASC,YAAT,OAOI;AAAA,MAPmB;AACtBC,IAAAA,UADsB;AAEtBC,IAAAA,gBAFsB;AAGtBC,IAAAA,gBAHsB;AAItBC,IAAAA,SAJsB;AAKtBC,IAAAA,KALsB;AAMtBC,IAAAA;AANsB,GAOnB;;AACH,MAAK,CAAEH,gBAAP,EAA0B;AACzB,WACC,qBAAUF,UAAV,EACC,cAAC,OAAD,OADD,CADD;AAKA;;AAED,MAAKI,KAAK,KAAK,IAAf,EAAsB;AACrB,WACC,qBAAUJ,UAAV,EACC,cAAC,MAAD;AAAQ,MAAA,MAAM,EAAG,SAAjB;AAA6B,MAAA,aAAa,EAAG;AAA7C,OACGb,EAAE,CAAE,mCAAF,CADL,CADD,CADD;AAOA;;AAED,MAAKiB,KAAK,CAACE,MAAN,KAAiB,CAAtB,EAA0B;AACzB,WACC,qBAAUN,UAAV,EACC,cAAC,MAAD;AAAQ,MAAA,MAAM,EAAG,MAAjB;AAA0B,MAAA,aAAa,EAAG;AAA1C,OACGb,EAAE,CAAE,mCAAF,CADL,CADD,CADD;AAOA;;AAED,MAAKgB,SAAS,CAACG,MAAV,KAAqB,CAA1B,EAA8B;AAAA;;AAC7B,UAAMC,iBAAiB,GAAGH,KAAK,CAACI,IAAN,CACvBC,IAAF,IAAYA,IAAI,CAACC,EAAL,KAAYL,YADC,CAA1B;;AAIA,QAAKE,iBAAL,aAAKA,iBAAL,wCAAKA,iBAAiB,CAAEI,KAAxB,kDAAK,sBAA0BC,QAA/B,EAA0C;AACzC,aACC,qBAAUZ,UAAV,EACC,cAAC,OAAD,QACGZ,OAAO,EACR;AACAD,MAAAA,EAAE,CAAE,uCAAF,CAFM,EAGRoB,iBAAiB,CAACI,KAAlB,CAAwBC,QAHhB,CADV,CADD,CADD;AAWA;;AAED,WACC,qBAAUZ,UAAV,EACC,cAAC,MAAD;AAAQ,MAAA,MAAM,EAAG,SAAjB;AAA6B,MAAA,aAAa,EAAG;AAA7C,OACGb,EAAE,CAAE,mCAAF,CADL,CADD,CADD;AAOA;;AAED,MAAKiB,KAAK,CAACE,MAAN,GAAe,CAApB,EAAwB;AACvB,WAAO,oBAASL,gBAAT,CAAP;AACA;AACD;;AAED,SAASY,cAAT,QAAiD;AAAA,MAAxB;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAwB;AAChD,QAAM,CAAEC,MAAF,EAAUC,OAAV,IAAsB3B,QAAQ,CAAE,KAAF,CAApC;;AACA,QAAM4B,SAAS,GAAG,MAAMD,OAAO,CAAE,IAAF,CAA/B;;AACA,QAAME,UAAU,GAAG,MAAMF,OAAO,CAAE,KAAF,CAAhC;;AAEA,SACC,8BACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAG9B,EAAE,CAAE,MAAF,CAAzB;AAAsC,IAAA,OAAO,EAAG+B;AAAhD,KACG/B,EAAE,CAAE,MAAF,CADL,CADD,CADD,EAMG6B,MAAM,IACP,cAAC,mBAAD;AACC,IAAA,OAAO,EAAGF,OADX;AAEC,IAAA,OAAO,EAAGK,UAFX;AAGC,IAAA,QAAQ,EAAGJ;AAHZ,IAPF,CADD;AAgBA;;AAED,eAAe,SAASK,YAAT,QAKX;AAAA;;AAAA,MALkC;AACrCC,IAAAA,OADqC;AAErCC,IAAAA,QAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA;AAJqC,GAKlC;AACH,QAAM;AAAEnB,IAAAA;AAAF,MAAmBkB,UAAzB;AAEA,QAAM;AAAEE,IAAAA,OAAO,EAAErB,KAAX;AAAkBsB,IAAAA,WAAW,EAAExB;AAA/B,MAAoDV,gBAAgB,CACzE,UADyE,EAEzE,MAFyE,EAGzE;AACCmC,IAAAA,QAAQ,EAAE9B,cADX;AAEC+B,IAAAA,OAAO,EAAE,CAAE,IAAF,EAAQ,MAAR,EAAgB,YAAhB,EAA8B,QAA9B,EAAwC,OAAxC,EAAiD,MAAjD,CAFV;AAGC;AACA;AACA;AACAC,IAAAA,OAAO,EAAE,YANV;AAOCC,IAAAA,KAAK,EAAE;AAPR,GAHyE,CAA1E;AAcA,QAAMC,mBAAmB,GACxB,qBAAqBV,OAArB,IACA,CAAAjB,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEE,MAAP,IAAgB,CADhB,IAEA,CAAAF,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEE,MAAP,KAAiBT,cAHlB;AAKA,QAAMmC,eAAe,GAAG3C,OAAO,CAAE,MAAM;AACtC,QAAKe,KAAK,KAAK,IAAf,EAAsB;AACrB,aAAO,IAAI6B,GAAJ,EAAP;AACA,KAHqC,CAKtC;AACA;AACA;;;AACA,UAAMC,WAAW,GAAG9B,KAAK,CAAC+B,IAAN,CAAY,CAAEC,CAAF,EAAKC,CAAL,KAAY;AAC3C,UAAKD,CAAC,CAACE,UAAF,KAAiBD,CAAC,CAACC,UAAxB,EAAqC;AACpC,eAAOF,CAAC,CAACzB,KAAF,CAAQC,QAAR,CAAiB2B,aAAjB,CAAgCF,CAAC,CAAC1B,KAAF,CAAQC,QAAxC,CAAP;AACA;;AACD,aAAOwB,CAAC,CAACE,UAAF,GAAeD,CAAC,CAACC,UAAxB;AACA,KALmB,CAApB;AAOA,WAAOJ,WAAW,CAACM,MAAZ,CAAoB,CAAEC,WAAF,EAAehC,IAAf,KAAyB;AACnD,YAAM;AAAEiC,QAAAA;AAAF,UAAajC,IAAnB;;AACA,UAAKgC,WAAW,CAACE,GAAZ,CAAiBD,MAAjB,CAAL,EAAiC;AAChCD,QAAAA,WAAW,CAACG,GAAZ,CAAiBF,MAAjB,EAA0BG,IAA1B,CAAgCpC,IAAhC;AACA,OAFD,MAEO;AACNgC,QAAAA,WAAW,CAACK,GAAZ,CAAiBJ,MAAjB,EAAyB,CAAEjC,IAAF,CAAzB;AACA;;AACD,aAAOgC,WAAP;AACA,KARM,EAQJ,IAAIR,GAAJ,EARI,CAAP;AASA,GAxB8B,EAwB5B,CAAE7B,KAAF,CAxB4B,CAA/B;AA0BA,QAAM2C,wBAAwB,GAAGrD,2BAA2B,CAAE;AAC7D4B,IAAAA,QAD6D;AAE7DlB,IAAAA,KAF6D;AAG7DC,IAAAA;AAH6D,GAAF,CAA5D;AAMA,QAAML,UAAU,GAAGzB,aAAa,CAAE;AACjCyE,IAAAA,SAAS,EAAE7E,UAAU,CAAE,oBAAF,EAAwB;AAC5C,wBAAkB,CAAC,CAAEkD,OAAO,CAAC4B,SADe;AAE5C,OAAExE,iBAAiB,CAAE,OAAF,EAAW4C,OAAO,CAAC4B,SAAnB,CAAnB,GACC,CAAC,CAAE5B,OAAO,CAAC4B,SAHgC;AAI5C,wBAAkB,CAAC,CAAE5B,OAAO,CAAC6B,eAJe;AAK5C,OAAEzE,iBAAiB,CAClB,kBADkB,EAElB4C,OAAO,CAAC6B,eAFU,CAAnB,GAGK,CAAC,CAAE7B,OAAO,CAAC6B;AAR4B,KAAxB,CADY;AAWjCC,IAAAA,KAAK,EAAE,EAAE,sBAAG9B,OAAO,CAAC8B,KAAX,mDAAG,eAAeC,KAAlB;AAAF;AAX0B,GAAF,CAAhC;;AAcA,QAAMC,YAAY,GAAG,YAA+B;AAAA,QAA7BC,QAA6B,uEAAlBjD,YAAkB;AACnD,UAAMkD,UAAU,GAAGvB,eAAe,CAACY,GAAhB,CAAqBU,QAArB,CAAnB;;AAEA,QAAK,EAAEC,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEjD,MAAd,CAAL,EAA4B;AAC3B,aAAO,EAAP;AACA;;AAED,WAAOiD,UAAU,CAACf,MAAX,CAAmB,CAAEgB,QAAF,EAAY/C,IAAZ,KAAsB;AAAA;;AAC/C,YAAMgD,WAAW,GAAGzB,eAAe,CAACW,GAAhB,CAAqBlC,IAAI,CAACC,EAA1B,CAApB;AACA,YAAMgD,SAAS,GAAG;AACjBhD,QAAAA,EAAE,EAAED,IAAI,CAACC,EADQ;AAEjBiD,QAAAA,KAAK,iBAAElD,IAAI,CAACE,KAAP,gDAAE,YAAYC,QAFF;AAGjBD,QAAAA,KAAK,kBAAEF,IAAI,CAACE,KAAP,iDAAE,aAAYC,QAHF;AAIjBgD,QAAAA,IAAI,EAAEnD,IAAI,CAACoD,GAJM;AAKjBJ,QAAAA;AALiB,OAAlB;AAOA,UAAIK,IAAI,GAAG,IAAX;AACA,YAAMC,QAAQ,GAAGV,YAAY,CAAE5C,IAAI,CAACC,EAAP,CAA7B;AACAoD,MAAAA,IAAI,GAAG1F,WAAW,CAAE,qBAAF,EAAyBsF,SAAzB,EAAoCK,QAApC,CAAlB;AACAP,MAAAA,QAAQ,CAACX,IAAT,CAAeiB,IAAf;AAEA,aAAON,QAAP;AACA,KAfM,EAeJ,EAfI,CAAP;AAgBA,GAvBD;;AAyBA,QAAMQ,aAAa,GAAG,YAA+B;AAAA,QAA7BV,QAA6B,uEAAlB,CAAkB;AAAA,QAAfW,KAAe,uEAAP,CAAO;AACpD,UAAMV,UAAU,GAAGvB,eAAe,CAACY,GAAhB,CAAqBU,QAArB,CAAnB;;AAEA,QAAK,EAAEC,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEjD,MAAd,CAAL,EAA4B;AAC3B,aAAO,EAAP;AACA;;AAED,WAAOiD,UAAU,CAACf,MAAX,CAAmB,CAAE0B,IAAF,EAAQzD,IAAR,KAAkB;AAC3C,YAAMgD,WAAW,GAAGzB,eAAe,CAACW,GAAhB,CAAqBlC,IAAI,CAACC,EAA1B,CAApB;AACA,YAAMoD,IAAI,GAAG;AACZK,QAAAA,KAAK,EAAE1D,IAAI,CAACC,EADA;AAEZiD,QAAAA,KAAK,EAAE,KAAKS,MAAL,CAAaH,KAAb,IAAuBxD,IAAI,CAACE,KAAL,CAAWC,QAF7B;AAGZyD,QAAAA,OAAO,EAAE5D,IAAI,CAACE,KAAL,CAAWC;AAHR,OAAb;AAKAsD,MAAAA,IAAI,CAACrB,IAAL,CAAWiB,IAAX;;AACA,UAAKL,WAAL,EAAmB;AAClBS,QAAAA,IAAI,CAACrB,IAAL,CAAW,GAAGmB,aAAa,CAAEvD,IAAI,CAACC,EAAP,EAAWuD,KAAK,GAAG,CAAnB,CAA3B;AACA;;AACD,aAAOC,IAAP;AACA,KAZM,EAYJ,EAZI,CAAP;AAaA,GApBD;;AAsBA,QAAMI,SAAS,GAAGjF,OAAO,CAAE2E,aAAF,EAAiB,CAAEhC,eAAF,CAAjB,CAAzB;AAEA,QAAM7B,SAAS,GAAGd,OAAO,CAAEgE,YAAF,EAAgB,CACxCrB,eADwC,EAExC3B,YAFwC,CAAhB,CAAzB;AAKA,QAAMJ,gBAAgB,GAAGzB,mBAAmB,CAAEwB,UAAF,EAAc;AACzDuE,IAAAA,aAAa,EAAE,CAAE,qBAAF,CAD0C;AAEzDC,IAAAA,cAAc,EAAE,KAFyC;AAGzDC,IAAAA,yBAAyB,EAAE,IAH8B;AAIzDC,IAAAA,YAAY,EAAE,KAJ2C;AAKzDC,IAAAA,OAAO,EAAE7E,IALgD;AAMzD8E,IAAAA,QAAQ,EAAE9E,IAN+C;AAOzDqE,IAAAA,KAAK,EAAEhE;AAPkD,GAAd,CAA5C;AAUA,QAAM;AAAE0E,IAAAA;AAAF,MAAepF,SAAS,CAC3BqF,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAiCD,MAAM,CAAEnG,gBAAF,CAA7C;AACA,UAAMqG,YAAY,GAAGD,0BAA0B,CAC9CzD,QAD8C,EAE9C,yBAF8C,EAG9C,IAH8C,CAA/C;AAKA,WAAO;AACNuD,MAAAA,QAAQ,EAAEG,YAAY,CAAC1E,MAAb,GAAsB;AAD1B,KAAP;AAGA,GAX4B,EAY7B,CAAEgB,QAAF,CAZ6B,CAA9B;AAeA/B,EAAAA,SAAS,CAAE,MAAM;AAChBiC,IAAAA,aAAa,CAAE;AAAEqD,MAAAA;AAAF,KAAF,CAAb;AACA,GAFQ,EAEN,CAAEA,QAAF,CAFM,CAAT;AAIA,SACC,8BACC,cAAC,iBAAD,QACGP,SAAS,CAAChE,MAAV,GAAmB,CAAnB,IACD,cAAC,SAAD,QACC,cAAC,eAAD;AACC,IAAA,SAAS,EAAC,gCADX;AAEC,IAAA,KAAK,EAAGnB,EAAE,CAAE,aAAF,CAFX;AAGC,IAAA,KAAK,EAAGkB,YAHT;AAIC,IAAA,OAAO,EAAGiE,SAJX;AAKC,IAAA,QAAQ,EAAKH,KAAF,IACV3C,aAAa,CAAE;AAAEnB,MAAAA,YAAY,EAAE8D,KAAF,aAAEA,KAAF,cAAEA,KAAF,GAAW;AAAzB,KAAF,CANf;AAQC,IAAA,IAAI,EAAGhF,EAAE,CACR,0CADQ;AARV,IADD,CAFF,EAiBG4C,mBAAmB,IACpB,cAAC,SAAD;AAAW,IAAA,KAAK,EAAG5C,EAAE,CAAE,gBAAF;AAArB,KACC,yBAAKQ,kBAAL,CADD,EAEC,cAAC,MAAD;AACC,IAAA,OAAO,EAAC,SADT;AAEC,IAAA,QAAQ,EAAG,CAAEO,gBAFd;AAGC,IAAA,OAAO,EAAG6C;AAHX,KAKG5D,EAAE,CAAE,MAAF,CALL,CAFD,CAlBF,CADD,EA+BG4C,mBAAmB,IACpB,cAAC,cAAD;AACC,IAAA,QAAQ,EAAG,CAAE7B,gBADd;AAEC,IAAA,OAAO,EAAG6C;AAFX,IAhCF,EAqCC,cAAC,YAAD;AACC,IAAA,UAAU,EAAG/C,UADd;AAEC,IAAA,gBAAgB,EAAGC,gBAFpB;AAGC,IAAA,gBAAgB,EAAGC,gBAHpB;AAIC,IAAA,SAAS,EAAGC,SAJb;AAKC,IAAA,KAAK,EAAGC,KALT;AAMC,IAAA,YAAY,EAAGC;AANhB,IArCD,CADD;AAgDA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tgetColorClassName,\n\tstore as blockEditorStore,\n\tWarning,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tToolbarButton,\n\tSpinner,\n\tNotice,\n\tComboboxControl,\n\tButton,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useConvertToNavigationLinks } from './use-convert-to-navigation-links';\nimport {\n\tconvertDescription,\n\tConvertToLinksModal,\n} from './convert-to-links-modal';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\nconst NOOP = () => {};\nfunction BlockContent( {\n\tblockProps,\n\tinnerBlocksProps,\n\thasResolvedPages,\n\tblockList,\n\tpages,\n\tparentPageID,\n} ) {\n\tif ( ! hasResolvedPages ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( pages === null ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t</Notice>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( pages.length === 0 ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Notice status={ 'info' } isDismissible={ false }>\n\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t</Notice>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( blockList.length === 0 ) {\n\t\tconst parentPageDetails = pages.find(\n\t\t\t( page ) => page.id === parentPageID\n\t\t);\n\n\t\tif ( parentPageDetails?.title?.rendered ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: Page title.\n\t\t\t\t\t\t\t__( 'Page List: \"%s\" page has no children.' ),\n\t\t\t\t\t\t\tparentPageDetails.title.rendered\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Warning>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t</Notice>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( pages.length > 0 ) {\n\t\treturn <ul { ...innerBlocksProps }></ul>;\n\t}\n}\n\nfunction ConvertToLinks( { onClick, disabled } ) {\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</BlockControls>\n\t\t\t{ isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default function PageListEdit( {\n\tcontext,\n\tclientId,\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { parentPageID } = attributes;\n\n\tconst { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\tper_page: MAX_PAGE_COUNT,\n\t\t\t_fields: [ 'id', 'link', 'menu_order', 'parent', 'title', 'type' ],\n\t\t\t// TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby\n\t\t\t// values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent\n\t\t\t// sort.\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t}\n\t);\n\n\tconst allowConvertToLinks =\n\t\t'showSubmenuIcon' in context &&\n\t\tpages?.length > 0 &&\n\t\tpages?.length <= MAX_PAGE_COUNT;\n\n\tconst pagesByParentId = useMemo( () => {\n\t\tif ( pages === null ) {\n\t\t\treturn new Map();\n\t\t}\n\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = pages.sort( ( a, b ) => {\n\t\t\tif ( a.menu_order === b.menu_order ) {\n\t\t\t\treturn a.title.rendered.localeCompare( b.title.rendered );\n\t\t\t}\n\t\t\treturn a.menu_order - b.menu_order;\n\t\t} );\n\n\t\treturn sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\t}, [ pages ] );\n\n\tconst convertToNavigationLinks = useConvertToNavigationLinks( {\n\t\tclientId,\n\t\tpages,\n\t\tparentPageID,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName( 'color', context.textColor ) ]:\n\t\t\t\t!! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\tconst getBlockList = ( parentId = parentPageID ) => {\n\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\tif ( ! childPages?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn childPages.reduce( ( template, page ) => {\n\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\tconst pageProps = {\n\t\t\t\tid: page.id,\n\t\t\t\tlabel: page.title?.rendered,\n\t\t\t\ttitle: page.title?.rendered,\n\t\t\t\tlink: page.url,\n\t\t\t\thasChildren,\n\t\t\t};\n\t\t\tlet item = null;\n\t\t\tconst children = getBlockList( page.id );\n\t\t\titem = createBlock( 'core/page-list-item', pageProps, children );\n\t\t\ttemplate.push( item );\n\n\t\t\treturn template;\n\t\t}, [] );\n\t};\n\n\tconst makePagesTree = ( parentId = 0, level = 0 ) => {\n\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\tif ( ! childPages?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn childPages.reduce( ( tree, page ) => {\n\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\tconst item = {\n\t\t\t\tvalue: page.id,\n\t\t\t\tlabel: '— '.repeat( level ) + page.title.rendered,\n\t\t\t\trawName: page.title.rendered,\n\t\t\t};\n\t\t\ttree.push( item );\n\t\t\tif ( hasChildren ) {\n\t\t\t\ttree.push( ...makePagesTree( page.id, level + 1 ) );\n\t\t\t}\n\t\t\treturn tree;\n\t\t}, [] );\n\t};\n\n\tconst pagesTree = useMemo( makePagesTree, [ pagesByParentId ] );\n\n\tconst blockList = useMemo( getBlockList, [\n\t\tpagesByParentId,\n\t\tparentPageID,\n\t] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/page-list-item' ],\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t\ttemplateLock: 'all',\n\t\tonInput: NOOP,\n\t\tonChange: NOOP,\n\t\tvalue: blockList,\n\t} );\n\n\tconst { isNested } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName } = select( blockEditorStore );\n\t\t\tconst blockParents = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/navigation-submenu',\n\t\t\t\ttrue\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tisNested: blockParents.length > 0,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\tsetAttributes( { isNested } );\n\t}, [ isNested ] );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ pagesTree.length > 0 && (\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<ComboboxControl\n\t\t\t\t\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\t\t\t\t\tlabel={ __( 'Parent page' ) }\n\t\t\t\t\t\t\tvalue={ parentPageID }\n\t\t\t\t\t\t\toptions={ pagesTree }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { parentPageID: value ?? 0 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Choose a page to show only its subpages.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t\t{ allowConvertToLinks && (\n\t\t\t\t\t<PanelBody title={ __( 'Edit this menu' ) }>\n\t\t\t\t\t\t<p>{ convertDescription }</p>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tdisabled={ ! hasResolvedPages }\n\t\t\t\t\t\t\tonClick={ convertToNavigationLinks }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<ConvertToLinks\n\t\t\t\t\tdisabled={ ! hasResolvedPages }\n\t\t\t\t\tonClick={ convertToNavigationLinks }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockContent\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinnerBlocksProps={ innerBlocksProps }\n\t\t\t\thasResolvedPages={ hasResolvedPages }\n\t\t\t\tblockList={ blockList }\n\t\t\t\tpages={ pages }\n\t\t\t\tparentPageID={ parentPageID }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["classnames","createBlock","InspectorControls","BlockControls","useBlockProps","useInnerBlocksProps","getColorClassName","store","blockEditorStore","Warning","PanelBody","ToolbarButton","Spinner","Notice","ComboboxControl","Button","__","sprintf","useMemo","useState","useEffect","useCallback","useEntityRecords","useSelect","useDispatch","useConvertToNavigationLinks","convertDescription","ConvertToLinksModal","MAX_PAGE_COUNT","NOOP","BlockContent","blockProps","innerBlocksProps","hasResolvedPages","blockList","pages","parentPageID","length","parentPageDetails","find","page","id","title","rendered","PageListEdit","context","clientId","attributes","setAttributes","isOpen","setOpen","openModal","closeModal","records","hasResolved","per_page","_fields","orderby","order","allowConvertToLinks","pagesByParentId","Map","sortedPages","sort","a","b","menu_order","localeCompare","reduce","accumulator","parent","has","get","push","set","convertToNavigationLinks","className","textColor","backgroundColor","style","color","getBlockList","parentId","childPages","template","hasChildren","pageProps","label","trim","link","url","item","children","makePagesTree","level","tree","value","repeat","rawName","pagesTree","isNested","hasSelectedChild","parentBlock","hasDraggedChild","isChildOfNavigation","select","getBlockParentsByBlockName","hasSelectedInnerBlock","getBlockRootClientId","hasDraggedInnerBlock","blockParents","navigationBlockParents","allowedBlocks","renderAppender","__unstableDisableDropZone","templateLock","onInput","onChange","selectBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tgetColorClassName,\n\tstore as blockEditorStore,\n\tWarning,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tToolbarButton,\n\tSpinner,\n\tNotice,\n\tComboboxControl,\n\tButton,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState, useEffect, useCallback } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useConvertToNavigationLinks } from './use-convert-to-navigation-links';\nimport {\n\tconvertDescription,\n\tConvertToLinksModal,\n} from './convert-to-links-modal';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\nconst NOOP = () => {};\nfunction BlockContent( {\n\tblockProps,\n\tinnerBlocksProps,\n\thasResolvedPages,\n\tblockList,\n\tpages,\n\tparentPageID,\n} ) {\n\tif ( ! hasResolvedPages ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<div className=\"wp-block-page-list__loading-indicator-container\">\n\t\t\t\t\t<Spinner className=\"wp-block-page-list__loading-indicator\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( pages === null ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t</Notice>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( pages.length === 0 ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Notice status={ 'info' } isDismissible={ false }>\n\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t</Notice>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( blockList.length === 0 ) {\n\t\tconst parentPageDetails = pages.find(\n\t\t\t( page ) => page.id === parentPageID\n\t\t);\n\n\t\tif ( parentPageDetails?.title?.rendered ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: Page title.\n\t\t\t\t\t\t\t__( 'Page List: \"%s\" page has no children.' ),\n\t\t\t\t\t\t\tparentPageDetails.title.rendered\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Warning>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t</Notice>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( pages.length > 0 ) {\n\t\treturn <ul { ...innerBlocksProps }></ul>;\n\t}\n}\n\nexport default function PageListEdit( {\n\tcontext,\n\tclientId,\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { parentPageID } = attributes;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = useCallback( () => setOpen( true ), [] );\n\tconst closeModal = () => setOpen( false );\n\n\tconst { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\tper_page: MAX_PAGE_COUNT,\n\t\t\t_fields: [ 'id', 'link', 'menu_order', 'parent', 'title', 'type' ],\n\t\t\t// TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby\n\t\t\t// values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent\n\t\t\t// sort.\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t}\n\t);\n\n\tconst allowConvertToLinks =\n\t\t'showSubmenuIcon' in context &&\n\t\tpages?.length > 0 &&\n\t\tpages?.length <= MAX_PAGE_COUNT;\n\n\tconst pagesByParentId = useMemo( () => {\n\t\tif ( pages === null ) {\n\t\t\treturn new Map();\n\t\t}\n\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = pages.sort( ( a, b ) => {\n\t\t\tif ( a.menu_order === b.menu_order ) {\n\t\t\t\treturn a.title.rendered.localeCompare( b.title.rendered );\n\t\t\t}\n\t\t\treturn a.menu_order - b.menu_order;\n\t\t} );\n\n\t\treturn sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\t}, [ pages ] );\n\n\tconst convertToNavigationLinks = useConvertToNavigationLinks( {\n\t\tclientId,\n\t\tpages,\n\t\tparentPageID,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName( 'color', context.textColor ) ]:\n\t\t\t\t!! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\tconst getBlockList = ( parentId = parentPageID ) => {\n\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\tif ( ! childPages?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn childPages.reduce( ( template, page ) => {\n\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\tconst pageProps = {\n\t\t\t\tid: page.id,\n\t\t\t\tlabel:\n\t\t\t\t\t// translators: displayed when a page has an empty title.\n\t\t\t\t\tpage.title?.rendered?.trim() !== ''\n\t\t\t\t\t\t? page.title?.rendered\n\t\t\t\t\t\t: __( '(no title)' ),\n\t\t\t\ttitle: page.title?.rendered,\n\t\t\t\tlink: page.url,\n\t\t\t\thasChildren,\n\t\t\t};\n\t\t\tlet item = null;\n\t\t\tconst children = getBlockList( page.id );\n\t\t\titem = createBlock( 'core/page-list-item', pageProps, children );\n\t\t\ttemplate.push( item );\n\n\t\t\treturn template;\n\t\t}, [] );\n\t};\n\n\tconst makePagesTree = ( parentId = 0, level = 0 ) => {\n\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\tif ( ! childPages?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn childPages.reduce( ( tree, page ) => {\n\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\tconst item = {\n\t\t\t\tvalue: page.id,\n\t\t\t\tlabel: '— '.repeat( level ) + page.title.rendered,\n\t\t\t\trawName: page.title.rendered,\n\t\t\t};\n\t\t\ttree.push( item );\n\t\t\tif ( hasChildren ) {\n\t\t\t\ttree.push( ...makePagesTree( page.id, level + 1 ) );\n\t\t\t}\n\t\t\treturn tree;\n\t\t}, [] );\n\t};\n\n\tconst pagesTree = useMemo( makePagesTree, [ pagesByParentId ] );\n\n\tconst blockList = useMemo( getBlockList, [\n\t\tpagesByParentId,\n\t\tparentPageID,\n\t] );\n\n\tconst {\n\t\tisNested,\n\t\thasSelectedChild,\n\t\tparentBlock,\n\t\thasDraggedChild,\n\t\tisChildOfNavigation,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasDraggedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockParents = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/navigation-submenu',\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst navigationBlockParents = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/navigation',\n\t\t\t\ttrue\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tisNested: blockParents.length > 0,\n\t\t\t\tisChildOfNavigation: navigationBlockParents.length > 0,\n\t\t\t\thasSelectedChild: hasSelectedInnerBlock( clientId, true ),\n\t\t\t\thasDraggedChild: hasDraggedInnerBlock( clientId, true ),\n\t\t\t\tparentBlock: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/page-list-item' ],\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t\ttemplateLock: isChildOfNavigation ? false : 'all',\n\t\tonInput: NOOP,\n\t\tonChange: NOOP,\n\t\tvalue: blockList,\n\t} );\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( hasSelectedChild || hasDraggedChild ) {\n\t\t\topenModal();\n\t\t\tselectBlock( parentBlock );\n\t\t}\n\t}, [\n\t\thasSelectedChild,\n\t\thasDraggedChild,\n\t\tparentBlock,\n\t\tselectBlock,\n\t\topenModal,\n\t] );\n\n\tuseEffect( () => {\n\t\tsetAttributes( { isNested } );\n\t}, [ isNested, setAttributes ] );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ pagesTree.length > 0 && (\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<ComboboxControl\n\t\t\t\t\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\t\t\t\t\tlabel={ __( 'Parent page' ) }\n\t\t\t\t\t\t\tvalue={ parentPageID }\n\t\t\t\t\t\t\toptions={ pagesTree }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { parentPageID: value ?? 0 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Choose a page to show only its subpages.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t\t{ allowConvertToLinks && (\n\t\t\t\t\t<PanelBody title={ __( 'Edit this menu' ) }>\n\t\t\t\t\t\t<p>{ convertDescription }</p>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tdisabled={ ! hasResolvedPages }\n\t\t\t\t\t\t\tonClick={ convertToNavigationLinks }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Edit' ) }\n\t\t\t\t\t\t\tonClick={ openModal }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t{ isOpen && (\n\t\t\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\t\t\tonClick={ convertToNavigationLinks }\n\t\t\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\t\t\tdisabled={ ! hasResolvedPages }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<BlockContent\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinnerBlocksProps={ innerBlocksProps }\n\t\t\t\thasResolvedPages={ hasResolvedPages }\n\t\t\t\tblockList={ blockList }\n\t\t\t\tpages={ pages }\n\t\t\t\tparentPageID={ parentPageID }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -41,7 +41,8 @@ export default function PageListItemEdit(_ref) {
|
|
|
41
41
|
id,
|
|
42
42
|
label,
|
|
43
43
|
link,
|
|
44
|
-
hasChildren
|
|
44
|
+
hasChildren,
|
|
45
|
+
title
|
|
45
46
|
} = attributes;
|
|
46
47
|
const isNavigationChild = ('showSubmenuIcon' in context);
|
|
47
48
|
const frontPageId = useFrontPageId();
|
|
@@ -70,7 +71,7 @@ export default function PageListItemEdit(_ref) {
|
|
|
70
71
|
'wp-block-navigation-item__content': isNavigationChild
|
|
71
72
|
}),
|
|
72
73
|
href: link
|
|
73
|
-
}, decodeEntities(
|
|
74
|
+
}, decodeEntities(title)), hasChildren && createElement(Fragment, null, !context.openSubmenusOnClick && context.showSubmenuIcon && createElement("button", {
|
|
74
75
|
className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
|
|
75
76
|
"aria-expanded": "false"
|
|
76
77
|
}, createElement(ItemSubmenuIcon, null)), createElement("ul", innerBlocksProps)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/page-list-item/edit.js"],"names":["classnames","useBlockProps","useInnerBlocksProps","useSelect","store","coreStore","decodeEntities","ItemSubmenuIcon","getColors","getNavigationChildBlockProps","useFrontPageId","select","canReadSettings","canUser","undefined","site","getEntityRecord","show_on_front","page_on_front","PageListItemEdit","context","attributes","id","label","link","hasChildren","isNavigationChild","frontPageId","innerBlocksColors","navigationChildBlockProps","blockProps","className","innerBlocksProps","openSubmenusOnClick","showSubmenuIcon"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/page-list-item/edit.js"],"names":["classnames","useBlockProps","useInnerBlocksProps","useSelect","store","coreStore","decodeEntities","ItemSubmenuIcon","getColors","getNavigationChildBlockProps","useFrontPageId","select","canReadSettings","canUser","undefined","site","getEntityRecord","show_on_front","page_on_front","PageListItemEdit","context","attributes","id","label","link","hasChildren","title","isNavigationChild","frontPageId","innerBlocksColors","navigationChildBlockProps","blockProps","className","innerBlocksProps","openSubmenusOnClick","showSubmenuIcon"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\n\nfunction useFrontPageId() {\n\treturn useSelect( ( select ) => {\n\t\tconst canReadSettings = select( coreStore ).canUser(\n\t\t\t'read',\n\t\t\t'settings'\n\t\t);\n\t\tif ( ! canReadSettings ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst site = select( coreStore ).getEntityRecord( 'root', 'site' );\n\t\treturn site?.show_on_front === 'page' && site?.page_on_front;\n\t}, [] );\n}\n\nexport default function PageListItemEdit( { context, attributes } ) {\n\tconst { id, label, link, hasChildren, title } = attributes;\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst frontPageId = useFrontPageId();\n\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst navigationChildBlockProps =\n\t\tgetNavigationChildBlockProps( innerBlocksColors );\n\tconst blockProps = useBlockProps( navigationChildBlockProps, {\n\t\tclassName: 'wp-block-pages-list__item',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps );\n\n\treturn (\n\t\t<li\n\t\t\tkey={ id }\n\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t'has-child': hasChildren,\n\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t! context.openSubmenusOnClick && context.showSubmenuIcon,\n\t\t\t\t'menu-item-home': id === frontPageId,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t<>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ decodeEntities( label ) }\n\t\t\t\t\t</button>\n\t\t\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item__link', {\n\t\t\t\t\t\t'wp-block-navigation-item__content': isNavigationChild,\n\t\t\t\t\t} ) }\n\t\t\t\t\thref={ link }\n\t\t\t\t>\n\t\t\t\t\t{ decodeEntities( title ) }\n\t\t\t\t</a>\n\t\t\t) }\n\t\t\t{ hasChildren && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon && (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\"\n\t\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t<ul { ...innerBlocksProps }></ul>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n"]}
|
|
@@ -57,8 +57,13 @@ function Content(props) {
|
|
|
57
57
|
postId
|
|
58
58
|
} = {}
|
|
59
59
|
} = props;
|
|
60
|
-
const isDescendentOfQueryLoop = Number.isFinite(queryId);
|
|
61
60
|
const userCanEdit = useCanEditEntity('postType', postType, postId);
|
|
61
|
+
|
|
62
|
+
if (userCanEdit === undefined) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const isDescendentOfQueryLoop = Number.isFinite(queryId);
|
|
62
67
|
const isEditable = userCanEdit && !isDescendentOfQueryLoop;
|
|
63
68
|
return isEditable ? createElement(EditableContent, props) : createElement(ReadOnlyContent, {
|
|
64
69
|
userCanEdit: userCanEdit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/post-content/edit.js"],"names":["__","useBlockProps","useInnerBlocksProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","Warning","useEntityProp","useEntityBlockEditor","useCanEditEntity","ReadOnlyContent","userCanEdit","postType","postId","content","blockProps","protected","__html","rendered","EditableContent","context","blocks","onInput","onChange","id","props","className","value","Content","queryId","isDescendentOfQueryLoop","Number","isFinite","isEditable","Placeholder","layoutClassNames","RecursionError","PostContentEdit","attributes","__unstableLayoutClassNames","contextPostId","contextPostType","layout","hasAlreadyRendered"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SACCC,aADD,EAECC,mBAFD,EAGCC,+BAA+B,IAAIC,iBAHpC,EAICC,6BAA6B,IAAIC,eAJlC,EAKCC,OALD,QAMO,yBANP;AAOA,SAASC,aAAT,EAAwBC,oBAAxB,QAAoD,sBAApD;AAEA;AACA;AACA;;AACA,SAASC,gBAAT,QAAiC,gBAAjC;;AAEA,SAASC,eAAT,OAA8D;AAAA,MAApC;AAAEC,IAAAA,WAAF;AAAeC,IAAAA,QAAf;AAAyBC,IAAAA;AAAzB,GAAoC;AAC7D,QAAM,IAAMC,OAAN,IAAkBP,aAAa,CACpC,UADoC,EAEpCK,QAFoC,EAGpC,SAHoC,EAIpCC,MAJoC,CAArC;AAMA,QAAME,UAAU,GAAGf,aAAa,EAAhC;AACA,SAAOc,OAAO,SAAP,IAAAA,OAAO,WAAP,IAAAA,OAAO,CAAEE,SAAT,IAAsB,CAAEL,WAAxB,GACN,qBAAUI,UAAV,EACC,cAAC,OAAD,QAAWhB,EAAE,CAAE,qCAAF,CAAb,CADD,CADM,GAKN,kCACMgB,UADN;AAEC,IAAA,uBAAuB,EAAG;AAAEE,MAAAA,MAAM,EAAEH,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEI;AAAnB;AAF3B,KALD;AAUA;;AAED,SAASC,eAAT,QAA6C;AAAA,MAAnB;AAAEC,IAAAA,OAAO,GAAG;AAAZ,GAAmB;AAC5C,QAAM;AAAER,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAuBO,OAA7B;AAEA,QAAM,CAAEC,MAAF,EAAUC,OAAV,EAAmBC,QAAnB,IAAgCf,oBAAoB,CACzD,UADyD,EAEzDI,QAFyD,EAGzD;AAAEY,IAAAA,EAAE,EAAEX;AAAN,GAHyD,CAA1D;AAMA,QAAMY,KAAK,GAAGxB,mBAAmB,CAChCD,aAAa,CAAE;AAAE0B,IAAAA,SAAS,EAAE;AAAb,GAAF,CADmB,EAEhC;AACCC,IAAAA,KAAK,EAAEN,MADR;AAECC,IAAAA,OAFD;AAGCC,IAAAA;AAHD,GAFgC,CAAjC;AAQA,SAAO,qBAAUE,KAAV,CAAP;AACA;;AAED,SAASG,OAAT,CAAkBH,KAAlB,EAA0B;AACzB,QAAM;AAAEL,IAAAA,OAAO,EAAE;AAAES,MAAAA,OAAF;AAAWjB,MAAAA,QAAX;AAAqBC,MAAAA;AAArB,QAAgC;AAA3C,MAAkDY,KAAxD;AACA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/post-content/edit.js"],"names":["__","useBlockProps","useInnerBlocksProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","Warning","useEntityProp","useEntityBlockEditor","useCanEditEntity","ReadOnlyContent","userCanEdit","postType","postId","content","blockProps","protected","__html","rendered","EditableContent","context","blocks","onInput","onChange","id","props","className","value","Content","queryId","undefined","isDescendentOfQueryLoop","Number","isFinite","isEditable","Placeholder","layoutClassNames","RecursionError","PostContentEdit","attributes","__unstableLayoutClassNames","contextPostId","contextPostType","layout","hasAlreadyRendered"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nfunction ReadOnlyContent( { userCanEdit, postType, postId } ) {\n\tconst [ , , content ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\tconst blockProps = useBlockProps();\n\treturn content?.protected && ! userCanEdit ? (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>{ __( 'This content is password protected.' ) }</Warning>\n\t\t</div>\n\t) : (\n\t\t<div\n\t\t\t{ ...blockProps }\n\t\t\tdangerouslySetInnerHTML={ { __html: content?.rendered } }\n\t\t></div>\n\t);\n}\n\nfunction EditableContent( { context = {} } ) {\n\tconst { postType, postId } = context;\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpostType,\n\t\t{ id: postId }\n\t);\n\n\tconst props = useInnerBlocksProps(\n\t\tuseBlockProps( { className: 'entry-content' } ),\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t}\n\t);\n\treturn <div { ...props } />;\n}\n\nfunction Content( props ) {\n\tconst { context: { queryId, postType, postId } = {} } = props;\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tif ( userCanEdit === undefined ) {\n\t\treturn null;\n\t}\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst isEditable = userCanEdit && ! isDescendentOfQueryLoop;\n\n\treturn isEditable ? (\n\t\t<EditableContent { ...props } />\n\t) : (\n\t\t<ReadOnlyContent\n\t\t\tuserCanEdit={ userCanEdit }\n\t\t\tpostType={ postType }\n\t\t\tpostId={ postId }\n\t\t/>\n\t);\n}\n\nfunction Placeholder( { layoutClassNames } ) {\n\tconst blockProps = useBlockProps( { className: layoutClassNames } );\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'This is the Post Content block, it will display all the blocks in any single post or page.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'That might be a simple arrangement like consecutive paragraphs in a blog post, or a more elaborate composition that includes image galleries, videos, tables, columns, and any other block types.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'If there are any Custom Post Types registered at your site, the Post Content block can display the contents of those entries as well.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n\nfunction RecursionError() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\nexport default function PostContentEdit( {\n\tcontext,\n\tattributes,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst { postId: contextPostId, postType: contextPostType } = context;\n\tconst { layout = {} } = attributes;\n\tconst hasAlreadyRendered = useHasRecursion( contextPostId );\n\n\tif ( contextPostId && contextPostType && hasAlreadyRendered ) {\n\t\treturn <RecursionError />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ contextPostId }>\n\t\t\t{ contextPostId && contextPostType ? (\n\t\t\t\t<Content context={ context } layout={ layout } />\n\t\t\t) : (\n\t\t\t\t<Placeholder layoutClassNames={ layoutClassNames } />\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"]}
|
|
@@ -50,10 +50,11 @@ export default function PostDateEdit(_ref) {
|
|
|
50
50
|
const [siteTimeFormat = dateSettings.formats.time] = useEntityProp('root', 'site', 'time_format');
|
|
51
51
|
const [date, setDate] = useEntityProp('postType', postTypeSlug, displayType, postId);
|
|
52
52
|
const postType = useSelect(select => postTypeSlug ? select(coreStore).getPostType(postTypeSlug) : null, [postTypeSlug]);
|
|
53
|
+
const dateLabel = displayType === 'date' ? __('Post Date') : __('Post Modified Date');
|
|
53
54
|
let postDate = date ? createElement("time", {
|
|
54
55
|
dateTime: dateI18n('c', date),
|
|
55
56
|
ref: setPopoverAnchor
|
|
56
|
-
}, dateI18n(format || siteFormat, date)) :
|
|
57
|
+
}, dateI18n(format || siteFormat, date)) : dateLabel;
|
|
57
58
|
|
|
58
59
|
if (isLink && date) {
|
|
59
60
|
postDate = createElement("a", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/post-date/edit.js"],"names":["classnames","useEntityProp","store","coreStore","useMemo","useState","dateI18n","getSettings","getDateSettings","AlignmentControl","BlockControls","InspectorControls","useBlockProps","__experimentalDateFormatPicker","DateFormatPicker","__experimentalPublishDateTimePicker","PublishDateTimePicker","Dropdown","ToolbarGroup","ToolbarButton","ToggleControl","PanelBody","__","sprintf","edit","DOWN","useSelect","PostDateEdit","attributes","textAlign","format","isLink","displayType","context","postId","postType","postTypeSlug","queryId","setAttributes","blockProps","className","popoverAnchor","setPopoverAnchor","popoverProps","anchor","isDescendentOfQueryLoop","Number","isFinite","dateSettings","siteFormat","formats","date","siteTimeFormat","time","setDate","select","getPostType","postDate","event","preventDefault","nextAlign","onClose","is12HourFormat","isOpen","onToggle","openOnArrowDown","keyCode","nextFormat","labels","singular_name","toLowerCase","value","test"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { dateI18n, getSettings as getDateSettings } from '@wordpress/date';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { edit } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect } from '@wordpress/data';\n\nexport default function PostDateEdit( {\n\tattributes: { textAlign, format, isLink, displayType },\n\tcontext: { postId, postType: postTypeSlug, queryId },\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\tconst [ siteFormat = dateSettings.formats.date ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'date_format'\n\t);\n\tconst [ siteTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\tconst [ date, setDate ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\tdisplayType,\n\t\tpostId\n\t);\n\n\tconst postType = useSelect(\n\t\t( select ) =>\n\t\t\tpostTypeSlug\n\t\t\t\t? select( coreStore ).getPostType( postTypeSlug )\n\t\t\t\t: null,\n\t\t[ postTypeSlug ]\n\t);\n\n\tlet postDate = date ? (\n\t\t<time dateTime={ dateI18n( 'c', date ) } ref={ setPopoverAnchor }>\n\t\t\t{ dateI18n( format || siteFormat, date ) }\n\t\t</time>\n\t) : (\n\t\t__( 'Post Date' )\n\t);\n\n\tif ( isLink && date ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ date && ! isDescendentOfQueryLoop && (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\tcurrentDate={ date }\n\t\t\t\t\t\t\t\t\tonChange={ setDate }\n\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display last modified date' ) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayType: value ? 'modified' : 'date',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ displayType === 'modified' }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/post-date/edit.js"],"names":["classnames","useEntityProp","store","coreStore","useMemo","useState","dateI18n","getSettings","getDateSettings","AlignmentControl","BlockControls","InspectorControls","useBlockProps","__experimentalDateFormatPicker","DateFormatPicker","__experimentalPublishDateTimePicker","PublishDateTimePicker","Dropdown","ToolbarGroup","ToolbarButton","ToggleControl","PanelBody","__","sprintf","edit","DOWN","useSelect","PostDateEdit","attributes","textAlign","format","isLink","displayType","context","postId","postType","postTypeSlug","queryId","setAttributes","blockProps","className","popoverAnchor","setPopoverAnchor","popoverProps","anchor","isDescendentOfQueryLoop","Number","isFinite","dateSettings","siteFormat","formats","date","siteTimeFormat","time","setDate","select","getPostType","dateLabel","postDate","event","preventDefault","nextAlign","onClose","is12HourFormat","isOpen","onToggle","openOnArrowDown","keyCode","nextFormat","labels","singular_name","toLowerCase","value","test"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { dateI18n, getSettings as getDateSettings } from '@wordpress/date';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { edit } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect } from '@wordpress/data';\n\nexport default function PostDateEdit( {\n\tattributes: { textAlign, format, isLink, displayType },\n\tcontext: { postId, postType: postTypeSlug, queryId },\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\tconst [ siteFormat = dateSettings.formats.date ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'date_format'\n\t);\n\tconst [ siteTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\tconst [ date, setDate ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\tdisplayType,\n\t\tpostId\n\t);\n\n\tconst postType = useSelect(\n\t\t( select ) =>\n\t\t\tpostTypeSlug\n\t\t\t\t? select( coreStore ).getPostType( postTypeSlug )\n\t\t\t\t: null,\n\t\t[ postTypeSlug ]\n\t);\n\n\tconst dateLabel =\n\t\tdisplayType === 'date' ? __( 'Post Date' ) : __( 'Post Modified Date' );\n\n\tlet postDate = date ? (\n\t\t<time dateTime={ dateI18n( 'c', date ) } ref={ setPopoverAnchor }>\n\t\t\t{ dateI18n( format || siteFormat, date ) }\n\t\t</time>\n\t) : (\n\t\tdateLabel\n\t);\n\n\tif ( isLink && date ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ date && ! isDescendentOfQueryLoop && (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\tcurrentDate={ date }\n\t\t\t\t\t\t\t\t\tonChange={ setDate }\n\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display last modified date' ) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayType: value ? 'modified' : 'date',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ displayType === 'modified' }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"]}
|
|
@@ -65,6 +65,7 @@ const metadata = {
|
|
|
65
65
|
};
|
|
66
66
|
import edit from './edit';
|
|
67
67
|
import deprecated from './deprecated';
|
|
68
|
+
import variations from './variations';
|
|
68
69
|
const {
|
|
69
70
|
name
|
|
70
71
|
} = metadata;
|
|
@@ -72,7 +73,8 @@ export { metadata, name };
|
|
|
72
73
|
export const settings = {
|
|
73
74
|
icon,
|
|
74
75
|
edit,
|
|
75
|
-
deprecated
|
|
76
|
+
deprecated,
|
|
77
|
+
variations
|
|
76
78
|
};
|
|
77
79
|
export const init = () => initBlock({
|
|
78
80
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/post-date/index.js"],"names":["postDate","icon","initBlock","edit","deprecated","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,IAAIC,IAArB,QAAiC,kBAAjC;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/post-date/index.js"],"names":["postDate","icon","initBlock","edit","deprecated","variations","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,IAAIC,IAArB,QAAiC,kBAAjC;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBP,EAAAA,IADuB;AAEvBE,EAAAA,IAFuB;AAGvBC,EAAAA,UAHuB;AAIvBC,EAAAA;AAJuB,CAAjB;AAOP,OAAO,MAAMI,IAAI,GAAG,MAAMP,SAAS,CAAE;AAAEI,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postDate as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { postDate } from '@wordpress/icons';
|
|
6
|
+
const variations = [{
|
|
7
|
+
name: 'post-date-modified',
|
|
8
|
+
title: __('Post Modified Date'),
|
|
9
|
+
description: __("Display a post's last updated date."),
|
|
10
|
+
attributes: {
|
|
11
|
+
displayType: 'modified'
|
|
12
|
+
},
|
|
13
|
+
scope: ['block', 'inserter'],
|
|
14
|
+
isActive: blockAttributes => blockAttributes.displayType === 'modified',
|
|
15
|
+
icon: postDate
|
|
16
|
+
}];
|
|
17
|
+
export default variations;
|
|
18
|
+
//# sourceMappingURL=variations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/post-date/variations.js"],"names":["__","postDate","variations","name","title","description","attributes","displayType","scope","isActive","blockAttributes","icon"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,QAAyB,kBAAzB;AAEA,MAAMC,UAAU,GAAG,CAClB;AACCC,EAAAA,IAAI,EAAE,oBADP;AAECC,EAAAA,KAAK,EAAEJ,EAAE,CAAE,oBAAF,CAFV;AAGCK,EAAAA,WAAW,EAAEL,EAAE,CAAE,qCAAF,CAHhB;AAICM,EAAAA,UAAU,EAAE;AAAEC,IAAAA,WAAW,EAAE;AAAf,GAJb;AAKCC,EAAAA,KAAK,EAAE,CAAE,OAAF,EAAW,UAAX,CALR;AAMCC,EAAAA,QAAQ,EAAIC,eAAF,IACTA,eAAe,CAACH,WAAhB,KAAgC,UAPlC;AAQCI,EAAAA,IAAI,EAAEV;AARP,CADkB,CAAnB;AAaA,eAAeC,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { postDate } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'post-date-modified',\n\t\ttitle: __( 'Post Modified Date' ),\n\t\tdescription: __( \"Display a post's last updated date.\" ),\n\t\tattributes: { displayType: 'modified' },\n\t\tscope: [ 'block', 'inserter' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.displayType === 'modified',\n\t\ticon: postDate,\n\t},\n];\n\nexport default variations;\n"]}
|
|
@@ -8,16 +8,18 @@ import classnames from 'classnames';
|
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { useEntityProp } from '@wordpress/core-data';
|
|
11
|
+
import { useEntityProp, store as coreStore } from '@wordpress/core-data';
|
|
12
12
|
import { useMemo } from '@wordpress/element';
|
|
13
13
|
import { AlignmentToolbar, BlockControls, InspectorControls, RichText, Warning, useBlockProps } from '@wordpress/block-editor';
|
|
14
14
|
import { PanelBody, ToggleControl, RangeControl } from '@wordpress/components';
|
|
15
15
|
import { __, _x } from '@wordpress/i18n';
|
|
16
|
+
import { useSelect } from '@wordpress/data';
|
|
16
17
|
/**
|
|
17
18
|
* Internal dependencies
|
|
18
19
|
*/
|
|
19
20
|
|
|
20
21
|
import { useCanEditEntity } from '../utils/hooks';
|
|
22
|
+
const ELLIPSIS = '…';
|
|
21
23
|
export default function PostExcerptEditor(_ref) {
|
|
22
24
|
let {
|
|
23
25
|
attributes: {
|
|
@@ -36,11 +38,37 @@ export default function PostExcerptEditor(_ref) {
|
|
|
36
38
|
} = _ref;
|
|
37
39
|
const isDescendentOfQueryLoop = Number.isFinite(queryId);
|
|
38
40
|
const userCanEdit = useCanEditEntity('postType', postType, postId);
|
|
39
|
-
const isEditable = userCanEdit && !isDescendentOfQueryLoop;
|
|
40
41
|
const [rawExcerpt, setExcerpt, {
|
|
41
42
|
rendered: renderedExcerpt,
|
|
42
43
|
protected: isProtected
|
|
43
44
|
} = {}] = useEntityProp('postType', postType, 'excerpt', postId);
|
|
45
|
+
/**
|
|
46
|
+
* Check if the post type supports excerpts.
|
|
47
|
+
* Add an exception and return early for the "page" post type,
|
|
48
|
+
* which is registered without support for the excerpt UI,
|
|
49
|
+
* but supports saving the excerpt to the database.
|
|
50
|
+
* See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65
|
|
51
|
+
* Without this exception, users that have excerpts saved to the database will
|
|
52
|
+
* not be able to edit the excerpts.
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
const postTypeSupportsExcerpts = useSelect(select => {
|
|
56
|
+
var _select$getPostType;
|
|
57
|
+
|
|
58
|
+
if (postType === 'page') {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return !!((_select$getPostType = select(coreStore).getPostType(postType)) !== null && _select$getPostType !== void 0 && _select$getPostType.supports.excerpt);
|
|
63
|
+
}, [postType]);
|
|
64
|
+
/**
|
|
65
|
+
* The excerpt is editable if:
|
|
66
|
+
* - The user can edit the post
|
|
67
|
+
* - It is not a descendent of a Query Loop block
|
|
68
|
+
* - The post type supports excerpts
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
const isEditable = userCanEdit && !isDescendentOfQueryLoop && postTypeSupportsExcerpts;
|
|
44
72
|
const blockProps = useBlockProps({
|
|
45
73
|
className: classnames({
|
|
46
74
|
[`has-text-align-${textAlign}`]: textAlign
|
|
@@ -98,11 +126,11 @@ export default function PostExcerptEditor(_ref) {
|
|
|
98
126
|
* the raw and the rendered excerpt depending on which is being used.
|
|
99
127
|
*/
|
|
100
128
|
|
|
101
|
-
const rawOrRenderedExcerpt =
|
|
129
|
+
const rawOrRenderedExcerpt = (rawExcerpt || strippedRenderedExcerpt).trim();
|
|
102
130
|
let trimmedExcerpt = '';
|
|
103
131
|
|
|
104
132
|
if (wordCountType === 'words') {
|
|
105
|
-
trimmedExcerpt = rawOrRenderedExcerpt.
|
|
133
|
+
trimmedExcerpt = rawOrRenderedExcerpt.split(' ', excerptLength).join(' ');
|
|
106
134
|
} else if (wordCountType === 'characters_excluding_spaces') {
|
|
107
135
|
/*
|
|
108
136
|
* 1. Split the excerpt at the character limit,
|
|
@@ -112,23 +140,23 @@ export default function PostExcerptEditor(_ref) {
|
|
|
112
140
|
* 3. Add the number to the length of the visible excerpt,
|
|
113
141
|
* so that the spaces are excluded from the word count.
|
|
114
142
|
*/
|
|
115
|
-
const excerptWithSpaces = rawOrRenderedExcerpt.
|
|
143
|
+
const excerptWithSpaces = rawOrRenderedExcerpt.split('', excerptLength).join('');
|
|
116
144
|
const numberOfSpaces = excerptWithSpaces.length - excerptWithSpaces.replaceAll(' ', '').length;
|
|
117
|
-
trimmedExcerpt = rawOrRenderedExcerpt.
|
|
145
|
+
trimmedExcerpt = rawOrRenderedExcerpt.split('', excerptLength + numberOfSpaces).join('');
|
|
118
146
|
} else if (wordCountType === 'characters_including_spaces') {
|
|
119
|
-
trimmedExcerpt = rawOrRenderedExcerpt.
|
|
147
|
+
trimmedExcerpt = rawOrRenderedExcerpt.split('', excerptLength).join('');
|
|
120
148
|
}
|
|
121
149
|
|
|
122
|
-
|
|
150
|
+
const isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;
|
|
123
151
|
const excerptContent = isEditable ? createElement(RichText, {
|
|
124
152
|
className: excerptClassName,
|
|
125
153
|
"aria-label": __('Post excerpt text'),
|
|
126
|
-
value: isSelected ? rawOrRenderedExcerpt : (
|
|
154
|
+
value: isSelected ? rawOrRenderedExcerpt : (!isTrimmed ? rawOrRenderedExcerpt : trimmedExcerpt + ELLIPSIS) || __('No post excerpt found'),
|
|
127
155
|
onChange: setExcerpt,
|
|
128
156
|
tagName: "p"
|
|
129
157
|
}) : createElement("p", {
|
|
130
158
|
className: excerptClassName
|
|
131
|
-
},
|
|
159
|
+
}, !isTrimmed ? rawOrRenderedExcerpt || __('No post excerpt found') : trimmedExcerpt + ELLIPSIS);
|
|
132
160
|
return createElement(Fragment, null, createElement(BlockControls, null, createElement(AlignmentToolbar, {
|
|
133
161
|
value: textAlign,
|
|
134
162
|
onChange: newAlign => setAttributes({
|
|
@@ -150,7 +178,6 @@ export default function PostExcerptEditor(_ref) {
|
|
|
150
178
|
setAttributes({
|
|
151
179
|
excerptLength: value
|
|
152
180
|
});
|
|
153
|
-
setExcerpt();
|
|
154
181
|
},
|
|
155
182
|
min: "10",
|
|
156
183
|
max: "100"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/post-excerpt/edit.js"],"names":["classnames","useEntityProp","useMemo","AlignmentToolbar","BlockControls","InspectorControls","RichText","Warning","useBlockProps","PanelBody","ToggleControl","RangeControl","__","_x","useCanEditEntity","PostExcerptEditor","attributes","textAlign","moreText","showMoreOnNewLine","excerptLength","setAttributes","isSelected","context","postId","postType","queryId","isDescendentOfQueryLoop","Number","isFinite","userCanEdit","isEditable","rawExcerpt","setExcerpt","rendered","renderedExcerpt","protected","isProtected","blockProps","className","wordCountType","strippedRenderedExcerpt","document","window","DOMParser","parseFromString","body","textContent","innerText","newAlign","readMoreLink","newMoreText","excerptClassName","rawOrRenderedExcerpt","trimmedExcerpt","trim","split","join","excerptWithSpaces","numberOfSpaces","length","replaceAll","excerptContent","newShowMoreOnNewLine","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentToolbar,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, ToggleControl, RangeControl } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine, excerptLength },\n\tsetAttributes,\n\tisSelected,\n\tcontext: { postId, postType, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst isEditable = userCanEdit && ! isDescendentOfQueryLoop;\n\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\t/**\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\t/**\n\t * When excerpt is editable, strip the html tags from\n\t * rendered excerpt. This will be used if the entity's\n\t * excerpt has been produced from the content.\n\t */\n\tconst strippedRenderedExcerpt = useMemo( () => {\n\t\tif ( ! renderedExcerpt ) return '';\n\t\tconst document = new window.DOMParser().parseFromString(\n\t\t\trenderedExcerpt,\n\t\t\t'text/html'\n\t\t);\n\t\treturn document.body.textContent || document.body.innerText || '';\n\t}, [ renderedExcerpt ] );\n\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is the Post Excerpt block, it will display the excerpt from single posts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'If there are any Custom Post Types with support for excerpts, the Post Excerpt block can display the excerpts of those entries as well.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\tif ( isProtected && ! userCanEdit ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'There is no excerpt because this is a protected post.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst readMoreLink = (\n\t\t<RichText\n\t\t\tclassName=\"wp-block-post-excerpt__more-link\"\n\t\t\ttagName=\"a\"\n\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\tplaceholder={ __( 'Add \"read more\" link text' ) }\n\t\t\tvalue={ moreText }\n\t\t\tonChange={ ( newMoreText ) =>\n\t\t\t\tsetAttributes( { moreText: newMoreText } )\n\t\t\t}\n\t\t\twithoutInteractiveFormatting={ true }\n\t\t/>\n\t);\n\tconst excerptClassName = classnames( 'wp-block-post-excerpt__excerpt', {\n\t\t'is-inline': ! showMoreOnNewLine,\n\t} );\n\n\t/**\n\t * The excerpt length setting needs to be applied to both\n\t * the raw and the rendered excerpt depending on which is being used.\n\t */\n\tconst rawOrRenderedExcerpt = !! renderedExcerpt\n\t\t? strippedRenderedExcerpt\n\t\t: rawExcerpt;\n\n\tlet trimmedExcerpt = '';\n\tif ( wordCountType === 'words' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.trim()\n\t\t\t.split( ' ', excerptLength )\n\t\t\t.join( ' ' );\n\t} else if ( wordCountType === 'characters_excluding_spaces' ) {\n\t\t/*\n\t\t * 1. Split the excerpt at the character limit,\n\t\t * then join the substrings back into one string.\n\t\t * 2. Count the number of spaces in the excerpt\n\t\t * by comparing the lengths of the string with and without spaces.\n\t\t * 3. Add the number to the length of the visible excerpt,\n\t\t * so that the spaces are excluded from the word count.\n\t\t */\n\t\tconst excerptWithSpaces = rawOrRenderedExcerpt\n\t\t\t.trim()\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\n\t\tconst numberOfSpaces =\n\t\t\texcerptWithSpaces.length -\n\t\t\texcerptWithSpaces.replaceAll( ' ', '' ).length;\n\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.trim()\n\t\t\t.split( '', excerptLength + numberOfSpaces )\n\t\t\t.join( '' );\n\t} else if ( wordCountType === 'characters_including_spaces' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt.trim().split( '', excerptLength );\n\t}\n\n\ttrimmedExcerpt = trimmedExcerpt + '...';\n\n\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Post excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\tisSelected\n\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t: ( trimmedExcerpt !== '...' ? trimmedExcerpt : '' ) ||\n\t\t\t\t\t __( 'No post excerpt found' )\n\t\t\t}\n\t\t\tonChange={ setExcerpt }\n\t\t\ttagName=\"p\"\n\t\t/>\n\t) : (\n\t\t<p className={ excerptClassName }>\n\t\t\t{ trimmedExcerpt !== '...'\n\t\t\t\t? trimmedExcerpt\n\t\t\t\t: __( 'No post excerpt found' ) }\n\t\t</p>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t\tsetExcerpt();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ excerptContent }\n\t\t\t\t{ ! showMoreOnNewLine && ' ' }\n\t\t\t\t{ showMoreOnNewLine ? (\n\t\t\t\t\t<p className=\"wp-block-post-excerpt__more-text\">\n\t\t\t\t\t\t{ readMoreLink }\n\t\t\t\t\t</p>\n\t\t\t\t) : (\n\t\t\t\t\treadMoreLink\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/post-excerpt/edit.js"],"names":["classnames","useEntityProp","store","coreStore","useMemo","AlignmentToolbar","BlockControls","InspectorControls","RichText","Warning","useBlockProps","PanelBody","ToggleControl","RangeControl","__","_x","useSelect","useCanEditEntity","ELLIPSIS","PostExcerptEditor","attributes","textAlign","moreText","showMoreOnNewLine","excerptLength","setAttributes","isSelected","context","postId","postType","queryId","isDescendentOfQueryLoop","Number","isFinite","userCanEdit","rawExcerpt","setExcerpt","rendered","renderedExcerpt","protected","isProtected","postTypeSupportsExcerpts","select","getPostType","supports","excerpt","isEditable","blockProps","className","wordCountType","strippedRenderedExcerpt","document","window","DOMParser","parseFromString","body","textContent","innerText","newAlign","readMoreLink","newMoreText","excerptClassName","rawOrRenderedExcerpt","trim","trimmedExcerpt","split","join","excerptWithSpaces","numberOfSpaces","length","replaceAll","isTrimmed","excerptContent","newShowMoreOnNewLine","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentToolbar,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, ToggleControl, RangeControl } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nconst ELLIPSIS = '…';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine, excerptLength },\n\tsetAttributes,\n\tisSelected,\n\tcontext: { postId, postType, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\n\t/**\n\t * Check if the post type supports excerpts.\n\t * Add an exception and return early for the \"page\" post type,\n\t * which is registered without support for the excerpt UI,\n\t * but supports saving the excerpt to the database.\n\t * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65\n\t * Without this exception, users that have excerpts saved to the database will\n\t * not be able to edit the excerpts.\n\t */\n\tconst postTypeSupportsExcerpts = useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn !! select( coreStore ).getPostType( postType )?.supports\n\t\t\t\t.excerpt;\n\t\t},\n\t\t[ postType ]\n\t);\n\n\t/**\n\t * The excerpt is editable if:\n\t * - The user can edit the post\n\t * - It is not a descendent of a Query Loop block\n\t * - The post type supports excerpts\n\t */\n\tconst isEditable =\n\t\tuserCanEdit && ! isDescendentOfQueryLoop && postTypeSupportsExcerpts;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\t/**\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\t/**\n\t * When excerpt is editable, strip the html tags from\n\t * rendered excerpt. This will be used if the entity's\n\t * excerpt has been produced from the content.\n\t */\n\tconst strippedRenderedExcerpt = useMemo( () => {\n\t\tif ( ! renderedExcerpt ) return '';\n\t\tconst document = new window.DOMParser().parseFromString(\n\t\t\trenderedExcerpt,\n\t\t\t'text/html'\n\t\t);\n\t\treturn document.body.textContent || document.body.innerText || '';\n\t}, [ renderedExcerpt ] );\n\n\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is the Post Excerpt block, it will display the excerpt from single posts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'If there are any Custom Post Types with support for excerpts, the Post Excerpt block can display the excerpts of those entries as well.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\tif ( isProtected && ! userCanEdit ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'There is no excerpt because this is a protected post.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst readMoreLink = (\n\t\t<RichText\n\t\t\tclassName=\"wp-block-post-excerpt__more-link\"\n\t\t\ttagName=\"a\"\n\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\tplaceholder={ __( 'Add \"read more\" link text' ) }\n\t\t\tvalue={ moreText }\n\t\t\tonChange={ ( newMoreText ) =>\n\t\t\t\tsetAttributes( { moreText: newMoreText } )\n\t\t\t}\n\t\t\twithoutInteractiveFormatting={ true }\n\t\t/>\n\t);\n\tconst excerptClassName = classnames( 'wp-block-post-excerpt__excerpt', {\n\t\t'is-inline': ! showMoreOnNewLine,\n\t} );\n\n\t/**\n\t * The excerpt length setting needs to be applied to both\n\t * the raw and the rendered excerpt depending on which is being used.\n\t */\n\tconst rawOrRenderedExcerpt = (\n\t\trawExcerpt || strippedRenderedExcerpt\n\t).trim();\n\n\tlet trimmedExcerpt = '';\n\tif ( wordCountType === 'words' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( ' ', excerptLength )\n\t\t\t.join( ' ' );\n\t} else if ( wordCountType === 'characters_excluding_spaces' ) {\n\t\t/*\n\t\t * 1. Split the excerpt at the character limit,\n\t\t * then join the substrings back into one string.\n\t\t * 2. Count the number of spaces in the excerpt\n\t\t * by comparing the lengths of the string with and without spaces.\n\t\t * 3. Add the number to the length of the visible excerpt,\n\t\t * so that the spaces are excluded from the word count.\n\t\t */\n\t\tconst excerptWithSpaces = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\n\t\tconst numberOfSpaces =\n\t\t\texcerptWithSpaces.length -\n\t\t\texcerptWithSpaces.replaceAll( ' ', '' ).length;\n\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength + numberOfSpaces )\n\t\t\t.join( '' );\n\t} else if ( wordCountType === 'characters_including_spaces' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\t}\n\n\tconst isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;\n\n\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Post excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\tisSelected\n\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t: ( ! isTrimmed\n\t\t\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t\t\t: trimmedExcerpt + ELLIPSIS ) ||\n\t\t\t\t\t __( 'No post excerpt found' )\n\t\t\t}\n\t\t\tonChange={ setExcerpt }\n\t\t\ttagName=\"p\"\n\t\t/>\n\t) : (\n\t\t<p className={ excerptClassName }>\n\t\t\t{ ! isTrimmed\n\t\t\t\t? rawOrRenderedExcerpt || __( 'No post excerpt found' )\n\t\t\t\t: trimmedExcerpt + ELLIPSIS }\n\t\t</p>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ excerptContent }\n\t\t\t\t{ ! showMoreOnNewLine && ' ' }\n\t\t\t\t{ showMoreOnNewLine ? (\n\t\t\t\t\t<p className=\"wp-block-post-excerpt__more-text\">\n\t\t\t\t\t\t{ readMoreLink }\n\t\t\t\t\t</p>\n\t\t\t\t) : (\n\t\t\t\t\treadMoreLink\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -82,9 +82,6 @@ const DimensionControls = _ref => {
|
|
|
82
82
|
}, {
|
|
83
83
|
label: __('Square'),
|
|
84
84
|
value: '1'
|
|
85
|
-
}, {
|
|
86
|
-
label: __('16:10'),
|
|
87
|
-
value: '16/10'
|
|
88
85
|
}, {
|
|
89
86
|
label: __('16:9'),
|
|
90
87
|
value: '16/9'
|
|
@@ -94,9 +91,6 @@ const DimensionControls = _ref => {
|
|
|
94
91
|
}, {
|
|
95
92
|
label: __('3:2'),
|
|
96
93
|
value: '3/2'
|
|
97
|
-
}, {
|
|
98
|
-
label: __('10:16'),
|
|
99
|
-
value: '10/16'
|
|
100
94
|
}, {
|
|
101
95
|
label: __('9:16'),
|
|
102
96
|
value: '9/16'
|
|
@@ -170,7 +164,7 @@ const DimensionControls = _ref => {
|
|
|
170
164
|
isBlock: true
|
|
171
165
|
}, SCALE_OPTIONS)), !!imageSizeOptions.length && createElement(ToolsPanelItem, {
|
|
172
166
|
hasValue: () => !!sizeSlug,
|
|
173
|
-
label: __('
|
|
167
|
+
label: __('Resolution'),
|
|
174
168
|
onDeselect: () => setAttributes({
|
|
175
169
|
sizeSlug: undefined
|
|
176
170
|
}),
|
|
@@ -181,7 +175,7 @@ const DimensionControls = _ref => {
|
|
|
181
175
|
panelId: clientId
|
|
182
176
|
}, createElement(SelectControl, {
|
|
183
177
|
__nextHasNoMarginBottom: true,
|
|
184
|
-
label: __('
|
|
178
|
+
label: __('Resolution'),
|
|
185
179
|
value: sizeSlug || DEFAULT_SIZE,
|
|
186
180
|
options: imageSizeOptions,
|
|
187
181
|
onChange: nextSizeSlug => setAttributes({
|