Files
ArtPlayer/dist/artplayer-plugin-playlist.js
T
2019-04-21 21:25:22 +08:00

9 lines
2.1 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(e){var t=e.constructor.utils,n=t.append,i=t.errorHandle,r=t.sleep,l=e.player,a=e.events.proxy,o=e.template,u=o.$player,c=o.$video,s=n(u,'\n <div class="artplay-playlist">\n <div class="artplay-playlist-inner"></div>\n </div>\n '),y=[],d=s.querySelector(".artplay-playlist-inner");function f(t){var n=y[t];return l.switchUrl(n.url,n.title).then(function(){e.emit("artplayerPluginPlaylist:change",n)})}function p(){var t=y.findIndex(function(t){return t.url===c.src});return i(-1!==t,"Can't find Playlist item"),1===y.length?f(0):f(t+1===y.length?0:t+1)}return a(d,"click",function(t){var n=t.target.dataset.optionIndex;n&&Number(n)<=y.length-1&&f(n)}),a(s,"click",function(t){t.target===s&&(s.style.display="none")}),e.on("video:ended",function(){p().then(function(){r(1e3).then(l.play)})}),e.on("afterAttachUrl",function(){var t=y.findIndex(function(t){return t.url===c.src}),n=Array.from(d.children),e=n[t];-1!==t&&e&&(n.forEach(function(t){return t.classList.remove("active")}),e.classList.add("active"))}),{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}),d.innerHTML=y.map(function(t,n){return'<div class="artplay-playlist-item" data-option-index="'.concat(n,'">').concat(t.title,"</div>")}).join("")},show:function(){s.style.display="flex"},hide:function(){s.style.display="none"},next:function(){p()},prev:function(){!function(){var t=y.findIndex(function(t){return t.url===c.src});i(-1!==t,"Can't find Playlist item"),1===y.length?f(0):f(t-1==-1?y.length-1:t-1)}()}}}return window.artplayerPluginPlaylist=t});