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/componen...
File: gs.mjs
((api,_CLICK_,ThemifyConstructor) => {
[0] Fix | Delete
"use strict";
[1] Fix | Delete
const gsTpl=doc.tfId('tb_global_styles_root').content;
[2] Fix | Delete
let searchCache={},
[3] Fix | Delete
xhr;
[4] Fix | Delete
class GS {
[5] Fix | Delete
constructor(el,input) {
[6] Fix | Delete
let _this=this,
[7] Fix | Delete
vals=input.value;
[8] Fix | Delete
_this.el=el;
[9] Fix | Delete
_this._selectedContainer=el.tfClass('selected_wrap')[0];
[10] Fix | Delete
_this._list = el.tfClass('list')[0];
[11] Fix | Delete
_this._field=input;
[12] Fix | Delete
if (vals) {
[13] Fix | Delete
el.classList.remove('empty');
[14] Fix | Delete
vals = vals.split(' ');
[15] Fix | Delete
let v = '';
[16] Fix | Delete
for (let i = vals.length - 1; i > -1; --i) {
[17] Fix | Delete
if (api.GS.styles[vals[i]] !== undefined) {
[18] Fix | Delete
v += ' ' + vals[i];
[19] Fix | Delete
_this._createSelected(vals[i]);
[20] Fix | Delete
}
[21] Fix | Delete
}
[22] Fix | Delete
input.value = v.trim();
[23] Fix | Delete
}
[24] Fix | Delete
_this._events();
[25] Fix | Delete
}
[26] Fix | Delete
_events(){
[27] Fix | Delete
const _this=this,
[28] Fix | Delete
el=_this.el;
[29] Fix | Delete
el.tfClass('actions')[0].tfOn(_CLICK_,e=>{
[30] Fix | Delete
e.stopPropagation();
[31] Fix | Delete
const action = e.target.dataset.action;
[32] Fix | Delete
if(action==='insert'){
[33] Fix | Delete
_this._init();
[34] Fix | Delete
}
[35] Fix | Delete
else if(action==='save'){
[36] Fix | Delete
_this._saveAs();
[37] Fix | Delete
}
[38] Fix | Delete
},{passive:true});
[39] Fix | Delete
[40] Fix | Delete
_this._selectedContainer.tfOn(_CLICK_,e=>{
[41] Fix | Delete
const id=e.target.closest('.selected')?.dataset.id;
[42] Fix | Delete
if(id){
[43] Fix | Delete
if(e.target.closest('.delete')){
[44] Fix | Delete
_this._delete(id);
[45] Fix | Delete
}
[46] Fix | Delete
else if(e.target.closest('.edit')){
[47] Fix | Delete
api.GS.gsEdit(id);
[48] Fix | Delete
}
[49] Fix | Delete
}
[50] Fix | Delete
});
[51] Fix | Delete
[52] Fix | Delete
_this._list.tfOn(_CLICK_,e=>{
[53] Fix | Delete
const item=e.target.closest('.item');
[54] Fix | Delete
if(item){
[55] Fix | Delete
_this._insert(item.dataset.id);
[56] Fix | Delete
}
[57] Fix | Delete
});
[58] Fix | Delete
[59] Fix | Delete
[60] Fix | Delete
el.querySelector('#search').tfOn('input', e=> {
[61] Fix | Delete
const filter = e.target.value.toUpperCase().trim(),
[62] Fix | Delete
items = e.target.closest('.form').tfClass('item'),
[63] Fix | Delete
filterByValue = () => {
[64] Fix | Delete
let found=items.length===0;
[65] Fix | Delete
for (let i = items.length - 1; i > -1; --i) {
[66] Fix | Delete
let title = items[i].tfClass('title')[0];
[67] Fix | Delete
if (title) {
[68] Fix | Delete
let display=filter==='' || title.innerHTML.toUpperCase().includes(filter)? '' : 'none';
[69] Fix | Delete
if(found===false && display===''){
[70] Fix | Delete
found=true;
[71] Fix | Delete
}
[72] Fix | Delete
items[i].style.display =display;
[73] Fix | Delete
}
[74] Fix | Delete
}
[75] Fix | Delete
_this._hideShowNoGsText(found);
[76] Fix | Delete
};
[77] Fix | Delete
if (xhr) {
[78] Fix | Delete
xhr.abort();
[79] Fix | Delete
xhr = null;
[80] Fix | Delete
}
[81] Fix | Delete
if (filter!=='' && searchCache[filter]===undefined && !api.GS._allLoaded) {
[82] Fix | Delete
setTimeout(() => {
[83] Fix | Delete
_this._loadMore(filter)
[84] Fix | Delete
.then(filterByValue)
[85] Fix | Delete
.catch(e=>{});
[86] Fix | Delete
}, 100);
[87] Fix | Delete
}
[88] Fix | Delete
else{
[89] Fix | Delete
filterByValue();
[90] Fix | Delete
}
[91] Fix | Delete
},{passive: true });
[92] Fix | Delete
[93] Fix | Delete
el.tfClass('clear_search')[0].tfOn(_CLICK_, e=> {
[94] Fix | Delete
e.stopPropagation();
[95] Fix | Delete
const search=el.querySelector('#search');
[96] Fix | Delete
search.value='';
[97] Fix | Delete
search.focus();
[98] Fix | Delete
Themify.triggerEvent(search,'input');
[99] Fix | Delete
},{passive: true});
[100] Fix | Delete
[101] Fix | Delete
el.parentNode.querySelector('.overlay').tfOn(_CLICK_, function(e) {
[102] Fix | Delete
e.preventDefault();
[103] Fix | Delete
e.stopPropagation();
[104] Fix | Delete
this.remove();
[105] Fix | Delete
},{once: true});
[106] Fix | Delete
}
[107] Fix | Delete
_addItem(items) {
[108] Fix | Delete
if(items.length>0){
[109] Fix | Delete
const f = createDocumentFragment(),
[110] Fix | Delete
_this=this,
[111] Fix | Delete
st = _this._field.value.split(' ');
[112] Fix | Delete
for (let i = 0; i < items.length; ++i) {
[113] Fix | Delete
let item=items[i];
[114] Fix | Delete
if(!_this._list.querySelector('[data-id="'+item+'"]')){
[115] Fix | Delete
let post = api.GS.styles[item],
[116] Fix | Delete
title=createElement('','title'),
[117] Fix | Delete
container = createElement('',{'data-id':item,class:'item'+(st.includes(item)? ' selected' : '')});
[118] Fix | Delete
title.innerHTML=post.title;
[119] Fix | Delete
container.append(title,createElement('','type',post.type));
[120] Fix | Delete
f.appendChild(container);
[121] Fix | Delete
}
[122] Fix | Delete
}
[123] Fix | Delete
_this._list.appendChild(f);
[124] Fix | Delete
_this._checkReload();
[125] Fix | Delete
}
[126] Fix | Delete
}
[127] Fix | Delete
// Crete selected GS HTML
[128] Fix | Delete
_createSelected(id) {
[129] Fix | Delete
const _this=this,
[130] Fix | Delete
post = api.GS.styles[id],
[131] Fix | Delete
selectedItem = createElement('',{class:'selected','data-id':id}),
[132] Fix | Delete
edit = createElement('span','edit'),
[133] Fix | Delete
title=createElement('span','tf_overflow');
[134] Fix | Delete
title.innerHTML=post.title;
[135] Fix | Delete
edit.appendChild(api.Helper.getIcon('ti-pencil'));
[136] Fix | Delete
selectedItem.append(edit,title,createElement('span','delete tf_close'));
[137] Fix | Delete
_this._list.querySelector('[data-id="' + id + '"]')?.classList.add('selected');
[138] Fix | Delete
_this._selectedContainer.appendChild(selectedItem);
[139] Fix | Delete
_this._checkReload();
[140] Fix | Delete
}
[141] Fix | Delete
// Insert new global style
[142] Fix | Delete
async _insert(id) {
[143] Fix | Delete
const _this=this;
[144] Fix | Delete
if(!_this._selectedContainer.querySelector('[data-id="' + id + '"]')){
[145] Fix | Delete
// Add selected global style HTML and hide it in drop down
[146] Fix | Delete
_this._createSelected(id);
[147] Fix | Delete
// Add CSS class to global style field
[148] Fix | Delete
let st = _this._field.value + ' ' + id;
[149] Fix | Delete
_this._field.value = st = st.trim();
[150] Fix | Delete
_this._selectedContainer.closest('#container').classList.remove('empty');
[151] Fix | Delete
await api.GS.setGsStyle(st.split(' '));
[152] Fix | Delete
}
[153] Fix | Delete
}
[154] Fix | Delete
// Delete Global Style from module
[155] Fix | Delete
async _delete(id) {
[156] Fix | Delete
const _this=this;
[157] Fix | Delete
_this._list.querySelector('[data-id="' + id + '"]')?.classList.remove('selected');
[158] Fix | Delete
_this._selectedContainer.querySelector('[data-id="' + id + '"]')?.remove();
[159] Fix | Delete
// Add CSS class to global style field
[160] Fix | Delete
let st = _this._field.value.trim().split(' ');
[161] Fix | Delete
st.splice(st.indexOf(id), 1);
[162] Fix | Delete
st= st.join(' ');
[163] Fix | Delete
_this._field.value = st;
[164] Fix | Delete
if(st===''){
[165] Fix | Delete
_this._selectedContainer.closest('#container').classList.add('empty');
[166] Fix | Delete
}
[167] Fix | Delete
_this._checkReload();
[168] Fix | Delete
await api.GS.setGsStyle(st.split(' '), true);
[169] Fix | Delete
}
[170] Fix | Delete
_init() {
[171] Fix | Delete
const _this=this,
[172] Fix | Delete
form=_this.el.querySelector('.form');
[173] Fix | Delete
if(!_this._done){
[174] Fix | Delete
_this._done=true;
[175] Fix | Delete
const items = Object.keys(api.GS.styles);
[176] Fix | Delete
_this._addItem(items);
[177] Fix | Delete
if (api.GS._allLoaded !== true) {
[178] Fix | Delete
if (items.length < 10) {
[179] Fix | Delete
_this._loadMore();
[180] Fix | Delete
}
[181] Fix | Delete
_this._reLoad=_this._list.tfOn('scroll',e=>{
[182] Fix | Delete
_this._onScroll(e);
[183] Fix | Delete
}, {passive: true})
[184] Fix | Delete
.tfClass('reload')[0];
[185] Fix | Delete
_this._reLoad.tfOn(_CLICK_,e=>{
[186] Fix | Delete
e.stopPropagation();
[187] Fix | Delete
e.preventDefault();
[188] Fix | Delete
_this._loadMore();
[189] Fix | Delete
});
[190] Fix | Delete
}
[191] Fix | Delete
}
[192] Fix | Delete
this._hideShowNoGsText();
[193] Fix | Delete
form.focus();
[194] Fix | Delete
}
[195] Fix | Delete
_loadMore(s='') {
[196] Fix | Delete
const cl=this.el.classList,
[197] Fix | Delete
loaded = [];
[198] Fix | Delete
if(cl.contains('loading')){
[199] Fix | Delete
return Promise.reject();
[200] Fix | Delete
}
[201] Fix | Delete
if(searchCache[s]!==undefined) {
[202] Fix | Delete
return Promise.resolve();
[203] Fix | Delete
}
[204] Fix | Delete
for (let i in api.GS.styles) {
[205] Fix | Delete
if (api.GS.styles[i].id !== undefined) {
[206] Fix | Delete
loaded.push(api.GS.styles[i].id);
[207] Fix | Delete
}
[208] Fix | Delete
}
[209] Fix | Delete
cl.add('loading');
[210] Fix | Delete
const ajaxData={
[211] Fix | Delete
s: s,
[212] Fix | Delete
action: 'tb_get_gs_posts',
[213] Fix | Delete
loaded:loaded
[214] Fix | Delete
};
[215] Fix | Delete
xhr = new AbortController();
[216] Fix | Delete
return api.LocalFetch(ajaxData,'json',{signal: xhr.signal}).then(res=>{
[217] Fix | Delete
this._hideShowNoGsText(true);
[218] Fix | Delete
api.GS.extend(res);
[219] Fix | Delete
const keys = Object.keys(res);
[220] Fix | Delete
if (!s) {
[221] Fix | Delete
api.GS._allLoaded= keys.length < 10;
[222] Fix | Delete
if(api.GS._allLoaded){
[223] Fix | Delete
this._reLoad.remove();
[224] Fix | Delete
this._reLoad=null;
[225] Fix | Delete
}
[226] Fix | Delete
}
[227] Fix | Delete
else{
[228] Fix | Delete
searchCache[s]=true;
[229] Fix | Delete
}
[230] Fix | Delete
this._addItem(keys);
[231] Fix | Delete
})
[232] Fix | Delete
.catch(()=>{
[233] Fix | Delete
[234] Fix | Delete
})
[235] Fix | Delete
.finally(()=>{
[236] Fix | Delete
cl.remove('loading');
[237] Fix | Delete
});
[238] Fix | Delete
}
[239] Fix | Delete
// Save as global style event
[240] Fix | Delete
async _saveAs() {
[241] Fix | Delete
const data=await api.LiteLightBox.prompt('enterGlobalStyleName');
[242] Fix | Delete
if(data?.[0]==='yes'){
[243] Fix | Delete
const title=data[1];
[244] Fix | Delete
if (!title) {
[245] Fix | Delete
TF_Notification.showHide('error','enterGlobalStyleName');
[246] Fix | Delete
this._saveAs();
[247] Fix | Delete
}
[248] Fix | Delete
else {
[249] Fix | Delete
ThemifyConstructor.setStylingValues(api.activeBreakPoint);
[250] Fix | Delete
const styles = api.Helper.cloneObject(api.Base.builderSave(ThemifyConstructor.values,'empty'));
[251] Fix | Delete
delete styles[api.GS.key];
[252] Fix | Delete
const ajaxData={
[253] Fix | Delete
action:'tb_save_as_new_global_style',
[254] Fix | Delete
styles: styles,
[255] Fix | Delete
title: title,
[256] Fix | Delete
type: api.activeModel.get('mod_name')
[257] Fix | Delete
};
[258] Fix | Delete
api.Spinner.showLoader();
[259] Fix | Delete
try{
[260] Fix | Delete
let res=await api.LocalFetch(ajaxData);
[261] Fix | Delete
api.Spinner.showLoader('hide');
[262] Fix | Delete
if ('success' === res.status) {
[263] Fix | Delete
const sucessMsg = res.msg;
[264] Fix | Delete
res = res.post_data;
[265] Fix | Delete
await api.Utils.saveCss(api.Base.builderSave(res.data,'empty'), '', res.id);
[266] Fix | Delete
await TF_Notification.showHide('done', sucessMsg);
[267] Fix | Delete
[268] Fix | Delete
api.GS.styles[res.class] = res;
[269] Fix | Delete
const answer = await api.LiteLightBox.confirm({
[270] Fix | Delete
msg: 'addSavedGS'
[271] Fix | Delete
});
[272] Fix | Delete
if (answer) {
[273] Fix | Delete
if ('yes' === answer) {
[274] Fix | Delete
await ThemifyConstructor.resetStyling(api.activeModel);
[275] Fix | Delete
}
[276] Fix | Delete
this._addItem([res.class]);
[277] Fix | Delete
if ('yes' === answer) {
[278] Fix | Delete
this._insert(res.class);
[279] Fix | Delete
}
[280] Fix | Delete
}
[281] Fix | Delete
}
[282] Fix | Delete
else {
[283] Fix | Delete
api.LiteLightBox.alert(res.msg);
[284] Fix | Delete
}
[285] Fix | Delete
[286] Fix | Delete
}catch (e){
[287] Fix | Delete
api.Spinner.showLoader('error');
[288] Fix | Delete
}
[289] Fix | Delete
}
[290] Fix | Delete
}
[291] Fix | Delete
}
[292] Fix | Delete
_onScroll(e) {
[293] Fix | Delete
if (api.GS._allLoaded=== false) {
[294] Fix | Delete
const target = e.target,
[295] Fix | Delete
distToBottom = Math.max(target.scrollHeight - (target.scrollTop + target.offsetHeight), 0);
[296] Fix | Delete
if (distToBottom > 0 && distToBottom <= 200) {
[297] Fix | Delete
this._loadMore().catch(e=>{});
[298] Fix | Delete
}
[299] Fix | Delete
}
[300] Fix | Delete
}
[301] Fix | Delete
_hideShowNoGsText(check){
[302] Fix | Delete
check??=this._list.tfClass('item')[0]!==undefined;
[303] Fix | Delete
this._list.tfClass('no_gs')[0].classList.toggle('tf_hide',check);
[304] Fix | Delete
}
[305] Fix | Delete
_checkReload(){
[306] Fix | Delete
this._reLoad?.classList.toggle('tf_hide',this._list.scrollHeight > this._list.clientHeight);
[307] Fix | Delete
}
[308] Fix | Delete
_destroy(){
[309] Fix | Delete
xhr?.abort();
[310] Fix | Delete
for(let k in this){
[311] Fix | Delete
this[k]=null;
[312] Fix | Delete
}
[313] Fix | Delete
xhr=null;
[314] Fix | Delete
}
[315] Fix | Delete
}
[316] Fix | Delete
class GSShadow extends HTMLElement {
[317] Fix | Delete
disconnectedCallback(){
[318] Fix | Delete
this.el._destroy();
[319] Fix | Delete
}
[320] Fix | Delete
connectedCallback () {
[321] Fix | Delete
const tpl = gsTpl.cloneNode(true),
[322] Fix | Delete
input = ThemifyConstructor.hidden.render({
[323] Fix | Delete
id: api.GS.key,
[324] Fix | Delete
is_responsive: false,
[325] Fix | Delete
value: ThemifyConstructor.values[api.GS.key],
[326] Fix | Delete
control: false
[327] Fix | Delete
}, ThemifyConstructor);
[328] Fix | Delete
[329] Fix | Delete
this.el=new GS(tpl.querySelector('#container'),input);
[330] Fix | Delete
this.attachShadow({ mode:'open'}).appendChild(tpl);
[331] Fix | Delete
this.before(input);
[332] Fix | Delete
}
[333] Fix | Delete
}
[334] Fix | Delete
customElements.define('tb-gs', GSShadow);
[335] Fix | Delete
api.GS = {
[336] Fix | Delete
styles:{},
[337] Fix | Delete
el : null,
[338] Fix | Delete
activeGS : null,
[339] Fix | Delete
key : 'global_styles',
[340] Fix | Delete
previousId : null,
[341] Fix | Delete
_field : null,
[342] Fix | Delete
_liveInstance : null,
[343] Fix | Delete
_allLoaded : false,
[344] Fix | Delete
init() {
[345] Fix | Delete
Themify.on('tb_toolbar_loaded', () => {
[346] Fix | Delete
[347] Fix | Delete
const fr=createDocumentFragment();
[348] Fix | Delete
[349] Fix | Delete
fr.appendChild(api.ToolBar.getBaseCss());
[350] Fix | Delete
[351] Fix | Delete
gsTpl.prepend(fr.cloneNode(true));
[352] Fix | Delete
[353] Fix | Delete
}, true,api.ToolBar?.isLoaded===true);
[354] Fix | Delete
[355] Fix | Delete
if (api.isGSPage === true) {
[356] Fix | Delete
Themify.on('themify_builder_ready',()=>{
[357] Fix | Delete
const callback=()=>{
[358] Fix | Delete
this.openStylingPanel();
[359] Fix | Delete
api.Registry.off(api.Builder.get(),'tb_init',callback);
[360] Fix | Delete
};
[361] Fix | Delete
if(api.is_builder_ready){
[362] Fix | Delete
callback();
[363] Fix | Delete
}
[364] Fix | Delete
else{
[365] Fix | Delete
api.Registry.on(api.Builder.get(),'tb_init',callback);
[366] Fix | Delete
}
[367] Fix | Delete
},true,api.is_builder_ready);
[368] Fix | Delete
}
[369] Fix | Delete
else if (themifyBuilder.globalStyles) {
[370] Fix | Delete
this.extend(themifyBuilder.globalStyles);
[371] Fix | Delete
themifyBuilder.globalStyles = null;
[372] Fix | Delete
}
[373] Fix | Delete
},
[374] Fix | Delete
// Merge two object
[375] Fix | Delete
extend(gs){
[376] Fix | Delete
for (let key in gs) {
[377] Fix | Delete
if (this.styles[key]===undefined && gs[key] !== undefined){
[378] Fix | Delete
this.styles[key] = gs[key];
[379] Fix | Delete
}
[380] Fix | Delete
}
[381] Fix | Delete
return this.styles;
[382] Fix | Delete
},
[383] Fix | Delete
// Open Styling Panel in GS edit post
[384] Fix | Delete
openStylingPanel() {
[385] Fix | Delete
let type = themifyBuilder.globalStyleData.type,
[386] Fix | Delete
selector;
[387] Fix | Delete
switch (type) {
[388] Fix | Delete
case 'row':
[389] Fix | Delete
case 'column':
[390] Fix | Delete
selector = 'module_' + type;
[391] Fix | Delete
break;
[392] Fix | Delete
case 'subrow':
[393] Fix | Delete
selector = 'active_subrow';
[394] Fix | Delete
break;
[395] Fix | Delete
default:
[396] Fix | Delete
selector = 'active_module';
[397] Fix | Delete
break;
[398] Fix | Delete
}
[399] Fix | Delete
api.Registry.get(api.Builder.get().el.tfClass(selector)[0].dataset.cid).edit('styling');
[400] Fix | Delete
api.ToolBar.previewBuilder({item: api.ToolBar.el.tfClass('preview')[0]});
[401] Fix | Delete
},
[402] Fix | Delete
setCss(data, type, isGlobal) {
[403] Fix | Delete
if (api.isVisual) {
[404] Fix | Delete
api.liveStylingInstance.setCss(data, type, isGlobal);
[405] Fix | Delete
}
[406] Fix | Delete
},
[407] Fix | Delete
async createCss(data, type,bid, saving) {
[408] Fix | Delete
ThemifyStyles.GS = {};
[409] Fix | Delete
bid||=api.Builder.get().id;
[410] Fix | Delete
const css = await ThemifyStyles.createCss(bid, data, type, saving, this.styles, undefined, saving);
[411] Fix | Delete
if (saving === true && Object.keys(this.styles).length > 0 && css.gs) {
[412] Fix | Delete
css.gs.used = '';
[413] Fix | Delete
for (let i in this.styles) {
[414] Fix | Delete
css.gs.used += '' === css.gs.used ? '' : ', ';
[415] Fix | Delete
css.gs.used += this.styles[i].title;
[416] Fix | Delete
}
[417] Fix | Delete
}
[418] Fix | Delete
return css;
[419] Fix | Delete
},
[420] Fix | Delete
// Find used items in builder data
[421] Fix | Delete
findUsedItems(data) {
[422] Fix | Delete
data = JSON.stringify(data);
[423] Fix | Delete
let pattern = /"global_styles":"(.*?)"/mg,
[424] Fix | Delete
match,
[425] Fix | Delete
used = '';
[426] Fix | Delete
while ((match = pattern.exec(data)) !== null) {
[427] Fix | Delete
used += ' ' + match[1].trim();
[428] Fix | Delete
}
[429] Fix | Delete
match = null;
[430] Fix | Delete
used = used.trim();
[431] Fix | Delete
if (used !== '') {
[432] Fix | Delete
used = [...new Set(used.split(' '))];
[433] Fix | Delete
const usedItems = [];
[434] Fix | Delete
for (let i = used.length - 1; i > -1; --i) {
[435] Fix | Delete
if (this.styles[used[i]] !== undefined) {
[436] Fix | Delete
usedItems.push(used[i]);
[437] Fix | Delete
}
[438] Fix | Delete
}
[439] Fix | Delete
return usedItems;
[440] Fix | Delete
}
[441] Fix | Delete
return false;
[442] Fix | Delete
},
[443] Fix | Delete
// Build require HTML for Global Style fields and controllers to add it in Styling Tab
[444] Fix | Delete
globalStylesHTML() {
[445] Fix | Delete
return api.isGSPage === true || this.activeGS !== null?false:createElement('tb-gs');
[446] Fix | Delete
},
[447] Fix | Delete
// Trigger required functions on add/delete a GS
[448] Fix | Delete
updated(css, res, values,model) {
[449] Fix | Delete
if (api.isGSPage === false && api.isVisual && model.type !== 'module') {
[450] Fix | Delete
this.extraStyle(css, res, values,model);
[451] Fix | Delete
}
[452] Fix | Delete
},
[453] Fix | Delete
async setImport(usedGS, data, ignore) {
[454] Fix | Delete
if (ignore !== true) {
[455] Fix | Delete
for (let i in usedGS) {
[456] Fix | Delete
if (this.styles[i] !== undefined) {
[457] Fix | Delete
delete usedGS[i];
[458] Fix | Delete
}
[459] Fix | Delete
}
[460] Fix | Delete
}
[461] Fix | Delete
if (Object.keys(usedGS).length > 0) {
[462] Fix | Delete
const ajaxData={
[463] Fix | Delete
action:'tb_import_gs_posts_ajax',
[464] Fix | Delete
data: JSON.stringify(usedGS),
[465] Fix | Delete
onlySave: ignore ? 1 : 0
[466] Fix | Delete
};
[467] Fix | Delete
return api.LocalFetch(ajaxData).then(res => {
[468] Fix | Delete
if (res) {
[469] Fix | Delete
for (let i in res) {
[470] Fix | Delete
this.styles[i] = res[i];
[471] Fix | Delete
}
[472] Fix | Delete
}
[473] Fix | Delete
return data;
[474] Fix | Delete
});
[475] Fix | Delete
}
[476] Fix | Delete
return data;
[477] Fix | Delete
},
[478] Fix | Delete
async setGsStyle(values, isRemove,model) {
[479] Fix | Delete
[480] Fix | Delete
if (api.isGSPage === true || !api.isVisual) {
[481] Fix | Delete
return;
[482] Fix | Delete
}
[483] Fix | Delete
model??=api.activeModel;
[484] Fix | Delete
let elType = model.get('mod_name'),
[485] Fix | Delete
element_id = model.id,
[486] Fix | Delete
res = {
[487] Fix | Delete
styling: ThemifyStyles.generateGSstyles(values, elType, this.styles),
[488] Fix | Delete
element_id: element_id
[489] Fix | Delete
};
[490] Fix | Delete
ThemifyStyles.disableNestedSel = true;
[491] Fix | Delete
if (this._liveInstance === null) {
[492] Fix | Delete
this._liveInstance = api.createStyleInstance();
[493] Fix | Delete
this._liveInstance.init(true, true,model);
[494] Fix | Delete
}
[495] Fix | Delete
const css = await this.createCss([res], elType),
[496] Fix | Delete
live = this._liveInstance,
[497] Fix | Delete
fonts = [],
[498] Fix | Delete
oldBreakpoint = api.activeBreakPoint,
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function