UNPKG

2.95 kBJavaScriptView Raw
1/*!
2 * v-pip v2.3.1
3 * (c) 2022 Vinayak Kulkarni
4 * @license MIT
5 */
6!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VPip={},e.vue)}(this,(function(e,t){"use strict";function i(e){let t,i=e[0],o=1;for(;o<e.length;){const n=e[o],s=e[o+1];if(o+=2,("optionalAccess"===n||"optionalCall"===n)&&null==i)return;"access"===n||"optionalAccess"===n?(t=i,i=s(i)):"call"!==n&&"optionalCall"!==n||(i=s(((...e)=>i.call(t,...e))),t=void 0)}return i}var o=t.defineComponent({name:"VPip",props:{videoOptions:{type:Object,required:!1,default:()=>({wrapper:"",src:"",poster:"",class:"",height:"100%",width:"100%"})},buttonOptions:{type:Object,required:!1,default:()=>({wrapper:"",type:"button",class:"",label:"Toggle picture-in-picture"})},wrapper:{type:String,default:"",required:!1}},emits:["video-in-pip","requesting-pip-failure","exiting-pip-failure"],setup(e,{emit:o}){const n=t.reactive({video:null,isPipSupported:!1});function s(){o("video-in-pip",!0)}function p(){o("video-in-pip",!1)}t.onMounted((()=>{n.isPipSupported="pictureInPictureEnabled"in document,i([n,"access",e=>e.video,"optionalAccess",e=>e.addEventListener,"call",e=>e("enterpictureinpicture",s)]),i([n,"access",e=>e.video,"optionalAccess",e=>e.addEventListener,"call",e=>e("leavepictureinpicture",p)])})),t.onBeforeUnmount((()=>{i([n,"access",e=>e.video,"optionalAccess",e=>e.removeEventListener,"call",e=>e("enterpictureinpicture",p)]),i([n,"access",e=>e.video,"optionalAccess",e=>e.removeEventListener,"call",e=>e("leavepictureinpicture",p)])}));return{state:n,togglePip:()=>{const{pictureInPictureElement:e,exitPictureInPicture:t}=document;!e&&n.video?n.video.requestPictureInPicture().catch((e=>{o("requesting-pip-failure",e)})):t().catch((e=>{o("exiting-pip-failure",e)}))}}}});const n=["src","poster","height","width"],s=["type"];o.render=function(e,i,o,p,r,c){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(e.wrapper)},[t.createElementVNode("div",{class:t.normalizeClass(e.videoOptions.wrapper)},[t.createElementVNode("video",{ref:"video",src:e.videoOptions.src,poster:e.videoOptions.poster,class:t.normalizeClass(e.videoOptions.class),height:e.videoOptions.height,width:e.videoOptions.width,controls:""},null,10,n)],2),t.createElementVNode("div",{class:t.normalizeClass(e.buttonOptions.wrapper)},[e.state.isPipSupported?(t.openBlock(),t.createElementBlock("button",{key:0,type:e.buttonOptions.type,class:t.normalizeClass(e.buttonOptions.class),onClick:i[0]||(i[0]=(...t)=>e.togglePip&&e.togglePip(...t))},t.toDisplayString(e.buttonOptions.label),11,s)):t.createCommentVNode("v-if",!0)],2)],2)},o.__file="src/VPip.vue";let p=!1;var r={install(e){p||(e.component("VPip",o),p=!0)}};e.VPip=o,e.default=r,Object.defineProperty(e,"__esModule",{value:!0})}));
7//# sourceMappingURL=v-pip.min.js.map