import{b as K,h as G,u as U,_ as oe,E as I,n as _e,f as ge,y as Ne,an as Te,o as ae,i as Pe,ao as se,w as Ce,p as we}from"./BPRC2v3K.js";import{m as le,c as re,d as Ee,e as Se}from"./CeUmO8rY.js";import{t as J}from"./Cq9Fpw4b.js";import{c as R}from"./NMlAHODm.js";import{f as M,P as Z,k as N,l as F,aj as ee,o as ie,c as ce,n as ue,u as B,i as $e,N as te,h as V,E as de,aC as xe,b as c,K as Be,r as Y,L as Oe,I as ke,m as Re,Q as ze,x as Ae,O as Le,g as Fe}from"./Ca9y1zsW.js";import{E as D}from"./BUADUvnR.js";import{U as be}from"./BB_Ol6Sd.js";import{u as Me}from"./BWx9aQRD.js";const j=Symbol("tabsRootContextKey"),Ve=K({tabs:{type:G(Array),default:()=>le([])}}),ve="ElTabBar",Ie=M({name:ve}),De=M({...Ie,props:Ve,setup(e,{expose:l}){const h=e,T=te(),t=Z(j);t||J(ve,"");const u=U("tabs"),E=N(),d=N(),v=()=>{let m=0,n=0;const r=["top","bottom"].includes(t.props.tabPosition)?"width":"height",b=r==="width"?"x":"y",$=b==="x"?"left":"top";return h.tabs.every(S=>{var A,a;const y=(a=(A=T.parent)==null?void 0:A.refs)==null?void 0:a[`tab-${S.uid}`];if(!y)return!1;if(!S.active)return!0;m=y[`offset${R($)}`],n=y[`client${R(r)}`];const C=window.getComputedStyle(y);return r==="width"&&(n-=Number.parseFloat(C.paddingLeft)+Number.parseFloat(C.paddingRight),m+=Number.parseFloat(C.paddingLeft)),!1}),{[r]:`${n}px`,transform:`translate${R(b)}(${m}px)`}},P=()=>d.value=v();return F(()=>h.tabs,async()=>{await ee(),P()},{immediate:!0}),re(E,()=>P()),l({ref:E,update:P}),(m,n)=>(ie(),ce("div",{ref_key:"barRef",ref:E,class:ue([B(u).e("active-bar"),B(u).is(B(t).props.tabPosition)]),style:$e(d.value)},null,6))}});var Ke=oe(De,[["__file","tab-bar.vue"]]);const Ue=K({panes:{type:G(Array),default:()=>le([])},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean}),je={tabClick:(e,l,h)=>h instanceof Event,tabRemove:(e,l)=>l instanceof Event},ne="ElTabNav",qe=M({name:ne,props:Ue,emits:je,setup(e,{expose:l,emit:h}){const T=Z(j);T||J(ne,"");const t=U("tabs"),u=Ee(),E=Se(),d=N(),v=N(),P=N(),m=N(),n=N(!1),r=N(0),b=N(!1),$=N(!0),S=V(()=>["top","bottom"].includes(T.props.tabPosition)?"width":"height"),A=V(()=>({transform:`translate${S.value==="width"?"X":"Y"}(-${r.value}px)`})),a=()=>{if(!d.value)return;const o=d.value[`offset${R(S.value)}`],i=r.value;if(!i)return;const s=i>o?i-o:0;r.value=s},y=()=>{if(!d.value||!v.value)return;const o=v.value[`offset${R(S.value)}`],i=d.value[`offset${R(S.value)}`],s=r.value;if(o-s<=i)return;const _=o-s>i*2?s+i:o-i;r.value=_},C=async()=>{const o=v.value;if(!n.value||!P.value||!d.value||!o)return;await ee();const i=P.value.querySelector(".is-active");if(!i)return;const s=d.value,_=["top","bottom"].includes(T.props.tabPosition),g=i.getBoundingClientRect(),p=s.getBoundingClientRect(),x=_?o.offsetWidth-p.width:o.offsetHeight-p.height,w=r.value;let f=w;_?(g.left
p.right&&(f=w+g.right-p.right)):(g.topp.bottom&&(f=w+(g.bottom-p.bottom))),f=Math.max(f,0),r.value=Math.min(f,x)},O=()=>{var o;if(!v.value||!d.value)return;e.stretch&&((o=m.value)==null||o.update());const i=v.value[`offset${R(S.value)}`],s=d.value[`offset${R(S.value)}`],_=r.value;s0&&(r.value=0))},k=o=>{const i=o.code,{up:s,down:_,left:g,right:p}=D;if(![s,_,g,p].includes(i))return;const x=Array.from(o.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),w=x.indexOf(o.target);let f;i===g||i===s?w===0?f=x.length-1:f=w-1:w{$.value&&(b.value=!0)},q=()=>b.value=!1;return F(u,o=>{o==="hidden"?$.value=!1:o==="visible"&&setTimeout(()=>$.value=!0,50)}),F(E,o=>{o?setTimeout(()=>$.value=!0,50):$.value=!1}),re(P,O),de(()=>setTimeout(()=>C(),0)),xe(()=>O()),l({scrollToActiveTab:C,removeFocus:q}),()=>{const o=n.value?[c("span",{class:[t.e("nav-prev"),t.is("disabled",!n.value.prev)],onClick:a},[c(I,null,{default:()=>[c(_e,null,null)]})]),c("span",{class:[t.e("nav-next"),t.is("disabled",!n.value.next)],onClick:y},[c(I,null,{default:()=>[c(ge,null,null)]})])]:null,i=e.panes.map((s,_)=>{var g,p,x,w;const f=s.uid,H=s.props.disabled,W=(p=(g=s.props.name)!=null?g:s.index)!=null?p:`${_}`,Q=!H&&(s.isClosable||e.editable);s.index=`${_}`;const pe=Q?c(I,{class:"is-icon-close",onClick:z=>h("tabRemove",s,z)},{default:()=>[c(Ne,null,null)]}):null,he=((w=(x=s.slots).label)==null?void 0:w.call(x))||s.props.label,ye=!H&&s.active?0:-1;return c("div",{ref:`tab-${f}`,class:[t.e("item"),t.is(T.props.tabPosition),t.is("active",s.active),t.is("disabled",H),t.is("closable",Q),t.is("focus",b.value)],id:`tab-${W}`,key:`tab-${f}`,"aria-controls":`pane-${W}`,role:"tab","aria-selected":s.active,tabindex:ye,onFocus:()=>L(),onBlur:()=>q(),onClick:z=>{q(),h("tabClick",s,W,z)},onKeydown:z=>{Q&&(z.code===D.delete||z.code===D.backspace)&&h("tabRemove",s,z)}},[he,pe])});return c("div",{ref:P,class:[t.e("nav-wrap"),t.is("scrollable",!!n.value),t.is(T.props.tabPosition)]},[o,c("div",{class:t.e("nav-scroll"),ref:d},[c("div",{class:[t.e("nav"),t.is(T.props.tabPosition),t.is("stretch",e.stretch&&["top","bottom"].includes(T.props.tabPosition))],ref:v,style:A.value,role:"tablist",onKeydown:k},[e.type?null:c(Ke,{ref:m,tabs:[...e.panes]},null),i])])])}}}),He=K({type:{type:String,values:["card","border-card",""],default:""},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:G(Function),default:()=>!0},stretch:Boolean}),X=e=>Oe(e)||Pe(e),We={[be]:e=>X(e),tabClick:(e,l)=>l instanceof Event,tabChange:e=>X(e),edit:(e,l)=>["remove","add"].includes(l),tabRemove:e=>X(e),tabAdd:()=>!0},Qe=M({name:"ElTabs",props:He,emits:We,setup(e,{emit:l,slots:h,expose:T}){var t;const u=U("tabs"),E=V(()=>["left","right"].includes(e.tabPosition)),{children:d,addChild:v,removeChild:P}=Me(te(),"ElTabPane"),m=N(),n=N((t=e.modelValue)!=null?t:"0"),r=async(a,y=!1)=>{var C,O,k;if(!(n.value===a||ae(a)))try{await((C=e.beforeLeave)==null?void 0:C.call(e,a,n.value))!==!1&&(n.value=a,y&&(l(be,a),l("tabChange",a)),(k=(O=m.value)==null?void 0:O.removeFocus)==null||k.call(O))}catch{}},b=(a,y,C)=>{a.props.disabled||(r(y,!0),l("tabClick",a,C))},$=(a,y)=>{a.props.disabled||ae(a.props.name)||(y.stopPropagation(),l("edit",a.props.name,"remove"),l("tabRemove",a.props.name))},S=()=>{l("edit",void 0,"add"),l("tabAdd")};F(()=>e.modelValue,a=>r(a)),F(n,async()=>{var a;await ee(),(a=m.value)==null||a.scrollToActiveTab()}),Be(j,{props:e,currentName:n,registerPane:a=>{d.value.push(a)},sortPane:v,unregisterPane:P}),T({currentName:n});const A=({render:a})=>a();return()=>{const a=h["add-icon"],y=e.editable||e.addable?c("div",{class:[u.e("new-tab"),E.value&&u.e("new-tab-vertical")],tabindex:"0",onClick:S,onKeydown:k=>{k.code===D.enter&&S()}},[a?Y(h,"add-icon"):c(I,{class:u.is("icon-plus")},{default:()=>[c(Te,null,null)]})]):null,C=c("div",{class:[u.e("header"),E.value&&u.e("header-vertical"),u.is(e.tabPosition)]},[c(A,{render:()=>{const k=d.value.some(L=>L.slots.label);return c(qe,{ref:m,currentName:n.value,editable:e.editable,type:e.type,panes:d.value,stretch:e.stretch,onTabClick:b,onTabRemove:$},{$stable:!k})}},null),y]),O=c("div",{class:u.e("content")},[Y(h,"default")]);return c("div",{class:[u.b(),u.m(e.tabPosition),{[u.m("card")]:e.type==="card",[u.m("border-card")]:e.type==="border-card"}]},[O,C])}}}),Xe=K({label:{type:String,default:""},name:{type:[String,Number]},closable:Boolean,disabled:Boolean,lazy:Boolean}),fe="ElTabPane",Ye=M({name:fe}),Ge=M({...Ye,props:Xe,setup(e){const l=e,h=te(),T=ke(),t=Z(j);t||J(fe,"usage: ");const u=U("tab-pane"),E=N(),d=V(()=>l.closable||t.props.closable),v=se(()=>{var b;return t.currentName.value===((b=l.name)!=null?b:E.value)}),P=N(v.value),m=V(()=>{var b;return(b=l.name)!=null?b:E.value}),n=se(()=>!l.lazy||P.value||v.value);F(v,b=>{b&&(P.value=!0)});const r=Re({uid:h.uid,slots:T,props:l,paneName:m,active:v,index:E,isClosable:d});return t.registerPane(r),de(()=>{t.sortPane(r)}),ze(()=>{t.unregisterPane(r.uid)}),(b,$)=>B(n)?Ae((ie(),ce("div",{key:0,id:`pane-${B(m)}`,class:ue(B(u).b()),role:"tabpanel","aria-hidden":!B(v),"aria-labelledby":`tab-${B(m)}`},[Y(b.$slots,"default")],10,["id","aria-hidden","aria-labelledby"])),[[Le,B(v)]]):Fe("v-if",!0)}});var me=oe(Ge,[["__file","tab-pane.vue"]]);const lt=Ce(Qe,{TabPane:me}),rt=we(me);export{lt as E,rt as a};