@lazycatcloud/vue-media-preview 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/MediaPreview.vue.d.ts +2 -2
- package/dist/components/PreviewStage.vue.d.ts +5 -2
- package/dist/core/rendering/image.d.ts +17 -0
- package/dist/core/resources/bitmap/client.d.ts +4 -0
- package/dist/core/resources/bitmap/decode.worker.d.ts +1 -0
- package/dist/core/resources/bitmap/types.d.ts +14 -0
- package/dist/core/resources/imageLimits.d.ts +1 -1
- package/dist/core/resources/imageOwnership.d.ts +8 -0
- package/dist/core/resources/imageRequest.d.ts +1 -1
- package/dist/core/resources/imageResource.d.ts +11 -0
- package/dist/core/resources/imageStore.d.ts +3 -0
- package/dist/core/resources/imageTransport.d.ts +4 -4
- package/dist/core/resources/validation/image.d.ts +13 -0
- package/dist/core/video/source/session.d.ts +8 -0
- package/dist/core/video/source/types.d.ts +8 -0
- package/dist/core/video/timeline/buffered.d.ts +12 -0
- package/dist/core/video/timeline/index.d.ts +15 -0
- package/dist/core/video/timeline/time.d.ts +3 -0
- package/dist/core/video/useVideoPlayback.d.ts +22 -6
- package/dist/core/video/useVideoSource.d.ts +3 -3
- package/dist/index.d.ts +2 -0
- package/dist/renderers/ImageCanvasRenderer.vue.d.ts +12 -3
- package/dist/renderers/LivePhotoRenderer.vue.d.ts +2 -2
- package/dist/renderers/VideoDomRenderer.vue.d.ts +23 -7
- package/dist/vue-media-preview.cjs +2 -1
- package/dist/vue-media-preview.css +1 -1
- package/dist/vue-media-preview.js +1719 -1443
- package/docs/testing.md +12 -2
- package/docs/vue-media-preview.md +24 -8
- package/package.json +1 -1
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";var vt=Object.defineProperty;var ht=(a,n,t)=>n in a?vt(a,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[n]=t;var qe=(a,n,t)=>ht(a,typeof n!="symbol"?n+"":n,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");var H=typeof document<"u"?document.currentScript:null;function Me(a){return a instanceof Error?a:new Error(String(a))}const Te=(a,n)=>(a.src=n.videoSrc||n.src,()=>{a.removeAttribute("src"),a.load()});function nt(a,n,t,i,r){const o=e.ref(0);let u=()=>{},l=()=>{};return e.onMounted(()=>{l=e.watch(()=>[n().id,n().src,n().videoSrc,t(),i(),o.value],()=>{u(),u=()=>{},t()&&(u=i()(a(),n(),r))},{immediate:!0,flush:"post"})}),e.onBeforeUnmount(()=>{l(),u()}),()=>o.value++}function ae(a,n,t){return Math.min(Math.max(a,n),t)}function je(a,n=2){return Number(a.toFixed(n))}function yt(a,n){return a.width<=0||a.height<=0||n.width<=0||n.height<=0?1:Math.min(n.width/a.width,n.height/a.height)}function Ze(a){const n=(a%360+360)%360;return n===90||n===180||n===270?n:0}function wt(a,n){return n===90||n===270?{width:a.height,height:a.width}:a}function bt(a,n,t){return`translate3d(${je(a)}px, ${je(n)}px, 0) scale3d(${t}, ${t}, 1)`}function kt(a){return 1-(1-a)**3}function Ue(a,n){return Math.hypot(a.x-n.x,a.y-n.y)}function Ke(a,n){return{x:(a.x+n.x)/2,y:(a.y+n.y)/2}}function Mt(a,n,t){return Math.hypot(a,n)<9?"pending":t>1.01?"pan":Math.abs(a)>Math.abs(n)*1.1?"page":n>0&&Math.abs(n)>Math.abs(a)*1.1?"dismiss":"pending"}function Et(a,n){return a.deltaMode===1?2**(-a.deltaY*.05):a.deltaMode===2?2**-a.deltaY:n||Math.abs(a.deltaY)>=40?2**(-a.deltaY*.002):Math.exp(-a.deltaY*.008)}function xt(a,n,t=650){let i={kind:"idle"};function r(){const u=i;i={kind:"idle"},u.kind==="pending"&&clearTimeout(u.timer),u.kind==="active"&&n()}function o(){r(),i={kind:"pending",timer:setTimeout(()=>{i={kind:"active"},a()},t)}}return{arm:o,cancel:r}}function St(a,n,t){const i=ae(a,-n,n);return{offsetX:i,pageOffset:t?a-i:0}}function at(a={}){const n={motionActive:()=>!1,onTap:()=>{},onDoubleTap:()=>{},onScale:d=>{},onSwipeDownProgress:d=>{},onSwipeDownClose:()=>{},onSwipeLeft:()=>{},onSwipeRight:()=>{},onPageDrag:d=>{},onPageRelease:(d,P)=>{Math.abs(d)<60||(d<0?n.onSwipeLeft():n.onSwipeRight())},interactive:()=>!0,zoomable:()=>!0,doubleTapZoom:()=>2.5,zoomLimit:()=>8,holdable:()=>!1,onHoldStart:()=>{},onHoldEnd:()=>{},...a},t=e.ref(),i=e.ref(),r=e.shallowRef(),o=e.ref({width:1,height:1}),u=e.ref({width:1,height:1}),l=e.reactive({level:1,offsetX:0,offsetY:0,rotation:0,zooming:!1,draggingDown:!1,downOffsetX:0,downOffsetY:0,downScale:1}),m=e.computed(()=>wt(u.value,l.rotation)),y=e.computed(()=>yt(m.value,o.value)),p=e.computed(()=>y.value*l.level),b=e.computed(()=>({width:m.value.width*p.value,height:m.value.height*p.value})),T=e.computed(()=>({transform:bt(l.downOffsetX,l.downOffsetY,l.downScale)})),B=new Set,S=e.ref(!1),g=e.ref(!1),v=e.ref(!1),L=e.computed(()=>S.value||g.value||v.value||n.motionActive());let $,w=0,c=0,k=setTimeout(()=>{},0),h=-1e3,f={x:0,y:0},E=!1,C="idle",R=!0,N=!1,I=0;const z=new Map;let _={x:0,y:0},q={x:0,y:0,time:0},ge=0,ee=0,ie=0,X={left:0,top:0},Fe=1,Se={x:0,y:0},F=j();const V=xt(()=>{C="hold",clearTimeout(k),h=-1e3,n.onHoldStart()},()=>n.onHoldEnd()),A=new ResizeObserver(d=>{for(const P of d)W(P.contentRect)}),ve=new Set,Ve=d=>{(d.key==="Control"||d.key==="Meta")&&ve.add(d.key)},Z=d=>ve.delete(d.key),oe=()=>{V.cancel(),ve.clear()},ye=()=>{document.hidden&&V.cancel()};e.onMounted(()=>{A.observe(t.value),W(t.value.getBoundingClientRect()),window.addEventListener("keydown",Ve),window.addEventListener("keyup",Z),window.addEventListener("blur",oe),document.addEventListener("visibilitychange",ye)}),e.onBeforeUnmount(()=>{E=!0,V.cancel(),window.removeEventListener("keydown",Ve),window.removeEventListener("keyup",Z),window.removeEventListener("blur",oe),document.removeEventListener("visibilitychange",ye),A.disconnect(),cancelAnimationFrame(w),cancelAnimationFrame(c),clearTimeout(k),clearTimeout($)});function W(d){o.value={width:d.width,height:d.height},Object.assign(l,se(l.offsetX,l.offsetY,l.level)),le()}function le(){E||w||(w=requestAnimationFrame(()=>{w=0,B.forEach(d=>d())}))}function j(){return{level:l.level,offsetX:l.offsetX,offsetY:l.offsetY}}function se(d,P,U){const O=Math.max(0,(m.value.width*y.value*U-o.value.width)/2),K=Math.max(0,(m.value.height*y.value*U-o.value.height)/2);return{offsetX:ae(d,-O,O),offsetY:ae(P,-K,K)}}function re(d){Object.assign(l,d),n.onScale(l.level),le()}function me(d,P=250){cancelAnimationFrame(c),S.value=!0;const U=j(),O=performance.now(),K=matchMedia("(prefers-reduced-motion: reduce)").matches?0:P,Q=ce=>{const J=K===0?1:ae((ce-O)/K,0,1),de=kt(J);re({level:U.level+(d.level-U.level)*de,offsetX:U.offsetX+(d.offsetX-U.offsetX)*de,offsetY:U.offsetY+(d.offsetY-U.offsetY)*de}),J<1?c=requestAnimationFrame(Q):S.value=!1};c=requestAnimationFrame(Q)}function G(){return{x:o.value.width/2,y:o.value.height/2}}function ue(d,P=G(),U=!1){if(!n.zoomable())return;cancelAnimationFrame(c),S.value=!1;const O=ae(d,1,n.zoomLimit()),K=O/l.level,Q=G(),ce=se(P.x-Q.x-(P.x-Q.x-l.offsetX)*K,P.y-Q.y-(P.y-Q.y-l.offsetY)*K,O),J={level:O,...ce};U?me(J):re(J)}function he(){l.draggingDown=!1,l.downOffsetX=0,l.downOffsetY=0,l.downScale=1,n.onSwipeDownProgress(0)}function pe(d=!1){d&&(cancelAnimationFrame(c),S.value=!1),V.cancel(),z.clear(),g.value=!1,v.value=!1,clearTimeout($),C="idle",I=0,l.zooming=!1,d||(he(),n.onPageDrag(0)),clearTimeout(k),h=-1e3}function we(d=0){cancelAnimationFrame(c),S.value=!1,pe();const P={level:1,offsetX:0,offsetY:0};d>0&&(l.level!==1||l.offsetX!==0||l.offsetY!==0)?me(P,d):re(P)}function be(d,P=X){return{x:d.clientX-P.left,y:d.clientY-P.top}}function Oe(){V.cancel(),R=!1,N=!1,I=0;const[d,P]=[...z.values()];Fe=Math.max(1,Ue(d,P)),Se=Ke(d,P),F=j(),C="pinch",l.zooming=!0,he(),n.onPageDrag(0),clearTimeout(k),h=-1e3}function Ye(d,P=t.value.getBoundingClientRect()){if(!n.interactive()||d.pointerType==="mouse"&&d.button!==0)return!1;const U=d.target;if(U.closest("button, input, a, select")||U instanceof HTMLVideoElement&&U.controls&&d.clientY>U.getBoundingClientRect().bottom-48)return!1;if(cancelAnimationFrame(c),S.value=!1,g.value=!0,z.size===0&&(X=P),z.set(d.pointerId,be(d)),t.value.setPointerCapture(d.pointerId),z.size>=2)return Oe(),!0;_=be(d),q={..._,time:performance.now()},ge=q.time,ee=0,ie=0,F=j(),C="pending",R=!0,N=!1,I=0;const O=b.value.width/2,K=b.value.height/2,Q=G();return n.holdable()&&Math.abs(_.x-Q.x-l.offsetX)<=O&&Math.abs(_.y-Q.y-l.offsetY)<=K&&(clearTimeout(k),V.arm()),!0}function He(d){if(!z.has(d.pointerId))return;const P=be(d);if(z.set(d.pointerId,P),C==="pinch"&&z.size>=2){if(!n.zoomable())return;const[ce,J]=[...z.values()],de=G(),De=Ke(ce,J),Be=ae(F.level*Ue(ce,J)/Fe,.75,n.zoomLimit()),ze=Be/F.level;re({level:Be,...se(De.x-de.x-(Se.x-de.x-F.offsetX)*ze,De.y-de.y-(Se.y-de.y-F.offsetY)*ze,Be)}),d.preventDefault();return}if(C==="idle")return;const U=P.x-_.x,O=P.y-_.y;if(C==="hold"){if(d.preventDefault(),Math.hypot(U,O)<9)return;V.cancel(),C="pending"}Math.hypot(U,O)>=9&&V.cancel();const K=performance.now(),Q=Math.max(8,K-q.time);if(ee=(P.x-q.x)/Q,ie=(P.y-q.y)/Q,q={...P,time:K},C==="pending"&&(C=Mt(U,O,l.level),N=C==="pan"&&R&&Math.abs(U)>Math.abs(O)*1.1),C!=="pending")if(clearTimeout(k),h=-1e3,d.preventDefault(),C==="pan"){const ce=Math.max(0,(b.value.width-o.value.width)/2),J=St(F.offsetX+U,ce,N);re({level:l.level,...se(J.offsetX,F.offsetY+O,l.level)}),J.pageOffset!==I&&(I=J.pageOffset,n.onPageDrag(I))}else C==="page"?n.onPageDrag(U):C==="dismiss"&&(l.draggingDown=!0,l.downOffsetX=U*.65,l.downOffsetY=Math.max(0,O),l.downScale=ae(1-Math.max(0,O)/o.value.height*.6,.65,1),n.onSwipeDownProgress(ae(O/(o.value.height*.55),0,.85)))}function Y(d){if(!z.has(d.pointerId))return;if(V.cancel(),z.delete(d.pointerId),g.value=z.size>0,C==="pinch"){z.size>0?(_=[...z.values()][0],F=j(),C="pan"):(C="idle",l.zooming=!1,ue(Math.max(1,l.level),G(),!0));return}if(z.size>0)return;const P=be(d),U=P.x-_.x,O=P.y-_.y,K=performance.now()-q.time<100;C==="page"||C==="pan"&&I!==0?n.onPageRelease(C==="page"?U:I,K?ee:0):C==="dismiss"?O>o.value.height*.18||O>45&&K&&ie>.7?n.onSwipeDownClose():he():C==="pending"&&performance.now()-ge<300&&Ue(_,P)<9?Ne(P):l.level<1&&ue(1,G(),!0),l.zooming=!1,C="idle"}function $e(d){if(!z.has(d.pointerId))return;const P=C==="page"||C==="pan"&&I!==0;pe(),P&&n.onPageRelease(0,0),l.level<1&&ue(1,G(),!0)}function Ne(d){const P=performance.now();P-h<280&&Ue(d,f)<36?(clearTimeout(k),h=-1e3,n.onDoubleTap(),ue(l.level>1.01?1:n.doubleTapZoom(),d,!0)):(h=P,f=d,k=setTimeout(n.onTap,280))}function Ce(d){if(n.interactive()){if(V.cancel(),v.value=!0,clearTimeout($),$=setTimeout(()=>{v.value=!1},120),d.ctrlKey||d.metaKey)d.preventDefault(),ue(l.level*Et(d,ve.size>0),be(d,t.value.getBoundingClientRect()));else if(l.level>1){d.preventDefault();const P=d.deltaMode===1?16:1;re({level:l.level,...se(l.offsetX-d.deltaX*P,l.offsetY-d.deltaY*P,l.level)})}}}const Re={state:l,motionActive:L,containerRef:t,canvasRef:i,mediaRef:r,viewportSize:o,mediaSize:u,visualMediaSize:m,displaySize:b,displayScale:p,downDragStyle:T,requestRender:le,renderNow:()=>B.forEach(d=>d()),zoomTo:ue,resetTransform:we,cancelGesture:pe,setMediaElement(d){r.value=d,d instanceof HTMLVideoElement&&le()},setMediaSize(d){u.value=d,le()},clearMedia(){r.value=void 0},registerRenderHandler(d){return B.add(d),()=>B.delete(d)},setRotation(d,P=!0){l.rotation=Ze(d),P&&we(),le()},rotateBy(d=90){Re.setRotation(Ze(l.rotation+d))}};return{core:Re,onPointerDown:Ye,onPointerMove:He,onPointerUp:Y,onPointerCancel:$e,onWheel:Ce}}const te={maxDecodedPixels:24e6,maxCanvasPixels:6e6,maxDevicePixelRatio:2.5,maxOriginalBytes:32*1024*1024,maxPreviewBytes:12*1024*1024,cacheBytes:96*1024*1024,cacheEntries:24,concurrency:3};class Le extends Error{constructor(n){super(n),this.name="ImageLimitError"}}const Ct=async(a,n)=>{const t=await fetch(a,{signal:n.signal,credentials:"same-origin"});if(!t.ok)throw new Error(`图片加载失败:HTTP ${t.status}`);if(Number(t.headers.get("content-length"))>n.maxBytes)throw await t.body.cancel(),new Le("资源超过下载保护限制,请使用适屏图或下载原文件");const r=t.body.getReader(),o=[];let u=0;try{for(;;){const p=await r.read();if(p.done)break;if(u+=p.value.byteLength,u>n.maxBytes)throw new Le("资源超过下载保护限制,请使用适屏图或下载原文件");o.push(new Uint8Array(p.value))}}catch(p){throw await r.cancel(),p}finally{r.releaseLock()}n.signal.throwIfAborted();const l=new Blob(o,{type:t.headers.get("content-type")}),m=URL.createObjectURL(l),y=new Image;y.decoding="async";try{if(await new Promise((p,b)=>{const T=()=>{y.removeAttribute("src"),b(new DOMException("请求已取消","AbortError"))};y.onload=()=>{n.signal.removeEventListener("abort",T),p()},y.onerror=()=>{n.signal.removeEventListener("abort",T),b(new Error("图片解码失败或格式不受支持"))},n.signal.addEventListener("abort",T,{once:!0}),y.src=m}),n.signal.throwIfAborted(),y.naturalWidth*y.naturalHeight>te.maxDecodedPixels)throw new Le("图片像素超过解码保护限制,请提供较小的适屏资源");return await y.decode(),n.signal.throwIfAborted(),y}finally{URL.revokeObjectURL(m)}};class it{constructor(n=te.cacheBytes,t=te.concurrency,i=Ct){qe(this,"entries",new Map);qe(this,"active",0);qe(this,"cancelled",0);this.budget=n,this.concurrency=t,this.loader=i}get stats(){return{active:this.active,queued:[...this.entries.values()].filter(n=>n.state==="queued").length,entries:this.entries.size,bytes:[...this.entries.values()].reduce((n,t)=>n+t.bytes,0),cancelled:this.cancelled}}acquire(n,t={}){const i={priority:0,maxBytes:te.maxOriginalBytes,...t};if(this.entries.has(n)&&["error","aborted"].includes(this.entries.get(n).state)&&this.entries.delete(n),!this.entries.has(n)){let u,l;const m=new Promise((y,p)=>{u=y,l=p});m.catch(()=>{}),this.entries.set(n,{promise:m,resolve:u,reject:l,controller:new AbortController,users:0,bytes:0,priority:i.priority,maxBytes:i.maxBytes,state:"queued"})}const r=this.entries.get(n);r.users++,r.priority=Math.min(r.priority,i.priority),r.maxBytes=Math.max(r.maxBytes,i.maxBytes),this.entries.delete(n),this.entries.set(n,r),this.pump();let o=!1;return{ready:r.promise,release:()=>{o||(o=!0,r.users--,r.users===0&&(r.state==="queued"||r.state==="loading")&&(r.state="aborted",this.cancelled++,r.controller.abort(),r.reject(new DOMException("请求已取消","AbortError")),this.entries.get(n)===r&&this.entries.delete(n)),r.users===0&&r.state==="error"&&this.entries.get(n)===r&&this.entries.delete(n),this.trim(),this.pump())}}}pump(){for(;this.active<this.concurrency;){const n=[...this.entries].filter(([,r])=>r.state==="queued"&&r.users>0).sort((r,o)=>r[1].priority-o[1].priority);if(n.length===0)return;const[t,i]=n[0];i.state="loading",this.active++,this.loader(t,{signal:i.controller.signal,get maxBytes(){return i.maxBytes}}).then(r=>{i.state!=="aborted"&&(i.bytes=r.naturalWidth*r.naturalHeight*4,i.state="ready",i.resolve(r))}).catch(r=>{i.state!=="aborted"&&(i.state="error",i.reject(Me(r)))}).finally(()=>{this.active--,this.trim(),this.pump()})}}trim(){let n=this.stats.bytes;for(const[t,i]of this.entries)if(!(i.users>0||i.state==="loading"||i.state==="queued")){if(n<=this.budget&&this.entries.size<=te.cacheEntries)break;n-=i.bytes,this.entries.delete(t)}}}const ot=new it,fe={kind:"empty"};function Rt(a){return a.kind==="element"&&a.element instanceof HTMLImageElement&&a.element.complete&&a.element.naturalWidth>0?{kind:"image",image:a.element}:fe}function Ge(){const a=document.createElement("canvas");a.width=a.height=1;const n=a.getContext("2d");return n.fillStyle="#f3f4f5",n.fillRect(0,0,1,1),a}const rt=["thumbnail","screen","full"],Ee={maxOriginalPixels:te.maxDecodedPixels,maxOriginalBytes:te.maxOriginalBytes,maxPreviewBytes:te.maxPreviewBytes},xe=(a,n)=>n==="full"?a.src:n==="screen"?a.previewSrc:a.thumbnail;function Bt(a,n){return a.width*a.height<=n.maxOriginalPixels}function Qe(a,n){const t=Math.min(n.width/a.width,n.height/a.height);return Math.min(8,Math.max(2,Math.min(1/t,Math.max(n.width/(a.width*t),n.height/(a.height*t)))))}function Pt(a,n,t,i,r){const o=Bt(a,t),u={sources:[],originalStatus:n==="full"?o?"loading":"blocked":"idle",originalReason:""};u.originalStatus==="blocked"&&(u.originalReason="原图像素过大,当前显示适屏预览,可下载原文件");for(const[l,m]of rt.entries()){if(m==="screen"&&n==="thumbnail"||m==="full"&&(n!=="full"||!o))continue;const y=i(a,m,r);if(!o&&y===a.src){u.originalStatus="blocked",u.originalReason="大原图需要独立的适屏资源,请从相册生成预览或下载文件";continue}u.sources.push({url:y,quality:m,rank:l})}return u}const Lt=["aria-label"],Tt={key:0,class:"mp-resource-state",role:"status","aria-label":"加载中"},Ft=e.createElementVNode("span",{class:"mp-spinner","aria-hidden":"true"},null,-1),Vt=[Ft],$t={key:1,class:"mp-resource-state",role:"alert"},Nt=e.createElementVNode("span",null,"图片暂时无法加载",-1),Dt={key:2,class:"mp-quality-notice",role:"status"},zt={key:3,class:"mp-quality-notice"},_e=e.defineComponent({inheritAttrs:!1,__name:"ImageCanvasRenderer",props:{media:{},core:{},quality:{default:"screen"},rendering:{type:Boolean,default:!0},requestVersion:{default:0},loadEnabled:{type:Boolean,default:!0},priority:{default:0},resourcePolicy:{default:()=>Ee},resolveSource:{type:Function,default:xe},initialImage:{default:()=>fe}},emits:["ready","error","originalState"],setup(a,{emit:n}){const t=a,i=n,r=e.ref(),o=e.shallowRef({status:"empty"}),u=e.ref("loading"),l=e.ref(!1),m=e.ref("idle"),y=e.ref("");e.watch([m,y],()=>i("originalState",m.value,y.value));let p=!0,b=0,T=t.media.id,B=[],S=()=>{},g,v=!1,L={kind:"empty"};function $(){if(t.core.motionActive.value&&t.loadEnabled&&T===t.media.id){v=!0;return}v=!1,k()}function w(f,E,C){o.value={status:"ready",image:f,rank:E},t.core.setMediaElement(f),u.value="ready",l.value=!1,C==="full"&&(m.value="ready"),t.core.requestRender(),i("ready",C)}e.watch(()=>t.core.motionActive.value,f=>{if(!f){if(L.kind==="ready"){const E=L;L={kind:"empty"},E.token===b&&w(E.image,E.rank,E.quality)}v&&$()}}),e.onMounted(()=>{const f=r.value;g=f.getContext("2d"),t.core.canvasRef.value=f,S=t.core.registerRenderHandler(h),c(),e.nextTick(()=>{p&&$()})}),e.onBeforeUnmount(()=>{p=!1,b+=1,S(),B.forEach(f=>f.release())}),e.watch([()=>t.media.id,()=>t.media.src,()=>t.media.thumbnail,()=>t.media.previewSrc,()=>t.quality,()=>t.loadEnabled,()=>t.priority,()=>t.resolveSource,()=>t.requestVersion],()=>{$()}),e.watch(()=>t.initialImage,c),e.watch(()=>t.rendering,f=>{f&&t.core.requestRender()});function c(){t.initialImage.kind!=="image"||o.value.status==="ready"||(o.value={status:"ready",image:t.initialImage.image,rank:0},t.core.setMediaElement(t.initialImage.image),u.value="ready",t.core.requestRender(),i("ready","thumbnail"))}async function k(){const f=++b;if(L={kind:"empty"},l.value=!1,T!==t.media.id&&(T=t.media.id,o.value={status:"empty"},u.value="loading",t.core.clearMedia(),c()),!t.loadEnabled){B.forEach(q=>q.release()),B=[];return}const E=Math.ceil(t.core.viewportSize.value.width*Math.min(devicePixelRatio,te.maxDevicePixelRatio)*t.core.state.level),C=Pt(t.media,t.quality,t.resourcePolicy,t.resolveSource,E);y.value=C.originalReason,m.value=C.originalStatus;const{sources:R}=C,N=R.map(q=>ot.acquire(q.url,{priority:t.priority,maxBytes:q.quality==="full"?t.resourcePolicy.maxOriginalBytes:t.resourcePolicy.maxPreviewBytes})),I=B;B=N,I.forEach(q=>q.release()),R.length===0&&o.value.status==="empty"&&(u.value="error",i("error",new Le(y.value))),o.value.status==="ready"&&i("ready",rt[o.value.rank]);let z=o.value.status==="ready"?o.value.rank:-1,_=0;await Promise.all(R.map(async(q,ge)=>{const ee=q.rank,ie=N[ge];try{const X=await ie.ready;if(f!==b||ee<z)return;z=ee,t.core.motionActive.value&&o.value.status==="ready"?L={kind:"ready",token:f,image:X,rank:ee,quality:q.quality}:w(X,ee,q.quality)}catch(X){if(f!==b||X instanceof Error&&X.name==="AbortError")return;q.quality==="full"&&(m.value=X instanceof Le?"blocked":"error",y.value=X instanceof Error?X.message:"原图加载失败,可重试"),_+=1,ee>z&&o.value.status==="ready"&&(l.value=!0),_===R.length&&o.value.status==="empty"&&(u.value="error"),i("error",Me(X))}}))}function h(){if(!t.rendering||o.value.status!=="ready")return;const f=r.value,E=t.core.viewportSize.value;if(E.width<=0||E.height<=0)return;const C=Math.min(devicePixelRatio,te.maxDevicePixelRatio,Math.sqrt(te.maxCanvasPixels/(E.width*E.height))),R=Math.max(1,Math.round(E.width*C)),N=Math.max(1,Math.round(E.height*C));(f.width!==R||f.height!==N)&&(f.width=R,f.height=N),g.setTransform(C,0,0,C,0,0),g.clearRect(0,0,E.width,E.height),g.imageSmoothingEnabled=!0,g.imageSmoothingQuality="high",g.translate(E.width/2+t.core.state.offsetX,E.height/2+t.core.state.offsetY),g.rotate(t.core.state.rotation*Math.PI/180);const{width:I,height:z}=t.core.mediaSize.value,_=t.core.displayScale.value;g.drawImage(o.value.image,-I*_/2,-z*_/2,I*_,z*_)}return(f,E)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:r,class:"mp-canvas-renderer","aria-label":f.media.title},null,8,Lt),u.value==="loading"?(e.openBlock(),e.createElementBlock("div",Tt,Vt)):e.createCommentVNode("",!0),u.value==="error"?(e.openBlock(),e.createElementBlock("div",$t,[Nt,e.createElementVNode("button",{type:"button",onClick:e.withModifiers(k,["stop"])},"重新加载")])):e.createCommentVNode("",!0),m.value==="blocked"?(e.openBlock(),e.createElementBlock("span",Dt,e.toDisplayString(y.value),1)):l.value?(e.openBlock(),e.createElementBlock("span",zt,"高清图加载失败,当前显示预览图")):e.createCommentVNode("",!0)],64))}});function ke(a){const n=Math.max(0,Math.floor(Number.isFinite(a)?a:0));return`${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}function lt(a,n){const t=e.reactive({playing:!1,buffering:!1,duration:0,time:0,buffered:0,muted:!1,ended:!1,scrubbing:!1,scrubTime:0,status:"loading"});let i=!1,r=0,o=!1;const u=e.computed(()=>t.duration>0&&t.status!=="error"),l=e.computed(()=>t.scrubbing?t.scrubTime:t.time),m=e.computed(()=>u.value?l.value/t.duration*100:0),y=e.computed(()=>u.value?t.buffered/t.duration*100:0);function p(){const h=a();t.time=h.currentTime,t.duration=Number.isFinite(h.duration)?h.duration:0;const f=h.buffered;t.buffered=f.length>0?f.end(f.length-1):0}async function b(){if(o)return;const h=++r;t.ended&&(a().currentTime=0),t.ended=!1,t.buffering=!0;try{await a().play()}catch(f){if(h!==r)return;t.buffering=!1,t.playing=!1,f instanceof Error&&f.name!=="NotAllowedError"&&f.name!=="AbortError"&&n(f)}}function T(){r+=1,i=!1,t.scrubbing=!1,t.buffering=!1,a().pause()}function B(){t.playing?T():b()}function S(){!u.value||t.scrubbing||(i=t.playing,t.scrubbing=!0,t.scrubTime=t.time,a().pause())}function g(h){t.scrubTime=ae(h,0,t.duration)}function v(h=!0){if(!t.scrubbing)return;const f=i;i=!1,t.scrubbing=!1,h&&(a().currentTime=t.scrubTime,t.time=t.scrubTime,t.ended=!1),f&&b()}function L(){a().muted=!a().muted,t.muted=a().muted}const w=Object.fromEntries(Object.entries({loadedmetadata:p,durationchange:p,timeupdate:p,progress:p,loadeddata:()=>{p(),t.status="ready",t.buffering=!1},canplay:()=>{t.buffering=!1},play:()=>{t.playing=!0,t.ended=!1},playing:()=>{t.playing=!0,t.buffering=!1},pause:()=>{t.playing=!1,t.buffering=!1},ended:()=>{t.playing=!1,t.ended=!0,t.buffering=!1,p()},waiting:()=>{t.buffering=t.playing},seeking:()=>{t.buffering=!0},seeked:()=>{t.buffering=!1,p()},volumechange:()=>{t.muted=a().muted},error:()=>{t.status="error",t.playing=!1,t.buffering=!1,n(new Error("视频暂时无法播放,请重试或检查资源格式"))}}).map(([h,f])=>[h,()=>{o||f()}]));function c(){o=!0,T()}function k(){t.status="loading",t.buffering=!0,a().load()}return{state:t,seekable:u,displayTime:l,progress:m,bufferedProgress:y,events:w,play:b,pause:T,toggle:B,beginScrub:S,scrub:g,endScrub:v,toggleMuted:L,retry:k,dispose:c}}const It=["data-live-state"],qt={class:"mp-dom-renderer mp-live-photo__motion"},Ut=["preload"],st=e.defineComponent({__name:"LivePhotoRenderer",props:{media:{},core:{},playing:{type:Boolean,default:!1},active:{type:Boolean,default:!0},enabled:{type:Boolean,default:!0},requestVersion:{default:0},loadEnabled:{type:Boolean,default:!0},priority:{default:0},resourcePolicy:{default:()=>Ee},resolveSource:{type:Function,default:xe},rendering:{type:Boolean,default:!0},initialImage:{default:()=>fe},quality:{default:"screen"}},emits:["ready","error","originalState","liveState","liveEnded"],setup(a,{expose:n,emit:t}){const i=a,r=t,o=e.ref(),u=e.ref(),l=e.ref(),m=lt(()=>o.value,c=>r("error",c)),{state:y}=m;nt(()=>o.value,()=>i.media,()=>i.active&&i.loadEnabled,()=>Te,c=>{y.status="error",r("error",c)});let p=!1,b=()=>{};const T=e.computed(()=>i.active&&i.enabled&&y.playing&&y.status==="ready"&&!y.buffering),B=e.computed(()=>({transform:`translate(-50%, -50%) translate3d(${i.core.state.offsetX}px, ${i.core.state.offsetY}px, 0)`})),S=e.computed(()=>({width:`${i.core.mediaSize.value.width*i.core.displayScale.value}px`,height:`${i.core.mediaSize.value.height*i.core.displayScale.value}px`,transform:`rotate(${i.core.state.rotation}deg)`}));function g(){m.pause(),o.value.readyState>=HTMLMediaElement.HAVE_METADATA&&(o.value.currentTime=0)}function v(){!i.active||!i.enabled||!i.loadEnabled||!i.playing||y.status!=="ready"||y.buffering?g():m.play().then(()=>{!p&&!y.playing&&i.playing&&r("liveEnded")})}e.watch(()=>[y.status,y.playing,y.buffering],()=>{const c=y.status==="error"?"error":y.buffering||y.status==="loading"?"loading":T.value?"playing":"idle";r("liveState",c)},{immediate:!0});function L(){p||(g(),r("liveEnded"))}function $(){document.hidden&&(g(),r("liveEnded"))}e.onMounted(()=>{b=e.watch(()=>[i.active,i.enabled,i.loadEnabled,i.playing],v,{flush:"post"}),v(),document.addEventListener("visibilitychange",$)}),e.onBeforeUnmount(()=>{b(),p=!0,m.dispose(),document.removeEventListener("visibilitychange",$)});function w(){const c=document.createElement("canvas"),k=Math.min(1,Math.sqrt(te.maxCanvasPixels/(i.media.width*i.media.height)));c.width=Math.round(i.media.width*k),c.height=Math.round(i.media.height*k);const h=c.getContext("2d"),f=Number(getComputedStyle(l.value).opacity);h.drawImage(i.core.mediaRef.value,0,0,c.width,c.height),f<1&&o.value.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&(h.globalAlpha=1-f,h.drawImage(o.value,0,0,c.width,c.height));const E=new DOMMatrixReadOnly(getComputedStyle(u.value).transform).a;return m.pause(),{image:c,scale:E}}return n({captureFrame:w}),(c,k)=>(e.openBlock(),e.createElementBlock("div",{class:"mp-live-photo-renderer","data-live-state":e.unref(y).status==="error"?"error":T.value?"playing":"idle"},[e.createElementVNode("div",{ref_key:"effectsRef",ref:u,class:e.normalizeClass(["mp-live-photo__effects",{"is-playing":T.value}])},[e.createElementVNode("div",qt,[e.createElementVNode("div",{class:"mp-dom-renderer__frame",style:e.normalizeStyle(B.value)},[e.createElementVNode("video",e.mergeProps({ref_key:"videoRef",ref:o,class:"mp-dom-renderer__node",style:S.value,preload:c.active&&c.enabled&&c.loadEnabled?"auto":"none",playsinline:"","webkit-playsinline":"true",crossorigin:"anonymous"},e.toHandlers(e.unref(m).events,!0),{onEnded:L,onError:k[0]||(k[0]=h=>r("liveEnded"))}),null,16,Ut)],4)]),e.createElementVNode("div",{ref_key:"stillRef",ref:l,class:e.normalizeClass(["mp-live-photo__still",{"is-playing":T.value}])},[e.createVNode(_e,{"request-version":c.requestVersion,"load-enabled":c.loadEnabled,priority:c.priority,"resource-policy":c.resourcePolicy,"resolve-source":c.resolveSource,onOriginalState:k[1]||(k[1]=(h,f)=>r("originalState",h,f)),media:c.media,"initial-image":c.initialImage,rendering:c.rendering,core:c.core,quality:c.quality,onReady:k[2]||(k[2]=h=>r("ready",h)),onError:k[3]||(k[3]=h=>r("error",h))},null,8,["request-version","load-enabled","priority","resource-policy","resolve-source","media","initial-image","rendering","core","quality"])],2)],2)],8,It))}});function At(a,n){const t=document.createElement("canvas"),i=Math.min(1,Math.sqrt(te.maxCanvasPixels/(n.width*n.height)));t.width=Math.max(1,Math.round(n.width*i)),t.height=Math.max(1,Math.round(n.height*i));const r=Math.min(t.width/a.videoWidth,t.height/a.videoHeight),o=a.videoWidth*r,u=a.videoHeight*r;return t.getContext("2d").drawImage(a,(t.width-o)/2,(t.height-u)/2,o,u),a.pause(),t}const _t={class:"mp-video-icon--generic",width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.7","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},Ot=["d","fill"],Yt=["src"],Ht=["src"],Ae=e.defineComponent({__name:"VideoIcon",props:{name:{}},setup(a){const n=a,t={play:["mobile-play","pc-play"],replay:["mobile-play","pc-play"],pause:["mobile-pause","pc-pause"],fullscreen:["mobile-fullscreen","pc-fullscreen"],exit:["mobile-fullscreen","pc-exit"]},i={"mobile-play":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='18px'%20height='18px'%20viewBox='0%200%2018%2018'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e三角形%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-查看视频'%20transform='translate(-18.000000,%20-687.000000)'%20fill='%23333333'%3e%3cg%20id='编组-5'%20transform='translate(0.000000,%20672.000000)'%3e%3cg%20id='编组-4'%20transform='translate(18.000000,%2012.913043)'%3e%3cpath%20d='M13.5185936,7.08213339%20L18.1443888,14.1750193%20C19.2003225,15.7941177%2018.7437874,17.9626598%2017.1246889,19.0185936%20C16.5559936,19.3894818%2015.8917011,19.5869565%2015.2127517,19.5869565%20L5.96116137,19.5869565%20C4.02816475,19.5869565%202.46116137,18.0199531%202.46116137,16.0869565%20C2.46116137,15.4080071%202.65863607,14.7437145%203.02952428,14.1750193%20L7.65531943,7.08213339%20C8.71125321,5.46303494%2010.8797953,5.00649976%2012.4988938,6.06243353%20C12.9058908,6.3278664%2013.2531607,6.67513633%2013.5185936,7.08213339%20Z'%20id='三角形'%20transform='translate(10.586957,%2011.086957)%20rotate(90.000000)%20translate(-10.586957,%20-11.086957)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"mobile-pause":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='18px'%20height='18px'%20viewBox='0%200%2018%2018'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e暂停%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-观看视频'%20transform='translate(-17.000000,%20-687.000000)'%20fill='%23333333'%3e%3cg%20id='编组-5'%20transform='translate(0.000000,%20672.000000)'%3e%3cg%20id='编组-3'%20transform='translate(17.000000,%2012.913043)'%3e%3cg%20id='暂停-2'%20transform='translate(0.000000,%202.086957)'%3e%3cg%20id='暂停'%20transform='translate(3.000000,%201.500000)'%3e%3crect%20id='矩形'%20x='0'%20y='0'%20width='3.5'%20height='15'%20rx='1.75'%3e%3c/rect%3e%3crect%20id='矩形备份-7'%20x='9'%20y='0'%20width='3.5'%20height='15'%20rx='1.75'%3e%3c/rect%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"mobile-fullscreen":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e横竖屏备份%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='懒猫微服-图标库2.0'%20transform='translate(-449.000000,%20-196.000000)'%20stroke='%23333333'%20stroke-width='1.5'%3e%3cg%20id='横竖屏'%20transform='translate(449.000000,%20196.000000)'%3e%3crect%20id='矩形'%20x='3.75'%20y='9.75'%20width='16.5'%20height='10.5'%20rx='4'%3e%3c/rect%3e%3crect%20id='矩形'%20fill='%23FFFFFF'%20x='3.75'%20y='3.75'%20width='10.5'%20height='16.5'%20rx='4'%3e%3c/rect%3e%3cline%20x1='7.5'%20y1='7'%20x2='10.5'%20y2='7'%20id='路径-83'%20stroke-linecap='round'%3e%3c/line%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"center-play":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='14px'%20height='14px'%20viewBox='0%200%2014%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e播放%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-查看视频'%20transform='translate(-181.000000,%20-399.000000)'%20fill-rule='nonzero'%3e%3cg%20id='播放'%20transform='translate(164.000000,%20382.000000)'%3e%3cg%20id='播放-2'%20transform='translate(17.000000,%2016.000000)'%3e%3cpath%20d='M10.7364863,4.038851%20L15.2901269,12.0077221%20C15.8381469,12.966757%2015.5049534,14.1884663%2014.5459185,14.7364863%20C14.2437231,14.9091694%2013.9016945,15%2013.5536406,15%20L4.44635936,15%20C3.34178986,15%202.44635936,14.1045695%202.44635936,13%20C2.44635936,12.6519461%202.53718999,12.3099175%202.70987307,12.0077221%20L7.26351372,4.038851%20C7.81153365,3.0798161%209.03324298,2.74662265%209.99227788,3.29464259%20C10.3023404,3.47182119%2010.5593077,3.72878844%2010.7364863,4.038851%20Z'%20id='播放'%20transform='translate(9.000000,%208.000000)%20rotate(90.000000)%20translate(-9.000000,%20-8.000000)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"pc-play":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16px'%20height='16px'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e开始%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2.11查看视频'%20transform='translate(-764.000000,%20-1017.000000)'%20fill='%23FFFFFF'%3e%3cg%20id='编组-7'%20transform='translate(68.000000,%200.000000)'%3e%3cg%20id='编组'%20transform='translate(646.000000,%20970.000000)'%3e%3cg%20id='开始'%20transform='translate(50.000000,%2045.022998)'%3e%3cpath%20d='M11.1122895,6.09085035%20L16.0457675,13.4910673%20C16.9648249,14.8696534%2016.5923033,16.7322614%2015.2137172,17.6513188%20C14.7209147,17.9798538%2014.1418916,18.1551679%2013.5496166,18.1551679%20L4.15581091,18.1551679%20C2.49895666,18.1551679%201.15581091,16.8120222%201.15581091,15.1551679%20C1.15581091,14.6093944%201.30469549,14.0739605%201.58643112,13.6065274%20L6.04675886,6.20631041%20C6.90204941,4.78728113%208.74574991,4.3302806%2010.1647792,5.18557115%20C10.5434695,5.41381888%2010.8670246,5.72295299%2011.1122895,6.09085035%20Z'%20id='三角形'%20transform='translate(9.000000,%2010.155168)%20rotate(90.000000)%20translate(-9.000000,%20-10.155168)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"pc-pause":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16px'%20height='16px'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e暂停%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2.11查看视频'%20transform='translate(-737.000000,%20-1017.000000)'%20fill='%23FFFFFF'%3e%3cg%20id='编组-7'%20transform='translate(68.000000,%200.000000)'%3e%3cg%20id='编组'%20transform='translate(646.000000,%20970.000000)'%3e%3cg%20id='暂停-2'%20transform='translate(23.000000,%2047.000000)'%3e%3cg%20id='暂停'%20transform='translate(1.000000,%200.000000)'%3e%3crect%20id='矩形'%20x='0'%20y='0'%20width='4'%20height='16'%20rx='2'%3e%3c/rect%3e%3crect%20id='矩形备份-4'%20x='10'%20y='0'%20width='4'%20height='16'%20rx='2'%3e%3c/rect%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"pc-fullscreen":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16px'%20height='16px'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e形状%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2.11查看视频'%20transform='translate(-1236.000000,%20-1017.000000)'%20fill='%23FFFFFF'%20fill-rule='nonzero'%3e%3cg%20id='编组-7'%20transform='translate(68.000000,%200.000000)'%3e%3cg%20id='编组'%20transform='translate(646.000000,%20970.000000)'%3e%3cg%20id='形状-2'%20transform='translate(522.000000,%2047.000000)'%3e%3cpath%20d='M2.64896326,8.31181102%20C3.0069116,8.31181102%203.29792652,8.60254391%203.29792652,8.96014537%20L3.297,11.774%20L6.30847581,8.766808%20C6.56165879,8.51387038%206.97344489,8.51387038%207.22662786,8.766808%20C7.47981084,9.01974561%207.47981084,9.43113265%207.22662786,9.68407026%20L4.204,12.701%20L7.04328847,12.7018776%20C7.40123681,12.7018776%207.69225716,12.9926105%207.69225716,13.350212%20C7.6937068,13.7092671%207.40269189,14%207.04328847,14%20L3.79410695,14%20C2.80465624,14%202,13.1961236%202,12.2076317%20L2,8.96014537%20C2,8.60254391%202.29101491,8.31181102%202.64896326,8.31181102%20Z%20M12.2058931,2%20C12.6893524,2%2013.1286932,2.19192028%2013.4516066,2.50352194%20C13.4593844,2.50982425%2013.4671226,2.51718474%2013.4747181,2.52477286%20L13.4959896,2.54786191%20C13.8078935,2.87046237%2014,3.30937746%2014,3.79236826%20L14,7.03985463%20C14,7.39745609%2013.7089851,7.68818898%2013.3510367,7.68818898%20C12.9930884,7.68818898%2012.7020735,7.39745609%2012.7020735,7.03985463%20L12.702,4.213%20L9.67842852,7.23464567%20C9.55183703,7.36111448%209.38450346,7.42507571%209.21862495,7.42507571%20C9.05274645,7.42507571%208.88686795,7.36111448%208.76027646,7.23464567%20C8.50709349,6.98170806%208.50709349,6.57032102%208.76027646,6.3173834%20L11.783,3.296%20L8.95525646,3.29666869%20C8.59730811,3.29666869%208.3062932,3.0059358%208.3062932,2.64833434%20C8.3062932,2.29073289%208.59730811,2%208.95525646,2%20L12.2058931,2%20Z'%20id='全屏'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"pc-exit":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16px'%20height='16px'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e形状备份%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2.11查看视频'%20transform='translate(-1275.000000,%20-1007.000000)'%20fill='%23FFFFFF'%20fill-rule='nonzero'%3e%3cg%20id='编组-7'%20transform='translate(68.000000,%200.000000)'%3e%3cg%20id='编组备份'%20transform='translate(601.000000,%20987.000000)'%3e%3cg%20id='形状-2'%20transform='translate(606.000000,%2020.000000)'%3e%3cpath%20d='M5.89959985,8.31181102%20C6.88905056,8.31181102%207.6937068,9.11568746%207.6937068,10.1041793%20L7.6937068,13.3516657%20C7.6937068,13.7092671%207.40269189,14%207.04474354,14%20C6.6867952,14%206.39578028,13.7092671%206.39578028,13.3516657%20L6.395,10.514%20L3.43761368,13.4679588%20C3.31102219,13.5958813%203.14514369,13.6583889%202.97926519,13.6583889%20C2.81338669,13.6583889%202.64750818,13.5944276%202.5209167,13.4679588%20C2.26773372,13.2150212%202.26773372,12.8036342%202.5209167,12.5506965%20L5.465,9.608%20L2.64896326,9.60847971%20C2.29101491,9.60847971%202,9.31774682%202,8.96014537%20C2,8.60254391%202.29101491,8.31181102%202.64896326,8.31181102%20L5.89959985,8.31181102%20Z%20M8.9567061,2%20C9.31465444,2%209.60566936,2.29073289%209.60566936,2.64833434%20L9.605,5.473%20L12.556566,2.52477286%20C12.809749,2.27183525%2013.2215351,2.27183525%2013.4747181,2.52477286%20C13.7279011,2.77771048%2013.7279011,3.18909752%2013.4747181,3.44203513%20L10.523,6.39%20L13.3510313,6.39006663%20C13.7089797,6.39006663%2014,6.68079952%2014,7.03840097%20C14.0014496,7.39745609%2013.7104347,7.68818898%2013.3510313,7.68818898%20L10.1018498,7.68818898%20C9.11239908,7.68818898%208.30774284,6.88431254%208.30774284,5.89582071%20L8.30774284,2.64833434%20C8.30774284,2.29073289%208.59875775,2%208.9567061,2%20Z'%20id='全屏'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href},r={play:["m9 5 11 7-11 7Z"],pause:["M8 5v14M16 5v14"],replay:["M4 10a8 8 0 1 1 1 7","M4 4v6h6"],fullscreen:["M4 9V4h5M15 4h5v5M20 15v5h-5M9 20H4v-5"],exit:["M9 4v5H4M20 9h-5V4M15 20v-5h5M4 15h5v5"],volume:["m11 4-6 5H2v6h3l6 5Z","M15 8a6 6 0 0 1 0 8M18 5a10 10 0 0 1 0 14"],muted:["m11 4-6 5H2v6h3l6 5Z","m16 9 6 6m0-6-6 6"]};return(o,u)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["mp-video-icon",{"has-album-icon":n.name in t}])},[(e.openBlock(),e.createElementBlock("svg",_t,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r[o.name],(l,m)=>(e.openBlock(),e.createElementBlock("path",{key:m,d:l,fill:o.name==="play"?"currentColor":"none"},null,8,Ot))),128))])),o.name in t?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("img",{class:"mp-video-icon--mobile",src:i[t[o.name][0]],alt:"","aria-hidden":"true",draggable:"false"},null,8,Yt),e.createElementVNode("img",{class:"mp-video-icon--desktop",src:i[t[o.name][1]],alt:"","aria-hidden":"true",draggable:"false"},null,8,Ht)],64)):e.createCommentVNode("",!0)],2))}}),Xt={key:0,class:"mp-video-seek-preview"},Wt=["aria-label","disabled"],jt={class:"mp-video-time"},Zt=["tabindex","aria-disabled","aria-valuemax","aria-valuenow","aria-valuetext"],Kt=e.createElementVNode("span",{class:"mp-video-progress__rail"},null,-1),Gt={class:"mp-video-time"},Qt=["aria-label","aria-pressed"],Jt=["aria-label","disabled"],en=e.defineComponent({__name:"VideoControls",props:{playback:{},fullscreen:{type:Boolean},canFullscreen:{type:Boolean}},emits:["fullscreen"],setup(a,{emit:n}){const t=a,i=n,r=e.ref(),{state:o,seekable:u,displayTime:l,progress:m,bufferedProgress:y}=t.playback;function p(g){const v=r.value.getBoundingClientRect();t.playback.scrub((g.clientX-v.left)/Math.max(1,v.width)*o.duration)}function b(g){!u.value||g.pointerType==="mouse"&&g.button!==0||(r.value.setPointerCapture(g.pointerId),t.playback.beginScrub(),p(g))}function T(g){o.scrubbing&&p(g)}function B(g){o.scrubbing&&(p(g),t.playback.endScrub())}function S(g){t.playback.beginScrub(),t.playback.scrub(l.value+g),t.playback.endScrub()}return(g,v)=>(e.openBlock(),e.createElementBlock("div",{class:"mp-video-controls","data-preview-control":"",onPointerdown:v[9]||(v[9]=e.withModifiers(()=>{},["stop"])),onPointermove:v[10]||(v[10]=e.withModifiers(()=>{},["stop"])),onPointerup:v[11]||(v[11]=e.withModifiers(()=>{},["stop"])),onPointercancel:v[12]||(v[12]=e.withModifiers(()=>{},["stop"])),onClick:v[13]||(v[13]=e.withModifiers(()=>{},["stop"])),onDblclick:v[14]||(v[14]=e.withModifiers(()=>{},["stop"])),onKeydown:v[15]||(v[15]=e.withModifiers(()=>{},["stop"]))},[e.unref(o).scrubbing?(e.openBlock(),e.createElementBlock("div",Xt,[e.createTextVNode(e.toDisplayString(e.unref(ke)(e.unref(l))),1),e.createElementVNode("span",null," / "+e.toDisplayString(e.unref(ke)(e.unref(o).duration)),1)])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button","aria-label":e.unref(o).ended?"重新播放视频":e.unref(o).playing?"暂停视频":"播放视频",disabled:e.unref(o).status==="error",onClick:v[0]||(v[0]=(...L)=>g.playback.toggle&&g.playback.toggle(...L))},[e.createVNode(Ae,{name:e.unref(o).ended?"replay":e.unref(o).playing?"pause":"play"},null,8,["name"])],8,Wt),e.createElementVNode("time",jt,e.toDisplayString(e.unref(ke)(e.unref(l))),1),e.createElementVNode("div",{ref_key:"track",ref:r,class:e.normalizeClass(["mp-video-progress",{"is-scrubbing":e.unref(o).scrubbing}]),role:"slider","aria-label":"视频进度",tabindex:e.unref(u)?0:-1,"aria-disabled":!e.unref(u),"aria-valuemin":"0","aria-valuemax":e.unref(o).duration,"aria-valuenow":e.unref(l),"aria-valuetext":`${e.unref(ke)(e.unref(l))} / ${e.unref(ke)(e.unref(o).duration)}`,onPointerdown:e.withModifiers(b,["prevent"]),onPointermove:e.withModifiers(T,["prevent"]),onPointerup:e.withModifiers(B,["prevent"]),onPointercancel:v[1]||(v[1]=L=>g.playback.endScrub(!1)),onLostpointercapture:v[2]||(v[2]=L=>g.playback.endScrub(!1)),onKeydown:[v[3]||(v[3]=e.withKeys(e.withModifiers(L=>S(-5),["prevent"]),["left"])),v[4]||(v[4]=e.withKeys(e.withModifiers(L=>S(5),["prevent"]),["right"])),v[5]||(v[5]=e.withKeys(e.withModifiers(L=>S(-e.unref(o).duration),["prevent"]),["home"])),v[6]||(v[6]=e.withKeys(e.withModifiers(L=>S(e.unref(o).duration),["prevent"]),["end"]))]},[Kt,e.createElementVNode("span",{class:"mp-video-progress__buffered",style:e.normalizeStyle({width:`${e.unref(y)}%`})},null,4),e.createElementVNode("span",{class:"mp-video-progress__played",style:e.normalizeStyle({width:`${e.unref(m)}%`})},null,4),e.createElementVNode("span",{class:"mp-video-progress__thumb",style:e.normalizeStyle({left:`${e.unref(m)}%`})},null,4)],42,Zt),e.createElementVNode("time",Gt,e.toDisplayString(e.unref(ke)(e.unref(o).duration)),1),e.createElementVNode("button",{type:"button",class:"mp-video-volume","aria-label":e.unref(o).muted?"开启声音":"静音视频","aria-pressed":e.unref(o).muted,onClick:v[7]||(v[7]=(...L)=>g.playback.toggleMuted&&g.playback.toggleMuted(...L))},[e.createVNode(Ae,{name:e.unref(o).muted?"muted":"volume"},null,8,["name"])],8,Qt),e.createElementVNode("button",{type:"button","aria-label":g.fullscreen?"退出视频全屏":"视频全屏",disabled:!g.canFullscreen,onClick:v[8]||(v[8]=L=>i("fullscreen"))},[e.createVNode(Ae,{name:g.fullscreen?"exit":"fullscreen"},null,8,["name"])],8,Jt)],32))}}),tn=["data-playback"],nn=["muted","loop","preload"],an={key:1,class:"mp-video-loading",role:"status","aria-label":"视频缓冲中"},on=e.createElementVNode("span",{class:"mp-spinner"},null,-1),rn=[on],ln=["aria-label"],sn={key:3,class:"mp-resource-state",role:"alert"},un=e.createElementVNode("span",null,"视频暂时无法播放",-1),cn=["inert"],ut=e.defineComponent({inheritAttrs:!1,__name:"VideoDomRenderer",props:{initialImage:{default:()=>fe},rendering:{type:Boolean,default:!0},quality:{default:"screen"},requestVersion:{default:0},priority:{default:0},resourcePolicy:{default:()=>Ee},resolveSource:{type:Function,default:xe},media:{},videoLoader:{type:Function,default:Te},core:{},active:{type:Boolean,default:!0},enabled:{type:Boolean,default:!0},autoplay:{type:Boolean,default:!1},loadEnabled:{type:Boolean,default:!0},muted:{type:Boolean,default:!1},loop:{type:Boolean,default:!1},controls:{type:Boolean,default:!0},controlsVisible:{type:Boolean,default:!0},teleportControls:{type:Boolean,default:!1},controlsTarget:{default:"body"}},emits:["originalState","ready","error"],setup(a,{expose:n,emit:t}){const i=a,r=t,o=e.ref(!1),u=e.computed(()=>({...i.media,type:"image",src:i.media.poster||i.media.previewSrc||i.media.thumbnail})),l=e.ref(),m=e.ref(),y=e.ref(!1),p=e.ref(!1),b=lt(()=>l.value,R=>r("error",R)),T=nt(()=>l.value,()=>i.media,()=>i.active&&i.loadEnabled,()=>i.videoLoader,R=>{b.state.status="error",b.state.buffering=!1,r("error",R)});function B(){b.state.status="loading",b.state.buffering=!0,T()}let S=()=>{};const{state:g}=b,v=e.computed(()=>i.controls&&i.active&&i.enabled&&i.controlsVisible);function L(){return i.teleportControls?m.value.closest(".mp-viewer"):i.core.containerRef.value}async function $(){if(p.value)try{document.fullscreenElement===L()?await document.exitFullscreen():document.fullscreenEnabled?await L().requestFullscreen():l.value.webkitEnterFullscreen()}catch(R){r("error",Me(R))}}function w(){y.value=document.fullscreenElement===L()}function c(){!i.active||!i.enabled?b.pause():i.autoplay&&b.play()}function k(){document.hidden&&b.pause()}e.onMounted(()=>{g.muted=l.value.muted,p.value=document.fullscreenEnabled||"webkitEnterFullscreen"in l.value,document.addEventListener("fullscreenchange",w),document.addEventListener("visibilitychange",k),S=e.watch(()=>[i.active,i.enabled,i.autoplay],c,{flush:"post"}),c()}),e.onBeforeUnmount(()=>{S(),b.dispose(),document.removeEventListener("fullscreenchange",w),document.removeEventListener("visibilitychange",k),document.fullscreenElement===L()&&document.exitFullscreen().catch(()=>{})});const h=e.computed(()=>({transform:`translate(-50%, -50%) translate3d(${i.core.state.offsetX}px, ${i.core.state.offsetY}px, 0)`})),f=e.computed(()=>({width:`${i.core.mediaSize.value.width*i.core.displayScale.value}px`,height:`${i.core.mediaSize.value.height*i.core.displayScale.value}px`,transform:`rotate(${i.core.state.rotation}deg)`}));function E(){o.value=!0,i.core.setMediaElement(l.value),r("ready","screen")}function C(){return{image:o.value?At(l.value,i.core.mediaSize.value):i.core.mediaRef.value,scale:1}}return n({togglePlayback:b.toggle,toggleFullscreen:$,playback:b,captureFrame:C}),(R,N)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"host",ref:m,class:"mp-dom-renderer mp-video-player","data-playback":e.unref(g).ended?"ended":e.unref(g).playing?"playing":"paused"},[o.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(_e,{key:0,media:u.value,core:R.core,"initial-image":R.initialImage,rendering:R.rendering,quality:R.quality,"request-version":R.requestVersion,"load-enabled":R.loadEnabled,priority:R.priority,"resource-policy":R.resourcePolicy,"resolve-source":R.resolveSource,onReady:N[0]||(N[0]=I=>r("ready",I)),onError:N[1]||(N[1]=I=>r("error",I)),onOriginalState:N[2]||(N[2]=(I,z)=>r("originalState",I,z))},null,8,["media","core","initial-image","rendering","quality","request-version","load-enabled","priority","resource-policy","resolve-source"])),e.createElementVNode("div",{class:"mp-dom-renderer__frame",style:e.normalizeStyle([h.value,{visibility:o.value?"inherit":"hidden"}])},[e.createElementVNode("video",e.mergeProps({ref_key:"videoRef",ref:l,class:"mp-dom-renderer__node",muted:R.muted,loop:R.loop,playsinline:"","webkit-playsinline":"true",crossorigin:"anonymous",preload:R.active&&R.loadEnabled?"auto":"none",style:f.value},e.toHandlers(e.unref(b).events,!0),{onPlaying:E}),null,16,nn)],4),R.active&&R.enabled&&e.unref(g).buffering&&e.unref(g).status!=="error"?(e.openBlock(),e.createElementBlock("div",an,rn)):e.createCommentVNode("",!0),v.value&&!e.unref(g).playing&&!e.unref(g).buffering&&e.unref(g).status!=="error"?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"mp-video-center-play","data-preview-control":"","aria-label":e.unref(g).ended?"重新播放":"开始播放视频",onPointerdown:N[3]||(N[3]=e.withModifiers(()=>{},["stop"])),onPointerup:N[4]||(N[4]=e.withModifiers(()=>{},["stop"])),onClick:N[5]||(N[5]=e.withModifiers((...I)=>e.unref(b).toggle&&e.unref(b).toggle(...I),["stop"]))},[e.createVNode(Ae,{name:e.unref(g).ended?"replay":"play"},null,8,["name"])],40,ln)):e.createCommentVNode("",!0),e.unref(g).status==="error"?(e.openBlock(),e.createElementBlock("div",sn,[un,e.createElementVNode("button",{type:"button",onClick:e.withModifiers(B,["stop"])},"重新加载视频")])):e.createCommentVNode("",!0),R.controls&&R.active&&R.enabled?(e.openBlock(),e.createBlock(e.Teleport,{key:4,to:R.controlsTarget,disabled:!R.teleportControls},[e.createElementVNode("div",{class:e.normalizeClass(["mp-video-control-layer",{"is-hidden":!v.value}]),inert:!v.value},[e.createVNode(en,{playback:e.unref(b),fullscreen:y.value,"can-fullscreen":p.value,onFullscreen:$},null,8,["playback","fullscreen","can-fullscreen"])],10,cn)],8,["to","disabled"])):e.createCommentVNode("",!0)],8,tn))}}),dn=["data-scale","data-rotation","data-live-holding"],ct=e.defineComponent({__name:"PreviewStage",props:{media:{},videoLoader:{type:Function,default:Te},livePlaying:{type:Boolean,default:!1},active:{type:Boolean,default:!0},requestVersion:{default:0},loadEnabled:{type:Boolean,default:!0},resourcePolicy:{default:()=>Ee},resolveSource:{type:Function,default:xe},inactiveResetDuration:{default:0},disabled:{type:Boolean,default:!1},externalGestures:{type:Boolean,default:!1},controlsVisible:{type:Boolean,default:!0},teleportControls:{type:Boolean,default:!1},controlsTarget:{default:"body"},rendering:{type:Boolean,default:!0},paging:{type:Boolean,default:!1},initialImage:{default:()=>fe},quality:{default:"screen"}},emits:["tap","doubleTap","scale","swipeDownProgress","close","previous","next","pageDrag","pageRelease","ready","error","originalState","liveState","liveEnded"],setup(a,{expose:n,emit:t}){const i=a,r=t,o=e.ref(!1),u=e.ref("loading"),l=at({motionActive:()=>i.paging,interactive:()=>i.active&&!i.disabled,zoomable:()=>!0,doubleTapZoom:()=>Qe(i.media,l.core.viewportSize.value),zoomLimit:()=>Math.max(8,Qe(i.media,l.core.viewportSize.value)*2),holdable:()=>i.media.type==="live-photo"&&b.value==="ready"&&u.value==="idle",onHoldStart:()=>{o.value=!0},onHoldEnd:()=>{o.value=!1,r("liveEnded")},onTap:()=>r("tap"),onDoubleTap:()=>r("doubleTap"),onScale:w=>{i.active&&r("scale",w)},onSwipeDownProgress:w=>{i.active&&r("swipeDownProgress",w)},onSwipeDownClose:()=>r("close"),onSwipeLeft:()=>r("next"),onSwipeRight:()=>r("previous"),onPageDrag:w=>{i.active&&r("pageDrag",w)},onPageRelease:(w,c)=>r("pageRelease",w,c)}),m=l.core.containerRef,y=l.core.downDragStyle,p=l.core.state,b=e.ref("loading"),T=e.ref("thumbnail"),B=e.ref(),S=e.computed(()=>i.media.type==="video"?ut:i.media.type==="live-photo"?st:_e),g=e.computed(()=>T.value==="full"||i.quality==="full"?"full":i.quality);e.watch([()=>i.media.id,()=>i.media.src,()=>i.media.previewSrc,()=>i.media.thumbnail],()=>{T.value="thumbnail"}),e.watch(()=>i.media.id,()=>{b.value="loading",l.core.setRotation(0)}),e.watch([()=>i.media.width,()=>i.media.height],([w,c])=>{l.core.setMediaSize({width:w,height:c})},{immediate:!0}),e.watch(()=>i.active,w=>{w||l.core.resetTransform(i.inactiveResetDuration)}),e.watch(()=>i.disabled,w=>{w&&l.core.cancelGesture(!0)});function v(w){w==="full"&&(T.value=w),b.value="ready",r("ready",w)}function L(w){u.value=w,r("liveState",w)}const $=e.computed(()=>i.externalGestures?{}:{wheel:l.onWheel,pointerdown:l.onPointerDown,pointermove:l.onPointerMove,pointerup:l.onPointerUp,pointercancel:l.onPointerCancel,lostpointercapture:l.onPointerCancel});return n({onPointerDown:l.onPointerDown,onPointerMove:l.onPointerMove,onPointerUp:l.onPointerUp,onPointerCancel:l.onPointerCancel,onWheel:l.onWheel,readiness:b,core:l.core,rotateBy:l.core.rotateBy,resetTransform:l.core.resetTransform,zoomIn:()=>l.core.zoomTo(p.level*1.5,void 0,!0),zoomOut:()=>l.core.zoomTo(p.level/1.5,void 0,!0),togglePlayback:()=>B.value.togglePlayback(),toggleFullscreen:()=>B.value.toggleFullscreen(),captureFrame:()=>i.media.type==="live-photo"||i.media.type==="video"?B.value.captureFrame():{image:l.core.mediaRef.value,scale:1}}),(w,c)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({ref_key:"containerRef",ref:m,class:["mp-stage",{"is-zoomed":e.unref(p).level>1,"is-dismissing":e.unref(p).draggingDown}],style:e.unref(y),"data-scale":e.unref(p).level.toFixed(3),"data-rotation":e.unref(p).rotation,"data-live-holding":o.value,onContextmenu:c[3]||(c[3]=k=>{w.media.type==="live-photo"&&k.preventDefault()})},e.toHandlers($.value,!0)),[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.value),e.mergeProps({ref_key:"rendererRef",ref:B,media:w.media},w.media.type==="video"?{videoLoader:w.videoLoader}:{},{"initial-image":w.initialImage,rendering:w.rendering,core:e.unref(l).core,quality:g.value,"request-version":w.requestVersion,"load-enabled":w.loadEnabled,priority:w.active?0:2,"resource-policy":w.resourcePolicy,"resolve-source":w.resolveSource,playing:(w.livePlaying||o.value)&&w.active,enabled:!w.disabled,"controls-visible":w.controlsVisible,"teleport-controls":w.teleportControls,"controls-target":w.controlsTarget,active:w.active,onReady:v,onError:c[0]||(c[0]=k=>r("error",k)),onOriginalState:c[1]||(c[1]=(k,h)=>r("originalState",k,h)),onLiveState:L,onLiveEnded:c[2]||(c[2]=k=>r("liveEnded"))}),null,16,["media","initial-image","rendering","core","quality","request-version","load-enabled","priority","resource-policy","resolve-source","playing","enabled","controls-visible","teleport-controls","controls-target","active"]))],16,dn))}});function fn(a,n){const t=e.ref(new Set),i=e.ref("idle"),r=e.ref(""),o=e.ref(0),u=e.ref("");function l(){u.value="",i.value="idle",r.value="",o.value=0}function m(){i.value!=="ready"&&(i.value="loading",r.value="",o.value++,t.value=new Set([...t.value,a().id]))}function y(p,b){i.value=p,r.value=b,n(a(),p,b)}return{originalIds:t,originalStatus:i,originalReason:r,originalRequest:o,readyId:u,reset:l,requestOriginal:m,updateOriginal:y}}function mn(a,n,t,i={}){const r=e.ref(0),o=e.reactive({offset:0,dragging:!1,settling:!1,preparing:!1,grabbed:!1,duration:360}),u={readOffset:()=>o.offset,flushLayout:()=>{},...i},l=16,m=()=>n()+l,y=e.computed(()=>[r.value-1,r.value,r.value+1].filter(f=>f>=0&&f<a()));let p=setTimeout(()=>{},0),b=()=>{},T=0,B=0;function S(){T+=1,clearTimeout(p),b(),o.settling=!1,o.preparing=!1}e.onBeforeUnmount(S);function g(){if(!o.settling&&!o.preparing)return;const f=o.preparing?o.offset:u.readOffset();S(),o.offset=f,o.grabbed=!0}function v(f){if(f===0){S(),o.dragging=!1,o.grabbed=!1,o.offset=0,B=0;return}o.dragging||(g(),B=o.offset,S(),o.dragging=!0,o.grabbed=!0);const E=B+f,C=r.value===0&&E>0||r.value===a()-1&&E<0;o.offset=C?Math.sign(E)*Math.sqrt(Math.abs(E))*6:E}async function L(f,E=0){S();const C=T,R=r.value;o.offset+=(f-R)*m();const N=Math.abs(o.offset),I=ae(N/m(),0,1),z=ae(220+I*140-Math.min(Math.abs(E),2)*35,240,360);o.duration=matchMedia("(prefers-reduced-motion: reduce)").matches?0:z,r.value=f,o.dragging=!1,o.grabbed=!1,o.preparing=!0,f!==R&&t(f),await e.nextTick(),C===T&&(u.flushLayout(),o.preparing=!1,o.settling=!0,o.offset=0,await new Promise(_=>{b=_,p=setTimeout(_,o.duration)}),C===T&&(o.settling=!1,b=()=>{}))}function $(f,E){const C=o.offset,R=Math.abs(E)>.35&&Math.abs(f)>16,N=Math.sign(R?E:C),I=R||Math.abs(C)>n()*.14;L(ae(r.value-(I?N:0),0,a()-1),E)}function w(){o.grabbed&&!o.dragging&&L(r.value)}function c(f){if(o.dragging)return;g();const E=ae(r.value+f,0,a()-1);E!==r.value?L(E):w()}function k(f){S(),r.value=f,o.offset=0,o.dragging=!1,o.grabbed=!1}function h(f){r.value=f}return{index:r,state:o,slots:y,stride:m,drag:v,release:$,go:c,grab:g,resume:w,reset:k,rebase:h,cancel:S}}function dt(a,n,t){const i=Math[t==="cover"?"max":"min"](n.width/a.width,n.height/a.height);return{x:n.left+n.width/2,y:n.top+n.height/2,width:a.width*i,height:a.height*i,rotation:0,clip:{left:n.left,top:n.top,width:n.width,height:n.height},radius:0}}function pn(a,n,t){const i=(r,o)=>r+(o-r)*t;return{x:i(a.x,n.x),y:i(a.y,n.y),width:i(a.width,n.width),height:i(a.height,n.height),rotation:i(a.rotation,n.rotation),radius:i(a.radius,n.radius),clip:{left:i(a.clip.left,n.clip.left),top:i(a.clip.top,n.clip.top),width:i(a.clip.width,n.clip.width),height:i(a.clip.height,n.clip.height)}}}function Je(a){const n=a.rotation*Math.PI/180,t=Math.abs(Math.cos(n))*a.width+Math.abs(Math.sin(n))*a.height,i=Math.abs(Math.sin(n))*a.width+Math.abs(Math.cos(n))*a.height,r=Math.max(a.x-t/2,a.clip.left),o=Math.max(a.y-i/2,a.clip.top);return{left:r,top:o,width:Math.max(0,Math.min(a.x+t/2,a.clip.left+a.clip.width)-r),height:Math.max(0,Math.min(a.y+i/2,a.clip.top+a.clip.height)-o)}}function gn(a,n,t,i,r){const o=Je(a),u=Je(n),l=Math.min(o.width/u.width,o.height/u.height),m={width:Math.max(o.width,u.width,1),height:Math.max(o.height,u.height,1)},y=128,p=[],b=[];for(let T=0;T<=y;T+=1){const B=T/y,S=pn(a,n,B);let g;if(r)g={left:o.left+(u.left-o.left)*B,top:o.top+(u.top-o.top)*B,width:o.width+(u.width-o.width)*B,height:o.height+(u.height-o.height)*B};else{const $=Math.min(B/.78,1),w=1-$*$*$*($*($*6-15)+10),c=l+(1-l)*B,k=u.width*c+(o.width-u.width*l)*w,h=u.height*c+(o.height-u.height*l)*w;g={left:o.left+o.width/2+(u.left+u.width/2-o.left-o.width/2)*B-k/2,top:o.top+o.height/2+(u.top+u.height/2-o.top-o.height/2)*B-h/2,width:k,height:h}}const v=Math.max(g.width,.001)/m.width,L=Math.max(g.height,.001)/m.height;p.push({transform:`scale(${1/v},${1/L}) translate3d(${S.x-g.left}px,${S.y-g.top}px,0) rotate(${S.rotation}deg) scale(${S.width/i.width}) translate3d(${-i.width/2}px,${-i.height/2}px,0)`,offset:B}),b.push({transform:`translate3d(${g.left-t.left}px,${g.top-t.top}px,0) scale(${v},${L})`,...a.radius===0&&n.radius===0?{}:{borderRadius:`${S.radius/v}px / ${S.radius/L}px`},offset:B})}return{pictures:p,masks:b,maskSize:m}}function vn(){let a={kind:"idle"};function n(){a.kind==="playing"&&a.animations.forEach(r=>r.cancel()),a={kind:"idle"}}function t(){return a.kind!=="playing"||!a.entering?{kind:"inactive"}:(a.entering=!1,a.animations.forEach(r=>r.reverse()),a.finished=Promise.all(a.animations.map(r=>r.finished)).then(()=>{}).catch(()=>{}),{kind:"reversing",finished:a.finished})}async function i(r,o,u,l,m,y,p,b,T=b?0:1,B=340){n();const S=Math.max(l.width,m.width),g=S*m.height/m.width,v=Math.min(devicePixelRatio,2,Math.sqrt(te.maxCanvasPixels/(S*g)));r.width=Math.max(1,Math.round(S*v)),r.height=Math.max(1,Math.round(g*v)),r.style.width=`${S}px`,r.style.height=`${g}px`;const L=r.getContext("2d");(E=>{L.clearRect(0,0,r.width,r.height),L.imageSmoothingEnabled=!0,L.imageSmoothingQuality="high",L.drawImage(E,0,0,r.width,r.height)})(u);const w=gn(l,m,y,{width:S,height:g},b);o.style.width=`${w.maskSize.width}px`,o.style.height=`${w.maskSize.height}px`,o.style.borderRadius="0";const k={duration:matchMedia("(prefers-reduced-motion: reduce)").matches?0:Math.max(0,B),easing:"cubic-bezier(.2,.78,.2,1)",fill:"both"},h=[r.animate(w.pictures,k),o.animate(w.masks,k),p.animate([{opacity:T},{opacity:b?1:0}],k)],f=Promise.all(h.map(E=>E.finished)).then(()=>{}).catch(()=>{});a={kind:"playing",entering:b,animations:h,finished:f},await f}return{play:i,cancel:n,reverseOpening:t}}function ft(a,n){const t=Math.max(a.left,n.left),i=Math.max(a.top,n.top);return{left:t,top:i,width:Math.max(0,Math.min(a.left+a.width,n.left+n.width)-t),height:Math.max(0,Math.min(a.top+a.height,n.top+n.height)-i)}}function hn(a,n){let t={...n};const i=/^(auto|scroll|overlay)$/;for(let r=a.parentElement;r!==document.documentElement;r=r.parentElement){const o=getComputedStyle(r),u=i.test(o.overflowX),l=i.test(o.overflowY);if(!u&&!l)continue;const m=r.getBoundingClientRect(),y=Number(r.style.getPropertyValue("--mp-transition-inset-top"));t=ft(t,{left:u?m.left:t.left,top:l?m.top+y:t.top,width:u?m.width:t.width,height:l?Math.max(0,m.height-y):t.height})}return t}function et(a,n,t){if(a.kind==="unavailable")return a;const i=dt(n,a.element.getBoundingClientRect(),"cover");return i.clip=ft(i.clip,hn(a.element,t)),i.clip.width<=0||i.clip.height<=0?{kind:"unavailable"}:(i.radius=parseFloat(getComputedStyle(a.element).borderTopLeftRadius)||0,{kind:"element",element:a.element,frame:i,viewport:t})}const yn=["aria-label","data-phase","data-chrome","inert"],wn=["aria-hidden","inert","data-media-id"],bn={key:0,class:"mp-resource-state mp-viewer__loading mp-viewer__pages",role:"status","aria-label":"加载中"},kn=e.createElementVNode("span",{class:"mp-spinner","aria-hidden":"true"},null,-1),Mn=[kn],En=["inert"],xn={class:"mp-viewer__toolbar"},Sn={class:"mp-viewer__title"},Cn=["disabled"],Rn={class:"mp-viewer__footer"},Bn={class:"mp-viewer__counter","aria-live":"polite"},Pn={key:1,class:"mp-viewer__detail"},Ln=e.defineComponent({inheritAttrs:!1,__name:"MediaPreview",props:{items:{},mobile:{type:Boolean,default:!1},teleportDisabled:{type:Boolean,default:!1},keyboardEnabled:{type:Boolean,default:!0},gesturesEnabled:{type:Boolean,default:!0},persistentChrome:{type:Boolean,default:!1},videoLoader:{type:Function,default:Te},resourcePolicy:{default:()=>Ee},resolveImageSource:{type:Function,default:xe},hasMore:{type:Boolean,default:!1},appearance:{default:"dark"},closeDuration:{default:240},transitionDuration:{default:340},resolveAnchor:{type:Function,default:()=>({kind:"unavailable"})}},emits:["open","opened","ready","closing","close","change","error","originalState","loadMore","phaseChange","chromeChange"],setup(a,{expose:n,emit:t}){const i=e.useAttrs(),r=a,o=t,u=e.ref("closed");e.watch(u,s=>o("phaseChange",s),{flush:"sync"});const l=`mp-video-controls-${e.getCurrentInstance().uid}`,m=e.ref(),y=e.ref(),p=fn(()=>A.value,(s,M,x)=>o("originalState",s,M,x)),{originalIds:b,originalStatus:T,originalReason:B,originalRequest:S,readyId:g}=p;let v="",L=-1;const $=e.ref(),w=e.ref(),c=e.ref(),k=e.ref(!1),h=e.ref(0),f=e.ref(!0);e.watch(f,s=>o("chromeChange",s),{flush:"sync"});const E=e.ref(!1),C=e.ref("loading"),R=e.ref(1),N=e.ref(!1),I=e.ref(1),z=e.ref(!1),_=e.ref(!1),q=e.shallowRef(fe);let ge="",ee={kind:"unavailable"};const ie=new Map,X=new Map;function Fe(s){return M=>{X.set(s,M)}}function Se(s){return M=>{ie.set(s,M)}}const F=mn(()=>r.items.length,()=>I.value,s=>{v=r.items[s].id,p.reset(),R.value=1,E.value=!1,C.value="loading",o("change",s),we(s)},{readOffset:()=>new DOMMatrixReadOnly(getComputedStyle(X.get(v)).transform).m41,flushLayout:()=>{X.get(v).getBoundingClientRect()}}),V=F.index,A=e.computed(()=>r.items[V.value]),ve=F.slots,Ve=e.computed(()=>u.value==="opening"||k.value?[V.value]:ve.value);e.watch(ve,()=>{e.nextTick(()=>{const s=new Set(ve.value.map(M=>r.items[M].id));for(const M of ie.keys())s.has(M)||ie.delete(M);for(const M of X.keys())s.has(M)||X.delete(M)})});const Z={close:P,setChromeVisible:s=>{f.value=s},goTo:Ye,previous:()=>F.go(-1),next:()=>F.go(1),rotate:(s=90)=>Y().rotateBy(s),reset:()=>Y().resetTransform(),zoomIn:()=>Y().zoomIn(),zoomOut:()=>Y().zoomOut(),original:p.requestOriginal,fullscreen:K,togglePlayback:()=>Y().togglePlayback(),toggleLive:()=>{u.value!=="open"||C.value==="loading"||C.value==="error"||(E.value=!E.value)},toggleDetail:()=>{N.value=!N.value}},oe=vn();let ye=Promise.resolve(),W=0,le="",j=!1,se="",re="",me=()=>{},G={kind:"idle"},ue=0;const he=()=>new Promise(s=>requestAnimationFrame(()=>s())),pe=new ResizeObserver(()=>{const s=`${y.value.clientWidth}:${y.value.clientHeight}`,M=`${m.value.clientWidth}:${m.value.clientHeight}`,x=se!==""&&se!==s,D=re!==""&&re!==M;se=s,re=M,I.value=y.value.clientWidth,x&&u.value==="open"&&F.reset(V.value),D&&oe.cancel()});function we(s){r.hasMore&&s>=r.items.length-3&&L!==r.items.length&&(L=r.items.length,o("loadMore",s))}function be(s,M){s===V.value&&(_.value&&(g.value=A.value.id),o("ready",s,M))}function Oe(s,M,x){s===V.value&&p.updateOriginal(M,x)}e.watch(()=>r.items.map(s=>s.id),s=>{if(u.value==="closed")return;if(s.length===0){W++,oe.cancel(),F.cancel(),ue++,G.kind==="active"&&G.animation.cancel(),pe.disconnect(),se="",re="",me(),o("closing"),u.value="closed",q.value=fe,ie.clear(),X.clear(),document.body.style.overflow=le,o("close");return}const M=s.indexOf(v),x=M>=0?M:Math.min(V.value,s.length-1);(x!==V.value||M<0)&&(M>=0?F.rebase(x):(F.reset(x),v=s[x],p.reset(),R.value=1,E.value=!1,o("change",x))),we(x)},{flush:"sync"});function Ye(s){if(!Number.isInteger(s)||s<0||s>=r.items.length)throw new RangeError("无效的预览下标");if(!(u.value!=="open"||s===V.value)){if(Math.abs(s-V.value)===1){F.go(s-V.value);return}F.reset(s),v=r.items[s].id,p.reset(),R.value=1,E.value=!1,C.value="loading",o("change",s),we(s)}}function He(){r.persistentChrome||(f.value=!f.value)}function Y(){return ie.get(v)}function $e(s){me();const M=s.element.classList.contains("mp-transition-source");s.element.classList.add("mp-transition-source"),me=()=>{s.element.classList.toggle("mp-transition-source",M)}}function Ne(){const s=m.value.getBoundingClientRect();return{left:s.left,top:s.top,width:s.width,height:s.height}}function Ce(){return y.value.getBoundingClientRect()}function Re(s=1){const M=Ce(),x=Y().core,D=x.state,ne=D.downScale;return{x:M.left+M.width/2+F.state.offset+D.offsetX*ne*s+D.downOffsetX,y:M.top+M.height/2+D.offsetY*ne*s+D.downOffsetY,width:x.mediaSize.value.width*x.displayScale.value*ne*s,height:x.mediaSize.value.height*x.displayScale.value*ne*s,rotation:D.rotation,clip:M,radius:0}}async function d(s=0){if(!Number.isInteger(s)||s<0||s>=r.items.length)throw new RangeError("无效的预览下标");if(u.value==="closing"&&await ye,u.value!=="closed"||j)return;const M=++W;if(le=document.body.style.overflow,document.body.style.overflow="hidden",F.reset(s),v=r.items[s].id,p.reset(),R.value=1,f.value=!0,E.value=!1,C.value="loading",N.value=!1,h.value=0,_.value=!1,u.value="opening",q.value=fe,z.value=!1,ge=A.value.id,ee={kind:"unavailable"},k.value=!1,o("open",s),await e.nextTick(),!(M!==W||j)){I.value=y.value.clientWidth,pe.observe(m.value),pe.observe(y.value);try{const x=await r.resolveAnchor(A.value);if(M!==W)return;const D=et(x,A.value,Ne());ee=D,q.value=Rt(D),z.value=q.value.kind==="image"||Y().readiness==="ready";const ne=Ce();if(D.kind==="element"){const Pe=Y().readiness==="ready"?Y().core.mediaRef.value:q.value.kind==="image"?q.value.image:Ge();if(k.value=!0,await e.nextTick(),M!==W||j)return;$e(D),await oe.play($.value,w.value,Pe,D.frame,dt(A.value,ne,"contain"),D.viewport,c.value,!0,0,r.transitionDuration)}else h.value=1,k.value=!1,await O(!0)}catch(x){if(M!==W)return;o("error",Me(x),A.value)}M!==W||j||(h.value=1,u.value="open",await e.nextTick(),!(M!==W||j)&&(Y().core.renderNow(),await he(),!(M!==W||j)&&(k.value=!1,oe.cancel(),me(),o("opened",s),await he(),!(M!==W||j||u.value!=="open")&&(_.value=!0,we(s)))))}}function P(){return u.value==="closed"||u.value==="closing"||(ye=U()),ye}async function U(){F.grab();const s=h.value,M=u.value==="opening",x=!M&&Y().readiness==="ready"?Y().captureFrame():{image:q.value.kind==="image"&&A.value.id===ge?q.value.image:Ge(),scale:1};let D=M?{kind:"opening"}:{kind:"captured",frame:Re(x.scale)};M||Y().core.cancelGesture(!0);const ne=++W,Pe=M?oe.reverseOpening():{kind:"inactive"};Pe.kind==="inactive"&&oe.cancel(),F.cancel(),E.value=!1,u.value="closing",o("closing");try{if(await e.nextTick(),ne!==W||j||(document.fullscreenElement===m.value&&(await document.exitFullscreen(),await he(),await he(),D.kind==="captured"&&(D.frame=Re(x.scale))),ne!==W||j))return;const Xe=M?ee:await r.resolveAnchor(A.value);if(ne!==W||j)return;const Ie=M?ee:et(Xe,A.value,Ne());if(Pe.kind==="reversing")await Pe.finished;else if(D.kind==="captured"&&Ie.kind==="element"){const gt=x.image;$e(Ie),k.value=!0,await e.nextTick(),await oe.play($.value,w.value,gt,D.frame,Ie.frame,Ie.viewport,c.value,!1,s,r.closeDuration)}else k.value=!1,await O(!1)}catch(Xe){o("error",Me(Xe),A.value),await O(!1)}ne!==W||j||(pe.disconnect(),se="",re="",h.value=0,u.value="closed",q.value=fe,ie.clear(),X.clear(),me(),document.body.style.overflow=le,o("close"),await e.nextTick(),oe.cancel())}async function O(s){const M=++ue,x=s?0:Number(getComputedStyle(m.value).opacity);G.kind==="active"&&G.animation.cancel(),m.value.style.opacity=String(x);const D=m.value.animate([{opacity:x},{opacity:s?1:0}],{duration:matchMedia("(prefers-reduced-motion: reduce)").matches?0:180,fill:"forwards"});G={kind:"active",animation:D},await D.finished.catch(()=>{}),!(M!==ue||j)&&(m.value.style.opacity=s?"1":"0",D.cancel(),G={kind:"idle"})}async function K(){if(document.fullscreenEnabled)try{document.fullscreenElement===m.value?await document.exitFullscreen():await m.value.requestFullscreen()}catch(s){o("error",Me(s),A.value)}}function Q(s){u.value!=="open"||!r.gesturesEnabled||Y().onPointerDown(s,Ce())&&F.grab()}function ce(s){u.value==="open"&&(Y().onPointerUp(s),u.value==="open"&&F.resume())}function J(s){u.value==="open"&&(Y().onPointerCancel(s),u.value==="open"&&F.resume())}function de(s){u.value==="open"&&Y().onPointerMove(s)}function De(s){u.value==="open"&&r.gesturesEnabled&&Y().onWheel(s)}function Be(s){u.value==="open"&&(h.value=1-s)}function ze(s){u.value==="open"&&F.drag(s)}function mt(s,M){u.value==="open"&&(E.value=!1,F.release(s,M))}function pt(s){R.value=s,s>1.02&&!r.persistentChrome&&(f.value=!1)}function We(s){if(!(u.value==="closed"||!r.keyboardEnabled)&&!(s.key==="Escape"&&document.fullscreenElement===m.value)){if(s.key==="Escape"){s.preventDefault(),P();return}if(!(u.value!=="open"||s.target.matches("input, textarea, select, button, [role='slider']"))){if(A.value.type==="video"){if(s.code==="Space"){s.preventDefault(),Y().togglePlayback();return}if(s.key==="Enter"){s.preventDefault(),Y().toggleFullscreen();return}}if(A.value.type==="live-photo"&&s.code==="Space"){s.preventDefault(),Z.toggleLive();return}s.key==="ArrowLeft"&&(s.preventDefault(),F.go(-1)),s.key==="ArrowRight"&&(s.preventDefault(),F.go(1)),(s.key==="+"||s.key==="=")&&Z.zoomIn(),s.key==="-"&&Z.zoomOut(),s.key==="0"&&Z.reset()}}}return e.onMounted(()=>{document.addEventListener("keydown",We)}),e.onBeforeUnmount(()=>{j=!0,W+=1,oe.cancel(),ue+=1,G.kind==="active"&&G.animation.cancel(),me(),pe.disconnect(),document.removeEventListener("keydown",We),u.value!=="closed"&&(document.body.style.overflow=le)}),n({open:d,...Z,currentIndex:V,phase:u,element:m,mediaElement:()=>Y().core.mediaRef.value,canvasElement:()=>Y().core.canvasRef.value}),(s,M)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:s.teleportDisabled},[u.value!=="closed"?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,ref_key:"root",ref:m},e.unref(i),{class:["mp-viewer",{"is-mobile":s.mobile,"is-album":s.appearance==="album"}],role:"dialog","aria-modal":"true","aria-label":A.value.title,"data-phase":u.value,"data-chrome":f.value?"visible":"hidden",inert:u.value==="closing",onPointerdown:Q,onPointermove:de,onPointerup:ce,onPointercancel:J,onLostpointercapture:J,onWheel:De}),[e.createElementVNode("div",{ref_key:"backdrop",ref:c,class:"mp-viewer__backdrop",style:e.normalizeStyle({opacity:h.value})},null,4),e.createElementVNode("div",{id:l,class:"mp-viewer__video-controls"}),e.createElementVNode("div",{ref_key:"mediaViewport",ref:y,class:e.normalizeClass(["mp-viewer__pages",{"is-transitioning":k.value}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Ve.value,x=>(e.openBlock(),e.createElementBlock("div",{key:s.items[x].id,ref_for:!0,ref:Fe(s.items[x].id),class:"mp-viewer__page",style:e.normalizeStyle({transform:`translate3d(${(x-e.unref(V))*e.unref(F).stride()+e.unref(F).state.offset}px,0,0)`,transition:e.unref(F).state.settling?`transform ${e.unref(F).state.duration}ms cubic-bezier(.22,.61,.36,1)`:"none"}),"aria-hidden":x!==e.unref(V),inert:x!==e.unref(V),"data-media-id":s.items[x].id},[e.createVNode(ct,{ref_for:!0,ref:Se(s.items[x].id),media:s.items[x],"video-loader":s.videoLoader,rendering:u.value==="open",paging:e.unref(F).state.dragging||e.unref(F).state.preparing||e.unref(F).state.settling||e.unref(F).state.grabbed,"external-gestures":"",active:x===e.unref(V),disabled:u.value!=="open"||!s.gesturesEnabled,"inactive-reset-duration":e.unref(F).state.duration,"resource-policy":s.resourcePolicy,"resolve-source":s.resolveImageSource,"request-version":x===e.unref(V)?e.unref(S):0,"load-enabled":x===e.unref(V)?_.value&&u.value==="open":u.value==="open"&&!k.value&&e.unref(g)===A.value.id,"teleport-controls":"","controls-target":`#${l}`,"controls-visible":f.value&&h.value===1,"initial-image":s.items[x].id===e.unref(ge)?q.value:e.unref(fe),quality:x===e.unref(V)&&e.unref(b).has(s.items[x].id)?"full":x===e.unref(V)?"screen":"thumbnail","live-playing":E.value,onTap:He,onScale:pt,onPageDrag:ze,onPageRelease:mt,onClose:P,onSwipeDownProgress:Be,onLiveState:D=>{x===e.unref(V)&&(C.value=D)},onLiveEnded:()=>{x===e.unref(V)&&(E.value=!1)},onReady:D=>be(x,D),onOriginalState:(D,ne)=>Oe(x,D,ne),onError:D=>o("error",D,s.items[x])},null,8,["media","video-loader","rendering","paging","active","disabled","inactive-reset-duration","resource-policy","resolve-source","request-version","load-enabled","controls-target","controls-visible","initial-image","quality","live-playing","onLiveState","onLiveEnded","onReady","onOriginalState","onError"])],12,wn))),128))],2),e.withDirectives(e.createElementVNode("div",{ref_key:"transitionMask",ref:w,class:"mp-shared-clip","aria-hidden":"true"},[e.createElementVNode("canvas",{ref_key:"transitionCanvas",ref:$,class:"mp-shared-transition"},null,512)],512),[[e.vShow,k.value]]),u.value==="opening"&&!z.value?(e.openBlock(),e.createElementBlock("div",bn,Mn)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["mp-viewer__chrome",{"is-hidden":!f.value||u.value!=="open"||h.value<1}]),inert:!f.value||u.value!=="open"||h.value<1},[e.renderSlot(s.$slots,"toolbar",{media:A.value,index:e.unref(V),total:s.items.length,scale:R.value,controls:Z,originalStatus:e.unref(T),originalReason:e.unref(B),livePlaying:E.value,liveStatus:C.value},()=>[e.createElementVNode("header",xn,[e.createElementVNode("button",{type:"button","aria-label":"关闭预览",onClick:P},"‹"),e.createElementVNode("div",Sn,[e.createElementVNode("strong",null,e.toDisplayString(A.value.title),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(V)+1)+" / "+e.toDisplayString(s.items.length),1)]),e.createElementVNode("button",{type:"button","aria-label":"旋转图片",disabled:A.value.type==="video",onClick:M[0]||(M[0]=x=>Z.rotate())}," ↻ ",8,Cn)]),e.createElementVNode("footer",Rn,[A.value.type!=="video"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{type:"button","aria-label":"缩小",onClick:M[1]||(M[1]=(...x)=>Z.zoomOut&&Z.zoomOut(...x))},"−"),e.createElementVNode("button",{type:"button","aria-label":"放大",onClick:M[2]||(M[2]=(...x)=>Z.zoomIn&&Z.zoomIn(...x))},"+"),e.createElementVNode("button",{type:"button","aria-label":"复位",onClick:M[3]||(M[3]=(...x)=>Z.reset&&Z.reset(...x))},"复位")],64)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button","aria-label":"图片详情",onClick:M[4]||(M[4]=(...x)=>Z.toggleDetail&&Z.toggleDetail(...x))},"ⓘ")])]),!s.mobile&&e.unref(V)>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mp-viewer__arrow is-left","aria-label":"上一张",onClick:M[5]||(M[5]=x=>e.unref(F).go(-1))}," ‹ ")):e.createCommentVNode("",!0),!s.mobile&&e.unref(V)<s.items.length-1?(e.openBlock(),e.createElementBlock("button",{key:1,class:"mp-viewer__arrow is-right","aria-label":"下一张",onClick:M[6]||(M[6]=x=>e.unref(F).go(1))}," › ")):e.createCommentVNode("",!0),e.createElementVNode("div",Bn,e.toDisplayString(e.unref(V)+1)+" / "+e.toDisplayString(s.items.length),1)],10,En),N.value?(e.openBlock(),e.createElementBlock("aside",Pn,[e.createElementVNode("button",{type:"button","aria-label":"关闭详情",onClick:M[7]||(M[7]=x=>N.value=!1)},"×"),e.createElementVNode("strong",null,e.toDisplayString(A.value.title),1),e.createElementVNode("span",null,e.toDisplayString(A.value.width)+" × "+e.toDisplayString(A.value.height),1),e.createElementVNode("span",null,e.toDisplayString(A.value.type)+" · "+e.toDisplayString(R.value.toFixed(2))+"×",1)])):e.createCommentVNode("",!0)],16,yn)):e.createCommentVNode("",!0)],8,["disabled"]))}});function Tn(a,n,t,i=2){const r=Math.max(1,(n-i*(t-1))/t),o=[],u=new Map;let l=0,m=0;return a.forEach((y,p)=>{p>0&&(o.push({kind:"header",group:p,first:0,count:0,start:l,end:l+52}),l+=52);for(let b=0;b<y.items.length;b+=t){const T=Math.min(t,y.items.length-b),B=o.length;o.push({kind:"items",group:p,first:b,count:T,start:l,end:l+r});for(let S=0;S<T;S++)u.set(y.items[b+S].id,B);m+=T,l+=r+(b+T<y.items.length?i:0)}}),{rows:o,locations:u,height:l,size:r,total:m}}function tt(a,n){let t=0,i=a.length;for(;t<i;){const r=t+i>>>1;a[r].end<n?t=r+1:i=r}return Math.min(t,Math.max(0,a.length-1))}const Fn=["data-total-items","data-rendered-items"],Vn=e.defineComponent({__name:"VirtualTimeline",props:{groups:{},scrollElement:{},mobile:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1}},emits:["loadMore","date"],setup(a,{expose:n,emit:t}){const i=a,r=t,o=e.ref(),u=e.ref(390),l=e.ref(844),m=e.ref(0),y=e.computed(()=>i.mobile?u.value>=640?5:u.value>=480?4:3:Math.max(1,Math.floor((u.value+2)/172))),p=e.computed(()=>Tn(i.groups,u.value,y.value)),b=e.computed(()=>{const c=p.value.rows,k=tt(c,Math.max(0,m.value-p.value.size*3)),h=m.value+l.value+p.value.size*3;let f=k;for(;f<c.length&&c[f].start<=h;)f++;return c.slice(k,f)}),T=e.computed(()=>b.value.reduce((c,k)=>c+k.count,0));let B=0,S=!1,g=()=>{};function v(){const c=i.scrollElement();u.value=c.clientWidth,l.value=c.clientHeight,m.value=c.scrollTop,p.value.rows.length>0&&r("date",i.groups[p.value.rows[tt(p.value.rows,m.value)].group].key);const k=m.value+l.value>=p.value.height-p.value.size*3;k&&i.hasMore&&!S&&(S=!0,r("loadMore")),k||(S=!1)}function L(){B===0&&(B=requestAnimationFrame(()=>{B=0,v()}))}const $=new ResizeObserver(v);e.onMounted(()=>{const c=i.scrollElement(),k=c.style.overflowAnchor;c.style.overflowAnchor="none",g=()=>{c.style.overflowAnchor=k},c.addEventListener("scroll",L,{passive:!0}),$.observe(c),v()}),e.onBeforeUnmount(()=>{i.scrollElement().removeEventListener("scroll",L),$.disconnect(),cancelAnimationFrame(B),g()}),e.watch(()=>i.groups,()=>{S=!1,e.nextTick(v)});async function w(c){if(!p.value.locations.has(c))return{kind:"unavailable"};const k=p.value.rows[p.value.locations.get(c)],h=i.scrollElement();return(k.start<h.scrollTop||k.end>h.scrollTop+h.clientHeight)&&(h.scrollTop=Math.max(0,k.start-(h.clientHeight-p.value.size)/2)),v(),await e.nextTick(),await new Promise(E=>requestAnimationFrame(()=>E())),{kind:"element",element:[...o.value.querySelectorAll("[data-id]")].find(E=>E.dataset.id===c).querySelector("img")}}return n({resolveAnchor:w,rendered:T,total:e.computed(()=>p.value.total)}),(c,k)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:o,class:"mp-virtual-timeline",style:e.normalizeStyle({height:p.value.height+"px"}),"data-total-items":p.value.total,"data-rendered-items":T.value},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,h=>(e.openBlock(),e.createElementBlock("div",{key:c.groups[h.group].key+":"+h.kind+":"+h.first,class:"mp-timeline-row",style:e.normalizeStyle({top:h.start+"px",height:h.end-h.start+"px",display:h.kind==="items"?"grid":"block",gridTemplateColumns:`repeat(${y.value},minmax(0,1fr))`,gap:"2px"})},[h.kind==="header"?e.renderSlot(c.$slots,"header",{key:0,group:c.groups[h.group],index:h.group},void 0,!0):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(c.groups[h.group].items.slice(h.first,h.first+h.count),f=>e.renderSlot(c.$slots,"item",{key:f.id,item:f},void 0,!0)),128))],4))),128))],12,Fn))}}),$n=(a,n)=>{const t=a.__vccOpts||a;for(const[i,r]of n)t[i]=r;return t},Nn=$n(Vn,[["__scopeId","data-v-05c756fb"]]);exports.ImageCanvasRenderer=_e;exports.ImageStore=it;exports.LivePhotoRenderer=st;exports.MediaPreview=Ln;exports.PreviewStage=ct;exports.VideoDomRenderer=ut;exports.VirtualTimeline=Nn;exports.defaultImagePolicy=Ee;exports.defaultImageSource=xe;exports.formatVideoTime=ke;exports.nativeVideoSource=Te;exports.previewImageStore=ot;exports.usePreviewViewport=at;
|
|
1
|
+
"use strict";var Et=Object.defineProperty;var St=(n,a,r)=>a in n?Et(n,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[a]=r;var Ue=(n,a,r)=>St(n,typeof a!="symbol"?a+"":a,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");var H=typeof document<"u"?document.currentScript:null;function Ee(n){return n instanceof Error?n:new Error(String(n))}function Ct(n){let a=0,r=()=>{};function t(){a+=1;const o=r;r=()=>{},o()}function i(){t(),n.reset()}return{clear:i,dispose:t,start(o,s,l){i();const u=a;r=l(o,s,v=>{u===a&&n.error(v)},v=>{u===a&&n.duration(v)})}}}const $e=(n,a)=>(n.src=a.videoSrc||a.src,()=>{n.removeAttribute("src"),n.load()});function lt(n,a,r,t,i){const o=e.ref(0),s=Ct(i);let l=()=>{};return e.onMounted(()=>{l=e.watch(()=>[a().id,a().src,a().videoSrc,r(),t(),o.value],()=>{r()?s.start(n(),a(),t()):s.clear()},{immediate:!0,flush:"post"})}),e.onBeforeUnmount(()=>{l(),s.dispose()}),()=>o.value++}function X(n,a,r){return Math.min(Math.max(n,a),r)}function Ke(n,a=2){return Number(n.toFixed(a))}function Rt(n,a){return n.width<=0||n.height<=0||a.width<=0||a.height<=0?1:Math.min(a.width/n.width,a.height/n.height)}function Ge(n){const a=(n%360+360)%360;return a===90||a===180||a===270?a:0}function Pt(n,a){return a===90||a===270?{width:n.height,height:n.width}:n}function Bt(n,a,r){return`translate3d(${Ke(n)}px, ${Ke(a)}px, 0) scale3d(${r}, ${r}, 1)`}function Lt(n){return 1-(1-n)**3}function Fe(n,a){return Math.hypot(n.x-a.x,n.y-a.y)}function Qe(n,a){return{x:(n.x+a.x)/2,y:(n.y+a.y)/2}}function Tt(n,a,r){return Math.hypot(n,a)<9?"pending":r>1.01?"pan":Math.abs(n)>Math.abs(a)*1.1?"page":a>0&&Math.abs(a)>Math.abs(n)*1.1?"dismiss":"pending"}function Ft(n,a){return n.deltaMode===1?2**(-n.deltaY*.05):n.deltaMode===2?2**-n.deltaY:a||Math.abs(n.deltaY)>=40?2**(-n.deltaY*.002):Math.exp(-n.deltaY*.008)}function Vt(n,a,r=650){let t={kind:"idle"};function i(){const s=t;t={kind:"idle"},s.kind==="pending"&&clearTimeout(s.timer),s.kind==="active"&&a()}function o(){i(),t={kind:"pending",timer:setTimeout(()=>{t={kind:"active"},n()},r)}}return{arm:o,cancel:i}}function $t(n,a,r){const t=X(n,-a,a);return{offsetX:t,pageOffset:r?n-t:0}}function st(n={}){const a={motionActive:()=>!1,onTap:()=>{},onDoubleTap:()=>{},onScale:f=>{},onSwipeDownProgress:f=>{},onSwipeDownClose:()=>{},onSwipeLeft:()=>{},onSwipeRight:()=>{},onPageDrag:f=>{},onPageRelease:(f,B)=>{Math.abs(f)<60||(f<0?a.onSwipeLeft():a.onSwipeRight())},interactive:()=>!0,zoomable:()=>!0,doubleTapZoom:()=>2.5,zoomLimit:()=>8,holdable:()=>!1,onHoldStart:()=>{},onHoldEnd:()=>{},...n},r=e.ref(),t=e.ref(),i=e.shallowRef(),o=e.ref({width:1,height:1}),s=e.ref({width:1,height:1}),l=e.reactive({level:1,offsetX:0,offsetY:0,rotation:0,zooming:!1,draggingDown:!1,downOffsetX:0,downOffsetY:0,downScale:1}),u=e.computed(()=>Pt(s.value,l.rotation)),v=e.computed(()=>Rt(u.value,o.value)),d=e.computed(()=>v.value*l.level),M=e.computed(()=>({width:u.value.width*d.value,height:u.value.height*d.value})),P=e.computed(()=>({transform:Bt(l.downOffsetX,l.downOffsetY,l.downScale)})),E=new Set,S=e.ref(!1),k=e.ref(!1),g=e.ref(!1),L=e.computed(()=>S.value||k.value||g.value||a.motionActive());let $,y=0,x=0,p=setTimeout(()=>{},0),w=-1e3,C={x:0,y:0},m=!1,h="idle",V=!0,F=!1,z=0;const q=new Map;let Y={x:0,y:0},N={x:0,y:0,time:0},ge=0,ne=0,ae=0,Z={left:0,top:0},he=1,Me={x:0,y:0},T=W();const I=Vt(()=>{h="hold",clearTimeout(p),w=-1e3,a.onHoldStart()},()=>a.onHoldEnd()),O=new ResizeObserver(f=>{for(const B of f)j(B.contentRect)}),ve=new Set,Ie=f=>{(f.key==="Control"||f.key==="Meta")&&ve.add(f.key)},K=f=>ve.delete(f.key),oe=()=>{I.cancel(),ve.clear()},we=()=>{document.hidden&&I.cancel()};e.onMounted(()=>{O.observe(r.value),j(r.value.getBoundingClientRect()),window.addEventListener("keydown",Ie),window.addEventListener("keyup",K),window.addEventListener("blur",oe),document.addEventListener("visibilitychange",we)}),e.onBeforeUnmount(()=>{m=!0,I.cancel(),window.removeEventListener("keydown",Ie),window.removeEventListener("keyup",K),window.removeEventListener("blur",oe),document.removeEventListener("visibilitychange",we),O.disconnect(),cancelAnimationFrame(y),cancelAnimationFrame(x),clearTimeout(p),clearTimeout($)});function j(f){o.value={width:f.width,height:f.height},Object.assign(l,se(l.offsetX,l.offsetY,l.level)),le()}function le(){m||y||(y=requestAnimationFrame(()=>{y=0,E.forEach(f=>f())}))}function W(){return{level:l.level,offsetX:l.offsetX,offsetY:l.offsetY}}function se(f,B,U){const A=Math.max(0,(u.value.width*v.value*U-o.value.width)/2),G=Math.max(0,(u.value.height*v.value*U-o.value.height)/2);return{offsetX:X(f,-A,A),offsetY:X(B,-G,G)}}function re(f){Object.assign(l,f),a.onScale(l.level),le()}function me(f,B=250){cancelAnimationFrame(x),S.value=!0;const U=W(),A=performance.now(),G=matchMedia("(prefers-reduced-motion: reduce)").matches?0:B,ee=ue=>{const J=G===0?1:X((ue-A)/G,0,1),de=Lt(J);re({level:U.level+(f.level-U.level)*de,offsetX:U.offsetX+(f.offsetX-U.offsetX)*de,offsetY:U.offsetY+(f.offsetY-U.offsetY)*de}),J<1?x=requestAnimationFrame(ee):S.value=!1};x=requestAnimationFrame(ee)}function Q(){return{x:o.value.width/2,y:o.value.height/2}}function ce(f,B=Q(),U=!1){if(!a.zoomable())return;cancelAnimationFrame(x),S.value=!1;const A=X(f,1,a.zoomLimit()),G=A/l.level,ee=Q(),ue=se(B.x-ee.x-(B.x-ee.x-l.offsetX)*G,B.y-ee.y-(B.y-ee.y-l.offsetY)*G,A),J={level:A,...ue};U?me(J):re(J)}function ye(){l.draggingDown=!1,l.downOffsetX=0,l.downOffsetY=0,l.downScale=1,a.onSwipeDownProgress(0)}function pe(f=!1){f&&(cancelAnimationFrame(x),S.value=!1),I.cancel(),q.clear(),k.value=!1,g.value=!1,clearTimeout($),h="idle",z=0,l.zooming=!1,f||(ye(),a.onPageDrag(0)),clearTimeout(p),w=-1e3}function be(f=0){cancelAnimationFrame(x),S.value=!1,pe();const B={level:1,offsetX:0,offsetY:0};f>0&&(l.level!==1||l.offsetX!==0||l.offsetY!==0)?me(B,f):re(B)}function ke(f,B=Z){return{x:f.clientX-B.left,y:f.clientY-B.top}}function _e(){I.cancel(),V=!1,F=!1,z=0;const[f,B]=[...q.values()];he=Math.max(1,Fe(f,B)),Me=Qe(f,B),T=W(),h="pinch",l.zooming=!0,ye(),a.onPageDrag(0),clearTimeout(p),w=-1e3}function He(f,B=r.value.getBoundingClientRect()){if(!a.interactive()||f.pointerType==="mouse"&&f.button!==0)return!1;const U=f.target;if(U.closest("button, input, a, select")||U instanceof HTMLVideoElement&&U.controls&&f.clientY>U.getBoundingClientRect().bottom-48)return!1;if(cancelAnimationFrame(x),S.value=!1,k.value=!0,q.size===0&&(Z=B),q.set(f.pointerId,ke(f)),r.value.setPointerCapture(f.pointerId),q.size>=2)return _e(),!0;Y=ke(f),N={...Y,time:performance.now()},ge=N.time,ne=0,ae=0,T=W(),h="pending",V=!0,F=!1,z=0;const A=M.value.width/2,G=M.value.height/2,ee=Q();return a.holdable()&&Math.abs(Y.x-ee.x-l.offsetX)<=A&&Math.abs(Y.y-ee.y-l.offsetY)<=G&&(clearTimeout(p),I.arm()),!0}function Ye(f){if(!q.has(f.pointerId))return;const B=ke(f);if(q.set(f.pointerId,B),h==="pinch"&&q.size>=2){if(!a.zoomable())return;const[ue,J]=[...q.values()],de=Q(),Be=Qe(ue,J),Le=X(T.level*Fe(ue,J)/he,.75,a.zoomLimit()),Ne=Le/T.level;re({level:Le,...se(Be.x-de.x-(Me.x-de.x-T.offsetX)*Ne,Be.y-de.y-(Me.y-de.y-T.offsetY)*Ne,Le)}),T=W(),he=Math.max(1,Fe(ue,J)),Me=Be,f.preventDefault();return}if(h==="idle")return;const U=B.x-Y.x,A=B.y-Y.y;if(h==="hold"){if(f.preventDefault(),Math.hypot(U,A)<9)return;I.cancel(),h="pending"}Math.hypot(U,A)>=9&&I.cancel();const G=performance.now(),ee=Math.max(8,G-N.time);if(ne=(B.x-N.x)/ee,ae=(B.y-N.y)/ee,N={...B,time:G},h==="pending"&&(h=Tt(U,A,l.level),F=h==="pan"&&V&&Math.abs(U)>Math.abs(A)*1.1),h!=="pending")if(clearTimeout(p),w=-1e3,f.preventDefault(),h==="pan"){const ue=Math.max(0,(M.value.width-o.value.width)/2),J=$t(T.offsetX+U,ue,F);re({level:l.level,...se(J.offsetX,T.offsetY+A,l.level)}),J.pageOffset!==z&&(z=J.pageOffset,a.onPageDrag(z))}else h==="page"?a.onPageDrag(U):h==="dismiss"&&(l.draggingDown=!0,l.downOffsetX=U*.65,l.downOffsetY=Math.max(0,A),l.downScale=X(1-Math.max(0,A)/o.value.height*.6,.65,1),a.onSwipeDownProgress(X(A/(o.value.height*.55),0,.85)))}function _(f){if(!q.has(f.pointerId))return;if(I.cancel(),q.delete(f.pointerId),k.value=q.size>0,h==="pinch"){q.size>0?(Y=[...q.values()][0],T=W(),h="pan"):(h="idle",l.zooming=!1,ce(Math.max(1,l.level),Q(),!0));return}if(q.size>0)return;const B=ke(f),U=B.x-Y.x,A=B.y-Y.y,G=performance.now()-N.time<100;h==="page"||h==="pan"&&z!==0?a.onPageRelease(h==="page"?U:z,G?ne:0):h==="dismiss"?A>o.value.height*.18||A>45&&G&&ae>.7?a.onSwipeDownClose():ye():h==="pending"&&performance.now()-ge<300&&Fe(Y,B)<9?De(B):l.level<1&&ce(1,Q(),!0),l.zooming=!1,h="idle"}function ze(f){if(!q.has(f.pointerId))return;const B=h==="page"||h==="pan"&&z!==0;pe(),B&&a.onPageRelease(0,0),l.level<1&&ce(1,Q(),!0)}function De(f){const B=performance.now();B-w<280&&Fe(f,C)<36?(clearTimeout(p),w=-1e3,a.onDoubleTap(),ce(l.level>1.01?1:a.doubleTapZoom(),f,!0)):(w=B,C=f,p=setTimeout(a.onTap,280))}function Re(f){if(a.interactive()){if(I.cancel(),g.value=!0,clearTimeout($),$=setTimeout(()=>{g.value=!1},120),f.ctrlKey||f.metaKey)f.preventDefault(),ce(l.level*Ft(f,ve.size>0),ke(f,r.value.getBoundingClientRect()));else if(l.level>1){f.preventDefault();const B=f.deltaMode===1?16:1;re({level:l.level,...se(l.offsetX-f.deltaX*B,l.offsetY-f.deltaY*B,l.level)})}}}const Pe={state:l,motionActive:L,containerRef:r,canvasRef:t,mediaRef:i,viewportSize:o,mediaSize:s,visualMediaSize:u,displaySize:M,displayScale:d,downDragStyle:P,requestRender:le,renderNow:()=>E.forEach(f=>f()),zoomTo:ce,resetTransform:be,cancelGesture:pe,setMediaElement(f){i.value=f,f instanceof HTMLVideoElement&&le()},setMediaSize(f){s.value=f,le()},clearMedia(){i.value=void 0},registerRenderHandler(f){return E.add(f),()=>E.delete(f)},setRotation(f,B=!0){l.rotation=Ge(f),B&&be(),le()},rotateBy(f=90){Pe.setRotation(Ge(l.rotation+f))}};return{core:Pe,onPointerDown:He,onPointerMove:Ye,onPointerUp:_,onPointerCancel:ze,onWheel:Re}}function It(n){const a=n.rotation*Math.PI/180,r=Math.round(Math.cos(a)),t=Math.round(Math.sin(a)),i=n.size.width/2-r*n.offsetX-t*n.offsetY,o=n.size.height/2+t*n.offsetX-r*n.offsetY,s=(Math.abs(r)*n.viewport.width+Math.abs(t)*n.viewport.height)/2,l=(Math.abs(t)*n.viewport.width+Math.abs(r)*n.viewport.height)/2,u=X(i-s,0,n.size.width),v=X(o-l,0,n.size.height);return{x:u,y:v,width:X(i+s,0,n.size.width)-u,height:X(o+l,0,n.size.height)-v}}function zt(n,a,r,t){const i=It(r);if(i.width<=0||i.height<=0)return;n.imageSmoothingEnabled=!0,n.imageSmoothingQuality=t?"low":"high",n.translate(r.viewport.width/2+r.offsetX,r.viewport.height/2+r.offsetY),n.rotate(r.rotation*Math.PI/180);const{width:o,height:s}=r.size,l="naturalWidth"in a?a.naturalWidth:a.width,u="naturalHeight"in a?a.naturalHeight:a.height;if(i.width===o&&i.height===s){n.drawImage(a,-o/2,-s/2,o,s);return}n.drawImage(a,i.x/o*l,i.y/s*u,i.width/o*l,i.height/s*u,i.x-o/2,i.y-s/2,i.width,i.height)}function Dt(){const n=new Set;let a=[],r={kind:"empty"};function t(){for(const i of n)a.includes(i)||r.kind==="owned"&&r.lease===i||(i.release(),n.delete(i))}return{replace(i){a=i,i.forEach(o=>n.add(o)),t()},display(i){r={kind:"owned",lease:i},t()},clearDisplay(){r={kind:"empty"},t()},dispose(){n.forEach(i=>i.release()),n.clear(),a=[],r={kind:"empty"}}}}const te={maxDecodedPixels:64e6,maxCanvasPixels:6e6,maxDevicePixelRatio:2.5,maxOriginalBytes:32*1024*1024,maxPreviewBytes:12*1024*1024,cacheBytes:96*1024*1024,cacheEntries:24,concurrency:3};class Ve extends Error{constructor(a){super(a),this.name="ImageLimitError"}}function ct(n,a){if(n.naturalWidth*n.naturalHeight>a)throw new Ve("图片像素超过解码保护限制,请提供较小的适屏资源")}const We="原图超过资源限制";function Nt(n){return n instanceof Ve?{status:"blocked",reason:We}:{status:"error",reason:n instanceof Error?n.message:"原图加载失败,可重试"}}const ut=`(function(){"use strict";self.onmessage=async({data:a})=>{try{const t=await createImageBitmap(a.blob);let e=t;try{const s=Math.min(1,Math.sqrt(a.maxMotionPixels/(t.width*t.height)));s<1&&(e=await createImageBitmap(t,{resizeWidth:Math.max(1,Math.floor(t.width*s)),resizeHeight:Math.max(1,Math.floor(t.height*s)),resizeQuality:"high"}));const r=e===t?[t]:[t,e];self.postMessage({status:"ready",full:t,motion:e},{transfer:r})}catch(s){throw e!==t&&e.close(),t.close(),s}}catch(t){self.postMessage({status:"error",message:t instanceof Error?t.message:"图片位图准备失败"})}}})();
|
|
2
|
+
`,Je=typeof self<"u"&&self.Blob&&new Blob([ut],{type:"text/javascript;charset=utf-8"});function qt(n){let a;try{if(a=Je&&(self.URL||self.webkitURL).createObjectURL(Je),!a)throw"";const r=new Worker(a,{name:n==null?void 0:n.name});return r.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(a)}),r}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(ut),{name:n==null?void 0:n.name})}finally{a&&(self.URL||self.webkitURL).revokeObjectURL(a)}}function je({full:n,motion:a}){a!==n&&a.close(),n.close()}function Ut(n,a,r){return r.throwIfAborted(),new Promise((t,i)=>{const o=new qt,s=()=>{r.removeEventListener("abort",l),o.terminate()},l=()=>{s(),i(r.reason)};o.onmessage=({data:u})=>{if(s(),u.status==="error"){i(new Error(u.message));return}if(r.aborted){je(u),i(r.reason);return}t(u)},o.onerror=u=>{s(),i(new Error(u.message||"图片位图准备失败"))},r.addEventListener("abort",l,{once:!0});try{o.postMessage({blob:n,maxMotionPixels:a})}catch(u){s(),i(u)}})}function dt(n){return{image:n,source:n,motionSource:n,bytes:n.naturalWidth*n.naturalHeight*4,dispose:()=>{}}}async function Ot(n,a,r){const t=new Uint8Array(await a.slice(0,3).arrayBuffer());if(r.throwIfAborted(),!(t[0]===255&&t[1]===216&&t[2]===255))return await n.decode(),r.throwIfAborted(),dt(n);const i=await Ut(a,te.maxCanvasPixels,r);try{r.throwIfAborted();const{full:o,motion:s}=i,l=s===o?0:s.width*s.height*4;return{image:n,source:o,motionSource:s,bytes:(n.naturalWidth*n.naturalHeight+o.width*o.height)*4+l,dispose:()=>je(i)}}catch(o){throw je(i),o}}const At=async(n,a)=>{const r=await fetch(n,{signal:a.signal,credentials:"same-origin"});if(!r.ok)throw new Error(`图片加载失败:HTTP ${r.status}`);if(Number(r.headers.get("content-length"))>a.maxBytes)throw await r.body.cancel(),new Ve("资源超过下载保护限制,请使用适屏图或下载原文件");const i=r.body.getReader(),o=[];let s=0;try{for(;;){const d=await i.read();if(d.done)break;if(s+=d.value.byteLength,s>a.maxBytes)throw new Ve("资源超过下载保护限制,请使用适屏图或下载原文件");o.push(new Uint8Array(d.value))}}catch(d){throw await i.cancel(),d}finally{i.releaseLock()}a.signal.throwIfAborted();const l=new Blob(o,{type:r.headers.get("content-type")}),u=URL.createObjectURL(l),v=new Image;v.decoding="async";try{return await new Promise((d,M)=>{const P=()=>{v.removeAttribute("src"),M(new DOMException("请求已取消","AbortError"))};v.onload=()=>{a.signal.removeEventListener("abort",P),d()},v.onerror=()=>{a.signal.removeEventListener("abort",P),M(new Error("图片解码失败或格式不受支持"))},a.signal.addEventListener("abort",P,{once:!0}),v.src=u}),a.signal.throwIfAborted(),ct(v,a.maxPixels),await Ot(v,l,a.signal)}finally{URL.revokeObjectURL(u)}};class ft{constructor(a=te.cacheBytes,r=te.concurrency,t=At){Ue(this,"entries",new Map);Ue(this,"active",0);Ue(this,"cancelled",0);this.budget=a,this.concurrency=r,this.loader=t}get stats(){return{active:this.active,queued:[...this.entries.values()].filter(a=>a.state==="queued").length,entries:this.entries.size,bytes:[...this.entries.values()].reduce((a,r)=>a+r.bytes,0),cancelled:this.cancelled}}acquire(a,r={}){const t={priority:0,maxBytes:te.maxOriginalBytes,maxPixels:te.maxDecodedPixels,...r};if(this.entries.has(a)&&["error","aborted"].includes(this.entries.get(a).state)&&this.entries.delete(a),!this.entries.has(a)){let u,v;const d=new Promise((M,P)=>{u=M,v=P});d.catch(()=>{}),this.entries.set(a,{promise:d,resolve:u,reject:v,controller:new AbortController,users:0,bytes:0,dispose:()=>{},priority:t.priority,maxBytes:t.maxBytes,maxPixels:t.maxPixels,state:"queued"})}const i=this.entries.get(a);i.users++,i.priority=Math.min(i.priority,t.priority),i.maxBytes=Math.max(i.maxBytes,t.maxBytes),i.maxPixels=Math.max(i.maxPixels,t.maxPixels),this.entries.delete(a),this.entries.set(a,i),this.pump();let o=!1;const s=i.promise.then(u=>(ct(u.image,t.maxPixels),u)),l=s.then(u=>u.image);return s.catch(()=>{}),l.catch(()=>{}),{ready:l,resource:s,release:()=>{o||(o=!0,i.users--,i.users===0&&(i.state==="queued"||i.state==="loading")&&(i.state="aborted",this.cancelled++,i.controller.abort(),i.reject(new DOMException("请求已取消","AbortError")),this.entries.get(a)===i&&this.entries.delete(a)),i.users===0&&i.state==="error"&&this.entries.get(a)===i&&this.entries.delete(a),this.trim(),this.pump())}}}pump(){for(;this.active<this.concurrency;){const a=[...this.entries].filter(([,i])=>i.state==="queued"&&i.users>0).sort((i,o)=>i[1].priority-o[1].priority);if(a.length===0)return;const[r,t]=a[0];t.state="loading",this.active++,this.loader(r,{signal:t.controller.signal,get maxBytes(){return t.maxBytes},get maxPixels(){return t.maxPixels}}).then(i=>{if(t.state==="aborted"){i.dispose();return}t.bytes=i.bytes,t.dispose=i.dispose,t.state="ready",t.resolve(i)}).catch(i=>{t.state!=="aborted"&&(t.state="error",t.reject(Ee(i)))}).finally(()=>{this.active--,this.trim(),this.pump()})}}trim(){let a=this.stats.bytes;for(const[r,t]of this.entries)if(!(t.users>0||t.state==="loading"||t.state==="queued")){if(a<=this.budget&&this.entries.size<=te.cacheEntries)break;a-=t.bytes,t.dispose(),this.entries.delete(r)}}}const mt=new ft,fe={kind:"empty"};function _t(n){return n.kind==="element"&&n.element instanceof HTMLImageElement&&n.element.complete&&n.element.naturalWidth>0?{kind:"image",image:n.element}:fe}function et(){const n=document.createElement("canvas");n.width=n.height=1;const a=n.getContext("2d");return a.fillStyle="#f3f4f5",a.fillRect(0,0,1,1),n}const pt=["thumbnail","screen","full"],Se={maxOriginalPixels:te.maxDecodedPixels,maxOriginalBytes:te.maxOriginalBytes,maxPreviewBytes:te.maxPreviewBytes},Ce=(n,a)=>a==="full"?n.src:a==="screen"?n.previewSrc:n.thumbnail;function Ht(n,a){return n.width*n.height<=a.maxOriginalPixels}function tt(n,a){const r=Math.min(a.width/n.width,a.height/n.height);return Math.min(8,Math.max(2,Math.min(1/r,Math.max(a.width/(n.width*r),a.height/(n.height*r)))))}function Yt(n,a,r,t,i,o=!0){const s=Ht(n,r),l={sources:[],originalStatus:o&&a==="full"?s?"loading":"blocked":"idle",originalReason:""};l.originalStatus==="blocked"&&(l.originalReason=We);for(const[u,v]of pt.entries()){if(v==="screen"&&a==="thumbnail"||v==="full"&&(!o||a!=="full"||!s))continue;const d=t(n,v,i);if(o&&!s&&d===n.src){l.originalStatus="blocked",l.originalReason=We;continue}l.sources.push({url:d,quality:v,rank:u})}return l}const Xt=["aria-label"],Wt={key:0,class:"mp-resource-state",role:"status","aria-label":"加载中"},jt=e.createElementVNode("span",{class:"mp-spinner","aria-hidden":"true"},null,-1),Zt=[jt],Kt={key:1,class:"mp-resource-state",role:"alert"},Gt=e.createElementVNode("span",null,"图片暂时无法加载",-1),Qt={key:2,class:"mp-quality-notice"},Ae=e.defineComponent({inheritAttrs:!1,__name:"ImageCanvasRenderer",props:{media:{},core:{},quality:{default:"screen"},rendering:{type:Boolean,default:!0},requestVersion:{default:0},loadEnabled:{type:Boolean,default:!0},originalEnabled:{type:Boolean,default:!0},priority:{default:0},resourcePolicy:{default:()=>Se},resolveSource:{type:Function,default:Ce},initialImage:{default:()=>fe}},emits:["ready","error","originalState"],setup(n,{expose:a,emit:r}){const t=n,i=r,o=e.ref(),s=e.shallowRef({status:"empty"}),l=e.ref("loading"),u=e.ref(!1),v=e.ref("idle"),d=e.ref("");e.watch([v,d],()=>i("originalState",v.value,d.value));let M=!0,P=0,E=t.media.id;const S=Dt();let k=()=>{},g,L=!1,$={kind:"empty"};function y(){if(t.core.motionActive.value&&t.loadEnabled&&E===t.media.id){L=!0;return}L=!1,w()}function x(m,h,V,F){s.value={status:"ready",value:m,rank:V},S.display(h),t.core.setMediaElement(m.image),l.value="ready",u.value=!1,F==="full"&&(v.value="ready"),t.core.requestRender(),i("ready",F)}e.watch(()=>t.core.motionActive.value,m=>{if(t.core.requestRender(),!m){if($.kind==="ready"){const h=$;$={kind:"empty"},h.token===P&&x(h.value,h.lease,h.rank,h.quality)}L&&y()}}),e.onMounted(()=>{const m=o.value;g=m.getContext("2d"),t.core.canvasRef.value=m,k=t.core.registerRenderHandler(C),p(),e.nextTick(()=>{M&&y()})}),e.onBeforeUnmount(()=>{M=!1,P+=1,k(),S.dispose()}),e.watch([()=>t.media.id,()=>t.media.src,()=>t.media.thumbnail,()=>t.media.previewSrc,()=>t.quality,()=>t.loadEnabled,()=>t.priority,()=>t.resolveSource,()=>t.resourcePolicy,()=>t.originalEnabled,()=>t.requestVersion],()=>{y()}),e.watch(()=>t.initialImage,p),e.watch(()=>t.rendering,m=>{m&&t.core.requestRender()});function p(){t.initialImage.kind!=="image"||s.value.status==="ready"||(s.value={status:"ready",value:dt(t.initialImage.image),rank:0},t.core.setMediaElement(t.initialImage.image),l.value="ready",t.core.requestRender(),i("ready","thumbnail"))}async function w(){const m=++P;if($={kind:"empty"},u.value=!1,E!==t.media.id&&(E=t.media.id,s.value={status:"empty"},S.clearDisplay(),l.value="loading",t.core.clearMedia(),p()),!t.loadEnabled){S.replace([]);return}const h=Math.ceil(t.core.viewportSize.value.width*Math.min(devicePixelRatio,te.maxDevicePixelRatio)*t.core.state.level),V=Yt(t.media,t.quality,t.resourcePolicy,t.resolveSource,h,t.originalEnabled);d.value=V.originalReason,v.value=V.originalStatus;const{sources:F}=V,z=F.map(N=>mt.acquire(N.url,{priority:t.priority,maxPixels:t.resourcePolicy.maxOriginalPixels,maxBytes:N.quality==="full"?t.resourcePolicy.maxOriginalBytes:t.resourcePolicy.maxPreviewBytes}));S.replace(z),F.length===0&&s.value.status==="empty"&&(l.value="error",i("error",new Ve(d.value))),s.value.status==="ready"&&i("ready",pt[s.value.rank]);let q=s.value.status==="ready"?s.value.rank:-1,Y=0;await Promise.all(F.map(async(N,ge)=>{const ne=N.rank,ae=z[ge];try{const Z=await ae.resource;if(m!==P||ne<q)return;q=ne,t.core.motionActive.value&&s.value.status==="ready"?$={kind:"ready",token:m,value:Z,lease:ae,rank:ne,quality:N.quality}:x(Z,ae,ne,N.quality)}catch(Z){if(m!==P||Z instanceof Error&&Z.name==="AbortError")return;if(N.quality==="full"){const he=Nt(Z);v.value=he.status,d.value=he.reason}Y+=1,ne>q&&s.value.status==="ready"&&(u.value=!0),Y===F.length&&s.value.status==="empty"&&(l.value="error"),i("error",Ee(Z))}}))}function C(){if(!t.rendering||s.value.status!=="ready")return;const m=o.value,h=t.core.viewportSize.value;if(h.width<=0||h.height<=0)return;const V=Math.min(devicePixelRatio,te.maxDevicePixelRatio,Math.sqrt(te.maxCanvasPixels/(h.width*h.height))),F=Math.max(1,Math.round(h.width*V)),z=Math.max(1,Math.round(h.height*V));(m.width!==F||m.height!==z)&&(m.width=F,m.height=z),g.setTransform(V,0,0,V,0,0),g.clearRect(0,0,h.width,h.height);const{width:q,height:Y}=t.core.mediaSize.value,N=t.core.displayScale.value;zt(g,t.core.motionActive.value?s.value.value.motionSource:s.value.value.source,{viewport:h,size:{width:q*N,height:Y*N},offsetX:t.core.state.offsetX,offsetY:t.core.state.offsetY,rotation:t.core.state.rotation},t.core.motionActive.value)}return a({captureFrame:()=>{if(s.value.status!=="ready")throw new Error("图片画面尚未就绪");return{image:s.value.value.motionSource,scale:1}}}),(m,h)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:o,class:"mp-canvas-renderer","aria-label":m.media.title},null,8,Xt),l.value==="loading"?(e.openBlock(),e.createElementBlock("div",Wt,Zt)):e.createCommentVNode("",!0),l.value==="error"?(e.openBlock(),e.createElementBlock("div",Kt,[Gt,e.createElementVNode("button",{type:"button",onClick:e.withModifiers(w,["stop"])},"重新加载")])):e.createCommentVNode("",!0),u.value&&v.value!=="blocked"?(e.openBlock(),e.createElementBlock("span",Qt," 高清图加载失败,当前显示预览图 ")):e.createCommentVNode("",!0)],64))}});function Jt(n,a,r){const{buffered:t}=n;if(!Number.isFinite(a)||a<=0)return[];const i=[],o=Math.min(.25,a*.05);for(let s=0;s<t.length;s++){const l=X(t.start(s),0,a);let u=X(t.end(s),l,a);s===t.length-1&&(n.ended||r.kind==="retained"&&t.end(s)>=r.end||n.readyState>=4&&a-u<=o)&&(u=a),u>l&&i.push({start:l,end:u})}return i}function xe(n){const a=Math.max(0,Math.floor(Number.isFinite(n)?n:0));return`${String(Math.floor(a/60)).padStart(2,"0")}:${String(a%60).padStart(2,"0")}`}function nt(n){return Number.isFinite(n)&&n>0?n:0}function at(){return{duration:0,time:0,buffered:0,bufferedRanges:[]}}function en(){let n=0,a={kind:"pending"};return{setDuration(r){n=nt(r)},complete(r){const{buffered:t}=r;a=t.length>0?{kind:"retained",end:t.end(t.length-1)}:{kind:"pending"}},reset(){n=0,a={kind:"pending"}},read(r,t){const i=n>0?n:nt(r.duration),o=Jt(r,i,a);return{duration:i,time:t?i:X(r.currentTime,0,i),buffered:o.length>0?o[o.length-1].end:0,bufferedRanges:o}}}}function gt(n,a){const r=en(),t=e.reactive({playing:!1,buffering:!1,...at(),muted:!1,ended:!1,scrubbing:!1,scrubTime:0,status:"loading"});let i=!1,o=0,s=!1;const l=e.computed(()=>t.duration>0&&t.status!=="error"),u=e.computed(()=>t.scrubbing?t.scrubTime:t.time),v=e.computed(()=>l.value?u.value/t.duration*100:0),d=e.computed(()=>l.value?t.buffered/t.duration*100:0),M=e.computed(()=>t.bufferedRanges.map(({start:F,end:z})=>({left:F/t.duration*100,width:(z-F)/t.duration*100})));function P(){Object.assign(t,r.read(n(),t.ended))}function E(F){s||(r.setDuration(F),P(),t.scrubTime=X(t.scrubTime,0,t.duration))}function S(){r.reset(),i=!1,o+=1,Object.assign(t,{playing:!1,buffering:!1,...at(),ended:!1,scrubbing:!1,scrubTime:0,status:"loading"})}async function k(){if(s)return;const F=++o;t.ended&&(n().currentTime=0,t.time=0),t.ended=!1,t.buffering=!0;try{await n().play()}catch(z){if(F!==o)return;t.buffering=!1,t.playing=!1,z instanceof Error&&z.name!=="NotAllowedError"&&z.name!=="AbortError"&&a(z)}}function g(){o+=1,i=!1,t.scrubbing=!1,t.buffering=!1,n().pause()}function L(){t.playing?g():k()}function $(){!l.value||t.scrubbing||(i=t.playing,t.scrubbing=!0,t.scrubTime=t.time,n().pause())}function y(F){t.scrubTime=X(F,0,t.duration)}function x(F=!0){if(!t.scrubbing)return;const z=i;i=!1,t.scrubbing=!1,F&&(n().currentTime=t.scrubTime,t.time=t.scrubTime,t.ended=!1),z&&k()}function p(){n().muted=!n().muted,t.muted=n().muted}function w(F){t.status="error",t.playing=!1,t.buffering=!1,a(F)}const m=Object.fromEntries(Object.entries({loadedmetadata:P,durationchange:P,timeupdate:P,progress:P,loadeddata:()=>{P(),t.status="ready",t.buffering=!1},canplay:()=>{P(),t.buffering=!1},canplaythrough:P,play:()=>{t.playing=!0,t.ended=!1},playing:()=>{t.playing=!0,t.buffering=!1},pause:()=>{t.playing=!1,t.buffering=!1},ended:()=>{t.playing=!1,t.ended=!0,t.buffering=!1,r.complete(n()),P()},waiting:()=>{t.buffering=t.playing},seeking:()=>{t.buffering=!0},seeked:()=>{t.buffering=!1,P()},volumechange:()=>{t.muted=n().muted},error:()=>{w(new Error("视频暂时无法播放,请重试或检查资源格式"))}}).map(([F,z])=>[F,()=>{s||z()}]));function h(){s=!0,g()}function V(){S(),t.buffering=!0,n().load()}return{state:t,seekable:l,displayTime:u,progress:v,bufferedProgress:d,bufferedRanges:M,events:m,play:k,pause:g,toggle:L,beginScrub:$,scrub:y,endScrub:x,toggleMuted:p,retry:V,setSourceDuration:E,resetSource:S,sourceObserver:{error:w,duration:E,reset:S},dispose:h}}const tn=["data-live-state"],nn={class:"mp-dom-renderer mp-live-photo__motion"},an=["preload"],ht=e.defineComponent({__name:"LivePhotoRenderer",props:{media:{},core:{},playing:{type:Boolean,default:!1},active:{type:Boolean,default:!0},enabled:{type:Boolean,default:!0},requestVersion:{default:0},loadEnabled:{type:Boolean,default:!0},priority:{default:0},resourcePolicy:{default:()=>Se},resolveSource:{type:Function,default:Ce},rendering:{type:Boolean,default:!0},initialImage:{default:()=>fe},quality:{default:"screen"}},emits:["ready","error","originalState","liveState","liveEnded"],setup(n,{expose:a,emit:r}){const t=n,i=r,o=e.ref(),s=e.ref(),l=e.ref(),u=e.ref(),v=gt(()=>o.value,p=>i("error",p)),{state:d}=v;lt(()=>o.value,()=>t.media,()=>t.active&&t.loadEnabled,()=>$e,v.sourceObserver);let M=!1,P=()=>{};const E=e.computed(()=>t.active&&t.enabled&&d.playing&&d.status==="ready"&&!d.buffering),S=e.computed(()=>({transform:`translate(-50%, -50%) translate3d(${t.core.state.offsetX}px, ${t.core.state.offsetY}px, 0)`})),k=e.computed(()=>({width:`${t.core.mediaSize.value.width*t.core.displayScale.value}px`,height:`${t.core.mediaSize.value.height*t.core.displayScale.value}px`,transform:`rotate(${t.core.state.rotation}deg)`}));function g(){v.pause(),o.value.readyState>=HTMLMediaElement.HAVE_METADATA&&(o.value.currentTime=0)}function L(){!t.active||!t.enabled||!t.loadEnabled||!t.playing||d.status!=="ready"||d.buffering?g():v.play().then(()=>{!M&&!d.playing&&t.playing&&i("liveEnded")})}e.watch(()=>[d.status,d.playing,d.buffering],()=>{const p=d.status==="error"?"error":d.buffering||d.status==="loading"?"loading":E.value?"playing":"idle";i("liveState",p)},{immediate:!0});function $(){M||(g(),i("liveEnded"))}function y(){document.hidden&&(g(),i("liveEnded"))}e.onMounted(()=>{P=e.watch(()=>[t.active,t.enabled,t.loadEnabled,t.playing],L,{flush:"post"}),L(),document.addEventListener("visibilitychange",y)}),e.onBeforeUnmount(()=>{P(),M=!0,v.dispose(),document.removeEventListener("visibilitychange",y)});function x(){const p=document.createElement("canvas"),w=Math.min(1,Math.sqrt(te.maxCanvasPixels/(t.media.width*t.media.height)));p.width=Math.round(t.media.width*w),p.height=Math.round(t.media.height*w);const C=p.getContext("2d"),m=Number(getComputedStyle(l.value).opacity);C.drawImage(u.value.captureFrame().image,0,0,p.width,p.height),m<1&&o.value.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&(C.globalAlpha=1-m,C.drawImage(o.value,0,0,p.width,p.height));const h=new DOMMatrixReadOnly(getComputedStyle(s.value).transform).a;return v.pause(),{image:p,scale:h}}return a({captureFrame:x}),(p,w)=>(e.openBlock(),e.createElementBlock("div",{class:"mp-live-photo-renderer","data-live-state":e.unref(d).status==="error"?"error":E.value?"playing":"idle"},[e.createElementVNode("div",{ref_key:"effectsRef",ref:s,class:e.normalizeClass(["mp-live-photo__effects",{"is-playing":E.value}])},[e.createElementVNode("div",nn,[e.createElementVNode("div",{class:"mp-dom-renderer__frame",style:e.normalizeStyle(S.value)},[e.createElementVNode("video",e.mergeProps({ref_key:"videoRef",ref:o,class:"mp-dom-renderer__node",style:k.value,preload:p.active&&p.enabled&&p.loadEnabled?"auto":"none",playsinline:"","webkit-playsinline":"true",crossorigin:"anonymous"},e.toHandlers(e.unref(v).events,!0),{onEnded:$,onError:w[0]||(w[0]=C=>i("liveEnded"))}),null,16,an)],4)]),e.createElementVNode("div",{ref_key:"stillRef",ref:l,class:e.normalizeClass(["mp-live-photo__still",{"is-playing":E.value}])},[e.createVNode(Ae,{ref_key:"imageRendererRef",ref:u,"request-version":p.requestVersion,"load-enabled":p.loadEnabled,priority:p.priority,"resource-policy":p.resourcePolicy,"resolve-source":p.resolveSource,onOriginalState:w[1]||(w[1]=(C,m)=>i("originalState",C,m)),media:p.media,"initial-image":p.initialImage,rendering:p.rendering,core:p.core,quality:p.quality,onReady:w[2]||(w[2]=C=>i("ready",C)),onError:w[3]||(w[3]=C=>i("error",C))},null,8,["request-version","load-enabled","priority","resource-policy","resolve-source","media","initial-image","rendering","core","quality"])],2)],2)],8,tn))}});function on(n,a){const r=document.createElement("canvas"),t=Math.min(1,Math.sqrt(te.maxCanvasPixels/(a.width*a.height)));r.width=Math.max(1,Math.round(a.width*t)),r.height=Math.max(1,Math.round(a.height*t));const i=Math.min(r.width/n.videoWidth,r.height/n.videoHeight),o=n.videoWidth*i,s=n.videoHeight*i;return r.getContext("2d").drawImage(n,(r.width-o)/2,(r.height-s)/2,o,s),n.pause(),r}const rn={class:"mp-video-icon--generic",width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.7","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},ln=["d","fill"],sn=["src"],cn=["src"],Oe=e.defineComponent({__name:"VideoIcon",props:{name:{}},setup(n){const a=n,r={play:["mobile-play","pc-play"],replay:["mobile-play","pc-play"],pause:["mobile-pause","pc-pause"],fullscreen:["mobile-fullscreen","pc-fullscreen"],exit:["mobile-fullscreen","pc-exit"]},t={"mobile-play":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='18px'%20height='18px'%20viewBox='0%200%2018%2018'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e三角形%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-查看视频'%20transform='translate(-18.000000,%20-687.000000)'%20fill='%23333333'%3e%3cg%20id='编组-5'%20transform='translate(0.000000,%20672.000000)'%3e%3cg%20id='编组-4'%20transform='translate(18.000000,%2012.913043)'%3e%3cpath%20d='M13.5185936,7.08213339%20L18.1443888,14.1750193%20C19.2003225,15.7941177%2018.7437874,17.9626598%2017.1246889,19.0185936%20C16.5559936,19.3894818%2015.8917011,19.5869565%2015.2127517,19.5869565%20L5.96116137,19.5869565%20C4.02816475,19.5869565%202.46116137,18.0199531%202.46116137,16.0869565%20C2.46116137,15.4080071%202.65863607,14.7437145%203.02952428,14.1750193%20L7.65531943,7.08213339%20C8.71125321,5.46303494%2010.8797953,5.00649976%2012.4988938,6.06243353%20C12.9058908,6.3278664%2013.2531607,6.67513633%2013.5185936,7.08213339%20Z'%20id='三角形'%20transform='translate(10.586957,%2011.086957)%20rotate(90.000000)%20translate(-10.586957,%20-11.086957)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"mobile-pause":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='18px'%20height='18px'%20viewBox='0%200%2018%2018'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e暂停%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-观看视频'%20transform='translate(-17.000000,%20-687.000000)'%20fill='%23333333'%3e%3cg%20id='编组-5'%20transform='translate(0.000000,%20672.000000)'%3e%3cg%20id='编组-3'%20transform='translate(17.000000,%2012.913043)'%3e%3cg%20id='暂停-2'%20transform='translate(0.000000,%202.086957)'%3e%3cg%20id='暂停'%20transform='translate(3.000000,%201.500000)'%3e%3crect%20id='矩形'%20x='0'%20y='0'%20width='3.5'%20height='15'%20rx='1.75'%3e%3c/rect%3e%3crect%20id='矩形备份-7'%20x='9'%20y='0'%20width='3.5'%20height='15'%20rx='1.75'%3e%3c/rect%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"mobile-fullscreen":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e横竖屏备份%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='懒猫微服-图标库2.0'%20transform='translate(-449.000000,%20-196.000000)'%20stroke='%23333333'%20stroke-width='1.5'%3e%3cg%20id='横竖屏'%20transform='translate(449.000000,%20196.000000)'%3e%3crect%20id='矩形'%20x='3.75'%20y='9.75'%20width='16.5'%20height='10.5'%20rx='4'%3e%3c/rect%3e%3crect%20id='矩形'%20fill='%23FFFFFF'%20x='3.75'%20y='3.75'%20width='10.5'%20height='16.5'%20rx='4'%3e%3c/rect%3e%3cline%20x1='7.5'%20y1='7'%20x2='10.5'%20y2='7'%20id='路径-83'%20stroke-linecap='round'%3e%3c/line%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"center-play":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='14px'%20height='14px'%20viewBox='0%200%2014%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e播放%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-查看视频'%20transform='translate(-181.000000,%20-399.000000)'%20fill-rule='nonzero'%3e%3cg%20id='播放'%20transform='translate(164.000000,%20382.000000)'%3e%3cg%20id='播放-2'%20transform='translate(17.000000,%2016.000000)'%3e%3cpath%20d='M10.7364863,4.038851%20L15.2901269,12.0077221%20C15.8381469,12.966757%2015.5049534,14.1884663%2014.5459185,14.7364863%20C14.2437231,14.9091694%2013.9016945,15%2013.5536406,15%20L4.44635936,15%20C3.34178986,15%202.44635936,14.1045695%202.44635936,13%20C2.44635936,12.6519461%202.53718999,12.3099175%202.70987307,12.0077221%20L7.26351372,4.038851%20C7.81153365,3.0798161%209.03324298,2.74662265%209.99227788,3.29464259%20C10.3023404,3.47182119%2010.5593077,3.72878844%2010.7364863,4.038851%20Z'%20id='播放'%20transform='translate(9.000000,%208.000000)%20rotate(90.000000)%20translate(-9.000000,%20-8.000000)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"pc-play":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16px'%20height='16px'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e开始%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2.11查看视频'%20transform='translate(-764.000000,%20-1017.000000)'%20fill='%23FFFFFF'%3e%3cg%20id='编组-7'%20transform='translate(68.000000,%200.000000)'%3e%3cg%20id='编组'%20transform='translate(646.000000,%20970.000000)'%3e%3cg%20id='开始'%20transform='translate(50.000000,%2045.022998)'%3e%3cpath%20d='M11.1122895,6.09085035%20L16.0457675,13.4910673%20C16.9648249,14.8696534%2016.5923033,16.7322614%2015.2137172,17.6513188%20C14.7209147,17.9798538%2014.1418916,18.1551679%2013.5496166,18.1551679%20L4.15581091,18.1551679%20C2.49895666,18.1551679%201.15581091,16.8120222%201.15581091,15.1551679%20C1.15581091,14.6093944%201.30469549,14.0739605%201.58643112,13.6065274%20L6.04675886,6.20631041%20C6.90204941,4.78728113%208.74574991,4.3302806%2010.1647792,5.18557115%20C10.5434695,5.41381888%2010.8670246,5.72295299%2011.1122895,6.09085035%20Z'%20id='三角形'%20transform='translate(9.000000,%2010.155168)%20rotate(90.000000)%20translate(-9.000000,%20-10.155168)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"pc-pause":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16px'%20height='16px'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e暂停%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2.11查看视频'%20transform='translate(-737.000000,%20-1017.000000)'%20fill='%23FFFFFF'%3e%3cg%20id='编组-7'%20transform='translate(68.000000,%200.000000)'%3e%3cg%20id='编组'%20transform='translate(646.000000,%20970.000000)'%3e%3cg%20id='暂停-2'%20transform='translate(23.000000,%2047.000000)'%3e%3cg%20id='暂停'%20transform='translate(1.000000,%200.000000)'%3e%3crect%20id='矩形'%20x='0'%20y='0'%20width='4'%20height='16'%20rx='2'%3e%3c/rect%3e%3crect%20id='矩形备份-4'%20x='10'%20y='0'%20width='4'%20height='16'%20rx='2'%3e%3c/rect%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"pc-fullscreen":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16px'%20height='16px'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e形状%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2.11查看视频'%20transform='translate(-1236.000000,%20-1017.000000)'%20fill='%23FFFFFF'%20fill-rule='nonzero'%3e%3cg%20id='编组-7'%20transform='translate(68.000000,%200.000000)'%3e%3cg%20id='编组'%20transform='translate(646.000000,%20970.000000)'%3e%3cg%20id='形状-2'%20transform='translate(522.000000,%2047.000000)'%3e%3cpath%20d='M2.64896326,8.31181102%20C3.0069116,8.31181102%203.29792652,8.60254391%203.29792652,8.96014537%20L3.297,11.774%20L6.30847581,8.766808%20C6.56165879,8.51387038%206.97344489,8.51387038%207.22662786,8.766808%20C7.47981084,9.01974561%207.47981084,9.43113265%207.22662786,9.68407026%20L4.204,12.701%20L7.04328847,12.7018776%20C7.40123681,12.7018776%207.69225716,12.9926105%207.69225716,13.350212%20C7.6937068,13.7092671%207.40269189,14%207.04328847,14%20L3.79410695,14%20C2.80465624,14%202,13.1961236%202,12.2076317%20L2,8.96014537%20C2,8.60254391%202.29101491,8.31181102%202.64896326,8.31181102%20Z%20M12.2058931,2%20C12.6893524,2%2013.1286932,2.19192028%2013.4516066,2.50352194%20C13.4593844,2.50982425%2013.4671226,2.51718474%2013.4747181,2.52477286%20L13.4959896,2.54786191%20C13.8078935,2.87046237%2014,3.30937746%2014,3.79236826%20L14,7.03985463%20C14,7.39745609%2013.7089851,7.68818898%2013.3510367,7.68818898%20C12.9930884,7.68818898%2012.7020735,7.39745609%2012.7020735,7.03985463%20L12.702,4.213%20L9.67842852,7.23464567%20C9.55183703,7.36111448%209.38450346,7.42507571%209.21862495,7.42507571%20C9.05274645,7.42507571%208.88686795,7.36111448%208.76027646,7.23464567%20C8.50709349,6.98170806%208.50709349,6.57032102%208.76027646,6.3173834%20L11.783,3.296%20L8.95525646,3.29666869%20C8.59730811,3.29666869%208.3062932,3.0059358%208.3062932,2.64833434%20C8.3062932,2.29073289%208.59730811,2%208.95525646,2%20L12.2058931,2%20Z'%20id='全屏'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href,"pc-exit":new URL("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16px'%20height='16px'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e形状备份%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='2.11查看视频'%20transform='translate(-1275.000000,%20-1007.000000)'%20fill='%23FFFFFF'%20fill-rule='nonzero'%3e%3cg%20id='编组-7'%20transform='translate(68.000000,%200.000000)'%3e%3cg%20id='编组备份'%20transform='translate(601.000000,%20987.000000)'%3e%3cg%20id='形状-2'%20transform='translate(606.000000,%2020.000000)'%3e%3cpath%20d='M5.89959985,8.31181102%20C6.88905056,8.31181102%207.6937068,9.11568746%207.6937068,10.1041793%20L7.6937068,13.3516657%20C7.6937068,13.7092671%207.40269189,14%207.04474354,14%20C6.6867952,14%206.39578028,13.7092671%206.39578028,13.3516657%20L6.395,10.514%20L3.43761368,13.4679588%20C3.31102219,13.5958813%203.14514369,13.6583889%202.97926519,13.6583889%20C2.81338669,13.6583889%202.64750818,13.5944276%202.5209167,13.4679588%20C2.26773372,13.2150212%202.26773372,12.8036342%202.5209167,12.5506965%20L5.465,9.608%20L2.64896326,9.60847971%20C2.29101491,9.60847971%202,9.31774682%202,8.96014537%20C2,8.60254391%202.29101491,8.31181102%202.64896326,8.31181102%20L5.89959985,8.31181102%20Z%20M8.9567061,2%20C9.31465444,2%209.60566936,2.29073289%209.60566936,2.64833434%20L9.605,5.473%20L12.556566,2.52477286%20C12.809749,2.27183525%2013.2215351,2.27183525%2013.4747181,2.52477286%20C13.7279011,2.77771048%2013.7279011,3.18909752%2013.4747181,3.44203513%20L10.523,6.39%20L13.3510313,6.39006663%20C13.7089797,6.39006663%2014,6.68079952%2014,7.03840097%20C14.0014496,7.39745609%2013.7104347,7.68818898%2013.3510313,7.68818898%20L10.1018498,7.68818898%20C9.11239908,7.68818898%208.30774284,6.88431254%208.30774284,5.89582071%20L8.30774284,2.64833434%20C8.30774284,2.29073289%208.59875775,2%208.9567061,2%20Z'%20id='全屏'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("vue-media-preview.cjs",document.baseURI).href).href},i={play:["m9 5 11 7-11 7Z"],pause:["M8 5v14M16 5v14"],replay:["M4 10a8 8 0 1 1 1 7","M4 4v6h6"],fullscreen:["M4 9V4h5M15 4h5v5M20 15v5h-5M9 20H4v-5"],exit:["M9 4v5H4M20 9h-5V4M15 20v-5h5M4 15h5v5"],volume:["m11 4-6 5H2v6h3l6 5Z","M15 8a6 6 0 0 1 0 8M18 5a10 10 0 0 1 0 14"],muted:["m11 4-6 5H2v6h3l6 5Z","m16 9 6 6m0-6-6 6"]};return(o,s)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["mp-video-icon",{"has-album-icon":a.name in r}])},[(e.openBlock(),e.createElementBlock("svg",rn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i[o.name],(l,u)=>(e.openBlock(),e.createElementBlock("path",{key:u,d:l,fill:o.name==="play"?"currentColor":"none"},null,8,ln))),128))])),o.name in r?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("img",{class:"mp-video-icon--mobile",src:t[r[o.name][0]],alt:"","aria-hidden":"true",draggable:"false"},null,8,sn),e.createElementVNode("img",{class:"mp-video-icon--desktop",src:t[r[o.name][1]],alt:"","aria-hidden":"true",draggable:"false"},null,8,cn)],64)):e.createCommentVNode("",!0)],2))}}),un={key:0,class:"mp-video-seek-preview"},dn=["aria-label","disabled"],fn={class:"mp-video-time"},mn=["tabindex","aria-disabled","aria-valuemax","aria-valuenow","aria-valuetext"],pn=e.createElementVNode("span",{class:"mp-video-progress__rail"},null,-1),gn={class:"mp-video-time"},hn=["aria-label","aria-pressed"],vn=["aria-label","disabled"],yn=e.defineComponent({__name:"VideoControls",props:{playback:{},fullscreen:{type:Boolean},canFullscreen:{type:Boolean}},emits:["fullscreen"],setup(n,{emit:a}){const r=n,t=a,i=e.ref(),{state:o,seekable:s,displayTime:l,progress:u,bufferedRanges:v}=r.playback;function d(k){const g=i.value.getBoundingClientRect();r.playback.scrub((k.clientX-g.left)/Math.max(1,g.width)*o.duration)}function M(k){!s.value||k.pointerType==="mouse"&&k.button!==0||(i.value.setPointerCapture(k.pointerId),r.playback.beginScrub(),d(k))}function P(k){o.scrubbing&&d(k)}function E(k){o.scrubbing&&(d(k),r.playback.endScrub())}function S(k){r.playback.beginScrub(),r.playback.scrub(l.value+k),r.playback.endScrub()}return(k,g)=>(e.openBlock(),e.createElementBlock("div",{class:"mp-video-controls","data-preview-control":"",onPointerdown:g[9]||(g[9]=e.withModifiers(()=>{},["stop"])),onPointermove:g[10]||(g[10]=e.withModifiers(()=>{},["stop"])),onPointerup:g[11]||(g[11]=e.withModifiers(()=>{},["stop"])),onPointercancel:g[12]||(g[12]=e.withModifiers(()=>{},["stop"])),onClick:g[13]||(g[13]=e.withModifiers(()=>{},["stop"])),onDblclick:g[14]||(g[14]=e.withModifiers(()=>{},["stop"])),onKeydown:g[15]||(g[15]=e.withModifiers(()=>{},["stop"]))},[e.unref(o).scrubbing?(e.openBlock(),e.createElementBlock("div",un,[e.createTextVNode(e.toDisplayString(e.unref(xe)(e.unref(l))),1),e.createElementVNode("span",null," / "+e.toDisplayString(e.unref(xe)(e.unref(o).duration)),1)])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button","aria-label":e.unref(o).ended?"重新播放视频":e.unref(o).playing?"暂停视频":"播放视频",disabled:e.unref(o).status==="error",onClick:g[0]||(g[0]=(...L)=>k.playback.toggle&&k.playback.toggle(...L))},[e.createVNode(Oe,{name:e.unref(o).ended?"replay":e.unref(o).playing?"pause":"play"},null,8,["name"])],8,dn),e.createElementVNode("time",fn,e.toDisplayString(e.unref(xe)(e.unref(l))),1),e.createElementVNode("div",{ref_key:"track",ref:i,class:e.normalizeClass(["mp-video-progress",{"is-scrubbing":e.unref(o).scrubbing}]),role:"slider","aria-label":"视频进度",tabindex:e.unref(s)?0:-1,"aria-disabled":!e.unref(s),"aria-valuemin":"0","aria-valuemax":e.unref(o).duration,"aria-valuenow":e.unref(l),"aria-valuetext":`${e.unref(xe)(e.unref(l))} / ${e.unref(xe)(e.unref(o).duration)}`,onPointerdown:e.withModifiers(M,["prevent"]),onPointermove:e.withModifiers(P,["prevent"]),onPointerup:e.withModifiers(E,["prevent"]),onPointercancel:g[1]||(g[1]=L=>k.playback.endScrub(!1)),onLostpointercapture:g[2]||(g[2]=L=>k.playback.endScrub(!1)),onKeydown:[g[3]||(g[3]=e.withKeys(e.withModifiers(L=>S(-5),["prevent"]),["left"])),g[4]||(g[4]=e.withKeys(e.withModifiers(L=>S(5),["prevent"]),["right"])),g[5]||(g[5]=e.withKeys(e.withModifiers(L=>S(-e.unref(o).duration),["prevent"]),["home"])),g[6]||(g[6]=e.withKeys(e.withModifiers(L=>S(e.unref(o).duration),["prevent"]),["end"]))]},[pn,(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(v),(L,$)=>(e.openBlock(),e.createElementBlock("span",{key:$,class:"mp-video-progress__buffered",style:e.normalizeStyle({left:`${L.left}%`,width:`${L.width}%`})},null,4))),128)),e.createElementVNode("span",{class:"mp-video-progress__played",style:e.normalizeStyle({width:`${e.unref(u)}%`})},null,4),e.createElementVNode("span",{class:"mp-video-progress__thumb",style:e.normalizeStyle({left:`${e.unref(u)}%`})},null,4)],42,mn),e.createElementVNode("time",gn,e.toDisplayString(e.unref(xe)(e.unref(o).duration)),1),e.createElementVNode("button",{type:"button",class:"mp-video-volume","aria-label":e.unref(o).muted?"开启声音":"静音视频","aria-pressed":e.unref(o).muted,onClick:g[7]||(g[7]=(...L)=>k.playback.toggleMuted&&k.playback.toggleMuted(...L))},[e.createVNode(Oe,{name:e.unref(o).muted?"muted":"volume"},null,8,["name"])],8,hn),e.createElementVNode("button",{type:"button","aria-label":k.fullscreen?"退出视频全屏":"视频全屏",disabled:!k.canFullscreen,onClick:g[8]||(g[8]=L=>t("fullscreen"))},[e.createVNode(Oe,{name:k.fullscreen?"exit":"fullscreen"},null,8,["name"])],8,vn)],32))}}),wn=["data-playback"],bn=["muted","loop","preload"],kn={key:1,class:"mp-video-loading",role:"status","aria-label":"视频缓冲中"},xn=e.createElementVNode("span",{class:"mp-spinner"},null,-1),Mn=[xn],En=["aria-label"],Sn={key:3,class:"mp-video-error",role:"alert"},Cn=["inert"],vt=e.defineComponent({inheritAttrs:!1,__name:"VideoDomRenderer",props:{initialImage:{default:()=>fe},rendering:{type:Boolean,default:!0},quality:{default:"screen"},requestVersion:{default:0},priority:{default:0},resourcePolicy:{default:()=>Se},resolveSource:{type:Function,default:Ce},media:{},videoLoader:{type:Function,default:$e},core:{},active:{type:Boolean,default:!0},enabled:{type:Boolean,default:!0},autoplay:{type:Boolean,default:!1},loadEnabled:{type:Boolean,default:!0},muted:{type:Boolean,default:!1},loop:{type:Boolean,default:!1},controls:{type:Boolean,default:!0},controlsVisible:{type:Boolean,default:!0},teleportControls:{type:Boolean,default:!1},controlsTarget:{default:"body"}},emits:["originalState","ready","error"],setup(n,{expose:a,emit:r}){const t=n,i=r,o=e.ref(!1),s=e.computed(()=>({...t.media,type:"image",src:t.media.poster||t.media.previewSrc||t.media.thumbnail})),l=e.ref(),u=e.ref(),v=e.ref(!1),d=e.ref(!1),M=gt(()=>l.value,m=>i("error",m));lt(()=>l.value,()=>t.media,()=>t.active&&t.loadEnabled,()=>t.videoLoader,M.sourceObserver);let P=()=>{};const{state:E}=M,S=e.computed(()=>t.controls&&t.active&&t.enabled&&t.controlsVisible);function k(){return t.teleportControls?u.value.closest(".mp-viewer"):t.core.containerRef.value}async function g(){if(d.value)try{document.fullscreenElement===k()?await document.exitFullscreen():document.fullscreenEnabled?await k().requestFullscreen():l.value.webkitEnterFullscreen()}catch(m){i("error",Ee(m))}}function L(){v.value=document.fullscreenElement===k()}function $(){!t.active||!t.enabled?M.pause():t.autoplay&&M.play()}function y(){document.hidden&&M.pause()}e.onMounted(()=>{E.muted=l.value.muted,d.value=document.fullscreenEnabled||"webkitEnterFullscreen"in l.value,document.addEventListener("fullscreenchange",L),document.addEventListener("visibilitychange",y),P=e.watch(()=>[t.active,t.enabled,t.autoplay],$,{flush:"post"}),$()}),e.onBeforeUnmount(()=>{P(),M.dispose(),document.removeEventListener("fullscreenchange",L),document.removeEventListener("visibilitychange",y),document.fullscreenElement===k()&&document.exitFullscreen().catch(()=>{})});const x=e.computed(()=>({transform:`translate(-50%, -50%) translate3d(${t.core.state.offsetX}px, ${t.core.state.offsetY}px, 0)`})),p=e.computed(()=>({width:`${t.core.mediaSize.value.width*t.core.displayScale.value}px`,height:`${t.core.mediaSize.value.height*t.core.displayScale.value}px`,transform:`rotate(${t.core.state.rotation}deg)`}));function w(){o.value=!0,t.core.setMediaElement(l.value),i("ready","screen")}function C(){return{image:o.value?on(l.value,t.core.mediaSize.value):t.core.mediaRef.value,scale:1}}return a({togglePlayback:M.toggle,toggleFullscreen:g,playback:M,captureFrame:C}),(m,h)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"host",ref:u,class:"mp-dom-renderer mp-video-player","data-playback":e.unref(E).ended?"ended":e.unref(E).playing?"playing":"paused"},[o.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Ae,{key:0,media:s.value,"original-enabled":!1,core:m.core,"initial-image":m.initialImage,rendering:m.rendering,quality:m.quality,"request-version":m.requestVersion,"load-enabled":m.loadEnabled,priority:m.priority,"resource-policy":m.resourcePolicy,"resolve-source":m.resolveSource,onReady:h[0]||(h[0]=V=>i("ready",V)),onError:h[1]||(h[1]=V=>i("error",V)),onOriginalState:h[2]||(h[2]=(V,F)=>i("originalState",V,F))},null,8,["media","core","initial-image","rendering","quality","request-version","load-enabled","priority","resource-policy","resolve-source"])),e.createElementVNode("div",{class:"mp-dom-renderer__frame",style:e.normalizeStyle([x.value,{visibility:o.value?"inherit":"hidden"}])},[e.createElementVNode("video",e.mergeProps({ref_key:"videoRef",ref:l,class:"mp-dom-renderer__node",muted:m.muted,loop:m.loop,playsinline:"","webkit-playsinline":"true",crossorigin:"anonymous",preload:m.active&&m.loadEnabled?"auto":"none",style:p.value},e.toHandlers(e.unref(M).events,!0),{onPlaying:w}),null,16,bn)],4),m.active&&m.enabled&&e.unref(E).buffering&&e.unref(E).status!=="error"?(e.openBlock(),e.createElementBlock("div",kn,Mn)):e.createCommentVNode("",!0),S.value&&!e.unref(E).playing&&!e.unref(E).buffering&&e.unref(E).status!=="error"?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"mp-video-center-play","data-preview-control":"","aria-label":e.unref(E).ended?"重新播放":"开始播放视频",onPointerdown:h[3]||(h[3]=e.withModifiers(()=>{},["stop"])),onPointerup:h[4]||(h[4]=e.withModifiers(()=>{},["stop"])),onClick:h[5]||(h[5]=e.withModifiers((...V)=>e.unref(M).toggle&&e.unref(M).toggle(...V),["stop"]))},[e.createVNode(Oe,{name:e.unref(E).ended?"replay":"play"},null,8,["name"])],40,En)):e.createCommentVNode("",!0),e.unref(E).status==="error"?(e.openBlock(),e.createElementBlock("div",Sn,"视频暂时无法播放")):e.createCommentVNode("",!0),m.controls&&m.active&&m.enabled?(e.openBlock(),e.createBlock(e.Teleport,{key:4,to:m.controlsTarget,disabled:!m.teleportControls},[e.createElementVNode("div",{class:e.normalizeClass(["mp-video-control-layer",{"is-hidden":!S.value}]),inert:!S.value},[e.createVNode(yn,{playback:e.unref(M),fullscreen:v.value,"can-fullscreen":d.value,onFullscreen:g},null,8,["playback","fullscreen","can-fullscreen"])],10,Cn)],8,["to","disabled"])):e.createCommentVNode("",!0)],8,wn))}}),Rn=["data-scale","data-rotation","data-live-holding"],yt=e.defineComponent({__name:"PreviewStage",props:{media:{},videoLoader:{type:Function,default:$e},livePlaying:{type:Boolean,default:!1},active:{type:Boolean,default:!0},requestVersion:{default:0},loadEnabled:{type:Boolean,default:!0},resourcePolicy:{default:()=>Se},resolveSource:{type:Function,default:Ce},inactiveResetDuration:{default:0},disabled:{type:Boolean,default:!1},externalGestures:{type:Boolean,default:!1},controlsVisible:{type:Boolean,default:!0},teleportControls:{type:Boolean,default:!1},controlsTarget:{default:"body"},rendering:{type:Boolean,default:!0},paging:{type:Boolean,default:!1},initialImage:{default:()=>fe},quality:{default:"screen"}},emits:["tap","doubleTap","scale","swipeDownProgress","close","previous","next","pageDrag","pageRelease","ready","error","originalState","liveState","liveEnded"],setup(n,{expose:a,emit:r}){const t=n,i=r,o=e.ref(!1),s=e.ref("loading"),l=st({motionActive:()=>t.paging,interactive:()=>t.active&&!t.disabled,zoomable:()=>!0,doubleTapZoom:()=>tt(t.media,l.core.viewportSize.value),zoomLimit:()=>Math.max(8,tt(t.media,l.core.viewportSize.value)*2),holdable:()=>t.media.type==="live-photo"&&M.value==="ready"&&s.value==="idle",onHoldStart:()=>{o.value=!0},onHoldEnd:()=>{o.value=!1,i("liveEnded")},onTap:()=>i("tap"),onDoubleTap:()=>i("doubleTap"),onScale:y=>{t.active&&i("scale",y)},onSwipeDownProgress:y=>{t.active&&i("swipeDownProgress",y)},onSwipeDownClose:()=>i("close"),onSwipeLeft:()=>i("next"),onSwipeRight:()=>i("previous"),onPageDrag:y=>{t.active&&i("pageDrag",y)},onPageRelease:(y,x)=>i("pageRelease",y,x)}),u=l.core.containerRef,v=l.core.downDragStyle,d=l.core.state,M=e.ref("loading"),P=e.ref("thumbnail"),E=e.ref(),S=e.computed(()=>t.media.type==="video"?vt:t.media.type==="live-photo"?ht:Ae),k=e.computed(()=>P.value==="full"||t.quality==="full"?"full":t.quality);e.watch([()=>t.media.id,()=>t.media.src,()=>t.media.previewSrc,()=>t.media.thumbnail],()=>{P.value="thumbnail"}),e.watch(()=>t.media.id,()=>{M.value="loading",l.core.setRotation(0)}),e.watch([()=>t.media.width,()=>t.media.height],([y,x])=>{l.core.setMediaSize({width:y,height:x})},{immediate:!0}),e.watch(()=>t.active,y=>{y||l.core.resetTransform(t.inactiveResetDuration)}),e.watch(()=>t.disabled,y=>{y&&l.core.cancelGesture(!0)});function g(y){y==="full"&&(P.value=y),M.value="ready",i("ready",y)}function L(y){s.value=y,i("liveState",y)}const $=e.computed(()=>t.externalGestures?{}:{wheel:l.onWheel,pointerdown:l.onPointerDown,pointermove:l.onPointerMove,pointerup:l.onPointerUp,pointercancel:l.onPointerCancel,lostpointercapture:l.onPointerCancel});return a({onPointerDown:l.onPointerDown,onPointerMove:l.onPointerMove,onPointerUp:l.onPointerUp,onPointerCancel:l.onPointerCancel,onWheel:l.onWheel,readiness:M,core:l.core,rotateBy:l.core.rotateBy,resetTransform:l.core.resetTransform,zoomIn:()=>l.core.zoomTo(d.level*1.5,void 0,!0),zoomOut:()=>l.core.zoomTo(d.level/1.5,void 0,!0),togglePlayback:()=>E.value.togglePlayback(),toggleFullscreen:()=>E.value.toggleFullscreen(),captureFrame:()=>E.value.captureFrame()}),(y,x)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({ref_key:"containerRef",ref:u,class:["mp-stage",{"is-zoomed":e.unref(d).level>1,"is-dismissing":e.unref(d).draggingDown}],style:e.unref(v),"data-scale":e.unref(d).level.toFixed(3),"data-rotation":e.unref(d).rotation,"data-live-holding":o.value,onContextmenu:x[3]||(x[3]=p=>{y.media.type==="live-photo"&&p.preventDefault()})},e.toHandlers($.value,!0)),[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.value),e.mergeProps({ref_key:"rendererRef",ref:E,media:y.media},y.media.type==="video"?{videoLoader:y.videoLoader}:{},{"initial-image":y.initialImage,rendering:y.rendering,core:e.unref(l).core,quality:k.value,"request-version":y.requestVersion,"load-enabled":y.loadEnabled,priority:y.active?0:2,"resource-policy":y.resourcePolicy,"resolve-source":y.resolveSource,playing:(y.livePlaying||o.value)&&y.active,enabled:!y.disabled,"controls-visible":y.controlsVisible,"teleport-controls":y.teleportControls,"controls-target":y.controlsTarget,active:y.active,onReady:g,onError:x[0]||(x[0]=p=>i("error",p)),onOriginalState:x[1]||(x[1]=(p,w)=>i("originalState",p,w)),onLiveState:L,onLiveEnded:x[2]||(x[2]=p=>i("liveEnded"))}),null,16,["media","initial-image","rendering","core","quality","request-version","load-enabled","priority","resource-policy","resolve-source","playing","enabled","controls-visible","teleport-controls","controls-target","active"]))],16,Rn))}});function Pn(n,a){const r=e.ref(new Set),t=e.ref("idle"),i=e.ref(""),o=e.ref(0),s=e.ref("");function l(){s.value="",t.value="idle",i.value="",o.value=0}function u(){t.value!=="ready"&&(t.value="loading",i.value="",o.value++,r.value=new Set([...r.value,n().id]))}function v(d,M){t.value=d,i.value=M,a(n(),d,M)}return{originalIds:r,originalStatus:t,originalReason:i,originalRequest:o,readyId:s,reset:l,requestOriginal:u,updateOriginal:v}}function Bn(n,a,r,t={}){const i=e.ref(0),o=e.reactive({offset:0,dragging:!1,settling:!1,preparing:!1,grabbed:!1,duration:360}),s={readOffset:()=>o.offset,flushLayout:()=>{},...t},l=16,u=()=>a()+l,v=e.computed(()=>[i.value-1,i.value,i.value+1].filter(C=>C>=0&&C<n()));let d=setTimeout(()=>{},0),M=()=>{},P=0,E=0;function S(){P+=1,clearTimeout(d),M(),o.settling=!1,o.preparing=!1}e.onBeforeUnmount(S);function k(){if(!o.settling&&!o.preparing)return;const C=o.preparing?o.offset:s.readOffset();S(),o.offset=C,o.grabbed=!0}function g(C){if(C===0){S(),o.dragging=!1,o.grabbed=!1,o.offset=0,E=0;return}o.dragging||(k(),E=o.offset,S(),o.dragging=!0,o.grabbed=!0);const m=E+C,h=i.value===0&&m>0||i.value===n()-1&&m<0;o.offset=h?Math.sign(m)*Math.sqrt(Math.abs(m))*6:m}async function L(C,m=0){S();const h=P,V=i.value;o.offset+=(C-V)*u();const F=Math.abs(o.offset),z=X(F/u(),0,1),q=X(220+z*140-Math.min(Math.abs(m),2)*35,240,360);o.duration=matchMedia("(prefers-reduced-motion: reduce)").matches?0:q,i.value=C,o.dragging=!1,o.grabbed=!1,o.preparing=!0,C!==V&&r(C),await e.nextTick(),h===P&&(s.flushLayout(),o.preparing=!1,o.settling=!0,o.offset=0,await new Promise(Y=>{M=Y,d=setTimeout(Y,o.duration)}),h===P&&(o.settling=!1,M=()=>{}))}function $(C,m){const h=o.offset,V=Math.abs(m)>.35&&Math.abs(C)>16,F=Math.sign(V?m:h),z=V||Math.abs(h)>a()*.14;L(X(i.value-(z?F:0),0,n()-1),m)}function y(){o.grabbed&&!o.dragging&&L(i.value)}function x(C){if(o.dragging)return;k();const m=X(i.value+C,0,n()-1);m!==i.value?L(m):y()}function p(C){S(),i.value=C,o.offset=0,o.dragging=!1,o.grabbed=!1}function w(C){i.value=C}return{index:i,state:o,slots:v,stride:u,drag:g,release:$,go:x,grab:k,resume:y,reset:p,rebase:w,cancel:S}}function wt(n,a,r){const t=Math[r==="cover"?"max":"min"](a.width/n.width,a.height/n.height);return{x:a.left+a.width/2,y:a.top+a.height/2,width:n.width*t,height:n.height*t,rotation:0,clip:{left:a.left,top:a.top,width:a.width,height:a.height},radius:0}}function Ln(n,a,r){const t=(i,o)=>i+(o-i)*r;return{x:t(n.x,a.x),y:t(n.y,a.y),width:t(n.width,a.width),height:t(n.height,a.height),rotation:t(n.rotation,a.rotation),radius:t(n.radius,a.radius),clip:{left:t(n.clip.left,a.clip.left),top:t(n.clip.top,a.clip.top),width:t(n.clip.width,a.clip.width),height:t(n.clip.height,a.clip.height)}}}function it(n){const a=n.rotation*Math.PI/180,r=Math.abs(Math.cos(a))*n.width+Math.abs(Math.sin(a))*n.height,t=Math.abs(Math.sin(a))*n.width+Math.abs(Math.cos(a))*n.height,i=Math.max(n.x-r/2,n.clip.left),o=Math.max(n.y-t/2,n.clip.top);return{left:i,top:o,width:Math.max(0,Math.min(n.x+r/2,n.clip.left+n.clip.width)-i),height:Math.max(0,Math.min(n.y+t/2,n.clip.top+n.clip.height)-o)}}function Tn(n,a,r,t,i){const o=it(n),s=it(a),l=Math.min(o.width/s.width,o.height/s.height),u={width:Math.max(o.width,s.width,1),height:Math.max(o.height,s.height,1)},v=128,d=[],M=[];for(let P=0;P<=v;P+=1){const E=P/v,S=Ln(n,a,E);let k;if(i)k={left:o.left+(s.left-o.left)*E,top:o.top+(s.top-o.top)*E,width:o.width+(s.width-o.width)*E,height:o.height+(s.height-o.height)*E};else{const $=Math.min(E/.78,1),y=1-$*$*$*($*($*6-15)+10),x=l+(1-l)*E,p=s.width*x+(o.width-s.width*l)*y,w=s.height*x+(o.height-s.height*l)*y;k={left:o.left+o.width/2+(s.left+s.width/2-o.left-o.width/2)*E-p/2,top:o.top+o.height/2+(s.top+s.height/2-o.top-o.height/2)*E-w/2,width:p,height:w}}const g=Math.max(k.width,.001)/u.width,L=Math.max(k.height,.001)/u.height;d.push({transform:`scale(${1/g},${1/L}) translate3d(${S.x-k.left}px,${S.y-k.top}px,0) rotate(${S.rotation}deg) scale(${S.width/t.width}) translate3d(${-t.width/2}px,${-t.height/2}px,0)`,offset:E}),M.push({transform:`translate3d(${k.left-r.left}px,${k.top-r.top}px,0) scale(${g},${L})`,...n.radius===0&&a.radius===0?{}:{borderRadius:`${S.radius/g}px / ${S.radius/L}px`},offset:E})}return{pictures:d,masks:M,maskSize:u}}function Fn(){let n={kind:"idle"};function a(){n.kind==="playing"&&n.animations.forEach(i=>i.cancel()),n={kind:"idle"}}function r(){return n.kind!=="playing"||!n.entering?{kind:"inactive"}:(n.entering=!1,n.animations.forEach(i=>i.reverse()),n.finished=Promise.all(n.animations.map(i=>i.finished)).then(()=>{}).catch(()=>{}),{kind:"reversing",finished:n.finished})}async function t(i,o,s,l,u,v,d,M,P=M?0:1,E=340){a();const S=Math.max(l.width,u.width),k=S*u.height/u.width,g=Math.min(devicePixelRatio,2,Math.sqrt(te.maxCanvasPixels/(S*k)));i.width=Math.max(1,Math.round(S*g)),i.height=Math.max(1,Math.round(k*g)),i.style.width=`${S}px`,i.style.height=`${k}px`;const L=i.getContext("2d");(m=>{L.clearRect(0,0,i.width,i.height),L.imageSmoothingEnabled=!0,L.imageSmoothingQuality="high",L.drawImage(m,0,0,i.width,i.height)})(s);const y=Tn(l,u,v,{width:S,height:k},M);o.style.width=`${y.maskSize.width}px`,o.style.height=`${y.maskSize.height}px`,o.style.borderRadius="0";const p={duration:matchMedia("(prefers-reduced-motion: reduce)").matches?0:Math.max(0,E),easing:"cubic-bezier(.2,.78,.2,1)",fill:"both"},w=[i.animate(y.pictures,p),o.animate(y.masks,p),d.animate([{opacity:P},{opacity:M?1:0}],p)],C=Promise.all(w.map(m=>m.finished)).then(()=>{}).catch(()=>{});n={kind:"playing",entering:M,animations:w,finished:C},await C}return{play:t,cancel:a,reverseOpening:r}}function bt(n,a){const r=Math.max(n.left,a.left),t=Math.max(n.top,a.top);return{left:r,top:t,width:Math.max(0,Math.min(n.left+n.width,a.left+a.width)-r),height:Math.max(0,Math.min(n.top+n.height,a.top+a.height)-t)}}function Vn(n,a){let r={...a};const t=/^(auto|scroll|overlay)$/;for(let i=n.parentElement;i!==document.documentElement;i=i.parentElement){const o=getComputedStyle(i),s=t.test(o.overflowX),l=t.test(o.overflowY);if(!s&&!l)continue;const u=i.getBoundingClientRect(),v=Number(i.style.getPropertyValue("--mp-transition-inset-top"));r=bt(r,{left:s?u.left:r.left,top:l?u.top+v:r.top,width:s?u.width:r.width,height:l?Math.max(0,u.height-v):r.height})}return r}function ot(n,a,r){if(n.kind==="unavailable")return n;const t=wt(a,n.element.getBoundingClientRect(),"cover");return t.clip=bt(t.clip,Vn(n.element,r)),t.clip.width<=0||t.clip.height<=0?{kind:"unavailable"}:(t.radius=parseFloat(getComputedStyle(n.element).borderTopLeftRadius)||0,{kind:"element",element:n.element,frame:t,viewport:r})}const $n=["aria-label","data-phase","data-chrome","inert"],In=["aria-hidden","inert","data-media-id"],zn={key:0,class:"mp-resource-state mp-viewer__loading mp-viewer__pages",role:"status","aria-label":"加载中"},Dn=e.createElementVNode("span",{class:"mp-spinner","aria-hidden":"true"},null,-1),Nn=[Dn],qn=["inert"],Un={class:"mp-viewer__toolbar"},On={class:"mp-viewer__title"},An=["disabled"],_n={class:"mp-viewer__footer"},Hn={class:"mp-viewer__counter","aria-live":"polite"},Yn={key:1,class:"mp-viewer__detail"},Xn=e.defineComponent({inheritAttrs:!1,__name:"MediaPreview",props:{items:{},mobile:{type:Boolean,default:!1},teleportDisabled:{type:Boolean,default:!1},keyboardEnabled:{type:Boolean,default:!0},gesturesEnabled:{type:Boolean,default:!0},persistentChrome:{type:Boolean,default:!1},videoLoader:{type:Function,default:$e},resourcePolicy:{default:()=>Se},resolveImageSource:{type:Function,default:Ce},hasMore:{type:Boolean,default:!1},appearance:{default:"dark"},closeDuration:{default:240},transitionDuration:{default:340},resolveAnchor:{type:Function,default:()=>({kind:"unavailable"})}},emits:["open","opened","ready","closing","close","change","error","originalState","loadMore","phaseChange","chromeChange"],setup(n,{expose:a,emit:r}){const t=e.useAttrs(),i=n,o=r,s=e.ref("closed");e.watch(s,c=>o("phaseChange",c),{flush:"sync"});const l=`mp-video-controls-${e.getCurrentInstance().uid}`,u=e.ref(),v=e.ref(),d=Pn(()=>O.value,(c,b,R)=>o("originalState",c,b,R)),{originalIds:M,originalStatus:P,originalReason:E,originalRequest:S,readyId:k}=d;let g="",L=-1;const $=e.ref(),y=e.ref(),x=e.ref(),p=e.ref(!1),w=e.ref(0),C=e.ref(!0);e.watch(C,c=>o("chromeChange",c),{flush:"sync"});const m=e.ref(!1),h=e.ref("loading"),V=e.ref(1),F=e.ref(!1),z=e.ref(1),q=e.ref(!1),Y=e.ref(!1),N=e.shallowRef(fe);let ge="",ne={kind:"unavailable"};const ae=new Map,Z=new Map;function he(c){return b=>{Z.set(c,b)}}function Me(c){return b=>{ae.set(c,b)}}const T=Bn(()=>i.items.length,()=>z.value,c=>{g=i.items[c].id,d.reset(),V.value=1,m.value=!1,h.value="loading",o("change",c),be(c)},{readOffset:()=>new DOMMatrixReadOnly(getComputedStyle(Z.get(g)).transform).m41,flushLayout:()=>{Z.get(g).getBoundingClientRect()}}),I=T.index,O=e.computed(()=>i.items[I.value]),ve=T.slots,Ie=e.computed(()=>s.value==="opening"||p.value?[I.value]:ve.value);e.watch(ve,()=>{e.nextTick(()=>{const c=new Set(ve.value.map(b=>i.items[b].id));for(const b of ae.keys())c.has(b)||ae.delete(b);for(const b of Z.keys())c.has(b)||Z.delete(b)})});const K={close:B,setChromeVisible:c=>{C.value=c},goTo:He,previous:()=>T.go(-1),next:()=>T.go(1),rotate:(c=90)=>_().rotateBy(c),reset:()=>_().resetTransform(),zoomIn:()=>_().zoomIn(),zoomOut:()=>_().zoomOut(),original:d.requestOriginal,fullscreen:G,togglePlayback:()=>_().togglePlayback(),toggleLive:()=>{s.value!=="open"||h.value==="loading"||h.value==="error"||(m.value=!m.value)},toggleDetail:()=>{F.value=!F.value}},oe=Fn();let we=Promise.resolve(),j=0,le="",W=!1,se="",re="",me=()=>{},Q={kind:"idle"},ce=0;const ye=()=>new Promise(c=>requestAnimationFrame(()=>c())),pe=new ResizeObserver(()=>{const c=`${v.value.clientWidth}:${v.value.clientHeight}`,b=`${u.value.clientWidth}:${u.value.clientHeight}`,R=se!==""&&se!==c,D=re!==""&&re!==b;se=c,re=b,z.value=v.value.clientWidth,R&&s.value==="open"&&T.reset(I.value),D&&oe.cancel()});function be(c){i.hasMore&&c>=i.items.length-3&&L!==i.items.length&&(L=i.items.length,o("loadMore",c))}function ke(c,b){c===I.value&&(Y.value&&(k.value=O.value.id),o("ready",c,b))}function _e(c,b,R){c===I.value&&d.updateOriginal(b,R)}e.watch(()=>i.items.map(c=>c.id),c=>{if(s.value==="closed")return;if(c.length===0){j++,oe.cancel(),T.cancel(),ce++,Q.kind==="active"&&Q.animation.cancel(),pe.disconnect(),se="",re="",me(),o("closing"),s.value="closed",N.value=fe,ae.clear(),Z.clear(),document.body.style.overflow=le,o("close");return}const b=c.indexOf(g),R=b>=0?b:Math.min(I.value,c.length-1);(R!==I.value||b<0)&&(b>=0?T.rebase(R):(T.reset(R),g=c[R],d.reset(),V.value=1,m.value=!1,o("change",R))),be(R)},{flush:"sync"});function He(c){if(!Number.isInteger(c)||c<0||c>=i.items.length)throw new RangeError("无效的预览下标");if(!(s.value!=="open"||c===I.value)){if(Math.abs(c-I.value)===1){T.go(c-I.value);return}T.reset(c),g=i.items[c].id,d.reset(),V.value=1,m.value=!1,h.value="loading",o("change",c),be(c)}}function Ye(){i.persistentChrome||(C.value=!C.value)}function _(){return ae.get(g)}function ze(c){me();const b=c.element.classList.contains("mp-transition-source");c.element.classList.add("mp-transition-source"),me=()=>{c.element.classList.toggle("mp-transition-source",b)}}function De(){const c=u.value.getBoundingClientRect();return{left:c.left,top:c.top,width:c.width,height:c.height}}function Re(){return v.value.getBoundingClientRect()}function Pe(c=1){const b=Re(),R=_().core,D=R.state,ie=D.downScale;return{x:b.left+b.width/2+T.state.offset+D.offsetX*ie*c+D.downOffsetX,y:b.top+b.height/2+D.offsetY*ie*c+D.downOffsetY,width:R.mediaSize.value.width*R.displayScale.value*ie*c,height:R.mediaSize.value.height*R.displayScale.value*ie*c,rotation:D.rotation,clip:b,radius:0}}async function f(c=0){if(!Number.isInteger(c)||c<0||c>=i.items.length)throw new RangeError("无效的预览下标");if(s.value==="closing"&&await we,s.value!=="closed"||W)return;const b=++j;if(le=document.body.style.overflow,document.body.style.overflow="hidden",T.reset(c),g=i.items[c].id,d.reset(),V.value=1,C.value=!0,m.value=!1,h.value="loading",F.value=!1,w.value=0,Y.value=!1,s.value="opening",N.value=fe,q.value=!1,ge=O.value.id,ne={kind:"unavailable"},p.value=!1,o("open",c),await e.nextTick(),!(b!==j||W)){z.value=v.value.clientWidth,pe.observe(u.value),pe.observe(v.value);try{const R=await i.resolveAnchor(O.value);if(b!==j)return;const D=ot(R,O.value,De());ne=D,N.value=_t(D),q.value=N.value.kind==="image"||_().readiness==="ready";const ie=Re();if(D.kind==="element"){const Te=_().readiness==="ready"?_().core.mediaRef.value:N.value.kind==="image"?N.value.image:et();if(p.value=!0,await e.nextTick(),b!==j||W)return;ze(D),await oe.play($.value,y.value,Te,D.frame,wt(O.value,ie,"contain"),D.viewport,x.value,!0,0,i.transitionDuration)}else w.value=1,p.value=!1,await A(!0)}catch(R){if(b!==j)return;o("error",Ee(R),O.value)}b!==j||W||(w.value=1,s.value="open",await e.nextTick(),!(b!==j||W)&&(_().core.renderNow(),await ye(),!(b!==j||W)&&(p.value=!1,oe.cancel(),me(),o("opened",c),await ye(),!(b!==j||W||s.value!=="open")&&(Y.value=!0,be(c)))))}}function B(){return s.value==="closed"||s.value==="closing"||(we=U()),we}async function U(){T.grab();const c=w.value,b=s.value==="opening",R=!b&&_().readiness==="ready"?_().captureFrame():{image:N.value.kind==="image"&&O.value.id===ge?N.value.image:et(),scale:1};let D=b?{kind:"opening"}:{kind:"captured",frame:Pe(R.scale)};b||_().core.cancelGesture(!0);const ie=++j,Te=b?oe.reverseOpening():{kind:"inactive"};Te.kind==="inactive"&&oe.cancel(),T.cancel(),m.value=!1,s.value="closing",o("closing");try{if(await e.nextTick(),ie!==j||W||(document.fullscreenElement===u.value&&(await document.exitFullscreen(),await ye(),await ye(),D.kind==="captured"&&(D.frame=Pe(R.scale))),ie!==j||W))return;const Xe=b?ne:await i.resolveAnchor(O.value);if(ie!==j||W)return;const qe=b?ne:ot(Xe,O.value,De());if(Te.kind==="reversing")await Te.finished;else if(D.kind==="captured"&&qe.kind==="element"){const Mt=R.image;ze(qe),p.value=!0,await e.nextTick(),await oe.play($.value,y.value,Mt,D.frame,qe.frame,qe.viewport,x.value,!1,c,i.closeDuration)}else p.value=!1,await A(!1)}catch(Xe){o("error",Ee(Xe),O.value),await A(!1)}ie!==j||W||(pe.disconnect(),se="",re="",w.value=0,s.value="closed",N.value=fe,ae.clear(),Z.clear(),me(),document.body.style.overflow=le,o("close"),await e.nextTick(),oe.cancel())}async function A(c){const b=++ce,R=c?0:Number(getComputedStyle(u.value).opacity);Q.kind==="active"&&Q.animation.cancel(),u.value.style.opacity=String(R);const D=u.value.animate([{opacity:R},{opacity:c?1:0}],{duration:matchMedia("(prefers-reduced-motion: reduce)").matches?0:180,fill:"forwards"});Q={kind:"active",animation:D},await D.finished.catch(()=>{}),!(b!==ce||W)&&(u.value.style.opacity=c?"1":"0",D.cancel(),Q={kind:"idle"})}async function G(){if(document.fullscreenEnabled)try{document.fullscreenElement===u.value?await document.exitFullscreen():await u.value.requestFullscreen()}catch(c){o("error",Ee(c),O.value)}}function ee(c){s.value!=="open"||!i.gesturesEnabled||_().onPointerDown(c,Re())&&T.grab()}function ue(c){s.value==="open"&&(_().onPointerUp(c),s.value==="open"&&T.resume())}function J(c){s.value==="open"&&(_().onPointerCancel(c),s.value==="open"&&T.resume())}function de(c){s.value==="open"&&_().onPointerMove(c)}function Be(c){s.value==="open"&&i.gesturesEnabled&&_().onWheel(c)}function Le(c){s.value==="open"&&(w.value=1-c)}function Ne(c){s.value==="open"&&T.drag(c)}function kt(c,b){s.value==="open"&&(m.value=!1,T.release(c,b))}function xt(c){V.value=c,c>1.02&&!i.persistentChrome&&(C.value=!1)}function Ze(c){if(!(s.value==="closed"||!i.keyboardEnabled)&&!(c.key==="Escape"&&document.fullscreenElement===u.value)){if(c.key==="Escape"){c.preventDefault(),B();return}if(!(s.value!=="open"||c.target.matches("input, textarea, select, button, [role='slider']"))){if(O.value.type==="video"){if(c.code==="Space"){c.preventDefault(),_().togglePlayback();return}if(c.key==="Enter"){c.preventDefault(),_().toggleFullscreen();return}}if(O.value.type==="live-photo"&&c.code==="Space"){c.preventDefault(),K.toggleLive();return}c.key==="ArrowLeft"&&(c.preventDefault(),T.go(-1)),c.key==="ArrowRight"&&(c.preventDefault(),T.go(1)),(c.key==="+"||c.key==="=")&&K.zoomIn(),c.key==="-"&&K.zoomOut(),c.key==="0"&&K.reset()}}}return e.onMounted(()=>{document.addEventListener("keydown",Ze)}),e.onBeforeUnmount(()=>{W=!0,j+=1,oe.cancel(),ce+=1,Q.kind==="active"&&Q.animation.cancel(),me(),pe.disconnect(),document.removeEventListener("keydown",Ze),s.value!=="closed"&&(document.body.style.overflow=le)}),a({open:f,...K,currentIndex:I,phase:s,element:u,mediaElement:()=>_().core.mediaRef.value,canvasElement:()=>_().core.canvasRef.value}),(c,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:c.teleportDisabled},[s.value!=="closed"?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,ref_key:"root",ref:u},e.unref(t),{class:["mp-viewer",{"is-mobile":c.mobile,"is-album":c.appearance==="album"}],role:"dialog","aria-modal":"true","aria-label":O.value.title,"data-phase":s.value,"data-chrome":C.value?"visible":"hidden",inert:s.value==="closing",onPointerdown:ee,onPointermove:de,onPointerup:ue,onPointercancel:J,onLostpointercapture:J,onWheel:Be}),[e.createElementVNode("div",{ref_key:"backdrop",ref:x,class:"mp-viewer__backdrop",style:e.normalizeStyle({opacity:w.value})},null,4),e.createElementVNode("div",{id:l,class:"mp-viewer__video-controls"}),e.createElementVNode("div",{ref_key:"mediaViewport",ref:v,class:e.normalizeClass(["mp-viewer__pages",{"is-transitioning":p.value}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Ie.value,R=>(e.openBlock(),e.createElementBlock("div",{key:c.items[R].id,ref_for:!0,ref:he(c.items[R].id),class:"mp-viewer__page",style:e.normalizeStyle({transform:`translate3d(${(R-e.unref(I))*e.unref(T).stride()+e.unref(T).state.offset}px,0,0)`,transition:e.unref(T).state.settling?`transform ${e.unref(T).state.duration}ms cubic-bezier(.22,.61,.36,1)`:"none"}),"aria-hidden":R!==e.unref(I),inert:R!==e.unref(I),"data-media-id":c.items[R].id},[e.createVNode(yt,{ref_for:!0,ref:Me(c.items[R].id),media:c.items[R],"video-loader":c.videoLoader,rendering:s.value==="open",paging:e.unref(T).state.dragging||e.unref(T).state.preparing||e.unref(T).state.settling||e.unref(T).state.grabbed,"external-gestures":"",active:R===e.unref(I),disabled:s.value!=="open"||!c.gesturesEnabled,"inactive-reset-duration":e.unref(T).state.duration,"resource-policy":c.resourcePolicy,"resolve-source":c.resolveImageSource,"request-version":R===e.unref(I)?e.unref(S):0,"load-enabled":R===e.unref(I)?Y.value&&s.value==="open":s.value==="open"&&!p.value&&e.unref(k)===O.value.id,"teleport-controls":"","controls-target":`#${l}`,"controls-visible":C.value&&w.value===1,"initial-image":c.items[R].id===e.unref(ge)?N.value:e.unref(fe),quality:R===e.unref(I)&&e.unref(M).has(c.items[R].id)?"full":R===e.unref(I)?"screen":"thumbnail","live-playing":m.value,onTap:Ye,onScale:xt,onPageDrag:Ne,onPageRelease:kt,onClose:B,onSwipeDownProgress:Le,onLiveState:D=>{R===e.unref(I)&&(h.value=D)},onLiveEnded:()=>{R===e.unref(I)&&(m.value=!1)},onReady:D=>ke(R,D),onOriginalState:(D,ie)=>_e(R,D,ie),onError:D=>o("error",D,c.items[R])},null,8,["media","video-loader","rendering","paging","active","disabled","inactive-reset-duration","resource-policy","resolve-source","request-version","load-enabled","controls-target","controls-visible","initial-image","quality","live-playing","onLiveState","onLiveEnded","onReady","onOriginalState","onError"])],12,In))),128))],2),e.withDirectives(e.createElementVNode("div",{ref_key:"transitionMask",ref:y,class:"mp-shared-clip","aria-hidden":"true"},[e.createElementVNode("canvas",{ref_key:"transitionCanvas",ref:$,class:"mp-shared-transition"},null,512)],512),[[e.vShow,p.value]]),s.value==="opening"&&!q.value?(e.openBlock(),e.createElementBlock("div",zn,Nn)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["mp-viewer__chrome",{"is-hidden":!C.value||s.value!=="open"||w.value<1}]),inert:!C.value||s.value!=="open"||w.value<1},[e.renderSlot(c.$slots,"toolbar",{media:O.value,index:e.unref(I),total:c.items.length,scale:V.value,controls:K,originalStatus:e.unref(P),originalReason:e.unref(E),livePlaying:m.value,liveStatus:h.value},()=>[e.createElementVNode("header",Un,[e.createElementVNode("button",{type:"button","aria-label":"关闭预览",onClick:B},"‹"),e.createElementVNode("div",On,[e.createElementVNode("strong",null,e.toDisplayString(O.value.title),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(I)+1)+" / "+e.toDisplayString(c.items.length),1)]),e.createElementVNode("button",{type:"button","aria-label":"旋转图片",disabled:O.value.type==="video",onClick:b[0]||(b[0]=R=>K.rotate())}," ↻ ",8,An)]),e.createElementVNode("footer",_n,[O.value.type!=="video"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{type:"button","aria-label":"缩小",onClick:b[1]||(b[1]=(...R)=>K.zoomOut&&K.zoomOut(...R))},"−"),e.createElementVNode("button",{type:"button","aria-label":"放大",onClick:b[2]||(b[2]=(...R)=>K.zoomIn&&K.zoomIn(...R))},"+"),e.createElementVNode("button",{type:"button","aria-label":"复位",onClick:b[3]||(b[3]=(...R)=>K.reset&&K.reset(...R))},"复位")],64)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button","aria-label":"图片详情",onClick:b[4]||(b[4]=(...R)=>K.toggleDetail&&K.toggleDetail(...R))},"ⓘ")])]),!c.mobile&&e.unref(I)>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mp-viewer__arrow is-left","aria-label":"上一张",onClick:b[5]||(b[5]=R=>e.unref(T).go(-1))}," ‹ ")):e.createCommentVNode("",!0),!c.mobile&&e.unref(I)<c.items.length-1?(e.openBlock(),e.createElementBlock("button",{key:1,class:"mp-viewer__arrow is-right","aria-label":"下一张",onClick:b[6]||(b[6]=R=>e.unref(T).go(1))}," › ")):e.createCommentVNode("",!0),e.createElementVNode("div",Hn,e.toDisplayString(e.unref(I)+1)+" / "+e.toDisplayString(c.items.length),1)],10,qn),F.value?(e.openBlock(),e.createElementBlock("aside",Yn,[e.createElementVNode("button",{type:"button","aria-label":"关闭详情",onClick:b[7]||(b[7]=R=>F.value=!1)},"×"),e.createElementVNode("strong",null,e.toDisplayString(O.value.title),1),e.createElementVNode("span",null,e.toDisplayString(O.value.width)+" × "+e.toDisplayString(O.value.height),1),e.createElementVNode("span",null,e.toDisplayString(O.value.type)+" · "+e.toDisplayString(V.value.toFixed(2))+"×",1)])):e.createCommentVNode("",!0)],16,$n)):e.createCommentVNode("",!0)],8,["disabled"]))}});function Wn(n,a,r,t=2){const i=Math.max(1,(a-t*(r-1))/r),o=[],s=new Map;let l=0,u=0;return n.forEach((v,d)=>{d>0&&(o.push({kind:"header",group:d,first:0,count:0,start:l,end:l+52}),l+=52);for(let M=0;M<v.items.length;M+=r){const P=Math.min(r,v.items.length-M),E=o.length;o.push({kind:"items",group:d,first:M,count:P,start:l,end:l+i});for(let S=0;S<P;S++)s.set(v.items[M+S].id,E);u+=P,l+=i+(M+P<v.items.length?t:0)}}),{rows:o,locations:s,height:l,size:i,total:u}}function rt(n,a){let r=0,t=n.length;for(;r<t;){const i=r+t>>>1;n[i].end<a?r=i+1:t=i}return Math.min(r,Math.max(0,n.length-1))}const jn=["data-total-items","data-rendered-items"],Zn=e.defineComponent({__name:"VirtualTimeline",props:{groups:{},scrollElement:{},mobile:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1}},emits:["loadMore","date"],setup(n,{expose:a,emit:r}){const t=n,i=r,o=e.ref(),s=e.ref(390),l=e.ref(844),u=e.ref(0),v=e.computed(()=>t.mobile?s.value>=640?5:s.value>=480?4:3:Math.max(1,Math.floor((s.value+2)/172))),d=e.computed(()=>Wn(t.groups,s.value,v.value)),M=e.computed(()=>{const x=d.value.rows,p=rt(x,Math.max(0,u.value-d.value.size*3)),w=u.value+l.value+d.value.size*3;let C=p;for(;C<x.length&&x[C].start<=w;)C++;return x.slice(p,C)}),P=e.computed(()=>M.value.reduce((x,p)=>x+p.count,0));let E=0,S=!1,k=()=>{};function g(){const x=t.scrollElement();s.value=x.clientWidth,l.value=x.clientHeight,u.value=x.scrollTop,d.value.rows.length>0&&i("date",t.groups[d.value.rows[rt(d.value.rows,u.value)].group].key);const p=u.value+l.value>=d.value.height-d.value.size*3;p&&t.hasMore&&!S&&(S=!0,i("loadMore")),p||(S=!1)}function L(){E===0&&(E=requestAnimationFrame(()=>{E=0,g()}))}const $=new ResizeObserver(g);e.onMounted(()=>{const x=t.scrollElement(),p=x.style.overflowAnchor;x.style.overflowAnchor="none",k=()=>{x.style.overflowAnchor=p},x.addEventListener("scroll",L,{passive:!0}),$.observe(x),g()}),e.onBeforeUnmount(()=>{t.scrollElement().removeEventListener("scroll",L),$.disconnect(),cancelAnimationFrame(E),k()}),e.watch(()=>t.groups,()=>{S=!1,e.nextTick(g)});async function y(x){if(!d.value.locations.has(x))return{kind:"unavailable"};const p=d.value.rows[d.value.locations.get(x)],w=t.scrollElement();return(p.start<w.scrollTop||p.end>w.scrollTop+w.clientHeight)&&(w.scrollTop=Math.max(0,p.start-(w.clientHeight-d.value.size)/2)),g(),await e.nextTick(),await new Promise(m=>requestAnimationFrame(()=>m())),{kind:"element",element:[...o.value.querySelectorAll("[data-id]")].find(m=>m.dataset.id===x).querySelector("img")}}return a({resolveAnchor:y,rendered:P,total:e.computed(()=>d.value.total)}),(x,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:o,class:"mp-virtual-timeline",style:e.normalizeStyle({height:d.value.height+"px"}),"data-total-items":d.value.total,"data-rendered-items":P.value},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value,w=>(e.openBlock(),e.createElementBlock("div",{key:x.groups[w.group].key+":"+w.kind+":"+w.first,class:"mp-timeline-row",style:e.normalizeStyle({top:w.start+"px",height:w.end-w.start+"px",display:w.kind==="items"?"grid":"block",gridTemplateColumns:`repeat(${v.value},minmax(0,1fr))`,gap:"2px"})},[w.kind==="header"?e.renderSlot(x.$slots,"header",{key:0,group:x.groups[w.group],index:w.group},void 0,!0):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(x.groups[w.group].items.slice(w.first,w.first+w.count),C=>e.renderSlot(x.$slots,"item",{key:C.id,item:C},void 0,!0)),128))],4))),128))],12,jn))}}),Kn=(n,a)=>{const r=n.__vccOpts||n;for(const[t,i]of a)r[t]=i;return r},Gn=Kn(Zn,[["__scopeId","data-v-05c756fb"]]);exports.ImageCanvasRenderer=Ae;exports.ImageStore=ft;exports.LivePhotoRenderer=ht;exports.MediaPreview=Xn;exports.PreviewStage=yt;exports.VideoDomRenderer=vt;exports.VirtualTimeline=Gn;exports.defaultImagePolicy=Se;exports.defaultImageSource=Ce;exports.formatVideoTime=xe;exports.nativeVideoSource=$e;exports.previewImageStore=mt;exports.usePreviewViewport=st;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.mp-viewer.is-album.is-mobile .mp-video-center-play .mp-video-icon--mobile{content:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='14px'%20height='14px'%20viewBox='0%200%2014%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e播放%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-查看视频'%20transform='translate(-181.000000,%20-399.000000)'%20fill-rule='nonzero'%3e%3cg%20id='播放'%20transform='translate(164.000000,%20382.000000)'%3e%3cg%20id='播放-2'%20transform='translate(17.000000,%2016.000000)'%3e%3cpath%20d='M10.7364863,4.038851%20L15.2901269,12.0077221%20C15.8381469,12.966757%2015.5049534,14.1884663%2014.5459185,14.7364863%20C14.2437231,14.9091694%2013.9016945,15%2013.5536406,15%20L4.44635936,15%20C3.34178986,15%202.44635936,14.1045695%202.44635936,13%20C2.44635936,12.6519461%202.53718999,12.3099175%202.70987307,12.0077221%20L7.26351372,4.038851%20C7.81153365,3.0798161%209.03324298,2.74662265%209.99227788,3.29464259%20C10.3023404,3.47182119%2010.5593077,3.72878844%2010.7364863,4.038851%20Z'%20id='播放'%20transform='translate(9.000000,%208.000000)%20rotate(90.000000)%20translate(-9.000000,%20-8.000000)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");filter:brightness(0) invert(1)}.mp-viewer.is-album{--mp-preview-background: #fff;--mp-pc-controls-background: #0008;color:#151515}.mp-viewer.is-album[data-chrome=hidden]{--mp-preview-background: #000}.mp-viewer.is-album[data-phase=open] .mp-viewer__backdrop{transition:background-color .24s ease-out}.mp-viewer.is-album:not(.is-mobile) .mp-viewer__pages{top:60px}.mp-viewer.is-album .mp-viewer__toolbar,.mp-viewer.is-album .mp-viewer__footer{background:#fff}.mp-viewer.is-album .mp-viewer__title span,.mp-viewer.is-album .mp-viewer__counter,.mp-viewer.is-album .mp-resource-state{color:#999}.mp-viewer.is-album .mp-spinner{border-color:#dfdfdf;border-top-color:transparent}.mp-viewer.is-album .mp-viewer__detail{color:#151515;background:#fff;border-color:#ebeced}.mp-viewer.is-album .mp-viewer__detail>span{color:#999}.mp-viewer.is-album .mp-viewer__arrow{color:#151515;background:#ffffffc0!important}.mp-viewer.is-album.is-mobile .mp-video-controls{left:0;right:0;width:100%;bottom:calc(58px + env(safe-area-inset-bottom));height:56px;padding:0 16px;gap:0;background:#fff;color:#333;font-size:12px;font-weight:500}.mp-viewer.is-album.is-mobile .mp-video-controls>button:first-of-type{min-width:18px;width:18px;min-height:30px;padding:0;margin-right:16px}.mp-viewer.is-album.is-mobile .mp-video-controls>button:first-of-type svg{width:18px;height:18px}.mp-viewer.is-album.is-mobile .mp-video-controls>button:last-of-type{min-width:24px;width:24px;margin-left:16px;padding:0}.mp-viewer.is-album.is-mobile .mp-video-controls .mp-video-volume{display:none}.mp-viewer.is-album.is-mobile .mp-video-time{width:clamp(46px,calc(8.8vw + 12px),64px);font-size:12px;text-align:left}.mp-viewer.is-album.is-mobile .mp-video-time:nth-of-type(2){text-align:right}.mp-viewer.is-album.is-mobile .mp-video-progress__rail{height:4px;background:#eaeaea}.mp-viewer.is-album.is-mobile .mp-video-progress__buffered{height:4px;background:#d1d1d1}.mp-viewer.is-album.is-mobile .mp-video-progress__played{height:4px;background:#333}.mp-viewer.is-album.is-mobile .mp-video-progress__thumb{width:14px;height:14px;background:#333;box-shadow:none}.mp-viewer.is-album.is-mobile .mp-video-seek-preview{color:#333;background:#fffffff2;border-color:#ebeced}.mp-viewer.is-album:fullscreen .mp-video-controls{bottom:calc(24px + env(safe-area-inset-bottom))}.mp-viewer.is-album .has-album-icon>.mp-video-icon--generic{display:none}.mp-viewer.is-album.is-mobile .mp-video-icon--mobile,.mp-viewer.is-album:not(.is-mobile) .mp-video-icon--desktop{display:block}.mp-viewer.is-album.is-mobile .mp-video-controls>button:first-of-type .mp-video-icon{width:18px;height:18px}.mp-viewer.is-album.is-mobile .mp-video-controls>button:last-of-type .mp-video-icon{width:24px;height:24px}.mp-viewer.is-album.is-mobile .mp-video-center-play{width:48px;height:48px;min-width:48px!important;min-height:48px;padding:0;border:0!important}.mp-viewer.is-album.is-mobile .mp-video-center-play .mp-video-icon{width:20px;height:20px}.mp-viewer.is-album.is-mobile .mp-video-center-play .mp-video-icon--mobile{content:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='14px'%20height='14px'%20viewBox='0%200%2014%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e播放%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-查看视频'%20transform='translate(-181.000000,%20-399.000000)'%20fill-rule='nonzero'%3e%3cg%20id='播放'%20transform='translate(164.000000,%20382.000000)'%3e%3cg%20id='播放-2'%20transform='translate(17.000000,%2016.000000)'%3e%3cpath%20d='M10.7364863,4.038851%20L15.2901269,12.0077221%20C15.8381469,12.966757%2015.5049534,14.1884663%2014.5459185,14.7364863%20C14.2437231,14.9091694%2013.9016945,15%2013.5536406,15%20L4.44635936,15%20C3.34178986,15%202.44635936,14.1045695%202.44635936,13%20C2.44635936,12.6519461%202.53718999,12.3099175%202.70987307,12.0077221%20L7.26351372,4.038851%20C7.81153365,3.0798161%209.03324298,2.74662265%209.99227788,3.29464259%20C10.3023404,3.47182119%2010.5593077,3.72878844%2010.7364863,4.038851%20Z'%20id='播放'%20transform='translate(9.000000,%208.000000)%20rotate(90.000000)%20translate(-9.000000,%20-8.000000)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");filter:brightness(0) invert(1)}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls{bottom:40px;height:56px;padding:0 16px;gap:0;width:min(680px,calc(100% - 80px));border:1px solid #ffffff26;border-radius:12px;background:var(--mp-pc-controls-background);box-shadow:none}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls>button{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;border-radius:6px}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls .mp-video-icon{width:16px;height:16px}.mp-viewer.is-album:not(.is-mobile) .mp-video-time{width:50px;font-size:12px}.mp-viewer.is-album:not(.is-mobile) .mp-video-time:first-of-type{text-align:left}.mp-viewer.is-album:not(.is-mobile) .mp-video-time:nth-of-type(2){text-align:right}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls>button:first-of-type{margin-right:8px}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls>button:last-of-type{margin-left:8px}.mp-viewer.is-album .mp-video-volume{display:none}.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__played,.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__thumb{background:#fff;box-shadow:none}.mp-viewer.is-album:fullscreen{--mp-preview-background: #000}.mp-viewer.is-album:fullscreen .mp-viewer__chrome{visibility:hidden;pointer-events:none}.mp-viewer.is-album:fullscreen .mp-viewer__pages{top:0}.mp-viewer.is-album.is-mobile:fullscreen .mp-video-controls{bottom:24px;background:#0009;color:#fff;left:16px;right:16px;width:auto;gap:8px;padding:0 8px;border-radius:8px}.mp-viewer.is-album.is-mobile:fullscreen .mp-video-icon--mobile{filter:brightness(0) invert(1)}.mp-viewer.is-album.is-mobile:fullscreen .mp-video-progress__played,.mp-viewer.is-album.is-mobile:fullscreen .mp-video-progress__thumb{background:#fff}.mp-viewer.is-album.is-mobile:fullscreen .mp-video-progress__rail{background:#ffffff4d}.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__played{height:4px;background:#18bb8b}.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__thumb{width:10px;height:10px;background:#18bb8b;box-shadow:0 0 12px #18bb8bb3}.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__rail{height:4px;background:#ffffff4d}.mp-transition-source{visibility:hidden!important}.mp-stage,.mp-stage *{box-sizing:border-box}.mp-stage{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;color:#fff;touch-action:none;-webkit-user-select:none;user-select:none;contain:layout paint size;transform-origin:center;transition:transform .24s cubic-bezier(.2,.8,.2,1)}.mp-stage.is-dismissing{transition:none;will-change:transform}.mp-stage.is-zoomed{cursor:grab}.mp-stage.is-zoomed:active{cursor:grabbing}.mp-stage canvas,.mp-stage video,.mp-stage img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.mp-canvas-renderer,.mp-live-photo-renderer{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}.mp-dom-renderer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.mp-dom-renderer__frame{position:absolute;left:50%;top:50%;transform-origin:center}.mp-dom-renderer__node{display:block;max-width:none;max-height:none;object-fit:contain;pointer-events:auto;transform-origin:center}.mp-resource-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;pointer-events:none;color:#c9cbce;font:14px system-ui}.mp-resource-state button{pointer-events:auto;padding:8px 14px;border:1px solid #888;border-radius:20px;background:transparent;color:inherit;cursor:pointer}.mp-spinner{box-sizing:border-box;flex:0 0 auto;display:block;width:24px;height:24px;border:1.5px solid #dfdfdf;border-top-color:transparent;border-radius:50%;animation:mp-spin .7s linear infinite}.mp-quality-notice{position:absolute;bottom:110px;left:50%;transform:translate(-50%);font-size:12px;padding:7px 12px;border-radius:16px;background:#0009;white-space:nowrap}@keyframes mp-spin{to{transform:rotate(360deg)}}.mp-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow:hidden;isolation:isolate;color:#fff;touch-action:none;overscroll-behavior:contain;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.mp-viewer.is-mobile{width:min(100%,480px);left:50%;right:auto;transform:translate(-50%)}.mp-viewer[data-phase=closing]{pointer-events:none}.mp-viewer *,.mp-viewer *:before,.mp-viewer *:after{box-sizing:border-box}.mp-viewer button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;border:0;border-radius:12px;background:transparent;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.mp-viewer button:disabled{opacity:.25;cursor:default}.mp-viewer button:active{background:#ffffff18}.mp-viewer__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--mp-preview-background, #08090b);pointer-events:none}.mp-viewer__pages{position:absolute;top:0;right:0;bottom:0;left:0}.mp-viewer__loading{pointer-events:none}.mp-viewer__pages.is-transitioning{visibility:hidden}.mp-viewer__page{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.mp-shared-clip{position:absolute;left:0;top:0;overflow:hidden;contain:layout paint;transform-origin:0 0;pointer-events:none;will-change:transform}.mp-shared-transition{position:absolute;left:0;top:0;pointer-events:none;transform-origin:0 0;will-change:transform}.mp-viewer__chrome{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:1;transition:opacity .16s ease}.mp-viewer__chrome.is-hidden{opacity:0;visibility:hidden}.mp-viewer__chrome button,.mp-viewer__chrome a{pointer-events:auto}.mp-viewer__toolbar{position:absolute;inset:0 0 auto;display:flex;align-items:center;gap:12px;padding:calc(8px + env(safe-area-inset-top)) 16px 12px;background:linear-gradient(#0009,transparent)}.mp-viewer__toolbar>button{font-size:28px}.mp-viewer__title{display:grid;gap:4px;flex:1;min-width:0}.mp-viewer__title strong{font-size:15px;font-weight:550;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mp-viewer__title span{font-size:12px;color:#ffffff80}.mp-viewer__footer{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:24px;padding:16px 16px calc(20px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#0009)}.mp-viewer__arrow{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff10!important;border-radius:50%!important;width:48px;height:48px;font-size:32px!important}.mp-viewer__arrow.is-left{left:24px}.mp-viewer__arrow.is-right{right:24px}.mp-viewer__counter{position:absolute;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translate(-50%);color:#ffffff85;font-size:12px;font-variant-numeric:tabular-nums}.mp-viewer__detail{position:absolute;z-index:5;right:16px;bottom:calc(100px + env(safe-area-inset-bottom));display:grid;gap:12px;min-width:240px;max-width:calc(100% - 32px);padding:24px;border:1px solid #ffffff1a;border-radius:20px;background:#202226f5;box-shadow:0 12px 44px #0005}.mp-viewer__detail>button{position:absolute;top:4px;right:4px}.mp-viewer__detail>strong{padding-right:32px;font-size:15px}.mp-viewer__detail>span{font-size:13px;color:#ffffffa0}@media(prefers-reduced-motion:reduce){.mp-stage,.mp-viewer__chrome{transition:none}.mp-spinner{animation:none}}.mp-viewer__video-controls{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.mp-viewer__chrome{z-index:3}.mp-video-control-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:1;transition:opacity .16s ease}.mp-video-control-layer.is-hidden{opacity:0;visibility:hidden}.mp-video-controls{position:absolute;bottom:calc(var(--mp-video-controls-bottom, 142px) + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;width:min(680px,calc(100% - 48px));height:56px;padding:0 12px;border:1px solid #ffffff20;border-radius:12px;background:linear-gradient(135deg,#292b2fe8,#16181cf2);color:#fff;pointer-events:auto;-webkit-user-select:none;user-select:none;touch-action:none;box-shadow:0 8px 32px #0003;font-size:12px}.mp-video-controls button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:36px;min-height:44px;padding:6px;border:0;background:transparent;color:inherit;border-radius:8px;cursor:pointer}.mp-video-controls button:disabled{opacity:.35;cursor:default}.mp-video-controls button:hover{background:#ffffff0c}.mp-video-time{flex-shrink:0;min-width:36px;text-align:center;font-size:11px;font-variant-numeric:tabular-nums}.mp-video-progress{position:relative;display:flex;flex:1;align-items:center;min-width:24px;height:44px;cursor:pointer;touch-action:none}.mp-video-progress[aria-disabled=true]{opacity:.4;cursor:default}.mp-video-progress__rail,.mp-video-progress__buffered,.mp-video-progress__played{position:absolute;left:0;height:3px;border-radius:4px}.mp-video-progress__rail{width:100%;background:#ffffff25}.mp-video-progress__buffered{background:#ffffff40}.mp-video-progress__played{background:#9bd3ba;transition:width .22s linear}.mp-video-progress__thumb{position:absolute;width:11px;height:11px;border-radius:50%;background:#c5ead9;transform:translate(-50%);box-shadow:0 0 12px #9bd3ba40;transition:left .22s linear}.mp-video-progress.is-scrubbing .mp-video-progress__played,.mp-video-progress.is-scrubbing .mp-video-progress__thumb{transition:none}.mp-video-progress.is-scrubbing .mp-video-progress__thumb{width:15px;height:15px}.mp-video-seek-preview{position:absolute;bottom:70px;left:50%;transform:translate(-50%);padding:10px 16px;border:1px solid #ffffff15;border-radius:9px;background:#15171ce8;font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.mp-video-seek-preview span{color:#ffffff70}.mp-video-center-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;min-width:56px!important;border-radius:50%!important;background:#0008!important;color:#fff;border:1px solid #ffffff20!important;pointer-events:auto;cursor:pointer}.mp-video-center-play svg{margin-left:3px}.mp-video-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.mp-video-loading .mp-spinner{width:32px;height:32px;border-width:2px}.mp-video-player .mp-resource-state button{pointer-events:auto}.mp-viewer.is-mobile .mp-video-controls{left:16px;right:16px;transform:none;width:auto;gap:6px;padding:0 6px;border:0;border-radius:0;background:transparent;box-shadow:none;bottom:calc(var(--mp-video-controls-bottom, 132px) + env(safe-area-inset-bottom))}.mp-viewer.is-mobile .mp-video-progress__played,.mp-viewer.is-mobile .mp-video-progress__thumb{background:#fff}.mp-viewer.is-mobile .mp-video-controls button{min-width:32px}.mp-viewer:fullscreen,.mp-stage:fullscreen{width:100%;height:100%;top:0;right:0;bottom:0;left:0;transform:none;background:#08090b}.mp-viewer:fullscreen .mp-video-controls,.mp-stage:fullscreen .mp-video-controls{bottom:calc(32px + env(safe-area-inset-bottom))}.mp-viewer:fullscreen .mp-viewer__footer{display:none}@media(prefers-reduced-motion:reduce){.mp-video-control-layer,.mp-video-progress__played,.mp-video-progress__thumb{transition:none}}.mp-live-photo__effects,.mp-live-photo__still{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:center}.mp-live-photo__effects{transform:scale(1);transition:transform .3s ease-in-out}.mp-live-photo__effects.is-playing{transform:scale(1.075)}.mp-live-photo__still{opacity:1;transition:opacity .3s ease-in-out;pointer-events:none}.mp-live-photo__still.is-playing{opacity:0}.mp-live-photo-renderer{-webkit-touch-callout:none}@media(prefers-reduced-motion:reduce){.mp-live-photo__effects,.mp-live-photo__still{transition:none}}.mp-video-icon{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;flex-shrink:0}.mp-video-icon>svg,.mp-video-icon>img{width:100%;height:100%}.mp-video-icon--mobile,.mp-video-icon--desktop{display:none}.mp-virtual-timeline[data-v-05c756fb]{position:relative;width:100%;overflow-anchor:none}.mp-timeline-row[data-v-05c756fb]{position:absolute;left:0;right:0}
|
|
1
|
+
.mp-viewer.is-album.is-mobile .mp-video-center-play .mp-video-icon--mobile{content:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='14px'%20height='14px'%20viewBox='0%200%2014%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e播放%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-查看视频'%20transform='translate(-181.000000,%20-399.000000)'%20fill-rule='nonzero'%3e%3cg%20id='播放'%20transform='translate(164.000000,%20382.000000)'%3e%3cg%20id='播放-2'%20transform='translate(17.000000,%2016.000000)'%3e%3cpath%20d='M10.7364863,4.038851%20L15.2901269,12.0077221%20C15.8381469,12.966757%2015.5049534,14.1884663%2014.5459185,14.7364863%20C14.2437231,14.9091694%2013.9016945,15%2013.5536406,15%20L4.44635936,15%20C3.34178986,15%202.44635936,14.1045695%202.44635936,13%20C2.44635936,12.6519461%202.53718999,12.3099175%202.70987307,12.0077221%20L7.26351372,4.038851%20C7.81153365,3.0798161%209.03324298,2.74662265%209.99227788,3.29464259%20C10.3023404,3.47182119%2010.5593077,3.72878844%2010.7364863,4.038851%20Z'%20id='播放'%20transform='translate(9.000000,%208.000000)%20rotate(90.000000)%20translate(-9.000000,%20-8.000000)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");filter:brightness(0) invert(1)}.mp-viewer.is-album{--mp-preview-background: #fff;--mp-pc-controls-background: #0008;color:#151515}.mp-viewer.is-album[data-chrome=hidden]{--mp-preview-background: #000}.mp-viewer.is-album[data-phase=open] .mp-viewer__backdrop{transition:background-color .24s ease-out}.mp-viewer.is-album:not(.is-mobile) .mp-viewer__pages{top:60px}.mp-viewer.is-album .mp-viewer__toolbar,.mp-viewer.is-album .mp-viewer__footer{background:#fff}.mp-viewer.is-album .mp-viewer__title span,.mp-viewer.is-album .mp-viewer__counter,.mp-viewer.is-album .mp-resource-state{color:#999}.mp-viewer.is-album .mp-spinner{border-color:#dfdfdf;border-top-color:transparent}.mp-viewer.is-album .mp-resource-state .mp-spinner{box-sizing:content-box;width:24px;height:24px;border-width:3px}.mp-viewer.is-album .mp-viewer__detail{color:#151515;background:#fff;border-color:#ebeced}.mp-viewer.is-album .mp-viewer__detail>span{color:#999}.mp-viewer.is-album .mp-viewer__arrow{color:#151515;background:#ffffffc0!important}.mp-viewer.is-album.is-mobile .mp-video-controls{left:0;right:0;width:100%;bottom:calc(58px + env(safe-area-inset-bottom));height:56px;padding:0 16px;gap:0;background:#fff;color:#333;font-size:12px;font-weight:500}.mp-viewer.is-album.is-mobile .mp-video-controls>button:first-of-type{min-width:18px;width:18px;min-height:30px;padding:0;margin-right:16px}.mp-viewer.is-album.is-mobile .mp-video-controls>button:first-of-type svg{width:18px;height:18px}.mp-viewer.is-album.is-mobile .mp-video-controls>button:last-of-type{min-width:24px;width:24px;margin-left:16px;padding:0}.mp-viewer.is-album.is-mobile .mp-video-controls .mp-video-volume{display:none}.mp-viewer.is-album.is-mobile .mp-video-time{width:clamp(46px,calc(8.8vw + 12px),64px);font-size:12px;text-align:left}.mp-viewer.is-album.is-mobile .mp-video-time:nth-of-type(2){text-align:right}.mp-viewer.is-album.is-mobile .mp-video-progress__rail{height:4px;background:#eaeaea}.mp-viewer.is-album.is-mobile .mp-video-progress__buffered{height:4px;background:#d1d1d1}.mp-viewer.is-album.is-mobile .mp-video-progress__played{height:4px;background:#333}.mp-viewer.is-album.is-mobile .mp-video-progress__thumb{width:14px;height:14px;background:#333;box-shadow:none}.mp-viewer.is-album.is-mobile .mp-video-seek-preview{color:#333;background:#fffffff2;border-color:#ebeced}.mp-viewer.is-album:fullscreen .mp-video-controls{bottom:calc(24px + env(safe-area-inset-bottom))}.mp-viewer.is-album .has-album-icon>.mp-video-icon--generic{display:none}.mp-viewer.is-album.is-mobile .mp-video-icon--mobile,.mp-viewer.is-album:not(.is-mobile) .mp-video-icon--desktop{display:block}.mp-viewer.is-album.is-mobile .mp-video-controls>button:first-of-type .mp-video-icon{width:18px;height:18px}.mp-viewer.is-album.is-mobile .mp-video-controls>button:last-of-type .mp-video-icon{width:24px;height:24px}.mp-viewer.is-album.is-mobile .mp-video-center-play{width:48px;height:48px;min-width:48px!important;min-height:48px;padding:0;border:0!important}.mp-viewer.is-album.is-mobile .mp-video-center-play .mp-video-icon{width:20px;height:20px}.mp-viewer.is-album.is-mobile .mp-video-center-play .mp-video-icon--mobile{content:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='14px'%20height='14px'%20viewBox='0%200%2014%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e播放%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill-rule='evenodd'%3e%3cg%20id='2时间轴-查看视频'%20transform='translate(-181.000000,%20-399.000000)'%20fill-rule='nonzero'%3e%3cg%20id='播放'%20transform='translate(164.000000,%20382.000000)'%3e%3cg%20id='播放-2'%20transform='translate(17.000000,%2016.000000)'%3e%3cpath%20d='M10.7364863,4.038851%20L15.2901269,12.0077221%20C15.8381469,12.966757%2015.5049534,14.1884663%2014.5459185,14.7364863%20C14.2437231,14.9091694%2013.9016945,15%2013.5536406,15%20L4.44635936,15%20C3.34178986,15%202.44635936,14.1045695%202.44635936,13%20C2.44635936,12.6519461%202.53718999,12.3099175%202.70987307,12.0077221%20L7.26351372,4.038851%20C7.81153365,3.0798161%209.03324298,2.74662265%209.99227788,3.29464259%20C10.3023404,3.47182119%2010.5593077,3.72878844%2010.7364863,4.038851%20Z'%20id='播放'%20transform='translate(9.000000,%208.000000)%20rotate(90.000000)%20translate(-9.000000,%20-8.000000)%20'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");filter:brightness(0) invert(1)}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls{bottom:40px;height:56px;padding:0 16px;gap:0;width:min(680px,calc(100% - 80px));border:1px solid #ffffff26;border-radius:12px;background:var(--mp-pc-controls-background);box-shadow:none}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls>button{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;border-radius:6px}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls .mp-video-icon{width:16px;height:16px}.mp-viewer.is-album:not(.is-mobile) .mp-video-time{width:50px;font-size:12px}.mp-viewer.is-album:not(.is-mobile) .mp-video-time:first-of-type{text-align:left}.mp-viewer.is-album:not(.is-mobile) .mp-video-time:nth-of-type(2){text-align:right}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls>button:first-of-type{margin-right:8px}.mp-viewer.is-album:not(.is-mobile) .mp-video-controls>button:last-of-type{margin-left:8px}.mp-viewer.is-album .mp-video-volume{display:none}.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__played,.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__thumb{background:#fff;box-shadow:none}.mp-viewer.is-album:fullscreen{--mp-preview-background: #000}.mp-viewer.is-album:fullscreen .mp-viewer__chrome{visibility:hidden;pointer-events:none}.mp-viewer.is-album:fullscreen .mp-viewer__pages{top:0}.mp-viewer.is-album.is-mobile:fullscreen .mp-video-controls{bottom:24px;background:#0009;color:#fff;left:16px;right:16px;width:auto;gap:8px;padding:0 8px;border-radius:8px}.mp-viewer.is-album.is-mobile:fullscreen .mp-video-icon--mobile{filter:brightness(0) invert(1)}.mp-viewer.is-album.is-mobile:fullscreen .mp-video-progress__played,.mp-viewer.is-album.is-mobile:fullscreen .mp-video-progress__thumb{background:#fff}.mp-viewer.is-album.is-mobile:fullscreen .mp-video-progress__rail{background:#ffffff4d}.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__played{height:4px;background:#18bb8b}.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__thumb{width:10px;height:10px;background:#18bb8b;box-shadow:0 0 12px #18bb8bb3}.mp-viewer.is-album:not(.is-mobile) .mp-video-progress__rail{height:4px;background:#ffffff4d}.mp-transition-source{visibility:hidden!important}.mp-stage,.mp-stage *{box-sizing:border-box}.mp-stage{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;color:#fff;touch-action:none;-webkit-user-select:none;user-select:none;contain:layout paint size;transform-origin:center;transition:transform .24s cubic-bezier(.2,.8,.2,1)}.mp-stage.is-dismissing{transition:none;will-change:transform}.mp-stage.is-zoomed{cursor:grab}.mp-stage.is-zoomed:active{cursor:grabbing}.mp-stage canvas,.mp-stage video,.mp-stage img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.mp-canvas-renderer,.mp-live-photo-renderer{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}.mp-dom-renderer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.mp-dom-renderer__frame{position:absolute;left:50%;top:50%;transform-origin:center}.mp-dom-renderer__node{display:block;max-width:none;max-height:none;object-fit:contain;pointer-events:auto;transform-origin:center}.mp-resource-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;pointer-events:none;color:#c9cbce;font:14px system-ui}.mp-resource-state button{pointer-events:auto;padding:8px 14px;border:1px solid #888;border-radius:20px;background:transparent;color:inherit;cursor:pointer}.mp-spinner{box-sizing:border-box;flex:0 0 auto;display:block;width:24px;height:24px;border:1.5px solid #dfdfdf;border-top-color:transparent;border-radius:50%;animation:mp-spin .7s linear infinite}.mp-quality-notice{position:absolute;bottom:110px;left:50%;transform:translate(-50%);font-size:12px;padding:7px 12px;border-radius:16px;background:#0009;white-space:nowrap}@keyframes mp-spin{to{transform:rotate(360deg)}}.mp-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow:hidden;isolation:isolate;color:#fff;touch-action:none;overscroll-behavior:contain;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.mp-viewer.is-mobile{width:min(100%,480px);left:50%;right:auto;transform:translate(-50%)}.mp-viewer[data-phase=closing]{pointer-events:none}.mp-viewer *,.mp-viewer *:before,.mp-viewer *:after{box-sizing:border-box}.mp-viewer button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;border:0;border-radius:12px;background:transparent;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.mp-viewer button:disabled{opacity:.25;cursor:default}.mp-viewer button:active{background:#ffffff18}.mp-viewer__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--mp-preview-background, #08090b);pointer-events:none}.mp-viewer__pages{position:absolute;top:0;right:0;bottom:0;left:0}.mp-viewer__loading{pointer-events:none}.mp-viewer__pages.is-transitioning{visibility:hidden}.mp-viewer__page{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.mp-shared-clip{position:absolute;left:0;top:0;overflow:hidden;contain:layout paint;transform-origin:0 0;pointer-events:none;will-change:transform}.mp-shared-transition{position:absolute;left:0;top:0;pointer-events:none;transform-origin:0 0;will-change:transform}.mp-viewer__chrome{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:1;transition:opacity .16s ease}.mp-viewer__chrome.is-hidden{opacity:0;visibility:hidden}.mp-viewer__chrome button,.mp-viewer__chrome a{pointer-events:auto}.mp-viewer__toolbar{position:absolute;inset:0 0 auto;display:flex;align-items:center;gap:12px;padding:calc(8px + env(safe-area-inset-top)) 16px 12px;background:linear-gradient(#0009,transparent)}.mp-viewer__toolbar>button{font-size:28px}.mp-viewer__title{display:grid;gap:4px;flex:1;min-width:0}.mp-viewer__title strong{font-size:15px;font-weight:550;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mp-viewer__title span{font-size:12px;color:#ffffff80}.mp-viewer__footer{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:24px;padding:16px 16px calc(20px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#0009)}.mp-viewer__arrow{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff10!important;border-radius:50%!important;width:48px;height:48px;font-size:32px!important}.mp-viewer__arrow.is-left{left:24px}.mp-viewer__arrow.is-right{right:24px}.mp-viewer__counter{position:absolute;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translate(-50%);color:#ffffff85;font-size:12px;font-variant-numeric:tabular-nums}.mp-viewer__detail{position:absolute;z-index:5;right:16px;bottom:calc(100px + env(safe-area-inset-bottom));display:grid;gap:12px;min-width:240px;max-width:calc(100% - 32px);padding:24px;border:1px solid #ffffff1a;border-radius:20px;background:#202226f5;box-shadow:0 12px 44px #0005}.mp-viewer__detail>button{position:absolute;top:4px;right:4px}.mp-viewer__detail>strong{padding-right:32px;font-size:15px}.mp-viewer__detail>span{font-size:13px;color:#ffffffa0}@media(prefers-reduced-motion:reduce){.mp-stage,.mp-viewer__chrome{transition:none}.mp-spinner{animation:none}}.mp-viewer__video-controls{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.mp-viewer__chrome{z-index:3}.mp-video-control-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:1;transition:opacity .16s ease}.mp-video-control-layer.is-hidden{opacity:0;visibility:hidden}.mp-video-controls{position:absolute;bottom:calc(var(--mp-video-controls-bottom, 142px) + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;width:min(680px,calc(100% - 48px));height:56px;padding:0 12px;border:1px solid #ffffff20;border-radius:12px;background:linear-gradient(135deg,#292b2fe8,#16181cf2);color:#fff;pointer-events:auto;-webkit-user-select:none;user-select:none;touch-action:none;box-shadow:0 8px 32px #0003;font-size:12px}.mp-video-controls button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:36px;min-height:44px;padding:6px;border:0;background:transparent;color:inherit;border-radius:8px;cursor:pointer}.mp-video-controls button:disabled{opacity:.35;cursor:default}.mp-video-controls button:hover{background:#ffffff0c}.mp-video-time{flex-shrink:0;min-width:36px;text-align:center;font-size:11px;font-variant-numeric:tabular-nums}.mp-video-progress{position:relative;display:flex;flex:1;align-items:center;min-width:24px;height:44px;cursor:pointer;touch-action:none}.mp-video-progress[aria-disabled=true]{opacity:.4;cursor:default}.mp-video-progress__rail,.mp-video-progress__buffered,.mp-video-progress__played{position:absolute;left:0;height:3px;border-radius:4px}.mp-video-progress__rail{width:100%;background:#ffffff25}.mp-video-progress__buffered{background:#ffffff40}.mp-video-progress__played{background:#9bd3ba;transition:width .22s linear}.mp-video-progress__thumb{position:absolute;width:11px;height:11px;border-radius:50%;background:#c5ead9;transform:translate(-50%);box-shadow:0 0 12px #9bd3ba40;transition:left .22s linear}.mp-video-progress.is-scrubbing .mp-video-progress__played,.mp-video-progress.is-scrubbing .mp-video-progress__thumb{transition:none}.mp-video-progress.is-scrubbing .mp-video-progress__thumb{width:15px;height:15px}.mp-video-seek-preview{position:absolute;bottom:70px;left:50%;transform:translate(-50%);padding:10px 16px;border:1px solid #ffffff15;border-radius:9px;background:#15171ce8;font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.mp-video-seek-preview span{color:#ffffff70}.mp-video-center-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;min-width:56px!important;border-radius:50%!important;background:#0008!important;color:#fff;border:1px solid #ffffff20!important;pointer-events:auto;cursor:pointer}.mp-video-center-play svg{margin-left:3px}.mp-video-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.mp-video-loading .mp-spinner{width:32px;height:32px;border-width:2px}.mp-video-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-sizing:border-box;max-width:calc(100% - 32px);min-height:44px;padding:12px;border-radius:6px;background:#000c;color:#fff;font:14px system-ui;text-align:center;pointer-events:none}.mp-viewer.is-mobile .mp-video-controls{left:16px;right:16px;transform:none;width:auto;gap:6px;padding:0 6px;border:0;border-radius:0;background:transparent;box-shadow:none;bottom:calc(var(--mp-video-controls-bottom, 132px) + env(safe-area-inset-bottom))}.mp-viewer.is-mobile .mp-video-progress__played,.mp-viewer.is-mobile .mp-video-progress__thumb{background:#fff}.mp-viewer.is-mobile .mp-video-controls button{min-width:32px}.mp-viewer:fullscreen,.mp-stage:fullscreen{width:100%;height:100%;top:0;right:0;bottom:0;left:0;transform:none;background:#08090b}.mp-viewer:fullscreen .mp-video-controls,.mp-stage:fullscreen .mp-video-controls{bottom:calc(32px + env(safe-area-inset-bottom))}.mp-viewer:fullscreen .mp-viewer__footer{display:none}@media(prefers-reduced-motion:reduce){.mp-video-control-layer,.mp-video-progress__played,.mp-video-progress__thumb{transition:none}}.mp-live-photo__effects,.mp-live-photo__still{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:center}.mp-live-photo__effects{transform:scale(1);transition:transform .3s ease-in-out}.mp-live-photo__effects.is-playing{transform:scale(1.075)}.mp-live-photo__still{opacity:1;transition:opacity .3s ease-in-out;pointer-events:none}.mp-live-photo__still.is-playing{opacity:0}.mp-live-photo-renderer{-webkit-touch-callout:none}@media(prefers-reduced-motion:reduce){.mp-live-photo__effects,.mp-live-photo__still{transition:none}}.mp-video-icon{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;flex-shrink:0}.mp-video-icon>svg,.mp-video-icon>img{width:100%;height:100%}.mp-video-icon--mobile,.mp-video-icon--desktop{display:none}.mp-virtual-timeline[data-v-05c756fb]{position:relative;width:100%;overflow-anchor:none}.mp-timeline-row[data-v-05c756fb]{position:absolute;left:0;right:0}
|