diff --git a/docs/css/artplayer.css b/docs/css/artplayer.css
index 0c8b67bde..99319aa1c 100644
--- a/docs/css/artplayer.css
+++ b/docs/css/artplayer.css
@@ -1,14 +1,14 @@
-.artplayer-video-player .artplayer-subtitle{position:absolute;z-index:20;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px;pointer-events:none}.artplayer-video-player .artplayer-subtitle p{margin:5px 0}
.artplayer-video-player .artplayer-video{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;width:100%;height:100%;background-color:#000;outline:0}
-.artplayer-video-player .artplayer-layers{position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%}.artplayer-video-player .artplayer-layers .art-layer{position:absolute}
.artplayer-video-player{position:relative;width:100%;height:100%;overflow:hidden;outline:0;font-family:Roboto,Arial,Helvetica,sans-serif;color:#eee;text-align:left;direction:ltr;font-size:14px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:manipulation;-ms-high-contrast-adjust:none}.artplayer-video-player *{box-sizing:border-box}.artplayer-video-player .art-icon{display:inline-block}.artplayer-video-player .art-icon svg{fill:#fff}
+.artplayer-video-player .artplayer-subtitle{position:absolute;z-index:20;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px;pointer-events:none}.artplayer-video-player .artplayer-subtitle p{margin:5px 0}
+.artplayer-video-player .artplayer-layers{position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%}.artplayer-video-player .artplayer-layers .art-layer{position:absolute}
.artplayer-video-player .artplayer-danmu{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;width:100%;height:100%}
.artplayer-video-player .artplayer-mask{display:none;position:absolute;z-index:50;left:0;top:0;right:0;bottom:0;width:100%;height:100%;cursor:pointer}.artplayer-video-player .artplayer-mask .art-icon-playBig{position:absolute;right:30px;bottom:65px;opacity:.6}
.artplayer-video-player .artplayer-loading{display:none;position:absolute;z-index:70;left:0;top:0;right:0;bottom:0;width:100%;height:100%;align-items:center;justify-content:center}
.artplayer-video-player .artplayer-bottom{position:absolute;z-index:60;left:0;right:0;bottom:0;height:100px;padding:60px 10px 0;opacity:0;visibility:hidden;transition:all .2s ease-in-out;pointer-events:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.artplayer-video-player .artplayer-bottom .artplayer-progress{position:relative;pointer-events:all}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress{position:relative;height:5px;padding:1px 0;cursor:pointer}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner{position:relative;height:100%;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:0;background:hsla(0,0%,100%,.4)}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-played{position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;height:100%;width:0}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;height:0}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{display:inline-block;position:absolute;left:0;top:0;width:7px;height:3px;background:#fff;border-radius:3px}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{display:none;position:absolute;z-index:40;top:-5px;left:-6.5px;width:13px;height:13px;border-radius:50%}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.show-indicator{display:block}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-tip{display:none;position:absolute;z-index:50;top:-25px;left:0;height:20px;padding:0 5px;line-height:20px;color:#fff;font-size:12px;text-align:center;background:rgba(0,0,0,.7);border-radius:3px;font-weight:700}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress:hover .art-progress-indicator,.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress:hover .art-progress-tip{display:block}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-thumbnails{display:none;position:absolute;bottom:8px;left:0;pointer-events:none;background-color:rgba(0,0,0,.7)}.artplayer-video-player .artplayer-bottom .artplayer-controls{position:relative;pointer-events:all;display:flex;align-items:center;justify-content:space-between;height:36px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control{opacity:.9;float:left;font-size:12px;height:36px;cursor:pointer}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control .art-icon{display:flex;align-items:center;justify-content:center;float:left;height:36px;width:36px;padding:7px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control:hover{opacity:1}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel{position:relative;float:left;width:0;height:100%;transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);overflow:hidden}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{position:absolute;top:50%;left:0;width:12px;height:12px;border-radius:12px;margin-top:-6px;background:#fff}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{left:-54px;background:#fff}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{left:6px;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after,.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{content:"";position:absolute;display:block;top:50%;height:3px;margin-top:-2px;width:60px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel.art-volume-panel-hover{width:60px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-time{line-height:36px;padding:0 10px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality{position:relative;z-index:30;line-height:36px;padding:0 10px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality .art-qualitys{display:none;position:absolute;left:-15px;bottom:35px;width:100px;padding:5px 0;text-align:center;color:#fff;background:rgba(0,0,0,.7);border-radius:3px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5)}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality.hover .art-qualitys{display:block}.artplayer-video-player.artplayer-controls-show .artplayer-bottom,.artplayer-video-player.artplayer-hover .artplayer-bottom{opacity:1;visibility:visible}.artplayer-video-player.artplayer-destroy .art-progress-indicator,.artplayer-video-player.artplayer-destroy .art-progress-tip,.artplayer-video-player.artplayer-error .art-progress-indicator,.artplayer-video-player.artplayer-error .art-progress-tip{display:none!important}
.artplayer-video-player .artplayer-notice{display:none;font-size:14px;position:absolute;z-index:80;left:0;top:0;padding:10px;width:100%;pointer-events:none}.artplayer-video-player .artplayer-notice .artplayer-notice-inner{display:inline-block;padding:5px 10px;color:#fff;background:rgba(0,0,0,.6);border-radius:3px}
.artplayer-video-player .artplayer-contextmenu{position:absolute;z-index:100;left:0;top:0;min-width:200px;padding:5px 0;background:rgba(0,0,0,.8);border-radius:3px}.artplayer-video-player .artplayer-contextmenu .art-menu{cursor:pointer;font-size:13px;display:block;color:#fff;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5);border-bottom:1px solid hsla(0,0%,100%,.1)}.artplayer-video-player .artplayer-contextmenu .art-menu a{color:#fff;text-decoration:none}.artplayer-video-player .artplayer-contextmenu .art-menu span{display:inline-block;padding:0 7px}.artplayer-video-player .artplayer-contextmenu .art-menu span.current,.artplayer-video-player .artplayer-contextmenu .art-menu span:hover{color:#00c9ff}.artplayer-video-player .artplayer-contextmenu .art-menu:hover{background-color:hsla(0,0%,100%,.1)}.artplayer-video-player .artplayer-contextmenu .art-menu:last-child{border-bottom:none}
+.artplayer-video-player .artplayer-setting{display:none;position:absolute;z-index:90;left:0;top:0;height:100%;width:100%;align-items:center;justify-content:center;pointer-events:none}.artplayer-video-player .artplayer-setting .artplayer-setting-inner{position:relative;width:350px;height:250px;font-size:12px;background:rgba(0,0,0,.8);border-radius:3px;pointer-events:all;overflow:hidden}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body{overflow-x:hidden;overflow-y:auto;width:365px;height:100%}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body .art-setting{border-bottom:1px solid hsla(0,0%,100%,.1);padding:12px 35px 12px 20px}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body .art-setting .art-setting-header{color:#fff;margin-bottom:10px}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body .art-setting .art-setting-body{color:hsla(0,0%,100%,.8)}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-close{position:absolute;top:0;right:0;width:20px;height:20px;line-height:20px;text-align:center;color:hsla(0,0%,100%,.8);background:rgba(0,0,0,.5);font-size:20px;cursor:pointer}
.artplayer-video-player .artplayer-info{display:none;position:absolute;left:10px;top:10px;z-index:100;width:350px;min-height:150px;padding:10px;color:#fff;font-size:12px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;background:rgba(0,0,0,.7)}.artplayer-video-player .artplayer-info .art-info-item{display:flex;margin-bottom:5px}.artplayer-video-player .artplayer-info .art-info-item .art-info-title{width:100px;text-align:right}.artplayer-video-player .artplayer-info .art-info-item .art-info-content{flex:1;padding-left:5px}.artplayer-video-player .artplayer-info .artplayer-info-close{position:absolute;top:5px;right:5px;cursor:pointer}
.artplayer-video-player[data-aspect-ratio] video{box-sizing:content-box;-o-object-fit:fill;object-fit:fill}
-button[data-balloon]{overflow:visible}[data-balloon]{position:relative;cursor:pointer}[data-balloon]:after{font-family:sans-serif!important;font-weight:400!important;font-style:normal!important;text-shadow:none!important;font-size:12px!important;background:rgba(17,17,17,.9);border-radius:4px;color:#fff;content:attr(data-balloon);padding:.5em 1em;white-space:nowrap}[data-balloon]:after,[data-balloon]:before{filter:alpha(opactiy=0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-moz-opacity:0;-khtml-opacity:0;opacity:0;pointer-events:none;transition:all .18s ease-out .18s;position:absolute;z-index:10}[data-balloon]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M2.658 0h32.004c-6 0-11.627 12.002-16.002 12.002C14.285 12.002 8.594 0 2.658 0z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;content:""}[data-balloon]:hover:after,[data-balloon]:hover:before,[data-balloon][data-balloon-visible]:after,[data-balloon][data-balloon-visible]:before{filter:alpha(opactiy=100);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";-moz-opacity:1;-khtml-opacity:1;opacity:1;pointer-events:auto}[data-balloon].font-awesome:after{font-family:FontAwesome}[data-balloon][data-balloon-break]:after{white-space:pre}[data-balloon][data-balloon-blunt]:after,[data-balloon][data-balloon-blunt]:before{transition:none}[data-balloon][data-balloon-pos=up]:after{margin-bottom:11px}[data-balloon][data-balloon-pos=up]:after,[data-balloon][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,10px);transform:translate(-50%,10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up]:before{margin-bottom:5px}[data-balloon][data-balloon-pos=up]:hover:after,[data-balloon][data-balloon-pos=up]:hover:before,[data-balloon][data-balloon-pos=up][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=up-left]:after{left:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-left]:after,[data-balloon][data-balloon-pos=up-left]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-left]:before{left:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-left]:hover:after,[data-balloon][data-balloon-pos=up-left]:hover:before,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=up-right]:after{right:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-right]:after,[data-balloon][data-balloon-pos=up-right]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-right]:before{right:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-right]:hover:after,[data-balloon][data-balloon-pos=up-right]:hover:before,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down]:after{margin-top:11px}[data-balloon][data-balloon-pos=down]:after,[data-balloon][data-balloon-pos=down]:before{left:50%;top:100%;-webkit-transform:translate(-50%,-10px);transform:translate(-50%,-10px)}[data-balloon][data-balloon-pos=down]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;margin-top:5px}[data-balloon][data-balloon-pos=down]:hover:after,[data-balloon][data-balloon-pos=down]:hover:before,[data-balloon][data-balloon-pos=down][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=down-left]:after{left:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;left:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:hover:after,[data-balloon][data-balloon-pos=down-left]:hover:before,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down-right]:after{right:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;right:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:hover:after,[data-balloon][data-balloon-pos=down-right]:hover:before,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=left]:after{margin-right:11px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M0 33.342V1.338c0 6 12.002 11.627 12.002 16.002C12.002 21.715 0 27.406 0 33.342z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;margin-right:5px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:hover:after,[data-balloon][data-balloon-pos=left]:hover:before,[data-balloon][data-balloon-pos=left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=left][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-pos=right]:after{left:100%;margin-left:11px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M12 2.658v32.004c0-6-12.002-11.627-12.002-16.002C-.002 14.285 12 8.594 12 2.658z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;left:100%;margin-left:5px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:hover:after,[data-balloon][data-balloon-pos=right]:hover:before,[data-balloon][data-balloon-pos=right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=right][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-length=small]:after{white-space:normal;width:80px}[data-balloon][data-balloon-length=medium]:after{white-space:normal;width:150px}[data-balloon][data-balloon-length=large]:after{white-space:normal;width:260px}[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:380px}@media screen and (max-width:768px){[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:90vw}}[data-balloon][data-balloon-length=fit]:after{white-space:normal;width:100%}
-.artplayer-video-player .artplayer-setting{display:none;font-size:14px;position:absolute;z-index:90;left:0;top:0;height:100%;width:100%;align-items:center;justify-content:center;pointer-events:none}.artplayer-video-player .artplayer-setting .artplayer-setting-inner{width:350px;height:250px;padding:10px;color:#fff;background:rgba(0,0,0,.6);border-radius:3px;pointer-events:all}
\ No newline at end of file
+button[data-balloon]{overflow:visible}[data-balloon]{position:relative;cursor:pointer}[data-balloon]:after{font-family:sans-serif!important;font-weight:400!important;font-style:normal!important;text-shadow:none!important;font-size:12px!important;background:rgba(17,17,17,.9);border-radius:4px;color:#fff;content:attr(data-balloon);padding:.5em 1em;white-space:nowrap}[data-balloon]:after,[data-balloon]:before{filter:alpha(opactiy=0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-moz-opacity:0;-khtml-opacity:0;opacity:0;pointer-events:none;transition:all .18s ease-out .18s;position:absolute;z-index:10}[data-balloon]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M2.658 0h32.004c-6 0-11.627 12.002-16.002 12.002C14.285 12.002 8.594 0 2.658 0z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;content:""}[data-balloon]:hover:after,[data-balloon]:hover:before,[data-balloon][data-balloon-visible]:after,[data-balloon][data-balloon-visible]:before{filter:alpha(opactiy=100);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";-moz-opacity:1;-khtml-opacity:1;opacity:1;pointer-events:auto}[data-balloon].font-awesome:after{font-family:FontAwesome}[data-balloon][data-balloon-break]:after{white-space:pre}[data-balloon][data-balloon-blunt]:after,[data-balloon][data-balloon-blunt]:before{transition:none}[data-balloon][data-balloon-pos=up]:after{margin-bottom:11px}[data-balloon][data-balloon-pos=up]:after,[data-balloon][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,10px);transform:translate(-50%,10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up]:before{margin-bottom:5px}[data-balloon][data-balloon-pos=up]:hover:after,[data-balloon][data-balloon-pos=up]:hover:before,[data-balloon][data-balloon-pos=up][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=up-left]:after{left:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-left]:after,[data-balloon][data-balloon-pos=up-left]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-left]:before{left:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-left]:hover:after,[data-balloon][data-balloon-pos=up-left]:hover:before,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=up-right]:after{right:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-right]:after,[data-balloon][data-balloon-pos=up-right]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-right]:before{right:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-right]:hover:after,[data-balloon][data-balloon-pos=up-right]:hover:before,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down]:after{margin-top:11px}[data-balloon][data-balloon-pos=down]:after,[data-balloon][data-balloon-pos=down]:before{left:50%;top:100%;-webkit-transform:translate(-50%,-10px);transform:translate(-50%,-10px)}[data-balloon][data-balloon-pos=down]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;margin-top:5px}[data-balloon][data-balloon-pos=down]:hover:after,[data-balloon][data-balloon-pos=down]:hover:before,[data-balloon][data-balloon-pos=down][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=down-left]:after{left:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;left:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:hover:after,[data-balloon][data-balloon-pos=down-left]:hover:before,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down-right]:after{right:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;right:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:hover:after,[data-balloon][data-balloon-pos=down-right]:hover:before,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=left]:after{margin-right:11px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M0 33.342V1.338c0 6 12.002 11.627 12.002 16.002C12.002 21.715 0 27.406 0 33.342z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;margin-right:5px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:hover:after,[data-balloon][data-balloon-pos=left]:hover:before,[data-balloon][data-balloon-pos=left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=left][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-pos=right]:after{left:100%;margin-left:11px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M12 2.658v32.004c0-6-12.002-11.627-12.002-16.002C-.002 14.285 12 8.594 12 2.658z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;left:100%;margin-left:5px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:hover:after,[data-balloon][data-balloon-pos=right]:hover:before,[data-balloon][data-balloon-pos=right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=right][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-length=small]:after{white-space:normal;width:80px}[data-balloon][data-balloon-length=medium]:after{white-space:normal;width:150px}[data-balloon][data-balloon-length=large]:after{white-space:normal;width:260px}[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:380px}@media screen and (max-width:768px){[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:90vw}}[data-balloon][data-balloon-length=fit]:after{white-space:normal;width:100%}
\ No newline at end of file
diff --git a/docs/js/artplayer.js b/docs/js/artplayer.js
index 841c35a04..254ebca91 100644
--- a/docs/js/artplayer.js
+++ b/docs/js/artplayer.js
@@ -639,7 +639,7 @@
key: "init",
value: function init() {
var refs = this.art.refs;
- refs.$container.innerHTML = "\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n ";
+ refs.$container.innerHTML = "\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n ";
refs.$player = refs.$container.querySelector('.artplayer-video-player');
refs.$video = refs.$container.querySelector('.artplayer-video');
refs.$subtitle = refs.$container.querySelector('.artplayer-subtitle');
@@ -656,6 +656,8 @@
refs.$mask = refs.$container.querySelector('.artplayer-mask');
refs.$setting = refs.$container.querySelector('.artplayer-setting');
refs.$settingInner = refs.$container.querySelector('.artplayer-setting-inner');
+ refs.$settingBody = refs.$container.querySelector('.artplayer-setting-body');
+ refs.$settingClose = refs.$container.querySelector('.artplayer-setting-close');
refs.$info = refs.$container.querySelector('.artplayer-info');
refs.$infoPanel = refs.$container.querySelector('.artplayer-info-panel');
refs.$infoClose = refs.$container.querySelector('.artplayer-info-close');
@@ -687,6 +689,7 @@
'Default': '默认',
'Normal': '正常',
'Switch': '切换',
+ 'Common': '常规',
'Hide setting': '隐藏设置',
'Show setting': '显示设置'
},
@@ -711,6 +714,7 @@
'Default': '默認',
'Normal': '正常',
'Switch': '切換',
+ 'Common': '常規',
'Hide setting': '隱藏設置',
'Show setting': '顯示設置'
}
@@ -1959,66 +1963,79 @@
var _this2 = this;
this.add(new Progress({
+ name: 'progress',
disable: false,
position: 'top',
index: 10
}));
this.add(new Thumbnails({
+ name: 'thumbnails',
disable: !this.art.option.thumbnails.url,
position: 'top',
index: 20
}));
this.add(new PlayAndPause({
+ name: 'playAndPause',
disable: false,
position: 'left',
index: 10
}));
this.add(new Volume({
+ name: 'volume',
disable: false,
position: 'left',
index: 20
}));
this.add(new Time({
+ name: 'time',
disable: false,
position: 'left',
index: 30
}));
this.add(new Quality({
+ name: 'quality',
disable: this.art.option.quality.length === 0,
position: 'right',
index: 10
}));
this.add(new Danmu({
+ name: 'danmu',
disable: false,
position: 'right',
index: 20
}));
this.add(new Screenshot({
+ name: 'screenshot',
disable: !this.art.option.screenshot,
position: 'right',
index: 30
}));
this.add(new Subtitle({
+ name: 'subtitle',
disable: !this.art.option.subtitle.url,
position: 'right',
index: 40
}));
this.add(new Setting({
+ name: 'setting',
disable: !this.art.option.setting,
position: 'right',
index: 50
}));
this.add(new Pip({
+ name: 'pip',
disable: !this.art.option.pip,
position: 'right',
index: 60
}));
this.add(new FullscreenWeb({
+ name: 'fullscreenWeb',
disable: !this.art.option.fullscreenWeb,
position: 'right',
index: 70
}));
this.add(new Fullscreen({
+ name: 'fullscreen',
disable: !this.art.option.fullscreen,
position: 'right',
index: 80
@@ -2034,10 +2051,10 @@
if (option && !option.disable) {
id++;
- var name = control.constructor.name.toLowerCase() || "control".concat(id);
+ var name = option.name || control.constructor.name.toLowerCase() || "control".concat(id);
var $control = document.createElement('div');
$control.setAttribute('class', "art-control art-control-".concat(name));
- $control.setAttribute('data-control-index', String(option.index) || id);
+ $control.dataset.controlIndex = option.index || id;
option.$control = $control;
this.commonMethod(control);
(this.$map[option.position] || (this.$map[option.position] = [])).push($control);
@@ -2060,15 +2077,15 @@
}).forEach(function ($control) {
switch (key) {
case 'top':
- $progress.appendChild($control);
+ append($progress, $control);
break;
case 'left':
- $controlsLeft.appendChild($control);
+ append($controlsLeft, $control);
break;
case 'right':
- $controlsRight.appendChild($control);
+ append($controlsRight, $control);
break;
default:
@@ -2942,37 +2959,105 @@
return Mask;
}();
+ var Common =
+ /*#__PURE__*/
+ function () {
+ function Common(option) {
+ classCallCheck(this, Common);
+
+ this.option = option;
+ }
+
+ createClass(Common, [{
+ key: "apply",
+ value: function apply(art) {
+ this.art = art;
+ var $setting = this.option.$setting;
+ this.$header = $setting.querySelector('.art-setting-header');
+ this.$body = $setting.querySelector('.art-setting-body');
+ append(this.$body, '———— 先占坑,暂无设置 ————');
+ }
+ }]);
+
+ return Common;
+ }();
+
+ var id$3 = 0;
+
var Setting$1 =
/*#__PURE__*/
function () {
function Setting(art) {
+ var _this = this;
+
classCallCheck(this, Setting);
this.art = art;
this.isOpen = false;
- this.init();
+ this.$settings = [];
+ this.art.on('firstCanplay', function () {
+ _this.init();
+
+ _this.mount();
+ });
}
createClass(Setting, [{
key: "init",
- value: function init() {//
+ value: function init() {
+ var _this2 = this;
+
+ var _this$art = this.art,
+ $settingClose = _this$art.refs.$settingClose,
+ proxy = _this$art.events.proxy;
+ proxy($settingClose, 'click', function () {
+ _this2.hide();
+ });
+ this.add(new Common({
+ name: 'common',
+ title: 'Common',
+ disable: false,
+ index: 10
+ }));
}
}, {
key: "add",
- value: function add() {//
+ value: function add(setting) {
+ var option = setting.option;
+
+ if (option && !option.disable) {
+ id$3++;
+ var name = option.name || setting.constructor.name.toLowerCase() || "setting".concat(id$3);
+ var title = option.title || name;
+ var $setting = document.createElement('div');
+ $setting.setAttribute('class', "art-setting art-setting-".concat(name));
+ $setting.dataset.settingIndex = option.index || id$3;
+ append($setting, ""));
+ append($setting, '');
+ option.$setting = $setting;
+ this.$settings.push($setting);
+ setting.apply && setting.apply(this.art);
+ this[name] = setting;
+ }
}
}, {
- key: "switch",
- value: function _switch(name) {
- console.log(name);
+ key: "mount",
+ value: function mount() {
+ var _this3 = this;
+
+ this.$settings.sort(function (a, b) {
+ return Number(a.dataset.settingIndex) - Number(b.dataset.settingIndex);
+ }).forEach(function ($setting) {
+ append(_this3.art.refs.$settingBody, $setting);
+ });
}
}, {
key: "show",
value: function show() {
- var _this$art = this.art,
- $setting = _this$art.refs.$setting,
- i18n = _this$art.i18n,
- notice = _this$art.notice;
+ var _this$art2 = this.art,
+ $setting = _this$art2.refs.$setting,
+ i18n = _this$art2.i18n,
+ notice = _this$art2.notice;
setStyle($setting, 'display', 'flex');
this.isOpen = true;
notice.show(i18n.get('Show setting'));
@@ -2981,10 +3066,10 @@
}, {
key: "hide",
value: function hide() {
- var _this$art2 = this.art,
- $setting = _this$art2.refs.$setting,
- i18n = _this$art2.i18n,
- notice = _this$art2.notice;
+ var _this$art3 = this.art,
+ $setting = _this$art3.refs.$setting,
+ i18n = _this$art3.i18n,
+ notice = _this$art3.notice;
setStyle($setting, 'display', 'none');
this.isOpen = false;
notice.show(i18n.get('Hide setting'));
@@ -2995,7 +3080,7 @@
return Setting;
}();
- var id$3 = 0;
+ var id$4 = 0;
var instances = [];
var Artplayer =
@@ -3051,7 +3136,7 @@
this.hotkey = new Hotkey(this);
this.mask = new Mask(this);
this.setting = new Setting$1(this);
- this.id = id$3++;
+ this.id = id$4++;
instances.push(this);
return this;
}
diff --git a/docs/js/artplayer.js.map b/docs/js/artplayer.js.map
index 245ef0a37..09976f37e 100644
--- a/docs/js/artplayer.js.map
+++ b/docs/js/artplayer.js.map
@@ -1 +1 @@
-{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/objectSpread.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/index.js","../../node_modules/option-validator/dist/option-validator.js","../../src/scheme/validElement.js","../../src/scheme/index.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../src/icons/index.js","../../src/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/fullscreen-web.js","../../src/controls/pip.js","../../src/controls/playAndPause.js","../../src/controls/progress.js","../../src/controls/subtitle.js","../../src/controls/time.js","../../src/controls/volume.js","../../src/controls/setting.js","../../src/controls/thumbnails.js","../../src/controls/screenshot.js","../../src/controls/quality.js","../../src/controls/index.js","../../src/contextmenu/playbackRate.js","../../src/contextmenu/aspectRatio.js","../../src/contextmenu/info.js","../../src/contextmenu/version.js","../../src/contextmenu/close.js","../../src/contextmenu/index.js","../../src/danmu.js","../../src/info.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/setting.js","../../src/index.js"],"sourcesContent":["function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var defineProperty = require(\"./defineProperty\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n const isFun = typeof condition === 'function';\n if (isFun ? !isFun() : !condition) {\n throw new ArtPlayerError(msg);\n }\n}\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child);\n } else {\n parent.insertAdjacentHTML('beforeend', child);\n }\n return parent.lastElementChild;\n}\n\nexport function setStyle(element, key, value) {\n element.style[key] = value;\n return element;\n}\n\nexport function setStyles(element, styles) {\n Object.keys(styles).forEach(key => {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function secondToTime(second) {\n const add0 = num => num < 10 ? `0${num}` : String(num);\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function deepMerge(...sources) {\n const isObject = value => value !== null && typeof value === 'object';\n let returnValue = {};\n for (const source of sources) {\n if (Array.isArray(source)) {\n if (!Array.isArray(returnValue)) {\n returnValue = [];\n }\n returnValue = [...returnValue, ...source];\n } else if (isObject(source)) {\n if (source instanceof Element) {\n return source;\n }\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n let value = source[key];\n if (isObject(value) && key in returnValue) {\n value = deepMerge(returnValue[key], value);\n }\n returnValue = { ...returnValue, [key]: value };\n }\n }\n }\n }\n return returnValue;\n}\n\nexport function getStorage(key) {\n const storage = JSON.parse(localStorage.getItem('artplayer_settings')) || {};\n return key ? storage[key] : storage;\n}\n\nexport function setStorage(key, value) {\n const storage = Object.assign({}, getStorage(), {\n [key]: value\n });\n localStorage.setItem('artplayer_settings', JSON.stringify(storage));\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n target.setAttribute('data-balloon', msg);\n target.setAttribute('data-balloon-pos', pos);\n}\n\nexport function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter(item => item !== target);\n}\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function c(r){return(c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var u=Object.prototype.toString,i=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t,e,n,o,a,i=c(r);if(\"boolean\"===i)return\"boolean\";if(\"string\"===i)return\"string\";if(\"number\"===i)return\"number\";if(\"symbol\"===i)return\"symbol\";if(\"function\"===i)return\"GeneratorFunction\"===f(r)?\"generatorfunction\":\"function\";if(t=r,Array.isArray?Array.isArray(t):t instanceof Array)return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if((e=r)instanceof Date||\"function\"==typeof e.toDateString&&\"function\"==typeof e.getDate&&\"function\"==typeof e.setDate)return\"date\";if((n=r)instanceof Error||\"string\"==typeof n.message&&n.constructor&&\"number\"==typeof n.constructor.stackTraceLimit)return\"error\";if((o=r)instanceof RegExp||\"string\"==typeof o.flags&&\"boolean\"==typeof o.ignoreCase&&\"boolean\"==typeof o.multiline&&\"boolean\"==typeof o.global)return\"regexp\";switch(f(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(\"function\"==typeof(a=r).throw&&\"function\"==typeof a.return&&\"function\"==typeof a.next)return\"generator\";switch(i=u.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return i.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function f(r){return r.constructor?r.constructor.name:null}function a(r,t){var e=2\n \n \n \n \n \n \n \n \n \n \n \n `;\n refs.$player = refs.$container.querySelector('.artplayer-video-player');\n refs.$video = refs.$container.querySelector('.artplayer-video');\n refs.$subtitle = refs.$container.querySelector('.artplayer-subtitle');\n refs.$bottom = refs.$container.querySelector('.artplayer-bottom');\n refs.$progress = refs.$container.querySelector('.artplayer-progress');\n refs.$controls = refs.$container.querySelector('.artplayer-controls');\n refs.$controlsLeft = refs.$container.querySelector('.artplayer-controls-left');\n refs.$controlsRight = refs.$container.querySelector('.artplayer-controls-right');\n refs.$layers = refs.$container.querySelector('.artplayer-layers');\n refs.$danmu = refs.$container.querySelector('.artplayer-danmu');\n refs.$loading = refs.$container.querySelector('.artplayer-loading');\n refs.$notice = refs.$container.querySelector('.artplayer-notice');\n refs.$noticeInner = refs.$container.querySelector('.artplayer-notice-inner');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n refs.$setting = refs.$container.querySelector('.artplayer-setting');\n refs.$settingInner = refs.$container.querySelector('.artplayer-setting-inner');\n refs.$info = refs.$container.querySelector('.artplayer-info');\n refs.$infoPanel = refs.$container.querySelector('.artplayer-info-panel');\n refs.$infoClose = refs.$container.querySelector('.artplayer-info-close');\n }\n}\n","let i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暂停',\n 'Rate': '速度',\n 'Mute': '静音',\n 'Reconnect': '重新连接',\n 'Hide subtitle': '隐藏字幕',\n 'Show subtitle': '显示字幕',\n 'Hide danmu': '隐藏弹幕',\n 'Show danmu': '显示弹幕',\n 'Screenshot': '截图',\n 'Play speed': '播放速度',\n 'Aspect ratio': '画面比例',\n 'Default': '默认',\n 'Normal': '正常',\n 'Switch': '切换',\n 'Hide setting': '隐藏设置',\n 'Show setting': '显示设置'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暫停',\n 'Rate': '速度',\n 'Mute': '靜音',\n 'Reconnect': '重新連接',\n 'Hide subtitle': '隱藏字幕',\n 'Show subtitle': '顯示字幕',\n 'Hide danmu': '隱藏彈幕',\n 'Show danmu': '顯示彈幕',\n 'Screenshot': '截圖',\n 'Play speed': '播放速度',\n 'Aspect ratio': '畫面比例',\n 'Default': '默認',\n 'Normal': '正常',\n 'Switch': '切換',\n 'Hide setting': '隱藏設置',\n 'Show setting': '顯示設置'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.option = option;\n this.init();\n }\n\n init() {\n this.language = i18nMap[this.option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(callback) {\n i18nMap = callback(i18nMap);\n this.init();\n }\n}\n","import { clamp, secondToTime, setStorage, sleep, setStyle, sublings } from './utils';\nimport config from './config';\n\nexport default class Player {\n constructor(art) {\n this.art = art;\n this.init();\n this.eventBind();\n this.firstCanplay = false;\n this.reconnectTime = 0;\n this.maxReconnectTime = 5;\n }\n\n init() {\n const { option, refs: { $video } } = this.art;\n Object.keys(option.moreVideoAttr).forEach(key => {\n const value = option.moreVideoAttr[key];\n $video[key] = value;\n });\n $video.volume = clamp(option.volume, 0, 1);\n $video.poster = option.poster;\n $video.autoplay = option.autoplay;\n\n // TODO\n $video.src = option.url;\n }\n\n eventBind() {\n const { option, events: { proxy, hover }, refs: { $player, $video }, i18n, notice } = this.art;\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n this.art.emit(`video:${event.type}`, event);\n });\n });\n\n this.art.on('video:loadstart', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:loadeddata', () => {\n this.art.loading.hide();\n });\n\n this.art.on('video:waiting', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:seeking', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:canplay', () => {\n if (!this.firstCanplay) {\n this.firstCanplay = true;\n this.art.emit('firstCanplay');\n }\n\n this.art.controls.show();\n this.art.mask.show();\n this.art.loading.hide();\n if (option.autoplay) {\n this.play();\n }\n });\n\n this.art.on('video:playing', () => {\n this.art.isPlaying = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n if (option.loop) {\n this.seek(0);\n this.play();\n }\n });\n\n this.art.on('video:error', () => {\n if (this.reconnectTime < this.maxReconnectTime) {\n sleep(1000).then(() => {\n this.reconnectTime++;\n $video.src = option.url;\n notice.show(`${i18n.get('Reconnect')}: ${this.reconnectTime}`);\n });\n } else {\n this.art.isError = true;\n this.art.isPlaying = false;\n this.art.loading.hide();\n this.art.controls.hide();\n $player.classList.add('artplayer-error');\n sleep(1000).then(() => {\n notice.show(i18n.get('Video load failed'), false);\n this.art.destroy();\n });\n }\n });\n\n hover($player, () => {\n $player.classList.add('artplayer-hover');\n this.art.emit('hoverenter');\n }, () => {\n $player.classList.remove('artplayer-hover');\n this.art.emit('hoverleave');\n });\n }\n\n play() {\n const { refs: { $video }, i18n, notice } = this.art;\n const promise = $video.play();\n if (promise !== undefined) {\n promise.then().catch(err => {\n notice.show(err, true, 3000);\n console.warn(err);\n });\n }\n notice.show(i18n.get('Play'));\n this.art.emit('play', $video);\n }\n\n pause() {\n const { refs: { $video }, i18n, notice } = this.art;\n $video.pause();\n notice.show(i18n.get('Pause'));\n this.art.emit('pause', $video);\n }\n\n toggle() {\n if (this.art.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek(time) {\n const { refs: { $video }, notice } = this.art;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n $video.currentTime = newTime;\n notice.show(`${secondToTime(newTime)} / ${secondToTime($video.duration)}`);\n this.art.emit('seek', newTime);\n }\n\n volume(percentage) {\n const { refs: { $video }, i18n, notice } = this.art;\n if (percentage !== undefined) {\n $video.volume = clamp(percentage, 0, 1);\n notice.show(`${i18n.get('Volume')}: ${parseInt($video.volume * 100)}`);\n if ($video.volume !== 0) {\n setStorage('volume', $video.volume);\n }\n this.art.emit('volume', $video.volume);\n }\n return $video.volume || 0;\n }\n\n currentTime() {\n return this.art.refs.$video.currentTime || 0;\n }\n\n duration() {\n return this.art.refs.$video.duration || 0;\n }\n\n switch(url, name = 'Unknown') {\n const { refs: { $video }, i18n, notice, isPlaying, option } = this.art;\n const currentTime = this.currentTime();\n $video.src = url;\n option.url = url;\n this.reconnectTime = 0;\n this.seek(currentTime);\n if (isPlaying) {\n this.play();\n }\n this.resetStyle();\n notice.show(`${i18n.get('Switch')}: ${name}`);\n this.art.emit('switch', url);\n }\n\n playbackRate(rate) {\n const { refs: { $video, $player }, i18n, notice } = this.art;\n const newRate = clamp(rate, 0.1, 10);\n $video.playbackRate = newRate;\n $player.dataset.playbackRate = newRate;\n notice.show(`${i18n.get('Rate')}: ${newRate === 1 ? i18n.get('Normal') : `${newRate}x`}`);\n this.art.emit('playbackRate', newRate);\n }\n\n aspectRatio(ratio) {\n const { refs: { $video, $player }, i18n, notice } = this.art;\n const ratioName = ratio.length === 2 ? `${ratio[0]}:${ratio[1]}` : i18n.get('Default');\n\n if (ratio.length === 2) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = Number(ratio[0]) / Number(ratio[1]);\n\n if (videoRatio > setupRatio) {\n const percentage = setupRatio * videoHeight / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n\n $player.dataset.aspectRatio = ratioName;\n } else {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n }\n\n notice.show(`${i18n.get('Aspect ratio')}: ${ratioName}`);\n this.art.emit('aspectRatio', ratio);\n }\n\n resetStyle() {\n const { refs: { $video }, contextmenu } = this.art;\n\n if (contextmenu.$playbackRate) {\n const $normal = contextmenu.$playbackRate.querySelector('.normal');\n sublings($normal).forEach(item => item.classList.remove('current'));\n $normal.classList.add('current');\n }\n\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n if (contextmenu.$aspectRatio) {\n const $default = contextmenu.$aspectRatio.querySelector('.default');\n sublings($default).forEach(item => item.classList.remove('current'));\n $default.classList.add('current');\n }\n }\n}\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","import loading from './loading.svg';\nimport playBig from './play-big.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport danmu from './danmu.svg';\nimport setting from './setting.svg';\n\nconst icons = {\n loading,\n playBig,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n danmu,\n setting\n};\n\nfunction creatDomFromSvg(map) {\n const result = {};\n Object.keys(map).forEach(name => {\n const tmp = document.createElement('div');\n tmp.innerHTML = `${map[name]}`;\n [result[name]] = tmp.childNodes;\n });\n return result;\n}\n\nexport default creatDomFromSvg(icons);\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Danmu {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { $control } = this.option;\n const { events: { proxy }, i18n, danmu } = art;\n this.$danmu = append($control, icons.danmu);\n tooltip(this.$danmu, i18n.get('Hide danmu'));\n proxy($control, 'click', () => {\n if (danmu.isOpen) {\n danmu.hide();\n setStyle(this.$danmu, 'opacity', '1');\n tooltip(this.$danmu, i18n.get('Show danmu'));\n } else {\n danmu.show();\n setStyle(this.$danmu, 'opacity', '0.8');\n tooltip(this.$danmu, i18n.get('Hide danmu'));\n }\n });\n }\n}\n","export default class Fullscreen {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","export default class FullscreenWeb {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","export default class Pip {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class PlayAndPause {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { events: { proxy }, player, i18n } = art;\n this.$play = append(this.option.$control, icons.play);\n this.$pause = append(this.option.$control, icons.pause);\n tooltip(this.$play, i18n.get('Play'));\n tooltip(this.$pause, i18n.get('Pause'));\n setStyle(this.$pause, 'display', 'none');\n\n proxy(this.$play, 'click', () => {\n player.play();\n });\n\n proxy(this.$pause, 'click', () => {\n player.pause();\n });\n\n art.on('video:playing', () => {\n setStyle(this.$play, 'display', 'none');\n setStyle(this.$pause, 'display', 'block');\n });\n\n art.on('video:pause', () => {\n setStyle(this.$play, 'display', 'block');\n setStyle(this.$pause, 'display', 'none');\n });\n }\n}\n","import { append, clamp, secondToTime, setStyle } from '../utils';\n\nexport default class Progress {\n constructor(option) {\n this.option = option;\n this.isDroging = false;\n this.getLoaded = this.getLoaded.bind(this);\n this.getPlayed = this.getPlayed.bind(this);\n this.set = this.set.bind(this);\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option: { highlight, theme }, events: { proxy }, refs: { $video }, player } = this.art;\n\n append(\n this.option.$control,\n `\n \n `\n );\n\n this.$loaded = this.option.$control.querySelector('.art-progress-loaded');\n this.$played = this.option.$control.querySelector('.art-progress-played');\n this.$highlight = this.option.$control.querySelector('.art-progress-highlight');\n this.$indicator = this.option.$control.querySelector('.art-progress-indicator');\n this.$tip = this.option.$control.querySelector('.art-progress-tip');\n\n this.set('loaded', this.getLoaded());\n highlight.forEach(item => {\n const left = Number(item.time) / $video.duration;\n append(this.$highlight, `\n \n `\n );\n });\n\n this.art.on('video:progress', () => {\n this.set('loaded', this.getLoaded());\n });\n\n this.art.on('video:timeupdate', () => {\n this.set('played', this.getPlayed());\n });\n\n this.art.on('video:ended', () => {\n this.set('played', 1);\n });\n\n proxy(this.option.$control, 'mousemove', event => {\n setStyle(this.$tip, 'display', 'block');\n if (event.path.indexOf(this.$highlight) > -1) {\n this.showHighlight(event);\n } else {\n this.showTime(event);\n }\n });\n\n proxy(this.option.$control, 'mouseout', () => {\n setStyle(this.$tip, 'display', 'none');\n });\n\n proxy(this.option.$control, 'click', event => {\n if (event.target !== this.$indicator) {\n const { second, percentage } = this.getPosFromEvent(event);\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(this.$indicator, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (this.isDroging) {\n const { second, percentage } = this.getPosFromEvent(event);\n this.$indicator.classList.add('show-indicator');\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n this.$indicator.classList.remove('show-indicator');\n }\n });\n }\n\n showHighlight(event) {\n const { $video } = this.art.refs;\n const { text, time } = event.target.dataset;\n this.$tip.innerHTML = text;\n const left =\n Number(time) / $video.duration * this.option.$control.clientWidth +\n event.target.clientWidth / 2 -\n this.$tip.clientWidth / 2;\n setStyle(this.$tip, 'left', `${left}px`);\n }\n\n showTime(event) {\n const { width, time } = this.getPosFromEvent(event);\n const tipWidth = this.$tip.clientWidth;\n this.$tip.innerHTML = time;\n if (width <= tipWidth / 2) {\n setStyle(this.$tip, 'left', 0);\n } else if (width > this.option.$control.clientWidth - tipWidth / 2) {\n setStyle(this.$tip, 'left', `${this.option.$control.clientWidth - tipWidth}px`);\n } else {\n setStyle(this.$tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n getPlayed() {\n const { $video } = this.art.refs;\n return $video.currentTime / $video.duration;\n }\n\n getLoaded() {\n const { $video } = this.art.refs;\n return $video.buffered.length\n ? $video.buffered.end($video.buffered.length - 1) / $video.duration\n : 0;\n }\n\n getPosFromEvent(event) {\n const { $video, $progress } = this.art.refs;\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.x - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * $video.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n }\n\n set(type, percentage) {\n setStyle(this[`$${type}`], 'width', `${percentage * 100}%`);\n if (type === 'played') {\n setStyle(this.$indicator, 'left', `calc(${percentage * 100}% - 6.5px)`);\n }\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Subtitle {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { $control } = this.option;\n const { events: { proxy }, i18n, subtitle } = art;\n this.$subtitle = append($control, icons.subtitle);\n tooltip(this.$subtitle, i18n.get('Hide subtitle'));\n proxy($control, 'click', () => {\n if (subtitle.isOpen) {\n subtitle.hide();\n setStyle(this.$subtitle, 'opacity', '1');\n tooltip(this.$subtitle, i18n.get('Show subtitle'));\n } else {\n subtitle.show();\n setStyle(this.$subtitle, 'opacity', '0.8');\n tooltip(this.$subtitle, i18n.get('Hide subtitle'));\n }\n });\n }\n}\n","import { secondToTime } from '../utils';\n\nexport default class Time {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n this.option.$control.innerHTML = '00:00 / 00:00';\n\n this.art.on('video:canplay', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n\n this.art.on('video:timeupdate', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n\n this.art.on('video:seeking', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n }\n\n getTime() {\n const { player } = this.art;\n return `${secondToTime(player.currentTime())} / ${secondToTime(player.duration())}`;\n }\n}\n","import { append, getStorage, clamp, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Volume {\n constructor(option) {\n this.option = option;\n this.isDroging = false;\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { events: { proxy }, player, i18n } = this.art;\n this.$volume = append(this.option.$control, icons.volume);\n this.$volumeClose = append(this.option.$control, icons.volumeClose);\n this.$volumePanel = append(this.option.$control, '');\n this.$volumeHandle = append(this.$volumePanel, '');\n tooltip(this.$volume, i18n.get('Mute'));\n setStyle(this.$volumeClose, 'display', 'none');\n\n const volume = getStorage('volume');\n this.setVolumeHandle(volume);\n player.volume(volume);\n\n proxy(this.$volume, 'click', () => {\n setStyle(this.$volume, 'display', 'none');\n setStyle(this.$volumeClose, 'display', 'block');\n player.volume(0);\n });\n\n proxy(this.$volumeClose, 'click', () => {\n setStyle(this.$volume, 'display', 'block');\n setStyle(this.$volumeClose, 'display', 'none');\n player.volume(getStorage('volume'));\n });\n\n proxy(this.option.$control, 'mouseenter', () => {\n this.$volumePanel.classList.add('art-volume-panel-hover');\n\n // TODO\n setTimeout(() => {\n this.setVolumeHandle(player.volume());\n }, 200);\n });\n\n proxy(this.option.$control, 'mouseleave', () => {\n this.$volumePanel.classList.remove('art-volume-panel-hover');\n });\n\n proxy(this.$volumePanel, 'click', event => {\n this.volumeChangeFromEvent(event);\n });\n\n proxy(this.$volumeHandle, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(this.$volumeHandle, 'mousemove', event => {\n if (this.isDroging) {\n this.volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n }\n });\n\n this.art.on('video:volumechange', () => {\n const percentage = player.volume();\n this.setVolumeHandle(percentage);\n if (percentage === 0) {\n setStyle(this.$volume, 'display', 'none');\n setStyle(this.$volumeClose, 'display', 'block');\n } else {\n setStyle(this.$volume, 'display', 'block');\n setStyle(this.$volumeClose, 'display', 'none');\n }\n });\n }\n\n volumeChangeFromEvent(event) {\n const { player } = this.art;\n const { left: panelLeft, width: panelWidth } = this.$volumePanel.getBoundingClientRect();\n const { width: handleWidth } = this.$volumeHandle.getBoundingClientRect();\n const percentage = clamp(event.x - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) / (panelWidth - handleWidth);\n player.volume(percentage);\n }\n\n setVolumeHandle(percentage = 0.7) {\n const { width: panelWidth } = this.$volumePanel.getBoundingClientRect();\n const { width: handleWidth } = this.$volumeHandle.getBoundingClientRect();\n const width = handleWidth / 2 + (panelWidth - handleWidth) * percentage - handleWidth / 2;\n setStyle(this.$volumeHandle, 'left', `${width}px`);\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Setting {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { $control } = this.option;\n const { events: { proxy }, i18n, setting } = art;\n this.$setting = append($control, icons.setting);\n tooltip(this.$setting, i18n.get('Show setting'));\n proxy($control, 'click', () => {\n if (setting.isOpen) {\n setting.hide();\n setStyle(this.$setting, 'opacity', '1');\n tooltip(this.$setting, i18n.get('Show setting'));\n } else {\n setting.show();\n setStyle(this.$setting, 'opacity', '0.8');\n tooltip(this.$setting, i18n.get('Hide setting'));\n }\n });\n }\n}\n","import { errorHandle, setStyle } from '../utils';\n\nexport default class Thumbnails {\n constructor(option) {\n this.option = option;\n this.loading = false;\n this.isLoad = false;\n }\n\n apply(art) {\n this.art = art;\n errorHandle(this.art.controls.progress, '\\'thumbnails\\' control dependent on \\'progress\\' control');\n this.init();\n }\n\n init() {\n const { refs: { $progress }, events: { proxy } } = this.art;\n\n proxy($progress, 'mousemove', event => {\n if (!this.loading) {\n this.loading = true;\n this.load(this.art.option.thumbnails.url).then(() => {\n this.isLoad = true;\n });\n }\n\n if (this.isLoad) {\n setStyle(this.option.$control, 'display', 'block');\n this.showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle(this.option.$control, 'display', 'none');\n });\n }\n\n load(url) {\n const { proxy } = this.art.events;\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.src = url;\n\n if (image.complete) {\n return resolve(image);\n }\n\n proxy(image, 'load', () => resolve(image));\n\n proxy(image, 'error', () => reject(image));\n });\n }\n\n showThumbnails(event) {\n const { refs: { $progress }, controls } = this.art;\n const { width: posWidth } = controls.progress.getPosFromEvent(event);\n const { url, height, width, number, column } = this.art.option.thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.ceil(posWidth / perWidth);\n let yIndex = Math.ceil(perIndex / column);\n let xIndex = perIndex % column || column;\n\n setStyle(this.option.$control, 'backgroundImage', `url(${url})`);\n setStyle(this.option.$control, 'height', `${height}px`);\n setStyle(this.option.$control, 'width', `${width}px`);\n setStyle(this.option.$control, 'backgroundPosition', `-${--xIndex * width}px -${--yIndex * height}px`);\n\n if (posWidth <= width / 2) {\n setStyle(this.option.$control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle(this.option.$control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle(this.option.$control, 'left', `${posWidth - width / 2}px`);\n }\n }\n}\n","import { append, tooltip, secondToTime, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Screenshot {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n const { events: { proxy }, i18n, notice } = this.art;\n this.$screenshot = append(this.option.$control, icons.screenshot);\n tooltip(this.$screenshot, i18n.get('Screenshot'));\n proxy(this.$screenshot, 'click', () => {\n try {\n this.captureFrame();\n } catch (error) {\n notice.show(error);\n }\n });\n }\n\n captureFrame() {\n const { $video } = this.art.refs;\n const canvas = document.createElement('canvas');\n canvas.width = $video.videoWidth;\n canvas.height = $video.videoHeight;\n canvas.getContext('2d').drawImage($video, 0, 0);\n const dataUri = canvas.toDataURL('image/png');\n const elink = document.createElement('a');\n setStyle(elink, 'display', 'none');\n elink.href = dataUri;\n elink.download = `ArtPlayer_${secondToTime($video.currentTime)}.png`;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n }\n}\n","import { append } from '../utils';\n\nexport default class Quality {\n constructor(option) {\n this.option = option;\n this.playIndex = -1;\n }\n\n apply(art) {\n const { $control } = this.option;\n const { option, events: { proxy, hover }, player } = art;\n const defaultQuality = option.quality.find(item => item.default) || option.quality[0];\n this.playIndex = option.quality.indexOf(defaultQuality);\n const $qualityName = append($control, `${defaultQuality.name}
`);\n const qualityList = option.quality.map((item, index) => `${item.name}
`).join('');\n const $qualitys = append($control, `${qualityList}
`);\n\n hover($control, () => {\n $control.classList.add('hover');\n }, () => {\n $control.classList.remove('hover');\n });\n\n proxy($qualitys, 'click', event => {\n const index = Number(event.target.dataset.index);\n const { url, name } = option.quality[index];\n if (url && name && this.playIndex !== index) {\n player.switch(url, name);\n $qualityName.innerHTML = name;\n this.playIndex = index;\n }\n });\n }\n}\n","import { setStyle } from '../utils';\nimport Danmu from './danmu';\nimport Fullscreen from './fullscreen';\nimport FullscreenWeb from './fullscreen-web';\nimport Pip from './pip';\nimport PlayAndPause from './playAndPause';\nimport Progress from './progress';\nimport Subtitle from './subtitle';\nimport Time from './time';\nimport Volume from './volume';\nimport Setting from './setting';\nimport Thumbnails from './thumbnails';\nimport Screenshot from './screenshot';\nimport Quality from './quality';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.$map = {};\n this.art.on('firstCanplay', () => {\n this.init();\n this.mount();\n });\n }\n\n init() {\n this.add(new Progress({\n disable: false,\n position: 'top',\n index: 10\n }));\n\n this.add(new Thumbnails({\n disable: !this.art.option.thumbnails.url,\n position: 'top',\n index: 20\n }));\n\n this.add(new PlayAndPause({\n disable: false,\n position: 'left',\n index: 10\n }));\n\n this.add(new Volume({\n disable: false,\n position: 'left',\n index: 20\n }));\n\n this.add(new Time({\n disable: false,\n position: 'left',\n index: 30\n }));\n\n this.add(new Quality({\n disable: this.art.option.quality.length === 0,\n position: 'right',\n index: 10\n }));\n\n this.add(new Danmu({\n disable: false,\n position: 'right',\n index: 20\n }));\n\n this.add(new Screenshot({\n disable: !this.art.option.screenshot,\n position: 'right',\n index: 30\n }));\n\n this.add(new Subtitle({\n disable: !this.art.option.subtitle.url,\n position: 'right',\n index: 40\n }));\n\n this.add(new Setting({\n disable: !this.art.option.setting,\n position: 'right',\n index: 50\n }));\n\n this.add(new Pip({\n disable: !this.art.option.pip,\n position: 'right',\n index: 60\n }));\n\n this.add(new FullscreenWeb({\n disable: !this.art.option.fullscreenWeb,\n position: 'right',\n index: 70\n }));\n\n this.add(new Fullscreen({\n disable: !this.art.option.fullscreen,\n position: 'right',\n index: 80\n }));\n\n this.art.option.controls.forEach(item => {\n this.add(item);\n });\n }\n\n add(control) {\n const { option } = control;\n if (option && !option.disable) {\n id++;\n const name = control.constructor.name.toLowerCase() || `control${id}`;\n const $control = document.createElement('div');\n $control.setAttribute('class', `art-control art-control-${name}`);\n $control.setAttribute('data-control-index', String(option.index) || id);\n option.$control = $control;\n this.commonMethod(control);\n (this.$map[option.position] || (this.$map[option.position] = [])).push($control);\n control.apply && control.apply(this.art);\n this[name] = control;\n }\n }\n\n mount() {\n const { $progress, $controlsLeft, $controlsRight } = this.art.refs;\n Object.keys(this.$map).forEach(key => {\n this.$map[key]\n .sort(\n (a, b) =>\n Number(a.dataset.controlIndex) - Number(b.dataset.controlIndex)\n )\n .forEach($control => {\n switch (key) {\n case 'top':\n $progress.appendChild($control);\n break;\n case 'left':\n $controlsLeft.appendChild($control);\n break;\n case 'right':\n $controlsRight.appendChild($control);\n break;\n default:\n break;\n }\n });\n });\n }\n\n commonMethod(control) {\n Object.defineProperty(control, 'hide', {\n value: () => {\n setStyle(control.option.$control, 'display', 'none');\n this.art.emit('control:hide', control.option.$control);\n }\n });\n\n Object.defineProperty(control, 'show', {\n value: () => {\n setStyle(control.option.$control, 'display', 'block');\n this.art.emit('control:show', control.option.$control);\n }\n });\n }\n\n show() {\n const { $player } = this.art.refs;\n $player.classList.add('artplayer-controls-show');\n }\n\n hide() {\n const { $player } = this.art.refs;\n $player.classList.remove('artplayer-controls-show');\n }\n}\n","import { sublings } from '../utils';\n\nexport default function playbackRate(art) {\n const { option, i18n, player, contextmenu } = art;\n return {\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n html: `\n ${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: event => {\n const { target } = event;\n const { rate } = target.dataset;\n if (rate) {\n player.playbackRate(Number(rate));\n sublings(target).forEach(item => item.classList.remove('current'));\n target.classList.add('current');\n contextmenu.hide();\n }\n }\n };\n}\n","import { sublings } from '../utils';\n\nexport default function aspectRatio(art) {\n const { option, i18n, player, contextmenu } = art;\n return {\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n html: `\n ${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: event => {\n const { target } = event;\n const { ratio } = target.dataset;\n if (ratio) {\n player.aspectRatio(ratio.split(':'));\n sublings(target).forEach(item => item.classList.remove('current'));\n target.classList.add('current');\n contextmenu.hide();\n }\n }\n };\n}\n","export default function info(art) {\n return {\n disable: false,\n name: 'info',\n index: 30,\n html: art.i18n.get('Video info'),\n click: () => {\n art.info.show();\n art.contextmenu.hide();\n }\n };\n}\n","export default {\n disable: false,\n name: 'version',\n index: 40,\n html: 'ArtPlayer __VERSION__'\n};\n","export default function close(art) {\n return {\n disable: false,\n name: 'close',\n index: 50,\n html: art.i18n.get('Close'),\n click: () => {\n art.contextmenu.hide();\n }\n };\n}\n","import { append, setStyles, setStyle } from '../utils';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport info from './info';\nimport version from './version';\nimport close from './close';\n\nlet id = 0;\nexport default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs, events: { proxy } } = this.art;\n\n option.contextmenu.push(\n playbackRate,\n aspectRatio,\n info,\n version,\n close\n );\n\n proxy(refs.$player, 'contextmenu', event => {\n event.preventDefault();\n this.art.isFocus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$player, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const { option, refs, events: { proxy } } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu\n .filter(item => !item.disable)\n .map(item => {\n id++;\n const menu = typeof item === 'function' ? item(this.art) : item;\n const $menu = document.createElement('div');\n $menu.dataset.artMenuId = menu.index || id;\n $menu.setAttribute('class', `art-menu art-menu-${menu.name || id}`);\n append($menu, menu.html);\n setStyles($menu, menu.style || {});\n if (menu.click) {\n proxy($menu, 'click', event => {\n event.preventDefault();\n menu.click.call(this, event);\n this.art.emit('contextmenu:click', $menu);\n });\n }\n this[`$${menu.name || id}`] = $menu;\n return $menu;\n })\n .sort(\n (a, b) =>\n Number(a.dataset.artMenuId) - Number(b.dataset.artMenuId)\n ).forEach(item => {\n append(refs.$contextmenu, item);\n });\n append(refs.$player, refs.$contextmenu);\n }\n\n setPos(event) {\n const { refs } = this.art;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = refs.$player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = refs.$contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyle(refs.$contextmenu, 'left', `${menuLeft}px`);\n setStyle(refs.$contextmenu, 'top', `${menuTop}px`);\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n setStyle($contextmenu, 'display', 'none');\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n setStyle($contextmenu, 'display', 'block');\n this.art.emit('contextmenu:show', $contextmenu);\n }\n }\n}\n","import { setStyle } from './utils';\n\nexport default class Danmu {\n constructor(art) {\n this.art = art;\n this.isOpen = true;\n this.init();\n }\n\n init() {\n //\n }\n\n show() {\n const { refs: { $danmu }, i18n, notice } = this.art;\n setStyle($danmu, 'display', 'block');\n this.isOpen = true;\n notice.show(i18n.get('Show danmu'));\n this.art.emit('danmu:show', $danmu);\n }\n\n hide() {\n const { refs: { $danmu }, i18n, notice } = this.art;\n setStyle($danmu, 'display', 'none');\n this.isOpen = false;\n notice.show(i18n.get('Hide danmu'));\n this.art.emit('danmu:hide', $danmu);\n }\n}\n","import { append, setStyle } from './utils';\n\nexport default class Info {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs: { $infoClose, $infoPanel }, events: { proxy } } = this.art;\n proxy($infoClose, 'click', () => {\n this.hide();\n });\n this.art.on('switch', () => {\n if ($infoPanel.innerHTML) {\n this.getHeader();\n }\n });\n }\n\n show() {\n const { $info, $infoPanel } = this.art.refs;\n setStyle($info, 'display', 'block');\n if (!$infoPanel.innerHTML) {\n append($infoPanel, this.creatInfo());\n this.getHeader();\n }\n clearTimeout(this.timer);\n this.loop();\n this.art.emit('info:show', $info);\n }\n\n creatInfo() {\n const infoHtml = [];\n\n infoHtml.push(`\n \n
Player version:
\n
__VERSION__
\n
\n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n
Video resolution:
\n
\n x \n
\n
\n `);\n\n return infoHtml.join('');\n }\n\n getHeader() {\n const { $infoPanel, $video } = this.art.refs;\n const url = $video.src;\n const types = Array.from($infoPanel.querySelectorAll('[data-head]'));\n types.forEach(item => {\n item.innerHTML = 'loading...';\n });\n fetch(url, {\n method: 'HEAD'\n }).then(data => {\n types.forEach(item => {\n const value = data.headers.get(item.dataset.head);\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n }).catch(() => {\n types.forEach(item => {\n item.innerHTML = 'unknown';\n });\n });\n }\n\n readInfo() {\n const { $infoPanel, $video } = this.art.refs;\n const types = Array.from($infoPanel.querySelectorAll('[data-video]'));\n types.forEach(item => {\n const value = $video[item.dataset.video];\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n }\n\n loop() {\n this.readInfo();\n this.timer = setTimeout(() => {\n this.readInfo();\n this.loop();\n }, 1000);\n }\n\n hide() {\n const { $info } = this.art.refs;\n setStyle($info, 'display', 'none');\n clearTimeout(this.timer);\n this.art.emit('info:hide', $info);\n }\n}\n","import { errorHandle, getExt, setStyles, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n this.isOpen = true;\n const { url } = this.art.option.subtitle;\n if (url) {\n this.checkExt(url);\n this.init();\n }\n }\n\n init() {\n const {\n events: { proxy },\n option: { subtitle },\n refs: { $video, $subtitle }\n } = this.art;\n\n setStyles($subtitle, subtitle.style || {});\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n\n this.load(subtitle.url).then(data => {\n $track.src = data;\n $video.appendChild($track);\n this.art.refs.$track = $track;\n if ($video.textTracks && $video.textTracks[0]) {\n const [track] = $video.textTracks;\n proxy(track, 'cuechange', () => {\n const [cue] = track.activeCues;\n $subtitle.innerHTML = '';\n if (cue) {\n const template = document.createElement('div');\n template.appendChild(cue.getCueAsHTML());\n $subtitle.innerHTML = template.innerHTML\n .split(/\\r?\\n/)\n .map(item => `${item}
`)\n .join('');\n }\n this.art.emit('subtitle:update', $subtitle);\n });\n }\n });\n }\n\n load(url) {\n let type;\n return fetch(url)\n .then(response => {\n type = response.headers.get('Content-Type');\n return response.text();\n })\n .then(text => {\n if ((/x-subrip/gi).test(type)) {\n return this.srtToVtt(text);\n }\n return url;\n })\n .catch(err => {\n throw err;\n });\n }\n\n srtToVtt(text) {\n const vttText = 'WEBVTT \\r\\n\\r\\n'.concat(\n text\n .replace(/\\{\\\\([ibu])\\}/g, '$1>')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '$1>')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .concat('\\r\\n\\r\\n')\n );\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt'\n })\n );\n }\n\n checkExt(url) {\n const ext = getExt(url);\n errorHandle(\n ext === 'vtt' || ext === 'srt',\n `'subtitle.url' option require 'vtt' or 'srt' format, but got '${ext}'.`\n );\n }\n\n show() {\n const { refs: { $subtitle }, i18n, notice } = this.art;\n setStyle($subtitle, 'display', 'block');\n this.isOpen = true;\n notice.show(i18n.get('Show subtitle'));\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { refs: { $subtitle }, i18n, notice } = this.art;\n setStyle($subtitle, 'display', 'none');\n this.isOpen = false;\n notice.show(i18n.get('Hide subtitle'));\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n this.checkExt(url);\n errorHandle($track, 'You need to initialize the subtitle option first.');\n this.load(url).then(data => {\n if (url !== data) {\n $track.src = data;\n this.art.emit('subtitle:switch', url);\n }\n });\n }\n}\n","export default class Events {\n constructor(art) {\n this.art = art;\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n name.forEach(item => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\n }\n\n hover(target, mouseenter, mouseleave) {\n this.proxy(target, 'mouseenter', mouseenter);\n this.proxy(target, 'mouseleave', mouseleave);\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.art = art;\n if (this.art.option.hotkey) {\n this.init();\n }\n }\n\n init() {\n const { player, refs: { $player }, events: { proxy } } = this.art;\n\n proxy(document, 'click', event => {\n this.art.isFocus = event.path.indexOf($player) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true'\n ) {\n switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n break;\n case 38:\n event.preventDefault();\n player.volume(player.volume() + 0.05);\n break;\n case 40:\n event.preventDefault();\n player.volume(player.volume() - 0.05);\n break;\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n default:\n break;\n }\n }\n }\n });\n }\n}\n","import { append, setStyles, setStyle } from './utils';\n\nlet id = 0;\nexport default class Layers {\n constructor(art) {\n this.art = art;\n this.add = this.add.bind(this);\n this.art.option.layers.filter(item => item.disable === false).forEach(this.add);\n this.init();\n }\n\n init() {\n const { refs, player, events: { proxy } } = this.art;\n proxy(refs.$layers, 'click', event => {\n if (event.path[0] === refs.$layers) {\n player.pause();\n }\n });\n }\n\n add(option, callback) {\n const { refs } = this.art;\n id++;\n\n const $layer = document.createElement('div');\n $layer.setAttribute('data-art-layer-id', id);\n $layer.setAttribute('class', `art-layer art-layer-${option.name || id}`);\n setStyle($layer, 'z-index', option.index || id);\n append($layer, option.html);\n setStyles($layer, option.style || {});\n refs.$layers.appendChild($layer);\n this.art.emit('layers:add', $layer);\n callback && callback($layer);\n }\n\n show() {\n const { $layers } = this.art.refs;\n setStyle($layers, 'display', 'block');\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n setStyle($layers, 'display', 'none');\n this.art.emit('layers:hide', $layers);\n }\n}\n","import icons from './icons';\nimport { append, setStyle } from './utils';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n append($loading, option.loading || icons.loading);\n }\n\n hide() {\n const { $loading } = this.art.refs;\n setStyle($loading, 'display', 'none');\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n setStyle($loading, 'display', 'flex');\n this.art.emit('loading:show', $loading);\n }\n}\n","import { setStyle } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide = true, time = 1000) {\n const { $notice, $noticeInner } = this.art.refs;\n setStyle($notice, 'display', 'block');\n $noticeInner.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, time);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n setStyle($notice, 'display', 'none');\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append, setStyle } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { player, refs, events: { proxy } } = this.art;\n\n append(refs.$mask, icons.playBig);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n const { $mask } = this.art.refs;\n setStyle($mask, 'display', 'block');\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n setStyle($mask, 'display', 'none');\n this.art.emit('mask:show', $mask);\n }\n}\n","import { setStyle } from './utils';\n\nexport default class Setting {\n constructor(art) {\n this.art = art;\n this.isOpen = false;\n this.init();\n }\n\n init() {\n //\n }\n\n add() {\n //\n }\n\n switch(name) {\n console.log(name);\n }\n\n show() {\n const { refs: { $setting }, i18n, notice } = this.art;\n setStyle($setting, 'display', 'flex');\n this.isOpen = true;\n notice.show(i18n.get('Show setting'));\n this.art.emit('setting:show', $setting);\n }\n\n hide() {\n const { refs: { $setting }, i18n, notice } = this.art;\n setStyle($setting, 'display', 'none');\n this.isOpen = false;\n notice.show(i18n.get('Hide setting'));\n this.art.emit('setting:hide', $setting);\n }\n}\n","import './style';\nimport 'balloon-css/balloon.min.css';\nimport { deepMerge } from './utils';\nimport optionValidator from 'option-validator';\nimport scheme from './scheme';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Controls from './controls';\nimport Contextmenu from './contextmenu';\nimport Danmu from './danmu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layers from './layers';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Setting from './setting';\n\nlet id = 0;\nexport const instances = [];\n\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.emit('init:start');\n this.option = deepMerge({}, Artplayer.DEFAULTS, option);\n optionValidator(this.option, scheme);\n this.init();\n this.emit('init:end');\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: '.artplayer',\n url: '',\n poster: '',\n volume: 0.7,\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10\n },\n screenshot: true,\n autoplay: false,\n playbackRate: true,\n aspectRatio: true,\n loop: false,\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n quality: [],\n loading: '',\n theme: '#f00',\n setting: true,\n hotkey: true,\n pip: true,\n fullscreen: true,\n fullscreenWeb: true,\n subtitle: {\n url: '',\n style: {}\n },\n controls: [],\n highlight: [],\n moreVideoAttr: {\n 'crossOrigin': 'anonymous',\n 'controls': false,\n 'preload': 'auto',\n 'webkit-playsinline': true,\n 'playsinline': true\n },\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(Plugin) {\n const name = Plugin.name.toLowerCase();\n const installedPlugins = this.plugins || (this.plugins = {});\n if (!installedPlugins[name]) {\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n installedPlugins[name] = new Plugin(...args);\n this.prototype.emit('use', Plugin);\n }\n return this;\n }\n\n init() {\n this.isError = false;\n this.isFocus = false;\n this.isPlaying = false;\n this.refs = {};\n\n if (this.option.container instanceof Element) {\n this.refs.$container = this.option.container;\n } else {\n this.refs.$container = document.querySelector(this.option.container);\n }\n\n this.template = new Template(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.events = new Events(this);\n this.player = new Player(this);\n this.layers = new Layers(this);\n this.controls = new Controls(this);\n this.contextmenu = new Contextmenu(this);\n this.danmu = new Danmu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n\n this.id = id++;\n instances.push(this);\n return this;\n }\n\n destroy(removeHtml = false) {\n this.events.destroy();\n instances.splice(instances.indexOf(this), 1);\n if (removeHtml) {\n this.refs.$container.innerHTML = '';\n } else {\n this.refs.$player.classList.add('artplayer-destroy');\n }\n this.emit('destroy');\n }\n}\n\nwindow.Artplayer = Artplayer;\nexport default Artplayer;\n"],"names":["_typeof","ArtPlayerError","message","context","Error","captureStackTrace","constructor","name","errorHandle","condition","msg","isFun","clamp","num","a","b","Math","max","min","getExt","url","includes","split","trim","toLowerCase","pop","append","parent","child","Element","appendChild","insertAdjacentHTML","lastElementChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","secondToTime","second","add0","String","hour","floor","sec","map","join","deepMerge","isObject","returnValue","sources","source","Array","isArray","hasOwnProperty","getStorage","storage","JSON","parse","localStorage","getItem","setStorage","assign","setItem","stringify","tooltip","target","pos","setAttribute","sleep","ms","Promise","resolve","setTimeout","sublings","from","parentElement","children","filter","item","this","validElement","paths","type","container","validator","required","volume","thumbnails","number","width","height","column","screenshot","autoplay","playbackRate","aspectRatio","loop","mimeCodec","layers","index","html","contextmenu","click","quality","default","loading","theme","hotkey","pip","fullscreen","fullscreenWeb","subtitle","controls","option","disable","position","highlight","time","text","moreVideoAttr","lang","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","innerHTML","$player","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$danmu","$loading","$notice","$noticeInner","$mask","$setting","$settingInner","$info","$infoPanel","$infoClose","i18nMap","I18n","language","callback","Player","eventBind","firstCanplay","reconnectTime","maxReconnectTime","poster","src","proxy","hover","i18n","notice","config","eventName","event","emit","on","show","hide","mask","play","isPlaying","seek","then","get","isError","classList","add","destroy","remove","promise","undefined","catch","err","console","warn","pause","newTime","duration","currentTime","percentage","parseInt","resetStyle","rate","newRate","dataset","ratio","ratioName","length","videoWidth","videoHeight","clientWidth","clientHeight","videoRatio","setupRatio","Number","$playbackRate","$normal","$aspectRatio","$default","icons","playBig","volumeClose","danmu","setting","creatDomFromSvg","result","tmp","document","createElement","childNodes","Danmu","$control","isOpen","Fullscreen","FullscreenWeb","Pip","PlayAndPause","player","$play","$pause","Progress","isDroging","getLoaded","bind","getPlayed","set","$loaded","$played","$highlight","$indicator","$tip","left","path","indexOf","showHighlight","showTime","getPosFromEvent","tipWidth","buffered","end","getBoundingClientRect","x","Subtitle","Time","getTime","Volume","$volume","$volumeClose","$volumePanel","$volumeHandle","setVolumeHandle","volumeChangeFromEvent","panelLeft","panelWidth","handleWidth","Setting","Thumbnails","isLoad","progress","load","showThumbnails","reject","image","Image","complete","posWidth","perWidth","perIndex","ceil","yIndex","xIndex","Screenshot","$screenshot","captureFrame","error","canvas","getContext","drawImage","dataUri","toDataURL","elink","href","download","body","removeChild","Quality","playIndex","defaultQuality","find","$qualityName","qualityList","$qualitys","switch","id","Controls","$map","mount","control","commonMethod","push","apply","sort","controlIndex","defineProperty","info","close","Contextmenu","version","preventDefault","isFocus","$contextmenu","creatMenu","setPos","menu","$menu","artMenuId","call","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","top","mHeight","mWidth","menuLeft","menuTop","Info","getHeader","creatInfo","clearTimeout","timer","infoHtml","types","querySelectorAll","fetch","method","data","headers","head","readInfo","checkExt","$track","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","response","test","srtToVtt","vttText","concat","replace","URL","createObjectURL","Blob","ext","Events","destroyEvents","addEventListener","removeEventListener","mouseenter","mouseleave","Hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","$layer","Loading","Notice","autoHide","Mask","log","instances","Artplayer","DEFAULTS","optionValidator","scheme","removeHtml","splice","Plugin","installedPlugins","plugins","args","arguments","slice","unshift","prototype","navigator","Emitter"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/objectSpread.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/index.js","../../node_modules/option-validator/dist/option-validator.js","../../src/scheme/validElement.js","../../src/scheme/index.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../src/icons/index.js","../../src/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/fullscreen-web.js","../../src/controls/pip.js","../../src/controls/playAndPause.js","../../src/controls/progress.js","../../src/controls/subtitle.js","../../src/controls/time.js","../../src/controls/volume.js","../../src/controls/setting.js","../../src/controls/thumbnails.js","../../src/controls/screenshot.js","../../src/controls/quality.js","../../src/controls/index.js","../../src/contextmenu/playbackRate.js","../../src/contextmenu/aspectRatio.js","../../src/contextmenu/info.js","../../src/contextmenu/version.js","../../src/contextmenu/close.js","../../src/contextmenu/index.js","../../src/danmu.js","../../src/info.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/setting/common.js","../../src/setting/index.js","../../src/index.js"],"sourcesContent":["function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var defineProperty = require(\"./defineProperty\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n const isFun = typeof condition === 'function';\n if (isFun ? !isFun() : !condition) {\n throw new ArtPlayerError(msg);\n }\n}\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child);\n } else {\n parent.insertAdjacentHTML('beforeend', child);\n }\n return parent.lastElementChild;\n}\n\nexport function setStyle(element, key, value) {\n element.style[key] = value;\n return element;\n}\n\nexport function setStyles(element, styles) {\n Object.keys(styles).forEach(key => {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function secondToTime(second) {\n const add0 = num => num < 10 ? `0${num}` : String(num);\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function deepMerge(...sources) {\n const isObject = value => value !== null && typeof value === 'object';\n let returnValue = {};\n for (const source of sources) {\n if (Array.isArray(source)) {\n if (!Array.isArray(returnValue)) {\n returnValue = [];\n }\n returnValue = [...returnValue, ...source];\n } else if (isObject(source)) {\n if (source instanceof Element) {\n return source;\n }\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n let value = source[key];\n if (isObject(value) && key in returnValue) {\n value = deepMerge(returnValue[key], value);\n }\n returnValue = { ...returnValue, [key]: value };\n }\n }\n }\n }\n return returnValue;\n}\n\nexport function getStorage(key) {\n const storage = JSON.parse(localStorage.getItem('artplayer_settings')) || {};\n return key ? storage[key] : storage;\n}\n\nexport function setStorage(key, value) {\n const storage = Object.assign({}, getStorage(), {\n [key]: value\n });\n localStorage.setItem('artplayer_settings', JSON.stringify(storage));\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n target.setAttribute('data-balloon', msg);\n target.setAttribute('data-balloon-pos', pos);\n}\n\nexport function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter(item => item !== target);\n}\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function c(r){return(c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var u=Object.prototype.toString,i=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t,e,n,o,a,i=c(r);if(\"boolean\"===i)return\"boolean\";if(\"string\"===i)return\"string\";if(\"number\"===i)return\"number\";if(\"symbol\"===i)return\"symbol\";if(\"function\"===i)return\"GeneratorFunction\"===f(r)?\"generatorfunction\":\"function\";if(t=r,Array.isArray?Array.isArray(t):t instanceof Array)return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if((e=r)instanceof Date||\"function\"==typeof e.toDateString&&\"function\"==typeof e.getDate&&\"function\"==typeof e.setDate)return\"date\";if((n=r)instanceof Error||\"string\"==typeof n.message&&n.constructor&&\"number\"==typeof n.constructor.stackTraceLimit)return\"error\";if((o=r)instanceof RegExp||\"string\"==typeof o.flags&&\"boolean\"==typeof o.ignoreCase&&\"boolean\"==typeof o.multiline&&\"boolean\"==typeof o.global)return\"regexp\";switch(f(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(\"function\"==typeof(a=r).throw&&\"function\"==typeof a.return&&\"function\"==typeof a.next)return\"generator\";switch(i=u.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return i.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function f(r){return r.constructor?r.constructor.name:null}function a(r,t){var e=2\n \n \n \n \n \n \n \n \n \n \n \n `;\n refs.$player = refs.$container.querySelector('.artplayer-video-player');\n refs.$video = refs.$container.querySelector('.artplayer-video');\n refs.$subtitle = refs.$container.querySelector('.artplayer-subtitle');\n refs.$bottom = refs.$container.querySelector('.artplayer-bottom');\n refs.$progress = refs.$container.querySelector('.artplayer-progress');\n refs.$controls = refs.$container.querySelector('.artplayer-controls');\n refs.$controlsLeft = refs.$container.querySelector('.artplayer-controls-left');\n refs.$controlsRight = refs.$container.querySelector('.artplayer-controls-right');\n refs.$layers = refs.$container.querySelector('.artplayer-layers');\n refs.$danmu = refs.$container.querySelector('.artplayer-danmu');\n refs.$loading = refs.$container.querySelector('.artplayer-loading');\n refs.$notice = refs.$container.querySelector('.artplayer-notice');\n refs.$noticeInner = refs.$container.querySelector('.artplayer-notice-inner');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n refs.$setting = refs.$container.querySelector('.artplayer-setting');\n refs.$settingInner = refs.$container.querySelector('.artplayer-setting-inner');\n refs.$settingBody = refs.$container.querySelector('.artplayer-setting-body');\n refs.$settingClose = refs.$container.querySelector('.artplayer-setting-close');\n refs.$info = refs.$container.querySelector('.artplayer-info');\n refs.$infoPanel = refs.$container.querySelector('.artplayer-info-panel');\n refs.$infoClose = refs.$container.querySelector('.artplayer-info-close');\n }\n}\n","let i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暂停',\n 'Rate': '速度',\n 'Mute': '静音',\n 'Reconnect': '重新连接',\n 'Hide subtitle': '隐藏字幕',\n 'Show subtitle': '显示字幕',\n 'Hide danmu': '隐藏弹幕',\n 'Show danmu': '显示弹幕',\n 'Screenshot': '截图',\n 'Play speed': '播放速度',\n 'Aspect ratio': '画面比例',\n 'Default': '默认',\n 'Normal': '正常',\n 'Switch': '切换',\n 'Common': '常规',\n 'Hide setting': '隐藏设置',\n 'Show setting': '显示设置'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暫停',\n 'Rate': '速度',\n 'Mute': '靜音',\n 'Reconnect': '重新連接',\n 'Hide subtitle': '隱藏字幕',\n 'Show subtitle': '顯示字幕',\n 'Hide danmu': '隱藏彈幕',\n 'Show danmu': '顯示彈幕',\n 'Screenshot': '截圖',\n 'Play speed': '播放速度',\n 'Aspect ratio': '畫面比例',\n 'Default': '默認',\n 'Normal': '正常',\n 'Switch': '切換',\n 'Common': '常規',\n 'Hide setting': '隱藏設置',\n 'Show setting': '顯示設置'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.option = option;\n this.init();\n }\n\n init() {\n this.language = i18nMap[this.option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(callback) {\n i18nMap = callback(i18nMap);\n this.init();\n }\n}\n","import { clamp, secondToTime, setStorage, sleep, setStyle, sublings } from './utils';\nimport config from './config';\n\nexport default class Player {\n constructor(art) {\n this.art = art;\n this.init();\n this.eventBind();\n this.firstCanplay = false;\n this.reconnectTime = 0;\n this.maxReconnectTime = 5;\n }\n\n init() {\n const { option, refs: { $video } } = this.art;\n Object.keys(option.moreVideoAttr).forEach(key => {\n const value = option.moreVideoAttr[key];\n $video[key] = value;\n });\n $video.volume = clamp(option.volume, 0, 1);\n $video.poster = option.poster;\n $video.autoplay = option.autoplay;\n\n // TODO\n $video.src = option.url;\n }\n\n eventBind() {\n const { option, events: { proxy, hover }, refs: { $player, $video }, i18n, notice } = this.art;\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n this.art.emit(`video:${event.type}`, event);\n });\n });\n\n this.art.on('video:loadstart', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:loadeddata', () => {\n this.art.loading.hide();\n });\n\n this.art.on('video:waiting', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:seeking', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:canplay', () => {\n if (!this.firstCanplay) {\n this.firstCanplay = true;\n this.art.emit('firstCanplay');\n }\n\n this.art.controls.show();\n this.art.mask.show();\n this.art.loading.hide();\n if (option.autoplay) {\n this.play();\n }\n });\n\n this.art.on('video:playing', () => {\n this.art.isPlaying = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n if (option.loop) {\n this.seek(0);\n this.play();\n }\n });\n\n this.art.on('video:error', () => {\n if (this.reconnectTime < this.maxReconnectTime) {\n sleep(1000).then(() => {\n this.reconnectTime++;\n $video.src = option.url;\n notice.show(`${i18n.get('Reconnect')}: ${this.reconnectTime}`);\n });\n } else {\n this.art.isError = true;\n this.art.isPlaying = false;\n this.art.loading.hide();\n this.art.controls.hide();\n $player.classList.add('artplayer-error');\n sleep(1000).then(() => {\n notice.show(i18n.get('Video load failed'), false);\n this.art.destroy();\n });\n }\n });\n\n hover($player, () => {\n $player.classList.add('artplayer-hover');\n this.art.emit('hoverenter');\n }, () => {\n $player.classList.remove('artplayer-hover');\n this.art.emit('hoverleave');\n });\n }\n\n play() {\n const { refs: { $video }, i18n, notice } = this.art;\n const promise = $video.play();\n if (promise !== undefined) {\n promise.then().catch(err => {\n notice.show(err, true, 3000);\n console.warn(err);\n });\n }\n notice.show(i18n.get('Play'));\n this.art.emit('play', $video);\n }\n\n pause() {\n const { refs: { $video }, i18n, notice } = this.art;\n $video.pause();\n notice.show(i18n.get('Pause'));\n this.art.emit('pause', $video);\n }\n\n toggle() {\n if (this.art.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek(time) {\n const { refs: { $video }, notice } = this.art;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n $video.currentTime = newTime;\n notice.show(`${secondToTime(newTime)} / ${secondToTime($video.duration)}`);\n this.art.emit('seek', newTime);\n }\n\n volume(percentage) {\n const { refs: { $video }, i18n, notice } = this.art;\n if (percentage !== undefined) {\n $video.volume = clamp(percentage, 0, 1);\n notice.show(`${i18n.get('Volume')}: ${parseInt($video.volume * 100)}`);\n if ($video.volume !== 0) {\n setStorage('volume', $video.volume);\n }\n this.art.emit('volume', $video.volume);\n }\n return $video.volume || 0;\n }\n\n currentTime() {\n return this.art.refs.$video.currentTime || 0;\n }\n\n duration() {\n return this.art.refs.$video.duration || 0;\n }\n\n switch(url, name = 'Unknown') {\n const { refs: { $video }, i18n, notice, isPlaying, option } = this.art;\n const currentTime = this.currentTime();\n $video.src = url;\n option.url = url;\n this.reconnectTime = 0;\n this.seek(currentTime);\n if (isPlaying) {\n this.play();\n }\n this.resetStyle();\n notice.show(`${i18n.get('Switch')}: ${name}`);\n this.art.emit('switch', url);\n }\n\n playbackRate(rate) {\n const { refs: { $video, $player }, i18n, notice } = this.art;\n const newRate = clamp(rate, 0.1, 10);\n $video.playbackRate = newRate;\n $player.dataset.playbackRate = newRate;\n notice.show(`${i18n.get('Rate')}: ${newRate === 1 ? i18n.get('Normal') : `${newRate}x`}`);\n this.art.emit('playbackRate', newRate);\n }\n\n aspectRatio(ratio) {\n const { refs: { $video, $player }, i18n, notice } = this.art;\n const ratioName = ratio.length === 2 ? `${ratio[0]}:${ratio[1]}` : i18n.get('Default');\n\n if (ratio.length === 2) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = Number(ratio[0]) / Number(ratio[1]);\n\n if (videoRatio > setupRatio) {\n const percentage = setupRatio * videoHeight / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n\n $player.dataset.aspectRatio = ratioName;\n } else {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n }\n\n notice.show(`${i18n.get('Aspect ratio')}: ${ratioName}`);\n this.art.emit('aspectRatio', ratio);\n }\n\n resetStyle() {\n const { refs: { $video }, contextmenu } = this.art;\n\n if (contextmenu.$playbackRate) {\n const $normal = contextmenu.$playbackRate.querySelector('.normal');\n sublings($normal).forEach(item => item.classList.remove('current'));\n $normal.classList.add('current');\n }\n\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n if (contextmenu.$aspectRatio) {\n const $default = contextmenu.$aspectRatio.querySelector('.default');\n sublings($default).forEach(item => item.classList.remove('current'));\n $default.classList.add('current');\n }\n }\n}\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","import loading from './loading.svg';\nimport playBig from './play-big.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport danmu from './danmu.svg';\nimport setting from './setting.svg';\n\nconst icons = {\n loading,\n playBig,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n danmu,\n setting\n};\n\nfunction creatDomFromSvg(map) {\n const result = {};\n Object.keys(map).forEach(name => {\n const tmp = document.createElement('div');\n tmp.innerHTML = `${map[name]}`;\n [result[name]] = tmp.childNodes;\n });\n return result;\n}\n\nexport default creatDomFromSvg(icons);\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Danmu {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { $control } = this.option;\n const { events: { proxy }, i18n, danmu } = art;\n this.$danmu = append($control, icons.danmu);\n tooltip(this.$danmu, i18n.get('Hide danmu'));\n proxy($control, 'click', () => {\n if (danmu.isOpen) {\n danmu.hide();\n setStyle(this.$danmu, 'opacity', '1');\n tooltip(this.$danmu, i18n.get('Show danmu'));\n } else {\n danmu.show();\n setStyle(this.$danmu, 'opacity', '0.8');\n tooltip(this.$danmu, i18n.get('Hide danmu'));\n }\n });\n }\n}\n","export default class Fullscreen {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","export default class FullscreenWeb {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","export default class Pip {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class PlayAndPause {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { events: { proxy }, player, i18n } = art;\n this.$play = append(this.option.$control, icons.play);\n this.$pause = append(this.option.$control, icons.pause);\n tooltip(this.$play, i18n.get('Play'));\n tooltip(this.$pause, i18n.get('Pause'));\n setStyle(this.$pause, 'display', 'none');\n\n proxy(this.$play, 'click', () => {\n player.play();\n });\n\n proxy(this.$pause, 'click', () => {\n player.pause();\n });\n\n art.on('video:playing', () => {\n setStyle(this.$play, 'display', 'none');\n setStyle(this.$pause, 'display', 'block');\n });\n\n art.on('video:pause', () => {\n setStyle(this.$play, 'display', 'block');\n setStyle(this.$pause, 'display', 'none');\n });\n }\n}\n","import { append, clamp, secondToTime, setStyle } from '../utils';\n\nexport default class Progress {\n constructor(option) {\n this.option = option;\n this.isDroging = false;\n this.getLoaded = this.getLoaded.bind(this);\n this.getPlayed = this.getPlayed.bind(this);\n this.set = this.set.bind(this);\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option: { highlight, theme }, events: { proxy }, refs: { $video }, player } = this.art;\n\n append(\n this.option.$control,\n `\n \n `\n );\n\n this.$loaded = this.option.$control.querySelector('.art-progress-loaded');\n this.$played = this.option.$control.querySelector('.art-progress-played');\n this.$highlight = this.option.$control.querySelector('.art-progress-highlight');\n this.$indicator = this.option.$control.querySelector('.art-progress-indicator');\n this.$tip = this.option.$control.querySelector('.art-progress-tip');\n\n this.set('loaded', this.getLoaded());\n highlight.forEach(item => {\n const left = Number(item.time) / $video.duration;\n append(this.$highlight, `\n \n `\n );\n });\n\n this.art.on('video:progress', () => {\n this.set('loaded', this.getLoaded());\n });\n\n this.art.on('video:timeupdate', () => {\n this.set('played', this.getPlayed());\n });\n\n this.art.on('video:ended', () => {\n this.set('played', 1);\n });\n\n proxy(this.option.$control, 'mousemove', event => {\n setStyle(this.$tip, 'display', 'block');\n if (event.path.indexOf(this.$highlight) > -1) {\n this.showHighlight(event);\n } else {\n this.showTime(event);\n }\n });\n\n proxy(this.option.$control, 'mouseout', () => {\n setStyle(this.$tip, 'display', 'none');\n });\n\n proxy(this.option.$control, 'click', event => {\n if (event.target !== this.$indicator) {\n const { second, percentage } = this.getPosFromEvent(event);\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(this.$indicator, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (this.isDroging) {\n const { second, percentage } = this.getPosFromEvent(event);\n this.$indicator.classList.add('show-indicator');\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n this.$indicator.classList.remove('show-indicator');\n }\n });\n }\n\n showHighlight(event) {\n const { $video } = this.art.refs;\n const { text, time } = event.target.dataset;\n this.$tip.innerHTML = text;\n const left =\n Number(time) / $video.duration * this.option.$control.clientWidth +\n event.target.clientWidth / 2 -\n this.$tip.clientWidth / 2;\n setStyle(this.$tip, 'left', `${left}px`);\n }\n\n showTime(event) {\n const { width, time } = this.getPosFromEvent(event);\n const tipWidth = this.$tip.clientWidth;\n this.$tip.innerHTML = time;\n if (width <= tipWidth / 2) {\n setStyle(this.$tip, 'left', 0);\n } else if (width > this.option.$control.clientWidth - tipWidth / 2) {\n setStyle(this.$tip, 'left', `${this.option.$control.clientWidth - tipWidth}px`);\n } else {\n setStyle(this.$tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n getPlayed() {\n const { $video } = this.art.refs;\n return $video.currentTime / $video.duration;\n }\n\n getLoaded() {\n const { $video } = this.art.refs;\n return $video.buffered.length\n ? $video.buffered.end($video.buffered.length - 1) / $video.duration\n : 0;\n }\n\n getPosFromEvent(event) {\n const { $video, $progress } = this.art.refs;\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.x - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * $video.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n }\n\n set(type, percentage) {\n setStyle(this[`$${type}`], 'width', `${percentage * 100}%`);\n if (type === 'played') {\n setStyle(this.$indicator, 'left', `calc(${percentage * 100}% - 6.5px)`);\n }\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Subtitle {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { $control } = this.option;\n const { events: { proxy }, i18n, subtitle } = art;\n this.$subtitle = append($control, icons.subtitle);\n tooltip(this.$subtitle, i18n.get('Hide subtitle'));\n proxy($control, 'click', () => {\n if (subtitle.isOpen) {\n subtitle.hide();\n setStyle(this.$subtitle, 'opacity', '1');\n tooltip(this.$subtitle, i18n.get('Show subtitle'));\n } else {\n subtitle.show();\n setStyle(this.$subtitle, 'opacity', '0.8');\n tooltip(this.$subtitle, i18n.get('Hide subtitle'));\n }\n });\n }\n}\n","import { secondToTime } from '../utils';\n\nexport default class Time {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n this.option.$control.innerHTML = '00:00 / 00:00';\n\n this.art.on('video:canplay', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n\n this.art.on('video:timeupdate', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n\n this.art.on('video:seeking', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n }\n\n getTime() {\n const { player } = this.art;\n return `${secondToTime(player.currentTime())} / ${secondToTime(player.duration())}`;\n }\n}\n","import { append, getStorage, clamp, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Volume {\n constructor(option) {\n this.option = option;\n this.isDroging = false;\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { events: { proxy }, player, i18n } = this.art;\n this.$volume = append(this.option.$control, icons.volume);\n this.$volumeClose = append(this.option.$control, icons.volumeClose);\n this.$volumePanel = append(this.option.$control, '');\n this.$volumeHandle = append(this.$volumePanel, '');\n tooltip(this.$volume, i18n.get('Mute'));\n setStyle(this.$volumeClose, 'display', 'none');\n\n const volume = getStorage('volume');\n this.setVolumeHandle(volume);\n player.volume(volume);\n\n proxy(this.$volume, 'click', () => {\n setStyle(this.$volume, 'display', 'none');\n setStyle(this.$volumeClose, 'display', 'block');\n player.volume(0);\n });\n\n proxy(this.$volumeClose, 'click', () => {\n setStyle(this.$volume, 'display', 'block');\n setStyle(this.$volumeClose, 'display', 'none');\n player.volume(getStorage('volume'));\n });\n\n proxy(this.option.$control, 'mouseenter', () => {\n this.$volumePanel.classList.add('art-volume-panel-hover');\n\n // TODO\n setTimeout(() => {\n this.setVolumeHandle(player.volume());\n }, 200);\n });\n\n proxy(this.option.$control, 'mouseleave', () => {\n this.$volumePanel.classList.remove('art-volume-panel-hover');\n });\n\n proxy(this.$volumePanel, 'click', event => {\n this.volumeChangeFromEvent(event);\n });\n\n proxy(this.$volumeHandle, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(this.$volumeHandle, 'mousemove', event => {\n if (this.isDroging) {\n this.volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n }\n });\n\n this.art.on('video:volumechange', () => {\n const percentage = player.volume();\n this.setVolumeHandle(percentage);\n if (percentage === 0) {\n setStyle(this.$volume, 'display', 'none');\n setStyle(this.$volumeClose, 'display', 'block');\n } else {\n setStyle(this.$volume, 'display', 'block');\n setStyle(this.$volumeClose, 'display', 'none');\n }\n });\n }\n\n volumeChangeFromEvent(event) {\n const { player } = this.art;\n const { left: panelLeft, width: panelWidth } = this.$volumePanel.getBoundingClientRect();\n const { width: handleWidth } = this.$volumeHandle.getBoundingClientRect();\n const percentage = clamp(event.x - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) / (panelWidth - handleWidth);\n player.volume(percentage);\n }\n\n setVolumeHandle(percentage = 0.7) {\n const { width: panelWidth } = this.$volumePanel.getBoundingClientRect();\n const { width: handleWidth } = this.$volumeHandle.getBoundingClientRect();\n const width = handleWidth / 2 + (panelWidth - handleWidth) * percentage - handleWidth / 2;\n setStyle(this.$volumeHandle, 'left', `${width}px`);\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Setting {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { $control } = this.option;\n const { events: { proxy }, i18n, setting } = art;\n this.$setting = append($control, icons.setting);\n tooltip(this.$setting, i18n.get('Show setting'));\n proxy($control, 'click', () => {\n if (setting.isOpen) {\n setting.hide();\n setStyle(this.$setting, 'opacity', '1');\n tooltip(this.$setting, i18n.get('Show setting'));\n } else {\n setting.show();\n setStyle(this.$setting, 'opacity', '0.8');\n tooltip(this.$setting, i18n.get('Hide setting'));\n }\n });\n }\n}\n","import { errorHandle, setStyle } from '../utils';\n\nexport default class Thumbnails {\n constructor(option) {\n this.option = option;\n this.loading = false;\n this.isLoad = false;\n }\n\n apply(art) {\n this.art = art;\n errorHandle(this.art.controls.progress, '\\'thumbnails\\' control dependent on \\'progress\\' control');\n this.init();\n }\n\n init() {\n const { refs: { $progress }, events: { proxy } } = this.art;\n\n proxy($progress, 'mousemove', event => {\n if (!this.loading) {\n this.loading = true;\n this.load(this.art.option.thumbnails.url).then(() => {\n this.isLoad = true;\n });\n }\n\n if (this.isLoad) {\n setStyle(this.option.$control, 'display', 'block');\n this.showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle(this.option.$control, 'display', 'none');\n });\n }\n\n load(url) {\n const { proxy } = this.art.events;\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.src = url;\n\n if (image.complete) {\n return resolve(image);\n }\n\n proxy(image, 'load', () => resolve(image));\n\n proxy(image, 'error', () => reject(image));\n });\n }\n\n showThumbnails(event) {\n const { refs: { $progress }, controls } = this.art;\n const { width: posWidth } = controls.progress.getPosFromEvent(event);\n const { url, height, width, number, column } = this.art.option.thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.ceil(posWidth / perWidth);\n let yIndex = Math.ceil(perIndex / column);\n let xIndex = perIndex % column || column;\n\n setStyle(this.option.$control, 'backgroundImage', `url(${url})`);\n setStyle(this.option.$control, 'height', `${height}px`);\n setStyle(this.option.$control, 'width', `${width}px`);\n setStyle(this.option.$control, 'backgroundPosition', `-${--xIndex * width}px -${--yIndex * height}px`);\n\n if (posWidth <= width / 2) {\n setStyle(this.option.$control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle(this.option.$control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle(this.option.$control, 'left', `${posWidth - width / 2}px`);\n }\n }\n}\n","import { append, tooltip, secondToTime, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Screenshot {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n const { events: { proxy }, i18n, notice } = this.art;\n this.$screenshot = append(this.option.$control, icons.screenshot);\n tooltip(this.$screenshot, i18n.get('Screenshot'));\n proxy(this.$screenshot, 'click', () => {\n try {\n this.captureFrame();\n } catch (error) {\n notice.show(error);\n }\n });\n }\n\n captureFrame() {\n const { $video } = this.art.refs;\n const canvas = document.createElement('canvas');\n canvas.width = $video.videoWidth;\n canvas.height = $video.videoHeight;\n canvas.getContext('2d').drawImage($video, 0, 0);\n const dataUri = canvas.toDataURL('image/png');\n const elink = document.createElement('a');\n setStyle(elink, 'display', 'none');\n elink.href = dataUri;\n elink.download = `ArtPlayer_${secondToTime($video.currentTime)}.png`;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n }\n}\n","import { append } from '../utils';\n\nexport default class Quality {\n constructor(option) {\n this.option = option;\n this.playIndex = -1;\n }\n\n apply(art) {\n const { $control } = this.option;\n const { option, events: { proxy, hover }, player } = art;\n const defaultQuality = option.quality.find(item => item.default) || option.quality[0];\n this.playIndex = option.quality.indexOf(defaultQuality);\n const $qualityName = append($control, `${defaultQuality.name}
`);\n const qualityList = option.quality.map((item, index) => `${item.name}
`).join('');\n const $qualitys = append($control, `${qualityList}
`);\n\n hover($control, () => {\n $control.classList.add('hover');\n }, () => {\n $control.classList.remove('hover');\n });\n\n proxy($qualitys, 'click', event => {\n const index = Number(event.target.dataset.index);\n const { url, name } = option.quality[index];\n if (url && name && this.playIndex !== index) {\n player.switch(url, name);\n $qualityName.innerHTML = name;\n this.playIndex = index;\n }\n });\n }\n}\n","import { setStyle, append } from '../utils';\nimport Danmu from './danmu';\nimport Fullscreen from './fullscreen';\nimport FullscreenWeb from './fullscreen-web';\nimport Pip from './pip';\nimport PlayAndPause from './playAndPause';\nimport Progress from './progress';\nimport Subtitle from './subtitle';\nimport Time from './time';\nimport Volume from './volume';\nimport Setting from './setting';\nimport Thumbnails from './thumbnails';\nimport Screenshot from './screenshot';\nimport Quality from './quality';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.$map = {};\n this.art.on('firstCanplay', () => {\n this.init();\n this.mount();\n });\n }\n\n init() {\n this.add(new Progress({\n name: 'progress',\n disable: false,\n position: 'top',\n index: 10\n }));\n\n this.add(new Thumbnails({\n name: 'thumbnails',\n disable: !this.art.option.thumbnails.url,\n position: 'top',\n index: 20\n }));\n\n this.add(new PlayAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10\n }));\n\n this.add(new Volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20\n }));\n\n this.add(new Time({\n name: 'time',\n disable: false,\n position: 'left',\n index: 30\n }));\n\n this.add(new Quality({\n name: 'quality',\n disable: this.art.option.quality.length === 0,\n position: 'right',\n index: 10\n }));\n\n this.add(new Danmu({\n name: 'danmu',\n disable: false,\n position: 'right',\n index: 20\n }));\n\n this.add(new Screenshot({\n name: 'screenshot',\n disable: !this.art.option.screenshot,\n position: 'right',\n index: 30\n }));\n\n this.add(new Subtitle({\n name: 'subtitle',\n disable: !this.art.option.subtitle.url,\n position: 'right',\n index: 40\n }));\n\n this.add(new Setting({\n name: 'setting',\n disable: !this.art.option.setting,\n position: 'right',\n index: 50\n }));\n\n this.add(new Pip({\n name: 'pip',\n disable: !this.art.option.pip,\n position: 'right',\n index: 60\n }));\n\n this.add(new FullscreenWeb({\n name: 'fullscreenWeb',\n disable: !this.art.option.fullscreenWeb,\n position: 'right',\n index: 70\n }));\n\n this.add(new Fullscreen({\n name: 'fullscreen',\n disable: !this.art.option.fullscreen,\n position: 'right',\n index: 80\n }));\n\n this.art.option.controls.forEach(item => {\n this.add(item);\n });\n }\n\n add(control) {\n const { option } = control;\n if (option && !option.disable) {\n id++;\n const name = option.name || control.constructor.name.toLowerCase() || `control${id}`;\n const $control = document.createElement('div');\n $control.setAttribute('class', `art-control art-control-${name}`);\n $control.dataset.controlIndex = option.index || id;\n option.$control = $control;\n this.commonMethod(control);\n (this.$map[option.position] || (this.$map[option.position] = [])).push($control);\n control.apply && control.apply(this.art);\n this[name] = control;\n }\n }\n\n mount() {\n const { $progress, $controlsLeft, $controlsRight } = this.art.refs;\n Object.keys(this.$map).forEach(key => {\n this.$map[key]\n .sort(\n (a, b) =>\n Number(a.dataset.controlIndex) - Number(b.dataset.controlIndex)\n )\n .forEach($control => {\n switch (key) {\n case 'top':\n append($progress, $control);\n break;\n case 'left':\n append($controlsLeft, $control);\n break;\n case 'right':\n append($controlsRight, $control);\n break;\n default:\n break;\n }\n });\n });\n }\n\n commonMethod(control) {\n Object.defineProperty(control, 'hide', {\n value: () => {\n setStyle(control.option.$control, 'display', 'none');\n this.art.emit('control:hide', control.option.$control);\n }\n });\n\n Object.defineProperty(control, 'show', {\n value: () => {\n setStyle(control.option.$control, 'display', 'block');\n this.art.emit('control:show', control.option.$control);\n }\n });\n }\n\n show() {\n const { $player } = this.art.refs;\n $player.classList.add('artplayer-controls-show');\n }\n\n hide() {\n const { $player } = this.art.refs;\n $player.classList.remove('artplayer-controls-show');\n }\n}\n","import { sublings } from '../utils';\n\nexport default function playbackRate(art) {\n const { option, i18n, player, contextmenu } = art;\n return {\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n html: `\n ${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: event => {\n const { target } = event;\n const { rate } = target.dataset;\n if (rate) {\n player.playbackRate(Number(rate));\n sublings(target).forEach(item => item.classList.remove('current'));\n target.classList.add('current');\n contextmenu.hide();\n }\n }\n };\n}\n","import { sublings } from '../utils';\n\nexport default function aspectRatio(art) {\n const { option, i18n, player, contextmenu } = art;\n return {\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n html: `\n ${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: event => {\n const { target } = event;\n const { ratio } = target.dataset;\n if (ratio) {\n player.aspectRatio(ratio.split(':'));\n sublings(target).forEach(item => item.classList.remove('current'));\n target.classList.add('current');\n contextmenu.hide();\n }\n }\n };\n}\n","export default function info(art) {\n return {\n disable: false,\n name: 'info',\n index: 30,\n html: art.i18n.get('Video info'),\n click: () => {\n art.info.show();\n art.contextmenu.hide();\n }\n };\n}\n","export default {\n disable: false,\n name: 'version',\n index: 40,\n html: 'ArtPlayer __VERSION__'\n};\n","export default function close(art) {\n return {\n disable: false,\n name: 'close',\n index: 50,\n html: art.i18n.get('Close'),\n click: () => {\n art.contextmenu.hide();\n }\n };\n}\n","import { append, setStyles, setStyle } from '../utils';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport info from './info';\nimport version from './version';\nimport close from './close';\n\nlet id = 0;\nexport default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs, events: { proxy } } = this.art;\n\n option.contextmenu.push(\n playbackRate,\n aspectRatio,\n info,\n version,\n close\n );\n\n proxy(refs.$player, 'contextmenu', event => {\n event.preventDefault();\n this.art.isFocus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$player, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const { option, refs, events: { proxy } } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu\n .filter(item => !item.disable)\n .map(item => {\n id++;\n const menu = typeof item === 'function' ? item(this.art) : item;\n const $menu = document.createElement('div');\n $menu.dataset.artMenuId = menu.index || id;\n $menu.setAttribute('class', `art-menu art-menu-${menu.name || id}`);\n append($menu, menu.html);\n setStyles($menu, menu.style || {});\n if (menu.click) {\n proxy($menu, 'click', event => {\n event.preventDefault();\n menu.click.call(this, event);\n this.art.emit('contextmenu:click', $menu);\n });\n }\n this[`$${menu.name || id}`] = $menu;\n return $menu;\n })\n .sort(\n (a, b) =>\n Number(a.dataset.artMenuId) - Number(b.dataset.artMenuId)\n ).forEach(item => {\n append(refs.$contextmenu, item);\n });\n append(refs.$player, refs.$contextmenu);\n }\n\n setPos(event) {\n const { refs } = this.art;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = refs.$player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = refs.$contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyle(refs.$contextmenu, 'left', `${menuLeft}px`);\n setStyle(refs.$contextmenu, 'top', `${menuTop}px`);\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n setStyle($contextmenu, 'display', 'none');\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n setStyle($contextmenu, 'display', 'block');\n this.art.emit('contextmenu:show', $contextmenu);\n }\n }\n}\n","import { setStyle } from './utils';\n\nexport default class Danmu {\n constructor(art) {\n this.art = art;\n this.isOpen = true;\n this.init();\n }\n\n init() {\n //\n }\n\n show() {\n const { refs: { $danmu }, i18n, notice } = this.art;\n setStyle($danmu, 'display', 'block');\n this.isOpen = true;\n notice.show(i18n.get('Show danmu'));\n this.art.emit('danmu:show', $danmu);\n }\n\n hide() {\n const { refs: { $danmu }, i18n, notice } = this.art;\n setStyle($danmu, 'display', 'none');\n this.isOpen = false;\n notice.show(i18n.get('Hide danmu'));\n this.art.emit('danmu:hide', $danmu);\n }\n}\n","import { append, setStyle } from './utils';\n\nexport default class Info {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs: { $infoClose, $infoPanel }, events: { proxy } } = this.art;\n proxy($infoClose, 'click', () => {\n this.hide();\n });\n this.art.on('switch', () => {\n if ($infoPanel.innerHTML) {\n this.getHeader();\n }\n });\n }\n\n show() {\n const { $info, $infoPanel } = this.art.refs;\n setStyle($info, 'display', 'block');\n if (!$infoPanel.innerHTML) {\n append($infoPanel, this.creatInfo());\n this.getHeader();\n }\n clearTimeout(this.timer);\n this.loop();\n this.art.emit('info:show', $info);\n }\n\n creatInfo() {\n const infoHtml = [];\n\n infoHtml.push(`\n \n
Player version:
\n
__VERSION__
\n
\n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n `);\n\n infoHtml.push(`\n \n
Video resolution:
\n
\n x \n
\n
\n `);\n\n return infoHtml.join('');\n }\n\n getHeader() {\n const { $infoPanel, $video } = this.art.refs;\n const url = $video.src;\n const types = Array.from($infoPanel.querySelectorAll('[data-head]'));\n types.forEach(item => {\n item.innerHTML = 'loading...';\n });\n fetch(url, {\n method: 'HEAD'\n }).then(data => {\n types.forEach(item => {\n const value = data.headers.get(item.dataset.head);\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n }).catch(() => {\n types.forEach(item => {\n item.innerHTML = 'unknown';\n });\n });\n }\n\n readInfo() {\n const { $infoPanel, $video } = this.art.refs;\n const types = Array.from($infoPanel.querySelectorAll('[data-video]'));\n types.forEach(item => {\n const value = $video[item.dataset.video];\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n }\n\n loop() {\n this.readInfo();\n this.timer = setTimeout(() => {\n this.readInfo();\n this.loop();\n }, 1000);\n }\n\n hide() {\n const { $info } = this.art.refs;\n setStyle($info, 'display', 'none');\n clearTimeout(this.timer);\n this.art.emit('info:hide', $info);\n }\n}\n","import { errorHandle, getExt, setStyles, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n this.isOpen = true;\n const { url } = this.art.option.subtitle;\n if (url) {\n this.checkExt(url);\n this.init();\n }\n }\n\n init() {\n const {\n events: { proxy },\n option: { subtitle },\n refs: { $video, $subtitle }\n } = this.art;\n\n setStyles($subtitle, subtitle.style || {});\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n\n this.load(subtitle.url).then(data => {\n $track.src = data;\n $video.appendChild($track);\n this.art.refs.$track = $track;\n if ($video.textTracks && $video.textTracks[0]) {\n const [track] = $video.textTracks;\n proxy(track, 'cuechange', () => {\n const [cue] = track.activeCues;\n $subtitle.innerHTML = '';\n if (cue) {\n const template = document.createElement('div');\n template.appendChild(cue.getCueAsHTML());\n $subtitle.innerHTML = template.innerHTML\n .split(/\\r?\\n/)\n .map(item => `${item}
`)\n .join('');\n }\n this.art.emit('subtitle:update', $subtitle);\n });\n }\n });\n }\n\n load(url) {\n let type;\n return fetch(url)\n .then(response => {\n type = response.headers.get('Content-Type');\n return response.text();\n })\n .then(text => {\n if ((/x-subrip/gi).test(type)) {\n return this.srtToVtt(text);\n }\n return url;\n })\n .catch(err => {\n throw err;\n });\n }\n\n srtToVtt(text) {\n const vttText = 'WEBVTT \\r\\n\\r\\n'.concat(\n text\n .replace(/\\{\\\\([ibu])\\}/g, '$1>')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '$1>')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .concat('\\r\\n\\r\\n')\n );\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt'\n })\n );\n }\n\n checkExt(url) {\n const ext = getExt(url);\n errorHandle(\n ext === 'vtt' || ext === 'srt',\n `'subtitle.url' option require 'vtt' or 'srt' format, but got '${ext}'.`\n );\n }\n\n show() {\n const { refs: { $subtitle }, i18n, notice } = this.art;\n setStyle($subtitle, 'display', 'block');\n this.isOpen = true;\n notice.show(i18n.get('Show subtitle'));\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { refs: { $subtitle }, i18n, notice } = this.art;\n setStyle($subtitle, 'display', 'none');\n this.isOpen = false;\n notice.show(i18n.get('Hide subtitle'));\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n this.checkExt(url);\n errorHandle($track, 'You need to initialize the subtitle option first.');\n this.load(url).then(data => {\n if (url !== data) {\n $track.src = data;\n this.art.emit('subtitle:switch', url);\n }\n });\n }\n}\n","export default class Events {\n constructor(art) {\n this.art = art;\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n name.forEach(item => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\n }\n\n hover(target, mouseenter, mouseleave) {\n this.proxy(target, 'mouseenter', mouseenter);\n this.proxy(target, 'mouseleave', mouseleave);\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.art = art;\n if (this.art.option.hotkey) {\n this.init();\n }\n }\n\n init() {\n const { player, refs: { $player }, events: { proxy } } = this.art;\n\n proxy(document, 'click', event => {\n this.art.isFocus = event.path.indexOf($player) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true'\n ) {\n switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n break;\n case 38:\n event.preventDefault();\n player.volume(player.volume() + 0.05);\n break;\n case 40:\n event.preventDefault();\n player.volume(player.volume() - 0.05);\n break;\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n default:\n break;\n }\n }\n }\n });\n }\n}\n","import { append, setStyles, setStyle } from './utils';\n\nlet id = 0;\nexport default class Layers {\n constructor(art) {\n this.art = art;\n this.add = this.add.bind(this);\n this.art.option.layers.filter(item => item.disable === false).forEach(this.add);\n this.init();\n }\n\n init() {\n const { refs, player, events: { proxy } } = this.art;\n proxy(refs.$layers, 'click', event => {\n if (event.path[0] === refs.$layers) {\n player.pause();\n }\n });\n }\n\n add(option, callback) {\n const { refs } = this.art;\n id++;\n\n const $layer = document.createElement('div');\n $layer.setAttribute('data-art-layer-id', id);\n $layer.setAttribute('class', `art-layer art-layer-${option.name || id}`);\n setStyle($layer, 'z-index', option.index || id);\n append($layer, option.html);\n setStyles($layer, option.style || {});\n refs.$layers.appendChild($layer);\n this.art.emit('layers:add', $layer);\n callback && callback($layer);\n }\n\n show() {\n const { $layers } = this.art.refs;\n setStyle($layers, 'display', 'block');\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n setStyle($layers, 'display', 'none');\n this.art.emit('layers:hide', $layers);\n }\n}\n","import icons from './icons';\nimport { append, setStyle } from './utils';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n append($loading, option.loading || icons.loading);\n }\n\n hide() {\n const { $loading } = this.art.refs;\n setStyle($loading, 'display', 'none');\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n setStyle($loading, 'display', 'flex');\n this.art.emit('loading:show', $loading);\n }\n}\n","import { setStyle } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide = true, time = 1000) {\n const { $notice, $noticeInner } = this.art.refs;\n setStyle($notice, 'display', 'block');\n $noticeInner.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, time);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n setStyle($notice, 'display', 'none');\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append, setStyle } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { player, refs, events: { proxy } } = this.art;\n\n append(refs.$mask, icons.playBig);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n const { $mask } = this.art.refs;\n setStyle($mask, 'display', 'block');\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n setStyle($mask, 'display', 'none');\n this.art.emit('mask:show', $mask);\n }\n}\n","import { append } from '../utils';\n\nexport default class Common {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n const { $setting } = this.option;\n this.$header = $setting.querySelector('.art-setting-header');\n this.$body = $setting.querySelector('.art-setting-body');\n append(this.$body, '———— 先占坑,暂无设置 ————');\n }\n}\n","import { setStyle, append } from '../utils';\nimport Common from './common';\n\nlet id = 0;\nexport default class Setting {\n constructor(art) {\n this.art = art;\n this.isOpen = false;\n this.$settings = [];\n this.art.on('firstCanplay', () => {\n this.init();\n this.mount();\n });\n }\n\n init() {\n const { refs: { $settingClose }, events: { proxy } } = this.art;\n\n proxy($settingClose, 'click', () => {\n this.hide();\n });\n\n this.add(new Common({\n name: 'common',\n title: 'Common',\n disable: false,\n index: 10\n }));\n }\n\n add(setting) {\n const { option } = setting;\n if (option && !option.disable) {\n id++;\n const name = option.name || setting.constructor.name.toLowerCase() || `setting${id}`;\n const title = option.title || name;\n const $setting = document.createElement('div');\n $setting.setAttribute('class', `art-setting art-setting-${name}`);\n $setting.dataset.settingIndex = option.index || id;\n append($setting, ``);\n append($setting, '');\n option.$setting = $setting;\n this.$settings.push($setting);\n setting.apply && setting.apply(this.art);\n this[name] = setting;\n }\n }\n\n mount() {\n this.$settings\n .sort(\n (a, b) =>\n Number(a.dataset.settingIndex) - Number(b.dataset.settingIndex)\n )\n .forEach($setting => {\n append(this.art.refs.$settingBody, $setting);\n });\n }\n\n show() {\n const { refs: { $setting }, i18n, notice } = this.art;\n setStyle($setting, 'display', 'flex');\n this.isOpen = true;\n notice.show(i18n.get('Show setting'));\n this.art.emit('setting:show', $setting);\n }\n\n hide() {\n const { refs: { $setting }, i18n, notice } = this.art;\n setStyle($setting, 'display', 'none');\n this.isOpen = false;\n notice.show(i18n.get('Hide setting'));\n this.art.emit('setting:hide', $setting);\n }\n}\n","import './style';\nimport 'balloon-css/balloon.min.css';\nimport { deepMerge } from './utils';\nimport optionValidator from 'option-validator';\nimport scheme from './scheme';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Controls from './controls';\nimport Contextmenu from './contextmenu';\nimport Danmu from './danmu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layers from './layers';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Setting from './setting';\n\nlet id = 0;\nexport const instances = [];\n\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.emit('init:start');\n this.option = deepMerge({}, Artplayer.DEFAULTS, option);\n optionValidator(this.option, scheme);\n this.init();\n this.emit('init:end');\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: '.artplayer',\n url: '',\n poster: '',\n volume: 0.7,\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10\n },\n screenshot: true,\n autoplay: false,\n playbackRate: true,\n aspectRatio: true,\n loop: false,\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n quality: [],\n loading: '',\n theme: '#f00',\n setting: true,\n hotkey: true,\n pip: true,\n fullscreen: true,\n fullscreenWeb: true,\n subtitle: {\n url: '',\n style: {}\n },\n controls: [],\n highlight: [],\n moreVideoAttr: {\n 'crossOrigin': 'anonymous',\n 'controls': false,\n 'preload': 'auto',\n 'webkit-playsinline': true,\n 'playsinline': true\n },\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(Plugin) {\n const name = Plugin.name.toLowerCase();\n const installedPlugins = this.plugins || (this.plugins = {});\n if (!installedPlugins[name]) {\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n installedPlugins[name] = new Plugin(...args);\n this.prototype.emit('use', Plugin);\n }\n return this;\n }\n\n init() {\n this.isError = false;\n this.isFocus = false;\n this.isPlaying = false;\n this.refs = {};\n\n if (this.option.container instanceof Element) {\n this.refs.$container = this.option.container;\n } else {\n this.refs.$container = document.querySelector(this.option.container);\n }\n\n this.template = new Template(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.events = new Events(this);\n this.player = new Player(this);\n this.layers = new Layers(this);\n this.controls = new Controls(this);\n this.contextmenu = new Contextmenu(this);\n this.danmu = new Danmu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n\n this.id = id++;\n instances.push(this);\n return this;\n }\n\n destroy(removeHtml = false) {\n this.events.destroy();\n instances.splice(instances.indexOf(this), 1);\n if (removeHtml) {\n this.refs.$container.innerHTML = '';\n } else {\n this.refs.$player.classList.add('artplayer-destroy');\n }\n this.emit('destroy');\n }\n}\n\nwindow.Artplayer = Artplayer;\nexport default Artplayer;\n"],"names":["_typeof","ArtPlayerError","message","context","Error","captureStackTrace","constructor","name","errorHandle","condition","msg","isFun","clamp","num","a","b","Math","max","min","getExt","url","includes","split","trim","toLowerCase","pop","append","parent","child","Element","appendChild","insertAdjacentHTML","lastElementChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","secondToTime","second","add0","String","hour","floor","sec","map","join","deepMerge","isObject","returnValue","sources","source","Array","isArray","hasOwnProperty","getStorage","storage","JSON","parse","localStorage","getItem","setStorage","assign","setItem","stringify","tooltip","target","pos","setAttribute","sleep","ms","Promise","resolve","setTimeout","sublings","from","parentElement","children","filter","item","this","validElement","paths","type","container","validator","required","volume","thumbnails","number","width","height","column","screenshot","autoplay","playbackRate","aspectRatio","loop","mimeCodec","layers","index","html","contextmenu","click","quality","default","loading","theme","hotkey","pip","fullscreen","fullscreenWeb","subtitle","controls","option","disable","position","highlight","time","text","moreVideoAttr","lang","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","innerHTML","$player","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$danmu","$loading","$notice","$noticeInner","$mask","$setting","$settingInner","$settingBody","$settingClose","$info","$infoPanel","$infoClose","i18nMap","I18n","language","callback","Player","eventBind","firstCanplay","reconnectTime","maxReconnectTime","poster","src","proxy","hover","i18n","notice","config","eventName","event","emit","on","show","hide","mask","play","isPlaying","seek","then","get","isError","classList","add","destroy","remove","promise","undefined","catch","err","console","warn","pause","newTime","duration","currentTime","percentage","parseInt","resetStyle","rate","newRate","dataset","ratio","ratioName","length","videoWidth","videoHeight","clientWidth","clientHeight","videoRatio","setupRatio","Number","$playbackRate","$normal","$aspectRatio","$default","icons","playBig","volumeClose","danmu","setting","creatDomFromSvg","result","tmp","document","createElement","childNodes","Danmu","$control","isOpen","Fullscreen","FullscreenWeb","Pip","PlayAndPause","player","$play","$pause","Progress","isDroging","getLoaded","bind","getPlayed","set","$loaded","$played","$highlight","$indicator","$tip","left","path","indexOf","showHighlight","showTime","getPosFromEvent","tipWidth","buffered","end","getBoundingClientRect","x","Subtitle","Time","getTime","Volume","$volume","$volumeClose","$volumePanel","$volumeHandle","setVolumeHandle","volumeChangeFromEvent","panelLeft","panelWidth","handleWidth","Setting","Thumbnails","isLoad","progress","load","showThumbnails","reject","image","Image","complete","posWidth","perWidth","perIndex","ceil","yIndex","xIndex","Screenshot","$screenshot","captureFrame","error","canvas","getContext","drawImage","dataUri","toDataURL","elink","href","download","body","removeChild","Quality","playIndex","defaultQuality","find","$qualityName","qualityList","$qualitys","switch","id","Controls","$map","mount","control","controlIndex","commonMethod","push","apply","sort","defineProperty","info","close","Contextmenu","version","preventDefault","isFocus","$contextmenu","creatMenu","setPos","menu","$menu","artMenuId","call","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","top","mHeight","mWidth","menuLeft","menuTop","Info","getHeader","creatInfo","clearTimeout","timer","infoHtml","types","querySelectorAll","fetch","method","data","headers","head","readInfo","checkExt","$track","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","response","test","srtToVtt","vttText","concat","replace","URL","createObjectURL","Blob","ext","Events","destroyEvents","addEventListener","removeEventListener","mouseenter","mouseleave","Hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","$layer","Loading","Notice","autoHide","Mask","Common","$header","$body","$settings","title","settingIndex","instances","Artplayer","DEFAULTS","optionValidator","scheme","removeHtml","splice","Plugin","installedPlugins","plugins","args","arguments","slice","unshift","prototype","navigator","Emitter"],"mappings":"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"}
\ No newline at end of file
diff --git a/src/controls/index.js b/src/controls/index.js
index 69abf19dc..d15c292a6 100644
--- a/src/controls/index.js
+++ b/src/controls/index.js
@@ -1,4 +1,4 @@
-import { setStyle } from '../utils';
+import { setStyle, append } from '../utils';
import Danmu from './danmu';
import Fullscreen from './fullscreen';
import FullscreenWeb from './fullscreen-web';
@@ -26,78 +26,91 @@ export default class Controls {
init() {
this.add(new Progress({
+ name: 'progress',
disable: false,
position: 'top',
index: 10
}));
this.add(new Thumbnails({
+ name: 'thumbnails',
disable: !this.art.option.thumbnails.url,
position: 'top',
index: 20
}));
this.add(new PlayAndPause({
+ name: 'playAndPause',
disable: false,
position: 'left',
index: 10
}));
this.add(new Volume({
+ name: 'volume',
disable: false,
position: 'left',
index: 20
}));
this.add(new Time({
+ name: 'time',
disable: false,
position: 'left',
index: 30
}));
this.add(new Quality({
+ name: 'quality',
disable: this.art.option.quality.length === 0,
position: 'right',
index: 10
}));
this.add(new Danmu({
+ name: 'danmu',
disable: false,
position: 'right',
index: 20
}));
this.add(new Screenshot({
+ name: 'screenshot',
disable: !this.art.option.screenshot,
position: 'right',
index: 30
}));
this.add(new Subtitle({
+ name: 'subtitle',
disable: !this.art.option.subtitle.url,
position: 'right',
index: 40
}));
this.add(new Setting({
+ name: 'setting',
disable: !this.art.option.setting,
position: 'right',
index: 50
}));
this.add(new Pip({
+ name: 'pip',
disable: !this.art.option.pip,
position: 'right',
index: 60
}));
this.add(new FullscreenWeb({
+ name: 'fullscreenWeb',
disable: !this.art.option.fullscreenWeb,
position: 'right',
index: 70
}));
this.add(new Fullscreen({
+ name: 'fullscreen',
disable: !this.art.option.fullscreen,
position: 'right',
index: 80
@@ -112,10 +125,10 @@ export default class Controls {
const { option } = control;
if (option && !option.disable) {
id++;
- const name = control.constructor.name.toLowerCase() || `control${id}`;
+ const name = option.name || control.constructor.name.toLowerCase() || `control${id}`;
const $control = document.createElement('div');
$control.setAttribute('class', `art-control art-control-${name}`);
- $control.setAttribute('data-control-index', String(option.index) || id);
+ $control.dataset.controlIndex = option.index || id;
option.$control = $control;
this.commonMethod(control);
(this.$map[option.position] || (this.$map[option.position] = [])).push($control);
@@ -135,13 +148,13 @@ export default class Controls {
.forEach($control => {
switch (key) {
case 'top':
- $progress.appendChild($control);
+ append($progress, $control);
break;
case 'left':
- $controlsLeft.appendChild($control);
+ append($controlsLeft, $control);
break;
case 'right':
- $controlsRight.appendChild($control);
+ append($controlsRight, $control);
break;
default:
break;
diff --git a/src/i18n.js b/src/i18n.js
index e16b99aed..13b6cb772 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -20,6 +20,7 @@ let i18nMap = {
'Default': '默认',
'Normal': '正常',
'Switch': '切换',
+ 'Common': '常规',
'Hide setting': '隐藏设置',
'Show setting': '显示设置'
},
@@ -44,6 +45,7 @@ let i18nMap = {
'Default': '默認',
'Normal': '正常',
'Switch': '切換',
+ 'Common': '常規',
'Hide setting': '隱藏設置',
'Show setting': '顯示設置'
}
diff --git a/src/setting.js b/src/setting.js
deleted file mode 100644
index e327734e8..000000000
--- a/src/setting.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import { setStyle } from './utils';
-
-export default class Setting {
- constructor(art) {
- this.art = art;
- this.isOpen = false;
- this.init();
- }
-
- init() {
- //
- }
-
- add() {
- //
- }
-
- switch(name) {
- console.log(name);
- }
-
- show() {
- const { refs: { $setting }, i18n, notice } = this.art;
- setStyle($setting, 'display', 'flex');
- this.isOpen = true;
- notice.show(i18n.get('Show setting'));
- this.art.emit('setting:show', $setting);
- }
-
- hide() {
- const { refs: { $setting }, i18n, notice } = this.art;
- setStyle($setting, 'display', 'none');
- this.isOpen = false;
- notice.show(i18n.get('Hide setting'));
- this.art.emit('setting:hide', $setting);
- }
-}
diff --git a/src/setting/common.js b/src/setting/common.js
new file mode 100644
index 000000000..77b70d409
--- /dev/null
+++ b/src/setting/common.js
@@ -0,0 +1,15 @@
+import { append } from '../utils';
+
+export default class Common {
+ constructor(option) {
+ this.option = option;
+ }
+
+ apply(art) {
+ this.art = art;
+ const { $setting } = this.option;
+ this.$header = $setting.querySelector('.art-setting-header');
+ this.$body = $setting.querySelector('.art-setting-body');
+ append(this.$body, '———— 先占坑,暂无设置 ————');
+ }
+}
diff --git a/src/setting/index.js b/src/setting/index.js
new file mode 100644
index 000000000..1cc8df248
--- /dev/null
+++ b/src/setting/index.js
@@ -0,0 +1,75 @@
+import { setStyle, append } from '../utils';
+import Common from './common';
+
+let id = 0;
+export default class Setting {
+ constructor(art) {
+ this.art = art;
+ this.isOpen = false;
+ this.$settings = [];
+ this.art.on('firstCanplay', () => {
+ this.init();
+ this.mount();
+ });
+ }
+
+ init() {
+ const { refs: { $settingClose }, events: { proxy } } = this.art;
+
+ proxy($settingClose, 'click', () => {
+ this.hide();
+ });
+
+ this.add(new Common({
+ name: 'common',
+ title: 'Common',
+ disable: false,
+ index: 10
+ }));
+ }
+
+ add(setting) {
+ const { option } = setting;
+ if (option && !option.disable) {
+ id++;
+ const name = option.name || setting.constructor.name.toLowerCase() || `setting${id}`;
+ const title = option.title || name;
+ const $setting = document.createElement('div');
+ $setting.setAttribute('class', `art-setting art-setting-${name}`);
+ $setting.dataset.settingIndex = option.index || id;
+ append($setting, ``);
+ append($setting, '');
+ option.$setting = $setting;
+ this.$settings.push($setting);
+ setting.apply && setting.apply(this.art);
+ this[name] = setting;
+ }
+ }
+
+ mount() {
+ this.$settings
+ .sort(
+ (a, b) =>
+ Number(a.dataset.settingIndex) - Number(b.dataset.settingIndex)
+ )
+ .forEach($setting => {
+ append(this.art.refs.$settingBody, $setting);
+ });
+ }
+
+ show() {
+ const { refs: { $setting }, i18n, notice } = this.art;
+ setStyle($setting, 'display', 'flex');
+ this.isOpen = true;
+ notice.show(i18n.get('Show setting'));
+ this.art.emit('setting:show', $setting);
+ }
+
+ hide() {
+ const { refs: { $setting }, i18n, notice } = this.art;
+ setStyle($setting, 'display', 'none');
+ this.isOpen = false;
+ notice.show(i18n.get('Hide setting'));
+ this.art.emit('setting:hide', $setting);
+ }
+}
diff --git a/src/style/setting.scss b/src/style/setting.scss
index 171c91789..a02b82c0e 100644
--- a/src/style/setting.scss
+++ b/src/style/setting.scss
@@ -1,7 +1,6 @@
.artplayer-video-player {
.artplayer-setting {
display: none;
- font-size: 14px;
position: absolute;
z-index: 90;
left: 0;
@@ -12,13 +11,44 @@
justify-content: center;
pointer-events: none;
.artplayer-setting-inner {
+ position: relative;
width: 350px;
height: 250px;
- padding: 10px;
- color: #fff;
- background: rgba(0, 0, 0, 0.6);
+ font-size: 12px;
+ background: rgba(0, 0, 0, 0.8);
border-radius: 3px;
pointer-events: all;
+ overflow: hidden;
+ .artplayer-setting-body {
+ overflow-x: hidden;
+ overflow-y: auto;
+ width: 365px;
+ height: 100%;
+ .art-setting {
+ border-bottom: 1px solid rgba(255,255,255,.1);
+ padding: 12px 35px 12px 20px;
+ .art-setting-header {
+ color: #fff;
+ margin-bottom: 10px;
+ }
+ .art-setting-body {
+ color: rgba(255, 255, 255, 0.8);
+ }
+ }
+ }
+ .artplayer-setting-close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 20px;
+ height: 20px;
+ line-height: 20px;
+ text-align: center;
+ color: rgba(255, 255, 255, .8);
+ background: rgba(0, 0, 0, .5);
+ font-size: 20px;
+ cursor: pointer;
+ }
}
}
}
diff --git a/src/template.js b/src/template.js
index 188f1b37f..93c7041ba 100644
--- a/src/template.js
+++ b/src/template.js
@@ -25,7 +25,10 @@ export default class Template {
@@ -49,6 +52,8 @@ export default class Template {
refs.$mask = refs.$container.querySelector('.artplayer-mask');
refs.$setting = refs.$container.querySelector('.artplayer-setting');
refs.$settingInner = refs.$container.querySelector('.artplayer-setting-inner');
+ refs.$settingBody = refs.$container.querySelector('.artplayer-setting-body');
+ refs.$settingClose = refs.$container.querySelector('.artplayer-setting-close');
refs.$info = refs.$container.querySelector('.artplayer-info');
refs.$infoPanel = refs.$container.querySelector('.artplayer-info-panel');
refs.$infoClose = refs.$container.querySelector('.artplayer-info-close');