diff --git a/dist/artplayer.css b/dist/artplayer.css index 510bbc984..ae9cae01f 100644 --- a/dist/artplayer.css +++ b/dist/artplayer.css @@ -1,14 +1,16 @@ -.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{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{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;line-height:1.5}.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-video{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;width:100%;height:100%;background-color:#000;outline:0;cursor:pointer} +.artplayer-video-player .artplayer-danmu{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none} +.artplayer-video-player .artplayer-mask{display:none;position:absolute;z-index:50;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.artplayer-video-player .artplayer-mask .art-icon-playBig{position:absolute;right:30px;bottom:65px;opacity:.6} +.artplayer-video-player .artplayer-layers{position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.artplayer-video-player .artplayer-layers .art-layer{position:absolute;pointer-events:all} +.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;pointer-events:none} .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-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;line-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{padding:0 10px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality{position:relative;z-index:30;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-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-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 .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-hide-cursor *{cursor:none!important} .artplayer-video-player[data-aspect-ratio] video{box-sizing:content-box;-o-object-fit:fill;object-fit:fill} +.artplayer-video-player.artplayer-web-fullscreen{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0} 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/dist/artplayer.js b/dist/artplayer.js index 9cf234939..14dc65ab2 100644 --- a/dist/artplayer.js +++ b/dist/artplayer.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.artplayer={})}(this,function(t){"use strict";"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function e(t,e){return t(e={exports:{}},e.exports),e.exports}var o=e(function(n){function i(t,e){return n.exports=i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},i(t,e)}n.exports=i}),r=e(function(i){function r(t,e,n){return!function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?i.exports=r=function(t,e,n){var i=[null];i.push.apply(i,e);var r=new(Function.bind.apply(t,i));return n&&o(r,n.prototype),r}:i.exports=r=Reflect.construct,r.apply(null,arguments)}i.exports=r});var n=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
×
\n
\n
\n
\n
\n
[x]
\n
\n \n ',t.$player=t.$container.querySelector(".artplayer-video-player"),t.$video=t.$container.querySelector(".artplayer-video"),t.$subtitle=t.$container.querySelector(".artplayer-subtitle"),t.$bottom=t.$container.querySelector(".artplayer-bottom"),t.$progress=t.$container.querySelector(".artplayer-progress"),t.$controls=t.$container.querySelector(".artplayer-controls"),t.$controlsLeft=t.$container.querySelector(".artplayer-controls-left"),t.$controlsRight=t.$container.querySelector(".artplayer-controls-right"),t.$layers=t.$container.querySelector(".artplayer-layers"),t.$danmu=t.$container.querySelector(".artplayer-danmu"),t.$loading=t.$container.querySelector(".artplayer-loading"),t.$notice=t.$container.querySelector(".artplayer-notice"),t.$noticeInner=t.$container.querySelector(".artplayer-notice-inner"),t.$mask=t.$container.querySelector(".artplayer-mask"),t.$setting=t.$container.querySelector(".artplayer-setting"),t.$settingInner=t.$container.querySelector(".artplayer-setting-inner"),t.$settingBody=t.$container.querySelector(".artplayer-setting-body"),t.$settingClose=t.$container.querySelector(".artplayer-setting-close"),t.$info=t.$container.querySelector(".artplayer-info"),t.$infoPanel=t.$container.querySelector(".artplayer-info-panel"),t.$infoClose=t.$container.querySelector(".artplayer-info-close")}}]),e}(),_={"zh-cn":{"About author":"关于作者","Video info":"视频统计信息",Close:"关闭","Video load failed":"视频加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕",Screenshot:"截图","Play speed":"播放速度","Aspect ratio":"画面比例",Default:"默认",Normal:"正常",Switch:"切换",Common:"常规","Hide setting":"隐藏设置","Show setting":"显示设置"},"zh-tw":{"About author":"關於作者","Video info":"影片統計訊息",Close:"關閉","Video load failed":"影片載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕",Screenshot:"截圖","Play speed":"播放速度","Aspect ratio":"畫面比例",Default:"默認",Normal:"正常",Switch:"切換",Common:"常規","Hide setting":"隱藏設置","Show setting":"顯示設置"}},I=function(){function n(t){var e=t.option;s(this,n),this.option=e,this.init()}return l(n,[{key:"init",value:function(){this.language=_[this.option.lang.toLowerCase()]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){_=t(_),this.init()}}]),n}(),V=function(){function e(t){s(this,e),this.art=t,this.init(),this.eventBind(),this.firstCanplay=!1,this.reconnectTime=0,this.maxReconnectTime=5}return l(e,[{key:"init",value:function(){var t=this.art,n=t.option,i=t.refs.$video;Object.keys(n.moreVideoAttr).forEach(function(t){var e=n.moreVideoAttr[t];i[t]=e}),i.volume=$(n.volume,0,1),i.poster=n.poster,i.autoplay=n.autoplay,i.src=n.url}},{key:"eventBind",value:function(){var e=this,t=this.art,n=t.option,i=t.events,r=i.proxy,o=i.hover,a=t.refs,s=a.$player,c=a.$video,l=t.i18n,u=t.notice;O.video.events.forEach(function(t){r(c,t,function(t){e.art.emit("video:".concat(t.type),t)})}),this.art.on("video:loadstart",function(){e.art.loading.show()}),this.art.on("video:loadeddata",function(){e.art.loading.hide()}),this.art.on("video:waiting",function(){e.art.loading.show()}),this.art.on("video:seeking",function(){e.art.loading.show()}),this.art.on("video:canplay",function(){e.firstCanplay||(e.firstCanplay=!0,e.art.emit("firstCanplay")),e.art.controls.show(),e.art.mask.show(),e.art.loading.hide(),n.autoplay&&e.play()}),this.art.on("video:playing",function(){e.art.isPlaying=!0,e.art.controls.hide(),e.art.mask.hide()}),this.art.on("video:pause",function(){e.art.isPlaying=!1,e.art.controls.show(),e.art.mask.show()}),this.art.on("video:ended",function(){e.art.isPlaying=!1,e.art.controls.show(),e.art.mask.show(),n.loop&&(e.seek(0),e.play())}),this.art.on("video:error",function(){e.reconnectTime\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n',playBig:'\n \n \n \n \n',play:'\n \n',pause:'\n \n',volume:'\n \n',volumeClose:'\n \n \n',subtitle:'\n \n \n',screenshot:'\n\t\n\t\t\n\t\n\n',danmu:'\r\n\t\r\n\r\n',setting:'\n \n \n'},F={},Object.keys(W).forEach(function(t){var e=document.createElement("div");e.innerHTML='').concat(W[t],"");var n=z(e.childNodes,1);F[t]=n[0]}),F),Y=function(){function e(t){s(this,e),this.option=t}return l(e,[{key:"apply",value:function(t){var e=this,n=this.option.$control,i=t.events.proxy,r=t.i18n,o=t.danmu;this.$danmu=k(n,U.danmu),L(this.$danmu,r.get("Hide danmu")),i(n,"click",function(){o.isOpen?(o.hide(),x(e.$danmu,"opacity","1"),L(e.$danmu,r.get("Show danmu"))):(o.show(),x(e.$danmu,"opacity","0.8"),L(e.$danmu,r.get("Hide danmu")))})}}]),e}(),Z=function(){function e(t){s(this,e),this.option=t}return l(e,[{key:"apply",value:function(t){this.art=t}}]),e}(),G=function(){function e(t){s(this,e),this.option=t}return l(e,[{key:"apply",value:function(t){this.art=t}}]),e}(),J=function(){function e(t){s(this,e),this.option=t}return l(e,[{key:"apply",value:function(t){this.art=t}}]),e}(),X=function(){function e(t){s(this,e),this.option=t}return l(e,[{key:"apply",value:function(t){var e=this,n=t.events.proxy,i=t.player,r=t.i18n;this.$play=k(this.option.$control,U.play),this.$pause=k(this.option.$control,U.pause),L(this.$play,r.get("Play")),L(this.$pause,r.get("Pause")),x(this.$pause,"display","none"),n(this.$play,"click",function(){i.play()}),n(this.$pause,"click",function(){i.pause()}),t.on("video:playing",function(){x(e.$play,"display","none"),x(e.$pause,"display","block")}),t.on("video:pause",function(){x(e.$play,"display","block"),x(e.$pause,"display","none")})}}]),e}(),K=function(){function e(t){s(this,e),this.option=t,this.isDroging=!1,this.getLoaded=this.getLoaded.bind(this),this.getPlayed=this.getPlayed.bind(this),this.set=this.set.bind(this)}return l(e,[{key:"apply",value:function(t){this.art=t,this.init()}},{key:"init",value:function(){var r=this,t=this.art,e=t.option,n=e.highlight,i=e.theme,o=t.events.proxy,a=t.refs.$video,s=t.player;k(this.option.$control,'\n
\n
\n
\n
\n
\n
\n
\n ')),this.$loaded=this.option.$control.querySelector(".art-progress-loaded"),this.$played=this.option.$control.querySelector(".art-progress-played"),this.$highlight=this.option.$control.querySelector(".art-progress-highlight"),this.$indicator=this.option.$control.querySelector(".art-progress-indicator"),this.$tip=this.option.$control.querySelector(".art-progress-tip"),this.set("loaded",this.getLoaded()),n.forEach(function(t){var e=Number(t.time)/a.duration;k(r.$highlight,'\n \n '))}),this.art.on("video:progress",function(){r.set("loaded",r.getLoaded())}),this.art.on("video:timeupdate",function(){r.set("played",r.getPlayed())}),this.art.on("video:ended",function(){r.set("played",1)}),o(this.option.$control,"mousemove",function(t){x(r.$tip,"display","block"),-1this.option.$control.clientWidth-r/2?x(this.$tip,"left","".concat(this.option.$control.clientWidth-r,"px")):x(this.$tip,"left","".concat(n-r/2,"px"))}},{key:"getPlayed",value:function(){var t=this.art.refs.$video;return t.currentTime/t.duration}},{key:"getLoaded",value:function(){var t=this.art.refs.$video;return t.buffered.length?t.buffered.end(t.buffered.length-1)/t.duration:0}},{key:"getPosFromEvent",value:function(t){var e=this.art.refs,n=e.$video,i=e.$progress,r=i.getBoundingClientRect().left,o=$(t.x-r,0,i.clientWidth),a=o/i.clientWidth*n.duration;return{second:a,time:C(a),width:o,percentage:$(o/i.clientWidth,0,1)}}},{key:"set",value:function(t,e){x(this["$".concat(t)],"width","".concat(100*e,"%")),"played"===t&&x(this.$indicator,"left","calc(".concat(100*e,"% - 6.5px)"))}}]),e}(),Q=function(){function e(t){s(this,e),this.option=t}return l(e,[{key:"apply",value:function(t){var e=this,n=this.option.$control,i=t.events.proxy,r=t.i18n,o=t.subtitle;this.$subtitle=k(n,U.subtitle),L(this.$subtitle,r.get("Hide subtitle")),i(n,"click",function(){o.isOpen?(o.hide(),x(e.$subtitle,"opacity","1"),L(e.$subtitle,r.get("Show subtitle"))):(o.show(),x(e.$subtitle,"opacity","0.8"),L(e.$subtitle,r.get("Hide subtitle")))})}}]),e}(),tt=function(){function e(t){s(this,e),this.option=t}return l(e,[{key:"apply",value:function(t){this.art=t,this.init()}},{key:"init",value:function(){var t=this;this.option.$control.innerHTML="00:00 / 00:00",this.art.on("video:canplay",function(){t.option.$control.innerHTML=t.getTime()}),this.art.on("video:timeupdate",function(){t.option.$control.innerHTML=t.getTime()}),this.art.on("video:seeking",function(){t.option.$control.innerHTML=t.getTime()})}},{key:"getTime",value:function(){var t=this.art.player;return"".concat(C(t.currentTime())," / ").concat(C(t.duration()))}}]),e}(),et=function(){function e(t){s(this,e),this.option=t,this.isDroging=!1}return l(e,[{key:"apply",value:function(t){this.art=t,this.init()}},{key:"init",value:function(){var e=this,t=this.art,n=t.events.proxy,i=t.player,r=t.i18n;this.$volume=k(this.option.$control,U.volume),this.$volumeClose=k(this.option.$control,U.volumeClose),this.$volumePanel=k(this.option.$control,'
'),this.$volumeHandle=k(this.$volumePanel,'
'),L(this.$volume,r.get("Mute")),x(this.$volumeClose,"display","none");var o=T("volume");this.setVolumeHandle(o),i.volume(o),n(this.$volume,"click",function(){x(e.$volume,"display","none"),x(e.$volumeClose,"display","block"),i.volume(0)}),n(this.$volumeClose,"click",function(){x(e.$volume,"display","block"),x(e.$volumeClose,"display","none"),i.volume(T("volume"))}),n(this.option.$control,"mouseenter",function(){e.$volumePanel.classList.add("art-volume-panel-hover"),setTimeout(function(){e.setVolumeHandle(i.volume())},200)}),n(this.option.$control,"mouseleave",function(){e.$volumePanel.classList.remove("art-volume-panel-hover")}),n(this.$volumePanel,"click",function(t){e.volumeChangeFromEvent(t)}),n(this.$volumeHandle,"mousedown",function(){e.isDroging=!0}),n(this.$volumeHandle,"mousemove",function(t){e.isDroging&&e.volumeChangeFromEvent(t)}),n(document,"mouseup",function(){e.isDroging&&(e.isDroging=!1)}),this.art.on("video:volumechange",function(){var t=i.volume();e.setVolumeHandle(t),0===t?(x(e.$volume,"display","none"),x(e.$volumeClose,"display","block")):(x(e.$volume,"display","block"),x(e.$volumeClose,"display","none"))})}},{key:"volumeChangeFromEvent",value:function(t){var e=this.art.player,n=this.$volumePanel.getBoundingClientRect(),i=n.left,r=n.width,o=this.$volumeHandle.getBoundingClientRect().width,a=$(t.x-i-o/2,0,r-o/2)/(r-o);e.volume(a)}},{key:"setVolumeHandle",value:function(){var t=0n.clientWidth-s/2?x(this.option.$control,"left","".concat(n.clientWidth-s,"px")):x(this.option.$control,"left","".concat(i-s/2,"px"))}}]),e}(),rt=function(){function e(t){s(this,e),this.option=t}return l(e,[{key:"apply",value:function(t){var e=this;this.art=t;var n=this.art,i=n.events.proxy,r=n.i18n,o=n.notice;this.$screenshot=k(this.option.$control,U.screenshot),L(this.$screenshot,r.get("Screenshot")),i(this.$screenshot,"click",function(){try{e.captureFrame()}catch(t){o.show(t)}})}},{key:"captureFrame",value:function(){var t=this.art.refs.$video,e=document.createElement("canvas");e.width=t.videoWidth,e.height=t.videoHeight,e.getContext("2d").drawImage(t,0,0);var n=e.toDataURL("image/png"),i=document.createElement("a");x(i,"display","none"),i.href=n,i.download="ArtPlayer_".concat(C(t.currentTime),".png"),document.body.appendChild(i),i.click(),document.body.removeChild(i)}}]),e}(),ot=function(){function e(t){s(this,e),this.option=t,this.playIndex=-1}return l(e,[{key:"apply",value:function(t){var o=this,e=this.option.$control,a=t.option,n=t.events,i=n.proxy,r=n.hover,s=t.player,c=a.quality.find(function(t){return t.default})||a.quality[0];this.playIndex=a.quality.indexOf(c);var l=k(e,'
'.concat(c.name,"
")),u=a.quality.map(function(t,e){return'
').concat(t.name,"
")}).join(""),h=k(e,'
'.concat(u,"
"));r(e,function(){e.classList.add("hover")},function(){e.classList.remove("hover")}),i(h,"click",function(t){var e=Number(t.target.dataset.index),n=a.quality[e],i=n.url,r=n.name;i&&r&&o.playIndex!==e&&(s.switch(i,r),l.innerHTML=r,o.playIndex=e)})}}]),e}(),at=0,st=function(){function n(t){var e=this;s(this,n),this.art=t,this.$map={},this.art.on("firstCanplay",function(){e.init(),e.mount()})}return l(n,[{key:"init",value:function(){var e=this;this.add(new K({name:"progress",disable:!1,position:"top",index:10})),this.add(new it({name:"thumbnails",disable:!this.art.option.thumbnails.url,position:"top",index:20})),this.add(new X({name:"playAndPause",disable:!1,position:"left",index:10})),this.add(new et({name:"volume",disable:!1,position:"left",index:20})),this.add(new tt({name:"time",disable:!1,position:"left",index:30})),this.add(new ot({name:"quality",disable:0===this.art.option.quality.length,position:"right",index:10})),this.add(new Y({name:"danmu",disable:!1,position:"right",index:20})),this.add(new rt({name:"screenshot",disable:!this.art.option.screenshot,position:"right",index:30})),this.add(new Q({name:"subtitle",disable:!this.art.option.subtitle.url,position:"right",index:40})),this.add(new nt({name:"setting",disable:!this.art.option.setting,position:"right",index:50})),this.add(new J({name:"pip",disable:!this.art.option.pip,position:"right",index:60})),this.add(new G({name:"fullscreenWeb",disable:!this.art.option.fullscreenWeb,position:"right",index:70})),this.add(new Z({name:"fullscreen",disable:!this.art.option.fullscreen,position:"right",index:80})),this.art.option.controls.forEach(function(t){e.add(t)})}},{key:"add",value:function(t){var e=t.option;if(e&&!e.disable){at++;var n=e.name||t.constructor.name.toLowerCase()||"control".concat(at),i=document.createElement("div");i.setAttribute("class","art-control art-control-".concat(n)),i.dataset.controlIndex=e.index||at,e.$control=i,this.commonMethod(t),(this.$map[e.position]||(this.$map[e.position]=[])).push(i),t.apply&&t.apply(this.art),this[n]=t}}},{key:"mount",value:function(){var t=this,e=this.art.refs,n=e.$progress,i=e.$controlsLeft,r=e.$controlsRight;Object.keys(this.$map).forEach(function(e){t.$map[e].sort(function(t,e){return Number(t.dataset.controlIndex)-Number(e.dataset.controlIndex)}).forEach(function(t){switch(e){case"top":k(n,t);break;case"left":k(i,t);break;case"right":k(r,t)}})})}},{key:"commonMethod",value:function(t){var e=this;Object.defineProperty(t,"hide",{value:function(){x(t.option.$control,"display","none"),e.art.emit("control:hide",t.option.$control)}}),Object.defineProperty(t,"show",{value:function(){x(t.option.$control,"display","block"),e.art.emit("control:show",t.option.$control)}})}},{key:"show",value:function(){this.art.refs.$player.classList.add("artplayer-controls-show")}},{key:"hide",value:function(){this.art.refs.$player.classList.remove("artplayer-controls-show")}}]),n}();function ct(t){var e=t.option,n=t.i18n,i=t.player,r=t.contextmenu;return{disable:!e.playbackRate,name:"playbackRate",index:10,html:"\n ".concat(n.get("Play speed"),':\n 0.5\n 0.75\n ').concat(n.get("Normal"),'\n 1.25\n 1.5\n 2.0\n '),click:function(t){var e=t.target,n=e.dataset.rate;n&&(i.playbackRate(Number(n)),M(e).forEach(function(t){return t.classList.remove("current")}),e.classList.add("current"),r.hide())}}}function lt(t){var e=t.option,n=t.i18n,i=t.player,r=t.contextmenu;return{disable:!e.aspectRatio,name:"aspectRatio",index:20,html:"\n ".concat(n.get("Aspect ratio"),':\n ').concat(n.get("Default"),'\n 4:3\n 16:9\n '),click:function(t){var e=t.target,n=e.dataset.ratio;n&&(i.aspectRatio(n.split(":")),M(e).forEach(function(t){return t.classList.remove("current")}),e.classList.add("current"),r.hide())}}}function ut(t){return{disable:!1,name:"info",index:30,html:t.i18n.get("Video info"),click:function(){t.info.show(),t.contextmenu.hide()}}}var ht={disable:!1,name:"version",index:40,html:'ArtPlayer 1.0.0'};function dt(t){return{disable:!1,name:"close",index:50,html:t.i18n.get("Close"),click:function(){t.contextmenu.hide()}}}var ft=0,pt=function(){function e(t){s(this,e),this.art=t,this.init()}return l(e,[{key:"init",value:function(){var e=this,t=this.art,n=t.option,i=t.refs,r=t.events.proxy;n.contextmenu.push(ct,lt,ut,ht,dt),r(i.$player,"contextmenu",function(t){t.preventDefault(),e.art.isFocus=!0,i.$contextmenu||e.creatMenu(),e.show(),e.setPos(t)}),r(i.$player,"click",function(t){i.$contextmenu&&!t.path.includes(i.$contextmenu)&&e.hide()})}},{key:"creatMenu",value:function(){var i=this,t=this.art,e=t.option,n=t.refs,r=t.events.proxy;n.$contextmenu=document.createElement("div"),n.$contextmenu.classList.add("artplayer-contextmenu"),e.contextmenu.filter(function(t){return!t.disable}).map(function(t){ft++;var e="function"==typeof t?t(i.art):t,n=document.createElement("div");return n.dataset.artMenuId=e.index||ft,n.setAttribute("class","art-menu art-menu-".concat(e.name||ft)),k(n,e.html),S(n,e.style||{}),e.click&&r(n,"click",function(t){t.preventDefault(),e.click.call(i,t),i.art.emit("contextmenu:click",n)}),i["$".concat(e.name||ft)]=n}).sort(function(t,e){return Number(t.dataset.artMenuId)-Number(e.dataset.artMenuId)}).forEach(function(t){k(n.$contextmenu,t)}),k(n.$player,n.$contextmenu)}},{key:"setPos",value:function(t){var e=this.art.refs,n=t.clientX,i=t.clientY,r=e.$player.getBoundingClientRect(),o=r.height,a=r.width,s=r.left,c=r.top,l=e.$contextmenu.getBoundingClientRect(),u=l.height,h=l.width,d=n-s,f=i-c;s+a\n
Player version:
\n
1.0.0
\n \n '),t.push('\n
\n
Video url:
\n
\n
\n '),t.push('\n
\n
Video type:
\n
\n
\n '),t.push('\n
\n
Video size:
\n
\n
\n '),t.push('\n
\n
Video volume:
\n
\n
\n '),t.push('\n
\n
Video time:
\n
\n
\n '),t.push('\n
\n
Video duration:
\n
\n
\n '),t.push('\n
\n
Video resolution:
\n
\n x \n
\n
\n '),t.join("")}},{key:"getHeader",value:function(){var t=this.art.refs,e=t.$infoPanel,n=t.$video.src,i=Array.from(e.querySelectorAll("[data-head]"));i.forEach(function(t){t.innerHTML="loading..."}),fetch(n,{method:"HEAD"}).then(function(n){i.forEach(function(t){var e=n.headers.get(t.dataset.head);t.innerHTML=void 0!==e?e:"unknown"})}).catch(function(){i.forEach(function(t){t.innerHTML="unknown"})})}},{key:"readInfo",value:function(){var t=this.art.refs,e=t.$infoPanel,n=t.$video;Array.from(e.querySelectorAll("[data-video]")).forEach(function(t){var e=n[t.dataset.video];t.innerHTML=void 0!==e?e:"unknown"})}},{key:"loop",value:function(){var t=this;this.readInfo(),this.timer=setTimeout(function(){t.readInfo(),t.loop()},1e3)}},{key:"hide",value:function(){var t=this.art.refs.$info;x(t,"display","none"),clearTimeout(this.timer),this.art.emit("info:hide",t)}}]),e}(),mt=function(){function n(t){s(this,n),this.art=t,this.isOpen=!0;var e=this.art.option.subtitle.url;e&&(this.checkExt(e),this.init())}return l(n,[{key:"init",value:function(){var i=this,t=this.art,e=t.events.proxy,n=t.option.subtitle,r=t.refs,o=r.$video,a=r.$subtitle;S(a,n.style||{});var s=document.createElement("track");s.default=!0,s.kind="metadata",this.load(n.url).then(function(t){if(s.src=t,o.appendChild(s),i.art.refs.$track=s,o.textTracks&&o.textTracks[0]){var n=z(o.textTracks,1)[0];e(n,"cuechange",function(){var t=z(n.activeCues,1)[0];if(a.innerHTML="",t){var e=document.createElement("div");e.appendChild(t.getCueAsHTML()),a.innerHTML=e.innerHTML.split(/\r?\n/).map(function(t){return"

".concat(t,"

")}).join("")}i.art.emit("subtitle:update",a)})}})}},{key:"load",value:function(e){var n,i=this;return fetch(e).then(function(t){return n=t.headers.get("Content-Type"),t.text()}).then(function(t){return/x-subrip/gi.test(n)?i.srtToVtt(t):e}).catch(function(t){throw t})}},{key:"srtToVtt",value:function(t){var e="WEBVTT \r\n\r\n".concat(t.replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").concat("\r\n\r\n"));return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}},{key:"checkExt",value:function(t){var e=function t(e){return e.includes("?")?t(e.split("?")[0]):e.includes("#")?t(e.split("#")[0]):e.trim().toLowerCase().split(".").pop()}(t);w("vtt"===e||"srt"===e,"'subtitle.url' option require 'vtt' or 'srt' format, but got '".concat(e,"'."))}},{key:"show",value:function(){var t=this.art,e=t.refs.$subtitle,n=t.i18n,i=t.notice;x(e,"display","block"),this.isOpen=!0,i.show(n.get("Show subtitle")),this.art.emit("subtitle:show",e)}},{key:"hide",value:function(){var t=this.art,e=t.refs.$subtitle,n=t.i18n,i=t.notice;x(e,"display","none"),this.isOpen=!1,i.show(n.get("Hide subtitle")),this.art.emit("subtitle:hide",e)}},{key:"switch",value:function(e){var n=this,i=this.art.refs.$track;this.checkExt(e),w(i,"You need to initialize the subtitle option first."),this.load(e).then(function(t){e!==t&&(i.src=t,n.art.emit("subtitle:switch",e))})}}]),n}(),gt=function(){function e(t){s(this,e),this.art=t,this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this)}return l(e,[{key:"proxy",value:function(e,t,n){var i=this,r=3'.concat(this.art.i18n.get(i),"")),k(r,'
'),e.$setting=r,this.$settings.push(r),t.apply&&t.apply(this.art),this[n]=t}}},{key:"mount",value:function(){var e=this;this.$settings.sort(function(t,e){return Number(t.dataset.settingIndex)-Number(e.dataset.settingIndex)}).forEach(function(t){k(e.art.refs.$settingBody,t)})}},{key:"show",value:function(){var t=this.art,e=t.refs.$setting,n=t.i18n,i=t.notice;x(e,"display","flex"),this.isOpen=!0,i.show(n.get("Show setting")),this.art.emit("setting:show",e)}},{key:"hide",value:function(){var t=this.art,e=t.refs.$setting,n=t.i18n,i=t.notice;x(e,"display","none"),this.isOpen=!1,i.show(n.get("Hide setting")),this.art.emit("setting:hide",e)}}]),e}(),Et=0,Mt=[],At=function(t){function n(t){var e;return s(this,n),(e=f(this,p(n).call(this))).emit("init:start"),e.option=function t(){for(var e=function(t){return null!==t&&"object"===h(t)},n={},i=arguments.length,r=new Array(i),o=0;o\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
×
\n
\n
\n
\n
\n
[x]
\n
\n \n ',n.$player=n.$container.querySelector(".artplayer-video-player"),n.$video=n.$container.querySelector(".artplayer-video"),n.$subtitle=n.$container.querySelector(".artplayer-subtitle"),n.$bottom=n.$container.querySelector(".artplayer-bottom"),n.$progress=n.$container.querySelector(".artplayer-progress"),n.$controls=n.$container.querySelector(".artplayer-controls"),n.$controlsLeft=n.$container.querySelector(".artplayer-controls-left"),n.$controlsRight=n.$container.querySelector(".artplayer-controls-right"),n.$layers=n.$container.querySelector(".artplayer-layers"),n.$danmu=n.$container.querySelector(".artplayer-danmu"),n.$loading=n.$container.querySelector(".artplayer-loading"),n.$notice=n.$container.querySelector(".artplayer-notice"),n.$noticeInner=n.$container.querySelector(".artplayer-notice-inner"),n.$mask=n.$container.querySelector(".artplayer-mask"),n.$setting=n.$container.querySelector(".artplayer-setting"),n.$settingInner=n.$container.querySelector(".artplayer-setting-inner"),n.$settingBody=n.$container.querySelector(".artplayer-setting-body"),n.$settingClose=n.$container.querySelector(".artplayer-setting-close"),n.$info=n.$container.querySelector(".artplayer-info"),n.$infoPanel=n.$container.querySelector(".artplayer-info-panel"),n.$infoClose=n.$container.querySelector(".artplayer-info-close")},A={"zh-cn":{"About author":"关于作者","Video info":"视频统计信息",Close:"关闭","Video load failed":"视频加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕",Screenshot:"截图","Play speed":"播放速度","Aspect ratio":"画面比例",Default:"默认",Normal:"正常","Switch video":"切换","Switch subtitle":"切换字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"网页全屏","Exit web fullscreen":"退出网页全屏",Common:"常规","Hide setting":"隐藏设置","Show setting":"显示设置"},"zh-tw":{"About author":"關於作者","Video info":"影片統計訊息",Close:"關閉","Video load failed":"影片載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕",Screenshot:"截圖","Play speed":"播放速度","Aspect ratio":"畫面比例",Default:"默認",Normal:"正常","Switch video":"切換","Switch subtitle":"切換字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"網頁全屏","Exit web fullscreen":"退出網頁全屏",Common:"常規","Hide setting":"隱藏設置","Show setting":"顯示設置"}},M=function(){function n(t){var e=t.option;R(this,n),this.option=e,this.init()}return c(n,[{key:"init",value:function(){this.language=A[this.option.lang.toLowerCase()]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){A=t(A),this.init()}}]),n}();function V(s,t){Object.defineProperty(t,"volume",{value:function(t){var e,n,i,r=s.refs.$video,o=s.i18n,a=s.notice;return void 0!==t&&(r.volume=j(t,0,1),a.show("".concat(o.get("Volume"),": ").concat(parseInt(100*r.volume))),0!==r.volume&&(e="volume",n=r.volume,i=Object.assign({},x(),v({},e,n)),localStorage.setItem("artplayer_settings",JSON.stringify(i))),s.emit("volume",r.volume)),r.volume||0}})}var O=function t(e){var n,i,r,o,a,s,c,l,u,d,h,f,p,v,y,m,g,b,w,$,x,k,S,E,C,L,T,P,A,M,O;R(this,t),this.reconnectTime=0,this.maxReconnectTime=5,i=(n=e).option,r=n.refs.$video,Object.keys(i.moreVideoAttr).forEach(function(t){r[t]=i.moreVideoAttr[t]}),r.volume=j(i.volume,0,1),r.poster=i.poster,r.autoplay=i.autoplay,r.src=i.url,a=this,s=(o=e).option,c=o.events.proxy,l=o.refs,u=l.$player,d=l.$video,h=o.i18n,f=o.notice,p=!1,c(d,"click",function(){a.toggle()}),z.video.events.forEach(function(t){c(d,t,function(t){o.emit("video:".concat(t.type),t)})}),o.on("video:loadstart",function(){o.loading.show()}),o.on("video:loadeddata",function(){o.loading.hide()}),o.on("video:waiting",function(){o.loading.show()}),o.on("video:seeking",function(){o.loading.show()}),o.on("video:canplay",function(){p||(p=!0,o.emit("firstCanplay")),o.controls.show(),o.mask.show(),o.loading.hide(),s.autoplay&&a.play()}),o.on("video:playing",function(){o.isPlaying=!0,o.controls.hide(),o.mask.hide()}),o.on("video:pause",function(){o.isPlaying=!1,o.controls.show(),o.mask.show()}),o.on("video:ended",function(){o.isPlaying=!1,o.controls.show(),o.mask.show(),s.loop&&(a.seek(0),a.play())}),o.on("video:error",function(){a.reconnectTime\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n',playBig:'\n \n \n \n \n',play:'\n \n',pause:'\n \n',volume:'\n \n',volumeClose:'\n \n \n',subtitle:'\n \n \n',screenshot:'\n\t\n\t\t\n\t\n\n',danmu:'\r\n\t\r\n\r\n',setting:'\n \n \n',fullscreen:'\r\n\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n',fullscreenWeb:'\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\r\n'},U={},Object.keys(N).forEach(function(t){var e=document.createElement("div");e.innerHTML='').concat(N[t],"");var n=D(e.childNodes,1);U[t]=n[0]}),U),Z=function(){function e(t){R(this,e),this.option=t}return c(e,[{key:"apply",value:function(t,e){var n=this,i=t.events.proxy,r=t.i18n,o=t.danmu;this.$danmu=w(e,Y.danmu),k(this.$danmu,r.get("Hide danmu")),i(e,"click",function(){o.isOpen?(o.hide(),H(n.$danmu,"opacity","1"),k(n.$danmu,r.get("Show danmu"))):(o.show(),H(n.$danmu,"opacity","0.8"),k(n.$danmu,r.get("Hide danmu")))})}}]),e}(),G=e(function(t){var o,e,n,i,r,a;o="undefined"!=typeof window&&void 0!==window.document?window.document:{},e=t.exports,n="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,i=function(){for(var t,e=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n=0,i=e.length,r={};n\n
\n
\n
\n
\n
\n \n ')),this.$loaded=e.querySelector(".art-progress-loaded"),this.$played=e.querySelector(".art-progress-played"),this.$highlight=e.querySelector(".art-progress-highlight"),this.$indicator=e.querySelector(".art-progress-indicator"),this.$tip=e.querySelector(".art-progress-tip"),this.set("loaded",this.getLoaded()),i.forEach(function(t){var e=Number(t.time)/s.duration;w(r.$highlight,''))}),this.art.on("video:progress",function(){r.set("loaded",r.getLoaded())}),this.art.on("video:timeupdate",function(){r.set("played",r.getPlayed())}),this.art.on("video:ended",function(){r.set("played",1)}),a(e,"mousemove",function(t){H(r.$tip,"display","block"),-1this.$control.clientWidth-r/2?H(this.$tip,"left","".concat(this.$control.clientWidth-r,"px")):H(this.$tip,"left","".concat(n-r/2,"px"))}},{key:"getPlayed",value:function(){var t=this.art.refs.$video;return t.currentTime/t.duration}},{key:"getLoaded",value:function(){var t=this.art.refs.$video;return t.buffered.length?t.buffered.end(t.buffered.length-1)/t.duration:0}},{key:"getPosFromEvent",value:function(t){var e=this.art.refs,n=e.$video,i=e.$progress,r=i.getBoundingClientRect().left,o=j(t.x-r,0,i.clientWidth),a=o/i.clientWidth*n.duration;return{second:a,time:q(a),width:o,percentage:j(o/i.clientWidth,0,1)}}},{key:"set",value:function(t,e){H(this["$".concat(t)],"width","".concat(100*e,"%")),"played"===t&&H(this.$indicator,"left","calc(".concat(100*e,"% - 6.5px)"))}}]),e}(),et=function(){function e(t){R(this,e),this.option=t}return c(e,[{key:"apply",value:function(t,e){var n=this,i=t.events.proxy,r=t.i18n,o=t.subtitle;this.$subtitle=w(e,Y.subtitle),k(this.$subtitle,r.get("Hide subtitle")),i(e,"click",function(){o.isOpen?(o.hide(),H(n.$subtitle,"opacity","1"),k(n.$subtitle,r.get("Show subtitle")),t.emit("subtitle:hide")):(o.show(),H(n.$subtitle,"opacity","0.8"),k(n.$subtitle,r.get("Hide subtitle")),t.emit("subtitle:show"))})}}]),e}(),nt=function(){function e(t){R(this,e),this.option=t}return c(e,[{key:"apply",value:function(t,e){var n=this;this.art=t,(this.$control=e).innerHTML="00:00 / 00:00",this.art.on("video:canplay",function(){n.getTime()}),this.art.on("video:timeupdate",function(){n.getTime()}),this.art.on("video:seeking",function(){n.getTime()})}},{key:"getTime",value:function(){var t=this.art.player;this.$control.innerHTML="".concat(q(t.currentTime())," / ").concat(q(t.duration()))}}]),e}(),it=function(){function e(t){R(this,e),this.option=t,this.isDroging=!1}return c(e,[{key:"apply",value:function(t,e){this.art=t,this.$control=e,this.init()}},{key:"init",value:function(){var e=this,t=this.art,n=t.events.proxy,i=t.player,r=t.i18n;this.$volume=w(this.$control,Y.volume),this.$volumeClose=w(this.$control,Y.volumeClose),this.$volumePanel=w(this.$control,'
'),this.$volumeHandle=w(this.$volumePanel,'
'),k(this.$volume,r.get("Mute")),H(this.$volumeClose,"display","none");var o=x("volume");this.setVolumeHandle(o),i.volume(o),n(this.$volume,"click",function(){H(e.$volume,"display","none"),H(e.$volumeClose,"display","block"),i.volume(0)}),n(this.$volumeClose,"click",function(){H(e.$volume,"display","block"),H(e.$volumeClose,"display","none"),i.volume(x("volume"))}),n(this.$control,"mouseenter",function(){e.$volumePanel.classList.add("art-volume-panel-hover"),setTimeout(function(){e.setVolumeHandle(i.volume())},200)}),n(this.$control,"mouseleave",function(){e.$volumePanel.classList.remove("art-volume-panel-hover")}),n(this.$volumePanel,"click",function(t){e.volumeChangeFromEvent(t)}),n(this.$volumeHandle,"mousedown",function(){e.isDroging=!0}),n(this.$volumeHandle,"mousemove",function(t){e.isDroging&&e.volumeChangeFromEvent(t)}),n(document,"mouseup",function(){e.isDroging&&(e.isDroging=!1)}),this.art.on("video:volumechange",function(){var t=i.volume();e.setVolumeHandle(t),0===t?(H(e.$volume,"display","none"),H(e.$volumeClose,"display","block")):(H(e.$volume,"display","block"),H(e.$volumeClose,"display","none"))})}},{key:"volumeChangeFromEvent",value:function(t){var e=this.art.player,n=this.$volumePanel.getBoundingClientRect(),i=n.left,r=n.width,o=this.$volumeHandle.getBoundingClientRect().width,a=j(t.x-i-o/2,0,r-o/2)/(r-o);e.volume(a)}},{key:"setVolumeHandle",value:function(){var t=0n.clientWidth-s/2?H(this.$control,"left","".concat(n.clientWidth-s,"px")):H(this.$control,"left","".concat(i-s/2,"px"))}}]),e}(),at=function(){function e(t){R(this,e),this.option=t}return c(e,[{key:"apply",value:function(t,e){var n=this;this.art=t;var i=this.art,r=i.events.proxy,o=i.i18n,a=i.notice;this.$screenshot=w(e,Y.screenshot),k(this.$screenshot,o.get("Screenshot")),r(this.$screenshot,"click",function(){try{n.captureFrame(),t.emit("screenshot")}catch(t){a.show(t)}})}},{key:"captureFrame",value:function(){var t=this.art.refs.$video,e=document.createElement("canvas");e.width=t.videoWidth,e.height=t.videoHeight,e.getContext("2d").drawImage(t,0,0);var n=e.toDataURL("image/png"),i=document.createElement("a");H(i,"display","none"),i.href=n,i.download="ArtPlayer_".concat(q(t.currentTime),".png"),document.body.appendChild(i),i.click(),document.body.removeChild(i)}}]),e}(),st=function(){function e(t){R(this,e),this.option=t,this.playIndex=-1}return c(e,[{key:"apply",value:function(t,e){var o=this,a=t.option,n=t.events,i=n.proxy,r=n.hover,s=t.player,c=a.quality.find(function(t){return t.default})||a.quality[0];this.playIndex=a.quality.indexOf(c);var l=w(e,'
'.concat(c.name,"
")),u=a.quality.map(function(t,e){return'
').concat(t.name,"
")}).join(""),d=w(e,'
'.concat(u,"
"));r(e,function(){e.classList.add("hover")},function(){e.classList.remove("hover")}),i(d,"click",function(t){var e=Number(t.target.dataset.index),n=a.quality[e],i=n.url,r=n.name;i&&r&&o.playIndex!==e&&(s.switch(i,r),l.innerHTML=r,o.playIndex=e)})}}]),e}(),ct=0,lt=function(){function n(t){var e=this;R(this,n),this.art=t,this.$map={},this.art.on("firstCanplay",function(){e.init(),e.mount()})}return c(n,[{key:"init",value:function(){var e=this;this.add(new tt({name:"progress",disable:!1,position:"top",index:10})),this.add(new ot({name:"thumbnails",disable:!this.art.option.thumbnails.url,position:"top",index:20})),this.add(new Q({name:"playAndPause",disable:!1,position:"left",index:10})),this.add(new it({name:"volume",disable:!1,position:"left",index:20})),this.add(new nt({name:"time",disable:!1,position:"left",index:30})),this.add(new st({name:"quality",disable:0===this.art.option.quality.length,position:"right",index:10})),this.add(new Z({name:"danmu",disable:!1,position:"right",index:20})),this.add(new at({name:"screenshot",disable:!this.art.option.screenshot,position:"right",index:30})),this.add(new et({name:"subtitle",disable:!this.art.option.subtitle.url,position:"right",index:40})),this.add(new rt({name:"setting",disable:!this.art.option.setting,position:"right",index:50})),this.add(new X({name:"pip",disable:!this.art.option.pip,position:"right",index:60})),this.add(new K({name:"fullscreenWeb",disable:!this.art.option.fullscreenWeb,position:"right",index:70})),this.add(new J({name:"fullscreen",disable:!this.art.option.fullscreen,position:"right",index:80})),this.art.option.controls.forEach(function(t){e.add(t)})}},{key:"add",value:function(t){var e=t.option;if(e&&!e.disable){ct++;var n=e.name||t.constructor.name.toLowerCase()||"control".concat(ct),i=document.createElement("div");i.setAttribute("class","art-control art-control-".concat(n)),i.dataset.controlIndex=e.index||ct,this.commonMethod(t),(this.$map[e.position]||(this.$map[e.position]=[])).push(i),t.apply&&t.apply(this.art,i),this[n]=t}}},{key:"mount",value:function(){var t=this,e=this.art.refs,n=e.$progress,i=e.$controlsLeft,r=e.$controlsRight;Object.keys(this.$map).forEach(function(e){t.$map[e].sort(function(t,e){return Number(t.dataset.controlIndex)-Number(e.dataset.controlIndex)}).forEach(function(t){switch(e){case"top":w(n,t);break;case"left":w(i,t);break;case"right":w(r,t)}})})}},{key:"commonMethod",value:function(t){var e=this;Object.defineProperty(t,"hide",{value:function(){H(t.option.$control,"display","none"),e.art.emit("control:hide",t.option.$control)}}),Object.defineProperty(t,"show",{value:function(){H(t.option.$control,"display","block"),e.art.emit("control:show",t.option.$control)}})}},{key:"show",value:function(){this.art.refs.$player.classList.add("artplayer-controls-show")}},{key:"hide",value:function(){this.art.refs.$player.classList.remove("artplayer-controls-show")}}]),n}();function ut(t){var e=t.option,n=t.i18n,i=t.player,r=t.contextmenu;return{disable:!e.playbackRate,name:"playbackRate",index:10,html:"\n ".concat(n.get("Play speed"),':\n 0.5\n 0.75\n ').concat(n.get("Normal"),'\n 1.25\n 1.5\n 2.0\n '),click:function(t){var e=t.target,n=e.dataset.rate;n&&(i.playbackRate(Number(n)),F(e).forEach(function(t){return t.classList.remove("current")}),e.classList.add("current"),r.hide())}}}function dt(t){var e=t.option,n=t.i18n,i=t.player,r=t.contextmenu;return{disable:!e.aspectRatio,name:"aspectRatio",index:20,html:"\n ".concat(n.get("Aspect ratio"),':\n ').concat(n.get("Default"),'\n 4:3\n 16:9\n '),click:function(t){var e=t.target,n=e.dataset.ratio;n&&(i.aspectRatio(n.split(":")),F(e).forEach(function(t){return t.classList.remove("current")}),e.classList.add("current"),r.hide())}}}function ht(t){return{disable:!1,name:"info",index:30,html:t.i18n.get("Video info"),click:function(){t.info.show(),t.contextmenu.hide()}}}var ft={disable:!1,name:"version",index:40,html:'ArtPlayer 1.0.0'};function pt(t){return{disable:!1,name:"close",index:50,html:t.i18n.get("Close"),click:function(){t.contextmenu.hide()}}}var vt=0,yt=function(){function e(t){R(this,e),this.art=t,this.init()}return c(e,[{key:"init",value:function(){var e=this,t=this.art,n=t.option,i=t.refs,r=t.events.proxy;n.contextmenu.push(ut,dt,ht,ft,pt),r(i.$player,"contextmenu",function(t){t.preventDefault(),i.$contextmenu||e.creatMenu(),e.show(),e.setPos(t)}),r(i.$player,"click",function(t){i.$contextmenu&&!t.path.includes(i.$contextmenu)&&e.hide()})}},{key:"creatMenu",value:function(){var i=this,t=this.art,e=t.option,n=t.refs,r=t.events.proxy;n.$contextmenu=document.createElement("div"),n.$contextmenu.classList.add("artplayer-contextmenu"),e.contextmenu.filter(function(t){return!t.disable}).map(function(t){vt++;var e="function"==typeof t?t(i.art):t,n=document.createElement("div");return n.dataset.artMenuId=e.index||vt,n.setAttribute("class","art-menu art-menu-".concat(e.name||vt)),w(n,e.html),$(n,e.style||{}),e.click&&r(n,"click",function(t){t.preventDefault(),e.click.call(i,t),i.art.emit("contextmenu:click",n)}),i["$".concat(e.name||vt)]=n}).sort(function(t,e){return Number(t.dataset.artMenuId)-Number(e.dataset.artMenuId)}).forEach(function(t){w(n.$contextmenu,t)}),w(n.$player,n.$contextmenu)}},{key:"setPos",value:function(t){var e=this.art.refs,n=t.clientX,i=t.clientY,r=e.$player.getBoundingClientRect(),o=r.height,a=r.width,s=r.left,c=r.top,l=e.$contextmenu.getBoundingClientRect(),u=l.height,d=l.width,h=n-s,f=i-c;s+a\n
Player version:
\n
1.0.0
\n \n '),t.push('\n
\n
Video url:
\n
\n
\n '),t.push('\n
\n
Video type:
\n
\n
\n '),t.push('\n
\n
Video size:
\n
\n
\n '),t.push('\n
\n
Video volume:
\n
\n
\n '),t.push('\n
\n
Video time:
\n
\n
\n '),t.push('\n
\n
Video duration:
\n
\n
\n '),t.push('\n
\n
Video resolution:
\n
\n x \n
\n
\n '),t.join("")}},{key:"getHeader",value:function(){var t=this.art.refs,e=t.$infoPanel,n=t.$video.src,i=Array.from(e.querySelectorAll("[data-head]"));i.forEach(function(t){t.innerHTML="loading..."}),fetch(n,{method:"HEAD"}).then(function(n){i.forEach(function(t){var e=n.headers.get(t.dataset.head);t.innerHTML=void 0!==e?e:"unknown"})}).catch(function(){i.forEach(function(t){t.innerHTML="unknown"})})}},{key:"readInfo",value:function(){var t=this.art.refs,e=t.$infoPanel,n=t.$video;Array.from(e.querySelectorAll("[data-video]")).forEach(function(t){var e=n[t.dataset.video];t.innerHTML=void 0!==e?e:"unknown"})}},{key:"loop",value:function(){var t=this;this.readInfo(),this.timer=setTimeout(function(){t.readInfo(),t.loop()},1e3)}},{key:"hide",value:function(){var t=this.art.refs.$info;H(t,"display","none"),clearTimeout(this.timer),this.art.emit("info:hide",t)}}]),e}(),bt=function(){function n(t){R(this,n),this.art=t,this.isOpen=!0;var e=this.art.option.subtitle.url;e&&(this.checkExt(e),this.init())}return c(n,[{key:"init",value:function(){var i=this,t=this.art,e=t.events.proxy,n=t.option.subtitle,r=t.refs,o=r.$video,a=r.$subtitle;$(a,n.style||{});var s=document.createElement("track");s.default=!0,s.kind="metadata",this.load(n.url).then(function(t){if(s.src=t,o.appendChild(s),i.art.refs.$track=s,o.textTracks&&o.textTracks[0]){var n=D(o.textTracks,1)[0];e(n,"cuechange",function(){var t=D(n.activeCues,1)[0];if(a.innerHTML="",t){var e=document.createElement("div");e.appendChild(t.getCueAsHTML()),a.innerHTML=e.innerHTML.split(/\r?\n/).map(function(t){return"

".concat(t,"

")}).join("")}i.art.emit("subtitle:update",a)})}})}},{key:"load",value:function(e){var n,i=this,r=this.art.notice;return fetch(e).then(function(t){return n=t.headers.get("Content-Type"),t.text()}).then(function(t){return/x-subrip/gi.test(n)?i.srtToVtt(t):e}).catch(function(t){throw r.show(t),t})}},{key:"srtToVtt",value:function(t){var e="WEBVTT \r\n\r\n".concat(t.replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").concat("\r\n\r\n"));return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}},{key:"checkExt",value:function(t){var e=function t(e){return e.includes("?")?t(e.split("?")[0]):e.includes("#")?t(e.split("#")[0]):e.trim().toLowerCase().split(".").pop()}(t);b("vtt"===e||"srt"===e,"'subtitle.url' option require 'vtt' or 'srt' format, but got '".concat(e,"'."))}},{key:"show",value:function(){var t=this.art,e=t.refs.$subtitle,n=t.i18n,i=t.notice;H(e,"display","block"),this.isOpen=!0,i.show(n.get("Show subtitle")),this.art.emit("subtitle:show",e)}},{key:"hide",value:function(){var t=this.art,e=t.refs.$subtitle,n=t.i18n,i=t.notice;H(e,"display","none"),this.isOpen=!1,i.show(n.get("Hide subtitle")),this.art.emit("subtitle:hide",e)}},{key:"switch",value:function(e){var n=this,i=1'.concat(this.art.i18n.get(i),"")),w(r,'
'),this.$settings.push(r),t.apply&&t.apply(this.art,r),this[n]=t}}},{key:"mount",value:function(){var e=this;this.$settings.sort(function(t,e){return Number(t.dataset.settingIndex)-Number(e.dataset.settingIndex)}).forEach(function(t){w(e.art.refs.$settingBody,t)})}},{key:"show",value:function(){var t=this.art,e=t.refs.$setting,n=t.i18n,i=t.notice;H(e,"display","flex"),this.isOpen=!0,i.show(n.get("Show setting")),this.art.emit("setting:show",e)}},{key:"hide",value:function(){var t=this.art,e=t.refs.$setting,n=t.i18n,i=t.notice;H(e,"display","none"),this.isOpen=!1,i.show(n.get("Hide setting")),this.art.emit("setting:hide",e)}}]),e}(),At=0,Mt=[],Ot=function(t){function n(t){var e;return R(this,n),(e=h(this,f(n).call(this))).emit("init:start"),e.option=function t(){for(var e=function(t){return null!==t&&"object"===d(t)},n={},i=arguments.length,r=new Array(i),o=0;o {\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\nexport function debounce(func, wait, scope) {\n let timeout;\n return function fn() {\n const context = scope || this;\n const args = arguments;\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\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
\n
\n
\n
\n
\n
\n
\n
×
\n
\n
\n
\n
\n
[x]
\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 video': '切换',\n 'Switch subtitle': '切换字幕',\n 'Fullscreen': '全屏',\n 'Exit fullscreen': '退出全屏',\n 'Web fullscreen': '网页全屏',\n 'Exit web fullscreen': '退出网页全屏',\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 video': '切換',\n 'Switch subtitle': '切換字幕',\n 'Fullscreen': '全屏',\n 'Exit fullscreen': '退出全屏',\n 'Web fullscreen': '網頁全屏',\n 'Exit web fullscreen': '退出網頁全屏',\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 } from '../utils';\n\nexport default function attrInit(art) {\n const { option, refs: { $video } } = art;\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n $video.volume = clamp(option.volume, 0, 1);\n $video.poster = option.poster;\n $video.autoplay = option.autoplay;\n $video.src = option.url;\n}\n","import config from '../config';\nimport { sleep } from '../utils';\n\nexport default function eventInit(art, player) {\n const { option, events: { proxy }, refs: { $player, $video }, i18n, notice } = art;\n let firstCanplay = false;\n\n proxy($video, 'click', () => {\n player.toggle();\n });\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n art.on('video:loadstart', () => {\n art.loading.show();\n });\n\n art.on('video:loadeddata', () => {\n art.loading.hide();\n });\n\n art.on('video:waiting', () => {\n art.loading.show();\n });\n\n art.on('video:seeking', () => {\n art.loading.show();\n });\n\n art.on('video:canplay', () => {\n if (!firstCanplay) {\n firstCanplay = true;\n art.emit('firstCanplay');\n }\n\n art.controls.show();\n art.mask.show();\n art.loading.hide();\n if (option.autoplay) {\n player.play();\n }\n });\n\n art.on('video:playing', () => {\n art.isPlaying = true;\n art.controls.hide();\n art.mask.hide();\n });\n\n art.on('video:pause', () => {\n art.isPlaying = false;\n art.controls.show();\n art.mask.show();\n });\n\n art.on('video:ended', () => {\n art.isPlaying = false;\n art.controls.show();\n art.mask.show();\n if (option.loop) {\n player.seek(0);\n player.play();\n }\n });\n\n art.on('video:error', () => {\n if (player.reconnectTime < player.maxReconnectTime) {\n sleep(1000).then(() => {\n player.reconnectTime++;\n $video.src = option.url;\n notice.show(`${i18n.get('Reconnect')}: ${player.reconnectTime}`);\n });\n } else {\n art.isError = true;\n art.isPlaying = false;\n art.loading.hide();\n art.controls.hide();\n $player.classList.add('artplayer-error');\n sleep(1000).then(() => {\n notice.show(i18n.get('Video load failed'), false);\n art.destroy();\n });\n }\n });\n}\n","export default function playMix(art, player) {\n Object.defineProperty(player, 'play', {\n value: () => {\n const { refs: { $video }, i18n, notice } = 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 art.emit('play', $video);\n }\n });\n}\n","export default function pauseMin(art, player) {\n Object.defineProperty(player, 'pause', {\n value: () => {\n const { refs: { $video }, i18n, notice } = art;\n $video.pause();\n notice.show(i18n.get('Pause'));\n art.emit('pause', $video);\n }\n });\n}\n","export default function toggleMix(art, player) {\n Object.defineProperty(player, 'toggle', {\n value: () => {\n if (art.isPlaying) {\n player.pause();\n } else {\n player.play();\n }\n }\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function seekMix(art, player) {\n Object.defineProperty(player, 'seek', {\n value: time => {\n const { refs: { $video }, notice } = 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 art.emit('seek', newTime);\n }\n });\n}\n","import { clamp, setStorage } from '../utils';\n\nexport default function volumeMix(art, player) {\n Object.defineProperty(player, 'volume', {\n value: percentage => {\n const { refs: { $video }, i18n, notice } = 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 art.emit('volume', $video.volume);\n }\n return $video.volume || 0;\n }\n });\n}\n","export default function currentTimeMix(art, player) {\n Object.defineProperty(player, 'currentTime', {\n value: () => art.refs.$video.currentTime || 0\n });\n}\n","export default function durationMix(art, player) {\n Object.defineProperty(player, 'duration', {\n value: () => art.refs.$video.duration || 0\n });\n}\n","export default function switchMix(art, player) {\n Object.defineProperty(player, 'switch', {\n value: (url, name = 'Unknown') => {\n const { refs: { $video }, i18n, notice, isPlaying, option } = art;\n const currentTime = player.currentTime();\n $video.src = url;\n option.url = url;\n player.removePlaybackRate();\n player.removeAspectRatio();\n player.reconnectTime = 0;\n player.seek(currentTime);\n if (isPlaying) {\n player.play();\n }\n notice.show(`${i18n.get('Switch video')}: ${name}`);\n art.emit('switch', url);\n }\n });\n}\n","import { clamp, sublings } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n Object.defineProperty(player, 'playbackRate', {\n value: rate => {\n const { refs: { $video, $player }, i18n, notice } = 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 art.emit('playbackRate', newRate);\n }\n });\n\n Object.defineProperty(player, 'removePlaybackRate', {\n value: () => {\n const { contextmenu: { $playbackRate } } = art;\n if ($playbackRate) {\n const $normal = $playbackRate.querySelector('.normal');\n sublings($normal).forEach(item => item.classList.remove('current'));\n $normal.classList.add('current');\n }\n }\n });\n\n Object.defineProperty(player, 'resetPlaybackRate', {\n value: () => {\n const { refs: { $player } } = art;\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate(Number(playbackRate));\n }\n }\n });\n}\n","import { setStyle, sublings } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n Object.defineProperty(player, 'aspectRatio', {\n value: ratio => {\n console.log(1);\n const { refs: { $video, $player }, i18n, notice } = 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 art.emit('aspectRatio', ratio);\n }\n });\n\n Object.defineProperty(player, 'removeAspectRatio', {\n value: () => {\n const { refs: { $video }, contextmenu: { $aspectRatio } } = art;\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n if ($aspectRatio) {\n const $default = $aspectRatio.querySelector('.default');\n sublings($default).forEach(item => item.classList.remove('current'));\n $default.classList.add('current');\n }\n }\n });\n\n Object.defineProperty(player, 'resetAspectRatio', {\n value: () => {\n const { refs: { $player } } = art;\n const { aspectRatio } = $player.dataset;\n if (aspectRatio) {\n player.aspectRatio(aspectRatio.split(':'));\n }\n }\n });\n}\n","import attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport playMix from './playMix';\nimport pauseMin from './pauseMin';\nimport toggleMix from './toggleMix';\nimport seekMix from './seekMix';\nimport volumeMix from './volumeMix';\nimport currentTimeMix from './currentTimeMix';\nimport durationMix from './durationMix';\nimport switchMix from './switchMix';\nimport playbackRateMix from './playbackRateMix';\nimport aspectRatioMix from './aspectRatioMix';\n\nexport default class Player {\n constructor(art) {\n this.reconnectTime = 0;\n this.maxReconnectTime = 5;\n\n attrInit(art, this);\n eventInit(art, this);\n playMix(art, this);\n pauseMin(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\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';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.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 fullscreen,\n fullscreenWeb\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, $control) {\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","/*!\n* screenfull\n* v3.3.3 - 2018-09-04\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\tvar keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit (Safari 5.1)\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (elem) {\n\t\t\tvar request = fn.requestFullscreen;\n\n\t\t\telem = elem || document.documentElement;\n\n\t\t\t// Work around Safari 5.1 bug: reports support for\n\t\t\t// keyboard in fullscreen even though it doesn't.\n\t\t\t// Browser sniffing, since the alternative with\n\t\t\t// setTimeout is even worse.\n\t\t\tif (/ Version\\/5\\.1(?:\\.\\d+)? Safari\\//.test(navigator.userAgent)) {\n\t\t\t\telem[request]();\n\t\t\t} else {\n\t\t\t\telem[request](keyboardAllowed ? Element.ALLOW_KEYBOARD_INPUT : {});\n\t\t\t}\n\t\t},\n\t\texit: function () {\n\t\t\tdocument[fn.exitFullscreen]();\n\t\t},\n\t\ttoggle: function (elem) {\n\t\t\tif (this.isFullscreen) {\n\t\t\t\tthis.exit();\n\t\t\t} else {\n\t\t\t\tthis.request(elem);\n\t\t\t}\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = false;\n\t\t} else {\n\t\t\twindow.screenfull = false;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tenabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\nimport screenfull from 'screenfull';\n\nexport default class Fullscreen {\n constructor(option) {\n this.option = option;\n this.state = false;\n }\n\n apply(art, $control) {\n this.art = art;\n const { events: { proxy }, i18n, player, refs: { $player } } = art;\n this.$fullscreen = append($control, icons.fullscreen);\n tooltip(this.$fullscreen, i18n.get('Fullscreen'));\n proxy($control, 'click', () => {\n if (this.state) {\n screenfull.exit();\n this.state = false;\n $player.classList.remove('artplayer-fullscreen');\n setStyle(this.$fullscreen, 'opacity', '1');\n tooltip(this.$fullscreen, i18n.get('Fullscreen'));\n } else {\n if (screenfull.enabled) {\n this.state = true;\n $player.classList.add('artplayer-fullscreen');\n setStyle(this.$fullscreen, 'opacity', '0.8');\n tooltip(this.$fullscreen, i18n.get('Exit fullscreen'));\n screenfull.request($player);\n }\n }\n player.resetAspectRatio();\n art.emit('fullscreen', this.state);\n });\n }\n\n exit() {\n screenfull.exit();\n this.state = false;\n }\n\n toggle() {\n const { $player } = this.art.refs;\n screenfull.toggle($player);\n this.state = screenfull.isFullscreen;\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class FullscreenWeb {\n constructor(option) {\n this.option = option;\n this.state = false;\n }\n\n apply(art, $control) {\n const { events: { proxy }, i18n, player, controls, refs: { $player } } = art;\n this.$fullscreenWeb = append($control, icons.fullscreenWeb);\n tooltip(this.$fullscreenWeb, i18n.get('Web fullscreen'));\n proxy($control, 'click', () => {\n if (controls.fullscreen) {\n controls.fullscreen.exit();\n }\n\n if (this.state) {\n this.state = false;\n $player.classList.remove('artplayer-web-fullscreen');\n setStyle(this.$fullscreenWeb, 'opacity', '1');\n tooltip(this.$fullscreenWeb, i18n.get('Web fullscreen'));\n } else {\n this.state = true;\n $player.classList.add('artplayer-web-fullscreen');\n setStyle(this.$fullscreenWeb, 'opacity', '0.8');\n tooltip(this.$fullscreenWeb, i18n.get('Exit web fullscreen'));\n }\n player.resetAspectRatio();\n art.emit('fullscreenWeb', this.state);\n });\n }\n}\n","export default class Pip {\n constructor(option) {\n this.option = option;\n }\n\n apply(art, $control) {\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, $control) {\n const { events: { proxy }, player, i18n } = art;\n this.$play = append($control, icons.play);\n this.$pause = append($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, $control) {\n this.art = art;\n this.$control = $control;\n const { option: { highlight, theme }, events: { proxy }, refs: { $video }, player } = art;\n\n append(\n $control,\n `\n
\n
\n
\n
\n
\n
\n
\n `\n );\n\n this.$loaded = $control.querySelector('.art-progress-loaded');\n this.$played = $control.querySelector('.art-progress-played');\n this.$highlight = $control.querySelector('.art-progress-highlight');\n this.$indicator = $control.querySelector('.art-progress-indicator');\n this.$tip = $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 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($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($control, 'mouseout', () => {\n setStyle(this.$tip, 'display', 'none');\n });\n\n proxy($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.$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.$control.clientWidth - tipWidth / 2) {\n setStyle(this.$tip, 'left', `${this.$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, $control) {\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 art.emit('subtitle:hide');\n } else {\n subtitle.show();\n setStyle(this.$subtitle, 'opacity', '0.8');\n tooltip(this.$subtitle, i18n.get('Hide subtitle'));\n art.emit('subtitle:show');\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, $control) {\n this.art = art;\n this.$control = $control;\n $control.innerHTML = '00:00 / 00:00';\n\n this.art.on('video:canplay', () => {\n this.getTime();\n });\n\n this.art.on('video:timeupdate', () => {\n this.getTime();\n });\n\n this.art.on('video:seeking', () => {\n this.getTime();\n });\n }\n\n getTime() {\n const { player } = this.art;\n this.$control.innerHTML = `${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, $control) {\n this.art = art;\n this.$control = $control;\n this.init();\n }\n\n init() {\n const { events: { proxy }, player, i18n } = this.art;\n this.$volume = append(this.$control, icons.volume);\n this.$volumeClose = append(this.$control, icons.volumeClose);\n this.$volumePanel = append(this.$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.$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.$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, $control) {\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 art.emit('setting:hide');\n } else {\n setting.show();\n setStyle(this.$setting, 'opacity', '0.8');\n tooltip(this.$setting, i18n.get('Hide setting'));\n art.emit('setting:show');\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, $control) {\n this.art = art;\n errorHandle(art.controls.progress, '\\'thumbnails\\' control dependent on \\'progress\\' control');\n const { refs: { $progress }, events: { proxy } } = art;\n this.$control = $control;\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($control, 'display', 'block');\n this.showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($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 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.$control, 'backgroundImage', `url(${url})`);\n setStyle(this.$control, 'height', `${height}px`);\n setStyle(this.$control, 'width', `${width}px`);\n setStyle(this.$control, 'backgroundPosition', `-${--xIndex * width}px -${--yIndex * height}px`);\n\n if (posWidth <= width / 2) {\n setStyle(this.$control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle(this.$control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle(this.$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, $control) {\n this.art = art;\n const { events: { proxy }, i18n, notice } = this.art;\n this.$screenshot = append($control, icons.screenshot);\n tooltip(this.$screenshot, i18n.get('Screenshot'));\n proxy(this.$screenshot, 'click', () => {\n try {\n this.captureFrame();\n art.emit('screenshot');\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, $control) {\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 this.commonMethod(control);\n (this.$map[option.position] || (this.$map[option.position] = [])).push($control);\n control.apply && control.apply(this.art, $control);\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 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
Video url:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video type:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video size:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video volume:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video time:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video duration:
\n
\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 { events: { proxy }, option: { subtitle }, refs: { $video, $subtitle } } = this.art;\n setStyles($subtitle, subtitle.style || {});\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\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 const { notice } = this.art;\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 notice.show(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, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\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, name = '') {\n const { $track, i18n, notice } = 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 notice.show(`${i18n.get('Switch subtitle')}: ${name}`);\n this.art.emit('subtitle:switch', url);\n }\n });\n }\n}\n","import { debounce } from './utils';\n\nexport 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 this.init();\n }\n\n init() {\n const { refs: { $player } } = this.art;\n this.hover($player, () => {\n $player.classList.add('artplayer-hover');\n this.art.emit('hoverenter');\n }, () => {\n $player.classList.remove('artplayer-hover');\n $player.classList.remove('artplayer-hide-cursor');\n this.art.emit('hoverleave');\n });\n\n const hideCursor = debounce(() => {\n $player.classList.add('artplayer-hide-cursor');\n }, 5000);\n this.proxy($player, 'mousemove', () => {\n $player.classList.remove('artplayer-hide-cursor');\n hideCursor();\n });\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n name.forEach(item => this.proxy(target, item, callback, option));\n return;\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', 'contextmenu'], 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).forEach(this.add);\n }\n\n add(option, callback) {\n const { refs: { $layers } } = this.art;\n id++;\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 $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 { option, refs: { $mask } } = this.art;\n append($mask, option.play || icons.playBig);\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, $setting) {\n this.art = art;\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 if (art.option.setting) {\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, `
${this.art.i18n.get(title)}
`);\n append($setting, '
');\n this.$settings.push($setting);\n setting.apply && setting.apply(this.art, $setting);\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 play: '',\n theme: '#f00',\n setting: false,\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","debounce","func","wait","scope","timeout","fn","args","arguments","later","apply","clearTimeout","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","play","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","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","init","language","callback","attrInit","poster","src","eventInit","player","proxy","i18n","notice","firstCanplay","toggle","config","eventName","event","emit","on","show","hide","mask","isPlaying","seek","reconnectTime","maxReconnectTime","then","get","isError","classList","add","destroy","playMix","defineProperty","promise","undefined","catch","err","console","warn","pauseMin","pause","toggleMix","seekMix","newTime","duration","currentTime","volumeMix","percentage","parseInt","currentTimeMix","durationMix","switchMix","removePlaybackRate","removeAspectRatio","playbackRateMix","rate","newRate","dataset","$playbackRate","$normal","remove","Number","aspectRatioMix","ratio","log","ratioName","length","videoWidth","videoHeight","clientWidth","clientHeight","videoRatio","setupRatio","$aspectRatio","$default","Player","icons","playBig","volumeClose","danmu","setting","creatDomFromSvg","result","tmp","document","createElement","childNodes","Danmu","$control","isOpen","Fullscreen","state","$fullscreen","screenfull","exit","enabled","request","resetAspectRatio","isFullscreen","FullscreenWeb","$fullscreenWeb","Pip","PlayAndPause","$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","hover","defaultQuality","find","$qualityName","qualityList","$qualitys","switch","id","Controls","$map","mount","control","controlIndex","commonMethod","push","sort","info","close","Contextmenu","version","preventDefault","$contextmenu","creatMenu","setPos","menu","$menu","artMenuId","call","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","top","mHeight","mWidth","menuLeft","menuTop","Info","getHeader","creatInfo","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","hideCursor","addEventListener","removeEventListener","mouseenter","mouseleave","Hotkey","isFocus","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","Layers","$layer","Loading","Notice","autoHide","Mask","Common","$header","$body","$settings","title","settingIndex","instances","Artplayer","DEFAULTS","optionValidator","scheme","removeHtml","splice","Plugin","installedPlugins","plugins","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/attrInit.js","../../src/player/eventInit.js","../../src/player/playMix.js","../../src/player/pauseMin.js","../../src/player/toggleMix.js","../../src/player/seekMix.js","../../src/player/volumeMix.js","../../src/player/currentTimeMix.js","../../src/player/durationMix.js","../../src/player/switchMix.js","../../src/player/playbackRateMix.js","../../src/player/aspectRatioMix.js","../../src/player/index.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","../../node_modules/screenfull/dist/screenfull.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\nexport function debounce(func, wait, context) {\n let timeout;\n return function fn() {\n const args = arguments;\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\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
\n
\n
\n
\n
\n
\n
\n
×
\n
\n
\n
\n
\n
[x]
\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 video': '切换',\n 'Switch subtitle': '切换字幕',\n 'Fullscreen': '全屏',\n 'Exit fullscreen': '退出全屏',\n 'Web fullscreen': '网页全屏',\n 'Exit web fullscreen': '退出网页全屏',\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 video': '切換',\n 'Switch subtitle': '切換字幕',\n 'Fullscreen': '全屏',\n 'Exit fullscreen': '退出全屏',\n 'Web fullscreen': '網頁全屏',\n 'Exit web fullscreen': '退出網頁全屏',\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 } from '../utils';\n\nexport default function attrInit(art) {\n const { option, refs: { $video } } = art;\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n $video.volume = clamp(option.volume, 0, 1);\n $video.poster = option.poster;\n $video.autoplay = option.autoplay;\n $video.src = option.url;\n}\n","import config from '../config';\nimport { sleep } from '../utils';\n\nexport default function eventInit(art, player) {\n const { option, events: { proxy }, refs: { $player, $video }, i18n, notice } = art;\n let firstCanplay = false;\n\n proxy($video, 'click', () => {\n player.toggle();\n });\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n art.on('video:loadstart', () => {\n art.loading.show();\n });\n\n art.on('video:loadeddata', () => {\n art.loading.hide();\n });\n\n art.on('video:waiting', () => {\n art.loading.show();\n });\n\n art.on('video:seeking', () => {\n art.loading.show();\n });\n\n art.on('video:canplay', () => {\n if (!firstCanplay) {\n firstCanplay = true;\n art.emit('firstCanplay');\n }\n\n art.controls.show();\n art.mask.show();\n art.loading.hide();\n if (option.autoplay) {\n player.play();\n }\n });\n\n art.on('video:playing', () => {\n art.isPlaying = true;\n art.controls.hide();\n art.mask.hide();\n });\n\n art.on('video:pause', () => {\n art.isPlaying = false;\n art.controls.show();\n art.mask.show();\n });\n\n art.on('video:ended', () => {\n art.isPlaying = false;\n art.controls.show();\n art.mask.show();\n if (option.loop) {\n player.seek(0);\n player.play();\n }\n });\n\n art.on('video:error', () => {\n if (player.reconnectTime < player.maxReconnectTime) {\n sleep(1000).then(() => {\n player.reconnectTime++;\n $video.src = option.url;\n notice.show(`${i18n.get('Reconnect')}: ${player.reconnectTime}`);\n });\n } else {\n art.isError = true;\n art.isPlaying = false;\n art.loading.hide();\n art.controls.hide();\n $player.classList.add('artplayer-error');\n sleep(1000).then(() => {\n notice.show(i18n.get('Video load failed'), false);\n art.destroy();\n });\n }\n });\n}\n","export default function playMix(art, player) {\n Object.defineProperty(player, 'play', {\n value: () => {\n const { refs: { $video }, i18n, notice } = 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 art.emit('play', $video);\n }\n });\n}\n","export default function pauseMin(art, player) {\n Object.defineProperty(player, 'pause', {\n value: () => {\n const { refs: { $video }, i18n, notice } = art;\n $video.pause();\n notice.show(i18n.get('Pause'));\n art.emit('pause', $video);\n }\n });\n}\n","export default function toggleMix(art, player) {\n Object.defineProperty(player, 'toggle', {\n value: () => {\n if (art.isPlaying) {\n player.pause();\n } else {\n player.play();\n }\n }\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function seekMix(art, player) {\n Object.defineProperty(player, 'seek', {\n value: time => {\n const { refs: { $video }, notice } = 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 art.emit('seek', newTime);\n }\n });\n}\n","import { clamp, setStorage } from '../utils';\n\nexport default function volumeMix(art, player) {\n Object.defineProperty(player, 'volume', {\n value: percentage => {\n const { refs: { $video }, i18n, notice } = 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 art.emit('volume', $video.volume);\n }\n return $video.volume || 0;\n }\n });\n}\n","export default function currentTimeMix(art, player) {\n Object.defineProperty(player, 'currentTime', {\n value: () => art.refs.$video.currentTime || 0\n });\n}\n","export default function durationMix(art, player) {\n Object.defineProperty(player, 'duration', {\n value: () => art.refs.$video.duration || 0\n });\n}\n","export default function switchMix(art, player) {\n Object.defineProperty(player, 'switch', {\n value: (url, name = 'Unknown') => {\n const { refs: { $video }, i18n, notice, isPlaying, option } = art;\n const currentTime = player.currentTime();\n $video.src = url;\n option.url = url;\n player.removePlaybackRate();\n player.removeAspectRatio();\n player.reconnectTime = 0;\n player.seek(currentTime);\n if (isPlaying) {\n player.play();\n }\n notice.show(`${i18n.get('Switch video')}: ${name}`);\n art.emit('switch', url);\n }\n });\n}\n","import { clamp, sublings } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n Object.defineProperty(player, 'playbackRate', {\n value: rate => {\n const { refs: { $video, $player }, i18n, notice } = 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 art.emit('playbackRate', newRate);\n }\n });\n\n Object.defineProperty(player, 'removePlaybackRate', {\n value: () => {\n const { contextmenu: { $playbackRate } } = art;\n if ($playbackRate) {\n const $normal = $playbackRate.querySelector('.normal');\n sublings($normal).forEach(item => item.classList.remove('current'));\n $normal.classList.add('current');\n }\n }\n });\n\n Object.defineProperty(player, 'resetPlaybackRate', {\n value: () => {\n const { refs: { $player } } = art;\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate(Number(playbackRate));\n }\n }\n });\n}\n","import { setStyle, sublings } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n Object.defineProperty(player, 'aspectRatio', {\n value: ratio => {\n const { refs: { $video, $player }, i18n, notice } = 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 art.emit('aspectRatio', ratio);\n }\n });\n\n Object.defineProperty(player, 'removeAspectRatio', {\n value: () => {\n const { refs: { $video }, contextmenu: { $aspectRatio } } = art;\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n if ($aspectRatio) {\n const $default = $aspectRatio.querySelector('.default');\n sublings($default).forEach(item => item.classList.remove('current'));\n $default.classList.add('current');\n }\n }\n });\n\n Object.defineProperty(player, 'resetAspectRatio', {\n value: () => {\n const { refs: { $player } } = art;\n const { aspectRatio } = $player.dataset;\n if (aspectRatio) {\n player.aspectRatio(aspectRatio.split(':'));\n }\n }\n });\n}\n","import attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport playMix from './playMix';\nimport pauseMin from './pauseMin';\nimport toggleMix from './toggleMix';\nimport seekMix from './seekMix';\nimport volumeMix from './volumeMix';\nimport currentTimeMix from './currentTimeMix';\nimport durationMix from './durationMix';\nimport switchMix from './switchMix';\nimport playbackRateMix from './playbackRateMix';\nimport aspectRatioMix from './aspectRatioMix';\n\nexport default class Player {\n constructor(art) {\n this.reconnectTime = 0;\n this.maxReconnectTime = 5;\n\n attrInit(art, this);\n eventInit(art, this);\n playMix(art, this);\n pauseMin(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\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';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.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 fullscreen,\n fullscreenWeb\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, $control) {\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","/*!\n* screenfull\n* v3.3.3 - 2018-09-04\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\tvar keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit (Safari 5.1)\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (elem) {\n\t\t\tvar request = fn.requestFullscreen;\n\n\t\t\telem = elem || document.documentElement;\n\n\t\t\t// Work around Safari 5.1 bug: reports support for\n\t\t\t// keyboard in fullscreen even though it doesn't.\n\t\t\t// Browser sniffing, since the alternative with\n\t\t\t// setTimeout is even worse.\n\t\t\tif (/ Version\\/5\\.1(?:\\.\\d+)? Safari\\//.test(navigator.userAgent)) {\n\t\t\t\telem[request]();\n\t\t\t} else {\n\t\t\t\telem[request](keyboardAllowed ? Element.ALLOW_KEYBOARD_INPUT : {});\n\t\t\t}\n\t\t},\n\t\texit: function () {\n\t\t\tdocument[fn.exitFullscreen]();\n\t\t},\n\t\ttoggle: function (elem) {\n\t\t\tif (this.isFullscreen) {\n\t\t\t\tthis.exit();\n\t\t\t} else {\n\t\t\t\tthis.request(elem);\n\t\t\t}\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = false;\n\t\t} else {\n\t\t\twindow.screenfull = false;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tenabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import { append, tooltip, setStyle, sleep } from '../utils';\nimport icons from '../icons';\nimport screenfull from 'screenfull';\n\nexport default class Fullscreen {\n constructor(option) {\n this.option = option;\n }\n\n get state() {\n return screenfull.isFullscreen;\n }\n\n apply(art, $control) {\n this.art = art;\n const { events: { destroyEvents, proxy }, i18n, player, notice, refs: { $player } } = art;\n this.$fullscreen = append($control, icons.fullscreen);\n tooltip(this.$fullscreen, i18n.get('Fullscreen'));\n\n proxy($control, 'click', () => {\n if (screenfull.enabled) {\n if (screenfull.isFullscreen) {\n screenfull.exit();\n $player.classList.remove('artplayer-fullscreen');\n setStyle(this.$fullscreen, 'opacity', '1');\n tooltip(this.$fullscreen, i18n.get('Fullscreen'));\n } else {\n $player.classList.add('artplayer-fullscreen');\n setStyle(this.$fullscreen, 'opacity', '0.8');\n tooltip(this.$fullscreen, i18n.get('Exit fullscreen'));\n screenfull.request($player);\n }\n } else {\n notice.show('Your browser does not seem to support full screen functionality.');\n }\n });\n\n const screenfullChange = () => {\n player.resetAspectRatio();\n art.emit('fullscreen', screenfull.isFullscreen);\n };\n\n screenfull.on('change', screenfullChange);\n destroyEvents.push(() => {\n screenfull.off('change', screenfullChange);\n });\n }\n\n exit() {\n screenfull.exit();\n }\n\n toggle() {\n const { $player } = this.art.refs;\n screenfull.toggle($player);\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class FullscreenWeb {\n constructor(option) {\n this.option = option;\n this.state = false;\n }\n\n apply(art, $control) {\n const { events: { proxy }, i18n, player, controls, refs: { $player } } = art;\n this.$fullscreenWeb = append($control, icons.fullscreenWeb);\n tooltip(this.$fullscreenWeb, i18n.get('Web fullscreen'));\n proxy($control, 'click', () => {\n if (controls.fullscreen) {\n controls.fullscreen.exit();\n }\n\n if (this.state) {\n this.state = false;\n $player.classList.remove('artplayer-web-fullscreen');\n setStyle(this.$fullscreenWeb, 'opacity', '1');\n tooltip(this.$fullscreenWeb, i18n.get('Web fullscreen'));\n } else {\n this.state = true;\n $player.classList.add('artplayer-web-fullscreen');\n setStyle(this.$fullscreenWeb, 'opacity', '0.8');\n tooltip(this.$fullscreenWeb, i18n.get('Exit web fullscreen'));\n }\n player.resetAspectRatio();\n art.emit('fullscreenWeb', this.state);\n });\n }\n}\n","export default class Pip {\n constructor(option) {\n this.option = option;\n }\n\n apply(art, $control) {\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, $control) {\n const { events: { proxy }, player, i18n } = art;\n this.$play = append($control, icons.play);\n this.$pause = append($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, $control) {\n this.art = art;\n this.$control = $control;\n const { option: { highlight, theme }, events: { proxy }, refs: { $video }, player } = art;\n\n append(\n $control,\n `\n
\n
\n
\n
\n
\n
\n
\n `\n );\n\n this.$loaded = $control.querySelector('.art-progress-loaded');\n this.$played = $control.querySelector('.art-progress-played');\n this.$highlight = $control.querySelector('.art-progress-highlight');\n this.$indicator = $control.querySelector('.art-progress-indicator');\n this.$tip = $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 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($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($control, 'mouseout', () => {\n setStyle(this.$tip, 'display', 'none');\n });\n\n proxy($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.$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.$control.clientWidth - tipWidth / 2) {\n setStyle(this.$tip, 'left', `${this.$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, $control) {\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 art.emit('subtitle:hide');\n } else {\n subtitle.show();\n setStyle(this.$subtitle, 'opacity', '0.8');\n tooltip(this.$subtitle, i18n.get('Hide subtitle'));\n art.emit('subtitle:show');\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, $control) {\n this.art = art;\n this.$control = $control;\n $control.innerHTML = '00:00 / 00:00';\n\n this.art.on('video:canplay', () => {\n this.getTime();\n });\n\n this.art.on('video:timeupdate', () => {\n this.getTime();\n });\n\n this.art.on('video:seeking', () => {\n this.getTime();\n });\n }\n\n getTime() {\n const { player } = this.art;\n this.$control.innerHTML = `${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, $control) {\n this.art = art;\n this.$control = $control;\n this.init();\n }\n\n init() {\n const { events: { proxy }, player, i18n } = this.art;\n this.$volume = append(this.$control, icons.volume);\n this.$volumeClose = append(this.$control, icons.volumeClose);\n this.$volumePanel = append(this.$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.$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.$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, $control) {\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 art.emit('setting:hide');\n } else {\n setting.show();\n setStyle(this.$setting, 'opacity', '0.8');\n tooltip(this.$setting, i18n.get('Hide setting'));\n art.emit('setting:show');\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, $control) {\n this.art = art;\n errorHandle(art.controls.progress, '\\'thumbnails\\' control dependent on \\'progress\\' control');\n const { refs: { $progress }, events: { proxy } } = art;\n this.$control = $control;\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($control, 'display', 'block');\n this.showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($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 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.$control, 'backgroundImage', `url(${url})`);\n setStyle(this.$control, 'height', `${height}px`);\n setStyle(this.$control, 'width', `${width}px`);\n setStyle(this.$control, 'backgroundPosition', `-${--xIndex * width}px -${--yIndex * height}px`);\n\n if (posWidth <= width / 2) {\n setStyle(this.$control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle(this.$control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle(this.$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, $control) {\n this.art = art;\n const { events: { proxy }, i18n, notice } = this.art;\n this.$screenshot = append($control, icons.screenshot);\n tooltip(this.$screenshot, i18n.get('Screenshot'));\n proxy(this.$screenshot, 'click', () => {\n try {\n this.captureFrame();\n art.emit('screenshot');\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, $control) {\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 this.commonMethod(control);\n (this.$map[option.position] || (this.$map[option.position] = [])).push($control);\n control.apply && control.apply(this.art, $control);\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 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
Video url:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video type:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video size:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video volume:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video time:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video duration:
\n
\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 { events: { proxy }, option: { subtitle }, refs: { $video, $subtitle } } = this.art;\n setStyles($subtitle, subtitle.style || {});\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\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 const { notice } = this.art;\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 notice.show(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, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\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, name = '') {\n const { $track, i18n, notice } = 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 notice.show(`${i18n.get('Switch subtitle')}: ${name}`);\n this.art.emit('subtitle:switch', url);\n }\n });\n }\n}\n","import { debounce } from './utils';\n\nexport 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 this.init();\n }\n\n init() {\n const { refs: { $player } } = this.art;\n this.hover($player, () => {\n $player.classList.add('artplayer-hover');\n this.art.emit('hoverenter');\n }, () => {\n $player.classList.remove('artplayer-hover');\n $player.classList.remove('artplayer-hide-cursor');\n this.art.emit('hoverleave');\n });\n\n const hideCursor = debounce(() => {\n $player.classList.add('artplayer-hide-cursor');\n }, 5000);\n this.proxy($player, 'mousemove', () => {\n $player.classList.remove('artplayer-hide-cursor');\n hideCursor();\n });\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n name.forEach(item => this.proxy(target, item, callback, option));\n return;\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', 'contextmenu'], 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).forEach(this.add);\n }\n\n add(option, callback) {\n const { refs: { $layers } } = this.art;\n id++;\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 $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 { option, refs: { $mask } } = this.art;\n append($mask, option.play || icons.playBig);\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, $setting) {\n this.art = art;\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 if (art.option.setting) {\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, `
${this.art.i18n.get(title)}
`);\n append($setting, '
');\n this.$settings.push($setting);\n setting.apply && setting.apply(this.art, $setting);\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 play: '',\n theme: '#f00',\n setting: false,\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","debounce","func","wait","timeout","fn","args","arguments","later","apply","clearTimeout","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","play","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","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","init","language","callback","attrInit","poster","src","eventInit","player","proxy","i18n","notice","firstCanplay","toggle","config","eventName","event","emit","on","show","hide","mask","isPlaying","seek","reconnectTime","maxReconnectTime","then","get","isError","classList","add","destroy","playMix","defineProperty","promise","undefined","catch","err","console","warn","pauseMin","pause","toggleMix","seekMix","newTime","duration","currentTime","volumeMix","percentage","parseInt","currentTimeMix","durationMix","switchMix","removePlaybackRate","removeAspectRatio","playbackRateMix","rate","newRate","dataset","$playbackRate","$normal","remove","Number","aspectRatioMix","ratio","ratioName","length","videoWidth","videoHeight","clientWidth","clientHeight","videoRatio","setupRatio","$aspectRatio","$default","Player","icons","playBig","volumeClose","danmu","setting","creatDomFromSvg","result","tmp","document","createElement","childNodes","Danmu","$control","isOpen","Fullscreen","destroyEvents","$fullscreen","screenfull","enabled","isFullscreen","exit","request","screenfullChange","resetAspectRatio","push","off","FullscreenWeb","state","$fullscreenWeb","Pip","PlayAndPause","$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","hover","defaultQuality","find","$qualityName","qualityList","$qualitys","switch","id","Controls","$map","mount","control","controlIndex","commonMethod","sort","info","close","Contextmenu","version","preventDefault","$contextmenu","creatMenu","setPos","menu","$menu","artMenuId","call","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","top","mHeight","mWidth","menuLeft","menuTop","Info","getHeader","creatInfo","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","hideCursor","addEventListener","removeEventListener","mouseenter","mouseleave","Hotkey","isFocus","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","Layers","$layer","Loading","Notice","autoHide","Mask","Common","$header","$body","$settings","title","settingIndex","instances","Artplayer","DEFAULTS","optionValidator","scheme","removeHtml","splice","Plugin","installedPlugins","plugins","slice","unshift","prototype","navigator","Emitter"],"mappings":"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"} \ No newline at end of file diff --git a/src/controls/fullscreen.js b/src/controls/fullscreen.js index 34249126b..27ef3829d 100644 --- a/src/controls/fullscreen.js +++ b/src/controls/fullscreen.js @@ -1,47 +1,57 @@ -import { append, tooltip, setStyle } from '../utils'; +import { append, tooltip, setStyle, sleep } from '../utils'; import icons from '../icons'; import screenfull from 'screenfull'; export default class Fullscreen { constructor(option) { this.option = option; - this.state = false; + } + + get state() { + return screenfull.isFullscreen; } apply(art, $control) { this.art = art; - const { events: { proxy }, i18n, player, refs: { $player } } = art; + const { events: { destroyEvents, proxy }, i18n, player, notice, refs: { $player } } = art; this.$fullscreen = append($control, icons.fullscreen); tooltip(this.$fullscreen, i18n.get('Fullscreen')); + proxy($control, 'click', () => { - if (this.state) { - screenfull.exit(); - this.state = false; - $player.classList.remove('artplayer-fullscreen'); - setStyle(this.$fullscreen, 'opacity', '1'); - tooltip(this.$fullscreen, i18n.get('Fullscreen')); - } else { - if (screenfull.enabled) { - this.state = true; + if (screenfull.enabled) { + if (screenfull.isFullscreen) { + screenfull.exit(); + $player.classList.remove('artplayer-fullscreen'); + setStyle(this.$fullscreen, 'opacity', '1'); + tooltip(this.$fullscreen, i18n.get('Fullscreen')); + } else { $player.classList.add('artplayer-fullscreen'); setStyle(this.$fullscreen, 'opacity', '0.8'); tooltip(this.$fullscreen, i18n.get('Exit fullscreen')); screenfull.request($player); } + } else { + notice.show('Your browser does not seem to support full screen functionality.'); } + }); + + const screenfullChange = () => { player.resetAspectRatio(); - art.emit('fullscreen', this.state); + art.emit('fullscreen', screenfull.isFullscreen); + }; + + screenfull.on('change', screenfullChange); + destroyEvents.push(() => { + screenfull.off('change', screenfullChange); }); } exit() { screenfull.exit(); - this.state = false; } toggle() { const { $player } = this.art.refs; screenfull.toggle($player); - this.state = screenfull.isFullscreen; } } diff --git a/src/player/aspectRatioMix.js b/src/player/aspectRatioMix.js index 58b72f6aa..d46043fbc 100644 --- a/src/player/aspectRatioMix.js +++ b/src/player/aspectRatioMix.js @@ -3,7 +3,6 @@ import { setStyle, sublings } from '../utils'; export default function aspectRatioMix(art, player) { Object.defineProperty(player, 'aspectRatio', { value: ratio => { - console.log(1); const { refs: { $video, $player }, i18n, notice } = art; const ratioName = ratio.length === 2 ? `${ratio[0]}:${ratio[1]}` : i18n.get('Default'); diff --git a/src/utils/index.js b/src/utils/index.js index a64795688..a2990d011 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -116,10 +116,9 @@ export function sublings(target) { return Array.from(target.parentElement.children).filter(item => item !== target); } -export function debounce(func, wait, scope) { +export function debounce(func, wait, context) { let timeout; return function fn() { - const context = scope || this; const args = arguments; const later = function later() { timeout = null;