vue-bilibili-embed-renderer-oxr
Version:
It is better to use Bilibili's embed renderer component for Vue applications,update bv
2 lines (1 loc) • 1.78 kB
JavaScript
(function(e,a){typeof exports=="object"&&typeof module!="undefined"?module.exports=a(require("vue")):typeof define=="function"&&define.amd?define(["vue"],a):(e=typeof globalThis!="undefined"?globalThis:e||self,e.BilibiliEmbedRenderer=a(e.Vue))})(this,function(e){"use strict";const a=(i,t,r,n)=>t||(typeof i=="number"?i*n/r:typeof i=="string"&&i.search("px")!==-1?Number(i.replace("px",""))*n/r:typeof i=="string"&&i==="100%"?"100%":360),u=!!(typeof window!="undefined"&&window.document&&window.document.createElement),y=["width","height","src"],c="//player.bilibili.com/player.html",s=e.defineComponent({__name:"core",props:{vid:{type:String,require:!0},autoplay:{type:Boolean,require:!1},page:{type:Number,require:!1},isWide:{type:Boolean,require:!1},highQuality:{type:Boolean,require:!1},hasDanmaku:{type:Boolean,require:!1},aspectWidth:{type:Number,require:!1},aspectHeight:{type:Number,require:!1},width:{type:String||Number,require:!1},height:{type:String||Number,require:!1},iframeClass:{type:String,require:!1}},setup(i){let t=i;const{vid:r,autoplay:n}=t,l=t.page||1,g=t.isWide||!0,b=t.highQuality||!0,q=t.hasDanmaku||!1,$=u?4:16,w=u?3:9,_=t.aspectWidth||$,k=t.aspectHeight||w,p=t.width||480,B=a(p,t.height,_,k),N=t.iframeClass||"",d=b?1:0,f=g?1:0,h=q?1:0;let m="",o="";r.toLocaleLowerCase().startsWith("bv")?o=r:m=r;const C=o?`${c}?bvid=${o}&page=${l}&high_quality=${d}&as_wide=${f}&danmaku=${h}&autoplay=${n?1:0}`:`${c}?aid=${m}&page=${l}&high_quality=${d}&as_wide=${f}&danmaku=${h}&autoplay=${n?1:0}`;return(S,x)=>(e.openBlock(),e.createElementBlock("iframe",{width:e.unref(p),height:e.unref(B),src:e.unref(C),allowFullScreen:!0,class:e.normalizeClass({iframeClassImp:e.unref(N)})},null,10,y))}});return s.install=i=>{i.component("bilibili-embed-renderer",s)},s});