webGoodsSource-dist/js/el-dropdown-item.CINTiOIB.js
2025-08-17 11:17:03 +08:00

2 lines
16 KiB
JavaScript

import{_ as e,d as o,f as n,r as t,j as l,o as r,g as a,aF as i,p as d,b as s,h as u,F as c,bz as p,aN as f,bA as v,D as m,bB as g,be as b,m as w,e as h,w as y,N as I,bk as E,bl as C,i as _,a3 as F,bC as T,Y as S,bD as R,c as k,al as x,bE as B,J as O,n as $,aj as D,E as M,bF as K,ap as L,bi as P,an as N,a as G,u as A,X as z,ab as H,B as j,az as J,k as Y,ai as U,l as q,q as V,Q as W,a7 as Q,bG as X,bH as Z,$ as ee,bI as oe,v as ne,s as te}from"./index.CgUrhMi-.js";var le=e(o({inheritAttrs:!1}),[["render",function(e,o,t,l,r,a){return n(e.$slots,"default")}],["__file","collection.vue"]]);var re=e(o({name:"ElCollectionItem",inheritAttrs:!1}),[["render",function(e,o,t,l,r,a){return n(e.$slots,"default")}],["__file","collection-item.vue"]]);const ae="data-el-collection-item",ie=e=>{const o=`El${e}Collection`,n=`${o}Item`,s=Symbol(o),u=Symbol(n),c={...le,name:o,setup(){const e=t(),o=new Map;d(s,{itemMap:o,getItems:()=>{const n=a(e);if(!n)return[];const t=Array.from(n.querySelectorAll(`[${ae}]`));return[...o.values()].sort((e,o)=>t.indexOf(e.ref)-t.indexOf(o.ref))},collectionRef:e})}},p={...re,name:n,setup(e,{attrs:o}){const n=t(),c=l(s,void 0);d(u,{collectionItemRef:n}),r(()=>{const e=a(n);e&&c.itemMap.set(e,{ref:e,...o})}),i(()=>{const e=a(n);c.itemMap.delete(e)})}};return{COLLECTION_INJECTION_KEY:s,COLLECTION_ITEM_INJECTION_KEY:u,ElCollection:c,ElCollectionItem:p}},de=s({style:{type:u([String,Array,Object])},currentTabId:{type:u(String)},defaultCurrentTabId:String,loop:Boolean,dir:{type:String,values:["ltr","rtl"],default:"ltr"},orientation:{type:u(String)},onBlur:Function,onFocus:Function,onMousedown:Function}),{ElCollection:se,ElCollectionItem:ue,COLLECTION_INJECTION_KEY:ce,COLLECTION_ITEM_INJECTION_KEY:pe}=ie("RovingFocusGroup"),fe=Symbol("elRovingFocusGroup"),ve=Symbol("elRovingFocusGroupItem"),me={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"},ge=e=>{const{activeElement:o}=document;for(const n of e){if(n===o)return;if(n.focus(),o!==document.activeElement)return}},be="currentTabIdChange",we="rovingFocusGroup.entryFocus",he={bubbles:!1,cancelable:!0},ye=o({name:"ElRovingFocusGroupImpl",inheritAttrs:!1,props:de,emits:[be,"entryFocus"],setup(e,{emit:o}){var n;const r=t(null!=(n=e.currentTabId||e.defaultCurrentTabId)?n:null),i=t(!1),s=t(!1),u=t(),{getItems:b}=l(ce,void 0),w=c(()=>[{outline:"none"},e.style]),h=p(o=>{var n;null==(n=e.onMousedown)||n.call(e,o)},()=>{s.value=!0}),y=p(o=>{var n;null==(n=e.onFocus)||n.call(e,o)},e=>{const o=!a(s),{target:n,currentTarget:t}=e;if(n===t&&o&&!a(i)){const e=new Event(we,he);if(null==t||t.dispatchEvent(e),!e.defaultPrevented){const e=b().filter(e=>e.focusable),o=[e.find(e=>e.active),e.find(e=>e.id===a(r)),...e].filter(Boolean).map(e=>e.ref);ge(o)}}s.value=!1}),I=p(o=>{var n;null==(n=e.onBlur)||n.call(e,o)},()=>{i.value=!1});d(fe,{currentTabbedId:v(r),loop:f(e,"loop"),tabIndex:c(()=>a(i)?-1:0),rovingFocusGroupRef:u,rovingFocusGroupRootStyle:w,orientation:f(e,"orientation"),dir:f(e,"dir"),onItemFocus:e=>{o(be,e)},onItemShiftTab:()=>{i.value=!0},onBlur:I,onFocus:y,onMousedown:h}),m(()=>e.currentTabId,e=>{r.value=null!=e?e:null}),g(u,we,(...e)=>{o("entryFocus",...e)})}});var Ie=e(o({name:"ElRovingFocusGroup",components:{ElFocusGroupCollection:se,ElRovingFocusGroupImpl:e(ye,[["render",function(e,o,t,l,r,a){return n(e.$slots,"default")}],["__file","roving-focus-group-impl.vue"]])}}),[["render",function(e,o,t,l,r,a){const i=b("el-roving-focus-group-impl"),d=b("el-focus-group-collection");return h(),w(d,null,{default:y(()=>[I(i,E(C(e.$attrs)),{default:y(()=>[n(e.$slots,"default")]),_:3},16)]),_:3})}],["__file","roving-focus-group.vue"]]);const Ee=s({trigger:R.trigger,triggerKeys:{type:u(Array),default:()=>[S.enter,S.numpadEnter,S.space,S.down]},effect:{...F.effect,default:"light"},type:{type:u(String)},placement:{type:u(String),default:"bottom"},popperOptions:{type:u(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:u([Number,String]),default:0},maxHeight:{type:u([Number,String]),default:""},popperClass:{type:String,default:""},disabled:Boolean,role:{type:String,values:T,default:"menu"},buttonProps:{type:u(Object)},teleported:F.teleported,persistent:{type:Boolean,default:!0}}),Ce=s({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:_}}),_e=s({onKeydown:{type:u(Function)}}),Fe=[S.down,S.pageDown,S.home],Te=[S.up,S.pageUp,S.end],Se=[...Fe,...Te],{ElCollection:Re,ElCollectionItem:ke,COLLECTION_INJECTION_KEY:xe,COLLECTION_ITEM_INJECTION_KEY:Be}=ie("Dropdown"),Oe=Symbol("elDropdown"),$e="elDropdown",{ButtonGroup:De}=N;var Me=e(o({name:"ElDropdown",components:{ElButton:N,ElButtonGroup:De,ElScrollbar:P,ElDropdownCollection:Re,ElTooltip:L,ElRovingFocusGroup:Ie,ElOnlyChild:K,ElIcon:M,ArrowDown:D},props:Ee,emits:["visible-change","click","command"],setup(e,{emit:o}){const n=Y(),l=G("dropdown"),{t:r}=A(),s=t(),u=t(),p=t(),v=t(),g=t(null),b=t(null),w=t(!1),h=c(()=>({maxHeight:z(e.maxHeight)})),y=c(()=>[l.m(F.value)]),I=c(()=>j(e.trigger)),E=J().value,C=c(()=>e.id||E);function _(){var e;null==(e=p.value)||e.onClose()}m([s,I],([e,o],[n])=>{var t,l,r;(null==(t=null==n?void 0:n.$el)?void 0:t.removeEventListener)&&n.$el.removeEventListener("pointerenter",T),(null==(l=null==e?void 0:e.$el)?void 0:l.removeEventListener)&&e.$el.removeEventListener("pointerenter",T),(null==(r=null==e?void 0:e.$el)?void 0:r.addEventListener)&&o.includes("hover")&&e.$el.addEventListener("pointerenter",T)},{immediate:!0}),i(()=>{var e,o;(null==(o=null==(e=s.value)?void 0:e.$el)?void 0:o.removeEventListener)&&s.value.$el.removeEventListener("pointerenter",T)});const F=H();function T(){var e,o;null==(o=null==(e=s.value)?void 0:e.$el)||o.focus()}d(Oe,{contentRef:v,role:c(()=>e.role),triggerId:C,isUsingKeyboard:w,onItemEnter:function(){},onItemLeave:function(){const e=a(v);I.value.includes("hover")&&(null==e||e.focus()),b.value=null}}),d($e,{instance:n,dropdownSize:F,handleClick:function(){_()},commandHandler:function(...e){o("command",...e)},trigger:f(e,"trigger"),hideOnClick:f(e,"hideOnClick")});return{t:r,ns:l,scrollbar:g,wrapStyle:h,dropdownTriggerKls:y,dropdownSize:F,triggerId:C,currentTabId:b,handleCurrentTabIdChange:function(e){b.value=e},handlerMainButtonClick:e=>{o("click",e)},handleEntryFocus:function(e){w.value||(e.preventDefault(),e.stopImmediatePropagation())},handleClose:_,handleOpen:function(){var e;null==(e=p.value)||e.onOpen()},handleBeforeShowTooltip:function(){o("visible-change",!0)},handleShowTooltip:function(e){var o;"keydown"===(null==e?void 0:e.type)&&(null==(o=v.value)||o.focus())},handleBeforeHideTooltip:function(){o("visible-change",!1)},onFocusAfterTrapped:e=>{var o,n;e.preventDefault(),null==(n=null==(o=v.value)?void 0:o.focus)||n.call(o,{preventScroll:!0})},popperRef:p,contentRef:v,triggeringElementRef:s,referenceElementRef:u}}}),[["render",function(e,o,t,l,r,a){var i;const d=b("el-dropdown-collection"),s=b("el-roving-focus-group"),u=b("el-scrollbar"),c=b("el-only-child"),p=b("el-tooltip"),f=b("el-button"),v=b("arrow-down"),m=b("el-icon"),g=b("el-button-group");return h(),k("div",{class:$([e.ns.b(),e.ns.is("disabled",e.disabled)])},[I(p,{ref:"popperRef",role:e.role,effect:e.effect,"fallback-placements":["bottom","top"],"popper-options":e.popperOptions,"gpu-acceleration":!1,"hide-after":"hover"===e.trigger?e.hideTimeout:0,"manual-mode":!0,placement:e.placement,"popper-class":[e.ns.e("popper"),e.popperClass],"reference-element":null==(i=e.referenceElementRef)?void 0:i.$el,trigger:e.trigger,"trigger-keys":e.triggerKeys,"trigger-target-el":e.contentRef,"show-after":"hover"===e.trigger?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:e.persistent,onBeforeShow:e.handleBeforeShowTooltip,onShow:e.handleShowTooltip,onBeforeHide:e.handleBeforeHideTooltip},B({content:y(()=>[I(u,{ref:"scrollbar","wrap-style":e.wrapStyle,tag:"div","view-class":e.ns.e("list")},{default:y(()=>[I(s,{loop:e.loop,"current-tab-id":e.currentTabId,orientation:"horizontal",onCurrentTabIdChange:e.handleCurrentTabIdChange,onEntryFocus:e.handleEntryFocus},{default:y(()=>[I(d,null,{default:y(()=>[n(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:y(()=>[I(c,{id:e.triggerId,ref:"triggeringElementRef",role:"button",tabindex:e.tabindex},{default:y(()=>[n(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","persistent","onBeforeShow","onShow","onBeforeHide"]),e.splitButton?(h(),w(g,{key:0},{default:y(()=>[I(f,O({ref:"referenceElementRef"},e.buttonProps,{size:e.dropdownSize,type:e.type,disabled:e.disabled,tabindex:e.tabindex,onClick:e.handlerMainButtonClick}),{default:y(()=>[n(e.$slots,"default")]),_:3},16,["size","type","disabled","tabindex","onClick"]),I(f,O({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:y(()=>[I(m,{class:$(e.ns.e("icon"))},{default:y(()=>[I(v)]),_:1},8,["class"])]),_:1},16,["id","size","type","class","disabled","tabindex","aria-label"])]),_:3})):x("v-if",!0)],2)}],["__file","dropdown.vue"]]);var Ke=e(o({components:{ElRovingFocusCollectionItem:ue},props:{focusable:{type:Boolean,default:!0},active:Boolean},emits:["mousedown","focus","keydown"],setup(e,{emit:o}){const{currentTabbedId:n,loop:r,onItemFocus:i,onItemShiftTab:s}=l(fe,void 0),{getItems:u}=l(ce,void 0),f=J(),v=t(),m=p(e=>{o("mousedown",e)},o=>{e.focusable?i(a(f)):o.preventDefault()}),g=p(e=>{o("focus",e)},()=>{i(a(f))}),b=p(e=>{o("keydown",e)},e=>{const{code:o,shiftKey:n,target:t,currentTarget:l}=e;if(o===S.tab&&n)return void s();if(t!==l)return;const a=(e=>{const o=e.code;return me[o]})(e);if(a){e.preventDefault();let o=u().filter(e=>e.focusable).map(e=>e.ref);switch(a){case"last":o.reverse();break;case"prev":case"next":{"prev"===a&&o.reverse();const e=o.indexOf(l);o=r.value?(d=e+1,(i=o).map((e,o)=>i[(o+d)%i.length])):o.slice(e+1);break}}U(()=>{ge(o)})}var i,d}),w=c(()=>n.value===a(f));return d(ve,{rovingFocusGroupItemRef:v,tabIndex:c(()=>a(w)?0:-1),handleMousedown:m,handleFocus:g,handleKeydown:b}),{id:f,handleKeydown:b,handleFocus:g,handleMousedown:m}}}),[["render",function(e,o,t,l,r,a){const i=b("el-roving-focus-collection-item");return h(),w(i,{id:e.id,focusable:e.focusable,active:e.active},{default:y(()=>[n(e.$slots,"default")]),_:3},8,["id","focusable","active"])}],["__file","roving-focus-item.vue"]]);const Le=o({name:"DropdownItemImpl",components:{ElIcon:M},props:Ce,emits:["pointermove","pointerleave","click","clickimpl"],setup(e,{emit:o}){const n=G("dropdown"),{role:t}=l(Oe,void 0),{collectionItemRef:r}=l(Be,void 0),{collectionItemRef:a}=l(pe,void 0),{rovingFocusGroupItemRef:i,tabIndex:d,handleFocus:s,handleKeydown:u,handleMousedown:f}=l(ve,void 0),v=X(r,a,i),m=c(()=>"menu"===t.value?"menuitem":"navigation"===t.value?"link":"button"),g=p(e=>{if([S.enter,S.numpadEnter,S.space].includes(e.code))return e.preventDefault(),e.stopImmediatePropagation(),o("clickimpl",e),!0},u);return{ns:n,itemRef:v,dataset:{[ae]:""},role:m,tabIndex:d,handleFocus:s,handleKeydown:g,handleMousedown:f}}});const Pe=()=>{const e=l($e,{}),o=c(()=>null==e?void 0:e.dropdownSize);return{elDropdown:e,_elDropdownSize:o}};var Ne=e(o({name:"ElDropdownItem",components:{ElDropdownCollectionItem:ke,ElRovingFocusItem:Ke,ElDropdownItemImpl:e(Le,[["render",function(e,o,t,l,r,a){const i=b("el-icon");return h(),k(Q,null,[e.divided?(h(),k("li",{key:0,role:"separator",class:$(e.ns.bem("menu","item","divided"))},null,2)):x("v-if",!0),q("li",O({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=>e.$emit("clickimpl",o),onFocus:e.handleFocus,onKeydown:W(e.handleKeydown,["self"]),onMousedown:e.handleMousedown,onPointermove:o=>e.$emit("pointermove",o),onPointerleave:o=>e.$emit("pointerleave",o)}),[e.icon?(h(),w(i,{key:0},{default:y(()=>[(h(),w(V(e.icon)))]),_:1})):x("v-if",!0),n(e.$slots,"default")],16,["aria-disabled","tabindex","role","onClick","onFocus","onKeydown","onMousedown","onPointermove","onPointerleave"])],64)}],["__file","dropdown-item-impl.vue"]])},inheritAttrs:!1,props:Ce,emits:["pointermove","pointerleave","click"],setup(e,{emit:o,attrs:n}){const{elDropdown:r}=Pe(),i=Y(),d=t(null),s=c(()=>{var e,o;return null!=(o=null==(e=a(d))?void 0:e.textContent)?o:""}),{onItemEnter:u,onItemLeave:f}=l(Oe,void 0),v=p(e=>(o("pointermove",e),e.defaultPrevented),Z(o=>{if(e.disabled)return void f(o);const n=o.currentTarget;n===document.activeElement||n.contains(document.activeElement)||(u(o),o.defaultPrevented||null==n||n.focus())})),m=p(e=>(o("pointerleave",e),e.defaultPrevented),Z(f));return{handleClick:p(n=>{if(!e.disabled)return o("click",n),"keydown"!==n.type&&n.defaultPrevented},o=>{var n,t,l;e.disabled?o.stopImmediatePropagation():((null==(n=null==r?void 0:r.hideOnClick)?void 0:n.value)&&(null==(t=r.handleClick)||t.call(r)),null==(l=r.commandHandler)||l.call(r,e.command,i,o))}),handlePointerMove:v,handlePointerLeave:m,textContent:s,propsAndAttrs:c(()=>({...e,...n}))}}}),[["render",function(e,o,t,l,r,a){var i;const d=b("el-dropdown-item-impl"),s=b("el-roving-focus-item"),u=b("el-dropdown-collection-item");return h(),w(u,{disabled:e.disabled,"text-value":null!=(i=e.textValue)?i:e.textContent},{default:y(()=>[I(s,{focusable:!e.disabled},{default:y(()=>[I(d,O(e.propsAndAttrs,{onPointerleave:e.handlePointerLeave,onPointermove:e.handlePointerMove,onClickimpl:e.handleClick}),{default:y(()=>[n(e.$slots,"default")]),_:3},16,["onPointerleave","onPointermove","onClickimpl"])]),_:3},8,["focusable"])]),_:3},8,["disabled","text-value"])}],["__file","dropdown-item.vue"]]);var Ge=e(o({name:"ElDropdownMenu",props:_e,setup(e){const o=G("dropdown"),{_elDropdownSize:n}=Pe(),t=n.value,{focusTrapRef:r,onKeydown:i}=l(oe,void 0),{contentRef:d,role:s,triggerId:u}=l(Oe,void 0),{collectionRef:f,getItems:v}=l(xe,void 0),{rovingFocusGroupRef:m,rovingFocusGroupRootStyle:g,tabIndex:b,onBlur:w,onFocus:h,onMousedown:y}=l(fe,void 0),{collectionRef:I}=l(ce,void 0),E=c(()=>[o.b("menu"),o.bm("menu",null==t?void 0:t.value)]),C=X(d,f,r,m,I),_=p(o=>{var n;null==(n=e.onKeydown)||n.call(e,o)},e=>{const{currentTarget:o,code:n,target:t}=e;if(o.contains(t),S.tab===n&&e.stopImmediatePropagation(),e.preventDefault(),t!==a(d)||!Se.includes(n))return;const l=v().filter(e=>!e.disabled).map(e=>e.ref);Te.includes(n)&&l.reverse(),ge(l)});return{size:t,rovingFocusGroupRootStyle:g,tabIndex:b,dropdownKls:E,role:s,triggerId:u,dropdownListWrapperRef:C,handleKeydown:e=>{_(e),i(e)},onBlur:w,onFocus:h,onMousedown:y}}}),[["render",function(e,o,t,l,r,a){return h(),k("ul",{ref:e.dropdownListWrapperRef,class:$(e.dropdownKls),style:ee(e.rovingFocusGroupRootStyle),tabindex:-1,role:e.role,"aria-labelledby":e.triggerId,onBlur:e.onBlur,onFocus:e.onFocus,onKeydown:W(e.handleKeydown,["self"]),onMousedown:W(e.onMousedown,["self"])},[n(e.$slots,"default")],46,["role","aria-labelledby","onBlur","onFocus","onKeydown","onMousedown"])}],["__file","dropdown-menu.vue"]]);const Ae=ne(Me,{DropdownItem:Ne,DropdownMenu:Ge}),ze=te(Ne),He=te(Ge);export{Ae as E,He as a,ze as b};