2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
"use strict";(()=>{var f=Math.pow;(self.webpackChunkFalcon_theme=self.webpackChunkFalcon_theme||[]).push([[790],{9790:(le,P,Y)=>{Y.r(P),Y.d(P,{default:()=>w});var V=Y(7628),d=Y(9482);function w({swiper:a,extendParams:ee,on:g,emit:te}){const H=(0,V.Jj)();ee({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),a.zoom={enabled:!1};let m=1,b=!1,y,z;const s=[],e={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},t={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},l={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let D=1;Object.defineProperty(a.zoom,"scale",{get(){return D},set(i){if(D!==i){const o=e.imageEl,n=e.slideEl;te("zoomChange",i,o,n)}D=i}});function I(){if(s.length<2)return 1;const i=s[0].pageX,o=s[0].pageY,n=s[1].pageX,r=s[1].pageY;return Math.sqrt(f(n-i,2)+f(r-o,2))}function ae(){if(s.length<2)return{x:null,y:null};const i=e.imageEl.getBoundingClientRect();return[(s[0].pageX+(s[1].pageX-s[0].pageX)/2-i.x)/m,(s[0].pageY+(s[1].pageY-s[0].pageY)/2-i.y)/m]}function ie(){return a.isElement?"swiper-slide":`.${a.params.slideClass}`}function C(i){const o=ie();return!!(i.target.matches(o)||a.slides.filter(n=>n.contains(i.target)).length>0)}function ne(i){const o=`.${a.params.zoom.containerClass}`;return!!(i.target.matches(o)||[...a.el.querySelectorAll(o)].filter(n=>n.contains(i.target)).length>0)}function A(i){if(i.pointerType==="mouse"&&s.splice(0,s.length),!C(i))return;const o=a.params.zoom;if(y=!1,z=!1,s.push(i),!(s.length<2)){if(y=!0,e.scaleStart=I(),!e.slideEl){e.slideEl=i.target.closest(`.${a.params.slideClass}, swiper-slide`),e.slideEl||(e.slideEl=a.slides[a.activeIndex]);let n=e.slideEl.querySelector(`.${o.containerClass}`);if(n&&(n=n.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),e.imageEl=n,n?e.imageWrapEl=(0,d.pZ)(e.imageEl,`.${o.containerClass}`)[0]:e.imageWrapEl=void 0,!e.imageWrapEl){e.imageEl=void 0;return}e.maxRatio=e.imageWrapEl.getAttribute("data-swiper-zoom")||o.maxRatio}if(e.imageEl){const[n,r]=ae();e.originX=n,e.originY=r,e.imageEl.style.transitionDuration="0ms"}b=!0}}function _(i){if(!C(i))return;const o=a.params.zoom,n=a.zoom,r=s.findIndex(c=>c.pointerId===i.pointerId);r>=0&&(s[r]=i),!(s.length<2)&&(z=!0,e.scaleMove=I(),e.imageEl&&(n.scale=e.scaleMove/e.scaleStart*m,n.scale>e.maxRatio&&(n.scale=e.maxRatio-1+f(n.scale-e.maxRatio+1,.5)),n.scale<o.minRatio&&(n.scale=o.minRatio+1-f(o.minRatio-n.scale+1,.5)),e.imageEl.style.transform=`translate3d(0,0,0) scale(${n.scale})`))}function O(i){if(!C(i)||i.pointerType==="mouse"&&i.type==="pointerout")return;const o=a.params.zoom,n=a.zoom,r=s.findIndex(c=>c.pointerId===i.pointerId);r>=0&&s.splice(r,1),!(!y||!z)&&(y=!1,z=!1,e.imageEl&&(n.scale=Math.max(Math.min(n.scale,e.maxRatio),o.minRatio),e.imageEl.style.transitionDuration=`${a.params.speed}ms`,e.imageEl.style.transform=`translate3d(0,0,0) scale(${n.scale})`,m=n.scale,b=!1,n.scale>1&&e.slideEl?e.slideEl.classList.add(`${o.zoomedSlideClass}`):n.scale<=1&&e.slideEl&&e.slideEl.classList.remove(`${o.zoomedSlideClass}`),n.scale===1&&(e.originX=0,e.originY=0,e.slideEl=void 0)))}function oe(i){const o=a.device;if(!e.imageEl||t.isTouched)return;o.android&&i.cancelable&&i.preventDefault(),t.isTouched=!0;const n=s.length>0?s[0]:i;t.touchesStart.x=n.pageX,t.touchesStart.y=n.pageY}function Z(i){if(!C(i)||!ne(i))return;const o=a.zoom;if(!e.imageEl||!t.isTouched||!e.slideEl)return;t.isMoved||(t.width=e.imageEl.offsetWidth,t.height=e.imageEl.offsetHeight,t.startX=(0,d.R6)(e.imageWrapEl,"x")||0,t.startY=(0,d.R6)(e.imageWrapEl,"y")||0,e.slideWidth=e.slideEl.offsetWidth,e.slideHeight=e.slideEl.offsetHeight,e.imageWrapEl.style.transitionDuration="0ms");const n=t.width*o.scale,r=t.height*o.scale;if(n<e.slideWidth&&r<e.slideHeight)return;if(t.minX=Math.min(e.slideWidth/2-n/2,0),t.maxX=-t.minX,t.minY=Math.min(e.slideHeight/2-r/2,0),t.maxY=-t.minY,t.touchesCurrent.x=s.length>0?s[0].pageX:i.pageX,t.touchesCurrent.y=s.length>0?s[0].pageY:i.pageY,Math.max(Math.abs(t.touchesCurrent.x-t.touchesStart.x),Math.abs(t.touchesCurrent.y-t.touchesStart.y))>5&&(a.allowClick=!1),!t.isMoved&&!b){if(a.isHorizontal()&&(Math.floor(t.minX)===Math.floor(t.startX)&&t.touchesCurrent.x<t.touchesStart.x||Math.floor(t.maxX)===Math.floor(t.startX)&&t.touchesCurrent.x>t.touchesStart.x)){t.isTouched=!1;return}if(!a.isHorizontal()&&(Math.floor(t.minY)===Math.floor(t.startY)&&t.touchesCurrent.y<t.touchesStart.y||Math.floor(t.maxY)===Math.floor(t.startY)&&t.touchesCurrent.y>t.touchesStart.y)){t.isTouched=!1;return}}i.cancelable&&i.preventDefault(),i.stopPropagation(),t.isMoved=!0;const h=(o.scale-m)/(e.maxRatio-a.params.zoom.minRatio),{originX:E,originY:v}=e;t.currentX=t.touchesCurrent.x-t.touchesStart.x+t.startX+h*(t.width-E*2),t.currentY=t.touchesCurrent.y-t.touchesStart.y+t.startY+h*(t.height-v*2),t.currentX<t.minX&&(t.currentX=t.minX+1-f(t.minX-t.currentX+1,.8)),t.currentX>t.maxX&&(t.currentX=t.maxX-1+f(t.currentX-t.maxX+1,.8)),t.currentY<t.minY&&(t.currentY=t.minY+1-f(t.minY-t.currentY+1,.8)),t.currentY>t.maxY&&(t.currentY=t.maxY-1+f(t.currentY-t.maxY+1,.8)),l.prevPositionX||(l.prevPositionX=t.touchesCurrent.x),l.prevPositionY||(l.prevPositionY=t.touchesCurrent.y),l.prevTime||(l.prevTime=Date.now()),l.x=(t.touchesCurrent.x-l.prevPositionX)/(Date.now()-l.prevTime)/2,l.y=(t.touchesCurrent.y-l.prevPositionY)/(Date.now()-l.prevTime)/2,Math.abs(t.touchesCurrent.x-l.prevPositionX)<2&&(l.x=0),Math.abs(t.touchesCurrent.y-l.prevPositionY)<2&&(l.y=0),l.prevPositionX=t.touchesCurrent.x,l.prevPositionY=t.touchesCurrent.y,l.prevTime=Date.now(),e.imageWrapEl.style.transform=`translate3d(${t.currentX}px, ${t.currentY}px,0)`}function se(){const i=a.zoom;if(!e.imageEl)return;if(!t.isTouched||!t.isMoved){t.isTouched=!1,t.isMoved=!1;return}t.isTouched=!1,t.isMoved=!1;let o=300,n=300;const r=l.x*o,c=t.currentX+r,h=l.y*n,E=t.currentY+h;l.x!==0&&(o=Math.abs((c-t.currentX)/l.x)),l.y!==0&&(n=Math.abs((E-t.currentY)/l.y));const v=Math.max(o,n);t.currentX=c,t.currentY=E;const M=t.width*i.scale,u=t.height*i.scale;t.minX=Math.min(e.slideWidth/2-M/2,0),t.maxX=-t.minX,t.minY=Math.min(e.slideHeight/2-u/2,0),t.maxY=-t.minY,t.currentX=Math.max(Math.min(t.currentX,t.maxX),t.minX),t.currentY=Math.max(Math.min(t.currentY,t.maxY),t.minY),e.imageWrapEl.style.transitionDuration=`${v}ms`,e.imageWrapEl.style.transform=`translate3d(${t.currentX}px, ${t.currentY}px,0)`}function k(){const i=a.zoom;e.slideEl&&a.activeIndex!==a.slides.indexOf(e.slideEl)&&(e.imageEl&&(e.imageEl.style.transform="translate3d(0,0,0) scale(1)"),e.imageWrapEl&&(e.imageWrapEl.style.transform="translate3d(0,0,0)"),e.slideEl.classList.remove(`${a.params.zoom.zoomedSlideClass}`),i.scale=1,m=1,e.slideEl=void 0,e.imageEl=void 0,e.imageWrapEl=void 0,e.originX=0,e.originY=0)}function q(i){const o=a.zoom,n=a.params.zoom;if(!e.slideEl){i&&i.target&&(e.slideEl=i.target.closest(`.${a.params.slideClass}, swiper-slide`)),e.slideEl||(a.params.virtual&&a.params.virtual.enabled&&a.virtual?e.slideEl=(0,d.gD)(a.slidesEl,`.${a.params.slideActiveClass}`)[0]:e.slideEl=a.slides[a.activeIndex]);let X=e.slideEl.querySelector(`.${n.containerClass}`);X&&(X=X.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),e.imageEl=X,X?e.imageWrapEl=(0,d.pZ)(e.imageEl,`.${n.containerClass}`)[0]:e.imageWrapEl=void 0}if(!e.imageEl||!e.imageWrapEl)return;a.params.cssMode&&(a.wrapperEl.style.overflow="hidden",a.wrapperEl.style.touchAction="none"),e.slideEl.classList.add(`${n.zoomedSlideClass}`);let r,c,h,E,v,M,u,p,U,J,N,Q,W,S,$,T,L,R;typeof t.touchesStart.x=="undefined"&&i?(r=i.pageX,c=i.pageY):(r=t.touchesStart.x,c=t.touchesStart.y);const x=typeof i=="number"?i:null;m===1&&x&&(r=void 0,c=void 0),o.scale=x||e.imageWrapEl.getAttribute("data-swiper-zoom")||n.maxRatio,m=x||e.imageWrapEl.getAttribute("data-swiper-zoom")||n.maxRatio,i&&!(m===1&&x)?(L=e.slideEl.offsetWidth,R=e.slideEl.offsetHeight,h=(0,d.hH)(e.slideEl).left+H.scrollX,E=(0,d.hH)(e.slideEl).top+H.scrollY,v=h+L/2-r,M=E+R/2-c,U=e.imageEl.offsetWidth,J=e.imageEl.offsetHeight,N=U*o.scale,Q=J*o.scale,W=Math.min(L/2-N/2,0),S=Math.min(R/2-Q/2,0),$=-W,T=-S,u=v*o.scale,p=M*o.scale,u<W&&(u=W),u>$&&(u=$),p<S&&(p=S),p>T&&(p=T)):(u=0,p=0),x&&o.scale===1&&(e.originX=0,e.originY=0),e.imageWrapEl.style.transitionDuration="300ms",e.imageWrapEl.style.transform=`translate3d(${u}px, ${p}px,0)`,e.imageEl.style.transitionDuration="300ms",e.imageEl.style.transform=`translate3d(0,0,0) scale(${o.scale})`}function G(){const i=a.zoom,o=a.params.zoom;if(!e.slideEl){a.params.virtual&&a.params.virtual.enabled&&a.virtual?e.slideEl=(0,d.gD)(a.slidesEl,`.${a.params.slideActiveClass}`)[0]:e.slideEl=a.slides[a.activeIndex];let n=e.slideEl.querySelector(`.${o.containerClass}`);n&&(n=n.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),e.imageEl=n,n?e.imageWrapEl=(0,d.pZ)(e.imageEl,`.${o.containerClass}`)[0]:e.imageWrapEl=void 0}!e.imageEl||!e.imageWrapEl||(a.params.cssMode&&(a.wrapperEl.style.overflow="",a.wrapperEl.style.touchAction=""),i.scale=1,m=1,e.imageWrapEl.style.transitionDuration="300ms",e.imageWrapEl.style.transform="translate3d(0,0,0)",e.imageEl.style.transitionDuration="300ms",e.imageEl.style.transform="translate3d(0,0,0) scale(1)",e.slideEl.classList.remove(`${o.zoomedSlideClass}`),e.slideEl=void 0,e.originX=0,e.originY=0)}function j(i){const o=a.zoom;o.scale&&o.scale!==1?G():q(i)}function B(){const i=a.params.passiveListeners?{passive:!0,capture:!1}:!1,o=a.params.passiveListeners?{passive:!1,capture:!0}:!0;return{passiveListener:i,activeListenerWithCapture:o}}function F(){const i=a.zoom;if(i.enabled)return;i.enabled=!0;const{passiveListener:o,activeListenerWithCapture:n}=B();a.wrapperEl.addEventListener("pointerdown",A,o),a.wrapperEl.addEventListener("pointermove",_,n),["pointerup","pointercancel","pointerout"].forEach(r=>{a.wrapperEl.addEventListener(r,O,o)}),a.wrapperEl.addEventListener("pointermove",Z,n)}function K(){const i=a.zoom;if(!i.enabled)return;i.enabled=!1;const{passiveListener:o,activeListenerWithCapture:n}=B();a.wrapperEl.removeEventListener("pointerdown",A,o),a.wrapperEl.removeEventListener("pointermove",_,n),["pointerup","pointercancel","pointerout"].forEach(r=>{a.wrapperEl.removeEventListener(r,O,o)}),a.wrapperEl.removeEventListener("pointermove",Z,n)}g("init",()=>{a.params.zoom.enabled&&F()}),g("destroy",()=>{K()}),g("touchStart",(i,o)=>{a.zoom.enabled&&oe(o)}),g("touchEnd",(i,o)=>{a.zoom.enabled&&se(o)}),g("doubleTap",(i,o)=>{!a.animating&&a.params.zoom.enabled&&a.zoom.enabled&&a.params.zoom.toggle&&j(o)}),g("transitionEnd",()=>{a.zoom.enabled&&a.params.zoom.enabled&&k()}),g("slideChange",()=>{a.zoom.enabled&&a.params.zoom.enabled&&a.params.cssMode&&k()}),Object.assign(a.zoom,{enable:F,disable:K,in:q,out:G,toggle:j})}}}]);})();
|