| 1 |
- import{r as i,S as B,Q as J,w as z,d as L,c as y,M as R,h as N,v as Y,a as ee,A as te,o as oe,s as ne,P as ae,T as se,F as le,m as A}from"./index-ba19c87a.js";import{n as b,t as C,b as K,W as ce,T as re,v as M,c as F,C as X,e as $,g as ie,r as H,w as j,d as x,I as ue}from"./index-9c6666b7.js";import{u as de,a as E}from"./use-scope-id-eeb8698e.js";import{T as D,H as ve}from"./constant-eba5e2d8.js";import{P as fe,c as me}from"./on-popup-reopen-d453be07.js";let ye=2e3;const he=()=>++ye,G={show:Boolean,zIndex:b,overlay:C,duration:b,teleport:[String,Object],lockScroll:C,lazyRender:C,beforeClose:Function,overlayStyle:Object,overlayClass:K,transitionAppear:Boolean,closeOnClickOverlay:C},pe=Object.keys(G);function Ie(e,t){return e>t?"horizontal":t>e?"vertical":""}function Oe(){const e=i(0),t=i(0),o=i(0),r=i(0),n=i(0),l=i(0),a=i(""),c=i(!0),P=()=>a.value==="vertical",O=()=>a.value==="horizontal",u=()=>{o.value=0,r.value=0,n.value=0,l.value=0,a.value="",c.value=!0};return{move:d=>{const v=d.touches[0];o.value=(v.clientX<0?0:v.clientX)-e.value,r.value=v.clientY-t.value,n.value=Math.abs(o.value),l.value=Math.abs(r.value);const I=10;(!a.value||n.value<I&&l.value<I)&&(a.value=Ie(n.value,l.value)),c.value&&(n.value>D||l.value>D)&&(c.value=!1)},start:d=>{u(),e.value=d.touches[0].clientX,t.value=d.touches[0].clientY},reset:u,startX:e,startY:t,deltaX:o,deltaY:r,offsetX:n,offsetY:l,direction:a,isVertical:P,isHorizontal:O,isTap:c}}let w=0;const _="van-overflow-hidden";function Ce(e,t){const o=Oe(),r="01",n="10",l=u=>{o.move(u);const h=o.deltaY.value>0?n:r,S=re(u.target,e.value),{scrollHeight:d,offsetHeight:v,scrollTop:I}=S;let f="11";I===0?f=v>=d?"00":"01":I+v>=d&&(f="10"),f!=="11"&&o.isVertical()&&!(parseInt(f,2)&parseInt(h,2))&&M(u,!0)},a=()=>{document.addEventListener("touchstart",o.start),document.addEventListener("touchmove",l,{passive:!1}),w||document.body.classList.add(_),w++},c=()=>{w&&(document.removeEventListener("touchstart",o.start),document.removeEventListener("touchmove",l),w--,w||document.body.classList.remove(_))},P=()=>t()&&a(),O=()=>t()&&c();ce(P),B(O),J(O),z(t,u=>{u?a():c()})}function U(e){const t=i(!1);return z(e,o=>{o&&(t.value=o)},{immediate:!0}),o=>()=>t.value?o():null}const[Pe,we]=F("overlay"),Se={show:Boolean,zIndex:b,duration:b,className:K,lockScroll:C,lazyRender:C,customStyle:Object};var ke=L({name:Pe,props:Se,setup(e,{slots:t}){const o=i(),r=U(()=>e.show||!e.lazyRender),n=a=>{e.lockScroll&&M(a,!0)},l=r(()=>{var a;const c=$(ie(e.zIndex),e.customStyle);return H(e.duration)&&(c.animationDuration=`${e.duration}s`),N(y("div",{ref:o,style:c,class:[we(),e.className]},[(a=t.default)==null?void 0:a.call(t)]),[[Y,e.show]])});return X("touchmove",n,{target:o}),()=>y(R,{name:"van-fade",appear:!0},{default:l})}});const be=j(ke),Te=$({},G,{round:Boolean,position:x("center"),closeIcon:x("cross"),closeable:Boolean,transition:String,iconPrefix:String,closeOnPopstate:Boolean,closeIconPosition:x("top-right"),safeAreaInsetTop:Boolean,safeAreaInsetBottom:Boolean}),[xe,p]=F("popup");var ze=L({name:xe,inheritAttrs:!1,props:Te,emits:["open","close","opened","closed","keydown","update:show","clickOverlay","clickCloseIcon"],setup(e,{emit:t,attrs:o,slots:r}){let n,l;const a=i(),c=i(),P=U(()=>e.show||!e.lazyRender),O=ee(()=>{const s={zIndex:a.value};if(H(e.duration)){const m=e.position==="center"?"animationDuration":"transitionDuration";s[m]=`${e.duration}s`}return s}),u=()=>{n||(n=!0,a.value=e.zIndex!==void 0?+e.zIndex:he(),t("open"))},h=()=>{n&&me(e.beforeClose,{done(){n=!1,t("close"),t("update:show",!1)}})},S=s=>{t("clickOverlay",s),e.closeOnClickOverlay&&h()},d=()=>{if(e.overlay)return y(be,A({show:e.show,class:e.overlayClass,zIndex:a.value,duration:e.duration,customStyle:e.overlayStyle,role:e.closeOnClickOverlay?"button":void 0,tabindex:e.closeOnClickOverlay?0:void 0},E(),{onClick:S}),{default:r["overlay-content"]})},v=s=>{t("clickCloseIcon",s),h()},I=()=>{if(e.closeable)return y(ue,{role:"button",tabindex:0,name:e.closeIcon,class:[p("close-icon",e.closeIconPosition),ve],classPrefix:e.iconPrefix,onClick:v},null)};let f;const V=()=>{f&&clearTimeout(f),f=setTimeout(()=>{t("opened")})},Z=()=>t("closed"),W=s=>t("keydown",s),Q=P(()=>{var s;const{round:m,position:k,safeAreaInsetTop:T,safeAreaInsetBottom:q}=e;return N(y("div",A({ref:c,style:O.value,role:"dialog",tabindex:0,class:[p({round:m,[k]:k}),{"van-safe-area-top":T,"van-safe-area-bottom":q}],onKeydown:W},o,E()),[(s=r.default)==null?void 0:s.call(r),I()]),[[Y,e.show]])}),g=()=>{const{position:s,transition:m,transitionAppear:k}=e,T=s==="center"?"van-fade":`van-popup-slide-${s}`;return y(R,{name:m||T,appear:k,onAfterEnter:V,onAfterLeave:Z},{default:Q})};return z(()=>e.show,s=>{s&&!n&&(u(),o.tabindex===0&&te(()=>{var m;(m=c.value)==null||m.focus()})),!s&&n&&(n=!1,t("close"))}),de({popupRef:c}),Ce(c,()=>e.show&&e.lockScroll),X("popstate",()=>{e.closeOnPopstate&&(h(),l=!1)}),oe(()=>{e.show&&u()}),ne(()=>{l&&(t("update:show",!0),l=!1)}),B(()=>{e.show&&e.teleport&&(h(),l=!0)}),ae(fe,()=>e.show),()=>e.teleport?y(se,{to:e.teleport},{default:()=>[d(),g()]}):y(le,null,[d(),g()])}});const Be=j(ze);export{be as O,Be as P,pe as a,G as p,Oe as u};
|