import{b3 as e,cU as a,O as t,W as l,X as s,Y as o,d as n,aO as r,a7 as i,bs as u,a4 as d,r as c,R as v,ay as b,a$ as p,o as f,c as m,n as h,a as y,aE as g,a6 as $,cV as C,cW as x,a5 as P,K as w,c9 as T,e as k,aa as B,bh as N,a9 as R,bb as S,aH as E,a3 as A,A as F,cj as K,Z as L,aL as _,a1 as j,a0 as V,be as O,cX as W,s as X,cY as Y,G as q,ad as z,j as H,ae as M,af as G}from"./index-vMt5tOuI.js";import{c as I}from"./useInput-CPyPMgc8.js";const U=(l,s)=>{const o={},n=e([]);return{children:n,addChild:e=>{o[e.uid]=e,n.value=((e,l,s)=>a(e.subTree).filter((e=>{var a;return t(e)&&(null==(a=e.type)?void 0:a.name)===l&&!!e.component})).map((e=>e.component.uid)).map((e=>s[e])).filter((e=>!!e)))(l,s,o)},removeChild:e=>{delete o[e],n.value=n.value.filter((a=>a.uid!==e))}}},Z=Symbol("tabsRootContextKey"),D=l({tabs:{type:s(Array),default:()=>o([])}}),J="ElTabBar",Q=n({name:J});var ee=$(n({...Q,props:D,setup(e,{expose:a}){const t=e,l=r(),s=i(Z);s||u(J,"");const o=d("tabs"),n=c(),$=c(),C=()=>$.value=(()=>{let e=0,a=0;const o=["top","bottom"].includes(s.props.tabPosition)?"width":"height",n="width"===o?"x":"y",r="x"===n?"left":"top";return t.tabs.every((s=>{var n,i;const u=null==(i=null==(n=l.parent)?void 0:n.refs)?void 0:i[`tab-${s.uid}`];if(!u)return!1;if(!s.active)return!0;e=u[`offset${I(r)}`],a=u[`client${I(o)}`];const d=window.getComputedStyle(u);return"width"===o&&(t.tabs.length>1&&(a-=Number.parseFloat(d.paddingLeft)+Number.parseFloat(d.paddingRight)),e+=Number.parseFloat(d.paddingLeft)),!1})),{[o]:`${a}px`,transform:`translate${I(n)}(${e}px)`}})();return v((()=>t.tabs),(async()=>{await b(),C()}),{immediate:!0}),p(n,(()=>C())),a({ref:n,update:C}),(e,a)=>(f(),m("div",{ref_key:"barRef",ref:n,class:h([y(o).e("active-bar"),y(o).is(y(s).props.tabPosition)]),style:g($.value)},null,6))}}),[["__file","tab-bar.vue"]]);const ae=l({panes:{type:s(Array),default:()=>o([])},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean}),te="ElTabNav",le=n({name:te,props:ae,emits:{tabClick:(e,a,t)=>t instanceof Event,tabRemove:(e,a)=>a instanceof Event},setup(e,{expose:a,emit:t}){const l=r(),s=i(Z);s||u(te,"");const o=d("tabs"),n=C(),f=x(),m=c(),h=c(),y=c(),g=c(),$=c(!1),A=c(0),F=c(!1),K=c(!0),L=P((()=>["top","bottom"].includes(s.props.tabPosition)?"width":"height")),_=P((()=>({transform:`translate${"width"===L.value?"X":"Y"}(-${A.value}px)`}))),j=()=>{if(!m.value)return;const e=m.value[`offset${I(L.value)}`],a=A.value;if(!a)return;const t=a>e?a-e:0;A.value=t},V=()=>{if(!m.value||!h.value)return;const e=h.value[`offset${I(L.value)}`],a=m.value[`offset${I(L.value)}`],t=A.value;if(e-t<=a)return;const l=e-t>2*a?t+a:e-a;A.value=l},O=async()=>{const e=h.value;if(!($.value&&y.value&&m.value&&e))return;await b();const a=y.value.querySelector(".is-active");if(!a)return;const t=m.value,l=["top","bottom"].includes(s.props.tabPosition),o=a.getBoundingClientRect(),n=t.getBoundingClientRect(),r=l?e.offsetWidth-n.width:e.offsetHeight-n.height,i=A.value;let u=i;l?(o.leftn.right&&(u=i+o.right-n.right)):(o.topn.bottom&&(u=i+(o.bottom-n.bottom))),u=Math.max(u,0),A.value=Math.min(u,r)},W=()=>{var a;if(!h.value||!m.value)return;e.stretch&&(null==(a=g.value)||a.update());const t=h.value[`offset${I(L.value)}`],l=m.value[`offset${I(L.value)}`],s=A.value;l0&&(A.value=0))},X=e=>{const a=e.code,{up:t,down:l,left:s,right:o}=E;if(![t,l,s,o].includes(a))return;const n=Array.from(e.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),r=n.indexOf(e.target);let i;i=a===s||a===t?0===r?n.length-1:r-1:r{K.value&&(F.value=!0)},q=()=>F.value=!1;return v(n,(e=>{"hidden"===e?K.value=!1:"visible"===e&&setTimeout((()=>K.value=!0),50)})),v(f,(e=>{e?setTimeout((()=>K.value=!0),50):K.value=!1})),p(y,W),w((()=>setTimeout((()=>O()),0))),T((()=>W())),a({scrollToActiveTab:O,removeFocus:q}),v((()=>e.panes),(()=>l.update()),{flush:"post",deep:!0}),()=>{const a=$.value?[k("span",{class:[o.e("nav-prev"),o.is("disabled",!$.value.prev)],onClick:j},[k(B,null,{default:()=>[k(N,null,null)]})]),k("span",{class:[o.e("nav-next"),o.is("disabled",!$.value.next)],onClick:V},[k(B,null,{default:()=>[k(R,null,null)]})])]:null,l=e.panes.map(((a,l)=>{var n,r,i,u;const d=a.uid,c=a.props.disabled,v=null!=(r=null!=(n=a.props.name)?n:a.index)?r:`${l}`,b=!c&&(a.isClosable||e.editable);a.index=`${l}`;const p=b?k(B,{class:"is-icon-close",onClick:e=>t("tabRemove",a,e)},{default:()=>[k(S,null,null)]}):null,f=(null==(u=(i=a.slots).label)?void 0:u.call(i))||a.props.label,m=!c&&a.active?0:-1;return k("div",{ref:`tab-${d}`,class:[o.e("item"),o.is(s.props.tabPosition),o.is("active",a.active),o.is("disabled",c),o.is("closable",b),o.is("focus",F.value)],id:`tab-${v}`,key:`tab-${d}`,"aria-controls":`pane-${v}`,role:"tab","aria-selected":a.active,tabindex:m,onFocus:()=>Y(),onBlur:()=>q(),onClick:e=>{q(),t("tabClick",a,v,e)},onKeydown:e=>{!b||e.code!==E.delete&&e.code!==E.backspace||t("tabRemove",a,e)}},[f,p])}));return k("div",{ref:y,class:[o.e("nav-wrap"),o.is("scrollable",!!$.value),o.is(s.props.tabPosition)]},[a,k("div",{class:o.e("nav-scroll"),ref:m},[k("div",{class:[o.e("nav"),o.is(s.props.tabPosition),o.is("stretch",e.stretch&&["top","bottom"].includes(s.props.tabPosition))],ref:h,style:_.value,role:"tablist",onKeydown:X},[e.type?null:k(ee,{ref:g,tabs:[...e.panes]},null),l])])])}}}),se=l({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:s(Function),default:()=>!0},stretch:Boolean}),oe=e=>j(e)||V(e),ne=n({name:"ElTabs",props:se,emits:{[L]:e=>oe(e),tabClick:(e,a)=>a instanceof Event,tabChange:e=>oe(e),edit:(e,a)=>["remove","add"].includes(a),tabRemove:e=>oe(e),tabAdd:()=>!0},setup(e,{emit:a,slots:t,expose:l}){var s;const o=d("tabs"),{children:n,addChild:i,removeChild:u}=U(r(),"ElTabPane"),p=c(),f=c(null!=(s=e.modelValue)?s:"0"),m=async(t,l=!1)=>{var s,o,n;if(f.value!==t&&!_(t))try{!1!==await(null==(s=e.beforeLeave)?void 0:s.call(e,t,f.value))&&(f.value=t,l&&(a(L,t),a("tabChange",t)),null==(n=null==(o=p.value)?void 0:o.removeFocus)||n.call(o))}catch(r){}},h=(e,t,l)=>{e.props.disabled||(m(t,!0),a("tabClick",e,l))},y=(e,t)=>{e.props.disabled||_(e.props.name)||(t.stopPropagation(),a("edit",e.props.name,"remove"),a("tabRemove",e.props.name))},g=()=>{a("edit",void 0,"add"),a("tabAdd")};return v((()=>e.modelValue),(e=>m(e))),v(f,(async()=>{var e;await b(),null==(e=p.value)||e.scrollToActiveTab()})),A(Z,{props:e,currentName:f,registerPane:i,unregisterPane:u}),l({currentName:f}),()=>{const a=t["add-icon"],l=e.editable||e.addable?k("span",{class:o.e("new-tab"),tabindex:"0",onClick:g,onKeydown:e=>{e.code===E.enter&&g()}},[a?F(t,"add-icon"):k(B,{class:o.is("icon-plus")},{default:()=>[k(K,null,null)]})]):null,s=k("div",{class:[o.e("header"),o.is(e.tabPosition)]},[l,k(le,{ref:p,currentName:f.value,editable:e.editable,type:e.type,panes:n.value,stretch:e.stretch,onTabClick:h,onTabRemove:y},null)]),r=k("div",{class:o.e("content")},[F(t,"default")]);return k("div",{class:[o.b(),o.m(e.tabPosition),{[o.m("card")]:"card"===e.type,[o.m("border-card")]:"border-card"===e.type}]},[..."bottom"!==e.tabPosition?[s,r]:[r,s]])}}}),re=l({label:{type:String,default:""},name:{type:[String,Number]},closable:Boolean,disabled:Boolean,lazy:Boolean}),ie=["id","aria-hidden","aria-labelledby"],ue="ElTabPane",de=n({name:ue});var ce=$(n({...de,props:re,setup(e){const a=e,t=r(),l=O(),s=i(Z);s||u(ue,"usage: ");const o=d("tab-pane"),n=c(),b=P((()=>a.closable||s.props.closable)),p=W((()=>{var e;return s.currentName.value===(null!=(e=a.name)?e:n.value)})),g=c(p.value),$=P((()=>{var e;return null!=(e=a.name)?e:n.value})),C=W((()=>!a.lazy||g.value||p.value));v(p,(e=>{e&&(g.value=!0)}));const x=X({uid:t.uid,slots:l,props:a,paneName:$,active:p,index:n,isClosable:b});return w((()=>{s.registerPane(x)})),Y((()=>{s.unregisterPane(x.uid)})),(e,a)=>y(C)?q((f(),m("div",{key:0,id:`pane-${y($)}`,class:h(y(o).b()),role:"tabpanel","aria-hidden":!y(p),"aria-labelledby":`tab-${y($)}`},[F(e.$slots,"default")],10,ie)),[[z,y(p)]]):H("v-if",!0)}}),[["__file","tab-pane.vue"]]);const ve=M(ne,{TabPane:ce}),be=G(ce);export{be as E,ve as a};