2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
var e=Object.defineProperty,o=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable,r=(o,n,t)=>n in o?e(o,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[n]=t,l=(e,l)=>{for(var a in l||(l={}))n.call(l,a)&&r(e,a,l[a]);if(o)for(var a of o(l))t.call(l,a)&&r(e,a,l[a]);return e};import{a8 as a,at as i,Z as s,a0 as d,d as u,s as c,r as p,a9 as f,c as v,cp as m,p as g,ae as b,ay as w,ct as h,A as y,cY as I,G as E,h as F,e as C,w as R,g as _,cc as T,c_ as x,b as k,i as S,cx as B,a2 as P,q as D,ab as O,ai as K,E as M,a1 as G,bK as A,cB as $,bx as z,bC as L,af as j,_ as H,n as N,f as U,aE as Y,O as J,I as W,dP as q,m as V,cF as Z,aA as Q,az as X}from"./index-BoIUJTA2.js";import{O as ee,E as oe}from"./index-BMeOzN3u.js";import{E as ne}from"./index-Cp4NEpJ7.js";import{c as te,d as re,E as le,a as ae,C as ie,b as se,e as de,f as ue,g as ce,F as pe,L as fe}from"./dropdown-Dk_wSiK6.js";import{c as ve}from"./castArray-nM8ho4U3.js";import{c as me}from"./refs-Cw5r5QN8.js";const ge=a({style:{type:i([String,Array,Object])},currentTabId:{type:i(String)},defaultCurrentTabId:String,loop:Boolean,dir:{type:String,values:["ltr","rtl"],default:"ltr"},orientation:{type:i(String)},onBlur:Function,onFocus:Function,onMousedown:Function}),{ElCollection:be,ElCollectionItem:we,COLLECTION_INJECTION_KEY:he,COLLECTION_ITEM_INJECTION_KEY:ye}=te("RovingFocusGroup"),Ie=Symbol("elRovingFocusGroup"),Ee=Symbol("elRovingFocusGroupItem"),Fe={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"},Ce=e=>{const{activeElement:o}=document;for(const n of e){if(n===o)return;if(n.focus(),o!==document.activeElement)return}},Re="currentTabIdChange",_e="rovingFocusGroup.entryFocus",Te={bubbles:!1,cancelable:!0},xe=u({name:"ElRovingFocusGroupImpl",inheritAttrs:!1,props:ge,emits:[Re,"entryFocus"],setup(e,{emit:o}){var n;const t=p(null!=(n=e.currentTabId||e.defaultCurrentTabId)?n:null),r=p(!1),l=p(!1),a=p(),{getItems:i}=f(he,void 0),s=v(()=>[{outline:"none"},e.style]),d=m(o=>{var n;null==(n=e.onMousedown)||n.call(e,o)},()=>{l.value=!0}),u=m(o=>{var n;null==(n=e.onFocus)||n.call(e,o)},e=>{const o=!g(l),{target:n,currentTarget:a}=e;if(n===a&&o&&!g(r)){const e=new Event(_e,Te);if(null==a||a.dispatchEvent(e),!e.defaultPrevented){const e=i().filter(e=>e.focusable),o=[e.find(e=>e.active),e.find(e=>e.id===g(t)),...e].filter(Boolean).map(e=>e.ref);Ce(o)}}l.value=!1}),c=m(o=>{var n;null==(n=e.onBlur)||n.call(e,o)},()=>{r.value=!1});b(Ie,{currentTabbedId:h(t),loop:w(e,"loop"),tabIndex:v(()=>g(r)?-1:0),rovingFocusGroupRef:a,rovingFocusGroupRootStyle:s,orientation:w(e,"orientation"),dir:w(e,"dir"),onItemFocus:e=>{o(Re,e)},onItemShiftTab:()=>{r.value=!0},onBlur:c,onFocus:u,onMousedown:d}),y(()=>e.currentTabId,e=>{t.value=null!=e?e:null}),I(a,_e,(...e)=>{o("entryFocus",...e)})}});var ke=d(u({name:"ElRovingFocusGroup",components:{ElFocusGroupCollection:be,ElRovingFocusGroupImpl:d(xe,[["render",function(e,o,n,t,r,l){return c(e.$slots,"default")}],["__file","roving-focus-group-impl.vue"]])}}),[["render",function(e,o,n,t,r,l){const a=E("el-roving-focus-group-impl"),i=E("el-focus-group-collection");return C(),F(i,null,{default:R(()=>[_(a,T(x(e.$attrs)),{default:R(()=>[c(e.$slots,"default")]),_:3},16)]),_:3})}],["__file","roving-focus-group.vue"]]);const Se=Symbol("elDropdown"),Be="elDropdown",{ButtonGroup:Pe}=M;var De=d(u({name:"ElDropdown",components:{ElButton:M,ElButtonGroup:Pe,ElScrollbar:ne,ElDropdownCollection:le,ElTooltip:oe,ElRovingFocusGroup:ke,ElOnlyChild:ee,ElIcon:K,ArrowDown:O},props:re,emits:["visible-change","click","command"],setup(e,{emit:o}){const n=j(),t=G("dropdown"),{t:r}=A(),l=p(),a=p(),i=p(),s=p(),d=p(null),u=p(null),c=p(!1),f=v(()=>({maxHeight:$(e.maxHeight)})),m=v(()=>[t.m(E.value)]),h=v(()=>ve(e.trigger)),y=L().value,I=v(()=>e.id||y);const E=z();b(Se,{contentRef:s,role:v(()=>e.role),triggerId:I,isUsingKeyboard:c,onItemEnter:function(){},onItemLeave:function(){const e=g(s);h.value.includes("hover")&&(null==e||e.focus({preventScroll:!0})),u.value=null}}),b(Be,{instance:n,dropdownSize:E,handleClick:function(){var e;null==(e=i.value)||e.onClose(void 0,0)},commandHandler:function(...e){o("command",...e)},trigger:w(e,"trigger"),hideOnClick:w(e,"hideOnClick")});return{t:r,ns:t,scrollbar:d,wrapStyle:f,dropdownTriggerKls:m,dropdownSize:E,triggerId:I,currentTabId:u,handleCurrentTabIdChange:function(e){u.value=e},handlerMainButtonClick:e=>{o("click",e)},handleEntryFocus:function(e){c.value||(e.preventDefault(),e.stopImmediatePropagation())},handleClose:function(){var e;null==(e=i.value)||e.onClose()},handleOpen:function(){var e;null==(e=i.value)||e.onOpen()},handleBeforeShowTooltip:function(){o("visible-change",!0)},handleShowTooltip:function(e){var o;"keydown"===(null==e?void 0:e.type)&&(null==(o=s.value)||o.focus())},handleBeforeHideTooltip:function(){o("visible-change",!1)},onFocusAfterTrapped:e=>{var o,n;e.preventDefault(),null==(n=null==(o=s.value)?void 0:o.focus)||n.call(o,{preventScroll:!0})},popperRef:i,contentRef:s,triggeringElementRef:l,referenceElementRef:a}}}),[["render",function(e,o,n,t,r,l){var a,i;const s=E("el-dropdown-collection"),d=E("el-roving-focus-group"),u=E("el-scrollbar"),p=E("el-only-child"),f=E("el-tooltip"),v=E("el-button"),m=E("arrow-down"),g=E("el-icon"),b=E("el-button-group");return C(),k("div",{class:D([e.ns.b(),e.ns.is("disabled",e.disabled)])},[_(f,{ref:"popperRef",role:e.role,effect:e.effect,"fallback-placements":["bottom","top"],"popper-options":e.popperOptions,"gpu-acceleration":!1,"manual-mode":!0,placement:e.placement,"popper-class":[e.ns.e("popper"),e.popperClass],"reference-element":null==(a=e.referenceElementRef)?void 0:a.$el,trigger:e.trigger,"trigger-keys":e.triggerKeys,"trigger-target-el":e.contentRef,"show-arrow":e.showArrow,"show-after":"hover"===e.trigger?e.showTimeout:0,"hide-after":"hover"===e.trigger?e.hideTimeout:0,"stop-popper-mouse-event":!1,"virtual-ref":null!=(i=e.virtualRef)?i:e.triggeringElementRef,"virtual-triggering":e.virtualTriggering||e.splitButton,disabled:e.disabled,transition:`${e.ns.namespace.value}-zoom-in-top`,teleported:e.teleported,pure:"","focus-on-target":"",persistent:e.persistent,onBeforeShow:e.handleBeforeShowTooltip,onShow:e.handleShowTooltip,onBeforeHide:e.handleBeforeHideTooltip},B({content:R(()=>[_(u,{ref:"scrollbar","wrap-style":e.wrapStyle,tag:"div","view-class":e.ns.e("list")},{default:R(()=>[_(d,{loop:e.loop,"current-tab-id":e.currentTabId,orientation:"horizontal",onCurrentTabIdChange:e.handleCurrentTabIdChange,onEntryFocus:e.handleEntryFocus},{default:R(()=>[_(s,null,{default:R(()=>[c(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:R(()=>[_(p,{id:e.triggerId,ref:"triggeringElementRef",role:"button",tabindex:e.tabindex},{default:R(()=>[c(e.$slots,"default")]),_:3},8,["id","tabindex"])])}]),1032,["role","effect","popper-options","placement","popper-class","reference-element","trigger","trigger-keys","trigger-target-el","show-arrow","show-after","hide-after","virtual-ref","virtual-triggering","disabled","transition","teleported","persistent","onBeforeShow","onShow","onBeforeHide"]),e.splitButton?(C(),F(b,{key:0},{default:R(()=>[_(v,P({ref:"referenceElementRef"},e.buttonProps,{size:e.dropdownSize,type:e.type,disabled:e.disabled,tabindex:e.tabindex,onClick:e.handlerMainButtonClick}),{default:R(()=>[c(e.$slots,"default")]),_:3},16,["size","type","disabled","tabindex","onClick"]),_(v,P({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:R(()=>[_(g,{class:D(e.ns.e("icon"))},{default:R(()=>[_(m)]),_:1},8,["class"])]),_:1},16,["id","size","type","class","disabled","tabindex","aria-label"])]),_:3})):S("v-if",!0)],2)}],["__file","dropdown.vue"]]);var Oe=d(u({components:{ElRovingFocusCollectionItem:we},props:{focusable:{type:Boolean,default:!0},active:Boolean},emits:["mousedown","focus","keydown"],setup(e,{emit:o}){const{currentTabbedId:n,loop:t,onItemFocus:r,onItemShiftTab:l}=f(Ie,void 0),{getItems:a}=f(he,void 0),i=L(),d=p(),u=m(e=>{o("mousedown",e)},o=>{e.focusable?r(g(i)):o.preventDefault()}),c=m(e=>{o("focus",e)},()=>{r(g(i))}),w=m(e=>{o("keydown",e)},e=>{const{shiftKey:o,target:n,currentTarget:r}=e;if(s(e)===H.tab&&o)return void l();if(n!==r)return;const i=(e=>{const o=s(e);return Fe[o]})(e);if(i){e.preventDefault();let o=a().filter(e=>e.focusable).map(e=>e.ref);switch(i){case"last":o.reverse();break;case"prev":case"next":{"prev"===i&&o.reverse();const e=o.indexOf(r);o=t.value?(u=e+1,(d=o).map((e,o)=>d[(o+u)%d.length])):o.slice(e+1);break}}N(()=>{Ce(o)})}var d,u}),h=v(()=>n.value===g(i));return b(Ee,{rovingFocusGroupItemRef:d,tabIndex:v(()=>g(h)?0:-1),handleMousedown:u,handleFocus:c,handleKeydown:w}),{id:i,handleKeydown:w,handleFocus:c,handleMousedown:u}}}),[["render",function(e,o,n,t,r,l){const a=E("el-roving-focus-collection-item");return C(),F(a,{id:e.id,focusable:e.focusable,active:e.active},{default:R(()=>[c(e.$slots,"default")]),_:3},8,["id","focusable","active"])}],["__file","roving-focus-item.vue"]]);const Ke=u({name:"DropdownItemImpl",components:{ElIcon:K},props:ae,emits:["pointermove","pointerleave","click","clickimpl"],setup(e,{emit:o}){const n=G("dropdown"),{role:t}=f(Se,void 0),{collectionItemRef:r}=f(se,void 0),{collectionItemRef:l}=f(ye,void 0),{rovingFocusGroupItemRef:a,tabIndex:i,handleFocus:d,handleKeydown:u,handleMousedown:c}=f(Ee,void 0),p=me(r,l,a),g=v(()=>"menu"===t.value?"menuitem":"navigation"===t.value?"link":"button"),b=m(e=>{const n=s(e);if([H.enter,H.numpadEnter,H.space].includes(n))return e.preventDefault(),e.stopImmediatePropagation(),o("clickimpl",e),!0},u);return{ns:n,itemRef:p,dataset:{[ie]:""},role:g,tabIndex:i,handleFocus:d,handleKeydown:b,handleMousedown:c}}});const Me=()=>{const e=f(Be,{}),o=v(()=>null==e?void 0:e.dropdownSize);return{elDropdown:e,_elDropdownSize:o}};var Ge=d(u({name:"ElDropdownItem",components:{ElDropdownCollectionItem:de,ElRovingFocusItem:Oe,ElDropdownItemImpl:d(Ke,[["render",function(e,o,n,t,r,a){const i=E("el-icon");return C(),k(W,null,[e.divided?(C(),k("li",{key:0,role:"separator",class:D(e.ns.bem("menu","item","divided"))},null,2)):S("v-if",!0),U("li",P({ref:e.itemRef},l(l({},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:J(e.handleKeydown,["self"]),onMousedown:e.handleMousedown,onPointermove:o=>e.$emit("pointermove",o),onPointerleave:o=>e.$emit("pointerleave",o)}),[e.icon?(C(),F(i,{key:0},{default:R(()=>[(C(),F(Y(e.icon)))]),_:1})):S("v-if",!0),c(e.$slots,"default")],16,["aria-disabled","tabindex","role","onClick","onFocus","onKeydown","onMousedown","onPointermove","onPointerleave"])],64)}],["__file","dropdown-item-impl.vue"]])},inheritAttrs:!1,props:ae,emits:["pointermove","pointerleave","click"],setup(e,{emit:o,attrs:n}){const{elDropdown:t}=Me(),r=j(),a=p(null),i=v(()=>{var e,o;return null!=(o=null==(e=g(a))?void 0:e.textContent)?o:""}),{onItemEnter:s,onItemLeave:d}=f(Se,void 0),u=m(e=>(o("pointermove",e),e.defaultPrevented),q(o=>{if(e.disabled)return void d(o);const n=o.currentTarget;n===document.activeElement||n.contains(document.activeElement)||(s(o),o.defaultPrevented||null==n||n.focus({preventScroll:!0}))})),c=m(e=>(o("pointerleave",e),e.defaultPrevented),q(d));return{handleClick:m(n=>{if(!e.disabled)return o("click",n),"keydown"!==n.type&&n.defaultPrevented},o=>{var n,l,a;e.disabled?o.stopImmediatePropagation():((null==(n=null==t?void 0:t.hideOnClick)?void 0:n.value)&&(null==(l=t.handleClick)||l.call(t)),null==(a=t.commandHandler)||a.call(t,e.command,r,o))}),handlePointerMove:u,handlePointerLeave:c,textContent:i,propsAndAttrs:v(()=>l(l({},e),n))}}}),[["render",function(e,o,n,t,r,l){var a;const i=E("el-dropdown-item-impl"),s=E("el-roving-focus-item"),d=E("el-dropdown-collection-item");return C(),F(d,{disabled:e.disabled,"text-value":null!=(a=e.textValue)?a:e.textContent},{default:R(()=>[_(s,{focusable:!e.disabled},{default:R(()=>[_(i,P(e.propsAndAttrs,{onPointerleave:e.handlePointerLeave,onPointermove:e.handlePointerMove,onClickimpl:e.handleClick}),{default:R(()=>[c(e.$slots,"default")]),_:3},16,["onPointerleave","onPointermove","onClickimpl"])]),_:3},8,["focusable"])]),_:3},8,["disabled","text-value"])}],["__file","dropdown-item.vue"]]);var Ae=d(u({name:"ElDropdownMenu",props:ue,setup(e){const o=G("dropdown"),{_elDropdownSize:n}=Me(),t=n.value,{focusTrapRef:r,onKeydown:l}=f(Z,void 0),{contentRef:a,role:i,triggerId:d}=f(Se,void 0),{collectionRef:u,getItems:c}=f(ce,void 0),{rovingFocusGroupRef:p,rovingFocusGroupRootStyle:b,tabIndex:w,onBlur:h,onFocus:y,onMousedown:I}=f(Ie,void 0),{collectionRef:E}=f(he,void 0),F=v(()=>[o.b("menu"),o.bm("menu",null==t?void 0:t.value)]),C=me(a,u,r,p,E),R=m(o=>{var n;null==(n=e.onKeydown)||n.call(e,o)},e=>{const{currentTarget:o,target:n}=e,t=s(e);if(o.contains(n),H.tab===t&&e.stopImmediatePropagation(),e.preventDefault(),n!==g(a)||!pe.includes(t))return;const r=c().filter(e=>!e.disabled).map(e=>e.ref);fe.includes(t)&&r.reverse(),Ce(r)});return{size:t,rovingFocusGroupRootStyle:b,tabIndex:w,dropdownKls:F,role:i,triggerId:d,dropdownListWrapperRef:C,handleKeydown:e=>{R(e),l(e)},onBlur:h,onFocus:y,onMousedown:I}}}),[["render",function(e,o,n,t,r,l){return C(),k("ul",{ref:e.dropdownListWrapperRef,class:D(e.dropdownKls),style:V(e.rovingFocusGroupRootStyle),tabindex:-1,role:e.role,"aria-labelledby":e.triggerId,onBlur:e.onBlur,onFocus:e.onFocus,onKeydown:J(e.handleKeydown,["self"]),onMousedown:J(e.onMousedown,["self"])},[c(e.$slots,"default")],46,["role","aria-labelledby","onBlur","onFocus","onKeydown","onMousedown"])}],["__file","dropdown-menu.vue"]]);const $e=X(De,{DropdownItem:Ge,DropdownMenu:Ae}),ze=Q(Ge),Le=Q(Ae);export{Le as E,ze as a,$e as b};
|