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: toolbar.mjs
((api,_CLICK_,body,topBody,bodyCl,topThemify,topWindowDoc) => {
[0] Fix | Delete
"use strict";
[1] Fix | Delete
const {isFrontend,Registry}=api;
[2] Fix | Delete
api.ToolBar = {
[3] Fix | Delete
isLoaded:false,
[4] Fix | Delete
el:null,
[5] Fix | Delete
init() {
[6] Fix | Delete
if(isFrontend){
[7] Fix | Delete
const topSvg=topWindowDoc.tfId('tf_svg');
[8] Fix | Delete
if(topSvg){
[9] Fix | Delete
const defs=topSvg.firstChild,
[10] Fix | Delete
st=defs.querySelector('#tf_fonts_style'),
[11] Fix | Delete
f=createDocumentFragment();
[12] Fix | Delete
if(st){
[13] Fix | Delete
doc.tfId('tf_fonts_style').textContent+=st.textContent;
[14] Fix | Delete
st.remove();
[15] Fix | Delete
}
[16] Fix | Delete
for(let ch=defs.children,i=ch.length-1;i>-1;--i){
[17] Fix | Delete
f.appendChild(ch[i]);
[18] Fix | Delete
}
[19] Fix | Delete
doc.tfId('tf_svg').firstChild.appendChild(f);
[20] Fix | Delete
topSvg.remove();
[21] Fix | Delete
}
[22] Fix | Delete
}
[23] Fix | Delete
const root = doc.tfId('tb_main_toolbar_root'),
[24] Fix | Delete
fr = root.firstElementChild,
[25] Fix | Delete
bpSt=createElement('style'),
[26] Fix | Delete
fragment=createDocumentFragment(),
[27] Fix | Delete
svg=doc.tfId('tf_svg').cloneNode(true);
[28] Fix | Delete
[29] Fix | Delete
let cssText='';
[30] Fix | Delete
for(let bp=api.breakpointsReverse,i=bp.length-1;i>-1;--i){
[31] Fix | Delete
if(bp[i]!=='desktop'){
[32] Fix | Delete
cssText+='--tb_bp_'+bp[i]+':'+api.Utils.getBPWidth(bp[i])+'px;';
[33] Fix | Delete
}
[34] Fix | Delete
}
[35] Fix | Delete
bpSt.textContent=':root{'+cssText+'}';
[36] Fix | Delete
body.appendChild(bpSt.cloneNode(true));
[37] Fix | Delete
topBody.appendChild(svg.cloneNode(true));
[38] Fix | Delete
[39] Fix | Delete
fragment.append(doc.tfId('tf_lazy_common').cloneNode(true),svg.cloneNode(true));
[40] Fix | Delete
if (fr) { // shadowrootmode="open" isn't support
[41] Fix | Delete
root.attachShadow({
[42] Fix | Delete
mode: fr.getAttribute('shadowrootmode')
[43] Fix | Delete
}).appendChild(fr.content);
[44] Fix | Delete
fr.remove();
[45] Fix | Delete
}
[46] Fix | Delete
root.shadowRoot.prepend(fragment);
[47] Fix | Delete
if (isFrontend) {
[48] Fix | Delete
topBody.appendChild(root);
[49] Fix | Delete
}
[50] Fix | Delete
this.el = root.shadowRoot.tfId('toolbar');
[51] Fix | Delete
const combineCss=this.el.getRootNode().querySelector('#module_combine_style');
[52] Fix | Delete
if(isFrontend){
[53] Fix | Delete
topWindowDoc.head.prepend(bpSt,combineCss.cloneNode(true));
[54] Fix | Delete
}
[55] Fix | Delete
doc.tfId('themify-builder-admin-ui-css').before(combineCss.cloneNode(true));
[56] Fix | Delete
Themify.on('themify_builder_ready',()=>{
[57] Fix | Delete
if(!isFrontend){
[58] Fix | Delete
(doc.tfId('tb_canvas_block') || doc.tfClass('tb_active_builder')[0]).before(root);
[59] Fix | Delete
}
[60] Fix | Delete
this.isLoaded = true;
[61] Fix | Delete
Themify.trigger('tb_toolbar_loaded');
[62] Fix | Delete
this._setModes();
[63] Fix | Delete
// Compact toolbar
[64] Fix | Delete
requestAnimationFrame(()=>{
[65] Fix | Delete
requestAnimationFrame(()=>{
[66] Fix | Delete
root.style.display='';
[67] Fix | Delete
this._oberserveSize();
[68] Fix | Delete
});
[69] Fix | Delete
});
[70] Fix | Delete
setTimeout(() => {
[71] Fix | Delete
body.prepend(api.MainPanel.el.getRootNode().querySelector('#module_drag_grids_style').cloneNode(true));
[72] Fix | Delete
topThemify.loadCss(Themify.url + 'themify-metabox/css/themify.minicolors');
[73] Fix | Delete
topThemify.loadCss(Themify.builder_url + 'css/editor/themify-combobox');
[74] Fix | Delete
[75] Fix | Delete
const events = {
[76] Fix | Delete
[_CLICK_]: {
[77] Fix | Delete
'.revision_btn': 'initRevision',
[78] Fix | Delete
'.layout': 'initLayout',
[79] Fix | Delete
'.import': 'initImport',
[80] Fix | Delete
'.export':'initExport',
[81] Fix | Delete
'.duplicate': 'duplicate',
[82] Fix | Delete
'.save_btn': 'save',
[83] Fix | Delete
'.switch':'switchTo',
[84] Fix | Delete
'.tf_close': 'panelClose',
[85] Fix | Delete
'.breakpoint_switch': 'breakpointSwitcher',
[86] Fix | Delete
'.devices': 'deviceSwitcher',
[87] Fix | Delete
'.custom_css': 'addCustomCSS',
[88] Fix | Delete
'.zoom': 'zoom',
[89] Fix | Delete
'.preview': 'previewBuilder',
[90] Fix | Delete
'.tree':'initTree',
[91] Fix | Delete
'.backend_mode':'backendMode',
[92] Fix | Delete
'.help': 'initHelp',
[93] Fix | Delete
'.plus': 'showPanel'
[94] Fix | Delete
},
[95] Fix | Delete
change: {
[96] Fix | Delete
'.mode input': 'modChange'
[97] Fix | Delete
}
[98] Fix | Delete
};
[99] Fix | Delete
[100] Fix | Delete
for (let ev in events) {
[101] Fix | Delete
this.el.tfOn(ev, e => {
[102] Fix | Delete
const sel = Object.keys(events[e.type]),
[103] Fix | Delete
item = e.target.closest(sel);
[104] Fix | Delete
if (item) {
[105] Fix | Delete
for (let i = 0; i < sel.length; ++i) {
[106] Fix | Delete
if (item.matches(sel[i])) {
[107] Fix | Delete
const f = events[e.type][sel[i]];
[108] Fix | Delete
e.stopPropagation();
[109] Fix | Delete
e.item = item;
[110] Fix | Delete
this[f](e);
[111] Fix | Delete
break;
[112] Fix | Delete
}
[113] Fix | Delete
}
[114] Fix | Delete
}
[115] Fix | Delete
e = null;
[116] Fix | Delete
},{passive:true});
[117] Fix | Delete
}
[118] Fix | Delete
api.Drag(api.Builder.get().el);
[119] Fix | Delete
api.Utils.updateDocumentSize();
[120] Fix | Delete
setTimeout(() => {
[121] Fix | Delete
this._unload();
[122] Fix | Delete
localStorage.removeItem('tb_mode');//deprecated
[123] Fix | Delete
if(isFrontend){
[124] Fix | Delete
topThemify.on('tfsmartresize',e=>{
[125] Fix | Delete
Themify.trigger('tfsmartresize',e);
[126] Fix | Delete
});
[127] Fix | Delete
this._setPopularDevices();
[128] Fix | Delete
}
[129] Fix | Delete
}, 2000);
[130] Fix | Delete
}, 800);
[131] Fix | Delete
[132] Fix | Delete
}, true,api.is_builder_ready)
[133] Fix | Delete
.trigger('tb_toolbar_style_ready');
[134] Fix | Delete
},
[135] Fix | Delete
_oberserveSize(){
[136] Fix | Delete
let req;
[137] Fix | Delete
(new ResizeObserver(entries =>{
[138] Fix | Delete
cancelAnimationFrame(req);
[139] Fix | Delete
const el=entries[0].target;
[140] Fix | Delete
req = requestAnimationFrame(() => {
[141] Fix | Delete
el.classList.toggle('compact_menu',el.getBoundingClientRect().width<=800);
[142] Fix | Delete
});
[143] Fix | Delete
})).observe(this.el);
[144] Fix | Delete
},
[145] Fix | Delete
getBaseCss(){
[146] Fix | Delete
const fr=createDocumentFragment(),
[147] Fix | Delete
toolbarRoot = this.el.getRootNode(),
[148] Fix | Delete
commonCss = toolbarRoot.querySelector('#tf_lazy_common'),
[149] Fix | Delete
svgCss = toolbarRoot.querySelector('#tf_svg'),
[150] Fix | Delete
baseCss = toolbarRoot.querySelector('#tf_base');
[151] Fix | Delete
fr.append(commonCss.cloneNode(true),svgCss.cloneNode(true),baseCss.cloneNode(true));
[152] Fix | Delete
return fr;
[153] Fix | Delete
},
[154] Fix | Delete
_setModes() {
[155] Fix | Delete
const isDarkSet=localStorage.getItem('tb_dark_mode');
[156] Fix | Delete
if (isDarkSet==='1' || (isDarkSet!=='-1' && window.matchMedia('(prefers-color-scheme:dark)').matches)) {
[157] Fix | Delete
this.el.tfClass('dark_mode')[0].checked = true;
[158] Fix | Delete
this._changeDarkMode(true);
[159] Fix | Delete
}
[160] Fix | Delete
if(isFrontend){
[161] Fix | Delete
if (localStorage.getItem('tb_inline_editor')) {
[162] Fix | Delete
api.inlineEditor = false;
[163] Fix | Delete
this.el.tfClass('inline_editor_mode')[0].checked = false;
[164] Fix | Delete
}
[165] Fix | Delete
[166] Fix | Delete
if (localStorage.getItem('tb_right_click')) {
[167] Fix | Delete
this.el.tfClass('right_click_mode')[0].checked = false;
[168] Fix | Delete
}
[169] Fix | Delete
}
[170] Fix | Delete
},
[171] Fix | Delete
showPanel() {
[172] Fix | Delete
api.MainPanel.openFloat();
[173] Fix | Delete
},
[174] Fix | Delete
_unload() {
[175] Fix | Delete
if (isFrontend) {
[176] Fix | Delete
doc.head.insertAdjacentHTML('afterbegin', '<base target="_parent">');
[177] Fix | Delete
}
[178] Fix | Delete
topWindow.tfOn('beforeunload',e => {
[179] Fix | Delete
if(this.preventBeforeMsg!==true && api.Builder.get().isSaved===false && api.undoManager.hasUndo()){
[180] Fix | Delete
e.preventDefault();
[181] Fix | Delete
return e.returnValue='Are you sure';
[182] Fix | Delete
}
[183] Fix | Delete
});
[184] Fix | Delete
},
[185] Fix | Delete
panelClose() {
[186] Fix | Delete
return new Promise(resolve=>{
[187] Fix | Delete
const pr= api.Builder.get().isSaved===false && api.undoManager.hasUndo()?
[188] Fix | Delete
api.LiteLightBox.confirm({
[189] Fix | Delete
msg: 'builderClose',
[190] Fix | Delete
buttons:{
[191] Fix | Delete
no:'save_no',
[192] Fix | Delete
yes:'saveClose'
[193] Fix | Delete
}
[194] Fix | Delete
}):Promise.resolve('no');
[195] Fix | Delete
pr.then(answer=>{
[196] Fix | Delete
if(answer==='yes'){
[197] Fix | Delete
this.save().then(()=>{
[198] Fix | Delete
resolve(answer);
[199] Fix | Delete
this.panelClose();
[200] Fix | Delete
});
[201] Fix | Delete
}
[202] Fix | Delete
else if (answer === 'no') {
[203] Fix | Delete
this.preventBeforeMsg=true;
[204] Fix | Delete
topWindow.location.reload();
[205] Fix | Delete
}
[206] Fix | Delete
});
[207] Fix | Delete
});
[208] Fix | Delete
},
[209] Fix | Delete
async initRevision(e) {
[210] Fix | Delete
const target = e.target;
[211] Fix | Delete
if (target.classList.contains('load_revision')) {
[212] Fix | Delete
api.Spinner.showLoader();
[213] Fix | Delete
}
[214] Fix | Delete
await Promise.all([Themify.loadJs(api.componentsURL +'revisions',window.TB_Revisions), topThemify.loadCss(Themify.builder_url + 'css/editor/components/revisions')]);
[215] Fix | Delete
await TB_Revisions.init(target);
[216] Fix | Delete
if (target.classList.contains('load_revision')) {
[217] Fix | Delete
const ul=target.closest('ul');
[218] Fix | Delete
ul.style.display='none';
[219] Fix | Delete
setTimeout(()=>{
[220] Fix | Delete
ul.style.display='';
[221] Fix | Delete
},50);
[222] Fix | Delete
}
[223] Fix | Delete
},
[224] Fix | Delete
async initLayout(e) {
[225] Fix | Delete
const target = e.target;
[226] Fix | Delete
if (target.classList.contains('load_layout')) {
[227] Fix | Delete
api.Spinner.showLoader();
[228] Fix | Delete
}
[229] Fix | Delete
await Promise.all([Themify.loadJs(api.componentsURL + 'layouts',!!window.TB_Layouts), topThemify.loadCss(Themify.builder_url + 'css/editor/components/layouts')]);
[230] Fix | Delete
await TB_Layouts.init(target);
[231] Fix | Delete
},
[232] Fix | Delete
async initImport(e) {
[233] Fix | Delete
const target = e.target;
[234] Fix | Delete
if (target.hasAttribute('data-type')) {
[235] Fix | Delete
api.Spinner.showLoader();
[236] Fix | Delete
}
[237] Fix | Delete
await Themify.loadJs(api.componentsURL + 'import',!!window.TB_Import);
[238] Fix | Delete
await TB_Import.init(target);
[239] Fix | Delete
},
[240] Fix | Delete
async initExport(e){
[241] Fix | Delete
api.Spinner.showLoader();
[242] Fix | Delete
await Promise.all([Themify.loadJs(api.componentsURL + 'export',!!window.TB_Export),api.Helper.loadJsZip()]);
[243] Fix | Delete
await TB_Export.init();
[244] Fix | Delete
},
[245] Fix | Delete
async initHelp() {
[246] Fix | Delete
api.Spinner.showLoader();
[247] Fix | Delete
await Themify.loadJs(api.componentsURL + 'help',!!window.TB_Help);
[248] Fix | Delete
await TB_Help.init();
[249] Fix | Delete
},
[250] Fix | Delete
async backendMode(e){
[251] Fix | Delete
await api.LightBox.save();
[252] Fix | Delete
const cl=this.el.tfClass('backend_mode')[0].classList;
[253] Fix | Delete
if(!cl.contains('working')){
[254] Fix | Delete
cl.add('working');
[255] Fix | Delete
api.Spinner.showLoader();
[256] Fix | Delete
api.SmallPanel.hide();
[257] Fix | Delete
await window.TB_BuilderContentLightbox?.saveAll();
[258] Fix | Delete
const builder=api.Builder.get(),
[259] Fix | Delete
data=builder.toJSON(),
[260] Fix | Delete
id='tb_backend_mode',
[261] Fix | Delete
backendUi = doc.tfId(id),
[262] Fix | Delete
adminui = doc.tfId( 'themify-builder-admin-ui-css'),
[263] Fix | Delete
paddingMode=this.el.tfClass('padding_dragging_mode')[0],
[264] Fix | Delete
inlineMode=this.el.tfClass('inline_editor_mode')[0],
[265] Fix | Delete
docs=[body,topBody],
[266] Fix | Delete
prms=[],
[267] Fix | Delete
isVisual=!api.isVisual;
[268] Fix | Delete
api.isVisual=isVisual;
[269] Fix | Delete
if(!backendUi){
[270] Fix | Delete
prms.push(Themify.loadCss(Themify.builder_url + 'css/editor/backend-mode',id,null,adminui.nextSibling));
[271] Fix | Delete
}else{
[272] Fix | Delete
backendUi.disabled=api.isVisual;
[273] Fix | Delete
}
[274] Fix | Delete
if(!isVisual){
[275] Fix | Delete
paddingMode.checked=inlineMode.checked=api.inlineEditor=false;
[276] Fix | Delete
paddingMode.disabled=inlineMode.disabled=true;
[277] Fix | Delete
api.liveStylingInstance.reset();
[278] Fix | Delete
}else{
[279] Fix | Delete
api.inlineEditor = inlineMode.checked=!localStorage.getItem('tb_inline_editor');
[280] Fix | Delete
paddingMode.checked=!localStorage.getItem('tb_disable_padding_dragging');
[281] Fix | Delete
paddingMode.disabled=inlineMode.disabled=false;
[282] Fix | Delete
}
[283] Fix | Delete
cl.toggle('active',!isVisual);
[284] Fix | Delete
bodyCl.toggle('themify_builder_active',isVisual);
[285] Fix | Delete
for(let i=docs.length-1;i>-1;--i){
[286] Fix | Delete
docs[i].classList.toggle('tb_backend_mode',!isVisual);
[287] Fix | Delete
}
[288] Fix | Delete
paddingMode.closest('.switch-wrapper').classList.toggle('disabled',!isVisual);
[289] Fix | Delete
inlineMode.closest('.switch-wrapper').classList.toggle('disabled',!isVisual);
[290] Fix | Delete
api.EdgeDrag.init();
[291] Fix | Delete
Themify.trigger('tb_inline_editor_changed');
[292] Fix | Delete
prms.push(builder.reLoad({builder_data:data,custom_css:builder.customCss},false,false));
[293] Fix | Delete
await Promise.all(prms);
[294] Fix | Delete
cl.remove('working');
[295] Fix | Delete
api.Module.loadBackendLightbox('preload');
[296] Fix | Delete
}
[297] Fix | Delete
},
[298] Fix | Delete
/*
[299] Fix | Delete
initTree(e){
[300] Fix | Delete
e.target.closest('.tree').classList.contains('active')?api.Tree.close():api.Tree.open();
[301] Fix | Delete
},
[302] Fix | Delete
*
[303] Fix | Delete
*/
[304] Fix | Delete
async duplicate() {
[305] Fix | Delete
const answer=await api.LiteLightBox.confirm({msg:'confirm_on_duplicate_page'});
[306] Fix | Delete
if(answer){
[307] Fix | Delete
if(answer==='yes'){
[308] Fix | Delete
await api.Builder.get().save();
[309] Fix | Delete
}
[310] Fix | Delete
try{
[311] Fix | Delete
api.Spinner.showLoader('show');
[312] Fix | Delete
const resp=await api.LocalFetch({
[313] Fix | Delete
action: 'tb_duplicate_page',
[314] Fix | Delete
tb_is_admin: !api.isVisual?1:0
[315] Fix | Delete
});
[316] Fix | Delete
let url=resp.data;
[317] Fix | Delete
if(!resp.success){
[318] Fix | Delete
throw url;
[319] Fix | Delete
}
[320] Fix | Delete
if(isFrontend){
[321] Fix | Delete
url+='#builder_active';
[322] Fix | Delete
}
[323] Fix | Delete
await api.Spinner.showLoader('done');
[324] Fix | Delete
topWindow.location.href=url.replaceAll('&amp;', '&');
[325] Fix | Delete
}
[326] Fix | Delete
catch(e){
[327] Fix | Delete
api.Spinner.showLoader('error');
[328] Fix | Delete
TF_Notification.showHide('error',e,4000);
[329] Fix | Delete
}
[330] Fix | Delete
[331] Fix | Delete
}
[332] Fix | Delete
},
[333] Fix | Delete
modChange(e) {
[334] Fix | Delete
const cl = e.item.classList,
[335] Fix | Delete
checked = e.item.checked === true;
[336] Fix | Delete
if (cl.contains('right_click_mode')) {
[337] Fix | Delete
checked ? localStorage.removeItem('tb_right_click') : localStorage.setItem('tb_right_click', 1);
[338] Fix | Delete
api.RightClick?.bind();
[339] Fix | Delete
}
[340] Fix | Delete
else if (cl.contains('padding_dragging_mode')) {
[341] Fix | Delete
checked ? localStorage.removeItem('tb_disable_padding_dragging') : localStorage.setItem('tb_disable_padding_dragging', 1);
[342] Fix | Delete
api.EdgeDrag.init();
[343] Fix | Delete
}
[344] Fix | Delete
else if (cl.contains('dark_mode')) {
[345] Fix | Delete
localStorage.setItem('tb_dark_mode', checked?1:-1);
[346] Fix | Delete
this._changeDarkMode(checked);
[347] Fix | Delete
const areas=topBody.querySelectorAll('.tf_cdm textarea');
[348] Fix | Delete
for(let i=areas.length-1;i>-1;--i){
[349] Fix | Delete
areas[i].tf_mirror?.setDarkMode(checked);
[350] Fix | Delete
}
[351] Fix | Delete
}
[352] Fix | Delete
else if (cl.contains('inline_editor_mode')) {
[353] Fix | Delete
if (checked) {
[354] Fix | Delete
localStorage.removeItem('tb_inline_editor');
[355] Fix | Delete
} else {
[356] Fix | Delete
localStorage.setItem('tb_inline_editor', 1);
[357] Fix | Delete
}
[358] Fix | Delete
api.inlineEditor = checked;
[359] Fix | Delete
Themify.trigger('tb_inline_editor_changed');
[360] Fix | Delete
}
[361] Fix | Delete
},
[362] Fix | Delete
_changeDarkMode(enabled){
[363] Fix | Delete
const file = doc.tfId('tb_dark_mode_style'),
[364] Fix | Delete
topFile = isFrontend ? topWindowDoc.getElementById('tb_dark_mode_style') : null;
[365] Fix | Delete
if(enabled){
[366] Fix | Delete
const adminui = doc.tfId( 'themify-builder-admin-ui-css');
[367] Fix | Delete
Themify.loadCss(Themify.builder_url + 'css/editor/darkmode-ui','tb_dark_mode_style',null,adminui.nextSibling);
[368] Fix | Delete
if (isFrontend) {
[369] Fix | Delete
topThemify.loadCss(Themify.builder_url + 'css/editor/darkmode-ui','tb_dark_mode_style',null,topWindowDoc.querySelector('link[href*="/components/lightbox."]').nextSibling);
[370] Fix | Delete
}
[371] Fix | Delete
}
[372] Fix | Delete
if(file){
[373] Fix | Delete
file.disabled = !enabled;
[374] Fix | Delete
}
[375] Fix | Delete
if (topFile) {
[376] Fix | Delete
topFile.disabled = !enabled;
[377] Fix | Delete
}
[378] Fix | Delete
api.isDarked=enabled;
[379] Fix | Delete
},
[380] Fix | Delete
switchTo(e){
[381] Fix | Delete
const link = e.item.getAttribute('href');
[382] Fix | Delete
if (!isFrontend) {
[383] Fix | Delete
Themify.trigger('tb_switch_frontend',[link]);
[384] Fix | Delete
return;
[385] Fix | Delete
}
[386] Fix | Delete
[387] Fix | Delete
this.save().then(()=>{
[388] Fix | Delete
topWindow.location.href = link;
[389] Fix | Delete
});
[390] Fix | Delete
},
[391] Fix | Delete
async save() {
[392] Fix | Delete
if(!api.isOld){
[393] Fix | Delete
if(api.GS.activeGS){
[394] Fix | Delete
await api.LightBox.save();
[395] Fix | Delete
}
[396] Fix | Delete
await window.TB_BuilderContentLightbox?.saveAll();
[397] Fix | Delete
if(api.LayoutPart?.item){
[398] Fix | Delete
await api.LayoutPart.item.save();
[399] Fix | Delete
await api.LayoutPart.item.close();
[400] Fix | Delete
}
[401] Fix | Delete
await api.Builder.get().save();
[402] Fix | Delete
}
[403] Fix | Delete
},
[404] Fix | Delete
zoom(e) {
[405] Fix | Delete
return new Promise(resolve=>{
[406] Fix | Delete
if (isFrontend && 'desktop' === api.activeBreakPoint) {
[407] Fix | Delete
const item = e.item;
[408] Fix | Delete
let zoom_size = item.dataset.zoom.toString() || '100',
[409] Fix | Delete
height = '',
[410] Fix | Delete
canvas = topBody.tfClass('tb_iframe')[0],
[411] Fix | Delete
parent= item.closest('.zoom_menu'),
[412] Fix | Delete
zoomItems = parent.querySelectorAll('.submenu .zoom'),
[413] Fix | Delete
zoomToggle = parent.tfClass('zoom_toggle')[0].parentNode;
[414] Fix | Delete
[415] Fix | Delete
if (item.classList.contains('zoom_toggle')) {
[416] Fix | Delete
zoom_size = api.zoomMeta || zoom_size !== '100' ? '100' : '50';
[417] Fix | Delete
}
[418] Fix | Delete
if (api.zoomMeta === zoom_size || (zoom_size === '100' && !api.zoomMeta)) {
[419] Fix | Delete
resolve();
[420] Fix | Delete
return;
[421] Fix | Delete
}
[422] Fix | Delete
[423] Fix | Delete
for (let i = zoomItems.length - 1; i > -1; --i) {
[424] Fix | Delete
zoomItems[i].parentNode.classList.toggle('selected_zoom',zoom_size!=='100' && zoomItems[i].dataset.zoom === zoom_size);
[425] Fix | Delete
}
[426] Fix | Delete
[427] Fix | Delete
canvas.tfOn('transitionend', () => {
[428] Fix | Delete
api.Utils.onResize(true);
[429] Fix | Delete
resolve();
[430] Fix | Delete
}, {
[431] Fix | Delete
passive: true,
[432] Fix | Delete
once: true
[433] Fix | Delete
});
[434] Fix | Delete
[435] Fix | Delete
api.zoomMeta = false;
[436] Fix | Delete
if (zoom_size !== '100') {
[437] Fix | Delete
const scale = '50' === zoom_size ? 2 : 1.25;
[438] Fix | Delete
canvas.parentNode.classList.add('tb_zoom_bg');
[439] Fix | Delete
height = Math.max(topWindow.innerHeight * scale, 600) + 'px';
[440] Fix | Delete
api.zoomMeta = zoom_size;
[441] Fix | Delete
}
[442] Fix | Delete
zoomToggle.classList.toggle('selected_zoom', api.zoomMeta);
[443] Fix | Delete
bodyCl.toggle('tb_zoom_only', api.zoomMeta);
[444] Fix | Delete
canvas.parentNode.style.height = height;
[445] Fix | Delete
[446] Fix | Delete
canvas.classList.remove('tb_zooming_50', 'tb_zooming_75');
[447] Fix | Delete
if (zoom_size !== '100') {
[448] Fix | Delete
canvas.classList.add('tb_zooming_' + zoom_size);
[449] Fix | Delete
}
[450] Fix | Delete
}
[451] Fix | Delete
else{
[452] Fix | Delete
resolve();
[453] Fix | Delete
}
[454] Fix | Delete
});
[455] Fix | Delete
},
[456] Fix | Delete
async addCustomCSS(e) {
[457] Fix | Delete
try{
[458] Fix | Delete
await api.LightBox.save();
[459] Fix | Delete
const options = {
[460] Fix | Delete
contructor: true,
[461] Fix | Delete
loadMethod: 'html',
[462] Fix | Delete
save: {},
[463] Fix | Delete
data: {
[464] Fix | Delete
css: {
[465] Fix | Delete
options: [{
[466] Fix | Delete
id: 'custom_css',
[467] Fix | Delete
type: 'textarea',
[468] Fix | Delete
rows: 17,
[469] Fix | Delete
class: 'fullwidth'
[470] Fix | Delete
},
[471] Fix | Delete
{
[472] Fix | Delete
id: 'custom_css_m',
[473] Fix | Delete
type: 'message',
[474] Fix | Delete
label: '',
[475] Fix | Delete
comment: 'cus_css_m'
[476] Fix | Delete
},
[477] Fix | Delete
{
[478] Fix | Delete
id: 'postid',
[479] Fix | Delete
type: 'hidden',
[480] Fix | Delete
value: api.Builder.get().id
[481] Fix | Delete
}
[482] Fix | Delete
]
[483] Fix | Delete
}
[484] Fix | Delete
}
[485] Fix | Delete
},
[486] Fix | Delete
target=e.target.closest('.custom_css'),
[487] Fix | Delete
box = target.getBoundingClientRect();
[488] Fix | Delete
target.classList.add('active');
[489] Fix | Delete
api.LightBox.el.classList.add('tb_custom_css_lightbox');
[490] Fix | Delete
[491] Fix | Delete
let lb=await api.LightBox.setStandAlone(box.left, box.top).open(options),
[492] Fix | Delete
input = lb.querySelector('#custom_css'),
[493] Fix | Delete
saveBtn=lb.tfClass('builder_save_button')[0],
[494] Fix | Delete
builder=api.Builder.get(),
[495] Fix | Delete
css_id = 'tb_custom_css_'+builder.id,
[496] Fix | Delete
obj,
[497] Fix | Delete
save=async e=>{
[498] Fix | Delete
if(e){
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function