@wordpress/block-library 9.6.1 → 9.7.1-next.1f6eadc42.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 +2 -0
- package/build/archives/edit.js +1 -1
- package/build/archives/edit.js.map +1 -1
- package/build/audio/edit.js +2 -1
- package/build/audio/edit.js.map +1 -1
- package/build/block/edit.js +5 -8
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/buttons/index.js +1 -1
- package/build/categories/index.js +1 -0
- package/build/categories/index.js.map +1 -1
- package/build/comment-edit-link/index.js +13 -2
- package/build/comment-edit-link/index.js.map +1 -1
- package/build/comment-reply-link/index.js +13 -2
- package/build/comment-reply-link/index.js.map +1 -1
- package/build/comments/edit/comments-legacy.js +1 -0
- package/build/comments/edit/comments-legacy.js.map +1 -1
- package/build/cover/deprecated.js +1 -1
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/block-controls.js +4 -2
- package/build/cover/edit/block-controls.js.map +1 -1
- package/build/cover/edit/index.js +6 -3
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +4 -12
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/details/index.js +3 -1
- package/build/details/index.js.map +1 -1
- package/build/details/transforms.js +24 -0
- package/build/details/transforms.js.map +1 -0
- package/build/embed/edit.js +5 -11
- package/build/embed/edit.js.map +1 -1
- package/build/embed/embed-placeholder.js +2 -0
- package/build/embed/embed-placeholder.js.map +1 -1
- package/build/embed/embed-preview.js +16 -4
- package/build/embed/embed-preview.js.map +1 -1
- package/build/file/edit.js +12 -1
- package/build/file/edit.js.map +1 -1
- package/build/file/transforms.js +18 -4
- package/build/file/transforms.js.map +1 -1
- package/build/form-input/deprecated.js +113 -1
- package/build/form-input/deprecated.js.map +1 -1
- package/build/form-input/edit.js +16 -12
- package/build/form-input/edit.js.map +1 -1
- package/build/form-input/save.js +9 -1
- package/build/form-input/save.js.map +1 -1
- package/build/freeform/edit.js +4 -4
- package/build/freeform/edit.js.map +1 -1
- package/build/freeform/modal.js +3 -0
- package/build/freeform/modal.js.map +1 -1
- package/build/home-link/edit.js +3 -9
- package/build/home-link/edit.js.map +1 -1
- package/build/image/edit.js +95 -45
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +39 -24
- package/build/image/image.js.map +1 -1
- package/build/image/transforms.js +0 -13
- package/build/image/transforms.js.map +1 -1
- package/build/image/use-max-width-observer.js +35 -0
- package/build/image/use-max-width-observer.js.map +1 -0
- package/build/image/utils.js +11 -0
- package/build/image/utils.js.map +1 -1
- package/build/latest-posts/edit.js +1 -1
- package/build/latest-posts/edit.js.map +1 -1
- package/build/media-text/deprecated.js +144 -3
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +5 -5
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/image-fill.js +12 -0
- package/build/media-text/image-fill.js.map +1 -0
- package/build/media-text/media-container.js +21 -18
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/media-container.native.js +0 -7
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/media-text/save.js +5 -6
- package/build/media-text/save.js.map +1 -1
- package/build/missing/edit.js +3 -2
- package/build/missing/edit.js.map +1 -1
- package/build/navigation/edit/deleted-navigation-warning.js +14 -7
- package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
- package/build/navigation/edit/index.js +1 -0
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +2 -1
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +1 -0
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +1 -0
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/edit/responsive-wrapper.js +2 -0
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +4 -4
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation-link/link-ui.js +2 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +2 -0
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/edit.js +4 -1
- package/build/page-list/edit.js.map +1 -1
- package/build/post-comments-form/form.js +1 -0
- package/build/post-comments-form/form.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +6 -8
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +2 -4
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-title/index.js +4 -1
- package/build/post-title/index.js.map +1 -1
- package/build/query/edit/enhanced-pagination-modal.js +3 -2
- package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
- package/build/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
- package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +2 -10
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/query-content.js +9 -3
- package/build/query/edit/query-content.js.map +1 -1
- package/build/query/edit/query-placeholder.js +2 -0
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/site-logo/edit.js +9 -13
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-title/index.js +4 -1
- package/build/site-title/index.js.map +1 -1
- package/build/social-link/edit.js +4 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/edit.js +10 -9
- package/build/social-links/edit.js.map +1 -1
- package/build/template-part/edit/advanced-controls.js.map +1 -1
- package/build/template-part/edit/index.js +1 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/inner-blocks.js +10 -1
- package/build/template-part/edit/inner-blocks.js.map +1 -1
- package/build/template-part/edit/placeholder.js +2 -0
- package/build/template-part/edit/placeholder.js.map +1 -1
- package/build/utils/hooks.js +10 -10
- package/build/utils/hooks.js.map +1 -1
- package/build/video/edit.js +16 -12
- package/build/video/edit.js.map +1 -1
- package/build/video/tracks-editor.js +3 -0
- package/build/video/tracks-editor.js.map +1 -1
- package/build-module/archives/edit.js +1 -1
- package/build-module/archives/edit.js.map +1 -1
- package/build-module/audio/edit.js +2 -1
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/block/edit.js +6 -9
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.js +1 -1
- package/build-module/button/edit.js.map +1 -1
- package/build-module/buttons/index.js +1 -1
- package/build-module/categories/index.js +1 -0
- package/build-module/categories/index.js.map +1 -1
- package/build-module/comment-edit-link/index.js +13 -2
- package/build-module/comment-edit-link/index.js.map +1 -1
- package/build-module/comment-reply-link/index.js +13 -2
- package/build-module/comment-reply-link/index.js.map +1 -1
- package/build-module/comments/edit/comments-legacy.js +1 -0
- package/build-module/comments/edit/comments-legacy.js.map +1 -1
- package/build-module/cover/deprecated.js +1 -1
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/block-controls.js +4 -2
- package/build-module/cover/edit/block-controls.js.map +1 -1
- package/build-module/cover/edit/index.js +6 -3
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +5 -13
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/details/index.js +3 -1
- package/build-module/details/index.js.map +1 -1
- package/build-module/details/transforms.js +18 -0
- package/build-module/details/transforms.js.map +1 -0
- package/build-module/embed/edit.js +6 -12
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/embed-placeholder.js +2 -0
- package/build-module/embed/embed-placeholder.js.map +1 -1
- package/build-module/embed/embed-preview.js +16 -4
- package/build-module/embed/embed-preview.js.map +1 -1
- package/build-module/file/edit.js +12 -1
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/transforms.js +18 -4
- package/build-module/file/transforms.js.map +1 -1
- package/build-module/form-input/deprecated.js +114 -2
- package/build-module/form-input/deprecated.js.map +1 -1
- package/build-module/form-input/edit.js +16 -12
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/form-input/save.js +9 -1
- package/build-module/form-input/save.js.map +1 -1
- package/build-module/freeform/edit.js +4 -4
- package/build-module/freeform/edit.js.map +1 -1
- package/build-module/freeform/modal.js +3 -0
- package/build-module/freeform/modal.js.map +1 -1
- package/build-module/home-link/edit.js +3 -9
- package/build-module/home-link/edit.js.map +1 -1
- package/build-module/image/edit.js +99 -48
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +40 -25
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/transforms.js +0 -13
- package/build-module/image/transforms.js.map +1 -1
- package/build-module/image/use-max-width-observer.js +29 -0
- package/build-module/image/use-max-width-observer.js.map +1 -0
- package/build-module/image/utils.js +11 -1
- package/build-module/image/utils.js.map +1 -1
- package/build-module/latest-posts/edit.js +1 -1
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/media-text/deprecated.js +144 -3
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.js +5 -5
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/image-fill.js +6 -0
- package/build-module/media-text/image-fill.js.map +1 -0
- package/build-module/media-text/media-container.js +21 -17
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/media-container.native.js +0 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/media-text/save.js +5 -6
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/missing/edit.js +3 -2
- package/build-module/missing/edit.js.map +1 -1
- package/build-module/navigation/edit/deleted-navigation-warning.js +15 -8
- package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
- package/build-module/navigation/edit/index.js +1 -0
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +2 -1
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +1 -0
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +1 -0
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/edit/responsive-wrapper.js +2 -0
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +4 -4
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +4 -3
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +2 -0
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/edit.js +4 -1
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/post-comments-form/form.js +1 -0
- package/build-module/post-comments-form/form.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +6 -8
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +3 -5
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-title/index.js +4 -1
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/query/edit/enhanced-pagination-modal.js +3 -2
- package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +2 -10
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/query-content.js +10 -4
- package/build-module/query/edit/query-content.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +2 -0
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/site-logo/edit.js +10 -14
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-title/index.js +4 -1
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-link/edit.js +4 -1
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/edit.js +11 -10
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/template-part/edit/advanced-controls.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/inner-blocks.js +10 -1
- package/build-module/template-part/edit/inner-blocks.js.map +1 -1
- package/build-module/template-part/edit/placeholder.js +2 -0
- package/build-module/template-part/edit/placeholder.js.map +1 -1
- package/build-module/utils/hooks.js +10 -10
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/video/edit.js +16 -13
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/tracks-editor.js +3 -0
- package/build-module/video/tracks-editor.js.map +1 -1
- package/build-style/button/editor-rtl.css +0 -4
- package/build-style/button/editor.css +0 -4
- package/build-style/buttons/editor-rtl.css +2 -5
- package/build-style/buttons/editor.css +2 -5
- package/build-style/buttons/style-rtl.css +2 -2
- package/build-style/buttons/style.css +2 -2
- package/build-style/comment-edit-link/style-rtl.css +94 -0
- package/build-style/comment-edit-link/style.css +94 -0
- package/build-style/comment-reply-link/style-rtl.css +94 -0
- package/build-style/comment-reply-link/style.css +94 -0
- package/build-style/comments-pagination/editor-rtl.css +2 -2
- package/build-style/comments-pagination/editor.css +2 -2
- package/build-style/common-rtl.css +2 -2
- package/build-style/common.css +2 -2
- package/build-style/cover/editor-rtl.css +0 -6
- package/build-style/cover/editor.css +0 -6
- package/build-style/editor-rtl.css +35 -99
- package/build-style/editor.css +35 -101
- package/build-style/form-input/style-rtl.css +7 -8
- package/build-style/form-input/style.css +7 -8
- package/build-style/group/editor-rtl.css +0 -1
- package/build-style/group/editor.css +0 -1
- package/build-style/image/editor-rtl.css +6 -27
- package/build-style/image/editor.css +6 -27
- package/build-style/media-text/editor-rtl.css +3 -1
- package/build-style/media-text/editor.css +3 -1
- package/build-style/media-text/style-rtl.css +20 -0
- package/build-style/media-text/style.css +20 -0
- package/build-style/navigation/editor-rtl.css +1 -2
- package/build-style/navigation/editor.css +1 -2
- package/build-style/post-featured-image/style-rtl.css +1 -1
- package/build-style/post-featured-image/style.css +1 -1
- package/build-style/post-title/style-rtl.css +21 -0
- package/build-style/post-title/style.css +21 -0
- package/build-style/query-pagination/editor-rtl.css +2 -16
- package/build-style/query-pagination/editor.css +2 -18
- package/build-style/query-pagination/style-rtl.css +0 -11
- package/build-style/query-pagination/style.css +0 -13
- package/build-style/site-title/editor-rtl.css +0 -4
- package/build-style/site-title/editor.css +0 -4
- package/build-style/site-title/style-rtl.css +21 -0
- package/build-style/site-title/style.css +21 -0
- package/build-style/social-links/editor-rtl.css +17 -0
- package/build-style/social-links/editor.css +17 -0
- package/build-style/style-rtl.css +82 -24
- package/build-style/style.css +82 -26
- package/build-style/video/editor-rtl.css +0 -29
- package/build-style/video/editor.css +0 -29
- package/package.json +42 -35
- package/src/archives/edit.js +1 -1
- package/src/audio/edit.js +1 -0
- package/src/block/edit.js +9 -11
- package/src/button/edit.js +1 -1
- package/src/button/editor.scss +0 -5
- package/src/buttons/block.json +1 -1
- package/src/buttons/editor.scss +2 -8
- package/src/buttons/style.scss +2 -2
- package/src/categories/block.json +1 -0
- package/src/categories/index.php +13 -2
- package/src/comment-edit-link/block.json +13 -2
- package/src/comment-edit-link/style.scss +4 -0
- package/src/comment-reply-link/block.json +13 -2
- package/src/comment-reply-link/style.scss +4 -0
- package/src/comments/edit/comments-legacy.js +1 -0
- package/src/comments-pagination/editor.scss +1 -1
- package/src/cover/deprecated.js +3 -2
- package/src/cover/edit/block-controls.js +2 -0
- package/src/cover/edit/index.js +6 -1
- package/src/cover/edit/inspector-controls.js +3 -15
- package/src/cover/editor.scss +0 -5
- package/src/cover/test/edit.js +30 -26
- package/src/details/index.js +2 -0
- package/src/details/transforms.js +26 -0
- package/src/embed/edit.js +0 -7
- package/src/embed/embed-placeholder.js +10 -2
- package/src/embed/embed-preview.js +22 -2
- package/src/file/edit.js +11 -0
- package/src/file/index.php +1 -1
- package/src/file/transforms.js +26 -6
- package/src/form-input/deprecated.js +114 -1
- package/src/form-input/edit.js +17 -11
- package/src/form-input/save.js +13 -3
- package/src/form-input/style.scss +9 -8
- package/src/freeform/edit.js +4 -4
- package/src/freeform/editor.scss +1 -1
- package/src/freeform/modal.js +7 -1
- package/src/gallery/editor.scss +1 -1
- package/src/group/editor.scss +0 -1
- package/src/home-link/edit.js +4 -7
- package/src/image/edit.js +130 -47
- package/src/image/editor.scss +7 -41
- package/src/image/image.js +100 -67
- package/src/image/index.php +1 -1
- package/src/image/transforms.js +0 -23
- package/src/image/use-max-width-observer.js +32 -0
- package/src/image/utils.js +13 -1
- package/src/latest-posts/edit.js +1 -1
- package/src/media-text/deprecated.js +159 -3
- package/src/media-text/edit.js +5 -5
- package/src/media-text/editor.scss +3 -1
- package/src/media-text/image-fill.js +11 -0
- package/src/media-text/index.php +53 -43
- package/src/media-text/media-container.js +25 -25
- package/src/media-text/media-container.native.js +0 -2
- package/src/media-text/save.js +9 -13
- package/src/media-text/style.scss +21 -0
- package/src/media-text/test/image-fill.js +19 -0
- package/src/missing/edit.js +8 -3
- package/src/navigation/edit/deleted-navigation-warning.js +23 -13
- package/src/navigation/edit/index.js +1 -0
- package/src/navigation/edit/menu-inspector-controls.js +3 -1
- package/src/navigation/edit/navigation-menu-delete-control.js +1 -0
- package/src/navigation/edit/placeholder/index.js +1 -0
- package/src/navigation/edit/responsive-wrapper.js +2 -0
- package/src/navigation/edit/unsaved-inner-blocks.js +4 -4
- package/src/navigation/editor.scss +11 -4
- package/src/navigation/index.php +1 -1
- package/src/navigation-link/link-ui.js +4 -3
- package/src/page-list/convert-to-links-modal.js +6 -1
- package/src/page-list/edit.js +6 -1
- package/src/page-list/index.php +3 -1
- package/src/post-comments-form/form.js +1 -0
- package/src/post-featured-image/dimension-controls.js +4 -4
- package/src/post-featured-image/edit.js +3 -6
- package/src/post-featured-image/style.scss +1 -1
- package/src/post-title/block.json +4 -1
- package/src/post-title/style.scss +24 -0
- package/src/query/edit/enhanced-pagination-modal.js +7 -3
- package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
- package/src/query/edit/inspector-controls/index.js +2 -9
- package/src/query/edit/query-content.js +7 -0
- package/src/query/edit/query-placeholder.js +2 -0
- package/src/query/index.php +1 -1
- package/src/query-pagination/editor.scss +1 -21
- package/src/query-pagination/style.scss +0 -15
- package/src/search/index.php +1 -1
- package/src/site-logo/edit.js +11 -20
- package/src/site-title/block.json +4 -1
- package/src/site-title/editor.scss +0 -4
- package/src/site-title/style.scss +24 -0
- package/src/social-link/edit.js +2 -0
- package/src/social-links/edit.js +17 -10
- package/src/social-links/editor.scss +24 -5
- package/src/style.scss +2 -0
- package/src/tag-cloud/index.php +7 -2
- package/src/template-part/edit/advanced-controls.js +0 -1
- package/src/template-part/edit/index.js +12 -10
- package/src/template-part/edit/inner-blocks.js +20 -1
- package/src/template-part/edit/placeholder.js +6 -1
- package/src/utils/hooks.js +11 -11
- package/src/video/edit.js +24 -21
- package/src/video/editor.scss +0 -45
- package/src/video/tracks-editor.js +3 -0
- package/src/media-text/test/media-container.js +0 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","removeAccents","RichText","useBlockProps","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","__unstableStripHTML","stripHTML","jsx","_jsx","jsxs","_jsxs","getNameFromLabel","content","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","colorProps","inputStyle","style","inputClasses","className","TagName","blockProps","children","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = clsx(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst blockProps = useBlockProps.save();\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ /* eslint-disable jsx-a11y/label-has-associated-control */ }\n\t\t\t<label\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t</span>\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t</label>\n\t\t\t{ /* eslint-enable jsx-a11y/label-has-associated-control */ }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;AACvB,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,uCAAuC,IAAIC,yBAAyB,EACpEC,sCAAsC,IAAIC,wBAAwB,QAC5D,yBAAyB;AAChC,SAASC,mBAAmB,IAAIC,SAAS,QAAQ,gBAAgB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAOA,MAAMC,gBAAgB,GAAKC,OAAO,IAAM;EACvC,OACCd,aAAa,CAAEQ,SAAS,CAAEM,OAAQ,CAAE;EACnC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAED,eAAe,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAGtB,yBAAyB,CAAEc,UAAW,CAAC;EAC3D,MAAMS,UAAU,GAAGrB,wBAAwB,CAAEY,UAAW,CAAC;EAEzD,MAAMU,UAAU,GAAG;IAClB,GAAGF,WAAW,CAACG,KAAK;IACpB,GAAGF,UAAU,CAACE;EACf,CAAC;EAED,MAAMC,YAAY,GAAG/B,IAAI,CACxB,4BAA4B,EAC5B4B,UAAU,CAACI,SAAS,EACpBL,WAAW,CAACK,SACb,CAAC;EACD,MAAMC,OAAO,GAAGb,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,MAAMc,UAAU,GAAG/B,aAAa,CAACe,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["clsx","removeAccents","RichText","useBlockProps","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","__unstableStripHTML","stripHTML","jsx","_jsx","jsxs","_jsxs","getNameFromLabel","content","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","colorProps","inputStyle","style","inputClasses","className","TagName","blockProps","isCheckboxOrRadio","children","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = clsx(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst blockProps = useBlockProps.save();\n\n\t// Note: radio inputs aren't implemented yet.\n\tconst isCheckboxOrRadio = type === 'checkbox' || type === 'radio';\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ /* eslint-disable jsx-a11y/label-has-associated-control */ }\n\t\t\t<label\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! isCheckboxOrRadio && (\n\t\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t\t{ isCheckboxOrRadio && (\n\t\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</label>\n\t\t\t{ /* eslint-enable jsx-a11y/label-has-associated-control */ }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;AACvB,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,uCAAuC,IAAIC,yBAAyB,EACpEC,sCAAsC,IAAIC,wBAAwB,QAC5D,yBAAyB;AAChC,SAASC,mBAAmB,IAAIC,SAAS,QAAQ,gBAAgB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAOA,MAAMC,gBAAgB,GAAKC,OAAO,IAAM;EACvC,OACCd,aAAa,CAAEQ,SAAS,CAAEM,OAAQ,CAAE;EACnC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAED,eAAe,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAGtB,yBAAyB,CAAEc,UAAW,CAAC;EAC3D,MAAMS,UAAU,GAAGrB,wBAAwB,CAAEY,UAAW,CAAC;EAEzD,MAAMU,UAAU,GAAG;IAClB,GAAGF,WAAW,CAACG,KAAK;IACpB,GAAGF,UAAU,CAACE;EACf,CAAC;EAED,MAAMC,YAAY,GAAG/B,IAAI,CACxB,4BAA4B,EAC5B4B,UAAU,CAACI,SAAS,EACpBL,WAAW,CAACK,SACb,CAAC;EACD,MAAMC,OAAO,GAAGb,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,MAAMc,UAAU,GAAG/B,aAAa,CAACe,IAAI,CAAC,CAAC;;EAEvC;EACA,MAAMiB,iBAAiB,GAAGf,IAAI,KAAK,UAAU,IAAIA,IAAI,KAAK,OAAO;EAEjE,IAAK,QAAQ,KAAKA,IAAI,EAAG;IACxB,oBAAOT,IAAA;MAAOS,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACK,KAAK,EAAGA;IAAO,CAAE,CAAC;EAC7D;EAEA,oBACCf,IAAA;IAAA,GAAUuB,UAAU;IAAAE,QAAA,eAEnBvB,KAAA;MACCmB,SAAS,EAAGhC,IAAI,CAAE,4BAA4B,EAAE;QAC/C,iBAAiB,EAAEuB;MACpB,CAAE,CAAG;MAAAa,QAAA,GAEH,CAAED,iBAAiB,iBACpBxB,IAAA;QAAMqB,SAAS,EAAC,oCAAoC;QAAAI,QAAA,eACnDzB,IAAA,CAACT,QAAQ,CAACmC,OAAO;UAACX,KAAK,EAAGJ;QAAO,CAAE;MAAC,CAC/B,CACN,eACDX,IAAA,CAACsB,OAAO;QACPD,SAAS,EAAGD,YAAc;QAC1BX,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGkB,SAAS,GAAGlB,IAAM;QAC/CC,IAAI,EAAGA,IAAI,IAAIP,gBAAgB,CAAEQ,KAAM,CAAG;QAC1CE,QAAQ,EAAGA,QAAU;QACrB,iBAAgBA,QAAU;QAC1BC,WAAW,EAAGA,WAAW,IAAIa,SAAW;QACxCR,KAAK,EAAGD;MAAY,CACpB,CAAC,EACAM,iBAAiB,iBAClBxB,IAAA;QAAMqB,SAAS,EAAC,oCAAoC;QAAAI,QAAA,eACnDzB,IAAA,CAACT,QAAQ,CAACmC,OAAO;UAACX,KAAK,EAAGJ;QAAO,CAAE;MAAC,CAC/B,CACN;IAAA,CACK;EAAC,CAEJ,CAAC;AAER","ignoreList":[]}
|
|
@@ -74,9 +74,9 @@ function ClassicEdit({
|
|
|
74
74
|
const {
|
|
75
75
|
getMultiSelectedBlockClientIds
|
|
76
76
|
} = useSelect(blockEditorStore);
|
|
77
|
-
const
|
|
77
|
+
const didMountRef = useRef(false);
|
|
78
78
|
useEffect(() => {
|
|
79
|
-
if (!
|
|
79
|
+
if (!didMountRef.current) {
|
|
80
80
|
return;
|
|
81
81
|
}
|
|
82
82
|
const editor = window.tinymce.get(`editor-${clientId}`);
|
|
@@ -93,7 +93,7 @@ function ClassicEdit({
|
|
|
93
93
|
baseURL,
|
|
94
94
|
suffix
|
|
95
95
|
} = window.wpEditorL10n.tinymce;
|
|
96
|
-
|
|
96
|
+
didMountRef.current = true;
|
|
97
97
|
window.tinymce.EditorManager.overrideDefaults({
|
|
98
98
|
base_url: baseURL,
|
|
99
99
|
suffix
|
|
@@ -205,7 +205,7 @@ function ClassicEdit({
|
|
|
205
205
|
return () => {
|
|
206
206
|
document.removeEventListener('readystatechange', onReadyStateChange);
|
|
207
207
|
wp.oldEditor.remove(`editor-${clientId}`);
|
|
208
|
-
|
|
208
|
+
didMountRef.current = false;
|
|
209
209
|
};
|
|
210
210
|
}, []);
|
|
211
211
|
function focus() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BlockControls","useBlockProps","store","blockEditorStore","debounce","useRefEffect","useSelect","ToolbarGroup","useEffect","useRef","useState","__","BACKSPACE","DELETE","F10","isKeyboardEvent","ConvertToBlocksButton","ModalEdit","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","wp","window","isTmceEmpty","editor","body","getBody","childNodes","length","test","innerText","textContent","FreeformEdit","props","clientId","canRemove","select","canRemoveBlock","isIframed","setIsIframed","ref","element","ownerDocument","document","children","ClassicEdit","attributes","content","setAttributes","onReplace","getMultiSelectedBlockClientIds","didMount","current","tinymce","get","currentContent","getContent","setContent","baseURL","suffix","wpEditorL10n","EditorManager","overrideDefaults","base_url","onSetup","bookmark","on","selection","getBookmark","scrollContainer","querySelector","scrollPosition","scrollTop","once","moveToBookmark","debouncedOnChange","value","_lastChange","cancel","event","primary","stopPropagation","keyCode","preventDefault","stopImmediatePropagation","altKey","rootNode","activeElement","blur","focus","initialize","settings","oldEditor","inline","content_css","fixed_toolbar_container","setup","onReadyStateChange","readyState","addEventListener","removeEventListener","remove","onToolbarKeyDown","nativeEvent","id","className","onClick","onKeyDown"],"sources":["@wordpress/block-library/src/freeform/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { debounce, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { ToolbarGroup } from '@wordpress/components';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE, F10, isKeyboardEvent } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ConvertToBlocksButton from './convert-to-blocks-button';\nimport ModalEdit from './modal';\n\nconst { wp } = window;\n\nfunction isTmceEmpty( editor ) {\n\t// When tinyMce is empty the content seems to be:\n\t// <p><br data-mce-bogus=\"1\"></p>\n\t// avoid expensive checks for large documents\n\tconst body = editor.getBody();\n\tif ( body.childNodes.length > 1 ) {\n\t\treturn false;\n\t} else if ( body.childNodes.length === 0 ) {\n\t\treturn true;\n\t}\n\tif ( body.childNodes[ 0 ].childNodes.length > 1 ) {\n\t\treturn false;\n\t}\n\treturn /^\\n?$/.test( body.innerText || body.textContent );\n}\n\nexport default function FreeformEdit( props ) {\n\tconst { clientId } = props;\n\tconst canRemove = useSelect(\n\t\t( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst [ isIframed, setIsIframed ] = useState( false );\n\tconst ref = useRefEffect( ( element ) => {\n\t\tsetIsIframed( element.ownerDocument !== document );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ConvertToBlocksButton clientId={ clientId } />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<div { ...useBlockProps( { ref } ) }>\n\t\t\t\t{ isIframed ? (\n\t\t\t\t\t<ModalEdit { ...props } />\n\t\t\t\t) : (\n\t\t\t\t\t<ClassicEdit { ...props } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nfunction ClassicEdit( {\n\tclientId,\n\tattributes: { content },\n\tsetAttributes,\n\tonReplace,\n} ) {\n\tconst { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );\n\tconst didMount = useRef( false );\n\n\tuseEffect( () => {\n\t\tif ( ! didMount.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( ! editor ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentContent = editor.getContent();\n\t\tif ( currentContent !== content ) {\n\t\t\teditor.setContent( content || '' );\n\t\t}\n\t}, [ clientId, content ] );\n\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix } = window.wpEditorL10n.tinymce;\n\n\t\tdidMount.current = true;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\tfunction onSetup( editor ) {\n\t\t\tlet bookmark;\n\n\t\t\tif ( content ) {\n\t\t\t\teditor.on( 'loadContent', () => editor.setContent( content ) );\n\t\t\t}\n\n\t\t\teditor.on( 'blur', () => {\n\t\t\t\tbookmark = editor.selection.getBookmark( 2, true );\n\t\t\t\t// There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451.\n\t\t\t\t// This causes a scroll to the top of editor content on return from some content updating dialogs so tracking\n\t\t\t\t// scroll position until this is fixed in core.\n\t\t\t\tconst scrollContainer = document.querySelector(\n\t\t\t\t\t'.interface-interface-skeleton__content'\n\t\t\t\t);\n\t\t\t\tconst scrollPosition = scrollContainer.scrollTop;\n\n\t\t\t\t// Only update attributes if we aren't multi-selecting blocks.\n\t\t\t\t// Updating during multi-selection can overwrite attributes of other blocks.\n\t\t\t\tif ( ! getMultiSelectedBlockClientIds()?.length ) {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: editor.getContent(),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\teditor.once( 'focus', () => {\n\t\t\t\t\tif ( bookmark ) {\n\t\t\t\t\t\teditor.selection.moveToBookmark( bookmark );\n\t\t\t\t\t\tif ( scrollContainer.scrollTop !== scrollPosition ) {\n\t\t\t\t\t\t\tscrollContainer.scrollTop = scrollPosition;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\teditor.on( 'mousedown touchstart', () => {\n\t\t\t\tbookmark = null;\n\t\t\t} );\n\n\t\t\tconst debouncedOnChange = debounce( () => {\n\t\t\t\tconst value = editor.getContent();\n\n\t\t\t\tif ( value !== editor._lastChange ) {\n\t\t\t\t\teditor._lastChange = value;\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}, 250 );\n\t\t\teditor.on( 'Paste Change input Undo Redo', debouncedOnChange );\n\n\t\t\t// We need to cancel the debounce call because when we remove\n\t\t\t// the editor (onUnmount) this callback is executed in\n\t\t\t// another tick. This results in setting the content to empty.\n\t\t\teditor.on( 'remove', debouncedOnChange.cancel );\n\n\t\t\teditor.on( 'keydown', ( event ) => {\n\t\t\t\tif ( isKeyboardEvent.primary( event, 'z' ) ) {\n\t\t\t\t\t// Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t( event.keyCode === BACKSPACE ||\n\t\t\t\t\t\tevent.keyCode === DELETE ) &&\n\t\t\t\t\tisTmceEmpty( editor )\n\t\t\t\t) {\n\t\t\t\t\t// Delete the block.\n\t\t\t\t\tonReplace( [] );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t}\n\n\t\t\t\tconst { altKey } = event;\n\t\t\t\t/*\n\t\t\t\t * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n\t\t\t\t * `alt+f10` shortcut to focus its toolbar.\n\t\t\t\t */\n\t\t\t\tif ( altKey && event.keyCode === F10 ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.on( 'init', () => {\n\t\t\t\tconst rootNode = editor.getBody();\n\n\t\t\t\t// Create the toolbar by refocussing the editor.\n\t\t\t\tif ( rootNode.ownerDocument.activeElement === rootNode ) {\n\t\t\t\t\trootNode.blur();\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tfunction initialize() {\n\t\t\tconst { settings } = window.wpEditorL10n.tinymce;\n\t\t\twp.oldEditor.initialize( `editor-${ clientId }`, {\n\t\t\t\ttinymce: {\n\t\t\t\t\t...settings,\n\t\t\t\t\tinline: true,\n\t\t\t\t\tcontent_css: false,\n\t\t\t\t\tfixed_toolbar_container: `#toolbar-${ clientId }`,\n\t\t\t\t\tsetup: onSetup,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tfunction onReadyStateChange() {\n\t\t\tif ( document.readyState === 'complete' ) {\n\t\t\t\tinitialize();\n\t\t\t}\n\t\t}\n\n\t\tif ( document.readyState === 'complete' ) {\n\t\t\tinitialize();\n\t\t} else {\n\t\t\tdocument.addEventListener( 'readystatechange', onReadyStateChange );\n\t\t}\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\n\t\t\t\t'readystatechange',\n\t\t\t\tonReadyStateChange\n\t\t\t);\n\t\t\twp.oldEditor.remove( `editor-${ clientId }` );\n\t\t\tdidMount.current = false;\n\t\t};\n\t}, [] );\n\n\tfunction focus() {\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( editor ) {\n\t\t\teditor.focus();\n\t\t}\n\t}\n\n\tfunction onToolbarKeyDown( event ) {\n\t\t// Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n\t\tevent.stopPropagation();\n\t\t// Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\t\tevent.nativeEvent.stopImmediatePropagation();\n\t}\n\n\t// Disable reasons:\n\t//\n\t// jsx-a11y/no-static-element-interactions\n\t// - the toolbar itself is non-interactive, but must capture events\n\t// from the KeyboardShortcuts component to stop their propagation.\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tkey=\"toolbar\"\n\t\t\t\tid={ `toolbar-${ clientId }` }\n\t\t\t\tclassName=\"block-library-classic__toolbar\"\n\t\t\t\tonClick={ focus }\n\t\t\t\tdata-placeholder={ __( 'Classic' ) }\n\t\t\t\tonKeyDown={ onToolbarKeyDown }\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tkey=\"editor\"\n\t\t\t\tid={ `editor-${ clientId }` }\n\t\t\t\tclassName=\"wp-block-freeform block-library-rich-text__tinymce\"\n\t\t\t/>\n\t\t</>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["BlockControls","useBlockProps","store","blockEditorStore","debounce","useRefEffect","useSelect","ToolbarGroup","useEffect","useRef","useState","__","BACKSPACE","DELETE","F10","isKeyboardEvent","ConvertToBlocksButton","ModalEdit","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","wp","window","isTmceEmpty","editor","body","getBody","childNodes","length","test","innerText","textContent","FreeformEdit","props","clientId","canRemove","select","canRemoveBlock","isIframed","setIsIframed","ref","element","ownerDocument","document","children","ClassicEdit","attributes","content","setAttributes","onReplace","getMultiSelectedBlockClientIds","didMountRef","current","tinymce","get","currentContent","getContent","setContent","baseURL","suffix","wpEditorL10n","EditorManager","overrideDefaults","base_url","onSetup","bookmark","on","selection","getBookmark","scrollContainer","querySelector","scrollPosition","scrollTop","once","moveToBookmark","debouncedOnChange","value","_lastChange","cancel","event","primary","stopPropagation","keyCode","preventDefault","stopImmediatePropagation","altKey","rootNode","activeElement","blur","focus","initialize","settings","oldEditor","inline","content_css","fixed_toolbar_container","setup","onReadyStateChange","readyState","addEventListener","removeEventListener","remove","onToolbarKeyDown","nativeEvent","id","className","onClick","onKeyDown"],"sources":["@wordpress/block-library/src/freeform/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { debounce, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { ToolbarGroup } from '@wordpress/components';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE, F10, isKeyboardEvent } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ConvertToBlocksButton from './convert-to-blocks-button';\nimport ModalEdit from './modal';\n\nconst { wp } = window;\n\nfunction isTmceEmpty( editor ) {\n\t// When tinyMce is empty the content seems to be:\n\t// <p><br data-mce-bogus=\"1\"></p>\n\t// avoid expensive checks for large documents\n\tconst body = editor.getBody();\n\tif ( body.childNodes.length > 1 ) {\n\t\treturn false;\n\t} else if ( body.childNodes.length === 0 ) {\n\t\treturn true;\n\t}\n\tif ( body.childNodes[ 0 ].childNodes.length > 1 ) {\n\t\treturn false;\n\t}\n\treturn /^\\n?$/.test( body.innerText || body.textContent );\n}\n\nexport default function FreeformEdit( props ) {\n\tconst { clientId } = props;\n\tconst canRemove = useSelect(\n\t\t( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst [ isIframed, setIsIframed ] = useState( false );\n\tconst ref = useRefEffect( ( element ) => {\n\t\tsetIsIframed( element.ownerDocument !== document );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ConvertToBlocksButton clientId={ clientId } />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<div { ...useBlockProps( { ref } ) }>\n\t\t\t\t{ isIframed ? (\n\t\t\t\t\t<ModalEdit { ...props } />\n\t\t\t\t) : (\n\t\t\t\t\t<ClassicEdit { ...props } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nfunction ClassicEdit( {\n\tclientId,\n\tattributes: { content },\n\tsetAttributes,\n\tonReplace,\n} ) {\n\tconst { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );\n\tconst didMountRef = useRef( false );\n\n\tuseEffect( () => {\n\t\tif ( ! didMountRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( ! editor ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentContent = editor.getContent();\n\t\tif ( currentContent !== content ) {\n\t\t\teditor.setContent( content || '' );\n\t\t}\n\t}, [ clientId, content ] );\n\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix } = window.wpEditorL10n.tinymce;\n\n\t\tdidMountRef.current = true;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\tfunction onSetup( editor ) {\n\t\t\tlet bookmark;\n\n\t\t\tif ( content ) {\n\t\t\t\teditor.on( 'loadContent', () => editor.setContent( content ) );\n\t\t\t}\n\n\t\t\teditor.on( 'blur', () => {\n\t\t\t\tbookmark = editor.selection.getBookmark( 2, true );\n\t\t\t\t// There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451.\n\t\t\t\t// This causes a scroll to the top of editor content on return from some content updating dialogs so tracking\n\t\t\t\t// scroll position until this is fixed in core.\n\t\t\t\tconst scrollContainer = document.querySelector(\n\t\t\t\t\t'.interface-interface-skeleton__content'\n\t\t\t\t);\n\t\t\t\tconst scrollPosition = scrollContainer.scrollTop;\n\n\t\t\t\t// Only update attributes if we aren't multi-selecting blocks.\n\t\t\t\t// Updating during multi-selection can overwrite attributes of other blocks.\n\t\t\t\tif ( ! getMultiSelectedBlockClientIds()?.length ) {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: editor.getContent(),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\teditor.once( 'focus', () => {\n\t\t\t\t\tif ( bookmark ) {\n\t\t\t\t\t\teditor.selection.moveToBookmark( bookmark );\n\t\t\t\t\t\tif ( scrollContainer.scrollTop !== scrollPosition ) {\n\t\t\t\t\t\t\tscrollContainer.scrollTop = scrollPosition;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\teditor.on( 'mousedown touchstart', () => {\n\t\t\t\tbookmark = null;\n\t\t\t} );\n\n\t\t\tconst debouncedOnChange = debounce( () => {\n\t\t\t\tconst value = editor.getContent();\n\n\t\t\t\tif ( value !== editor._lastChange ) {\n\t\t\t\t\teditor._lastChange = value;\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}, 250 );\n\t\t\teditor.on( 'Paste Change input Undo Redo', debouncedOnChange );\n\n\t\t\t// We need to cancel the debounce call because when we remove\n\t\t\t// the editor (onUnmount) this callback is executed in\n\t\t\t// another tick. This results in setting the content to empty.\n\t\t\teditor.on( 'remove', debouncedOnChange.cancel );\n\n\t\t\teditor.on( 'keydown', ( event ) => {\n\t\t\t\tif ( isKeyboardEvent.primary( event, 'z' ) ) {\n\t\t\t\t\t// Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t( event.keyCode === BACKSPACE ||\n\t\t\t\t\t\tevent.keyCode === DELETE ) &&\n\t\t\t\t\tisTmceEmpty( editor )\n\t\t\t\t) {\n\t\t\t\t\t// Delete the block.\n\t\t\t\t\tonReplace( [] );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t}\n\n\t\t\t\tconst { altKey } = event;\n\t\t\t\t/*\n\t\t\t\t * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n\t\t\t\t * `alt+f10` shortcut to focus its toolbar.\n\t\t\t\t */\n\t\t\t\tif ( altKey && event.keyCode === F10 ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.on( 'init', () => {\n\t\t\t\tconst rootNode = editor.getBody();\n\n\t\t\t\t// Create the toolbar by refocussing the editor.\n\t\t\t\tif ( rootNode.ownerDocument.activeElement === rootNode ) {\n\t\t\t\t\trootNode.blur();\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tfunction initialize() {\n\t\t\tconst { settings } = window.wpEditorL10n.tinymce;\n\t\t\twp.oldEditor.initialize( `editor-${ clientId }`, {\n\t\t\t\ttinymce: {\n\t\t\t\t\t...settings,\n\t\t\t\t\tinline: true,\n\t\t\t\t\tcontent_css: false,\n\t\t\t\t\tfixed_toolbar_container: `#toolbar-${ clientId }`,\n\t\t\t\t\tsetup: onSetup,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tfunction onReadyStateChange() {\n\t\t\tif ( document.readyState === 'complete' ) {\n\t\t\t\tinitialize();\n\t\t\t}\n\t\t}\n\n\t\tif ( document.readyState === 'complete' ) {\n\t\t\tinitialize();\n\t\t} else {\n\t\t\tdocument.addEventListener( 'readystatechange', onReadyStateChange );\n\t\t}\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\n\t\t\t\t'readystatechange',\n\t\t\t\tonReadyStateChange\n\t\t\t);\n\t\t\twp.oldEditor.remove( `editor-${ clientId }` );\n\t\t\tdidMountRef.current = false;\n\t\t};\n\t}, [] );\n\n\tfunction focus() {\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( editor ) {\n\t\t\teditor.focus();\n\t\t}\n\t}\n\n\tfunction onToolbarKeyDown( event ) {\n\t\t// Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n\t\tevent.stopPropagation();\n\t\t// Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\t\tevent.nativeEvent.stopImmediatePropagation();\n\t}\n\n\t// Disable reasons:\n\t//\n\t// jsx-a11y/no-static-element-interactions\n\t// - the toolbar itself is non-interactive, but must capture events\n\t// from the KeyboardShortcuts component to stop their propagation.\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tkey=\"toolbar\"\n\t\t\t\tid={ `toolbar-${ clientId }` }\n\t\t\t\tclassName=\"block-library-classic__toolbar\"\n\t\t\t\tonClick={ focus }\n\t\t\t\tdata-placeholder={ __( 'Classic' ) }\n\t\t\t\tonKeyDown={ onToolbarKeyDown }\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tkey=\"editor\"\n\t\t\t\tid={ `editor-${ clientId }` }\n\t\t\t\tclassName=\"wp-block-freeform block-library-rich-text__tinymce\"\n\t\t\t/>\n\t\t</>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,6 +21,7 @@ function ModalAuxiliaryActions({
|
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
23
23
|
return /*#__PURE__*/_jsx(Button, {
|
|
24
|
+
size: "small",
|
|
24
25
|
onClick: onClick,
|
|
25
26
|
icon: fullscreen,
|
|
26
27
|
isPressed: isModalFullScreen,
|
|
@@ -107,12 +108,14 @@ export default function ModalEdit(props) {
|
|
|
107
108
|
expanded: false,
|
|
108
109
|
children: [/*#__PURE__*/_jsx(FlexItem, {
|
|
109
110
|
children: /*#__PURE__*/_jsx(Button, {
|
|
111
|
+
__next40pxDefaultSize: true,
|
|
110
112
|
variant: "tertiary",
|
|
111
113
|
onClick: onClose,
|
|
112
114
|
children: __('Cancel')
|
|
113
115
|
})
|
|
114
116
|
}), /*#__PURE__*/_jsx(FlexItem, {
|
|
115
117
|
children: /*#__PURE__*/_jsx(Button, {
|
|
118
|
+
__next40pxDefaultSize: true,
|
|
116
119
|
variant: "primary",
|
|
117
120
|
onClick: () => {
|
|
118
121
|
setAttributes({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BlockControls","store","ToolbarGroup","ToolbarButton","Modal","Button","Flex","FlexItem","useEffect","useState","RawHTML","__","useSelect","fullscreen","useViewportMatch","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ModalAuxiliaryActions","onClick","isModalFullScreen","isMobileViewport","icon","isPressed","label","ClassicEdit","props","styles","select","getSettings","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","setIsModalFullScreen","onClose","children","title","onRequestClose","shouldCloseOnClickOutside","overlayClassName","isFullScreen","className","headerActions","defaultValue","justify","expanded","variant","getContent"],"sources":["@wordpress/block-library/src/freeform/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\t\t\theaderActions={\n\t\t\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button
|
|
1
|
+
{"version":3,"names":["BlockControls","store","ToolbarGroup","ToolbarButton","Modal","Button","Flex","FlexItem","useEffect","useState","RawHTML","__","useSelect","fullscreen","useViewportMatch","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ModalAuxiliaryActions","onClick","isModalFullScreen","isMobileViewport","size","icon","isPressed","label","ClassicEdit","props","styles","select","getSettings","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","setIsModalFullScreen","onClose","children","title","onRequestClose","shouldCloseOnClickOutside","overlayClassName","isFullScreen","className","headerActions","defaultValue","justify","expanded","__next40pxDefaultSize","variant","getContent"],"sources":["@wordpress/block-library/src/freeform/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tsize=\"small\"\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\t\t\theaderActions={\n\t\t\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\t\t\t\twindow.wp.oldEditor.getContent(\n\t\t\t\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tsetOpen( false );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,EAAEC,KAAK,QAAQ,yBAAyB;AAC9D,SACCC,YAAY,EACZC,aAAa,EACbC,KAAK,EACLC,MAAM,EACNC,IAAI,EACJC,QAAQ,QACF,uBAAuB;AAC9B,SAASC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;AACjE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,gBAAgB,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAEtD,SAASC,qBAAqBA,CAAE;EAAEC,OAAO;EAAEC;AAAkB,CAAC,EAAG;EAChE;EACA,MAAMC,gBAAgB,GAAGV,gBAAgB,CAAE,OAAO,EAAE,GAAI,CAAC;EACzD,IAAKU,gBAAgB,EAAG;IACvB,OAAO,IAAI;EACZ;EAEA,oBACCR,IAAA,CAACX,MAAM;IACNoB,IAAI,EAAC,OAAO;IACZH,OAAO,EAAGA,OAAS;IACnBI,IAAI,EAAGb,UAAY;IACnBc,SAAS,EAAGJ,iBAAmB;IAC/BK,KAAK,EACJL,iBAAiB,GACdZ,EAAE,CAAE,iBAAkB,CAAC,GACvBA,EAAE,CAAE,kBAAmB;EAC1B,CACD,CAAC;AAEJ;AAEA,SAASkB,WAAWA,CAAEC,KAAK,EAAG;EAC7B,MAAMC,MAAM,GAAGnB,SAAS,CACrBoB,MAAM,IAAMA,MAAM,CAAE/B,KAAM,CAAC,CAACgC,WAAW,CAAC,CAAC,CAACF,MAC7C,CAAC;EACDvB,SAAS,CAAE,MAAM;IAChB,MAAM;MAAE0B,OAAO;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAAGC,MAAM,CAACC,YAAY,CAACC,OAAO;IAEjEF,MAAM,CAACE,OAAO,CAACC,aAAa,CAACC,gBAAgB,CAAE;MAC9CC,QAAQ,EAAER,OAAO;MACjBC;IACD,CAAE,CAAC;IAEHE,MAAM,CAACM,EAAE,CAACC,SAAS,CAACC,UAAU,CAAEf,KAAK,CAACgB,EAAE,EAAE;MACzCP,OAAO,EAAE;QACR,GAAGH,QAAQ;QACXW,KAAKA,CAAEC,MAAM,EAAG;UACfA,MAAM,CAACC,EAAE,CAAE,MAAM,EAAE,MAAM;YACxB,MAAMC,GAAG,GAAGF,MAAM,CAACG,MAAM,CAAC,CAAC;YAC3BpB,MAAM,CAACqB,OAAO,CAAE,CAAE;cAAEC;YAAI,CAAC,KAAM;cAC9B,MAAMC,OAAO,GAAGJ,GAAG,CAACK,aAAa,CAAE,OAAQ,CAAC;cAC5CD,OAAO,CAACE,SAAS,GAAGH,GAAG;cACvBH,GAAG,CAACO,IAAI,CAACC,WAAW,CAAEJ,OAAQ,CAAC;YAChC,CAAE,CAAC;UACJ,CAAE,CAAC;QACJ;MACD;IACD,CAAE,CAAC;IAEH,OAAO,MAAM;MACZjB,MAAM,CAACM,EAAE,CAACC,SAAS,CAACe,MAAM,CAAE7B,KAAK,CAACgB,EAAG,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,oBAAO9B,IAAA;IAAA,GAAec;EAAK,CAAI,CAAC;AACjC;AAEA,eAAe,SAAS8B,SAASA,CAAE9B,KAAK,EAAG;EAC1C,MAAM;IACL+B,QAAQ;IACRC,UAAU,EAAE;MAAEC;IAAQ,CAAC;IACvBC,aAAa;IACbC;EACD,CAAC,GAAGnC,KAAK;EACT,MAAM,CAAEoC,MAAM,EAAEC,OAAO,CAAE,GAAG1D,QAAQ,CAAE,KAAM,CAAC;EAC7C,MAAM,CAAEc,iBAAiB,EAAE6C,oBAAoB,CAAE,GAAG3D,QAAQ,CAAE,KAAM,CAAC;EACrE,MAAMqC,EAAE,GAAI,UAAUe,QAAU,EAAC;EAEjC,MAAMQ,OAAO,GAAGA,CAAA,KAAQN,OAAO,GAAGI,OAAO,CAAE,KAAM,CAAC,GAAGF,SAAS,CAAE,EAAG,CAAG;EAEtE,oBACC/C,KAAA,CAAAE,SAAA;IAAAkD,QAAA,gBACCtD,IAAA,CAAChB,aAAa;MAAAsE,QAAA,eACbtD,IAAA,CAACd,YAAY;QAAAoE,QAAA,eACZtD,IAAA,CAACb,aAAa;UAACmB,OAAO,EAAGA,CAAA,KAAM6C,OAAO,CAAE,IAAK,CAAG;UAAAG,QAAA,EAC7C3D,EAAE,CAAE,MAAO;QAAC,CACA;MAAC,CACH;IAAC,CACD,CAAC,EACdoD,OAAO,iBAAI/C,IAAA,CAACN,OAAO;MAAA4D,QAAA,EAAGP;IAAO,CAAW,CAAC,EACzC,CAAEG,MAAM,IAAI,CAAEH,OAAO,kBACtB7C,KAAA,CAACd,KAAK;MACLmE,KAAK,EAAG5D,EAAE,CAAE,gBAAiB,CAAG;MAChC6D,cAAc,EAAGH,OAAS;MAC1BI,yBAAyB,EAAG,KAAO;MACnCC,gBAAgB,EAAC,6BAA6B;MAC9CC,YAAY,EAAGpD,iBAAmB;MAClCqD,SAAS,EAAC,sCAAsC;MAChDC,aAAa,eACZ7D,IAAA,CAACK,qBAAqB;QACrBC,OAAO,EAAGA,CAAA,KACT8C,oBAAoB,CAAE,CAAE7C,iBAAkB,CAC1C;QACDA,iBAAiB,EAAGA;MAAmB,CACvC,CACD;MAAA+C,QAAA,gBAEDtD,IAAA,CAACa,WAAW;QAACiB,EAAE,EAAGA,EAAI;QAACgC,YAAY,EAAGf;MAAS,CAAE,CAAC,eAClD7C,KAAA,CAACZ,IAAI;QACJsE,SAAS,EAAC,sCAAsC;QAChDG,OAAO,EAAC,UAAU;QAClBC,QAAQ,EAAG,KAAO;QAAAV,QAAA,gBAElBtD,IAAA,CAACT,QAAQ;UAAA+D,QAAA,eACRtD,IAAA,CAACX,MAAM;YACN4E,qBAAqB;YACrBC,OAAO,EAAC,UAAU;YAClB5D,OAAO,EAAG+C,OAAS;YAAAC,QAAA,EAEjB3D,EAAE,CAAE,QAAS;UAAC,CACT;QAAC,CACA,CAAC,eACXK,IAAA,CAACT,QAAQ;UAAA+D,QAAA,eACRtD,IAAA,CAACX,MAAM;YACN4E,qBAAqB;YACrBC,OAAO,EAAC,SAAS;YACjB5D,OAAO,EAAGA,CAAA,KAAM;cACf0C,aAAa,CAAE;gBACdD,OAAO,EACN1B,MAAM,CAACM,EAAE,CAACC,SAAS,CAACuC,UAAU,CAC7BrC,EACD;cACF,CAAE,CAAC;cACHqB,OAAO,CAAE,KAAM,CAAC;YACjB,CAAG;YAAAG,QAAA,EAED3D,EAAE,CAAE,MAAO;UAAC,CACP;QAAC,CACA,CAAC;MAAA,CACN,CAAC;IAAA,CACD,CACP;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
|
|
@@ -19,15 +19,9 @@ export default function HomeEdit({
|
|
|
19
19
|
setAttributes,
|
|
20
20
|
context
|
|
21
21
|
}) {
|
|
22
|
-
const {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const {
|
|
26
|
-
getUnstableBase // Site index.
|
|
27
|
-
} = select(coreStore);
|
|
28
|
-
return {
|
|
29
|
-
homeUrl: getUnstableBase()?.home
|
|
30
|
-
};
|
|
22
|
+
const homeUrl = useSelect(select => {
|
|
23
|
+
// Site index.
|
|
24
|
+
return select(coreStore).getEntityRecord('root', '__unstableBase')?.home;
|
|
31
25
|
}, []);
|
|
32
26
|
const {
|
|
33
27
|
__unstableMarkNextChangeAsNotPersistent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","RichText","useBlockProps","store","blockEditorStore","__","useSelect","useDispatch","coreStore","useEffect","jsx","_jsx","Fragment","_Fragment","preventDefault","event","HomeEdit","attributes","setAttributes","context","homeUrl","select","
|
|
1
|
+
{"version":3,"names":["clsx","RichText","useBlockProps","store","blockEditorStore","__","useSelect","useDispatch","coreStore","useEffect","jsx","_jsx","Fragment","_Fragment","preventDefault","event","HomeEdit","attributes","setAttributes","context","homeUrl","select","getEntityRecord","home","__unstableMarkNextChangeAsNotPersistent","textColor","backgroundColor","style","blockProps","className","color","text","background","label","undefined","children","href","onClick","identifier","value","onChange","labelValue","placeholder","withoutInteractiveFormatting","allowedFormats"],"sources":["@wordpress/block-library/src/home-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\nconst preventDefault = ( event ) => event.preventDefault();\n\nexport default function HomeEdit( { attributes, setAttributes, context } ) {\n\tconst homeUrl = useSelect( ( select ) => {\n\t\t// Site index.\n\t\treturn select( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t?.home;\n\t}, [] );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { textColor, backgroundColor, style } = context;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'has-text-color': !! textColor || !! style?.color?.text,\n\t\t\t[ `has-${ textColor }-color` ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || !! style?.color?.background,\n\t\t\t[ `has-${ backgroundColor }-background-color` ]: !! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: style?.color?.text,\n\t\t\tbackgroundColor: style?.color?.background,\n\t\t},\n\t} );\n\n\tconst { label } = attributes;\n\n\tuseEffect( () => {\n\t\tif ( label === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { label: __( 'Home' ) } );\n\t\t}\n\t}, [ label ] );\n\n\treturn (\n\t\t<>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<a\n\t\t\t\t\tclassName=\"wp-block-home-link__content wp-block-navigation-item__content\"\n\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\tonClick={ preventDefault }\n\t\t\t\t>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\tclassName=\"wp-block-home-link__label\"\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-label={ __( 'Home link text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add home link' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASJ,KAAK,IAAIK,SAAS,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAE/C,MAAMC,cAAc,GAAKC,KAAK,IAAMA,KAAK,CAACD,cAAc,CAAC,CAAC;AAE1D,eAAe,SAASE,QAAQA,CAAE;EAAEC,UAAU;EAAEC,aAAa;EAAEC;AAAQ,CAAC,EAAG;EAC1E,MAAMC,OAAO,GAAGd,SAAS,CAAIe,MAAM,IAAM;IACxC;IACA,OAAOA,MAAM,CAAEb,SAAU,CAAC,CAACc,eAAe,CAAE,MAAM,EAAE,gBAAiB,CAAC,EACnEC,IAAI;EACR,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEC;EAAwC,CAAC,GAChDjB,WAAW,CAAEH,gBAAiB,CAAC;EAEhC,MAAM;IAAEqB,SAAS;IAAEC,eAAe;IAAEC;EAAM,CAAC,GAAGR,OAAO;EACrD,MAAMS,UAAU,GAAG1B,aAAa,CAAE;IACjC2B,SAAS,EAAE7B,IAAI,CAAE,0BAA0B,EAAE;MAC5C,gBAAgB,EAAE,CAAC,CAAEyB,SAAS,IAAI,CAAC,CAAEE,KAAK,EAAEG,KAAK,EAAEC,IAAI;MACvD,CAAG,OAAON,SAAW,QAAO,GAAI,CAAC,CAAEA,SAAS;MAC5C,gBAAgB,EAAE,CAAC,CAAEC,eAAe,IAAI,CAAC,CAAEC,KAAK,EAAEG,KAAK,EAAEE,UAAU;MACnE,CAAG,OAAON,eAAiB,mBAAkB,GAAI,CAAC,CAAEA;IACrD,CAAE,CAAC;IACHC,KAAK,EAAE;MACNG,KAAK,EAAEH,KAAK,EAAEG,KAAK,EAAEC,IAAI;MACzBL,eAAe,EAAEC,KAAK,EAAEG,KAAK,EAAEE;IAChC;EACD,CAAE,CAAC;EAEH,MAAM;IAAEC;EAAM,CAAC,GAAGhB,UAAU;EAE5BR,SAAS,CAAE,MAAM;IAChB,IAAKwB,KAAK,KAAKC,SAAS,EAAG;MAC1BV,uCAAuC,CAAC,CAAC;MACzCN,aAAa,CAAE;QAAEe,KAAK,EAAE5B,EAAE,CAAE,MAAO;MAAE,CAAE,CAAC;IACzC;EACD,CAAC,EAAE,CAAE4B,KAAK,CAAG,CAAC;EAEd,oBACCtB,IAAA,CAAAE,SAAA;IAAAsB,QAAA,eACCxB,IAAA;MAAA,GAAUiB,UAAU;MAAAO,QAAA,eACnBxB,IAAA;QACCkB,SAAS,EAAC,+DAA+D;QACzEO,IAAI,EAAGhB,OAAS;QAChBiB,OAAO,EAAGvB,cAAgB;QAAAqB,QAAA,eAE1BxB,IAAA,CAACV,QAAQ;UACRqC,UAAU,EAAC,OAAO;UAClBT,SAAS,EAAC,2BAA2B;UACrCU,KAAK,EAAGN,KAAO;UACfO,QAAQ,EAAKC,UAAU,IAAM;YAC5BvB,aAAa,CAAE;cAAEe,KAAK,EAAEQ;YAAW,CAAE,CAAC;UACvC,CAAG;UACH,cAAapC,EAAE,CAAE,gBAAiB,CAAG;UACrCqC,WAAW,EAAGrC,EAAE,CAAE,eAAgB,CAAG;UACrCsC,4BAA4B;UAC5BC,cAAc,EAAG,CAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,oBAAoB;QAClB,CACH;MAAC,CACA;IAAC,CACA;EAAC,CACL,CAAC;AAEL","ignoreList":[]}
|
|
@@ -6,15 +6,16 @@ import clsx from 'clsx';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import { isBlobURL } from '@wordpress/blob';
|
|
10
|
-
import { store as blocksStore } from '@wordpress/blocks';
|
|
9
|
+
import { isBlobURL, createBlobURL } from '@wordpress/blob';
|
|
10
|
+
import { store as blocksStore, createBlock } from '@wordpress/blocks';
|
|
11
11
|
import { Placeholder } from '@wordpress/components';
|
|
12
12
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
13
|
-
import { BlockIcon,
|
|
13
|
+
import { BlockIcon, useBlockProps, MediaPlaceholder, store as blockEditorStore, __experimentalUseBorderProps as useBorderProps, __experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles, useBlockEditingMode } from '@wordpress/block-editor';
|
|
14
14
|
import { useEffect, useRef, useState } from '@wordpress/element';
|
|
15
15
|
import { __, sprintf } from '@wordpress/i18n';
|
|
16
16
|
import { image as icon, plugins as pluginsIcon } from '@wordpress/icons';
|
|
17
17
|
import { store as noticesStore } from '@wordpress/notices';
|
|
18
|
+
import { useResizeObserver } from '@wordpress/compose';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Internal dependencies
|
|
@@ -22,6 +23,8 @@ import { store as noticesStore } from '@wordpress/notices';
|
|
|
22
23
|
import { unlock } from '../lock-unlock';
|
|
23
24
|
import { useUploadMediaFromBlobURL } from '../utils/hooks';
|
|
24
25
|
import Image from './image';
|
|
26
|
+
import { isValidFileType } from './utils';
|
|
27
|
+
import { useMaxWidthObserver } from './use-max-width-observer';
|
|
25
28
|
|
|
26
29
|
/**
|
|
27
30
|
* Module constants
|
|
@@ -29,6 +32,7 @@ import Image from './image';
|
|
|
29
32
|
import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_CUSTOM, LINK_DESTINATION_MEDIA, LINK_DESTINATION_NONE, ALLOWED_MEDIA_TYPES } from './constants';
|
|
30
33
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
31
34
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
35
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
32
36
|
export const pickRelevantMediaFiles = (image, size) => {
|
|
33
37
|
const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(([key]) => ['alt', 'id', 'link', 'caption'].includes(key)));
|
|
34
38
|
imageProps.url = image?.sizes?.[size]?.url || image?.media_details?.sizes?.[size]?.source_url || image.url;
|
|
@@ -84,6 +88,16 @@ export function ImageEdit({
|
|
|
84
88
|
metadata
|
|
85
89
|
} = attributes;
|
|
86
90
|
const [temporaryURL, setTemporaryURL] = useState(attributes.blob);
|
|
91
|
+
const containerRef = useRef();
|
|
92
|
+
// Only observe the max width from the parent container when the parent layout is not flex nor grid.
|
|
93
|
+
// This won't work for them because the container width changes with the image.
|
|
94
|
+
// TODO: Find a way to observe the container width for flex and grid layouts.
|
|
95
|
+
const isMaxWidthContainerWidth = !parentLayout || parentLayout.type !== 'flex' && parentLayout.type !== 'grid';
|
|
96
|
+
const [maxWidthObserver, maxContentWidth] = useMaxWidthObserver();
|
|
97
|
+
const [placeholderResizeListener, {
|
|
98
|
+
width: placeholderWidth
|
|
99
|
+
}] = useResizeObserver();
|
|
100
|
+
const isSmallContainer = placeholderWidth && placeholderWidth < 160;
|
|
87
101
|
const altRef = useRef();
|
|
88
102
|
useEffect(() => {
|
|
89
103
|
altRef.current = alt;
|
|
@@ -93,7 +107,8 @@ export function ImageEdit({
|
|
|
93
107
|
captionRef.current = caption;
|
|
94
108
|
}, [caption]);
|
|
95
109
|
const {
|
|
96
|
-
__unstableMarkNextChangeAsNotPersistent
|
|
110
|
+
__unstableMarkNextChangeAsNotPersistent,
|
|
111
|
+
replaceBlock
|
|
97
112
|
} = useDispatch(blockEditorStore);
|
|
98
113
|
useEffect(() => {
|
|
99
114
|
if (['wide', 'full'].includes(align)) {
|
|
@@ -107,7 +122,10 @@ export function ImageEdit({
|
|
|
107
122
|
}
|
|
108
123
|
}, [__unstableMarkNextChangeAsNotPersistent, align, setAttributes]);
|
|
109
124
|
const {
|
|
110
|
-
getSettings
|
|
125
|
+
getSettings,
|
|
126
|
+
getBlockRootClientId,
|
|
127
|
+
getBlockName,
|
|
128
|
+
canInsertBlockType
|
|
111
129
|
} = useSelect(blockEditorStore);
|
|
112
130
|
const blockEditingMode = useBlockEditingMode();
|
|
113
131
|
const {
|
|
@@ -124,7 +142,35 @@ export function ImageEdit({
|
|
|
124
142
|
blob: undefined
|
|
125
143
|
});
|
|
126
144
|
}
|
|
145
|
+
function onSelectImagesList(images) {
|
|
146
|
+
const win = containerRef.current?.ownerDocument.defaultView;
|
|
147
|
+
if (images.every(file => file instanceof win.File)) {
|
|
148
|
+
/** @type {File[]} */
|
|
149
|
+
const files = images;
|
|
150
|
+
const rootClientId = getBlockRootClientId(clientId);
|
|
151
|
+
if (files.some(file => !isValidFileType(file))) {
|
|
152
|
+
// Copied from the same notice in the gallery block.
|
|
153
|
+
createErrorNotice(__('If uploading to a gallery all files need to be image formats'), {
|
|
154
|
+
id: 'gallery-upload-invalid-file',
|
|
155
|
+
type: 'snackbar'
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
const imageBlocks = files.filter(file => isValidFileType(file)).map(file => createBlock('core/image', {
|
|
159
|
+
blob: createBlobURL(file)
|
|
160
|
+
}));
|
|
161
|
+
if (getBlockName(rootClientId) === 'core/gallery') {
|
|
162
|
+
replaceBlock(clientId, imageBlocks);
|
|
163
|
+
} else if (canInsertBlockType('core/gallery', rootClientId)) {
|
|
164
|
+
const galleryBlock = createBlock('core/gallery', {}, imageBlocks);
|
|
165
|
+
replaceBlock(clientId, galleryBlock);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
127
169
|
function onSelectImage(media) {
|
|
170
|
+
if (Array.isArray(media)) {
|
|
171
|
+
onSelectImagesList(media);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
128
174
|
if (!media || !media.url) {
|
|
129
175
|
setAttributes({
|
|
130
176
|
url: undefined,
|
|
@@ -255,6 +301,7 @@ export function ImageEdit({
|
|
|
255
301
|
'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
|
|
256
302
|
});
|
|
257
303
|
const blockProps = useBlockProps({
|
|
304
|
+
ref: containerRef,
|
|
258
305
|
className: classes
|
|
259
306
|
});
|
|
260
307
|
|
|
@@ -276,16 +323,16 @@ export function ImageEdit({
|
|
|
276
323
|
lockUrlControlsMessage: blockBindingsSource?.label ? sprintf( /* translators: %s: Label of the bindings source. */
|
|
277
324
|
__('Connected to %s'), blockBindingsSource.label) : __('Connected to dynamic data')
|
|
278
325
|
};
|
|
279
|
-
}, [isSingleSelected, metadata?.bindings?.url]);
|
|
326
|
+
}, [context, isSingleSelected, metadata?.bindings?.url]);
|
|
280
327
|
const placeholder = content => {
|
|
281
|
-
return /*#__PURE__*/
|
|
328
|
+
return /*#__PURE__*/_jsxs(Placeholder, {
|
|
282
329
|
className: clsx('block-editor-media-placeholder', {
|
|
283
330
|
[borderProps.className]: !!borderProps.className && !isSingleSelected
|
|
284
331
|
}),
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
label: __('Image'),
|
|
288
|
-
instructions: !lockUrlControls && __('Upload an image file, pick one from your
|
|
332
|
+
icon: !isSmallContainer && (lockUrlControls ? pluginsIcon : icon),
|
|
333
|
+
withIllustration: !isSingleSelected || isSmallContainer,
|
|
334
|
+
label: !isSmallContainer && __('Image'),
|
|
335
|
+
instructions: !lockUrlControls && !isSmallContainer && __('Upload or drag an image file here, or pick one from your library.'),
|
|
289
336
|
style: {
|
|
290
337
|
aspectRatio: !(width && height) && aspectRatio ? aspectRatio : undefined,
|
|
291
338
|
width: height && aspectRatio ? '100%' : width,
|
|
@@ -294,45 +341,49 @@ export function ImageEdit({
|
|
|
294
341
|
...borderProps.style,
|
|
295
342
|
...shadowProps.style
|
|
296
343
|
},
|
|
297
|
-
children: lockUrlControls
|
|
298
|
-
className: "block-bindings-media-placeholder-message",
|
|
299
|
-
children: lockUrlControlsMessage
|
|
300
|
-
}) : content
|
|
344
|
+
children: [lockUrlControls && !isSmallContainer && lockUrlControlsMessage, !lockUrlControls && !isSmallContainer && content, placeholderResizeListener]
|
|
301
345
|
});
|
|
302
346
|
};
|
|
303
|
-
return /*#__PURE__*/_jsxs(
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
347
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
348
|
+
children: [/*#__PURE__*/_jsxs("figure", {
|
|
349
|
+
...blockProps,
|
|
350
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
351
|
+
temporaryURL: temporaryURL,
|
|
352
|
+
attributes: attributes,
|
|
353
|
+
setAttributes: setAttributes,
|
|
354
|
+
isSingleSelected: isSingleSelected,
|
|
355
|
+
insertBlocksAfter: insertBlocksAfter,
|
|
356
|
+
onReplace: onReplace,
|
|
357
|
+
onSelectImage: onSelectImage,
|
|
358
|
+
onSelectURL: onSelectURL,
|
|
359
|
+
onUploadError: onUploadError,
|
|
360
|
+
context: context,
|
|
361
|
+
clientId: clientId,
|
|
362
|
+
blockEditingMode: blockEditingMode,
|
|
363
|
+
parentLayoutType: parentLayout?.type,
|
|
364
|
+
maxContentWidth: maxContentWidth
|
|
365
|
+
}), /*#__PURE__*/_jsx(MediaPlaceholder, {
|
|
366
|
+
icon: /*#__PURE__*/_jsx(BlockIcon, {
|
|
367
|
+
icon: icon
|
|
368
|
+
}),
|
|
369
|
+
onSelect: onSelectImage,
|
|
370
|
+
onSelectURL: onSelectURL,
|
|
371
|
+
onError: onUploadError,
|
|
372
|
+
placeholder: placeholder,
|
|
373
|
+
accept: "image/*",
|
|
374
|
+
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
375
|
+
handleUpload: files => files.length === 1,
|
|
376
|
+
value: {
|
|
377
|
+
id,
|
|
378
|
+
src
|
|
379
|
+
},
|
|
380
|
+
mediaPreview: mediaPreview,
|
|
381
|
+
disableMediaButtons: temporaryURL || url
|
|
382
|
+
})]
|
|
383
|
+
}),
|
|
384
|
+
// The listener cannot be placed as the first element as it will break the in-between inserter.
|
|
385
|
+
// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120
|
|
386
|
+
isSingleSelected && isMaxWidthContainerWidth && maxWidthObserver]
|
|
336
387
|
});
|
|
337
388
|
}
|
|
338
389
|
export default ImageEdit;
|