/** * UI Initiative Material You Slider * * Material You Carousel made with Swiper * * https://uiinitiative.com * * Copyright 2024 UI Initiative * * Released under the UI Initiative Regular License * * October 23, 2024 */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).EffectMaterial=t()}(this,(function(){"use strict";function e({swiper:e,duration:t,transformElements:a,allSlides:s}){const{activeIndex:i}=e;if(e.params.virtualTranslate&&0!==t){let t,r=!1;t=s?a:a.filter((t=>{const a=t.classList.contains("swiper-slide-transform")?(t=>{if(!t.parentElement)return e.slides.filter((e=>e.shadowRoot&&e.shadowRoot===t.parentNode))[0];return t.parentElement})(t):t;return e.getSlideIndex(a)===i})),t.forEach((t=>{!function(e,t){t&&e.addEventListener("transitionend",(function a(s){s.target===e&&(t.call(e,s),e.removeEventListener("transitionend",a))}))}(t,(()=>{if(r)return;if(!e||e.destroyed)return;r=!0,e.animating=!1;const t=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});e.wrapperEl.dispatchEvent(t)}))}))}}return"undefined"!=typeof window&&window.SwiperElementRegisterParams&&window.SwiperElementRegisterParams(["materialEffect"]),function({swiper:t,on:a,extendParams:s}){s({materialEffect:{slideSplitRatio:.65}}),a("beforeInit",(()=>{if("material"!==t.params.effect)return;t.classNames.push(`${t.params.containerModifierClass}material`),t.isElement&&t.hostEl&&t.hostEl.classList.add(`swiper-${t.params.direction}`);const e={loopAdditionalSlides:1,watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode};Object.assign(t.params,e),Object.assign(t.originalParams,e)})),a("setTranslate",(()=>{"material"===t.params.effect&&(()=>{const{slides:e,slidesSizesGrid:a,params:s,size:i}=t,{slidesPerView:r,spaceBetween:l,cssMode:n,centeredSlides:o}=s,{slideSplitRatio:d}=s.materialEffect,c=o&&parseInt(r,10)!==r,p=o?c?(r-Math.floor(r))/2:.5:Math.min(Math.max(d,0),1),f=o?c?(r-Math.floor(r))/2:.5:1-Math.min(Math.max(d,0),1),m=c?.5-f+.5:f;for(let s=0;s1){if(M<=0&&M>=-(_-2)&&(S=E,b=1,g=1),q&&M<-(_-Math.ceil(_/2))){const e=Math.ceil(_/2)-Math.abs(M);b=e,g=b**4,S=E+v*(1-e)*(1+2*x)}if(A&&M<-(_/2-1)&&M>=-_/2){const e=_/2-Math.abs(M);b=p-x+(m+2*x)*(_/2-Math.abs(M)),g=((b-p)/(1-p))**4,S=E+v*(m+x)*(1-e)}if(A&&M<-_/2){let e=_/2+1-Math.abs(M);b=0,e>=0&&(e=2*-x+e*(1+2*x),e=Math.max(Math.min(e,1),0),b=(f-x)*e),S=E+v*(m+x)*(2-e)+v*(f-x)*(1-e)}}else b=1+M,S=-y,g=b**4;if(1===r)M>0&&(b=1-M,S=-y+i*Math.min(M,1),g=b**4);else{if(M>0&&M<=r-2&&(S=E,b=1,g=1),A?M>_/2-1&&M<=_/2:M>_-2&&M<=_-1){const e=A?Math.floor(_/2):1;b=p-x+(m+2*x)*(_-e-Math.abs(M)),S=E,g=1===p?b**4:((b-p)/(1-p))**4}if(q&&M>r-Math.ceil(r/2)){const e=Math.ceil(r/2)-(r-Math.abs(M));S=E-v*(2*x)*e,b=1-e,g=b**4}if(M>r-1&&M<=r&&!o){const e=r-Math.abs(M),t=f-x;b=t+(p-x-t)*e,S=E-v*(f+x)*(1-e),0===f&&(g=b**4)}if(M>(o?_/2:_)&&!q){let e=(o?_/2+1:_+1)-Math.abs(M),t=0;b=0,e>=0&&(e=2*-x+e*(1+2*x),e=Math.max(Math.min(e,1),0),b=(f-x)*e,t=-e*(f+x)*v+e*l*(c?2:1)),S=-y+i*Math.min(M,1)+t,g=0}}b<0&&(b=0),b>1&&(b=1),0===b&&(b=1e-5),d.style.setProperty("--swiper-material-scale",b),u.forEach((e=>{e.style.opacity=g})),w.forEach((e=>{let t=parseFloat(e.getAttribute("data-swiper-material-scale"));(Number.isNaN(t)||!t&&0!==t)&&(t=1),e.style.transform=`scale(${1+(t-1)*(1-b)})`})),t.isHorizontal()?(h.style.width=100*b+"%",h.style.transform=`translate3d(${S-P}px, 0, 0)`):(h.style.height=100*b+"%",h.style.transform=`translate3d(0, ${S-P}px, 0)`)}})()})),a("setTransition",((a,s)=>{"material"===t.params.effect&&(a=>{const{slides:s}=t,i=[];for(let e=0;e{e.style.transitionDuration=`${a}ms`})),i.push(r)}e({swiper:t,duration:a,transformElements:i,allSlides:!0})})(s)})),a("slidesUpdated",(()=>{if(!t.params.centeredSlides&&t.params.slidesPerView>1&&!t.params.loop&&t.params.materialEffect.slideSplitRatio<1){const e=t.snapGrid[t.snapGrid.length-1];t.snapGrid.push(e+t.slidesSizesGrid[0]+t.params.spaceBetween)}t.__preventObserver__=!0,t.el.style.setProperty("--swiper-material-slide-size",`${t.slidesSizesGrid[0]}px`),requestAnimationFrame((()=>{t.__preventObserver__=!1}))}))}})); //# sourceMappingURL=effect-material.min.js.map