1import v from"./nLbThxuC.js";import{V as y}from"./BDNJhvSR.js";import{d as S,t as p}from"./Dx5Ftc7Y.js";import{l as w,n as T,p as g,i as u,c as E}from"./rxGS4DNx.js";import{v as b,y as x}from"./dW4zwUXO.js";import{N as M}from"./C3U7V3Zs.js";import"./Cpj98o6Y.js";function C(s){const{effect:t,swiper:e,on:i,setTranslate:l,setTransition:a,overwriteParams:r,perspective:o,recreateShadows:n,getEffectParams:m}=s;i("beforeInit",()=>{if(e.params.effect!==t)return;e.classNames.push(`${e.params.containerModifierClass}${t}`),o&&o()&&e.classNames.push(`${e.params.containerModifierClass}3d`);const h=r?r():{};Object.assign(e.params,h),Object.assign(e.originalParams,h)}),i("setTranslate _virtualUpdated",()=>{e.params.effect===t&&l()}),i("setTransition",(h,c)=>{e.params.effect===t&&a(c)}),i("transitionEnd",()=>{if(e.params.effect===t&&n){if(!m||!m().slideShadows)return;e.slides.forEach(h=>{h.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(c=>c.remove())}),n()}});let d;i("virtualUpdate",()=>{e.params.effect===t&&(e.slides.length||(d=!0),requestAnimationFrame(()=>{d&&e.slides&&e.slides.length&&(l(),d=!1)}))})}function _(s,t){const e=w(t);return e!==t&&(e.style.backfaceVisibility="hidden",e.style["-webkit-backface-visibility"]="hidden"),e}function V({swiper:s,duration:t,transformElements:e,allSlides:i}){const{activeIndex:l}=s;if(s.params.virtualTranslate&&t!==0){let a=!1,r;r=e,r.forEach(o=>{T(o,()=>{if(a||!s||s.destroyed)return;a=!0,s.animating=!1;const n=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(n)})})}}function I({swiper:s,extendParams:t,on:e}){t({fadeEffect:{crossFade:!1}}),C({effect:"fade",swiper:s,on:e,setTranslate:()=>{const{slides:a}=s,r=s.params.fadeEffect;for(let o=0;o<a.length;o+=1){const n=s.slides[o];let d=-n.swiperSlideOffset;s.params.virtualTranslate||(d-=s.translate);let h=0;s.isHorizontal()||(h=d,d=0);const c=s.params.fadeEffect.crossFade?Math.max(1-Math.abs(n.progress),0):1+Math.min(Math.max(n.progress,-1),0),f=_(r,n);f.style.opacity=c,f.style.transform=`translate3d(${d}px, ${h}px, 0px)`}},setTransition:a=>{const r=s.slides.map(o=>w(o));r.forEach(o=>{o.style.transitionDuration=`${a}ms`}),V({swiper:s,duration:a,transformElements:r,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!s.params.cssMode})})}class $ extends v{constructor(t){super(t),this.onModalOpen=this.onModalOpen.bind(this),this.onModalClose=this.onModalClose.bind(this),this.updatePreview=this.updatePreview.bind(this),this.onModalTriggerClick=this.onModalTriggerClick.bind(this),this.setImageHeight=this.setImageHeight.bind(this),this.setupDefaults(),this.addListeners()}setupDefaults(){this.dom={previews:this.el.querySelector(".swatch-gallery-preview__slider"),previewTriggers:this.el.querySelectorAll(".swatch-gallery-swatch__button"),modalTrigger:this.el.querySelectorAll(".swatch-gallery-preview__modal-trigger"),modalSlidesContainer:this.el.querySelector(".swatch-gallery-modal__slider"),modalCloseTrigger:this.el.querySelector(".btn-close--modal"),modalHolder:this.el.querySelector(".swatch-gallery-modal-holder")},this.initPreviews(),this.setImageHeight(),this.modal=new y({onOpen:this.onModalOpen,onBeforeClose:this.onModalClose,clickOutside:!0,class:"modal-open"}),this.index=0,this.modalSwiper=null}addListeners(){this.dom.modalTrigger.forEach(t=>{t.addEventListener("click",this.onModalTriggerClick)}),this.dom.previewTriggers.forEach(t=>{t.addEventListener("click",this.updatePreview)}),this.dom.modalCloseTrigger&&this.dom.modalCloseTrigger.addEventListener("click",()=>this.modal.close()),window.addEventListener("resize",S(this.setImageHeight,100))}setImageHeight(){if(!this.dom||!this.dom.previewTriggers.length)return;this.dom.previewTriggers.forEach(i=>i.style.height="auto");const t=Array.from(this.dom.previewTriggers).map(i=>i.offsetHeight),e=Math.max(...t);this.dom.previewTriggers.forEach(i=>i.style.height=`${e}px`)}initPreviews(){this.dom.previews&&(g(this.dom.previews,".swatch-gallery-preview__slide"),this.previewsSwiper=new u(this.dom.previews,{modules:[I],effect:"fade",fadeEffect:{crossFade:!0},allowTouchMove:!1,slidesPerView:1,speed:300,slideSelector:".swatch-gallery-preview__slide"}))}updatePreview(t){const i=t.currentTarget.parentElement,l=Array.from(i.parentElement.children);if(this.index=l.indexOf(i),window.matchMedia("(max-width: 639px)").matches){const a=this.dom.modalHolder.getAttribute("id"),r=a.startsWith("#")?a:`#${a}`;this.modal.open(r);return}this.previewsSwiper&&this.previewsSwiper.slideTo(this.index)}onModalTriggerClick(t){if(this.previewsSwiper&&(this.index=this.previewsSwiper.activeIndex),this.dom){const e=this.dom.modalHolder.getAttribute("id"),i=e.startsWith("#")?e:`#${e}`;this.modal.open(i)}}onModalOpen(){g(this.dom.modalSlidesContainer,".swatch-gallery-modal__slide");const{prevBtn:t,nextBtn:e}=E(this.dom.modalSlidesContainer);this.modalSwiper=u(this.dom.modalSlidesContainer,{modules:[M],initialSlide:this.index,slidesPerView:1,spaceBetween:0,loop:!1,slideSelector:".swatch-gallery-modal__slide",navigation:{nextEl:e,prevEl:t},on:{init:i=>{this.handleVideo(i.activeIndex)},slideChange:i=>{const l=i.previousIndex,a=i.activeIndex;this.index=a,this.resetVideo(l),this.handleVideo(a)}}})}onModalClose(){this.modalSwiper&&(this.resetVideo(this.index),this.modalSwiper.destroy(!0,!1),this.modalSwiper=null)}handleVideo(t){const e=this.modalSwiper?this.modalSwiper.slides[t]:null;!e||!e.dataset.videoId||this.playVideo(e)}playVideo(t){const e=t.dataset.videoId,i=t.dataset.videoType,l=this.getVideoContent(e,i),a=t.querySelector(".swatch-gallery-modal__image");a&&(a.innerHTML=l)}getVideoContent(t,e){let i;switch(e){case"youtube":i=p(x);break;case"vimeo":i=p(b);break;default:return""}return i({videoId:t,title:""})}resetVideo(t){if(!this.modalSwiper||!this.modalSwiper.slides[t])return;const i=this.modalSwiper.slides[t].querySelector(".swatch-gallery-modal__image");i&&(i.innerHTML="")}}export{$ as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.