@wordpress/block-library 8.4.0 → 8.6.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/archives/edit.js +3 -0
- package/build/archives/edit.js.map +1 -1
- package/build/audio/edit.js +2 -0
- package/build/audio/edit.js.map +1 -1
- package/build/avatar/edit.js +5 -9
- package/build/avatar/edit.js.map +1 -1
- package/build/buttons/edit.native.js +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/categories/edit.js +5 -0
- package/build/categories/edit.js.map +1 -1
- package/build/columns/edit.js +11 -8
- 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/utils.js +2 -2
- package/build/columns/utils.js.map +1 -1
- package/build/comment-author-name/edit.js +2 -0
- package/build/comment-author-name/edit.js.map +1 -1
- package/build/comment-date/edit.js +1 -0
- package/build/comment-date/edit.js.map +1 -1
- package/build/comment-edit-link/edit.js +1 -0
- package/build/comment-edit-link/edit.js.map +1 -1
- package/build/comments/edit/placeholder.js +8 -5
- package/build/comments/edit/placeholder.js.map +1 -1
- package/build/comments-title/edit.js +2 -0
- package/build/comments-title/edit.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +2 -0
- 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/embed-controls.js +1 -0
- package/build/embed/embed-controls.js.map +1 -1
- package/build/embed/util.js +39 -12
- package/build/embed/util.js.map +1 -1
- package/build/file/inspector.js +3 -0
- package/build/file/inspector.js.map +1 -1
- package/build/freeform/modal.js +1 -1
- package/build/freeform/modal.js.map +1 -1
- package/build/gallery/edit.js +3 -0
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/shared.js +4 -8
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/use-image-sizes.js +4 -8
- package/build/gallery/use-image-sizes.js.map +1 -1
- package/build/gallery/v1/edit.js +8 -3
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-image.js +1 -3
- package/build/gallery/v1/gallery-image.js.map +1 -1
- package/build/gallery/v1/shared.js +4 -7
- package/build/gallery/v1/shared.js.map +1 -1
- package/build/image/edit.js +6 -4
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +6 -2
- package/build/image/image.js.map +1 -1
- package/build/image/utils.js +3 -1
- package/build/image/utils.js.map +1 -1
- package/build/index.js +3 -1
- package/build/index.js.map +1 -1
- package/build/latest-comments/edit.js +3 -0
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-posts/edit.js +14 -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/list/ordered-list-settings.js +1 -0
- package/build/list/ordered-list-settings.js.map +1 -1
- package/build/list-item/edit.js +2 -2
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +2 -1
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/loginout/edit.js +2 -0
- package/build/loginout/edit.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/edit.js +9 -19
- 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/transforms.js +32 -44
- package/build/media-text/transforms.js.map +1 -1
- package/build/more/edit.js +1 -0
- package/build/more/edit.js.map +1 -1
- package/build/navigation/edit/index.js +64 -68
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +4 -1
- package/build/navigation/edit/inner-blocks.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/overlay-menu-preview.js +1 -0
- package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +1 -1
- package/build/navigation/edit/placeholder/index.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 +3 -5
- 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-generate-default-navigation-title.js +1 -1
- package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +4 -7
- package/build/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build/navigation-link/edit.js +0 -11
- package/build/navigation-link/edit.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/convert-to-links-modal.js +47 -0
- package/build/page-list/convert-to-links-modal.js.map +1 -0
- package/build/page-list/edit.js +62 -62
- 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/paragraph/edit.js +1 -0
- package/build/paragraph/edit.js.map +1 -1
- package/build/post-author/edit.js +4 -0
- package/build/post-author/edit.js.map +1 -1
- package/build/post-author-name/edit.js +2 -0
- package/build/post-author-name/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 -0
- package/build/post-date/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +1 -0
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +0 -6
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +3 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-navigation-link/edit.js +2 -0
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/post-terms/use-post-terms.js +1 -1
- package/build/post-terms/use-post-terms.js.map +1 -1
- package/build/post-time-to-read/edit.js +104 -0
- package/build/post-time-to-read/edit.js.map +1 -0
- package/build/post-time-to-read/icon.js +25 -0
- package/build/post-time-to-read/icon.js.map +1 -0
- package/build/post-time-to-read/index.js +57 -0
- package/build/post-time-to-read/index.js.map +1 -0
- package/build/post-title/edit.js +2 -0
- package/build/post-title/edit.js.map +1 -1
- package/build/pullquote/deprecated.js +3 -3
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +1 -0
- package/build/query/edit/inspector-controls/index.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/query-title/edit.js +2 -0
- package/build/query-title/edit.js.map +1 -1
- package/build/read-more/edit.js +1 -0
- package/build/read-more/edit.js.map +1 -1
- package/build/rss/edit.js +3 -0
- package/build/rss/edit.js.map +1 -1
- package/build/site-logo/edit.js +3 -0
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-tagline/index.js +1 -0
- package/build/site-tagline/index.js.map +1 -1
- package/build/site-title/edit/index.js +2 -0
- package/build/site-title/edit/index.js.map +1 -1
- package/build/social-links/edit.js +4 -1
- package/build/social-links/edit.js.map +1 -1
- package/build/spacer/controls.native.js +10 -8
- package/build/spacer/controls.native.js.map +1 -1
- package/build/spacer/edit.native.js +43 -5
- package/build/spacer/edit.native.js.map +1 -1
- package/build/spacer/save.native.js +30 -0
- package/build/spacer/save.native.js.map +1 -0
- package/build/table/edit.js +3 -0
- package/build/table/edit.js.map +1 -1
- package/build/table/state.js +12 -4
- package/build/table/state.js.map +1 -1
- package/build/table-of-contents/edit.js +1 -0
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/tag-cloud/edit.js +1 -0
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/import-controls.js +33 -30
- 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/video/edit-common-settings.js +5 -0
- package/build/video/edit-common-settings.js.map +1 -1
- package/build-module/archives/edit.js +3 -0
- package/build-module/archives/edit.js.map +1 -1
- package/build-module/audio/edit.js +2 -0
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/avatar/edit.js +5 -8
- package/build-module/avatar/edit.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/categories/edit.js +5 -0
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/columns/edit.js +11 -7
- 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/utils.js +3 -3
- package/build-module/columns/utils.js.map +1 -1
- package/build-module/comment-author-name/edit.js +2 -0
- package/build-module/comment-author-name/edit.js.map +1 -1
- package/build-module/comment-date/edit.js +1 -0
- package/build-module/comment-date/edit.js.map +1 -1
- package/build-module/comment-edit-link/edit.js +1 -0
- package/build-module/comment-edit-link/edit.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/comments-title/edit.js +2 -0
- package/build-module/comments-title/edit.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +2 -0
- 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/embed-controls.js +1 -0
- package/build-module/embed/embed-controls.js.map +1 -1
- package/build-module/embed/util.js +34 -10
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/inspector.js +3 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/freeform/modal.js +1 -1
- package/build-module/freeform/modal.js.map +1 -1
- package/build-module/gallery/edit.js +3 -0
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/shared.js +4 -7
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/use-image-sizes.js +4 -7
- package/build-module/gallery/use-image-sizes.js.map +1 -1
- package/build-module/gallery/v1/edit.js +9 -4
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.js +1 -2
- package/build-module/gallery/v1/gallery-image.js.map +1 -1
- package/build-module/gallery/v1/shared.js +4 -6
- package/build-module/gallery/v1/shared.js.map +1 -1
- package/build-module/image/edit.js +7 -5
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +7 -3
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/utils.js +4 -2
- package/build-module/image/utils.js.map +1 -1
- package/build-module/index.js +2 -1
- package/build-module/index.js.map +1 -1
- package/build-module/latest-comments/edit.js +3 -0
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +14 -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/list/ordered-list-settings.js +1 -0
- package/build-module/list/ordered-list-settings.js.map +1 -1
- package/build-module/list-item/edit.js +2 -2
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +2 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/loginout/edit.js +2 -0
- package/build-module/loginout/edit.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/edit.js +4 -14
- 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/transforms.js +32 -44
- package/build-module/media-text/transforms.js.map +1 -1
- package/build-module/more/edit.js +1 -0
- package/build-module/more/edit.js.map +1 -1
- package/build-module/navigation/edit/index.js +65 -69
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +4 -1
- package/build-module/navigation/edit/inner-blocks.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/overlay-menu-preview.js +1 -0
- package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +1 -1
- package/build-module/navigation/edit/placeholder/index.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 +3 -5
- 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-generate-default-navigation-title.js +1 -1
- package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js +5 -8
- package/build-module/navigation/edit/use-navigation-notice.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-submenu/edit.js +1 -13
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +35 -0
- package/build-module/page-list/convert-to-links-modal.js.map +1 -0
- package/build-module/page-list/edit.js +64 -65
- 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/paragraph/edit.js +1 -0
- package/build-module/paragraph/edit.js.map +1 -1
- package/build-module/post-author/edit.js +4 -0
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-author-name/edit.js +2 -0
- package/build-module/post-author-name/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 -0
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +1 -0
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +0 -6
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +3 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-navigation-link/edit.js +2 -0
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/post-terms/use-post-terms.js +1 -1
- package/build-module/post-terms/use-post-terms.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +90 -0
- package/build-module/post-time-to-read/edit.js.map +1 -0
- package/build-module/post-time-to-read/icon.js +15 -0
- package/build-module/post-time-to-read/icon.js.map +1 -0
- package/build-module/post-time-to-read/index.js +40 -0
- package/build-module/post-time-to-read/index.js.map +1 -0
- package/build-module/post-title/edit.js +2 -0
- package/build-module/post-title/edit.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/inspector-controls/index.js +1 -0
- package/build-module/query/edit/inspector-controls/index.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/query-title/edit.js +2 -0
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/read-more/edit.js +1 -0
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/rss/edit.js +3 -0
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/site-logo/edit.js +3 -0
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-tagline/index.js +1 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/site-title/edit/index.js +2 -0
- package/build-module/site-title/edit/index.js.map +1 -1
- package/build-module/social-links/edit.js +4 -1
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/spacer/controls.native.js +9 -8
- package/build-module/spacer/controls.native.js.map +1 -1
- package/build-module/spacer/edit.native.js +39 -7
- package/build-module/spacer/edit.native.js.map +1 -1
- package/build-module/spacer/save.native.js +22 -0
- package/build-module/spacer/save.native.js.map +1 -0
- package/build-module/table/edit.js +3 -0
- package/build-module/table/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/table-of-contents/edit.js +1 -0
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/tag-cloud/edit.js +1 -0
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/import-controls.js +32 -29
- 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-module/video/edit-common-settings.js +5 -0
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-style/cover/style-rtl.css +11 -5
- package/build-style/cover/style.css +11 -5
- package/build-style/editor-rtl.css +9 -4
- package/build-style/editor.css +9 -4
- package/build-style/navigation/editor-rtl.css +1 -1
- package/build-style/navigation/editor.css +1 -1
- package/build-style/page-list/editor-rtl.css +4 -0
- package/build-style/page-list/editor.css +4 -0
- package/build-style/post-excerpt/editor-rtl.css +1 -1
- package/build-style/post-excerpt/editor.css +1 -1
- package/build-style/post-featured-image/style-rtl.css +1 -0
- package/build-style/post-featured-image/style.css +1 -0
- package/build-style/query/editor-rtl.css +1 -0
- package/build-style/query/editor.css +1 -0
- package/build-style/site-logo/editor-rtl.css +2 -2
- package/build-style/site-logo/editor.css +2 -2
- package/build-style/style-rtl.css +12 -5
- package/build-style/style.css +12 -5
- package/package.json +31 -30
- package/src/archives/edit.js +3 -0
- package/src/audio/edit.js +2 -0
- package/src/audio/test/__snapshots__/edit.native.js.snap +82 -42
- package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/audio/test/transforms.native.js +42 -0
- package/src/avatar/edit.js +2 -4
- package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/block/test/transforms.native.js +40 -0
- package/src/buttons/edit.native.js +1 -1
- package/src/buttons/test/__snapshots__/edit.native.js.snap +11 -11
- package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/buttons/test/transforms.native.js +48 -0
- package/src/categories/edit.js +5 -0
- package/src/code/test/__snapshots__/edit.native.js.snap +2 -2
- package/src/columns/edit.js +29 -17
- package/src/columns/edit.native.js +1 -1
- package/src/columns/test/__snapshots__/edit.native.js.snap +66 -66
- package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
- package/src/columns/test/transforms.native.js +91 -0
- package/src/columns/test/utils.js +54 -0
- package/src/columns/utils.js +8 -8
- package/src/comment-author-name/edit.js +2 -0
- package/src/comment-date/edit.js +1 -0
- package/src/comment-edit-link/edit.js +1 -0
- package/src/comment-template/index.php +1 -2
- package/src/comments/edit/placeholder.js +16 -4
- package/src/comments-title/edit.js +2 -0
- package/src/cover/block.json +9 -3
- package/src/cover/edit/inspector-controls.js +2 -0
- package/src/cover/index.js +2 -0
- package/src/cover/index.php +4 -6
- package/src/cover/style.scss +16 -7
- package/src/cover/test/__snapshots__/edit.native.js.snap +36 -36
- package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -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/embed-controls.js +1 -0
- package/src/embed/test/__snapshots__/index.native.js.snap +52 -52
- 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/inspector.js +3 -0
- package/src/file/test/__snapshots__/edit.native.js.snap +67 -51
- package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/file/test/transforms.native.js +42 -0
- package/src/freeform/modal.js +1 -1
- 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 +5 -0
- package/src/gallery/shared.js +6 -11
- package/src/gallery/test/__snapshots__/index.native.js.snap +71 -71
- 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 +3 -16
- package/src/gallery/v1/edit.js +8 -16
- package/src/gallery/v1/gallery-image.js +1 -2
- package/src/gallery/v1/shared.js +5 -10
- package/src/group/test/__snapshots__/edit.native.js.snap +5 -5
- package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
- package/src/group/test/transforms.native.js +75 -0
- package/src/heading/test/__snapshots__/index.native.js.snap +1 -1
- package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/heading/test/transforms.native.js +46 -0
- package/src/image/edit.js +4 -4
- package/src/image/image.js +4 -9
- package/src/image/index.php +4 -4
- package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
- package/src/image/test/transforms.native.js +48 -0
- package/src/image/utils.js +2 -2
- package/src/index.js +2 -0
- package/src/latest-comments/edit.js +3 -0
- package/src/latest-posts/edit.js +15 -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/ordered-list-settings.js +1 -0
- package/src/list/test/__snapshots__/edit.native.js.snap +4 -4
- package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
- package/src/list/test/transforms.native.js +56 -0
- package/src/list-item/edit.js +10 -3
- package/src/list-item/hooks/use-outdent-list-item.js +2 -1
- package/src/loginout/edit.js +2 -0
- package/src/media-text/constants.js +16 -0
- package/src/media-text/edit.js +10 -18
- 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 +21 -3
- package/src/more/edit.js +1 -0
- package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/more/test/transforms.native.js +42 -0
- package/src/navigation/edit/index.js +121 -76
- package/src/navigation/edit/inner-blocks.js +3 -0
- package/src/navigation/edit/menu-inspector-controls.js +2 -7
- package/src/navigation/edit/navigation-menu-selector.js +41 -25
- package/src/navigation/edit/overlay-menu-preview.js +1 -0
- package/src/navigation/edit/placeholder/index.js +1 -1
- package/src/navigation/edit/unsaved-inner-blocks.js +46 -32
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +124 -122
- package/src/navigation/edit/use-create-navigation-menu.js +1 -1
- package/src/navigation/edit/use-generate-default-navigation-title.js +1 -1
- package/src/navigation/edit/use-navigation-notice.js +16 -13
- package/src/navigation/editor.scss +23 -20
- package/src/navigation/index.php +5 -3
- package/src/navigation-link/edit.js +0 -9
- package/src/navigation-link/index.php +5 -8
- package/src/navigation-link/test/__snapshots__/hooks.js.snap +12 -12
- package/src/navigation-submenu/edit.js +0 -10
- package/src/navigation-submenu/index.php +23 -6
- package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/nextpage/test/transforms.native.js +42 -0
- package/src/page-list/convert-to-links-modal.js +38 -0
- package/src/page-list/edit.js +82 -69
- package/src/page-list/editor.scss +6 -0
- package/src/page-list-item/edit.js +2 -3
- package/src/paragraph/edit.js +1 -0
- package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
- package/src/paragraph/test/transforms.native.js +50 -0
- package/src/post-author/edit.js +4 -0
- package/src/post-author-name/edit.js +2 -0
- package/src/post-content/edit.js +5 -1
- package/src/post-date/edit.js +2 -0
- package/src/post-excerpt/edit.js +1 -0
- package/src/post-excerpt/editor.scss +1 -1
- package/src/post-excerpt/index.php +1 -2
- package/src/post-featured-image/dimension-controls.js +0 -8
- package/src/post-featured-image/edit.js +3 -1
- package/src/post-featured-image/style.scss +1 -0
- package/src/post-navigation-link/edit.js +2 -0
- package/src/post-terms/index.php +1 -0
- package/src/post-terms/use-post-terms.js +1 -1
- package/src/post-time-to-read/block.json +20 -0
- package/src/post-time-to-read/edit.js +101 -0
- package/src/post-time-to-read/icon.js +15 -0
- package/src/post-time-to-read/index.js +17 -0
- package/src/post-time-to-read/index.php +62 -0
- package/src/post-title/edit.js +2 -0
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +10 -10
- 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/inspector-controls/index.js +1 -0
- package/src/query/edit/query-placeholder.js +10 -5
- package/src/query/editor.scss +1 -0
- package/src/query/test/utils.js +33 -1
- package/src/query/utils.js +19 -6
- package/src/query-title/edit.js +2 -0
- package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
- package/src/quote/test/transforms.native.js +67 -0
- package/src/read-more/edit.js +1 -0
- package/src/rss/edit.js +3 -0
- package/src/search/test/__snapshots__/edit.native.js.snap +71 -61
- 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__/edit.native.js.snap +1 -1
- 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/site-logo/edit.js +3 -0
- package/src/site-logo/editor.scss +3 -3
- package/src/site-logo/index.php +7 -2
- package/src/site-tagline/block.json +1 -0
- package/src/site-title/edit/index.js +2 -0
- package/src/social-link/index.php +6 -6
- package/src/social-links/edit.js +3 -0
- package/src/social-links/test/__snapshots__/edit.native.js.snap +16 -16
- 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/controls.native.js +13 -5
- package/src/spacer/edit.native.js +45 -6
- package/src/spacer/save.native.js +18 -0
- package/src/spacer/test/__snapshots__/index.native.js.snap +21 -9
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/spacer/test/index.native.js +81 -0
- package/src/spacer/test/transforms.native.js +42 -0
- package/src/table/edit.js +3 -0
- package/src/table/state.js +8 -17
- package/src/table-of-contents/edit.js +1 -0
- package/src/tag-cloud/edit.js +1 -0
- package/src/template-part/edit/import-controls.js +26 -34
- package/src/template-part/edit/utils/transformers.js +96 -19
- package/src/template-part/index.php +7 -6
- package/src/text-columns/edit.js +1 -6
- package/src/text-columns/save.js +1 -6
- package/src/verse/test/__snapshots__/edit.native.js.snap +2 -2
- package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/verse/test/transforms.native.js +42 -0
- package/src/video/edit-common-settings.js +5 -0
- package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
- package/src/video/test/transforms.native.js +48 -0
- package/tsconfig.json +2 -1
- package/tsconfig.tsbuildinfo +1 -1
package/build/table/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/table/state.js"],"names":["INHERITED_COLUMN_ATTRIBUTES","createTable","rowCount","columnCount","body","Array","from","length","map","cells","content","tag","getFirstRow","state","isEmptyTableSection","head","foot","getCellAttribute","cellLocation","attributeName","sectionName","rowIndex","columnIndex","updateSelectedCell","selection","updateCell","tableSections","Object","fromEntries","entries","filter","key","includes","selectionSectionName","selectionRowIndex","section","row","cellAttributes","isCellSelected","type","insertRow","firstRow","cellCount","undefined","slice","_","index","firstCellInColumn","inheritedAttributes","deleteRow","insertColumn","isEmptyRow","deleteColumn","cell","toggleSection","every"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, mapValues } from 'lodash';\n\nconst INHERITED_COLUMN_ATTRIBUTES = [ 'align' ];\n\n/**\n * Creates a table state.\n *\n * @param {Object} options\n * @param {number} options.rowCount Row count for the table to create.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function createTable( { rowCount, columnCount } ) {\n\treturn {\n\t\tbody: Array.from( { length: rowCount } ).map( () => ( {\n\t\t\tcells: Array.from( { length: columnCount } ).map( () => ( {\n\t\t\t\tcontent: '',\n\t\t\t\ttag: 'td',\n\t\t\t} ) ),\n\t\t} ) ),\n\t};\n}\n\n/**\n * Returns the first row in the table.\n *\n * @param {Object} state Current table state.\n *\n * @return {Object | undefined} The first table row.\n */\nexport function getFirstRow( state ) {\n\tif ( ! isEmptyTableSection( state.head ) ) {\n\t\treturn state.head[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.body ) ) {\n\t\treturn state.body[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.foot ) ) {\n\t\treturn state.foot[ 0 ];\n\t}\n}\n\n/**\n * Gets an attribute for a cell.\n *\n * @param {Object} state Current table state.\n * @param {Object} cellLocation The location of the cell\n * @param {string} attributeName The name of the attribute to get the value of.\n *\n * @return {*} The attribute value.\n */\nexport function getCellAttribute( state, cellLocation, attributeName ) {\n\tconst { sectionName, rowIndex, columnIndex } = cellLocation;\n\treturn get( state, [\n\t\tsectionName,\n\t\trowIndex,\n\t\t'cells',\n\t\tcolumnIndex,\n\t\tattributeName,\n\t] );\n}\n\n/**\n * Returns updated cell attributes after applying the `updateCell` function to the selection.\n *\n * @param {Object} state The block attributes.\n * @param {Object} selection The selection of cells to update.\n * @param {Function} updateCell A function to update the selected cell attributes.\n *\n * @return {Object} New table state including the updated cells.\n */\nexport function updateSelectedCell( state, selection, updateCell ) {\n\tif ( ! selection ) {\n\t\treturn state;\n\t}\n\n\tconst tableSections = Object.fromEntries(\n\t\tObject.entries( state ).filter( ( [ key ] ) =>\n\t\t\t[ 'head', 'body', 'foot' ].includes( key )\n\t\t)\n\t);\n\tconst { sectionName: selectionSectionName, rowIndex: selectionRowIndex } =\n\t\tselection;\n\n\treturn mapValues( tableSections, ( section, sectionName ) => {\n\t\tif ( selectionSectionName && selectionSectionName !== sectionName ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section.map( ( row, rowIndex ) => {\n\t\t\tif ( selectionRowIndex && selectionRowIndex !== rowIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: row.cells.map( ( cellAttributes, columnIndex ) => {\n\t\t\t\t\tconst cellLocation = {\n\t\t\t\t\t\tsectionName,\n\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\trowIndex,\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( ! isCellSelected( cellLocation, selection ) ) {\n\t\t\t\t\t\treturn cellAttributes;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn updateCell( cellAttributes );\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\t} );\n}\n\n/**\n * Returns whether the cell at `cellLocation` is included in the selection `selection`.\n *\n * @param {Object} cellLocation An object containing cell location properties.\n * @param {Object} selection An object containing selection properties.\n *\n * @return {boolean} True if the cell is selected, false otherwise.\n */\nexport function isCellSelected( cellLocation, selection ) {\n\tif ( ! cellLocation || ! selection ) {\n\t\treturn false;\n\t}\n\n\tswitch ( selection.type ) {\n\t\tcase 'column':\n\t\t\treturn (\n\t\t\t\tselection.type === 'column' &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex\n\t\t\t);\n\t\tcase 'cell':\n\t\t\treturn (\n\t\t\t\tselection.type === 'cell' &&\n\t\t\t\tcellLocation.sectionName === selection.sectionName &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex &&\n\t\t\t\tcellLocation.rowIndex === selection.rowIndex\n\t\t\t);\n\t}\n}\n\n/**\n * Inserts a row in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to insert the row.\n * @param {number} options.rowIndex Row index at which to insert the row.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function insertRow( state, { sectionName, rowIndex, columnCount } ) {\n\tconst firstRow = getFirstRow( state );\n\tconst cellCount =\n\t\tcolumnCount === undefined\n\t\t\t? get( firstRow, [ 'cells', 'length' ] )\n\t\t\t: columnCount;\n\n\t// Bail early if the function cannot determine how many cells to add.\n\tif ( ! cellCount ) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\t[ sectionName ]: [\n\t\t\t...state[ sectionName ].slice( 0, rowIndex ),\n\t\t\t{\n\t\t\t\tcells: Array.from( { length: cellCount } ).map(\n\t\t\t\t\t( _, index ) => {\n\t\t\t\t\t\tconst firstCellInColumn = get(\n\t\t\t\t\t\t\tfirstRow,\n\t\t\t\t\t\t\t[ 'cells', index ],\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst inheritedAttributes = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries( firstCellInColumn ).filter(\n\t\t\t\t\t\t\t\t( [ key ] ) =>\n\t\t\t\t\t\t\t\t\tINHERITED_COLUMN_ATTRIBUTES.includes( key )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...inheritedAttributes,\n\t\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\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...state[ sectionName ].slice( rowIndex ),\n\t\t],\n\t};\n}\n\n/**\n * Deletes a row from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to delete the row.\n * @param {number} options.rowIndex Row index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteRow( state, { sectionName, rowIndex } ) {\n\treturn {\n\t\t[ sectionName ]: state[ sectionName ].filter(\n\t\t\t( row, index ) => index !== rowIndex\n\t\t),\n\t};\n}\n\n/**\n * Inserts a column in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index at which to insert the column.\n *\n * @return {Object} New table state.\n */\nexport function insertColumn( state, { columnIndex } ) {\n\tconst tableSections = Object.fromEntries(\n\t\tObject.entries( state ).filter( ( [ key ] ) =>\n\t\t\t[ 'head', 'body', 'foot' ].includes( key )\n\t\t)\n\t);\n\n\treturn mapValues( tableSections, ( section, sectionName ) => {\n\t\t// Bail early if the table section is empty.\n\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section.map( ( row ) => {\n\t\t\t// Bail early if the row is empty or it's an attempt to insert past\n\t\t\t// the last possible index of the array.\n\t\t\tif ( isEmptyRow( row ) || row.cells.length < columnIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: [\n\t\t\t\t\t...row.cells.slice( 0, columnIndex ),\n\t\t\t\t\t{\n\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\n\t\t\t\t\t},\n\t\t\t\t\t...row.cells.slice( columnIndex ),\n\t\t\t\t],\n\t\t\t};\n\t\t} );\n\t} );\n}\n\n/**\n * Deletes a column from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteColumn( state, { columnIndex } ) {\n\tconst tableSections = Object.fromEntries(\n\t\tObject.entries( state ).filter( ( [ key ] ) =>\n\t\t\t[ 'head', 'body', 'foot' ].includes( key )\n\t\t)\n\t);\n\n\treturn mapValues( tableSections, ( section ) => {\n\t\t// Bail early if the table section is empty.\n\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section\n\t\t\t.map( ( row ) => ( {\n\t\t\t\tcells:\n\t\t\t\t\trow.cells.length >= columnIndex\n\t\t\t\t\t\t? row.cells.filter(\n\t\t\t\t\t\t\t\t( cell, index ) => index !== columnIndex\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: row.cells,\n\t\t\t} ) )\n\t\t\t.filter( ( row ) => row.cells.length );\n\t} );\n}\n\n/**\n * Toggles the existence of a section.\n *\n * @param {Object} state Current table state.\n * @param {string} sectionName Name of the section to toggle.\n *\n * @return {Object} New table state.\n */\nexport function toggleSection( state, sectionName ) {\n\t// Section exists, replace it with an empty row to remove it.\n\tif ( ! isEmptyTableSection( state[ sectionName ] ) ) {\n\t\treturn { [ sectionName ]: [] };\n\t}\n\n\t// Get the length of the first row of the body to use when creating the header.\n\tconst columnCount = get( state, [ 'body', 0, 'cells', 'length' ], 1 );\n\n\t// Section doesn't exist, insert an empty row to create the section.\n\treturn insertRow( state, { sectionName, rowIndex: 0, columnCount } );\n}\n\n/**\n * Determines whether a table section is empty.\n *\n * @param {Object} section Table section state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyTableSection( section ) {\n\treturn ! section || ! section.length || section.every( isEmptyRow );\n}\n\n/**\n * Determines whether a table row is empty.\n *\n * @param {Object} row Table row state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyRow( row ) {\n\treturn ! ( row.cells && row.cells.length );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/table/state.js"],"names":["INHERITED_COLUMN_ATTRIBUTES","createTable","rowCount","columnCount","body","Array","from","length","map","cells","content","tag","getFirstRow","state","isEmptyTableSection","head","foot","getCellAttribute","cellLocation","attributeName","sectionName","rowIndex","columnIndex","updateSelectedCell","selection","updateCell","tableSections","Object","fromEntries","entries","filter","key","includes","selectionSectionName","selectionRowIndex","section","row","cellAttributes","isCellSelected","type","insertRow","firstRow","cellCount","undefined","slice","_","index","firstCellInColumn","inheritedAttributes","deleteRow","insertColumn","isEmptyRow","deleteColumn","cell","toggleSection","every"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { mapValues } from 'lodash';\n\nconst INHERITED_COLUMN_ATTRIBUTES = [ 'align' ];\n\n/**\n * Creates a table state.\n *\n * @param {Object} options\n * @param {number} options.rowCount Row count for the table to create.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function createTable( { rowCount, columnCount } ) {\n\treturn {\n\t\tbody: Array.from( { length: rowCount } ).map( () => ( {\n\t\t\tcells: Array.from( { length: columnCount } ).map( () => ( {\n\t\t\t\tcontent: '',\n\t\t\t\ttag: 'td',\n\t\t\t} ) ),\n\t\t} ) ),\n\t};\n}\n\n/**\n * Returns the first row in the table.\n *\n * @param {Object} state Current table state.\n *\n * @return {Object | undefined} The first table row.\n */\nexport function getFirstRow( state ) {\n\tif ( ! isEmptyTableSection( state.head ) ) {\n\t\treturn state.head[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.body ) ) {\n\t\treturn state.body[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.foot ) ) {\n\t\treturn state.foot[ 0 ];\n\t}\n}\n\n/**\n * Gets an attribute for a cell.\n *\n * @param {Object} state Current table state.\n * @param {Object} cellLocation The location of the cell\n * @param {string} attributeName The name of the attribute to get the value of.\n *\n * @return {*} The attribute value.\n */\nexport function getCellAttribute( state, cellLocation, attributeName ) {\n\tconst { sectionName, rowIndex, columnIndex } = cellLocation;\n\treturn state[ sectionName ]?.[ rowIndex ]?.cells?.[ columnIndex ]?.[\n\t\tattributeName\n\t];\n}\n\n/**\n * Returns updated cell attributes after applying the `updateCell` function to the selection.\n *\n * @param {Object} state The block attributes.\n * @param {Object} selection The selection of cells to update.\n * @param {Function} updateCell A function to update the selected cell attributes.\n *\n * @return {Object} New table state including the updated cells.\n */\nexport function updateSelectedCell( state, selection, updateCell ) {\n\tif ( ! selection ) {\n\t\treturn state;\n\t}\n\n\tconst tableSections = Object.fromEntries(\n\t\tObject.entries( state ).filter( ( [ key ] ) =>\n\t\t\t[ 'head', 'body', 'foot' ].includes( key )\n\t\t)\n\t);\n\tconst { sectionName: selectionSectionName, rowIndex: selectionRowIndex } =\n\t\tselection;\n\n\treturn mapValues( tableSections, ( section, sectionName ) => {\n\t\tif ( selectionSectionName && selectionSectionName !== sectionName ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section.map( ( row, rowIndex ) => {\n\t\t\tif ( selectionRowIndex && selectionRowIndex !== rowIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: row.cells.map( ( cellAttributes, columnIndex ) => {\n\t\t\t\t\tconst cellLocation = {\n\t\t\t\t\t\tsectionName,\n\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\trowIndex,\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( ! isCellSelected( cellLocation, selection ) ) {\n\t\t\t\t\t\treturn cellAttributes;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn updateCell( cellAttributes );\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\t} );\n}\n\n/**\n * Returns whether the cell at `cellLocation` is included in the selection `selection`.\n *\n * @param {Object} cellLocation An object containing cell location properties.\n * @param {Object} selection An object containing selection properties.\n *\n * @return {boolean} True if the cell is selected, false otherwise.\n */\nexport function isCellSelected( cellLocation, selection ) {\n\tif ( ! cellLocation || ! selection ) {\n\t\treturn false;\n\t}\n\n\tswitch ( selection.type ) {\n\t\tcase 'column':\n\t\t\treturn (\n\t\t\t\tselection.type === 'column' &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex\n\t\t\t);\n\t\tcase 'cell':\n\t\t\treturn (\n\t\t\t\tselection.type === 'cell' &&\n\t\t\t\tcellLocation.sectionName === selection.sectionName &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex &&\n\t\t\t\tcellLocation.rowIndex === selection.rowIndex\n\t\t\t);\n\t}\n}\n\n/**\n * Inserts a row in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to insert the row.\n * @param {number} options.rowIndex Row index at which to insert the row.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function insertRow( state, { sectionName, rowIndex, columnCount } ) {\n\tconst firstRow = getFirstRow( state );\n\tconst cellCount =\n\t\tcolumnCount === undefined ? firstRow?.cells?.length : columnCount;\n\n\t// Bail early if the function cannot determine how many cells to add.\n\tif ( ! cellCount ) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\t[ sectionName ]: [\n\t\t\t...state[ sectionName ].slice( 0, rowIndex ),\n\t\t\t{\n\t\t\t\tcells: Array.from( { length: cellCount } ).map(\n\t\t\t\t\t( _, index ) => {\n\t\t\t\t\t\tconst firstCellInColumn =\n\t\t\t\t\t\t\tfirstRow?.cells?.[ index ] ?? {};\n\n\t\t\t\t\t\tconst inheritedAttributes = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries( firstCellInColumn ).filter(\n\t\t\t\t\t\t\t\t( [ key ] ) =>\n\t\t\t\t\t\t\t\t\tINHERITED_COLUMN_ATTRIBUTES.includes( key )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...inheritedAttributes,\n\t\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\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...state[ sectionName ].slice( rowIndex ),\n\t\t],\n\t};\n}\n\n/**\n * Deletes a row from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to delete the row.\n * @param {number} options.rowIndex Row index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteRow( state, { sectionName, rowIndex } ) {\n\treturn {\n\t\t[ sectionName ]: state[ sectionName ].filter(\n\t\t\t( row, index ) => index !== rowIndex\n\t\t),\n\t};\n}\n\n/**\n * Inserts a column in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index at which to insert the column.\n *\n * @return {Object} New table state.\n */\nexport function insertColumn( state, { columnIndex } ) {\n\tconst tableSections = Object.fromEntries(\n\t\tObject.entries( state ).filter( ( [ key ] ) =>\n\t\t\t[ 'head', 'body', 'foot' ].includes( key )\n\t\t)\n\t);\n\n\treturn mapValues( tableSections, ( section, sectionName ) => {\n\t\t// Bail early if the table section is empty.\n\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section.map( ( row ) => {\n\t\t\t// Bail early if the row is empty or it's an attempt to insert past\n\t\t\t// the last possible index of the array.\n\t\t\tif ( isEmptyRow( row ) || row.cells.length < columnIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: [\n\t\t\t\t\t...row.cells.slice( 0, columnIndex ),\n\t\t\t\t\t{\n\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\n\t\t\t\t\t},\n\t\t\t\t\t...row.cells.slice( columnIndex ),\n\t\t\t\t],\n\t\t\t};\n\t\t} );\n\t} );\n}\n\n/**\n * Deletes a column from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteColumn( state, { columnIndex } ) {\n\tconst tableSections = Object.fromEntries(\n\t\tObject.entries( state ).filter( ( [ key ] ) =>\n\t\t\t[ 'head', 'body', 'foot' ].includes( key )\n\t\t)\n\t);\n\n\treturn mapValues( tableSections, ( section ) => {\n\t\t// Bail early if the table section is empty.\n\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section\n\t\t\t.map( ( row ) => ( {\n\t\t\t\tcells:\n\t\t\t\t\trow.cells.length >= columnIndex\n\t\t\t\t\t\t? row.cells.filter(\n\t\t\t\t\t\t\t\t( cell, index ) => index !== columnIndex\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: row.cells,\n\t\t\t} ) )\n\t\t\t.filter( ( row ) => row.cells.length );\n\t} );\n}\n\n/**\n * Toggles the existence of a section.\n *\n * @param {Object} state Current table state.\n * @param {string} sectionName Name of the section to toggle.\n *\n * @return {Object} New table state.\n */\nexport function toggleSection( state, sectionName ) {\n\t// Section exists, replace it with an empty row to remove it.\n\tif ( ! isEmptyTableSection( state[ sectionName ] ) ) {\n\t\treturn { [ sectionName ]: [] };\n\t}\n\n\t// Get the length of the first row of the body to use when creating the header.\n\tconst columnCount = state.body?.[ 0 ]?.cells?.length ?? 1;\n\n\t// Section doesn't exist, insert an empty row to create the section.\n\treturn insertRow( state, { sectionName, rowIndex: 0, columnCount } );\n}\n\n/**\n * Determines whether a table section is empty.\n *\n * @param {Object} section Table section state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyTableSection( section ) {\n\treturn ! section || ! section.length || section.every( isEmptyRow );\n}\n\n/**\n * Determines whether a table row is empty.\n *\n * @param {Object} row Table row state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyRow( row ) {\n\treturn ! ( row.cells && row.cells.length );\n}\n"]}
|
|
@@ -219,6 +219,7 @@ function TableOfContentsEdit(_ref) {
|
|
|
219
219
|
const inspectorControls = (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
|
|
220
220
|
title: (0, _i18n.__)('Settings')
|
|
221
221
|
}, (0, _element.createElement)(_components.ToggleControl, {
|
|
222
|
+
__nextHasNoMarginBottom: true,
|
|
222
223
|
label: (0, _i18n.__)('Only include current page'),
|
|
223
224
|
checked: onlyIncludeCurrentPage,
|
|
224
225
|
onChange: value => setAttributes({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/table-of-contents/edit.js"],"names":["TableOfContentsEdit","attributes","headings","onlyIncludeCurrentPage","clientId","setAttributes","blockProps","canInsertList","select","getBlockRootClientId","canInsertBlockType","blockEditorStore","rootClientId","__unstableMarkNextChangeAsNotPersistent","replaceBlocks","latestHeadings","getBlockAttributes","getBlockName","getClientIdsWithDescendants","__experimentalGetGlobalBlocksByName","getGlobalBlocksByName","editorSelectors","pageBreakClientIds","isPaginated","length","allBlockClientIds","tocPage","tocIndex","indexOf","blockIndex","blockClientId","entries","_latestHeadings","headingPage","permalink","getPermalink","headingPageLink","page","blockName","headingAttributes","canBeLinked","anchor","push","content","replace","level","link","headingTree","toolbarControls","ordered","values","inspectorControls","value","icon"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tToggleControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { renderToString, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport icon from './icon';\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\n\n/** @typedef {import('./utils').HeadingData} HeadingData */\n\n/**\n * Table of Contents block edit component.\n *\n * @param {Object} props The props.\n * @param {Object} props.attributes The block attributes.\n * @param {HeadingData[]} props.attributes.headings A list of data for each heading in the post.\n * @param {boolean} props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).\n * @param {string} props.clientId\n * @param {(attributes: Object) => void} props.setAttributes\n *\n * @return {WPComponent} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: { headings = [], onlyIncludeCurrentPage },\n\tclientId,\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst canInsertList = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\treturn canInsertBlockType( 'core/list', rootClientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t/**\n\t * The latest heading data, or null if the new data deeply equals the saved\n\t * headings attribute.\n\t *\n\t * Since useSelect forces a re-render when its return value is shallowly\n\t * inequal to its prior call, we would be re-rendering this block every time\n\t * the stores change, even if the latest headings were deeply equal to the\n\t * ones saved in the block attributes.\n\t *\n\t * By returning null when they're equal, we reduce that to 2 renders: one\n\t * when there are new latest headings (and so it returns them), and one when\n\t * they haven't changed (so it returns null). As long as the latest heading\n\t * data remains the same, further calls of the useSelect callback will\n\t * continue to return null, thus preventing any forced re-renders.\n\t */\n\tconst latestHeadings = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetClientIdsWithDescendants,\n\t\t\t\t__experimentalGetGlobalBlocksByName: getGlobalBlocksByName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t\t\t// declaring @wordpress/editor as a dependency, we must access its\n\t\t\t// store by string. When the store is not available, editorSelectors\n\t\t\t// will be null, and the block's saved markup will lack permalinks.\n\t\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\t\tconst editorSelectors = select( 'core/editor' );\n\n\t\t\tconst pageBreakClientIds = getGlobalBlocksByName( 'core/nextpage' );\n\n\t\t\tconst isPaginated = pageBreakClientIds.length !== 0;\n\n\t\t\t// Get the client ids of all blocks in the editor.\n\t\t\tconst allBlockClientIds = getClientIdsWithDescendants();\n\n\t\t\t// If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.\n\t\t\tlet tocPage = 1;\n\n\t\t\tif ( isPaginated && onlyIncludeCurrentPage ) {\n\t\t\t\t// We can't use getBlockIndex because it only returns the index\n\t\t\t\t// relative to sibling blocks.\n\t\t\t\tconst tocIndex = allBlockClientIds.indexOf( clientId );\n\n\t\t\t\tfor ( const [\n\t\t\t\t\tblockIndex,\n\t\t\t\t\tblockClientId,\n\t\t\t\t] of allBlockClientIds.entries() ) {\n\t\t\t\t\t// If we've reached blocks after the Table of Contents, we've\n\t\t\t\t\t// finished calculating which page the block is on.\n\t\t\t\t\tif ( blockIndex >= tocIndex ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ( getBlockName( blockClientId ) === 'core/nextpage' ) {\n\t\t\t\t\t\ttocPage++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _latestHeadings = [];\n\n\t\t\t/** The page (of a paginated post) a heading will be part of. */\n\t\t\tlet headingPage = 1;\n\n\t\t\t/**\n\t\t\t * A permalink to the current post. If the core/editor store is\n\t\t\t * unavailable, this variable will be null.\n\t\t\t */\n\t\t\tconst permalink = editorSelectors?.getPermalink() ?? null;\n\n\t\t\tlet headingPageLink = null;\n\n\t\t\t// If the core/editor store is available, we can add permalinks to the\n\t\t\t// generated table of contents.\n\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\theadingPageLink = isPaginated\n\t\t\t\t\t? addQueryArgs( permalink, { page: headingPage } )\n\t\t\t\t\t: permalink;\n\t\t\t}\n\n\t\t\tfor ( const blockClientId of allBlockClientIds ) {\n\t\t\t\tconst blockName = getBlockName( blockClientId );\n\t\t\t\tif ( blockName === 'core/nextpage' ) {\n\t\t\t\t\theadingPage++;\n\n\t\t\t\t\t// If we're only including headings from the current page (of\n\t\t\t\t\t// a paginated post), then exit the loop if we've reached the\n\t\t\t\t\t// pages after the one with the Table of Contents block.\n\t\t\t\t\tif ( onlyIncludeCurrentPage && headingPage > tocPage ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\t\t\theadingPageLink = addQueryArgs(\n\t\t\t\t\t\t\tremoveQueryArgs( permalink, [ 'page' ] ),\n\t\t\t\t\t\t\t{ page: headingPage }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If we're including all headings or we've reached headings on\n\t\t\t\t// the same page as the Table of Contents block, add them to the\n\t\t\t\t// list.\n\t\t\t\telse if (\n\t\t\t\t\t! onlyIncludeCurrentPage ||\n\t\t\t\t\theadingPage === tocPage\n\t\t\t\t) {\n\t\t\t\t\tif ( blockName === 'core/heading' ) {\n\t\t\t\t\t\tconst headingAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( blockClientId );\n\n\t\t\t\t\t\tconst canBeLinked =\n\t\t\t\t\t\t\ttypeof headingPageLink === 'string' &&\n\t\t\t\t\t\t\ttypeof headingAttributes.anchor === 'string' &&\n\t\t\t\t\t\t\theadingAttributes.anchor !== '';\n\n\t\t\t\t\t\t_latestHeadings.push( {\n\t\t\t\t\t\t\t// Convert line breaks to spaces, and get rid of HTML tags in the headings.\n\t\t\t\t\t\t\tcontent: stripHTML(\n\t\t\t\t\t\t\t\theadingAttributes.content.replace(\n\t\t\t\t\t\t\t\t\t/(<br *\\/?>)+/g,\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\tlevel: headingAttributes.level,\n\t\t\t\t\t\t\tlink: canBeLinked\n\t\t\t\t\t\t\t\t? `${ headingPageLink }#${ headingAttributes.anchor }`\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fastDeepEqual( headings, _latestHeadings ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn _latestHeadings;\n\t\t},\n\t\t[ clientId, onlyIncludeCurrentPage, headings ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( latestHeadings !== null ) {\n\t\t\t// This is required to keep undo working and not create 2 undo steps\n\t\t\t// for each heading change.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { headings: latestHeadings } );\n\t\t}\n\t}, [ latestHeadings ] );\n\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = canInsertList && (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\tordered: true,\n\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\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}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={\n\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Only including headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Toggle to only include headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\t// If there are no headings or the only heading is empty.\n\t// Note that the toolbar controls are intentionally omitted since the\n\t// \"Convert to static list\" option is useless to the placeholder state.\n\tif ( headings.length === 0 ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\t\tlabel={ __( 'Table of Contents' ) }\n\t\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t\t'Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ inspectorControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ol inert=\"true\">\n\t\t\t\t\t<TableOfContentsList nestedHeadingList={ headingTree } />\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t\t{ toolbarControls }\n\t\t\t{ inspectorControls }\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/table-of-contents/edit.js"],"names":["TableOfContentsEdit","attributes","headings","onlyIncludeCurrentPage","clientId","setAttributes","blockProps","canInsertList","select","getBlockRootClientId","canInsertBlockType","blockEditorStore","rootClientId","__unstableMarkNextChangeAsNotPersistent","replaceBlocks","latestHeadings","getBlockAttributes","getBlockName","getClientIdsWithDescendants","__experimentalGetGlobalBlocksByName","getGlobalBlocksByName","editorSelectors","pageBreakClientIds","isPaginated","length","allBlockClientIds","tocPage","tocIndex","indexOf","blockIndex","blockClientId","entries","_latestHeadings","headingPage","permalink","getPermalink","headingPageLink","page","blockName","headingAttributes","canBeLinked","anchor","push","content","replace","level","link","headingTree","toolbarControls","ordered","values","inspectorControls","value","icon"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tToggleControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { renderToString, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport icon from './icon';\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\n\n/** @typedef {import('./utils').HeadingData} HeadingData */\n\n/**\n * Table of Contents block edit component.\n *\n * @param {Object} props The props.\n * @param {Object} props.attributes The block attributes.\n * @param {HeadingData[]} props.attributes.headings A list of data for each heading in the post.\n * @param {boolean} props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).\n * @param {string} props.clientId\n * @param {(attributes: Object) => void} props.setAttributes\n *\n * @return {WPComponent} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: { headings = [], onlyIncludeCurrentPage },\n\tclientId,\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst canInsertList = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\treturn canInsertBlockType( 'core/list', rootClientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t/**\n\t * The latest heading data, or null if the new data deeply equals the saved\n\t * headings attribute.\n\t *\n\t * Since useSelect forces a re-render when its return value is shallowly\n\t * inequal to its prior call, we would be re-rendering this block every time\n\t * the stores change, even if the latest headings were deeply equal to the\n\t * ones saved in the block attributes.\n\t *\n\t * By returning null when they're equal, we reduce that to 2 renders: one\n\t * when there are new latest headings (and so it returns them), and one when\n\t * they haven't changed (so it returns null). As long as the latest heading\n\t * data remains the same, further calls of the useSelect callback will\n\t * continue to return null, thus preventing any forced re-renders.\n\t */\n\tconst latestHeadings = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetClientIdsWithDescendants,\n\t\t\t\t__experimentalGetGlobalBlocksByName: getGlobalBlocksByName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t\t\t// declaring @wordpress/editor as a dependency, we must access its\n\t\t\t// store by string. When the store is not available, editorSelectors\n\t\t\t// will be null, and the block's saved markup will lack permalinks.\n\t\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\t\tconst editorSelectors = select( 'core/editor' );\n\n\t\t\tconst pageBreakClientIds = getGlobalBlocksByName( 'core/nextpage' );\n\n\t\t\tconst isPaginated = pageBreakClientIds.length !== 0;\n\n\t\t\t// Get the client ids of all blocks in the editor.\n\t\t\tconst allBlockClientIds = getClientIdsWithDescendants();\n\n\t\t\t// If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.\n\t\t\tlet tocPage = 1;\n\n\t\t\tif ( isPaginated && onlyIncludeCurrentPage ) {\n\t\t\t\t// We can't use getBlockIndex because it only returns the index\n\t\t\t\t// relative to sibling blocks.\n\t\t\t\tconst tocIndex = allBlockClientIds.indexOf( clientId );\n\n\t\t\t\tfor ( const [\n\t\t\t\t\tblockIndex,\n\t\t\t\t\tblockClientId,\n\t\t\t\t] of allBlockClientIds.entries() ) {\n\t\t\t\t\t// If we've reached blocks after the Table of Contents, we've\n\t\t\t\t\t// finished calculating which page the block is on.\n\t\t\t\t\tif ( blockIndex >= tocIndex ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ( getBlockName( blockClientId ) === 'core/nextpage' ) {\n\t\t\t\t\t\ttocPage++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _latestHeadings = [];\n\n\t\t\t/** The page (of a paginated post) a heading will be part of. */\n\t\t\tlet headingPage = 1;\n\n\t\t\t/**\n\t\t\t * A permalink to the current post. If the core/editor store is\n\t\t\t * unavailable, this variable will be null.\n\t\t\t */\n\t\t\tconst permalink = editorSelectors?.getPermalink() ?? null;\n\n\t\t\tlet headingPageLink = null;\n\n\t\t\t// If the core/editor store is available, we can add permalinks to the\n\t\t\t// generated table of contents.\n\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\theadingPageLink = isPaginated\n\t\t\t\t\t? addQueryArgs( permalink, { page: headingPage } )\n\t\t\t\t\t: permalink;\n\t\t\t}\n\n\t\t\tfor ( const blockClientId of allBlockClientIds ) {\n\t\t\t\tconst blockName = getBlockName( blockClientId );\n\t\t\t\tif ( blockName === 'core/nextpage' ) {\n\t\t\t\t\theadingPage++;\n\n\t\t\t\t\t// If we're only including headings from the current page (of\n\t\t\t\t\t// a paginated post), then exit the loop if we've reached the\n\t\t\t\t\t// pages after the one with the Table of Contents block.\n\t\t\t\t\tif ( onlyIncludeCurrentPage && headingPage > tocPage ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\t\t\theadingPageLink = addQueryArgs(\n\t\t\t\t\t\t\tremoveQueryArgs( permalink, [ 'page' ] ),\n\t\t\t\t\t\t\t{ page: headingPage }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If we're including all headings or we've reached headings on\n\t\t\t\t// the same page as the Table of Contents block, add them to the\n\t\t\t\t// list.\n\t\t\t\telse if (\n\t\t\t\t\t! onlyIncludeCurrentPage ||\n\t\t\t\t\theadingPage === tocPage\n\t\t\t\t) {\n\t\t\t\t\tif ( blockName === 'core/heading' ) {\n\t\t\t\t\t\tconst headingAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( blockClientId );\n\n\t\t\t\t\t\tconst canBeLinked =\n\t\t\t\t\t\t\ttypeof headingPageLink === 'string' &&\n\t\t\t\t\t\t\ttypeof headingAttributes.anchor === 'string' &&\n\t\t\t\t\t\t\theadingAttributes.anchor !== '';\n\n\t\t\t\t\t\t_latestHeadings.push( {\n\t\t\t\t\t\t\t// Convert line breaks to spaces, and get rid of HTML tags in the headings.\n\t\t\t\t\t\t\tcontent: stripHTML(\n\t\t\t\t\t\t\t\theadingAttributes.content.replace(\n\t\t\t\t\t\t\t\t\t/(<br *\\/?>)+/g,\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\tlevel: headingAttributes.level,\n\t\t\t\t\t\t\tlink: canBeLinked\n\t\t\t\t\t\t\t\t? `${ headingPageLink }#${ headingAttributes.anchor }`\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fastDeepEqual( headings, _latestHeadings ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn _latestHeadings;\n\t\t},\n\t\t[ clientId, onlyIncludeCurrentPage, headings ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( latestHeadings !== null ) {\n\t\t\t// This is required to keep undo working and not create 2 undo steps\n\t\t\t// for each heading change.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { headings: latestHeadings } );\n\t\t}\n\t}, [ latestHeadings ] );\n\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = canInsertList && (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\tordered: true,\n\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\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}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={\n\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Only including headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Toggle to only include headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\t// If there are no headings or the only heading is empty.\n\t// Note that the toolbar controls are intentionally omitted since the\n\t// \"Convert to static list\" option is useless to the placeholder state.\n\tif ( headings.length === 0 ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\t\tlabel={ __( 'Table of Contents' ) }\n\t\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t\t'Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ inspectorControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ol inert=\"true\">\n\t\t\t\t\t<TableOfContentsList nestedHeadingList={ headingTree } />\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t\t{ toolbarControls }\n\t\t\t{ inspectorControls }\n\t\t</>\n\t);\n}\n"]}
|
package/build/tag-cloud/edit.js
CHANGED
|
@@ -111,6 +111,7 @@ function TagCloudEdit(_ref) {
|
|
|
111
111
|
taxonomy: selectedTaxonomy
|
|
112
112
|
})
|
|
113
113
|
}), (0, _element.createElement)(_components.ToggleControl, {
|
|
114
|
+
__nextHasNoMarginBottom: true,
|
|
114
115
|
label: (0, _i18n.__)('Show post counts'),
|
|
115
116
|
checked: showTagCounts,
|
|
116
117
|
onChange: () => setAttributes({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/tag-cloud/edit.js"],"names":["MIN_TAGS","MAX_TAGS","MIN_FONT_SIZE","MAX_FONT_SIZE","TagCloudEdit","attributes","setAttributes","taxonomies","taxonomy","showTagCounts","numberOfTags","smallestFontSize","largestFontSize","units","availableUnits","getTaxonomyOptions","selectOption","label","value","disabled","taxonomyOptions","filter","tax","show_cloud","map","item","slug","name","onFontSizeChange","fontSizeLabel","newValue","quantity","newUnit","Number","isFinite","updateObj","Object","entries","forEach","attribute","currentValue","currentQuantity","currentUnit","inspectorControls","selectedTaxonomy","select","coreStore","getTaxonomies","per_page"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/tag-cloud/edit.js"],"names":["MIN_TAGS","MAX_TAGS","MIN_FONT_SIZE","MAX_FONT_SIZE","TagCloudEdit","attributes","setAttributes","taxonomies","taxonomy","showTagCounts","numberOfTags","smallestFontSize","largestFontSize","units","availableUnits","getTaxonomyOptions","selectOption","label","value","disabled","taxonomyOptions","filter","tax","show_cloud","map","item","slug","name","onFontSizeChange","fontSizeLabel","newValue","quantity","newUnit","Number","isFinite","updateObj","Object","entries","forEach","attribute","currentValue","currentQuantity","currentUnit","inspectorControls","selectedTaxonomy","select","coreStore","getTaxonomies","per_page"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFlex,\n\tFlexItem,\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n\tRangeControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\tDisabled,\n} from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Minimum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_TAGS = 1;\n\n/**\n * Maximum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_TAGS = 100;\n\nconst MIN_FONT_SIZE = 0.1;\nconst MAX_FONT_SIZE = 100;\n\nfunction TagCloudEdit( { attributes, setAttributes, taxonomies } ) {\n\tconst {\n\t\ttaxonomy,\n\t\tshowTagCounts,\n\t\tnumberOfTags,\n\t\tsmallestFontSize,\n\t\tlargestFontSize,\n\t} = attributes;\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t],\n\t} );\n\n\tconst getTaxonomyOptions = () => {\n\t\tconst selectOption = {\n\t\t\tlabel: __( '- Select -' ),\n\t\t\tvalue: '',\n\t\t\tdisabled: true,\n\t\t};\n\t\tconst taxonomyOptions = ( taxonomies ?? [] )\n\t\t\t.filter( ( tax ) => !! tax.show_cloud )\n\t\t\t.map( ( item ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: item.slug,\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\treturn [ selectOption, ...taxonomyOptions ];\n\t};\n\n\tconst onFontSizeChange = ( fontSizeLabel, newValue ) => {\n\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\tconst [ quantity, newUnit ] =\n\t\t\tparseQuantityAndUnitFromRawValue( newValue );\n\t\tif ( ! Number.isFinite( quantity ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updateObj = { [ fontSizeLabel ]: newValue };\n\t\t// We need to keep in sync the `unit` changes to both `smallestFontSize`\n\t\t// and `largestFontSize` attributes.\n\t\tObject.entries( {\n\t\t\tsmallestFontSize,\n\t\t\tlargestFontSize,\n\t\t} ).forEach( ( [ attribute, currentValue ] ) => {\n\t\t\tconst [ currentQuantity, currentUnit ] =\n\t\t\t\tparseQuantityAndUnitFromRawValue( currentValue );\n\t\t\t// Only add an update if the other font size attribute has a different unit.\n\t\t\tif ( attribute !== fontSizeLabel && currentUnit !== newUnit ) {\n\t\t\t\tupdateObj[ attribute ] = `${ currentQuantity }${ newUnit }`;\n\t\t\t}\n\t\t} );\n\t\tsetAttributes( updateObj );\n\t};\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\tsetAttributes( { taxonomy: selectedTaxonomy } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\tchecked={ showTagCounts }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( { showTagCounts: ! showTagCounts } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Number of tags' ) }\n\t\t\t\t\tvalue={ numberOfTags }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { numberOfTags: value } )\n\t\t\t\t\t}\n\t\t\t\t\tmin={ MIN_TAGS }\n\t\t\t\t\tmax={ MAX_TAGS }\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Smallest size' ) }\n\t\t\t\t\t\t\tvalue={ smallestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'smallestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Largest size' ) }\n\t\t\t\t\t\t\tvalue={ largestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'largestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tskipBlockSupportAttributes\n\t\t\t\t\t\tblock=\"core/tag-cloud\"\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\treturn {\n\t\ttaxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t};\n} )( TagCloudEdit );\n"]}
|
|
@@ -13,8 +13,6 @@ var _data = require("@wordpress/data");
|
|
|
13
13
|
|
|
14
14
|
var _components = require("@wordpress/components");
|
|
15
15
|
|
|
16
|
-
var _blocks = require("@wordpress/blocks");
|
|
17
|
-
|
|
18
16
|
var _coreData = require("@wordpress/core-data");
|
|
19
17
|
|
|
20
18
|
var _notices = require("@wordpress/notices");
|
|
@@ -30,6 +28,11 @@ var _transformers = require("./utils/transformers");
|
|
|
30
28
|
/**
|
|
31
29
|
* Internal dependencies
|
|
32
30
|
*/
|
|
31
|
+
const SIDEBARS_QUERY = {
|
|
32
|
+
per_page: -1,
|
|
33
|
+
_fields: 'id,name,description,status,widgets'
|
|
34
|
+
};
|
|
35
|
+
|
|
33
36
|
function TemplatePartImportControls(_ref) {
|
|
34
37
|
let {
|
|
35
38
|
area,
|
|
@@ -38,11 +41,18 @@ function TemplatePartImportControls(_ref) {
|
|
|
38
41
|
const [selectedSidebar, setSelectedSidebar] = (0, _element.useState)('');
|
|
39
42
|
const [isBusy, setIsBusy] = (0, _element.useState)(false);
|
|
40
43
|
const registry = (0, _data.useRegistry)();
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
const {
|
|
45
|
+
sidebars,
|
|
46
|
+
hasResolved
|
|
47
|
+
} = (0, _data.useSelect)(select => {
|
|
48
|
+
const {
|
|
49
|
+
getSidebars,
|
|
50
|
+
hasFinishedResolution
|
|
51
|
+
} = select(_coreData.store);
|
|
52
|
+
return {
|
|
53
|
+
sidebars: getSidebars(SIDEBARS_QUERY),
|
|
54
|
+
hasResolved: hasFinishedResolution('getSidebars', [SIDEBARS_QUERY])
|
|
55
|
+
};
|
|
46
56
|
}, []);
|
|
47
57
|
const {
|
|
48
58
|
createErrorNotice
|
|
@@ -64,7 +74,18 @@ function TemplatePartImportControls(_ref) {
|
|
|
64
74
|
value: '',
|
|
65
75
|
label: (0, _i18n.__)('Select widget area')
|
|
66
76
|
}, ...sidebarOptions];
|
|
67
|
-
}, [sidebars]);
|
|
77
|
+
}, [sidebars]); // Render an empty node while data is loading to avoid SlotFill re-positioning bug.
|
|
78
|
+
// See: https://github.com/WordPress/gutenberg/issues/15641.
|
|
79
|
+
|
|
80
|
+
if (!hasResolved) {
|
|
81
|
+
return (0, _element.createElement)(_components.__experimentalSpacer, {
|
|
82
|
+
marginBottom: "0"
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (hasResolved && !options.length) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
68
89
|
|
|
69
90
|
async function createFromWidgets(event) {
|
|
70
91
|
event.preventDefault();
|
|
@@ -90,32 +111,14 @@ function TemplatePartImportControls(_ref) {
|
|
|
90
111
|
});
|
|
91
112
|
const skippedWidgets = new Set();
|
|
92
113
|
const blocks = widgets.flatMap(widget => {
|
|
93
|
-
const block = (0, _transformers.transformWidgetToBlock)(widget);
|
|
94
|
-
|
|
95
|
-
if (block.name !== 'core/legacy-widget') {
|
|
96
|
-
return block;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const transforms = (0, _blocks.getPossibleBlockTransformations)([block]).filter(item => {
|
|
100
|
-
var _item$transforms, _item$transforms$from, _item$transforms2, _item$transforms2$to;
|
|
114
|
+
const block = (0, _transformers.transformWidgetToBlock)(widget); // Skip the block if we have no matching transformations.
|
|
101
115
|
|
|
102
|
-
|
|
103
|
-
if (!item.transforms) {
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const hasWildCardFrom = (_item$transforms = item.transforms) === null || _item$transforms === void 0 ? void 0 : (_item$transforms$from = _item$transforms.from) === null || _item$transforms$from === void 0 ? void 0 : _item$transforms$from.find(from => from.blocks && from.blocks.includes('*'));
|
|
108
|
-
const hasWildCardTo = (_item$transforms2 = item.transforms) === null || _item$transforms2 === void 0 ? void 0 : (_item$transforms2$to = _item$transforms2.to) === null || _item$transforms2$to === void 0 ? void 0 : _item$transforms2$to.find(to => to.blocks && to.blocks.includes('*'));
|
|
109
|
-
return !hasWildCardFrom && !hasWildCardTo;
|
|
110
|
-
}); // Skip the block if we have no matching transformations.
|
|
111
|
-
|
|
112
|
-
if (!transforms.length) {
|
|
116
|
+
if (!block) {
|
|
113
117
|
skippedWidgets.add(widget.id_base);
|
|
114
118
|
return [];
|
|
115
|
-
}
|
|
116
|
-
|
|
119
|
+
}
|
|
117
120
|
|
|
118
|
-
return
|
|
121
|
+
return block;
|
|
119
122
|
});
|
|
120
123
|
await createFromBlocks(blocks,
|
|
121
124
|
/* translators: %s: name of the widget area */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/template-part/edit/import-controls.js"],"names":["TemplatePartImportControls","area","setAttributes","selectedSidebar","setSelectedSidebar","isBusy","setIsBusy","registry","sidebars","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/template-part/edit/import-controls.js"],"names":["SIDEBARS_QUERY","per_page","_fields","TemplatePartImportControls","area","setAttributes","selectedSidebar","setSelectedSidebar","isBusy","setIsBusy","registry","sidebars","hasResolved","select","getSidebars","hasFinishedResolution","coreStore","createErrorNotice","noticesStore","createFromBlocks","options","sidebarOptions","filter","widgetArea","id","widgets","length","map","value","label","name","createFromWidgets","event","preventDefault","sidebar","find","getWidgets","resolveSelect","_embed","skippedWidgets","Set","blocks","flatMap","widget","block","add","id_base","size","Array","from","join","type","marginBottom","marginTop"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tButton,\n\tFlexBlock,\n\tFlexItem,\n\tSelectControl,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { useCreateTemplatePartFromBlocks } from './utils/hooks';\nimport { transformWidgetToBlock } from './utils/transformers';\n\nconst SIDEBARS_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name,description,status,widgets',\n};\n\nexport function TemplatePartImportControls( { area, setAttributes } ) {\n\tconst [ selectedSidebar, setSelectedSidebar ] = useState( '' );\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\n\tconst registry = useRegistry();\n\tconst { sidebars, hasResolved } = useSelect( ( select ) => {\n\t\tconst { getSidebars, hasFinishedResolution } = select( coreStore );\n\n\t\treturn {\n\t\t\tsidebars: getSidebars( SIDEBARS_QUERY ),\n\t\t\thasResolved: hasFinishedResolution( 'getSidebars', [\n\t\t\t\tSIDEBARS_QUERY,\n\t\t\t] ),\n\t\t};\n\t}, [] );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\tconst options = useMemo( () => {\n\t\tconst sidebarOptions = ( sidebars ?? [] )\n\t\t\t.filter(\n\t\t\t\t( widgetArea ) =>\n\t\t\t\t\twidgetArea.id !== 'wp_inactive_widgets' &&\n\t\t\t\t\twidgetArea.widgets.length > 0\n\t\t\t)\n\t\t\t.map( ( widgetArea ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: widgetArea.id,\n\t\t\t\t\tlabel: widgetArea.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\tif ( ! sidebarOptions.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{ value: '', label: __( 'Select widget area' ) },\n\t\t\t...sidebarOptions,\n\t\t];\n\t}, [ sidebars ] );\n\n\t// Render an empty node while data is loading to avoid SlotFill re-positioning bug.\n\t// See: https://github.com/WordPress/gutenberg/issues/15641.\n\tif ( ! hasResolved ) {\n\t\treturn <Spacer marginBottom=\"0\" />;\n\t}\n\n\tif ( hasResolved && ! options.length ) {\n\t\treturn null;\n\t}\n\n\tasync function createFromWidgets( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( isBusy || ! selectedSidebar ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsBusy( true );\n\n\t\tconst sidebar = options.find(\n\t\t\t( { value } ) => value === selectedSidebar\n\t\t);\n\t\tconst { getWidgets } = registry.resolveSelect( coreStore );\n\n\t\t// The widgets API always returns a successful response.\n\t\tconst widgets = await getWidgets( {\n\t\t\tsidebar: sidebar.value,\n\t\t\t_embed: 'about',\n\t\t} );\n\n\t\tconst skippedWidgets = new Set();\n\t\tconst blocks = widgets.flatMap( ( widget ) => {\n\t\t\tconst block = transformWidgetToBlock( widget );\n\n\t\t\t// Skip the block if we have no matching transformations.\n\t\t\tif ( ! block ) {\n\t\t\t\tskippedWidgets.add( widget.id_base );\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn block;\n\t\t} );\n\n\t\tawait createFromBlocks(\n\t\t\tblocks,\n\t\t\t/* translators: %s: name of the widget area */\n\t\t\tsprintf( __( 'Widget area: %s' ), sidebar.label )\n\t\t);\n\n\t\tif ( skippedWidgets.size ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: the list of widgets */\n\t\t\t\t\t__( 'Unable to import the following widgets: %s.' ),\n\t\t\t\t\tArray.from( skippedWidgets ).join( ', ' )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tsetIsBusy( false );\n\t}\n\n\treturn (\n\t\t<Spacer marginBottom=\"4\">\n\t\t\t<HStack as=\"form\" onSubmit={ createFromWidgets }>\n\t\t\t\t<FlexBlock>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Import widget area' ) }\n\t\t\t\t\t\tvalue={ selectedSidebar }\n\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\tonChange={ ( value ) => setSelectedSidebar( value ) }\n\t\t\t\t\t\tdisabled={ ! options.length }\n\t\t\t\t\t\t__next36pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</FlexBlock>\n\t\t\t\t<FlexItem\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tmarginBottom: '8px',\n\t\t\t\t\t\tmarginTop: 'auto',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\taria-disabled={ isBusy || ! selectedSidebar }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Import' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</Spacer>\n\t);\n}\n"]}
|
|
@@ -18,31 +18,81 @@ var _blocks = require("@wordpress/blocks");
|
|
|
18
18
|
* @return {Object} a block (converted from the entity record).
|
|
19
19
|
*/
|
|
20
20
|
function transformWidgetToBlock(widget) {
|
|
21
|
-
if (widget.id_base
|
|
22
|
-
|
|
23
|
-
__unstableSkipAutop: true
|
|
24
|
-
});
|
|
21
|
+
if (widget.id_base !== 'block') {
|
|
22
|
+
let attributes;
|
|
25
23
|
|
|
26
|
-
if (
|
|
27
|
-
|
|
24
|
+
if (widget._embedded.about[0].is_multi) {
|
|
25
|
+
attributes = {
|
|
26
|
+
idBase: widget.id_base,
|
|
27
|
+
instance: widget.instance
|
|
28
|
+
};
|
|
29
|
+
} else {
|
|
30
|
+
attributes = {
|
|
31
|
+
id: widget.id
|
|
32
|
+
};
|
|
28
33
|
}
|
|
29
34
|
|
|
30
|
-
return
|
|
35
|
+
return switchLegacyWidgetType((0, _blocks.createBlock)('core/legacy-widget', attributes));
|
|
31
36
|
}
|
|
32
37
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
const parsedBlocks = (0, _blocks.parse)(widget.instance.raw.content, {
|
|
39
|
+
__unstableSkipAutop: true
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
if (!parsedBlocks.length) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const block = parsedBlocks[0];
|
|
47
|
+
|
|
48
|
+
if (block.name === 'core/widget-group') {
|
|
49
|
+
return (0, _blocks.createBlock)((0, _blocks.getGroupingBlockName)(), undefined, transformInnerBlocks(block.innerBlocks));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (block.innerBlocks.length > 0) {
|
|
53
|
+
return (0, _blocks.cloneBlock)(block, undefined, transformInnerBlocks(block.innerBlocks));
|
|
44
54
|
}
|
|
45
55
|
|
|
46
|
-
return
|
|
56
|
+
return block;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Switch Legacy Widget to the first matching transformation block.
|
|
60
|
+
*
|
|
61
|
+
* @param {Object} block Legacy Widget block object
|
|
62
|
+
* @return {Object|undefined} a block
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
function switchLegacyWidgetType(block) {
|
|
67
|
+
const transforms = (0, _blocks.getPossibleBlockTransformations)([block]).filter(item => {
|
|
68
|
+
var _item$transforms, _item$transforms$from, _item$transforms2, _item$transforms2$to;
|
|
69
|
+
|
|
70
|
+
// The block without any transformations can't be a wildcard.
|
|
71
|
+
if (!item.transforms) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const hasWildCardFrom = (_item$transforms = item.transforms) === null || _item$transforms === void 0 ? void 0 : (_item$transforms$from = _item$transforms.from) === null || _item$transforms$from === void 0 ? void 0 : _item$transforms$from.find(from => from.blocks && from.blocks.includes('*'));
|
|
76
|
+
const hasWildCardTo = (_item$transforms2 = item.transforms) === null || _item$transforms2 === void 0 ? void 0 : (_item$transforms2$to = _item$transforms2.to) === null || _item$transforms2$to === void 0 ? void 0 : _item$transforms2$to.find(to => to.blocks && to.blocks.includes('*')); // Skip wildcard transformations.
|
|
77
|
+
|
|
78
|
+
return !hasWildCardFrom && !hasWildCardTo;
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
if (!transforms.length) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return (0, _blocks.switchToBlockType)(block, transforms[0].name);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function transformInnerBlocks() {
|
|
89
|
+
let innerBlocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
90
|
+
return innerBlocks.flatMap(block => {
|
|
91
|
+
if (block.name === 'core/legacy-widget') {
|
|
92
|
+
return switchLegacyWidgetType(block);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return (0, _blocks.createBlock)(block.name, block.attributes, transformInnerBlocks(block.innerBlocks));
|
|
96
|
+
}).filter(block => !!block);
|
|
47
97
|
}
|
|
48
98
|
//# sourceMappingURL=transformers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/template-part/edit/utils/transformers.js"],"names":["transformWidgetToBlock","widget","id_base","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/template-part/edit/utils/transformers.js"],"names":["transformWidgetToBlock","widget","id_base","attributes","_embedded","about","is_multi","idBase","instance","id","switchLegacyWidgetType","parsedBlocks","raw","content","__unstableSkipAutop","length","undefined","block","name","transformInnerBlocks","innerBlocks","transforms","filter","item","hasWildCardFrom","from","find","blocks","includes","hasWildCardTo","to","flatMap"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tparse,\n\tcloneBlock,\n\tcreateBlock,\n\tgetGroupingBlockName,\n\tgetPossibleBlockTransformations,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base !== 'block' ) {\n\t\tlet attributes;\n\t\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\t\tattributes = {\n\t\t\t\tidBase: widget.id_base,\n\t\t\t\tinstance: widget.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tattributes = {\n\t\t\t\tid: widget.id,\n\t\t\t};\n\t\t}\n\n\t\treturn switchLegacyWidgetType(\n\t\t\tcreateBlock( 'core/legacy-widget', attributes )\n\t\t);\n\t}\n\n\tconst parsedBlocks = parse( widget.instance.raw.content, {\n\t\t__unstableSkipAutop: true,\n\t} );\n\n\tif ( ! parsedBlocks.length ) {\n\t\treturn undefined;\n\t}\n\n\tconst block = parsedBlocks[ 0 ];\n\n\tif ( block.name === 'core/widget-group' ) {\n\t\treturn createBlock(\n\t\t\tgetGroupingBlockName(),\n\t\t\tundefined,\n\t\t\ttransformInnerBlocks( block.innerBlocks )\n\t\t);\n\t}\n\n\tif ( block.innerBlocks.length > 0 ) {\n\t\treturn cloneBlock(\n\t\t\tblock,\n\t\t\tundefined,\n\t\t\ttransformInnerBlocks( block.innerBlocks )\n\t\t);\n\t}\n\n\treturn block;\n}\n\n/**\n * Switch Legacy Widget to the first matching transformation block.\n *\n * @param {Object} block Legacy Widget block object\n * @return {Object|undefined} a block\n */\nfunction switchLegacyWidgetType( block ) {\n\tconst transforms = getPossibleBlockTransformations( [ block ] ).filter(\n\t\t( item ) => {\n\t\t\t// The block without any transformations can't be a wildcard.\n\t\t\tif ( ! item.transforms ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst hasWildCardFrom = item.transforms?.from?.find(\n\t\t\t\t( from ) => from.blocks && from.blocks.includes( '*' )\n\t\t\t);\n\t\t\tconst hasWildCardTo = item.transforms?.to?.find(\n\t\t\t\t( to ) => to.blocks && to.blocks.includes( '*' )\n\t\t\t);\n\n\t\t\t// Skip wildcard transformations.\n\t\t\treturn ! hasWildCardFrom && ! hasWildCardTo;\n\t\t}\n\t);\n\n\tif ( ! transforms.length ) {\n\t\treturn undefined;\n\t}\n\n\treturn switchToBlockType( block, transforms[ 0 ].name );\n}\n\nfunction transformInnerBlocks( innerBlocks = [] ) {\n\treturn innerBlocks\n\t\t.flatMap( ( block ) => {\n\t\t\tif ( block.name === 'core/legacy-widget' ) {\n\t\t\t\treturn switchLegacyWidgetType( block );\n\t\t\t}\n\n\t\t\treturn createBlock(\n\t\t\t\tblock.name,\n\t\t\t\tblock.attributes,\n\t\t\t\ttransformInnerBlocks( block.innerBlocks )\n\t\t\t);\n\t\t} )\n\t\t.filter( ( block ) => !! block );\n}\n"]}
|
|
@@ -9,8 +9,6 @@ exports.default = TextColumnsEdit;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
-
var _lodash = require("lodash");
|
|
13
|
-
|
|
14
12
|
var _i18n = require("@wordpress/i18n");
|
|
15
13
|
|
|
16
14
|
var _components = require("@wordpress/components");
|
|
@@ -19,10 +17,6 @@ var _blockEditor = require("@wordpress/block-editor");
|
|
|
19
17
|
|
|
20
18
|
var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
|
|
21
19
|
|
|
22
|
-
/**
|
|
23
|
-
* External dependencies
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
20
|
/**
|
|
27
21
|
* WordPress dependencies
|
|
28
22
|
*/
|
|
@@ -61,12 +55,14 @@ function TextColumnsEdit(_ref) {
|
|
|
61
55
|
}), Array.from({
|
|
62
56
|
length: columns
|
|
63
57
|
}).map((_, index) => {
|
|
58
|
+
var _content$index;
|
|
59
|
+
|
|
64
60
|
return (0, _element.createElement)("div", {
|
|
65
61
|
className: "wp-block-column",
|
|
66
62
|
key: `column-${index}`
|
|
67
63
|
}, (0, _element.createElement)(_blockEditor.RichText, {
|
|
68
64
|
tagName: "p",
|
|
69
|
-
value:
|
|
65
|
+
value: content === null || content === void 0 ? void 0 : (_content$index = content[index]) === null || _content$index === void 0 ? void 0 : _content$index.children,
|
|
70
66
|
onChange: nextContent => {
|
|
71
67
|
setAttributes({
|
|
72
68
|
content: [...content.slice(0, index), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/text-columns/edit.js"],"names":["TextColumnsEdit","attributes","setAttributes","width","content","columns","since","alternative","nextWidth","value","className","Array","from","length","map","_","index","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/text-columns/edit.js"],"names":["TextColumnsEdit","attributes","setAttributes","width","content","columns","since","alternative","nextWidth","value","className","Array","from","length","map","_","index","children","nextContent","slice"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AAOA;;AAZA;AACA;AACA;AAYe,SAASA,eAAT,OAA0D;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AACxE,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,OAAT;AAAkBC,IAAAA;AAAlB,MAA8BJ,UAApC;AAEA,2BAAY,wBAAZ,EAAsC;AACrCK,IAAAA,KAAK,EAAE,KAD8B;AAErCC,IAAAA,WAAW,EAAE;AAFwB,GAAtC;AAKA,SACC,qDACC,4BAAC,0BAAD,QACC,4BAAC,kCAAD;AACC,IAAA,KAAK,EAAGJ,KADT;AAEC,IAAA,QAAQ,EAAKK,SAAF,IACVN,aAAa,CAAE;AAAEC,MAAAA,KAAK,EAAEK;AAAT,KAAF,CAHf;AAKC,IAAA,QAAQ,EAAG,CAAE,QAAF,EAAY,MAAZ,EAAoB,MAApB;AALZ,IADD,CADD,EAUC,4BAAC,8BAAD,QACC,4BAAC,qBAAD,QACC,4BAAC,wBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,SAAJ,CAFT;AAGC,IAAA,KAAK,EAAGH,OAHT;AAIC,IAAA,QAAQ,EAAKI,KAAF,IACVP,aAAa,CAAE;AAAEG,MAAAA,OAAO,EAAEI;AAAX,KAAF,CALf;AAOC,IAAA,GAAG,EAAG,CAPP;AAQC,IAAA,GAAG,EAAG,CARP;AASC,IAAA,QAAQ;AATT,IADD,CADD,CAVD,EAyBC,mCACM,gCAAe;AACnBC,IAAAA,SAAS,EAAG,QAAQP,KAAO,YAAYE,OAAS;AAD7B,GAAf,CADN,EAKGM,KAAK,CAACC,IAAN,CAAY;AAAEC,IAAAA,MAAM,EAAER;AAAV,GAAZ,EAAkCS,GAAlC,CAAuC,CAAEC,CAAF,EAAKC,KAAL,KAAgB;AAAA;;AACxD,WACC;AACC,MAAA,SAAS,EAAC,iBADX;AAEC,MAAA,GAAG,EAAI,UAAUA,KAAO;AAFzB,OAIC,4BAAC,qBAAD;AACC,MAAA,OAAO,EAAC,GADT;AAEC,MAAA,KAAK,EAAGZ,OAAH,aAAGA,OAAH,yCAAGA,OAAO,CAAIY,KAAJ,CAAV,mDAAG,eAAoBC,QAF7B;AAGC,MAAA,QAAQ,EAAKC,WAAF,IAAmB;AAC7BhB,QAAAA,aAAa,CAAE;AACdE,UAAAA,OAAO,EAAE,CACR,GAAGA,OAAO,CAACe,KAAR,CAAe,CAAf,EAAkBH,KAAlB,CADK,EAER;AAAEC,YAAAA,QAAQ,EAAEC;AAAZ,WAFQ,EAGR,GAAGd,OAAO,CAACe,KAAR,CAAeH,KAAK,GAAG,CAAvB,CAHK;AADK,SAAF,CAAb;AAOA,OAXF;AAYC,oBAAa,oBACZ;AACA,oBAAI,gBAAJ,CAFY,EAGZA,KAAK,GAAG,CAHI,CAZd;AAiBC,MAAA,WAAW,EAAG,cAAI,YAAJ;AAjBf,MAJD,CADD;AA0BA,GA3BC,CALH,CAzBD,CADD;AA8DA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { PanelBody, RangeControl } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockAlignmentToolbar,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport deprecated from '@wordpress/deprecated';\n\nexport default function TextColumnsEdit( { attributes, setAttributes } ) {\n\tconst { width, content, columns } = attributes;\n\n\tdeprecated( 'The Text Columns block', {\n\t\tsince: '5.3',\n\t\talternative: 'the Columns block',\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\tvalue={ width }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tsetAttributes( { width: nextWidth } )\n\t\t\t\t\t}\n\t\t\t\t\tcontrols={ [ 'center', 'wide', 'full' ] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={ 4 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName: `align${ width } columns-${ columns }`,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ Array.from( { length: columns } ).map( ( _, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-column\"\n\t\t\t\t\t\t\tkey={ `column-${ index }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\tvalue={ content?.[ index ]?.children }\n\t\t\t\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t\t\t\t\t...content.slice( 0, index ),\n\t\t\t\t\t\t\t\t\t\t\t{ children: nextContent },\n\t\t\t\t\t\t\t\t\t\t\t...content.slice( index + 1 ),\n\t\t\t\t\t\t\t\t\t\t],\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\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %d: column index (starting with 1)\n\t\t\t\t\t\t\t\t\t__( 'Column %d text' ),\n\t\t\t\t\t\t\t\t\tindex + 1\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'New Column' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|