index.bec29b2d.js 3.6 KB

1
  1. import{t as W,v as b,z as $,w as B,u as H,d as R,Q as K,R as D,x as M,ap as j,y as E,a1 as F,W as V,as as L,a0 as Q,c as r,an as U,at as Y,au as Z,av as q,O as T,r as G,C as J,aw as X,ax as ee,ac as te,ay as oe,P as ne,E as ae,a5 as se,D as A}from"./index.ff8c07d1.js";import{C as le}from"./index.840f9fe8.js";const[_,P]=W("dropdown-menu"),re={overlay:b,zIndex:$,duration:B(.2),direction:H("down"),activeColor:String,closeOnClickOutside:b,closeOnClickOverlay:b,swipeThreshold:$},N=Symbol(_);var ie=R({name:_,props:re,setup(o,{slots:c}){const d=K(),p=D(),n=D(),s=D(0),{children:u,linkChildren:v}=M(N),O=j(p),f=E(()=>u.some(e=>e.state.showWrapper)),m=E(()=>o.swipeThreshold&&u.length>+o.swipeThreshold),k=E(()=>{if(f.value&&F(o.zIndex))return{zIndex:+o.zIndex+1}}),w=()=>{u.forEach(e=>{e.toggle(!1)})},x=()=>{o.closeOnClickOutside&&w()},h=()=>{if(n.value){const e=U(n);o.direction==="down"?s.value=e.bottom:s.value=Y.value-e.top}},I=()=>{f.value&&h()},C=e=>{u.forEach((a,i)=>{i===e?a.toggle():a.state.showPopup&&a.toggle(!1,{immediate:!0})})},t=(e,a)=>{const{showPopup:i}=e.state,{disabled:l,titleClass:S}=e;return r("div",{id:`${d}-${a}`,role:"button",tabindex:l?void 0:0,class:[P("item",{disabled:l,grow:m.value}),{[Z]:!l}],onClick:()=>{l||C(a)}},[r("span",{class:[P("title",{down:i===(o.direction==="down"),active:i}),S],style:{color:i?o.activeColor:""}},[r("div",{class:"van-ellipsis"},[e.renderTitle()])])])};return V({close:w}),v({id:d,props:o,offset:s,updateOffset:h}),L(p,x),Q("scroll",I,{target:O,passive:!0}),()=>{var e;return r("div",{ref:p,class:P()},[r("div",{ref:n,style:k.value,class:P("bar",{opened:f.value,scrollable:m.value})},[u.map(t)]),(e=c.default)==null?void 0:e.call(c)])}}});const[ce,g]=W("dropdown-item"),de={title:String,options:q(),disabled:Boolean,teleport:[String,Object],lazyRender:b,modelValue:T,titleClass:T};var ue=R({name:ce,inheritAttrs:!1,props:de,emits:["open","opened","close","closed","change","update:modelValue"],setup(o,{emit:c,slots:d,attrs:p}){const n=G({showPopup:!1,transition:!0,showWrapper:!1}),{parent:s,index:u}=J(N);if(!s)return;const v=t=>()=>c(t),O=v("open"),f=v("close"),m=v("opened"),k=()=>{n.showWrapper=!1,c("closed")},w=t=>{o.teleport&&t.stopPropagation()},x=(t=!n.showPopup,e={})=>{t!==n.showPopup&&(n.showPopup=t,n.transition=!e.immediate,t&&(s.updateOffset(),n.showWrapper=!0))},h=()=>{if(d.title)return d.title();if(o.title)return o.title;const t=o.options.find(e=>e.value===o.modelValue);return t?t.text:""},I=t=>{const{activeColor:e}=s.props,a=t.value===o.modelValue,i=()=>{n.showPopup=!1,t.value!==o.modelValue&&(c("update:modelValue",t.value),c("change",t.value))},l=()=>{if(a)return r(se,{class:g("icon"),color:e,name:"success"},null)};return r(le,{role:"menuitem",key:String(t.value),icon:t.icon,title:t.text,class:g("option",{active:a}),style:{color:a?e:""},tabindex:a?0:-1,clickable:!0,onClick:i},{value:l})},C=()=>{const{offset:t}=s,{zIndex:e,overlay:a,duration:i,direction:l,closeOnClickOverlay:S}=s.props,z=ee(e);return l==="down"?z.top=`${t.value}px`:z.bottom=`${t.value}px`,te(r("div",ae({style:z,class:g([l]),onClick:w},p),[r(ne,{show:n.showPopup,"onUpdate:show":y=>n.showPopup=y,role:"menu",class:g("content"),overlay:a,position:l==="down"?"top":"bottom",duration:n.transition?i:0,lazyRender:o.lazyRender,overlayStyle:{position:"absolute"},"aria-labelledby":`${s.id}-${u.value}`,closeOnClickOverlay:S,onOpen:O,onClose:f,onOpened:m,onClosed:k},{default:()=>{var y;return[o.options.map(I),(y=d.default)==null?void 0:y.call(d)]}})]),[[oe,n.showWrapper]])};return V({state:n,toggle:x,renderTitle:h}),()=>o.teleport?r(X,{to:o.teleport},{default:()=>[C()]}):C()}});const fe=A(ue),me=A(ie);export{me as D,fe as a};