/** * UI Initiative Tinder Slider * * Tinder-like cards slider * * https://uiinitiative.com * * Copyright 2024 UI Initiative * * Released under the UI Initiative Regular License * * August 26, 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).EffectTinder=t()}(this,(function(){"use strict";return function({swiper:e,on:t}){let r,s,i,n,o,a,d;const c=()=>e.virtual&&e.params.virtual.enabled,l=()=>c()?e.slides.find((t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e.activeIndex)):e.slides[e.activeIndex];e.tinder={no(){e.touches.currentX=0,e.touches.startX=e.size/2;const t=l();t.translateY=0,t.style.transformOrigin="center bottom",t.transformOrigin="bottom",e.slideNext(),e.animating=!1},yes(){e.touches.currentX=e.size,e.touches.startX=e.size/2;const t=l();t.translateY=0,t.style.transformOrigin="center bottom",t.transformOrigin="bottom",e.slideNext(),e.animating=!1}};const u=(e,t)=>{e&&t(e)},p=(t,r)=>{e.slides.forEach(((s,i)=>{(c()?parseInt(s.getAttribute("data-swiper-slide-index"),10):i){if(i||o)if(n)u(document.querySelector(".swiper-tinder-button-yes"),(e=>e.classList.add("swiper-tinder-button-hidden"))),u(document.querySelector(".swiper-tinder-button-no"),(e=>e.classList.add("swiper-tinder-button-hidden")));else{const i=Math.max(Math.min(10*r-.5,1),0);u(t.querySelector(".swiper-tinder-label-yes"),(e=>e.style.opacity=s>0?i:0)),u(t.querySelector(".swiper-tinder-label-no"),(e=>e.style.opacity=s<0?i:0)),u(document.querySelector(".swiper-tinder-button-yes"),(e=>e.classList.remove("swiper-tinder-button-hidden"))),u(document.querySelector(".swiper-tinder-button-no"),(e=>e.classList.remove("swiper-tinder-button-hidden"))),r>=e.params.longSwipesRatio&&!n?s>0?(u(document.querySelector(".swiper-tinder-button-yes"),(e=>e.classList.add("swiper-tinder-button-active"))),u(document.querySelector(".swiper-tinder-button-no"),(e=>e.classList.remove("swiper-tinder-button-active")))):(u(document.querySelector(".swiper-tinder-button-yes"),(e=>e.classList.remove("swiper-tinder-button-active"))),u(document.querySelector(".swiper-tinder-button-no"),(e=>e.classList.add("swiper-tinder-button-active")))):(u(document.querySelector(".swiper-tinder-button-yes"),(e=>e.classList.remove("swiper-tinder-button-active"))),u(document.querySelector(".swiper-tinder-button-no"),(e=>e.classList.remove("swiper-tinder-button-active"))))}};t("beforeInit",(()=>{if("tinder"!==e.params.effect)return;e.classNames.push(`${e.params.containerModifierClass}tinder`),e.classNames.push(`${e.params.containerModifierClass}3d`);const t={watchSlidesProgress:!0,virtualTranslate:!0,longSwipesRatio:.1,oneWayMovement:!0};Object.assign(e.params,t),Object.assign(e.originalParams,t)})),t("init",(()=>{e.el&&e.el.addEventListener&&e.el.addEventListener("click",(t=>{t.target.closest(".swiper-tinder-button-yes")&&e.tinder.yes(),t.target.closest(".swiper-tinder-button-no")&&e.tinder.no()}))})),t("touchStart",((t,d)=>{if("tinder"!==e.params.effect)return;i=!0,o=!0,a=!0;const{clientY:c}=d,{top:l,height:u}=e.el.getBoundingClientRect();s=!1;const m=d.target.closest(".swiper-slide, swiper-slide");m&&m.classList.contains("swiper-slide-active")&&(r=m,n=e.activeIndex,c-l>u/2?p("center top","top"):p("center bottom","bottom"))})),t("touchMove",(t=>{if("tinder"!==e.params.effect)return;const i=t.touches.currentY-t.touches.startY,n=t.touches.currentX-t.touches.startX;s=(Math.abs(n),e.size,!1),r&&(r.translateY=i)})),t("touchEnd",(()=>{"tinder"===e.params.effect&&(s=!1,o=!1,r&&(Math.abs(r.progress)<.1||l()===r)&&delete r.translateY,requestAnimationFrame((()=>{i=!1})))})),t("setTransition",((t,r)=>{"tinder"===e.params.effect&&(t.slides.forEach((e=>{e.style.transitionDuration=`${r}ms`,e.querySelectorAll(".swiper-tinder-label").forEach((t=>{t.style.transitionDuration=`${r}ms`,e.progress<=0&&(t.style.opacity=0)}))})),requestAnimationFrame((()=>{u(document.querySelector(".swiper-tinder-button-yes"),(e=>e.classList.remove("swiper-tinder-button-active"))),u(document.querySelector(".swiper-tinder-button-no"),(e=>e.classList.remove("swiper-tinder-button-active")))})))})),t("slideChange",(()=>{const t=c()?e.virtual.slides.length:e.slides.length;if(e.activeIndex===t-1&&!e.params.loop){const t=e.slides[e.slides.length-1],r=t.progress,s=Math.min(Math.max(r,-2),2),i=e.touches.currentX-e.touches.startX;m(t,s,i,!0,!0)}o||(a=!1,e.emit("tinderSwipe",d<0?"left":"right"))})),t("transitionStart",(()=>{a&&e.activeIndex!==n&&(a=!1,e.emit("tinderSwipe",d<0?"left":"right"))})),t("setTranslate",((t,r)=>{if("tinder"!==e.params.effect)return;if(s)return;if(o&&void 0!==n&&void 0!==e.snapGrid[n+1]){const t=Math.abs(e.snapGrid[n]),s=Math.abs(t+e.size)-8;if(Math.abs(r)>s)return void e.setTranslate(-s)}const a=e.touches.currentX-e.touches.startX;d=a;const{slides:l}=e,u=c()?e.virtual.slides.length:l.length,p=e.activeIndex===u-1&&!e.params.loop;l.forEach(((t,r)=>{const s=t.progress,n=Math.min(Math.max(s,-2),2);let o=-t.swiperSlideOffset,d=0,c=100*n,l=0,f=1;(n>0||0===n&&i)&&(c=0,l=45*n*(a<0?-1:1),o=e.size*(a<0?-1:1)*n+o,void 0!==t.translateY&&(d=t.translateY),m(t,n,a,p)),"top"===t.transformOrigin&&(l=-l),n>1&&(f=5*(1.2-n));const h=`\n translate3d(${o}px, ${d}px, ${c}px)\n rotateZ(${l}deg)\n `;n>=1&&!t.tinderTransform&&(t.tinderTransform=h,t.tinderTransformSlideIndex=r),(t.tinderTransform&&t.tinderTransformSlideIndex!==r||!i)&&(t.tinderTransform=""),t.style.zIndex=-Math.abs(Math.round(s))+u,t.style.transform=t.tinderTransform||h,t.style.opacity=f}))}))}})); //# sourceMappingURL=effect-tinder.min.js.map