| 1 |
/** |
| 2 |
* Set inline CSS class. |
| 3 |
* |
| 4 |
* @param {Object} props - The block object. |
| 5 |
* @return {Array} The inline CSS class. |
| 6 |
*/ |
| 7 |
|
| 8 |
import parseSVG from './parseIcon'; |
| 9 |
function renderSVG( svg, setAttributes = false ) { |
| 10 |
svg = parseSVG( svg ); |
| 11 |
let fontAwesome; |
| 12 |
// Load Polyfiller Array if needed. |
| 13 |
if ( 0 !== uagb_blocks_info.font_awesome_5_polyfill.length ) { |
| 14 |
fontAwesome = uagb_blocks_info.uagb_svg_icons[ svg ]; |
| 15 |
if ( ! fontAwesome ) { |
| 16 |
fontAwesome = uagb_blocks_info.uagb_svg_icons[ uagb_blocks_info.font_awesome_5_polyfill?.[ svg ] ]; |
| 17 |
} |
| 18 |
} |
| 19 |
|
| 20 |
if ( ! fontAwesome ) { |
| 21 |
return null; |
| 22 |
} |
| 23 |
|
| 24 |
const fontAwesomeSvg = fontAwesome.svg?.brands ? fontAwesome.svg.brands : fontAwesome.svg.solid; |
| 25 |
|
| 26 |
const viewBox = `0 0 ${fontAwesomeSvg.width} ${fontAwesomeSvg.height}`; |
| 27 |
const path = fontAwesomeSvg.path; |
| 28 |
|
| 29 |
let align = null; |
| 30 |
|
| 31 |
switch ( svg ) { |
| 32 |
case 'align-center': |
| 33 |
align = { fillRule:'evenodd', clipRule:'evenodd', d : 'M4 2H14V0H4V2ZM0 7H18V5H0V7ZM4 12H14V10H4V12Z' }; |
| 34 |
break; |
| 35 |
case 'align-left': |
| 36 |
align = { fillRule:'evenodd', clipRule:'evenodd', d : 'M10 2H0V0H10V2ZM18 7H0V5H18V7ZM10 12H0V10H10V12Z' }; |
| 37 |
break; |
| 38 |
case 'align-right': |
| 39 |
align = { fillRule:'evenodd', clipRule:'evenodd', d : 'M8 2H18V0H8V2ZM0 7H18V5H0V7ZM8 12H18V10H8V12Z' }; |
| 40 |
break; |
| 41 |
case 'align-justify': |
| 42 |
align = { d : 'M0 0H18V2H0V0ZM0 5.00001H18V7.00001H0V5.00001ZM0 10H18V12H0V10Z' }; |
| 43 |
break; |
| 44 |
} |
| 45 |
|
| 46 |
if ( align ) { |
| 47 |
return <svg width="18" height="12" viewBox="0 0 18 12" xmlns="http://www.w3.org/2000/svg"> |
| 48 |
<path { ...align } /> |
| 49 |
</svg> |
| 50 |
} |
| 51 |
|
| 52 |
return ! setAttributes || 'not_set' === setAttributes ? ( |
| 53 |
<svg xmlns="https://www.w3.org/2000/svg" viewBox={ viewBox }> |
| 54 |
<path d={ path }></path> |
| 55 |
</svg> |
| 56 |
) : ( |
| 57 |
<svg width="20" height="20" xmlns="https://www.w3.org/2000/svg" viewBox={ viewBox }> |
| 58 |
<path d={ path }></path> |
| 59 |
</svg> |
| 60 |
); |
| 61 |
} |
| 62 |
|
| 63 |
export default renderSVG; |
| 64 |
|