Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/themify-.../js/editor/modules
File: module.mjs
(api => {
[0] Fix | Delete
"use strict";
[1] Fix | Delete
api.Module=class extends api.Base {
[2] Fix | Delete
constructor(fields) {
[3] Fix | Delete
if(fields.mod_settings!==undefined){
[4] Fix | Delete
fields.mod_settings=ThemifyStyles.convertPreset(fields.mod_name,fields.mod_settings);
[5] Fix | Delete
}
[6] Fix | Delete
super(fields);
[7] Fix | Delete
this.type='module';
[8] Fix | Delete
this.initialize();
[9] Fix | Delete
this.render();
[10] Fix | Delete
}
[11] Fix | Delete
defaults(){
[12] Fix | Delete
return {
[13] Fix | Delete
mod_name: '',
[14] Fix | Delete
mod_settings: {}
[15] Fix | Delete
};
[16] Fix | Delete
}
[17] Fix | Delete
static default(){
[18] Fix | Delete
return {};
[19] Fix | Delete
}
[20] Fix | Delete
initialize(){
[21] Fix | Delete
super.initialize();
[22] Fix | Delete
}
[23] Fix | Delete
static getSettingsName(slug){
[24] Fix | Delete
return this.getModuleName(slug);
[25] Fix | Delete
}
[26] Fix | Delete
static getOptions() {
[27] Fix | Delete
return [];
[28] Fix | Delete
}
[29] Fix | Delete
static getGroup(){
[30] Fix | Delete
return ['general'];
[31] Fix | Delete
}
[32] Fix | Delete
static getModuleName(slug){
[33] Fix | Delete
return themifyBuilder.modules[slug]?.name || slug;
[34] Fix | Delete
}
[35] Fix | Delete
static getModuleClassName(slug){
[36] Fix | Delete
let className=slug.split('-');
[37] Fix | Delete
for(let i=0;i<className.length;++i){
[38] Fix | Delete
className[i]=className[i].charAt(0).toUpperCase() + className[i].slice(1);
[39] Fix | Delete
}
[40] Fix | Delete
className=className.join('');
[41] Fix | Delete
if(slug!=='row' && slug!=='column' && slug!=='subrow'){
[42] Fix | Delete
className='Module'+className;
[43] Fix | Delete
}
[44] Fix | Delete
return api[className];
[45] Fix | Delete
}
[46] Fix | Delete
static initModule(fields){
[47] Fix | Delete
const className=this.getModuleClassName(fields.mod_name);
[48] Fix | Delete
return className?(new className(fields)):new api.Module(fields);
[49] Fix | Delete
}
[50] Fix | Delete
static getDefault(slug){
[51] Fix | Delete
return this.getModuleClassName(slug)?.default() || {};
[52] Fix | Delete
}
[53] Fix | Delete
static getHolder(){
[54] Fix | Delete
return createElement('','tb_holder tf_box tf_rel tf_w');
[55] Fix | Delete
}
[56] Fix | Delete
static getModuleTitle(value,key){
[57] Fix | Delete
return this._setEditableContent(createElement('h3','module-title'),key,value);
[58] Fix | Delete
}
[59] Fix | Delete
static setEditableContent(el,key,value,editor,repeat,index){
[60] Fix | Delete
const dataset=el.dataset;
[61] Fix | Delete
el.contentEditable=false;
[62] Fix | Delete
dataset.name = key;
[63] Fix | Delete
if(editor!==undefined && editor!==''){
[64] Fix | Delete
dataset.hasEditor = 1;
[65] Fix | Delete
if(value!==undefined && value!==''){
[66] Fix | Delete
el.innerHTML=value;
[67] Fix | Delete
}
[68] Fix | Delete
}
[69] Fix | Delete
else if(value!==undefined && value!==''){
[70] Fix | Delete
el.innerHTML=value;
[71] Fix | Delete
}
[72] Fix | Delete
if(repeat!==undefined){
[73] Fix | Delete
dataset.repeat=repeat;
[74] Fix | Delete
if(index!==undefined){
[75] Fix | Delete
dataset.index=index;
[76] Fix | Delete
}
[77] Fix | Delete
}
[78] Fix | Delete
return el;
[79] Fix | Delete
}
[80] Fix | Delete
static _setEditableContent(el,key,value,editor,repeat,index){
[81] Fix | Delete
return this.setEditableContent(el,key,value,editor,repeat,index);
[82] Fix | Delete
}
[83] Fix | Delete
static setEditableImage(el,name,wKey,hKey,data,repeat,index){
[84] Fix | Delete
const dataset=el.dataset;
[85] Fix | Delete
data??={};
[86] Fix | Delete
if(wKey!=='' && wKey!==undefined){
[87] Fix | Delete
dataset.w=wKey;
[88] Fix | Delete
if(data[wKey]){
[89] Fix | Delete
el.width=data[wKey];
[90] Fix | Delete
}
[91] Fix | Delete
}
[92] Fix | Delete
if(hKey!=='' && hKey!==undefined){
[93] Fix | Delete
dataset.h=hKey;
[94] Fix | Delete
if(data[hKey]){
[95] Fix | Delete
el.height=data[hKey];
[96] Fix | Delete
}
[97] Fix | Delete
}
[98] Fix | Delete
if(name!=='' && name!==undefined){
[99] Fix | Delete
dataset.name=name;
[100] Fix | Delete
if(data[name]){
[101] Fix | Delete
el.src=data[name];
[102] Fix | Delete
}
[103] Fix | Delete
}
[104] Fix | Delete
if(repeat!==undefined){
[105] Fix | Delete
dataset.repeat=repeat;
[106] Fix | Delete
if(index!==undefined){
[107] Fix | Delete
dataset.index=index;
[108] Fix | Delete
}
[109] Fix | Delete
}
[110] Fix | Delete
return el;
[111] Fix | Delete
}
[112] Fix | Delete
static async loadBackendLightbox(type){
[113] Fix | Delete
const isLoaded=!!window.TB_BuilderContentLightbox;
[114] Fix | Delete
try{
[115] Fix | Delete
if(!isLoaded){
[116] Fix | Delete
if(type!=='preload'){
[117] Fix | Delete
api.Spinner.showLoader();
[118] Fix | Delete
}
[119] Fix | Delete
await Promise.all([
[120] Fix | Delete
Themify.loadCss(Themify.builder_url + 'css/editor/components/builder-content-lightbox'),
[121] Fix | Delete
Themify.loadJs(api.componentsURL +'builder-content-lightbox',window.TB_BuilderContentLightbox)
[122] Fix | Delete
]);
[123] Fix | Delete
}
[124] Fix | Delete
}
[125] Fix | Delete
catch(e){
[126] Fix | Delete
throw e;
[127] Fix | Delete
}
[128] Fix | Delete
finally{
[129] Fix | Delete
if(!isLoaded && type!=='preload'){
[130] Fix | Delete
api.Spinner.showLoader('hide');
[131] Fix | Delete
}
[132] Fix | Delete
}
[133] Fix | Delete
}
[134] Fix | Delete
editLayoutPart(){
[135] Fix | Delete
api.ActionBar.disable = true;
[136] Fix | Delete
api.Spinner.showLoader();
[137] Fix | Delete
Promise.all([
[138] Fix | Delete
Themify.loadCss(Themify.builder_url + 'css/editor/components/layout-part','tb_layout_part_ui',null,doc.tfId('themify-builder-admin-ui-css').nextElementSibling),
[139] Fix | Delete
Themify.loadJs(api.componentsURL + 'layout-part')
[140] Fix | Delete
])
[141] Fix | Delete
.then(()=>{
[142] Fix | Delete
Themify.trigger('tb_layout_edit');
[143] Fix | Delete
[144] Fix | Delete
let className=this.get('mod_name').split('-');
[145] Fix | Delete
for(let i=0;i<className.length;++i){
[146] Fix | Delete
className[i]=className[i].charAt(0).toUpperCase() + className[i].slice(1);
[147] Fix | Delete
}
[148] Fix | Delete
className=className.join('');
[149] Fix | Delete
const item=new api[className](this.id);
[150] Fix | Delete
item.edit().finally(()=>{
[151] Fix | Delete
api.ActionBar.disable = null;
[152] Fix | Delete
});
[153] Fix | Delete
api.LayoutPart.item=item;
[154] Fix | Delete
}).catch(()=>{
[155] Fix | Delete
api.Spinner.showLoader('error');
[156] Fix | Delete
api.ActionBar.disable = null;
[157] Fix | Delete
});
[158] Fix | Delete
}
[159] Fix | Delete
getExcerpt(data) {
[160] Fix | Delete
return '';
[161] Fix | Delete
}
[162] Fix | Delete
getImage() {
[163] Fix | Delete
return api.Helper.getIcon('ti-' + this.getIcon());
[164] Fix | Delete
}
[165] Fix | Delete
backendLivePreview(settings) {
[166] Fix | Delete
const img=this.getImage(settings),
[167] Fix | Delete
iconEl=this.el.tfClass('tb_img_wrap')[0].firstElementChild,
[168] Fix | Delete
excerptText=this.getExcerpt(settings),
[169] Fix | Delete
excerpt=this.el.tfClass('module_excerpt')[0];
[170] Fix | Delete
if(typeof excerptText==='string'){
[171] Fix | Delete
excerpt.innerHTML=excerptText;
[172] Fix | Delete
}
[173] Fix | Delete
else{
[174] Fix | Delete
excerpt.replaceChildren(excerptText);
[175] Fix | Delete
}
[176] Fix | Delete
if(img.tagName==='IMG'){
[177] Fix | Delete
img.decode()
[178] Fix | Delete
.then(()=>{
[179] Fix | Delete
iconEl.replaceWith(img);
[180] Fix | Delete
})
[181] Fix | Delete
.catch(()=>{
[182] Fix | Delete
iconEl.replaceWith(api.Helper.getIcon('ti-' + this.getIcon()));
[183] Fix | Delete
});
[184] Fix | Delete
}
[185] Fix | Delete
else{
[186] Fix | Delete
iconEl.replaceWith(img);
[187] Fix | Delete
}
[188] Fix | Delete
}
[189] Fix | Delete
getIcon(){
[190] Fix | Delete
const slug=this.get('mod_name');
[191] Fix | Delete
return themifyBuilder.modules[slug]?.icon || '';
[192] Fix | Delete
}
[193] Fix | Delete
getName(){
[194] Fix | Delete
return api.Module.getModuleName(this.get('mod_name'));
[195] Fix | Delete
}
[196] Fix | Delete
getPreviewType(){
[197] Fix | Delete
return this.preview?'live':'ajax';
[198] Fix | Delete
}
[199] Fix | Delete
// for instant live preview
[200] Fix | Delete
getPreviewSettings() {
[201] Fix | Delete
return api.Module.getDefault(this.get('mod_name'));
[202] Fix | Delete
}
[203] Fix | Delete
attributes() {
[204] Fix | Delete
const args = {
[205] Fix | Delete
class: 'active_module'
[206] Fix | Delete
},
[207] Fix | Delete
data = this.get('mod_settings');
[208] Fix | Delete
if (api.isVisual) {
[209] Fix | Delete
if ((data.visibility_all === 'hide_all' || data.visibility_desktop === 'hide' || data.visibility_tablet === 'hide' || data.visibility_tablet_landscape === 'hide' || data.visibility_mobile === 'hide')) {
[210] Fix | Delete
args.class += ' tb_visibility_hidden';
[211] Fix | Delete
}
[212] Fix | Delete
args.class += ' tb_module_front';
[213] Fix | Delete
}
[214] Fix | Delete
if (data.custom_css_id !== undefined && data.custom_css_id !== '') {
[215] Fix | Delete
args.id = data.custom_css_id;
[216] Fix | Delete
}
[217] Fix | Delete
return args;
[218] Fix | Delete
}
[219] Fix | Delete
getDisabledTpl(){
[220] Fix | Delete
this.isEmpty=true;
[221] Fix | Delete
const slug=this.get('mod_name'),
[222] Fix | Delete
fr=createDocumentFragment(),
[223] Fix | Delete
module=createElement('','tb_disabled_module module module-'+slug+' tb_'+this.id),
[224] Fix | Delete
modName=createElement('span',api.isVisual?'tb_data_mod_name tf_overflow tf_textc tf_abs_t tf_hide':'module_name',slug),
[225] Fix | Delete
msg=createElement('span','tb_empty_msg tf_textc',i18n.emptym);
[226] Fix | Delete
if(api.isVisual){
[227] Fix | Delete
module.append(modName,msg);
[228] Fix | Delete
}
[229] Fix | Delete
else{
[230] Fix | Delete
const moduleLabel=createElement('','module_label tf_overflow tf_h'),
[231] Fix | Delete
imgWrap=createElement('','tb_img_wrap');
[232] Fix | Delete
[233] Fix | Delete
imgWrap.appendChild(api.Helper.getIcon('ti-na'));
[234] Fix | Delete
moduleLabel.append(imgWrap,modName,createElement('em','module_excerpt',this.getExcerpt()),msg);
[235] Fix | Delete
module.appendChild(moduleLabel);
[236] Fix | Delete
}
[237] Fix | Delete
fr.append(createElement('','tb_action_wrap tb_module_action tf_abs_t tf_box tf_hide'),module);
[238] Fix | Delete
this.el.appendChild(fr);
[239] Fix | Delete
api.Builder.get().emptyModules.add(slug);
[240] Fix | Delete
}
[241] Fix | Delete
backendRender(){
[242] Fix | Delete
const fr=createDocumentFragment(),
[243] Fix | Delete
module=createElement('','module'),
[244] Fix | Delete
moduleLabel=createElement('','module_label tf_overflow tf_h'),
[245] Fix | Delete
imgWrap=createElement('','tb_img_wrap'),
[246] Fix | Delete
excerpt=createElement('em','module_excerpt'),
[247] Fix | Delete
excerptText=this.getExcerpt();
[248] Fix | Delete
[249] Fix | Delete
imgWrap.appendChild(this.getImage());
[250] Fix | Delete
if(typeof excerptText==='string'){
[251] Fix | Delete
excerpt.innerHTML=excerptText;
[252] Fix | Delete
}
[253] Fix | Delete
else{
[254] Fix | Delete
excerpt.replaceChildren(excerptText);
[255] Fix | Delete
}
[256] Fix | Delete
moduleLabel.append(imgWrap,createElement('','module_name',this.getName()),excerpt);
[257] Fix | Delete
module.append(moduleLabel,createElement('','tf_plus_icon tb_column_btn_plus tb_disable_sorting'));
[258] Fix | Delete
fr.append(createElement('','tb_action_wrap tb_module_action tf_abs_t tf_box tf_hide'),module,createElement('','tb_visibility_hint tf_overflow tf_abs_t tf_hide'));
[259] Fix | Delete
this.el.appendChild(fr);
[260] Fix | Delete
this.visibilityLabel();
[261] Fix | Delete
}
[262] Fix | Delete
render() {
[263] Fix | Delete
if (!api.isVisual) {
[264] Fix | Delete
if(themifyBuilder.modules[this.get('mod_name')]!==undefined){
[265] Fix | Delete
this.backendRender();
[266] Fix | Delete
}
[267] Fix | Delete
else{
[268] Fix | Delete
this.getDisabledTpl();
[269] Fix | Delete
}
[270] Fix | Delete
}
[271] Fix | Delete
return this;
[272] Fix | Delete
}
[273] Fix | Delete
parseHtml(){
[274] Fix | Delete
[275] Fix | Delete
}
[276] Fix | Delete
static builderSave(settings){
[277] Fix | Delete
super.builderSave(settings);
[278] Fix | Delete
}
[279] Fix | Delete
static cleanBuilderType(builder,rowType='subrow'){
[280] Fix | Delete
const moduleClassName=this.getModuleClassName,
[281] Fix | Delete
loop = (items,type) => {
[282] Fix | Delete
for (let i = items.length - 1; i > -1; --i) {
[283] Fix | Delete
let item=items[i],
[284] Fix | Delete
fields = item.styling || item.mod_settings;
[285] Fix | Delete
if (fields) {
[286] Fix | Delete
item.element_id??=api.Helper.generateUniqueID();
[287] Fix | Delete
let slug = item.mod_name || (item.cols ? type : 'column');
[288] Fix | Delete
moduleClassName(slug)?.builderSave(fields);
[289] Fix | Delete
if(Object.keys(fields).length===0){
[290] Fix | Delete
if(item.styling){
[291] Fix | Delete
delete item.styling;
[292] Fix | Delete
}else{
[293] Fix | Delete
delete item.mod_settings;
[294] Fix | Delete
}
[295] Fix | Delete
}
[296] Fix | Delete
}
[297] Fix | Delete
if(item.cols || item.modules || item.mod_name){
[298] Fix | Delete
item.element_id??=api.Helper.generateUniqueID();
[299] Fix | Delete
if(item.cols?.length>0){
[300] Fix | Delete
if(item.cols.length===1 && !item.cols[0].modules?.length && (!item.cols[0].styling || Object.keys(item.cols[0].styling).length===0)){
[301] Fix | Delete
delete item.cols;
[302] Fix | Delete
}
[303] Fix | Delete
else{
[304] Fix | Delete
loop(item.cols,'subrow');
[305] Fix | Delete
}
[306] Fix | Delete
}
[307] Fix | Delete
if (item.modules?.length>0) {
[308] Fix | Delete
loop(item.modules,'subrow');
[309] Fix | Delete
}else{
[310] Fix | Delete
delete item.modules;
[311] Fix | Delete
}
[312] Fix | Delete
}
[313] Fix | Delete
}
[314] Fix | Delete
};
[315] Fix | Delete
if(builder){
[316] Fix | Delete
loop(builder,rowType);
[317] Fix | Delete
}
[318] Fix | Delete
}
[319] Fix | Delete
static clearSliderOptions(settings,all){
[320] Fix | Delete
let slider;
[321] Fix | Delete
if(all){
[322] Fix | Delete
for(let sl=['slider_thumbs','effect_slider','speed_opt_slider','wrap_slider','show_nav_slider','show_arrow_slider','show_arrow_buttons_vertical','touch_swipe','left_margin_slider','right_margin_slider','height_slider','auto_scroll_opt_slider'],i=sl.length-1;i>-1;--i){
[323] Fix | Delete
delete settings[sl[i]];
[324] Fix | Delete
}
[325] Fix | Delete
}
[326] Fix | Delete
else {
[327] Fix | Delete
slider=settings.effect_slider || 'scroll';
[328] Fix | Delete
if(settings.effect_slider==='scroll'){
[329] Fix | Delete
delete settings.effect_slider;
[330] Fix | Delete
}
[331] Fix | Delete
if(settings.wrap_slider==='yes'){
[332] Fix | Delete
delete settings.wrap_slider;
[333] Fix | Delete
}
[334] Fix | Delete
if(settings.show_nav_slider==='yes'){
[335] Fix | Delete
delete settings.show_nav_slider;
[336] Fix | Delete
}
[337] Fix | Delete
if(settings.height_slider==='variable'){
[338] Fix | Delete
delete settings.height_slider;
[339] Fix | Delete
}
[340] Fix | Delete
if(settings.speed_opt_slider==='normal' || settings.speed_opt_slider?.toString()==='1'){
[341] Fix | Delete
delete settings.speed_opt_slider;
[342] Fix | Delete
}
[343] Fix | Delete
if(settings.scroll_opt_slider?.toString()==='1'){
[344] Fix | Delete
delete settings.scroll_opt_slider;
[345] Fix | Delete
}
[346] Fix | Delete
if(settings.show_arrow_slider==='no'){
[347] Fix | Delete
delete settings.show_arrow_buttons_vertical;
[348] Fix | Delete
}else{
[349] Fix | Delete
delete settings.show_arrow_slider;
[350] Fix | Delete
}
[351] Fix | Delete
}
[352] Fix | Delete
[353] Fix | Delete
[354] Fix | Delete
if(slider!=='scroll' && slider!=='coverflow' && slider!=='continuously'){
[355] Fix | Delete
delete settings.visible_opt_slider;
[356] Fix | Delete
delete settings.tab_visible_opt_slider;
[357] Fix | Delete
delete settings.mob_visible_opt_slider;
[358] Fix | Delete
delete settings.scroll_opt_slider;
[359] Fix | Delete
}
[360] Fix | Delete
else{
[361] Fix | Delete
if(slider==='continuously'){
[362] Fix | Delete
delete settings.auto_scroll_opt_slider;
[363] Fix | Delete
}
[364] Fix | Delete
if(settings.mob_visible_opt_slider && settings.tab_visible_opt_slider && ~~settings.mob_visible_opt_slider===~~settings.tab_visible_opt_slider){
[365] Fix | Delete
delete settings.mob_visible_opt_slider;
[366] Fix | Delete
}
[367] Fix | Delete
if(settings.visible_opt_slider && settings.tab_visible_opt_slider && ~~settings.visible_opt_slider===~~settings.tab_visible_opt_slider){
[368] Fix | Delete
delete settings.tab_visible_opt_slider;
[369] Fix | Delete
}
[370] Fix | Delete
}
[371] Fix | Delete
[372] Fix | Delete
[373] Fix | Delete
if(!settings.auto_scroll_opt_slider || settings.auto_scroll_opt_slider==='off'){
[374] Fix | Delete
delete settings.pause_on_hover_slider;
[375] Fix | Delete
delete settings.play_pause_control;
[376] Fix | Delete
delete settings.auto_scroll_opt_slider;
[377] Fix | Delete
}
[378] Fix | Delete
else {
[379] Fix | Delete
if(settings.pause_on_hover_slider==='resume'){
[380] Fix | Delete
delete settings.pause_on_hover_slider;
[381] Fix | Delete
}
[382] Fix | Delete
if(settings.play_pause_control==='no'){
[383] Fix | Delete
delete settings.play_pause_control;
[384] Fix | Delete
}
[385] Fix | Delete
}
[386] Fix | Delete
}
[387] Fix | Delete
};
[388] Fix | Delete
})(tb_app);
[389] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function