index-2c804440.js 1.5 KB

1
  1. import{c as T,n as f,m as w,e as x,g as y,b as h,C,I,J as P,U as S,L as B,w as A}from"./index-3075fd64.js";import{d as D,r as d,a as N,o as j,s as z,X as L,w as O,c as u,m as R,T as U,A as _}from"./index-16aedc47.js";function q(e,c){let o=null,i=0;return function(...n){if(o)return;const a=Date.now()-i,l=()=>{i=Date.now(),o=!1,e.apply(this,n)};a>=c?l():o=setTimeout(l,c)}}const[E,m]=T("back-top"),J={right:f,bottom:f,zIndex:f,target:[String,Object],offset:w(200),immediate:Boolean,teleport:{type:[String,Object],default:"body"}};var M=D({name:E,inheritAttrs:!1,props:J,emits:["click"],setup(e,{emit:c,slots:o,attrs:i}){let n=!1;const a=d(!1),l=d(),s=d(),b=N(()=>x(y(e.zIndex),{right:h(e.right),bottom:h(e.bottom)})),k=t=>{var r;c("click",t),(r=s.value)==null||r.scrollTo({top:0,behavior:e.immediate?"auto":"smooth"})},v=()=>{a.value=s.value?B(s.value)>=+e.offset:!1},p=()=>{const{target:t}=e;if(typeof t=="string"){const r=document.querySelector(t);if(r)return r}else return t},g=()=>{P&&_(()=>{s.value=e.target?p():S(l.value),v()})};return C("scroll",q(v,100),{target:s}),j(g),z(()=>{n&&(a.value=!0,n=!1)}),L(()=>{a.value&&e.teleport&&(a.value=!1,n=!0)}),O(()=>e.target,g),()=>{const t=u("div",R({ref:e.teleport?void 0:l,class:m({active:a.value}),style:b.value,onClick:k},i),[o.default?o.default():u(I,{name:"back-top",class:m("icon")},null)]);return e.teleport?[u("div",{ref:l,class:m("placeholder")},null),u(U,{to:e.teleport},{default:()=>[t]})]:t}}});const Z=A(M);export{Z as B};