PageSourceSearch

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

js binodchaudhary.com collected 2026-10-03 18:22:25 UTC 11,369 bytes, 340 lines download raw bytes

1(function($) {
2	var toMinutes = function(seconds) {
3		seconds = Math.floor(seconds);
4		min_part = Math.floor(seconds/60);
5		sec_part = seconds % 60;
6		if (sec_part < 10) {
7			sec_part = '0' + sec_part;
8		}
9		return min_part + ":" + sec_part;
10	}
11
12	var handleSlidePlayer = function($scope, player_selector) {
13        $scope.find(player_selector).each(function() {
14
15			var item_hover_color = $(this).data("entryhbgcolor");
16			$(this).find('.swp_music_player_entry.wpb_smc_elt').each(function(){
17				$(this).hover(
18					function() {
19						$(this).css("background-color", item_hover_color);
20					}, function() {
21						$(this).css("background-color", "transparent");
22					}
23				);
24			});
25
26			var $player = $(this);
27			var player_id = $player.attr("id");
28			var $play_btn = $player.find('.fa-play.player_play');
29			var $pause_btn = $player.find('.fa-pause');
30			var $fwd_btn = $player.find('.fa-step-forward');
31			var $bkw_btn = $player.find('.fa-step-backward');		
32			var $first_song = $player.find('.swp_music_player_entry').first();
33			var $last_song = $player.find('.swp_music_player_entry').last();
34			var $playing_song_name = $player.find('.current_song_name');
35			var $playing_album_name = $player.find('.current_album_name');
36			var $time_slider = $player.find('.player_time_slider');
37			var $song_duration = $player.find('.song_duration');
38			var $song_current_progress = $player.find('.song_current_progress');
39			var autoplay = $player.data('autoplay');
40			var playmode = $player.data('playmode');
41			var stop_on_playlist_end = $player.data('stopplaylistend');
42			var repeatmode = $player.data("repeatmode");
43			var shuffle_btn_on = false, repeat_btn_on = false;
44			var $ps_elt = $player.find('.compact-playback-speed');
45			var $ps_val = $ps_elt.find('.ps-val');
46			var $ps_opts = $player.find('ul.compact-ps-opts');
47			var other_mpfe = new Array();
48
49
50			$('.swp_music_player').not('#' + player_id).each(function(){
51				other_mpfe.push($(this).attr('id'));
52			});
53
54			$ps_val.click(function(){
55				$ps_opts.toggle();
56			})
57			$('.compact-ps-opt').click(function(){
58				var new_pstext = $(this).text();
59				var new_psval = new_pstext.substring(0,new_pstext.length - 1)
60				$ps_opts.toggle();
61				$ps_val.text(new_pstext);
62				$player.find('audio').each(function() {
63					$(this).get(0).playbackRate = new_psval;
64				});
65			})
66
67			function handleCoverImg($crt_elt) {
68				if(!$player.data('playerimg')) {
69					return;
70				}
71
72				if (!$crt_elt.data('trackimg')) {
73					/*set the album default img*/
74					$player.find('.music_player_left').removeAttr("style");
75					return;
76				}
77
78				/*song individual cover*/
79				$player.find('.music_player_left').css('background-image', 'url(' + $crt_elt.data('trackimg') + ')');
80			}
81
82			function handleAlbumInfoForCompact($crt_elt) {
83				if (!$player.hasClass('compact-player')) {
84					return;
85				}
86
87				$playing_album_name.text($crt_elt.find('.player_song_name').data('albumname'));
88			}
89
90			function stopOtherPlayers() {
91				other_mpfe.forEach(function(mpfe_player_id){
92					var $crt_play = $('#' + mpfe_player_id).find('.swp_music_player_entry.now_playing');
93					if ($crt_play.length){
94						$crt_play.find('audio').get(0).pause();
95						$('#' + mpfe_player_id).find('.fa-play.player_play').removeClass("display_none");
96						$('#' + mpfe_player_id).find('.fa-pause').addClass("display_none");			
97					}
98				});
99			}
100
101			$player.find('.swp_music_player_entry').each(function(){
102				var $player_entry = $(this);
103				var audio = new Audio($player_entry.data("mediafile"));
104				audio.type= 'audio/mpeg';
105				audio.preload = 'metadata';
106				$(this).append(audio);
107
108
109
110				audio.onloadedmetadata = function() {
111					$player_entry.find('.entry_duration').text(toMinutes(audio.duration));
112					if ($first_song.is($player_entry)) {
113						$song_duration.text(toMinutes(audio.duration));
114					}
115				};
116
117				audio.onended  = function() {
118					var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
119					var $next_elt = get_next_player_elt($crt_elt);
120
121					$playing_song_name.text($next_elt.find('.player_song_name').text());
122					$song_duration.text(toMinutes($next_elt.find('audio').get(0).duration));
123					$crt_elt.removeClass('now_playing');
124					$next_elt.addClass('now_playing');
125
126					if (("yes" == stop_on_playlist_end) && (!$crt_elt.next().length)) {
127						$play_btn.removeClass("display_none");
128						$pause_btn.addClass("display_none");
129						
130						return;
131					}
132
133					$next_elt.find('audio').get(0).play();
134					stopOtherPlayers();
135					handleCoverImg($next_elt);
136					handleAlbumInfoForCompact($next_elt);
137					$play_btn.addClass("display_none");
138					$pause_btn.removeClass("display_none");
139				};			
140
141				audio.addEventListener("timeupdate", function() {
142				    var currentTime = audio.currentTime;
143				    var duration = audio.duration;
144				    $time_slider.stop(true,true).css('width', (currentTime +.25)/duration*100+'%');
145				    $song_current_progress.text(toMinutes(currentTime));
146				});			
147			});
148
149			/*load the 1st song*/
150			$first_song.addClass("now_playing");
151			$playing_song_name.text($first_song.find('.player_song_name').text());
152			handleAlbumInfoForCompact($first_song);
153
154			$song_current_progress.text("0:00");
155			if ("yes" == autoplay) {
156				var fp_response = $first_song.find('audio').get(0).play();
157				handleCoverImg($first_song);
158				if (fp_response!== undefined) {
159					fp_response.then(_ => {
160						$play_btn.toggleClass("display_none");
161						$pause_btn.toggleClass("display_none");
162						stopOtherPlayers();
163					}).catch(error => {
164						$(document).click(function(e) {
165							if (!$first_song.hasClass("autoplay_loaded")) {
166								$first_song.find('audio').get(0).play();
167								$play_btn.toggleClass("display_none");
168								$pause_btn.toggleClass("display_none");
169								$first_song.addClass("autoplay_loaded");
170							}
171						});
172					});
173				}
174			}
175
176			$play_btn.unbind().click(function() {
177				stopOtherPlayers();
178				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
179				$crt_elt.find('audio').get(0).play();
180				stopOtherPlayers();
181				handleCoverImg($crt_elt);
182				handleAlbumInfoForCompact($crt_elt);
183				$play_btn.addClass("display_none");
184				$pause_btn.removeClass("display_none");
185			});
186			$pause_btn.unbind().click(function() {
187				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
188				$crt_elt.find('audio').get(0).pause();
189				$play_btn.removeClass("display_none");
190				$pause_btn.addClass("display_none");
191			});
192
193			$fwd_btn.unbind().click(function() {
194				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
195				$crt_elt.find('audio').get(0).pause();
196
197				var $next_elt = get_next_player_elt($crt_elt);
198
199				$playing_song_name.text($next_elt.find('.player_song_name').text());
200				$next_elt.find('audio').get(0).play();
201				stopOtherPlayers();
202				handleCoverImg($next_elt);
203				handleAlbumInfoForCompact($next_elt);
204				$song_duration.text(toMinutes($next_elt.find('audio').get(0).duration));
205				$crt_elt.removeClass('now_playing');
206				$next_elt.addClass('now_playing');
207				$play_btn.addClass("display_none");
208				$pause_btn.removeClass("display_none");
209			});
210
211			$bkw_btn.unbind().click(function() {
212				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
213				$crt_elt.find('audio').get(0).pause();
214				var $prev_elt = $crt_elt.prev();
215				if (!$prev_elt.length) {
216					$prev_elt = $last_song;
217				}
218				$playing_song_name.text($prev_elt.find('.player_song_name').text());
219				$prev_elt.find('audio').get(0).play();
220				stopOtherPlayers();
221				handleCoverImg($prev_elt);
222				handleAlbumInfoForCompact($prev_elt);
223				$song_duration.text(toMinutes($prev_elt.find('audio').get(0).duration));
224				$crt_elt.removeClass('now_playing');
225				$prev_elt.addClass('now_playing');
226				$play_btn.addClass("display_none");
227				$pause_btn.removeClass("display_none");
228			});
229
230			$player.find('.player_entry_left').click(function(){
231				var $next_elt = $(this).parent();
232				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
233				$crt_elt.find('audio').get(0).pause();
234				$crt_elt.removeClass('now_playing');
235
236				$next_elt.addClass('now_playing');
237				$next_elt.find('audio').get(0).play();
238				stopOtherPlayers();
239				handleCoverImg($next_elt);
240				handleAlbumInfoForCompact($next_elt);
241				$song_duration.text(toMinutes($(this).parent().find('audio').get(0).duration));
242				$playing_song_name.text($(this).find('.player_song_name').text());
243
244				$play_btn.addClass("display_none");
245				$pause_btn.removeClass("display_none");			
246			});
247
248			$player.find('.player_time_slider_base').click(function(e){
249				var $slider_elt = $(this);
250				var click_pos = e.pageX - Math.floor($slider_elt.offset().left);
251				var elt_width = $slider_elt.width();
252				var percent_progress = Math.floor(click_pos/elt_width*100);
253				$time_slider.width(percent_progress + "%");
254
255				var $crt_elt = $player.find('.swp_music_player_entry.now_playing');
256				$crt_elt.find('audio').get(0).currentTime = $crt_elt.find('audio').get(0).duration * (percent_progress/100);
257			});
258
259			var get_next_player_elt = function($crt_elt) {
260				if ("repeat" == playmode) {
261					if (("current_song" == repeatmode) && repeat_btn_on) {
262						return $crt_elt;
263					}
264
265					var $next_elt = $crt_elt.next();
266					if (!$next_elt.length) {
267						$next_elt = $first_song;
268					}
269					return $next_elt;
270				}
271				/*shuffle*/
272				var $playlist = $player.find('.swp_music_player_entry').not('.now_playing').toArray();
273				return jQuery($playlist[Math.floor(Math.random() * $playlist.length)]);
274			}
275
276			$player.find('i.playback-shuffle').click(function(e){
277				if(shuffle_btn_on) {
278					$player.attr('data-playmode', "repeat");
279					playmode = "repeat";
280					shuffle_btn_on = false;
281				} else {
282					$player.attr('data-playmode', "shuffle");
283					playmode = "shuffle";
284					shuffle_btn_on = true;
285				}
286				$(this).toggleClass("is_active");
287			});
288			$player.find('i.playback-repeat').click(function(e){
289				if (repeat_btn_on) {
290					if (shuffle_btn_on) {
291						$player.attr('data-playmode', "shuffle");
292						playmode = "shuffle";
293					}
294					repeat_btn_on = false;
295				} else {
296					$player.attr('data-playmode', "repeat");
297					playmode = "repeat";
298					repeat_btn_on = true;
299				}
300				$(this).toggleClass("is_active");
301			});
302
303        });
304	}
305
306    var MPFESlideMusicPlayer = function($scope, $) {
307		$scope.find('.mpfe-sr-helper').click(function(e){
308			e.preventDefault();
309		});
310
311		handleSlidePlayer($scope, '.swp_music_player');
312
313    }
314
315	var MPFESlideCompactPlayer = function($scope, $) {
316		handleSlidePlayer($scope, '.swp_music_player.compact-player');
317
318		$('.mpfe-compact-list').click(function(){
319			$(this).closest('.swp_music_player').find('.swp-compact-playlist').addClass('list-visible');
320			$(window).addClass('swp-overflow-y-hidden');
321		});
322		$('.compact-close-playlist-container').click(function(){
323			$(this).closest('.swp-compact-playlist').removeClass('list-visible');
324			$(window).removeClass('swp-overflow-y-hidden');
325		});
326	}
327	
328
329	$(window).on("elementor/frontend/init", function() {
330        elementorFrontend.hooks.addAction(
331            "frontend/element_ready/slide-music-player-free.default",
332            MPFESlideMusicPlayer
333        );
334        elementorFrontend.hooks.addAction(
335            "frontend/element_ready/slide-compact-player.default",
336            MPFESlideCompactPlayer
337        );
338	});
339
340})(jQuery);

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.