2023-10-26 09:57:34 +08:00

2 lines
3.8 KiB
JavaScript

import{b as x,d as V,a as j,j as L,E as U}from"./index-72686045.js";import{m as W}from"./index-8cefa3ab.js";import{U as $,C as D,w as q,d as z,v as G}from"./event-a537c4cb.js";import{u as S,_ as T,w as J,a as Q}from"./base-0e92f4db.js";import{c as K}from"./el-form-item-c2dd2ffe.js";import{r as b,w as R,E as X,c,d as C,b as A,e as B,g as y,n as p,u as e,D as Y,f as v,v as Z,x as ee,q as k,p as N,L as se}from"./runtime-core.esm-bundler-67034826.js";import{_ as ae}from"./index-97d638b4.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:()=>W([])}}),le={[$]:g,[D]:g},oe=(s,o)=>{const a=b(K(s.modelValue)),n=l=>{a.value=l;const i=s.accordion?a.value[0]:a.value;o($,i),o(D,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 R(()=>s.modelValue,()=>a.value=K(s.modelValue),{deep:!0}),X(M,{activeNames:a,handleItemClick:t}),{activeNames:a,setActiveNames:n}},ne=()=>{const s=S("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)=>(A(),B("div",{class:p(e(i)),role:"tablist","aria-multiselectable":"true"},[y(r.$slots,"default")],2))}});var ce=T(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=Y(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=S("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:w,scopedHeadId:I}=me(a,{focusing:n,isActive:l,id:t});return o({isActive:l}),(f,d)=>(A(),B("div",{class:p(e(E))},[v("div",{role:"tab","aria-expanded":e(l),"aria-controls":e(w),"aria-describedby":e(w)},[v("div",{id:e(I),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]=q(z((...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)},[y(f.$slots,"title",{},()=>[Z(ee(f.title),1)]),k(e(U),{class:p(e(h))},{default:N(()=>[k(e(L))]),_:1},8,["class"])],42,fe)],8,pe),k(e(ae),null,{default:N(()=>[se(v("div",{id:e(w),class:p(e(P)),role:"tabpanel","aria-hidden":!e(l),"aria-labelledby":e(I)},[v("div",{class:p(e(O))},[y(f.$slots,"default")],2)],10,ve),[[G,e(l)]])]),_:3})],2))}});var F=T(Ce,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse/src/collapse-item.vue"]]);const Ke=J(ce,{CollapseItem:F}),Ne=Q(F);export{Ke as E,Ne as a,H as g};