: 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
static getStylingValue(id,bp,settings){
if(settings[id] !== undefined && settings[id] !== ''){
else if (settings['breakpoint_' + bp]?.[id] !== undefined && settings['breakpoint_' + bp][id] !== '') {
v =settings['breakpoint_' + bp][id];
const points = api.breakpointsReverse;
for (let i = points.indexOf(bp) + 1; i < points.length; ++i) {
if (points[i] !== 'desktop') {
if (settings['breakpoint_' + points[i]]?.[id] !== undefined && settings['breakpoint_' + points[i]][id] !== '') {
v=settings['breakpoint_' + points[i]][id];
else if (settings[id] !== undefined && settings[id] !== '') {
static clearDuplicatStyles(settings){
const bps = api.breakpointsReverse,
knownUnits=['font_size','line_height','letter_spacing','f_s_h','font_size_module_title','line_height_module_title','f_s_m_t_h','font_size_title','line_height_title','letter_spacing_title','f_s_t_h'];
for(let i=0,len=bps.length;i<len-1;++i){
let bpVals=settings['breakpoint_'+bps[i]];
for(let j=i+1;j<len;++j){
let v=bps[j]==='desktop'?settings:settings['breakpoint_'+bps[j]];
if( v==='' || v==='false' || v===undefined || v===null){
let isNumber=typeof v==='string'?!isNaN(v):typeof v==='number',
if(v2!==null && !isNaN(v2) && isFinite(v2)){
for(let j=0;j<parents.length;++j){
if(parents[j][k]!==undefined){
if(parents[j][k]===v || (isNumber && v===parseFloat(parents[j][k]))){
if(found===false && parents.length===1 && (v===false || (v===180 && k.includes('-gradient-angle')) || (v==='linear' && k.includes('-gradient-type')))){
this.clearUnits(knownUnits,bps[i],settings);
if(Object.keys(bpVals).length===0){
delete settings['breakpoint_'+bps[i]];
static clearUnits(keys,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
for(let i=keys.length-1;i>-1;--i){
let unitKey=keys[i]+'_unit';
if(stVals(keys[i],bp,settings)===undefined){
else if(bp==='desktop' && stVals(unitKey,bp,settings)==='px'){
static clearFontWeights(keys,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
for(let i=keys.length-1;i>-1;--i){
if(stVals(keys[i],bp,settings)===undefined){
delete current[keys[i]+'_w'];
static clearImageGradient(id,colorId,repeatId,posId,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
const type=stVals(id+'-type',bp,settings) || 'image',
this.clearGradient(id,bp,settings);
if(stVals(id,bp,settings)===undefined){
delete current[repeatId];
delete current[repeatId];
if(stVals(id,bp,settings)===undefined && stVals(gid,bp,settings)===undefined){
delete current[id+'-type'];
static clearFontColor(id,solidId,gradientId,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
const type=stVals(id,bp,settings) || (solidId+'_solid'),
gid=gradientId+'-gradient';
if(type===(solidId+'_solid')){
this.clearGradient(gradientId,bp,settings);
if(stVals(solidId,bp,settings)===undefined && stVals(gid,bp,settings)===undefined){
static clearShadow(key,isBox,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
let subSets=isBox ? ['hOffset', 'vOffset', 'blur', 'spread'] : ['hShadow', 'vShadow', 'blur'],
for(let i=subSets.length-1;i>-1;--i){
let k = key + '_' + subSets[i];
if(stVals(k,bp,settings)===undefined){
delete current[k+'_unit'];
if(bp==='desktop' && stVals(k+'_unit',bp,settings)==='px'){
delete current[k+'_unit'];
delete current[key+'_color'];
delete current[key+'_inset'];
static clearMarginOpposity(key,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp];
delete current[key+'_opp_top'];
static clearWidth(key,bp,settings,isHeight,minId,maxId){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
const prop=(isHeight?'height':'width'),
autoId=key + '_auto_'+prop,
autoW=stVals(autoId,bp,settings);
if(autoW && autoW!=='|' && autoW!=='false'){
minId=isHeight?'mi_h':'min_' + key;
maxId=isHeight?'mx_h':'max_' + key;
if(!stVals(key,bp,settings) || stVals(key+'_unit',bp,settings)==='px'){
delete current[key+'_unit'];
if(!stVals(minId,bp,settings) || stVals(minId+'_unit',bp,settings)==='px'){
delete current[minId+'_unit'];
if(!stVals(maxId,bp,settings) || stVals(maxId+'_unit',bp,settings)==='px'){
delete current[maxId+'_unit'];
static clearFilter(key,filterId,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
if(current!==undefined && stVals(key,bp,settings)===''){
for(let filters = ['hue','saturation','brightness','contrast','invert','sepia','opacity','blur'],i=filters.length-1;i>-1;--i){
if(stVals(filterId+'_'+filters[i],bp,settings)!==undefined){
static clearTransform(key,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
for(let transforms = ['skew', 'rotate', 'translate', 'scale'],i=transforms.length-1;i>-1;--i){
let k=key+'_'+transforms[i]+'_',
isSame=stVals(k+'opp_bottom',bp,settings),
topValue=stVals(k+'top',bp,settings);
if(topValue===undefined || stVals(k+'top_unit',bp,settings)==='px'){
delete current[k+'top_unit'];
if(stVals(k+'bottom',bp,settings)===undefined || stVals(k+'bottom_unit',bp,settings)==='px'){
delete current[k+'bottom_unit'];
if(!isSame || isSame==='false' || isSame==='|' || topValue===undefined){
delete current[k+'opp_bottom'];
delete current[k+'bottom'];
if(topValue!==undefined || stVals(k+'bottom',bp,settings)!==undefined){
delete current[key+'position'];
static clearGradient(key,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
let type=stVals(key+'-gradient-type',bp,settings) || 'linear';
if(!stVals(key+'-gradient',bp,settings)){
delete current[key+'-gradient-type'];
else if(bp==='desktop' && type==='linear'){
delete current[key+'-gradient-type'];
if(type!=='linear' || (bp==='desktop' && settings[key+'-gradient-angle']?.toString()==='180')){
delete current[key+'-gradient-angle'];
if(type!=='radial' || (bp==='desktop' && (!settings[key+'-circle-radial'] || settings[key+'-circle-radial']==='|' || settings[key+'-circle-radial']==='false'))){
delete current[key+'-circle-radial'];
static clearPosition(key,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp];
const pos=this.getStylingValue(key,bp,settings),
stVals=this.getStylingValue;
for(let sides=['top','left','right','bottom'],i=sides.length-1;i>-1;--i){
if(!pos || pos==='static' || stVals(k+'_auto',bp,settings)){
if(!pos || pos==='static'){
delete current[k+'_auto'];
if(stVals(k,bp,settings)===undefined || stVals(k+'_unit',bp,settings)==='px'){
delete current[k+'_unit'];
static clearBorder(key,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
let isAll=stVals(key+'-type',bp,settings)==='all',
for(let sides=['top','left','right','bottom'],i=sides.length-1;i>-1;--i){
let k=key+'_'+sides[i]+'_',
isNone=stVals(k+'style',bp,settings)==='none';
if((isAll && sides[i]!=='top') || isNone || stVals(k+'width',bp,settings)===undefined || stVals(k+'color',bp,settings)===undefined){
delete current[k+'width'];
delete current[k+'color'];
if(!isNone || (isAll && sides[i]!=='top')){
delete current[k+'style'];
delete current[key+'-type'];
static clearPadding(key,bp,settings){
const current=bp==='desktop'?settings:settings['breakpoint_'+bp],
stVals=this.getStylingValue;
const applyAll=stVals('checkbox_'+key+'_apply_all',bp,settings);
if(applyAll==='false' || applyAll==='|' || applyAll===null){
if(current['checkbox_'+key+'_apply_all']!==undefined){
current['checkbox_'+key+'_apply_all']=false;
delete current[key+'_bottom'];
delete current[key+'_left'];
delete current[key+'_right'];
delete current[key+'_opp_top'];
delete current[key+'_opp_bottom'];
for(let sides=['top','left','right','bottom'],i=sides.length-1;i>-1;--i){
if(stVals(k,bp,settings)===undefined){
delete current[k+'_unit'];
delete current['checkbox_'+key+'_apply_all'];
else if(bp==='desktop' && stVals(k+'_unit',bp,settings)==='px'){
delete current[k+'_unit'];
const oppLeft=stVals(key+'_opp_left',bp,settings),
oppBottom=stVals(key+'_opp_bottom',bp,settings),
oppTop=stVals(key+'_opp_top',bp,settings);
if(!oppLeft || oppLeft==='false' || oppLeft==='|' || stVals(key+'_left',bp,settings)===undefined){
delete current[key+'_opp_left'];
if(!oppBottom || oppBottom==='false' || oppBottom==='|' || stVals(key+'_top',bp,settings)===undefined){
delete current[key+'_opp_bottom'];
if(!oppTop || oppTop==='false' || oppTop==='|' || stVals(key+'_top',bp,settings)===undefined){
delete current[key+'_opp_top'];
static builderSave(settings,type){
delete settings._tooltip_bg;
delete settings._tooltip_c;
delete settings._tooltip_w;
if(!settings._tooltip_w || settings._tooltip_w_unit==='px'){
delete settings._tooltip_w_unit;
delete settings.custom_parallax_scroll_reverse_reverse;
if(typeof settings.builder_content==='string'){
settings.builder_content=JSON.parse(settings.builder_content);
if(item==='' || item===undefined || item==='false' || item==='undefined' || item===null){
else if (typeof item === 'object') {
return clearEmpty(item,Array.isArray(item));
dcName = window.tbpDynamic?.field_name || null,
clearEmpty=(items, is_array)=>{
for (let i=items.length-1;i>-1;--i) {
if(i === 'null' || i === null || i === '' || i === false || !items.hasOwnProperty(i) || isEmpty(items[i])){
if (typeof tmp === 'string') {
if(Object.keys(tmp).length>0){
if (tmp[k].repeatable === undefined && tmp[k].item === undefined) {
if(settings.visibility_all){
delete settings.visibility_desktop;
delete settings.visibility_tablet_landscape;
delete settings.visibility_tablet;
delete settings.visibility_mobile;
if(!settings.animation_effect){
delete settings.animation_effect_delay;
delete settings.animation_effect_repeat;
if(settings.custom_parallax_scroll_reverse===false || settings.custom_parallax_scroll_reverse==='|' || settings.custom_parallax_scroll_reverse==='false'){
delete settings.custom_parallax_scroll_reverse;
if(settings.custom_parallax_scroll_fade===false || settings.custom_parallax_scroll_fade==='|' || settings.custom_parallax_scroll_fade==='false'){
delete settings.custom_parallax_scroll_fade;
if(settings.animation_effect_tab!=='s_e_s'){
delete settings.animation_effect_tab;
for(let bps=api.breakpointsReverse,i=bps.length-1;i>-1;--i){
let suffix=bps[i]==='desktop'?'':(bps[i]==='tablet_landscape'?'_tl':('_'+bps[i][0])),
sticky=settings['stick_at_check'+suffix];
if(sticky!==undefined && sticky!=='' && sticky!=='0' && sticky!==0){
if(settings['stick_at_position'+suffix]==='top'){
delete settings['stick_at_position'+suffix];
delete settings['stick_at_position'+suffix];
delete settings['stick_at_pos_val'+suffix];
delete settings['unstick_when_check'+suffix];
if( settings['stick_at_pos_val'+suffix]===undefined || settings['stick_at_pos_val'+suffix]==='' || settings['stick_at_pos_val'+suffix+'_unit']==='px'){
delete settings['stick_at_pos_val'+suffix+'_unit'];
if(!settings['unstick_when_check'+suffix] || settings['unstick_when_element'+suffix]==='builder_end'){
delete settings['unstick_when_element'+suffix];
if(settings['unstick_when_element'+suffix]!=='row'){
delete settings['unstick_when_el_row_id'+suffix];
if(settings['unstick_when_element'+suffix]!=='module'){
delete settings['unstick_when_el_mod_id'+suffix];
if(!settings['unstick_when_el_row_id'+suffix] && !settings['unstick_when_el_mod_id'+suffix]){
delete settings['unstick_when_condition'+suffix];
delete settings['unstick_when_pos'+suffix];
else if(settings['unstick_when_condition'+suffix]==='hits'){
delete settings['unstick_when_condition'+suffix];
if(settings['unstick_when_pos'+suffix]!=='top' && settings['unstick_when_pos'+suffix]!=='bottom'){
if(settings['unstick_when_pos'+suffix]==='this'){
delete settings['unstick_when_pos'+suffix];
delete settings['unstick_when_pos_val'+suffix];
if(settings['unstick_when_pos_val'+suffix]===undefined || settings['unstick_when_pos_val'+suffix]==='' || settings['unstick_when_pos_val'+suffix+'_unit']==='px'){
delete settings['unstick_when_pos_val'+suffix+'_unit'];
if(isStickyEmpty===false){
delete settings.motion_effects;
else if(settings.motion_effects){