import{cL as e,cM as a,cN as t,cO as l,cP as s,cQ as n,cR as o,cS as r,cT as i,X as u,d as c,ax as d,cU as v,o as b,aB as p,bF as f,b as m,A as h,h as g,_ as y,j as C,I as P,a as x,r as w,D as R,aj as $,aA as N,aw as k,c as T,e as B,a0 as S,n as E,g as A,av as F,cV as V,cW as _,cX as L,F as M,cI as O,O as j,E as I,cC as K,M as U,al as W,Z as X,y as z,x as Y,p as Z,f as q,cY as D,U as H,k as Q,ch as G,cZ as J,ah as ee,c_ as ae,S as te,am as le,V as se,v as ne,s as oe}from"./index.BkxFN99-.js";function re(a,t){return t.length<2?a:e(a,function(e,a,t){var l=-1,s=e.length;a<0&&(a=-a>s?0:s+a),(t=t>s?s:t)<0&&(t+=s),s=a>t?0:t-a>>>0,a>>>=0;for(var n=Array(s);++l1),t}),o(e,r(e),l),s&&(l=i(l,7,ue));for(var u=t.length;u--;)ie(l,t[u]);return l});const de=(e,a)=>{const t=u({}),l=u([]),s=new WeakMap,n=()=>{l.value=((e,a,t)=>p(e.subTree).filter(e=>{var t;return f(e)&&(null==(t=e.type)?void 0:t.name)===a&&!!e.component}).map(e=>e.component.uid).map(e=>t[e]).filter(e=>!!e))(e,a,t.value)},o=e=>e.render(),r=c({setup:(e,{slots:a})=>()=>(n(),a.default?d(o,{render:a.default}):null)});return{children:l,addChild:e=>{t.value[e.uid]=e,v(t),b(()=>{const a=e.getVnode().el,l=a.parentNode;if(!s.has(l)){s.set(l,[]);const e=l.insertBefore.bind(l);l.insertBefore=(a,n)=>(s.get(l).some(e=>a===e||n===e)&&v(t),e(a,n))}s.get(l).push(a)})},removeChild:e=>{delete t.value[e.uid],v(t);const a=e.getVnode().el,l=a.parentNode,n=s.get(l),o=n.indexOf(a);n.splice(o,1)},ChildrenSorter:r}},ve=Symbol("tabsRootContextKey"),be=m({tabs:{type:g(Array),default:()=>h([])},tabRefs:{type:g(Object),default:()=>h({})}}),pe="ElTabBar",fe=c({name:pe});var me=y(c({...fe,props:be,setup(e,{expose:a}){const t=e,l=C(ve);l||P(pe,"");const s=x("tabs"),n=w(),o=w(),r=()=>o.value=(()=>{let e=0,a=0;const s=["top","bottom"].includes(l.props.tabPosition)?"width":"height",n="width"===s?"x":"y",o="x"===n?"left":"top";return t.tabs.every(l=>{if(F(l.paneName))return!1;const n=t.tabRefs[l.paneName];if(!n)return!1;if(!l.active)return!0;e=n[`offset${V(o)}`],a=n[`client${V(s)}`];const r=window.getComputedStyle(n);return"width"===s&&(a-=Number.parseFloat(r.paddingLeft)+Number.parseFloat(r.paddingRight),e+=Number.parseFloat(r.paddingLeft)),!1}),{[s]:`${a}px`,transform:`translate${V(n)}(${e}px)`}})(),i=[];R(()=>t.tabs,async()=>{await $(),r(),i.forEach(e=>e.stop()),i.length=0,Object.values(t.tabRefs).forEach(e=>{i.push(N(e,r))})},{immediate:!0});const u=N(n,()=>r());return k(()=>{i.forEach(e=>e.stop()),i.length=0,u.stop()}),a({ref:n,update:r}),(e,a)=>(B(),T("div",{ref_key:"barRef",ref:n,class:E([A(s).e("active-bar"),A(s).is(A(l).props.tabPosition)]),style:S(o.value)},null,6))}}),[["__file","tab-bar.vue"]]);const he=m({panes:{type:g(Array),default:()=>h([])},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean}),ge="ElTabNav",ye=c({name:ge,props:he,emits:{tabClick:(e,a,t)=>t instanceof Event,tabRemove:(e,a)=>a instanceof Event},setup(e,{expose:a,emit:t}){const l=C(ve);l||P(ge,"");const s=x("tabs"),n=_(),o=L(),r=w(),i=w(),c=w(),d=w({}),p=w(),f=w(!1),m=w(0),h=w(!1),g=w(!0),y=u(),k=M(()=>["top","bottom"].includes(l.props.tabPosition)?"width":"height"),T=M(()=>({transform:`translate${"width"===k.value?"X":"Y"}(-${m.value}px)`})),B=()=>{if(!r.value)return;const e=r.value[`offset${V(k.value)}`],a=m.value;if(!a)return;const t=a>e?a-e:0;m.value=t},S=()=>{if(!r.value||!i.value)return;const e=i.value[`offset${V(k.value)}`],a=r.value[`offset${V(k.value)}`],t=m.value;if(e-t<=a)return;const l=e-t>2*a?t+a:e-a;m.value=l},E=async()=>{const a=i.value;if(!(f.value&&c.value&&r.value&&a))return;await $();const t=d.value[e.currentName];if(!t)return;const s=r.value,n=["top","bottom"].includes(l.props.tabPosition),o=t.getBoundingClientRect(),u=s.getBoundingClientRect(),v=n?a.offsetWidth-u.width:a.offsetHeight-u.height,b=m.value;let p=b;n?(o.leftu.right&&(p=b+o.right-u.right)):(o.topu.bottom&&(p=b+(o.bottom-u.bottom))),p=Math.max(p,0),m.value=Math.min(p,v)},A=()=>{var a;if(!i.value||!r.value)return;e.stretch&&(null==(a=p.value)||a.update());const t=i.value[`offset${V(k.value)}`],l=r.value[`offset${V(k.value)}`],s=m.value;l0&&(m.value=0))},F=e=>{let a=0;switch(e.code){case X.left:case X.up:a=-1;break;case X.right:case X.down:a=1;break;default:return}const t=Array.from(e.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)"));let l=t.indexOf(e.target)+a;l<0?l=t.length-1:l>=t.length&&(l=0),t[l].focus({preventScroll:!0}),t[l].click(),z()},z=()=>{g.value&&(h.value=!0)},Y=()=>h.value=!1;return R(n,e=>{"hidden"===e?g.value=!1:"visible"===e&&setTimeout(()=>g.value=!0,50)}),R(o,e=>{e?setTimeout(()=>g.value=!0,50):g.value=!1}),N(c,A),b(()=>setTimeout(()=>E(),0)),O(()=>A()),a({scrollToActiveTab:E,removeFocus:Y,focusActiveTab:async()=>{await $();const a=d.value[e.currentName];null==a||a.focus({preventScroll:!0})},tabListRef:i,tabBarRef:p,scheduleRender:()=>v(y)}),()=>{const a=f.value?[j("span",{class:[s.e("nav-prev"),s.is("disabled",!f.value.prev)],onClick:B},[j(I,null,{default:()=>[j(K,null,null)]})]),j("span",{class:[s.e("nav-next"),s.is("disabled",!f.value.next)],onClick:S},[j(I,null,{default:()=>[j(U,null,null)]})])]:null,n=e.panes.map((a,n)=>{var o,r,i,u;const c=a.uid,v=a.props.disabled,b=null!=(r=null!=(o=a.props.name)?o:a.index)?r:`${n}`,p=!v&&(a.isClosable||e.editable);a.index=`${n}`;const f=p?j(I,{class:"is-icon-close",onClick:e=>t("tabRemove",a,e)},{default:()=>[j(W,null,null)]}):null,m=(null==(u=(i=a.slots).label)?void 0:u.call(i))||a.props.label,g=!v&&a.active?0:-1;return j("div",{ref:e=>((e,a)=>{d.value[a]=e})(e,b),class:[s.e("item"),s.is(l.props.tabPosition),s.is("active",a.active),s.is("disabled",v),s.is("closable",p),s.is("focus",h.value)],id:`tab-${b}`,key:`tab-${c}`,"aria-controls":`pane-${b}`,role:"tab","aria-selected":a.active,tabindex:g,onFocus:()=>z(),onBlur:()=>Y(),onClick:e=>{Y(),t("tabClick",a,b,e)},onKeydown:e=>{!p||e.code!==X.delete&&e.code!==X.backspace||t("tabRemove",a,e)}},[m,f])});return y.value,j("div",{ref:c,class:[s.e("nav-wrap"),s.is("scrollable",!!f.value),s.is(l.props.tabPosition)]},[a,j("div",{class:s.e("nav-scroll"),ref:r},[e.panes.length>0?j("div",{class:[s.e("nav"),s.is(l.props.tabPosition),s.is("stretch",e.stretch&&["top","bottom"].includes(l.props.tabPosition))],ref:i,style:T.value,role:"tablist",onKeydown:F},[e.type?null:j(me,{ref:p,tabs:[...e.panes],tabRefs:d.value},null),n]):null])])}}}),Ce=m({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}),Pe=e=>z(e)||Y(e);var xe=c({name:"ElTabs",props:Ce,emits:{[H]:e=>Pe(e),tabClick:(e,a)=>a instanceof Event,tabChange:e=>Pe(e),edit:(e,a)=>["remove","add"].includes(a),tabRemove:e=>Pe(e),tabAdd:()=>!0},setup(e,{emit:a,slots:t,expose:l}){var s;const n=x("tabs"),o=M(()=>["left","right"].includes(e.tabPosition)),{children:r,addChild:i,removeChild:u,ChildrenSorter:c}=de(Q(),"ElTabPane"),d=w(),v=w(null!=(s=e.modelValue)?s:"0"),b=async(t,l=!1)=>{var s,n,o,i;if(v.value!==t&&!F(t))try{let u;if(e.beforeLeave){const a=e.beforeLeave(t,v.value);u=a instanceof Promise?await a:a}else u=!0;if(!1!==u){const e=null==(s=r.value.find(e=>e.paneName===v.value))?void 0:s.isFocusInsidePane();v.value=t,l&&(a(H,t),a("tabChange",t)),null==(o=null==(n=d.value)?void 0:n.removeFocus)||o.call(n),e&&(null==(i=d.value)||i.focusActiveTab())}}catch(u){}},p=(e,t,l)=>{e.props.disabled||(a("tabClick",e,l),b(t,!0))},f=(e,t)=>{e.props.disabled||F(e.props.name)||(t.stopPropagation(),a("edit",e.props.name,"remove"),a("tabRemove",e.props.name))},m=()=>{a("edit",void 0,"add"),a("tabAdd")},h=a=>{const t=a.el.firstChild,l=["bottom","right"].includes(e.tabPosition)?a.children[0].el:a.children[1].el;t!==l&&t.before(l)};return R(()=>e.modelValue,e=>b(e)),R(v,async()=>{var e;await $(),null==(e=d.value)||e.scrollToActiveTab()}),Z(ve,{props:e,currentName:v,registerPane:i,unregisterPane:u,nav$:d}),l({currentName:v,get tabNavRef(){return ce(d.value,["scheduleRender"])}}),()=>{const a=t["add-icon"],l=e.editable||e.addable?j("div",{class:[n.e("new-tab"),o.value&&n.e("new-tab-vertical")],tabindex:"0",onClick:m,onKeydown:e=>{[X.enter,X.numpadEnter].includes(e.code)&&m()}},[a?q(t,"add-icon"):j(I,{class:n.is("icon-plus")},{default:()=>[j(D,null,null)]})]):null,s=j("div",{class:[n.e("header"),o.value&&n.e("header-vertical"),n.is(e.tabPosition)]},[j(c,null,{default:()=>j(ye,{ref:d,currentName:v.value,editable:e.editable,type:e.type,panes:r.value,stretch:e.stretch,onTabClick:p,onTabRemove:f},null),$stable:!0}),l]),i=j("div",{class:n.e("content")},[q(t,"default")]);return j("div",{class:[n.b(),n.m(e.tabPosition),{[n.m("card")]:"card"===e.type,[n.m("border-card")]:"border-card"===e.type}],onVnodeMounted:h,onVnodeUpdated:h},[i,s])}}});const we=m({label:{type:String,default:""},name:{type:[String,Number]},closable:Boolean,disabled:Boolean,lazy:Boolean}),Re="ElTabPane",$e=c({name:Re});var Ne=y(c({...$e,props:we,setup(e){const a=e,t=Q(),l=G(),s=C(ve);s||P(Re,"usage: ");const n=x("tab-pane"),o=w(),r=w(),i=M(()=>a.closable||s.props.closable),u=J(()=>{var e;return s.currentName.value===(null!=(e=a.name)?e:r.value)}),c=w(u.value),d=M(()=>{var e;return null!=(e=a.name)?e:r.value}),v=J(()=>!a.lazy||c.value||u.value);R(u,e=>{e&&(c.value=!0)});const b=ee({uid:t.uid,getVnode:()=>t.vnode,slots:l,props:a,paneName:d,active:u,index:r,isClosable:i,isFocusInsidePane:()=>{var e;return null==(e=o.value)?void 0:e.contains(document.activeElement)}});return s.registerPane(b),k(()=>{s.unregisterPane(b)}),ae(()=>{var e;l.label&&(null==(e=s.nav$.value)||e.scheduleRender())}),(e,a)=>A(v)?te((B(),T("div",{key:0,id:`pane-${A(d)}`,ref_key:"paneRef",ref:o,class:E(A(n).b()),role:"tabpanel","aria-hidden":!A(u),"aria-labelledby":`tab-${A(d)}`},[q(e.$slots,"default")],10,["id","aria-hidden","aria-labelledby"])),[[se,A(u)]]):le("v-if",!0)}}),[["__file","tab-pane.vue"]]);const ke=ne(xe,{TabPane:Ne}),Te=oe(Ne);export{ke as E,Te as a};