: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
api.ModuleFeature = class extends api.Module {
selector: '.module-feature-title a'
selector: '.tb_text_wrap'
hide: ['link_options', 'lightbox_size', 'feature_download_link']
show: ['link_options', 'lightbox_size', 'feature_download_link']
id: 'feature_download_link',
{name: 'yes', value: 'dwnablef'}
wrap_class: 'tb_compact_radios',
wrap_class: 'tb_group_element_lightbox lightbox_size'
id: 'overlap_image_feature',
empty: {hide: ['overlap_image_width', 'overlap_image_height']},
not_empty: {show: ['overlap_image_width', 'overlap_image_height']}
id: 'overlap_image_width',
id: 'overlap_image_height',
{img: 'icon_top', value: 'icon-top', label: 'itop'},
{img: 'icon_left', value: 'icon-left', label: 'ileft'},
{img: 'icon_right', value: 'icon-right', label: 'iright'}
{img: 'icon_top', value: 'icon-top', label: 'itop'},
{img: 'icon_left', value: 'icon-left', label: 'ileft'},
{img: 'icon_right', value: 'icon-right', label: 'iright'}
wrap_class: 'multi_circle_feature',
id: 'circle_percentage_feature',
id: 'circle_stroke_feature',
id: 'circle_color_feature',
id: 'circle_size_feature',
small: {hide: 'custom_circle_size_feature'},
medium: {hide: 'custom_circle_size_feature'},
large: {hide: 'custom_circle_size_feature'},
custom: {show: 'custom_circle_size_feature'}
id: 'custom_circle_size_feature',
{value: 'icon', name: 'icon'},
{value: 'image_icon', name: 'image'},
{value: 'both', name: 'both'}
wrap_class: 'tb_group_element_image_icon tb_group_element_both'
wrap_class: 'tb_group_element_icon tb_group_element_both',
{value: 'i', name: 'icon'},
wrap_class: 'tb_group_element_i',
id: 'icon_color_feature',
wrap_class: 'tb_group_element_i',
wrap_class: 'tb_group_element_l',
wrap_class: 'tb_group_element_both'
custom_css: 'css_feature'
title_feature: i18n.ftitle,
content_feature: i18n.fcont,
circle_percentage_feature: 100,
circle_stroke_feature: 3,
layout_feature: 'icon-top',
circle_size_feature: 'small',
circle_color_feature: '#de5d5d'
const setting = data || this.get('mod_settings');
return api.Helper.limitString((setting.content_feature || setting.title_feature));
const setting = data || this.get('mod_settings'),
imgUrl=setting.overlap_image_feature || (setting.icon_type_feature==='image_icon'&& setting.image_feature?setting.image_feature:null),
return super.getImage(data);
static builderSave(settings){
layout_feature:'icon-top',
lightbox_width_unit:'px',
lightbox_height_unit:'px',
layout_mobile:'icon-top',
circle_size_feature:'medium',
icon_type_feature: 'icon',
custom_circle_size_feature:120,
feature_download_link:false,
customSize=settings.circle_size_feature==='custom'?settings.custom_circle_size_feature:def.custom_circle_size_feature,
strokeWidth=settings.circle_stroke_feature,
iconType=settings.icon_type_feature,
units=['l_s_t','f_s_i','f_s_i_h','f_s_c','l_h_c','l_s_c','f_s_c_h'];
if(settings[key]===def[key]){
if(customSize && ~~customSize===def.custom_circle_size_feature){
delete settings.custom_circle_size_feature;
if(strokeWidth!==undefined && ~~strokeWidth===def.circle_stroke_feature){
delete settings.circle_stroke_feature;
if(!settings.link_feature){
delete settings.feature_download_link;
delete settings.link_options;
else if(settings.feature_download_link==='|' || settings.feature_download_link==='false'){
delete settings.feature_download_link;
if(settings.link_options!=='lightbox'){
delete settings.lightbox_width;
delete settings.lightbox_height;
if(!settings.lightbox_width){
delete settings.lightbox_width_unit;
if(!settings.lightbox_height){
delete settings.lightbox_height_unit;
if(iconType==='image_icon'){
delete settings.icon_bg_feature;
delete settings.icon_feature;
else if(iconType!=='both'){
delete settings.image_feature;
if(settings.stype!=='l'){
delete settings.icon_feature;
if(!settings.icon_feature){
delete settings.icon_color_feature;
for(let i=lottieDel.length-1;i>-1;--i){
if(settings[lottieDel[i]]!==undefined){
delete settings[lottieDel[i]];
delete settings.icon_position;
if(!settings.overlap_image_feature){
delete settings.overlap_image_width;
delete settings.overlap_image_height;
for(let bps=api.breakpointsReverse,i=bps.length-1;i>-1;--i){
this.clearImageGradient('background_image','background_color','background_repeat','background_position',bp,settings);
this.clearImageGradient('b_i_h','bg_c_h','b_r_h','b_p_h',bp,settings);
this.clearFontColor('font_color_type','font_color','font_gradient_color',bp,settings);
this.clearFontColor('f_c_t_h','f_c_h','f_g_c_h',bp,settings);
this.clearShadow('text-shadow',0,bp,settings);
this.clearShadow('t_sh_h',0,bp,settings);
this.clearShadow('t_sh_m_t',0,bp,settings);
this.clearShadow('t_sh_m_t_h',0,bp,settings);
this.clearShadow('t_sh_t',0,bp,settings);
this.clearShadow('t_sh_t_h',0,bp,settings);
this.clearShadow('t_sh_c',0,bp,settings);
this.clearShadow('t_sh_c_h',0,bp,settings);
this.clearPadding('padding',bp,settings);
this.clearPadding('p_h',bp,settings);
this.clearPadding('c_p',bp,settings);
this.clearPadding('c_p_h',bp,settings);
this.clearPadding('margin',bp,settings);
this.clearPadding('m_h',bp,settings);
this.clearPadding('c_m',bp,settings);
this.clearPadding('c_m_h',bp,settings);
this.clearPadding('b_ra',bp,settings);
this.clearPadding('r_c_h',bp,settings);
this.clearBorder('border',bp,settings);
this.clearBorder('b_h',bp,settings);
this.clearBorder('c_b',bp,settings);
this.clearBorder('c_b_h',bp,settings);
this.clearFilter('bl_m','css_f',bp,settings);
this.clearFilter('_h','css_f_h',bp,settings);
this.clearWidth('w',bp,settings);
this.clearWidth('ht',bp,settings,1);
this.clearShadow('b_sh',1,bp,settings);
this.clearShadow('sh_h',1,bp,settings);
this.clearTransform('tr',bp,settings);
this.clearTransform('tr-h',bp,settings);
this.clearUnits(units,bp,settings);
super.builderSave(settings);
layout_feature:'icon-top',
layout_mobile:'icon-top',
circle_size_feature:'medium',
icon_type_feature: 'icon',
custom_circle_size_feature:120,
let module = createElement(),
featureImage = createElement('','module-feature-image tf_textc tf_rel'),
content = createElement('','module-feature-content tf_textc'),
chart = createElement('span','module-feature-chart-html5 tf_box tf_rel tf_inline_b'),
chartCircle = createElement('span','chart-html5-circle tf_w tf_h'),
text = createElement('','tb_text_wrap'),
{layout_feature:layoutFeature,circle_stroke_feature:w,icon_type_feature:type,stype:subtype,custom_circle_size_feature:customSize,content_feature:html} = args,
percent = args.circle_percentage_feature || '',
isEmpty = percent <= 0 || w <= 0,
icon = type !== 'image_icon' ? (subtype !== 'l' ? (args.icon_feature ? api.Helper.getIcon(args.icon_feature) : '') : api.Helper.getLottie(args, 'parent')) : '',
color = args.icon_color_feature !== '' && type !== 'image' && subtype === 'i' ? api.Helper.toRGBA(args.icon_color_feature) : '',
insetColor = args.icon_bg_feature !== '' && type !== 'image_icon' ? api.Helper.toRGBA(args.icon_bg_feature) : '',
classes = ['module', 'module-feature', 'layout-' + layoutFeature],
constructor=this.constructor;
classes.push('no-chart');
chart.style.backgroundColor = insetColor;