12 |
- import{E as fe}from"./el-button-5fd5d56e.js";import{c as k,b as Ne,u as de,E as ke,O as Be,w as ue}from"./el-popper-1c70242b.js";import{E as De}from"./el-scrollbar-c70422fb.js";import{i as Le,E as me}from"./index-7588b595.js";import{m as M,R as B,r as C,ag as U,ai as y,B as Pe,u as T,aj as ve,j as Q,k as L,z as h,aT as Ke,aC as V,w as ge,a1 as I,o as P,c as H,a as w,f as S,c8 as Me,c9 as Ae,A as Ge,ay as ze,t as oe,q as Ye,aF as Ue,b as q,a6 as He,Y as j,C as Z,e as x,ah as be,d as Je,L as Ve,E as ee,G as je,D as We,V as qe,al as we}from"./index-312d0758.js";import{E as g,u as Qe}from"./typescript-c7dac87b.js";import{_ as A}from"./plugin-vue_export-helper-1cff8a04.js";import{a as Ie}from"./index-1da7ed1a.js";import{u as Xe}from"./use-form-common-props-714f341f.js";import{c as Ze}from"./castArray-504193a2.js";import{c as Ee}from"./refs-682a87ce.js";import{F as xe}from"./focus-trap-30782453.js";const eo=M({inheritAttrs:!1});function oo(e,o,i,t,u,d){return B(e.$slots,"default")}var no=A(eo,[["render",oo],["__file","collection.vue"]]);const to=M({name:"ElCollectionItem",inheritAttrs:!1});function lo(e,o,i,t,u,d){return B(e.$slots,"default")}var ro=A(to,[["render",lo],["__file","collection-item.vue"]]);const _e="data-el-collection-item",Ce=e=>{const o=`El${e}Collection`,i=`${o}Item`,t=Symbol(o),u=Symbol(i),d={...no,name:o,setup(){const l=C(null),p=new Map;U(t,{itemMap:p,getItems:()=>{const m=T(l);if(!m)return[];const f=Array.from(m.querySelectorAll(`[${_e}]`));return[...p.values()].sort((n,c)=>f.indexOf(n.ref)-f.indexOf(c.ref))},collectionRef:l})}},r={...ro,name:i,setup(l,{attrs:p}){const v=C(null),m=y(t,void 0);U(u,{collectionItemRef:v}),Pe(()=>{const f=T(v);f&&m.itemMap.set(f,{ref:f,...p})}),ve(()=>{const f=T(v);m.itemMap.delete(f)})}};return{COLLECTION_INJECTION_KEY:t,COLLECTION_ITEM_INJECTION_KEY:u,ElCollection:d,ElCollectionItem:r}},so=Q({style:{type:L([String,Array,Object])},currentTabId:{type:L(String)},defaultCurrentTabId:String,loop:Boolean,dir:{type:String,values:["ltr","rtl"],default:"ltr"},orientation:{type:L(String)},onBlur:Function,onFocus:Function,onMousedown:Function}),{ElCollection:io,ElCollectionItem:ao,COLLECTION_INJECTION_KEY:ne,COLLECTION_ITEM_INJECTION_KEY:uo}=Ce("RovingFocusGroup"),te=Symbol("elRovingFocusGroup"),ye=Symbol("elRovingFocusGroupItem"),co={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"},po=(e,o)=>{if(o!=="rtl")return e;switch(e){case g.right:return g.left;case g.left:return g.right;default:return e}},fo=(e,o,i)=>{const t=po(e.key,i);if(!(o==="vertical"&&[g.left,g.right].includes(t))&&!(o==="horizontal"&&[g.up,g.down].includes(t)))return co[t]},mo=(e,o)=>e.map((i,t)=>e[(t+o)%e.length]),le=e=>{const{activeElement:o}=document;for(const i of e)if(i===o||(i.focus(),o!==document.activeElement))return},ce="currentTabIdChange",pe="rovingFocusGroup.entryFocus",vo={bubbles:!1,cancelable:!0},go=M({name:"ElRovingFocusGroupImpl",inheritAttrs:!1,props:so,emits:[ce,"entryFocus"],setup(e,{emit:o}){var i;const t=C((i=e.currentTabId||e.defaultCurrentTabId)!=null?i:null),u=C(!1),d=C(!1),r=C(null),{getItems:l}=y(ne,void 0),p=h(()=>[{outline:"none"},e.style]),v=a=>{o(ce,a)},m=()=>{u.value=!0},f=k(a=>{var b;(b=e.onMousedown)==null||b.call(e,a)},()=>{d.value=!0}),E=k(a=>{var b;(b=e.onFocus)==null||b.call(e,a)},a=>{const b=!T(d),{target:K,currentTarget:R}=a;if(K===R&&b&&!T(u)){const G=new Event(pe,vo);if(R==null||R.dispatchEvent(G),!G.defaultPrevented){const _=l().filter(F=>F.focusable),$=_.find(F=>F.active),O=_.find(F=>F.id===T(t)),z=[$,O,..._].filter(Boolean).map(F=>F.ref);le(z)}}d.value=!1}),n=k(a=>{var b;(b=e.onBlur)==null||b.call(e,a)},()=>{u.value=!1}),c=(...a)=>{o("entryFocus",...a)};U(te,{currentTabbedId:Ke(t),loop:V(e,"loop"),tabIndex:h(()=>T(u)?-1:0),rovingFocusGroupRef:r,rovingFocusGroupRootStyle:p,orientation:V(e,"orientation"),dir:V(e,"dir"),onItemFocus:v,onItemShiftTab:m,onBlur:n,onFocus:E,onMousedown:f}),ge(()=>e.currentTabId,a=>{t.value=a??null}),Qe(r,pe,c)}});function bo(e,o,i,t,u,d){return B(e.$slots,"default")}var wo=A(go,[["render",bo],["__file","roving-focus-group-impl.vue"]]);const Io=M({name:"ElRovingFocusGroup",components:{ElFocusGroupCollection:io,ElRovingFocusGroupImpl:wo}});function Eo(e,o,i,t,u,d){const r=I("el-roving-focus-group-impl"),l=I("el-focus-group-collection");return P(),H(l,null,{default:w(()=>[S(r,Me(Ae(e.$attrs)),{default:w(()=>[B(e.$slots,"default")]),_:3},16)]),_:3})}var _o=A(Io,[["render",Eo],["__file","roving-focus-group.vue"]]);const Co=M({components:{ElRovingFocusCollectionItem:ao},props:{focusable:{type:Boolean,default:!0},active:{type:Boolean,default:!1}},emits:["mousedown","focus","keydown"],setup(e,{emit:o}){const{currentTabbedId:i,loop:t,onItemFocus:u,onItemShiftTab:d}=y(te,void 0),{getItems:r}=y(ne,void 0),l=Ie(),p=C(null),v=k(n=>{o("mousedown",n)},n=>{e.focusable?u(T(l)):n.preventDefault()}),m=k(n=>{o("focus",n)},()=>{u(T(l))}),f=k(n=>{o("keydown",n)},n=>{const{key:c,shiftKey:a,target:b,currentTarget:K}=n;if(c===g.tab&&a){d();return}if(b!==K)return;const R=fo(n);if(R){n.preventDefault();let _=r().filter($=>$.focusable).map($=>$.ref);switch(R){case"last":{_.reverse();break}case"prev":case"next":{R==="prev"&&_.reverse();const $=_.indexOf(K);_=t.value?mo(_,$+1):_.slice($+1);break}}Ge(()=>{le(_)})}}),E=h(()=>i.value===T(l));return U(ye,{rovingFocusGroupItemRef:p,tabIndex:h(()=>T(E)?0:-1),handleMousedown:v,handleFocus:m,handleKeydown:f}),{id:l,handleKeydown:f,handleFocus:m,handleMousedown:v}}});function yo(e,o,i,t,u,d){const r=I("el-roving-focus-collection-item");return P(),H(r,{id:e.id,focusable:e.focusable,active:e.active},{default:w(()=>[B(e.$slots,"default")]),_:3},8,["id","focusable","active"])}var ho=A(Co,[["render",yo],["__file","roving-focus-item.vue"]]);const To=Q({trigger:Ne.trigger,effect:{...de.effect,default:"light"},type:{type:L(String)},placement:{type:L(String),default:"bottom"},popperOptions:{type:L(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:L([Number,String]),default:0},maxHeight:{type:L([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:L(Object)},teleported:de.teleported}),he=Q({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Le}}),$o=Q({onKeydown:{type:L(Function)}}),Oo=[g.down,g.pageDown,g.home],Te=[g.up,g.pageUp,g.end],Fo=[...Oo,...Te],{ElCollection:So,ElCollectionItem:Ro,COLLECTION_INJECTION_KEY:No,COLLECTION_ITEM_INJECTION_KEY:ko}=Ce("Dropdown"),X=Symbol("elDropdown"),{ButtonGroup:Bo}=fe,Do=M({name:"ElDropdown",components:{ElButton:fe,ElButtonGroup:Bo,ElScrollbar:De,ElDropdownCollection:So,ElTooltip:ke,ElRovingFocusGroup:_o,ElOnlyChild:Be,ElIcon:me,ArrowDown:ze},props:To,emits:["visible-change","click","command"],setup(e,{emit:o}){const i=be(),t=oe("dropdown"),{t:u}=Ye(),d=C(),r=C(),l=C(null),p=C(null),v=C(null),m=C(null),f=C(!1),E=[g.enter,g.space,g.down],n=h(()=>({maxHeight:Ue(e.maxHeight)})),c=h(()=>[t.m($.value)]),a=h(()=>Ze(e.trigger)),b=Ie().value,K=h(()=>e.id||b);ge([d,a],([s,N],[Y])=>{var se,ie,ae;(se=Y==null?void 0:Y.$el)!=null&&se.removeEventListener&&Y.$el.removeEventListener("pointerenter",D),(ie=s==null?void 0:s.$el)!=null&&ie.removeEventListener&&s.$el.removeEventListener("pointerenter",D),(ae=s==null?void 0:s.$el)!=null&&ae.addEventListener&&N.includes("hover")&&s.$el.addEventListener("pointerenter",D)},{immediate:!0}),ve(()=>{var s,N;(N=(s=d.value)==null?void 0:s.$el)!=null&&N.removeEventListener&&d.value.$el.removeEventListener("pointerenter",D)});function R(){G()}function G(){var s;(s=l.value)==null||s.onClose()}function _(){var s;(s=l.value)==null||s.onOpen()}const $=Xe();function O(...s){o("command",...s)}function D(){var s,N;(N=(s=d.value)==null?void 0:s.$el)==null||N.focus()}function z(){}function F(){const s=T(p);a.value.includes("hover")&&(s==null||s.focus()),m.value=null}function re(s){m.value=s}function W(s){f.value||(s.preventDefault(),s.stopImmediatePropagation())}function J(){o("visible-change",!0)}function Se(s){(s==null?void 0:s.type)==="keydown"&&p.value.focus()}function Re(){o("visible-change",!1)}return U(X,{contentRef:p,role:h(()=>e.role),triggerId:K,isUsingKeyboard:f,onItemEnter:z,onItemLeave:F}),U("elDropdown",{instance:i,dropdownSize:$,handleClick:R,commandHandler:O,trigger:V(e,"trigger"),hideOnClick:V(e,"hideOnClick")}),{t:u,ns:t,scrollbar:v,wrapStyle:n,dropdownTriggerKls:c,dropdownSize:$,triggerId:K,triggerKeys:E,currentTabId:m,handleCurrentTabIdChange:re,handlerMainButtonClick:s=>{o("click",s)},handleEntryFocus:W,handleClose:G,handleOpen:_,handleBeforeShowTooltip:J,handleShowTooltip:Se,handleBeforeHideTooltip:Re,onFocusAfterTrapped:s=>{var N,Y;s.preventDefault(),(Y=(N=p.value)==null?void 0:N.focus)==null||Y.call(N,{preventScroll:!0})},popperRef:l,contentRef:p,triggeringElementRef:d,referenceElementRef:r}}});function Lo(e,o,i,t,u,d){var r;const l=I("el-dropdown-collection"),p=I("el-roving-focus-group"),v=I("el-scrollbar"),m=I("el-only-child"),f=I("el-tooltip"),E=I("el-button"),n=I("arrow-down"),c=I("el-icon"),a=I("el-button-group");return P(),q("div",{class:Z([e.ns.b(),e.ns.is("disabled",e.disabled)])},[S(f,{ref:"popperRef",role:e.role,effect:e.effect,"fallback-placements":["bottom","top"],"popper-options":e.popperOptions,"gpu-acceleration":!1,"hide-after":e.trigger==="hover"?e.hideTimeout:0,"manual-mode":!0,placement:e.placement,"popper-class":[e.ns.e("popper"),e.popperClass],"reference-element":(r=e.referenceElementRef)==null?void 0:r.$el,trigger:e.trigger,"trigger-keys":e.triggerKeys,"trigger-target-el":e.contentRef,"show-after":e.trigger==="hover"?e.showTimeout:0,"stop-popper-mouse-event":!1,"virtual-ref":e.triggeringElementRef,"virtual-triggering":e.splitButton,disabled:e.disabled,transition:`${e.ns.namespace.value}-zoom-in-top`,teleported:e.teleported,pure:"",persistent:"",onBeforeShow:e.handleBeforeShowTooltip,onShow:e.handleShowTooltip,onBeforeHide:e.handleBeforeHideTooltip},He({content:w(()=>[S(v,{ref:"scrollbar","wrap-style":e.wrapStyle,tag:"div","view-class":e.ns.e("list")},{default:w(()=>[S(p,{loop:e.loop,"current-tab-id":e.currentTabId,orientation:"horizontal",onCurrentTabIdChange:e.handleCurrentTabIdChange,onEntryFocus:e.handleEntryFocus},{default:w(()=>[S(l,null,{default:w(()=>[B(e.$slots,"dropdown")]),_:3})]),_:3},8,["loop","current-tab-id","onCurrentTabIdChange","onEntryFocus"])]),_:3},8,["wrap-style","view-class"])]),_:2},[e.splitButton?void 0:{name:"default",fn:w(()=>[S(m,{id:e.triggerId,ref:"triggeringElementRef",role:"button",tabindex:e.tabindex},{default:w(()=>[B(e.$slots,"default")]),_:3},8,["id","tabindex"])])}]),1032,["role","effect","popper-options","hide-after","placement","popper-class","reference-element","trigger","trigger-keys","trigger-target-el","show-after","virtual-ref","virtual-triggering","disabled","transition","teleported","onBeforeShow","onShow","onBeforeHide"]),e.splitButton?(P(),H(a,{key:0},{default:w(()=>[S(E,j({ref:"referenceElementRef"},e.buttonProps,{size:e.dropdownSize,type:e.type,disabled:e.disabled,tabindex:e.tabindex,onClick:e.handlerMainButtonClick}),{default:w(()=>[B(e.$slots,"default")]),_:3},16,["size","type","disabled","tabindex","onClick"]),S(E,j({id:e.triggerId,ref:"triggeringElementRef"},e.buttonProps,{role:"button",size:e.dropdownSize,type:e.type,class:e.ns.e("caret-button"),disabled:e.disabled,tabindex:e.tabindex,"aria-label":e.t("el.dropdown.toggleDropdown")}),{default:w(()=>[S(c,{class:Z(e.ns.e("icon"))},{default:w(()=>[S(n)]),_:1},8,["class"])]),_:1},16,["id","size","type","class","disabled","tabindex","aria-label"])]),_:3})):x("v-if",!0)],2)}var Po=A(Do,[["render",Lo],["__file","dropdown.vue"]]);const Ko=M({name:"DropdownItemImpl",components:{ElIcon:me},props:he,emits:["pointermove","pointerleave","click","clickimpl"],setup(e,{emit:o}){const i=oe("dropdown"),{role:t}=y(X,void 0),{collectionItemRef:u}=y(ko,void 0),{collectionItemRef:d}=y(uo,void 0),{rovingFocusGroupItemRef:r,tabIndex:l,handleFocus:p,handleKeydown:v,handleMousedown:m}=y(ye,void 0),f=Ee(u,d,r),E=h(()=>t.value==="menu"?"menuitem":t.value==="navigation"?"link":"button"),n=k(c=>{const{code:a}=c;if(a===g.enter||a===g.space)return c.preventDefault(),c.stopImmediatePropagation(),o("clickimpl",c),!0},v);return{ns:i,itemRef:f,dataset:{[_e]:""},role:E,tabIndex:l,handleFocus:p,handleKeydown:n,handleMousedown:m}}}),Mo=["aria-disabled","tabindex","role"];function Ao(e,o,i,t,u,d){const r=I("el-icon");return P(),q(je,null,[e.divided?(P(),q("li",j({key:0,role:"separator",class:e.ns.bem("menu","item","divided")},e.$attrs),null,16)):x("v-if",!0),Je("li",j({ref:e.itemRef},{...e.dataset,...e.$attrs},{"aria-disabled":e.disabled,class:[e.ns.be("menu","item"),e.ns.is("disabled",e.disabled)],tabindex:e.tabIndex,role:e.role,onClick:o[0]||(o[0]=l=>e.$emit("clickimpl",l)),onFocus:o[1]||(o[1]=(...l)=>e.handleFocus&&e.handleFocus(...l)),onKeydown:o[2]||(o[2]=ee((...l)=>e.handleKeydown&&e.handleKeydown(...l),["self"])),onMousedown:o[3]||(o[3]=(...l)=>e.handleMousedown&&e.handleMousedown(...l)),onPointermove:o[4]||(o[4]=l=>e.$emit("pointermove",l)),onPointerleave:o[5]||(o[5]=l=>e.$emit("pointerleave",l))}),[e.icon?(P(),H(r,{key:0},{default:w(()=>[(P(),H(Ve(e.icon)))]),_:1})):x("v-if",!0),B(e.$slots,"default")],16,Mo)],64)}var Go=A(Ko,[["render",Ao],["__file","dropdown-item-impl.vue"]]);const $e=()=>{const e=y("elDropdown",{}),o=h(()=>e==null?void 0:e.dropdownSize);return{elDropdown:e,_elDropdownSize:o}},zo=M({name:"ElDropdownItem",components:{ElDropdownCollectionItem:Ro,ElRovingFocusItem:ho,ElDropdownItemImpl:Go},inheritAttrs:!1,props:he,emits:["pointermove","pointerleave","click"],setup(e,{emit:o,attrs:i}){const{elDropdown:t}=$e(),u=be(),d=C(null),r=h(()=>{var n,c;return(c=(n=T(d))==null?void 0:n.textContent)!=null?c:""}),{onItemEnter:l,onItemLeave:p}=y(X,void 0),v=k(n=>(o("pointermove",n),n.defaultPrevented),ue(n=>{if(e.disabled){p(n);return}const c=n.currentTarget;c===document.activeElement||c.contains(document.activeElement)||(l(n),n.defaultPrevented||c==null||c.focus())})),m=k(n=>(o("pointerleave",n),n.defaultPrevented),ue(n=>{p(n)})),f=k(n=>{if(!e.disabled)return o("click",n),n.type!=="keydown"&&n.defaultPrevented},n=>{var c,a,b;if(e.disabled){n.stopImmediatePropagation();return}(c=t==null?void 0:t.hideOnClick)!=null&&c.value&&((a=t.handleClick)==null||a.call(t)),(b=t.commandHandler)==null||b.call(t,e.command,u,n)}),E=h(()=>({...e,...i}));return{handleClick:f,handlePointerMove:v,handlePointerLeave:m,textContent:r,propsAndAttrs:E}}});function Yo(e,o,i,t,u,d){var r;const l=I("el-dropdown-item-impl"),p=I("el-roving-focus-item"),v=I("el-dropdown-collection-item");return P(),H(v,{disabled:e.disabled,"text-value":(r=e.textValue)!=null?r:e.textContent},{default:w(()=>[S(p,{focusable:!e.disabled},{default:w(()=>[S(l,j(e.propsAndAttrs,{onPointerleave:e.handlePointerLeave,onPointermove:e.handlePointerMove,onClickimpl:e.handleClick}),{default:w(()=>[B(e.$slots,"default")]),_:3},16,["onPointerleave","onPointermove","onClickimpl"])]),_:3},8,["focusable"])]),_:3},8,["disabled","text-value"])}var Oe=A(zo,[["render",Yo],["__file","dropdown-item.vue"]]);const Uo=M({name:"ElDropdownMenu",props:$o,setup(e){const o=oe("dropdown"),{_elDropdownSize:i}=$e(),t=i.value,{focusTrapRef:u,onKeydown:d}=y(xe,void 0),{contentRef:r,role:l,triggerId:p}=y(X,void 0),{collectionRef:v,getItems:m}=y(No,void 0),{rovingFocusGroupRef:f,rovingFocusGroupRootStyle:E,tabIndex:n,onBlur:c,onFocus:a,onMousedown:b}=y(te,void 0),{collectionRef:K}=y(ne,void 0),R=h(()=>[o.b("menu"),o.bm("menu",t==null?void 0:t.value)]),G=Ee(r,v,u,f,K),_=k(O=>{var D;(D=e.onKeydown)==null||D.call(e,O)},O=>{const{currentTarget:D,code:z,target:F}=O;if(D.contains(F),g.tab===z&&O.stopImmediatePropagation(),O.preventDefault(),F!==T(r)||!Fo.includes(z))return;const W=m().filter(J=>!J.disabled).map(J=>J.ref);Te.includes(z)&&W.reverse(),le(W)});return{size:t,rovingFocusGroupRootStyle:E,tabIndex:n,dropdownKls:R,role:l,triggerId:p,dropdownListWrapperRef:G,handleKeydown:O=>{_(O),d(O)},onBlur:c,onFocus:a,onMousedown:b}}}),Ho=["role","aria-labelledby"];function Jo(e,o,i,t,u,d){return P(),q("ul",{ref:e.dropdownListWrapperRef,class:Z(e.dropdownKls),style:We(e.rovingFocusGroupRootStyle),tabindex:-1,role:e.role,"aria-labelledby":e.triggerId,onBlur:o[0]||(o[0]=(...r)=>e.onBlur&&e.onBlur(...r)),onFocus:o[1]||(o[1]=(...r)=>e.onFocus&&e.onFocus(...r)),onKeydown:o[2]||(o[2]=ee((...r)=>e.handleKeydown&&e.handleKeydown(...r),["self"])),onMousedown:o[3]||(o[3]=ee((...r)=>e.onMousedown&&e.onMousedown(...r),["self"]))},[B(e.$slots,"default")],46,Ho)}var Fe=A(Uo,[["render",Jo],["__file","dropdown-menu.vue"]]);const sn=qe(Po,{DropdownItem:Oe,DropdownMenu:Fe}),an=we(Oe),dn=we(Fe);export{an as E,dn as a,sn as b};
|