"use strict";var avia_js_shortcodes=avia_js_shortcodes||{},aviaJS=aviaJS||{};!function(){if(!avia_js_shortcodes.aviaImageDiff){class scAviaImageDiff{container=null;id="";divider="vertical";handle=null;settings={};wrapperDiv=[];btnOverlay=[];btnBefore=[];btnAfter=[];imgBefore=[];imgAfter=[];imgDimension={};mouseCapture=!1;touchCapture=!1;touchMoved=!1;downScreenX=0;downScreenY=0;downClientX=0;downClientY=0;downHandlePos=0;preview=!1;constructor(i){this.container=i,this.container.scAviaImageDiff=this,this.id=i.getAttribute("id"),this.handle=i.getElementsByClassName("av-image-diff-handle"),this.handle.length&&(this.handle=this.handle[0],this.init())}init(){this.settings=JSON.parse(this.container.dataset.image_diff),this.wrapperDiv=this.container.getElementsByClassName("av-image-diff-wrapper"),this.btnOverlay=this.container.getElementsByClassName("av-image-diff-overlay"),this.btnBefore=this.btnOverlay[0].getElementsByClassName("label-before"),this.btnAfter=this.btnOverlay[0].getElementsByClassName("label-after"),this.imgBefore=this.container.getElementsByClassName("av-img-before"),this.imgAfter=this.container.getElementsByClassName("av-img-after"),this.imgBefore.length&&this.imgAfter.length?(this.container.classList.contains("av-handle-horizontal")&&(this.divider="horizontal"),this.preview=null!=document.getElementById("av-admin-preview"),this.bindEvents(),this.initialPositionHandler()):this.hideHandlerDOM()}hideHandlerDOM(){this.handle.style.display="none",this.btnOverlay.length&&(this.btnOverlay[0].style.display="none")}initialPositionHandler(){let i=void 0===this.settings.drag_start?50:parseInt(this.settings.drag_start);isNaN(i)&&(i=50);let t=0;this.imgDimension=this.imgBefore[0].getBoundingClientRect(),t="horizontal"==this.divider?this.imgDimension.height*(i/100):this.imgDimension.width*(i/100),this.container.classList.add("av-initialise"),this.adjustDividerFrame(t);let e=this;setTimeout((function(){e.container.classList.remove("av-initialise")}),700)}adjustDividerFrame(i){if(this.container.classList.remove("av-handler-at-before","av-handler-at-after"),(i=Math.round(i))<=0&&(i=0,this.container.classList.add("av-handler-at-before")),"horizontal"==this.divider){i>=this.imgDimension.height+5&&(i=Math.round(this.imgDimension.height+5),this.container.classList.add("av-handler-at-after"));let t=this.imgDimension.height-i;this.handle.style.top=i+"px",this.imgBefore[0].style["clip-path"]="inset(0 0 "+t+"px 0)",this.imgAfter[0].style["clip-path"]="inset("+i+"px 0 0 0)"}else{i>=this.imgDimension.width+5&&(i=Math.round(this.imgDimension.width+5),this.container.classList.add("av-handler-at-after"));let t=this.imgDimension.width-i;this.handle.style.left=i+"px",this.imgBefore[0].style["clip-path"]="inset(0 "+t+"px 0 0)",this.imgAfter[0].style["clip-path"]="inset(0 0 0 "+i+"px)"}}bindEvents(){this.container.onavia_start_animation=i=>{const t=new CustomEvent("avia_start_animation",{bubbles:!0,cancelable:!0});this.container.dispatchEvent(t)},this.container.addEventListener("avia_start_animation",this.onAviaStartAnimation.bind(this)),this.handle.addEventListener("click",this.onHandleClick.bind(this)),this.handle.addEventListener("mousedown",this.onMouseDown.bind(this)),this.wrapperDiv.length>0&&(this.wrapperDiv[0].addEventListener("click",this.onClickWrapper.bind(this)),this.wrapperDiv[0].addEventListener("touchstart",this.onTouchStart.bind(this))),this.btnBefore.length>0&&this.btnBefore[0].addEventListener("click",this.onClickBtnBefore.bind(this)),this.btnAfter.length>0&&this.btnAfter[0].addEventListener("click",this.onClickBtnAfter.bind(this)),window.addEventListener("mousemove",this.onMouseMove.bind(this)),window.addEventListener("mouseup",this.onMouseUp.bind(this)),window.addEventListener("touchmove",this.onTouchMove.bind(this)),window.addEventListener("touchend",this.onTouchEnd.bind(this)),window.addEventListener("resize",aviaJS.aviaJSHelpers.debounce(this.onResize.bind(this),200)),this.preview&&this.container.addEventListener("animationend",this.onAnimationEnd.bind(this))}onAviaStartAnimation(i){this.container.classList.contains("avia_animation_finished")||(this.preview&&this.container.classList.add("avia_start_animation","avia_animation_finished"),void 0!==i&&this.container.classList.add("avia_animation_finished","avia_start_delayed_animation"))}onAnimationEnd(i){this.preview&&this.initialPositionHandler()}onMouseDown(i){this.touchCapture||(i.preventDefault(),i.stopPropagation(),this.mouseCapture=!0,this.container.classList.add("av-active-drag"),this.downScreenX=i.screenX,this.downScreenY=i.screenY,"horizontal"==this.divider?this.downHandlePos=this.handle.style.top:this.downHandlePos=this.handle.style.left,this.downHandlePos=parseInt(this.downHandlePos.replace("px","")))}onMouseMove(i){if(!this.mouseCapture)return;i.preventDefault(),i.stopPropagation();let t=0,e=0;e="horizontal"==this.divider?i.screenY-this.downScreenY:i.screenX-this.downScreenX,Math.abs(e)<5||(t=this.downHandlePos+e,this.adjustDividerFrame(t))}onMouseUp(i){this.mouseCapture&&(i.preventDefault(),i.stopPropagation(),this.mouseCapture=!1,this.container.classList.remove("av-active-drag"))}onTouchStart(i){if(!this.mouseCapture&&i.touches.length){if(i.preventDefault(),i.stopPropagation(),i.explicitOriginalTarget&&i.explicitOriginalTarget.classList.contains("av-img-diff-label")){if(window.getComputedStyle(i.explicitOriginalTarget).getPropertyValue("opacity")>0)return void i.explicitOriginalTarget.dispatchEvent(new MouseEvent("click"))}this.touchCapture=!0,this.container.classList.add("av-active-drag"),this.downScreenX=i.touches[0].screenX,this.downScreenY=i.touches[0].screenY,this.downClientX=i.touches[0].clientX,this.downClientY=i.touches[0].clientY,"horizontal"==this.divider?this.downHandlePos=this.handle.style.top:this.downHandlePos=this.handle.style.left,this.downHandlePos=parseInt(this.downHandlePos.replace("px",""))}}onTouchMove(i){if(!this.touchCapture)return;i.preventDefault(),i.stopPropagation();let t=0,e=0;e="horizontal"==this.divider?i.touches[0].screenY-this.downScreenY:i.touches[0].screenX-this.downScreenX,Math.abs(e)<5||(t=this.downHandlePos+e,this.adjustDividerFrame(t),this.touchMoved=!0)}onTouchEnd(i){if(this.touchCapture){if(!this.touchMoved){let i=0,t=0,e=this.wrapperDiv[0].getBoundingClientRect();"horizontal"==this.divider?(i=this.downClientY-e.top,t=e.height):(i=this.downClientX-e.left,t=e.width),i<0?i=0:i>t&&(i=t),this.adjustDividerFrame(i)}i.preventDefault(),i.stopPropagation(),this.touchCapture=!1,this.touchMoved=!1,this.container.classList.remove("av-active-drag")}}onResize(i){let t=0,e=0;"horizontal"==this.divider?(t=this.handle.style.top,e=this.imgDimension.height):(t=this.handle.style.left,e=this.imgDimension.width),t=parseInt(t.replace("px","")),t<0?e=0:0!=e&&(e=Math.round(t/e*100)),e>100&&(e=100),this.settings.drag_start=e,this.imgBefore[0].style["clip-path"]="inset(0 0 0 0)",this.imgAfter[0].style["clip-path"]="inset(0 0 0 0)",this.initialPositionHandler()}onHandleClick(i){i.preventDefault(),i.stopPropagation()}onClickBtnBefore(i){i.preventDefault(),i.stopPropagation(),this.adjustDividerFrame(0)}onClickBtnAfter(i){i.preventDefault(),i.stopPropagation();let t=0;t="horizontal"==this.divider?this.imgDimension.height:this.imgDimension.width,this.adjustDividerFrame(t+15)}onClickWrapper(i){i.preventDefault(),i.stopPropagation();let t=0;t="horizontal"==this.divider?i.layerY:i.layerX,this.adjustDividerFrame(t)}}avia_js_shortcodes.aviaImageDiff=function(i){return new scAviaImageDiff(i)},aviaJS.aviaPlugins.register(avia_js_shortcodes.aviaImageDiff,".avia-image-diff-container")}}();