1 |
- import{aI as ee,b4 as Ie,eE as Ce,j as ae,aV as be,r as m,e as A,a as e,b5 as we,w as P,c$ as ke,b as te,cz as Se,h as Me,q as xe,by as Ee,aG as Ne,d as F,aK as le,o as H,c as V,C as G,A as oe,B as X,l as R,aa as L,aB as z,f as j,aD as ne,bs as He,v as K,T as se,E as W,bt as Le,aL as re,aE as ie,F as _e,P as Be,D as Te,aM as ue,i as Ae,x as Ve,s as $e,cs as De,aN as Oe,aR as Pe}from"./index-bf9ff227.js";import{t as ce}from"./el-image-viewer-a3b9f5bd.js";const Re=ee({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}}),ze={change:(o,_)=>[o,_].every(Ie)},ve=Symbol("carouselContextKey"),je=(o,_,i)=>{const{children:r,addChild:B,removeChild:g}=Ce(ae(),"ElCarouselItem"),M=be(),n=m(-1),d=m(null),I=m(!1),h=m(),k=m(0),y=m(!0),S=A(()=>o.arrow!=="never"&&!e(u)),C=A(()=>r.value.some(a=>a.props.label.toString().length>0)),x=A(()=>o.type==="card"),u=A(()=>o.direction==="vertical"),f=A(()=>o.height!=="auto"?{height:o.height}:{height:`${k.value}px`,overflow:"hidden"}),$=ce(a=>{b(a)},300,{trailing:!0}),D=ce(a=>{(function(t){o.trigger==="hover"&&t!==n.value&&(n.value=t)})(a)},300);function E(){d.value&&(clearInterval(d.value),d.value=null)}function N(){o.interval<=0||!o.autoplay||d.value||(d.value=setInterval(()=>T(),o.interval))}const T=()=>{n.value<r.value.length-1?n.value=n.value+1:o.loop&&(n.value=0)};function b(a){if(we(a)){const c=r.value.filter(w=>w.props.name===a);c.length>0&&(a=r.value.indexOf(c[0]))}if(a=Number(a),Number.isNaN(a)||a!==Math.floor(a))return;const t=r.value.length,s=n.value;n.value=a<0?o.loop?t-1:0:a>=t?o.loop?0:t-1:a,s===n.value&&v(s),l()}function v(a){r.value.forEach((t,s)=>{t.translateItem(s,n.value,a)})}function l(){E(),o.pauseOnHover||N()}P(()=>n.value,(a,t)=>{v(t),y.value&&(a%=2,t%=2),t>-1&&_("change",a,t)}),P(()=>o.autoplay,a=>{a?N():E()}),P(()=>o.loop,()=>{b(n.value)}),P(()=>o.interval,()=>{l()});const p=ke();return te(()=>{P(()=>r.value,()=>{r.value.length>0&&b(o.initialIndex)},{immediate:!0}),p.value=Se(h.value,()=>{v()}),N()}),Me(()=>{E(),h.value&&p.value&&p.value.stop()}),xe(ve,{root:h,isCardType:x,isVertical:u,items:r,loop:o.loop,addItem:B,removeItem:g,setActiveItem:b,setContainerHeight:function(a){o.height==="auto"&&(k.value=a)}}),{root:h,activeIndex:n,arrowDisplay:S,hasLabel:C,hover:I,isCardType:x,items:r,isVertical:u,containerStyle:f,isItemsTwoLength:y,handleButtonEnter:function(a){e(u)||r.value.forEach((t,s)=>{a===function(c,w){var q,Y,Z,J;const O=e(r),Q=O.length;if(Q===0||!c.states.inStage)return!1;const he=w+1,pe=w-1,U=Q-1,fe=O[U].states.active,me=O[0].states.active,ge=(Y=(q=O[he])==null?void 0:q.states)==null?void 0:Y.active,ye=(J=(Z=O[pe])==null?void 0:Z.states)==null?void 0:J.active;return w===U&&me||ge?"left":!!(w===0&&fe||ye)&&"right"}(t,s)&&(t.states.hover=!0)})},handleButtonLeave:function(){e(u)||r.value.forEach(a=>{a.states.hover=!1})},handleIndicatorClick:function(a){n.value=a},handleMouseEnter:function(){I.value=!0,o.pauseOnHover&&E()},handleMouseLeave:function(){I.value=!1,N()},setActiveItem:b,prev:function(){b(n.value-1)},next:function(){b(n.value+1)},PlaceholderItem:function(){var a;const t=(a=M.default)==null?void 0:a.call(M);if(!t)return null;const s=Ee(t).filter(c=>Ne(c)&&c.type.name==="ElCarouselItem");return(s==null?void 0:s.length)===2&&o.loop&&!x.value?(y.value=!0,s):(y.value=!1,null)},isTwoLengthShow:a=>!y.value||(n.value<=1?a<=1:a>1),throttledArrowClick:$,throttledIndicatorHover:D}},Ke=["onMouseenter","onClick"],We={key:0},qe=F({name:"ElCarousel"});var Fe=ue(F({...qe,props:Re,emits:ze,setup(o,{expose:_,emit:i}){const r=o,{root:B,activeIndex:g,arrowDisplay:M,hasLabel:n,hover:d,isCardType:I,items:h,isVertical:k,containerStyle:y,handleButtonEnter:S,handleButtonLeave:C,handleIndicatorClick:x,handleMouseEnter:u,handleMouseLeave:f,setActiveItem:$,prev:D,next:E,PlaceholderItem:N,isTwoLengthShow:T,throttledArrowClick:b,throttledIndicatorHover:v}=je(r,i),l=le("carousel"),p=A(()=>{const t=[l.b(),l.m(r.direction)];return e(I)&&t.push(l.m("card")),t}),a=A(()=>{const t=[l.e("indicators"),l.em("indicators",r.direction)];return e(n)&&t.push(l.em("indicators","labels")),r.indicatorPosition==="outside"&&t.push(l.em("indicators","outside")),e(k)&&t.push(l.em("indicators","right")),t});return _({setActiveItem:$,prev:D,next:E}),(t,s)=>(H(),V("div",{ref_key:"root",ref:B,class:L(e(p)),onMouseenter:s[6]||(s[6]=z((...c)=>e(u)&&e(u)(...c),["stop"])),onMouseleave:s[7]||(s[7]=z((...c)=>e(f)&&e(f)(...c),["stop"]))},[G("div",{class:L(e(l).e("container")),style:ie(e(y))},[e(M)?(H(),oe(se,{key:0,name:"carousel-arrow-left",persisted:""},{default:X(()=>[R(G("button",{type:"button",class:L([e(l).e("arrow"),e(l).em("arrow","left")]),onMouseenter:s[0]||(s[0]=c=>e(S)("left")),onMouseleave:s[1]||(s[1]=(...c)=>e(C)&&e(C)(...c)),onClick:s[2]||(s[2]=z(c=>e(b)(e(g)-1),["stop"]))},[j(e(ne),null,{default:X(()=>[j(e(He))]),_:1})],34),[[K,(t.arrow==="always"||e(d))&&(r.loop||e(g)>0)]])]),_:1})):W("v-if",!0),e(M)?(H(),oe(se,{key:1,name:"carousel-arrow-right",persisted:""},{default:X(()=>[R(G("button",{type:"button",class:L([e(l).e("arrow"),e(l).em("arrow","right")]),onMouseenter:s[3]||(s[3]=c=>e(S)("right")),onMouseleave:s[4]||(s[4]=(...c)=>e(C)&&e(C)(...c)),onClick:s[5]||(s[5]=z(c=>e(b)(e(g)+1),["stop"]))},[j(e(ne),null,{default:X(()=>[j(e(Le))]),_:1})],34),[[K,(t.arrow==="always"||e(d))&&(r.loop||e(g)<e(h).length-1)]])]),_:1})):W("v-if",!0),j(e(N)),re(t.$slots,"default")],6),t.indicatorPosition!=="none"?(H(),V("ul",{key:0,class:L(e(a))},[(H(!0),V(_e,null,Be(e(h),(c,w)=>R((H(),V("li",{key:w,class:L([e(l).e("indicator"),e(l).em("indicator",t.direction),e(l).is("active",w===e(g))]),onMouseenter:q=>e(v)(w),onClick:z(q=>e(x)(w),["stop"])},[G("button",{class:L(e(l).e("button"))},[e(n)?(H(),V("span",We,Te(c.props.label),1)):W("v-if",!0)],2)],42,Ke)),[[K,e(T)(w)]])),128))],2)):W("v-if",!0)],34))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/carousel/src/carousel.vue"]]);const Ge=ee({name:{type:String,default:""},label:{type:[String,Number],default:""}}),Xe=(o,_)=>{const i=Ae(ve),r=ae(),B=.83,g=m(),M=m(!1),n=m(0),d=m(1),I=m(!1),h=m(!1),k=m(!1),y=m(!1),{isCardType:S,isVertical:C}=i,x=(u,f,$)=>{var D;const E=e(S),N=(D=i.items.value.length)!=null?D:Number.NaN,T=u===f;E||De($)||(y.value=T||u===$),!T&&N>2&&i.loop&&(u=function(v,l,p){const a=p-1,t=p/2;return l===0&&v===a?-1:l===a&&v===0?p:v<l-1&&l-v>=t?p+1:v>l+1&&v-l>=t?-2:v}(u,f,N));const b=e(C);I.value=T,E?(k.value=Math.round(Math.abs(u-f))<=1,n.value=function(v,l){var p,a;const t=e(C)?((p=i.root.value)==null?void 0:p.offsetHeight)||0:((a=i.root.value)==null?void 0:a.offsetWidth)||0;return k.value?t*(1.17*(v-l)+1)/4:v<l?-1.83*t/4:3.83*t/4}(u,f),d.value=e(I)?1:B):n.value=function(v,l,p){const a=i.root.value;return a?((p?a.offsetHeight:a.offsetWidth)||0)*(v-l):0}(u,f,b),h.value=!0,T&&g.value&&i.setContainerHeight(g.value.offsetHeight)};return te(()=>{i.addItem({props:o,states:Ve({hover:M,translate:n,scale:d,active:I,ready:h,inStage:k,animating:y}),uid:r.uid,translateItem:x})}),$e(()=>{i.removeItem(r.uid)}),{carouselItemRef:g,active:I,animating:y,hover:M,inStage:k,isVertical:C,translate:n,isCardType:S,scale:d,ready:h,handleItemClick:function(){if(i&&e(S)){const u=i.items.value.findIndex(({uid:f})=>f===r.uid);i.setActiveItem(u)}}}},Ye=F({name:"ElCarouselItem"});var de=ue(F({...Ye,props:Ge,setup(o){const _=o,i=le("carousel"),{carouselItemRef:r,active:B,animating:g,hover:M,inStage:n,isVertical:d,translate:I,isCardType:h,scale:k,ready:y,handleItemClick:S}=Xe(_),C=A(()=>({transform:[`${"translate"+(e(d)?"Y":"X")}(${e(I)}px)`,`scale(${e(k)})`].join(" ")}));return(x,u)=>R((H(),V("div",{ref_key:"carouselItemRef",ref:r,class:L([e(i).e("item"),e(i).is("active",e(B)),e(i).is("in-stage",e(n)),e(i).is("hover",e(M)),e(i).is("animating",e(g)),{[e(i).em("item","card")]:e(h),[e(i).em("item","card-vertical")]:e(h)&&e(d)}]),style:ie(e(C)),onClick:u[0]||(u[0]=(...f)=>e(S)&&e(S)(...f))},[e(h)?R((H(),V("div",{key:0,class:L(e(i).e("mask"))},null,2)),[[K,!e(B)]]):W("v-if",!0),re(x.$slots,"default")],6)),[[K,e(y)]])}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/carousel/src/carousel-item.vue"]]);const Ze=Oe(Fe,{CarouselItem:de}),Je=Pe(de);export{Je as E,Ze as a};
|