import{u as oe,g as ge,h as ne,e as m,a as l}from"./bijlrpmo.js";import{d as a,d as x,v as d,j as g,x as z,i as y,o as le,c as re,e as ie,u as x,n as te,w as i,s as v,e as ce,h as pe,k as b,a5 as ce,a8 as we,af as ee,y as $e,b as q,ap as se,v as ae,m as xe,u as be,j as ke,aq as se,z as oe,a9 as re,$ as ze,a6 as ae,b as fe}from"./et3mnfcx.js";import{b as u,d as g,_ as ue,w as me,c as le}from"./xqb8qclc.js";import{m as de}from"./bp3ysioj.js";import{t as z,u as be}from"./celxogyl.js";import{c as k}from"./cd3ruhp4.js";import{u as ve}from"./c-qxzyq-.js";const k=symbol("tabsrootcontextkey"),de=u({tabs:{type:g(array),default:()=>de([])}}),fe="eltabbar",ie=a({name:fe}),ue=a({...ie,props:de,setup(e,{expose:l}){const p=e,o=i(),c=x(k);c||z(fe,"");const t=d("tabs"),w=g(),b=g(),u=()=>{let i=0,p=0;const d=["top","bottom"].includes(c.props.tabposition)?"width":"height",n=d==="width"?"x":"y",s=n==="x"?"left":"top";return p.tabs.every(a=>{var v,c;const n=(c=(v=o.parent)==null?void 0:v.refs)==null?void 0:c[`tab-${a.uid}`];if(!n)return!1;if(!a.active)return!0;i=n[`offset${k(s)}`],p=n[`client${k(d)}`];const e=window.getcomputedstyle(n);return d==="width"&&(p.tabs.length>1&&(p-=number.parsefloat(e.paddingleft)+number.parsefloat(e.paddingright)),i+=number.parsefloat(e.paddingleft)),!1}),{[d]:`${p}px`,transform:`translate${k(n)}(${i}px)`}},f=()=>b.value=u();return z(()=>p.tabs,async()=>{await y(),f()},{immediate:!0}),oe(w,()=>f()),l({ref:w,update:f}),(i,p)=>(le(),re("div",{ref_key:"barref",ref:w,class:ie([x(t).e("active-bar"),x(t).is(x(c).props.tabposition)]),style:te(b.value)},null,6))}});var ke=ue(ue,[["__file","tab-bar.vue"]]);const he=u({panes:{type:g(array),default:()=>de([])},currentname:{type:[string,number],default:""},editable:boolean,type:{type:string,values:["card","border-card",""],default:""},stretch:boolean}),we={tabclick:(e,l,p)=>p instanceof event,tabremove:(e,l)=>l instanceof event},ne="eltabnav",je=a({name:ne,props:he,emits:we,setup(e,{expose:l,emit:p}){const o=i(),c=x(k);c||z(ne,"");const t=d("tabs"),w=ge(),b=ne(),u=g(),f=g(),i=g(),p=g(),d=g(!1),n=g(0),s=g(!1),a=g(!0),v=v(()=>["top","bottom"].includes(c.props.tabposition)?"width":"height"),c=v(()=>({transform:`translate${v.value==="width"?"x":"y"}(-${n.value}px)`})),n=()=>{if(!u.value)return;const o=u.value[`offset${k(v.value)}`],r=n.value;if(!r)return;const s=r>o?r-o:0;n.value=s},e=()=>{if(!u.value||!f.value)return;const o=f.value[`offset${k(v.value)}`],r=u.value[`offset${k(v.value)}`],s=n.value;if(o-s<=r)return;const y=o-s>r*2?s+r:o-r;n.value=y},f=async()=>{const o=f.value;if(!d.value||!i.value||!u.value||!o)return;await y();const r=i.value.queryselector(".is-active");if(!r)return;const s=u.value,y=["top","bottom"].includes(c.props.tabposition),_=r.getboundingclientrect(),h=s.getboundingclientrect(),$=y?o.offsetwidth-h.width:o.offsetheight-h.height,t=n.value;let m=t;y?(_.lefth.right&&(m=t+_.right-h.right)):(_.toph.bottom&&(m=t+(_.bottom-h.bottom))),m=math.max(m,0),n.value=math.min(m,$)},ee=()=>{var o;if(!f.value||!u.value)return;e.stretch&&((o=p.value)==null||o.update());const r=f.value[`offset${k(v.value)}`],s=u.value[`offset${k(v.value)}`],y=n.value;s0&&(n.value=0))},pe=o=>{const r=o.code,{up:s,down:y,left:_,right:h}=l;if(![s,y,_,h].includes(r))return;const $=array.from(o.currenttarget.queryselectorall("[role=tab]:not(.is-disabled)")),t=$.indexof(o.target);let m;r===_||r===s?t===0?m=$.length-1:m=t-1:t<$.length-1?m=t+1:m=0,$[m].focus({preventscroll:!0}),$[m].click(),te()},te=()=>{a.value&&(s.value=!0)},h=()=>s.value=!1;return z(w,o=>{o==="hidden"?a.value=!1:o==="visible"&&settimeout(()=>a.value=!0,50)}),z(b,o=>{o?settimeout(()=>a.value=!0,50):a.value=!1}),oe(i,ee),ce(()=>settimeout(()=>f(),0)),pe(()=>ee()),l({scrolltoactivetab:f,removefocus:h}),z(()=>e.panes,()=>o.update(),{flush:"post",deep:!0}),()=>{const o=d.value?[b("span",{class:[t.e("nav-prev"),t.is("disabled",!d.value.prev)],onclick:n},[b(m,null,{default:()=>[b(ce,null,null)]})]),b("span",{class:[t.e("nav-next"),t.is("disabled",!d.value.next)],onclick:e},[b(m,null,{default:()=>[b(we,null,null)]})])]:null,r=e.panes.map((s,y)=>{var _,h,$,t;const m=s.uid,w=s.props.disabled,j=(h=(_=s.props.name)!=null?_:s.index)!=null?h:`${y}`,q=!w&&(s.isclosable||e.editable);s.index=`${y}`;const he=q?b(m,{class:"is-icon-close",onclick:r=>p("tabremove",s,r)},{default:()=>[b(ee,null,null)]}):null,ye=((t=($=s.slots).label)==null?void 0:t.call($))||s.props.label,_e=!w&&s.active?0:-1;return b("div",{ref:`tab-${m}`,class:[t.e("item"),t.is(c.props.tabposition),t.is("active",s.active),t.is("disabled",w),t.is("closable",q),t.is("focus",s.value)],id:`tab-${j}`,key:`tab-${m}`,"aria-controls":`pane-${j}`,role:"tab","aria-selected":s.active,tabindex:_e,onfocus:()=>te(),onblur:()=>h(),onclick:r=>{h(),p("tabclick",s,j,r)},onkeydown:r=>{q&&(r.code===l.delete||r.code===l.backspace)&&p("tabremove",s,r)}},[ye,he])});return b("div",{ref:i,class:[t.e("nav-wrap"),t.is("scrollable",!!d.value),t.is(c.props.tabposition)]},[o,b("div",{class:t.e("nav-scroll"),ref:u},[b("div",{class:[t.e("nav"),t.is(c.props.tabposition),t.is("stretch",e.stretch&&["top","bottom"].includes(c.props.tabposition))],ref:f,style:c.value,role:"tablist",onkeydown:pe},[e.type?null:b(ke,{ref:p,tabs:[...e.panes]},null),r])])])}}}),qe=u({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}),j=e=>xe(e)||be(e),je={[be]:e=>j(e),tabclick:(e,l)=>l instanceof event,tabchange:e=>j(e),edit:(e,l)=>["remove","add"].includes(l),tabremove:e=>j(e),tabadd:()=>!0},qe=a({name:"eltabs",props:qe,emits:je,setup(e,{emit:l,slots:p,expose:o}){var c;const t=d("tabs"),{children:w,addchild:b,removechild:u}=ve(i(),"eltabpane"),f=g(),i=g((c=e.modelvalue)!=null?c:"0"),p=async(a,v=!1)=>{var c,n,e;if(!(i.value===a||ae(a)))try{await((c=e.beforeleave)==null?void 0:c.call(e,a,i.value))!==!1&&(i.value=a,v&&(l(be,a),l("tabchange",a)),(e=(n=f.value)==null?void 0:n.removefocus)==null||e.call(n))}catch{}},d=(a,v,c)=>{a.props.disabled||(p(v,!0),l("tabclick",a,c))},n=(a,v)=>{a.props.disabled||ae(a.props.name)||(v.stoppropagation(),l("edit",a.props.name,"remove"),l("tabremove",a.props.name))},s=()=>{l("edit",void 0,"add"),l("tabadd")};return z(()=>e.modelvalue,a=>p(a)),z(i,async()=>{var a;await y(),(a=f.value)==null||a.scrolltoactivetab()}),$e(k,{props:e,currentname:i,registerpane:b,unregisterpane:u}),o({currentname:i}),()=>{const a=p["add-icon"],v=e.editable||e.addable?b("span",{class:t.e("new-tab"),tabindex:"0",onclick:s,onkeydown:e=>{e.code===l.enter&&s()}},[a?q(p,"add-icon"):b(m,{class:t.is("icon-plus")},{default:()=>[b(se,null,null)]})]):null,c=b("div",{class:[t.e("header"),t.is(e.tabposition)]},[v,b(je,{ref:f,currentname:i.value,editable:e.editable,type:e.type,panes:w.value,stretch:e.stretch,ontabclick:d,ontabremove:n},null)]),n=b("div",{class:t.e("content")},[q(p,"default")]);return b("div",{class:[t.b(),t.m(e.tabposition),{[t.m("card")]:e.type==="card",[t.m("border-card")]:e.type==="border-card"}]},[...e.tabposition!=="bottom"?[c,n]:[n,c]])}}}),xe=u({label:{type:string,default:""},name:{type:[string,number]},closable:boolean,disabled:boolean,lazy:boolean}),ye=["id","aria-hidden","aria-labelledby"],ve="eltabpane",ge=a({name:ve}),ze=a({...ge,props:xe,setup(e){const l=e,p=i(),o=ke(),c=x(k);c||z(ve,"usage: ");const t=d("tab-pane"),w=g(),b=v(()=>l.closable||c.props.closable),u=se(()=>{var n;return c.currentname.value===((n=l.name)!=null?n:w.value)}),f=g(u.value),i=v(()=>{var n;return(n=l.name)!=null?n:w.value}),p=se(()=>!l.lazy||f.value||u.value);z(u,n=>{n&&(f.value=!0)});const d=oe({uid:p.uid,slots:o,props:l,panename:i,active:u,index:w,isclosable:b});return ce(()=>{c.registerpane(d)}),re(()=>{c.unregisterpane(d.uid)}),(n,s)=>x(p)?ze((le(),re("div",{key:0,id:`pane-${x(i)}`,class:ie(x(t).b()),role:"tabpanel","aria-hidden":!x(u),"aria-labelledby":`tab-${x(i)}`},[q(n.$slots,"default")],10,ye)),[[ae,x(u)]]):fe("v-if",!0)}});var me=ue(ze,[["__file","tab-pane.vue"]]);const rt=me(qe,{tabpane:me}),it=le(me);export{it as e,rt as a};