@@ -2,16 +2,44 @@ export default function decorate(block) {
22 const cols = [ ...block . firstElementChild . children ] ;
33 block . classList . add ( `columns-${ cols . length } -cols` ) ;
44
5- // setup image columns
65 [ ...block . children ] . forEach ( ( row ) => {
76 [ ...row . children ] . forEach ( ( col ) => {
8- const pic = col . querySelector ( 'picture' ) ;
9- if ( pic ) {
10- const picWrapper = pic . closest ( 'div' ) ;
11- if ( picWrapper && picWrapper . children . length === 1 ) {
12- // picture is only content in column
13- picWrapper . classList . add ( 'columns-img-col' ) ;
7+ let isMultiCol = false ;
8+ const children = [ ...col . children ] ;
9+
10+ children . forEach ( ( child ) => {
11+ const hasImg = child . querySelector ( 'img' ) ;
12+ // Clean slate (optional but recommended)
13+ col . classList . remove (
14+ 'columns-img-col' ,
15+ 'columns-reg-col' ,
16+ 'columns-multi-col' ,
17+ ) ;
18+
19+ if ( hasImg && children . length > 1 ) {
20+ col . classList . add ( 'columns-multi-col' ) ;
21+ isMultiCol = true ;
22+ } else if ( hasImg ) {
23+ col . classList . add ( 'columns-img-col' ) ;
24+ } else {
25+ col . classList . add ( 'columns-reg-col' ) ;
1426 }
27+ } ) ;
28+
29+ if ( isMultiCol ) {
30+ col . classList . remove ( 'columns-img-col' , 'columns-reg-col' ) ;
31+ col . classList . add ( 'columns-multi-col' ) ;
32+
33+ const div = document . createElement ( 'div' ) ;
34+ div . className = 'content-wrapper' ;
35+
36+ children . forEach ( ( child ) => {
37+ // console.log("child: ", child);
38+ if ( ! child . querySelector ( 'img' ) ) {
39+ div . appendChild ( child ) ;
40+ }
41+ } ) ;
42+ col . appendChild ( div ) ;
1543 }
1644 } ) ;
1745 } ) ;
0 commit comments