Files
ArtPlayer/dist/artplayer-plugin-playlist.js
T
2019-04-21 11:57:44 +08:00

9 lines
2.0 KiB
JavaScript

/*!
* artplayer-plugin-playlist.js v3.1.6
* Github: https://github.com/zhw2590582/ArtPlayer#readme
* (c) 2017-2019 Harvey Zack
* Released under the MIT License.
*/
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self)["artplayer-plugin-playlist"]=n()}(this,function(){"use strict";function t(t){var n=t.constructor.utils,e=n.append,i=n.errorHandle,r=t.player,l=t.events.proxy,a=t.template,o=a.$player,s=a.$video,u=e(o,'\n <div class="artplay-playlist">\n <div class="artplay-playlist-inner"></div>\n </div>\n '),c=u.querySelector(".artplay-playlist-inner"),y=[];function d(t){var n=y[t];r.switchUrl(n.url,n.title).then(function(){r.play()})}return t.on("afterAttachUrl",function(){var t=y.findIndex(function(t){return t.url===s.src}),n=Array.from(c.children),e=n[t];-1!==t&&e&&(n.forEach(function(t){return t.classList.remove("active")}),e.classList.add("active"))}),l(c,"click",function(t){var n=t.target.dataset.optionIndex;n&&Number(n)<=y.length-1&&d(n)}),l(u,"click",function(t){t.target===u&&(u.style.display="none")}),{name:"artplayerPluginPlaylist",load:function(t){i(Array.isArray(t),"Playlist is not an array type"),i(0<t.length,"Playlist cannot be empty"),y=t.map(function(t){return i(t.url,"Playlist items require url attribute"),i(t.title,"Playlist items require title attribute"),t}),c.innerHTML=y.map(function(t,n){return'<div class="artplay-playlist-item" data-option-index="'.concat(n,'">').concat(t.title,"</div>")}).join("")},show:function(){u.style.display="flex"},hide:function(){u.style.display="none"},next:function(){var t=y.findIndex(function(t){return t.url===s.src});(i(-1!==t,"Can't find Playlist item"),1===y.length)?d(0):d(t+1===y.length?0:t+1)},prev:function(){var t=y.findIndex(function(t){return t.url===s.src});(i(-1!==t,"Can't find Playlist item"),1===y.length)?d(0):d(t-1==-1?y.length-1:t-1)}}}return window.artplayerPluginPlaylist=t});