{"version":3,"sources":["fraudio.js"],"names":["$","play_icon","pause_icon","audio_scrubbing","toggleAudio","audio","each","this","pause","data","html","paused","parent","find","play","calculateScrub","event","leftOffset","offset","left","progress","siblings","pageX","css","width","fn","fraudio","filter","$fraudio","replaceWith","clone","attr","click","closest","on","currentTime","duration","document","offsetX","jQuery"],"mappings":"CAAA,SAAUA,GACT,IACCC,EAAY,qUACZC,EAAa,iaA6BbC,GAAkB,EAEnB,SAASC,EAAYC,GACpBL,EAAE,SAASM,KAAK,WACZC,MAAQF,GACVE,KAAKC,UAGPR,EAAEK,GAAOI,KAAK,iBAAkB,GAChCT,EAAE,iBAAiBU,KAAKT,GACrBI,EAAMM,QACRX,EAAEK,GAAOO,SACPC,KAAK,iBACLH,KAAKR,GACPG,EAAMS,QAENT,EAAMG,QAIR,SAASO,EAAeC,GACvB,GAAGb,EAAiB,CACnB,IAAIc,EAAad,EAAgBe,SAASC,KACtCC,EAAWpB,EAAEG,EAAgBkB,SAAS,qBAAqB,IAC5DL,EAAMM,MAAQL,EAEhBG,EAASG,IAAI,QAAS,GACZP,EAAMM,MAAQL,EAAad,EAAgBqB,QAErDJ,EAASG,IAAI,QAAS,QAGtBH,EAASG,IAAI,QAASP,EAAMM,MAAQL,IAKvCjB,EAAEyB,GAAGC,QAAU,WACdnB,KAAKoB,OAAO,SAASrB,KAAK,WACzBsB,SAAW5B,EAlEZ,+sBAmEC4B,SAASf,KAAK,SAASgB,YAAY7B,EAAEO,MAAMuB,SAC3CF,SAASf,KAAK,kBAAkBH,KAAKV,EAAEO,MAAMwB,KAAK,eAClDH,SAASf,KAAK,mBAAmBH,KAAKV,EAAEO,MAAMwB,KAAK,gBAEhD/B,EAAEO,MAAMwB,KAAK,cACfH,SAASf,KAAK,SAASJ,KAAK,iBAAkB,GAC9CmB,SAASf,KAAK,iBAAiBH,KAAKR,IAGrCF,EAAEO,MAAMsB,YAAYD,YAIrB5B,EAAE,iBAAiBgC,MAAM,WACxB5B,EAAYJ,EAAEO,MAAM0B,QAAQ,sBAAsBpB,KAAK,SAAS,MAGjEb,EAAE,YAAYkC,GAAG,aAAc,WAC9B,IAAI/B,EAAiB,CACpB,IAAIiB,EAAWpB,EAAEO,MAAMc,SAAS,qBAAqB,GACrDrB,EAAEoB,GAAUG,IAAI,QAAShB,KAAK4B,YAAc5B,KAAK6B,SAAW,IAAM,QAIpEpC,EAAE,SAASkC,GAAG,QAAS,WACtBlC,EAAEO,MAAMK,SAASC,KAAK,iBAAiBH,KAAKT,KAG7CD,EAAE,2BAA2BkC,GAAG,YAAa,WAC5C,IAAI7B,EAAQL,EAAEO,MAAMc,SAAS,SAAS,GAClCrB,EAAEK,GAAOI,KAAK,kBAGjBN,EAAkBH,EAAEO,MAFpBH,EAAYC,KAMdL,EAAEqC,UAAUH,GAAG,YAAanB,GAC5Bf,EAAEqC,UAAUH,GAAG,qBAAsB,SAASlB,GAC7C,GAAGb,EAAiB,CACnBY,EAAeC,GAGf,IAAIX,EAAQF,EAAgBkB,SAAS,SAAS,GAC9ChB,EAAM8B,YAAcnB,EAAMsB,QAAUnC,EAAgBqB,QAAUnB,EAAM+B,SACpEjC,GAAkB,MAKrBH,EAAE,WACDA,EAAE,YAAY0B,YA3HhB,CA8HGa","file":"fraudio.min.js","sourcesContent":["(function($) {\r\n\tvar \r\n\t\tplay_icon = '',\r\n\t\tpause_icon = '',\r\n\t\tplayer = \r\n\t\t'
\\\r\n\t\t\t\\\r\n\t\t\t
\\\r\n\t\t\t\t\\\r\n\t\t\t\t\t' + play_icon + '\\\r\n\t\t\t\t\\\r\n\t\t\t
\\\r\n\t\t\t
\\\r\n\t\t\t\t
\\\r\n\t\t\t\t
\\\r\n\t\t\t
\\\r\n\t\t\t
\\\r\n\t\t\t
\\\r\n\t\t
',\r\n\t\taudio_scrubbing = false;\r\n\t\r\n\tfunction toggleAudio(audio) {\r\n\t\t$('audio').each(function() {\r\n\t\t\tif(this != audio) {\r\n\t\t\t\tthis.pause();\r\n\t\t\t}\r\n\t\t})\r\n\t\t$(audio).data('played_already', 1);\r\n\t\t$('.fraudio-play').html(play_icon);\r\n\t\tif(audio.paused) {\r\n\t\t\t$(audio).parent()\r\n\t\t\t\t.find('.fraudio-play')\r\n\t\t\t\t.html(pause_icon);\r\n\t\t\taudio.play();\r\n\t\t} else {\r\n\t\t\taudio.pause();\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction calculateScrub(event) {\r\n\t\tif(audio_scrubbing) {\r\n\t\t\tvar leftOffset = audio_scrubbing.offset().left;\r\n\t\t\tvar progress = $(audio_scrubbing.siblings('.fraudio-progress')[0]);\r\n\t\t\tif(event.pageX < leftOffset) {\r\n\t\t\t\t// left of the scrubber\r\n\t\t\t\tprogress.css('width', 0);\r\n\t\t\t} else if (event.pageX > leftOffset + audio_scrubbing.width()) {\r\n\t\t\t\t// right of the scrubber\r\n\t\t\t\tprogress.css('width', '100%');\r\n\t\t\t} else {\r\n\t\t\t\t// somewhere inbetween the scrubber\r\n\t\t\t\tprogress.css('width', event.pageX - leftOffset);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t$.fn.fraudio = function() {\r\n\t\tthis.filter('audio').each(function() {\r\n\t\t\t$fraudio = $(player);\r\n\t\t\t$fraudio.find('audio').replaceWith($(this).clone());\r\n\t\t\t$fraudio.find('.fraudio-title').html($(this).attr('data-title'));\r\n\t\t\t$fraudio.find('.fraudio-artist').html($(this).attr('data-artist'));\r\n\t\t\t\r\n\t\t\tif($(this).attr('autoplay')) {\r\n\t\t\t\t$fraudio.find('audio').data('played_already', 1);\r\n\t\t\t\t$fraudio.find('.fraudio-play').html(pause_icon);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t$(this).replaceWith($fraudio);\r\n\t\t});\r\n\t\t\r\n\t\t\r\n\t\t$('.fraudio-play').click(function() {\r\n\t\t\ttoggleAudio($(this).closest('.fraudio-container').find('audio')[0]);\r\n\t\t});\r\n\t\t\r\n\t\t$('.fraudio').on('timeupdate', function() {\r\n\t\t\tif(!audio_scrubbing) {\r\n\t\t\t\tvar progress = $(this).siblings('.fraudio-progress')[0];\r\n\t\t\t\t$(progress).css('width', this.currentTime / this.duration * 100 + '%')\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t$('audio').on('ended', function() {\r\n\t\t\t$(this).parent().find('.fraudio-play').html(play_icon);\r\n\t\t});\r\n\t\t\r\n\t\t$('.fraudio-progress-click').on('mousedown', function() {\r\n\t\t\tvar audio = $(this).siblings('audio')[0];\r\n\t\t\tif(!$(audio).data('played_already')) {\r\n\t\t\t\ttoggleAudio(audio);\r\n\t\t\t} else {\r\n\t\t\t\taudio_scrubbing = $(this);\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t$(document).on('mousemove', calculateScrub);\r\n\t\t$(document).on('mouseup mouseleave', function(event) {\r\n\t\t\tif(audio_scrubbing) {\r\n\t\t\t\tcalculateScrub(event);\r\n\t\t\t\t// they clicked on an audio scrubber, now they're releasing the click\r\n\t\t\t\t// when the mouse comes up, set the audio offset\r\n\t\t\t\tvar audio = audio_scrubbing.siblings('audio')[0];\r\n\t\t\t\taudio.currentTime = event.offsetX / audio_scrubbing.width() * audio.duration;\r\n\t\t\t\taudio_scrubbing = false;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\t$(function() {\r\n\t\t$('.fraudio').fraudio();\r\n\t});\r\n\t\r\n})(jQuery);"]}