@wordpress/block-library 7.5.0 → 7.8.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 +10 -0
- package/README.md +3 -2
- package/babel-plugin.js +154 -0
- package/build/audio/edit.js +1 -1
- package/build/audio/edit.js.map +1 -1
- package/build/audio/index.js +6 -1
- package/build/audio/index.js.map +1 -1
- package/build/avatar/hooks.js +2 -2
- package/build/avatar/hooks.js.map +1 -1
- package/build/block/edit.js +10 -9
- package/build/block/edit.js.map +1 -1
- package/build/block/edit.native.js.map +1 -1
- package/build/button/deprecated.js +175 -35
- package/build/button/deprecated.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/button/edit.native.js.map +1 -1
- package/build/button/index.js +25 -1
- package/build/button/index.js.map +1 -1
- package/build/button/save.js +1 -1
- package/build/button/save.js.map +1 -1
- package/build/buttons/deprecated.js.map +1 -1
- package/build/buttons/edit.js.map +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/categories/edit.js +1 -1
- package/build/categories/edit.js.map +1 -1
- package/build/categories/index.js +1 -1
- package/build/column/deprecated.js.map +1 -1
- package/build/column/edit.js.map +1 -1
- package/build/column/edit.native.js.map +1 -1
- package/build/columns/deprecated.js.map +1 -1
- package/build/columns/edit.js +1 -1
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +1 -1
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/index.js +3 -1
- package/build/columns/index.js.map +1 -1
- package/build/columns/utils.js +1 -1
- package/build/columns/utils.js.map +1 -1
- package/build/comment-author-avatar/index.js +1 -0
- package/build/comment-author-avatar/index.js.map +1 -1
- package/build/comment-author-name/edit.js +4 -2
- package/build/comment-author-name/edit.js.map +1 -1
- package/build/comment-date/edit.js +1 -1
- package/build/comment-date/edit.js.map +1 -1
- package/build/comments-title/deprecated.js +110 -0
- package/build/comments-title/deprecated.js.map +1 -0
- package/build/comments-title/edit.js +35 -37
- package/build/comments-title/edit.js.map +1 -1
- package/build/comments-title/index.js +5 -8
- package/build/comments-title/index.js.map +1 -1
- package/build/cover/controls.native.js +2 -3
- package/build/cover/controls.native.js.map +1 -1
- package/build/cover/deprecated.js +212 -207
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/block-controls.js +108 -0
- package/build/cover/edit/block-controls.js.map +1 -0
- package/build/cover/edit/cover-placeholder.js +49 -0
- package/build/cover/edit/cover-placeholder.js.map +1 -0
- package/build/cover/edit/index.js +336 -0
- package/build/cover/edit/index.js.map +1 -0
- package/build/cover/edit/inspector-controls.js +252 -0
- package/build/cover/edit/inspector-controls.js.map +1 -0
- package/build/cover/edit/resizable-cover.js +67 -0
- package/build/cover/edit/resizable-cover.js.map +1 -0
- package/build/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
- package/build/cover/edit/use-cover-is-dark.js.map +1 -0
- package/build/cover/edit.native.js +0 -1
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/focal-point-settings-button.native.js.map +1 -1
- package/build/cover/save.js +18 -5
- package/build/cover/save.js.map +1 -1
- package/build/cover/shared.js +15 -9
- package/build/cover/shared.js.map +1 -1
- package/build/cover/transforms.js.map +1 -1
- package/build/embed/deprecated.js +6 -1
- package/build/embed/deprecated.js.map +1 -1
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/embed-controls.native.js.map +1 -1
- package/build/embed/embed-preview.js +1 -1
- package/build/embed/embed-preview.js.map +1 -1
- package/build/embed/index.js +6 -1
- package/build/embed/index.js.map +1 -1
- package/build/embed/transforms.js +6 -1
- package/build/embed/transforms.js.map +1 -1
- package/build/embed/util.js +6 -1
- package/build/embed/util.js.map +1 -1
- package/build/file/edit.js +1 -1
- package/build/file/edit.js.map +1 -1
- package/build/file/edit.native.js +0 -1
- package/build/file/edit.native.js.map +1 -1
- package/build/file/index.js.map +1 -1
- package/build/file/save.js +9 -1
- package/build/file/save.js.map +1 -1
- package/build/gallery/edit.js +3 -2
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +1 -1
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/gap-styles.js +14 -4
- package/build/gallery/gap-styles.js.map +1 -1
- package/build/gallery/index.js +1 -1
- package/build/gallery/index.js.map +1 -1
- package/build/gallery/shared.js +29 -12
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/use-get-media.js +2 -1
- package/build/gallery/use-get-media.js.map +1 -1
- package/build/gallery/use-short-code-transform.js +19 -18
- package/build/gallery/use-short-code-transform.js.map +1 -1
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-image.js.map +1 -1
- package/build/gallery/v1/gallery-image.native.js.map +1 -1
- package/build/gallery/v1/gallery.js +1 -1
- package/build/gallery/v1/gallery.js.map +1 -1
- package/build/heading/autogenerate-anchors.js +7 -2
- package/build/heading/autogenerate-anchors.js.map +1 -1
- package/build/heading/deprecated.js.map +1 -1
- package/build/heading/edit.js +6 -2
- package/build/heading/edit.js.map +1 -1
- package/build/heading/index.js +1 -0
- package/build/heading/index.js.map +1 -1
- package/build/heading/transforms.js +1 -0
- package/build/heading/transforms.js.map +1 -1
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.js +5 -56
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +56 -4
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +4 -14
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +5 -0
- package/build/image/index.js.map +1 -1
- package/build/image/transforms.js.map +1 -1
- package/build/image/utils.js +2 -1
- package/build/image/utils.js.map +1 -1
- package/build/index.js +46 -10
- package/build/index.js.map +1 -1
- package/build/is-block-metadata-experimental.js +18 -0
- package/build/is-block-metadata-experimental.js.map +1 -0
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-posts/edit.js +31 -5
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/index.js.map +1 -1
- package/build/list/transforms.js +6 -0
- package/build/list/transforms.js.map +1 -1
- package/build/list/v2/edit.js +2 -1
- package/build/list/v2/edit.js.map +1 -1
- package/build/list/v2/migrate.js +1 -0
- package/build/list/v2/migrate.js.map +1 -1
- package/build/list/v2/transforms.js +46 -9
- package/build/list/v2/transforms.js.map +1 -1
- package/build/list-item/edit.js +7 -9
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/index.js +24 -0
- package/build/list-item/hooks/index.js.map +1 -1
- package/build/list-item/hooks/use-backspace.js +59 -0
- package/build/list-item/hooks/use-backspace.js.map +1 -0
- package/build/list-item/hooks/use-enter.js +6 -9
- package/build/list-item/hooks/use-enter.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +33 -39
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +54 -0
- package/build/list-item/hooks/use-space.js.map +1 -0
- package/build/list-item/hooks/use-split.js +44 -0
- package/build/list-item/hooks/use-split.js.map +1 -0
- package/build/list-item/index.js +1 -0
- package/build/list-item/index.js.map +1 -1
- package/build/list-item/utils.js +1 -1
- package/build/list-item/utils.js.map +1 -1
- package/build/media-text/deprecated.js +5 -3
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.native.js +2 -1
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/media-container.js +3 -3
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/media-container.native.js +2 -4
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/media-text/save.js +3 -1
- package/build/media-text/save.js.map +1 -1
- package/build/media-text/transforms.js +137 -8
- package/build/media-text/transforms.js.map +1 -1
- package/build/missing/edit.native.js.map +1 -1
- package/build/navigation/deprecated.js.map +1 -1
- package/build/navigation/edit/index.js +86 -81
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +1 -5
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/use-navigation-entities.js +3 -3
- package/build/navigation/use-navigation-entities.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +130 -38
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation/use-template-part-area-label.js +4 -1
- package/build/navigation/use-template-part-area-label.js.map +1 -1
- package/build/navigation-link/edit.js +44 -12
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/fallback-variations.js +1 -1
- package/build/navigation-link/fallback-variations.js.map +1 -1
- package/build/navigation-link/hooks.js +1 -1
- package/build/navigation-link/hooks.js.map +1 -1
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +1 -1
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/edit.js +1 -1
- package/build/page-list/edit.js.map +1 -1
- package/build/paragraph/deprecated.js +1 -1
- package/build/paragraph/deprecated.js.map +1 -1
- package/build/pattern/edit.js.map +1 -1
- package/build/post-author/edit.js +1 -1
- package/build/post-author/edit.js.map +1 -1
- package/build/post-author-name/index.js +4 -0
- package/build/post-author-name/index.js.map +1 -1
- package/build/post-author-name/transforms.js +41 -0
- package/build/post-author-name/transforms.js.map +1 -0
- package/build/post-comment/index.js +1 -0
- package/build/post-comment/index.js.map +1 -1
- package/build/post-comments/edit.js +34 -16
- package/build/post-comments/edit.js.map +1 -1
- package/build/post-comments-count/index.js +1 -0
- package/build/post-comments-count/index.js.map +1 -1
- package/build/post-comments-form/form.js +12 -2
- package/build/post-comments-form/form.js.map +1 -1
- package/build/post-comments-link/index.js +1 -0
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-content/edit.js.map +1 -1
- package/build/post-date/edit.js +13 -7
- package/build/post-date/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +11 -25
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-navigation-link/index.js +4 -0
- package/build/post-navigation-link/index.js.map +1 -1
- package/build/post-template/edit.js +7 -2
- package/build/post-template/edit.js.map +1 -1
- package/build/post-terms/edit.js +11 -2
- package/build/post-terms/edit.js.map +1 -1
- package/build/post-terms/hooks.js +33 -0
- package/build/post-terms/hooks.js.map +1 -0
- package/build/post-terms/index.js +12 -5
- package/build/post-terms/index.js.map +1 -1
- package/build/post-title/index.js +1 -1
- package/build/post-title/index.js.map +1 -1
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/pullquote/edit.js +1 -1
- package/build/pullquote/edit.js.map +1 -1
- package/build/pullquote/edit.native.js +1 -1
- package/build/pullquote/edit.native.js.map +1 -1
- package/build/query/edit/index.js +5 -1
- package/build/query/edit/index.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +26 -17
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/inspector-controls/parent-control.js +148 -0
- package/build/query/edit/inspector-controls/parent-control.js.map +1 -0
- package/build/query/edit/inspector-controls/sticky-control.js +41 -0
- package/build/query/edit/inspector-controls/sticky-control.js.map +1 -0
- package/build/query/edit/query-toolbar.js +16 -2
- package/build/query/edit/query-toolbar.js.map +1 -1
- package/build/query/index.js +2 -1
- package/build/query/index.js.map +1 -1
- package/build/query/utils.js +28 -2
- package/build/query/utils.js.map +1 -1
- package/build/query-title/index.js +1 -1
- package/build/query-title/index.js.map +1 -1
- package/build/query-title/variations.js +1 -1
- package/build/query-title/variations.js.map +1 -1
- package/build/quote/edit.js +3 -2
- package/build/quote/edit.js.map +1 -1
- package/build/quote/v2/edit.js +1 -1
- package/build/quote/v2/edit.js.map +1 -1
- package/build/search/edit.js +2 -1
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js.map +1 -1
- package/build/search/index.js +4 -0
- package/build/search/index.js.map +1 -1
- package/build/separator/use-deprecated-opacity.js.map +1 -1
- package/build/shortcode/edit.native.js +16 -13
- package/build/shortcode/edit.native.js.map +1 -1
- package/build/site-logo/edit.js +4 -13
- package/build/site-logo/edit.js.map +1 -1
- package/build/social-links/deprecated.js.map +1 -1
- package/build/social-links/edit.js +2 -2
- package/build/social-links/edit.js.map +1 -1
- package/build/social-links/edit.native.js.map +1 -1
- package/build/spacer/controls.js.map +1 -1
- package/build/table/deprecated.js.map +1 -1
- package/build/table/edit.js +15 -2
- package/build/table/edit.js.map +1 -1
- package/build/table/index.js +6 -1
- package/build/table/index.js.map +1 -1
- package/build/table/state.js.map +1 -1
- package/build/table-of-contents/edit.js +145 -65
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/table-of-contents/index.js +13 -3
- package/build/table-of-contents/index.js.map +1 -1
- package/build/table-of-contents/list.js +16 -9
- package/build/table-of-contents/list.js.map +1 -1
- package/build/table-of-contents/save.js +40 -0
- package/build/table-of-contents/save.js.map +1 -0
- package/build/table-of-contents/utils.js +11 -77
- package/build/table-of-contents/utils.js.map +1 -1
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/advanced-controls.js +4 -1
- package/build/template-part/edit/advanced-controls.js.map +1 -1
- package/build/template-part/edit/index.js +7 -3
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/inner-blocks.js +3 -8
- package/build/template-part/edit/inner-blocks.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +4 -1
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/transformationCategories.native.js.map +1 -1
- package/build/video/edit-common-settings.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 +43 -0
- package/build/video/edit.native.js.map +1 -1
- package/build/video/index.js +6 -1
- package/build/video/index.js.map +1 -1
- package/build-module/audio/edit.js +2 -2
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/index.js +6 -1
- package/build-module/audio/index.js.map +1 -1
- package/build-module/avatar/hooks.js +2 -2
- package/build-module/avatar/hooks.js.map +1 -1
- package/build-module/block/edit.js +11 -10
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block/edit.native.js.map +1 -1
- package/build-module/button/deprecated.js +175 -35
- package/build-module/button/deprecated.js.map +1 -1
- package/build-module/button/edit.js +2 -2
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/button/index.js +25 -1
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/save.js +2 -2
- package/build-module/button/save.js.map +1 -1
- package/build-module/buttons/deprecated.js.map +1 -1
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/categories/edit.js +1 -1
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/categories/index.js +1 -1
- package/build-module/column/deprecated.js.map +1 -1
- package/build-module/column/edit.js.map +1 -1
- package/build-module/column/edit.native.js.map +1 -1
- package/build-module/columns/deprecated.js.map +1 -1
- package/build-module/columns/edit.js +2 -2
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +2 -2
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/index.js +3 -1
- package/build-module/columns/index.js.map +1 -1
- package/build-module/columns/utils.js +2 -2
- package/build-module/columns/utils.js.map +1 -1
- package/build-module/comment-author-avatar/index.js +1 -0
- package/build-module/comment-author-avatar/index.js.map +1 -1
- package/build-module/comment-author-name/edit.js +4 -2
- package/build-module/comment-author-name/edit.js.map +1 -1
- package/build-module/comment-date/edit.js +1 -1
- package/build-module/comment-date/edit.js.map +1 -1
- package/build-module/comments-title/deprecated.js +102 -0
- package/build-module/comments-title/deprecated.js.map +1 -0
- package/build-module/comments-title/edit.js +38 -40
- package/build-module/comments-title/edit.js.map +1 -1
- package/build-module/comments-title/index.js +4 -8
- package/build-module/comments-title/index.js.map +1 -1
- package/build-module/cover/controls.native.js +2 -3
- package/build-module/cover/controls.native.js.map +1 -1
- package/build-module/cover/deprecated.js +206 -198
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/block-controls.js +99 -0
- package/build-module/cover/edit/block-controls.js.map +1 -0
- package/build-module/cover/edit/cover-placeholder.js +38 -0
- package/build-module/cover/edit/cover-placeholder.js.map +1 -0
- package/build-module/cover/edit/index.js +310 -0
- package/build-module/cover/edit/index.js.map +1 -0
- package/build-module/cover/edit/inspector-controls.js +240 -0
- package/build-module/cover/edit/inspector-controls.js.map +1 -0
- package/build-module/cover/edit/resizable-cover.js +55 -0
- package/build-module/cover/edit/resizable-cover.js.map +1 -0
- package/build-module/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
- package/build-module/cover/edit/use-cover-is-dark.js.map +1 -0
- package/build-module/cover/edit.native.js +0 -1
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/cover/focal-point-settings-button.native.js.map +1 -1
- package/build-module/cover/save.js +19 -6
- package/build-module/cover/save.js.map +1 -1
- package/build-module/cover/shared.js +11 -5
- package/build-module/cover/shared.js.map +1 -1
- package/build-module/cover/transforms.js.map +1 -1
- package/build-module/embed/deprecated.js +6 -1
- package/build-module/embed/deprecated.js.map +1 -1
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/edit.native.js.map +1 -1
- package/build-module/embed/embed-controls.native.js.map +1 -1
- package/build-module/embed/embed-preview.js +2 -2
- package/build-module/embed/embed-preview.js.map +1 -1
- package/build-module/embed/index.js +6 -1
- package/build-module/embed/index.js.map +1 -1
- package/build-module/embed/transforms.js +6 -1
- package/build-module/embed/transforms.js.map +1 -1
- package/build-module/embed/util.js +6 -1
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/edit.js +2 -2
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/edit.native.js +0 -1
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/file/index.js.map +1 -1
- package/build-module/file/save.js +7 -2
- package/build-module/file/save.js.map +1 -1
- package/build-module/gallery/edit.js +4 -3
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +2 -2
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/gap-styles.js +14 -4
- package/build-module/gallery/gap-styles.js.map +1 -1
- package/build-module/gallery/index.js +1 -1
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/gallery/shared.js +27 -10
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/use-get-media.js +2 -1
- package/build-module/gallery/use-get-media.js.map +1 -1
- package/build-module/gallery/use-short-code-transform.js +19 -18
- package/build-module/gallery/use-short-code-transform.js.map +1 -1
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
- package/build-module/gallery/v1/gallery.js +2 -2
- package/build-module/gallery/v1/gallery.js.map +1 -1
- package/build-module/heading/autogenerate-anchors.js +5 -2
- package/build-module/heading/autogenerate-anchors.js.map +1 -1
- package/build-module/heading/deprecated.js.map +1 -1
- package/build-module/heading/edit.js +6 -2
- package/build-module/heading/edit.js.map +1 -1
- package/build-module/heading/index.js +1 -0
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/transforms.js +1 -0
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.js +4 -52
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +57 -6
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +6 -16
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +5 -0
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/transforms.js.map +1 -1
- package/build-module/image/utils.js +2 -2
- package/build-module/image/utils.js.map +1 -1
- package/build-module/index.js +42 -10
- package/build-module/index.js.map +1 -1
- package/build-module/is-block-metadata-experimental.js +16 -0
- package/build-module/is-block-metadata-experimental.js.map +1 -0
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +31 -7
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/index.js.map +1 -1
- package/build-module/list/transforms.js +6 -0
- package/build-module/list/transforms.js.map +1 -1
- package/build-module/list/v2/edit.js +2 -1
- package/build-module/list/v2/edit.js.map +1 -1
- package/build-module/list/v2/migrate.js +1 -3
- package/build-module/list/v2/migrate.js.map +1 -1
- package/build-module/list/v2/transforms.js +46 -9
- package/build-module/list/v2/transforms.js.map +1 -1
- package/build-module/list-item/edit.js +8 -9
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/index.js +3 -0
- package/build-module/list-item/hooks/index.js.map +1 -1
- package/build-module/list-item/hooks/use-backspace.js +44 -0
- package/build-module/list-item/hooks/use-backspace.js.map +1 -0
- package/build-module/list-item/hooks/use-enter.js +6 -9
- package/build-module/list-item/hooks/use-enter.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +33 -38
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +40 -0
- package/build-module/list-item/hooks/use-space.js.map +1 -0
- package/build-module/list-item/hooks/use-split.js +33 -0
- package/build-module/list-item/hooks/use-split.js.map +1 -0
- package/build-module/list-item/index.js +1 -0
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/list-item/utils.js +1 -1
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/media-text/deprecated.js +3 -1
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.native.js +2 -1
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/media-container.js +3 -1
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/media-container.native.js +2 -4
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/media-text/save.js +4 -1
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/media-text/transforms.js +137 -8
- package/build-module/media-text/transforms.js.map +1 -1
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/navigation/deprecated.js.map +1 -1
- package/build-module/navigation/edit/index.js +87 -82
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -6
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/use-navigation-entities.js +1 -1
- package/build-module/navigation/use-navigation-entities.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +130 -38
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation/use-template-part-area-label.js +4 -1
- package/build-module/navigation/use-template-part-area-label.js.map +1 -1
- package/build-module/navigation-link/edit.js +44 -13
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/fallback-variations.js +1 -1
- package/build-module/navigation-link/fallback-variations.js.map +1 -1
- package/build-module/navigation-link/hooks.js +2 -2
- package/build-module/navigation-link/hooks.js.map +1 -1
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +1 -1
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/edit.js +1 -1
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/paragraph/deprecated.js +2 -2
- package/build-module/paragraph/deprecated.js.map +1 -1
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-author/edit.js +1 -1
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-author-name/index.js +3 -0
- package/build-module/post-author-name/index.js.map +1 -1
- package/build-module/post-author-name/transforms.js +32 -0
- package/build-module/post-author-name/transforms.js.map +1 -0
- package/build-module/post-comment/index.js +1 -0
- package/build-module/post-comment/index.js.map +1 -1
- package/build-module/post-comments/edit.js +35 -16
- package/build-module/post-comments/edit.js.map +1 -1
- package/build-module/post-comments-count/index.js +1 -0
- package/build-module/post-comments-count/index.js.map +1 -1
- package/build-module/post-comments-form/form.js +8 -2
- package/build-module/post-comments-form/form.js.map +1 -1
- package/build-module/post-comments-link/index.js +1 -0
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-date/edit.js +15 -9
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +11 -24
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-navigation-link/index.js +4 -0
- package/build-module/post-navigation-link/index.js.map +1 -1
- package/build-module/post-template/edit.js +7 -2
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +10 -3
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/post-terms/hooks.js +25 -0
- package/build-module/post-terms/hooks.js.map +1 -0
- package/build-module/post-terms/index.js +10 -8
- package/build-module/post-terms/index.js.map +1 -1
- package/build-module/post-title/index.js +1 -1
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/pullquote/edit.js +2 -2
- package/build-module/pullquote/edit.js.map +1 -1
- package/build-module/pullquote/edit.native.js +2 -2
- package/build-module/pullquote/edit.native.js.map +1 -1
- package/build-module/query/edit/index.js +5 -1
- package/build-module/query/edit/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +24 -17
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/parent-control.js +135 -0
- package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -0
- package/build-module/query/edit/inspector-controls/sticky-control.js +31 -0
- package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -0
- package/build-module/query/edit/query-toolbar.js +14 -2
- package/build-module/query/edit/query-toolbar.js.map +1 -1
- package/build-module/query/index.js +2 -1
- package/build-module/query/index.js.map +1 -1
- package/build-module/query/utils.js +21 -0
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-title/index.js +1 -1
- package/build-module/query-title/index.js.map +1 -1
- package/build-module/query-title/variations.js +2 -2
- package/build-module/query-title/variations.js.map +1 -1
- package/build-module/quote/edit.js +4 -3
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/quote/v2/edit.js +2 -2
- package/build-module/quote/v2/edit.js.map +1 -1
- package/build-module/search/edit.js +3 -2
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/search/index.js +4 -0
- package/build-module/search/index.js.map +1 -1
- package/build-module/separator/use-deprecated-opacity.js.map +1 -1
- package/build-module/shortcode/edit.native.js +17 -13
- package/build-module/shortcode/edit.native.js.map +1 -1
- package/build-module/site-logo/edit.js +4 -12
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/social-links/deprecated.js.map +1 -1
- package/build-module/social-links/edit.js +2 -2
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/social-links/edit.native.js.map +1 -1
- package/build-module/spacer/controls.js.map +1 -1
- package/build-module/table/deprecated.js.map +1 -1
- package/build-module/table/edit.js +17 -4
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table/index.js +6 -1
- package/build-module/table/index.js.map +1 -1
- package/build-module/table/state.js.map +1 -1
- package/build-module/table-of-contents/edit.js +144 -68
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/table-of-contents/index.js +12 -3
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/table-of-contents/list.js +18 -10
- package/build-module/table-of-contents/list.js.map +1 -1
- package/build-module/table-of-contents/save.js +28 -0
- package/build-module/table-of-contents/save.js.map +1 -0
- package/build-module/table-of-contents/utils.js +11 -73
- package/build-module/table-of-contents/utils.js.map +1 -1
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/advanced-controls.js +4 -1
- package/build-module/template-part/edit/advanced-controls.js.map +1 -1
- package/build-module/template-part/edit/index.js +8 -4
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/inner-blocks.js +4 -9
- package/build-module/template-part/edit/inner-blocks.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +4 -1
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/transformationCategories.native.js.map +1 -1
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-module/video/edit.js +2 -2
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +42 -1
- package/build-module/video/edit.native.js.map +1 -1
- package/build-module/video/index.js +6 -1
- package/build-module/video/index.js.map +1 -1
- package/build-style/audio/style-rtl.css +0 -3
- package/build-style/audio/style.css +0 -3
- package/build-style/button/style-rtl.css +0 -5
- package/build-style/button/style.css +0 -5
- package/build-style/common-rtl.css +1 -3
- package/build-style/common.css +1 -3
- package/build-style/cover/editor-rtl.css +11 -0
- package/build-style/cover/editor.css +11 -0
- package/build-style/cover/style-rtl.css +33 -25
- package/build-style/cover/style.css +33 -25
- package/build-style/editor-rtl.css +15 -45
- package/build-style/editor.css +15 -45
- package/build-style/embed/style-rtl.css +0 -1
- package/build-style/embed/style.css +0 -1
- package/build-style/file/style-rtl.css +9 -7
- package/build-style/file/style.css +9 -7
- package/build-style/gallery/style-rtl.css +2 -4
- package/build-style/gallery/style.css +2 -4
- package/build-style/image/editor-rtl.css +1 -1
- package/build-style/image/editor.css +1 -1
- package/build-style/image/style-rtl.css +0 -3
- package/build-style/image/style.css +0 -3
- package/build-style/post-comments/style-rtl.css +22 -0
- package/build-style/post-comments/style.css +22 -0
- package/build-style/post-comments-form/style-rtl.css +1 -3
- package/build-style/post-comments-form/style.css +1 -3
- package/build-style/post-featured-image/editor-rtl.css +0 -27
- package/build-style/post-featured-image/editor.css +0 -27
- package/build-style/search/style-rtl.css +4 -4
- package/build-style/search/style.css +4 -4
- package/build-style/separator/editor-rtl.css +1 -0
- package/build-style/separator/editor.css +1 -0
- package/build-style/site-logo/editor-rtl.css +0 -12
- package/build-style/site-logo/editor.css +0 -12
- package/build-style/site-logo/style-rtl.css +4 -0
- package/build-style/site-logo/style.css +4 -0
- package/build-style/style-rtl.css +77 -64
- package/build-style/style.css +77 -64
- package/build-style/table/style-rtl.css +0 -1
- package/build-style/table/style.css +0 -1
- package/build-style/video/editor-rtl.css +2 -5
- package/build-style/video/editor.css +2 -5
- package/build-style/video/style-rtl.css +1 -5
- package/build-style/video/style.css +1 -5
- package/build-types/table-of-contents/list.d.ts +12 -0
- package/build-types/table-of-contents/list.d.ts.map +1 -0
- package/build-types/table-of-contents/utils.d.ts +24 -0
- package/build-types/table-of-contents/utils.d.ts.map +1 -0
- package/package.json +32 -30
- package/src/audio/block.json +6 -1
- package/src/audio/edit.js +4 -2
- package/src/audio/index.js +1 -2
- package/src/audio/style.scss +0 -2
- package/src/avatar/block.json +0 -1
- package/src/avatar/hooks.js +9 -6
- package/src/avatar/index.php +2 -2
- package/src/block/edit.js +43 -48
- package/src/block/edit.native.js +12 -16
- package/src/block/test/edit.native.js +6 -9
- package/src/button/block.json +25 -1
- package/src/button/deprecated.js +145 -36
- package/src/button/edit.js +7 -11
- package/src/button/edit.native.js +2 -3
- package/src/button/save.js +5 -11
- package/src/button/style.scss +0 -5
- package/src/buttons/deprecated.js +4 -6
- package/src/buttons/edit.js +3 -3
- package/src/buttons/edit.native.js +7 -11
- package/src/buttons/test/__snapshots__/edit.native.js.snap +1 -1
- package/src/buttons/test/edit.native.js +1 -1
- package/src/categories/block.json +1 -1
- package/src/categories/edit.js +1 -1
- package/src/column/deprecated.js +2 -1
- package/src/column/edit.js +2 -3
- package/src/column/edit.native.js +2 -2
- package/src/columns/block.json +3 -1
- package/src/columns/deprecated.js +4 -2
- package/src/columns/edit.js +6 -7
- package/src/columns/edit.native.js +12 -16
- package/src/columns/index.js +1 -2
- package/src/columns/utils.js +5 -3
- package/src/comment-author-avatar/block.json +1 -0
- package/src/comment-author-name/edit.js +2 -2
- package/src/comment-date/edit.js +1 -1
- package/src/comments-title/block.json +0 -6
- package/src/comments-title/deprecated.js +34 -0
- package/src/comments-title/edit.js +44 -100
- package/src/comments-title/index.js +3 -1
- package/src/comments-title/index.php +41 -23
- package/src/cover/controls.native.js +3 -6
- package/src/cover/deprecated.js +237 -195
- package/src/cover/edit/block-controls.js +110 -0
- package/src/cover/edit/cover-placeholder.js +39 -0
- package/src/cover/edit/index.js +396 -0
- package/src/cover/edit/inspector-controls.js +317 -0
- package/src/cover/edit/resizable-cover.js +55 -0
- package/src/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
- package/src/cover/edit.native.js +8 -14
- package/src/cover/editor.scss +14 -1
- package/src/cover/focal-point-settings-button.native.js +1 -1
- package/src/cover/index.php +20 -37
- package/src/cover/save.js +28 -16
- package/src/cover/shared.js +5 -3
- package/src/cover/style.scss +27 -22
- package/src/cover/test/block-controls.js +62 -0
- package/src/cover/test/edit.native.js +4 -7
- package/src/cover/transforms.js +2 -7
- package/src/embed/block.json +6 -1
- package/src/embed/edit.js +38 -40
- package/src/embed/edit.native.js +46 -49
- package/src/embed/embed-controls.native.js +2 -3
- package/src/embed/embed-preview.js +4 -2
- package/src/embed/style.scss +0 -1
- package/src/embed/test/index.native.js +24 -50
- package/src/file/edit.js +7 -5
- package/src/file/edit.native.js +14 -26
- package/src/file/index.js +1 -2
- package/src/file/save.js +14 -2
- package/src/file/style.scss +15 -14
- package/src/gallery/block.json +1 -1
- package/src/gallery/edit.js +10 -7
- package/src/gallery/gallery.js +2 -2
- package/src/gallery/gallery.native.js +2 -4
- package/src/gallery/gap-styles.js +21 -6
- package/src/gallery/index.js +2 -4
- package/src/gallery/index.php +23 -12
- package/src/gallery/shared.js +25 -11
- package/src/gallery/test/index.native.js +18 -34
- package/src/gallery/use-get-media.js +2 -1
- package/src/gallery/use-short-code-transform.js +19 -16
- package/src/gallery/v1/edit.js +15 -20
- package/src/gallery/v1/gallery-image.js +6 -11
- package/src/gallery/v1/gallery-image.native.js +8 -17
- package/src/gallery/v1/gallery.js +2 -2
- package/src/heading/autogenerate-anchors.js +8 -5
- package/src/heading/block.json +1 -0
- package/src/heading/deprecated.js +6 -21
- package/src/heading/edit.js +7 -5
- package/src/image/block.json +5 -0
- package/src/image/deprecated.js +6 -29
- package/src/image/edit.js +0 -44
- package/src/image/edit.native.js +74 -25
- package/src/image/editor.scss +1 -1
- package/src/image/image.js +41 -51
- package/src/image/style.scss +0 -2
- package/src/image/styles.native.scss +11 -0
- package/src/image/test/edit.native.js +7 -7
- package/src/image/transforms.js +4 -3
- package/src/image/utils.js +2 -2
- package/src/index.js +51 -28
- package/src/is-block-metadata-experimental.js +19 -0
- package/src/latest-comments/edit.js +2 -6
- package/src/latest-posts/edit.js +33 -9
- package/src/latest-posts/edit.native.js +10 -15
- package/src/latest-posts/index.php +12 -6
- package/src/list/index.js +1 -2
- package/src/list/test/migrate.js +1 -2
- package/src/list/transforms.js +7 -0
- package/src/list/v2/edit.js +7 -9
- package/src/list/v2/migrate.js +1 -1
- package/src/list/v2/transforms.js +35 -0
- package/src/list-item/block.json +2 -1
- package/src/list-item/edit.js +17 -10
- package/src/list-item/hooks/index.js +3 -0
- package/src/list-item/hooks/use-backspace.js +51 -0
- package/src/list-item/hooks/use-enter.js +8 -16
- package/src/list-item/hooks/use-indent-list-item.js +49 -63
- package/src/list-item/hooks/use-outdent-list-item.js +2 -3
- package/src/list-item/hooks/use-space.js +47 -0
- package/src/list-item/hooks/use-split.js +33 -0
- package/src/list-item/utils.js +1 -1
- package/src/media-text/deprecated.js +6 -3
- package/src/media-text/edit.native.js +5 -6
- package/src/media-text/media-container.js +1 -1
- package/src/media-text/media-container.native.js +8 -13
- package/src/media-text/save.js +2 -1
- package/src/media-text/transforms.js +154 -0
- package/src/missing/edit.native.js +2 -3
- package/src/missing/test/edit-integration.native.js +2 -3
- package/src/missing/test/edit.native.js +6 -9
- package/src/navigation/deprecated.js +2 -5
- package/src/navigation/edit/index.js +195 -201
- package/src/navigation/edit/inner-blocks.js +1 -8
- package/src/navigation/edit/navigation-menu-delete-control.js +2 -3
- package/src/navigation/edit/unsaved-inner-blocks.js +31 -30
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -3
- package/src/navigation/index.php +40 -0
- package/src/navigation/test/use-navigation-menu.js +236 -0
- package/src/navigation/use-navigation-entities.js +12 -14
- package/src/navigation/use-navigation-menu.js +152 -82
- package/src/navigation/use-template-part-area-label.js +8 -7
- package/src/navigation-link/edit.js +59 -25
- package/src/navigation-link/fallback-variations.js +1 -1
- package/src/navigation-link/hooks.js +2 -2
- package/src/navigation-link/test/__snapshots__/hooks.js.snap +4 -4
- package/src/navigation-link/test/edit.js +2 -24
- package/src/navigation-submenu/edit.js +10 -20
- package/src/page-list/convert-to-links-modal.js +52 -55
- package/src/page-list/edit.js +7 -10
- package/src/page-list/test/convert-to-links-modal.js +6 -12
- package/src/paragraph/deprecated.js +2 -2
- package/src/pattern/edit.js +2 -4
- package/src/post-author/edit.js +26 -25
- package/src/post-author/index.php +3 -2
- package/src/post-author-name/block.json +1 -0
- package/src/post-author-name/index.js +2 -0
- package/src/post-author-name/index.php +1 -1
- package/src/post-author-name/transforms.js +25 -0
- package/src/post-comment/block.json +1 -0
- package/src/post-comments/edit.js +54 -22
- package/src/post-comments/index.php +1 -1
- package/src/post-comments/style.scss +26 -0
- package/src/post-comments-count/block.json +1 -0
- package/src/post-comments-form/form.js +12 -5
- package/src/post-comments-form/index.php +1 -1
- package/src/post-comments-form/style.scss +1 -4
- package/src/post-comments-link/block.json +1 -0
- package/src/post-content/edit.js +2 -3
- package/src/post-date/edit.js +4 -3
- package/src/post-featured-image/edit.js +15 -31
- package/src/post-featured-image/editor.scss +0 -29
- package/src/post-navigation-link/block.json +4 -0
- package/src/post-template/edit.js +5 -0
- package/src/post-template/index.php +30 -0
- package/src/post-terms/edit.js +19 -0
- package/src/post-terms/hooks.js +27 -0
- package/src/post-terms/index.js +14 -7
- package/src/post-terms/index.php +40 -2
- package/src/post-title/index.js +1 -1
- package/src/pullquote/deprecated.js +2 -1
- package/src/pullquote/edit.js +2 -2
- package/src/pullquote/edit.native.js +2 -2
- package/src/query/block.json +2 -1
- package/src/query/edit/index.js +10 -10
- package/src/query/edit/inspector-controls/index.js +25 -11
- package/src/query/edit/inspector-controls/parent-control.js +132 -0
- package/src/query/edit/inspector-controls/sticky-control.js +25 -0
- package/src/query/edit/query-toolbar.js +25 -5
- package/src/query/utils.js +22 -0
- package/src/query-pagination/index.php +0 -1
- package/src/query-title/index.js +1 -1
- package/src/query-title/variations.js +2 -2
- package/src/quote/edit.js +5 -2
- package/src/quote/v2/edit.js +8 -8
- package/src/quote/v2/test/migrate.js +1 -2
- package/src/search/block.json +4 -0
- package/src/search/edit.js +10 -13
- package/src/search/edit.native.js +4 -6
- package/src/search/index.php +29 -16
- package/src/search/style.scss +2 -1
- package/src/separator/editor.scss +1 -0
- package/src/separator/use-deprecated-opacity.js +2 -4
- package/src/shortcode/edit.native.js +30 -15
- package/src/shortcode/style.native.scss +11 -4
- package/src/shortcode/test/__snapshots__/edit.native.js.snap +9 -0
- package/src/shortcode/test/edit.native.js +55 -40
- package/src/site-logo/edit.js +4 -18
- package/src/site-logo/editor.scss +0 -14
- package/src/site-logo/style.scss +6 -0
- package/src/social-links/deprecated.js +4 -2
- package/src/social-links/edit.js +11 -10
- package/src/social-links/edit.native.js +3 -5
- package/src/spacer/controls.js +2 -3
- package/src/spacer/test/index.native.js +10 -21
- package/src/table/block.json +6 -1
- package/src/table/deprecated.js +4 -8
- package/src/table/edit.js +19 -4
- package/src/table/state.js +2 -4
- package/src/table/style.scss +0 -1
- package/src/table-of-contents/block.json +9 -2
- package/src/table-of-contents/edit.js +166 -77
- package/src/table-of-contents/index.js +2 -0
- package/src/table-of-contents/list.tsx +46 -0
- package/src/table-of-contents/save.js +25 -0
- package/src/table-of-contents/utils.ts +71 -0
- package/src/tag-cloud/block.json +1 -1
- package/src/tag-cloud/edit.js +4 -7
- package/src/template-part/edit/advanced-controls.js +4 -4
- package/src/template-part/edit/index.js +31 -25
- package/src/template-part/edit/inner-blocks.js +2 -10
- package/src/template-part/edit/utils/hooks.js +8 -7
- package/src/transformationCategories.native.js +3 -3
- package/src/video/block.json +6 -1
- package/src/video/edit-common-settings.js +2 -8
- package/src/video/edit.js +4 -2
- package/src/video/edit.native.js +38 -16
- package/src/video/editor.scss +3 -6
- package/src/video/index.js +1 -2
- package/src/video/style.scss +0 -2
- package/test/babel-plugin.js +67 -0
- package/tsconfig.json +11 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/build/cover/edit.js +0 -598
- package/build/cover/edit.js.map +0 -1
- package/build/cover/use-cover-is-dark.js.map +0 -1
- package/build/post-terms/variations.js +0 -37
- package/build/post-terms/variations.js.map +0 -1
- package/build-module/cover/edit.js +0 -575
- package/build-module/cover/edit.js.map +0 -1
- package/build-module/cover/use-cover-is-dark.js.map +0 -1
- package/build-module/post-terms/variations.js +0 -27
- package/build-module/post-terms/variations.js.map +0 -1
- package/src/cover/edit.js +0 -757
- package/src/post-terms/variations.js +0 -28
- package/src/table-of-contents/index.php +0 -346
- package/src/table-of-contents/list.js +0 -28
- package/src/table-of-contents/utils.js +0 -126
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/index.js"],"names":["gallery","icon","deprecated","edit","save","transforms","name","metadata","settings","example","attributes","columns","innerBlocks","url"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,IAApB,QAAgC,kBAAhC;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,gBAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBP,EAAAA,IADuB;AAEvBQ,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,OAAO,EAAE;AADE,KADJ;AAIRC,IAAAA,WAAW,EAAE,CACZ;AACCN,MAAAA,IAAI,EAAE,YADP;AAECI,MAAAA,UAAU,EAAE;AACXG,QAAAA,GAAG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/index.js"],"names":["gallery","icon","deprecated","edit","save","transforms","name","metadata","settings","example","attributes","columns","innerBlocks","url"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,IAApB,QAAgC,kBAAhC;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,gBAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBP,EAAAA,IADuB;AAEvBQ,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,OAAO,EAAE;AADE,KADJ;AAIRC,IAAAA,WAAW,EAAE,CACZ;AACCN,MAAAA,IAAI,EAAE,YADP;AAECI,MAAAA,UAAU,EAAE;AACXG,QAAAA,GAAG,EAAE;AADM;AAFb,KADY,EAOZ;AACCP,MAAAA,IAAI,EAAE,YADP;AAECI,MAAAA,UAAU,EAAE;AACXG,QAAAA,GAAG,EAAE;AADM;AAFb,KAPY;AAJL,GAFc;AAqBvBR,EAAAA,UArBuB;AAsBvBF,EAAAA,IAtBuB;AAuBvBC,EAAAA,IAvBuB;AAwBvBF,EAAAA;AAxBuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { gallery as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport deprecated from './deprecated';\nimport edit from './edit-wrapper';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcolumns: 2,\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/image',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/image',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n"]}
|
|
@@ -2,13 +2,18 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { get, pick } from 'lodash';
|
|
5
|
+
/**
|
|
6
|
+
* WordPress dependencies
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { Platform } from '@wordpress/element';
|
|
5
10
|
export function defaultColumnsNumber(imageCount) {
|
|
6
11
|
return imageCount ? Math.min(3, imageCount) : 3;
|
|
7
12
|
}
|
|
8
13
|
export const pickRelevantMediaFiles = function (image) {
|
|
9
14
|
let sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large';
|
|
10
|
-
const imageProps = pick(image, ['alt', 'id', 'link'
|
|
11
|
-
imageProps.url = get(image, ['sizes', sizeSlug, 'url']) || get(image, ['media_details', 'sizes', sizeSlug, 'source_url']) || image.url;
|
|
15
|
+
const imageProps = pick(image, ['alt', 'id', 'link']);
|
|
16
|
+
imageProps.url = get(image, ['sizes', sizeSlug, 'url']) || get(image, ['media_details', 'sizes', sizeSlug, 'source_url']) || image.url || image.source_url;
|
|
12
17
|
const fullUrl = get(image, ['sizes', 'full', 'url']) || get(image, ['media_details', 'sizes', 'full', 'source_url']);
|
|
13
18
|
|
|
14
19
|
if (fullUrl) {
|
|
@@ -17,6 +22,16 @@ export const pickRelevantMediaFiles = function (image) {
|
|
|
17
22
|
|
|
18
23
|
return imageProps;
|
|
19
24
|
};
|
|
25
|
+
|
|
26
|
+
function getGalleryBlockV2Enabled() {
|
|
27
|
+
// We want to fail early here, at least during beta testing phase, to ensure
|
|
28
|
+
// there aren't instances where undefined values cause false negatives.
|
|
29
|
+
if (!window.wp || typeof window.wp.galleryBlockV2Enabled !== 'boolean') {
|
|
30
|
+
throw 'window.wp.galleryBlockV2Enabled is not defined';
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return window.wp.galleryBlockV2Enabled;
|
|
34
|
+
}
|
|
20
35
|
/**
|
|
21
36
|
* The new gallery block format is not compatible with the use_BalanceTags option
|
|
22
37
|
* in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The
|
|
@@ -24,17 +39,19 @@ export const pickRelevantMediaFiles = function (image) {
|
|
|
24
39
|
* can be removed when minimum supported WP version >=5.9.
|
|
25
40
|
*/
|
|
26
41
|
|
|
42
|
+
|
|
27
43
|
export function isGalleryV2Enabled() {
|
|
28
|
-
//
|
|
44
|
+
// The logic for the native version is located in a different if statement
|
|
45
|
+
// due to a lint rule that prohibits a single conditional combining
|
|
46
|
+
// `process.env.IS_GUTENBERG_PLUGIN` with a native platform check.
|
|
47
|
+
if (Platform.isNative) {
|
|
48
|
+
return getGalleryBlockV2Enabled();
|
|
49
|
+
} // Only run the Gallery version compat check if the plugin is running, otherwise
|
|
29
50
|
// assume we are in 5.9 core and enable by default.
|
|
30
|
-
if (process.env.IS_GUTENBERG_PLUGIN) {
|
|
31
|
-
// We want to fail early here, at least during beta testing phase, to ensure
|
|
32
|
-
// there aren't instances where undefined values cause false negatives.
|
|
33
|
-
if (!window.wp || typeof window.wp.galleryBlockV2Enabled !== 'boolean') {
|
|
34
|
-
throw 'window.wp.galleryBlockV2Enabled is not defined';
|
|
35
|
-
}
|
|
36
51
|
|
|
37
|
-
|
|
52
|
+
|
|
53
|
+
if (process.env.IS_GUTENBERG_PLUGIN) {
|
|
54
|
+
return getGalleryBlockV2Enabled();
|
|
38
55
|
}
|
|
39
56
|
|
|
40
57
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/shared.js"],"names":["get","pick","defaultColumnsNumber","imageCount","Math","min","pickRelevantMediaFiles","image","sizeSlug","imageProps","url","fullUrl","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/shared.js"],"names":["get","pick","Platform","defaultColumnsNumber","imageCount","Math","min","pickRelevantMediaFiles","image","sizeSlug","imageProps","url","source_url","fullUrl","getGalleryBlockV2Enabled","window","wp","galleryBlockV2Enabled","isGalleryV2Enabled","isNative","process","env","IS_GUTENBERG_PLUGIN"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,GAAT,EAAcC,IAAd,QAA0B,QAA1B;AAEA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA,OAAO,SAASC,oBAAT,CAA+BC,UAA/B,EAA4C;AAClD,SAAOA,UAAU,GAAGC,IAAI,CAACC,GAAL,CAAU,CAAV,EAAaF,UAAb,CAAH,GAA+B,CAAhD;AACA;AAED,OAAO,MAAMG,sBAAsB,GAAG,UAAEC,KAAF,EAAiC;AAAA,MAAxBC,QAAwB,uEAAb,OAAa;AACtE,QAAMC,UAAU,GAAGT,IAAI,CAAEO,KAAF,EAAS,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,CAAT,CAAvB;AACAE,EAAAA,UAAU,CAACC,GAAX,GACCX,GAAG,CAAEQ,KAAF,EAAS,CAAE,OAAF,EAAWC,QAAX,EAAqB,KAArB,CAAT,CAAH,IACAT,GAAG,CAAEQ,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4BC,QAA5B,EAAsC,YAAtC,CAAT,CADH,IAEAD,KAAK,CAACG,GAFN,IAGAH,KAAK,CAACI,UAJP;AAKA,QAAMC,OAAO,GACZb,GAAG,CAAEQ,KAAF,EAAS,CAAE,OAAF,EAAW,MAAX,EAAmB,KAAnB,CAAT,CAAH,IACAR,GAAG,CAAEQ,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4B,MAA5B,EAAoC,YAApC,CAAT,CAFJ;;AAGA,MAAKK,OAAL,EAAe;AACdH,IAAAA,UAAU,CAACG,OAAX,GAAqBA,OAArB;AACA;;AACD,SAAOH,UAAP;AACA,CAdM;;AAgBP,SAASI,wBAAT,GAAoC;AACnC;AACA;AACA,MAAK,CAAEC,MAAM,CAACC,EAAT,IAAe,OAAOD,MAAM,CAACC,EAAP,CAAUC,qBAAjB,KAA2C,SAA/D,EAA2E;AAC1E,UAAM,gDAAN;AACA;;AACD,SAAOF,MAAM,CAACC,EAAP,CAAUC,qBAAjB;AACA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASC,kBAAT,GAA8B;AACpC;AACA;AACA;AACA,MAAKhB,QAAQ,CAACiB,QAAd,EAAyB;AACxB,WAAOL,wBAAwB,EAA/B;AACA,GANmC,CAQpC;AACA;;;AACA,MAAKM,OAAO,CAACC,GAAR,CAAYC,mBAAjB,EAAuC;AACtC,WAAOR,wBAAwB,EAA/B;AACA;;AAED,SAAO,IAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { get, pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Platform } from '@wordpress/element';\n\nexport function defaultColumnsNumber( imageCount ) {\n\treturn imageCount ? Math.min( 3, imageCount ) : 3;\n}\n\nexport const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = pick( image, [ 'alt', 'id', 'link' ] );\n\timageProps.url =\n\t\tget( image, [ 'sizes', sizeSlug, 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', sizeSlug, 'source_url' ] ) ||\n\t\timage.url ||\n\t\timage.source_url;\n\tconst fullUrl =\n\t\tget( image, [ 'sizes', 'full', 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', 'full', 'source_url' ] );\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n\nfunction getGalleryBlockV2Enabled() {\n\t// We want to fail early here, at least during beta testing phase, to ensure\n\t// there aren't instances where undefined values cause false negatives.\n\tif ( ! window.wp || typeof window.wp.galleryBlockV2Enabled !== 'boolean' ) {\n\t\tthrow 'window.wp.galleryBlockV2Enabled is not defined';\n\t}\n\treturn window.wp.galleryBlockV2Enabled;\n}\n\n/**\n * The new gallery block format is not compatible with the use_BalanceTags option\n * in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The\n * window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method\n * can be removed when minimum supported WP version >=5.9.\n */\nexport function isGalleryV2Enabled() {\n\t// The logic for the native version is located in a different if statement\n\t// due to a lint rule that prohibits a single conditional combining\n\t// `process.env.IS_GUTENBERG_PLUGIN` with a native platform check.\n\tif ( Platform.isNative ) {\n\t\treturn getGalleryBlockV2Enabled();\n\t}\n\n\t// Only run the Gallery version compat check if the plugin is running, otherwise\n\t// assume we are in 5.9 core and enable by default.\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\treturn getGalleryBlockV2Enabled();\n\t}\n\n\treturn true;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/use-get-media.js"],"names":["useState","useSelect","store","coreStore","useGetMedia","innerBlockImages","currentImageMedia","setCurrentImageMedia","imageMedia","select","length","imageIds","map","imageBlock","attributes","id","filter","undefined","getMediaItems","include","join","per_page","some","newImage","find","currentImage"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,oBAAzB;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,WAAT,CAAsBC,gBAAtB,EAAyC;AACvD,QAAM,CAAEC,iBAAF,EAAqBC,oBAArB,IAA8CP,QAAQ,CAAE,EAAF,CAA5D;AAEA,QAAMQ,UAAU,GAAGP,SAAS,CACzBQ,MAAF,IAAc;AACb,QAAK,EAAEJ,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEK,MAApB,CAAL,EAAkC;AACjC,aAAOJ,iBAAP;AACA;;AAED,UAAMK,QAAQ,GAAGN,gBAAgB,CAC/BO,GADe,CACRC,UAAF,IAAkBA,UAAU,CAACC,UAAX,CAAsBC,EAD9B,EAEfC,MAFe,CAELD,EAAF,IAAUA,EAAE,KAAKE,SAFV,CAAjB;;AAIA,QAAKN,QAAQ,CAACD,MAAT,KAAoB,CAAzB,EAA6B;AAC5B,aAAOJ,iBAAP;AACA;;AAED,WAAOG,MAAM,CAAEN,SAAF,CAAN,CAAoBe,aAApB,CAAmC;AACzCC,MAAAA,OAAO,EAAER,QAAQ,CAACS,IAAT,CAAe,GAAf,CADgC;AAEzCC,MAAAA,QAAQ,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/use-get-media.js"],"names":["useState","useSelect","store","coreStore","useGetMedia","innerBlockImages","currentImageMedia","setCurrentImageMedia","imageMedia","select","length","imageIds","map","imageBlock","attributes","id","filter","undefined","getMediaItems","include","join","per_page","orderby","some","newImage","find","currentImage"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,oBAAzB;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,WAAT,CAAsBC,gBAAtB,EAAyC;AACvD,QAAM,CAAEC,iBAAF,EAAqBC,oBAArB,IAA8CP,QAAQ,CAAE,EAAF,CAA5D;AAEA,QAAMQ,UAAU,GAAGP,SAAS,CACzBQ,MAAF,IAAc;AACb,QAAK,EAAEJ,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEK,MAApB,CAAL,EAAkC;AACjC,aAAOJ,iBAAP;AACA;;AAED,UAAMK,QAAQ,GAAGN,gBAAgB,CAC/BO,GADe,CACRC,UAAF,IAAkBA,UAAU,CAACC,UAAX,CAAsBC,EAD9B,EAEfC,MAFe,CAELD,EAAF,IAAUA,EAAE,KAAKE,SAFV,CAAjB;;AAIA,QAAKN,QAAQ,CAACD,MAAT,KAAoB,CAAzB,EAA6B;AAC5B,aAAOJ,iBAAP;AACA;;AAED,WAAOG,MAAM,CAAEN,SAAF,CAAN,CAAoBe,aAApB,CAAmC;AACzCC,MAAAA,OAAO,EAAER,QAAQ,CAACS,IAAT,CAAe,GAAf,CADgC;AAEzCC,MAAAA,QAAQ,EAAEV,QAAQ,CAACD,MAFsB;AAGzCY,MAAAA,OAAO,EAAE;AAHgC,KAAnC,CAAP;AAKA,GAnB0B,EAoB3B,CAAEjB,gBAAF,CApB2B,CAA5B;;AAuBA,MACC,CAAAG,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEE,MAAZ,OAAuBJ,iBAAvB,aAAuBA,iBAAvB,uBAAuBA,iBAAiB,CAAEI,MAA1C,KACAF,UADA,aACAA,UADA,eACAA,UAAU,CAAEe,IAAZ,CACGC,QAAF,IACC,CAAElB,iBAAiB,CAACmB,IAAlB,CACCC,YAAF,IAAoBA,YAAY,CAACX,EAAb,KAAoBS,QAAQ,CAACT,EADhD,CAFJ,CAFD,EAQE;AACDR,IAAAA,oBAAoB,CAAEC,UAAF,CAApB;AACA,WAAOA,UAAP;AACA;;AACD,SAAOF,iBAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Retrieves the extended media info for each gallery image from the store. This is used to\n * determine which image size options are available for the current gallery.\n *\n * @param {Array} innerBlockImages An array of the innerBlock images currently in the gallery.\n *\n * @return {Array} An array of media info options for each gallery image.\n */\nexport default function useGetMedia( innerBlockImages ) {\n\tconst [ currentImageMedia, setCurrentImageMedia ] = useState( [] );\n\n\tconst imageMedia = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! innerBlockImages?.length ) {\n\t\t\t\treturn currentImageMedia;\n\t\t\t}\n\n\t\t\tconst imageIds = innerBlockImages\n\t\t\t\t.map( ( imageBlock ) => imageBlock.attributes.id )\n\t\t\t\t.filter( ( id ) => id !== undefined );\n\n\t\t\tif ( imageIds.length === 0 ) {\n\t\t\t\treturn currentImageMedia;\n\t\t\t}\n\n\t\t\treturn select( coreStore ).getMediaItems( {\n\t\t\t\tinclude: imageIds.join( ',' ),\n\t\t\t\tper_page: imageIds.length,\n\t\t\t\torderby: 'include',\n\t\t\t} );\n\t\t},\n\t\t[ innerBlockImages ]\n\t);\n\n\tif (\n\t\timageMedia?.length !== currentImageMedia?.length ||\n\t\timageMedia?.some(\n\t\t\t( newImage ) =>\n\t\t\t\t! currentImageMedia.find(\n\t\t\t\t\t( currentImage ) => currentImage.id === newImage.id\n\t\t\t\t)\n\t\t)\n\t) {\n\t\tsetCurrentImageMedia( imageMedia );\n\t\treturn imageMedia;\n\t}\n\treturn currentImageMedia;\n}\n"]}
|
|
@@ -23,22 +23,11 @@ export default function useShortCodeTransform(shortCodeTransforms) {
|
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
const
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return {
|
|
32
|
-
id: imageData.id,
|
|
33
|
-
type: 'image',
|
|
34
|
-
url: imageData.source_url,
|
|
35
|
-
mime: imageData.mime_type,
|
|
36
|
-
alt: imageData.alt_text,
|
|
37
|
-
link: imageData.link
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return undefined;
|
|
26
|
+
const imageIds = shortCodeTransforms.map(image => image.id);
|
|
27
|
+
return select(coreStore).getMediaItems({
|
|
28
|
+
include: imageIds.join(','),
|
|
29
|
+
per_page: imageIds.length,
|
|
30
|
+
orderby: 'include'
|
|
42
31
|
});
|
|
43
32
|
}, [shortCodeTransforms]);
|
|
44
33
|
|
|
@@ -46,8 +35,20 @@ export default function useShortCodeTransform(shortCodeTransforms) {
|
|
|
46
35
|
return;
|
|
47
36
|
}
|
|
48
37
|
|
|
49
|
-
if (every(newImageData, img => img && img.
|
|
50
|
-
return newImageData
|
|
38
|
+
if (every(newImageData, img => img && img.source_url)) {
|
|
39
|
+
return newImageData.map(imageData => {
|
|
40
|
+
var _imageData$caption;
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
id: imageData.id,
|
|
44
|
+
type: 'image',
|
|
45
|
+
url: imageData.source_url,
|
|
46
|
+
mime: imageData.mime_type,
|
|
47
|
+
alt: imageData.alt_text,
|
|
48
|
+
link: imageData.link,
|
|
49
|
+
caption: imageData === null || imageData === void 0 ? void 0 : (_imageData$caption = imageData.caption) === null || _imageData$caption === void 0 ? void 0 : _imageData$caption.raw
|
|
50
|
+
};
|
|
51
|
+
});
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
//# sourceMappingURL=use-short-code-transform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/use-short-code-transform.js"],"names":["every","useSelect","store","coreStore","useShortCodeTransform","shortCodeTransforms","newImageData","select","length","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/use-short-code-transform.js"],"names":["every","useSelect","store","coreStore","useShortCodeTransform","shortCodeTransforms","newImageData","select","length","imageIds","map","image","id","getMediaItems","include","join","per_page","orderby","img","source_url","imageData","type","url","mime","mime_type","alt","alt_text","link","caption","raw"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAT,QAAsB,QAAtB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,qBAAT,CAAgCC,mBAAhC,EAAsD;AACpE,QAAMC,YAAY,GAAGL,SAAS,CAC3BM,MAAF,IAAc;AACb,QAAK,CAAEF,mBAAF,IAAyBA,mBAAmB,CAACG,MAApB,KAA+B,CAA7D,EAAiE;AAChE;AACA;;AAED,UAAMC,QAAQ,GAAGJ,mBAAmB,CAACK,GAApB,CAA2BC,KAAF,IAAaA,KAAK,CAACC,EAA5C,CAAjB;AAEA,WAAOL,MAAM,CAAEJ,SAAF,CAAN,CAAoBU,aAApB,CAAmC;AACzCC,MAAAA,OAAO,EAAEL,QAAQ,CAACM,IAAT,CAAe,GAAf,CADgC;AAEzCC,MAAAA,QAAQ,EAAEP,QAAQ,CAACD,MAFsB;AAGzCS,MAAAA,OAAO,EAAE;AAHgC,KAAnC,CAAP;AAKA,GAb4B,EAc7B,CAAEZ,mBAAF,CAd6B,CAA9B;;AAiBA,MAAK,CAAEC,YAAP,EAAsB;AACrB;AACA;;AAED,MAAKN,KAAK,CAAEM,YAAF,EAAkBY,GAAF,IAAWA,GAAG,IAAIA,GAAG,CAACC,UAAtC,CAAV,EAA+D;AAC9D,WAAOb,YAAY,CAACI,GAAb,CAAoBU,SAAF,IAAiB;AAAA;;AACzC,aAAO;AACNR,QAAAA,EAAE,EAAEQ,SAAS,CAACR,EADR;AAENS,QAAAA,IAAI,EAAE,OAFA;AAGNC,QAAAA,GAAG,EAAEF,SAAS,CAACD,UAHT;AAINI,QAAAA,IAAI,EAAEH,SAAS,CAACI,SAJV;AAKNC,QAAAA,GAAG,EAAEL,SAAS,CAACM,QALT;AAMNC,QAAAA,IAAI,EAAEP,SAAS,CAACO,IANV;AAONC,QAAAA,OAAO,EAAER,SAAF,aAAEA,SAAF,6CAAEA,SAAS,CAAEQ,OAAb,uDAAE,mBAAoBC;AAPvB,OAAP;AASA,KAVM,CAAP;AAWA;AACD","sourcesContent":["/**\n * External dependencies\n */\nimport { every } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Shortcode transforms don't currently have a tranform method and so can't use a selector to\n * retrieve the data for each image being transformer, so this selector handle this post transformation.\n *\n * @param {Array} shortCodeTransforms An array of image data passed from the shortcode transform.\n *\n * @return {Array} An array of extended image data objects for each of the shortcode transform images.\n */\nexport default function useShortCodeTransform( shortCodeTransforms ) {\n\tconst newImageData = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! shortCodeTransforms || shortCodeTransforms.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst imageIds = shortCodeTransforms.map( ( image ) => image.id );\n\n\t\t\treturn select( coreStore ).getMediaItems( {\n\t\t\t\tinclude: imageIds.join( ',' ),\n\t\t\t\tper_page: imageIds.length,\n\t\t\t\torderby: 'include',\n\t\t\t} );\n\t\t},\n\t\t[ shortCodeTransforms ]\n\t);\n\n\tif ( ! newImageData ) {\n\t\treturn;\n\t}\n\n\tif ( every( newImageData, ( img ) => img && img.source_url ) ) {\n\t\treturn newImageData.map( ( imageData ) => {\n\t\t\treturn {\n\t\t\t\tid: imageData.id,\n\t\t\t\ttype: 'image',\n\t\t\t\turl: imageData.source_url,\n\t\t\t\tmime: imageData.mime_type,\n\t\t\t\talt: imageData.alt_text,\n\t\t\t\tlink: imageData.link,\n\t\t\t\tcaption: imageData?.caption?.raw,\n\t\t\t};\n\t\t} );\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["every","filter","find","forEach","get","isEmpty","map","reduce","some","toString","compose","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","MediaPlaceholder","InspectorControls","useBlockProps","store","blockEditorStore","Platform","useEffect","useState","useMemo","__","getBlobByURL","isBlobURL","revokeBlobURL","useDispatch","useSelect","withViewportMatch","View","coreStore","sharedIcon","pickRelevantMediaFiles","defaultColumnsNumberV1","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","resizedImages","ids","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","mediaDetailsUrl","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","img","i","Math","min","selectCaption","newImage","newImageId","currentImage","currentImageCaption","caption","attachment","onSelectImages","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","name","updateImagesSize","newSizeSlug","updatedImages","url","OS","filesList","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tevery,\n\tfilter,\n\tfind,\n\tforEach,\n\tget,\n\tisEmpty,\n\tmap,\n\treduce,\n\tsome,\n\ttoString,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\n\tconst {\n\t\timageSizes,\n\t\tmediaUpload,\n\t\tgetMedia,\n\t\twasBlockJustInserted,\n\t} = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\treturn {\n\t\t\timageSizes: settings.imageSizes,\n\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn reduce(\n\t\t\t\tattributes.ids,\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = reduce(\n\t\t\t\t\t\timageSizes,\n\t\t\t\t\t\t( currentSizes, size ) => {\n\t\t\t\t\t\t\tconst defaultUrl = get( image, [\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\tconst mediaDetailsUrl = get( image, [\n\t\t\t\t\t\t\t\t'media_details',\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'source_url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: map( newAttrs.images, ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = filter( images, ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = toString( newImage.id );\n\t\tconst currentImage = find( images, { id: newImageId } );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = find( attachmentCaptions, {\n\t\t\tid: newImageId,\n\t\t} );\n\n\t\t// If the attachment caption is updated.\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\treturn map(\n\t\t\tfilter( imageSizes, ( { slug } ) =>\n\t\t\t\tsome( resizedImages, ( sizes ) => sizes[ slug ] )\n\t\t\t),\n\t\t\t( { name, slug } ) => ( { value: slug, label: name } )\n\t\t);\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = map( images, ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url = get( resizedImages, [\n\t\t\t\tparseInt( image.id, 10 ),\n\t\t\t\tnewSizeSlug,\n\t\t\t] );\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\tevery( images, ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = map( images, ( { url } ) => getBlobByURL( url ) );\n\t\t\tforEach( images, ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block.\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && ! isEmpty( imageSizeOptions );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\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={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\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<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\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{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["every","filter","find","forEach","get","isEmpty","map","reduce","some","toString","compose","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","MediaPlaceholder","InspectorControls","useBlockProps","store","blockEditorStore","Platform","useEffect","useState","useMemo","__","getBlobByURL","isBlobURL","revokeBlobURL","useDispatch","useSelect","withViewportMatch","View","coreStore","sharedIcon","pickRelevantMediaFiles","defaultColumnsNumberV1","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","resizedImages","ids","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","mediaDetailsUrl","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","img","i","Math","min","selectCaption","newImage","newImageId","currentImage","currentImageCaption","caption","attachment","onSelectImages","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","name","updateImagesSize","newSizeSlug","updatedImages","url","OS","filesList","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tevery,\n\tfilter,\n\tfind,\n\tforEach,\n\tget,\n\tisEmpty,\n\tmap,\n\treduce,\n\tsome,\n\ttoString,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { imageSizes, mediaUpload, getMedia, wasBlockJustInserted } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\t\twasBlockJustInserted: select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t\t};\n\t\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn reduce(\n\t\t\t\tattributes.ids,\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = reduce(\n\t\t\t\t\t\timageSizes,\n\t\t\t\t\t\t( currentSizes, size ) => {\n\t\t\t\t\t\t\tconst defaultUrl = get( image, [\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\tconst mediaDetailsUrl = get( image, [\n\t\t\t\t\t\t\t\t'media_details',\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'source_url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: map( newAttrs.images, ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = filter( images, ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = toString( newImage.id );\n\t\tconst currentImage = find( images, { id: newImageId } );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = find( attachmentCaptions, {\n\t\t\tid: newImageId,\n\t\t} );\n\n\t\t// If the attachment caption is updated.\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\treturn map(\n\t\t\tfilter( imageSizes, ( { slug } ) =>\n\t\t\t\tsome( resizedImages, ( sizes ) => sizes[ slug ] )\n\t\t\t),\n\t\t\t( { name, slug } ) => ( { value: slug, label: name } )\n\t\t);\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = map( images, ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url = get( resizedImages, [\n\t\t\t\tparseInt( image.id, 10 ),\n\t\t\t\tnewSizeSlug,\n\t\t\t] );\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\tevery( images, ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = map( images, ( { url } ) => getBlobByURL( url ) );\n\t\t\tforEach( images, ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block.\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && ! isEmpty( imageSizeOptions );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\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={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\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<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\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{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.js"],"names":["classnames","get","omit","Component","Button","Spinner","ButtonGroup","__","BACKSPACE","DELETE","withSelect","withDispatch","RichText","MediaPlaceholder","store","blockEditorStore","isBlobURL","compose","closeSmall","chevronLeft","chevronRight","edit","image","imageIcon","coreStore","pickRelevantMediaFiles","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","isTemporaryImage","id","url","GalleryImage","constructor","arguments","onSelectImage","bind","onRemoveImage","bindContainer","onEdit","onSelectImageFromLibrary","onSelectCustomURL","state","isEditing","ref","container","props","isSelected","onSelect","event","ownerDocument","activeElement","indexOf","keyCode","preventDefault","onRemove","setState","componentDidUpdate","__unstableMarkNextChangeAsNotPersistent","setAttributes","source_url","alt","alt_text","deselectOnBlur","onDeselect","media","caption","sizeSlug","mediaAttributes","newURL","undefined","render","linkTo","link","isFirstItem","isLastItem","onMoveForward","onMoveBackward","ariaLabel","href","img","className","title","src","newCaption","select","ownProps","getMedia","parseInt","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { get, omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Button, Spinner, ButtonGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport {\n\tRichText,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { isBlobURL } from '@wordpress/blob';\nimport { compose } from '@wordpress/compose';\nimport {\n\tcloseSmall,\n\tchevronLeft,\n\tchevronRight,\n\tedit,\n\timage as imageIcon,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { pickRelevantMediaFiles } from './shared';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onRemoveImage = this.onRemoveImage.bind( this );\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\tthis.onEdit = this.onEdit.bind( this );\n\t\tthis.onSelectImageFromLibrary = this.onSelectImageFromLibrary.bind(\n\t\t\tthis\n\t\t);\n\t\tthis.onSelectCustomURL = this.onSelectCustomURL.bind( this );\n\t\tthis.state = {\n\t\t\tisEditing: false,\n\t\t};\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonRemoveImage( event ) {\n\t\tif (\n\t\t\tthis.container === this.container.ownerDocument.activeElement &&\n\t\t\tthis.props.isSelected &&\n\t\t\t[ BACKSPACE, DELETE ].indexOf( event.keyCode ) !== -1\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.props.onRemove();\n\t\t}\n\t}\n\n\tonEdit() {\n\t\tthis.setState( {\n\t\t\tisEditing: true,\n\t\t} );\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst {\n\t\t\timage,\n\t\t\turl,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t} = this.props;\n\t\tif ( image && ! url ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\t}\n\n\tdeselectOnBlur() {\n\t\tthis.props.onDeselect();\n\t}\n\n\tonSelectImageFromLibrary( media ) {\n\t\tconst { setAttributes, id, url, alt, caption, sizeSlug } = this.props;\n\t\tif ( ! media || ! media.url ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, sizeSlug );\n\n\t\t// If the current image is temporary but an alt text was meanwhile\n\t\t// written by the user, make sure the text is not overwritten.\n\t\tif ( isTemporaryImage( id, url ) ) {\n\t\t\tif ( alt ) {\n\t\t\t\tmediaAttributes = omit( mediaAttributes, [ 'alt' ] );\n\t\t\t}\n\t\t}\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( caption && ! get( mediaAttributes, [ 'caption' ] ) ) {\n\t\t\tmediaAttributes = omit( mediaAttributes, [ 'caption' ] );\n\t\t}\n\n\t\tsetAttributes( mediaAttributes );\n\t\tthis.setState( {\n\t\t\tisEditing: false,\n\t\t} );\n\t}\n\n\tonSelectCustomURL( newURL ) {\n\t\tconst { setAttributes, url } = this.props;\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t} );\n\t\t\tthis.setState( {\n\t\t\t\tisEditing: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tlinkTo,\n\t\t\tlink,\n\t\t\tisFirstItem,\n\t\t\tisLastItem,\n\t\t\tisSelected,\n\t\t\tcaption,\n\t\t\tonRemove,\n\t\t\tonMoveForward,\n\t\t\tonMoveBackward,\n\t\t\tsetAttributes,\n\t\t\t'aria-label': ariaLabel,\n\t\t} = this.props;\n\t\tconst { isEditing } = this.state;\n\n\t\tlet href;\n\n\t\tswitch ( linkTo ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = link;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst img = (\n\t\t\t// Disable reason: Image itself is not meant to be interactive, but should\n\t\t\t// direct image selection and unfocus caption fields.\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n\t\t\t<>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tdata-id={ id }\n\t\t\t\t\tonKeyDown={ this.onRemoveImage }\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\tref={ this.bindContainer }\n\t\t\t\t/>\n\t\t\t\t{ isBlobURL( url ) && <Spinner /> }\n\t\t\t</>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions */\n\t\t);\n\n\t\tconst className = classnames( {\n\t\t\t'is-selected': isSelected,\n\t\t\t'is-transient': isBlobURL( url ),\n\t\t} );\n\n\t\treturn (\n\t\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n\t\t\t<figure\n\t\t\t\tclassName={ className }\n\t\t\t\tonClick={ this.onSelectImage }\n\t\t\t\tonFocus={ this.onSelectImage }\n\t\t\t>\n\t\t\t\t{ ! isEditing && ( href ? <a href={ href }>{ img }</a> : img ) }\n\t\t\t\t{ isEditing && (\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tlabels={ { title: __( 'Edit gallery image' ) } }\n\t\t\t\t\t\ticon={ imageIcon }\n\t\t\t\t\t\tonSelect={ this.onSelectImageFromLibrary }\n\t\t\t\t\t\tonSelectURL={ this.onSelectCustomURL }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tallowedTypes={ [ 'image' ] }\n\t\t\t\t\t\tvalue={ { id, src: url } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<ButtonGroup className=\"block-library-gallery-item__inline-menu is-left\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\tonClick={ isFirstItem ? undefined : onMoveBackward }\n\t\t\t\t\t\tlabel={ __( 'Move image backward' ) }\n\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\tonClick={ isLastItem ? undefined : onMoveForward }\n\t\t\t\t\t\tlabel={ __( 'Move image forward' ) }\n\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t\t<ButtonGroup className=\"block-library-gallery-item__inline-menu is-right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ this.onEdit }\n\t\t\t\t\t\tlabel={ __( 'Replace image' ) }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\tlabel={ __( 'Remove image' ) }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t\t{ ! isEditing && ( isSelected || caption ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ isSelected ? __( 'Add caption' ) : null }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( newCaption ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: newCaption } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getMedia } = select( coreStore );\n\t\tconst { id } = ownProps;\n\n\t\treturn {\n\t\t\timage: id ? getMedia( parseInt( id, 10 ) ) : null,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { __unstableMarkNextChangeAsNotPersistent } = dispatch(\n\t\t\tblockEditorStore\n\t\t);\n\t\treturn {\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t};\n\t} ),\n] )( GalleryImage );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.js"],"names":["classnames","get","omit","Component","Button","Spinner","ButtonGroup","__","BACKSPACE","DELETE","withSelect","withDispatch","RichText","MediaPlaceholder","store","blockEditorStore","isBlobURL","compose","closeSmall","chevronLeft","chevronRight","edit","image","imageIcon","coreStore","pickRelevantMediaFiles","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","isTemporaryImage","id","url","GalleryImage","constructor","arguments","onSelectImage","bind","onRemoveImage","bindContainer","onEdit","onSelectImageFromLibrary","onSelectCustomURL","state","isEditing","ref","container","props","isSelected","onSelect","event","ownerDocument","activeElement","indexOf","keyCode","preventDefault","onRemove","setState","componentDidUpdate","__unstableMarkNextChangeAsNotPersistent","setAttributes","source_url","alt","alt_text","deselectOnBlur","onDeselect","media","caption","sizeSlug","mediaAttributes","newURL","undefined","render","linkTo","link","isFirstItem","isLastItem","onMoveForward","onMoveBackward","ariaLabel","href","img","className","title","src","newCaption","select","ownProps","getMedia","parseInt","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { get, omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Button, Spinner, ButtonGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport {\n\tRichText,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { isBlobURL } from '@wordpress/blob';\nimport { compose } from '@wordpress/compose';\nimport {\n\tcloseSmall,\n\tchevronLeft,\n\tchevronRight,\n\tedit,\n\timage as imageIcon,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { pickRelevantMediaFiles } from './shared';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onRemoveImage = this.onRemoveImage.bind( this );\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\tthis.onEdit = this.onEdit.bind( this );\n\t\tthis.onSelectImageFromLibrary =\n\t\t\tthis.onSelectImageFromLibrary.bind( this );\n\t\tthis.onSelectCustomURL = this.onSelectCustomURL.bind( this );\n\t\tthis.state = {\n\t\t\tisEditing: false,\n\t\t};\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonRemoveImage( event ) {\n\t\tif (\n\t\t\tthis.container === this.container.ownerDocument.activeElement &&\n\t\t\tthis.props.isSelected &&\n\t\t\t[ BACKSPACE, DELETE ].indexOf( event.keyCode ) !== -1\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.props.onRemove();\n\t\t}\n\t}\n\n\tonEdit() {\n\t\tthis.setState( {\n\t\t\tisEditing: true,\n\t\t} );\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst { image, url, __unstableMarkNextChangeAsNotPersistent } =\n\t\t\tthis.props;\n\t\tif ( image && ! url ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\t}\n\n\tdeselectOnBlur() {\n\t\tthis.props.onDeselect();\n\t}\n\n\tonSelectImageFromLibrary( media ) {\n\t\tconst { setAttributes, id, url, alt, caption, sizeSlug } = this.props;\n\t\tif ( ! media || ! media.url ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, sizeSlug );\n\n\t\t// If the current image is temporary but an alt text was meanwhile\n\t\t// written by the user, make sure the text is not overwritten.\n\t\tif ( isTemporaryImage( id, url ) ) {\n\t\t\tif ( alt ) {\n\t\t\t\tmediaAttributes = omit( mediaAttributes, [ 'alt' ] );\n\t\t\t}\n\t\t}\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( caption && ! get( mediaAttributes, [ 'caption' ] ) ) {\n\t\t\tmediaAttributes = omit( mediaAttributes, [ 'caption' ] );\n\t\t}\n\n\t\tsetAttributes( mediaAttributes );\n\t\tthis.setState( {\n\t\t\tisEditing: false,\n\t\t} );\n\t}\n\n\tonSelectCustomURL( newURL ) {\n\t\tconst { setAttributes, url } = this.props;\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t} );\n\t\t\tthis.setState( {\n\t\t\t\tisEditing: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tlinkTo,\n\t\t\tlink,\n\t\t\tisFirstItem,\n\t\t\tisLastItem,\n\t\t\tisSelected,\n\t\t\tcaption,\n\t\t\tonRemove,\n\t\t\tonMoveForward,\n\t\t\tonMoveBackward,\n\t\t\tsetAttributes,\n\t\t\t'aria-label': ariaLabel,\n\t\t} = this.props;\n\t\tconst { isEditing } = this.state;\n\n\t\tlet href;\n\n\t\tswitch ( linkTo ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = link;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst img = (\n\t\t\t// Disable reason: Image itself is not meant to be interactive, but should\n\t\t\t// direct image selection and unfocus caption fields.\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n\t\t\t<>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tdata-id={ id }\n\t\t\t\t\tonKeyDown={ this.onRemoveImage }\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\tref={ this.bindContainer }\n\t\t\t\t/>\n\t\t\t\t{ isBlobURL( url ) && <Spinner /> }\n\t\t\t</>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions */\n\t\t);\n\n\t\tconst className = classnames( {\n\t\t\t'is-selected': isSelected,\n\t\t\t'is-transient': isBlobURL( url ),\n\t\t} );\n\n\t\treturn (\n\t\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n\t\t\t<figure\n\t\t\t\tclassName={ className }\n\t\t\t\tonClick={ this.onSelectImage }\n\t\t\t\tonFocus={ this.onSelectImage }\n\t\t\t>\n\t\t\t\t{ ! isEditing && ( href ? <a href={ href }>{ img }</a> : img ) }\n\t\t\t\t{ isEditing && (\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tlabels={ { title: __( 'Edit gallery image' ) } }\n\t\t\t\t\t\ticon={ imageIcon }\n\t\t\t\t\t\tonSelect={ this.onSelectImageFromLibrary }\n\t\t\t\t\t\tonSelectURL={ this.onSelectCustomURL }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tallowedTypes={ [ 'image' ] }\n\t\t\t\t\t\tvalue={ { id, src: url } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<ButtonGroup className=\"block-library-gallery-item__inline-menu is-left\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\tonClick={ isFirstItem ? undefined : onMoveBackward }\n\t\t\t\t\t\tlabel={ __( 'Move image backward' ) }\n\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\tonClick={ isLastItem ? undefined : onMoveForward }\n\t\t\t\t\t\tlabel={ __( 'Move image forward' ) }\n\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t\t<ButtonGroup className=\"block-library-gallery-item__inline-menu is-right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ this.onEdit }\n\t\t\t\t\t\tlabel={ __( 'Replace image' ) }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\tlabel={ __( 'Remove image' ) }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t\t{ ! isEditing && ( isSelected || caption ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ isSelected ? __( 'Add caption' ) : null }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( newCaption ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: newCaption } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getMedia } = select( coreStore );\n\t\tconst { id } = ownProps;\n\n\t\treturn {\n\t\t\timage: id ? getMedia( parseInt( id, 10 ) ) : null,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t};\n\t} ),\n] )( GalleryImage );\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.native.js"],"names":["StyleSheet","View","ScrollView","TouchableWithoutFeedback","isEmpty","requestImageFailedRetryDialog","requestImageUploadCancelDialog","requestImageFullscreenPreview","Component","Image","__","sprintf","Caption","MediaUploadProgress","getProtocol","withPreferredColorScheme","arrowLeft","arrowRight","warning","Button","style","compose","separatorStyle","separator","borderRightWidth","hairlineWidth","buttonStyle","button","aspectRatio","ICON_SIZE_ARROW","GalleryImage","constructor","arguments","onSelectImage","bind","onSelectCaption","onMediaPressed","onCaptionChange","onSelectMedia","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","renderContent","state","captionSelected","isUploadInProgress","didUploadFail","setState","props","isSelected","onSelect","id","url","isBlockSelected","onSelectBlock","media","setAttributes","caption","componentDidUpdate","prevProps","image","source_url","alt","alt_text","payload","mediaServerId","mediaUrl","params","isFirstItem","isLastItem","onRemove","onMoveForward","onMoveBackward","ariaLabel","isCropped","getStylesFromColorScheme","isRTL","isUploadFailed","retryMessage","resizeMode","captionPlaceholderStyle","captionPlaceholder","captionPlaceholderDark","shouldShowCaptionEditable","shouldShowCaptionExpanded","captionContainerStyle","captionExpandedContainer","captionContainer","captionStyle","captionExpanded","mediaPickerOptions","destructiveButton","label","onPress","separated","value","height","toolbarContainer","toolbar","moverButtonContainer","undefined","color","render","containerStyle","galleryImageContainer","galleryImageContainerDark","accessibilityLabelImageContainer"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tStyleSheet,\n\tView,\n\tScrollView,\n\tTouchableWithoutFeedback,\n} from 'react-native';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\trequestImageFullscreenPreview,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { Image } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Caption, MediaUploadProgress } from '@wordpress/block-editor';\nimport { getProtocol } from '@wordpress/url';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { arrowLeft, arrowRight, warning } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from './gallery-button';\nimport style from './gallery-image-style.scss';\n\nconst { compose } = StyleSheet;\n\nconst separatorStyle = compose( style.separator, {\n\tborderRightWidth: StyleSheet.hairlineWidth,\n} );\nconst buttonStyle = compose( style.button, { aspectRatio: 1 } );\nconst ICON_SIZE_ARROW = 15;\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onSelectCaption = this.onSelectCaption.bind( this );\n\t\tthis.onMediaPressed = this.onMediaPressed.bind( this );\n\t\tthis.onCaptionChange = this.onCaptionChange.bind( this );\n\t\tthis.onSelectMedia = this.onSelectMedia.bind( this );\n\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess = this.finishMediaUploadWithSuccess.bind(\n\t\t\tthis\n\t\t);\n\t\tthis.finishMediaUploadWithFailure = this.finishMediaUploadWithFailure.bind(\n\t\t\tthis\n\t\t);\n\t\tthis.renderContent = this.renderContent.bind( this );\n\n\t\tthis.state = {\n\t\t\tcaptionSelected: false,\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t};\n\t}\n\n\tonSelectCaption() {\n\t\tif ( ! this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonMediaPressed() {\n\t\tconst { id, url, isSelected } = this.props;\n\t\tconst {\n\t\t\tcaptionSelected,\n\t\t\tisUploadInProgress,\n\t\t\tdidUploadFail,\n\t\t} = this.state;\n\n\t\tthis.onSelectImage();\n\n\t\tif ( isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( id );\n\t\t} else if (\n\t\t\tdidUploadFail ||\n\t\t\t( id && getProtocol( url ) === 'file:' )\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( id );\n\t\t} else if ( isSelected && ! captionSelected ) {\n\t\t\trequestImageFullscreenPreview( url );\n\t\t}\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isBlockSelected ) {\n\t\t\tthis.props.onSelectBlock();\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\n\t\tif ( this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSelectMedia( media ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( media );\n\t}\n\n\tonCaptionChange( caption ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { caption } );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { isSelected, image, url } = this.props;\n\t\tif ( image && ! url ) {\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\n\t\t// Unselect the caption so when the user selects other image and comeback\n\t\t// the caption is not immediately selected.\n\t\tif (\n\t\t\tthis.state.captionSelected &&\n\t\t\t! isSelected &&\n\t\t\tprevProps.isSelected\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tupdateMediaProgress() {\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t} );\n\n\t\tthis.props.setAttributes( {\n\t\t\tid: payload.mediaServerId,\n\t\t\turl: payload.mediaUrl,\n\t\t} );\n\t}\n\n\tfinishMediaUploadWithFailure() {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: true,\n\t\t} );\n\t}\n\n\trenderContent( params ) {\n\t\tconst {\n\t\t\turl,\n\t\t\tisFirstItem,\n\t\t\tisLastItem,\n\t\t\tisSelected,\n\t\t\tcaption,\n\t\t\tonRemove,\n\t\t\tonMoveForward,\n\t\t\tonMoveBackward,\n\t\t\t'aria-label': ariaLabel,\n\t\t\tisCropped,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tisRTL,\n\t\t} = this.props;\n\n\t\tconst { isUploadInProgress, captionSelected } = this.state;\n\t\tconst { isUploadFailed, retryMessage } = params;\n\t\tconst resizeMode = isCropped ? 'cover' : 'contain';\n\n\t\tconst captionPlaceholderStyle = getStylesFromColorScheme(\n\t\t\tstyle.captionPlaceholder,\n\t\t\tstyle.captionPlaceholderDark\n\t\t);\n\n\t\tconst shouldShowCaptionEditable = ! isUploadFailed && isSelected;\n\t\tconst shouldShowCaptionExpanded =\n\t\t\t! isUploadFailed && ! isSelected && !! caption;\n\n\t\tconst captionContainerStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpandedContainer\n\t\t\t: style.captionContainer;\n\n\t\tconst captionStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpanded\n\t\t\t: style.caption;\n\n\t\tconst mediaPickerOptions = [\n\t\t\t{\n\t\t\t\tdestructiveButton: true,\n\t\t\t\tid: 'removeImage',\n\t\t\t\tlabel: __( 'Remove' ),\n\t\t\t\tonPress: onRemove,\n\t\t\t\tseparated: true,\n\t\t\t\tvalue: 'removeImage',\n\t\t\t},\n\t\t];\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Image\n\t\t\t\t\talt={ ariaLabel }\n\t\t\t\t\theight={ style.image.height }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\tmediaPickerOptions={ mediaPickerOptions }\n\t\t\t\t\tonSelectMediaUploadOption={ this.onSelectMedia }\n\t\t\t\t\tresizeMode={ resizeMode }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\tretryIcon={ warning }\n\t\t\t\t/>\n\n\t\t\t\t{ ! isUploadInProgress && isSelected && (\n\t\t\t\t\t<View style={ style.toolbarContainer }>\n\t\t\t\t\t\t<View style={ style.toolbar }>\n\t\t\t\t\t\t\t<View style={ style.moverButtonContainer }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowRight : arrowLeft }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisFirstItem ? undefined : onMoveBackward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Backward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<View style={ separatorStyle } />\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowLeft : arrowRight }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisLastItem ? undefined : onMoveForward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Forward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isUploadInProgress &&\n\t\t\t\t\t( shouldShowCaptionEditable ||\n\t\t\t\t\t\tshouldShowCaptionExpanded ) && (\n\t\t\t\t\t\t<View style={ captionContainerStyle }>\n\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\tnestedScrollEnabled\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"handled\"\n\t\t\t\t\t\t\t\tbounces={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Caption\n\t\t\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected && captionSelected }\n\t\t\t\t\t\t\t\t\tonChange={ this.onCaptionChange }\n\t\t\t\t\t\t\t\t\tonFocus={ this.onSelectCaption }\n\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\tisSelected ? __( 'Add caption' ) : null\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\tcaptionPlaceholderStyle.color\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstyle={ captionStyle }\n\t\t\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tid,\n\t\t\tonRemove,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tisSelected,\n\t\t} = this.props;\n\n\t\tconst containerStyle = getStylesFromColorScheme(\n\t\t\tstyle.galleryImageContainer,\n\t\t\tstyle.galleryImageContainerDark\n\t\t);\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onMediaPressed }\n\t\t\t\taccessible={ ! isSelected } // We need only child views to be accessible after the selection.\n\t\t\t\taccessibilityLabel={ this.accessibilityLabelImageContainer() } // if we don't set this explicitly it reads system provided accessibilityLabels of all child components and those include pretty technical words which don't make sense\n\t\t\t\taccessibilityRole={ 'imagebutton' } // this makes VoiceOver to read a description of image provided by system on iOS and lets user know this is a button which conveys the message of tappablity\n\t\t\t>\n\t\t\t\t<View style={ containerStyle }>\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMediaUploadStateReset={ onRemove }\n\t\t\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n\n\taccessibilityLabelImageContainer() {\n\t\tconst { caption, 'aria-label': ariaLabel } = this.props;\n\n\t\treturn isEmpty( caption )\n\t\t\t? ariaLabel\n\t\t\t: ariaLabel +\n\t\t\t\t\t'. ' +\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: image caption. */\n\t\t\t\t\t\t__( 'Image caption. %s' ),\n\t\t\t\t\t\tcaption\n\t\t\t\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( GalleryImage );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.native.js"],"names":["StyleSheet","View","ScrollView","TouchableWithoutFeedback","isEmpty","requestImageFailedRetryDialog","requestImageUploadCancelDialog","requestImageFullscreenPreview","Component","Image","__","sprintf","Caption","MediaUploadProgress","getProtocol","withPreferredColorScheme","arrowLeft","arrowRight","warning","Button","style","compose","separatorStyle","separator","borderRightWidth","hairlineWidth","buttonStyle","button","aspectRatio","ICON_SIZE_ARROW","GalleryImage","constructor","arguments","onSelectImage","bind","onSelectCaption","onMediaPressed","onCaptionChange","onSelectMedia","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","renderContent","state","captionSelected","isUploadInProgress","didUploadFail","setState","props","isSelected","onSelect","id","url","isBlockSelected","onSelectBlock","media","setAttributes","caption","componentDidUpdate","prevProps","image","source_url","alt","alt_text","payload","mediaServerId","mediaUrl","params","isFirstItem","isLastItem","onRemove","onMoveForward","onMoveBackward","ariaLabel","isCropped","getStylesFromColorScheme","isRTL","isUploadFailed","retryMessage","resizeMode","captionPlaceholderStyle","captionPlaceholder","captionPlaceholderDark","shouldShowCaptionEditable","shouldShowCaptionExpanded","captionContainerStyle","captionExpandedContainer","captionContainer","captionStyle","captionExpanded","mediaPickerOptions","destructiveButton","label","onPress","separated","value","height","toolbarContainer","toolbar","moverButtonContainer","undefined","color","render","containerStyle","galleryImageContainer","galleryImageContainerDark","accessibilityLabelImageContainer"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tStyleSheet,\n\tView,\n\tScrollView,\n\tTouchableWithoutFeedback,\n} from 'react-native';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\trequestImageFullscreenPreview,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { Image } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Caption, MediaUploadProgress } from '@wordpress/block-editor';\nimport { getProtocol } from '@wordpress/url';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { arrowLeft, arrowRight, warning } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from './gallery-button';\nimport style from './gallery-image-style.scss';\n\nconst { compose } = StyleSheet;\n\nconst separatorStyle = compose( style.separator, {\n\tborderRightWidth: StyleSheet.hairlineWidth,\n} );\nconst buttonStyle = compose( style.button, { aspectRatio: 1 } );\nconst ICON_SIZE_ARROW = 15;\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onSelectCaption = this.onSelectCaption.bind( this );\n\t\tthis.onMediaPressed = this.onMediaPressed.bind( this );\n\t\tthis.onCaptionChange = this.onCaptionChange.bind( this );\n\t\tthis.onSelectMedia = this.onSelectMedia.bind( this );\n\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\n\t\tthis.state = {\n\t\t\tcaptionSelected: false,\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t};\n\t}\n\n\tonSelectCaption() {\n\t\tif ( ! this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonMediaPressed() {\n\t\tconst { id, url, isSelected } = this.props;\n\t\tconst { captionSelected, isUploadInProgress, didUploadFail } =\n\t\t\tthis.state;\n\n\t\tthis.onSelectImage();\n\n\t\tif ( isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( id );\n\t\t} else if (\n\t\t\tdidUploadFail ||\n\t\t\t( id && getProtocol( url ) === 'file:' )\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( id );\n\t\t} else if ( isSelected && ! captionSelected ) {\n\t\t\trequestImageFullscreenPreview( url );\n\t\t}\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isBlockSelected ) {\n\t\t\tthis.props.onSelectBlock();\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\n\t\tif ( this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSelectMedia( media ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( media );\n\t}\n\n\tonCaptionChange( caption ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { caption } );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { isSelected, image, url } = this.props;\n\t\tif ( image && ! url ) {\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\n\t\t// Unselect the caption so when the user selects other image and comeback\n\t\t// the caption is not immediately selected.\n\t\tif (\n\t\t\tthis.state.captionSelected &&\n\t\t\t! isSelected &&\n\t\t\tprevProps.isSelected\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tupdateMediaProgress() {\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t} );\n\n\t\tthis.props.setAttributes( {\n\t\t\tid: payload.mediaServerId,\n\t\t\turl: payload.mediaUrl,\n\t\t} );\n\t}\n\n\tfinishMediaUploadWithFailure() {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: true,\n\t\t} );\n\t}\n\n\trenderContent( params ) {\n\t\tconst {\n\t\t\turl,\n\t\t\tisFirstItem,\n\t\t\tisLastItem,\n\t\t\tisSelected,\n\t\t\tcaption,\n\t\t\tonRemove,\n\t\t\tonMoveForward,\n\t\t\tonMoveBackward,\n\t\t\t'aria-label': ariaLabel,\n\t\t\tisCropped,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tisRTL,\n\t\t} = this.props;\n\n\t\tconst { isUploadInProgress, captionSelected } = this.state;\n\t\tconst { isUploadFailed, retryMessage } = params;\n\t\tconst resizeMode = isCropped ? 'cover' : 'contain';\n\n\t\tconst captionPlaceholderStyle = getStylesFromColorScheme(\n\t\t\tstyle.captionPlaceholder,\n\t\t\tstyle.captionPlaceholderDark\n\t\t);\n\n\t\tconst shouldShowCaptionEditable = ! isUploadFailed && isSelected;\n\t\tconst shouldShowCaptionExpanded =\n\t\t\t! isUploadFailed && ! isSelected && !! caption;\n\n\t\tconst captionContainerStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpandedContainer\n\t\t\t: style.captionContainer;\n\n\t\tconst captionStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpanded\n\t\t\t: style.caption;\n\n\t\tconst mediaPickerOptions = [\n\t\t\t{\n\t\t\t\tdestructiveButton: true,\n\t\t\t\tid: 'removeImage',\n\t\t\t\tlabel: __( 'Remove' ),\n\t\t\t\tonPress: onRemove,\n\t\t\t\tseparated: true,\n\t\t\t\tvalue: 'removeImage',\n\t\t\t},\n\t\t];\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Image\n\t\t\t\t\talt={ ariaLabel }\n\t\t\t\t\theight={ style.image.height }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\tmediaPickerOptions={ mediaPickerOptions }\n\t\t\t\t\tonSelectMediaUploadOption={ this.onSelectMedia }\n\t\t\t\t\tresizeMode={ resizeMode }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\tretryIcon={ warning }\n\t\t\t\t/>\n\n\t\t\t\t{ ! isUploadInProgress && isSelected && (\n\t\t\t\t\t<View style={ style.toolbarContainer }>\n\t\t\t\t\t\t<View style={ style.toolbar }>\n\t\t\t\t\t\t\t<View style={ style.moverButtonContainer }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowRight : arrowLeft }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisFirstItem ? undefined : onMoveBackward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Backward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<View style={ separatorStyle } />\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowLeft : arrowRight }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisLastItem ? undefined : onMoveForward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Forward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isUploadInProgress &&\n\t\t\t\t\t( shouldShowCaptionEditable ||\n\t\t\t\t\t\tshouldShowCaptionExpanded ) && (\n\t\t\t\t\t\t<View style={ captionContainerStyle }>\n\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\tnestedScrollEnabled\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"handled\"\n\t\t\t\t\t\t\t\tbounces={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Caption\n\t\t\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected && captionSelected }\n\t\t\t\t\t\t\t\t\tonChange={ this.onCaptionChange }\n\t\t\t\t\t\t\t\t\tonFocus={ this.onSelectCaption }\n\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\tisSelected ? __( 'Add caption' ) : null\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\tcaptionPlaceholderStyle.color\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstyle={ captionStyle }\n\t\t\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { id, onRemove, getStylesFromColorScheme, isSelected } =\n\t\t\tthis.props;\n\n\t\tconst containerStyle = getStylesFromColorScheme(\n\t\t\tstyle.galleryImageContainer,\n\t\t\tstyle.galleryImageContainerDark\n\t\t);\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onMediaPressed }\n\t\t\t\taccessible={ ! isSelected } // We need only child views to be accessible after the selection.\n\t\t\t\taccessibilityLabel={ this.accessibilityLabelImageContainer() } // if we don't set this explicitly it reads system provided accessibilityLabels of all child components and those include pretty technical words which don't make sense\n\t\t\t\taccessibilityRole={ 'imagebutton' } // this makes VoiceOver to read a description of image provided by system on iOS and lets user know this is a button which conveys the message of tappablity\n\t\t\t>\n\t\t\t\t<View style={ containerStyle }>\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMediaUploadStateReset={ onRemove }\n\t\t\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n\n\taccessibilityLabelImageContainer() {\n\t\tconst { caption, 'aria-label': ariaLabel } = this.props;\n\n\t\treturn isEmpty( caption )\n\t\t\t? ariaLabel\n\t\t\t: ariaLabel +\n\t\t\t\t\t'. ' +\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: image caption. */\n\t\t\t\t\t\t__( 'Image caption. %s' ),\n\t\t\t\t\t\tcaption\n\t\t\t\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( GalleryImage );\n"]}
|
|
@@ -12,7 +12,7 @@ import classnames from 'classnames';
|
|
|
12
12
|
import { RichText } from '@wordpress/block-editor';
|
|
13
13
|
import { VisuallyHidden } from '@wordpress/components';
|
|
14
14
|
import { __, sprintf } from '@wordpress/i18n';
|
|
15
|
-
import { createBlock } from '@wordpress/blocks';
|
|
15
|
+
import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
|
|
16
16
|
/**
|
|
17
17
|
* Internal dependencies
|
|
18
18
|
*/
|
|
@@ -85,7 +85,7 @@ export const Gallery = props => {
|
|
|
85
85
|
caption: value
|
|
86
86
|
}),
|
|
87
87
|
inlineToolbar: true,
|
|
88
|
-
__unstableOnSplitAtEnd: () => insertBlocksAfter(createBlock(
|
|
88
|
+
__unstableOnSplitAtEnd: () => insertBlocksAfter(createBlock(getDefaultBlockName()))
|
|
89
89
|
}));
|
|
90
90
|
};
|
|
91
91
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery.js"],"names":["classnames","RichText","VisuallyHidden","__","sprintf","createBlock","GalleryImage","defaultColumnsNumberV1","Gallery","props","attributes","isSelected","setAttributes","selectedImage","mediaPlaceholder","onMoveBackward","onMoveForward","onRemoveImage","onSelectImage","onDeselectImage","onSetImageAttributes","insertBlocksAfter","blockProps","align","columns","caption","imageCrop","images","className","map","img","index","ariaLabel","length","id","url","alt","attrs","sizeSlug","isEmpty","value","RichTextVisibilityHelper","isHidden","richTextProps"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,yBAAzB;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,WAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery.js"],"names":["classnames","RichText","VisuallyHidden","__","sprintf","createBlock","getDefaultBlockName","GalleryImage","defaultColumnsNumberV1","Gallery","props","attributes","isSelected","setAttributes","selectedImage","mediaPlaceholder","onMoveBackward","onMoveForward","onRemoveImage","onSelectImage","onDeselectImage","onSetImageAttributes","insertBlocksAfter","blockProps","align","columns","caption","imageCrop","images","className","map","img","index","ariaLabel","length","id","url","alt","attrs","sizeSlug","isEmpty","value","RichTextVisibilityHelper","isHidden","richTextProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { RichText } from '@wordpress/block-editor';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport GalleryImage from './gallery-image';\nimport { defaultColumnsNumberV1 } from '../deprecated';\n\nexport const Gallery = ( props ) => {\n\tconst {\n\t\tattributes,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tselectedImage,\n\t\tmediaPlaceholder,\n\t\tonMoveBackward,\n\t\tonMoveForward,\n\t\tonRemoveImage,\n\t\tonSelectImage,\n\t\tonDeselectImage,\n\t\tonSetImageAttributes,\n\t\tinsertBlocksAfter,\n\t\tblockProps,\n\t} = props;\n\n\tconst {\n\t\talign,\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\tcaption,\n\t\timageCrop,\n\t\timages,\n\t} = attributes;\n\n\treturn (\n\t\t<figure\n\t\t\t{ ...blockProps }\n\t\t\tclassName={ classnames( blockProps.className, {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t[ `columns-${ columns }` ]: columns,\n\t\t\t\t'is-cropped': imageCrop,\n\t\t\t} ) }\n\t\t>\n\t\t\t<ul className=\"blocks-gallery-grid\">\n\t\t\t\t{ images.map( ( img, index ) => {\n\t\t\t\t\tconst ariaLabel = sprintf(\n\t\t\t\t\t\t/* translators: 1: the order number of the image. 2: the total number of images. */\n\t\t\t\t\t\t__( 'image %1$d of %2$d in gallery' ),\n\t\t\t\t\t\tindex + 1,\n\t\t\t\t\t\timages.length\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t\tclassName=\"blocks-gallery-item\"\n\t\t\t\t\t\t\tkey={ img.id ? `${ img.id }-${ index }` : img.url }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<GalleryImage\n\t\t\t\t\t\t\t\turl={ img.url }\n\t\t\t\t\t\t\t\talt={ img.alt }\n\t\t\t\t\t\t\t\tid={ img.id }\n\t\t\t\t\t\t\t\tisFirstItem={ index === 0 }\n\t\t\t\t\t\t\t\tisLastItem={ index + 1 === images.length }\n\t\t\t\t\t\t\t\tisSelected={\n\t\t\t\t\t\t\t\t\tisSelected && selectedImage === index\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonMoveBackward={ onMoveBackward( index ) }\n\t\t\t\t\t\t\t\tonMoveForward={ onMoveForward( index ) }\n\t\t\t\t\t\t\t\tonRemove={ onRemoveImage( index ) }\n\t\t\t\t\t\t\t\tonSelect={ onSelectImage( index ) }\n\t\t\t\t\t\t\t\tonDeselect={ onDeselectImage( index ) }\n\t\t\t\t\t\t\t\tsetAttributes={ ( attrs ) =>\n\t\t\t\t\t\t\t\t\tonSetImageAttributes( index, attrs )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcaption={ img.caption }\n\t\t\t\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\t\t\t\tsizeSlug={ attributes.sizeSlug }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t\t{ mediaPlaceholder }\n\t\t\t<RichTextVisibilityHelper\n\t\t\t\tisHidden={ ! isSelected && RichText.isEmpty( caption ) }\n\t\t\t\ttagName=\"figcaption\"\n\t\t\t\tclassName=\"blocks-gallery-caption\"\n\t\t\t\taria-label={ __( 'Gallery caption text' ) }\n\t\t\t\tplaceholder={ __( 'Write gallery caption…' ) }\n\t\t\t\tvalue={ caption }\n\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\tinlineToolbar\n\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</figure>\n\t);\n};\n\nfunction RichTextVisibilityHelper( { isHidden, ...richTextProps } ) {\n\treturn isHidden ? (\n\t\t<VisuallyHidden as={ RichText } { ...richTextProps } />\n\t) : (\n\t\t<RichText { ...richTextProps } />\n\t);\n}\n\nexport default Gallery;\n"]}
|