1jQuery(window).on("elementor/frontend/init",()=>{class e extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{container:".pp-image-comparison",beforeImg:".pp-before-image",afterImg:".pp-after-image",handle:".pp-comparison-handle"}}}getDefaultElements(){var e=this.getSettings("selectors");return{$container:this.$element.find(e.container),$beforeImg:this.$element.find(e.beforeImg),$afterImg:this.$element.find(e.afterImg),$handle:this.$element.find(e.handle)}}unbindEvents(){this.eventNamespace=".ppImageComparison-"+this.getID(),this.elements.$handle.off(this.eventNamespace),this.elements.$container.off(this.eventNamespace)}bindEvents(){this.unbindEvents();const e=this.elements.$container,t=e.data("settings"),i=this.elements.$handle,s=this.eventNamespace;this.isVertical="vertical"===t.orientation,this.valueText=i.attr("data-value-text")||"",this.suppressClick=!1,this.setRatio(100*parseFloat(t.visible_ratio)),i.on("move"+s,e=>{this.setRatio(this.pointToRatio(e.pageX,e.pageY))}),i.on("moveend"+s,()=>{this.suppressClick=!0,setTimeout(()=>{this.suppressClick=!1},0)}),i.on("keydown"+s,e=>this.onKeydown(e)),t.slider_on_hover?e.on("mousemove"+s,e=>{this.setRatio(this.pointToRatio(e.pageX,e.pageY))}):e.on("click"+s,e=>{this.suppressClick||(this.setRatio(this.pointToRatio(e.pageX,e.pageY)),i[0].contains(e.target))||i.trigger("focus")})}pointToRatio(e,t){var i=this.elements.$container,s=i.offset();return this.isVertical?(t-s.top)/i.outerHeight()*100:(e-s.left)/i.outerWidth()*100}setRatio(e){var t=this.elements.$handle,i=this.elements.$afterImg,i=(e=Math.max(0,Math.min(100,e)),this.ratio=e,this.isVertical?(t.css({top:e+"%",bottom:"auto"}),i.css({top:e+"%",bottom:"auto"}),i.find("img").css("bottom",e+"%")):(t.css({left:e+"%",right:"auto"}),i.css({left:e+"%",right:"auto"}),i.find("img").css("right",e+"%")),Math.round(e));t.attr("aria-valuenow",i),this.valueText&&t.attr("aria-valuetext",this.valueText.replace("{percent}",i)),this.hideLabels()}onKeydown(e){var t=e.key.replace(/^(Left|Right|Up|Down)$/,"Arrow$1"),i=this.isVertical?"ArrowUp":"ArrowLeft",s=this.isVertical?"ArrowDown":"ArrowRight";let a=this.ratio;switch(t){case i:--a;break;case s:a+=1;break;case"PageDown":a-=10;break;case"PageUp":a+=10;break;case"Home":a=0;break;case"End":a=100;break;default:return}e.preventDefault(),this.setRatio(a)}hideLabels(){var e,t=this.elements.$container,i=this.elements.$handle,s=this.isVertical,a=t.find(".pp-comparison-label-before span"),o=t.find(".pp-comparison-label-after span");(a.length||o.length)&&(i=parseInt(i.css(s?"top":"left"),10),t=s?t.outerHeight():t.outerWidth(),a.length&&(e=s?a.position().top+a.outerHeight():a.position().left+a.outerWidth(),a.stop().css("opacity",i<=e+15?0:1)),o.length)&&(a=s?o.position().top+o.outerHeight():o.position().left+o.outerWidth(),o.stop().css("opacity",t-(a+15)<=i?0:1))}}elementorFrontend.elementsHandler.attachHandler("pp-image-comparison",e)});
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.