@wordpress/block-library 8.5.0 → 8.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/buttons/edit.native.js +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/columns/edit.js +10 -8
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +1 -1
- package/build/columns/edit.native.js.map +1 -1
- package/build/comments/edit/placeholder.js +8 -5
- package/build/comments/edit/placeholder.js.map +1 -1
- package/build/cover/index.js +13 -4
- package/build/cover/index.js.map +1 -1
- package/build/cover/variations.js +29 -0
- package/build/cover/variations.js.map +1 -0
- package/build/embed/edit.js +13 -14
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js +18 -14
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/util.js +39 -12
- package/build/embed/util.js.map +1 -1
- package/build/gallery/edit.js +1 -0
- package/build/gallery/edit.js.map +1 -1
- package/build/latest-posts/edit.js +10 -10
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/edit.native.js +3 -3
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/media-text/constants.js +17 -1
- package/build/media-text/constants.js.map +1 -1
- package/build/media-text/edit.js +7 -19
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/edit.native.js +6 -5
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/transforms.js +32 -44
- package/build/media-text/transforms.js.map +1 -1
- package/build/navigation/edit/index.js +56 -86
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +4 -1
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +2 -5
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +26 -22
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +14 -1
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +1 -1
- package/build/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build/navigation-link/edit.js +0 -11
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +0 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -13
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +59 -45
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list-item/edit.js +3 -2
- package/build/page-list-item/edit.js.map +1 -1
- package/build/post-content/edit.js +6 -1
- package/build/post-content/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +0 -6
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/pullquote/deprecated.js +3 -3
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/query/edit/query-placeholder.js +3 -2
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/utils.js +26 -9
- package/build/query/utils.js.map +1 -1
- package/build/table/state.js +12 -4
- package/build/table/state.js.map +1 -1
- package/build/template-part/edit/import-controls.js +4 -24
- package/build/template-part/edit/import-controls.js.map +1 -1
- package/build/template-part/edit/utils/transformers.js +69 -19
- package/build/template-part/edit/utils/transformers.js.map +1 -1
- package/build/text-columns/edit.js +3 -7
- package/build/text-columns/edit.js.map +1 -1
- package/build/text-columns/save.js +11 -13
- package/build/text-columns/save.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/columns/edit.js +10 -7
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +1 -1
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/comments/edit/placeholder.js +9 -5
- package/build-module/comments/edit/placeholder.js.map +1 -1
- package/build-module/cover/index.js +12 -4
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/variations.js +19 -0
- package/build-module/cover/variations.js.map +1 -0
- package/build-module/embed/edit.js +14 -15
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/edit.native.js +19 -15
- package/build-module/embed/edit.native.js.map +1 -1
- package/build-module/embed/util.js +34 -10
- package/build-module/embed/util.js.map +1 -1
- package/build-module/gallery/edit.js +1 -0
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +10 -9
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/edit.native.js +3 -3
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/media-text/constants.js +10 -0
- package/build-module/media-text/constants.js.map +1 -1
- package/build-module/media-text/edit.js +2 -14
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/edit.native.js +4 -3
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/transforms.js +32 -44
- package/build-module/media-text/transforms.js.map +1 -1
- package/build-module/navigation/edit/index.js +58 -88
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +4 -1
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +2 -5
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +25 -22
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +14 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build-module/navigation-link/edit.js +0 -11
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +0 -1
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -13
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +61 -47
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list-item/edit.js +3 -2
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/post-content/edit.js +6 -1
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +0 -6
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/pullquote/deprecated.js +3 -2
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +4 -3
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/utils.js +21 -6
- package/build-module/query/utils.js.map +1 -1
- package/build-module/table/state.js +13 -5
- package/build-module/table/state.js.map +1 -1
- package/build-module/template-part/edit/import-controls.js +4 -23
- package/build-module/template-part/edit/import-controls.js.map +1 -1
- package/build-module/template-part/edit/utils/transformers.js +69 -20
- package/build-module/template-part/edit/utils/transformers.js.map +1 -1
- package/build-module/text-columns/edit.js +3 -6
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/text-columns/save.js +11 -12
- package/build-module/text-columns/save.js.map +1 -1
- package/build-style/cover/style-rtl.css +11 -5
- package/build-style/cover/style.css +11 -5
- package/build-style/editor-rtl.css +5 -1
- package/build-style/editor.css +5 -1
- package/build-style/navigation/editor-rtl.css +1 -1
- package/build-style/navigation/editor.css +1 -1
- package/build-style/page-list/editor-rtl.css +4 -0
- package/build-style/page-list/editor.css +4 -0
- package/build-style/post-featured-image/style-rtl.css +1 -0
- package/build-style/post-featured-image/style.css +1 -0
- package/build-style/style-rtl.css +12 -5
- package/build-style/style.css +12 -5
- package/package.json +31 -31
- package/src/audio/test/__snapshots__/edit.native.js.snap +44 -4
- package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/audio/test/transforms.native.js +42 -0
- package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/block/test/transforms.native.js +40 -0
- package/src/buttons/edit.native.js +1 -1
- package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/buttons/test/transforms.native.js +48 -0
- package/src/columns/edit.js +28 -17
- package/src/columns/edit.native.js +1 -1
- package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
- package/src/columns/test/transforms.native.js +91 -0
- package/src/comment-template/index.php +1 -2
- package/src/comments/edit/placeholder.js +16 -4
- package/src/cover/block.json +9 -3
- package/src/cover/index.js +2 -0
- package/src/cover/style.scss +16 -7
- package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/cover/test/transforms.native.js +112 -0
- package/src/cover/variations.js +20 -0
- package/src/embed/edit.js +16 -12
- package/src/embed/edit.native.js +28 -18
- package/src/embed/test/__snapshots__/transforms.native.js.snap +23 -0
- package/src/embed/test/index.js +12 -0
- package/src/embed/test/transforms.native.js +44 -0
- package/src/embed/util.js +29 -8
- package/src/file/test/__snapshots__/edit.native.js.snap +18 -2
- package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/file/test/transforms.native.js +42 -0
- package/src/freeform/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/freeform/test/transforms.native.js +39 -0
- package/src/gallery/edit.js +3 -0
- package/src/gallery/test/__snapshots__/transforms.native.js.snap +53 -0
- package/src/gallery/test/transforms.native.js +52 -0
- package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
- package/src/group/test/transforms.native.js +75 -0
- package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/heading/test/transforms.native.js +46 -0
- package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
- package/src/image/test/transforms.native.js +48 -0
- package/src/latest-posts/edit.js +11 -16
- package/src/latest-posts/edit.native.js +3 -3
- package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/latest-posts/test/transforms.native.js +61 -0
- package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
- package/src/list/test/transforms.native.js +56 -0
- package/src/media-text/constants.js +16 -0
- package/src/media-text/edit.js +8 -18
- package/src/media-text/edit.native.js +3 -9
- package/src/media-text/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/media-text/test/transforms.native.js +112 -0
- package/src/media-text/transforms.js +24 -51
- package/src/missing/test/__snapshots__/edit.native.js.snap +20 -2
- package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/more/test/transforms.native.js +42 -0
- package/src/navigation/edit/index.js +104 -107
- package/src/navigation/edit/inner-blocks.js +3 -0
- package/src/navigation/edit/menu-inspector-controls.js +2 -7
- package/src/navigation/edit/navigation-menu-selector.js +41 -25
- package/src/navigation/edit/unsaved-inner-blocks.js +46 -33
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +82 -83
- package/src/navigation/edit/use-create-navigation-menu.js +1 -1
- package/src/navigation/edit/use-navigation-notice.js +1 -1
- package/src/navigation/editor.scss +23 -20
- package/src/navigation/index.php +18 -39
- package/src/navigation-link/edit.js +0 -9
- package/src/navigation-link/index.php +5 -8
- package/src/navigation-link/link-ui.js +0 -1
- package/src/navigation-submenu/edit.js +0 -10
- package/src/navigation-submenu/index.php +23 -6
- package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/nextpage/test/transforms.native.js +42 -0
- package/src/page-list/edit.js +78 -44
- package/src/page-list/editor.scss +6 -0
- package/src/page-list-item/edit.js +2 -3
- package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
- package/src/paragraph/test/transforms.native.js +50 -0
- package/src/post-content/edit.js +5 -1
- package/src/post-excerpt/index.php +1 -2
- package/src/post-featured-image/dimension-controls.js +0 -8
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-featured-image/style.scss +1 -0
- package/src/preformatted/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/preformatted/test/transforms.native.js +42 -0
- package/src/pullquote/deprecated.js +2 -6
- package/src/pullquote/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/pullquote/test/transforms.native.js +46 -0
- package/src/query/edit/query-placeholder.js +10 -5
- package/src/query/test/utils.js +33 -1
- package/src/query/utils.js +19 -6
- package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
- package/src/quote/test/transforms.native.js +67 -0
- package/src/search/test/__snapshots__/edit.native.js.snap +11 -1
- package/src/search/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/search/test/transforms.native.js +40 -0
- package/src/separator/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/separator/test/transforms.native.js +42 -0
- package/src/shortcode/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/shortcode/test/transforms.native.js +42 -0
- package/src/social-links/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/social-links/test/transforms.native.js +53 -0
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/spacer/test/transforms.native.js +42 -0
- package/src/table/state.js +8 -17
- package/src/template-part/edit/import-controls.js +2 -29
- package/src/template-part/edit/utils/transformers.js +96 -19
- package/src/text-columns/edit.js +1 -6
- package/src/text-columns/save.js +1 -6
- package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/verse/test/transforms.native.js +42 -0
- package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
- package/src/video/test/transforms.native.js +48 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`List block transforms to Columns block 1`] = `
|
|
4
|
+
"<!-- wp:columns -->
|
|
5
|
+
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
6
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:list -->
|
|
7
|
+
<ul><!-- wp:list-item -->
|
|
8
|
+
<li>First Item</li>
|
|
9
|
+
<!-- /wp:list-item -->
|
|
10
|
+
|
|
11
|
+
<!-- wp:list-item -->
|
|
12
|
+
<li>Second Item</li>
|
|
13
|
+
<!-- /wp:list-item -->
|
|
14
|
+
|
|
15
|
+
<!-- wp:list-item -->
|
|
16
|
+
<li>Third Item</li>
|
|
17
|
+
<!-- /wp:list-item --></ul>
|
|
18
|
+
<!-- /wp:list --></div>
|
|
19
|
+
<!-- /wp:column --></div>
|
|
20
|
+
<!-- /wp:columns -->"
|
|
21
|
+
`;
|
|
22
|
+
|
|
23
|
+
exports[`List block transforms to Group block 1`] = `
|
|
24
|
+
"<!-- wp:group {"layout":{"type":"constrained"}} -->
|
|
25
|
+
<div class="wp-block-group"><!-- wp:list -->
|
|
26
|
+
<ul><!-- wp:list-item -->
|
|
27
|
+
<li>First Item</li>
|
|
28
|
+
<!-- /wp:list-item -->
|
|
29
|
+
|
|
30
|
+
<!-- wp:list-item -->
|
|
31
|
+
<li>Second Item</li>
|
|
32
|
+
<!-- /wp:list-item -->
|
|
33
|
+
|
|
34
|
+
<!-- wp:list-item -->
|
|
35
|
+
<li>Third Item</li>
|
|
36
|
+
<!-- /wp:list-item --></ul>
|
|
37
|
+
<!-- /wp:list --></div>
|
|
38
|
+
<!-- /wp:group -->"
|
|
39
|
+
`;
|
|
40
|
+
|
|
41
|
+
exports[`List block transforms to Heading block 1`] = `
|
|
42
|
+
"<!-- wp:heading -->
|
|
43
|
+
<h2 class="wp-block-heading">First Item</h2>
|
|
44
|
+
<!-- /wp:heading -->
|
|
45
|
+
|
|
46
|
+
<!-- wp:heading -->
|
|
47
|
+
<h2 class="wp-block-heading">Second Item</h2>
|
|
48
|
+
<!-- /wp:heading -->
|
|
49
|
+
|
|
50
|
+
<!-- wp:heading -->
|
|
51
|
+
<h2 class="wp-block-heading">Third Item</h2>
|
|
52
|
+
<!-- /wp:heading -->"
|
|
53
|
+
`;
|
|
54
|
+
|
|
55
|
+
exports[`List block transforms to Paragraph block 1`] = `
|
|
56
|
+
"<!-- wp:paragraph -->
|
|
57
|
+
<p>First Item</p>
|
|
58
|
+
<!-- /wp:paragraph -->
|
|
59
|
+
|
|
60
|
+
<!-- wp:paragraph -->
|
|
61
|
+
<p>Second Item</p>
|
|
62
|
+
<!-- /wp:paragraph -->
|
|
63
|
+
|
|
64
|
+
<!-- wp:paragraph -->
|
|
65
|
+
<p>Third Item</p>
|
|
66
|
+
<!-- /wp:paragraph -->"
|
|
67
|
+
`;
|
|
68
|
+
|
|
69
|
+
exports[`List block transforms to Quote block 1`] = `
|
|
70
|
+
"<!-- wp:quote -->
|
|
71
|
+
<blockquote class="wp-block-quote"><!-- wp:list -->
|
|
72
|
+
<ul><!-- wp:list-item -->
|
|
73
|
+
<li>First Item</li>
|
|
74
|
+
<!-- /wp:list-item -->
|
|
75
|
+
|
|
76
|
+
<!-- wp:list-item -->
|
|
77
|
+
<li>Second Item</li>
|
|
78
|
+
<!-- /wp:list-item -->
|
|
79
|
+
|
|
80
|
+
<!-- wp:list-item -->
|
|
81
|
+
<li>Third Item</li>
|
|
82
|
+
<!-- /wp:list-item --></ul>
|
|
83
|
+
<!-- /wp:list --></blockquote>
|
|
84
|
+
<!-- /wp:quote -->"
|
|
85
|
+
`;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
getEditorHtml,
|
|
6
|
+
initializeEditor,
|
|
7
|
+
setupCoreBlocks,
|
|
8
|
+
transformBlock,
|
|
9
|
+
getBlockTransformOptions,
|
|
10
|
+
} from 'test/helpers';
|
|
11
|
+
|
|
12
|
+
const block = 'List';
|
|
13
|
+
const initialHtml = `
|
|
14
|
+
<!-- wp:list -->
|
|
15
|
+
<ul><!-- wp:list-item -->
|
|
16
|
+
<li>First Item</li>
|
|
17
|
+
<!-- /wp:list-item -->
|
|
18
|
+
|
|
19
|
+
<!-- wp:list-item -->
|
|
20
|
+
<li>Second Item</li>
|
|
21
|
+
<!-- /wp:list-item -->
|
|
22
|
+
|
|
23
|
+
<!-- wp:list-item -->
|
|
24
|
+
<li>Third Item</li>
|
|
25
|
+
<!-- /wp:list-item --></ul>
|
|
26
|
+
<!-- /wp:list -->`;
|
|
27
|
+
|
|
28
|
+
const transformsWithInnerBlocks = [ 'Quote', 'Columns', 'Group' ];
|
|
29
|
+
const blockTransforms = [
|
|
30
|
+
'Paragraph',
|
|
31
|
+
'Heading',
|
|
32
|
+
...transformsWithInnerBlocks,
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
setupCoreBlocks();
|
|
36
|
+
|
|
37
|
+
describe( `${ block } block transforms`, () => {
|
|
38
|
+
test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
|
|
39
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
40
|
+
const newBlock = await transformBlock( screen, block, blockTransform, {
|
|
41
|
+
hasInnerBlocks:
|
|
42
|
+
transformsWithInnerBlocks.includes( blockTransform ),
|
|
43
|
+
} );
|
|
44
|
+
expect( newBlock ).toBeVisible();
|
|
45
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
46
|
+
} );
|
|
47
|
+
|
|
48
|
+
it( 'matches expected transformation options', async () => {
|
|
49
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
50
|
+
const transformOptions = await getBlockTransformOptions(
|
|
51
|
+
screen,
|
|
52
|
+
block
|
|
53
|
+
);
|
|
54
|
+
expect( transformOptions ).toHaveLength( blockTransforms.length );
|
|
55
|
+
} );
|
|
56
|
+
} );
|
|
@@ -1 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { _x } from '@wordpress/i18n';
|
|
5
|
+
|
|
1
6
|
export const DEFAULT_MEDIA_SIZE_SLUG = 'full';
|
|
7
|
+
export const WIDTH_CONSTRAINT_PERCENTAGE = 15;
|
|
8
|
+
export const LINK_DESTINATION_MEDIA = 'media';
|
|
9
|
+
export const LINK_DESTINATION_ATTACHMENT = 'attachment';
|
|
10
|
+
export const TEMPLATE = [
|
|
11
|
+
[
|
|
12
|
+
'core/paragraph',
|
|
13
|
+
{
|
|
14
|
+
placeholder: _x( 'Content…', 'content placeholder' ),
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
];
|
package/src/media-text/edit.js
CHANGED
|
@@ -6,7 +6,7 @@ import classnames from 'classnames';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import { __
|
|
9
|
+
import { __ } from '@wordpress/i18n';
|
|
10
10
|
import { useSelect } from '@wordpress/data';
|
|
11
11
|
import { useState, useRef } from '@wordpress/element';
|
|
12
12
|
import {
|
|
@@ -36,31 +36,21 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
36
36
|
* Internal dependencies
|
|
37
37
|
*/
|
|
38
38
|
import MediaContainer from './media-container';
|
|
39
|
-
import {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
'core/paragraph',
|
|
47
|
-
{
|
|
48
|
-
placeholder: _x( 'Content…', 'content placeholder' ),
|
|
49
|
-
},
|
|
50
|
-
],
|
|
51
|
-
];
|
|
39
|
+
import {
|
|
40
|
+
DEFAULT_MEDIA_SIZE_SLUG,
|
|
41
|
+
WIDTH_CONSTRAINT_PERCENTAGE,
|
|
42
|
+
LINK_DESTINATION_MEDIA,
|
|
43
|
+
LINK_DESTINATION_ATTACHMENT,
|
|
44
|
+
TEMPLATE,
|
|
45
|
+
} from './constants';
|
|
52
46
|
|
|
53
47
|
// this limits the resize to a safe zone to avoid making broken layouts
|
|
54
|
-
const WIDTH_CONSTRAINT_PERCENTAGE = 15;
|
|
55
48
|
const applyWidthConstraints = ( width ) =>
|
|
56
49
|
Math.max(
|
|
57
50
|
WIDTH_CONSTRAINT_PERCENTAGE,
|
|
58
51
|
Math.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )
|
|
59
52
|
);
|
|
60
53
|
|
|
61
|
-
const LINK_DESTINATION_MEDIA = 'media';
|
|
62
|
-
const LINK_DESTINATION_ATTACHMENT = 'attachment';
|
|
63
|
-
|
|
64
54
|
function getImageSourceUrlBySizeSlug( image, slug ) {
|
|
65
55
|
// eslint-disable-next-line camelcase
|
|
66
56
|
return image?.media_details?.sizes?.[ slug ]?.source_url;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { get } from 'lodash';
|
|
5
4
|
import { View } from 'react-native';
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -32,12 +31,12 @@ import { pullLeft, pullRight, replace } from '@wordpress/icons';
|
|
|
32
31
|
/**
|
|
33
32
|
* Internal dependencies
|
|
34
33
|
*/
|
|
34
|
+
import { WIDTH_CONSTRAINT_PERCENTAGE } from './constants';
|
|
35
35
|
import MediaContainer from './media-container';
|
|
36
36
|
import styles from './style.scss';
|
|
37
37
|
|
|
38
38
|
const TEMPLATE = [ [ 'core/paragraph' ] ];
|
|
39
39
|
// this limits the resize to a safe zone to avoid making broken layouts
|
|
40
|
-
const WIDTH_CONSTRAINT_PERCENTAGE = 15;
|
|
41
40
|
const BREAKPOINTS = {
|
|
42
41
|
mobile: 480,
|
|
43
42
|
};
|
|
@@ -99,13 +98,8 @@ class MediaTextEdit extends Component {
|
|
|
99
98
|
if ( mediaType === 'image' && media.sizes ) {
|
|
100
99
|
// Try the "large" size URL, falling back to the "full" size URL below.
|
|
101
100
|
src =
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
'media_details',
|
|
105
|
-
'sizes',
|
|
106
|
-
'large',
|
|
107
|
-
'source_url',
|
|
108
|
-
] );
|
|
101
|
+
media.sizes.large?.url ||
|
|
102
|
+
media?.media_details?.sizes?.large?.source_url;
|
|
109
103
|
}
|
|
110
104
|
|
|
111
105
|
setAttributes( {
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Media & Text block transformations with Image to Columns block 1`] = `
|
|
4
|
+
"<!-- wp:columns -->
|
|
5
|
+
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
6
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:media-text {"mediaId":4674,"mediaType":"image","isStackedOnMobile":false,"className":"is-stacked-on-mobile"} -->
|
|
7
|
+
<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img src="https://cldup.com/cXyG__fTLN.jpg" alt="" class="wp-image-4674 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
8
|
+
<p class="has-large-font-size">Mountain</p>
|
|
9
|
+
<!-- /wp:paragraph --></div></div>
|
|
10
|
+
<!-- /wp:media-text --></div>
|
|
11
|
+
<!-- /wp:column --></div>
|
|
12
|
+
<!-- /wp:columns -->"
|
|
13
|
+
`;
|
|
14
|
+
|
|
15
|
+
exports[`Media & Text block transformations with Image to Cover block 1`] = `
|
|
16
|
+
"<!-- wp:cover {"url":"https://cldup.com/cXyG__fTLN.jpg","id":4674,"dimRatio":50,"align":"wide"} -->
|
|
17
|
+
<div class="wp-block-cover alignwide"><span aria-hidden="true" class="wp-block-cover__background has-background-dim"></span><img class="wp-block-cover__image-background wp-image-4674" alt="" src="https://cldup.com/cXyG__fTLN.jpg" data-object-fit="cover"/><div class="wp-block-cover__inner-container"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
18
|
+
<p class="has-large-font-size">Mountain</p>
|
|
19
|
+
<!-- /wp:paragraph --></div></div>
|
|
20
|
+
<!-- /wp:cover -->"
|
|
21
|
+
`;
|
|
22
|
+
|
|
23
|
+
exports[`Media & Text block transformations with Image to Group block 1`] = `
|
|
24
|
+
"<!-- wp:group {"align":"wide","layout":{"type":"constrained"}} -->
|
|
25
|
+
<div class="wp-block-group alignwide"><!-- wp:media-text {"mediaId":4674,"mediaType":"image","isStackedOnMobile":false,"className":"is-stacked-on-mobile"} -->
|
|
26
|
+
<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img src="https://cldup.com/cXyG__fTLN.jpg" alt="" class="wp-image-4674 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
27
|
+
<p class="has-large-font-size">Mountain</p>
|
|
28
|
+
<!-- /wp:paragraph --></div></div>
|
|
29
|
+
<!-- /wp:media-text --></div>
|
|
30
|
+
<!-- /wp:group -->"
|
|
31
|
+
`;
|
|
32
|
+
|
|
33
|
+
exports[`Media & Text block transformations with Image to Image block 1`] = `
|
|
34
|
+
"<!-- wp:image {"id":4674} -->
|
|
35
|
+
<figure class="wp-block-image"><img src="https://cldup.com/cXyG__fTLN.jpg" alt="" class="wp-image-4674"/></figure>
|
|
36
|
+
<!-- /wp:image -->"
|
|
37
|
+
`;
|
|
38
|
+
|
|
39
|
+
exports[`Media & Text block transformations with Video to Columns block 1`] = `
|
|
40
|
+
"<!-- wp:columns -->
|
|
41
|
+
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
42
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:media-text {"mediaId":4675,"mediaType":"video","isStackedOnMobile":false,"className":"is-stacked-on-mobile"} -->
|
|
43
|
+
<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><video controls src="https://i.cloudup.com/YtZFJbuQCE.mov"></video></figure><div class="wp-block-media-text__content"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
44
|
+
<p class="has-large-font-size">Cloudup</p>
|
|
45
|
+
<!-- /wp:paragraph --></div></div>
|
|
46
|
+
<!-- /wp:media-text --></div>
|
|
47
|
+
<!-- /wp:column --></div>
|
|
48
|
+
<!-- /wp:columns -->"
|
|
49
|
+
`;
|
|
50
|
+
|
|
51
|
+
exports[`Media & Text block transformations with Video to Cover block 1`] = `
|
|
52
|
+
"<!-- wp:cover {"url":"https://i.cloudup.com/YtZFJbuQCE.mov","id":4675,"dimRatio":50,"backgroundType":"video","align":"wide"} -->
|
|
53
|
+
<div class="wp-block-cover alignwide"><span aria-hidden="true" class="wp-block-cover__background has-background-dim"></span><video class="wp-block-cover__video-background intrinsic-ignore" autoplay muted loop playsinline src="https://i.cloudup.com/YtZFJbuQCE.mov" data-object-fit="cover"></video><div class="wp-block-cover__inner-container"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
54
|
+
<p class="has-large-font-size">Cloudup</p>
|
|
55
|
+
<!-- /wp:paragraph --></div></div>
|
|
56
|
+
<!-- /wp:cover -->"
|
|
57
|
+
`;
|
|
58
|
+
|
|
59
|
+
exports[`Media & Text block transformations with Video to Group block 1`] = `
|
|
60
|
+
"<!-- wp:group {"align":"wide","layout":{"type":"constrained"}} -->
|
|
61
|
+
<div class="wp-block-group alignwide"><!-- wp:media-text {"mediaId":4675,"mediaType":"video","isStackedOnMobile":false,"className":"is-stacked-on-mobile"} -->
|
|
62
|
+
<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><video controls src="https://i.cloudup.com/YtZFJbuQCE.mov"></video></figure><div class="wp-block-media-text__content"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
63
|
+
<p class="has-large-font-size">Cloudup</p>
|
|
64
|
+
<!-- /wp:paragraph --></div></div>
|
|
65
|
+
<!-- /wp:media-text --></div>
|
|
66
|
+
<!-- /wp:group -->"
|
|
67
|
+
`;
|
|
68
|
+
|
|
69
|
+
exports[`Media & Text block transformations with Video to Video block 1`] = `
|
|
70
|
+
"<!-- wp:video {"id":4675} -->
|
|
71
|
+
<figure class="wp-block-video"><video controls src="https://i.cloudup.com/YtZFJbuQCE.mov"></video></figure>
|
|
72
|
+
<!-- /wp:video -->"
|
|
73
|
+
`;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
getEditorHtml,
|
|
6
|
+
initializeEditor,
|
|
7
|
+
setupCoreBlocks,
|
|
8
|
+
transformBlock,
|
|
9
|
+
getBlockTransformOptions,
|
|
10
|
+
} from 'test/helpers';
|
|
11
|
+
|
|
12
|
+
const block = 'Media & Text';
|
|
13
|
+
const initialHtmlWithImage = `
|
|
14
|
+
<!-- wp:media-text {"mediaId":4674,"mediaType":"image","isStackedOnMobile":false,"className":"is-stacked-on-mobile"} -->
|
|
15
|
+
<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img src="https://cldup.com/cXyG__fTLN.jpg" class="wp-image-4674 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
16
|
+
<p class="has-large-font-size">Mountain</p>
|
|
17
|
+
<!-- /wp:paragraph --></div></div>
|
|
18
|
+
<!-- /wp:media-text -->`;
|
|
19
|
+
const initialHtmlWithVideo = `
|
|
20
|
+
<!-- wp:media-text {"mediaId":4675,"mediaType":"video","isStackedOnMobile":false,"className":"is-stacked-on-mobile"} -->
|
|
21
|
+
<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><video controls src="https://i.cloudup.com/YtZFJbuQCE.mov"></video></figure><div class="wp-block-media-text__content"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
22
|
+
<p class="has-large-font-size">Cloudup</p>
|
|
23
|
+
<!-- /wp:paragraph --></div></div>
|
|
24
|
+
<!-- /wp:media-text -->`;
|
|
25
|
+
|
|
26
|
+
const tranformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
27
|
+
const blockTransformsWithImage = [
|
|
28
|
+
'Image',
|
|
29
|
+
'Cover',
|
|
30
|
+
...tranformsWithInnerBlocks,
|
|
31
|
+
];
|
|
32
|
+
const blockTransformsWithVideo = [
|
|
33
|
+
'Video',
|
|
34
|
+
'Cover',
|
|
35
|
+
...tranformsWithInnerBlocks,
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
setupCoreBlocks();
|
|
39
|
+
|
|
40
|
+
describe( `${ block } block transformations`, () => {
|
|
41
|
+
describe( 'with Image', () => {
|
|
42
|
+
test.each( blockTransformsWithImage )(
|
|
43
|
+
'to %s block',
|
|
44
|
+
async ( blockTransform ) => {
|
|
45
|
+
const screen = await initializeEditor( {
|
|
46
|
+
initialHtml: initialHtmlWithImage,
|
|
47
|
+
} );
|
|
48
|
+
const newBlock = await transformBlock(
|
|
49
|
+
screen,
|
|
50
|
+
block,
|
|
51
|
+
blockTransform,
|
|
52
|
+
{
|
|
53
|
+
isMediaBlock: true,
|
|
54
|
+
hasInnerBlocks:
|
|
55
|
+
tranformsWithInnerBlocks.includes( blockTransform ),
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
expect( newBlock ).toBeVisible();
|
|
59
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
it( 'matches expected transformation options', async () => {
|
|
64
|
+
const screen = await initializeEditor( {
|
|
65
|
+
initialHtml: initialHtmlWithImage,
|
|
66
|
+
} );
|
|
67
|
+
const transformOptions = await getBlockTransformOptions(
|
|
68
|
+
screen,
|
|
69
|
+
block
|
|
70
|
+
);
|
|
71
|
+
expect( transformOptions ).toHaveLength(
|
|
72
|
+
blockTransformsWithImage.length
|
|
73
|
+
);
|
|
74
|
+
} );
|
|
75
|
+
} );
|
|
76
|
+
|
|
77
|
+
describe( 'with Video', () => {
|
|
78
|
+
test.each( blockTransformsWithVideo )(
|
|
79
|
+
'to %s block',
|
|
80
|
+
async ( blockTransform ) => {
|
|
81
|
+
const screen = await initializeEditor( {
|
|
82
|
+
initialHtml: initialHtmlWithVideo,
|
|
83
|
+
} );
|
|
84
|
+
const newBlock = await transformBlock(
|
|
85
|
+
screen,
|
|
86
|
+
block,
|
|
87
|
+
blockTransform,
|
|
88
|
+
{
|
|
89
|
+
isMediaBlock: true,
|
|
90
|
+
hasInnerBlocks:
|
|
91
|
+
tranformsWithInnerBlocks.includes( blockTransform ),
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
expect( newBlock ).toBeVisible();
|
|
95
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
it( 'matches expected transformation options', async () => {
|
|
100
|
+
const screen = await initializeEditor( {
|
|
101
|
+
initialHtml: initialHtmlWithVideo,
|
|
102
|
+
} );
|
|
103
|
+
const transformOptions = await getBlockTransformOptions(
|
|
104
|
+
screen,
|
|
105
|
+
block
|
|
106
|
+
);
|
|
107
|
+
expect( transformOptions ).toHaveLength(
|
|
108
|
+
blockTransformsWithVideo.length
|
|
109
|
+
);
|
|
110
|
+
} );
|
|
111
|
+
} );
|
|
112
|
+
} );
|
|
@@ -42,6 +42,8 @@ const transforms = {
|
|
|
42
42
|
gradient,
|
|
43
43
|
id,
|
|
44
44
|
overlayColor,
|
|
45
|
+
style,
|
|
46
|
+
textColor,
|
|
45
47
|
url,
|
|
46
48
|
},
|
|
47
49
|
innerBlocks
|
|
@@ -66,6 +68,16 @@ const transforms = {
|
|
|
66
68
|
};
|
|
67
69
|
}
|
|
68
70
|
|
|
71
|
+
// Maintain custom text color block support value.
|
|
72
|
+
if ( style?.color?.text ) {
|
|
73
|
+
additionalAttributes.style = {
|
|
74
|
+
color: {
|
|
75
|
+
...additionalAttributes.style?.color,
|
|
76
|
+
text: style.color.text,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
69
81
|
return createBlock(
|
|
70
82
|
'core/media-text',
|
|
71
83
|
{
|
|
@@ -77,6 +89,7 @@ const transforms = {
|
|
|
77
89
|
mediaId: id,
|
|
78
90
|
mediaType: backgroundType,
|
|
79
91
|
mediaUrl: url,
|
|
92
|
+
textColor,
|
|
80
93
|
...additionalAttributes,
|
|
81
94
|
},
|
|
82
95
|
innerBlocks
|
|
@@ -135,6 +148,8 @@ const transforms = {
|
|
|
135
148
|
) => {
|
|
136
149
|
const additionalAttributes = {};
|
|
137
150
|
|
|
151
|
+
// Migrate the background styles or gradient to Cover's custom
|
|
152
|
+
// gradient and overlay properties.
|
|
138
153
|
if ( style?.color?.gradient ) {
|
|
139
154
|
additionalAttributes.customGradient = style.color.gradient;
|
|
140
155
|
} else if ( style?.color?.background ) {
|
|
@@ -142,6 +157,13 @@ const transforms = {
|
|
|
142
157
|
style.color.background;
|
|
143
158
|
}
|
|
144
159
|
|
|
160
|
+
// Maintain custom text color support style.
|
|
161
|
+
if ( style?.color?.text ) {
|
|
162
|
+
additionalAttributes.style = {
|
|
163
|
+
color: { text: style.color.text },
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
|
|
145
167
|
const coverAttributes = {
|
|
146
168
|
align,
|
|
147
169
|
alt: mediaAlt,
|
|
@@ -152,64 +174,15 @@ const transforms = {
|
|
|
152
174
|
gradient,
|
|
153
175
|
id: mediaId,
|
|
154
176
|
overlayColor: backgroundColor,
|
|
177
|
+
textColor,
|
|
155
178
|
url: mediaUrl,
|
|
156
179
|
...additionalAttributes,
|
|
157
180
|
};
|
|
158
|
-
const customTextColor = style?.color?.text;
|
|
159
|
-
|
|
160
|
-
// Attempt to maintain any text color selection.
|
|
161
|
-
// Cover block's do not opt into color block support so we
|
|
162
|
-
// cannot directly copy the color attributes across.
|
|
163
|
-
if ( ! textColor && ! customTextColor ) {
|
|
164
|
-
return createBlock(
|
|
165
|
-
'core/cover',
|
|
166
|
-
coverAttributes,
|
|
167
|
-
innerBlocks
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
const coloredInnerBlocks = innerBlocks.map( ( innerBlock ) => {
|
|
172
|
-
const {
|
|
173
|
-
attributes: { style: innerStyle },
|
|
174
|
-
} = innerBlock;
|
|
175
|
-
|
|
176
|
-
// Only apply the media and text color if the inner block
|
|
177
|
-
// doesn't set its own color block support selection.
|
|
178
|
-
if (
|
|
179
|
-
innerBlock.attributes.textColor ||
|
|
180
|
-
innerStyle?.color?.text
|
|
181
|
-
) {
|
|
182
|
-
return innerBlock;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
const newAttributes = { textColor };
|
|
186
|
-
|
|
187
|
-
// Only add or extend inner block's style object if we have
|
|
188
|
-
// a custom text color from the media & text block.
|
|
189
|
-
if ( customTextColor ) {
|
|
190
|
-
newAttributes.style = {
|
|
191
|
-
...innerStyle,
|
|
192
|
-
color: {
|
|
193
|
-
...innerStyle?.color,
|
|
194
|
-
text: customTextColor,
|
|
195
|
-
},
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
return createBlock(
|
|
200
|
-
innerBlock.name,
|
|
201
|
-
{
|
|
202
|
-
...innerBlock.attributes,
|
|
203
|
-
...newAttributes,
|
|
204
|
-
},
|
|
205
|
-
innerBlock.innerBlocks
|
|
206
|
-
);
|
|
207
|
-
} );
|
|
208
181
|
|
|
209
182
|
return createBlock(
|
|
210
183
|
'core/cover',
|
|
211
184
|
coverAttributes,
|
|
212
|
-
|
|
185
|
+
innerBlocks
|
|
213
186
|
);
|
|
214
187
|
},
|
|
215
188
|
},
|
|
@@ -34,9 +34,27 @@ exports[`Missing block renders without crashing 1`] = `
|
|
|
34
34
|
onResponderTerminationRequest={[Function]}
|
|
35
35
|
onStartShouldSetResponder={[Function]}
|
|
36
36
|
>
|
|
37
|
-
Svg
|
|
37
|
+
<Svg
|
|
38
|
+
height={24}
|
|
39
|
+
label="Help icon"
|
|
40
|
+
style={{}}
|
|
41
|
+
viewBox="0 0 24 24"
|
|
42
|
+
width={24}
|
|
43
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
44
|
+
>
|
|
45
|
+
Path
|
|
46
|
+
</Svg>
|
|
38
47
|
</View>
|
|
39
|
-
Svg
|
|
48
|
+
<Svg
|
|
49
|
+
color="white"
|
|
50
|
+
height={24}
|
|
51
|
+
style={{}}
|
|
52
|
+
viewBox="0 0 24 24"
|
|
53
|
+
width={24}
|
|
54
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
55
|
+
>
|
|
56
|
+
Path
|
|
57
|
+
</Svg>
|
|
40
58
|
<Text>
|
|
41
59
|
missing/block/title
|
|
42
60
|
</Text>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`More block transforms to Columns block 1`] = `
|
|
4
|
+
"<!-- wp:columns -->
|
|
5
|
+
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
6
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:more -->
|
|
7
|
+
<!--more-->
|
|
8
|
+
<!-- /wp:more --></div>
|
|
9
|
+
<!-- /wp:column --></div>
|
|
10
|
+
<!-- /wp:columns -->"
|
|
11
|
+
`;
|
|
12
|
+
|
|
13
|
+
exports[`More block transforms to Group block 1`] = `
|
|
14
|
+
"<!-- wp:group {"layout":{"type":"constrained"}} -->
|
|
15
|
+
<div class="wp-block-group"><!-- wp:more -->
|
|
16
|
+
<!--more-->
|
|
17
|
+
<!-- /wp:more --></div>
|
|
18
|
+
<!-- /wp:group -->"
|
|
19
|
+
`;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
getEditorHtml,
|
|
6
|
+
initializeEditor,
|
|
7
|
+
setupCoreBlocks,
|
|
8
|
+
transformBlock,
|
|
9
|
+
getBlockTransformOptions,
|
|
10
|
+
} from 'test/helpers';
|
|
11
|
+
|
|
12
|
+
const block = 'More';
|
|
13
|
+
const initialHtml = `
|
|
14
|
+
<!-- wp:more -->
|
|
15
|
+
<!--more-->
|
|
16
|
+
<!-- /wp:more -->`;
|
|
17
|
+
|
|
18
|
+
const transformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
19
|
+
const blockTransforms = [ ...transformsWithInnerBlocks ];
|
|
20
|
+
|
|
21
|
+
setupCoreBlocks();
|
|
22
|
+
|
|
23
|
+
describe( `${ block } block transforms`, () => {
|
|
24
|
+
test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
|
|
25
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
26
|
+
const newBlock = await transformBlock( screen, block, blockTransform, {
|
|
27
|
+
hasInnerBlocks:
|
|
28
|
+
transformsWithInnerBlocks.includes( blockTransform ),
|
|
29
|
+
} );
|
|
30
|
+
expect( newBlock ).toBeVisible();
|
|
31
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
32
|
+
} );
|
|
33
|
+
|
|
34
|
+
it( 'matches expected transformation options', async () => {
|
|
35
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
36
|
+
const transformOptions = await getBlockTransformOptions(
|
|
37
|
+
screen,
|
|
38
|
+
block
|
|
39
|
+
);
|
|
40
|
+
expect( transformOptions ).toHaveLength( blockTransforms.length );
|
|
41
|
+
} );
|
|
42
|
+
} );
|