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: video.mjs
(api => {
[0] Fix | Delete
"use strict";
[1] Fix | Delete
api.ModuleVideo = class extends api.Module {
[2] Fix | Delete
constructor(fields) {
[3] Fix | Delete
super(fields);
[4] Fix | Delete
}
[5] Fix | Delete
static getOptions() {
[6] Fix | Delete
return [
[7] Fix | Delete
{
[8] Fix | Delete
id: 'mod_title_video',
[9] Fix | Delete
type: 'title'
[10] Fix | Delete
},
[11] Fix | Delete
{
[12] Fix | Delete
id: 'style_video',
[13] Fix | Delete
type: 'layout',
[14] Fix | Delete
label: 'vidlay',
[15] Fix | Delete
mode: 'sprite',
[16] Fix | Delete
options: [
[17] Fix | Delete
{
[18] Fix | Delete
img: 'video_top',
[19] Fix | Delete
value: 'video-top',
[20] Fix | Delete
label: 'vidtop'
[21] Fix | Delete
},
[22] Fix | Delete
{
[23] Fix | Delete
img: 'video_left',
[24] Fix | Delete
value: 'video-left',
[25] Fix | Delete
label: 'vidleft'
[26] Fix | Delete
},
[27] Fix | Delete
{
[28] Fix | Delete
img: 'video_right',
[29] Fix | Delete
value: 'video-right',
[30] Fix | Delete
label: 'vidright'
[31] Fix | Delete
},
[32] Fix | Delete
{
[33] Fix | Delete
img: 'video_overlay',
[34] Fix | Delete
value: 'video-overlay',
[35] Fix | Delete
label: 'vidoverlay'
[36] Fix | Delete
}
[37] Fix | Delete
],
[38] Fix | Delete
control: {
[39] Fix | Delete
classSelector: ''
[40] Fix | Delete
}
[41] Fix | Delete
},
[42] Fix | Delete
{
[43] Fix | Delete
id: 'url_video',
[44] Fix | Delete
type: 'video',
[45] Fix | Delete
label: 'vidurl',
[46] Fix | Delete
help: 'vidurlh',
[47] Fix | Delete
binding: {
[48] Fix | Delete
external: {
[49] Fix | Delete
hide: 'tb_video_local_wrap',
[50] Fix | Delete
show: ['tb_video_container', 'tb_video_external_wrap']
[51] Fix | Delete
},
[52] Fix | Delete
local: {
[53] Fix | Delete
hide: 'tb_video_external_wrap',
[54] Fix | Delete
show: ['tb_video_container', 'tb_video_local_wrap']
[55] Fix | Delete
},
[56] Fix | Delete
empty: {
[57] Fix | Delete
hide: [
[58] Fix | Delete
'tb_video_container'
[59] Fix | Delete
]
[60] Fix | Delete
}
[61] Fix | Delete
},
[62] Fix | Delete
required: {
[63] Fix | Delete
message: 'viderr'
[64] Fix | Delete
}
[65] Fix | Delete
},
[66] Fix | Delete
{
[67] Fix | Delete
type: 'group',
[68] Fix | Delete
wrap_class: 'tb_video_container',
[69] Fix | Delete
options: [
[70] Fix | Delete
{
[71] Fix | Delete
type: 'group',
[72] Fix | Delete
wrap_class: 'tb_video_external_wrap',
[73] Fix | Delete
options: [
[74] Fix | Delete
{
[75] Fix | Delete
id: 'ext_start',
[76] Fix | Delete
type: 'number',
[77] Fix | Delete
label: 'starttime',
[78] Fix | Delete
help: 'starttimeh'
[79] Fix | Delete
},
[80] Fix | Delete
{
[81] Fix | Delete
id: 'ext_end',
[82] Fix | Delete
type: 'number',
[83] Fix | Delete
label: 'endtime',
[84] Fix | Delete
help: 'endtimeh'
[85] Fix | Delete
}
[86] Fix | Delete
]
[87] Fix | Delete
},
[88] Fix | Delete
{
[89] Fix | Delete
id: 'ext_hide_ctrls',
[90] Fix | Delete
type: 'toggle_switch',
[91] Fix | Delete
label: 'playctrls',
[92] Fix | Delete
binding: {
[93] Fix | Delete
checked: {
[94] Fix | Delete
show: 'dl_btn'
[95] Fix | Delete
},
[96] Fix | Delete
not_checked: {
[97] Fix | Delete
hide: 'dl_btn'
[98] Fix | Delete
}
[99] Fix | Delete
}
[100] Fix | Delete
},
[101] Fix | Delete
{
[102] Fix | Delete
type: 'group',
[103] Fix | Delete
wrap_class: 'tb_video_external_wrap',
[104] Fix | Delete
options: [
[105] Fix | Delete
{
[106] Fix | Delete
id: 'ext_privacy',
[107] Fix | Delete
type: 'toggle_switch',
[108] Fix | Delete
options: {
[109] Fix | Delete
on: {
[110] Fix | Delete
name: '1',
[111] Fix | Delete
value: 'en'
[112] Fix | Delete
},
[113] Fix | Delete
off: {
[114] Fix | Delete
name: '',
[115] Fix | Delete
value: 'dis'
[116] Fix | Delete
}
[117] Fix | Delete
},
[118] Fix | Delete
label: 'privmod'
[119] Fix | Delete
}
[120] Fix | Delete
]
[121] Fix | Delete
},
[122] Fix | Delete
{
[123] Fix | Delete
type: 'group',
[124] Fix | Delete
wrap_class: 'tb_video_local_wrap',
[125] Fix | Delete
options: [
[126] Fix | Delete
{
[127] Fix | Delete
id: 'dl_btn',
[128] Fix | Delete
type: 'toggle_switch',
[129] Fix | Delete
options: {
[130] Fix | Delete
on: {
[131] Fix | Delete
name: '1',
[132] Fix | Delete
value: 'en'
[133] Fix | Delete
},
[134] Fix | Delete
off: {
[135] Fix | Delete
name: '',
[136] Fix | Delete
value: 'dis'
[137] Fix | Delete
}
[138] Fix | Delete
},
[139] Fix | Delete
label: 'dwldbtn'
[140] Fix | Delete
},
[141] Fix | Delete
{
[142] Fix | Delete
id: 'hover_play',
[143] Fix | Delete
type: 'toggle_switch',
[144] Fix | Delete
label: 'plyhover',
[145] Fix | Delete
options: 'simple',
[146] Fix | Delete
default:'off',
[147] Fix | Delete
binding: {
[148] Fix | Delete
checked: {
[149] Fix | Delete
hide: 'tb_v_autoplay'
[150] Fix | Delete
},
[151] Fix | Delete
not_checked: {
[152] Fix | Delete
show: 'tb_v_autoplay'
[153] Fix | Delete
}
[154] Fix | Delete
}
[155] Fix | Delete
}
[156] Fix | Delete
]
[157] Fix | Delete
},
[158] Fix | Delete
{
[159] Fix | Delete
type: 'group',
[160] Fix | Delete
wrap_class: 'tb_v_autoplay',
[161] Fix | Delete
options: [
[162] Fix | Delete
{
[163] Fix | Delete
id: 'autoplay_video',
[164] Fix | Delete
type: 'toggle_switch',
[165] Fix | Delete
label: 'autoplay',
[166] Fix | Delete
options: 'simple',
[167] Fix | Delete
default:'off',
[168] Fix | Delete
binding: {
[169] Fix | Delete
checked: {
[170] Fix | Delete
show: 'autoplay_text'
[171] Fix | Delete
},
[172] Fix | Delete
not_checked: {
[173] Fix | Delete
hide: 'autoplay_text'
[174] Fix | Delete
}
[175] Fix | Delete
}
[176] Fix | Delete
},
[177] Fix | Delete
{
[178] Fix | Delete
id: 'autoplay_text',
[179] Fix | Delete
type: 'message',
[180] Fix | Delete
label: '',
[181] Fix | Delete
comment: 'vidmuth'
[182] Fix | Delete
}
[183] Fix | Delete
]
[184] Fix | Delete
},
[185] Fix | Delete
{
[186] Fix | Delete
id: 'mute_video',
[187] Fix | Delete
type: 'toggle_switch',
[188] Fix | Delete
label: 'mute',
[189] Fix | Delete
options: 'simple',
[190] Fix | Delete
default:'off'
[191] Fix | Delete
},
[192] Fix | Delete
{
[193] Fix | Delete
id: 'loop',
[194] Fix | Delete
type: 'toggle_switch',
[195] Fix | Delete
label: 'loop',
[196] Fix | Delete
options: 'simple',
[197] Fix | Delete
default:'off'
[198] Fix | Delete
},
[199] Fix | Delete
{
[200] Fix | Delete
id: 'o_i_c',
[201] Fix | Delete
label: 'overimg',
[202] Fix | Delete
type: 'toggle_switch',
[203] Fix | Delete
options: {
[204] Fix | Delete
on: {
[205] Fix | Delete
name: '1',
[206] Fix | Delete
value: 'en'
[207] Fix | Delete
},
[208] Fix | Delete
off: {
[209] Fix | Delete
name: '',
[210] Fix | Delete
value: 'dis'
[211] Fix | Delete
}
[212] Fix | Delete
},
[213] Fix | Delete
binding: {
[214] Fix | Delete
checked: {
[215] Fix | Delete
show: [
[216] Fix | Delete
'o_i',
[217] Fix | Delete
'o_m'
[218] Fix | Delete
]
[219] Fix | Delete
},
[220] Fix | Delete
not_checked: {
[221] Fix | Delete
hide: [
[222] Fix | Delete
'o_i',
[223] Fix | Delete
'o_m'
[224] Fix | Delete
]
[225] Fix | Delete
}
[226] Fix | Delete
}
[227] Fix | Delete
},
[228] Fix | Delete
{
[229] Fix | Delete
id: 'o_i',
[230] Fix | Delete
type: 'image',
[231] Fix | Delete
label: ''
[232] Fix | Delete
},
[233] Fix | Delete
{
[234] Fix | Delete
id: 'o_m',
[235] Fix | Delete
type: 'multi',
[236] Fix | Delete
label: '',
[237] Fix | Delete
options: [
[238] Fix | Delete
{
[239] Fix | Delete
id: 'o_w',
[240] Fix | Delete
label: 'w',
[241] Fix | Delete
type: 'number'
[242] Fix | Delete
},
[243] Fix | Delete
{
[244] Fix | Delete
id: 'o_h',
[245] Fix | Delete
label: 'ht',
[246] Fix | Delete
type: 'number'
[247] Fix | Delete
}
[248] Fix | Delete
]
[249] Fix | Delete
},
[250] Fix | Delete
{
[251] Fix | Delete
id: 'width_video',
[252] Fix | Delete
type: 'number',
[253] Fix | Delete
label: 'vidw',
[254] Fix | Delete
help: 'vidwh',
[255] Fix | Delete
break: true,
[256] Fix | Delete
unit: {
[257] Fix | Delete
id: 'unit_video',
[258] Fix | Delete
options: {
[259] Fix | Delete
px: 'px',
[260] Fix | Delete
'%': '%'
[261] Fix | Delete
}
[262] Fix | Delete
}
[263] Fix | Delete
},
[264] Fix | Delete
{
[265] Fix | Delete
id: 'title_video',
[266] Fix | Delete
type: 'text',
[267] Fix | Delete
label: 'vidt',
[268] Fix | Delete
control: {
[269] Fix | Delete
selector: '.video-title'
[270] Fix | Delete
}
[271] Fix | Delete
},
[272] Fix | Delete
{
[273] Fix | Delete
id: 'title_tag',
[274] Fix | Delete
type: 'select',
[275] Fix | Delete
label: 'vidtag',
[276] Fix | Delete
h_tags: true,
[277] Fix | Delete
default: 'h3'
[278] Fix | Delete
},
[279] Fix | Delete
{
[280] Fix | Delete
id: 'title_link_video',
[281] Fix | Delete
type: 'url',
[282] Fix | Delete
label: 'vidtl'
[283] Fix | Delete
},
[284] Fix | Delete
{
[285] Fix | Delete
id: 'caption_video',
[286] Fix | Delete
type: 'textarea',
[287] Fix | Delete
label: 'vidcap',
[288] Fix | Delete
control: {
[289] Fix | Delete
selector: '.video-caption'
[290] Fix | Delete
}
[291] Fix | Delete
}
[292] Fix | Delete
]
[293] Fix | Delete
},
[294] Fix | Delete
{
[295] Fix | Delete
type: 'custom_css_id',
[296] Fix | Delete
custom_css: 'css_video'
[297] Fix | Delete
}
[298] Fix | Delete
];
[299] Fix | Delete
}
[300] Fix | Delete
static default() {
[301] Fix | Delete
return {
[302] Fix | Delete
url_video: 'https://www.youtube.com/watch?v=FPPce2D8pYI'
[303] Fix | Delete
};
[304] Fix | Delete
}
[305] Fix | Delete
getImage(data) {
[306] Fix | Delete
const setting = data || this.get('mod_settings'),
[307] Fix | Delete
videoUrl=setting.url_video,
[308] Fix | Delete
img=new Image(32,32);
[309] Fix | Delete
if(videoUrl){
[310] Fix | Delete
let provider=Themify.parseVideo(videoUrl),
[311] Fix | Delete
type=provider.type,
[312] Fix | Delete
imgUrl;
[313] Fix | Delete
if(type==='youtube'){
[314] Fix | Delete
imgUrl='https://img.youtube.com/vi/'+provider.id+'/default.jpg';
[315] Fix | Delete
}
[316] Fix | Delete
else if(type==='vimeo'){
[317] Fix | Delete
imgUrl='https://vumbnail.com/'+provider.id+'.jpg';
[318] Fix | Delete
}else if(setting.o_i){
[319] Fix | Delete
imgUrl=setting.o_i;
[320] Fix | Delete
}
[321] Fix | Delete
if(imgUrl){
[322] Fix | Delete
img.src=imgUrl;
[323] Fix | Delete
if(!api.activeModel){
[324] Fix | Delete
img.loading='lazy';
[325] Fix | Delete
}
[326] Fix | Delete
img.alt=this.getName();
[327] Fix | Delete
return img;
[328] Fix | Delete
}
[329] Fix | Delete
}
[330] Fix | Delete
return super.getImage(setting);
[331] Fix | Delete
}
[332] Fix | Delete
getExcerpt(data) {
[333] Fix | Delete
const setting = data || this.get('mod_settings');
[334] Fix | Delete
return api.Helper.limitString(setting.title_video);
[335] Fix | Delete
}
[336] Fix | Delete
static builderSave(settings) {
[337] Fix | Delete
const def = {
[338] Fix | Delete
style_video: 'video-top',
[339] Fix | Delete
ext_hide_ctrls: 'no',
[340] Fix | Delete
mute_video: 'no',
[341] Fix | Delete
hover_play:'no',
[342] Fix | Delete
autoplay_video:'no',
[343] Fix | Delete
ext_branding:'no',
[344] Fix | Delete
loop: 'no',
[345] Fix | Delete
unit_video: 'px',
[346] Fix | Delete
title_tag: 'h3'
[347] Fix | Delete
},
[348] Fix | Delete
units=['font_size_caption','line_height_caption','f_s_c_h'];
[349] Fix | Delete
[350] Fix | Delete
for (let key in def) {
[351] Fix | Delete
if (settings[key] === def[key]) {
[352] Fix | Delete
delete settings[key];
[353] Fix | Delete
}
[354] Fix | Delete
}
[355] Fix | Delete
if (settings.width_video <= 0) {
[356] Fix | Delete
delete settings.unit_video;
[357] Fix | Delete
}
[358] Fix | Delete
if (settings.ext_hide_ctrls) {
[359] Fix | Delete
delete settings.dl_btn;
[360] Fix | Delete
}
[361] Fix | Delete
if (!settings.o_i_c) {
[362] Fix | Delete
delete settings.o_i;
[363] Fix | Delete
}
[364] Fix | Delete
if (!settings.o_i) {
[365] Fix | Delete
delete settings.o_w;
[366] Fix | Delete
delete settings.o_h;
[367] Fix | Delete
}
[368] Fix | Delete
if(settings.hover_play){
[369] Fix | Delete
delete settings.autoplay_video;
[370] Fix | Delete
}
[371] Fix | Delete
for(let bps=api.breakpointsReverse,i=bps.length-1;i>-1;--i){
[372] Fix | Delete
let bp=bps[i];
[373] Fix | Delete
//Font color
[374] Fix | Delete
this.clearFontColor('font_color_type','font_color','font_gradient_color',bp,settings);
[375] Fix | Delete
this.clearFontColor('f_c_h_f_c_t_h','f_g_c_h_f_c_t_h','f_g_c_f_c_t_h',bp,settings);
[376] Fix | Delete
//Text Shadow
[377] Fix | Delete
this.clearShadow('text-shadow',0,bp,settings);
[378] Fix | Delete
this.clearShadow('t_sh_h',0,bp,settings);
[379] Fix | Delete
this.clearShadow('t_sh_m_t',0,bp,settings);
[380] Fix | Delete
this.clearShadow('t_sh_m_t_h',0,bp,settings);
[381] Fix | Delete
this.clearShadow('t_sh_t',0,bp,settings);
[382] Fix | Delete
this.clearShadow('t_sh_t_h',0,bp,settings);
[383] Fix | Delete
this.clearShadow('t_sh_c',0,bp,settings);
[384] Fix | Delete
this.clearShadow('t_sh_c_h',0,bp,settings);
[385] Fix | Delete
//paddings
[386] Fix | Delete
this.clearPadding('padding',bp,settings);
[387] Fix | Delete
this.clearPadding('p_h',bp,settings);
[388] Fix | Delete
this.clearPadding('p_o_i',bp,settings);
[389] Fix | Delete
this.clearPadding('p_o_i_h',bp,settings);
[390] Fix | Delete
//margin
[391] Fix | Delete
this.clearPadding('margin',bp,settings);
[392] Fix | Delete
this.clearPadding('m_h',bp,settings);
[393] Fix | Delete
this.clearPadding('m_o_i',bp,settings);
[394] Fix | Delete
this.clearPadding('m_o_i_h',bp,settings);
[395] Fix | Delete
//border-radius
[396] Fix | Delete
this.clearPadding('b_ra',bp,settings);
[397] Fix | Delete
this.clearPadding('r_c_h',bp,settings);
[398] Fix | Delete
this.clearPadding('r_c_o_i',bp,settings);
[399] Fix | Delete
this.clearPadding('r_c_o_i_h',bp,settings);
[400] Fix | Delete
//border
[401] Fix | Delete
this.clearBorder('border',bp,settings);
[402] Fix | Delete
this.clearBorder('b_h',bp,settings);
[403] Fix | Delete
this.clearBorder('b_o_i',bp,settings);
[404] Fix | Delete
this.clearBorder('b_o_i_h',bp,settings);
[405] Fix | Delete
//filters
[406] Fix | Delete
this.clearFilter('bl_m','css_f',bp,settings);
[407] Fix | Delete
this.clearFilter('_h','css_f_h',bp,settings);
[408] Fix | Delete
//width,height
[409] Fix | Delete
this.clearWidth('w',bp,settings);
[410] Fix | Delete
this.clearWidth('ht',bp,settings,1);
[411] Fix | Delete
//Box Shadow
[412] Fix | Delete
this.clearShadow('b_sh',1,bp,settings);
[413] Fix | Delete
this.clearShadow('sh_h',1,bp,settings);
[414] Fix | Delete
this.clearShadow('b_sh_o_i',1,bp,settings);
[415] Fix | Delete
this.clearShadow('b_sh_o_i_h',1,bp,settings);
[416] Fix | Delete
//transform
[417] Fix | Delete
this.clearTransform('tr',bp,settings);
[418] Fix | Delete
this.clearTransform('tr-h',bp,settings);
[419] Fix | Delete
//units
[420] Fix | Delete
this.clearUnits(units,bp,settings);
[421] Fix | Delete
}
[422] Fix | Delete
super.builderSave(settings);
[423] Fix | Delete
}
[424] Fix | Delete
preview(data){
[425] Fix | Delete
const module=createElement(),
[426] Fix | Delete
outer=createElement('','video-wrap-outer'),
[427] Fix | Delete
wrap=createElement('','video-wrap tf_rel tf_overflow'),
[428] Fix | Delete
classes=['module','module-video', data.style_video || 'video-top'],
[429] Fix | Delete
url = data.url_video,
[430] Fix | Delete
constructor=this.constructor;
[431] Fix | Delete
if(url){
[432] Fix | Delete
const provider = Themify.parseVideo(url),
[433] Fix | Delete
type=provider.type,
[434] Fix | Delete
isLocal=type!== 'youtube' && type !== 'vimeo',
[435] Fix | Delete
isOverlay=data.o_i && ~~data.o_i_c===1;
[436] Fix | Delete
[437] Fix | Delete
if(data.css_video){
[438] Fix | Delete
classes.push(data.css_video);
[439] Fix | Delete
}
[440] Fix | Delete
if(data.autoplay_video==='yes'){
[441] Fix | Delete
classes.push('video-autoplay');
[442] Fix | Delete
}
[443] Fix | Delete
if(data.width_video){
[444] Fix | Delete
outer.style.maxWidth= data.width_video+(data.unit_video || 'px');
[445] Fix | Delete
}
[446] Fix | Delete
if(isLocal){
[447] Fix | Delete
const video=createElement('video',{src:url,preload:'none','webkit-playsinline':1,playsinline:1}),
[448] Fix | Delete
dataset=video.dataset;
[449] Fix | Delete
if(video.loop === 'yes'){
[450] Fix | Delete
video.loop=1;
[451] Fix | Delete
}
[452] Fix | Delete
if(isOverlay){
[453] Fix | Delete
dataset.noScript=1;
[454] Fix | Delete
}
[455] Fix | Delete
if(data.mute_video === 'yes'){
[456] Fix | Delete
video.muted=1;
[457] Fix | Delete
}
[458] Fix | Delete
[459] Fix | Delete
if(data.hover_play === 'yes'){
[460] Fix | Delete
dataset.hoverPlay=1;
[461] Fix | Delete
classes.push('tb_hover_play');
[462] Fix | Delete
}
[463] Fix | Delete
else if(data.autoplay_video === 'yes'){
[464] Fix | Delete
dataset.autoplay=1;
[465] Fix | Delete
}
[466] Fix | Delete
if(data.dl_btn){
[467] Fix | Delete
dataset.download=1;
[468] Fix | Delete
}
[469] Fix | Delete
if(data.ext_hide_ctrls === 'yes'){
[470] Fix | Delete
dataset.hideControls=1;
[471] Fix | Delete
}
[472] Fix | Delete
if(isOverlay){
[473] Fix | Delete
const lazy=createElement('','tf_vd_lazy tf_w tf_box tf_rel');
[474] Fix | Delete
lazy.appendChild(video);
[475] Fix | Delete
wrap.appendChild(lazy);
[476] Fix | Delete
}else{
[477] Fix | Delete
wrap.appendChild(video);
[478] Fix | Delete
}
[479] Fix | Delete
[480] Fix | Delete
wrap.className+=' tf_local_video';
[481] Fix | Delete
}
[482] Fix | Delete
else{
[483] Fix | Delete
let queryArgs = {},
[484] Fix | Delete
allow = 'fullscreen',
[485] Fix | Delete
src,
[486] Fix | Delete
params = new URL(url),
[487] Fix | Delete
noscript=createElement('noscript');
[488] Fix | Delete
if (provider.h) {//h query argument should be first in vimeo
[489] Fix | Delete
queryArgs.h = provider.h;
[490] Fix | Delete
}
[491] Fix | Delete
queryArgs.pip=queryArgs.playsinline=1;
[492] Fix | Delete
if (params.search) {
[493] Fix | Delete
for(let [key,val] of params.searchParams.entries()){
[494] Fix | Delete
if(key!=='v'){
[495] Fix | Delete
queryArgs[key]=val;
[496] Fix | Delete
}
[497] Fix | Delete
}
[498] Fix | Delete
}
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function