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

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/themify-.../js/editor/componen...
File: constructor.mjs
area.className += ' ' + data.class;
[6500] Fix | Delete
}
[6501] Fix | Delete
if (v !== undefined) {
[6502] Fix | Delete
area.value = v;
[6503] Fix | Delete
}
[6504] Fix | Delete
if (data.rows !== undefined) {
[6505] Fix | Delete
area.rows = data.rows;
[6506] Fix | Delete
}
[6507] Fix | Delete
if (data.readonly) {
[6508] Fix | Delete
area.readonly = 1;
[6509] Fix | Delete
}
[6510] Fix | Delete
f.appendChild(self._initControl(area, data));
[6511] Fix | Delete
if (data.codeeditor !== undefined) {
[6512] Fix | Delete
api.Helper.codeMirror(area, data.codeeditor).then(obj => {
[6513] Fix | Delete
obj?.editor.on('change', () => {
[6514] Fix | Delete
Themify.triggerEvent(area, ev);
[6515] Fix | Delete
});
[6516] Fix | Delete
});
[6517] Fix | Delete
}
[6518] Fix | Delete
if (data.after !== undefined) {
[6519] Fix | Delete
f.appendChild(self.after(data));
[6520] Fix | Delete
}
[6521] Fix | Delete
if (data.description !== undefined) {
[6522] Fix | Delete
f.appendChild(self.description(data.description));
[6523] Fix | Delete
}
[6524] Fix | Delete
return f;
[6525] Fix | Delete
}
[6526] Fix | Delete
},
[6527] Fix | Delete
address: {
[6528] Fix | Delete
render(data, self) {
[6529] Fix | Delete
return self.textarea.render(data, self);
[6530] Fix | Delete
}
[6531] Fix | Delete
},
[6532] Fix | Delete
wp_editor: {
[6533] Fix | Delete
render(data, self) {
[6534] Fix | Delete
let textarea = createElement('textarea',{class:'tb_lb_wp_editor fullwidth',rows:12,cols:40}),
[6535] Fix | Delete
id;
[6536] Fix | Delete
if (self.is_repeat === true) {
[6537] Fix | Delete
id = 'tb_' + Math.random().toString(36).substr(2, 7);
[6538] Fix | Delete
textarea.className += self.is_sort === true ? ' tb_lb_sort_child' : ' tb_lb_option_child';
[6539] Fix | Delete
textarea.dataset.inputId = data.id;
[6540] Fix | Delete
if (data.control !== false) {
[6541] Fix | Delete
data.control??= {};
[6542] Fix | Delete
data.control.repeat = true;
[6543] Fix | Delete
}
[6544] Fix | Delete
} else {
[6545] Fix | Delete
textarea.className += ' tb_lb_option';
[6546] Fix | Delete
id = data.id;
[6547] Fix | Delete
}
[6548] Fix | Delete
const wrapper = createElement('', {class:'wp-core-ui wp-editor-wrap tmce-active',id:'wp-' + id + '-wrap'}),
[6549] Fix | Delete
tools = createElement('', {class:'wp-editor-tools',id: 'wp-' + id + '-editor-tools'}),
[6550] Fix | Delete
media_buttons = createElement('',{class:'wp-media-buttons',id:'wp-' + id + '-media-buttons'}),
[6551] Fix | Delete
add_media = createElement('button',{type: 'button',class:'button insert-media add_media'}),
[6552] Fix | Delete
tabs = createElement('','wp-editor-tabs'),
[6553] Fix | Delete
container = createElement('',{class:'wp-editor-container',id:'wp-' + id + '-editor-container'});
[6554] Fix | Delete
[6555] Fix | Delete
textarea.id = id;
[6556] Fix | Delete
[6557] Fix | Delete
if (data.class !== undefined) {
[6558] Fix | Delete
textarea.className += ' ' + data.class;
[6559] Fix | Delete
}
[6560] Fix | Delete
if (self.values[data.id] !== undefined) {
[6561] Fix | Delete
textarea.value = self.values[data.id];
[6562] Fix | Delete
}
[6563] Fix | Delete
container.append(textarea, createElement('',{class:'quicktags-toolbar',id:'qt_' + id + '_toolbar'}));
[6564] Fix | Delete
[6565] Fix | Delete
tabs.append(createElement('button',{type:'button',class:'wp-switch-editor switch-tmce',id:id + '-tmce','data-wp-editor-id':id},i18n.visual),createElement('button',{type:'button',class:'wp-switch-editor switch-html',id:id + '-html','data-wp-editor-id':id},i18n.text));
[6566] Fix | Delete
[6567] Fix | Delete
add_media.append(createElement('span','wp-media-buttons-icon'), createTextNode(i18n.add_media));
[6568] Fix | Delete
[6569] Fix | Delete
media_buttons.appendChild(add_media);
[6570] Fix | Delete
tools.append(media_buttons, tabs);
[6571] Fix | Delete
wrapper.append(tools, container);
[6572] Fix | Delete
self._editors.push({el: textarea, data: data});
[6573] Fix | Delete
return wrapper;
[6574] Fix | Delete
}
[6575] Fix | Delete
},
[6576] Fix | Delete
/* Order By field in Post module, provides backward compatibility */
[6577] Fix | Delete
orderby_post: {
[6578] Fix | Delete
render(data, self) {
[6579] Fix | Delete
let v = self.getStyleVal(data.id);
[6580] Fix | Delete
if (v === 'meta_value_num') {
[6581] Fix | Delete
self.values[ data.id ] = 'meta_value';
[6582] Fix | Delete
self.values.meta_key_type = 'NUMERIC';
[6583] Fix | Delete
}
[6584] Fix | Delete
data.label??= 'orderby';
[6585] Fix | Delete
data.options = self.getOptions('orderBy');
[6586] Fix | Delete
return self.select.render(data, self);
[6587] Fix | Delete
}
[6588] Fix | Delete
},
[6589] Fix | Delete
captcha : {
[6590] Fix | Delete
_cache:{},
[6591] Fix | Delete
render(data, self) {
[6592] Fix | Delete
const {recaptcha:recaptchaKey='recaptcha',hcaptcha:hcaptchaKey= 'hcaptcha'} = data,
[6593] Fix | Delete
option = {
[6594] Fix | Delete
type : 'select',
[6595] Fix | Delete
label : data.label === false ? false : 'cptch',
[6596] Fix | Delete
help : 'cptchh',
[6597] Fix | Delete
id : data.id || 'captcha',
[6598] Fix | Delete
options : {
[6599] Fix | Delete
'' : '',
[6600] Fix | Delete
[recaptchaKey] : 'recptch',
[6601] Fix | Delete
[hcaptchaKey] : 'hcptch'
[6602] Fix | Delete
}
[6603] Fix | Delete
};
[6604] Fix | Delete
if ( data.hide_empty ) {
[6605] Fix | Delete
delete option.options[''];
[6606] Fix | Delete
}
[6607] Fix | Delete
const result = self.create([ option ]),
[6608] Fix | Delete
select = result.querySelector( '.tb_lb_option' ),
[6609] Fix | Delete
callback=async e => {
[6610] Fix | Delete
const current=e.currentTarget,
[6611] Fix | Delete
selected=current.value,
[6612] Fix | Delete
value = selected=== recaptchaKey ? 'recaptcha' : ( selected === hcaptchaKey ? 'hcaptcha' : '' ),
[6613] Fix | Delete
error=current.nextElementSibling,
[6614] Fix | Delete
cache=this._cache;
[6615] Fix | Delete
if ( value === '' ) {
[6616] Fix | Delete
error.innerHTML = '';
[6617] Fix | Delete
} else {
[6618] Fix | Delete
cache[ value ]??= await api.LocalFetch( { action : 'tb_validate_captcha', provider : value } );
[6619] Fix | Delete
error.innerHTML = cache[ value ].success?'':cache[ value ].data;
[6620] Fix | Delete
}
[6621] Fix | Delete
};
[6622] Fix | Delete
select.tfOn( 'change',callback,{passive:true} )
[6623] Fix | Delete
.after( createElement( '','tb_field_error_msg' ) );
[6624] Fix | Delete
self.afterRun.push(() => {
[6625] Fix | Delete
callback({currentTarget:select});
[6626] Fix | Delete
});
[6627] Fix | Delete
[6628] Fix | Delete
return result;
[6629] Fix | Delete
}
[6630] Fix | Delete
},
[6631] Fix | Delete
select: {
[6632] Fix | Delete
cache: new Map,
[6633] Fix | Delete
update(id, v, self) {
[6634] Fix | Delete
const item = self.getEl(id);
[6635] Fix | Delete
if (item !== null) {
[6636] Fix | Delete
if (v !== undefined) {
[6637] Fix | Delete
item.value = v;
[6638] Fix | Delete
} else if (item[0] !== undefined) {
[6639] Fix | Delete
item[0].selected = true;
[6640] Fix | Delete
}
[6641] Fix | Delete
}
[6642] Fix | Delete
},
[6643] Fix | Delete
populate(data, select, self, v) {
[6644] Fix | Delete
if (data.optgroup) {
[6645] Fix | Delete
const optgroups = self.getOptions(data);
[6646] Fix | Delete
for (let k in optgroups) {
[6647] Fix | Delete
let opt = optgroups[k];
[6648] Fix | Delete
if (opt.label !== undefined) {
[6649] Fix | Delete
let o = createElement('optgroup',{label:i18n[opt.label] || opt.label});
[6650] Fix | Delete
o.appendChild(this.make_options(opt, v, self));
[6651] Fix | Delete
select.appendChild(o);
[6652] Fix | Delete
} else {
[6653] Fix | Delete
select.appendChild(this.make_options(opt, v, self));
[6654] Fix | Delete
}
[6655] Fix | Delete
}
[6656] Fix | Delete
} else {
[6657] Fix | Delete
select.appendChild(this.make_options(data, v, self));
[6658] Fix | Delete
}
[6659] Fix | Delete
},
[6660] Fix | Delete
make_options(data, v, self) {
[6661] Fix | Delete
const d = createDocumentFragment(),
[6662] Fix | Delete
options = self.getOptions(data) || data;
[6663] Fix | Delete
for (let k in options) {
[6664] Fix | Delete
let opt = createElement('option',{value:k},i18n[options[k]] || options[k]);
[6665] Fix | Delete
// Check for responsive disable
[6666] Fix | Delete
if (data.binding?.[k]?.responsive?.disabled.includes(data.id)) {
[6667] Fix | Delete
opt.className = 'tb_responsive_disable';
[6668] Fix | Delete
}
[6669] Fix | Delete
if (v === k || (v === undefined && k === data.default) || (Array.isArray(v) && v.includes(k))) {
[6670] Fix | Delete
opt.selected = true;
[6671] Fix | Delete
}
[6672] Fix | Delete
d.appendChild(opt);
[6673] Fix | Delete
}
[6674] Fix | Delete
return d;
[6675] Fix | Delete
},
[6676] Fix | Delete
render(data, self) {
[6677] Fix | Delete
const select_wrap = createElement('','tf_inline_b tf_vmiddle tf_rel'),
[6678] Fix | Delete
select = createElement('select','tf_scrollbar'),
[6679] Fix | Delete
d = createDocumentFragment(),
[6680] Fix | Delete
v = self.getStyleVal(data.id),
[6681] Fix | Delete
key = data.dataset;
[6682] Fix | Delete
if (data.multiple) {
[6683] Fix | Delete
select.setAttribute('multiple', true);
[6684] Fix | Delete
select_wrap.className += ' multi';
[6685] Fix | Delete
}
[6686] Fix | Delete
if (self.is_repeat === true) {
[6687] Fix | Delete
select.className+= self.is_sort === true ? ' tb_lb_sort_child' : ' tb_lb_option_child';
[6688] Fix | Delete
select.dataset.inputId = data.id;
[6689] Fix | Delete
} else {
[6690] Fix | Delete
select.className+= ' tb_lb_option';
[6691] Fix | Delete
select.id = data.id;
[6692] Fix | Delete
}
[6693] Fix | Delete
if (data.class !== undefined) {
[6694] Fix | Delete
select.className += ' ' + data.class;
[6695] Fix | Delete
}
[6696] Fix | Delete
if (data.setOptions !== false) {
[6697] Fix | Delete
if (key !== undefined) {
[6698] Fix | Delete
let cache_key = key;
[6699] Fix | Delete
if (data.dataset_args) {
[6700] Fix | Delete
cache_key += JSON.stringify(data.dataset_args);
[6701] Fix | Delete
}
[6702] Fix | Delete
if (this.cache.has(cache_key)) {
[6703] Fix | Delete
this.populate(this.cache.get(cache_key), select, self, v);
[6704] Fix | Delete
} else {
[6705] Fix | Delete
const ajaxData = {
[6706] Fix | Delete
action: 'tb_get_ajax_data',
[6707] Fix | Delete
dataset: key
[6708] Fix | Delete
};
[6709] Fix | Delete
/* additional parameters to send to tb_get_ajax_data */
[6710] Fix | Delete
if (data.dataset_args) {
[6711] Fix | Delete
ajaxData.args = data.dataset_args;
[6712] Fix | Delete
}
[6713] Fix | Delete
select_wrap.className += ' tf_lazy';
[6714] Fix | Delete
api.LocalFetch(ajaxData).then(res => {
[6715] Fix | Delete
if (res.success) {
[6716] Fix | Delete
this.cache.set(cache_key, res.data);
[6717] Fix | Delete
this.populate(res.data, select, self, v);
[6718] Fix | Delete
} else {
[6719] Fix | Delete
throw '';
[6720] Fix | Delete
}
[6721] Fix | Delete
})
[6722] Fix | Delete
.catch(() => {
[6723] Fix | Delete
api.Spinner.showLoader('error');
[6724] Fix | Delete
}).finally(() => {
[6725] Fix | Delete
select_wrap.classList.remove('tf_lazy');
[6726] Fix | Delete
});
[6727] Fix | Delete
}
[6728] Fix | Delete
} else {
[6729] Fix | Delete
this.populate(data, select, self, v);
[6730] Fix | Delete
}
[6731] Fix | Delete
}
[6732] Fix | Delete
select_wrap.appendChild(self._initControl(select, data));
[6733] Fix | Delete
d.appendChild(select_wrap);
[6734] Fix | Delete
if (data.after !== undefined) {
[6735] Fix | Delete
d.appendChild(self.after(data));
[6736] Fix | Delete
}
[6737] Fix | Delete
if (data.description !== undefined) {
[6738] Fix | Delete
d.appendChild(self.description(data.description));
[6739] Fix | Delete
}
[6740] Fix | Delete
if (data.tooltip !== undefined) {
[6741] Fix | Delete
d.appendChild(self.hint(data.tooltip));
[6742] Fix | Delete
}
[6743] Fix | Delete
return d;
[6744] Fix | Delete
}
[6745] Fix | Delete
},
[6746] Fix | Delete
font_select: {
[6747] Fix | Delete
loaded_fonts: new Set,
[6748] Fix | Delete
fonts: {},
[6749] Fix | Delete
safe: {},
[6750] Fix | Delete
google: {},
[6751] Fix | Delete
cf: {},
[6752] Fix | Delete
updateFontVariant(value, weight, self, type) {
[6753] Fix | Delete
if (!weight) {
[6754] Fix | Delete
return;
[6755] Fix | Delete
}
[6756] Fix | Delete
type = '' === type || type === undefined ? undefined !== this.google[value] ? 'google' : 'cf' : type;
[6757] Fix | Delete
type = 'webfont' === type ? 'fonts' : type;
[6758] Fix | Delete
const variants = this[type][value]?.v || null;
[6759] Fix | Delete
if (!variants || variants.length === 0) {
[6760] Fix | Delete
weight.closest('.tb_field').classList.add('_tb_hide_binding');
[6761] Fix | Delete
return;
[6762] Fix | Delete
}
[6763] Fix | Delete
[6764] Fix | Delete
let selected = self.getStyleVal(weight.id),
[6765] Fix | Delete
fr=createDocumentFragment();
[6766] Fix | Delete
if (undefined === selected) {
[6767] Fix | Delete
selected = 'google' === type ? 'regular' : 'normal';
[6768] Fix | Delete
}
[6769] Fix | Delete
weight.dataset.selected = value;
[6770] Fix | Delete
weight.closest('.tb_field').classList.remove('_tb_hide_binding');
[6771] Fix | Delete
for (let i = 0; i < variants.length; ++i) {
[6772] Fix | Delete
let opt = createElement('option',{value:variants[i]},variants[i]);
[6773] Fix | Delete
if (variants[i] === selected) {
[6774] Fix | Delete
opt.selected = true;
[6775] Fix | Delete
}
[6776] Fix | Delete
fr.appendChild(opt);
[6777] Fix | Delete
}
[6778] Fix | Delete
weight.replaceChildren(fr);
[6779] Fix | Delete
},
[6780] Fix | Delete
loadGoogleFonts(fontFamilies) {
[6781] Fix | Delete
fontFamilies = [...new Set((fontFamilies.split('|')))];
[6782] Fix | Delete
const result = {google: [], cf: []},
[6783] Fix | Delete
loaded_fonts=this.loaded_fonts,
[6784] Fix | Delete
isFrontend=api.isFrontend;
[6785] Fix | Delete
for (let i = fontFamilies.length - 1; i > -1; --i) {
[6786] Fix | Delete
let font=fontFamilies[i];
[6787] Fix | Delete
if (font && font !== 'default' && this.safe[font]===undefined) {
[6788] Fix | Delete
let req = font.split(':'),
[6789] Fix | Delete
type = this.cf[req[0]] !== undefined ? 'cf' : 'google',
[6790] Fix | Delete
weight = ('regular' === req[1] || 'normal' === req[1] || 'italic' === req[1] || ~~req[1]) ? req[1] : '400,700',
[6791] Fix | Delete
f = req[0].split(' ').join('+') + ':' + weight;
[6792] Fix | Delete
if(this.safe[req[0]]===undefined){
[6793] Fix | Delete
if( 'google' === type){
[6794] Fix | Delete
f+=':latin,latin-ext';
[6795] Fix | Delete
}
[6796] Fix | Delete
if (!loaded_fonts.has(f) && !result[type].includes(f)) {
[6797] Fix | Delete
loaded_fonts.add(f);
[6798] Fix | Delete
result[type].push(f);
[6799] Fix | Delete
}
[6800] Fix | Delete
}
[6801] Fix | Delete
}
[6802] Fix | Delete
}
[6803] Fix | Delete
if (result.google.length > 0) {
[6804] Fix | Delete
const url = window.location.protocol + '//fonts.googleapis.com/css?family=' + encodeURI(result.google.join('|')) + '&display=swap';
[6805] Fix | Delete
Themify.loadCss(url, null, false);
[6806] Fix | Delete
if (isFrontend) {
[6807] Fix | Delete
topThemify.loadCss(url, null, false);
[6808] Fix | Delete
}
[6809] Fix | Delete
}
[6810] Fix | Delete
if (result.cf.length > 0) {
[6811] Fix | Delete
const url = themifyBuilder.cf_api_url + encodeURI(result.cf.join('|'));
[6812] Fix | Delete
Themify.loadCss(url, null, false);
[6813] Fix | Delete
if (isFrontend) {
[6814] Fix | Delete
topThemify.loadCss(url, null, false);
[6815] Fix | Delete
}
[6816] Fix | Delete
}
[6817] Fix | Delete
},
[6818] Fix | Delete
_controlChange(select, preview, pw, self) {
[6819] Fix | Delete
const _this = this,
[6820] Fix | Delete
$combo = $(select).comboSelect({
[6821] Fix | Delete
comboClass: 'themify-combo-select',
[6822] Fix | Delete
comboArrowClass: 'themify-combo-arrow',
[6823] Fix | Delete
comboDropDownClass: 'themify-combo-dropdown tf_scrollbar',
[6824] Fix | Delete
inputClass: 'themify-combo-input',
[6825] Fix | Delete
disabledClass: 'themify-combo-disabled',
[6826] Fix | Delete
hoverClass: 'themify-combo-hover',
[6827] Fix | Delete
selectedClass: 'themify-combo-selected',
[6828] Fix | Delete
markerClass: 'themify-combo-marker'
[6829] Fix | Delete
}).parent('div');
[6830] Fix | Delete
$combo[0].tfOn(_CLICK_, function (e) {
[6831] Fix | Delete
const target = e.target;
[6832] Fix | Delete
if (target.classList.contains('themify-combo-item')) {
[6833] Fix | Delete
const value = target.dataset.value,
[6834] Fix | Delete
tab = select.closest('.tb_tab'),
[6835] Fix | Delete
type = this.querySelector('option[value="' + value + '"]')?.dataset.type;
[6836] Fix | Delete
[6837] Fix | Delete
if ('webfont' !== type && value) {
[6838] Fix | Delete
_this.loadGoogleFonts(value);
[6839] Fix | Delete
}
[6840] Fix | Delete
if (tab) {
[6841] Fix | Delete
_this.updateFontVariant(value, tab.tfClass('font-weight-select')[0], self, type);
[6842] Fix | Delete
}
[6843] Fix | Delete
setTimeout(() => {
[6844] Fix | Delete
Themify.triggerEvent(select, 'change');
[6845] Fix | Delete
}, 10);
[6846] Fix | Delete
}
[6847] Fix | Delete
}, {passive: true})
[6848] Fix | Delete
.tfOn('pointerover', function (e) {
[6849] Fix | Delete
const target = e.target;
[6850] Fix | Delete
if (target.classList.contains('themify-combo-item')) {
[6851] Fix | Delete
let value = target.dataset.value;
[6852] Fix | Delete
if (value) {
[6853] Fix | Delete
if (!$(target).is(':visible')) {
[6854] Fix | Delete
return;
[6855] Fix | Delete
}
[6856] Fix | Delete
if (value === 'default') {
[6857] Fix | Delete
value = 'inherit';
[6858] Fix | Delete
}
[6859] Fix | Delete
preview.style.top = target.offsetTop - target.parentNode.scrollTop + 30 + 'px';
[6860] Fix | Delete
preview.style.fontFamily = value;
[6861] Fix | Delete
preview.style.display = 'block';
[6862] Fix | Delete
[6863] Fix | Delete
if (value !== 'inherit' && !target.classList.contains('tb_font_loaded')) {
[6864] Fix | Delete
target.classList.add('tb_font_loaded');
[6865] Fix | Delete
const mode = target.ownerDocument === topWindowDoc ? 'top' : 'bottom';
[6866] Fix | Delete
_this.fonts[mode]??= [];
[6867] Fix | Delete
if (!_this.fonts[mode].includes(value)) {
[6868] Fix | Delete
const callback = value => {
[6869] Fix | Delete
_this.fonts[mode].push(value);
[6870] Fix | Delete
pw.classList.remove('themify_show_wait');
[6871] Fix | Delete
},
[6872] Fix | Delete
type = this.querySelector('option[value="' + value + '"]')?.dataset.type;
[6873] Fix | Delete
if (type && type !== 'webfont') {
[6874] Fix | Delete
let url = '';
[6875] Fix | Delete
if ('google' === type) {
[6876] Fix | Delete
url = window.location.protocol + '//fonts.googleapis.com/css?family=' + encodeURI(value) + '&display=swap';
[6877] Fix | Delete
} else if ('cf' === type) {
[6878] Fix | Delete
url = themifyBuilder.cf_api_url + encodeURI(value);
[6879] Fix | Delete
}
[6880] Fix | Delete
if (url !== '') {
[6881] Fix | Delete
pw.classList.add('themify_show_wait');
[6882] Fix | Delete
const tf = mode === 'top' ? topThemify : Themify;
[6883] Fix | Delete
tf.loadCss(url, null, false).then(callback);
[6884] Fix | Delete
}
[6885] Fix | Delete
} else {
[6886] Fix | Delete
callback(value);
[6887] Fix | Delete
}
[6888] Fix | Delete
}
[6889] Fix | Delete
target.style.fontFamily = value;
[6890] Fix | Delete
}
[6891] Fix | Delete
}
[6892] Fix | Delete
}
[6893] Fix | Delete
}, {passive: true});
[6894] Fix | Delete
$combo.trigger('comboselect:open')
[6895] Fix | Delete
.on('comboselect:close', () => {
[6896] Fix | Delete
preview.style.display = 'none';
[6897] Fix | Delete
});
[6898] Fix | Delete
$combo[0].tfClass('themify-combo-arrow')[0].tfOn(_CLICK_, () => {
[6899] Fix | Delete
preview.style.display = 'none';
[6900] Fix | Delete
}, {passive: true});
[6901] Fix | Delete
},
[6902] Fix | Delete
update(id, v='', self) {
[6903] Fix | Delete
const select = self.getEl(id);
[6904] Fix | Delete
if (select !== null) {
[6905] Fix | Delete
select.value = v;
[6906] Fix | Delete
this.updateFontVariant(v, select.closest('.tb_tab').tfClass('font-weight-select')[0], self);
[6907] Fix | Delete
if (select.dataset.init === undefined) {
[6908] Fix | Delete
const groups = select.tfTag('optgroup'),
[6909] Fix | Delete
opt = createElement('option',{value:v,selected:''});
[6910] Fix | Delete
for(let i=2;i>-1;--i){
[6911] Fix | Delete
groups[i]?.replaceChildren();
[6912] Fix | Delete
}
[6913] Fix | Delete
if (this.safe[v] !== undefined) {
[6914] Fix | Delete
opt.textContent = this.safe[v];
[6915] Fix | Delete
groups[0].appendChild(opt);
[6916] Fix | Delete
} else if (this.google[v] !== undefined) {
[6917] Fix | Delete
opt.textContent = this.google[v].n;
[6918] Fix | Delete
groups[1].appendChild(opt);
[6919] Fix | Delete
} else if (this.cf[v] !== undefined) {
[6920] Fix | Delete
opt.textContent = this.cf[v].n;
[6921] Fix | Delete
groups[2].appendChild(opt);
[6922] Fix | Delete
} else {
[6923] Fix | Delete
opt.textContent = v;
[6924] Fix | Delete
groups[0].appendChild(opt);
[6925] Fix | Delete
}
[6926] Fix | Delete
}
[6927] Fix | Delete
else {
[6928] Fix | Delete
select.parentNode.tfClass('themify-combo-input')[0].value = v;
[6929] Fix | Delete
}
[6930] Fix | Delete
}
[6931] Fix | Delete
},
[6932] Fix | Delete
render(data, self) {
[6933] Fix | Delete
const wrapper = createElement('','tb_font_preview_wrapper'),
[6934] Fix | Delete
select =createElement('select',{class:'tb_lb_option font-family-select tf_scrollbar',id:data.id}),
[6935] Fix | Delete
preview = createElement('span','tb_font_preview'),
[6936] Fix | Delete
pw = createElement('span','',i18n.font_preview),
[6937] Fix | Delete
d = createDocumentFragment(),
[6938] Fix | Delete
v = self.getStyleVal(data.id),
[6939] Fix | Delete
_this = this,
[6940] Fix | Delete
group = {safe: i18n.safe_fonts, google: i18n.google_fonts},
[6941] Fix | Delete
cfEmpty = Object.keys(this.cf).length < 1;
[6942] Fix | Delete
if (false === cfEmpty) {
[6943] Fix | Delete
group.cf = i18n.cf_fonts;
[6944] Fix | Delete
}
[6945] Fix | Delete
d.appendChild(createElement('option',{value:''},'---'));
[6946] Fix | Delete
if (data.class !== undefined) {
[6947] Fix | Delete
select.className += ' ' + data.class;
[6948] Fix | Delete
}
[6949] Fix | Delete
const groupKeys = ['google', 'safe'];
[6950] Fix | Delete
if (false === cfEmpty) {
[6951] Fix | Delete
groupKeys.push('cf');
[6952] Fix | Delete
}
[6953] Fix | Delete
for (let i = groupKeys.length - 1; i > -1; --i) {
[6954] Fix | Delete
let optgroup = createElement('optgroup',{label:group[groupKeys[i]]});
[6955] Fix | Delete
if (v !== undefined) {
[6956] Fix | Delete
let txt;
[6957] Fix | Delete
if ('safe' === groupKeys[i] && this.safe[v] !== undefined) {
[6958] Fix | Delete
txt = this.safe[v];
[6959] Fix | Delete
} else if ('google' === groupKeys[i] && this.google[v] !== undefined) {
[6960] Fix | Delete
txt = this.google[v].n;
[6961] Fix | Delete
} else {
[6962] Fix | Delete
txt = this.cf[v]?.n ?? v;
[6963] Fix | Delete
}
[6964] Fix | Delete
optgroup.appendChild(createElement('option',{value:v,selected:''},txt));
[6965] Fix | Delete
}
[6966] Fix | Delete
d.appendChild(optgroup);
[6967] Fix | Delete
}
[6968] Fix | Delete
const focusIn = function () {
[6969] Fix | Delete
this.tfOff('focusin tf_init', focusIn, {once: true, passive: true});
[6970] Fix | Delete
const fonts = _this.safe,
[6971] Fix | Delete
f = createDocumentFragment(),
[6972] Fix | Delete
sel = this.querySelector('select'),
[6973] Fix | Delete
groups = sel.tfTag('optgroup');
[6974] Fix | Delete
sel.dataset.init = true;
[6975] Fix | Delete
if (v !== undefined) {
[6976] Fix | Delete
for (let h = groups.length - 1; h > -1; --h) {
[6977] Fix | Delete
groups[h].replaceChildren();
[6978] Fix | Delete
}
[6979] Fix | Delete
}
[6980] Fix | Delete
for (let i in fonts) {
[6981] Fix | Delete
let opt = createElement('option',{value:i,'data-type':'webfont'},fonts[i]);
[6982] Fix | Delete
if (v === i) {
[6983] Fix | Delete
opt.selected = true;
[6984] Fix | Delete
}
[6985] Fix | Delete
f.appendChild(opt);
[6986] Fix | Delete
}
[6987] Fix | Delete
groups[cfEmpty ? 0 : 1].appendChild(f);
[6988] Fix | Delete
const extGroups = ['google'];
[6989] Fix | Delete
if (false === cfEmpty) {
[6990] Fix | Delete
extGroups.unshift('cf');
[6991] Fix | Delete
}
[6992] Fix | Delete
for (let g = extGroups.length - 1; g > -1; --g) {
[6993] Fix | Delete
let ff = _this[extGroups[g]],
[6994] Fix | Delete
fr = createDocumentFragment();
[6995] Fix | Delete
for (let i in ff) {
[6996] Fix | Delete
let opt =createElement('option',{value:i,'data-type':extGroups[g]},ff[i].n);
[6997] Fix | Delete
if (v === i) {
[6998] Fix | Delete
opt.selected = true;
[6999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function