index.3e509372.js 8.6 KB

1
  1. import{a0 as ce,a1 as Me,a2 as $e,a3 as Ae,r as I,a4 as O,i as e,a5 as Le,a6 as K,a7 as He,o as fe,a8 as Be,a9 as Pe,aa as Oe,ab as ve,ac as Ve,ad as ze,ae as x,af as me,e as L,f as R,h as Q,y as ne,w as Z,m as Y,v as H,ag as q,g as G,p as le,ah as Re,ai as J,aj as re,l as X,A as De,ak as de,G as he,F as je,k as Fe,x as Ue,al as pe,am as We,c as Ke,an as qe,ao as Ge,ap as Xe,aq as Ye}from"./index.f884e450.js";import{t as ie}from"./throttle.88168f2d.js";const Je=ce({initialIndex:{type:Number,default:0},height:{type:String,default:""},trigger:{type:String,values:["hover","click"],default:"hover"},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},indicatorPosition:{type:String,values:["","none","outside"],default:""},arrow:{type:String,values:["always","hover","never"],default:"hover"},type:{type:String,values:["","card"],default:""},loop:{type:Boolean,default:!0},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},pauseOnHover:{type:Boolean,default:!0}}),Qe={change:(a,B)=>[a,B].every(Me)},ge=Symbol("carouselContextKey"),ue=300,Ze=(a,B,i)=>{const{children:o,addChild:b,removeChild:C}=$e(ve(),"ElCarouselItem"),M=Ae(),s=I(-1),d=I(null),k=I(!1),h=I(),_=I(0),w=I(!0),N=O(()=>a.arrow!=="never"&&!e(p)),S=O(()=>o.value.some(t=>t.props.label.toString().length>0)),$=O(()=>a.type==="card"),p=O(()=>a.direction==="vertical"),A=O(()=>a.height!=="auto"?{height:a.height}:{height:`${_.value}px`,overflow:"hidden"}),D=ie(t=>{f(t)},ue,{trailing:!0}),j=ie(t=>{ee(t)},ue),n=t=>w.value?s.value<=1?t<=1:t>1:!0;function l(){d.value&&(clearInterval(d.value),d.value=null)}function c(){a.interval<=0||!a.autoplay||d.value||(d.value=setInterval(()=>m(),a.interval))}const m=()=>{s.value<o.value.length-1?s.value=s.value+1:a.loop&&(s.value=0)};function f(t){if(Le(t)){const z=o.value.filter(P=>P.props.name===t);z.length>0&&(t=o.value.indexOf(z[0]))}if(t=Number(t),Number.isNaN(t)||t!==Math.floor(t))return;const u=o.value.length,T=s.value;t<0?s.value=a.loop?u-1:0:t>=u?s.value=a.loop?0:u-1:s.value=t,T===s.value&&r(T),ae()}function r(t){o.value.forEach((u,T)=>{u.translateItem(T,s.value,t)})}function E(t,u){var T,z,P,U;const W=e(o),se=W.length;if(se===0||!t.states.inStage)return!1;const Se=u+1,be=u-1,oe=se-1,_e=W[oe].states.active,Ne=W[0].states.active,Ee=(z=(T=W[Se])==null?void 0:T.states)==null?void 0:z.active,Te=(U=(P=W[be])==null?void 0:P.states)==null?void 0:U.active;return u===oe&&Ne||Ee?"left":u===0&&_e||Te?"right":!1}function F(){k.value=!0,a.pauseOnHover&&l()}function g(){k.value=!1,c()}function v(t){e(p)||o.value.forEach((u,T)=>{t===E(u,T)&&(u.states.hover=!0)})}function y(){e(p)||o.value.forEach(t=>{t.states.hover=!1})}function V(t){s.value=t}function ee(t){a.trigger==="hover"&&t!==s.value&&(s.value=t)}function Ie(){f(s.value-1)}function Ce(){f(s.value+1)}function ae(){l(),a.pauseOnHover||c()}function we(t){a.height==="auto"&&(_.value=t)}function ke(){var t;const u=(t=M.default)==null?void 0:t.call(M);if(!u)return null;const T=Ve(u),z="ElCarouselItem",P=T.filter(U=>ze(U)&&U.type.name===z);return P?.length===2&&a.loop&&!$.value?(w.value=!0,P):(w.value=!1,null)}K(()=>s.value,(t,u)=>{r(u),w.value&&(t=t%2,u=u%2),u>-1&&B("change",t,u)}),K(()=>a.autoplay,t=>{t?c():l()}),K(()=>a.loop,()=>{f(s.value)}),K(()=>a.interval,()=>{ae()});const te=He();return fe(()=>{K(()=>o.value,()=>{o.value.length>0&&f(a.initialIndex)},{immediate:!0}),te.value=Be(h.value,()=>{r()}),c()}),Pe(()=>{l(),h.value&&te.value&&te.value.stop()}),Oe(ge,{root:h,isCardType:$,isVertical:p,items:o,loop:a.loop,addItem:b,removeItem:C,setActiveItem:f,setContainerHeight:we}),{root:h,activeIndex:s,arrowDisplay:N,hasLabel:S,hover:k,isCardType:$,items:o,isVertical:p,containerStyle:A,isItemsTwoLength:w,handleButtonEnter:v,handleButtonLeave:y,handleIndicatorClick:V,handleMouseEnter:F,handleMouseLeave:g,setActiveItem:f,prev:Ie,next:Ce,PlaceholderItem:ke,isTwoLengthShow:n,throttledArrowClick:D,throttledIndicatorHover:j}},xe=["onMouseenter","onClick"],et={key:0},tt="ElCarousel",at=x({name:tt}),st=x({...at,props:Je,emits:Qe,setup(a,{expose:B,emit:i}){const o=a,{root:b,activeIndex:C,arrowDisplay:M,hasLabel:s,hover:d,isCardType:k,items:h,isVertical:_,containerStyle:w,handleButtonEnter:N,handleButtonLeave:S,handleIndicatorClick:$,handleMouseEnter:p,handleMouseLeave:A,setActiveItem:D,prev:j,next:n,PlaceholderItem:l,isTwoLengthShow:c,throttledArrowClick:m,throttledIndicatorHover:f}=Ze(o,i),r=me("carousel"),E=O(()=>{const g=[r.b(),r.m(o.direction)];return e(k)&&g.push(r.m("card")),g}),F=O(()=>{const g=[r.e("indicators"),r.em("indicators",o.direction)];return e(s)&&g.push(r.em("indicators","labels")),o.indicatorPosition==="outside"&&g.push(r.em("indicators","outside")),e(_)&&g.push(r.em("indicators","right")),g});return B({setActiveItem:D,prev:j,next:n}),(g,v)=>(L(),R("div",{ref_key:"root",ref:b,class:H(e(E)),onMouseenter:v[6]||(v[6]=q((...y)=>e(p)&&e(p)(...y),["stop"])),onMouseleave:v[7]||(v[7]=q((...y)=>e(A)&&e(A)(...y),["stop"]))},[Q("div",{class:H(e(r).e("container")),style:he(e(w))},[e(M)?(L(),ne(re,{key:0,name:"carousel-arrow-left",persisted:""},{default:Z(()=>[Y(Q("button",{type:"button",class:H([e(r).e("arrow"),e(r).em("arrow","left")]),onMouseenter:v[0]||(v[0]=y=>e(N)("left")),onMouseleave:v[1]||(v[1]=(...y)=>e(S)&&e(S)(...y)),onClick:v[2]||(v[2]=q(y=>e(m)(e(C)-1),["stop"]))},[G(e(le),null,{default:Z(()=>[G(e(Re))]),_:1})],34),[[J,(g.arrow==="always"||e(d))&&(o.loop||e(C)>0)]])]),_:1})):X("v-if",!0),e(M)?(L(),ne(re,{key:1,name:"carousel-arrow-right",persisted:""},{default:Z(()=>[Y(Q("button",{type:"button",class:H([e(r).e("arrow"),e(r).em("arrow","right")]),onMouseenter:v[3]||(v[3]=y=>e(N)("right")),onMouseleave:v[4]||(v[4]=(...y)=>e(S)&&e(S)(...y)),onClick:v[5]||(v[5]=q(y=>e(m)(e(C)+1),["stop"]))},[G(e(le),null,{default:Z(()=>[G(e(De))]),_:1})],34),[[J,(g.arrow==="always"||e(d))&&(o.loop||e(C)<e(h).length-1)]])]),_:1})):X("v-if",!0),G(e(l)),de(g.$slots,"default")],6),g.indicatorPosition!=="none"?(L(),R("ul",{key:0,class:H(e(F))},[(L(!0),R(je,null,Fe(e(h),(y,V)=>Y((L(),R("li",{key:V,class:H([e(r).e("indicator"),e(r).em("indicator",g.direction),e(r).is("active",V===e(C))]),onMouseenter:ee=>e(f)(V),onClick:q(ee=>e($)(V),["stop"])},[Q("button",{class:H(e(r).e("button"))},[e(s)?(L(),R("span",et,Ue(y.props.label),1)):X("v-if",!0)],2)],42,xe)),[[J,e(c)(V)]])),128))],2)):X("v-if",!0)],34))}});var ot=pe(st,[["__file","/home/runner/work/element-plus/element-plus/packages/components/carousel/src/carousel.vue"]]);const nt=ce({name:{type:String,default:""},label:{type:[String,Number],default:""}}),lt=(a,B)=>{const i=We(ge),o=ve(),b=.83,C=I(),M=I(!1),s=I(0),d=I(1),k=I(!1),h=I(!1),_=I(!1),w=I(!1),{isCardType:N,isVertical:S}=i;function $(n,l,c){const m=c-1,f=l-1,r=l+1,E=c/2;return l===0&&n===m?-1:l===m&&n===0?c:n<f&&l-n>=E?c+1:n>r&&n-l>=E?-2:n}function p(n,l){var c,m;const f=e(S)?((c=i.root.value)==null?void 0:c.offsetHeight)||0:((m=i.root.value)==null?void 0:m.offsetWidth)||0;return _.value?f*((2-b)*(n-l)+1)/4:n<l?-(1+b)*f/4:(3+b)*f/4}function A(n,l,c){const m=i.root.value;return m?((c?m.offsetHeight:m.offsetWidth)||0)*(n-l):0}const D=(n,l,c)=>{var m;const f=e(N),r=(m=i.items.value.length)!=null?m:Number.NaN,E=n===l;!f&&!Ge(c)&&(w.value=E||n===c),!E&&r>2&&i.loop&&(n=$(n,l,r));const F=e(S);k.value=E,f?(_.value=Math.round(Math.abs(n-l))<=1,s.value=p(n,l),d.value=e(k)?1:b):s.value=A(n,l,F),h.value=!0,E&&C.value&&i.setContainerHeight(C.value.offsetHeight)};function j(){if(i&&e(N)){const n=i.items.value.findIndex(({uid:l})=>l===o.uid);i.setActiveItem(n)}}return fe(()=>{i.addItem({props:a,states:Ke({hover:M,translate:s,scale:d,active:k,ready:h,inStage:_,animating:w}),uid:o.uid,translateItem:D})}),qe(()=>{i.removeItem(o.uid)}),{carouselItemRef:C,active:k,animating:w,hover:M,inStage:_,isVertical:S,translate:s,isCardType:N,scale:d,ready:h,handleItemClick:j}},rt=x({name:"ElCarouselItem"}),it=x({...rt,props:nt,setup(a){const B=a,i=me("carousel"),{carouselItemRef:o,active:b,animating:C,hover:M,inStage:s,isVertical:d,translate:k,isCardType:h,scale:_,ready:w,handleItemClick:N}=lt(B),S=O(()=>{const p=`${`translate${e(d)?"Y":"X"}`}(${e(k)}px)`,A=`scale(${e(_)})`;return{transform:[p,A].join(" ")}});return($,p)=>Y((L(),R("div",{ref_key:"carouselItemRef",ref:o,class:H([e(i).e("item"),e(i).is("active",e(b)),e(i).is("in-stage",e(s)),e(i).is("hover",e(M)),e(i).is("animating",e(C)),{[e(i).em("item","card")]:e(h),[e(i).em("item","card-vertical")]:e(h)&&e(d)}]),style:he(e(S)),onClick:p[0]||(p[0]=(...A)=>e(N)&&e(N)(...A))},[e(h)?Y((L(),R("div",{key:0,class:H(e(i).e("mask"))},null,2)),[[J,!e(b)]]):X("v-if",!0),de($.$slots,"default")],6)),[[J,e(w)]])}});var ye=pe(it,[["__file","/home/runner/work/element-plus/element-plus/packages/components/carousel/src/carousel-item.vue"]]);const ft=Xe(ot,{CarouselItem:ye}),vt=Ye(ye);export{vt as E,ft as a};