File: //home/vitanhod/barnabites.es/wp-content/themes/rishi/customizer/classes/Helpers/Basic.php
<?php
/**
* Basic Helper Class.
*/
namespace Rishi\Customizer\Helpers;
class Basic {
public static function spacing_value( $args = array() ) {
return \wp_parse_args(
$args,
array(
'top' => '',
'bottom' => '',
'left' => '',
'right' => '',
'unit' => 'px',
'linked' => true,
)
);
}
public static function get_units( $overrides = array() ) {
$units = array(
array( 'unit' => 'px', 'min' => 0, 'max' => 1200 ),
array( 'unit' => 'em', 'min' => 0, 'max' => 100 ),
array( 'unit' => '%', 'min' => 0, 'max' => 100 ),
array( 'unit' => 'vw', 'min' => 0, 'max' => 100 ),
array( 'unit' => 'vh', 'min' => 0, 'max' => 100 ),
array( 'unit' => 'pt', 'min' => 0, 'max' => 1200 ),
array( 'unit' => 'rem', 'min' => 0, 'max' => 100 )
);
foreach ( $overrides as $single_override ) {
foreach ( $units as $key => $single_unit ) {
if ( $single_override['unit'] === $single_unit['unit'] ) {
$units[ $key ] = $single_override;
}
}
}
return $units;
}
public static function get_margin_units( $overrides = array() ) {
$units = array(
array( 'unit' => 'px', 'min' => -200, 'max' => 200 ),
array( 'unit' => 'em', 'min' => -13, 'max' => 13 ),
array( 'unit' => '%', 'min' => 0, 'max' => 100 ),
array( 'unit' => 'rem', 'min' => -13, 'max' => 13 )
);
foreach ( $overrides as $single_override ) {
foreach ( $units as $key => $single_unit ) {
if ( $single_override['unit'] === $single_unit['unit'] ) {
$units[ $key ] = $single_override;
}
}
}
return $units;
}
public static function get_basic_units( $overrides = array() ) {
$units = array(
array( 'unit' => 'px', 'min' => 0, 'max' => 1200 ),
array( 'unit' => 'em', 'min' => 0, 'max' => 100 ),
array( 'unit' => '%', 'min' => 0, 'max' => 100 ),
array( 'unit' => 'rem', 'min' => 0, 'max' => 100 )
);
foreach ( $overrides as $single_override ) {
foreach ( $units as $key => $single_unit ) {
if ( $single_override['unit'] === $single_unit['unit'] ) {
$units[ $key ] = $single_override;
}
}
}
return $units;
}
public static function ordered_keys( $choices, $args = [] ) {
if ( isset( $choices[0] ) ) {
return $choices;
}
$args = wp_parse_args(
$args,
[
'additional' => []
]
);
$result = [];
foreach ( $choices as $key => $val ) {
$result[] = array_merge( [
'key' => $key,
'value' => $val,
], $args['additional'] );
}
return $result;
}
/**
* Retrieve SVG markup on the basis of $path provided
* Note to code reviewers: It contains inline SVG, which is absolutely safe and the returned value doesn't need to be escaped.
*
* @param string $path
* @return string
*/
public static function get_svg_by_name( $path ) {
$svgs = [
// trigger icons
'trigger-1' => '<svg width="19" height="16" viewBox="0 0 19 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.6717 8.91014H1.29018C0.778257 8.91014 0.412598 8.47135 0.412598 8.03256C0.412598 7.52064 0.851388 7.15498 1.29018 7.15498H17.7448C18.2567 7.15498 18.6224 7.59377 18.6224 8.03256C18.6224 8.54449 18.1836 8.91014 17.6717 8.91014ZM18.6224 14.6144C18.6224 14.1025 18.1836 13.7368 17.7448 13.7368H1.29018C0.778257 13.7368 0.412598 14.1756 0.412598 14.6144C0.412598 15.1263 0.851388 15.492 1.29018 15.492H17.7448C18.1836 15.5651 18.6224 15.1263 18.6224 14.6144ZM18.6224 1.45071C18.6224 0.93879 18.1836 0.5 17.7448 0.5H1.29018C0.778257 0.5 0.412598 0.938789 0.412598 1.37758C0.412598 1.8895 0.851388 2.25516 1.29018 2.25516H17.7448C18.1836 2.32829 18.6224 1.96263 18.6224 1.45071Z" fill="#42474B"/></svg>
',
'trigger-2' => '<svg width="21" height="16" viewBox="0 0 21 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.39755 6.99353L19.7192 6.99353C20.2917 6.99353 20.7007 7.48429 20.7007 7.97505C20.7007 8.5476 20.2099 8.95657 19.7192 8.95657L1.31576 8.95657C0.743212 8.95657 0.334246 8.46581 0.334246 7.97505C0.334246 7.4025 0.825003 6.99353 1.39755 6.99353ZM5.40541 1.43161C5.40541 2.00417 5.89616 2.49492 6.38692 2.49492L19.7192 2.49492C20.2917 2.49492 20.7007 2.00416 20.7007 1.51341C20.7007 0.940856 20.2099 0.531894 19.7192 0.531894L6.46871 0.531894C5.89616 0.368308 5.40541 0.859064 5.40541 1.43161ZM10.5584 14.5185C10.5584 15.091 11.0491 15.5 11.5399 15.5L19.7192 15.5C20.2917 15.5 20.7007 15.0092 20.7007 14.5185C20.7007 13.9459 20.2099 13.537 19.7192 13.537L11.5399 13.537C11.0491 13.537 10.5584 13.9459 10.5584 14.5185Z" fill="#42474B"/></svg>
',
'trigger-3' => '<svg width="25" height="16" viewBox="0 0 25 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M19.4865 2.5C20.1767 2.5 20.7343 2.05319 20.7343 1.5C20.7343 0.946809 20.1767 0.5 19.4865 0.5H5.49534C4.80508 0.5 4.24756 0.946809 4.24756 1.5C4.24756 2.05319 4.80508 2.5 5.49534 2.5H19.4865Z" fill="#42474B"/><path d="M23.2295 6.76538H1.75169C1.06143 6.76538 0.503906 7.21219 0.503906 7.76538C0.503906 8.31857 1.06143 8.76538 1.75169 8.76538H23.2826C23.9729 8.76538 24.5304 8.31857 24.5304 7.76538C24.5304 7.21219 23.9729 6.76538 23.2295 6.76538Z" fill="#42474B"/><path d="M19.4865 13.0044H5.49534C4.80508 13.0044 4.24756 13.4512 4.24756 14.0044C4.24756 14.5576 4.80508 15.0044 5.49534 15.0044H19.5396C20.2298 15.0044 20.7873 14.5576 20.7873 14.0044C20.7873 13.4512 20.2298 13.0044 19.4865 13.0044Z" fill="#42474B"/></svg>
',
'trigger-4' => '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="1.67314" cy="2.17412" r="1.67412" fill="#42474B"/><circle cx="7.51738" cy="2.17412" r="1.67412" fill="#42474B"/><circle cx="13.3616" cy="2.17412" r="1.67412" fill="#42474B"/><circle cx="1.67314" cy="8.01836" r="1.67412" fill="#42474B"/><circle cx="7.51738" cy="8.01836" r="1.67412" fill="#42474B"/><circle cx="13.3616" cy="8.01836" r="1.67412" fill="#42474B"/><circle cx="1.67314" cy="13.8626" r="1.67412" fill="#42474B"/><circle cx="7.51738" cy="13.8626" r="1.67412" fill="#42474B"/><circle cx="13.3616" cy="13.8626" r="1.67412" fill="#42474B"/></svg>
',
// Scroll to Top icons
'top-1' => '<svg width="17" height="20" viewBox="0 0 17 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.18457 6.2L8.5179 1.13333M8.5179 1.13333L14.8512 6.2M8.5179 1.13333V18.8667" stroke="currentColor" stroke-width="2" strokeLinecap="round" strokeLinejoin="round"/></svg>',
'top-2' => '<svg width="13" height="20" viewBox="0 0 13 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_510_104694)">
<path d="M2.56487 10.7143L6.85059 6.42857M6.85059 6.42857L11.1363 10.7143M6.85059 6.42857V19.2857M1.85059 0.714279H11.8506" stroke="currentColor" stroke-width="2" strokeLinecap="round" strokeLinejoin="round"/>
</g>
<defs>
<clipPath id="clip0_510_104694">
<rect width="12" height="20" fill="white" transform="translate(0.850586)"/>
</clipPath>
</defs>
</svg>',
'top-3' => '<svg width="23" height="18" viewBox="0 0 23 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_510_104697)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.2096 0.39535C10.2842 0.320517 10.3729 0.261144 10.4705 0.220634C10.5681 0.180124 10.6728 0.159271 10.7785 0.159271C10.8842 0.159271 10.9889 0.180124 11.0865 0.220634C11.1841 0.261144 11.2728 0.320517 11.3474 0.39535L20.9903 10.0382C21.1412 10.1891 21.2259 10.3937 21.2259 10.6071C21.2259 10.8205 21.1412 11.0252 20.9903 11.1761C20.8394 11.327 20.6347 11.4117 20.4214 11.4117C20.208 11.4117 20.0033 11.327 19.8524 11.1761L10.7785 2.10053L1.70457 11.1761C1.55368 11.327 1.34903 11.4117 1.13564 11.4117C0.922252 11.4117 0.717602 11.327 0.566713 11.1761C0.415823 11.0252 0.331055 10.8205 0.331055 10.6071C0.331055 10.3937 0.415823 10.1891 0.566713 10.0382L10.2096 0.39535Z" fill="currentColor"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.2096 6.82392C10.2842 6.74909 10.3729 6.68972 10.4705 6.64921C10.5681 6.6087 10.6728 6.58784 10.7785 6.58784C10.8842 6.58784 10.9889 6.6087 11.0865 6.64921C11.1841 6.68972 11.2728 6.74909 11.3474 6.82392L20.9903 16.4668C21.1412 16.6177 21.2259 16.8223 21.2259 17.0357C21.2259 17.2491 21.1412 17.4537 20.9903 17.6046C20.8394 17.7555 20.6347 17.8403 20.4214 17.8403C20.208 17.8403 20.0033 17.7555 19.8524 17.6046L10.7785 8.5291L1.70457 17.6046C1.55368 17.7555 1.34903 17.8403 1.13564 17.8403C0.922252 17.8403 0.717602 17.7555 0.566713 17.6046C0.415823 17.4537 0.331055 17.2491 0.331055 17.0357C0.331055 16.8223 0.415823 16.6177 0.566713 16.4668L10.2096 6.82392Z" fill="currentColor"/>
</g>
<defs>
<clipPath id="clip0_510_104697">
<rect width="21.8571" height="18" fill="white" transform="translate(0.255859)"/>
</clipPath>
</defs>
</svg>',
'top-4' => '<svg width="18" height="16" viewBox="0 0 18 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_510_104702)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.4634 1.84316C7.56238 1.67074 7.7051 1.52749 7.87715 1.42788C8.0492 1.32826 8.24449 1.2758 8.4433 1.2758C8.64211 1.2758 8.8374 1.32826 9.00945 1.42788C9.1815 1.52749 9.32422 1.67074 9.4232 1.84316L16.2795 13.509C16.7365 14.2869 16.1875 15.2758 15.2996 15.2758H1.58599C0.697082 15.2758 0.149138 14.2859 0.606091 13.509L7.4634 1.84316Z" fill="currentColor"/>
</g>
<defs>
<clipPath id="clip0_510_104702">
<rect width="17" height="15" fill="white" transform="translate(0.0175781 0.5)"/>
</clipPath>
</defs>
</svg>',
// Category Single Divider Icons
'dot' => '<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10"><circle id="Ellipse_1258" data-name="Ellipse 1258" cx="5" cy="5" r="5"/></svg>',
'normal-slash' => '<svg xmlns="http://www.w3.org/2000/svg" width="11" height="2" viewBox="0 0 11 2"><rect id="Rectangle_1803" data-name="Rectangle 1803" width="11" height="2"/></svg>',
'forward-slash' => '<svg xmlns="http://www.w3.org/2000/svg" width="2" height="17" viewBox="0 0 2 17"><rect id="Rectangle_1804" data-name="Rectangle 1804" width="17" height="2" transform="translate(0 17) rotate(-90)" /></svg>',
'back-slash' => '<svg xmlns="http://www.w3.org/2000/svg" width="6.332" height="16.938" viewBox="0 0 6.332 16.938"><rect id="Rectangle_1805" data-name="Rectangle 1805" width="17" height="2" transform="matrix(0.259, -0.966, 0.966, 0.259, 0, 16.421)" /></svg>',
// 2 columns layout
'1-1' => '<svg width="51" height="26" viewBox="0 0 51 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<g opacity="0.2" clip-path="url(#clip0_651_3644)">
<path d="M48.6177 0H2.4177C1.4177 0 0.5177 0.9 0.5177 2V24C0.5177 25.1 1.4177 26 2.4177 26H48.6177C49.7177 26 50.5177 25.1 50.5177 24V2C50.5177 0.9 49.6177 0 48.6177 0ZM48.6177 24H2.4177V2H48.6177V24ZM24.5177 2H26.5177V24H24.5177V2Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_3644">
<rect width="50" height="26" fill="white" transform="translate(0.5177)"/>
</clipPath>
</defs>
</svg>',
'2-1' => '<svg width="51" height="26" viewBox="0 0 51 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_3646)">
<path opacity="0.2" d="M48.6177 0H2.4177C1.4177 0 0.5177 0.9 0.5177 2V24C0.5177 25.1 1.4177 26 2.4177 26H48.6177C49.7177 26 50.5177 25.1 50.5177 24V2C50.5177 0.9 49.6177 0 48.6177 0ZM48.6177 24H2.4177V2H48.6177V24ZM32.5177 2H34.5177V24H32.5177V2Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_3646">
<rect width="50" height="26" fill="white" transform="translate(0.5177)"/>
</clipPath>
</defs>
</svg>',
'1-2' => '<svg width="51" height="26" viewBox="0 0 51 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_3648)">
<path opacity="0.2" d="M48.6177 0H2.4177C1.4177 0 0.5177 0.9 0.5177 2V24C0.5177 25.1 1.4177 26 2.4177 26H48.6177C49.7177 26 50.5177 25.1 50.5177 24V2C50.5177 0.9 49.6177 0 48.6177 0ZM48.6177 24H2.4177V2H48.6177V24ZM16.5177 2H18.5177V24H16.5177V2Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_3648">
<rect width="50" height="26" fill="white" transform="translate(0.5177)"/>
</clipPath>
</defs>
</svg>',
'3-1' => '<svg width="51" height="26" viewBox="0 0 51 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_3653)">
<path opacity="0.2" d="M48.6177 0H2.4177C1.4177 0 0.5177 0.9 0.5177 2V24C0.5177 25.1 1.4177 26 2.4177 26H48.6177C49.7177 26 50.5177 25.1 50.5177 24V2C50.5177 0.9 49.6177 0 48.6177 0ZM48.6177 24H2.4177V2H48.6177V24ZM34.5177 2H36.5177V24H34.5177V2Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_3653">
<rect width="50" height="26" fill="white" transform="translate(0.5177)"/>
</clipPath>
</defs>
</svg>',
'1-3' => '<svg width="51" height="26" viewBox="0 0 51 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_3655)">
<path opacity="0.2" d="M48.6177 0H2.4177C1.4177 0 0.5177 0.9 0.5177 2V24C0.5177 25.1 1.4177 26 2.4177 26H48.6177C49.7177 26 50.5177 25.1 50.5177 24V2C50.5177 0.9 49.6177 0 48.6177 0ZM48.6177 24H2.4177V2H48.6177V24ZM14.5177 2H16.5177V24H14.5177V2Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_3655">
<rect width="50" height="26" fill="white" transform="translate(0.5177)"/>
</clipPath>
</defs>
</svg>',
// 3 columns layout
'1-1-1' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_3734)">
<path opacity="0.2" d="M57.72 0H2.28C1.08 0 0 1.08 0 2.4V28.8C0 30.12 1.08 31.2 2.28 31.2H57.72C59.04 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0ZM57.72 28.8H2.28V2.4H57.72V28.8ZM38.4 2.4H40.8V28.8H38.4V2.4ZM19.2 2.4H21.6V28.8H19.2V2.4Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_3734">
<rect width="60" height="31.2" fill="white"/>
</clipPath>
</defs>
</svg>',
'1-2-1' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_3736)">
<path opacity="0.2" d="M57.72 0H2.28C1.08 0 0 1.08 0 2.4V28.8C0 30.12 1.08 31.2 2.28 31.2H57.72C59.04 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0ZM57.72 28.8H2.28V2.4H57.72V28.8ZM13.2 2.4H15.6V28.8H13.2V2.4ZM44.4 2.4H46.8V28.8H44.4V2.4Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_3736">
<rect width="60" height="31.2" fill="white"/>
</clipPath>
</defs>
</svg>',
'2-1-1' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_3741)">
<path opacity="0.2" d="M57.72 0H2.28C1.08 0 0 1.08 0 2.4V28.8C0 30.12 1.08 31.2 2.28 31.2H57.72C59.04 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0ZM57.72 28.8H2.28V2.4H57.72V28.8ZM43.2 2.4H45.6V28.8H43.2V2.4ZM28.8 2.4H31.2V28.8H28.8V2.4Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_3741">
<rect width="60" height="31.2" fill="white"/>
</clipPath>
</defs>
</svg>',
'1-1-2' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_3743)">
<path opacity="0.2" d="M2.28 0H57.72C58.92 0 60 1.08 60 2.4V28.8C60 30.12 58.92 31.2 57.72 31.2H2.28C0.959999 31.2 -3.8147e-06 30.12 -3.8147e-06 28.8V2.4C-3.8147e-06 1.08 1.08 0 2.28 0ZM2.28 28.8H57.72V2.4H2.28V28.8ZM16.8 2.4H14.4V28.8H16.8V2.4ZM31.2 2.4H28.8V28.8H31.2V2.4Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_3743">
<rect width="60" height="31.2" fill="white" transform="matrix(-1 0 0 1 60 0)"/>
</clipPath>
</defs>
</svg>',
// 4 columns layout
'1-1-1-1' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_4976)">
<path opacity="0.2" d="M57.72 0H2.28C1.08 0 0 1.08 0 2.4V28.8C0 30.12 1.08 31.2 2.28 31.2H57.72C59.04 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0ZM57.72 28.8H2.28V2.4H57.72V28.8ZM14.4 2.4H16.8V28.8H14.4V2.4ZM28.8 2.4H31.2V28.8H28.8V2.4ZM43.2 2.4H45.6V28.8H43.2V2.4Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_4976">
<rect width="60" height="31.2" fill="white"/>
</clipPath>
</defs>
</svg>',
'2-1-1-1' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_4983)">
<path opacity="0.2" d="M57.72 0H2.28C1.08 0 0 1.08 0 2.4V28.8C0 30.12 1.08 31.2 2.28 31.2H57.72C59.04 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0ZM57.72 28.8H2.28V2.4H57.72V28.8ZM21.6 2.4H24V28.8H21.6V2.4ZM33.6 2.4H36V28.8H33.6V2.4ZM45.6 2.4H48V28.8H45.6V2.4Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_4983">
<rect width="60" height="31.2" fill="white"/>
</clipPath>
</defs>
</svg>',
'1-1-1-2' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_4985)">
<path opacity="0.2" d="M2.28 31.2H57.72C59.04 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0H2.28C1.08 0 0 1.08 0 2.4V28.8C0 30.12 1.08 31.2 2.28 31.2ZM2.28 2.4H57.72V28.8H2.28V2.4ZM13.2 28.8H10.8V2.4H13.2V28.8ZM24 28.8H21.6V2.4H24V28.8ZM36 28.8H33.6V2.4H36V28.8Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_4985">
<rect width="60" height="31.2" fill="white"/>
</clipPath>
</defs>
</svg>',
'1-2-2-1' => '<svg width="50" height="26" viewBox="0 0 50 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_4978)">
<path opacity="0.2" d="M48.1 0H1.9C0.9 0 0 0.9 0 2V24C0 25.1 0.9 26 1.9 26H48.1C49.2 26 50 25.1 50 24V2C50 0.9 49.1 0 48.1 0ZM48.1 24H1.9V2H48.1V24ZM7.9 2H9.9V24H7.9V2ZM24 2H26V24H24V2ZM40.1 2H42.1V24H40.1V2Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_4978">
<rect width="50" height="26" fill="white"/>
</clipPath>
</defs>
</svg>',
// 5 columns layout
'1-1-1-1-1' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_5422)">
<path opacity="0.2" d="M57.72 0H2.28C1.08 0 0 1.08 0 2.4V28.8C0 30.12 1.08 31.2 2.28 31.2H57.72C59.04 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0ZM57.72 28.8H2.28V2.4H57.72V28.8ZM23.04 2.4H25.44V28.8H23.04V2.4ZM11.52 2.4H13.92V28.8H11.52V2.4ZM46.2 2.4H48.6V28.8H46.2V2.4ZM34.68 2.4H37.08V28.8H34.68V2.4Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_5422">
<rect width="60" height="32" fill="white"/>
</clipPath>
</defs>
</svg>',
'2-1-1-1-1' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_5424)">
<path opacity="0.2" d="M57.72 0H2.28C1.08 0 0 1.08 0 2.4V28.8C0 30.12 1.08 31.2 2.28 31.2H57.72C59.04 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0ZM57.72 28.8H2.28V2.4H57.72V28.8ZM27.84 2.4H30.24V28.8H27.84V2.4ZM17.52 2.4H19.92V28.8H17.52V2.4ZM48.6 2.4H51V28.8H48.6V2.4ZM38.28 2.4H40.68V28.8H38.28V2.4Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_5424">
<rect width="60" height="32" fill="white"/>
</clipPath>
</defs>
</svg>',
'1-1-1-1-2' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_5429)">
<path opacity="0.2" d="M0 2.4V28.8C0 30.12 0.96 31.2 2.28 31.2H57.72C58.92 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0H2.28C1.08 0 0 1.08 0 2.4ZM2.28 2.4H57.72V28.8H2.28V2.4ZM32.16 28.8H29.76V2.4H32.16V28.8ZM42.48 28.8H40.08V2.4H42.48V28.8ZM11.4 28.8H9V2.4H11.4V28.8ZM21.72 28.8H19.32V2.4H21.72V28.8Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_5429">
<rect width="60" height="32" fill="white"/>
</clipPath>
</defs>
</svg>',
'1-1-2-1-1' => '<svg width="60" height="32" viewBox="0 0 60 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_651_5431)">
<path opacity="0.2" d="M57.72 0H2.28C1.08 0 0 1.08 0 2.4V28.8C0 30.12 1.08 31.2 2.28 31.2H57.72C59.04 31.2 60 30.12 60 28.8V2.4C60 1.08 58.92 0 57.72 0ZM57.72 28.8H2.28V2.4H57.72V28.8ZM18.12 2.4H20.52V28.8H18.12V2.4ZM9 2.4H11.4V28.8H9V2.4ZM48.6 2.4H51V28.8H48.6V2.4ZM39.48 2.4H41.88V28.8H39.48V2.4Z" fill="#42474B"/>
</g>
<defs>
<clipPath id="clip0_651_5431">
<rect width="60" height="31.2" fill="white"/>
</clipPath>
</defs>
</svg>',
// 6 columns layout
'1-1-1-1-1-1' => '<svg width="50" height="26" viewBox="0 0 50 26"><path d="M48.1,0H1.9C0.9,0,0,0.9,0,2v22c0,1.1,0.9,2,1.9,2h46.2c1.1,0,1.9-0.9,1.9-2V2C50,0.9,49.1,0,48.1,0zM48.1,24H1.9V2h46.2V24zM16,2h2v22h-2V2zM8,2h2v22H8V2z M24,2h2v22h-2V2z M32,2h2v22h-2V2zM40,2h2v22h-2V2z" fill="#566779" opacity="0.7"/></svg>
',
'2-1-1-1-1-1' => '<svg width="50" height="26" viewBox="0 0 50 26"><path d="M48.1,0H1.9C0.9,0,0,0.9,0,2v22c0,1.1,0.9,2,1.9,2h46.2c1.1,0,1.9-0.9,1.9-2V2C50,0.9,49.1,0,48.1,0zM48.1,24H1.9V2h46.2V24zM20,2h2v22h-2V2zM13,2h2v22h-2V2z M27,2h2v22h-2V2z M34,2h2v22h-2V2zM41,2h2v22h-2V2z" fill="#566779" opacity="0.7"/></svg>
',
'1-1-1-1-1-2' => '<svg width="50" height="26" viewBox="0 0 50 26"><path d="M0,2l0,22c0,1.1,0.8,2,1.9,2h46.2c1,0,1.9-0.9,1.9-2V2c0-1.1-0.9-2-1.9-2L1.9,0C0.9,0,0,0.9,0,2zM1.9,2h46.2v22H1.9V2zM30,24h-2V2h2V24zM37,24h-2V2h2V24z M23,24h-2V2h2V24z M16,24h-2V2h2V24zM9,24H7V2h2V24z" fill="#566779" opacity="0.7"/></svg>
',
'1-1-2-2-1-1' => '<svg width="50" height="26" viewBox="0 0 50 26"><path d="M48.1,0H1.9C0.9,0,0,0.9,0,2v22c0,1.1,0.9,2,1.9,2h46.2c1.1,0,1.9-0.9,1.9-2V2C50,0.9,49.1,0,48.1,0zM48.1,24H1.9V2h46.2V24zM13.9,2h2v22h-2V2zM6.9,2h2v22h-2V2zM24,2h2v22h-2V2zM34,2h2v22h-2V2zM41,2h2v22h-2V2z" fill="#566779" opacity="0.7"/></svg>
',
'breadcrumb-sep-1' => '<svg width="12" height="20" viewBox="0 0 12 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_510_103040)">
<path d="M1.82516 0.234375L10.9918 9.40104L11.5643 10.0002L10.9918 10.5994L1.82516 19.766L0.62683 18.5677L9.19516 10.0002L0.625998 1.43271L1.82516 0.234375Z" fill="currentColor"/>
</g>
<defs>
<clipPath id="clip0_510_103040">
<rect width="11.6667" height="20" fill="white" transform="matrix(-1 0 0 1 11.851 0)"/>
</clipPath>
</defs>
</svg>',
'breadcrumb-sep-2' => '<svg width="15" height="17" viewBox="0 0 15 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.9503 7.02101C14.1228 7.11999 14.266 7.26271 14.3656 7.43476C14.4652 7.60682 14.5177 7.8021 14.5177 8.00091C14.5177 8.19972 14.4652 8.39501 14.3656 8.56706C14.266 8.73911 14.1228 8.88184 13.9503 8.98082L2.28452 15.8371C1.5066 16.2941 0.5177 15.7451 0.5177 14.8572L0.5177 1.14361C0.5177 0.254699 1.5076 -0.293246 2.28452 0.163708L13.9503 7.02101Z" fill="currentColor"/>
</svg>',
'breadcrumb-sep-3' => '<svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_510_103045)">
<path d="M18.3511 1.66699L1.68439 18.3337" stroke="currentColor" stroke-width="2" strokeLinecap="round" strokeLinejoin="round"/>
</g>
<defs>
<clipPath id="clip0_510_103045">
<rect width="20" height="20" fill="white" transform="translate(0.0177002)"/>
</clipPath>
</defs>
</svg>',
//WooCommerce Sale Badges
'circle' => '<svg width="45" height="45" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="28" cy="28" r="28" fill="#566779"/><path d="M16.6037 25.6719C16.5639 25.2997 16.3963 25.0099 16.1009 24.8026C15.8082 24.5952 15.4276 24.4915 14.9588 24.4915C14.6293 24.4915 14.3466 24.5412 14.1108 24.6406C13.875 24.7401 13.6946 24.875 13.5696 25.0455C13.4446 25.2159 13.3807 25.4105 13.3778 25.6293C13.3778 25.8111 13.419 25.9687 13.5014 26.1023C13.5866 26.2358 13.7017 26.3494 13.8466 26.4432C13.9915 26.5341 14.152 26.6108 14.3281 26.6733C14.5043 26.7358 14.6818 26.7884 14.8608 26.831L15.679 27.0355C16.0085 27.1122 16.3253 27.2159 16.6293 27.3466C16.9361 27.4773 17.2102 27.642 17.4517 27.8409C17.696 28.0398 17.8892 28.2798 18.0312 28.5611C18.1733 28.8423 18.2443 29.1719 18.2443 29.5497C18.2443 30.0611 18.1136 30.5114 17.8523 30.9006C17.5909 31.2869 17.2131 31.5895 16.7188 31.8082C16.2273 32.0241 15.6321 32.1321 14.9332 32.1321C14.2543 32.1321 13.6648 32.027 13.1648 31.8168C12.6676 31.6065 12.2784 31.2997 11.9972 30.8963C11.7188 30.4929 11.5682 30.0014 11.5455 29.4219H13.1009C13.1236 29.7259 13.2173 29.9787 13.3821 30.1804C13.5469 30.3821 13.7614 30.5327 14.0256 30.6321C14.2926 30.7315 14.5909 30.7812 14.9205 30.7812C15.2642 30.7812 15.5653 30.7301 15.8239 30.6278C16.0852 30.5227 16.2898 30.3778 16.4375 30.1932C16.5852 30.0057 16.6605 29.7869 16.6634 29.5369C16.6605 29.3097 16.5938 29.1222 16.4631 28.9744C16.3324 28.8239 16.1491 28.6989 15.9134 28.5994C15.6804 28.4972 15.4077 28.4062 15.0952 28.3267L14.1023 28.071C13.3835 27.8864 12.8153 27.6065 12.3977 27.2315C11.983 26.8537 11.7756 26.3523 11.7756 25.7273C11.7756 25.2131 11.9148 24.7628 12.1932 24.3764C12.4744 23.9901 12.8565 23.6903 13.3395 23.4773C13.8224 23.2614 14.3693 23.1534 14.9801 23.1534C15.5994 23.1534 16.142 23.2614 16.608 23.4773C17.0767 23.6903 17.4446 23.9872 17.7116 24.3679C17.9787 24.7457 18.1165 25.1804 18.125 25.6719H16.6037ZM21.5939 32H19.9064L22.9788 23.2727H24.9305L28.0072 32H26.3197L23.9888 25.0625H23.9206L21.5939 32ZM21.6493 28.5781H26.2515V29.848H21.6493V28.5781ZM30.1167 32V23.2727H31.6977V30.6747H35.5414V32H30.1167ZM37.8736 32V23.2727H43.5497V24.598H39.4546V26.9673H43.2557V28.2926H39.4546V30.6747H43.5838V32H37.8736Z" fill="white"/></svg>',
'square' => '<svg width="45" height="24" viewBox="0 0 58 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 2C0 0.89543 0.895431 0 2 0H56C57.1046 0 58 0.895431 58 2V22C58 23.1046 57.1046 24 56 24H2C0.895432 24 0 23.1046 0 22V2Z" fill="#566779"/><path d="M17.6037 9.67188C17.5639 9.29972 17.3963 9.00994 17.1009 8.80256C16.8082 8.59517 16.4276 8.49148 15.9588 8.49148C15.6293 8.49148 15.3466 8.54119 15.1108 8.64062C14.875 8.74006 14.6946 8.875 14.5696 9.04545C14.4446 9.21591 14.3807 9.41051 14.3778 9.62926C14.3778 9.81108 14.419 9.96875 14.5014 10.1023C14.5866 10.2358 14.7017 10.3494 14.8466 10.4432C14.9915 10.5341 15.152 10.6108 15.3281 10.6733C15.5043 10.7358 15.6818 10.7884 15.8608 10.831L16.679 11.0355C17.0085 11.1122 17.3253 11.2159 17.6293 11.3466C17.9361 11.4773 18.2102 11.642 18.4517 11.8409C18.696 12.0398 18.8892 12.2798 19.0312 12.5611C19.1733 12.8423 19.2443 13.1719 19.2443 13.5497C19.2443 14.0611 19.1136 14.5114 18.8523 14.9006C18.5909 15.2869 18.2131 15.5895 17.7188 15.8082C17.2273 16.0241 16.6321 16.1321 15.9332 16.1321C15.2543 16.1321 14.6648 16.027 14.1648 15.8168C13.6676 15.6065 13.2784 15.2997 12.9972 14.8963C12.7188 14.4929 12.5682 14.0014 12.5455 13.4219H14.1009C14.1236 13.7259 14.2173 13.9787 14.3821 14.1804C14.5469 14.3821 14.7614 14.5327 15.0256 14.6321C15.2926 14.7315 15.5909 14.7812 15.9205 14.7812C16.2642 14.7812 16.5653 14.7301 16.8239 14.6278C17.0852 14.5227 17.2898 14.3778 17.4375 14.1932C17.5852 14.0057 17.6605 13.7869 17.6634 13.5369C17.6605 13.3097 17.5938 13.1222 17.4631 12.9744C17.3324 12.8239 17.1491 12.6989 16.9134 12.5994C16.6804 12.4972 16.4077 12.4062 16.0952 12.3267L15.1023 12.071C14.3835 11.8864 13.8153 11.6065 13.3977 11.2315C12.983 10.8537 12.7756 10.3523 12.7756 9.72727C12.7756 9.21307 12.9148 8.76278 13.1932 8.37642C13.4744 7.99006 13.8565 7.69034 14.3395 7.47727C14.8224 7.26136 15.3693 7.15341 15.9801 7.15341C16.5994 7.15341 17.142 7.26136 17.608 7.47727C18.0767 7.69034 18.4446 7.98722 18.7116 8.3679C18.9787 8.74574 19.1165 9.1804 19.125 9.67188H17.6037ZM22.5939 16H20.9064L23.9788 7.27273H25.9305L29.0072 16H27.3197L24.9888 9.0625H24.9206L22.5939 16ZM22.6493 12.5781H27.2515V13.848H22.6493V12.5781ZM31.1167 16V7.27273H32.6977V14.6747H36.5414V16H31.1167ZM38.8736 16V7.27273H44.5497V8.59801H40.4546V10.9673H44.2557V12.2926H40.4546V14.6747H44.5838V16H38.8736Z" fill="white"/></svg>',
'oval' => '<svg width="45" height="24" viewBox="0 0 58 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 12C0 5.37258 5.37258 0 12 0H46C52.6274 0 58 5.37258 58 12C58 18.6274 52.6274 24 46 24H12C5.37258 24 0 18.6274 0 12Z" fill="#566779"/><path d="M17.6037 9.67188C17.5639 9.29972 17.3963 9.00994 17.1009 8.80256C16.8082 8.59517 16.4276 8.49148 15.9588 8.49148C15.6293 8.49148 15.3466 8.54119 15.1108 8.64062C14.875 8.74006 14.6946 8.875 14.5696 9.04545C14.4446 9.21591 14.3807 9.41051 14.3778 9.62926C14.3778 9.81108 14.419 9.96875 14.5014 10.1023C14.5866 10.2358 14.7017 10.3494 14.8466 10.4432C14.9915 10.5341 15.152 10.6108 15.3281 10.6733C15.5043 10.7358 15.6818 10.7884 15.8608 10.831L16.679 11.0355C17.0085 11.1122 17.3253 11.2159 17.6293 11.3466C17.9361 11.4773 18.2102 11.642 18.4517 11.8409C18.696 12.0398 18.8892 12.2798 19.0312 12.5611C19.1733 12.8423 19.2443 13.1719 19.2443 13.5497C19.2443 14.0611 19.1136 14.5114 18.8523 14.9006C18.5909 15.2869 18.2131 15.5895 17.7188 15.8082C17.2273 16.0241 16.6321 16.1321 15.9332 16.1321C15.2543 16.1321 14.6648 16.027 14.1648 15.8168C13.6676 15.6065 13.2784 15.2997 12.9972 14.8963C12.7188 14.4929 12.5682 14.0014 12.5455 13.4219H14.1009C14.1236 13.7259 14.2173 13.9787 14.3821 14.1804C14.5469 14.3821 14.7614 14.5327 15.0256 14.6321C15.2926 14.7315 15.5909 14.7812 15.9205 14.7812C16.2642 14.7812 16.5653 14.7301 16.8239 14.6278C17.0852 14.5227 17.2898 14.3778 17.4375 14.1932C17.5852 14.0057 17.6605 13.7869 17.6634 13.5369C17.6605 13.3097 17.5938 13.1222 17.4631 12.9744C17.3324 12.8239 17.1491 12.6989 16.9134 12.5994C16.6804 12.4972 16.4077 12.4062 16.0952 12.3267L15.1023 12.071C14.3835 11.8864 13.8153 11.6065 13.3977 11.2315C12.983 10.8537 12.7756 10.3523 12.7756 9.72727C12.7756 9.21307 12.9148 8.76278 13.1932 8.37642C13.4744 7.99006 13.8565 7.69034 14.3395 7.47727C14.8224 7.26136 15.3693 7.15341 15.9801 7.15341C16.5994 7.15341 17.142 7.26136 17.608 7.47727C18.0767 7.69034 18.4446 7.98722 18.7116 8.3679C18.9787 8.74574 19.1165 9.1804 19.125 9.67188H17.6037ZM22.5939 16H20.9064L23.9788 7.27273H25.9305L29.0072 16H27.3197L24.9888 9.0625H24.9206L22.5939 16ZM22.6493 12.5781H27.2515V13.848H22.6493V12.5781ZM31.1167 16V7.27273H32.6977V14.6747H36.5414V16H31.1167ZM38.8736 16V7.27273H44.5497V8.59801H40.4546V10.9673H44.2557V12.2926H40.4546V14.6747H44.5838V16H38.8736Z" fill="white"/></svg>',
'semi-oval' => '<svg width="45" height="24" viewBox="0 0 58 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H46C52.6274 0 58 5.37258 58 12C58 18.6274 52.6274 24 46 24H0V0Z" fill="#566779"/><path d="M17.6037 9.67188C17.5639 9.29972 17.3963 9.00994 17.1009 8.80256C16.8082 8.59517 16.4276 8.49148 15.9588 8.49148C15.6293 8.49148 15.3466 8.54119 15.1108 8.64062C14.875 8.74006 14.6946 8.875 14.5696 9.04545C14.4446 9.21591 14.3807 9.41051 14.3778 9.62926C14.3778 9.81108 14.419 9.96875 14.5014 10.1023C14.5866 10.2358 14.7017 10.3494 14.8466 10.4432C14.9915 10.5341 15.152 10.6108 15.3281 10.6733C15.5043 10.7358 15.6818 10.7884 15.8608 10.831L16.679 11.0355C17.0085 11.1122 17.3253 11.2159 17.6293 11.3466C17.9361 11.4773 18.2102 11.642 18.4517 11.8409C18.696 12.0398 18.8892 12.2798 19.0312 12.5611C19.1733 12.8423 19.2443 13.1719 19.2443 13.5497C19.2443 14.0611 19.1136 14.5114 18.8523 14.9006C18.5909 15.2869 18.2131 15.5895 17.7188 15.8082C17.2273 16.0241 16.6321 16.1321 15.9332 16.1321C15.2543 16.1321 14.6648 16.027 14.1648 15.8168C13.6676 15.6065 13.2784 15.2997 12.9972 14.8963C12.7188 14.4929 12.5682 14.0014 12.5455 13.4219H14.1009C14.1236 13.7259 14.2173 13.9787 14.3821 14.1804C14.5469 14.3821 14.7614 14.5327 15.0256 14.6321C15.2926 14.7315 15.5909 14.7812 15.9205 14.7812C16.2642 14.7812 16.5653 14.7301 16.8239 14.6278C17.0852 14.5227 17.2898 14.3778 17.4375 14.1932C17.5852 14.0057 17.6605 13.7869 17.6634 13.5369C17.6605 13.3097 17.5938 13.1222 17.4631 12.9744C17.3324 12.8239 17.1491 12.6989 16.9134 12.5994C16.6804 12.4972 16.4077 12.4062 16.0952 12.3267L15.1023 12.071C14.3835 11.8864 13.8153 11.6065 13.3977 11.2315C12.983 10.8537 12.7756 10.3523 12.7756 9.72727C12.7756 9.21307 12.9148 8.76278 13.1932 8.37642C13.4744 7.99006 13.8565 7.69034 14.3395 7.47727C14.8224 7.26136 15.3693 7.15341 15.9801 7.15341C16.5994 7.15341 17.142 7.26136 17.608 7.47727C18.0767 7.69034 18.4446 7.98722 18.7116 8.3679C18.9787 8.74574 19.1165 9.1804 19.125 9.67188H17.6037ZM22.5939 16H20.9064L23.9788 7.27273H25.9305L29.0072 16H27.3197L24.9888 9.0625H24.9206L22.5939 16ZM22.6493 12.5781H27.2515V13.848H22.6493V12.5781ZM31.1167 16V7.27273H32.6977V14.6747H36.5414V16H31.1167ZM38.8736 16V7.27273H44.5497V8.59801H40.4546V10.9673H44.2557V12.2926H40.4546V14.6747H44.5838V16H38.8736Z" fill="white"/></svg>',
//bookmark
'bookmark-1' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3 3C3 2.20435 3.31607 1.44129 3.87868 0.87868C4.44129 0.316071 5.20435 0 6 0L18 0C18.7956 0 19.5587 0.316071 20.1213 0.87868C20.6839 1.44129 21 2.20435 21 3V23.25C20.9999 23.3857 20.9631 23.5188 20.8933 23.6351C20.8236 23.7515 20.7236 23.8468 20.604 23.9108C20.4844 23.9748 20.3497 24.0052 20.2142 23.9988C20.0787 23.9923 19.9474 23.9492 19.8345 23.874L12 19.6515L4.1655 23.874C4.05256 23.9492 3.92135 23.9923 3.78584 23.9988C3.65033 24.0052 3.5156 23.9748 3.396 23.9108C3.2764 23.8468 3.17641 23.7515 3.10667 23.6351C3.03694 23.5188 3.00007 23.3857 3 23.25V3ZM6 1.5C5.60218 1.5 5.22064 1.65804 4.93934 1.93934C4.65804 2.22064 4.5 2.60218 4.5 3V21.849L11.5845 18.126C11.7076 18.0441 11.8521 18.0004 12 18.0004C12.1479 18.0004 12.2924 18.0441 12.4155 18.126L19.5 21.849V3C19.5 2.60218 19.342 2.22064 19.0607 1.93934C18.7794 1.65804 18.3978 1.5 18 1.5H6Z" fill="black"/>
</svg>',
'bookmark-2' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19 2.01001H6C4.794 2.01001 3 2.80901 3 5.01001V19.01C3 21.211 4.794 22.01 6 22.01H21V20.01H6.012C5.55 19.998 5 19.815 5 19.01C5 18.909 5.009 18.819 5.024 18.737C5.136 18.162 5.607 18.02 6.011 18.01H20C20.018 18.01 20.031 18.001 20.049 18H21V4.01001C21 2.90701 20.103 2.01001 19 2.01001ZM19 16.01H5V5.01001C5 4.20401 5.55 4.02201 6 4.01001H13V11.01L15 10.01L17 11.01V4.01001H19V16.01Z" fill="black"/>
</svg>',
'bookmark-3' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22.8 6.59995C22.8 8.03212 22.2311 9.40563 21.2184 10.4183C20.2057 11.431 18.8322 11.9999 17.4 11.9999C15.9679 11.9999 14.5944 11.431 13.5817 10.4183C12.569 9.40563 12 8.03212 12 6.59995C12 5.16778 12.569 3.79427 13.5817 2.78157C14.5944 1.76888 15.9679 1.19995 17.4 1.19995C18.8322 1.19995 20.2057 1.76888 21.2184 2.78157C22.2311 3.79427 22.8 5.16778 22.8 6.59995V6.59995ZM18 4.19995C18 4.04082 17.9368 3.88821 17.8243 3.77569C17.7118 3.66317 17.5592 3.59995 17.4 3.59995C17.2409 3.59995 17.0883 3.66317 16.9758 3.77569C16.8633 3.88821 16.8 4.04082 16.8 4.19995V5.99995H15C14.8409 5.99995 14.6883 6.06316 14.5758 6.17569C14.4633 6.28821 14.4 6.44082 14.4 6.59995C14.4 6.75908 14.4633 6.91169 14.5758 7.02421C14.6883 7.13674 14.8409 7.19995 15 7.19995H16.8V8.99995C16.8 9.15908 16.8633 9.31169 16.9758 9.42421C17.0883 9.53674 17.2409 9.59995 17.4 9.59995C17.5592 9.59995 17.7118 9.53674 17.8243 9.42421C17.9368 9.31169 18 9.15908 18 8.99995V7.19995H19.8C19.9592 7.19995 20.1118 7.13674 20.2243 7.02421C20.3368 6.91169 20.4 6.75908 20.4 6.59995C20.4 6.44082 20.3368 6.28821 20.2243 6.17569C20.1118 6.06316 19.9592 5.99995 19.8 5.99995H18V4.19995ZM18 19.8215V13.1735C18.4061 13.1368 18.8078 13.0625 19.2 12.9515V20.9999C19.2 21.1106 19.1693 21.219 19.1114 21.3133C19.0535 21.4076 18.9707 21.484 18.8721 21.5342C18.7735 21.5844 18.663 21.6063 18.5527 21.5976C18.4424 21.5888 18.3367 21.5498 18.2472 21.4847L12 16.9415L5.75285 21.4847C5.66337 21.5498 5.55765 21.5888 5.44737 21.5976C5.33709 21.6063 5.22655 21.5844 5.12796 21.5342C5.02936 21.484 4.94656 21.4076 4.88869 21.3133C4.83082 21.219 4.80014 21.1106 4.80005 20.9999V5.39995C4.80005 4.6043 5.11612 3.84124 5.67873 3.27863C6.24134 2.71602 7.0044 2.39995 7.80005 2.39995H12.3084C12.0028 2.77011 11.7385 3.17249 11.52 3.59995H7.80005C7.32266 3.59995 6.86482 3.78959 6.52726 4.12716C6.18969 4.46472 6.00005 4.92256 6.00005 5.39995V19.8215L11.6472 15.7151C11.7498 15.6406 11.8733 15.6005 12 15.6005C12.1268 15.6005 12.2503 15.6406 12.3528 15.7151L18 19.8215Z" fill="black"/>
</svg>',
//Guaranteed Section
'type-gf-1' => '<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21.2927 6C21.2927 6 21.7905 11 19.3017 15C16.6637 19.24 12.3333 22 12.3333 22C12.3333 22 8.04284 19.3041 5.36493 15C2.87625 11 3.37397 6 3.37397 6L12.3333 2L21.2927 6Z" stroke="" stroke-width="2" stroke-linejoin="round" fill="none"/><path d="M16.3333 9L11.3333 15L8.33334 12" stroke="" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill= "none"/></svg>',
'type-gf-2' => '<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.6667 1C13.6667 0.447715 13.219 0 12.6667 0C12.1144 0 11.6667 0.447715 11.6667 1V4H10.1667C8.97321 4 7.82862 4.47411 6.98471 5.31802C6.14079 6.16193 5.66669 7.30653 5.66669 8.5C5.66669 9.69347 6.14079 10.8381 6.98471 11.682C7.82862 12.5259 8.97321 13 10.1667 13H11.6667V18H6.66669C6.1144 18 5.66669 18.4477 5.66669 19C5.66669 19.5523 6.1144 20 6.66669 20H11.6667V23C11.6667 23.5523 12.1144 24 12.6667 24C13.219 24 13.6667 23.5523 13.6667 23V20H15.1667C16.3602 20 17.5048 19.5259 18.3487 18.682C19.1926 17.8381 19.6667 16.6935 19.6667 15.5C19.6667 14.3065 19.1926 13.1619 18.3487 12.318C17.5048 11.4741 16.3602 11 15.1667 11H13.6667V6H17.6667C18.219 6 18.6667 5.55228 18.6667 5C18.6667 4.44772 18.219 4 17.6667 4H13.6667V1ZM11.6667 6H10.1667C9.50365 6 8.86776 6.26339 8.39892 6.73223C7.93008 7.20107 7.66669 7.83696 7.66669 8.5C7.66669 9.16304 7.93008 9.79893 8.39892 10.2678C8.86776 10.7366 9.50365 11 10.1667 11H11.6667V6ZM13.6667 13V18H15.1667C15.8297 18 16.4656 17.7366 16.9345 17.2678C17.4033 16.7989 17.6667 16.163 17.6667 15.5C17.6667 14.837 17.4033 14.2011 16.9345 13.7322C16.4656 13.2634 15.8297 13 15.1667 13H13.6667Z" fill="" stroke="none"/></svg>',
'type-gf-3' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10" stroke="" stroke-width="2" fill="none"/><path d="M16.4723 15C15.3736 16.2275 13.777 17 12 17C10.223 17 8.62647 16.2275 7.52783 15" stroke="" stroke-width="2" stroke-linecap="round" fill="none"/><circle cx="8.5" cy="9.5" r="1.5" fill="" stroke="none"/><circle cx="15.5" cy="9.5" r="1.5" fill="" stroke="none"/></svg>',
'type-gf-4' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21.3 10.08C21.019 9.74265 20.6674 9.47108 20.27 9.28447C19.8726 9.09786 19.439 9.00075 19 9H14.44L15 7.57C15.2329 6.94388 15.3105 6.2706 15.2261 5.60792C15.1416 4.94524 14.8977 4.31293 14.5152 3.76523C14.1327 3.21753 13.623 2.7708 13.0299 2.46334C12.4369 2.15589 11.778 1.99689 11.11 2C10.9176 2.0004 10.7295 2.05627 10.5681 2.16092C10.4067 2.26557 10.2789 2.41455 10.2 2.59L7.35 9H5C4.20435 9 3.44129 9.31607 2.87868 9.87868C2.31607 10.4413 2 11.2043 2 12V19C2 19.7956 2.31607 20.5587 2.87868 21.1213C3.44129 21.6839 4.20435 22 5 22H17.73C18.4318 21.9998 19.1113 21.7535 19.6503 21.304C20.1893 20.8546 20.5537 20.2303 20.68 19.54L21.95 12.54C22.0286 12.1074 22.011 11.6628 21.8987 11.2377C21.7864 10.8126 21.582 10.4174 21.3 10.08ZM7 20H5C4.73478 20 4.48043 19.8946 4.29289 19.7071C4.10536 19.5196 4 19.2652 4 19V12C4 11.7348 4.10536 11.4804 4.29289 11.2929C4.48043 11.1054 4.73478 11 5 11H7V20ZM20 12.18L18.73 19.18C18.6874 19.413 18.5635 19.6232 18.3804 19.7734C18.1973 19.9236 17.9668 20.0039 17.73 20H9V10.21L11.72 4.09C12 4.17162 12.26 4.31041 12.4837 4.49758C12.7073 4.68476 12.8897 4.91627 13.0194 5.17749C13.1491 5.43872 13.2232 5.72399 13.2371 6.0153C13.2509 6.30661 13.2043 6.59763 13.1 6.87L12.57 8.3C12.4571 8.60225 12.4189 8.92735 12.4589 9.24753C12.4988 9.56771 12.6156 9.87348 12.7993 10.1387C12.983 10.404 13.2282 10.6209 13.5139 10.7708C13.7996 10.9208 14.1173 10.9994 14.44 11H19C19.1469 10.9998 19.2921 11.0319 19.4252 11.0941C19.5582 11.1563 19.676 11.2471 19.77 11.36C19.8663 11.4713 19.9369 11.6025 19.9767 11.7443C20.0164 11.886 20.0244 12.0348 20 12.18Z" fill="#566779" stroke="none"/></svg>',
'type-gf-5' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5 11V20.8007C5 20.9108 5.2022 21 5.45161 21H18.5484C18.7978 21 19 20.9108 19 20.8007V11" stroke="#566779" stroke-width="2" fill="none"/><path d="M10 21V15H14V21" stroke="#566779" stroke-width="2" stroke-linejoin="round" fill="none"/><path d="M18 3H6C6 3 4 6 3.5 7C3 8 3 8.3244 3 9C3 10.6569 4.34315 12 6 12C7.65685 12 9 10.6569 9 9C9 10.6569 10.3431 12 12 12C13.6569 12 15 10.6569 15 9C15 10.6569 16.3431 12 18 12C19.6569 12 21 10.6569 21 9C21 8.3244 21 8 20.5 7C20 6 18 3 18 3Z" stroke="#566779" stroke-width="2" stroke-linejoin="round" fill="none"/></svg>',
'type-gf-6' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 16C15.866 16 19 12.866 19 9C19 5.13401 15.866 2 12 2C8.13401 2 5 5.13401 5 9C5 12.866 8.13401 16 12 16Z" stroke="#566779" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M8 15V21.11C8 21.8373 8.56 22.1929 9.25334 21.8939L11.6356 20.8675C11.8311 20.7786 12.16 20.7786 12.3556 20.8675L14.7467 21.8939C15.4311 22.1849 16 21.8373 16 21.11V15" stroke="#566779" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>',
'type-gf-7' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="10" width="16" height="12" stroke="#566779" stroke-width="2" stroke-linejoin="round" fill="none"/><path d="M18 11V8C18 4.68629 15.3137 2 12 2C8.68629 2 6 4.68629 6 8V11" stroke="#566779" stroke-width="2" fill="none"/></svg>',
'type-gf-8' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21 10C21 17 12 23 12 23C12 23 3 17 3 10C3 7.61305 3.94821 5.32387 5.63604 3.63604C7.32387 1.94821 9.61305 1 12 1C14.3869 1 16.6761 1.94821 18.364 3.63604C20.0518 5.32387 21 7.61305 21 10Z" stroke="#566779" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M12 13C13.6569 13 15 11.6569 15 10C15 8.34315 13.6569 7 12 7C10.3431 7 9 8.34315 9 10C9 11.6569 10.3431 13 12 13Z" stroke="#566779" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>',
'type-gf-9' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 5H5" stroke="#566779" stroke-width="2" stroke-linecap="round" fill= "none"/><path d="M3 9L5 9" stroke="#566779" stroke-width="2" stroke-linecap="round" fill= "none"/><path d="M2 13L5 13" stroke="#566779" stroke-width="2" stroke-linecap="round" fill= "none"/><rect x="6" y="4" width="16" height="16" stroke="#566779" stroke-width="2" stroke-linejoin="round" fill= "none"/><rect x="10" y="12" width="8" height="4" stroke="#566779" stroke-width="2" stroke-linejoin="round" fill= "none"/><path d="M14 4V8" stroke="#566779" stroke-width="2" stroke-linecap="round" fill= "none"/></svg>',
'type-gf-10' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 5H15V15H2V5Z" stroke="#566779" stroke-width="2" stroke-linejoin="round" fill="none"/><path d="M15 8H19.9L22 11.5V15H15V8Z" stroke="#566779" stroke-width="2" stroke-linejoin="round" fill="none"/><circle cx="6" cy="17" r="2" stroke="#566779" stroke-width="2" fill="none"/><circle cx="18" cy="17" r="2" stroke="#566779" stroke-width="2" fill="none"/></svg>',
'type-gf-11' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20 6L9 17L4 12" stroke="#566779" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>',
'type-gf-12' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18 6L6 18M6 6L18 18" stroke="#566779" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>',
'type-gf-13' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="17" y="9" width="4" height="8" rx="2" stroke="#566779" stroke-width="2" fill="none"/><rect x="3" y="9" width="4" height="8" rx="2" stroke="#566779" stroke-width="2" fill="none"/><path d="M13 21H15C17.2091 21 19 19.2091 19 17" stroke="#566779" stroke-width="2" stroke-linecap="round" fill="none"/><path d="M19 9C18.5098 5.60771 15.5625 3 12 3C8.43745 3 5.49019 5.60771 5 9" stroke="#566779" stroke-width="2" fill="none"/></svg>',
'type-gf-14' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="6" width="20" height="12" fill="none" stroke="#566779" stroke-width="2" stroke-linejoin="round"/><line x1="3" y1="10" x2="21" y2="10" fill="none" stroke="#566779" stroke-width="2" stroke-linecap="round"/><line x1="5" y1="14" x2="7" y2="14" fill="none" stroke="#566779" stroke-width="2" stroke-linecap="round"/></svg>',
'type-gf-15' => '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20.9594 6C20.9594 6 21.4571 11 18.9684 15C16.3303 19.24 12 22 12 22C12 22 7.7095 19.3041 5.03159 15C2.54291 11 3.04063 6 3.04063 6L12 2L20.9594 6Z" stroke="#566779" stroke-width="2" stroke-linejoin="round" fill="none"/></svg>',
];
if ( ! isset( $svgs[ $path ] ) ) {
return '';
}
return $svgs[ $path ];
}
public static function get_image_url( $path ) {
return RISHI_CUSTOMIZER_BUILDER_DIR__URI . '/images/' . $path;
}
public static function uniqid( $slug = null ) {
if ( $slug ) {
return 'uid_' . md5( $slug );
}
return 'uid_' . md5( time() . '-' . uniqid( \wp_rand(), true ) . '-' . \wp_rand() );
}
/**
* Get html markup from included file
*
* @param string $template_path - Path to the directory inside the customizer
* @param array $args - Variables to be used in the included files
* @return void
*/
public static function get_template_for( $template_path, $args ) {
ob_start();
extract( $args );
include RISHI_CUSTOMIZER_BUILDER_DIR__ . $template_path;
return ob_get_clean();
}
public static function get_menu_list() {
$menus = array(
'rishi_customizer_locations' => __( 'Default', 'rishi' ),
);
$all_menus = get_terms( 'nav_menu', array( 'hide_empty' => true ) );
if ( is_array( $all_menus ) && count( $all_menus ) ) {
foreach ( $all_menus as $row ) {
$menus[ $row->slug ] = $row->name;
}
}
$result = array();
foreach ( $menus as $id => $menu ) {
$result[ $id ] = $menu;
}
return $result;
}
public static function get_all_image_sizes() {
$sizes = array(
'thumbnail' => __( 'Thumbnail', 'rishi' ),
'medium' => __( 'Medium', 'rishi' ),
'medium_large' => __( 'Medium Large', 'rishi' ),
'large' => __( 'Large', 'rishi' ),
'full' => __( 'Full Size', 'rishi' ),
);
$all_sizes = get_intermediate_image_sizes();
$result = array(
'full' => __( 'Full Size', 'rishi' ),
);
foreach ( $all_sizes as $single_size ) {
if ( isset( $sizes[ $single_size ] ) ) {
$result[ $single_size ] = $sizes[ $single_size ];
} else {
$result[ $single_size ] = $single_size;
}
}
return $result;
}
/**
* Get data in array structure for post meta contents
*
* @param array $structure Theme mod value assigned to the key
* @param string $id
* @return array $post_data
*/
public static function get_post_structure_data( $structure, $id ) {
$post_data = array_filter( $structure, function ($arr) use ($id) {
return $arr['id'] === $id;
} );
return current( $post_data );
}
public static function rishi_menu_fallback() {
if ( current_user_can( 'manage_options' ) ) {
echo '<ul class="nav-menu">';
echo '<li><a href="' . esc_url( admin_url( 'nav-menus.php' ) ) . '">' . esc_html__( 'Click here to add a menu', 'rishi' ) . '</a></li>';
echo '</ul>';
}
}
public static function get_pallete_colors( $color_descriptor, $defaults ) {
$result = array();
$color_palette = $color_descriptor['colorPalette'];
foreach ( $defaults as $id => $default_data ) {
$data = $default_data;
if (
is_array( $color_palette )
&&
isset( $color_palette[ $id ] )
&&
is_array( $color_palette[ $id ] )
) {
$data = $color_palette[ $id ];
}
if (
is_array( $color_descriptor )
&&
isset( $color_descriptor[ $id ] )
&&
is_array( $color_descriptor[ $id ] )
) {
foreach( $color_descriptor[ $id ] as $default ) {
$data['color'] = $default;
}
}
$result[ $id ] = ( !isset( $data['color'] ) ) ? null : $data['color'];
}
return $result;
}
/**
* Retrieve value saved in the given meta key for the given Post ID
*
* @param integer $id pass the meta id
* @param string $key pass the meta key
* @param string $default pass the default value if present
* @return void
*/
public static function get_meta( $id, $key, $default=null ){
$meta = get_post_meta( $id,$key,true );
if( $meta ){
return $meta;
}elseif( !empty( $default ) ){
return $default;
}
}
/**
* Return elements that are active in header
*
* @return array
*/
public static function get_header_active_elements(){
$devices = ['desktop', 'mobile'];
$placements = [ 'start', 'start-middle', 'middle', 'end-middle', 'end'];
$elements = [];
foreach( $devices as $device ){
foreach( $placements as $placement){
$top = rishi_customizer()->header_builder->get_elements_by_placements( 'top-row', $placement, $device );
$middle = rishi_customizer()->header_builder->get_elements_by_placements( 'middle-row', $placement, $device );
$bottom = rishi_customizer()->header_builder->get_elements_by_placements( 'bottom-row', $placement, $device );
$offcanvas = rishi_customizer()->header_builder->get_elements_by_placements( 'offcanvas', $placement, $device );
if( count($top) > 0 ){
$elements[] = $top;
}
if( count($middle) > 0 ){
$elements[] = $middle;
}
if( count($bottom) > 0 ){
$elements[] = $bottom;
}
if( count($offcanvas) > 0 ){
$elements[] = $offcanvas;
}
}
}
$flat_arr = array_reduce($elements, 'array_merge', array()); //Flatten the multidimensional array
$array = array_unique($flat_arr); //Get unique values
//Remove static value saved in database
$array = array_filter($array, function($value) {
return $value !== "1o2";
});
return array_values($array); //Reindex the keys
}
/**
* Return elements that are active in footer
*
* @return array
*/
public static function get_footer_active_elements(){
$rows = ['top-row', 'middle-row', 'bottom-row'];
$elements = [];
foreach( $rows as $row ){
$footer_data = rishi_customizer()->footer_builder->get_elements_by_row( $row );
if ( ! rishi_customizer()->footer_builder->check_row_empty($row)) {
$elements[] = $footer_data;
}
}
$flat_arr = array_reduce($elements, 'array_merge', array()); //Flatten the multidimensional array from footer columns
$array = array_reduce($flat_arr, 'array_merge', array()); //Flatten the final multidimensional array
//Remove static value saved in database
$final_array = array_filter($array, function($value) {
return $value !== "1o2";
});
return array_values($final_array); //Reindex the keys
}
/**
* Retrieve list of posts on the basis of provided post type
*
* @param string $post_type
* @param boolean $slug
* @return array $post_options
*/
public static function rishi_get_pages( $post_type = 'page', $slug = false ){
$args = array(
'posts_per_page' => -1,
'post_type' => $post_type,
'post_status' => 'publish',
'suppress_filters' => true
);
$posts_array = get_posts( $args );
// Initate an empty array
$post_options = array();
$post_options['all_pages'] = __('All Pages', 'rishi');
$post_options['homepage'] = __('Home Page', 'rishi');
if ( ! empty( $posts_array ) ) {
foreach ( $posts_array as $posts ) {
if( $slug ){
$post_options[ $posts->post_title ] = $posts->post_title;
}else{
$post_options[ $posts->ID ] = $posts->post_title;
}
}
}
wp_reset_postdata();
return $post_options;
}
/**
* Checks if elementor is active or not
*/
public static function is_elementor_activated(){
return class_exists( 'Elementor\\Plugin' ) ? true : false;
}
/**
* Checks if elementor has override that particular page/post or not
*/
public static function is_elementor_activated_post(){
if( Basic::is_elementor_activated() && is_singular()){
global $post;
$post_id = $post->ID;
return \Elementor\Plugin::$instance->documents->get( $post_id )->is_built_with_elementor( $post_id ) ? true : false;
}else{
return false;
}
}
/**
* Function that returns either lazy or false depending on the requirement
* Used on loading attribute of image tag
*
* @return mixed $return
*/
public static function post_image_lazyload(){
$return = false;
if( ! apply_filters('rishi_lazy_load_on_single_post', true ) ) return $return = false;
if (class_exists( 'Rishi_Companion\Modules\Helpers\Performance' ) && get_theme_mod('has_lazy_load', 'yes') === 'yes'){
$return = 'lazy';
};
return $return;
}
/**
* Sanitize each element in the array. If an element is an array itself,
* the function will call itself to sanitize the nested array.
*
* @param array $array
* @return array
*/
public static function wporg_recursive_sanitize_text_field($array){
foreach ($array as $key => &$value) {
if (is_array($value)) {
$value = Basic::wporg_recursive_sanitize_text_field($value);
} else {
$value = sanitize_text_field($value);
}
}
return $array;
}
/**
* Accept HTML content and return with additional HTML content
*
* @param string $content - the HTML content
* @param string $wrapper - the HTML wrapper element
* @param array $attributes - an associative array where the keys are attribute names and the values are attribute values.
* @return void
*/
public static function add_html_content($content, $wrapper, $attributes){
$content = wp_kses_post($content);
$wrapper = sanitize_text_field($wrapper);
$attributes = Basic::wporg_recursive_sanitize_text_field($attributes);
$attrString = '';
foreach ($attributes as $key => $value) {
$attrString .= ' ' . $key . '="' . htmlspecialchars($value) . '"';
}
return "<{$wrapper}{$attrString}>{$content}</{$wrapper}>";
}
}