Files
ArtPlayer/dist/artplayer-plugin-playlist.js
T
2019-06-06 13:33:49 +08:00

9 lines
2.1 KiB
JavaScript

/*!
* artplayer-plugin-playlist.js v3.1.9
* 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).artplayerPluginPlaylist=n()}(this,function(){"use strict";return function(h){return function(e){var t=e.constructor.utils,n=t.append,r=t.errorHandle,i=t.sleep,a=t.inverseClass,l=e.player,o=e.events.proxy,s=e.template,u=s.$player,c=s.$video,y=n(u,'\n <div class="artplayer-playlist">\n <div class="artplayer-playlist-inner"></div>\n </div>\n ');r(Array.isArray(h),"Playlist is not an array type"),r(0<h.length,"Playlist cannot be empty");var f=h.map(function(t){return r(t.url,"Playlist items require url attribute"),r(t.title,"Playlist items require title attribute"),t}),p=y.querySelector(".artplayer-playlist-inner");function d(t){var n=f[t];return l.switchUrl(n.url,n.title).then(function(){e.emit("artplayerPluginPlaylist:change",n)})}function v(){var t=f.findIndex(function(t){return t.url===c.src});return r(-1!==t,"Can't find Playlist item"),1===f.length?d(0):d(t+1===f.length?0:t+1)}return p.innerHTML=f.map(function(t,n){return'<div class="artplayer-playlist-item" data-option-index="'.concat(n,'">').concat(t.title,"</div>")}).join(""),o(p,"click",function(t){var n=t.target.dataset.optionIndex;n&&Number(n)<=f.length-1&&d(n)}),o(y,"click",function(t){t.target===y&&u.classList.remove("artplayer-playlist-show")}),e.on("video:ended",function(){v().then(function(){i(1e3).then(function(){l.play=!0})})}),e.on("afterAttachUrl",function(){var t=f.findIndex(function(t){return t.url===c.src}),n=Array.from(p.children)[t];-1!==t&&n&&a(n,"active")}),{name:"artplayerPluginPlaylist",show:function(){u.classList.add("artplayer-playlist-show")},hide:function(){u.classList.remove("artplayer-playlist-show")},next:function(){v()},prev:function(){!function(){var t=f.findIndex(function(t){return t.url===c.src});r(-1!==t,"Can't find Playlist item"),1===f.length?d(0):d(t-1==-1?f.length-1:t-1)}()}}}}});