{"version":3,"file":"player.js","mappings":"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","sources":["webpack://audio-player/./src/js/utils.js","webpack://audio-player/./src/js/player/single.js","webpack://audio-player/./src/js/player.js","webpack://audio-player/../utils/toHHMMSS.js"],"sourcesContent":["export function toHHMMSS(time) {\r\n var sec_num = parseInt(time, 10); // don't forget the second param\r\n var hours = Math.floor(sec_num / 3600);\r\n var minutes = Math.floor((sec_num - hours * 3600) / 60);\r\n var seconds = sec_num - hours * 3600 - minutes * 60;\r\n\r\n if (hours < 10) {\r\n hours = \"0\" + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = \"0\" + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = \"0\" + seconds;\r\n }\r\n return minutes + \":\" + seconds;\r\n}\r\n\r\nexport function generateKeyFromUrl(url) {\r\n if (!url) return;\r\n try {\r\n // Extract the last part of the path (the \"name\")\r\n const pathParts = new URL(url).pathname.split(\"/\"); // Split the path into parts\r\n const name = pathParts.filter((part) => part.length > 0).pop(); // Get the last non-empty part\r\n\r\n if (!name) {\r\n throw new Error(\"No valid name found in the URL path\");\r\n }\r\n\r\n // Generate a simple hash from the name\r\n let hash = 0;\r\n for (let i = 0; i < name.length; i++) {\r\n const char = name.charCodeAt(i);\r\n hash = (hash << 5) - hash + char; // Simple hash algorithm\r\n hash |= 0; // Convert to 32-bit integer\r\n }\r\n\r\n // Convert the hash to a base-36 string (alphanumeric)\r\n const uniqueKey = Math.abs(hash).toString(36);\r\n\r\n // Optionally truncate the key to a specific length (e.g., 8 characters)\r\n return uniqueKey.substring(0, 8);\r\n } catch (error) {\r\n console.warn(error.message);\r\n }\r\n}\r\n","import toHHMMSS from \"../../../../utils/toHHMMSS\";\r\nimport { generateKeyFromUrl } from \"../utils\";\r\n\r\nclass H5AP {\r\n audioPlayer(audioPlayer, options) {\r\n const $ = jQuery;\r\n const otherControls = {\r\n repeat: true,\r\n };\r\n options.i18n = {};\r\n if (typeof h5ap_i18n != \"undefined\") {\r\n options.i18n = h5ap_i18n;\r\n }\r\n let { controls, seekTime, i18n, title, artist, disablePause, poster, muted, autoplay, startTime, source, skin, disableDownload, fusionDownload, color, background, repeat, primaryColor, saveState = false } = options;\r\n\r\n if (skin === \"default\" && disableDownload === false) {\r\n otherControls.download = true;\r\n }\r\n\r\n if (skin === \"fusion\" && fusionDownload === true) {\r\n otherControls.download = true;\r\n }\r\n\r\n //initialize skin\r\n if (skin === \"fusion\") {\r\n controls = this.skinFusion(poster, title, source, otherControls);\r\n }\r\n\r\n if (skin === \"wave\") {\r\n controls = this.skinWave(poster, title, artist, background, color);\r\n }\r\n\r\n if (skin === \"card-1\") {\r\n controls = this.skinCardOne({ title, artist });\r\n }\r\n if (skin === \"card-2\") {\r\n controls = this.skinCardTwo({ title, artist, poster });\r\n }\r\n\r\n if (skin === \"simple-1\") {\r\n controls = this.skinSimpleOne({ title, artist });\r\n }\r\n if (skin === \"simple-2\") {\r\n controls = this.skinSimpleTwo({ title, artist, poster });\r\n }\r\n\r\n if (skin === \"stamp\") {\r\n controls = this.skinStamp();\r\n }\r\n\r\n //remove focus\r\n $(\".skin_default .plyr__control\").on(\"focus\", function () {\r\n setTimeout(() => {\r\n this.blur();\r\n }, 1000);\r\n });\r\n\r\n let plyr = localStorage.getItem(\"plyr\");\r\n // const isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);\r\n const isFirefox = typeof InstallTrigger !== \"undefined\";\r\n if (autoplay && plyr && isFirefox) {\r\n plyr = JSON.parse(plyr);\r\n plyr.muted = true;\r\n localStorage.setItem(\"plyr\", JSON.stringify(plyr));\r\n } else if (plyr) {\r\n plyr = JSON.parse(plyr);\r\n plyr.muted = false;\r\n localStorage.setItem(\"plyr\", JSON.stringify(plyr));\r\n }\r\n\r\n // window.onload = function () {\r\n // console.log($(audioPlayer).find(\"audio\"));\r\n // $(audioPlayer).find(\"audio\")[0].play();\r\n // console.log(navigator.getAutoplayPolicy(audioPlayer).find(\"audio\")[0]);\r\n // };\r\n // return;\r\n\r\n //initialize player\r\n const player = new Plyr($(audioPlayer).find(\"audio\"), {\r\n controls,\r\n i18n,\r\n seekTime,\r\n loop: {\r\n active: repeat,\r\n },\r\n muted,\r\n autoplay,\r\n speed: { selected: 1, options: h5apPlayer?.speed.map(Number) },\r\n });\r\n\r\n const key = generateKeyFromUrl(player.source);\r\n this.handleSaveState(player, saveState, key);\r\n\r\n player.on(\"ready\", function () {\r\n const state = localStorage.getItem(key);\r\n if (!saveState || !state) {\r\n const currentTime = parseInt(startTime);\r\n player.currentTime = currentTime;\r\n const interval = setInterval(() => {\r\n if (currentTime > player.currentTime) {\r\n player.currentTime = currentTime;\r\n } else {\r\n clearInterval(interval);\r\n }\r\n }, 50);\r\n }\r\n });\r\n\r\n if (skin != \"default\") {\r\n player.speed = 1;\r\n }\r\n\r\n if (autoplay) {\r\n player.play();\r\n }\r\n\r\n if (skin === \"wave\" && player) {\r\n this.wave(audioPlayer, player, primaryColor, background);\r\n }\r\n\r\n if (skin === \"card-1\" && player) {\r\n this.cardOne(audioPlayer, player, poster);\r\n }\r\n if (skin === \"card-2\" && player) {\r\n this.cardTwo(audioPlayer, player, poster);\r\n }\r\n\r\n if (disablePause) {\r\n this.disablePause(player);\r\n }\r\n\r\n //apply stamp player style\r\n if (options.skin === \"stamp\" && color != \"\") {\r\n $(audioPlayer).find(\".StampAudioPlayerSkin button svg\").css(\"fill\", color);\r\n $(audioPlayer).find(\".StampAudioPlayerSkin .extraOptions .audioTitle\").css(\"color\", color);\r\n $(audioPlayer).find(\".StampAudioPlayerSkin .mainOptions .controls .audioProgressView .progressWrap .currentTime\").css(\"color\", color);\r\n $(audioPlayer).find(\".StampAudioPlayerSkin .mainOptions .controls .audioProgressView .progressWrap .totalTime\").css(\"color\", color);\r\n $(audioPlayer).find(\".StampAudioPlayerSkin .mainOptions .controls .playPauseAudio\").css(\"border-color\", color);\r\n $(audioPlayer).find(\".audioTitle\").text(title);\r\n }\r\n\r\n // responsive design if container width less than 500px\r\n if ($(audioPlayer).width() < 500 && skin === \"fusion\") {\r\n $(audioPlayer).addClass(\"skinFusionMobile\");\r\n }\r\n\r\n // disable other player when playing this audio\r\n if (!h5apPlayer?.multipleAudio) {\r\n $(audioPlayer)\r\n .find('.plyr__control[data-plyr=\"play\"]')\r\n .on(\"click\", () => {\r\n if (player.playing) {\r\n this.disableOtherPlayer(player, true);\r\n }\r\n });\r\n }\r\n\r\n //dynamic repeat button\r\n $(audioPlayer)\r\n .find('[data-plyr=\"repeat\"]')\r\n .on(\"click\", function () {\r\n $(this).attr(\"data-active\", $(this).attr(\"data-active\") === \"true\" ? \"false\" : \"true\");\r\n });\r\n if (repeat === true) {\r\n $(audioPlayer).find('[data-plyr=\"repeat\"]').attr(\"data-active\", \"true\");\r\n }\r\n\r\n player.on(\"ended\", function () {\r\n const repeat = $(audioPlayer).find('[data-plyr=\"repeat\"]').attr(\"data-active\");\r\n if (repeat === \"true\") {\r\n player.play();\r\n }\r\n });\r\n\r\n //dynamic repeat button for playlist\r\n $(audioPlayer)\r\n .find('[data-plyr=\"playlist\"]')\r\n .on(\"click\", function () {\r\n $(this).attr(\"data-active\", $(this).attr(\"data-active\") === \"true\" ? \"false\" : \"true\");\r\n });\r\n\r\n // update source if audio is not playing (soundcloud)\r\n let intervalId = null;\r\n player.on(\"ready\", function () {\r\n const loadingPlaceholder = player.elements.container?.nextElementSibling;\r\n if (loadingPlaceholder && loadingPlaceholder.classList.contains(\"h5ap_lp\")) {\r\n loadingPlaceholder.style.display = \"none\";\r\n }\r\n\r\n if (player.source?.includes(\"soundcloud\")) {\r\n player.speed = 1;\r\n if (intervalId) {\r\n clearInterval(intervalId);\r\n }\r\n intervalId = setInterval(\r\n () => {\r\n if (!player.playing) {\r\n let tempSource = source;\r\n if (source.includes(\"?\")) {\r\n tempSource = source + `&_${parseInt(Math.random(255) * 100)}`;\r\n } else {\r\n tempSource = source + `?_${parseInt(Math.random(255) * 100)}`;\r\n }\r\n\r\n player.source = {\r\n type: \"audio\",\r\n title: \"Audio File\",\r\n sources: [\r\n {\r\n src: tempSource,\r\n type: \"audio/mp3\",\r\n },\r\n ],\r\n };\r\n }\r\n },\r\n 60 * 3 * 1000\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n *\r\n * @param {*} selector\r\n * @param {*} options\r\n */\r\n quickPlayer(quickPlayer) {\r\n const $ = jQuery;\r\n const options = $(quickPlayer).data(\"options\");\r\n options.i18n = {};\r\n if (typeof h5ap_i18n != \"undefined\") {\r\n options.i18n = h5ap_i18n;\r\n }\r\n const { seekTime, controls, i18n } = options;\r\n const player = new Plyr($(quickPlayer).find(\"audio\"), {\r\n controls,\r\n i18n,\r\n seekTime,\r\n speed: { selected: 1, options: h5apPlayer?.speed.map(Number) },\r\n });\r\n\r\n //pause other player if this player is playing\r\n if (!h5apPlayer?.multipleAudio) {\r\n $(quickPlayer)\r\n .find('.plyr__control[data-plyr=\"play\"]')\r\n .on(\"click\", () => {\r\n if (player.playing) {\r\n this.disableOtherPlayer(player, true);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {String} stickyPlayer\r\n */\r\n stickyPlayer(stickyPlayer) {\r\n const $ = jQuery;\r\n const btnClose = $(stickyPlayer).find(\".icon-no-alt\");\r\n const btnMinimize = $(stickyPlayer).find(\".icon-minus\");\r\n const btnMaximize = $(stickyPlayer).find(\".icon-plus\");\r\n const poster = $(stickyPlayer).data(\"poster\");\r\n const source = $(stickyPlayer).data(\"source\");\r\n const title = $(stickyPlayer).data(\"title\");\r\n const options = $(stickyPlayer).data(\"options\");\r\n const { initialVolume, skin, background, saveState } = options;\r\n const otherControls = {};\r\n\r\n if (options?.stickyDownload === true) {\r\n otherControls.download = true;\r\n }\r\n if (options?.repeat === true) {\r\n otherControls.repeat = true;\r\n }\r\n\r\n $(window).on(\"scroll\", function () {\r\n if (window.pageYOffset > 300) {\r\n $(stickyPlayer).fadeIn();\r\n }\r\n });\r\n\r\n //get player screen\r\n let controls = \"\";\r\n if (skin === \"simple\") {\r\n controls = this.skinSimple(title, poster, background);\r\n } else {\r\n controls = this.skinFusion(poster, title, source, otherControls);\r\n }\r\n\r\n let storage = localStorage.getItem(\"h5apStickyplaying\");\r\n let option = { controls };\r\n if (options?.remember && storage != \"false\") {\r\n let plyr = localStorage.getItem(\"plyr\");\r\n // if (autoplay && plyr) {\r\n // plyr = JSON.parse(plyr);\r\n // plyr.volume = 0;\r\n // plyr.muted = true;\r\n // localStorage.setItem(\"plyr\", JSON.stringify(plyr));\r\n // } else if (plyr) {\r\n plyr = JSON.parse(plyr);\r\n plyr.volume = 0;\r\n plyr.muted = true;\r\n localStorage.setItem(\"plyr\", JSON.stringify(plyr));\r\n // }\r\n }\r\n\r\n const player = new Plyr($(stickyPlayer).find(\"audio\"), option);\r\n\r\n player.speed = 1;\r\n\r\n const key = generateKeyFromUrl(player.source);\r\n const state = localStorage.getItem(key);\r\n // if (!saveState || !state) {\r\n if (storage != \"false\") {\r\n if (!saveState || !state) {\r\n storage = JSON.parse(storage);\r\n setTimeout(() => {\r\n player.volume = 0.5;\r\n player.currentTime = storage?.time;\r\n }, 100);\r\n player.play();\r\n }\r\n }\r\n\r\n console.log({ key, state, saveState });\r\n if (saveState) {\r\n if (state) {\r\n player.on(\"loadeddata\", () => {\r\n const { currentTime } = JSON.parse(state);\r\n player.currentTime = currentTime;\r\n });\r\n }\r\n player.on(\"timeupdate\", function () {\r\n localStorage.setItem(key, JSON.stringify({ currentTime: player.currentTime, playing: player.playing }));\r\n });\r\n }\r\n\r\n // setTimeout(() => {\r\n // player.play();\r\n // }, 2000);\r\n\r\n // disable other player when playing this audio\r\n if (!h5apPlayer?.multipleAudio) {\r\n $(stickyPlayer)\r\n .find('.plyr__control[data-plyr=\"play\"]')\r\n .on(\"click\", () => {\r\n if (player.playing) {\r\n this.disableOtherPlayer(player, true);\r\n }\r\n });\r\n }\r\n\r\n //close player\r\n btnClose.on(\"click\", function () {\r\n $(stickyPlayer).fadeOut();\r\n $(stickyPlayer).remove();\r\n player.stop();\r\n });\r\n\r\n // minimize player\r\n btnMinimize.on(\"click\", function () {\r\n $(stickyPlayer).addClass(\"minimized\");\r\n $(stickyPlayer).removeClass(\"maximized\");\r\n });\r\n\r\n btnMaximize.on(\"click\", function () {\r\n $(stickyPlayer).addClass(\"maximized\");\r\n $(stickyPlayer).removeClass(\"minimized\");\r\n });\r\n\r\n //set initial volume\r\n player.volume = initialVolume / 100;\r\n\r\n $(stickyPlayer)\r\n .find('[data-plyr=\"repeat\"]')\r\n .on(\"click\", function () {\r\n $(this).attr(\"data-active\", $(this).attr(\"data-active\") === \"true\" ? \"false\" : \"true\");\r\n });\r\n if (options?.repeat === true) {\r\n $(stickyPlayer).find('[data-plyr=\"repeat\"]').attr(\"data-active\", \"true\");\r\n }\r\n player.on(\"ended\", function () {\r\n const repeat = $(stickyPlayer).find('[data-plyr=\"repeat\"]').attr(\"data-active\");\r\n if (repeat === \"true\") {\r\n player.play();\r\n }\r\n });\r\n\r\n // player.on(\"pause\", function () {\r\n // console.log(\"source\", player.source);\r\n // console.log(\"md5\", MD5(decodeURI(player.source)).toString());\r\n // });\r\n\r\n // set cookie if there\r\n window.onbeforeunload = () => {\r\n // const e = event || window.event;\r\n // e.preventDefault();\r\n if (player.playing) {\r\n const object = { time: player.currentTime };\r\n if (stickyPlayer[0]) {\r\n object.html = controls;\r\n object.source = player.source;\r\n }\r\n localStorage.setItem(\"h5apStickyplaying\", JSON.stringify(object));\r\n } else {\r\n localStorage.setItem(\"h5apStickyplaying\", false);\r\n }\r\n };\r\n\r\n // if (!source) {\r\n // const downloadBtn = $(stickyPlayer).find(\".plyr__download\");\r\n // downloadBtn.hide();\r\n // }\r\n }\r\n\r\n /**\r\n *\r\n * @param {String} stickyPlayer\r\n */\r\n stickyPlayer2(stickyPlayer, optionss = false, infoss = false) {\r\n const detector = this.getDetectorData(stickyPlayer, { options: optionss, infos: infoss, initializer: \"stickyPlayer2\" });\r\n if (!detector) return false;\r\n const { wrapper, options } = detector;\r\n\r\n const $ = jQuery;\r\n const btnClose = $(wrapper).find(\".icon-no-alt\");\r\n const btnMinimize = $(wrapper).find(\".icon-minus\");\r\n const btnMaximize = $(wrapper).find(\".icon-plus\");\r\n const poster = $(wrapper).data(\"poster\");\r\n const source = $(wrapper).data(\"source\");\r\n const title = $(wrapper).data(\"title\");\r\n // const options = $(stickyPlayer).data(\"options\");\r\n const { initialVolume, skin, background, saveState } = options;\r\n const otherControls = {};\r\n\r\n // remove attributes\r\n $(wrapper).removeAttr(\"data-poster\");\r\n $(wrapper).removeAttr(\"data-source\");\r\n $(wrapper).removeAttr(\"data-title\");\r\n $(wrapper).removeAttr(\"data-options\");\r\n\r\n if (options?.stickyDownload === true) {\r\n otherControls.download = true;\r\n }\r\n if (options?.repeat === true) {\r\n otherControls.repeat = true;\r\n }\r\n\r\n $(window).on(\"scroll\", function () {\r\n if (window.pageYOffset > 300) {\r\n $(wrapper).fadeIn();\r\n }\r\n });\r\n\r\n //get player screen\r\n let controls = \"\";\r\n if (skin === \"simple\") {\r\n controls = this.skinSimple(title, poster, background);\r\n } else {\r\n controls = this.skinFusion(poster, title, source, otherControls);\r\n }\r\n\r\n let storage = localStorage.getItem(\"h5apStickyplaying\");\r\n let option = { controls };\r\n if (options?.remember && storage != \"false\") {\r\n let plyr = localStorage.getItem(\"plyr\") || \"{}\";\r\n plyr = JSON.parse(plyr);\r\n plyr.volume = 0;\r\n plyr.muted = true;\r\n localStorage.setItem(\"plyr\", JSON.stringify(plyr));\r\n }\r\n\r\n const player = new Plyr($(wrapper).find(\"audio\"), option);\r\n\r\n if (storage != \"false\") {\r\n storage = JSON.parse(storage);\r\n setTimeout(() => {\r\n player.volume = 0.5;\r\n player.currentTime = storage?.time;\r\n }, 100);\r\n player.play();\r\n }\r\n\r\n // disable other player when playing this audio\r\n if (!h5apPlayer?.multipleAudio) {\r\n $(wrapper)\r\n .find('.plyr__control[data-plyr=\"play\"]')\r\n .on(\"click\", () => {\r\n if (player.playing) {\r\n this.disableOtherPlayer(player, true);\r\n }\r\n });\r\n }\r\n\r\n const key = generateKeyFromUrl(player.source);\r\n const state = localStorage.getItem(key);\r\n\r\n if (saveState) {\r\n if (state) {\r\n player.on(\"loadeddata\", () => {\r\n const { currentTime } = JSON.parse(state);\r\n player.currentTime = currentTime;\r\n });\r\n }\r\n player.on(\"timeupdate\", function () {\r\n localStorage.setItem(key, JSON.stringify({ currentTime: player.currentTime, playing: player.playing }));\r\n });\r\n }\r\n\r\n //close player\r\n btnClose.on(\"click\", function () {\r\n $(wrapper).fadeOut();\r\n $(wrapper).remove();\r\n player.stop();\r\n });\r\n\r\n // minimize player\r\n btnMinimize.on(\"click\", function () {\r\n $(wrapper).addClass(\"minimized\");\r\n $(wrapper).removeClass(\"maximized\");\r\n });\r\n\r\n btnMaximize.on(\"click\", function () {\r\n $(wrapper).addClass(\"maximized\");\r\n $(wrapper).removeClass(\"minimized\");\r\n });\r\n\r\n //set initial volume\r\n player.volume = initialVolume / 100;\r\n\r\n $(wrapper)\r\n .find('[data-plyr=\"repeat\"]')\r\n .on(\"click\", function () {\r\n $(this).attr(\"data-active\", $(this).attr(\"data-active\") === \"true\" ? \"false\" : \"true\");\r\n });\r\n if (options?.repeat === true) {\r\n $(wrapper).find('[data-plyr=\"repeat\"]').attr(\"data-active\", \"true\");\r\n }\r\n\r\n player.on(\"ended\", function () {\r\n const repeat = $(wrapper).find('[data-plyr=\"repeat\"]').attr(\"data-active\");\r\n if (repeat === \"true\") {\r\n player.play();\r\n }\r\n });\r\n\r\n //draggble\r\n // new Dragable(wrapper, {\r\n // setPosition: false,\r\n // useGPU: false,\r\n // onDrag: (element) => {\r\n // if (element) {\r\n // element.style.bottom = \"100%\";\r\n // }\r\n // },\r\n // handle: $(wrapper).find(\".rewind_play_fastforward\")[0],\r\n // });\r\n // $(wrapper).find(\".rewind_play_fastforward\").css(\"cursor\", \"move\");\r\n }\r\n\r\n /**\r\n *\r\n * @param {*} player\r\n */\r\n disableOtherPlayer(player, play = true) {\r\n const $ = jQuery;\r\n const players = $(\"audio\");\r\n players.each(function () {\r\n $(this)[0].pause();\r\n });\r\n\r\n if (play) {\r\n player?.play();\r\n } else {\r\n player?.pause();\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {String} poster\r\n * @param {String} title\r\n * @param {URL} source\r\n * @param {Object} otherControls\r\n * @returns Fusion Skin\r\n */\r\n skinFusion(poster = null, title = null, source = null, otherControls = { download: false }) {\r\n const download =\r\n otherControls?.download === true\r\n ? `\r\n \r\n Download\r\n `\r\n : \"\";\r\n const repeat =\r\n otherControls?.repeat === true\r\n ? ``\r\n : \"\";\r\n const playlist = otherControls?.playlist === true ? `` : \"\";\r\n return `