{"version":3,"file":"custom-audio-player.js","mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ,GAAG,oCAAoC;AAC1F,0BAA0B,6BAA6B,GAAG,QAAQ,GAAG;AACrE;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,CAAC,I","sources":["webpack://nv-base-template/./src/js/custom-audio-player.js"],"sourcesContent":["(function () {\r\n const audioPlayerEls = document.querySelectorAll('.js-custom-audio-player');\r\n if (audioPlayerEls) {\r\n audioPlayerEls.forEach(audioPlayerEl => {\r\n const audio = audioPlayerEl.querySelector('.js-custom-audio-player__audio')\r\n const playButton = audioPlayerEl.querySelector('.js-custom-audio-player-play-button')\r\n const controlsPauseButton = audioPlayerEl.querySelector('.js-custom-audio-player-controls-pause-button')\r\n const currentTime = audioPlayerEl.querySelector('.js-custom-audio-player-current')\r\n const length = audioPlayerEl.querySelector('.js-custom-audio-player-length')\r\n const progressBar = audioPlayerEl.querySelector(\".js-custom-audio-player-seeker\")\r\n const volumeButton = audioPlayerEl.querySelector(\".js-custom-audio-player-volume-button\")\r\n const volumeSliderWrapper = audioPlayerEl.querySelector(\".js-custom-audio-player-volume-slider-wrapper\")\r\n const volumeSlider = audioPlayerEl.querySelector(\".js-custom-audio-player-volume-slider\")\r\n const volumePercentage = audioPlayerEl.querySelector(\".js-custom-audio-player-volume-percentage\")\r\n const rewindButton = audioPlayerEl.querySelector(\".js-custom-audio-player-rewind\")\r\n const forwardButton = audioPlayerEl.querySelector(\".js-custom-audio-player-forward\")\r\n\r\n function getTimeCodeFromNum(num) {\r\n let seconds = parseInt(num)\r\n let minutes = parseInt(seconds / 60)\r\n seconds -= minutes * 60\r\n const hours = parseInt(minutes / 60)\r\n minutes -= hours * 60\r\n\r\n if (hours === 0) return `${minutes}:${String(seconds % 60).padStart(2, 0)}`\r\n return `${String(hours).padStart(2, 0)}:${minutes}:${String(\r\n seconds % 60\r\n ).padStart(2, 0)}`\r\n }\r\n\r\n rewindButton.addEventListener('click', e => {\r\n audio.currentTime -= 15\r\n })\r\n\r\n forwardButton.addEventListener('click', e => {\r\n audio.currentTime += 15\r\n })\r\n\r\n function handleAudioPlayButton() {\r\n if (audio.paused) {\r\n audio.play()\r\n } else {\r\n audio.pause()\r\n }\r\n }\r\n\r\n function handleAudioPauseButton() {\r\n if (audio.play) {\r\n audio.pause()\r\n }\r\n }\r\n\r\n var ua = window.navigator.userAgent\r\n var iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i)\r\n if (iOS) {\r\n playButton.addEventListener(\"click\", handleAudioPlayButton, false)\r\n controlsPauseButton.addEventListener(\"click\", handleAudioPauseButton, false)\r\n }\r\n\r\n audio.addEventListener('loadeddata', e => {\r\n currentTime.textContent = getTimeCodeFromNum(0)\r\n length.textContent = getTimeCodeFromNum(audio.duration)\r\n\r\n if (!iOS) {\r\n playButton.addEventListener(\"click\", handleAudioPlayButton, false)\r\n controlsPauseButton.addEventListener(\"click\", handleAudioPauseButton, false)\r\n }\r\n\r\n setInterval(() => {\r\n progressBar.style.width = audio.currentTime / audio.duration * 100 + \"%\"\r\n currentTime.textContent = getTimeCodeFromNum(\r\n audio.currentTime\r\n )\r\n }, 500)\r\n })\r\n\r\n function volumeSliderInEvent(e) {\r\n volumeSlider.addEventListener('mousemove', volumeSliderMoveEvent)\r\n volumeSlider.addEventListener('click', volumeSliderMoveEvent)\r\n volumeSlider.addEventListener('touchmove', volumeSliderMoveEvent)\r\n }\r\n\r\n function volumeSliderMoveEvent(e) {\r\n const sliderWidth = window.getComputedStyle(volumeSlider).width\r\n let newVolume = e.offsetX / parseInt(sliderWidth)\r\n newVolume = newVolume < 0 ? 0 : newVolume\r\n newVolume = newVolume > 1 ? 1 : newVolume\r\n audio.volume = newVolume\r\n volumePercentage.style.width = newVolume * 100 + '%'\r\n if (newVolume <= 0) {\r\n volumeButton.classList.remove(\"c-custom-audio-player__volume-button--on\")\r\n volumeButton.classList.add(\"c-custom-audio-player__volume-button--off\")\r\n } else {\r\n volumeButton.classList.remove(\"c-custom-audio-player__volume-button--off\")\r\n volumeButton.classList.add(\"c-custom-audio-player__volume-button--on\")\r\n }\r\n }\r\n\r\n volumeButton.addEventListener('click', e => {\r\n volumeSliderWrapper.classList.toggle('c-custom-audio-player__volume-slider-wrapper--display')\r\n })\r\n\r\n volumeSlider.addEventListener('mousedown', volumeSliderInEvent)\r\n volumeSlider.addEventListener('touchstart', volumeSliderInEvent)\r\n\r\n volumeSlider.addEventListener('mouseleave', e => {\r\n volumeSlider.removeEventListener('mousemove', volumeSliderMoveEvent)\r\n volumeSlider.removeEventListener('touchmove', volumeSliderMoveEvent)\r\n })\r\n\r\n volumeSlider.addEventListener('mouseup', e => {\r\n volumeSlider.removeEventListener('mousemove', volumeSliderMoveEvent)\r\n volumeSlider.removeEventListener('touchmove', volumeSliderMoveEvent)\r\n })\r\n })\r\n }\r\n})();"],"names":[],"sourceRoot":""}