@wordpress/block-library 7.19.0 → 8.0.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 +6 -0
- package/build/audio/edit.native.js +1 -3
- package/build/audio/edit.native.js.map +1 -1
- package/build/audio/index.js +2 -1
- package/build/audio/index.js.map +1 -1
- package/build/avatar/edit.js +1 -0
- package/build/avatar/edit.js.map +1 -1
- package/build/avatar/user-control.js +1 -0
- package/build/avatar/user-control.js.map +1 -1
- package/build/block/edit.js +14 -2
- package/build/block/edit.js.map +1 -1
- package/build/block/edit.native.js +14 -6
- package/build/block/edit.native.js.map +1 -1
- package/build/block/index.js +1 -2
- package/build/block/index.js.map +1 -1
- package/build/button/edit.native.js.map +1 -1
- package/build/code/transforms.js +1 -1
- package/build/code/transforms.js.map +1 -1
- package/build/columns/edit.js +1 -0
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +13 -30
- package/build/columns/edit.native.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -0
- package/build/comment-author-avatar/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/edit.native.js +24 -16
- package/build/cover/edit.native.js.map +1 -1
- package/build/embed/embed-controls.native.js +1 -0
- package/build/embed/embed-controls.native.js.map +1 -1
- package/build/embed/embed-preview.native.js +1 -3
- package/build/embed/embed-preview.native.js.map +1 -1
- package/build/file/inspector.js +1 -0
- package/build/file/inspector.js.map +1 -1
- package/build/gallery/edit.js +25 -13
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js +1 -3
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/shared.js +4 -10
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/transforms.js +1 -7
- package/build/gallery/transforms.js.map +1 -1
- package/build/gallery/use-get-media.js +1 -1
- package/build/gallery/use-get-media.js.map +1 -1
- package/build/gallery/use-get-media.native.js +3 -1
- package/build/gallery/use-get-media.native.js.map +1 -1
- package/build/gallery/v1/edit.js +22 -15
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery.native.js +1 -3
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/gallery/v1/shared.js +4 -1
- package/build/gallery/v1/shared.js.map +1 -1
- package/build/group/edit.js +1 -2
- package/build/group/edit.js.map +1 -1
- package/build/group/index.js +3 -1
- package/build/group/index.js.map +1 -1
- package/build/group/placeholder.js +5 -26
- package/build/group/placeholder.js.map +1 -1
- package/build/heading/deprecated.js +152 -69
- package/build/heading/deprecated.js.map +1 -1
- package/build/heading/index.js +1 -2
- package/build/heading/index.js.map +1 -1
- package/build/heading/transforms.js +1 -2
- package/build/heading/transforms.js.map +1 -1
- package/build/html/index.js +1 -1
- package/build/image/edit.js +8 -5
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +3 -2
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +12 -8
- package/build/image/image.js.map +1 -1
- package/build/index.js +3 -1
- package/build/index.js.map +1 -1
- package/build/latest-comments/edit.js +1 -0
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-posts/edit.js +2 -0
- package/build/latest-posts/edit.js.map +1 -1
- package/build/list/transforms.js +1 -9
- package/build/list/transforms.js.map +1 -1
- package/build/list/utils.js +5 -2
- package/build/list/utils.js.map +1 -1
- package/build/list-item/index.js +4 -1
- package/build/list-item/index.js.map +1 -1
- package/build/list-item/transforms.js +22 -0
- package/build/list-item/transforms.js.map +1 -0
- package/build/list-item/utils.js +77 -1
- package/build/list-item/utils.js.map +1 -1
- package/build/media-text/edit.js +4 -2
- package/build/media-text/edit.js.map +1 -1
- package/build/navigation/edit/are-blocks-dirty.js +52 -0
- package/build/navigation/edit/are-blocks-dirty.js.map +1 -0
- package/build/navigation/edit/index.js +95 -116
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +72 -0
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -0
- package/build/navigation/edit/navigation-menu-selector.js +5 -10
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +11 -7
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/view-modal.js +6 -2
- package/build/navigation/view-modal.js.map +1 -1
- package/build/navigation-link/edit.js +42 -298
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +222 -0
- package/build/navigation-link/link-ui.js.map +1 -0
- package/build/navigation-link/transforms.js +12 -0
- package/build/navigation-link/transforms.js.map +1 -1
- package/build/navigation-link/update-attributes.js +108 -0
- package/build/navigation-link/update-attributes.js.map +1 -0
- package/build/navigation-submenu/edit.js +42 -173
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/constants.js +15 -0
- package/build/page-list/constants.js.map +1 -0
- package/build/page-list/convert-to-links-modal.js +22 -86
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/convert-to-navigation-links.js +76 -0
- package/build/page-list/convert-to-navigation-links.js.map +1 -0
- package/build/page-list/edit.js +142 -78
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list/index.js +6 -1
- package/build/page-list/index.js.map +1 -1
- package/build/page-list-item/edit.js +87 -0
- package/build/page-list-item/edit.js.map +1 -0
- package/build/page-list-item/index.js +85 -0
- package/build/page-list-item/index.js.map +1 -0
- package/build/page-list-item/init.js +16 -0
- package/build/page-list-item/init.js.map +1 -0
- package/build/paragraph/index.js +1 -7
- package/build/paragraph/index.js.map +1 -1
- package/build/post-author/edit.js +3 -2
- package/build/post-author/edit.js.map +1 -1
- package/build/post-featured-image/overlay.js +1 -0
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/post-template/index.js +8 -0
- package/build/post-template/index.js.map +1 -1
- package/build/preformatted/transforms.js +3 -1
- package/build/preformatted/transforms.js.map +1 -1
- package/build/query/deprecated.js +192 -21
- package/build/query/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 -19
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/index.js +0 -8
- package/build/query/index.js.map +1 -1
- package/build/query/utils.js +0 -8
- package/build/query/utils.js.map +1 -1
- package/build/rss/edit.js +3 -0
- package/build/rss/edit.js.map +1 -1
- package/build/search/edit.native.js +22 -22
- package/build/search/edit.native.js.map +1 -1
- package/build/search/index.js +9 -1
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +17 -9
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-logo/index.js +1 -0
- package/build/site-logo/index.js.map +1 -1
- package/build/site-title/index.js +1 -0
- package/build/site-title/index.js.map +1 -1
- package/build/social-link/social-list.js +4 -12
- package/build/social-link/social-list.js.map +1 -1
- package/build/table/edit.js +3 -1
- package/build/table/edit.js.map +1 -1
- package/build/table/index.js +17 -1
- package/build/table/index.js.map +1 -1
- package/build/table/save.js +4 -2
- package/build/table/save.js.map +1 -1
- package/build/table/state.js +24 -12
- package/build/table/state.js.map +1 -1
- package/build/table/transforms.js +3 -2
- package/build/table/transforms.js.map +1 -1
- package/build/table-of-contents/edit.js +2 -2
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/tag-cloud/edit.js +2 -1
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +5 -2
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +2 -6
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/text-columns/edit.js +1 -0
- package/build/text-columns/edit.js.map +1 -1
- package/build/utils/transformation-categories.native.js +1 -1
- package/build/utils/transformation-categories.native.js.map +1 -1
- package/build/video/edit.js +1 -1
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +1 -3
- package/build/video/edit.native.js.map +1 -1
- package/build-module/audio/edit.native.js +1 -2
- package/build-module/audio/edit.native.js.map +1 -1
- package/build-module/audio/index.js +2 -1
- package/build-module/audio/index.js.map +1 -1
- package/build-module/avatar/edit.js +1 -0
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/avatar/user-control.js +1 -0
- package/build-module/avatar/user-control.js.map +1 -1
- package/build-module/block/edit.js +14 -2
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block/edit.native.js +14 -6
- package/build-module/block/edit.native.js.map +1 -1
- package/build-module/block/index.js +1 -2
- package/build-module/block/index.js.map +1 -1
- package/build-module/button/edit.native.js +2 -1
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/code/transforms.js +1 -1
- package/build-module/code/transforms.js.map +1 -1
- package/build-module/columns/edit.js +1 -0
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +13 -29
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -0
- package/build-module/comment-author-avatar/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/edit.native.js +22 -14
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/embed/embed-controls.native.js +2 -1
- package/build-module/embed/embed-controls.native.js.map +1 -1
- package/build-module/embed/embed-preview.native.js +1 -2
- package/build-module/embed/embed-preview.native.js.map +1 -1
- package/build-module/file/inspector.js +1 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/gallery/edit.js +25 -12
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js +1 -2
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/shared.js +5 -11
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/transforms.js +1 -6
- package/build-module/gallery/transforms.js.map +1 -1
- package/build-module/gallery/use-get-media.js +1 -1
- package/build-module/gallery/use-get-media.js.map +1 -1
- package/build-module/gallery/use-get-media.native.js +3 -1
- package/build-module/gallery/use-get-media.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js +23 -16
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery.native.js +1 -2
- package/build-module/gallery/v1/gallery.native.js.map +1 -1
- package/build-module/gallery/v1/shared.js +5 -2
- package/build-module/gallery/v1/shared.js.map +1 -1
- package/build-module/group/edit.js +1 -3
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/index.js +3 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/placeholder.js +5 -26
- package/build-module/group/placeholder.js.map +1 -1
- package/build-module/heading/deprecated.js +152 -69
- package/build-module/heading/deprecated.js.map +1 -1
- package/build-module/heading/index.js +1 -2
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/transforms.js +1 -2
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/html/index.js +1 -1
- package/build-module/image/edit.js +9 -6
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +2 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +13 -9
- package/build-module/image/image.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 +1 -0
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +2 -0
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/list/transforms.js +1 -9
- package/build-module/list/transforms.js.map +1 -1
- package/build-module/list/utils.js +5 -2
- package/build-module/list/utils.js.map +1 -1
- package/build-module/list-item/index.js +3 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/list-item/transforms.js +13 -0
- package/build-module/list-item/transforms.js.map +1 -0
- package/build-module/list-item/utils.js +78 -1
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/media-text/edit.js +5 -3
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/navigation/edit/are-blocks-dirty.js +44 -0
- package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -0
- package/build-module/navigation/edit/index.js +95 -117
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +59 -0
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -0
- package/build-module/navigation/edit/navigation-menu-selector.js +6 -11
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +9 -6
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/view-modal.js +6 -2
- package/build-module/navigation/view-modal.js.map +1 -1
- package/build-module/navigation-link/edit.js +46 -299
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +206 -0
- package/build-module/navigation-link/link-ui.js.map +1 -0
- package/build-module/navigation-link/transforms.js +12 -0
- package/build-module/navigation-link/transforms.js.map +1 -1
- package/build-module/navigation-link/update-attributes.js +97 -0
- package/build-module/navigation-link/update-attributes.js.map +1 -0
- package/build-module/navigation-submenu/edit.js +47 -175
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/constants.js +6 -0
- package/build-module/page-list/constants.js.map +1 -0
- package/build-module/page-list/convert-to-links-modal.js +20 -81
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/convert-to-navigation-links.js +66 -0
- package/build-module/page-list/convert-to-navigation-links.js.map +1 -0
- package/build-module/page-list/edit.js +144 -82
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list/index.js +6 -1
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/page-list-item/edit.js +74 -0
- package/build-module/page-list-item/edit.js.map +1 -0
- package/build-module/page-list-item/index.js +68 -0
- package/build-module/page-list-item/index.js.map +1 -0
- package/build-module/page-list-item/init.js +6 -0
- package/build-module/page-list-item/init.js.map +1 -0
- package/build-module/paragraph/index.js +1 -7
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/post-author/edit.js +3 -2
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-featured-image/overlay.js +1 -0
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/post-template/index.js +8 -0
- package/build-module/post-template/index.js.map +1 -1
- package/build-module/preformatted/transforms.js +3 -1
- package/build-module/preformatted/transforms.js.map +1 -1
- package/build-module/query/deprecated.js +185 -21
- package/build-module/query/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 +3 -19
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/index.js +0 -8
- package/build-module/query/index.js.map +1 -1
- package/build-module/query/utils.js +0 -8
- package/build-module/query/utils.js.map +1 -1
- package/build-module/rss/edit.js +3 -0
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/search/edit.native.js +20 -20
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/search/index.js +8 -1
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +17 -8
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-logo/index.js +1 -0
- package/build-module/site-logo/index.js.map +1 -1
- package/build-module/site-title/index.js +1 -0
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-link/social-list.js +2 -11
- package/build-module/social-link/social-list.js.map +1 -1
- package/build-module/table/edit.js +3 -1
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table/index.js +17 -1
- package/build-module/table/index.js.map +1 -1
- package/build-module/table/save.js +4 -2
- package/build-module/table/save.js.map +1 -1
- package/build-module/table/state.js +25 -13
- package/build-module/table/state.js.map +1 -1
- package/build-module/table/transforms.js +3 -2
- package/build-module/table/transforms.js.map +1 -1
- package/build-module/table-of-contents/edit.js +2 -2
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/tag-cloud/edit.js +3 -2
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +6 -3
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +3 -7
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/text-columns/edit.js +1 -0
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/utils/transformation-categories.native.js +1 -1
- package/build-module/utils/transformation-categories.native.js.map +1 -1
- package/build-module/video/edit.js +1 -1
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +1 -2
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/archives/editor-rtl.css +12 -0
- package/build-style/archives/editor.css +12 -0
- package/build-style/archives/style-rtl.css +12 -0
- package/build-style/archives/style.css +12 -0
- package/build-style/audio/editor-rtl.css +12 -0
- package/build-style/audio/editor.css +12 -0
- package/build-style/audio/style-rtl.css +12 -0
- package/build-style/audio/style.css +12 -0
- package/build-style/audio/theme-rtl.css +12 -0
- package/build-style/audio/theme.css +12 -0
- package/build-style/avatar/editor-rtl.css +12 -0
- package/build-style/avatar/editor.css +12 -0
- package/build-style/avatar/style-rtl.css +12 -0
- package/build-style/avatar/style.css +12 -0
- package/build-style/block/editor-rtl.css +22 -0
- package/build-style/block/editor.css +22 -0
- package/build-style/button/editor-rtl.css +12 -0
- package/build-style/button/editor.css +12 -0
- package/build-style/button/style-rtl.css +12 -0
- package/build-style/button/style.css +12 -0
- package/build-style/buttons/editor-rtl.css +12 -0
- package/build-style/buttons/editor.css +12 -0
- package/build-style/buttons/style-rtl.css +12 -0
- package/build-style/buttons/style.css +12 -0
- package/build-style/calendar/style-rtl.css +12 -0
- package/build-style/calendar/style.css +12 -0
- package/build-style/categories/editor-rtl.css +12 -0
- package/build-style/categories/editor.css +12 -0
- package/build-style/categories/style-rtl.css +12 -0
- package/build-style/categories/style.css +12 -0
- package/build-style/classic-rtl.css +12 -0
- package/build-style/classic.css +12 -0
- package/build-style/code/editor-rtl.css +12 -0
- package/build-style/code/editor.css +12 -0
- package/build-style/code/style-rtl.css +12 -0
- package/build-style/code/style.css +12 -0
- package/build-style/code/theme-rtl.css +12 -0
- package/build-style/code/theme.css +12 -0
- package/build-style/columns/editor-rtl.css +12 -0
- package/build-style/columns/editor.css +12 -0
- package/build-style/columns/style-rtl.css +12 -0
- package/build-style/columns/style.css +12 -0
- package/build-style/comment-author-avatar/editor-rtl.css +12 -0
- package/build-style/comment-author-avatar/editor.css +12 -0
- package/build-style/comment-content/style-rtl.css +12 -0
- package/build-style/comment-content/style.css +12 -0
- package/build-style/comment-template/style-rtl.css +12 -0
- package/build-style/comment-template/style.css +12 -0
- package/build-style/comments/editor-rtl.css +12 -0
- package/build-style/comments/editor.css +12 -0
- package/build-style/comments/style-rtl.css +12 -0
- package/build-style/comments/style.css +12 -0
- package/build-style/comments-pagination/editor-rtl.css +12 -0
- package/build-style/comments-pagination/editor.css +12 -0
- package/build-style/comments-pagination/style-rtl.css +12 -0
- package/build-style/comments-pagination/style.css +12 -0
- package/build-style/comments-pagination-numbers/editor-rtl.css +12 -0
- package/build-style/comments-pagination-numbers/editor.css +12 -0
- package/build-style/comments-title/editor-rtl.css +12 -0
- package/build-style/comments-title/editor.css +12 -0
- package/build-style/common-rtl.css +17 -1
- package/build-style/common.css +17 -1
- package/build-style/cover/editor-rtl.css +12 -0
- package/build-style/cover/editor.css +12 -0
- package/build-style/cover/style-rtl.css +14 -1
- package/build-style/cover/style.css +14 -1
- package/build-style/editor-elements-rtl.css +12 -0
- package/build-style/editor-elements.css +12 -0
- package/build-style/editor-rtl.css +39 -20
- package/build-style/editor.css +39 -20
- package/build-style/elements-rtl.css +12 -0
- package/build-style/elements.css +12 -0
- package/build-style/embed/editor-rtl.css +12 -0
- package/build-style/embed/editor.css +12 -0
- package/build-style/embed/style-rtl.css +12 -0
- package/build-style/embed/style.css +12 -0
- package/build-style/embed/theme-rtl.css +12 -0
- package/build-style/embed/theme.css +12 -0
- package/build-style/file/editor-rtl.css +12 -0
- package/build-style/file/editor.css +12 -0
- package/build-style/file/style-rtl.css +12 -0
- package/build-style/file/style.css +12 -0
- package/build-style/freeform/editor-rtl.css +12 -0
- package/build-style/freeform/editor.css +12 -0
- package/build-style/gallery/editor-rtl.css +13 -1
- package/build-style/gallery/editor.css +13 -1
- package/build-style/gallery/style-rtl.css +16 -2
- package/build-style/gallery/style.css +16 -2
- package/build-style/gallery/theme-rtl.css +12 -0
- package/build-style/gallery/theme.css +12 -0
- package/build-style/group/editor-rtl.css +12 -0
- package/build-style/group/editor.css +12 -0
- package/build-style/group/style-rtl.css +12 -0
- package/build-style/group/style.css +12 -0
- package/build-style/group/theme-rtl.css +12 -0
- package/build-style/group/theme.css +12 -0
- package/build-style/heading/style-rtl.css +12 -0
- package/build-style/heading/style.css +12 -0
- package/build-style/html/editor-rtl.css +12 -0
- package/build-style/html/editor.css +12 -0
- package/build-style/image/editor-rtl.css +12 -9
- package/build-style/image/editor.css +12 -9
- package/build-style/image/style-rtl.css +12 -0
- package/build-style/image/style.css +12 -0
- package/build-style/image/theme-rtl.css +12 -0
- package/build-style/image/theme.css +12 -0
- package/build-style/latest-comments/style-rtl.css +12 -0
- package/build-style/latest-comments/style.css +12 -0
- package/build-style/latest-posts/editor-rtl.css +12 -0
- package/build-style/latest-posts/editor.css +12 -0
- package/build-style/latest-posts/style-rtl.css +12 -0
- package/build-style/latest-posts/style.css +12 -0
- package/build-style/list/style-rtl.css +12 -0
- package/build-style/list/style.css +12 -0
- package/build-style/media-text/editor-rtl.css +12 -0
- package/build-style/media-text/editor.css +12 -0
- package/build-style/media-text/style-rtl.css +12 -0
- package/build-style/media-text/style.css +12 -0
- package/build-style/more/editor-rtl.css +12 -0
- package/build-style/more/editor.css +12 -0
- package/build-style/navigation/editor-rtl.css +12 -0
- package/build-style/navigation/editor.css +12 -0
- package/build-style/navigation/style-rtl.css +12 -0
- package/build-style/navigation/style.css +12 -0
- package/build-style/navigation-link/editor-rtl.css +12 -0
- package/build-style/navigation-link/editor.css +12 -0
- package/build-style/navigation-link/style-rtl.css +12 -0
- package/build-style/navigation-link/style.css +12 -0
- package/build-style/navigation-submenu/editor-rtl.css +12 -0
- package/build-style/navigation-submenu/editor.css +12 -0
- package/build-style/nextpage/editor-rtl.css +12 -0
- package/build-style/nextpage/editor.css +12 -0
- package/build-style/page-list/editor-rtl.css +12 -0
- package/build-style/page-list/editor.css +12 -0
- package/build-style/page-list/style-rtl.css +12 -0
- package/build-style/page-list/style.css +12 -0
- package/build-style/paragraph/editor-rtl.css +12 -0
- package/build-style/paragraph/editor.css +12 -0
- package/build-style/paragraph/style-rtl.css +12 -0
- package/build-style/paragraph/style.css +12 -0
- package/build-style/post-author/style-rtl.css +12 -0
- package/build-style/post-author/style.css +12 -0
- package/build-style/post-comments-form/editor-rtl.css +12 -0
- package/build-style/post-comments-form/editor.css +12 -0
- package/build-style/post-comments-form/style-rtl.css +12 -0
- package/build-style/post-comments-form/style.css +12 -0
- package/build-style/post-date/style-rtl.css +12 -0
- package/build-style/post-date/style.css +12 -0
- package/build-style/post-excerpt/editor-rtl.css +12 -0
- package/build-style/post-excerpt/editor.css +12 -0
- package/build-style/post-excerpt/style-rtl.css +12 -0
- package/build-style/post-excerpt/style.css +12 -0
- package/build-style/post-featured-image/editor-rtl.css +12 -0
- package/build-style/post-featured-image/editor.css +12 -0
- package/build-style/post-featured-image/style-rtl.css +12 -0
- package/build-style/post-featured-image/style.css +12 -0
- package/build-style/post-navigation-link/style-rtl.css +12 -0
- package/build-style/post-navigation-link/style.css +12 -0
- package/build-style/post-template/editor-rtl.css +12 -0
- package/build-style/post-template/editor.css +12 -0
- package/build-style/post-template/style-rtl.css +12 -0
- package/build-style/post-template/style.css +12 -0
- package/build-style/post-terms/style-rtl.css +12 -0
- package/build-style/post-terms/style.css +12 -0
- package/build-style/post-title/style-rtl.css +12 -0
- package/build-style/post-title/style.css +12 -0
- package/build-style/preformatted/style-rtl.css +12 -0
- package/build-style/preformatted/style.css +12 -0
- package/build-style/pullquote/editor-rtl.css +12 -0
- package/build-style/pullquote/editor.css +12 -0
- package/build-style/pullquote/style-rtl.css +12 -0
- package/build-style/pullquote/style.css +12 -0
- package/build-style/pullquote/theme-rtl.css +12 -0
- package/build-style/pullquote/theme.css +12 -0
- package/build-style/query/editor-rtl.css +12 -0
- package/build-style/query/editor.css +12 -0
- package/build-style/query-pagination/editor-rtl.css +12 -0
- package/build-style/query-pagination/editor.css +12 -0
- package/build-style/query-pagination/style-rtl.css +12 -0
- package/build-style/query-pagination/style.css +12 -0
- package/build-style/query-pagination-numbers/editor-rtl.css +12 -0
- package/build-style/query-pagination-numbers/editor.css +12 -0
- package/build-style/query-title/style-rtl.css +12 -0
- package/build-style/query-title/style.css +12 -0
- package/build-style/quote/style-rtl.css +12 -0
- package/build-style/quote/style.css +12 -0
- package/build-style/quote/theme-rtl.css +12 -0
- package/build-style/quote/theme.css +12 -0
- package/build-style/read-more/style-rtl.css +12 -0
- package/build-style/read-more/style.css +12 -0
- package/build-style/reset-rtl.css +12 -0
- package/build-style/reset.css +12 -0
- package/build-style/rss/editor-rtl.css +12 -0
- package/build-style/rss/editor.css +12 -0
- package/build-style/rss/style-rtl.css +12 -0
- package/build-style/rss/style.css +12 -0
- package/build-style/search/editor-rtl.css +12 -0
- package/build-style/search/editor.css +12 -0
- package/build-style/search/style-rtl.css +12 -0
- package/build-style/search/style.css +12 -0
- package/build-style/search/theme-rtl.css +12 -0
- package/build-style/search/theme.css +12 -0
- package/build-style/separator/editor-rtl.css +12 -0
- package/build-style/separator/editor.css +12 -0
- package/build-style/separator/style-rtl.css +12 -0
- package/build-style/separator/style.css +12 -0
- package/build-style/separator/theme-rtl.css +12 -0
- package/build-style/separator/theme.css +12 -0
- package/build-style/shortcode/editor-rtl.css +13 -1
- package/build-style/shortcode/editor.css +13 -1
- package/build-style/site-logo/editor-rtl.css +12 -0
- package/build-style/site-logo/editor.css +12 -0
- package/build-style/site-logo/style-rtl.css +12 -0
- package/build-style/site-logo/style.css +12 -0
- package/build-style/site-tagline/editor-rtl.css +12 -0
- package/build-style/site-tagline/editor.css +12 -0
- package/build-style/site-title/editor-rtl.css +12 -0
- package/build-style/site-title/editor.css +12 -0
- package/build-style/site-title/style-rtl.css +12 -0
- package/build-style/site-title/style.css +12 -0
- package/build-style/social-link/editor-rtl.css +12 -0
- package/build-style/social-link/editor.css +12 -0
- package/build-style/social-links/editor-rtl.css +12 -0
- package/build-style/social-links/editor.css +12 -0
- package/build-style/social-links/style-rtl.css +12 -0
- package/build-style/social-links/style.css +12 -0
- package/build-style/spacer/editor-rtl.css +12 -0
- package/build-style/spacer/editor.css +12 -0
- package/build-style/spacer/style-rtl.css +12 -0
- package/build-style/spacer/style.css +12 -0
- package/build-style/style-rtl.css +23 -5
- package/build-style/style.css +23 -5
- package/build-style/table/editor-rtl.css +12 -8
- package/build-style/table/editor.css +12 -8
- package/build-style/table/style-rtl.css +12 -0
- package/build-style/table/style.css +12 -0
- package/build-style/table/theme-rtl.css +12 -0
- package/build-style/table/theme.css +12 -0
- package/build-style/tag-cloud/style-rtl.css +12 -0
- package/build-style/tag-cloud/style.css +12 -0
- package/build-style/template-part/editor-rtl.css +27 -1
- package/build-style/template-part/editor.css +27 -1
- package/build-style/template-part/theme-rtl.css +12 -0
- package/build-style/template-part/theme.css +12 -0
- package/build-style/text-columns/editor-rtl.css +12 -0
- package/build-style/text-columns/editor.css +12 -0
- package/build-style/text-columns/style-rtl.css +12 -0
- package/build-style/text-columns/style.css +12 -0
- package/build-style/theme-rtl.css +12 -0
- package/build-style/theme.css +12 -0
- package/build-style/verse/style-rtl.css +12 -0
- package/build-style/verse/style.css +12 -0
- package/build-style/video/editor-rtl.css +12 -0
- package/build-style/video/editor.css +12 -0
- package/build-style/video/style-rtl.css +14 -1
- package/build-style/video/style.css +14 -1
- package/build-style/video/theme-rtl.css +12 -0
- package/build-style/video/theme.css +12 -0
- package/package.json +32 -30
- package/src/audio/edit.native.js +1 -2
- package/src/audio/index.js +1 -0
- package/src/avatar/edit.js +1 -0
- package/src/avatar/user-control.js +1 -0
- package/src/block/block.json +1 -2
- package/src/block/edit.js +14 -3
- package/src/block/edit.native.js +24 -12
- package/src/block/editor.scss +17 -0
- package/src/block/index.php +1 -2
- package/src/block/test/edit.native.js +28 -32
- package/src/button/edit.native.js +1 -0
- package/src/buttons/test/edit.native.js +40 -51
- package/src/code/transforms.js +3 -1
- package/src/columns/edit.js +1 -0
- package/src/columns/edit.native.js +18 -26
- package/src/comment-author-avatar/edit.js +1 -0
- package/src/cover/edit/inspector-controls.js +2 -0
- package/src/cover/edit.native.js +32 -19
- package/src/cover/test/edit.native.js +73 -126
- package/src/embed/embed-controls.native.js +1 -0
- package/src/embed/embed-preview.native.js +1 -2
- package/src/embed/test/index.native.js +237 -231
- package/src/file/inspector.js +1 -0
- package/src/file/test/__snapshots__/edit.native.js.snap +2 -6
- package/src/gallery/edit.js +15 -5
- package/src/gallery/gallery.native.js +1 -2
- package/src/gallery/shared.js +7 -11
- package/src/gallery/transforms.js +1 -6
- package/src/gallery/use-get-media.js +1 -1
- package/src/gallery/use-get-media.native.js +2 -1
- package/src/gallery/v1/edit.js +8 -7
- package/src/gallery/v1/gallery.native.js +1 -2
- package/src/gallery/v1/shared.js +7 -2
- package/src/group/block.json +3 -1
- package/src/group/edit.js +2 -6
- package/src/group/placeholder.js +6 -25
- package/src/group/test/__snapshots__/edit.native.js.snap +1 -1
- package/src/heading/block.json +1 -2
- package/src/heading/deprecated.js +209 -136
- package/src/heading/index.php +52 -0
- package/src/heading/test/__snapshots__/index.native.js.snap +7 -0
- package/src/heading/test/index.native.js +44 -0
- package/src/home-link/index.php +1 -1
- package/src/html/block.json +1 -1
- package/src/image/edit.js +7 -2
- package/src/image/edit.native.js +2 -1
- package/src/image/editor.scss +0 -11
- package/src/image/image.js +13 -8
- package/src/image/test/edit.native.js +14 -10
- package/src/index.js +2 -0
- package/src/latest-comments/edit.js +1 -0
- package/src/latest-posts/edit.js +2 -0
- package/src/list/test/edit.native.js +53 -45
- package/src/list/transforms.js +0 -11
- package/src/list/utils.js +6 -2
- package/src/list-item/index.js +2 -0
- package/src/list-item/transforms.js +17 -0
- package/src/list-item/utils.js +10 -1
- package/src/media-text/edit.js +5 -3
- package/src/missing/test/edit-integration.native.js +10 -12
- package/src/navigation/edit/are-blocks-dirty.js +51 -0
- package/src/navigation/edit/index.js +230 -298
- package/src/navigation/edit/menu-inspector-controls.js +78 -0
- package/src/navigation/edit/navigation-menu-selector.js +5 -16
- package/src/navigation/edit/test/are-blocks-dirty.js +121 -0
- package/src/navigation/edit/unsaved-inner-blocks.js +12 -7
- package/src/navigation/index.php +57 -10
- package/src/navigation/view-modal.js +11 -1
- package/src/navigation-link/edit.js +58 -329
- package/src/navigation-link/index.php +32 -0
- package/src/navigation-link/link-ui.js +213 -0
- package/src/navigation-link/test/edit.js +23 -82
- package/src/navigation-link/transforms.js +14 -0
- package/src/navigation-link/update-attributes.js +99 -0
- package/src/navigation-submenu/edit.js +57 -177
- package/src/navigation-submenu/index.php +40 -0
- package/src/page-list/block.json +6 -1
- package/src/page-list/constants.js +8 -0
- package/src/page-list/convert-to-links-modal.js +19 -76
- package/src/page-list/convert-to-navigation-links.js +60 -0
- package/src/page-list/edit.js +179 -118
- package/src/page-list/index.php +9 -0
- package/src/page-list/test/convert-to-links-modal.js +28 -34
- package/src/page-list-item/block.json +51 -0
- package/src/page-list-item/edit.js +94 -0
- package/src/page-list-item/index.js +24 -0
- package/src/page-list-item/init.js +6 -0
- package/src/paragraph/index.js +0 -6
- package/src/post-author/edit.js +3 -2
- package/src/post-content/index.php +1 -2
- package/src/post-featured-image/index.php +7 -2
- package/src/post-featured-image/overlay.js +1 -0
- package/src/post-template/block.json +8 -0
- package/src/preformatted/transforms.js +4 -1
- package/src/query/block.json +0 -8
- package/src/query/deprecated.js +257 -86
- package/src/query/edit/inspector-controls/index.js +1 -0
- package/src/query/edit/query-placeholder.js +4 -16
- package/src/rss/edit.js +3 -0
- package/src/search/edit.native.js +31 -27
- package/src/search/index.js +5 -1
- package/src/shortcode/test/edit.native.js +15 -18
- package/src/site-logo/edit.js +13 -5
- package/src/site-logo/index.js +1 -0
- package/src/site-title/index.js +1 -0
- package/src/social-link/social-list.js +2 -7
- package/src/social-link/test/index.native.js +10 -16
- package/src/social-links/test/edit.native.js +4 -3
- package/src/spacer/test/index.native.js +39 -36
- package/src/table/block.json +15 -0
- package/src/table/edit.js +2 -1
- package/src/table/editor.scss +0 -4
- package/src/table/index.js +1 -0
- package/src/table/save.js +5 -1
- package/src/table/state.js +22 -7
- package/src/table/transforms.js +2 -1
- package/src/table-of-contents/edit.js +2 -2
- package/src/tag-cloud/edit.js +3 -2
- package/src/template-part/edit/selection-modal.js +4 -3
- package/src/template-part/edit/utils/hooks.js +7 -3
- package/src/template-part/editor.scss +20 -2
- package/src/template-part/index.php +1 -2
- package/src/text-columns/edit.js +1 -0
- package/src/utils/transformation-categories.native.js +1 -0
- package/src/video/edit.js +1 -1
- package/src/video/edit.native.js +1 -2
- package/test/babel-plugin.js +35 -35
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -111,6 +111,7 @@ export default function QueryInspectorControls(_ref) {
|
|
|
111
111
|
onChange: onPostTypeChange,
|
|
112
112
|
help: __('WordPress contains different types of content and they are divided into collections called “Post types”. By default there are a few different ones such as blog posts and pages, but plugins could add more.')
|
|
113
113
|
}), showColumnsControl && createElement(Fragment, null, createElement(RangeControl, {
|
|
114
|
+
__nextHasNoMarginBottom: true,
|
|
114
115
|
label: __('Columns'),
|
|
115
116
|
value: displayLayout.columns,
|
|
116
117
|
onChange: value => setDisplayLayout({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/query/edit/inspector-controls/index.js"],"names":["PanelBody","TextControl","SelectControl","RangeControl","ToggleControl","Notice","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","InspectorControls","debounce","useEffect","useState","useCallback","OrderControl","AuthorControl","ParentControl","TaxonomyControls","StickyControl","usePostTypes","useIsPostTypeHierarchical","useAllowedControls","isControlAllowed","useTaxonomies","QueryInspectorControls","attributes","setQuery","setDisplayLayout","query","displayLayout","order","orderBy","author","authorIds","postType","sticky","inherit","taxQuery","parents","allowedControls","showSticky","setShowSticky","postTypesTaxonomiesMap","postTypesSelectOptions","taxonomies","isPostTypeHierarchical","onPostTypeChange","newValue","updateQuery","supportedTaxonomies","updatedTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","includes","keys","length","undefined","querySearch","setQuerySearch","search","onChangeDebounced","cancel","showInheritControl","showPostTypeControl","showColumnsControl","type","showOrderControl","showStickyControl","showSettingsPanel","value","columns","Math","max","values","some"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tTextControl,\n\tSelectControl,\n\tRangeControl,\n\tToggleControl,\n\tNotice,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { debounce } from '@wordpress/compose';\nimport { useEffect, useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport OrderControl from './order-control';\nimport AuthorControl from './author-control';\nimport ParentControl from './parent-control';\nimport { TaxonomyControls } from './taxonomy-controls';\nimport StickyControl from './sticky-control';\nimport {\n\tusePostTypes,\n\tuseIsPostTypeHierarchical,\n\tuseAllowedControls,\n\tisControlAllowed,\n\tuseTaxonomies,\n} from '../../utils';\n\nexport default function QueryInspectorControls( {\n\tattributes,\n\tsetQuery,\n\tsetDisplayLayout,\n} ) {\n\tconst { query, displayLayout } = attributes;\n\tconst {\n\t\torder,\n\t\torderBy,\n\t\tauthor: authorIds,\n\t\tpostType,\n\t\tsticky,\n\t\tinherit,\n\t\ttaxQuery,\n\t\tparents,\n\t} = query;\n\tconst allowedControls = useAllowedControls( attributes );\n\tconst [ showSticky, setShowSticky ] = useState( postType === 'post' );\n\tconst { postTypesTaxonomiesMap, postTypesSelectOptions } = usePostTypes();\n\tconst taxonomies = useTaxonomies( postType );\n\tconst isPostTypeHierarchical = useIsPostTypeHierarchical( postType );\n\tuseEffect( () => {\n\t\tsetShowSticky( postType === 'post' );\n\t}, [ postType ] );\n\tconst onPostTypeChange = ( newValue ) => {\n\t\tconst updateQuery = { postType: newValue };\n\t\t// We need to dynamically update the `taxQuery` property,\n\t\t// by removing any not supported taxonomy from the query.\n\t\tconst supportedTaxonomies = postTypesTaxonomiesMap[ newValue ];\n\t\tconst updatedTaxQuery = Object.entries( taxQuery || {} ).reduce(\n\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\tif ( supportedTaxonomies.includes( taxonomySlug ) ) {\n\t\t\t\t\taccumulator[ taxonomySlug ] = terms;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t\tupdateQuery.taxQuery = !! Object.keys( updatedTaxQuery ).length\n\t\t\t? updatedTaxQuery\n\t\t\t: undefined;\n\n\t\tif ( newValue !== 'post' ) {\n\t\t\tupdateQuery.sticky = '';\n\t\t}\n\t\t// We need to reset `parents` because they are tied to each post type.\n\t\tupdateQuery.parents = [];\n\t\tsetQuery( updateQuery );\n\t};\n\tconst [ querySearch, setQuerySearch ] = useState( query.search );\n\tconst onChangeDebounced = useCallback(\n\t\tdebounce( () => {\n\t\t\tif ( query.search !== querySearch ) {\n\t\t\t\tsetQuery( { search: querySearch } );\n\t\t\t}\n\t\t}, 250 ),\n\t\t[ querySearch, query.search ]\n\t);\n\tuseEffect( () => {\n\t\tonChangeDebounced();\n\t\treturn onChangeDebounced.cancel;\n\t}, [ querySearch, onChangeDebounced ] );\n\tconst showInheritControl = isControlAllowed( allowedControls, 'inherit' );\n\tconst showPostTypeControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'postType' );\n\tconst showColumnsControl = displayLayout?.type === 'flex';\n\tconst showOrderControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'order' );\n\tconst showStickyControl =\n\t\t! inherit &&\n\t\tshowSticky &&\n\t\tisControlAllowed( allowedControls, 'sticky' );\n\tconst showSettingsPanel =\n\t\tshowInheritControl ||\n\t\tshowPostTypeControl ||\n\t\tshowColumnsControl ||\n\t\tshowOrderControl ||\n\t\tshowStickyControl;\n\treturn (\n\t\t<>\n\t\t\t{ showSettingsPanel && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t{ showInheritControl && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Inherit query from template' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Toggle to use the global query context that is set with the current template, such as an archive or search. Disable to customize the settings independently.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ !! inherit }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { inherit: !! value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showPostTypeControl && (\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\toptions={ postTypesSelectOptions }\n\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\tlabel={ __( 'Post type' ) }\n\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'WordPress contains different types of content and they are divided into collections called “Post types”. By default there are a few different ones such as blog posts and pages, but plugins could add more.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showColumnsControl && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\t\tvalue={ displayLayout.columns }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetDisplayLayout( { columns: value } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\t\t\tmax={ Math.max( 6, displayLayout.columns ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ displayLayout.columns > 6 && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showOrderControl && (\n\t\t\t\t\t\t\t<OrderControl\n\t\t\t\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showStickyControl && (\n\t\t\t\t\t\t\t<StickyControl\n\t\t\t\t\t\t\t\tvalue={ sticky }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { sticky: value } )\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</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t{ ! inherit && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tclassName=\"block-library-query-toolspanel__filters\"\n\t\t\t\t\t\tlabel={ __( 'Filters' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\tauthor: '',\n\t\t\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\t\t\tsearch: '',\n\t\t\t\t\t\t\t\ttaxQuery: null,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ !! taxonomies?.length &&\n\t\t\t\t\t\t\tisControlAllowed( allowedControls, 'taxQuery' ) && (\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Taxonomies' ) }\n\t\t\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t\t\tObject.values( taxQuery || {} ).some(\n\t\t\t\t\t\t\t\t\t\t\t( terms ) => !! terms.length\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\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetQuery( { taxQuery: null } )\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\t\t<TaxonomyControls\n\t\t\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\t\t\tquery={ query }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isControlAllowed( allowedControls, 'author' ) && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\thasValue={ () => !! authorIds }\n\t\t\t\t\t\t\t\tlabel={ __( 'Authors' ) }\n\t\t\t\t\t\t\t\tonDeselect={ () => setQuery( { author: '' } ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<AuthorControl\n\t\t\t\t\t\t\t\t\tvalue={ authorIds }\n\t\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isControlAllowed( allowedControls, 'search' ) && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\thasValue={ () => !! querySearch }\n\t\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\t\tonDeselect={ () => setQuerySearch( '' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\t\t\tvalue={ querySearch }\n\t\t\t\t\t\t\t\t\tonChange={ setQuerySearch }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isPostTypeHierarchical &&\n\t\t\t\t\t\t\tisControlAllowed( allowedControls, 'parents' ) && (\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => !! parents?.length }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Parents' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetQuery( { parents: [] } )\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\t\t<ParentControl\n\t\t\t\t\t\t\t\t\t\tparents={ parents }\n\t\t\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/query/edit/inspector-controls/index.js"],"names":["PanelBody","TextControl","SelectControl","RangeControl","ToggleControl","Notice","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","InspectorControls","debounce","useEffect","useState","useCallback","OrderControl","AuthorControl","ParentControl","TaxonomyControls","StickyControl","usePostTypes","useIsPostTypeHierarchical","useAllowedControls","isControlAllowed","useTaxonomies","QueryInspectorControls","attributes","setQuery","setDisplayLayout","query","displayLayout","order","orderBy","author","authorIds","postType","sticky","inherit","taxQuery","parents","allowedControls","showSticky","setShowSticky","postTypesTaxonomiesMap","postTypesSelectOptions","taxonomies","isPostTypeHierarchical","onPostTypeChange","newValue","updateQuery","supportedTaxonomies","updatedTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","includes","keys","length","undefined","querySearch","setQuerySearch","search","onChangeDebounced","cancel","showInheritControl","showPostTypeControl","showColumnsControl","type","showOrderControl","showStickyControl","showSettingsPanel","value","columns","Math","max","values","some"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tTextControl,\n\tSelectControl,\n\tRangeControl,\n\tToggleControl,\n\tNotice,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { debounce } from '@wordpress/compose';\nimport { useEffect, useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport OrderControl from './order-control';\nimport AuthorControl from './author-control';\nimport ParentControl from './parent-control';\nimport { TaxonomyControls } from './taxonomy-controls';\nimport StickyControl from './sticky-control';\nimport {\n\tusePostTypes,\n\tuseIsPostTypeHierarchical,\n\tuseAllowedControls,\n\tisControlAllowed,\n\tuseTaxonomies,\n} from '../../utils';\n\nexport default function QueryInspectorControls( {\n\tattributes,\n\tsetQuery,\n\tsetDisplayLayout,\n} ) {\n\tconst { query, displayLayout } = attributes;\n\tconst {\n\t\torder,\n\t\torderBy,\n\t\tauthor: authorIds,\n\t\tpostType,\n\t\tsticky,\n\t\tinherit,\n\t\ttaxQuery,\n\t\tparents,\n\t} = query;\n\tconst allowedControls = useAllowedControls( attributes );\n\tconst [ showSticky, setShowSticky ] = useState( postType === 'post' );\n\tconst { postTypesTaxonomiesMap, postTypesSelectOptions } = usePostTypes();\n\tconst taxonomies = useTaxonomies( postType );\n\tconst isPostTypeHierarchical = useIsPostTypeHierarchical( postType );\n\tuseEffect( () => {\n\t\tsetShowSticky( postType === 'post' );\n\t}, [ postType ] );\n\tconst onPostTypeChange = ( newValue ) => {\n\t\tconst updateQuery = { postType: newValue };\n\t\t// We need to dynamically update the `taxQuery` property,\n\t\t// by removing any not supported taxonomy from the query.\n\t\tconst supportedTaxonomies = postTypesTaxonomiesMap[ newValue ];\n\t\tconst updatedTaxQuery = Object.entries( taxQuery || {} ).reduce(\n\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\tif ( supportedTaxonomies.includes( taxonomySlug ) ) {\n\t\t\t\t\taccumulator[ taxonomySlug ] = terms;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t\tupdateQuery.taxQuery = !! Object.keys( updatedTaxQuery ).length\n\t\t\t? updatedTaxQuery\n\t\t\t: undefined;\n\n\t\tif ( newValue !== 'post' ) {\n\t\t\tupdateQuery.sticky = '';\n\t\t}\n\t\t// We need to reset `parents` because they are tied to each post type.\n\t\tupdateQuery.parents = [];\n\t\tsetQuery( updateQuery );\n\t};\n\tconst [ querySearch, setQuerySearch ] = useState( query.search );\n\tconst onChangeDebounced = useCallback(\n\t\tdebounce( () => {\n\t\t\tif ( query.search !== querySearch ) {\n\t\t\t\tsetQuery( { search: querySearch } );\n\t\t\t}\n\t\t}, 250 ),\n\t\t[ querySearch, query.search ]\n\t);\n\tuseEffect( () => {\n\t\tonChangeDebounced();\n\t\treturn onChangeDebounced.cancel;\n\t}, [ querySearch, onChangeDebounced ] );\n\tconst showInheritControl = isControlAllowed( allowedControls, 'inherit' );\n\tconst showPostTypeControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'postType' );\n\tconst showColumnsControl = displayLayout?.type === 'flex';\n\tconst showOrderControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'order' );\n\tconst showStickyControl =\n\t\t! inherit &&\n\t\tshowSticky &&\n\t\tisControlAllowed( allowedControls, 'sticky' );\n\tconst showSettingsPanel =\n\t\tshowInheritControl ||\n\t\tshowPostTypeControl ||\n\t\tshowColumnsControl ||\n\t\tshowOrderControl ||\n\t\tshowStickyControl;\n\treturn (\n\t\t<>\n\t\t\t{ showSettingsPanel && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t{ showInheritControl && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Inherit query from template' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Toggle to use the global query context that is set with the current template, such as an archive or search. Disable to customize the settings independently.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ !! inherit }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { inherit: !! value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showPostTypeControl && (\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\toptions={ postTypesSelectOptions }\n\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\tlabel={ __( 'Post type' ) }\n\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'WordPress contains different types of content and they are divided into collections called “Post types”. By default there are a few different ones such as blog posts and pages, but plugins could add more.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showColumnsControl && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\t\tvalue={ displayLayout.columns }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetDisplayLayout( { columns: value } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\t\t\tmax={ Math.max( 6, displayLayout.columns ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ displayLayout.columns > 6 && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showOrderControl && (\n\t\t\t\t\t\t\t<OrderControl\n\t\t\t\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showStickyControl && (\n\t\t\t\t\t\t\t<StickyControl\n\t\t\t\t\t\t\t\tvalue={ sticky }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { sticky: value } )\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</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t{ ! inherit && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tclassName=\"block-library-query-toolspanel__filters\"\n\t\t\t\t\t\tlabel={ __( 'Filters' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\tauthor: '',\n\t\t\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\t\t\tsearch: '',\n\t\t\t\t\t\t\t\ttaxQuery: null,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ !! taxonomies?.length &&\n\t\t\t\t\t\t\tisControlAllowed( allowedControls, 'taxQuery' ) && (\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Taxonomies' ) }\n\t\t\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t\t\tObject.values( taxQuery || {} ).some(\n\t\t\t\t\t\t\t\t\t\t\t( terms ) => !! terms.length\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\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetQuery( { taxQuery: null } )\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\t\t<TaxonomyControls\n\t\t\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\t\t\tquery={ query }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isControlAllowed( allowedControls, 'author' ) && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\thasValue={ () => !! authorIds }\n\t\t\t\t\t\t\t\tlabel={ __( 'Authors' ) }\n\t\t\t\t\t\t\t\tonDeselect={ () => setQuery( { author: '' } ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<AuthorControl\n\t\t\t\t\t\t\t\t\tvalue={ authorIds }\n\t\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isControlAllowed( allowedControls, 'search' ) && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\thasValue={ () => !! querySearch }\n\t\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\t\tonDeselect={ () => setQuerySearch( '' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\t\t\tvalue={ querySearch }\n\t\t\t\t\t\t\t\t\tonChange={ setQuerySearch }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isPostTypeHierarchical &&\n\t\t\t\t\t\t\tisControlAllowed( allowedControls, 'parents' ) && (\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => !! parents?.length }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Parents' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetQuery( { parents: [] } )\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\t\t<ParentControl\n\t\t\t\t\t\t\t\t\t\tparents={ parents }\n\t\t\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -80,21 +80,7 @@ function QueryVariationPicker(_ref2) {
|
|
|
80
80
|
icon,
|
|
81
81
|
label
|
|
82
82
|
} = _ref2;
|
|
83
|
-
const
|
|
84
|
-
defaultVariation,
|
|
85
|
-
scopeVariations
|
|
86
|
-
} = useSelect(select => {
|
|
87
|
-
const {
|
|
88
|
-
getBlockVariations,
|
|
89
|
-
getBlockType,
|
|
90
|
-
getDefaultBlockVariation
|
|
91
|
-
} = select(blocksStore);
|
|
92
|
-
return {
|
|
93
|
-
blockType: getBlockType(name),
|
|
94
|
-
defaultVariation: getDefaultBlockVariation(name, 'block'),
|
|
95
|
-
scopeVariations: getBlockVariations(name, 'block')
|
|
96
|
-
};
|
|
97
|
-
}, [name]);
|
|
83
|
+
const variations = useSelect(select => select(blocksStore).getBlockVariations(name, 'block'), [name]);
|
|
98
84
|
const {
|
|
99
85
|
replaceInnerBlocks
|
|
100
86
|
} = useDispatch(blockEditorStore);
|
|
@@ -102,10 +88,8 @@ function QueryVariationPicker(_ref2) {
|
|
|
102
88
|
return createElement("div", blockProps, createElement(__experimentalBlockVariationPicker, {
|
|
103
89
|
icon: icon,
|
|
104
90
|
label: label,
|
|
105
|
-
variations:
|
|
106
|
-
onSelect:
|
|
107
|
-
let nextVariation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultVariation;
|
|
108
|
-
|
|
91
|
+
variations: variations,
|
|
92
|
+
onSelect: nextVariation => {
|
|
109
93
|
if (nextVariation.attributes) {
|
|
110
94
|
setAttributes({ ...nextVariation.attributes,
|
|
111
95
|
query: { ...nextVariation.attributes.query,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/query/edit/query-placeholder.js"],"names":["useSelect","useDispatch","createBlocksFromInnerBlocksTemplate","store","blocksStore","useState","useBlockProps","blockEditorStore","__experimentalBlockVariationPicker","__experimentalGetMatchingVariation","getMatchingVariation","Button","Placeholder","__","QueryPlaceholder","attributes","clientId","name","openPatternSelectionModal","setAttributes","isStartingBlank","setIsStartingBlank","blockProps","blockType","allVariations","hasPatterns","select","getBlockVariations","getBlockType","getBlockRootClientId","__experimentalGetPatternsByBlockTypes","rootClientId","length","matchingVariation","icon","src","label","title","QueryVariationPicker","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/query/edit/query-placeholder.js"],"names":["useSelect","useDispatch","createBlocksFromInnerBlocksTemplate","store","blocksStore","useState","useBlockProps","blockEditorStore","__experimentalBlockVariationPicker","__experimentalGetMatchingVariation","getMatchingVariation","Button","Placeholder","__","QueryPlaceholder","attributes","clientId","name","openPatternSelectionModal","setAttributes","isStartingBlank","setIsStartingBlank","blockProps","blockType","allVariations","hasPatterns","select","getBlockVariations","getBlockType","getBlockRootClientId","__experimentalGetPatternsByBlockTypes","rootClientId","length","matchingVariation","icon","src","label","title","QueryVariationPicker","variations","replaceInnerBlocks","nextVariation","query","postType","innerBlocks"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalBlockVariationPicker,\n\t__experimentalGetMatchingVariation as getMatchingVariation,\n} from '@wordpress/block-editor';\nimport { Button, Placeholder } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function QueryPlaceholder( {\n\tattributes,\n\tclientId,\n\tname,\n\topenPatternSelectionModal,\n\tsetAttributes,\n} ) {\n\tconst [ isStartingBlank, setIsStartingBlank ] = useState( false );\n\tconst blockProps = useBlockProps();\n\n\tconst { blockType, allVariations, hasPatterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockVariations, getBlockType } = select( blocksStore );\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetPatternsByBlockTypes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tallVariations: getBlockVariations( name ),\n\t\t\t\thasPatterns: !! __experimentalGetPatternsByBlockTypes(\n\t\t\t\t\tname,\n\t\t\t\t\trootClientId\n\t\t\t\t).length,\n\t\t\t};\n\t\t},\n\t\t[ name, clientId ]\n\t);\n\n\tconst matchingVariation = getMatchingVariation( attributes, allVariations );\n\tconst icon =\n\t\tmatchingVariation?.icon?.src ||\n\t\tmatchingVariation?.icon ||\n\t\tblockType?.icon?.src;\n\tconst label = matchingVariation?.title || blockType?.title;\n\tif ( isStartingBlank ) {\n\t\treturn (\n\t\t\t<QueryVariationPicker\n\t\t\t\tclientId={ clientId }\n\t\t\t\tname={ name }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Choose a pattern for the query loop or start blank.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ !! hasPatterns && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ openPatternSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsStartingBlank( true );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t</Button>\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nfunction QueryVariationPicker( {\n\tclientId,\n\tname,\n\tattributes,\n\tsetAttributes,\n\ticon,\n\tlabel,\n} ) {\n\tconst variations = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockVariations( name, 'block' ),\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tvariations={ variations }\n\t\t\t\tonSelect={ ( nextVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t...nextVariation.attributes,\n\t\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\t\t...nextVariation.attributes.query,\n\t\t\t\t\t\t\t\tpostType:\n\t\t\t\t\t\t\t\t\tattributes.query.postType ||\n\t\t\t\t\t\t\t\t\tnextVariation.attributes.query.postType,\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\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tfalse\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</div>\n\t);\n}\n"]}
|
|
@@ -60,14 +60,6 @@ const metadata = {
|
|
|
60
60
|
supports: {
|
|
61
61
|
align: ["wide", "full"],
|
|
62
62
|
html: false,
|
|
63
|
-
color: {
|
|
64
|
-
gradients: true,
|
|
65
|
-
link: true,
|
|
66
|
-
__experimentalDefaultControls: {
|
|
67
|
-
background: true,
|
|
68
|
-
text: true
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
63
|
__experimentalLayout: true
|
|
72
64
|
},
|
|
73
65
|
editorStyle: "wp-block-query-editor"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/query/index.js"],"names":["loop","icon","addFilter","initBlock","edit","save","variations","deprecated","queryInspectorControls","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,IAAIC,IAAjB,QAA6B,kBAA7B;AACA,SAASC,SAAT,QAA0B,kBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/query/index.js"],"names":["loop","icon","addFilter","initBlock","edit","save","variations","deprecated","queryInspectorControls","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,IAAIC,IAAjB,QAA6B,kBAA7B;AACA,SAASC,SAAT,QAA0B,kBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,sBAAP,MAAmC,SAAnC;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBV,EAAAA,IADuB;AAEvBG,EAAAA,IAFuB;AAGvBC,EAAAA,IAHuB;AAIvBC,EAAAA,UAJuB;AAKvBC,EAAAA;AALuB,CAAjB;AAQP,OAAO,MAAMK,IAAI,GAAG,MAAM;AACzBV,EAAAA,SAAS,CAAE,kBAAF,EAAsB,YAAtB,EAAoCM,sBAApC,CAAT;AAEA,SAAOL,SAAS,CAAE;AAAEM,IAAAA,IAAF;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA;AAAlB,GAAF,CAAhB;AACA,CAJM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { loop as icon } from '@wordpress/icons';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport variations from './variations';\nimport deprecated from './deprecated';\nimport queryInspectorControls from './hooks';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tvariations,\n\tdeprecated,\n};\n\nexport const init = () => {\n\taddFilter( 'editor.BlockEdit', 'core/query', queryInspectorControls );\n\n\treturn initBlock( { name, metadata, settings } );\n};\n"]}
|
|
@@ -70,14 +70,6 @@ const {
|
|
|
70
70
|
supports: {
|
|
71
71
|
align: ["wide", "full"],
|
|
72
72
|
html: false,
|
|
73
|
-
color: {
|
|
74
|
-
gradients: true,
|
|
75
|
-
link: true,
|
|
76
|
-
__experimentalDefaultControls: {
|
|
77
|
-
background: true,
|
|
78
|
-
text: true
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
73
|
__experimentalLayout: true
|
|
82
74
|
},
|
|
83
75
|
editorStyle: "wp-block-query-editor"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/query/utils.js"],"names":["get","useSelect","useMemo","store","coreStore","blockEditorStore","decodeEntities","cloneBlock","blocksStore","getEntitiesInfo","entities","mapping","reduce","accumulator","entity","mapById","mapByName","names","id","name","push","mapToIHasNameAndId","path","map","usePostTypes","postTypes","select","getPostTypes","excludedPostTypes","filteredPostTypes","per_page","filter","viewable","slug","includes","postTypesTaxonomiesMap","length","type","taxonomies","postTypesSelectOptions","labels","label","singular_name","value","useTaxonomies","postType","getTaxonomies","filteredTaxonomies","context","useIsPostTypeHierarchical","getPostType","hierarchical","useAllowedControls","attributes","getActiveBlockVariation","queryLoopName","allowedControls","isControlAllowed","key","getTransformedBlocksFromPattern","blocks","queryBlockAttributes","query","inherit","clonedBlocks","block","queryClientIds","blocksQueue","shift","clientId","innerBlocks","forEach","innerBlock","newBlocks","useBlockNameForPatterns","activeVariationName","blockName","activeVariationPatterns","getBlockRootClientId","__experimentalGetPatternsByBlockTypes","rootClientId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { cloneBlock, store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as queryLoopName } from './block.json';\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\n/**\n * The object used in Query block that contains info and helper mappings\n * from an array of IHasNameAndId objects.\n *\n * @typedef {Object} QueryEntitiesInfo\n * @property {IHasNameAndId[]} entities The array of entities.\n * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value.\n * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.\n * @property {string[]} names Array with the entities' names.\n */\n\n/**\n * Returns a helper object with mapping from Objects that implement\n * the `IHasNameAndId` interface. The returned object is used for\n * integration with `FormTokenField` component.\n *\n * @param {IHasNameAndId[]} entities The entities to extract of helper object.\n * @return {QueryEntitiesInfo} The object with the entities information.\n */\nexport const getEntitiesInfo = ( entities ) => {\n\tconst mapping = entities?.reduce(\n\t\t( accumulator, entity ) => {\n\t\t\tconst { mapById, mapByName, names } = accumulator;\n\t\t\tmapById[ entity.id ] = entity;\n\t\t\tmapByName[ entity.name ] = entity;\n\t\t\tnames.push( entity.name );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ mapById: {}, mapByName: {}, names: [] }\n\t);\n\treturn {\n\t\tentities,\n\t\t...mapping,\n\t};\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( get( entity, path ) ),\n\t} ) );\n};\n\n/**\n * Returns a helper object that contains:\n * 1. An `options` object from the available post types, to be passed to a `SelectControl`.\n * 2. A helper map with available taxonomies per post type.\n *\n * @return {Object} The helper object related to post types.\n */\nexport const usePostTypes = () => {\n\tconst postTypes = useSelect( ( select ) => {\n\t\tconst { getPostTypes } = select( coreStore );\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\tconst filteredPostTypes = getPostTypes( { per_page: -1 } )?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t\treturn filteredPostTypes;\n\t}, [] );\n\tconst postTypesTaxonomiesMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) return;\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] = type.taxonomies;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\tconst postTypesSelectOptions = useMemo(\n\t\t() =>\n\t\t\t( postTypes || [] ).map( ( { labels, slug } ) => ( {\n\t\t\t\tlabel: labels.singular_name,\n\t\t\t\tvalue: slug,\n\t\t\t} ) ),\n\t\t[ postTypes ]\n\t);\n\treturn { postTypesTaxonomiesMap, postTypesSelectOptions };\n};\n\n/**\n * Hook that returns the taxonomies associated with a specific post type.\n *\n * @param {string} postType The post type from which to retrieve the associated taxonomies.\n * @return {Object[]} An array of the associated taxonomies.\n */\nexport const useTaxonomies = ( postType ) => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies } = select( coreStore );\n\t\t\tconst filteredTaxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\t\treturn filteredTaxonomies;\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn taxonomies;\n};\n\n/**\n * Hook that returns whether a specific post type is hierarchical.\n *\n * @param {string} postType The post type to check.\n * @return {boolean} Whether a specific post type is hierarchical.\n */\nexport function useIsPostTypeHierarchical( postType ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn type?.viewable && type?.hierarchical;\n\t\t},\n\t\t[ postType ]\n\t);\n}\n\n/**\n * Hook that returns the query properties' names defined by the active\n * block variation, to determine which block's filters to show.\n *\n * @param {Object} attributes Block attributes.\n * @return {string[]} An array of the query attributes.\n */\nexport function useAllowedControls( attributes ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\tqueryLoopName,\n\t\t\t\tattributes\n\t\t\t)?.allowedControls,\n\n\t\t[ attributes ]\n\t);\n}\nexport function isControlAllowed( allowedControls, key ) {\n\t// Every controls is allowed if the list is not defined.\n\tif ( ! allowedControls ) {\n\t\treturn true;\n\t}\n\treturn allowedControls.includes( key );\n}\n\n/**\n * Clones a pattern's blocks and then recurses over that list of blocks,\n * transforming them to retain some `query` attribute properties.\n * For now we retain the `postType` and `inherit` properties as they are\n * fundamental for the expected functionality of the block and don't affect\n * its design and presentation.\n *\n * Returns the cloned/transformed blocks and array of existing Query Loop\n * client ids for further manipulation, in order to avoid multiple recursions.\n *\n * @param {WPBlock[]} blocks The list of blocks to look through and transform(mutate).\n * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.\n * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.\n */\nexport const getTransformedBlocksFromPattern = (\n\tblocks,\n\tqueryBlockAttributes\n) => {\n\tconst {\n\t\tquery: { postType, inherit },\n\t} = queryBlockAttributes;\n\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\tconst queryClientIds = [];\n\tconst blocksQueue = [ ...clonedBlocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\t\tif ( block.name === 'core/query' ) {\n\t\t\tblock.attributes.query = {\n\t\t\t\t...block.attributes.query,\n\t\t\t\tpostType,\n\t\t\t\tinherit,\n\t\t\t};\n\t\t\tqueryClientIds.push( block.clientId );\n\t\t}\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\treturn { newBlocks: clonedBlocks, queryClientIds };\n};\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific patterns for this variation.\n * If there are, these patterns are going to be the only ones suggested to\n * the user in setup and replace flow, without including the default ones\n * for Query Loop.\n *\n * If there are no such patterns, the default ones for Query Loop are going\n * to be suggested.\n *\n * @param {string} clientId The block's client ID.\n * @param {Object} attributes The block's attributes.\n * @return {string} The block name to be used in the patterns suggestions.\n */\nexport function useBlockNameForPatterns( clientId, attributes ) {\n\tconst activeVariationName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\tqueryLoopName,\n\t\t\t\tattributes\n\t\t\t)?.name,\n\n\t\t[ attributes ]\n\t);\n\tconst blockName = `${ queryLoopName }/${ activeVariationName }`;\n\tconst activeVariationPatterns = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetPatternsByBlockTypes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn __experimentalGetPatternsByBlockTypes(\n\t\t\t\tblockName,\n\t\t\t\trootClientId\n\t\t\t);\n\t\t},\n\t\t[ clientId, activeVariationName ]\n\t);\n\treturn activeVariationPatterns?.length ? blockName : queryLoopName;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/query/utils.js"],"names":["get","useSelect","useMemo","store","coreStore","blockEditorStore","decodeEntities","cloneBlock","blocksStore","getEntitiesInfo","entities","mapping","reduce","accumulator","entity","mapById","mapByName","names","id","name","push","mapToIHasNameAndId","path","map","usePostTypes","postTypes","select","getPostTypes","excludedPostTypes","filteredPostTypes","per_page","filter","viewable","slug","includes","postTypesTaxonomiesMap","length","type","taxonomies","postTypesSelectOptions","labels","label","singular_name","value","useTaxonomies","postType","getTaxonomies","filteredTaxonomies","context","useIsPostTypeHierarchical","getPostType","hierarchical","useAllowedControls","attributes","getActiveBlockVariation","queryLoopName","allowedControls","isControlAllowed","key","getTransformedBlocksFromPattern","blocks","queryBlockAttributes","query","inherit","clonedBlocks","block","queryClientIds","blocksQueue","shift","clientId","innerBlocks","forEach","innerBlock","newBlocks","useBlockNameForPatterns","activeVariationName","blockName","activeVariationPatterns","getBlockRootClientId","__experimentalGetPatternsByBlockTypes","rootClientId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { cloneBlock, store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as queryLoopName } from './block.json';\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\n/**\n * The object used in Query block that contains info and helper mappings\n * from an array of IHasNameAndId objects.\n *\n * @typedef {Object} QueryEntitiesInfo\n * @property {IHasNameAndId[]} entities The array of entities.\n * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value.\n * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.\n * @property {string[]} names Array with the entities' names.\n */\n\n/**\n * Returns a helper object with mapping from Objects that implement\n * the `IHasNameAndId` interface. The returned object is used for\n * integration with `FormTokenField` component.\n *\n * @param {IHasNameAndId[]} entities The entities to extract of helper object.\n * @return {QueryEntitiesInfo} The object with the entities information.\n */\nexport const getEntitiesInfo = ( entities ) => {\n\tconst mapping = entities?.reduce(\n\t\t( accumulator, entity ) => {\n\t\t\tconst { mapById, mapByName, names } = accumulator;\n\t\t\tmapById[ entity.id ] = entity;\n\t\t\tmapByName[ entity.name ] = entity;\n\t\t\tnames.push( entity.name );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ mapById: {}, mapByName: {}, names: [] }\n\t);\n\treturn {\n\t\tentities,\n\t\t...mapping,\n\t};\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( get( entity, path ) ),\n\t} ) );\n};\n\n/**\n * Returns a helper object that contains:\n * 1. An `options` object from the available post types, to be passed to a `SelectControl`.\n * 2. A helper map with available taxonomies per post type.\n *\n * @return {Object} The helper object related to post types.\n */\nexport const usePostTypes = () => {\n\tconst postTypes = useSelect( ( select ) => {\n\t\tconst { getPostTypes } = select( coreStore );\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\tconst filteredPostTypes = getPostTypes( { per_page: -1 } )?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t\treturn filteredPostTypes;\n\t}, [] );\n\tconst postTypesTaxonomiesMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) return;\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] = type.taxonomies;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\tconst postTypesSelectOptions = useMemo(\n\t\t() =>\n\t\t\t( postTypes || [] ).map( ( { labels, slug } ) => ( {\n\t\t\t\tlabel: labels.singular_name,\n\t\t\t\tvalue: slug,\n\t\t\t} ) ),\n\t\t[ postTypes ]\n\t);\n\treturn { postTypesTaxonomiesMap, postTypesSelectOptions };\n};\n\n/**\n * Hook that returns the taxonomies associated with a specific post type.\n *\n * @param {string} postType The post type from which to retrieve the associated taxonomies.\n * @return {Object[]} An array of the associated taxonomies.\n */\nexport const useTaxonomies = ( postType ) => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies } = select( coreStore );\n\t\t\tconst filteredTaxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\t\treturn filteredTaxonomies;\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn taxonomies;\n};\n\n/**\n * Hook that returns whether a specific post type is hierarchical.\n *\n * @param {string} postType The post type to check.\n * @return {boolean} Whether a specific post type is hierarchical.\n */\nexport function useIsPostTypeHierarchical( postType ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn type?.viewable && type?.hierarchical;\n\t\t},\n\t\t[ postType ]\n\t);\n}\n\n/**\n * Hook that returns the query properties' names defined by the active\n * block variation, to determine which block's filters to show.\n *\n * @param {Object} attributes Block attributes.\n * @return {string[]} An array of the query attributes.\n */\nexport function useAllowedControls( attributes ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\tqueryLoopName,\n\t\t\t\tattributes\n\t\t\t)?.allowedControls,\n\n\t\t[ attributes ]\n\t);\n}\nexport function isControlAllowed( allowedControls, key ) {\n\t// Every controls is allowed if the list is not defined.\n\tif ( ! allowedControls ) {\n\t\treturn true;\n\t}\n\treturn allowedControls.includes( key );\n}\n\n/**\n * Clones a pattern's blocks and then recurses over that list of blocks,\n * transforming them to retain some `query` attribute properties.\n * For now we retain the `postType` and `inherit` properties as they are\n * fundamental for the expected functionality of the block and don't affect\n * its design and presentation.\n *\n * Returns the cloned/transformed blocks and array of existing Query Loop\n * client ids for further manipulation, in order to avoid multiple recursions.\n *\n * @param {WPBlock[]} blocks The list of blocks to look through and transform(mutate).\n * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.\n * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.\n */\nexport const getTransformedBlocksFromPattern = (\n\tblocks,\n\tqueryBlockAttributes\n) => {\n\tconst {\n\t\tquery: { postType, inherit },\n\t} = queryBlockAttributes;\n\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\tconst queryClientIds = [];\n\tconst blocksQueue = [ ...clonedBlocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\t\tif ( block.name === 'core/query' ) {\n\t\t\tblock.attributes.query = {\n\t\t\t\t...block.attributes.query,\n\t\t\t\tpostType,\n\t\t\t\tinherit,\n\t\t\t};\n\t\t\tqueryClientIds.push( block.clientId );\n\t\t}\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\treturn { newBlocks: clonedBlocks, queryClientIds };\n};\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific patterns for this variation.\n * If there are, these patterns are going to be the only ones suggested to\n * the user in setup and replace flow, without including the default ones\n * for Query Loop.\n *\n * If there are no such patterns, the default ones for Query Loop are going\n * to be suggested.\n *\n * @param {string} clientId The block's client ID.\n * @param {Object} attributes The block's attributes.\n * @return {string} The block name to be used in the patterns suggestions.\n */\nexport function useBlockNameForPatterns( clientId, attributes ) {\n\tconst activeVariationName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\tqueryLoopName,\n\t\t\t\tattributes\n\t\t\t)?.name,\n\n\t\t[ attributes ]\n\t);\n\tconst blockName = `${ queryLoopName }/${ activeVariationName }`;\n\tconst activeVariationPatterns = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetPatternsByBlockTypes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn __experimentalGetPatternsByBlockTypes(\n\t\t\t\tblockName,\n\t\t\t\trootClientId\n\t\t\t);\n\t\t},\n\t\t[ clientId, activeVariationName ]\n\t);\n\treturn activeVariationPatterns?.length ? blockName : queryLoopName;\n}\n"]}
|
package/build-module/rss/edit.js
CHANGED
|
@@ -95,6 +95,7 @@ export default function RSSEdit(_ref) {
|
|
|
95
95
|
})), createElement(InspectorControls, null, createElement(PanelBody, {
|
|
96
96
|
title: __('Settings')
|
|
97
97
|
}, createElement(RangeControl, {
|
|
98
|
+
__nextHasNoMarginBottom: true,
|
|
98
99
|
label: __('Number of items'),
|
|
99
100
|
value: itemsToShow,
|
|
100
101
|
onChange: value => setAttributes({
|
|
@@ -116,6 +117,7 @@ export default function RSSEdit(_ref) {
|
|
|
116
117
|
checked: displayExcerpt,
|
|
117
118
|
onChange: toggleAttribute('displayExcerpt')
|
|
118
119
|
}), displayExcerpt && createElement(RangeControl, {
|
|
120
|
+
__nextHasNoMarginBottom: true,
|
|
119
121
|
label: __('Max number of words in excerpt'),
|
|
120
122
|
value: excerptLength,
|
|
121
123
|
onChange: value => setAttributes({
|
|
@@ -125,6 +127,7 @@ export default function RSSEdit(_ref) {
|
|
|
125
127
|
max: 100,
|
|
126
128
|
required: true
|
|
127
129
|
}), blockLayout === 'grid' && createElement(RangeControl, {
|
|
130
|
+
__nextHasNoMarginBottom: true,
|
|
128
131
|
label: __('Columns'),
|
|
129
132
|
value: columns,
|
|
130
133
|
onChange: value => setAttributes({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/rss/edit.js"],"names":["BlockControls","InspectorControls","useBlockProps","Button","Disabled","PanelBody","Placeholder","RangeControl","TextControl","ToggleControl","ToolbarGroup","useState","grid","list","edit","rss","__","prependHTTP","ServerSideRender","DEFAULT_MIN_ITEMS","DEFAULT_MAX_ITEMS","RSSEdit","attributes","setAttributes","isEditing","setIsEditing","feedURL","blockLayout","columns","displayAuthor","displayDate","displayExcerpt","excerptLength","itemsToShow","toggleAttribute","propName","value","onSubmitURL","event","preventDefault","blockProps","toolbarControls","icon","title","onClick","isActive"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/rss/edit.js"],"names":["BlockControls","InspectorControls","useBlockProps","Button","Disabled","PanelBody","Placeholder","RangeControl","TextControl","ToggleControl","ToolbarGroup","useState","grid","list","edit","rss","__","prependHTTP","ServerSideRender","DEFAULT_MIN_ITEMS","DEFAULT_MAX_ITEMS","RSSEdit","attributes","setAttributes","isEditing","setIsEditing","feedURL","blockLayout","columns","displayAuthor","displayDate","displayExcerpt","excerptLength","itemsToShow","toggleAttribute","propName","value","onSubmitURL","event","preventDefault","blockProps","toolbarControls","icon","title","onClick","isActive"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tDisabled,\n\tPanelBody,\n\tPlaceholder,\n\tRangeControl,\n\tTextControl,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { grid, list, edit, rss } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { prependHTTP } from '@wordpress/url';\nimport ServerSideRender from '@wordpress/server-side-render';\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 20;\n\nexport default function RSSEdit( { attributes, setAttributes } ) {\n\tconst [ isEditing, setIsEditing ] = useState( ! attributes.feedURL );\n\n\tconst {\n\t\tblockLayout,\n\t\tcolumns,\n\t\tdisplayAuthor,\n\t\tdisplayDate,\n\t\tdisplayExcerpt,\n\t\texcerptLength,\n\t\tfeedURL,\n\t\titemsToShow,\n\t} = attributes;\n\n\tfunction toggleAttribute( propName ) {\n\t\treturn () => {\n\t\t\tconst value = attributes[ propName ];\n\n\t\t\tsetAttributes( { [ propName ]: ! value } );\n\t\t};\n\t}\n\n\tfunction onSubmitURL( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( feedURL ) {\n\t\t\tsetAttributes( { feedURL: prependHTTP( feedURL ) } );\n\t\t\tsetIsEditing( false );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps();\n\n\tif ( isEditing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder icon={ rss } label=\"RSS\">\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ onSubmitURL }\n\t\t\t\t\t\tclassName=\"wp-block-rss__placeholder-form\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tplaceholder={ __( 'Enter URL here…' ) }\n\t\t\t\t\t\t\tvalue={ feedURL }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { feedURL: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclassName=\"wp-block-rss__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Use URL' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</form>\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst toolbarControls = [\n\t\t{\n\t\t\ticon: edit,\n\t\t\ttitle: __( 'Edit RSS URL' ),\n\t\t\tonClick: () => setIsEditing( true ),\n\t\t},\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: __( 'List view' ),\n\t\t\tonClick: () => setAttributes( { blockLayout: 'list' } ),\n\t\t\tisActive: blockLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: __( 'Grid view' ),\n\t\t\tonClick: () => setAttributes( { blockLayout: 'grid' } ),\n\t\t\tisActive: blockLayout === 'grid',\n\t\t},\n\t];\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ toolbarControls } />\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Number of items' ) }\n\t\t\t\t\t\tvalue={ itemsToShow }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { itemsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ DEFAULT_MIN_ITEMS }\n\t\t\t\t\t\tmax={ DEFAULT_MAX_ITEMS }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display author' ) }\n\t\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAuthor' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayDate' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display excerpt' ) }\n\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayExcerpt' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ displayExcerpt && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words in excerpt' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 10 }\n\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ blockLayout === 'grid' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\tmax={ 6 }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tblock=\"core/rss\"\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"]}
|
|
@@ -40,6 +40,25 @@ const BUTTON_OPTIONS = [{
|
|
|
40
40
|
value: 'no-button',
|
|
41
41
|
label: __('No button')
|
|
42
42
|
}];
|
|
43
|
+
|
|
44
|
+
function useIsScreenReaderEnabled() {
|
|
45
|
+
const [isScreenReaderEnabled, setIsScreenReaderEnabled] = useState(false);
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
let mounted = true;
|
|
48
|
+
const changeListener = AccessibilityInfo.addEventListener('screenReaderChanged', enabled => setIsScreenReaderEnabled(enabled));
|
|
49
|
+
AccessibilityInfo.isScreenReaderEnabled().then(screenReaderEnabled => {
|
|
50
|
+
if (mounted && screenReaderEnabled) {
|
|
51
|
+
setIsScreenReaderEnabled(screenReaderEnabled);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return () => {
|
|
55
|
+
mounted = false;
|
|
56
|
+
changeListener.remove();
|
|
57
|
+
};
|
|
58
|
+
}, []);
|
|
59
|
+
return isScreenReaderEnabled;
|
|
60
|
+
}
|
|
61
|
+
|
|
43
62
|
export default function SearchEdit(_ref) {
|
|
44
63
|
var _style$baseColors, _style$baseColors2, _style$baseColors2$co, _style$baseColors3, _style$baseColors4, _style$baseColors4$co, _style$baseColors5, _style$baseColors5$bl, _style$baseColors5$bl2, _attributes$style, _styles$richTextButto2;
|
|
45
64
|
|
|
@@ -57,7 +76,7 @@ export default function SearchEdit(_ref) {
|
|
|
57
76
|
const [isPlaceholderSelected, setIsPlaceholderSelected] = useState(false);
|
|
58
77
|
const [isLongButton, setIsLongButton] = useState(false);
|
|
59
78
|
const [buttonWidth, setButtonWidth] = useState(MIN_BUTTON_WIDTH);
|
|
60
|
-
const
|
|
79
|
+
const isScreenReaderEnabled = useIsScreenReaderEnabled();
|
|
61
80
|
const textInputRef = useRef(null);
|
|
62
81
|
const {
|
|
63
82
|
label,
|
|
@@ -67,30 +86,11 @@ export default function SearchEdit(_ref) {
|
|
|
67
86
|
placeholder,
|
|
68
87
|
buttonText
|
|
69
88
|
} = attributes;
|
|
70
|
-
/*
|
|
71
|
-
* Check if screenreader is enabled and save to state. This is important for
|
|
72
|
-
* properly creating accessibilityLabel text.
|
|
73
|
-
*/
|
|
74
|
-
|
|
75
|
-
useEffect(() => {
|
|
76
|
-
const a11yInfoChangeSubscription = AccessibilityInfo.addEventListener('screenReaderChanged', handleScreenReaderToggled);
|
|
77
|
-
AccessibilityInfo.isScreenReaderEnabled().then(screenReaderEnabled => {
|
|
78
|
-
setIsScreenReaderEnabled(screenReaderEnabled);
|
|
79
|
-
});
|
|
80
|
-
return () => {
|
|
81
|
-
a11yInfoChangeSubscription.remove();
|
|
82
|
-
};
|
|
83
|
-
}, []);
|
|
84
|
-
|
|
85
|
-
const handleScreenReaderToggled = screenReaderEnabled => {
|
|
86
|
-
setIsScreenReaderEnabled(screenReaderEnabled);
|
|
87
|
-
};
|
|
88
89
|
/*
|
|
89
90
|
* Called when the value of isSelected changes. Blurs the PlainText component
|
|
90
91
|
* used by the placeholder when this block loses focus.
|
|
91
92
|
*/
|
|
92
93
|
|
|
93
|
-
|
|
94
94
|
useEffect(() => {
|
|
95
95
|
if (hasTextInput() && isPlaceholderSelected && !isSelected) {
|
|
96
96
|
textInputRef.current.blur();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/search/edit.native.js"],"names":["View","AccessibilityInfo","classnames","RichText","PlainText","useBlockProps","InspectorControls","PanelBody","SelectControl","ToggleControl","Icon","__","search","useRef","useEffect","useState","usePreferredColorSchemeStyle","styles","MIN_BUTTON_WIDTH","MARGINS","widthMargin","marginLeft","paddingLeft","BUTTON_OPTIONS","value","label","SearchEdit","onFocus","isSelected","attributes","setAttributes","className","blockWidth","style","isButtonSelected","setIsButtonSelected","isLabelSelected","setIsLabelSelected","isPlaceholderSelected","setIsPlaceholderSelected","isLongButton","setIsLongButton","buttonWidth","setButtonWidth","isScreenReaderEnabled","setIsScreenReaderEnabled","textInputRef","showLabel","buttonPosition","buttonUseIcon","placeholder","buttonText","a11yInfoChangeSubscription","addEventListener","handleScreenReaderToggled","then","screenReaderEnabled","remove","hasTextInput","current","blur","maxButtonWidth","Math","floor","tempIsLongButton","onLayoutButton","nativeEvent","width","layout","getBlockClassNames","undefined","getSelectedButtonPositionLabel","option","blockProps","controls","position","isButtonInside","borderStyle","border","borderDark","inputStyle","plainTextInput","plainTextInputDark","baseColors","color","text","placeholderStyle","plainTextPlaceholder","plainTextPlaceholderDark","searchBarStyle","searchBarContainer","flexDirection","getAccessibilityLabelForButton","getAccessibilityLabelForPlaceholder","title","description","getAccessibilityLabelForLabel","renderTextField","searchInputContainer","newVal","buttonPlaceholderText","baseButtonStyles","blocks","richTextButtonContainerStyle","buttonContainer","buttonContainerWide","background","backgroundColor","borderWidth","richTextButtonStyle","richTextButton","placeholderColor","iconStyles","icon","fill","renderButton","html","richTextButtonCursor","searchBlockContainer","richTextLabel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, AccessibilityInfo } from 'react-native';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tPlainText,\n\tuseBlockProps,\n\tInspectorControls,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { search } from '@wordpress/icons';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\n/**\n * Constants\n */\nconst MIN_BUTTON_WIDTH = 75;\nconst MARGINS =\n\tstyles.widthMargin?.marginLeft + styles.widthMargin?.paddingLeft;\n\nconst BUTTON_OPTIONS = [\n\t{ value: 'button-inside', label: __( 'Button inside' ) },\n\t{ value: 'button-outside', label: __( 'Button outside' ) },\n\t{ value: 'no-button', label: __( 'No button' ) },\n];\n\nexport default function SearchEdit( {\n\tonFocus,\n\tisSelected,\n\tattributes,\n\tsetAttributes,\n\tclassName,\n\tblockWidth,\n\tstyle,\n} ) {\n\tconst [ isButtonSelected, setIsButtonSelected ] = useState( false );\n\tconst [ isLabelSelected, setIsLabelSelected ] = useState( false );\n\tconst [ isPlaceholderSelected, setIsPlaceholderSelected ] =\n\t\tuseState( false );\n\tconst [ isLongButton, setIsLongButton ] = useState( false );\n\tconst [ buttonWidth, setButtonWidth ] = useState( MIN_BUTTON_WIDTH );\n\tconst [ isScreenReaderEnabled, setIsScreenReaderEnabled ] =\n\t\tuseState( false );\n\n\tconst textInputRef = useRef( null );\n\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tplaceholder,\n\t\tbuttonText,\n\t} = attributes;\n\n\t/*\n\t * Check if screenreader is enabled and save to state. This is important for\n\t * properly creating accessibilityLabel text.\n\t */\n\tuseEffect( () => {\n\t\tconst a11yInfoChangeSubscription = AccessibilityInfo.addEventListener(\n\t\t\t'screenReaderChanged',\n\t\t\thandleScreenReaderToggled\n\t\t);\n\n\t\tAccessibilityInfo.isScreenReaderEnabled().then(\n\t\t\t( screenReaderEnabled ) => {\n\t\t\t\tsetIsScreenReaderEnabled( screenReaderEnabled );\n\t\t\t}\n\t\t);\n\n\t\treturn () => {\n\t\t\ta11yInfoChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tconst handleScreenReaderToggled = ( screenReaderEnabled ) => {\n\t\tsetIsScreenReaderEnabled( screenReaderEnabled );\n\t};\n\n\t/*\n\t * Called when the value of isSelected changes. Blurs the PlainText component\n\t * used by the placeholder when this block loses focus.\n\t */\n\tuseEffect( () => {\n\t\tif ( hasTextInput() && isPlaceholderSelected && ! isSelected ) {\n\t\t\ttextInputRef.current.blur();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\tconst maxButtonWidth = Math.floor( blockWidth / 2 - MARGINS );\n\t\tconst tempIsLongButton = buttonWidth > maxButtonWidth;\n\n\t\t// Update this value only if it has changed to avoid flickering.\n\t\tif ( isLongButton !== tempIsLongButton ) {\n\t\t\tsetIsLongButton( tempIsLongButton );\n\t\t}\n\t}, [ blockWidth, buttonWidth ] );\n\n\tconst hasTextInput = () => {\n\t\treturn textInputRef && textInputRef.current;\n\t};\n\n\tconst onLayoutButton = ( { nativeEvent } ) => {\n\t\tconst { width } = nativeEvent?.layout;\n\n\t\tif ( width ) {\n\t\t\tsetButtonWidth( width );\n\t\t}\n\t};\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\t'button-inside' === buttonPosition\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\t'button-outside' === buttonPosition\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\t'no-button' === buttonPosition\n\t\t\t\t? 'wp-block-search__no-button'\n\t\t\t\t: undefined,\n\t\t\t'button-only' === buttonPosition\n\t\t\t\t? 'wp-block-search__button-only'\n\t\t\t\t: undefined,\n\t\t\t! buttonUseIcon && 'no-button' !== buttonPosition\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && 'no-button' !== buttonPosition\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst getSelectedButtonPositionLabel = ( option ) => {\n\t\tswitch ( option ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn __( 'Inside' );\n\t\t\tcase 'button-outside':\n\t\t\t\treturn __( 'Outside' );\n\t\t\tcase 'no-button':\n\t\t\t\treturn __( 'No button' );\n\t\t}\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t} );\n\n\tconst controls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Search settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Hide search heading' ) }\n\t\t\t\t\tchecked={ ! showLabel }\n\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Button position' ) }\n\t\t\t\t\tvalue={ getSelectedButtonPositionLabel( buttonPosition ) }\n\t\t\t\t\tonChange={ ( position ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tbuttonPosition: position,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ BUTTON_OPTIONS }\n\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t/>\n\t\t\t\t{ buttonPosition !== 'no-button' && (\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Use icon button' ) }\n\t\t\t\t\t\tchecked={ buttonUseIcon }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\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</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst isButtonInside = buttonPosition === 'button-inside';\n\n\tconst borderStyle = usePreferredColorSchemeStyle(\n\t\tstyles.border,\n\t\tstyles.borderDark\n\t);\n\n\tconst inputStyle = [\n\t\t! isButtonInside && borderStyle,\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.plainTextInput,\n\t\t\tstyles.plainTextInputDark\n\t\t),\n\t\tstyle?.baseColors?.color && { color: style?.baseColors?.color?.text },\n\t];\n\n\tconst placeholderStyle = {\n\t\t...usePreferredColorSchemeStyle(\n\t\t\tstyles.plainTextPlaceholder,\n\t\t\tstyles.plainTextPlaceholderDark\n\t\t),\n\t\t...( style?.baseColors?.color && {\n\t\t\tcolor: style?.baseColors?.color?.text,\n\t\t} ),\n\t};\n\n\tconst searchBarStyle = [\n\t\tstyles.searchBarContainer,\n\t\tisButtonInside && borderStyle,\n\t\tisLongButton && { flexDirection: 'column' },\n\t];\n\n\t/**\n\t * If a screenreader is enabled, create a descriptive label for this field. If\n\t * not, return a label that is used during automated UI tests.\n\t *\n\t * @return {string} The accessibilityLabel for the Search Button\n\t */\n\tconst getAccessibilityLabelForButton = () => {\n\t\tif ( ! isScreenReaderEnabled ) {\n\t\t\treturn 'search-block-button';\n\t\t}\n\n\t\treturn `${ __(\n\t\t\t'Search button. Current button text is'\n\t\t) } ${ buttonText }`;\n\t};\n\n\t/**\n\t * If a screenreader is enabled, create a descriptive label for this field. If\n\t * not, return a label that is used during automated UI tests.\n\t *\n\t * @return {string} The accessibilityLabel for the Search Input\n\t * \t\t\t\t\t placeholder field.\n\t */\n\tconst getAccessibilityLabelForPlaceholder = () => {\n\t\tif ( ! isScreenReaderEnabled ) {\n\t\t\treturn 'search-block-input';\n\t\t}\n\n\t\tconst title = __( 'Search input field.' );\n\t\tconst description = placeholder\n\t\t\t? `${ __( 'Current placeholder text is' ) } ${ placeholder }`\n\t\t\t: __( 'No custom placeholder set' );\n\t\treturn `${ title } ${ description }`;\n\t};\n\n\t/**\n\t * If a screenreader is enabled, create a descriptive label for this field. If\n\t * not, return a label that is used during automated UI tests.\n\t *\n\t * @return {string} The accessibilityLabel for the Search Label field\n\t */\n\tconst getAccessibilityLabelForLabel = () => {\n\t\tif ( ! isScreenReaderEnabled ) {\n\t\t\treturn 'search-block-label';\n\t\t}\n\n\t\treturn `${ __( 'Search block label. Current text is' ) } ${ label }`;\n\t};\n\n\tconst renderTextField = () => {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ styles.searchInputContainer }\n\t\t\t\taccessible={ true }\n\t\t\t\taccessibilityRole=\"none\"\n\t\t\t\taccessibilityHint={\n\t\t\t\t\tisScreenReaderEnabled\n\t\t\t\t\t\t? __( 'Double tap to edit placeholder text' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\taccessibilityLabel={ getAccessibilityLabelForPlaceholder() }\n\t\t\t>\n\t\t\t\t<PlainText\n\t\t\t\t\tref={ textInputRef }\n\t\t\t\t\tisSelected={ isPlaceholderSelected }\n\t\t\t\t\tclassName=\"wp-block-search__input\"\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tellipsizeMode=\"tail\" // Currently only works on ios.\n\t\t\t\t\tlabel={ null }\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( newVal ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: newVal } )\n\t\t\t\t\t}\n\t\t\t\t\tonFocus={ () => {\n\t\t\t\t\t\tsetIsPlaceholderSelected( true );\n\t\t\t\t\t\tonFocus();\n\t\t\t\t\t} }\n\t\t\t\t\tonBlur={ () => setIsPlaceholderSelected( false ) }\n\t\t\t\t\tplaceholderTextColor={ placeholderStyle?.color }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t};\n\n\t// To achieve proper expanding and shrinking `RichText` on Android, there is a need to set\n\t// a `placeholder` as an empty string when `RichText` is focused,\n\t// because `AztecView` is calculating a `minWidth` based on placeholder text.\n\tconst buttonPlaceholderText =\n\t\tisButtonSelected ||\n\t\t( ! isButtonSelected && buttonText && buttonText !== '' )\n\t\t\t? ''\n\t\t\t: __( 'Add button text' );\n\n\tconst baseButtonStyles = {\n\t\t...style?.baseColors?.blocks?.[ 'core/button' ]?.color,\n\t\t...attributes?.style?.color,\n\t\t...( style?.color && { text: style.color } ),\n\t};\n\n\tconst richTextButtonContainerStyle = [\n\t\tstyles.buttonContainer,\n\t\tisLongButton && styles.buttonContainerWide,\n\t\tbaseButtonStyles?.background && {\n\t\t\tbackgroundColor: baseButtonStyles.background,\n\t\t\tborderWidth: 0,\n\t\t},\n\t\tstyle?.backgroundColor && {\n\t\t\tbackgroundColor: style.backgroundColor,\n\t\t\tborderWidth: 0,\n\t\t},\n\t];\n\n\tconst richTextButtonStyle = {\n\t\t...styles.richTextButton,\n\t\t...( baseButtonStyles?.text && {\n\t\t\tcolor: baseButtonStyles.text,\n\t\t\tplaceholderColor: baseButtonStyles.text,\n\t\t} ),\n\t};\n\n\tconst iconStyles = {\n\t\t...styles.icon,\n\t\t...( baseButtonStyles?.text && { fill: baseButtonStyles.text } ),\n\t};\n\n\tconst renderButton = () => {\n\t\treturn (\n\t\t\t<View style={ richTextButtonContainerStyle }>\n\t\t\t\t{ buttonUseIcon && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ search }\n\t\t\t\t\t\t{ ...iconStyles }\n\t\t\t\t\t\tonLayout={ onLayoutButton }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<View\n\t\t\t\t\t\taccessible={ true }\n\t\t\t\t\t\taccessibilityRole=\"none\"\n\t\t\t\t\t\taccessibilityHint={\n\t\t\t\t\t\t\tisScreenReaderEnabled\n\t\t\t\t\t\t\t\t? __( 'Double tap to edit button text' )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\taccessibilityLabel={ getAccessibilityLabelForButton() }\n\t\t\t\t\t\tonLayout={ onLayoutButton }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tclassName=\"wp-block-search__button\"\n\t\t\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\tstyle={ richTextButtonStyle }\n\t\t\t\t\t\t\tplaceholder={ buttonPlaceholderText }\n\t\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tminWidth={ MIN_BUTTON_WIDTH }\n\t\t\t\t\t\t\tmaxWidth={ blockWidth - MARGINS }\n\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\tisSelected={ isButtonSelected }\n\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount={ ! isSelected }\n\t\t\t\t\t\t\tunstableOnFocus={ () => {\n\t\t\t\t\t\t\t\tsetIsButtonSelected( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\t\tsetIsButtonSelected( false );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tselectionColor={\n\t\t\t\t\t\t\t\tstyles.richTextButtonCursor?.color\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t);\n\t};\n\n\treturn (\n\t\t<View\n\t\t\t{ ...blockProps }\n\t\t\tstyle={ styles.searchBlockContainer }\n\t\t\timportantForAccessibility={\n\t\t\t\tisSelected ? 'yes' : 'no-hide-descendants'\n\t\t\t}\n\t\t\taccessibilityElementsHidden={ isSelected ? false : true }\n\t\t>\n\t\t\t{ isSelected && controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<View\n\t\t\t\t\taccessible={ true }\n\t\t\t\t\taccessibilityRole=\"none\"\n\t\t\t\t\taccessibilityHint={\n\t\t\t\t\t\tisScreenReaderEnabled\n\t\t\t\t\t\t\t? __( 'Double tap to edit label text' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\taccessibilityLabel={ getAccessibilityLabelForLabel() }\n\t\t\t\t>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName=\"wp-block-search__label\"\n\t\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\tstyle={ styles.richTextLabel }\n\t\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisSelected={ isLabelSelected }\n\t\t\t\t\t\t__unstableMobileNoFocusOnMount={ ! isSelected }\n\t\t\t\t\t\tunstableOnFocus={ () => {\n\t\t\t\t\t\t\tsetIsLabelSelected( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\tsetIsLabelSelected( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tselectionColor={ styles.richTextButtonCursor?.color }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\n\t\t\t{ ( 'button-inside' === buttonPosition ||\n\t\t\t\t'button-outside' === buttonPosition ) && (\n\t\t\t\t<View style={ searchBarStyle }>\n\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t{ renderButton() }\n\t\t\t\t</View>\n\t\t\t) }\n\n\t\t\t{ 'button-only' === buttonPosition && renderButton() }\n\t\t\t{ 'no-button' === buttonPosition && renderTextField() }\n\t\t</View>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/search/edit.native.js"],"names":["View","AccessibilityInfo","classnames","RichText","PlainText","useBlockProps","InspectorControls","PanelBody","SelectControl","ToggleControl","Icon","__","search","useRef","useEffect","useState","usePreferredColorSchemeStyle","styles","MIN_BUTTON_WIDTH","MARGINS","widthMargin","marginLeft","paddingLeft","BUTTON_OPTIONS","value","label","useIsScreenReaderEnabled","isScreenReaderEnabled","setIsScreenReaderEnabled","mounted","changeListener","addEventListener","enabled","then","screenReaderEnabled","remove","SearchEdit","onFocus","isSelected","attributes","setAttributes","className","blockWidth","style","isButtonSelected","setIsButtonSelected","isLabelSelected","setIsLabelSelected","isPlaceholderSelected","setIsPlaceholderSelected","isLongButton","setIsLongButton","buttonWidth","setButtonWidth","textInputRef","showLabel","buttonPosition","buttonUseIcon","placeholder","buttonText","hasTextInput","current","blur","maxButtonWidth","Math","floor","tempIsLongButton","onLayoutButton","nativeEvent","width","layout","getBlockClassNames","undefined","getSelectedButtonPositionLabel","option","blockProps","controls","position","isButtonInside","borderStyle","border","borderDark","inputStyle","plainTextInput","plainTextInputDark","baseColors","color","text","placeholderStyle","plainTextPlaceholder","plainTextPlaceholderDark","searchBarStyle","searchBarContainer","flexDirection","getAccessibilityLabelForButton","getAccessibilityLabelForPlaceholder","title","description","getAccessibilityLabelForLabel","renderTextField","searchInputContainer","newVal","buttonPlaceholderText","baseButtonStyles","blocks","richTextButtonContainerStyle","buttonContainer","buttonContainerWide","background","backgroundColor","borderWidth","richTextButtonStyle","richTextButton","placeholderColor","iconStyles","icon","fill","renderButton","html","richTextButtonCursor","searchBlockContainer","richTextLabel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, AccessibilityInfo } from 'react-native';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tPlainText,\n\tuseBlockProps,\n\tInspectorControls,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { search } from '@wordpress/icons';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\n/**\n * Constants\n */\nconst MIN_BUTTON_WIDTH = 75;\nconst MARGINS =\n\tstyles.widthMargin?.marginLeft + styles.widthMargin?.paddingLeft;\n\nconst BUTTON_OPTIONS = [\n\t{ value: 'button-inside', label: __( 'Button inside' ) },\n\t{ value: 'button-outside', label: __( 'Button outside' ) },\n\t{ value: 'no-button', label: __( 'No button' ) },\n];\n\nfunction useIsScreenReaderEnabled() {\n\tconst [ isScreenReaderEnabled, setIsScreenReaderEnabled ] =\n\t\tuseState( false );\n\n\tuseEffect( () => {\n\t\tlet mounted = true;\n\n\t\tconst changeListener = AccessibilityInfo.addEventListener(\n\t\t\t'screenReaderChanged',\n\t\t\t( enabled ) => setIsScreenReaderEnabled( enabled )\n\t\t);\n\n\t\tAccessibilityInfo.isScreenReaderEnabled().then(\n\t\t\t( screenReaderEnabled ) => {\n\t\t\t\tif ( mounted && screenReaderEnabled ) {\n\t\t\t\t\tsetIsScreenReaderEnabled( screenReaderEnabled );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\treturn () => {\n\t\t\tmounted = false;\n\n\t\t\tchangeListener.remove();\n\t\t};\n\t}, [] );\n\n\treturn isScreenReaderEnabled;\n}\n\nexport default function SearchEdit( {\n\tonFocus,\n\tisSelected,\n\tattributes,\n\tsetAttributes,\n\tclassName,\n\tblockWidth,\n\tstyle,\n} ) {\n\tconst [ isButtonSelected, setIsButtonSelected ] = useState( false );\n\tconst [ isLabelSelected, setIsLabelSelected ] = useState( false );\n\tconst [ isPlaceholderSelected, setIsPlaceholderSelected ] =\n\t\tuseState( false );\n\tconst [ isLongButton, setIsLongButton ] = useState( false );\n\tconst [ buttonWidth, setButtonWidth ] = useState( MIN_BUTTON_WIDTH );\n\tconst isScreenReaderEnabled = useIsScreenReaderEnabled();\n\n\tconst textInputRef = useRef( null );\n\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tplaceholder,\n\t\tbuttonText,\n\t} = attributes;\n\n\t/*\n\t * Called when the value of isSelected changes. Blurs the PlainText component\n\t * used by the placeholder when this block loses focus.\n\t */\n\tuseEffect( () => {\n\t\tif ( hasTextInput() && isPlaceholderSelected && ! isSelected ) {\n\t\t\ttextInputRef.current.blur();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\tconst maxButtonWidth = Math.floor( blockWidth / 2 - MARGINS );\n\t\tconst tempIsLongButton = buttonWidth > maxButtonWidth;\n\n\t\t// Update this value only if it has changed to avoid flickering.\n\t\tif ( isLongButton !== tempIsLongButton ) {\n\t\t\tsetIsLongButton( tempIsLongButton );\n\t\t}\n\t}, [ blockWidth, buttonWidth ] );\n\n\tconst hasTextInput = () => {\n\t\treturn textInputRef && textInputRef.current;\n\t};\n\n\tconst onLayoutButton = ( { nativeEvent } ) => {\n\t\tconst { width } = nativeEvent?.layout;\n\n\t\tif ( width ) {\n\t\t\tsetButtonWidth( width );\n\t\t}\n\t};\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\t'button-inside' === buttonPosition\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\t'button-outside' === buttonPosition\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\t'no-button' === buttonPosition\n\t\t\t\t? 'wp-block-search__no-button'\n\t\t\t\t: undefined,\n\t\t\t'button-only' === buttonPosition\n\t\t\t\t? 'wp-block-search__button-only'\n\t\t\t\t: undefined,\n\t\t\t! buttonUseIcon && 'no-button' !== buttonPosition\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && 'no-button' !== buttonPosition\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst getSelectedButtonPositionLabel = ( option ) => {\n\t\tswitch ( option ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn __( 'Inside' );\n\t\t\tcase 'button-outside':\n\t\t\t\treturn __( 'Outside' );\n\t\t\tcase 'no-button':\n\t\t\t\treturn __( 'No button' );\n\t\t}\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t} );\n\n\tconst controls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Search settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Hide search heading' ) }\n\t\t\t\t\tchecked={ ! showLabel }\n\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Button position' ) }\n\t\t\t\t\tvalue={ getSelectedButtonPositionLabel( buttonPosition ) }\n\t\t\t\t\tonChange={ ( position ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tbuttonPosition: position,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ BUTTON_OPTIONS }\n\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t/>\n\t\t\t\t{ buttonPosition !== 'no-button' && (\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Use icon button' ) }\n\t\t\t\t\t\tchecked={ buttonUseIcon }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\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</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst isButtonInside = buttonPosition === 'button-inside';\n\n\tconst borderStyle = usePreferredColorSchemeStyle(\n\t\tstyles.border,\n\t\tstyles.borderDark\n\t);\n\n\tconst inputStyle = [\n\t\t! isButtonInside && borderStyle,\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.plainTextInput,\n\t\t\tstyles.plainTextInputDark\n\t\t),\n\t\tstyle?.baseColors?.color && { color: style?.baseColors?.color?.text },\n\t];\n\n\tconst placeholderStyle = {\n\t\t...usePreferredColorSchemeStyle(\n\t\t\tstyles.plainTextPlaceholder,\n\t\t\tstyles.plainTextPlaceholderDark\n\t\t),\n\t\t...( style?.baseColors?.color && {\n\t\t\tcolor: style?.baseColors?.color?.text,\n\t\t} ),\n\t};\n\n\tconst searchBarStyle = [\n\t\tstyles.searchBarContainer,\n\t\tisButtonInside && borderStyle,\n\t\tisLongButton && { flexDirection: 'column' },\n\t];\n\n\t/**\n\t * If a screenreader is enabled, create a descriptive label for this field. If\n\t * not, return a label that is used during automated UI tests.\n\t *\n\t * @return {string} The accessibilityLabel for the Search Button\n\t */\n\tconst getAccessibilityLabelForButton = () => {\n\t\tif ( ! isScreenReaderEnabled ) {\n\t\t\treturn 'search-block-button';\n\t\t}\n\n\t\treturn `${ __(\n\t\t\t'Search button. Current button text is'\n\t\t) } ${ buttonText }`;\n\t};\n\n\t/**\n\t * If a screenreader is enabled, create a descriptive label for this field. If\n\t * not, return a label that is used during automated UI tests.\n\t *\n\t * @return {string} The accessibilityLabel for the Search Input\n\t * \t\t\t\t\t placeholder field.\n\t */\n\tconst getAccessibilityLabelForPlaceholder = () => {\n\t\tif ( ! isScreenReaderEnabled ) {\n\t\t\treturn 'search-block-input';\n\t\t}\n\n\t\tconst title = __( 'Search input field.' );\n\t\tconst description = placeholder\n\t\t\t? `${ __( 'Current placeholder text is' ) } ${ placeholder }`\n\t\t\t: __( 'No custom placeholder set' );\n\t\treturn `${ title } ${ description }`;\n\t};\n\n\t/**\n\t * If a screenreader is enabled, create a descriptive label for this field. If\n\t * not, return a label that is used during automated UI tests.\n\t *\n\t * @return {string} The accessibilityLabel for the Search Label field\n\t */\n\tconst getAccessibilityLabelForLabel = () => {\n\t\tif ( ! isScreenReaderEnabled ) {\n\t\t\treturn 'search-block-label';\n\t\t}\n\n\t\treturn `${ __( 'Search block label. Current text is' ) } ${ label }`;\n\t};\n\n\tconst renderTextField = () => {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ styles.searchInputContainer }\n\t\t\t\taccessible={ true }\n\t\t\t\taccessibilityRole=\"none\"\n\t\t\t\taccessibilityHint={\n\t\t\t\t\tisScreenReaderEnabled\n\t\t\t\t\t\t? __( 'Double tap to edit placeholder text' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\taccessibilityLabel={ getAccessibilityLabelForPlaceholder() }\n\t\t\t>\n\t\t\t\t<PlainText\n\t\t\t\t\tref={ textInputRef }\n\t\t\t\t\tisSelected={ isPlaceholderSelected }\n\t\t\t\t\tclassName=\"wp-block-search__input\"\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tellipsizeMode=\"tail\" // Currently only works on ios.\n\t\t\t\t\tlabel={ null }\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( newVal ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: newVal } )\n\t\t\t\t\t}\n\t\t\t\t\tonFocus={ () => {\n\t\t\t\t\t\tsetIsPlaceholderSelected( true );\n\t\t\t\t\t\tonFocus();\n\t\t\t\t\t} }\n\t\t\t\t\tonBlur={ () => setIsPlaceholderSelected( false ) }\n\t\t\t\t\tplaceholderTextColor={ placeholderStyle?.color }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t};\n\n\t// To achieve proper expanding and shrinking `RichText` on Android, there is a need to set\n\t// a `placeholder` as an empty string when `RichText` is focused,\n\t// because `AztecView` is calculating a `minWidth` based on placeholder text.\n\tconst buttonPlaceholderText =\n\t\tisButtonSelected ||\n\t\t( ! isButtonSelected && buttonText && buttonText !== '' )\n\t\t\t? ''\n\t\t\t: __( 'Add button text' );\n\n\tconst baseButtonStyles = {\n\t\t...style?.baseColors?.blocks?.[ 'core/button' ]?.color,\n\t\t...attributes?.style?.color,\n\t\t...( style?.color && { text: style.color } ),\n\t};\n\n\tconst richTextButtonContainerStyle = [\n\t\tstyles.buttonContainer,\n\t\tisLongButton && styles.buttonContainerWide,\n\t\tbaseButtonStyles?.background && {\n\t\t\tbackgroundColor: baseButtonStyles.background,\n\t\t\tborderWidth: 0,\n\t\t},\n\t\tstyle?.backgroundColor && {\n\t\t\tbackgroundColor: style.backgroundColor,\n\t\t\tborderWidth: 0,\n\t\t},\n\t];\n\n\tconst richTextButtonStyle = {\n\t\t...styles.richTextButton,\n\t\t...( baseButtonStyles?.text && {\n\t\t\tcolor: baseButtonStyles.text,\n\t\t\tplaceholderColor: baseButtonStyles.text,\n\t\t} ),\n\t};\n\n\tconst iconStyles = {\n\t\t...styles.icon,\n\t\t...( baseButtonStyles?.text && { fill: baseButtonStyles.text } ),\n\t};\n\n\tconst renderButton = () => {\n\t\treturn (\n\t\t\t<View style={ richTextButtonContainerStyle }>\n\t\t\t\t{ buttonUseIcon && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ search }\n\t\t\t\t\t\t{ ...iconStyles }\n\t\t\t\t\t\tonLayout={ onLayoutButton }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<View\n\t\t\t\t\t\taccessible={ true }\n\t\t\t\t\t\taccessibilityRole=\"none\"\n\t\t\t\t\t\taccessibilityHint={\n\t\t\t\t\t\t\tisScreenReaderEnabled\n\t\t\t\t\t\t\t\t? __( 'Double tap to edit button text' )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\taccessibilityLabel={ getAccessibilityLabelForButton() }\n\t\t\t\t\t\tonLayout={ onLayoutButton }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tclassName=\"wp-block-search__button\"\n\t\t\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\tstyle={ richTextButtonStyle }\n\t\t\t\t\t\t\tplaceholder={ buttonPlaceholderText }\n\t\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tminWidth={ MIN_BUTTON_WIDTH }\n\t\t\t\t\t\t\tmaxWidth={ blockWidth - MARGINS }\n\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\tisSelected={ isButtonSelected }\n\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount={ ! isSelected }\n\t\t\t\t\t\t\tunstableOnFocus={ () => {\n\t\t\t\t\t\t\t\tsetIsButtonSelected( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\t\tsetIsButtonSelected( false );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tselectionColor={\n\t\t\t\t\t\t\t\tstyles.richTextButtonCursor?.color\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t);\n\t};\n\n\treturn (\n\t\t<View\n\t\t\t{ ...blockProps }\n\t\t\tstyle={ styles.searchBlockContainer }\n\t\t\timportantForAccessibility={\n\t\t\t\tisSelected ? 'yes' : 'no-hide-descendants'\n\t\t\t}\n\t\t\taccessibilityElementsHidden={ isSelected ? false : true }\n\t\t>\n\t\t\t{ isSelected && controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<View\n\t\t\t\t\taccessible={ true }\n\t\t\t\t\taccessibilityRole=\"none\"\n\t\t\t\t\taccessibilityHint={\n\t\t\t\t\t\tisScreenReaderEnabled\n\t\t\t\t\t\t\t? __( 'Double tap to edit label text' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\taccessibilityLabel={ getAccessibilityLabelForLabel() }\n\t\t\t\t>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName=\"wp-block-search__label\"\n\t\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\tstyle={ styles.richTextLabel }\n\t\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisSelected={ isLabelSelected }\n\t\t\t\t\t\t__unstableMobileNoFocusOnMount={ ! isSelected }\n\t\t\t\t\t\tunstableOnFocus={ () => {\n\t\t\t\t\t\t\tsetIsLabelSelected( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\tsetIsLabelSelected( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tselectionColor={ styles.richTextButtonCursor?.color }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\n\t\t\t{ ( 'button-inside' === buttonPosition ||\n\t\t\t\t'button-outside' === buttonPosition ) && (\n\t\t\t\t<View style={ searchBarStyle }>\n\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t{ renderButton() }\n\t\t\t\t</View>\n\t\t\t) }\n\n\t\t\t{ 'button-only' === buttonPosition && renderButton() }\n\t\t\t{ 'no-button' === buttonPosition && renderTextField() }\n\t\t</View>\n\t);\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
4
5
|
import { search as icon } from '@wordpress/icons';
|
|
5
6
|
/**
|
|
6
7
|
* Internal dependencies
|
|
@@ -102,7 +103,13 @@ const {
|
|
|
102
103
|
export { metadata, name };
|
|
103
104
|
export const settings = {
|
|
104
105
|
icon,
|
|
105
|
-
example: {
|
|
106
|
+
example: {
|
|
107
|
+
attributes: {
|
|
108
|
+
buttonText: __('Search'),
|
|
109
|
+
label: __('Search')
|
|
110
|
+
},
|
|
111
|
+
viewportWidth: 400
|
|
112
|
+
},
|
|
106
113
|
variations,
|
|
107
114
|
edit
|
|
108
115
|
};
|