/** * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0. * Original file: /npm/drift-zoom@1.5.1/es/Drift.js * * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files */ function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}var t="object"===("undefined"==typeof HTMLElement?"undefined":e(HTMLElement));function i(i){return t?i instanceof HTMLElement:i&&"object"===e(i)&&null!==i&&1===i.nodeType&&"string"==typeof i.nodeName}function n(e,t){t.forEach((function(t){e.classList.add(t)}))}function s(e,t){t.forEach((function(t){e.classList.remove(t)}))}function o(){throw new Error("Missing parameter")}function h(e,t){for(var i=0;ii.left+i.width+n&&(o=i.left+i.width-this.el.clientWidth+n),hi.top+i.height+s&&(h=i.top+i.height-this.el.clientHeight+s),this.el.style.left="".concat(o,"px"),this.el.style.top="".concat(h,"px")}}])&&h(t.prototype,i),a&&h(t,a),Object.defineProperty(t,"prototype",{writable:!1}),e}();function l(e,t){for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._show=this._show.bind(this),this._hide=this._hide.bind(this),this._handleEntry=this._handleEntry.bind(this),this._handleMovement=this._handleMovement.bind(this);var i=t.el,n=void 0===i?o():i,s=t.zoomPane,h=void 0===s?o():s,l=t.sourceAttribute,r=void 0===l?o():l,c=t.handleTouch,d=void 0===c?o():c,u=t.onShow,g=void 0===u?null:u,m=t.onHide,v=void 0===m?null:m,f=t.hoverDelay,p=void 0===f?0:f,y=t.touchDelay,b=void 0===y?0:y,w=t.hoverBoundingBox,_=void 0===w?o():w,E=t.touchBoundingBox,C=void 0===E?o():E,k=t.namespace,z=void 0===k?null:k,B=t.zoomFactor,L=void 0===B?o():B,S=t.boundingBoxContainer,x=void 0===S?o():S,A=t.passive,T=void 0!==A&&A;this.settings={el:n,zoomPane:h,sourceAttribute:r,handleTouch:d,onShow:g,onHide:v,hoverDelay:p,touchDelay:b,hoverBoundingBox:_,touchBoundingBox:C,namespace:z,zoomFactor:L,boundingBoxContainer:x,passive:T},(this.settings.hoverBoundingBox||this.settings.touchBoundingBox)&&(this.boundingBox=new a({namespace:this.settings.namespace,zoomFactor:this.settings.zoomFactor,containerEl:this.settings.boundingBoxContainer})),this.enabled=!0,this._bindEvents()}var t,i,n;return t=e,(i=[{key:"_preventDefault",value:function(e){e.preventDefault()}},{key:"_preventDefaultAllowTouchScroll",value:function(e){this.settings.touchDelay&&this._isTouchEvent(e)&&!this.isShowing||e.preventDefault()}},{key:"_isTouchEvent",value:function(e){return!!e.touches}},{key:"_bindEvents",value:function(){this.settings.el.addEventListener("mouseenter",this._handleEntry),this.settings.el.addEventListener("mouseleave",this._hide),this.settings.el.addEventListener("mousemove",this._handleMovement);var e={passive:this.settings.passive};this.settings.handleTouch?(this.settings.el.addEventListener("touchstart",this._handleEntry,e),this.settings.el.addEventListener("touchend",this._hide),this.settings.el.addEventListener("touchmove",this._handleMovement,e)):(this.settings.el.addEventListener("touchstart",this._preventDefault,e),this.settings.el.addEventListener("touchend",this._preventDefault),this.settings.el.addEventListener("touchmove",this._preventDefault,e))}},{key:"_unbindEvents",value:function(){this.settings.el.removeEventListener("mouseenter",this._handleEntry),this.settings.el.removeEventListener("mouseleave",this._hide),this.settings.el.removeEventListener("mousemove",this._handleMovement),this.settings.handleTouch?(this.settings.el.removeEventListener("touchstart",this._handleEntry),this.settings.el.removeEventListener("touchend",this._hide),this.settings.el.removeEventListener("touchmove",this._handleMovement)):(this.settings.el.removeEventListener("touchstart",this._preventDefault),this.settings.el.removeEventListener("touchend",this._preventDefault),this.settings.el.removeEventListener("touchmove",this._preventDefault))}},{key:"_handleEntry",value:function(e){this._preventDefaultAllowTouchScroll(e),this._lastMovement=e,"mouseenter"==e.type&&this.settings.hoverDelay?this.entryTimeout=setTimeout(this._show,this.settings.hoverDelay):this.settings.touchDelay?this.entryTimeout=setTimeout(this._show,this.settings.touchDelay):this._show()}},{key:"_show",value:function(){if(this.enabled){var e=this.settings.onShow;if(e&&"function"==typeof e&&e(),this.settings.zoomPane.show(this.settings.el.getAttribute(this.settings.sourceAttribute),this.settings.el.clientWidth,this.settings.el.clientHeight),this._lastMovement){var t=this._lastMovement.touches;(t&&this.settings.touchBoundingBox||!t&&this.settings.hoverBoundingBox)&&this.boundingBox.show(this.settings.zoomPane.el.clientWidth,this.settings.zoomPane.el.clientHeight)}this._handleMovement()}}},{key:"_hide",value:function(e){e&&this._preventDefaultAllowTouchScroll(e),this._lastMovement=null,this.entryTimeout&&clearTimeout(this.entryTimeout),this.boundingBox&&this.boundingBox.hide();var t=this.settings.onHide;t&&"function"==typeof t&&t(),this.settings.zoomPane.hide()}},{key:"_handleMovement",value:function(e){if(e)this._preventDefaultAllowTouchScroll(e),this._lastMovement=e;else{if(!this._lastMovement)return;e=this._lastMovement}var t,i;if(e.touches){var n=e.touches[0];t=n.clientX,i=n.clientY}else t=e.clientX,i=e.clientY;var s=this.settings.el.getBoundingClientRect(),o=t-s.left,h=i-s.top,a=o/this.settings.el.clientWidth,l=h/this.settings.el.clientHeight;this.boundingBox&&this.boundingBox.setPosition(a,l,s),this.settings.zoomPane.setPosition(a,l,s)}},{key:"isShowing",get:function(){return this.settings.zoomPane.isShowing}}])&&l(t.prototype,i),n&&l(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function c(e,t){for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.HAS_ANIMATION=!1,"undefined"!=typeof document){var i=document.createElement("div").style;this.HAS_ANIMATION="animation"in i||"webkitAnimation"in i}this._completeShow=this._completeShow.bind(this),this._completeHide=this._completeHide.bind(this),this._handleLoad=this._handleLoad.bind(this),this.isShowing=!1;var n=t.container,s=void 0===n?null:n,h=t.zoomFactor,a=void 0===h?o():h,l=t.inline,r=void 0===l?o():l,c=t.namespace,d=void 0===c?null:c,u=t.showWhitespaceAtEdges,g=void 0===u?o():u,m=t.containInline,v=void 0===m?o():m,f=t.inlineOffsetX,p=void 0===f?0:f,y=t.inlineOffsetY,b=void 0===y?0:y,w=t.inlineContainer,_=void 0===w?document.body:w;this.settings={container:s,zoomFactor:a,inline:r,namespace:d,showWhitespaceAtEdges:g,containInline:v,inlineOffsetX:p,inlineOffsetY:b,inlineContainer:_},this.openClasses=this._buildClasses("open"),this.openingClasses=this._buildClasses("opening"),this.closingClasses=this._buildClasses("closing"),this.inlineClasses=this._buildClasses("inline"),this.loadingClasses=this._buildClasses("loading"),this._buildElement()}var t,i,h;return t=e,(i=[{key:"_buildClasses",value:function(e){var t=["drift-".concat(e)],i=this.settings.namespace;return i&&t.push("".concat(i,"-").concat(e)),t}},{key:"_buildElement",value:function(){this.el=document.createElement("div"),n(this.el,this._buildClasses("zoom-pane"));var e=document.createElement("div");n(e,this._buildClasses("zoom-pane-loader")),this.el.appendChild(e),this.imgEl=document.createElement("img"),this.el.appendChild(this.imgEl)}},{key:"_setImageURL",value:function(e){this.imgEl.setAttribute("src",e)}},{key:"_setImageSize",value:function(e,t){this.imgEl.style.width="".concat(e*this.settings.zoomFactor,"px"),this.imgEl.style.height="".concat(t*this.settings.zoomFactor,"px")}},{key:"setPosition",value:function(e,t,i){var n=this.imgEl.offsetWidth,s=this.imgEl.offsetHeight,o=this.el.offsetWidth,h=this.el.offsetHeight,a=o/2-n*e,l=h/2-s*t,r=o-n,c=h-s,d=r>0,u=c>0,g=d?r/2:0,m=u?c/2:0,v=d?r/2:r,f=u?c/2:c;if(this.el.parentElement===this.settings.inlineContainer){var p=window.pageXOffset,y=window.pageYOffset,b=i.left+e*i.width-o/2+this.settings.inlineOffsetX+p,w=i.top+t*i.height-h/2+this.settings.inlineOffsetY+y;this.settings.containInline&&(bi.left+i.width+p&&(b=i.left+i.width-o+p),wi.top+i.height+y&&(w=i.top+i.height-h+y)),this.el.style.left="".concat(b,"px"),this.el.style.top="".concat(w,"px")}this.settings.showWhitespaceAtEdges||(a>g?a=g:am?l=m:l1&&void 0!==arguments[1]?arguments[1]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.VERSION="1.5.1",this.triggerEl=t,this.destroy=this.destroy.bind(this),!i(this.triggerEl))throw new TypeError("`new Drift` requires a DOM element as its first argument.");var s=n.namespace||null,o=n.showWhitespaceAtEdges||!1,h=n.containInline||!1,a=n.inlineOffsetX||0,l=n.inlineOffsetY||0,r=n.inlineContainer||document.body,c=n.sourceAttribute||"data-zoom",d=n.zoomFactor||3,u=void 0===n.paneContainer?document.body:n.paneContainer,g=n.inlinePane||375,m=!("handleTouch"in n)||!!n.handleTouch,v=n.onShow||null,f=n.onHide||null,p=!("injectBaseStyles"in n)||!!n.injectBaseStyles,y=n.hoverDelay||0,b=n.touchDelay||0,w=n.hoverBoundingBox||!1,_=n.touchBoundingBox||!1,E=n.boundingBoxContainer||document.body,C=n.passive||!1;if(!0!==g&&!i(u))throw new TypeError("`paneContainer` must be a DOM element when `inlinePane !== true`");if(!i(r))throw new TypeError("`inlineContainer` must be a DOM element");this.settings={namespace:s,showWhitespaceAtEdges:o,containInline:h,inlineOffsetX:a,inlineOffsetY:l,inlineContainer:r,sourceAttribute:c,zoomFactor:d,paneContainer:u,inlinePane:g,handleTouch:m,onShow:v,onHide:f,injectBaseStyles:p,hoverDelay:y,touchDelay:b,hoverBoundingBox:w,touchBoundingBox:_,boundingBoxContainer:E,passive:C},this.settings.injectBaseStyles&&function(){if(!document.querySelector(".drift-base-styles")){var e=document.createElement("style");e.type="text/css",e.classList.add("drift-base-styles"),e.appendChild(document.createTextNode(".drift-bounding-box,.drift-zoom-pane{position:absolute;pointer-events:none}@keyframes noop{0%{zoom:1}}@-webkit-keyframes noop{0%{zoom:1}}.drift-zoom-pane.drift-open{display:block}.drift-zoom-pane.drift-closing,.drift-zoom-pane.drift-opening{animation:noop 1ms;-webkit-animation:noop 1ms}.drift-zoom-pane{overflow:hidden;width:100%;height:100%;top:0;left:0}.drift-zoom-pane-loader{display:none}.drift-zoom-pane img{position:absolute;display:block;max-width:none;max-height:none}"));var t=document.head;t.insertBefore(e,t.firstChild)}}(),this._buildZoomPane(),this._buildTrigger()}var t,n,s;return t=e,(n=[{key:"_buildZoomPane",value:function(){this.zoomPane=new d({container:this.settings.paneContainer,zoomFactor:this.settings.zoomFactor,showWhitespaceAtEdges:this.settings.showWhitespaceAtEdges,containInline:this.settings.containInline,inline:this.settings.inlinePane,namespace:this.settings.namespace,inlineOffsetX:this.settings.inlineOffsetX,inlineOffsetY:this.settings.inlineOffsetY,inlineContainer:this.settings.inlineContainer})}},{key:"_buildTrigger",value:function(){this.trigger=new r({el:this.triggerEl,zoomPane:this.zoomPane,handleTouch:this.settings.handleTouch,onShow:this.settings.onShow,onHide:this.settings.onHide,sourceAttribute:this.settings.sourceAttribute,hoverDelay:this.settings.hoverDelay,touchDelay:this.settings.touchDelay,hoverBoundingBox:this.settings.hoverBoundingBox,touchBoundingBox:this.settings.touchBoundingBox,namespace:this.settings.namespace,zoomFactor:this.settings.zoomFactor,boundingBoxContainer:this.settings.boundingBoxContainer,passive:this.settings.passive})}},{key:"setZoomImageURL",value:function(e){this.zoomPane._setImageURL(e)}},{key:"disable",value:function(){this.trigger.enabled=!1}},{key:"enable",value:function(){this.trigger.enabled=!0}},{key:"destroy",value:function(){this.trigger._hide(),this.trigger._unbindEvents()}},{key:"isShowing",get:function(){return this.zoomPane.isShowing}},{key:"zoomFactor",get:function(){return this.settings.zoomFactor},set:function(e){this.settings.zoomFactor=e,this.zoomPane.settings.zoomFactor=e,this.trigger.settings.zoomFactor=e,this.boundingBox.settings.zoomFactor=e}}])&&u(t.prototype,n),s&&u(t,s),Object.defineProperty(t,"prototype",{writable:!1}),e}();Object.defineProperty(g.prototype,"isShowing",{get:function(){return this.isShowing}}),Object.defineProperty(g.prototype,"zoomFactor",{get:function(){return this.zoomFactor},set:function(e){this.zoomFactor=e}}),g.prototype.setZoomImageURL=g.prototype.setZoomImageURL,g.prototype.disable=g.prototype.disable,g.prototype.enable=g.prototype.enable,g.prototype.destroy=g.prototype.destroy;export{g as default}; //# sourceMappingURL=/sm/61f0f4189386d759cfe595b9ec97192f95e615f678f86cc640dc4d15abe74d68.map