{"version":3,"file":"player.js","mappings":"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","sources":["webpack://audio-player/../utils/toHHMMSS.js","webpack://audio-player/./src/js/player.js","webpack://audio-player/./src/js/player/single.js"],"sourcesContent":["const 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 default toHHMMSS;\r\n","import \"./../css/player.scss\";\r\nimport H5AP from \"./player/single\";\r\nconst H5AP_Obj = new H5AP();\r\n\r\n(function ($) {\r\n  $(document).ready(function () {\r\n    // if script not exists or extract\r\n    const mainScript = document.getElementById(\"h5ap-player-js\");\r\n    if (!mainScript && typeof h5apPlayer !== \"undefined\") {\r\n      const ioScript = document.createElement(\"script\");\r\n      ioScript.src = window?.h5apPlayer?.plyrio_js || false;\r\n      ioScript.src && document.getElementsByTagName(\"head\")[0].appendChild(ioScript);\r\n      ioScript.id = \"bplugins-plyrio-js\";\r\n\r\n      var script = document.createElement(\"script\");\r\n      script.src = window?.h5apPlayer?.plyr_js || false;\r\n      script.id = \"h5ap-player-js\";\r\n      script.src && document.getElementsByTagName(\"head\")[0].appendChild(script);\r\n    }\r\n\r\n    /**\r\n     * for single video\r\n     */\r\n    const h5apAudios = document.querySelectorAll(\".h5ap_standard_player\");\r\n\r\n    Object.keys(h5apAudios).map((item) => {\r\n      const audioPlayer = $(h5apAudios[item])[0];\r\n      let options = audioPlayer.dataset.options;\r\n      try {\r\n        options = options == \"{\" ? {} : JSON.parse(options);\r\n      } catch (error) {\r\n        options = {};\r\n      }\r\n      // console.log(options);\r\n      options.poster = options.poster ?? audioPlayer.dataset?.poster;\r\n      options.source = options.source ?? audioPlayer.dataset?.song;\r\n      options.skin = options.skin ?? audioPlayer.dataset?.skin;\r\n      options.title = options.title ?? audioPlayer.dataset?.title;\r\n\r\n      //remove attribute\r\n      audioPlayer.removeAttribute(\"data-options\");\r\n      audioPlayer.removeAttribute(\"data-song\");\r\n\r\n      // alert(\"working fine\");\r\n      if (options) H5AP_Obj.audioPlayer(audioPlayer, options);\r\n    });\r\n\r\n    H5AP_Obj.stickyPlayer2($(\".h5ap_sticky_player\"));\r\n\r\n    /**\r\n     * for playlist\r\n     */\r\n\r\n    /**\r\n     * for quick Player\r\n     */\r\n    const quickPlayers = document.querySelectorAll(\".h5ap_quick_player\");\r\n    Object.keys(quickPlayers).map((item) => {\r\n      const quickPlayer = $(quickPlayers[item]);\r\n      H5AP_Obj.quickPlayer(quickPlayer);\r\n    });\r\n\r\n    // Single Play button\r\n  });\r\n\r\n  /**\r\n   * This is for Elementor\r\n   */\r\n  $(window).on(\"elementor/frontend/init\", function () {\r\n    //this is for Stamp Auudio Player\r\n    elementorFrontend.hooks.addAction(\"frontend/element_ready/StampAudioPlayer.default\", function (scope, $) {\r\n      const players = $(scope).find(\".stampAudioPlayer\");\r\n      players.map((index, item) => {\r\n        item = $(players[index]);\r\n        let options = $(item).data(\"option\");\r\n        options.source = options.source ?? $(item).data(\"song\");\r\n        options.poster = options.poster ?? $(item).data(\"poster\");\r\n        H5AP_Obj.audioPlayer(item[0], options);\r\n      });\r\n    });\r\n\r\n    // this is form fusion player\r\n    elementorFrontend.hooks.addAction(\"frontend/element_ready/FusionAudioPlayer.default\", function (scope, $) {\r\n      const players = $(scope).find(\".h5ap_fusion_player\");\r\n      players.map((index, item) => {\r\n        item = $(players[index]);\r\n        const options = $(item).data(\"option\");\r\n        options.source = options.source ?? $(item).data(\"song\");\r\n        options.poster = options.poster ?? $(item).data(\"poster\");\r\n        H5AP_Obj.audioPlayer(item[0], options);\r\n      });\r\n    });\r\n\r\n    //This is for simple audio player\r\n    elementorFrontend.hooks.addAction(\"frontend/element_ready/SimpleAudioPlayer.default\", function (scope, $) {\r\n      const players = $(scope).find(\".h5ap_standard_player\");\r\n      // window.players = players;\r\n      players.map((index, item) => {\r\n        item = $(players[index]);\r\n        const options = $(item).data(\"options\") || {};\r\n        $(item).removeAttr(\"data-options\");\r\n        options.source = options?.source ?? $(item).data(\"song\");\r\n        options.poster = options?.poster ?? $(item).data(\"poster\");\r\n        H5AP_Obj.audioPlayer(item[0], options);\r\n      });\r\n    });\r\n  });\r\n})(jQuery);\r\n","import toHHMMSS from \"../../../../utils/toHHMMSS\";\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 } = 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    //initilize 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    player.on(\"ready\", function () {\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    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          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        }, 60 * 3 * 1000);\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 } = 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    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    // 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 } = 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    // 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      $(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    //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        ? `<a class=\"plyr__controls__item plyr__control plyr__download\" href=\"${source}\" target=\"_blank\" download data-plyr=\"download\">\r\n          <svg aria-hidden=\"true\" focusable=\"false\">\r\n            <use xlink:href=\"#plyr-download\"></use>\r\n          </svg>\r\n          <span class=\"plyr__sr-only\">Download</span>\r\n        </a>`\r\n        : \"\";\r\n    const repeat =\r\n      otherControls?.repeat === true\r\n        ? `<button type=\"button\" data-active=\"false\" class=\"plyr__control\" data-plyr=\"repeat\"><svg class=\"icon\">\r\n        <use xlink:href=\"#exchange\"></use></button>`\r\n        : \"\";\r\n    const playlist =\r\n      otherControls?.playlist === true ? `<button type=\"button\" class=\"plyr__control\" data-active=\"true\" data-plyr=\"playlist\"><span class=\"dashicons dashicons-playlist-audio\"></span></button>` : \"\";\r\n    return `<div class=\"plyr__controls radius\">\r\n    <div class=\"plyr__controls rewind_play_fastforward\">\r\n    <img class=\"thumbnails\" src=\"${poster}\" alt=\"\">\r\n    <div class=\"plyr__controls\">\r\n    <button type=\"button\" class=\"plyr__control\" data-plyr=\"rewind\">\r\n      <svg role=\"presentation\"><use xlink:href=\"#plyr-rewind\"></use></svg>\r\n      <span class=\"plyr__tooltip\" role=\"tooltip\">Rewind {seektime} secs</span>\r\n    </button>\r\n    <button type=\"button\" class=\"plyr__control\" aria-label=\"Play, {title}\" data-plyr=\"play\">\r\n      <svg class=\"icon--pressed\" role=\"presentation\"><use xlink:href=\"#plyr-pause\"></use></svg>\r\n      <svg class=\"icon--not-pressed\" role=\"presentation\"><use xlink:href=\"#plyr-play\"></use></svg>\r\n      <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Pause</span>\r\n      <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Play</span>\r\n    </button>\r\n    <button type=\"button\" class=\"plyr__control\" data-plyr=\"fast-forward\">\r\n      <svg role=\"presentation\"><use xlink:href=\"#plyr-fast-forward\"></use></svg>\r\n      <span class=\"plyr__tooltip\" role=\"tooltip\">Forward {seektime} secs</span>\r\n    </button>\r\n    </div>\r\n    </div>\r\n    <div class=\"infos\">\r\n      <div class=\"title\">\r\n        <h3>${title}</h3>\r\n    </div>\r\n        <div class=\"time_progress\">\r\n        <div class=\"plyr__time plyr__time--current\" aria-label=\"Current time\">00:00</div>\r\n        <div class=\"plyr__progress\">\r\n          <input data-plyr=\"seek\" type=\"range\" min=\"0\" max=\"100\" step=\"0.01\" value=\"0\" aria-label=\"Seek\">\r\n          <progress class=\"plyr__progress__buffer\" min=\"0\" max=\"100\" value=\"0\">% buffered</progress>\r\n          <span role=\"tooltip\" class=\"plyr__tooltip\">00:00</span>\r\n        </div>\r\n        <div class=\"plyr__time plyr__time--duration\" aria-label=\"Duration\">00:00</div>\r\n        </div>\r\n      </div>\r\n    <div class=\"other_controls\">\r\n      <div class=\"extra_controls\">\r\n        ${download}\r\n        ${repeat}\r\n        ${playlist}\r\n      </div>\r\n      <div class=\"volume_controls\">\r\n      <button type=\"button\" class=\"plyr__control\" aria-label=\"Mute\" data-plyr=\"mute\">\r\n          <svg class=\"icon--pressed\" role=\"presentation\"><use xlink:href=\"#plyr-muted\"></use></svg>\r\n          <svg class=\"icon--not-pressed\" role=\"presentation\"><use xlink:href=\"#plyr-volume\"></use></svg>\r\n          <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Unmute</span>\r\n          <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Mute</span>\r\n      </button>\r\n      <div class=\"plyr__volume\">\r\n          <input data-plyr=\"volume\" type=\"range\" min=\"0\" max=\"1\" step=\"0.05\" value=\"1\" autocomplete=\"off\" aria-label=\"Volume\">\r\n      </div>\r\n      </div>\r\n    </div>\r\n  </div>`;\r\n  }\r\n\r\n  skinStamp() {\r\n    return `<div class=\"StampAudioPlayerSkin radius\">\r\n     <button type=\"button\" class=\"muteUnmute plyr__control\" data-plyr=\"mute\"><svg class=\"icon--pressed\" aria-hidden=\"true\" focusable=\"false\"><use xlink:href=\"#plyr-muted\"></use></svg><svg class=\"icon--not-pressed\" aria-hidden=\"true\" focusable=\"false\"><use xlink:href=\"#plyr-volume\"></use></svg></button>\r\n     <div class=\"extraOptions\">\r\n     <h3 class=\"audioTitle\">Audio Title</h3>\r\n\r\n     <div class=\"audioSound\">\r\n     <input data-plyr=\"volume\" type=\"range\" name=\"sound\" id=\"audioRange\" value=\".5\" min=\"0\" max=\"1\" step=\"0.001\" />\r\n      </div>\r\n      </div>\r\n\r\n     <div class=\"mainOptions\">\r\n     <button class=\"leftAudio  plyr__controls__item plyr__control\" data-plyr=\"rewind\"><svg aria-hidden=\"true\" focusable=\"false\"><use xlink:href=\"#plyr-rewind\"></use></svg></button>\r\n\r\n     <div class=\"controls\">\r\n     <div class=\"play_forward_rewind\">\r\n      <button class=\"playPauseAudio  plyr__controls__item plyr__control\" data-plyr=\"rewind\"><svg aria-hidden=\"true\" focusable=\"false\"><use xlink:href=\"#plyr-rewind\"></use></svg></button>\r\n      <button class=\"plyr__controls__item plyr__control playPauseAudio\" type=\"button\" data-plyr=\"play\" aria-label=\"Play\"><svg class=\"icon--pressed\" aria-hidden=\"true\" focusable=\"false\"><use xlink:href=\"#plyr-pause\"></use></svg><svg class=\"icon--not-pressed\" aria-hidden=\"true\" focusable=\"false\"><use xlink:href=\"#plyr-play\"></use></svg></button>\r\n     </div>\r\n\r\n     <div class=\"audioProgressView\">\r\n      <div class=\"progressWrap\">\r\n      <span class=\"currentTime plyr__time--current\">00:00</span>\r\n      <div class=\"plyr__controls__item plyr__progress__container\"><div class=\"plyr__progress\"><input data-plyr=\"seek\" type=\"range\" min=\"0\" max=\"100\" step=\"0.01\" value=\"0\" autocomplete=\"off\" role=\"slider\" aria-label=\"Seek\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-valuenow=\"0\" id=\"plyr-seek-7930\" aria-valuetext=\"00:00 of 03:05\" seek-value=\"14.901800327332243\" style=\"--value:0%;\"><progress class=\"plyr__progress__buffer\" min=\"0\" max=\"100\" value=\"0\" role=\"progressbar\" aria-hidden=\"true\">% buffered</progress><span class=\"plyr__tooltip\" style=\"left: 11.2357%;\">00:20</span></div></div>\r\n      <span class=\"totalTime plyr__time--duration\">00:00</span>\r\n        </div>\r\n        </div>\r\n      </div>\r\n\r\n     <button class=\"rightAudio plyr__controls__item plyr__control\" data-plyr=\"fast-forward\"><svg aria-hidden=\"true\" focusable=\"false\"><use xlink:href=\"#plyr-fast-forward\"></use></svg></button>\r\n      </div>\r\n      </div>`;\r\n  }\r\n\r\n  skinSimple(title = \"\", logo = \"\", background = \"\") {\r\n    return `<div class=\"skin_simple_sticky\" style=\"background:${background}\">\r\n      <div class=\"play\">\r\n      <button class=\"plyr__controls__item plyr__control\" type=\"button\" data-plyr=\"play\" aria-label=\"Play Audio\"><svg class=\"icon--pressed\" aria-hidden=\"true\" focusable=\"false\"><use xlink:href=\"#plyr-pause\"></use></svg><svg class=\"icon--not-pressed\" aria-hidden=\"true\" focusable=\"false\"><use xlink:href=\"#plyr-play\"></use></svg><span class=\"label--pressed plyr__sr-only\">Pause</span><span class=\"label--not-pressed plyr__sr-only\">Play Audio</span></button>\r\n      </div>\r\n      <div class=\"title\" title=\"${title}\">${title}</div>\r\n      <div class=\"logo\">\r\n        <img src=\"${logo}\" alt=\"\" />\r\n      </div>\r\n    </div>`;\r\n  }\r\n\r\n  skinWave(poster = \"\", title = \"\", author = \"\") {\r\n    return `<div class=\"wave radius\">\r\n      <div class=\"thumb\">\r\n        <img src=\"${poster}\" />\r\n      </div>\r\n      <div class=\"info-wave\">\r\n        <div class=\"wave\">\r\n          <canvas id=\"wave-canvas\"></canvas>\r\n          <div class=\"plyr__time plyr__time--current\" aria-label=\"Current time\">00:00</div>\r\n          <div class=\"plyr__time plyr__time--duration\" aria-label=\"Duration\">00:00</div>\r\n        </div>\r\n        <div class=\"info\">\r\n          <div class=\"play\">\r\n            <button type=\"button\" class=\"plyr__control\" aria-label=\"Play, {title}\" data-plyr=\"play\">\r\n              <svg class=\"icon--pressed\" role=\"presentation\"><use xlink:href=\"#plyr-pause\"></use></svg>\r\n              <svg class=\"icon--not-pressed\" role=\"presentation\"><use xlink:href=\"#plyr-play\"></use></svg>\r\n              <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Pause</span>\r\n              <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Play</span>\r\n            </button>\r\n          </div>\r\n          <div class=\"title-author\">\r\n            ${title && `<h2 title=\"${title}\">${title}</h2>`}\r\n            ${author && `<p>${author}</p>`}\r\n          </div>\r\n          <div class=\"volume_controls\">\r\n            <button type=\"button\" class=\"plyr__control\" aria-label=\"Mute\" data-plyr=\"mute\">\r\n                <svg class=\"icon--pressed\" role=\"presentation\"><use xlink:href=\"#plyr-muted\"></use></svg>\r\n                <svg class=\"icon--not-pressed\" role=\"presentation\"><use xlink:href=\"#plyr-volume\"></use></svg>\r\n                <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Unmute</span>\r\n                <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Mute</span>\r\n            </button>\r\n            <div class=\"plyr__volume\">\r\n                <input data-plyr=\"volume\" type=\"range\" min=\"0\" max=\"1\" step=\"0.05\" value=\"1\" autocomplete=\"off\" aria-label=\"Volume\">\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>`;\r\n  }\r\n\r\n  skinCardOne(info = {}) {\r\n    return `<div class=\"skin_card_container\">\r\n    <div class=\"player\">\r\n      <div class=\"like waves-effect waves-light\">\r\n        <i class=\"icon-heart\"></i>\r\n      </div>\r\n      <div class=\"mask\"></div>\r\n      <ul class=\"player-info info-one\">\r\n        <li>${info?.title}</li>\r\n        <li>${info?.artist}</li>\r\n        <li class=\"plyr__time--duration\">0:00</li>\r\n      </ul>\r\n      <ul class=\"player-info info-two\">\r\n        <li>${info?.title}</li>\r\n        <li>${info?.artist}</li>\r\n        <li><span class=\"plyr__time--current\" id=\"duration\"></span><i> / </i><span class=\"plyr__time--duration\">0:00</span></li>\r\n      </ul>\r\n      <button id=\"play-button\" type=\"button\" class=\"plyr__control waves-effect waves-button waves-float play-inactive\" aria-label=\"Play, {title}\" data-plyr=\"play\">\r\n        <svg class=\"icon--pressed icon-play\" role=\"presentation\">s<use xlink:href=\"#plyr-pause\"></use></svg>\r\n        <svg class=\"icon--not-pressed icon-play\" role=\"presentation\"><use xlink:href=\"#plyr-play\"></use></svg>\r\n        <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Pause</span>\r\n        <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Play</span>\r\n      </button>\r\n      <div class=\"control-row\">\r\n        <div class=\"waves-animation-one\"></div>\r\n        <div class=\"waves-animation-two\"></div>\r\n        <div class=\"details\">\r\n          <button id=\"pause-button\" type=\"button\" class=\"plyr__control\" aria-label=\"Play, {title}\" data-plyr=\"play\">\r\n            <svg class=\"icon--pressed icon-play\" role=\"presentation\">s<use xlink:href=\"#plyr-pause\"></use></svg>\r\n            <svg class=\"icon--not-pressed icon-play\" role=\"presentation\"><use xlink:href=\"#plyr-play\"></use></svg>\r\n            <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Pause</span>\r\n            <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Play</span>\r\n          </button>\r\n        <div class=\"seek-field\">\r\n          <div class=\"plyr__progress\">\r\n            <input data-plyr=\"seek\" type=\"range\" min=\"0\" max=\"100\" step=\"0.01\" value=\"0\" aria-label=\"Seek\">\r\n            <progress class=\"plyr__progress__buffer\" min=\"0\" max=\"100\" value=\"0\">% buffered</progress>\r\n            <span role=\"tooltip\" class=\"plyr__tooltip\">00:00</span>\r\n          </div>\r\n        </div>\r\n        <div class=\"volume_controls volume-icon\">\r\n            <button type=\"button\" class=\" plyr__control\" aria-label=\"Mute\" data-plyr=\"mute\">\r\n                <svg class=\"icon--pressed\" role=\"presentation\"><use xlink:href=\"#plyr-muted\"></use></svg>\r\n                <svg class=\"icon--not-pressed\" role=\"presentation\"><use xlink:href=\"#plyr-volume\"></use></svg>\r\n                <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Unmute</span>\r\n                <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Mute</span>\r\n            </button>\r\n            <div class=\"plyr__volume\">\r\n                <input data-plyr=\"volume\" type=\"range\" min=\"0\" max=\"1\" step=\"0.05\" value=\"1\" autocomplete=\"off\" aria-label=\"Volume\">\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>`;\r\n  }\r\n\r\n  skinCardTwo(info = {}) {\r\n    return `<div id=\"single-song-player\" class=\"radius\">\r\n    <img data-amplitude-song-info=\"cover_art_url\" src=\"${info?.poster}\"/>\r\n    <div class=\"bottom-container\">\r\n      <progress type=\"range\" class=\"amplitude-song-played-progress\" min=\"0\" max=\"100\" step=\"0.01\"></progress>\r\n\r\n      <div class=\"time-container\">\r\n        <span class=\"current-time plyr__time--current\"></span>\r\n        <span class=\"duration plyr__time--duration\"></span>\r\n      </div>\r\n\r\n      <div class=\"control-container\">\r\n        <button id=\"play-button\" type=\"button\" class=\"plyr__control amplitude-play-pause\" aria-label=\"Play, ${info.title}\" data-plyr=\"play\">\r\n          <svg class=\"icon--pressed icon-play\" role=\"presentation\">s<use xlink:href=\"#plyr-pause\"></use></svg>\r\n          <svg class=\"icon--not-pressed icon-play\" role=\"presentation\"><use xlink:href=\"#plyr-play\"></use></svg>\r\n          <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Pause</span>\r\n          <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Play</span>\r\n        </button>\r\n        <div class=\"meta-container\">\r\n          <span data-amplitude-song-info=\"name\" class=\"song-name\">${info?.title}</span>\r\n          <span data-amplitude-song-info=\"artist\">${info?.artist}</span>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>`;\r\n  }\r\n\r\n  skinSimpleOne() {\r\n    return `<div class=\"h5ap-player-skin-5 radius\">\r\n        <div class=\"progress-time\">\r\n            <div>\r\n                <div class=\"plyr__progress\">\r\n                    <input data-plyr=\"seek\" type=\"range\" min=\"0\" max=\"100\" step=\"0.01\" value=\"0\" aria-label=\"Seek\">\r\n                    <progress class=\"plyr__progress__buffer\" min=\"0\" max=\"100\" value=\"0\">% buffered</progress>\r\n                    <span role=\"tooltip\" class=\"plyr__tooltip\">00:00</span>\r\n                </div>\r\n            </div>\r\n            <div class=\"time\">\r\n                <div class=\"plyr__time plyr__time--current\" aria-label=\"Current time\">00:00</div>\r\n                <div class=\"plyr__time plyr__time--duration\" aria-label=\"Duration\">00:00</div>\r\n            </div>\r\n        </div>\r\n      <div class=\"controls\">\r\n        <button type=\"button\" class=\"plyr__control\" data-plyr=\"rewind\">\r\n          <svg role=\"presentation\"><use xlink:href=\"#plyr-rewind\"></use></svg>\r\n          <span class=\"plyr__tooltip\" role=\"tooltip\">Rewind {seektime} secs</span>\r\n        </button>\r\n        <button type=\"button\" class=\"plyr__control\" aria-label=\"Play, {title}\" data-plyr=\"play\">\r\n          <svg class=\"icon--pressed\" role=\"presentation\"><use xlink:href=\"#plyr-pause\"></use></svg>\r\n          <svg class=\"icon--not-pressed\" role=\"presentation\"><use xlink:href=\"#plyr-play\"></use></svg>\r\n          <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Pause</span>\r\n          <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Play</span>\r\n        </button>\r\n        <button type=\"button\" class=\"plyr__control\" data-plyr=\"fast-forward\">\r\n          <svg role=\"presentation\"><use xlink:href=\"#plyr-fast-forward\"></use></svg>\r\n          <span class=\"plyr__tooltip\" role=\"tooltip\">Forward {seektime} secs</span>\r\n        </button>\r\n      </div>\r\n    </div>`;\r\n  }\r\n\r\n  skinSimpleTwo({ poster }) {\r\n    return `<div class=\"h5ap-player-skin-6\">\r\n        <div class=\"progress-time\">\r\n            <div class=\"thumbnail\"><img src=\"${poster}\" /></div>\r\n        </div>\r\n      <div class=\"controls\">\r\n        <button type=\"button\" class=\"plyr__control\" data-plyr=\"rewind\">\r\n          <svg role=\"presentation\"><use xlink:href=\"#plyr-rewind\"></use></svg>\r\n          <span class=\"plyr__tooltip\" role=\"tooltip\">Rewind {seektime} secs</span>\r\n        </button>\r\n        <button type=\"button\" class=\"plyr__control\" aria-label=\"Play, {title}\" data-plyr=\"play\">\r\n          <svg class=\"icon--pressed\" role=\"presentation\"><use xlink:href=\"#plyr-pause\"></use></svg>\r\n          <svg class=\"icon--not-pressed\" role=\"presentation\"><use xlink:href=\"#plyr-play\"></use></svg>\r\n          <span class=\"label--pressed plyr__tooltip\" role=\"tooltip\">Pause</span>\r\n          <span class=\"label--not-pressed plyr__tooltip\" role=\"tooltip\">Play</span>\r\n        </button>\r\n        <button type=\"button\" class=\"plyr__control\" data-plyr=\"fast-forward\">\r\n          <svg role=\"presentation\"><use xlink:href=\"#plyr-fast-forward\"></use></svg>\r\n          <span class=\"plyr__tooltip\" role=\"tooltip\">Forward {seektime} secs</span>\r\n        </button>\r\n      </div>\r\n    </div>`;\r\n  }\r\n\r\n  disablePause(player) {\r\n    player.on(\"pause\", function () {\r\n      if (!player.ended) {\r\n        player.play();\r\n      }\r\n    });\r\n  }\r\n\r\n  getDetectorData(wrapper, data = {}) {\r\n    let mediaElement = null;\r\n    let { options, infos, initializer, selector } = data;\r\n\r\n    // get the exact wrapper\r\n    if (wrapper === null) {\r\n      return false;\r\n    }\r\n    if (typeof wrapper[0] !== \"undefined\") {\r\n      wrapper.map((index, item) => {\r\n        this[initializer](item, options, infos);\r\n      });\r\n      return false;\r\n    }\r\n    if (typeof wrapper.length !== \"undefined\" && wrapper.length === 0) {\r\n      return false;\r\n    }\r\n    if (wrapper.querySelector(selector) !== null) {\r\n      wrapper = wrapper.querySelector(selector);\r\n    }\r\n\r\n    //get data from attribute if it not pass in function\r\n    if (!options && jQuery(wrapper).attr(\"data-options\") != undefined) {\r\n      options = JSON.parse(jQuery(wrapper).attr(\"data-options\"));\r\n    }\r\n\r\n    if (!infos && jQuery(wrapper).attr(\"data-infos\") != undefined) {\r\n      infos = JSON.parse(jQuery(wrapper).attr(\"data-infos\"));\r\n    }\r\n\r\n    mediaElement = wrapper.querySelector(\"audio\");\r\n\r\n    return {\r\n      wrapper,\r\n      options,\r\n      infos,\r\n      mediaElement,\r\n    };\r\n  }\r\n\r\n  cardOne(wrapper, player, poster = \"\") {\r\n    const detailsEl = wrapper.querySelector(\".details\");\r\n    const maskEl = wrapper.querySelector(\".mask\");\r\n    const playBtn = wrapper.querySelector(\"#play-button\");\r\n    const infoOne = wrapper.querySelector(\".player-info.info-one\");\r\n    const infoTwo = wrapper.querySelector(\".player-info.info-two\");\r\n    const cardContainer = wrapper.querySelector(\".skin_card_container\");\r\n    const anmOne = wrapper.querySelector(\".waves-animation-one\");\r\n\r\n    maskEl.style.background = `url(${poster})`;\r\n\r\n    player.on(\"play\", function () {\r\n      cardContainer.classList.add(\"playing\");\r\n      playBtn.classList.add(\"play-active\");\r\n      playBtn.classList.remove(\"play-inactive\");\r\n      playBtn.style.display = \"none\";\r\n      infoOne.style.display = \"none\";\r\n      infoTwo.style.display = \"block\";\r\n      infoTwo.classList.add(\"info-active\");\r\n      anmOne.style.display = \"block\";\r\n      detailsEl.style.display = \"block\";\r\n    });\r\n\r\n    player.on(\"ready\", function () {\r\n      const durationEl = infoTwo.querySelector(\".plyr__time--duration\");\r\n      durationEl.innerText = toHHMMSS(player.duration);\r\n    });\r\n  }\r\n\r\n  cardTwo(wrapper, player) {\r\n    const progressEl = wrapper.querySelector(\".amplitude-song-played-progress\");\r\n    progressEl.addEventListener(\"click\", function (e) {\r\n      const position = player.duration / progressEl.offsetWidth;\r\n      player.currentTime = e.offsetX * position;\r\n    });\r\n\r\n    player.on(\"timeupdate\", function () {\r\n      progressEl.setAttribute(\"value\", (100 / player.duration) * player.currentTime);\r\n    });\r\n  }\r\n\r\n  wave(wrapper, player, color = \"#fff\", background = \"#333\") {\r\n    const audio = jQuery(wrapper).find(\"audio\");\r\n    const title = jQuery(wrapper).find(\".title-author h2\");\r\n    if (title) {\r\n      const titleText = title.text();\r\n      const dot = titleText.length > title?.width() / 10.5 ? \"...\" : \"\";\r\n      jQuery(title).text(titleText.substr(0, title?.width() / 10.5) + dot);\r\n    }\r\n    var AudioContext = window.AudioContext || window.webkitAudioContext || false;\r\n    const context = new AudioContext();\r\n\r\n    if (context) {\r\n      var src = context.createMediaElementSource(audio[0]);\r\n      var analyser = context.createAnalyser();\r\n\r\n      var canvas = jQuery(wrapper).find(\"#wave-canvas\")[0];\r\n      if (canvas) {\r\n        canvas.width = window.innerWidth;\r\n        canvas.height = window.innerHeight;\r\n        var ctx = canvas.getContext(\"2d\");\r\n\r\n        src.connect(analyser);\r\n        analyser.connect(context.destination);\r\n\r\n        analyser.fftSize = 512;\r\n        if (wrapper?.offsetWidth > 800) {\r\n          analyser.fftSize = 1024;\r\n        }\r\n\r\n        var bufferLength = analyser.frequencyBinCount;\r\n\r\n        var dataArray = new Uint8Array(bufferLength);\r\n\r\n        var WIDTH = canvas.width;\r\n        var HEIGHT = canvas.height;\r\n\r\n        var barWidth = (WIDTH / bufferLength) * 1;\r\n        var barHeight;\r\n        var x = 0;\r\n\r\n        const renderFrame = () => {\r\n          requestAnimationFrame(renderFrame);\r\n\r\n          x = 0;\r\n\r\n          analyser.getByteFrequencyData(dataArray);\r\n\r\n          ctx.fillStyle = background;\r\n          ctx.fillRect(0, 0, WIDTH, HEIGHT);\r\n\r\n          for (var i = 0; i < bufferLength; i++) {\r\n            if (!player.playing) {\r\n              barHeight = dataArray[i] + 100;\r\n            } else {\r\n              barHeight = dataArray[i];\r\n            }\r\n\r\n            // var r = barHeight + 25 * (i / bufferLength);\r\n            // var g = 250 * (i / bufferLength);\r\n            // var b = 50;\r\n\r\n            // ctx.fillStyle = \"rgb(\" + r + \",\" + g + \",\" + b + \")\";\r\n            ctx.fillStyle = color;\r\n            ctx.fillRect(x, HEIGHT - barHeight - 80, barWidth, barHeight + 80);\r\n\r\n            x += barWidth + 5;\r\n          }\r\n        };\r\n\r\n        renderFrame();\r\n      }\r\n\r\n      const palyButton = jQuery(wrapper).find('[data-plyr=\"play\"]');\r\n      palyButton.one(\"click\", function () {\r\n        context.resume();\r\n        // audio[0].play();\r\n      });\r\n    }\r\n  }\r\n}\r\n\r\nexport default H5AP;\r\n"],"names":["H5AP_Obj","audioPlayer","options","$","jQuery","otherControls","repeat","i18n","h5ap_i18n","controls","seekTime","title","artist","disablePause","poster","muted","autoplay","startTime","source","skin","disableDownload","fusionDownload","color","background","primaryColor","download","this","skinFusion","skinWave","skinCardOne","skinCardTwo","skinSimpleOne","skinSimpleTwo","skinStamp","on","setTimeout","blur","plyr","localStorage","getItem","isFirefox","InstallTrigger","JSON","parse","setItem","stringify","player","Plyr","find","loop","active","speed","selected","h5apPlayer","map","Number","currentTime","parseInt","interval","setInterval","clearInterval","play","wave","cardOne","cardTwo","css","text","width","addClass","multipleAudio","playing","disableOtherPlayer","attr","intervalId","loadingPlaceholder","elements","container","nextElementSibling","classList","contains","style","display","includes","tempSource","Math","random","type","sources","src","quickPlayer","data","stickyPlayer","btnClose","btnMinimize","btnMaximize","initialVolume","stickyDownload","window","pageYOffset","fadeIn","skinSimple","storage","option","remember","volume","time","fadeOut","remove","stop","removeClass","onbeforeunload","object","html","stickyPlayer2","optionss","arguments","length","undefined","infoss","detector","getDetectorData","infos","initializer","wrapper","removeAttr","each","pause","playlist","author","info","_ref","ended","mediaElement","selector","index","item","querySelector","detailsEl","maskEl","playBtn","infoOne","infoTwo","cardContainer","anmOne","add","sec_num","hours","minutes","seconds","innerText","duration","floor","progressEl","addEventListener","e","position","offsetWidth","offsetX","setAttribute","audio","titleText","dot","substr","context","AudioContext","webkitAudioContext","createMediaElementSource","analyser","createAnalyser","canvas","innerWidth","height","innerHeight","ctx","getContext","connect","destination","fftSize","barHeight","bufferLength","frequencyBinCount","dataArray","Uint8Array","WIDTH","HEIGHT","barWidth","x","renderFrame","requestAnimationFrame","getByteFrequencyData","fillStyle","fillRect","i","one","resume","document","ready","getElementById","ioScript","createElement","plyrio_js","getElementsByTagName","appendChild","id","script","plyr_js","h5apAudios","querySelectorAll","Object","keys","dataset","error","song","removeAttribute","quickPlayers","elementorFrontend","hooks","addAction","scope","players"],"sourceRoot":""}