el-carousel-item-5c83a4da.js 8.6 KB

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