mirror of https://github.com/rocboss/paopao-ce
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
2.7 KiB
2 lines
2.7 KiB
import{d as C,r as v,$,C as H,b as N,S as q,f as h,j as x,P as M,I as O,k as r,y as u,q as R,z as g,Z as y,n as E,a0 as T,a1 as V}from"./@vue-CT9fXtKS.js";function j(e,o=null){if(!e)return!1;const t=e.getBoundingClientRect(),n=o?o.getBoundingClientRect():{top:0,left:0,bottom:window.innerHeight,right:window.innerWidth};return t.bottom>=n.top&&t.top<=n.bottom&&t.right>=n.left&&t.left<=n.right}async function z(e){return e?(await E(),e.value instanceof HTMLElement?e.value:e.value?document.querySelector(e.value):null):null}function D(e){let o=`0px 0px ${e.distance}px 0px`;e.top&&(o=`${e.distance}px 0px 0px 0px`);const t=new IntersectionObserver(n=>{n[0].isIntersecting&&(e.firstload&&e.emit(),e.firstload=!0)},{root:e.parentEl,rootMargin:o});return e.infiniteLoading.value&&t.observe(e.infiniteLoading.value),t}async function w(e,o){if(await E(),!e.top)return;const t=e.parentEl||document.documentElement;t.scrollTop=t.scrollHeight-o}const b=(e,o)=>{const t=e.__vccOpts||e;for(const[n,l]of o)t[n]=l;return t},P={},U=e=>(T("data-v-d3e37633"),e=e(),V(),e),W={class:"container"},A=U(()=>r("div",{class:"spinner"},null,-1)),F=[A];function G(e,o){return h(),x("div",W,F)}const J=b(P,[["render",G],["__scopeId","data-v-d3e37633"]]),K={class:"state-error"},Q=C({__name:"InfiniteLoading",props:{top:{type:Boolean,default:!1},target:{},distance:{default:0},identifier:{},firstload:{type:Boolean,default:!0},slots:{}},emits:["infinite"],setup(e,{emit:o}){const t=e;let n=null,l=0;const d=v(null),i=v(""),{top:k,firstload:I,distance:S}=t,{identifier:_,target:B}=$(t),a={infiniteLoading:d,top:k,firstload:I,distance:S,parentEl:null,emit(){l=(a.parentEl||document.documentElement).scrollHeight,p.loading(),o("infinite",p)}},p={loading(){i.value="loading"},async loaded(){i.value="loaded",await w(a,l),j(d.value,a.parentEl)&&a.emit()},async complete(){i.value="complete",await w(a,l),n==null||n.disconnect()},error(){i.value="error"}};function f(){n==null||n.disconnect(),n=D(a)}return H(_,f),N(async()=>{a.parentEl=await z(B),f()}),q(()=>n==null?void 0:n.disconnect()),(s,m)=>(h(),x("div",{ref_key:"infiniteLoading",ref:d,class:"v3-infinite-loading"},[M(r("div",null,[u(s.$slots,"spinner",{},()=>[R(J)],!0)],512),[[O,i.value=="loading"]]),i.value=="complete"?u(s.$slots,"complete",{key:0},()=>{var c;return[r("span",null,g(((c=s.slots)==null?void 0:c.complete)||"No more results!"),1)]},!0):y("",!0),i.value=="error"?u(s.$slots,"error",{key:1,retry:a.emit},()=>{var c;return[r("span",K,[r("span",null,g(((c=s.slots)==null?void 0:c.error)||"Oops something went wrong!"),1),r("button",{class:"retry",onClick:m[0]||(m[0]=(...L)=>a.emit(...L))},"retry")])]},!0):y("",!0)],512))}}),Z=b(Q,[["__scopeId","data-v-4bdee133"]]);export{Z as Y};
|