2023-09-06 18:53:48 +08:00

2 lines
3.8 KiB
JavaScript

import{b as x,d as V,a as j,j as U,E as W}from"./index-e37943c3.js";import{m as z}from"./typescript-defaf979.js";import{U as T,C as $}from"./event-e06a23af.js";import{r as b,w as G,J,b as A,c,d as C,e as B,f as S,h as k,n as p,u as e,_ as D,I as L,g as v,A as Q,B as q,y as I,x as K,Q as R,l as X,T as Y}from"./base-d77b0726.js";import{c as N}from"./index-68c5ad54.js";import{w as Z,d as ee,v as se}from"./index-331c6de1.js";import{_ as ae}from"./index-40fcecbc.js";const H=()=>Math.floor(Math.random()*1e4),M=Symbol("collapseContextKey"),g=s=>typeof j(s),te=x({accordion:Boolean,modelValue:{type:V([Array,String,Number]),default:()=>z([])}}),le={[T]:g,[$]:g},oe=(s,o)=>{const a=b(N(s.modelValue)),n=l=>{a.value=l;const i=s.accordion?a.value[0]:a.value;o(T,i),o($,i)},t=l=>{if(s.accordion)n([a.value[0]===l?"":l]);else{const i=[...a.value],r=i.indexOf(l);r>-1?i.splice(r,1):i.push(l),n(i)}};return G(()=>s.modelValue,()=>a.value=N(s.modelValue),{deep:!0}),J(M,{activeNames:a,handleItemClick:t}),{activeNames:a,setActiveNames:n}},ne=()=>{const s=A("collapse");return{rootKls:c(()=>s.b())}},ie=C({name:"ElCollapse"}),re=C({...ie,props:te,emits:le,setup(s,{expose:o,emit:a}){const n=s,{activeNames:t,setActiveNames:l}=oe(n,a),{rootKls:i}=ne();return o({activeNames:t,setActiveNames:l}),(r,u)=>(B(),S("div",{class:p(e(i)),role:"tablist","aria-multiselectable":"true"},[k(r.$slots,"default")],2))}});var ce=D(re,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse/src/collapse.vue"]]);const de=x({title:{type:String,default:""},name:{type:V([String,Number]),default:()=>H()},disabled:Boolean}),ue=s=>{const o=L(M),a=b(!1),n=b(!1),t=b(H()),l=c(()=>o==null?void 0:o.activeNames.value.includes(s.name));return{focusing:a,id:t,isActive:l,handleFocus:()=>{setTimeout(()=>{n.value?n.value=!1:a.value=!0},50)},handleHeaderClick:()=>{s.disabled||(o==null||o.handleItemClick(s.name),a.value=!1,n.value=!0)},handleEnterClick:()=>{o==null||o.handleItemClick(s.name)}}},me=(s,{focusing:o,isActive:a,id:n})=>{const t=A("collapse"),l=c(()=>[t.b("item"),t.is("active",e(a)),t.is("disabled",s.disabled)]),i=c(()=>[t.be("item","header"),t.is("active",e(a)),{focusing:e(o)&&!s.disabled}]),r=c(()=>[t.be("item","arrow"),t.is("active",e(a))]),u=c(()=>t.be("item","wrap")),h=c(()=>t.be("item","content")),_=c(()=>t.b(`content-${e(n)}`)),E=c(()=>t.b(`head-${e(n)}`));return{arrowKls:r,headKls:i,rootKls:l,itemWrapperKls:u,itemContentKls:h,scopedContentId:_,scopedHeadId:E}},pe=["aria-expanded","aria-controls","aria-describedby"],fe=["id","tabindex"],ve=["id","aria-hidden","aria-labelledby"],be=C({name:"ElCollapseItem"}),Ce=C({...be,props:de,setup(s,{expose:o}){const a=s,{focusing:n,id:t,isActive:l,handleFocus:i,handleHeaderClick:r,handleEnterClick:u}=ue(a),{arrowKls:h,headKls:_,rootKls:E,itemWrapperKls:P,itemContentKls:O,scopedContentId:y,scopedHeadId:w}=me(a,{focusing:n,isActive:l,id:t});return o({isActive:l}),(f,d)=>(B(),S("div",{class:p(e(E))},[v("div",{role:"tab","aria-expanded":e(l),"aria-controls":e(y),"aria-describedby":e(y)},[v("div",{id:e(w),class:p(e(_)),role:"button",tabindex:f.disabled?-1:0,onClick:d[0]||(d[0]=(...m)=>e(r)&&e(r)(...m)),onKeypress:d[1]||(d[1]=Z(ee((...m)=>e(u)&&e(u)(...m),["stop","prevent"]),["space","enter"])),onFocus:d[2]||(d[2]=(...m)=>e(i)&&e(i)(...m)),onBlur:d[3]||(d[3]=m=>n.value=!1)},[k(f.$slots,"title",{},()=>[Q(q(f.title),1)]),I(e(W),{class:p(e(h))},{default:K(()=>[I(e(U))]),_:1},8,["class"])],42,fe)],8,pe),I(e(ae),null,{default:K(()=>[R(v("div",{id:e(y),class:p(e(P)),role:"tabpanel","aria-hidden":!e(l),"aria-labelledby":e(w)},[v("div",{class:p(e(O))},[k(f.$slots,"default")],2)],10,ve),[[se,e(l)]])]),_:3})],2))}});var F=D(Ce,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse/src/collapse-item.vue"]]);const Ke=X(ce,{CollapseItem:F}),Ne=Y(F);export{Ke as E,Ne as a,H as g};