mirror of
https://gitee.com/niucloud-team/niucloud-admin.git
synced 2025-12-29 09:50:16 +00:00
2 lines
9.1 KiB
JavaScript
2 lines
9.1 KiB
JavaScript
import{b as D,d as X,E as L,h as ge,j as _e,a0 as Ne,an as Ce,k as te,a as Te,aB as ae}from"./index-cf9a2dd7.js";import{d as ne,q as we,r as Pe}from"./index-bcd7a424.js";import{m as oe}from"./index-e27c3bb0.js";import{s as Ee,a4 as Se,d as M,I as Y,b as I,r as w,w as O,E as G,e as le,f as re,n as ie,u as k,j as $e,_ as ce,L as U,c as F,o as ue,V as xe,y as v,J as ke,h as de,m as Be,R as Oe,O as Re,P as ze,M as Ae,H as Me,l as Fe,Q as Le}from"./plugin-vue_export-helper-85a4d40b.js";import{t as Z,U as be,v as Ve}from"./event-f85d77b0.js";import{c as B}from"./strings-53351eda.js";import{E as V}from"./index-1ad115d7.js";import{f as De}from"./index-313cd2ce.js";import{u as Ie}from"./index-de1d3b53.js";const K=Symbol("tabsRootContextKey"),Ue=(e,n,f)=>De(e.subTree).filter(t=>{var o;return Se(t)&&((o=t.type)==null?void 0:o.name)===n&&!!t.component}).map(t=>t.component.uid).map(t=>f[t]).filter(t=>!!t),Ke=(e,n)=>{const f={},C=Ee([]);return{children:C,addChild:o=>{f[o.uid]=o,C.value=Ue(e,n,f)},removeChild:o=>{delete f[o],C.value=C.value.filter(E=>E.uid!==o)}}},je=D({tabs:{type:X(Array),default:()=>oe([])}}),ve="ElTabBar",qe=M({name:ve}),He=M({...qe,props:je,setup(e,{expose:n}){const f=e,C=U(),i=Y(K);i||Z(ve,"<el-tabs><el-tab-bar /></el-tabs>");const t=I("tabs"),o=w(),E=w(),u=()=>{let m=0,r=0;const d=["top","bottom"].includes(i.props.tabPosition)?"width":"height",b=d==="width"?"x":"y",S=b==="x"?"left":"top";return f.tabs.every(P=>{var R,a;const h=(a=(R=C.parent)==null?void 0:R.refs)==null?void 0:a[`tab-${P.uid}`];if(!h)return!1;if(!P.active)return!0;m=h[`offset${B(S)}`],r=h[`client${B(d)}`];const g=window.getComputedStyle(h);return d==="width"&&(f.tabs.length>1&&(r-=Number.parseFloat(g.paddingLeft)+Number.parseFloat(g.paddingRight)),m+=Number.parseFloat(g.paddingLeft)),!1}),{[d]:`${r}px`,transform:`translate${B(b)}(${m}px)`}},y=()=>E.value=u();return O(()=>f.tabs,async()=>{await G(),y()},{immediate:!0}),ne(o,()=>y()),n({ref:o,update:y}),(m,r)=>(le(),re("div",{ref_key:"barRef",ref:o,class:ie([k(t).e("active-bar"),k(t).is(k(i).props.tabPosition)]),style:$e(E.value)},null,6))}});var We=ce(He,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-bar.vue"]]);const Je=D({panes:{type:X(Array),default:()=>oe([])},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean}),Qe={tabClick:(e,n,f)=>f instanceof Event,tabRemove:(e,n)=>n instanceof Event},se="ElTabNav",Xe=M({name:se,props:Je,emits:Qe,setup(e,{expose:n,emit:f}){const C=U(),i=Y(K);i||Z(se,"<el-tabs><tab-nav /></el-tabs>");const t=I("tabs"),o=we(),E=Pe(),u=w(),y=w(),m=w(),r=w(!1),d=w(0),b=w(!1),S=w(!0),P=F(()=>["top","bottom"].includes(i.props.tabPosition)?"width":"height"),R=F(()=>({transform:`translate${P.value==="width"?"X":"Y"}(-${d.value}px)`})),a=()=>{if(!u.value)return;const l=u.value[`offset${B(P.value)}`],c=d.value;if(!c)return;const s=c>l?c-l:0;d.value=s},h=()=>{if(!u.value||!y.value)return;const l=y.value[`offset${B(P.value)}`],c=u.value[`offset${B(P.value)}`],s=d.value;if(l-s<=c)return;const x=l-s>c*2?s+c:l-c;d.value=x},g=async()=>{const l=y.value;if(!r.value||!m.value||!u.value||!l)return;await G();const c=m.value.querySelector(".is-active");if(!c)return;const s=u.value,x=["top","bottom"].includes(i.props.tabPosition),N=c.getBoundingClientRect(),_=s.getBoundingClientRect(),$=x?l.offsetWidth-_.width:l.offsetHeight-_.height,T=d.value;let p=T;x?(N.left<_.left&&(p=T-(_.left-N.left)),N.right>_.right&&(p=T+N.right-_.right)):(N.top<_.top&&(p=T-(_.top-N.top)),N.bottom>_.bottom&&(p=T+(N.bottom-_.bottom))),p=Math.max(p,0),d.value=Math.min(p,$)},z=()=>{if(!y.value||!u.value)return;const l=y.value[`offset${B(P.value)}`],c=u.value[`offset${B(P.value)}`],s=d.value;c<l?(r.value=r.value||{},r.value.prev=s,r.value.next=s+c<l,l-s<c&&(d.value=l-c)):(r.value=!1,s>0&&(d.value=0))},j=l=>{const c=l.code,{up:s,down:x,left:N,right:_}=V;if(![s,x,N,_].includes(c))return;const $=Array.from(l.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),T=$.indexOf(l.target);let p;c===N||c===s?T===0?p=$.length-1:p=T-1:T<$.length-1?p=T+1:p=0,$[p].focus({preventScroll:!0}),$[p].click(),ee()},ee=()=>{S.value&&(b.value=!0)},q=()=>b.value=!1;return O(o,l=>{l==="hidden"?S.value=!1:l==="visible"&&setTimeout(()=>S.value=!0,50)}),O(E,l=>{l?setTimeout(()=>S.value=!0,50):S.value=!1}),ne(m,z),ue(()=>setTimeout(()=>g(),0)),xe(()=>z()),n({scrollToActiveTab:g,removeFocus:q}),O(()=>e.panes,()=>C.update(),{flush:"post"}),()=>{const l=r.value?[v("span",{class:[t.e("nav-prev"),t.is("disabled",!r.value.prev)],onClick:a},[v(L,null,{default:()=>[v(ge,null,null)]})]),v("span",{class:[t.e("nav-next"),t.is("disabled",!r.value.next)],onClick:h},[v(L,null,{default:()=>[v(_e,null,null)]})])]:null,c=e.panes.map((s,x)=>{var N,_,$,T;const p=s.uid,H=s.props.disabled,W=(_=(N=s.props.name)!=null?N:s.index)!=null?_:`${x}`,J=!H&&(s.isClosable||e.editable);s.index=`${x}`;const pe=J?v(L,{class:"is-icon-close",onClick:A=>f("tabRemove",s,A)},{default:()=>[v(Ne,null,null)]}):null,he=((T=($=s.slots).label)==null?void 0:T.call($))||s.props.label,ye=!H&&s.active?0:-1;return v("div",{ref:`tab-${p}`,class:[t.e("item"),t.is(i.props.tabPosition),t.is("active",s.active),t.is("disabled",H),t.is("closable",J),t.is("focus",b.value)],id:`tab-${W}`,key:`tab-${p}`,"aria-controls":`pane-${W}`,role:"tab","aria-selected":s.active,tabindex:ye,onFocus:()=>ee(),onBlur:()=>q(),onClick:A=>{q(),f("tabClick",s,W,A)},onKeydown:A=>{J&&(A.code===V.delete||A.code===V.backspace)&&f("tabRemove",s,A)}},[he,pe])});return v("div",{ref:m,class:[t.e("nav-wrap"),t.is("scrollable",!!r.value),t.is(i.props.tabPosition)]},[l,v("div",{class:t.e("nav-scroll"),ref:u},[v("div",{class:[t.e("nav"),t.is(i.props.tabPosition),t.is("stretch",e.stretch&&["top","bottom"].includes(i.props.tabPosition))],ref:y,style:R.value,role:"tablist",onKeydown:j},[e.type?null:v(We,{tabs:[...e.panes]},null),c])])])}}}),Ye=D({type:{type:String,values:["card","border-card",""],default:""},activeName:{type:[String,Number]},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:X(Function),default:()=>!0},stretch:Boolean}),Q=e=>Be(e)||Te(e),Ge={[be]:e=>Q(e),tabClick:(e,n)=>n instanceof Event,tabChange:e=>Q(e),edit:(e,n)=>["remove","add"].includes(n),tabRemove:e=>Q(e),tabAdd:()=>!0};var Ze=M({name:"ElTabs",props:Ye,emits:Ge,setup(e,{emit:n,slots:f,expose:C}){var i,t;const o=I("tabs"),{children:E,addChild:u,removeChild:y}=Ke(U(),"ElTabPane"),m=w(),r=w((t=(i=e.modelValue)!=null?i:e.activeName)!=null?t:"0"),d=a=>{r.value=a,n(be,a),n("tabChange",a)},b=async a=>{var h,g,z;if(!(r.value===a||te(a)))try{await((h=e.beforeLeave)==null?void 0:h.call(e,a,r.value))!==!1&&(d(a),(z=(g=m.value)==null?void 0:g.removeFocus)==null||z.call(g))}catch{}},S=(a,h,g)=>{a.props.disabled||(b(h),n("tabClick",a,g))},P=(a,h)=>{a.props.disabled||te(a.props.name)||(h.stopPropagation(),n("edit",a.props.name,"remove"),n("tabRemove",a.props.name))},R=()=>{n("edit",void 0,"add"),n("tabAdd")};return Ie({from:'"activeName"',replacement:'"model-value" or "v-model"',scope:"ElTabs",version:"2.3.0",ref:"https://element-plus.org/en-US/component/tabs.html#attributes",type:"Attribute"},F(()=>!!e.activeName)),O(()=>e.activeName,a=>b(a)),O(()=>e.modelValue,a=>b(a)),O(r,async()=>{var a;await G(),(a=m.value)==null||a.scrollToActiveTab()}),ke(K,{props:e,currentName:r,registerPane:u,unregisterPane:y}),C({currentName:r}),()=>{const a=e.editable||e.addable?v("span",{class:o.e("new-tab"),tabindex:"0",onClick:R,onKeydown:z=>{z.code===V.enter&&R()}},[v(L,{class:o.is("icon-plus")},{default:()=>[v(Ce,null,null)]})]):null,h=v("div",{class:[o.e("header"),o.is(e.tabPosition)]},[a,v(Xe,{ref:m,currentName:r.value,editable:e.editable,type:e.type,panes:E.value,stretch:e.stretch,onTabClick:S,onTabRemove:P},null)]),g=v("div",{class:o.e("content")},[de(f,"default")]);return v("div",{class:[o.b(),o.m(e.tabPosition),{[o.m("card")]:e.type==="card",[o.m("border-card")]:e.type==="border-card"}]},[...e.tabPosition!=="bottom"?[h,g]:[g,h]])}}});const et=D({label:{type:String,default:""},name:{type:[String,Number]},closable:Boolean,disabled:Boolean,lazy:Boolean}),tt=["id","aria-hidden","aria-labelledby"],fe="ElTabPane",at=M({name:fe}),st=M({...at,props:et,setup(e){const n=e,f=U(),C=Oe(),i=Y(K);i||Z(fe,"usage: <el-tabs><el-tab-pane /></el-tabs/>");const t=I("tab-pane"),o=w(),E=F(()=>n.closable||i.props.closable),u=ae(()=>{var b;return i.currentName.value===((b=n.name)!=null?b:o.value)}),y=w(u.value),m=F(()=>{var b;return(b=n.name)!=null?b:o.value}),r=ae(()=>!n.lazy||y.value||u.value);O(u,b=>{b&&(y.value=!0)});const d=Re({uid:f.uid,slots:C,props:n,paneName:m,active:u,index:o,isClosable:E});return ue(()=>{i.registerPane(d)}),ze(()=>{i.unregisterPane(d.uid)}),(b,S)=>k(r)?Ae((le(),re("div",{key:0,id:`pane-${k(m)}`,class:ie(k(t).b()),role:"tabpanel","aria-hidden":!k(u),"aria-labelledby":`tab-${k(m)}`},[de(b.$slots,"default")],10,tt)),[[Ve,k(u)]]):Me("v-if",!0)}});var me=ce(st,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-pane.vue"]]);const vt=Fe(Ze,{TabPane:me}),ft=Le(me);export{vt as E,ft as a,Ke as u};
|