import{$ as e,B as t,G as n,Ht as r,L as i,M as a,T as o,U as s,V as c,_ as l,a as u,et as d,gt as f,it as p,l as m,p as h,t as g,ut as _,v,w as y,wt as b,x,zt as S}from"./_plugin-vue_export-helper-Ktpf6lZe.js";import{D as C}from"./ui-BhP3ZSBa.js";import{t as w}from"./rotate-ccw-AQ4L8JGg.js";p(),a(),b(),u();var T={class:`fps-monitor__header`},E={class:`fps-monitor__chart`,"aria-hidden":`true`},D={class:`fps-monitor__summary`},O=g(Object.assign({inheritAttrs:!1},{__name:`FpsMonitor`,props:{sampleInterval:{type:Number,default:500},historySize:{type:Number,default:48},baseFps:{type:Number,default:60}},setup(a,{expose:u}){let p=a,g=_(0),b=_(0),O=_(null),k=_([]),A=l(()=>Math.max(100,p.sampleInterval)),j=l(()=>Math.max(1,Math.floor(p.historySize))),M=l(()=>Math.max(1,p.baseFps)),N=0,P=0,F=0,I=0,L=0;function R(){P=0,F=performance.now()}function z(e){P+=1,I+=1;let t=e-F;if(t>=A.value){let n=Math.round(P*1e3/t);g.value=n,O.value=O.value==null?n:Math.min(O.value,n),L+=t,b.value=Math.round(I*1e3/L),k.value=[...k.value,n].slice(-j.value),P=0,F=e}N=requestAnimationFrame(z)}function B(){g.value=0,b.value=0,O.value=null,k.value=[],I=0,L=0,R()}function V(){document.hidden||R()}function H(e){return e>=M.value*(5/6)?`var(--fms-success)`:e>=M.value/2?`var(--fms-warning)`:`var(--fms-danger)`}let U=l(()=>H(g.value)),W=l(()=>k.value.map(e=>({height:`${Math.max(8,Math.min(100,e/M.value*100))}%`,backgroundColor:H(e)}))),G=_(null),K=_(null),q=null,J=_(!0);function Y(){J.value=!1}function X(){J.value=!0}function Z(){J.value=!1}u({show:X,hide:Z});function ee(e){if(e.target.closest(`.fps-monitor__reset`))return;let t=G.value.getBoundingClientRect();q={pointerX:e.clientX,pointerY:e.clientY,originX:K.value?K.value.x:t.left,originY:K.value?K.value.y:t.top,width:t.width,height:t.height},window.addEventListener(`pointermove`,Q),window.addEventListener(`pointerup`,$),e.preventDefault()}function Q(e){if(!q)return;let t=e.clientX-q.pointerX,n=e.clientY-q.pointerY,r=Math.max(0,Math.min(q.originX+t,window.innerWidth-q.width)),i=Math.max(0,Math.min(q.originY+n,window.innerHeight-q.height));K.value={x:r,y:i}}function $(){q=null,window.removeEventListener(`pointermove`,Q),window.removeEventListener(`pointerup`,$)}return c(()=>{R(),document.addEventListener(`visibilitychange`,V),N=requestAnimationFrame(z)}),t(()=>{cancelAnimationFrame(N),document.removeEventListener(`visibilitychange`,V)}),(t,a)=>d((s(),x(`aside`,i({ref_key:`rootEl`,ref:G,class:[`fps-monitor`,{"is-dragging":f(q)}],style:K.value?{left:K.value.x+`px`,top:K.value.y+`px`}:void 0,"aria-label":`FPS 性能监控`},t.$attrs,{onPointerdown:ee,onDblclick:Y}),[v(`div`,T,[a[0]||=v(`span`,{class:`fps-monitor__label`},`FPS`,-1),v(`strong`,{class:`fps-monitor__current`,style:S({color:U.value})},r(g.value||`--`),5),o(f(C),{type:`ghost`,class:`fps-monitor__reset`,title:`重置统计`,"aria-label":`重置 FPS 统计`,onClick:B},{default:e(()=>[o(f(w))]),_:1})]),v(`div`,E,[(s(!0),x(h,null,n(W.value,(e,t)=>(s(),x(`span`,{key:t,class:`fps-monitor__bar`,style:S(e)},null,4))),128))]),v(`div`,D,[v(`span`,null,[a[1]||=y(`avg `,-1),v(`b`,null,r(b.value||`--`),1)]),v(`span`,null,[a[2]||=y(`min `,-1),v(`b`,null,r(O.value??`--`),1)])])],16)),[[m,J.value]])}}),[[`__scopeId`,`data-v-07dee497`]]);export{O as default};