PageSourceSearch

https://gutscrapers.com/wp-content/plugins/music-player-for-elementor/js/mpfe-front.js?ver=2.6.1

js gutscrapers.com collected 2026-09-26 17:47:05 UTC 21,130 bytes, 502 lines download raw bytes

1(function($) {
2	var formatTimeHM = function (seconds) {
3		  const hrs = Math.floor(seconds / 3600);
4		  const mins = Math.floor((seconds % 3600) / 60);
5		  const secs = Math.floor(seconds % 60);
6
7		  if (hrs > 0) {
8		    return `${hrs}:${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
9		  } else {
10		    return `${mins}:${secs.toString().padStart(2, '0')}`;
11		  }
12		}
13
14	var handleSlidePlayer = function($scope, player_selector) {
15        $scope.find(player_selector).each(function() {
16
17			var item_hover_color = $(this).data("entryhbgcolor");
18			$(this).find('.swp_music_player_entry.wpb_smc_elt').each(function(){
19				$(this).hover(
20					function() {
21						$(this).css("background-color", item_hover_color);
22					}, function() {
23						$(this).css("background-color", "transparent");
24					}
25				);
26			});
27
28			var $player = $(this);
29			var player_id = $player.attr("id");
30			var $play_btn = $player.find('.fa-play.player_play');
31			var $pause_btn = $player.find('.fa-pause.player_pause');
32			var $fwd_btn = $player.find('.fa-step-forward');
33			var $bkw_btn = $player.find('.fa-step-backward');		
34			var $first_song = $player.find('.swp_music_player_entry').first();
35			var $last_song = $player.find('.swp_music_player_entry').last();
36			var $playing_song_name = $player.find('.current_song_name');
37			var $playing_album_name = $player.find('.current_album_name');
38			var $time_slider = $player.find('.player_time_slider');
39			var $song_duration = $player.find('.song_duration');
40			var $song_current_progress = $player.find('.song_current_progress');
41			var autoplay = $player.data('autoplay');
42			var playmode = $player.data('playmode');
43			var stop_on_playlist_end = $player.data('stopplaylistend');
44			var stop_on_song_end = $player.data('stopsongend');
45			var play_from_start = $player.data('pfs');
46			var repeatmode = $player.data("repeatmode");
47			var shuffle_btn_on = false, repeat_btn_on = false;
48			var $ps_elt = $player.find('.compact-playback-speed');
49			var $ps_val = $ps_elt.find('.ps-val');
50			var $ps_opts = $player.find('ul.compact-ps-opts');
51			var other_mpfe = new Array();
52
53
54			$('.swp_music_player').not('#' + player_id).each(function(){
55				other_mpfe.push($(this).attr('id'));
56			});
57
58			$ps_val.on('click', function(){
59				$ps_opts.toggle();
60			})
61			$('.compact-ps-opt').on('click', function(){
62				var new_pstext = $(this).text();
63				var new_psval = new_pstext.substring(0,new_pstext.length - 1)
64				$ps_opts.toggle();
65				$ps_val.text(new_pstext);
66				$player.find('audio').each(function() {
67					$(this).get(0).playbackRate = new_psval;
68				});
69			})
70
71			function resetAudioTime(audioElement) {
72			    if (!audioElement || !audioElement.src) {
73			        return;
74			    }
75
76			    if (!audioElement.paused) {
77			        audioElement.pause();
78			    }
79			    if (play_from_start === "yes") {
80			        audioElement.currentTime = 0;
81			    }
82			}
83
84			function handleCoverImg($crt_elt) {
85				if(!$player.data('playerimg')) {
86					return;
87				}
88
89				if (!$crt_elt.data('trackimg')) {
90					/*set the album default img*/
91					$player.find('.music_player_left').removeAttr("style");
92					return;
93				}
94
95				/*song individual cover*/
96				$player.find('.music_player_left').css('background-image', 'url(' + $crt_elt.data('trackimg') + ')');
97			}
98
99			function handleAlbumInfoForCompact($crt_elt) {
100				if (!$player.hasClass('compact-player')) {
101					return;
102				}
103
104				$playing_album_name.text($crt_elt.find('.player_song_name').data('albumname'));
105			}
106
107			function stopOtherPlayers() {
108				other_mpfe.forEach(function(mpfe_player_id){
109					var $crt_play = $('#' + mpfe_player_id).find('.swp_music_player_entry.now_playing');
110					if ($crt_play.length){
111						$crt_play.find('audio').get(0).pause();
112						$('#' + mpfe_player_id).find('.fa-play.player_play').removeClass("display_none");
113						$('#' + mpfe_player_id).find('.fa-pause').addClass("display_none");			
114					}
115				});
116			}
117
118			$player.find('.swp_music_player_entry').each(function(){
119				var $player_entry = $(this);
120				var audio = new Audio($player_entry.data("mediafile"));
121				audio.type= 'audio/mpeg';
122				audio.preload = 'metadata';
123				$(this).append(audio);
124
125
126				audio.onloadedmetadata = function() {
127					$player_entry.find('.entry_duration').text(formatTimeHM(audio.duration));
128					if ($first_song.is($player_entry)) {
129						$song_duration.text(formatTimeHM(audio.duration));
130					}
131				};
132
133				audio.onended  = function() {
134					var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
135					var $next_elt = get_next_player_elt($crt_elt);
136
137					$playing_song_name.text($next_elt.find('.player_song_name').text());
138					$song_duration.text(formatTimeHM($next_elt.find('audio').get(0).duration));
139					$crt_elt.removeClass('now_playing');
140					$next_elt.addClass('now_playing');
141
142					if ("yes" == stop_on_song_end) {
143						$play_btn.removeClass("display_none");
144						$pause_btn.addClass("display_none");
145						
146						return;						
147					}
148
149					/*on repeat current song and repeat active, bypass stop when playlist ends*/
150					if (!(("current_song" == repeatmode) && repeat_btn_on)) {
151						/*stop when playlist ends*/
152						if (("yes" == stop_on_playlist_end) && (!$crt_elt.next().length)) {
153							$play_btn.removeClass("display_none");
154							$pause_btn.addClass("display_none");
155							
156							return;
157						}						
158					}
159
160					resetAudioTime($next_elt.find('audio').get(0));
161					$next_elt.find('audio').get(0).play();
162					$next_elt.addClass('mpfe_already_played');
163					stopOtherPlayers();
164					handleCoverImg($next_elt);
165					handleAlbumInfoForCompact($next_elt);
166					$play_btn.addClass("display_none");
167					$pause_btn.removeClass("display_none");
168				};			
169
170				audio.addEventListener("timeupdate", function() {
171				    var currentTime = audio.currentTime;
172				    var duration = audio.duration;
173				    $time_slider.stop(true,true).css('width', (currentTime +.25)/duration*100+'%');
174				    $song_current_progress.text(formatTimeHM(currentTime));
175				});
176			});
177
178			/*load the 1st song*/
179			$first_song.addClass("now_playing");
180			$playing_song_name.text($first_song.find('.player_song_name').text());
181			handleAlbumInfoForCompact($first_song);
182
183			$song_current_progress.text("0:00");
184			if ("yes" == autoplay) {
185				var fp_response = $first_song.find('audio').get(0).play();
186				handleCoverImg($first_song);
187				if (fp_response!== undefined) {
188					fp_response.then(_ => {
189						$play_btn.toggleClass("display_none");
190						$pause_btn.toggleClass("display_none");
191						$first_song.addClass('mpfe_already_played');
192						stopOtherPlayers();
193					}).catch(error => {
194						$(document).on('click', function(e) {
195							if (!$first_song.hasClass("autoplay_loaded")) {
196								$first_song.find('audio').get(0).play();
197								$first_song.addClass('mpfe_already_played');
198								$play_btn.toggleClass("display_none");
199								$pause_btn.toggleClass("display_none");
200								$first_song.addClass("autoplay_loaded");
201							}
202						});
203					});
204				}
205			}
206
207			$play_btn.off('click').on('click', function() {
208				stopOtherPlayers();
209				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
210				$crt_elt.find('audio').get(0).play();
211				$crt_elt.addClass('mpfe_already_played');
212
213				stopOtherPlayers();
214				handleCoverImg($crt_elt);
215				handleAlbumInfoForCompact($crt_elt);
216				$play_btn.addClass("display_none");
217				$pause_btn.removeClass("display_none");
218				toggleCompactPlaylistUnderPlayPause($player, 'play');
219			});
220			$pause_btn.off('click').on('click', function() {
221				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
222				$crt_elt.find('audio').get(0).pause();
223				$play_btn.removeClass("display_none");
224				$pause_btn.addClass("display_none");
225				toggleCompactPlaylistUnderPlayPause($player, 'pause');
226			});
227
228			$fwd_btn.off('click').on('click', function() {
229				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
230				$crt_elt.find('audio').get(0).pause();
231
232				var $next_elt = get_next_player_elt($crt_elt);
233
234				$playing_song_name.text($next_elt.find('.player_song_name').text());
235				$next_elt.find('audio').get(0).currentTime = 0;
236				$next_elt.find('audio').get(0).play();
237				$next_elt.addClass('mpfe_already_played');
238				stopOtherPlayers();
239				handleCoverImg($next_elt);
240				handleAlbumInfoForCompact($next_elt);
241				$song_duration.text(formatTimeHM($next_elt.find('audio').get(0).duration));
242				$crt_elt.removeClass('now_playing');
243				$next_elt.addClass('now_playing');
244				$play_btn.addClass("display_none");
245				$pause_btn.removeClass("display_none");
246				toggleCompactPlaylistCrtNext($player, $crt_elt, $next_elt);
247			});
248
249			$bkw_btn.off('click').on('click', function() {
250				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
251				$crt_elt.find('audio').get(0).pause();
252				var $prev_elt = $crt_elt.prev();
253				if (!$prev_elt.length) {
254					$prev_elt = $last_song;
255				}
256				$playing_song_name.text($prev_elt.find('.player_song_name').text());
257				resetAudioTime($prev_elt.find('audio').get(0));
258				$prev_elt.find('audio').get(0).play();
259				$prev_elt.addClass('mpfe_already_played');
260				stopOtherPlayers();
261				handleCoverImg($prev_elt);
262				handleAlbumInfoForCompact($prev_elt);
263				$song_duration.text(formatTimeHM($prev_elt.find('audio').get(0).duration));
264				$crt_elt.removeClass('now_playing');
265				$prev_elt.addClass('now_playing');
266				$play_btn.addClass("display_none");
267				$pause_btn.removeClass("display_none");
268				toggleCompactPlaylistCrtNext($player, $crt_elt, $prev_elt);
269			});
270
271			$player.find('.player_entry_left').on('click', function(){
272				var $next_elt = $(this).parent();
273				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
274
275				/*alow play pause from the playlist for compact player with under playlist*/
276				if ($(this).hasClass('compact_player_entry_left')) {
277					var $play_small_btn = $(this).find('.compact_bs_play');
278					var $pause_small_btn = $(this).find('.compact_bs_pause');
279					var crt_time = $crt_elt.find('audio').get(0).currentTime;
280
281					/*check if we need to pause*/
282					if ($next_elt.is($crt_elt) && (0 != crt_time)) {
283						if ($crt_elt.hasClass('now_paused')) {
284							/*continue playing if was paused*/
285							$crt_elt.find('audio').get(0).play();
286							$crt_elt.removeClass('now_paused');
287
288							showPauseHidePlay($play_small_btn, $pause_small_btn);
289							showPauseHidePlay($play_btn, $pause_btn);
290						} else {
291							/*pause song*/
292							$crt_elt.find('audio').get(0).pause();
293
294							showPlayHidePause($play_small_btn, $pause_small_btn);
295							showPlayHidePause($play_btn, $pause_btn);
296
297							$crt_elt.addClass('now_paused');
298						}
299
300						return;
301					} else {
302						/*show small pause button*/
303						showPauseHidePlay($play_small_btn, $pause_small_btn);
304						/*show small play for current*/
305						if (0 != crt_time) {
306							showPlayHidePause($crt_elt.find('.compact_bs_play'), $crt_elt.find('.compact_bs_pause'));	
307						}
308						
309					}
310				}
311
312				$crt_elt.find('audio').get(0).pause();
313				$crt_elt.removeClass('now_playing');
314
315				$next_elt.addClass('now_playing');
316				resetAudioTime($next_elt.find('audio').get(0));
317				$next_elt.find('audio').get(0).play();
318				$next_elt.addClass('mpfe_already_played');
319				stopOtherPlayers();
320				handleCoverImg($next_elt);
321				handleAlbumInfoForCompact($next_elt);
322				$song_duration.text(formatTimeHM($(this).parent().find('audio').get(0).duration));
323				$playing_song_name.text($(this).find('.player_song_name').text());
324
325				$play_btn.addClass("display_none");
326				$pause_btn.removeClass("display_none");			
327			});
328
329			$player.find('.player_time_slider_base').on('click', function(e){
330				var $slider_elt = $(this);
331				var elt_width = $slider_elt.width();
332				var click_pos = e.pageX - Math.floor($slider_elt.offset().left);
333				
334				if( $(this).hasClass('rtl_direction') ) {
335					click_pos = Math.floor($slider_elt.offset().left + elt_width) - e.pageX;
336				}
337				
338				var percent_progress = Math.floor(click_pos/elt_width*100);
339				$time_slider.width(percent_progress + "%");
340
341				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
342				$crt_elt.find('audio').get(0).currentTime = $crt_elt.find('audio').get(0).duration * (percent_progress/100);
343			});
344
345			var get_next_player_elt = function($crt_elt) {
346				/*repeat*/
347				if ("repeat" == playmode) {
348					if (("current_song" == repeatmode) && repeat_btn_on) {
349						return $crt_elt;
350					}
351
352					var $next_elt = $crt_elt.next();
353					if (!$next_elt.length) {
354						$next_elt = $first_song;
355					}
356					return $next_elt;
357				}
358				/*shuffle*/
359				var playlist_size = $player.find('.swp_music_player_entry').length;
360				var already_played_size = $player.find('.swp_music_player_entry.mpfe_already_played').length;
361				console.log("playlist size: " + playlist_size + " already played size: " + already_played_size);
362				if (already_played_size == playlist_size) {
363					$player.find('.swp_music_player_entry.mpfe_already_played').each(function(){
364						$(this).removeClass('mpfe_already_played');
365					});
366				}
367
368				var $playlist = $player.find('.swp_music_player_entry').not('.now_playing').not('.mpfe_already_played').toArray();
369				return jQuery($playlist[Math.floor(Math.random() * $playlist.length)]);
370			}
371
372			var showPlayHidePause = function($playBtn, $pauseBtn) {
373    			$playBtn.removeClass('display_none');
374    			$pauseBtn.addClass('display_none');
375			}
376
377			var showPauseHidePlay = function($playBtn, $pauseBtn) {
378    			$playBtn.addClass('display_none');
379    			$pauseBtn.removeClass('display_none');
380			}
381
382			var toggleCompactPlaylistUnderPlayPause = function($player, $button_pressed = 'play') {
383				var $compact_playlist = $player.find('.swp-playlist-under');
384				if (!$compact_playlist.length) {
385					return;
386				}
387
388				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
389				var $play_small_btn = $crt_elt.find('.compact_bs_play');
390				var $pause_small_btn = $crt_elt.find('.compact_bs_pause');
391				if ('play' == $button_pressed) {
392					showPauseHidePlay($play_small_btn, $pause_small_btn);
393				} else {
394					showPlayHidePause($play_small_btn, $pause_small_btn);
395				}
396			}
397
398			var toggleCompactPlaylistCrtNext = function($player, $crt, $next) {
399				var $compact_playlist = $player.find('.swp-playlist-under');
400				if (!$compact_playlist.length) {
401					return;
402				}
403
404				var $crt_small_play = $crt.find('.compact_bs_play');
405				var $crt_small_pause = $crt.find('.compact_bs_pause');
406				showPlayHidePause($crt_small_play, $crt_small_pause);
407
408				var $next_small_play = $next.find('.compact_bs_play');
409				var $next_small_pause = $next.find('.compact_bs_pause');
410				showPauseHidePlay($next_small_play, $next_small_pause);
411
412			}
413
414			$player.find('i.playback-shuffle').on('click', function(e){
415				if(shuffle_btn_on) {
416					$player.attr('data-playmode', "repeat");
417					playmode = "repeat";
418					shuffle_btn_on = false;
419				} else {
420					$player.attr('data-playmode', "shuffle");
421					playmode = "shuffle";
422					shuffle_btn_on = true;
423				}
424				$(this).toggleClass("is_active");
425			});
426			$player.find('i.playback-repeat').on('click', function(e){
427				if (repeat_btn_on) {
428					if (shuffle_btn_on) {
429						$player.attr('data-playmode', "shuffle");
430						playmode = "shuffle";
431					}
432					repeat_btn_on = false;
433				} else {
434					$player.attr('data-playmode', "repeat");
435					playmode = "repeat";
436					repeat_btn_on = true;
437				}
438				$(this).toggleClass("is_active");
439			});
440
441        });
442	}
443
444    var MPFESlideMusicPlayer = function($scope, $) {
445		$scope.find('.mpfe-sr-helper').on('click', function(e){
446			e.preventDefault();
447		});
448
449		handleSlidePlayer($scope, '.swp_music_player');
450
451    }
452
453	var MPFESlideCompactPlayer = function($scope, $) {
454		handleSlidePlayer($scope, '.swp_music_player.compact-player');
455
456		$('.mpfe-compact-list').on('click', function(){
457			$(this).closest('.swp_music_player').find('.swp-compact-playlist').addClass('list-visible');
458			$(window).addClass('swp-overflow-y-hidden');
459		});
460		$('.compact-close-playlist-container').on('click', function(){
461			$(this).closest('.swp-compact-playlist').removeClass('list-visible');
462			$(window).removeClass('swp-overflow-y-hidden');
463		});
464
465		handleVolumeControl($scope, '.swp_music_player.compact-player');
466
467
468	}
469
470	var handleVolumeControl = function($scope, player_selector) {
471		var $toggle_vol = $scope.find('.mpfe-toggle-vol');
472		var $range_vol = $scope.find('.mpfe-range-vol');
473		var $slider = $scope.find('.mpfe-input-range');
474		var $player = $scope.find(player_selector);
475
476		$toggle_vol.on('click', function() {
477			$range_vol.toggle();
478		})
479
480		$slider.on("input", function() {
481			$player.find('.swp_music_player_entry').each(function(){
482				$(this).find('audio').get(0).volume = $slider.val();
483			});
484			console.log("Value: " + $slider.val());
485		});
486	}
487	
488
489	$(window).on("elementor/frontend/init", function() {
490        elementorFrontend.hooks.addAction(
491            "frontend/element_ready/slide-music-player-free.default",
492            MPFESlideMusicPlayer
493        );
494        elementorFrontend.hooks.addAction(
495            "frontend/element_ready/slide-compact-player.default",
496            MPFESlideCompactPlayer
497        );
498	});
499
500})(jQuery);
501
502!function(){var e=document.createElement("input");try{if(e.type="range","range"==e.type)return}catch(e){return}if(e.style.background="linear-gradient(red, red)",e.style.backgroundImage&&"MozAppearance"in e.style){var t,n="MacIntel"==navigator.platform,i={radius:n?9:6,width:n?22:12,height:n?16:20},r="linear-gradient(transparent "+(n?"6px, #999 6px, #999 7px, #ccc 8px, #bbb 9px, #bbb 10px, transparent 10px":"9px, #999 9px, #bbb 10px, #fff 11px, transparent 11px")+", transparent)",a={"min-width":i.width+"px","min-height":i.height+"px","max-height":i.height+"px",padding:"0 0 "+(n?"2px":"1px"),border:0,"border-radius":0,cursor:"default","text-indent":"-999999px"},o={attributes:!0,attributeFilter:["min","max","step","value"]},u=document.createEvent("HTMLEvents");u.initEvent("input",!0,!1);var d=document.createEvent("HTMLEvents");d.initEvent("change",!0,!1),"loading"==document.readyState?document.addEventListener("DOMContentLoaded",s,!0):s(),addEventListener("pageshow",c,!0)}function s(){c(),new MutationObserver((function(e){e.forEach((function(e){e.addedNodes&&Array.forEach(e.addedNodes,(function(e){e instanceof Element&&(e.childElementCount?Array.forEach(e.querySelectorAll("input[type=range]"),l):e.mozMatchesSelector("input[type=range]")&&l(e))}))}))})).observe(document,{childList:!0,subtree:!0})}function c(){Array.forEach(document.querySelectorAll("input[type=range]"),l)}function l(e){"range"!=e.type&&function(e){var s,c,l,h,f,v,m,b,g,y,x,E=e.value;t||(p(t=document.body.appendChild(document.createElement("hr")),{"-moz-appearance":n?"scale-horizontal":"scalethumb-horizontal",display:"block",visibility:"visible",opacity:1,position:"fixed",top:"-999999px"}),document.mozSetImageElement("__sliderthumb__",t));var _=function(){return""+E},w=function t(n){E=""+n,s=!0,F(),delete e.value,e.value=E,e.__defineGetter__("value",_),e.__defineSetter__("value",t)};function L(e){if(h=!0,setTimeout((function(){h=!1}),0),!e.button&&x){var t=(parseFloat(getComputedStyle(this).width)-i.width)/x;if(t){var n=e.clientX-this.getBoundingClientRect().left-i.width/2-(E-b)*t;Math.abs(n)>i.radius&&(l=!0,this.value-=-n/t),v=E,m=e.clientX,this.addEventListener("mousemove",A,!0),this.addEventListener("mouseup",S,!0)}}}function A(e){var t=(parseFloat(getComputedStyle(this).width)-i.width)/x;t&&(v+=(e.clientX-m)/t,m=e.clientX,l=!0,this.value=v)}function S(){this.removeEventListener("mousemove",A,!0),this.removeEventListener("mouseup",S,!0),e.dispatchEvent(u),e.dispatchEvent(d)}function C(e){e.keyCode>36&&e.keyCode<41&&(M.call(this),l=!0,this.value=E+(38==e.keyCode||39==e.keyCode?y:-y))}function M(){h||(this.style.boxShadow=n?"inset 0 0 20px rgba(0,127,255,.1), 0 0 1px rgba(0,127,255,.4)":"0 0 0 2px #fb0")}function k(){this.style.boxShadow=""}
502function z(e){return!isNaN(e)&&+e==parseFloat(e)}function O(){b=z(e.min)?+e.min:0,(g=z(e.max)?+e.max:100)<b&&(g=b>100?b:100),y=z(e.step)&&e.step>0?+e.step:1,x=g-b,F(!0)}function N(){s||c||(E=e.getAttribute("value")),z(E)||(E=(b+g)/2),(E=Math.round((E-b)/y)*y+b)<b?E=b:E>g&&(E=b+~~(x/y)*y)}function F(t){N();var n=l;(l=!1,n&&E!=f&&e.dispatchEvent(u),t||E!=f)&&(f=E,p(e,{background:"-moz-element(#__sliderthumb__) "+(x?(E-b)/x*100:0)+"% no-repeat, "+r}))}e.__defineGetter__("value",_),e.__defineSetter__("value",w),Object.defineProperty(e,"type",{get:function(){return"range"}}),["min","max","step"].forEach((function(t){e.hasAttribute(t)&&(c=!0),Object.defineProperty(e,t,{get:function(){return this.hasAttribute(t)?this.getAttribute(t):""},set:function(e){null===e?this.removeAttribute(t):this.setAttribute(t,e)}})})),e.readOnly=!0,p(e,a),O(),new MutationObserver((function(t){t.forEach((function(t){"value"!=t.attributeName?(O(),c=!0):s||(E=e.getAttribute("value"),F())}))})).observe(e,o),e.addEventListener("mousedown",L,!0),e.addEventListener("keydown",C,!0),e.addEventListener("focus",M,!0),e.addEventListener("blur",k,!0)}(e)}function p(e,t){for(var n in t)e.style.setProperty(n,t[n],"important")}}();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.