PageSourceSearch

https://cdn.enjoy365.ch/theme/708fe8aec540dfc0ba91690406c57400/js/…/storefront.zoom-modal.plugin.347643.js

js enjoy365.ch collected 2026-09-24 10:58:22 UTC 16,340 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[39043],{2308:(t,e,i)=>{i.d(e,{FM:()=>o,P:()=>n});class s{get dimension(){return this.entries.length}validateDimensions(t2){if(this.dimension!==t2.dimension)throw Error("[Vector] dimension mismatch expected ".concat(this.dimension," got ").concat(t2.dimension))}get x(){return this.entries[0]}set x(t2){this.entries[0]=t2}get y(){return this.entries[1]}set y(t2){this.dimension>1&&(this.entries[1]=t2)}get z(){return this.entries[2]}set z(t2){this.dimension>2&&(this.entries[2]=t2)}get w(){return this.entries[3]}set w(t2){this.dimension>3&&(this.entries[3]=t2)}length(){return Math.sqrt(this.entries.reduce((t2,e2)=>t2+=e2*e2,0))}add(t2){return this.validateDimensions(t2),new this.constructor(this.entries.map((e2,i2)=>e2+t2.entries[i2]))}multiply(t2){if(t2 instanceof s)return this.validateDimensions(t2),new this.constructor(this.entries.map((e2,i2)=>e2*t2.entries[i2]));if(typeof t2!="number"||Number.isNaN(t2))throw Error("[Vector] multiply: factor must be number or vector");return new this.constructor(this.entries.map(e2=>t2*e2))}subtract(t2){return this.add(t2.multiply(-1))}divide(t2){if(t2 instanceof s)return new this.constructor(this.entries.map((e2,i2)=>e2/t2.entries[i2]));if(t2===0)throw Error("Can't divide by 0");return this.multiply(1/t2)}normalize(){return new this.constructor(this.divide(this.length()))}equals(){for(var t2=arguments.length,e2=Array(t2),i2=0;i2<t2;i2++)e2[i2]=arguments[i2];let o2=e2[0]instanceof s?e2[0]:Array.isArray(e2[0])?new s(e2[0]):new s(e2);try{return this.validateDimensions(o2),this.entries.reduce((t3,e3,i3)=>(e3!==o2.entries[i3]&&(t3=!1),t3),!0)}catch(t3){return!1}}dot(t2){return this.validateDimensions(t2),this.entries.reduce((e2,i2,s2)=>e2+=i2*t2.entries[s2],0)}clamp(t2,e2){return typeof t2=="number"&&(t2=new this.constructor(Array(this.dimension).fill(t2))),typeof e2=="number"&&(e2=new this.constructor(Array(this.dimension).fill(e2))),new this.constructor(this.entries.map((i2,s2)=>i2<t2.entries[s2]?t2.entries[s2]:i2>e2.entries[s2]?e2.entries[s2]:i2))}constructor(t2){this.entries=t2.map((t3,e2)=>{if(typeof t3!="number")throw Error("[Vector] argument ".concat(e2," must be a number ").concat(typeof t3," given."));return t3})}}class o extends s{angle(){return(Math.atan2(this.y,this.x)*(180/Math.PI)+360)%360}constructor(t2,e2){if(t2 instanceof s){super(t2.entries.slice(0,2));return}if(Array.isArray(t2)){super(t2.slice(0,2));return}super([t2,e2])}}class n extends s{cross(t2){return new this.constructor(this.y*t2.z-this.z*t2.y,this.z*t2.x-this.x*t2.z,this.x*t2.y-this.y*t2.x)}constructor(t2,e2,i2){if(t2 instanceof s){super(t2.entries.slice(0,3));return}if(Array.isArray(t2)){super(t2.slice(0,3));return}super([t2,e2,i2])}}},9043:(t,e,i)=>{i.r(e),i.d(e,{default:()=>d});var s=i(9568),o=i(5206),n=i(3266),r=i(4049),a=i(1272),l=i.n(a),h=i(2308);class m extends s.Z{init(){this._modal=this.el.closest(this.options.imageZoomModalSelector),this._image=r.Z.querySelector(this.el,this.options.imageSelector),this._zoomInActionElement=r.Z.querySelector(this._modal,this.options.zoomInActionSelector),this._zoomResetActionElement=r.Z.querySelector(this._modal,this.options.zoomResetActionSelector),this._zoomOutActionElement=r.Z.querySelector(this._modal,this.options.zoomOutActionSelector),this._imageMaxSize=new h.FM(this._image.naturalWidth,this._image.naturalHeight).multiply(2),this._imageSize=new h.FM(this._image.offsetWidth,this._image.offsetHeight),this._containerSize=new h.FM(this.el.offsetWidth,this.el.offsetHeight),this._storedTransform=new h.P(0,0,1),this._transform=new h.P(this._storedTransform.x,this._storedTransform.y,this._storedTransform.z),this._translateRange=new h.FM(0,0),this._updateTranslateRange(),this._initHammer(),this._registerEvents(),this._setActionButtonState()}update(){this._updateTransform(),this._setActionButtonState()}_initHammer(){this._hammer=new(l())(this.el),this._hammer.get("pinch").set({enable:!0}),this._hammer.get("pan").set({direction:l().DIRECTION_ALL})}_registerEvents(){this._hammer.on("pan",t2=>this._onPan(t2)),this._hammer.on("pinch pinchmove",t2=>this._onPinch(t2)),this._hammer.on("doubletap",t2=>this._onDoubleTap(t2)),this._hammer.on("panend pancancel pinchend pinchcancel",t2=>this._onInteractionEnd(t2)),this.el.addEventListener("wheel",t2=>this._onMouseWheel(t2),!1),this._image.addEventListener("mousedown",t2=>t2.preventDefault(),!1),window.addEventListener("resize",t2=>this._onResize(t2),!1),this._zoomInActionElement.addEventListener("click",t2=>this._onZoomIn(t2),!1),this._zoomResetActionElement.addEventListener("click",t2=>this._onResetZoom(t2),!1),this._zoomOutActionElement.addEventListener("click",t2=>this._onZoomOut(t2),!1)}_isActive(){return this.options.activeClassSelector===!1||this.el.closest(this.options.activeClassSelector)!==null}_onPan(t2){this._isActive()&&(this._transform=this._storedTransform.add(new h.P(t2.deltaX,t2.deltaY,0)),this._unsetTransition(),this._updateTransform(),this._setCursor("move")),this.$emitter.publish("onPan")}_onPinch(t2){if(this._isActive()){let e2=this._storedTransform.x+t2.deltaX,i2=this._storedTransform.x+t2.deltaY,s2=this._storedTransform.z*t2.scale;this._transform=new h.P(e2,i2,s2),this._unsetTransition(),this._updateTransform(),this._setCursor("move")}this.$emitter.publish("onPinch")}_onDoubleTap(){if(this._isActive()){let t2=this._getMaxZoomValue(),e2=this._storedTransform.z>=t2?1:t2;this._transform=new h.P(this._transform.x,this._transform.y,e2),this._setTransition(),this._updateTransform(!0)}this.$emitter.publish("onDoubleTap")}_onZoomIn(){if(this._isActive()){let t2=this._getMaxZoomValue()/this.options.zoomSteps;this._transform=this._transform.add(new h.P(0,0,t2)),this._setTransition(),this._updateTransform(!0)}this.$emitter.publish("onZoomIn")}_onResetZoom(){this._isActive()&&(this._transform=new h.P(this._transform.x,this._transform.y,1),this._setTransition(),this._updateTransform(!0)),this.$emitter.publish("onResetZoom")}
1_onZoomOut(){if(this._isActive()){let t2=this._getMaxZoomValue()/this.options.zoomSteps;this._transform=this._transform.subtract(new h.P(0,0,t2)),this._setTransition(),this._updateTransform(!0)}this.$emitter.publish("onZoomOut")}_onMouseWheel(t2){this._isActive()&&(this._transform=this._transform.add(new h.P(0,0,t2.wheelDelta/800)),this._unsetTransition(),this._updateTransform(!0)),this.$emitter.publish("onMouseWheel")}_onInteractionEnd(){this._isActive()&&(this._updateTransform(!0),this._setCursor("default")),this.$emitter.publish("onInteractionEnd")}_onResize(){this._getElementSizes(),this._updateTransform(!0),this.$emitter.publish("onResize")}_getElementSizes(){this._imageSize=new h.FM(this._image.offsetWidth,this._image.offsetHeight),this._containerSize=new h.FM(this.el.offsetWidth,this.el.offsetHeight),this.$emitter.publish("getElementSizes")}_updateTransform(t2){this._updateTranslateRange(),this._clampTransform(),this._setActionButtonState();let e2="translateX(".concat(Math.round(this._transform.x),"px)"),i2="translateY(".concat(Math.round(this._transform.y),"px)"),s2="scale(".concat(this._transform.z,",").concat(this._transform.z,")"),o2="".concat(e2," ").concat(i2," translateZ(0px) ").concat(s2);this._image.style.transform=o2,this._image.style.WebkitTransform=o2,this._image.style.msTransform=o2,t2&&this._updateStoredTransformVector(),this.$emitter.publish("updateTransform")}_setActionButtonState(){this._transform.z===1&&this._getMaxZoomValue()===1?(this._setButtonDisabledState(this._zoomResetActionElement),this._setButtonDisabledState(this._zoomOutActionElement),this._setButtonDisabledState(this._zoomInActionElement)):this._getMaxZoomValue()===this._transform.z&&this._isTranslatable()?(this._setButtonDisabledState(this._zoomResetActionElement),this._setButtonDisabledState(this._zoomOutActionElement),this._setButtonDisabledState(this._zoomInActionElement)):this._getMaxZoomValue()===this._transform.z?(this._unsetButtonDisabledState(this._zoomResetActionElement),this._unsetButtonDisabledState(this._zoomOutActionElement),this._setButtonDisabledState(this._zoomInActionElement)):(this._transform.z===1?(this._setButtonDisabledState(this._zoomResetActionElement),this._setButtonDisabledState(this._zoomOutActionElement)):(this._unsetButtonDisabledState(this._zoomResetActionElement),this._unsetButtonDisabledState(this._zoomOutActionElement)),this._unsetButtonDisabledState(this._zoomInActionElement)),this.$emitter.publish("setA
1ctionButtonState")}_isTranslatable(){return this._translateRange.x===0&&this._translateRange.y===0}_setButtonDisabledState(t2){t2.classList.add("disabled"),t2.disabled=!0,this.$emitter.publish("setButtonDisabledState")}_unsetButtonDisabledState(t2){t2.classList.remove("disabled"),t2.disabled=!1,this.$emitter.publish("unsetButtonDisabledState")}_updateStoredTransformVector(){this._clampTransform(),this._storedTransform=new h.P(this._transform.x,this._transform.y,this._transform.z)}_updateTranslateRange(){this._getElementSizes();let t2=this._imageSize.multiply(this._transform.z);t2.x=Math.round(t2.x),t2.y=Math.round(t2.y),this._translateRange=t2.subtract(this._containerSize).clamp(0,t2).divide(2)}_getMaxZoomValue(){if(this._getElementSizes(),this._imageSize.x===0||this._imageSize.y===0)return 1;let t2=this._imageMaxSize.divide(this._imageSize);return Math.max(t2.x,t2.y)}_setCursor(t2){this.el.style.cursor=t2,this.$emitter.publish("setCursor")}_setTransition(){let t2="all 350ms ease 0s";this._image.style.transition=t2,this._image.style.WebkitTransition=t2,this._image.style.msTransition=t2,this.$emitter.publish("setTransition")}_unsetTransition(){this._image.style.transition="",this._image.style.WebkitTransition="",this._image.style.msTransition="",this.$emitter.publish("unsetTransition")}_clampTransform(){let t2=new h.P(-this._translateRange.x,-this._translateRange.y,1),e2=new h.P(this._translateRange.x,this._translateRange.y,this._getMaxZoomValue());this._transform=this._transform.clamp(t2,e2)}}m.options={maxZoom:"auto",zoomSteps:5,imageZoomModalSelector:"[data-image-zoom-modal=true]",imageSelector:".js-image-zoom-element",zoomInActionSelector:".js-image-zoom-in",zoomResetActionSelector:".js-image-zoom-reset",zoomOutActionSelector:".js-image-zoom-out",activeClassSelector:".tns-slide-active",gallerySliderSelector:"[data-modal-gallery-slider]"};class d extends s.Z{init(){this._triggers=this.el.querySelectorAll(this.options.triggerSelector),this._triggersCanvas=this.el.querySelectorAll(this.options.triggerSelectorCanvas),this._clickInterrupted=!1,this._pixelsMoved=0,this._mouseDown=!1,this._registerEvents()}_registerEvents(){let t2=o.Z.isTouchDevice()?"touchend":"click";n.Z.iterate(this._triggers,e2=>{e2.removeEventListener(t2,this._onClick.bind(this)),e2.addEventListener(t2,this._onClick.bind(this)),e2.removeEventListener("keydown",this._onKeyDown.bind(this)),e2.addEventListener("keydown",this._onKeyDown.bind(this)),e2.removeEventListener("touchmove",this._onTouchMove.bind(this)),e2.addEventListener("touchmove",this._onTouchMove.bind(this))}),n.Z.iterate(this._triggersCanvas,e2=>{e2.removeEventListener("mousedown",this._onMouseDown.bind(this)),e2.addEventListener("mousedown",this._onMouseDown.bind(this)),e2.removeEventListener("mouseup",this._onMouseUp.bind(this)),e2.addEventListener("mouseup",this._onMouseUp.bind(this)),e2.removeEventListener(t2,this._onClick.bind(this)),e2.addEventListener(t2,this._onClick.bind(this)),e2.removeEventListener("pointermove",this._onPointerMove.bind(this)),e2.addEventListener("pointermove",this._onPointerMove.bind(this))})}_onClick(t2){if(this._clickInterrupted===!0||this._pixelsMoved>10){this._clickInterrupted=!1,this._pixelsMoved=0;return}window.focusHandler.saveFocusState("zoom-modal"),this._pixelsMoved=0,d._stopEvent(t2),this._openModal(),this.$emitter.publish("onClick")}_onKeyDown(t2){t2.key==="Enter"&&(window.focusHandler.saveFocusState("zoom-modal"),this._pixelsMoved=0,d._stopEvent(t2),this._openModal(),this.$emitter.publish("onEnter"))}_onTouchMove(){this._clickInterrupted=!0}_onPointerMove(t2){t2.pointerType=="mouse"?this._mouseDown&&(this._pixelsMoved+=2):this._pixelsMoved+=1}_onMouseDown(){this._mouseDown=!0,this._clickInterrupted=!1}_onMouseUp(){this._mouseDown=!1}_openModal(){let t2=this.el.closest(this.options.galleryZoomModalContainerSelector).querySelector(this.options.modalSelector);t2&&this._loadImages(t2),this.$emitter.publish("onClick",{modal:t2})}_loadImages(t2){let e2=t2.querySelectorAll("img["+this.options.imgDataSrcAttr+"]"+this.options.imgToLoadSelector),i2=e2.length;if(i2===0){this._showModal(t2);return}let s2=0,o2=0;n.Z.iterate(e2,e3=>{let n2=r.Z.getDataAttribute(e3,this.options.imgDataSrcAttr),a2=r.Z.getDataAttribute(e3,this.options.imgDataSrcSetAttr,!1);n2&&(e3.onload=()=>{++s2+o2===i2&&this._showModal(t2)},e3.onerror=()=>{o2++,s2+o2===i2&&this._showModal(t2)},e3.setAttribute("src",n2),e3.removeAttribute(this.options.imgDataSrcAttr),a2&&(e3.setAttribute("srcset",a2),e3.removeAttribute(this.options.imgDataSrcSetAttr)))})}_showModal(t2){let e2=new bootstrap.Modal(t2);this._showModalListener||(this._showModalListener=()=>{this._initSlider(t2),this._registerImageZoom(),this.$emitter.publish("modalShow",{modal:t2})});let i2=()=>
1{window.focusHandler.resumeFocusState("zoom-modal")};t2.removeEventListener("shown.bs.modal",this._showModalListener),t2.addEventListener("shown.bs.modal",this._showModalListener),t2.removeEventListener("hidden.bs.modal",i2),t2.addEventListener("hidden.bs.modal",i2),e2.show()}_initSlider(t2){let e2=t2.querySelector(this.options.modalGallerySliderSelector);if(!e2)return;let i2=this._getParentSliderIndex(),s2=t2.querySelectorAll(this.options.imgGallerySelector);if(this.gallerySliderPlugin&&this.gallerySliderPlugin._slider){this.gallerySliderPlugin._slider.goTo(i2),window.focusHandler.setFocus(s2.item(i2));return}window.PluginManager.initializePlugin("GallerySlider",e2,{slider:{startIndex:i2,touch:!1},thumbnailSlider:{startIndex:i2,autoWidth:!0,responsive:{md:{enabled:!0},lg:{enabled:!0},xl:{enabled:!0,axis:"horizontal"}}}}).then(()=>{this.gallerySliderPlugin=window.PluginManager.getPluginInstanceFromElement(e2,"GallerySlider"),this.gallerySliderPlugin._slider.goTo(i2),window.focusHandler.setFocus(s2.item(i2)),this.$emitter.publish("initSlider")})}_registerImageZoom(){this.imageZoomRegistered||(this.gallerySliderPlugin?(window.PluginManager.register("ImageZoom",m,this.options.activeSlideSelector+" "+this.options.imageZoomInitSelector),window.PluginManager.initializePlugin("ImageZoom",this.options.activeSlideSelector+" "+this.options.imageZoomInitSelector),this.gallerySliderPlugin._slider.events.off("indexChanged",this._updateImageZoom.bind(this)),this.gallerySliderPlugin._slider.events.on("indexChanged",this._updateImageZoom.bind(this))):(window.PluginManager.register("ImageZoom",m,this.options.imageZoomInitSelector),window.PluginManager.initializePlugin("ImageZoom",this.options.imageZoomInitSelector,{activeClassSelector:!1})),this.imageZoomRegistered=!0)}_updateImageZoom(){let t2=this.gallerySliderPlugin.getActiveSlideElement();if(!t2)return;let e2=t2.querySelector(this.options.imageZoomInitSelector);if(!e2)return;let i2=window.PluginManager.getPluginInstanceFromElement(e2,"ImageZoom");i2?i2.update():window.PluginManager.initializePlugin("ImageZoom",this.options.activeSlideSelector+" "+this.options.imageZoomInitSelector)}_getParentSliderIndex(){let t2=0;return this._parentSliderElement=this.el.closest(this.options.parentGallerySliderSelector),this._parentSliderElement&&(this._parentSliderPlugin=window.PluginManager.getPluginInstanceFromElement(this._parentSliderElement,"GallerySlider"),this._parentSliderPlugin&&(t2=this._parentSliderPlugin.getCurrentSliderIndex())),t2}static _stopEvent(t2){t2&&(t2.stopPropagation(),t2.preventDefault())}}d.options={modalSelector:".js-zoom-modal",triggerSelector:"img",triggerSelectorCanvas:"canvas",productIdDataAttribute:"data-product-id",modalGallerySliderSelector:"[data-modal-gallery-slider]",parentGallerySliderSelector:"[data-gallery-slider]",imageZoomInitSelector:"[data-image-zoom]",galleryZoomModalContainerSelector:".js-gallery-zoom-modal-container",imgToLoadSelector:".js-load-img",imgGallerySelector:".gallery-slider-image",imgDataSrcAttr:"data-src",imgDataSrcSetAttr:"data-srcset",activeSlideSelector:".tns-slide-active"}}}]);

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.