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