1(()=>{(function(){var Scroller,stats,type,text,totop,loading_text,isIE=-1!==navigator.userAgent.search("MSIE");if(isIE){var IEVersion=navigator.userAgent.match(/MSIE\s?(\d+)\.?\d*;/);IEVersion=parseInt(IEVersion[1])}function fullscreenState(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?1:0}"https:"===document.location.protocol&&(infiniteScroll.settings.ajaxurl=infiniteScroll.settings.ajaxurl.replace("http://","https://")),Scroller=function(e){var t=this;this.id=e.id,this.body=document.body,this.window=window,this.element=document.getElementById(e.id),this.wrapperClass=e.wrapper_class,this.ready=!0,this.disabled=!1,this.page=1,this.offset=e.offset,this.currentday=e.currentday,this.order=e.order,this.throttle=!1,this.click_handle=e.click_handle,this.google_analytics=e.google_analytics,this.history=e.history,this.origURL=window.location.href,this.handle=document.createElement("div"),this.handle.setAttribute("id","infinite-handle");var n=document.createElement("span"),i=document.createElement("button");i.textContent=text,n.appendChild(i),this.handle.appendChild(n),this.footer={el:document.getElementById("infinite-footer"),wrap:e.footer},this.checkViewportOnLoadBound=t.checkViewportOnLoad.bind(this),this.wpMediaelement=null,"scroll"===type?(this.window.addEventListener("scroll",function(){t.throttle=!0}),t.gotop(),setInterval(function(){t.throttle&&(t.throttle=!1,t.thefooter(),t.refresh(),t.determineURL())},250),t.ensureFilledViewport(),this.body.addEventListener("is.post-load",t.checkViewportOnLoadBound)):"click"===type&&(this.click_handle&&this.element.appendChild(this.handle),this.handle.addEventListener("click",function(){t.click_handle&&t.handle.parentNode.removeChild(t.handle),t.refresh()})),this.body.addEventListener("is.post-load",t.initializeMejs)},Scroller.prototype.getScrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},Scroller.prototype.extend=function(e){e=e||{};for(var t=1;t<arguments.length;t++)if(arguments[t])for(var n in arguments[t])Object.hasOwn(arguments[t],n)&&(e[n]=arguments[t][n]);return e},Scroller.prototype.check=function(){return this.measure(this.element,[this.wrapperClass]).bottom<2*this.window.innerHeight},Scroller.prototype.render=function(e){var t=Array.prototype.slice.call(e.fragment.childNodes);for(this.body.classList.add("infinity-success");t.length>0;){var n=t.shift();this.element.appendChild(n)}this.trigger(this.body,"is.post-load",{jqueryEventName:"post-load",data:e}),this.ready=!0},Scroller.prototype.query=function(){return{page:this.page+this.offset,currentday:this.currentday,order:this.order,scripts:window.infiniteScroll.settings.scripts,styles:window.infiniteScroll.settings.styles,query_args:window.infiniteScroll.settings.query_args,query_before:window.infiniteScroll.settings.query_before,last_post_date:window.infiniteScroll.settings.last_post_date}},Scroller.prototype.animate=function(e,t){var n=performance.now();requestAnimationFrame(function i(o){var r=Math.min(1,(o-n)/t);e(r),r<1&&requestAnimationFrame(i)})},Scroller.prototype.gotop=function(){var e=document.getElementById("infinity-blog-title"),t=this;e&&(e.setAttribute("title",totop),e.addEventListener("click",function(e){var n=t.window.pageYOffset;e.preventDefault(),t.animate(function(e){var t=n-n*e;document.documentElement.scrollTop=document.body.scrollTop=t},200)}))},Scroller.prototype.thefooter=function(){var e,t,n,i,o=this;if(this.footer&&this.footer.el){if("string"==typeof this.footer.wrap){try{t=(t=document.getElementById(this.footer.wrap).getBoundingClientRect()).width}catch{t=0}t>479&&(e=this.footer.el.querySelector(".container"))&&(e.style.width=t+"px")}n=parseInt(o.footer.el.style.bottom||-50,10),i=this.window.pageYOffset>=350?0:-50,n!==i&&o.animate(function(e){var t=n+(i-n)*e;o.footer.el.style.bottom=t+"px",1===e&&(n=i)},200)}},Scroller.prototype.urlEncodeJSON=function(e,t){var n,i,o=[];for(var r in e)n=encodeURIComponent(r),i=t?t+"["+n+"]":n,"object"==typeof e[r]?!Array.isArray(e[r])||e[r].length>0?o.push(this.urlEncodeJSON(e[r],i)):o.push(i+"[]="):o.push(i+"="+encodeURIComponent(e[r]));return o.join("&")},Scroller.prototype.refresh=function(){var self=this,query,xhr,loader,customized;if(!this.disabled&&this.ready&&this.check())return this.ready=!1,this.click_handle&&(loader||(document.getElementById("infinite-aria").textContent=loading_text,loader=document.createElement("div"),loader.classList.add("infinite-loader"),loader.setAttribute("role","progress"),loader.innerHTML='<svg class="jetpack-spinner infinite-loader-spinner spinner" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><circle cx="50" cy="50" r="46" fill="none" stroke="#ddd" stroke-width="8"/><path d="M 50 4 A 46 46 0 0 1 96 50" fill="none" stroke="currentColor" stroke-width="8" stroke-linecap="round"><animateTransform attributeName="transform" type="rotate" dur="1.4s" from="0 50 50" to="360 50 50" repeatCount="indef
1inite"/></path></svg>'),this.element.appendChild(loader)),query=self.extend({action:"infinite_scroll"},this.query()),"undefined"!=typeof wp&&wp.customize&&wp.customize.settings.theme&&(customized={},query.wp_customize="on",query.theme=wp.customize.settings.theme.stylesheet,wp.customize.each(function(e){e._dirty&&(customized[e.id]=e())}),query.customized=JSON.stringify(customized),query.nonce=wp.customize.settings.nonce.preview),xhr=new XMLHttpRequest,xhr.open("POST",infiniteScroll.settings.ajaxurl,!0),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),xhr.send(self.urlEncodeJSON(query)),xhr.onerror=function(){self.click_handle&&loader.parentNode&&loader.parentNode.removeChild(loader),self.ready=!0},xhr.onload=function(){var response=JSON.parse(xhr.responseText),httpCheck=xhr.status>=200&&xhr.status<300,responseCheck=void 0!==response.html;if(response&&httpCheck&&responseCheck){if(self.click_handle&&loader.parentNode&&loader.parentNode.removeChild(loader),response.scripts&&Array.isArray(response.scripts)&&response.scripts.forEach(function(e){var t=e.footer?"body":"head";window.infiniteScroll.settings.scripts.push(e.handle),e.extra_data&&self.appendInlineScript(e.extra_data,t),e.before_handle&&self.appendInlineScript(e.before_handle,t);var n=document.createElement("script");n.type="text/javascript",n.src=e.src,n.id=e.handle,n.async=!1,e.after_handle&&(n.onload=function(){self.appendInlineScript(e.after_handle,t)}),"wp-mediaelement"===e.handle&&self.body.removeEventListener("is.post-load",self.initializeMejs),"wp-mediaelement"===e.handle&&"undefined"==typeof mejs?(self.wpMediaelement={},self.wpMediaelement.tag=n,self.wpMediaelement.element=t,setTimeout(self.maybeLoadMejs.bind(self),250)):document.getElementsByTagName(t)[0].appendChild(n)}),response.styles&&Array.isArray(response.styles)&&response.styles.forEach(function(item){window.infiniteScroll.settings.styles.push(item.handle);var style=document.createElement("link");style.rel="stylesheet",style.href=item.src,style.id=item.handle+"-css",!item.conditional||isIE&&eval(item.conditional.replace(/%ver/g,IEVersion))||(style=!1),style&&document.getElementsByTagName("head")[0].appendChild(style)}),response.fragment=document.createElement("div"),response.fragment.innerHTML=response.html,self.page++,stats&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?"+stats+"&post=0&baba="+Math.random()),"object"==typeof response.postflair&&"object"==typeof WPCOM_sharing_counts&&(WPCOM_sharing_counts=self.extend(WPCOM_sharing_counts,response.postflair)),self.render.call(self,response),"click"===type?(infiniteScroll.settings.wrapper&&document.querySelector("#infinite-view-"+(self.page+self.offset-1)+" a:first-of-type").focus({preventScroll:!0}),response.lastbatch?self.click_handle?(self.body.classList.add("infinity-end"),self.body.classList.remove("infinity-success")):self.trigger(this.body,"infinite-scroll-posts-end"):self.click_handle?self.element.appendChild(self.handle):self.trigger(this.body,"infinite-scroll-posts-more")):response.lastbatch&&(self.disabled=!0,self.body.classList.add("infinity-end"),self.body.classList.remove("infinity-success")),response.currentday&&(self.currentday=response.currentday),self.google_analytics){var ga_url=self.history.path.replace(/%d/,self.page);"object"==typeof _gaq&&_gaq.push(["_trackPageview",ga_url]),"function"==typeof ga&&ga("send","pageview",ga_url)}}else self.click_handle&&loader.parentNode&&loader.parentNode.removeChild(loader)},xhr},Scroller.prototype.appendInlineScript=function(e,t){var n=document.createElement("script"),i=document.createTextNode("//<![CDATA[ \n"+e+"\n//]]>");n.type="text/javascript",n.appendChild(i),document.getElementsByTagName(t)[0].appendChild(n)},Scroller.prototype.maybeLoadMejs=function(){null!==this.wpMediaelement&&("undefined"==typeof mejs?setTimeout(this.maybeLoadMejs.bind(this),250):(document.getElementsByTagName(this.wpMediaelement.element)[0].appendChild(this.wpMediaelement.tag),this.wpMediaelement=null,this.body.addEventListener("is.post-load",this.initializeMejs)))},Scroller.prototype.initializeMejs=function(e){if(e.detail&&e.detail.html&&(-1!==e.detail.html.indexOf("wp-audio-shortcode")||-1!==e.detail.html.indexOf("wp-video-shortcode"))&&"undefined"!=typeof mejs){var t,n={};"undefined"!=typeof _wpmejsSettings&&(n.pluginPath=_wpmejsSettings.pluginPath),n.success=function(e){var t=e.attributes.autoplay&&"false"!==e.attributes.autoplay;"flash"===e.pluginType&&t&&e.addEventListener("canplay",function(){e.play()},!1)},t=document.querySelectorAll(".wp-audio-shortcode, .wp-video-shortcode"),t=(t=Array.prototype.slice.call(t)).filter(function(e){for(;e.parentNode;){if(e.classList.contains("mejs-container"))return!1;e=e.parentNode}return!0});for(var i=0;i<t.length;i++)new MediaElementPlayer(t[i],n)}},Scroller.prototype.measure=function(e,t){t=t||[];for(var n,i,o,r=Array.prototype.slice.call(e.children),s=Number.MAX_VALUE,l=0;r.length>0;){for(n=r.shift(),o=0;o<t.length;o++)if(n.classList.contains(t[o])){r=r.concat(Array.prototype.slice.call(n.children));break}i=n.getBoundingClientRect(),s=Math.min(s,i.top),l=Math.max(l,i.bottom)}var a=Math.round(window.innerHeight/2),d=s<=a&&l>=a;return{top:s,bottom:l,height:l-s,factor:(Math.min(l,a)-Math.max(s,0))/a,isActive:d}},Scroller.prototype.ensureFilledViewport=function(){var e=this,t=e.window.innerHeight,n=e.measure(e.element,[e.wrapperClass]);e.body.removeEventListener("is.post-load",e.checkViewportOnLoadBound),0!==n.bottom&&n.bottom<t&&(e.ready=!0,e.refresh())},Scroller.prototype.checkViewportOnLoad=function(){this.ensureFilledViewport()};var previousFullScrenState=fullscreenState();Scroller.prototype.determineURL=function(){var e,t=this,n=-1,i=fullscreenState(),o=0;if(previousFullScrenState^i)previousFullScrenState=i;else{previousFullScrenState=i,e=document.querySelectorAll("."+t.wrapperClass);for(var r=0;r<e.length;r++){var s=t.measure(e[r]);if(s.isActive){n=parseInt(e[r].dataset.pageNum,10);break}s.factor>o&&(n=parseInt(e[r].dataset.pageNum,10),o=s.factor)}t.updateURL(n)}},Scroller.prototype.updateURL=function(e){if(window.history.pushState){var t=this,n=t.origURL;-1!==e&&(n=window.location.protocol+"//"+t.history.host+t.history.path.replace(/%d/,e)+t.history.parameters),window.location.href!==n&&history.pushState(null,null,n)}},Scroller.prototype.pause=function(){this.disabled=!0},Scroller.prototype.resume=function(){this.disabled=!1},Scroller.prototype.trigger=function(e,t,n){var i;(n=n||{}).jqueryEventName&&"undefined"!=typeof jQuery&&jQuery(e).trigger(n.jqueryEventName,n.data||null);try{i=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n.data||null})}catch{(i=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,n.data||null)}e.dispatchEvent(i)};var jetpackInfinityModule=function(){if("object"==typeof infiniteScroll&&(infiniteScroll.
1settings.body_class.split(" ").forEach(function(e){e&&document.body.classList.add(e)}),stats=infiniteScroll.settings.stats,type=infiniteScroll.settings.type,text=infiniteScroll.settings.text,totop=infiniteScroll.settings.totop,loading_text=infiniteScroll.settings.loading_text,infiniteScroll.scroller=new Scroller(infiniteScroll.settings),"click"===type)){var e=null;window.addEventListener("scroll",function(){e||(e=setTimeout(function(){infiniteScroll.scroller.determineURL(),e=null},250))})}};"interactive"===document.readyState||"complete"===document.readyState?jetpackInfinityModule():document.addEventListener("DOMContentLoaded",jetpackInfinityModule)})()})();; 2!function($){"use strict";(new function(){var e=this;this.init=function(){window.ppFormRecaptchaLoadCallback=this.recaptcha_processing,$(".pp-del-profile-avatar").on("click",this.delete_avatar),$(".pp-del-cover-image").on("click",this.delete_profile_image_cover),$(document).on("click",".has-password-visibility-icon .pp-form-material-icons",this.toggle_password_visibility),$(document.body).on("click","a.showlogin",(function(){$(".pp_wc_login").slideToggle()})),$(window).on("load resize ppress_updated_checkout",(function(){e.defaultUserProfileResponsive()})),$(window).on("ppress_updated_checkout",(function(){e.recaptcha_processing()})),$(document).on("click",".ppress-confirm-delete",(function(e){e.preventDefault(),confirm(pp_ajax_form.confirm_delete)&&(window.location.href=$(this).attr("href"))})),this.submit_reload_form_on_billing_country_field_change(),this.myaccount_password_strength_meter(),"true"!==pp_ajax_form.disable_ajax_form&&($(document).on("submit",'form[data-pp-form-submit="login"]',this.ajax_login),$(document).on("submit",'form[data-pp-form-submit="signup"]',this.ajax_registration),$(document).on("submit",'form[data-pp-form-submit="passwordreset"]',this.ajax_password_reset),$(document).on("submit",'form[data-pp-form-submit="editprofile"]',this.ajax_edit_profile))},this.recaptcha_processing=function(){$(".pp-g-recaptcha").each((function(s,t){var r=$(t).attr("data-sitekey"),o=$(this).parents(".pp-form-container").find("form"),p=void 0!==grecaptcha.enterprise?grecaptcha.enterprise:grecaptcha;if("v3"===$(t).attr("data-type"))o.find("input.pp-submit-form").on("click",(function(s){s.preventDefault(),e._add_processing_label(o),p.ready((function(){p.execute(r,{action:"form"}).then((function(e){o.find('[name="g-recaptcha-response"]').remove(),o.append($("<input>",{type:"hidden",value:e,name:"g-recaptcha-response"})),o.trigger("submit")}))}))}));else{try{var a=p.render(t,{sitekey:r,theme:$(t).attr("data-theme"),size:$(t).attr("data-size")})}catch(e){}o.on("pp_form_submitted",(function(){p.reset(a)})),$(document).on("ppress_process_checkout_success_callback ppress_process_checkout_error_callback",(function(){p.reset(a)}))}}))},this.toggle_password_visibility=function(e){e.preventDefault();var s=$(this).parents(".pp-form-field-input-textarea-wrap").find(".pp-form-field");"password"===s.attr("type")?(s.attr("type","text"),$(this).text("visibility_off")):(s.attr("type","password"),$(this).text("visibility"))},this.submit_reload_form_on_billing_country_field_change=function(){$(document).on("change",".pp-edit-profile-form-wrap select[name=ppress_billing_country]",(function(e){$(document).on("pp_form_edit_profile_success",(function(){window.location.reload()})),$(this).closest("form").find("input.pp-submit-form").trigger("click")}))},this.ajax_edit_profile=function(s){if(void 0!==window.FormData&&window.FormData){s.preventDefault();var t=$('form[data-pp-form-submit="editprofile"]'),r=e.get_melange_id(t),o=new FormData(this);o.append("action","pp_ajax_editprofile"),o.append("nonce",pp_ajax_form.nonce),o.append("melange_id",r),$(".profilepress-edit-profile-status").remove(),$(".profilepress-edit-profile-success").remove(),""!==window.edit_profile_msg_class&&$("."+window.edit_profile_msg_class).remove(),e._add_processing_label(t),$.post({url:pp_ajax_form.ajaxurl,data:o,cache:!1,contentType:!1,enctype:"multipart/form-data",processData:!1,dataType:"json",success:function(s){t.trigger("pp_form_submitted"),t.trigger("pp_form_edit_profile_success",[t]),"avatar_url"in s&&""!==s.avatar_url&&($("img[data-del='avatar'], img.pp-user-avatar").attr("src",s.avatar_url),$("input[name=eup_avatar]",t).val("")),"cover_image_url"in s&&""!==s.cover_image_url&&($("img[data-del='cover-image'], img.pp-user-cover-image").attr("src",s.cover_image_url),$("input[name=eup_cover_image]",t).val(""),$(".profilepress-myaccount-has-cover-image",t).show(),$(".profilepress-myaccount-cover-image-empty",t).hide()),"message"in s&&(window.edit_profile_msg_class=$(s.message).attr("class"),t.before(s.message),s.message&&s.message.includes("profilepress-edit-profile-status")&&e.scroll_to_notices($(".profilepress-edit-profile-status"))),"redirect"in s&&(t.trigger("pp_edit_profile_success_before_redirect"),window.location.assign(s.redirect)),e._remove_processing_label(t)}},"json")}},this.ajax_password_reset=function(s){s.preventDefault();var t=$(this),r=e.get_melange_id(t),o="true"===t.find('input[name="is-pp-tab-widget"]').val(),p={action:"pp_ajax_passwordreset",data:$(this).serialize()+"&melange_id="+r};e._remove_status_notice(),t.parents(".pp-tab-widget-form").prev(".pp-tab-status").remove(),e._add_processing_label(t),$.post(pp_ajax_form.ajaxurl,p,(function(s){if(t.trigger("pp_form_submitted"),"object"!=typeof s)return e._remove_processing_label(t);if("message"in s){if(t.trigger("pp_password_reset_status"),o){var r=s.message.replace("profilepress-reset-status","pp-tab-status");t.parents(".pp-tab-widget-form").before(r)}else t.parents(".lucidContainer").length>0?t.parents(".lucidContainer").before(s.message):t.before(s.message);"status"in s&&!0===s.status&&t.hide(),$('input[name="user_login"]',t).val("")}e._remove_processing_label(t)}),"json")},this.ajax_registration=function(s){if(void 0!==window.FormData&&window.FormData){s.preventDefault();var t=$(this),r=e.get_melange_id(t),o=new FormData(this),p="true"===t.find('input[name="is-pp-tab-widget"]').val();o.append("action","pp_ajax_signup"),o.append("melange_id",r),e._remove_status_notice(),t.parents(".pp-tab-widget-form").prev(".pp-tab-status").remove(),e._add_processing_label(t),$.post({url:pp_ajax_form.ajaxurl,data:o,cache:!1,contentType:!1,enctype:"multipart/form-data",processData:!1,dataType:"json",success:function(s){if(t.trigger("pp_form_submitted"),"object"!=typeof s)return e._remove_processing_label(t);if("message"in s){if(t.trigger("pp_registration_error",[s]),t.trigger("pp_registration_ajax_response",[s]),p){var r=s.message.replace("profilepress-reg-status","pp-tab-status");t.parents(".pp-tab-widget-form").before(r)}else t.parents(".lucidContainer").length>0?t.parents(".lucidContainer").before(s.message):t.before(s.message);s.message&&s.message.includes("profilepress-reg-status")&&e.scroll_to_notices()}else"redirect"in s&&(t.trigger("pp_registration_success",[s]),window.location.assign(s.redirect));e._remove_processing_label(t)}})}},this.ajax_login=function(s){s.preventDefault();var t=$(this),r={action:"pp_ajax_login",data:$(this).serialize()},o="true"===t.find('input[name="is-pp-tab-widget"]').val();e._remove_status_notice(),e._add_processing_label(t),$.post(pp_ajax_form.ajaxurl,r,(function(s){if(t.trigger("pp_form_submitted"),null===s||"object"!=typeof s)return e._remove_processing_label(t);if("success"in s&&!0===s.success&&"redirect"in s)t.trigger("pp_login_form_success"),window.location.assign(s.redirect);else if(t.trigger("pp_login_form_error"),"code"in s&&"pp2fa_auth_code_invalid"==s.code&&t.find(".pp-2fa").show(),o){var r=s.message.replace("profilepress-login-status","pp-tab-status");t.parents(".pp-tab-widget-form").before(r)}else t.parents(".lucidContainer").length>0?t.parents(".lucidContainer").before(s.message):t.before(s.message);e._remove_processing_label(t)}),"json")},this.delete_avatar=function(e){e.preventDefault();var s=$(this).text(),t=$(this);e.preventDefault(),confirm(pp_ajax_form.confirm_delete)&&(t.is("button")&&t.text(pp_ajax_form.deleting_text),$.post(pp_ajax_form.ajaxurl,{action:"pp_del_avatar",nonce:pp_ajax_form.nonce}).done((function(e){"error"in e&&"nonce_failed"===e.error?(t.text(s),alert(pp_ajax_form.deleting_error)):"success"in e&&($("img[data-del='avatar']").attr("src",e.default),t.remove())}
2)))},this.delete_profile_image_cover=function(e){e.preventDefault();var s=$(this).text(),t=$(this);e.preventDefault(),confirm(pp_ajax_form.confirm_delete)&&(t.is("button")&&t.text(pp_ajax_form.deleting_text),$.post(pp_ajax_form.ajaxurl,{action:"pp_del_cover_image",nonce:pp_ajax_form.nonce}).done((function(e){"error"in e&&"nonce_failed"===e.error&&(t.text(s),alert(pp_ajax_form.deleting_error)),"success"in e&&(""!==e.default?($("img[data-del='cover-image']").attr("src",e.default),t.parent().find(".profilepress-myaccount-has-cover-image").show(),t.parent().find(".profilepress-myaccount-cover-image-empty").hide()):(t.parent().find(".profilepress-myaccount-has-cover-image").hide(),t.parent().find(".profilepress-myaccount-cover-image-empty").show()),t.remove())})))},this.get_melange_id=function(e){var s=$("input.pp_melange_id",e).val();return void 0===s?"":s},this._add_processing_label=function(e){var s=e.find("input[data-pp-submit-label]");s.attr({value:s.data("pp-processing-label"),disabled:"disabled"}).css("opacity",".4")},this._remove_processing_label=function(e){var s=e.find("input[data-pp-submit-label]");s.attr("value",s.data("pp-submit-label")),s.attr({value:s.data("pp-submit-label"),disabled:null}).css("opacity","")},this._remove_status_notice=function(){$(".profilepress-login-status,.pp-tab-status,.profilepress-edit-profile-success,.profilepress-edit-profile-status,.pp-reset-success,.profilepress-reset-status,.profilepress-reg-status").remove()},this.scroll_to_notices=function(e){(e=e||$(".profilepress-reg-status")).length&&$("html, body").animate({scrollTop:e.offset().top-100},1e3)},this.defaultUserProfileResponsive=function(){$(".ppress-default-profile, .pp-member-directory, .ppress-checkout__form").each((function(){var e=$
2(this),s=e.width();s<=340?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui800"),e.removeClass("ppressui768"),e.removeClass("ppressui960"),e.addClass("ppressui340")):s<=500?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960"),e.addClass("ppressui500")):s<=768?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960"),e.addClass("ppressui768")):s<=800?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960"),e.addClass("ppressui800")):s<=960?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960"),e.addClass("ppressui960")):s>960&&(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960")),e.css("opacity",1)})),$(".ppress-default-profile-cover, .ppress-default-profile-cover-e").each((function(){var e=$
2(this),s=Math.round(e.width()/e.data("ratio"))+"px";e.height(s),e.find(".ppress-dpf-cover-add").height(s)}))},this.myaccount_password_strength_meter=function(){$((function(){var e=$("input[name=password_new]"),s=$("input[name=password_confirm_new]"),t=$("input[name=submit-form]"),r=$("#pp-pass-strength-result");$("body").on("keyup","input[name=password_new], input[name=password_confirm_new]",(function(o){!function(e,s,t,r,o){var p=e.val(),a=s.val();r.attr("disabled","disabled"),t.removeClass("short bad good strong"),o=o.concat(wp.passwordStrength.userInputDisallowedList());var i=wp.passwordStrength.meter(p,o,a);switch(i){case 2:t.addClass("bad").html(pwsL10n.bad);break;case 3:t.addClass("good").html(pwsL10n.good);break;case 4:t.addClass("strong").html(pwsL10n.strong);break;case 5:t.addClass("short").html(pwsL10n.mismatch);break;default:t.addClass("short").html(pwsL10n.short)}"false"===myacPwsL10n.disable_enforcement&&4===i&&""!==a.trim()&&r.removeAttr("disabled")}(e,s,r,t,[])}))}))}}).init(),(new function(){let e=this;window.ppressCheckoutForm=this,this.last_checked_email="",this.check_email_xhr=null,this.init=function(){if("0"!==pp_ajax_form.is_checkout&&0!==$("#ppress_checkout_main_form").length){if($(document).on("click",".ppress-checkout-show-login-form",this.toggle_login_form),$(document).on("click",'.ppress-login-submit-btn input[type="submit"]',this.process_login),$(document).on("click",".ppress-coupon-code-link",this.toggle_discount_code_reveal),$(document).on("click",".ppress-apply-discount-btn",this.apply_discount_code),$(document).on("click","#ppress-remove-applied-coupon",this.remove_applied_discount_code),$(document).on("submit","#ppress_mb_checkout_form",this.process_checkout),"1"!==pp_ajax_form.is_user_logged_in){$(document).on("blur","#ppress_mb_checkout_form #ppmb_email",this.check_email_exists),$(document).on("input","#ppress_mb_checkout_form #ppmb_email",e.debounce(this.check_email_exists,500)),$(document).on("click",".ppress-checkout-inline-login-link",this.show_login_form_and_focus),$.trim($("#ppress_mb_checkout_form #ppmb_email").val())&&this.check_email_exists()}$(document).on("click",".ppress-terms-and-conditions-link",(function(e){var s=$(".ppress-checkout-form__terms_condition__content");s.length>0&&(e.preventDefault(),s.slideToggle())})),$(document).on("ppress_update_checkout",this.update_checkout),"1"===pp_ajax_form.is_checkout_tax_enabled?$(document).on("change","#ppress_mb_checkout_form .ppress_billing_country, #ppress_mb_checkout_form .ppress_billing_state, #ppress_mb_checkout_form .ppress_vat_number",e.debounce((function(){$(document.body).trigger("ppress_update_checkout")}),200)):$(document).on("change","#ppress_mb_checkout_form .ppress_billing_country",e.contextual_state_field),$(document.body).on("change","#ppress_checkout_payment_methods [name=ppress_payment_method]",(function(){$(document.body).trigger("ppress_update_checkout")})),$(document.body).on("change","#ppress_mb_checkout_form #ppress-checkout-renewal",(function(){$(document.body).trigger("ppress_update_checkout")})),$(document.body).on("change","#ppress_mb_checkout_form #pwyw_price",(function(){$(document.body).trigger("ppress_update_checkout")})),$(document.body).on("change","#ppress_mb_checkout_form [name=group_selector]",(function(){e.update_checkout()})),$(document.body).trigger("ppress_update_checkout"),$(document).ajaxError((function(){e.remove_spinner()}))}},this.debounce=function(e,s){let t;return s=s||600,function(){clearTimeout(t),t=setTimeout((function(){e()}),s)}},this.contextual_state_field=function(){let e=$(".ppress_billing_state"),s={action:"ppress_contextual_state_field",country:$(this).val(),name:e.prop("name"),id:e.prop("id"),class:e.prop("class"),csrf:$("#ppress_checkout_nonce").val()};$.post(pp_ajax_form.ajaxurl,s,(function(s){e.replaceWith(s.data)}))},this.scroll_to_notices=function(e){"true"===pp_ajax_form.is_checkout_autoscroll_enabled&&(e=e||$(".ppress-checkout-alert")).length&&$("html, body").animate({scrollTop:e.offset().top-100},1e3)},this.update_checkout=function(s){s=s||!1;let t=$("#ppress_mb_checkout_form [name=group_selector]").length>0;e.removeAllAlerts(),e.add_spinner();let r={action:"ppress_update_order_review",plan_id:$("#ppress-checkout-plan-id").val(),ppress_payment_method:$("#ppress_checkout_payment_methods [name=ppress_payment_method]:checked").val(),csrf:$("#ppress_checkout_nonce").val(),address:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_address").val(),city:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_city").val(),country:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_country").val(),state:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_state").val(),postcode:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_postcode").val(),phone:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_phone").val(),vat_number:$("#ppress_checkout_main_form .ppress_vat_number").val(),post_data:$("#ppress_mb_checkout_form").serialize()};!0===t&&(r.isChangePlanUpdate="true"),$.post(pp_ajax_form.ajaxurl,r,(function(o){let p={};if($(".ppress-checkout-form__payment_method :input, .ppress-checkout_account_info-wrap :input").each((function(){let e=$(this).attr("id");e&&(-1!==$.inArray($(this).attr("type"),["checkbox","radio"])?p[e]=$(this).prop("checked"):p[e]=$(this).val())})),"data"in o&&void 0!==o.data.fragments&&($.each(o.data.fragments,(function(s,t){e.fragments&&e.fragments[s]===t||$(s).replaceWith(t)})),e.fragments=r.fragments),$.isEmptyObject(p)||$(".ppress-checkout-form__payment_method :input, .ppress-checkout_account_info-wrap :input").each((function(){let e=$(this).attr("id");e&&(-1!==$.inArray($(this).attr("type"),["checkbox","radio"])?$(this).prop("checked",p[e]):($.inArray($(this).attr("type"),["select"]),$(this).val(p[e])))})),"success"in o&&!1===o.success){let e=$("#ppress_checkout_main_form");
2o.data&&e.prepend(o.data),e.find(".input-text, select, input:checkbox").trigger("blur")}$(document.body).trigger("ppress_updated_checkout",[o]);let a,i=$(".ppress-checkout_order_summary__bottom_details");(a=$(".ppress-checkout-alert")).length>0&&(i=a),e.scroll_to_notices(i),e.remove_spinner(),!0===t&&!0!==s&&e.update_checkout(!0),!0===t&&(e.last_checked_email="",e.check_email_exists())}))},this.toggle_login_form=function(e){e.preventDefault(),$("#ppress_checkout_account_info .ppress-main-checkout-form__login_form_wrap").slideToggle((function(){if($(this).is(":visible")){let e=$.trim($("#ppress_mb_checkout_form #ppmb_email").val()),s=$("#ppmb_user_login");e&&!s.val()&&s.val(e)}}))},this.show_login_form_and_focus=function(e){e.preventDefault();let s=$("#ppress_checkout_account_info .ppress-main-checkout-form__login_form_wrap"),t=$.trim($("#ppress_mb_checkout_form #ppmb_email").val()),r=$("#ppmb_user_login");t&&r.val(t);let o=function(){r.val()?$("#ppmb_user_pass").focus():r.focus()};s.is(":visible")?o():s.slideDown(o),$("#ppress_checkout_account_info").length&&$("html, body").animate({scrollTop:$("#ppress_checkout_account_info").offset().top-100},500)},this.check_email_exists=function(){if("1"===pp_ajax_form.is_user_logged_in)return;let s=$("#ppress_mb_checkout_form #ppmb_email");if(0===s.length||"hidden"===s.attr("type"))return;let t=$.trim(s.val());if(!t||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t))return e.remove_email_exists_message(),void(e.last_checked_email="");if(t===e.last_checked_email)return;let r={action:"ppress_checkout_check_email",email:t,csrf:$("#ppress_checkout_nonce").val()||pp_ajax_form.nonce};e.check_email_xhr&&e.check_email_xhr.abort(),e.check_email_xhr=$.post(pp_ajax_form.ajaxurl,r,(function(r){if(e.last_checked_email=t,e.remove_email_exists_message(),r&&r.success&&r.data&&r.data.exists&&$.trim($("#ppress_mb_checkout_form #ppmb_email").val())===t){let e=r.data.message||"";if(e){let t=$('<div class="ppress-checkout-field-inline-message ppress-checkout-email-exists-message">'+e+"</div>"),r=s.closest(".ppmb-email");r.length?r.append(t):s.after(t)}}}))},this.remove_email_exists_message=function(){$(".ppress-checkout-email-exists-message").remove()},this.toggle_discount_code_reveal=function(e){e.preventDefault(),$("#ppress-checkout-coupon-code-wrap").slideToggle()},this.apply_discount_code=function(s){s.preventDefault(),e.removeAllAlerts(),e.add_spinner();let t={action:"ppress_checkout_apply_discount",plan_id:$("#ppress-checkout-plan-id").val(),coupon_code:$("#apply-discount").val(),ppress_checkout_nonce:$("#ppress_checkout_nonce").val()};$.post(pp_ajax_form.ajaxurl,t,(function(s){"success"in s&&!0===s.success?$(document.body).trigger("ppress_update_checkout"):($(".ppress-checkout_order_summary-wrap").before(s.data),e.remove_spinner())}))},this.remove_applied_discount_code=function(s){s.preventDefault(),e.removeAllAlerts(),e.add_spinner();let t={action:"ppress_checkout_remove_discount",plan_id:$("#ppress-checkout-plan-id").val(),ppress_checkout_nonce:$("#ppress_checkout_nonce").val()};$.post(pp_ajax_form.ajaxurl,t,(function(s){"success"in s&&!0===s.success?$(document.body).trigger("ppress_update_checkout"):($(".ppress-checkout_order_summary-wrap").before(s.data),e.remove_spinner())}))},this.process_login=function(s){s.preventDefault(),e.removeAllAlerts(),e.add_spinner();let t={action:"ppress_process_checkout_login",ppmb_user_login:$("#ppress_mb_checkout_form #ppmb_user_login").val(),ppmb_user_pass:$("#ppress_mb_checkout_form #ppmb_user_pass").val(),ppress_checkout_nonce:$("#ppress_checkout_nonce").val()};$.post(pp_ajax_form.ajaxurl,t,(function(s){"success"in s&&(!0===s.success?window.location.reload():"data"in s&&$("#ppress_mb_checkout_form .ppress-login-submit-btn").prepend(s.data)),e.remove_spinner()}))},this.process_checkout=function(s){if("function"!=typeof this.checkValidity||!1!==this.checkValidity()){s.preventDefault(),e.removeAllAlerts(),e.add_spinner();var t=$(this),r=e.get_payment_method();if(!1!==t.triggerHandler("ppress_checkout_place_order_"+r)){let s=new FormData(this);s.append("action","ppress_process_checkout"),s.append("ppress_checkout_nonce",$("#ppress_checkout_nonce").val()),$.post({url:pp_ajax_form.ajaxurl,data:s,cache:!1,contentType:!1,enctype:"multipart/form-data",processData:!1,dataType:"json",success:function(s){if($(document.body).trigger("ppress_process_checkout_success_callback",[s]),"success"in s)return!0===s.success?void(!1!==t.triggerHandler("ppress_process_checkout_"+r,[s,r])&&("redirect_url"in s&&void 0!==s.redirect_url&&s.redirect_url.length>0?window.location.assign(s.redirect_url):($(document.body).trigger("ppress_checkout_success",[s,r]),window.location.assign(s.order_success_url)))):"error_message"in s?e.createAlertMessage(s.error_message):"data"in s&&"string"==typeof s.data?e.createAlertMessage(s.data):void 0;e.remove_spinner()},error:function(s,t,r){$(document.body).trigger("ppress_process_checkout_error_callback",[s,t,r]),e.createAlertMessage(r)}},"json")}}},this.get_payment_method=function(){return $("#ppress_mb_checkout_form").find('input[name="ppress_payment_method"]:checked').val()},this.createAlertMessage=function(e,s){s=s||"error";var t=void 0!==e.indexOf&&-1!==e.indexOf("ppress-checkout-alert"),r="";t||(r='<div class="ppress-checkout-alert ppress-'+s+'"><p>'),r+=e,t||(r+="</p></div>"),$("#ppress_checkout_main_form").prepend(r),ppressCheckoutForm.scroll_to_notices(),ppressCheckoutForm.remove_spinner(),$(document.body).trigger("ppress_checkout_error",[e])},this.removeAllAlerts=function(){$(".ppress-checkout-alert").remove()},this.add_spinner=function(){e.remove_spinner(),$(".ppress-checkout__form").prepend('<div class="ppress-checkout__form__preloader"><div class="ppress-checkout__form__spinner"></div></div>')},this.remove_spinner=function(){$(".ppress-checkout__form .ppress-checkout__form__preloader").remove()},this.is_var_defined=function(e){return null!=e},this.get_obj_val=function(e,s){return this.is_var_defined(e)&&""!==e?e:s}}).init()}(jQuery);; 3/** 4 * File navigation.js. 5 * 6 * Handles toggling the navigation menu for small screens and enables TAB key 7 * navigation support for dropdown menus. 8 */ 9( function() { 10 var container, button, menu, links, i, len; 11 12 container = document.getElementById( 'site-navigation' ); 13 if ( ! container ) { 14 return; 15 } 16 17 button = container.getElementsByTagName( 'button' )[0]; 18 if ( 'undefined' === typeof button ) { 19 return; 20 } 21 22 menu = container.getElementsByTagName( 'ul' )[0]; 23 24 // Hide menu toggle button if menu is empty and return early. 25 if ( 'undefined' === typeof menu ) { 26 button.style.display = 'none'; 27 return; 28 } 29 30 menu.setAttribute( 'aria-expanded', 'false' ); 31 if ( -1 === menu.className.indexOf( 'nav-menu' ) ) { 32 menu.className += ' nav-menu'; 33 } 34 35 button.onclick = function() { 36 if ( -1 !== container.className.indexOf( 'toggled' ) ) { 37 container.className = container.className.replace( ' toggled', '' ); 38 button.setAttribute( 'aria-expanded', 'false' ); 39 menu.setAttribute( 'aria-expanded', 'false' ); 40 } else {
41 container.className += ' toggled'; 42 button.setAttribute( 'aria-expanded', 'true' ); 43 menu.setAttribute( 'aria-expanded', 'true' ); 44 } 45 }; 46 47 // Get all the link elements within the menu. 48 links = menu.getElementsByTagName( 'a' ); 49 50 // Each time a menu link is focused or blurred, toggle focus. 51 for ( i = 0, len = links.length; i < len; i++ ) { 52 links[i].addEventListener( 'focus', toggleFocus, true ); 53 links[i].addEventListener( 'blur', toggleFocus, true ); 54 } 55 56 /** 57 * Sets or removes .focus class on an element. 58 */ 59 function toggleFocus() { 60 var self = this; 61 62 // Move up through the ancestors of the current link until we hit .nav-menu. 63 while ( -1 === self.className.indexOf( 'nav-menu' ) ) { 64 65 // On li elements toggle the class .focus. 66 if ( 'li' === self.tagName.toLowerCase() ) { 67 if ( -1 !== self.className.indexOf( 'focus' ) ) { 68 self.className = self.className.replace( ' focus', '' ); 69 } else { 70 self.className += ' focus'; 71 } 72 } 73 74 self = self.parentElement; 75 } 76 } 77 78 /** 79 * Toggles `focus` class to allow submenu access on tablets. 80 */ 81 ( function( container ) { 82 var touchStartFn, i, 83 parentLink = container.querySelectorAll( '.menu-item-has-children > a, .page_item_has_children > a' ); 84 85 if ( 'ontouchstart' in window ) { 86 touchStartFn = function( e ) { 87 var menuItem = this.parentNode, i; 88 89 if ( ! menuItem.classList.contains( 'focus' ) ) { 90 e.preventDefault(); 91 for ( i = 0; i < menuItem.parentNode.children.length; ++i ) { 92 if ( menuItem === menuItem.parentNode.children[i] ) { 93 continue; 94 } 95 menuItem.parentNode.children[i].classList.remove( 'focus' ); 96 } 97 menuItem.classList.add( 'focus' ); 98 } else { 99 menuItem.classList.remove( 'focus' ); 100 } 101 }; 102 103 for ( i = 0; i < parentLink.length; ++i ) { 104 parentLink[i].addEventListener( 'touchstart', touchStartFn, false ); 105 } 106 } 107 }( container ) ); 108} )(); 109; 110/** 111 * File skip-link-focus-fix.js. 112 * 113 * Helps with accessibility for keyboard only users. 114 * 115 * Learn more: https://git.io/vWdr2 116 */ 117( function() { 118 var isIe = /(trident|msie)/i.test( navigator.userAgent ); 119 120 if ( isIe && document.getElementById && window.addEventListener ) { 121 window.addEventListener( 'hashchange', function() { 122 var id = location.hash.substring( 1 ), 123 element; 124 125 if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) { 126 return; 127 } 128 129 element = document.getElementById( id ); 130 131 if ( element ) { 132 if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) { 133 element.tabIndex = -1; 134 } 135 136 element.focus(); 137 } 138 }, false ); 139 } 140} )(); 141; 142/* 143 _ _ _ _ 144 ___| (_) ___| | __ (_)___ 145/ __| | |/ __| |/ / | / __| 146\__ \ | | (__| < _ | \__ \ 147|___/_|_|\___|_|\_(_)/ |___/ 148 |__/ 149 150 Version: 1.6.0 151 Author: Ken Wheeler 152 Website: http://kenwheeler.github.io 153 Docs: http://kenwheeler.github.io/slick 154 Repo: http://github.com/kenwheeler/slick 155 Issues: http://github.com/kenwheeler/slick/issues 156 157 */ 158/* global window, document, define, jQuery, setInterval, clearInterval */ 159(function(factory) { 160 'use strict'; 161 if (typeof define === 'function' && define.amd) { 162 define(['jquery'], factory); 163 } else if (typeof exports !== 'undefined') { 164 module.exports = factory(require('jquery')); 165 } else { 166 factory(jQuery); 167 } 168 169}(function($) { 170 'use strict'; 171 var Slick = window.Slick || {}; 172 173 Slick = (function() { 174 175 var instanceUid = 0; 176 177 function Slick(element, settings) { 178 179 var _ = this, dataSettings; 180 181 _.defaults = { 182 accessibility: true, 183 adaptiveHeight: false, 184 appendArrows: $(element), 185 appendDots: $(element), 186 arrows: true, 187 asNavFor: null, 188 prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>', 189 nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>', 190 autoplay: false, 191 autoplaySpeed: 3000, 192 centerMode: false, 193 centerPadding: '50px', 194 cssEase: 'ease', 195 customPaging: function(slider, i) { 196 return $('<button type="button" data-role="none" role="button" tabindex="0" />').text(i + 1); 197 }, 198 dots: false, 199 dotsClass: 'slick-dots', 200 draggable: true, 201 easing: 'linear', 202 edgeFriction: 0.35, 203 fade: false, 204 focusOnSelect: false, 205 infinite: true, 206 initialSlide: 0, 207 lazyLoad: 'ondemand', 208 mobileFirst: false, 209 pauseOnHover: true, 210 pauseOnFocus: true, 211 pauseOnDotsHover: false, 212 respondTo: 'window', 213 responsive: null, 214 rows: 1, 215 rtl: false, 216 slide: '', 217 slidesPerRow: 1, 218 slidesToShow: 1, 219 slidesToScroll: 1, 220 speed: 500, 221 swipe: true, 222 swipeToSlide: false, 223 touchMove: true, 224 touchThreshold: 5, 225 useCSS: true, 226 useTransform: true, 227 variableWidth: false, 228 vertical: false, 229 verticalSwiping: false, 230 waitForAnimate: true, 231 zIndex: 1000 232 }; 233 234 _.initials = { 235 animating: false, 236 dragging: false, 237 autoPlayTimer: null, 238 currentDirection: 0, 239 currentLeft: null, 240 currentSlide: 0, 241 direction: 1, 242 $dots: null, 243 listWidth: null, 244 listHeight: null, 245 loadIndex: 0, 246 $nextArrow: null, 247 $prevArrow: null, 248 slideCount: null, 249 slideWidth: null, 250 $slideTrack: null, 251 $slides: null, 252 sliding: false, 253 slideOffset: 0, 254 swipeLeft: null
vendor: 11,177 bytes, lines 254-637
254, 255 $list: null, 256 touchObject: {}, 257 transformsEnabled: false, 258 unslicked: false 259 }; 260 261 $.extend(_, _.initials); 262 263 _.activeBreakpoint = null; 264 _.animType = null; 265 _.animProp = null; 266 _.breakpoints = []; 267 _.breakpointSettings = []; 268 _.cssTransitions = false; 269 _.focussed = false; 270 _.interrupted = false; 271 _.hidden = 'hidden'; 272 _.paused = true; 273 _.positionProp = null; 274 _.respondTo = null; 275 _.rowCount = 1; 276 _.shouldClick = true; 277 _.$slider = $(element); 278 _.$slidesCache = null; 279 _.transformType = null; 280 _.transitionType = null; 281 _.visibilityChange = 'visibilitychange'; 282 _.windowWidth = 0; 283 _.windowTimer = null; 284 285 dataSettings = $(element).data('slick') || {}; 286 287 _.options = $.extend({}, _.defaults, settings, dataSettings); 288 289 _.currentSlide = _.options.initialSlide; 290 291 _.originalSettings = _.options; 292 293 if (typeof document.mozHidden !== 'undefined') { 294 _.hidden = 'mozHidden'; 295 _.visibilityChange = 'mozvisibilitychange'; 296 } else if (typeof document.webkitHidden !== 'undefined') { 297 _.hidden = 'webkitHidden'; 298 _.visibilityChange = 'webkitvisibilitychange'; 299 } 300 301 _.autoPlay = $.proxy(_.autoPlay, _); 302 _.autoPlayClear = $.proxy(_.autoPlayClear, _); 303 _.autoPlayIterator = $.proxy(_.autoPlayIterator, _); 304 _.changeSlide = $.proxy(_.changeSlide, _); 305 _.clickHandler = $.proxy(_.clickHandler, _); 306 _.selectHandler = $.proxy(_.selectHandler, _); 307 _.setPosition = $.proxy(_.setPosition, _); 308 _.swipeHandler = $.proxy(_.swipeHandler, _); 309 _.dragHandler = $.proxy(_.dragHandler, _); 310 _.keyHandler = $.proxy(_.keyHandler, _); 311 312 _.instanceUid = instanceUid++; 313 314 // A simple way to check for HTML strings 315 // Strict HTML recognition (must start with <) 316 // Extracted from jQuery v1.11 source 317 _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/; 318 319 320 _.registerBreakpoints(); 321 _.init(true); 322 323 } 324 325 return Slick; 326 327 }()); 328 329 Slick.prototype.activateADA = function() { 330 var _ = this; 331 332 _.$slideTrack.find('.slick-active').attr({ 333 'aria-hidden': 'false' 334 }).find('a, input, button, select').attr({ 335 'tabindex': '0' 336 }); 337 338 }; 339 340 Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) { 341 342 var _ = this; 343 344 if (typeof(index) === 'boolean') { 345 addBefore = index; 346 index = null; 347 } else if (index < 0 || (index >= _.slideCount)) { 348 return false; 349 } 350 351 _.unload(); 352 353 if (typeof(index) === 'number') { 354 if (index === 0 && _.$slides.length === 0) { 355 $(markup).appendTo(_.$slideTrack); 356 } else if (addBefore) { 357 $(markup).insertBefore(_.$slides.eq(index)); 358 } else { 359 $(markup).insertAfter(_.$slides.eq(index)); 360 } 361 } else { 362 if (addBefore === true) { 363 $(markup).prependTo(_.$slideTrack); 364 } else { 365 $(markup).appendTo(_.$slideTrack); 366 } 367 } 368 369 _.$slides = _.$slideTrack.children(this.options.slide); 370 371 _.$slideTrack.children(this.options.slide).detach(); 372 373 _.$slideTrack.append(_.$slides); 374 375 _.$slides.each(function(index, element) { 376 $(element).attr('data-slick-index', index); 377 }); 378 379 _.$slidesCache = _.$slides; 380 381 _.reinit(); 382 383 }; 384 385 Slick.prototype.animateHeight = function() { 386 var _ = this; 387 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) { 388 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true); 389 _.$list.animate({ 390 height: targetHeight 391 }, _.options.speed); 392 } 393 }; 394 395 Slick.prototype.animateSlide = function(targetLeft, callback) { 396 397 var animProps = {}, 398 _ = this; 399 400 _.animateHeight(); 401 402 if (_.options.rtl === true && _.options.vertical === false) { 403 targetLeft = -targetLeft; 404 } 405 if (_.transformsEnabled === false) { 406 if (_.options.vertical === false) { 407 _.$slideTrack.animate({ 408 left: targetLeft 409 }, _.options.speed, _.options.easing, callback); 410 } else { 411 _.$slideTrack.animate({ 412 top: targetLeft 413 }, _.options.speed, _.options.easing, callback); 414 } 415 416 } else { 417 418 if (_.cssTransitions === false) { 419 if (_.options.rtl === true) { 420 _.currentLeft = -(_.currentLeft); 421 } 422 $({ 423 animStart: _.currentLeft 424 }).animate({ 425 animStart: targetLeft 426 }, { 427 duration: _.options.speed, 428 easing: _.options.easing, 429 step: function(now) { 430 now = Math.ceil(now); 431 if (_.options.vertical === false) { 432 animProps[_.animType] = 'translate(' + 433 now + 'px, 0px)'; 434 _.$slideTrack.css(animProps); 435 } else { 436 animProps[_.animType] = 'translate(0px,' + 437 now + 'px)'; 438 _.$slideTrack.css(animProps); 439 } 440 }, 441 complete: function() { 442 if (callback) { 443 callback.call(); 444 } 445 } 446 }); 447 448 } else { 449 450 _.applyTransition(); 451 targetLeft = Math.ceil(targetLeft); 452 453 if (_.options.vertical === false) { 454 animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)'; 455 } else { 456 animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)'; 457 } 458 _.$slideTrack.css(animProps); 459 460 if (callback) { 461 setTimeout(function() { 462 463 _.disableTransition(); 464 465 callback.call(); 466 }, _.options.speed); 467 } 468 469 } 470 471 } 472 473 }; 474 475 Slick.prototype.getNavTarget = function() { 476 477 var _ = this, 478 asNavFor = _.options.asNavFor; 479 480 if ( asNavFor && asNavFor !== null ) { 481 asNavFor = $(asNavFor).not(_.$slider); 482 } 483 484 return asNavFor; 485 486 }; 487 488 Slick.prototype.asNavFor = function(index) { 489 490 var _ = this, 491 asNavFor = _.getNavTarget(); 492 493 if ( asNavFor !== null && typeof asNavFor === 'object' ) { 494 asNavFor.each(function() { 495 var target = $(this).slick('getSlick'); 496 if(!target.unslicked) { 497 target.slideHandler(index, true); 498 } 499 }); 500 } 501 502 }; 503 504 Slick.prototype.applyTransition = function(slide) { 505 506 var _ = this, 507 transition = {}; 508 509 if (_.options.fade === false) { 510 transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase; 511 } else { 512 transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase; 513 } 514 515 if (_.options.fade === false) { 516 _.$slideTrack.css(transition); 517 } else { 518 _.$slides.eq(slide).css(transition); 519 } 520 521 }; 522 523 Slick.prototype.autoPlay = function() { 524 525 var _ = this; 526 527 _.autoPlayClear(); 528 529 if ( _.slideCount > _.options.slidesToShow ) { 530 _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed ); 531 } 532 533 }; 534 535 Slick.prototype.autoPlayClear = function() { 536 537 var _ = this; 538 539 if (_.autoPlayTimer) { 540 clearInterval(_.autoPlayTimer); 541 } 542 543 }; 544 545 Slick.prototype.autoPlayIterator = function() { 546 547 var _ = this, 548 slideTo = _.currentSlide + _.options.slidesToScroll; 549 550 if ( !_.paused && !_.interrupted && !_.focussed ) { 551 552 if ( _.options.infinite === false ) { 553 554 if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) { 555 _.direction = 0; 556 } 557 558 else if ( _.direction === 0 ) { 559 560 slideTo = _.currentSlide - _.options.slidesToScroll; 561 562 if ( _.currentSlide - 1 === 0 ) { 563 _.direction = 1; 564 } 565 566 } 567 568 } 569 570 _.slideHandler( slideTo ); 571 572 } 573 574 }; 575 576 Slick.prototype.buildArrows = function() { 577 578 var _ = this; 579 580 if (_.options.arrows === true ) { 581 582 _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow'); 583 _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow'); 584 585 if( _.slideCount > _.options.slidesToShow ) { 586 587 _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex'); 588 _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex'); 589 590 if (_.htmlExpr.test(_.options.prevArrow)) { 591 _.$prevArrow.prependTo(_.options.appendArrows); 592 } 593 594 if (_.htmlExpr.test(_.options.nextArrow)) { 595 _.$nextArrow.appendTo(_.options.appendArrows); 596 } 597 598 if (_.options.infinite !== true) { 599 _.$prevArrow 600 .addClass('slick-disabled') 601 .attr('aria-disabled', 'true'); 602 } 603 604 } else { 605 606 _.$prevArrow.add( _.$nextArrow ) 607 608 .addClass('slick-hidden') 609 .attr({ 610 'aria-disabled': 'true', 611 'tabindex': '-1' 612 }); 613 614 } 615 616 } 617 618 }; 619 620 Slick.prototype.buildDots = function() { 621 622 var _ = this, 623 i, dot; 624 625 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 626 627 _.$slider.addClass('slick-dotted'); 628 629 dot = $('<ul />').addClass(_.options.dotsClass); 630 631 for (i = 0; i <= _.getDotCount(); i += 1) { 632 dot.append($('<li />').append(_.options.customPaging.call(this, _, i))); 633 } 634 635 _.$dots = dot.appendTo(_.options.appendDots); 636 637 _.$dots.find('li').first().addClass('slick-active')
vendor: 14,869 bytes, lines 637-1125
637.attr('aria-hidden', 'false'); 638 639 } 640 641 }; 642 643 Slick.prototype.buildOut = function() { 644 645 var _ = this; 646 647 _.$slides = 648 _.$slider 649 .children( _.options.slide + ':not(.slick-cloned)') 650 .addClass('slick-slide'); 651 652 _.slideCount = _.$slides.length; 653 654 _.$slides.each(function(index, element) { 655 $(element) 656 .attr('data-slick-index', index) 657 .data('originalStyling', $(element).attr('style') || ''); 658 }); 659 660 _.$slider.addClass('slick-slider'); 661 662 _.$slideTrack = (_.slideCount === 0) ? 663 $('<div class="slick-track"/>').appendTo(_.$slider) : 664 _.$slides.wrapAll('<div class="slick-track"/>').parent(); 665 666 _.$list = _.$slideTrack.wrap( 667 '<div aria-live="polite" class="slick-list"/>').parent(); 668 _.$slideTrack.css('opacity', 0); 669 670 if (_.options.centerMode === true || _.options.swipeToSlide === true) { 671 _.options.slidesToScroll = 1; 672 } 673 674 $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading'); 675 676 _.setupInfinite(); 677 678 _.buildArrows(); 679 680 _.buildDots(); 681 682 _.updateDots(); 683 684 685 _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0); 686 687 if (_.options.draggable === true) { 688 _.$list.addClass('draggable'); 689 } 690 691 }; 692 693 Slick.prototype.buildRows = function() { 694 695 var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection; 696 697 newSlides = document.createDocumentFragment(); 698 originalSlides = _.$slider.children(); 699 700 if(_.options.rows > 1) { 701 702 slidesPerSection = _.options.slidesPerRow * _.options.rows; 703 numOfSlides = Math.ceil( 704 originalSlides.length / slidesPerSection 705 ); 706 707 for(a = 0; a < numOfSlides; a++){ 708 var slide = document.createElement('div'); 709 for(b = 0; b < _.options.rows; b++) { 710 var row = document.createElement('div'); 711 for(c = 0; c < _.options.slidesPerRow; c++) { 712 var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c)); 713 if (originalSlides.get(target)) { 714 row.appendChild(originalSlides.get(target)); 715 } 716 } 717 slide.appendChild(row); 718 } 719 newSlides.appendChild(slide); 720 } 721 722 _.$slider.empty().append(newSlides); 723 _.$slider.children().children().children() 724 .css({ 725 'width':(100 / _.options.slidesPerRow) + '%', 726 'display': 'inline-block' 727 }); 728 729 } 730 731 }; 732 733 Slick.prototype.checkResponsive = function(initial, forceUpdate) { 734 735 var _ = this, 736 breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false; 737 var sliderWidth = _.$slider.width(); 738 var windowWidth = window.innerWidth || $(window).width(); 739 740 if (_.respondTo === 'window') { 741 respondToWidth = windowWidth; 742 } else if (_.respondTo === 'slider') { 743 respondToWidth = sliderWidth; 744 } else if (_.respondTo === 'min') { 745 respondToWidth = Math.min(windowWidth, sliderWidth); 746 } 747 748 if ( _.options.responsive && 749 _.options.responsive.length && 750 _.options.responsive !== null) { 751 752 targetBreakpoint = null; 753 754 for (breakpoint in _.breakpoints) { 755 if (_.breakpoints.hasOwnProperty(breakpoint)) { 756 if (_.originalSettings.mobileFirst === false) { 757 if (respondToWidth < _.breakpoints[breakpoint]) { 758 targetBreakpoint = _.breakpoints[breakpoint]; 759 } 760 } else { 761 if (respondToWidth > _.breakpoints[breakpoint]) { 762 targetBreakpoint = _.breakpoints[breakpoint]; 763 } 764 } 765 } 766 } 767 768 if (targetBreakpoint !== null) { 769 if (_.activeBreakpoint !== null) { 770 if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) { 771 _.activeBreakpoint = 772 targetBreakpoint; 773 if (_.breakpointSettings[targetBreakpoint] === 'unslick') { 774 _.unslick(targetBreakpoint); 775 } else { 776 _.options = $.extend({}, _.originalSettings, 777 _.breakpointSettings[ 778 targetBreakpoint]); 779 if (initial === true) { 780 _.currentSlide = _.options.initialSlide; 781 } 782 _.refresh(initial); 783 } 784 triggerBreakpoint = targetBreakpoint; 785 } 786 } else { 787 _.activeBreakpoint = targetBreakpoint; 788 if (_.breakpointSettings[targetBreakpoint] === 'unslick') { 789 _.unslick(targetBreakpoint); 790 } else { 791 _.options = $.extend({}, _.originalSettings, 792 _.breakpointSettings[ 793 targetBreakpoint]); 794 if (initial === true) { 795 _.currentSlide = _.options.initialSlide; 796 } 797 _.refresh(initial); 798 } 799 triggerBreakpoint = targetBreakpoint; 800 } 801 } else { 802 if (_.activeBreakpoint !== null) { 803 _.activeBreakpoint = null; 804 _.options = _.originalSettings; 805 if (initial === true) { 806 _.currentSlide = _.options.initialSlide; 807 } 808 _.refresh(initial); 809 triggerBreakpoint = targetBreakpoint; 810 } 811 } 812 813 // only trigger breakpoints during an actual break. not on initialize. 814 if( !initial && triggerBreakpoint !== false ) { 815 _.$slider.trigger('breakpoint', [_, triggerBreakpoint]); 816 } 817 } 818 819 }; 820 821 Slick.prototype.changeSlide = function(event, dontAnimate) { 822 823 var _ = this, 824 $target = $(event.currentTarget), 825 indexOffset, slideOffset, unevenOffset; 826 827 // If target is a link, prevent default action. 828 if($target.is('a')) { 829 event.preventDefault(); 830 } 831 832 // If target is not the <li> element (ie: a child), find the <li>. 833 if(!$target.is('li')) { 834 $target = $target.closest('li'); 835 } 836 837 unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0); 838 indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll; 839 840 switch (event.data.message) { 841 842 case 'previous': 843 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset; 844 if (_.slideCount > _.options.slidesToShow) { 845 _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate); 846 } 847 break; 848 849 case 'next': 850 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset; 851 if (_.slideCount > _.options.slidesToShow) { 852 _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate); 853 } 854 break; 855 856 case 'index': 857 var index = event.data.index === 0 ? 0 : 858 event.data.index || $target.index() * _.options.slidesToScroll; 859 860 _.slideHandler(_.checkNavigable(index), false, dontAnimate); 861 $target.children().trigger('focus'); 862 break; 863 864 default: 865 return; 866 } 867 868 }; 869 870 Slick.prototype.checkNavigable = function(index) { 871 872 var _ = this, 873 navigables, prevNavigable; 874 875 navigables = _.getNavigableIndexes(); 876 prevNavigable = 0; 877 if (index > navigables[navigables.length - 1]) { 878 index = navigables[navigables.length - 1]; 879 } else { 880 for (var n in navigables) { 881 if (index < navigables[n]) { 882 index = prevNavigable; 883 break; 884 } 885 prevNavigable = navigables[n]; 886 } 887 } 888 889 return index; 890 }; 891 892 Slick.prototype.cleanUpEvents = function() { 893 894 var _ = this; 895 896 if (_.options.dots && _.$dots !== null) { 897 898 $('li', _.$dots) 899 .off('click.slick', _.changeSlide) 900 .off('mouseenter.slick', $.proxy(_.interrupt, _, true)) 901 .off('mouseleave.slick', $.proxy(_.interrupt, _, false)); 902 903 } 904 905 _.$slider.off('focus.slick blur.slick'); 906 907 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 908 _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide); 909 _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide); 910 } 911 912 _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler); 913 _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler); 914 _.$list.off('touchend.slick mouseup.slick', _.swipeHandler); 915 _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler); 916 917 _.$list.off('click.slick', _.clickHandler); 918 919 $(document).off(_.visibilityChange, _.visibility); 920 921 _.cleanUpSlideEvents(); 922 923 if (_.options.accessibility === true) { 924 _.$list.off('keydown.slick', _.keyHandler); 925 } 926 927 if (_.options.focusOnSelect === true) { 928 $(_.$slideTrack).children().off('click.slick', _.selectHandler); 929 } 930 931 $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange); 932 933 $(window).off('resize.slick.slick-' + _.instanceUid, _.resize); 934 935 $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault); 936 937 $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition); 938 $(document).off('ready.slick.slick-' + _.instanceUid, _.setPosition); 939 940 }; 941 942 Slick.prototype.cleanUpSlideEvents = function() { 943 944 var _ = this; 945 946 _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true)); 947 _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false)); 948 949 }; 950 951 Slick.prototype.cleanUpRows = function() { 952 953 var _ = this, originalSlides; 954 955 if(_.options.rows > 1) { 956 originalSlides = _.$slides.children().children(); 957 originalSlides.removeAttr('style'); 958 _.$slider.empty().append(originalSlides); 959 } 960 961 }; 962 963 Slick.prototype.clickHandler = function(event) { 964 965 var _ = this; 966 967 if (_.shouldClick === false) { 968 event.stopImmediatePropagation(); 969 event.stopPropagation(); 970 event.preventDefault(); 971 } 972 973 }; 974 975 Slick.prototype.destroy = function(refresh) { 976 977 var _ = this; 978 979 _.autoPlayClear(); 980 981 _.touchObject = {}; 982 983 _.cleanUpEvents(); 984 985 $('.slick-cloned', _.$slider).detach(); 986 987 if (_.$dots) { 988 _.$dots.remove(); 989 } 990 991 992 if ( _.$prevArrow && _.$prevArrow.length ) { 993 994 _.$prevArrow 995 .removeClass('slick-disabled slick-arrow slick-hidden') 996 .removeAttr('aria-hidden aria-disabled tabindex') 997 .css('display',''); 998 999 if ( _.htmlExpr.test( _.options.prevArrow )) { 1000 _.$prevArrow.remove(); 1001 } 1002 } 1003 1004 if ( _.$nextArrow && _.$nextArrow.length ) { 1005 1006 _.$nextArrow 1007 .removeClass('slick-disabled slick-arrow slick-hidden') 1008 .removeAttr('aria-hidden aria-disabled tabindex') 1009 .css('display',''); 1010 1011 if ( _.htmlExpr.test( _.options.nextArrow )) { 1012 _.$nextArrow.remove(); 1013 } 1014 1015 } 1016 1017 1018 if (_.$slides) { 1019 1020 _.$slides 1021 .removeClass('slick-slide slick-active slick-center slick-visible slick-current') 1022 .removeAttr('aria-hidden') 1023 .removeAttr('data-slick-index') 1024 .each(function(){ 1025 $(this).attr('style', $(this).data('originalStyling')); 1026 }); 1027 1028 _.$slideTrack.children(this.options.slide).detach(); 1029 1030 _.$slideTrack.detach(); 1031 1032 _.$list.detach(); 1033 1034 _.$slider.append(_.$slides); 1035 } 1036 1037 _.cleanUpRows(); 1038 1039 _.$slider.removeClass('slick-slider'); 1040 _.$slider.removeClass('slick-initialized'); 1041 _.$slider.removeClass('slick-dotted'); 1042 1043 _.unslicked = true; 1044 1045 if(!refresh) { 1046 _.$slider.trigger('destroy', [_]); 1047 } 1048 1049 }; 1050 1051 Slick.prototype.disableTransition = function(slide) { 1052 1053 var _ = this, 1054 transition = {}; 1055 1056 transition[_.transitionType] = ''; 1057 1058 if (_.options.fade === false) { 1059 _.$slideTrack.css(transition); 1060 } else { 1061 _.$slides.eq(slide).css(transition); 1062 } 1063 1064 }; 1065 1066 Slick.prototype.fadeSlide = function(slideIndex, callback) { 1067 1068 var _ = this; 1069 1070 if (_.cssTransitions === false) { 1071 1072 _.$slides.eq(slideIndex).css({ 1073 zIndex: _.options.zIndex 1074 }); 1075 1076 _.$slides.eq(slideIndex).animate({ 1077 opacity: 1 1078 }, _.options.speed, _.options.easing, callback); 1079 1080 } else { 1081 1082 _.applyTransition(slideIndex); 1083 1084 _.$slides.eq(slideIndex).css({ 1085 opacity: 1, 1086 zIndex: _.options.zIndex 1087 }); 1088 1089 if (callback) { 1090 setTimeout(function() { 1091 1092 _.disableTransition(slideIndex); 1093 1094 callback.call(); 1095 }, _.options.speed); 1096 } 1097 1098 } 1099 1100 }; 1101 1102 Slick.prototype.fadeSlideOut = function(slideIndex) { 1103 1104 var _ = this; 1105 1106 if (_.cssTransitions === false) { 1107 1108 _.$slides.eq(slideIndex).animate({ 1109 opacity: 0, 1110 zIndex: _.options.zIndex - 2 1111 }, _.options.speed, _.options.easing); 1112 1113 } else { 1114 1115 _.applyTransition(slideIndex); 1116 1117 _.$slides.eq(slideIndex).css({ 1118 opacity: 0, 1119 zIndex: _.options.zIndex - 2 1120 }); 1121 1122 } 1123 1124 }; 1125
1126 Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) { 1127 1128 var _ = this; 1129 1130 if (filter !== null) { 1131 1132 _.$slidesCache = _.$slides; 1133 1134 _.unload(); 1135 1136 _.$slideTrack.children(this.options.slide).detach(); 1137 1138 _.$slidesCache.filter(filter).appendTo(_.$slideTrack); 1139 1140 _.reinit(); 1141 1142 } 1143 1144 }; 1145 1146 Slick.prototype.focusHandler = function() { 1147 1148 var _ = this; 1149 1150 _.$slider 1151 .off('focus.slick blur.slick') 1152 .on('focus.slick blur.slick', 1153 '*:not(.slick-arrow)', function(event) { 1154 1155 event.stopImmediatePropagation(); 1156 var $sf = $(this); 1157 1158 setTimeout(function() { 1159 1160 if( _.options.pauseOnFocus ) { 1161 _.focussed = $sf.is(':focus'); 1162 _.autoPlay(); 1163 } 1164 1165 }, 0); 1166 1167 }); 1168 }; 1169 1170 Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() { 1171 1172 var _ = this; 1173 return _.currentSlide; 1174 1175 }; 1176 1177 Slick.prototype.getDotCount = function() { 1178 1179 var _ = this; 1180 1181 var breakPoint = 0; 1182 var counter = 0; 1183 var pagerQty = 0; 1184 1185 if (_.options.infinite === true) { 1186 while (breakPoint < _.slideCount) { 1187 ++pagerQty; 1188 breakPoint = counter + _.options.slidesToScroll; 1189 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 1190 } 1191 } else if (_.options.centerMode === true) { 1192 pagerQty = _.slideCount; 1193 } else if(!_.options.asNavFor) { 1194 pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll); 1195 }else { 1196 while (breakPoint < _.slideCount) { 1197 ++pagerQty; 1198 breakPoint = counter + _.options.slidesToScroll; 1199 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 1200 } 1201 } 1202 1203 return pagerQty - 1; 1204 1205 }; 1206 1207 Slick.prototype.getLeft = function(slideIndex) { 1208 1209 var _ = this, 1210 targetLeft, 1211 verticalHeight, 1212 verticalOffset = 0, 1213 targetSlide; 1214 1215 _.slideOffset = 0; 1216 verticalHeight = _.$slides.first().outerHeight(true); 1217 1218 if (_.options.infinite === true) { 1219 if (_.slideCount > _.options.slidesToShow) { 1220 _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1; 1221 verticalOffset = (verticalHeight * _.options.slidesToShow) * -1; 1222 } 1223 if (_.slideCount % _.options.slidesToScroll !== 0) { 1224 if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) { 1225 if (slideIndex > _.slideCount) { 1226 _.slideOffset = ((_.options.slidesToShow - (sl
vendor: 921 bytes, lines 1226-1246
1226ideIndex - _.slideCount)) * _.slideWidth) * -1; 1227 verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1; 1228 } else { 1229 _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1; 1230 verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1; 1231 } 1232 } 1233 } 1234 } else { 1235 if (slideIndex + _.options.slidesToShow > _.slideCount) { 1236 _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth; 1237 verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight; 1238 } 1239 } 1240 1241 if (_.slideCount <= _.options.slidesToShow) { 1242 _.slideOffset = 0; 1243 verticalOffset = 0; 1244 } 1245 1246
vendor: 5,167 bytes, lines 1246-1419
1246 if (_.options.centerMode === true && _.options.infinite === true) { 1247 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth; 1248 } else if (_.options.centerMode === true) { 1249 _.slideOffset = 0; 1250 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2); 1251 } 1252 1253 if (_.options.vertical === false) { 1254 targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset; 1255 } else { 1256 targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset; 1257 } 1258 1259 if (_.options.variableWidth === true) { 1260 1261 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) { 1262 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex); 1263 } else { 1264 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow); 1265 } 1266 1267 if (_.options.rtl === true) { 1268 if (targetSlide[0]) { 1269 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1; 1270 } else { 1271 targetLeft = 0; 1272 } 1273 } else { 1274 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0; 1275 } 1276 1277 if (_.options.centerMode === true) { 1278 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) { 1279 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex); 1280 } else { 1281 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1); 1282 } 1283 1284 if (_.options.rtl === true) { 1285 if (targetSlide[0]) { 1286 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1; 1287 } else { 1288 targetLeft = 0; 1289 } 1290 } else { 1291 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0; 1292 } 1293 1294 targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2; 1295 } 1296 } 1297 1298 return targetLeft; 1299 1300 }; 1301 1302 Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) { 1303 1304 var _ = this; 1305 1306 return _.options[option]; 1307 1308 }; 1309 1310 Slick.prototype.getNavigableIndexes = function() { 1311 1312 var _ = this, 1313 breakPoint = 0, 1314 counter = 0, 1315 indexes = [], 1316 max; 1317 1318 if (_.options.infinite === false) { 1319 max = _.slideCount; 1320 } else { 1321 breakPoint = _.options.slidesToScroll * -1; 1322 counter = _.options.slidesToScroll * -1; 1323 max = _.slideCount * 2; 1324 } 1325 1326 while (breakPoint < max) { 1327 indexes.push(breakPoint); 1328 breakPoint = counter + _.options.slidesToScroll; 1329 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 1330 } 1331 1332 return indexes; 1333 1334 }; 1335 1336 Slick.prototype.getSlick = function() { 1337 1338 return this; 1339 1340 }; 1341 1342 Slick.prototype.getSlideCount = function() { 1343 1344 var _ = this, 1345 slidesTraversed, swipedSlide, centerOffset; 1346 1347 centerOffset = _.options.centerMode === true ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0; 1348 1349 if (_.options.swipeToSlide === true) { 1350 _.$slideTrack.find('.slick-slide').each(function(index, slide) { 1351 if (slide.offsetLeft - centerOffset + ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) { 1352 swipedSlide = slide; 1353 return false; 1354 } 1355 }); 1356 1357 slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1; 1358 1359 return slidesTraversed; 1360 1361 } else { 1362 return _.options.slidesToScroll; 1363 } 1364 1365 }; 1366 1367 Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) { 1368 1369 var _ = this; 1370 1371 _.changeSlide({ 1372 data: { 1373 message: 'index', 1374 index: parseInt(slide) 1375 } 1376 }, dontAnimate); 1377 1378 }; 1379 1380 Slick.prototype.init = function(creation) { 1381 1382 var _ = this; 1383 1384 if (!$(_.$slider).hasClass('slick-initialized')) { 1385 1386 $(_.$slider).addClass('slick-initialized'); 1387 1388 _.buildRows(); 1389 _.buildOut(); 1390 _.setProps(); 1391 _.startLoad(); 1392 _.loadSlider(); 1393 _.initializeEvents(); 1394 _.updateArrows(); 1395 _.updateDots(); 1396 _.checkResponsive(true); 1397 _.focusHandler(); 1398 1399 } 1400 1401 if (creation) { 1402 _.$slider.trigger('init', [_]); 1403 } 1404 1405 if (_.options.accessibility === true) { 1406 _.initADA(); 1407 } 1408 1409 if ( _.options.autoplay ) { 1410 1411 _.paused = false; 1412 _.autoPlay(); 1413 1414 } 1415 1416 }; 1417 1418 Slick.prototype.initADA = function() { 1419 var _ = this
1419; 1420 _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({ 1421 'aria-hidden': 'true', 1422 'tabindex': '-1' 1423 }).find('a, input, button, select').attr({ 1424 'tabindex': '-1' 1425 }); 1426 1427 _.$slideTrack.attr('role', 'listbox'); 1428 1429 _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) { 1430 $(this).attr({ 1431 'role': 'option', 1432 'aria-describedby': 'slick-slide' + _.instanceUid + i + '' 1433 }); 1434 }); 1435 1436 if (_.$dots !== null) { 1437 _.$dots.attr('role', 'tablist').find('li').each(function(i) { 1438 $(this).attr({ 1439 'role': 'presentation', 1440 'aria-selected': 'false', 1441 'aria-controls': 'navigation' + _.instanceUid + i + '', 1442 'id': 'slick-slide' + _.instanceUid + i + '' 1443 }); 1444 }) 1445 .first().attr('aria-selected', 'true').end() 1446 .find('button').attr('role', 'button').end() 1447 .closest('div').attr('role', 'toolbar'); 1448 } 1449 _.activateADA(); 1450 1451 }; 1452 1453 Slick.prototype.initArrowEvents = function() { 1454 1455 var _ = this; 1456 1457 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 1458 _.$prevArrow 1459 .off('click.slick') 1460 .on('click.slick', { 1461 message: 'previous' 1462 }, _.changeSlide); 1463 _.$nextArrow 1464 .off('click.slick') 1465 .on('click.slick', { 1466 message: 'next' 1467 }, _.changeSlide); 1468 } 1469 1470 }; 1471 1472 Slick.prototype.initDotEvents = function() { 1473 1474 var _ = this; 1475 1476 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 1477 $('li', _.$dots).on('click.slick', { 1478 message: 'index' 1479 }, _.changeSlide); 1480 } 1481 1482 if ( _.options.dots === true && _.options.pauseOnDotsHover === true ) { 1483 1484 $('li', _.$dots) 1485 .on('mouseenter.slick', $.proxy(_.interrupt, _, true)) 1486 .on('mouseleave.slick', $.proxy(_.interrupt, _, false)); 1487 1488 } 1489 1490 }; 1491 1492 Slick.prototype.initSlideEvents = function() { 1493 1494 var _ = this; 1495 1496 if ( _.options.pauseOnHover ) { 1497 1498 _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true)); 1499 _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false)); 1500 1501 } 1502 1503 }; 1504 1505 Slick.prototype.initializeEvents = function() { 1506 1507 var _ = this; 1508 1509 _.initArrowEvents(); 1510 1511 _.initDotEvents(); 1512 _.initSlideEvents(); 1513 1514 _.$list.on('touchstart.slick mousedown.slick', { 1515 action: 'start' 1516 }, _.swipeHandler); 1517 _.$list.on('touchmove.slick mousemove.slick', { 1518 action: 'move' 1519 }, _.swipeHandler); 1520 _.$list.on('touchend.slick mouseup.slick', { 1521 action: 'end' 1522 }, _.swipeHandler);
vendor: 10,240 bytes, lines 1523-1900
1523 _.$list.on('touchcancel.slick mouseleave.slick', { 1524 action: 'end' 1525 }, _.swipeHandler); 1526 1527 _.$list.on('click.slick', _.clickHandler); 1528 1529 $(document).on(_.visibilityChange, $.proxy(_.visibility, _)); 1530 1531 if (_.options.accessibility === true) { 1532 _.$list.on('keydown.slick', _.keyHandler); 1533 } 1534 1535 if (_.options.focusOnSelect === true) { 1536 $(_.$slideTrack).children().on('click.slick', _.selectHandler); 1537 } 1538 1539 $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _)); 1540 1541 $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _)); 1542 1543 $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault); 1544 1545 $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition); 1546 $(document).on('ready.slick.slick-' + _.instanceUid, _.setPosition); 1547 1548 }; 1549 1550 Slick.prototype.initUI = function() { 1551 1552 var _ = this; 1553 1554 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 1555 1556 _.$prevArrow.show(); 1557 _.$nextArrow.show(); 1558 1559 } 1560 1561 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 1562 1563 _.$dots.show(); 1564 1565 } 1566 1567 }; 1568 1569 Slick.prototype.keyHandler = function(event) { 1570 1571 var _ = this; 1572 //Dont slide if the cursor is inside the form fields and arrow keys are pressed 1573 if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) { 1574 if (event.keyCode === 37 && _.options.accessibility === true) { 1575 _.changeSlide({ 1576 data: { 1577 message: _.options.rtl === true ? 'next' : 'previous' 1578 } 1579 }); 1580 } else if (event.keyCode === 39 && _.options.accessibility === true) { 1581 _.changeSlide({ 1582 data: { 1583 message: _.options.rtl === true ? 'previous' : 'next' 1584 } 1585 }); 1586 } 1587 } 1588 1589 }; 1590 1591 Slick.prototype.lazyLoad = function() { 1592 1593 var _ = this, 1594 loadRange, cloneRange, rangeStart, rangeEnd; 1595 1596 function loadImages(imagesScope) { 1597 1598 $('img[data-lazy]', imagesScope).each(function() { 1599 1600 var image = $(this), 1601 imageSource = $(this).attr('data-lazy'), 1602 imageToLoad = document.createElement('img'); 1603 1604 imageToLoad.onload = function() { 1605 1606 image 1607 .animate({ opacity: 0 }, 100, function() { 1608 image 1609 .attr('src', imageSource) 1610 .animate({ opacity: 1 }, 200, function() { 1611 image 1612 .removeAttr('data-lazy') 1613 .removeClass('slick-loading'); 1614 }); 1615 _.$slider.trigger('lazyLoaded', [_, image, imageSource]); 1616 }); 1617 1618 }; 1619 1620 imageToLoad.onerror = function() { 1621 1622 image 1623 .removeAttr( 'data-lazy' ) 1624 .removeClass( 'slick-loading' ) 1625 .addClass( 'slick-lazyload-error' ); 1626 1627 _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]); 1628 1629 }; 1630 1631 imageToLoad.src = imageSource; 1632 1633 }); 1634 1635 } 1636 1637 if (_.options.centerMode === true) { 1638 if (_.options.infinite === true) { 1639 rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1); 1640 rangeEnd = rangeStart + _.options.slidesToShow + 2; 1641 } else { 1642 rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1)); 1643 rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide; 1644 } 1645 } else { 1646 rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide; 1647 rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow); 1648 if (_.options.fade === true) { 1649 if (rangeStart > 0) rangeStart--; 1650 if (rangeEnd <= _.slideCount) rangeEnd++; 1651 } 1652 } 1653 1654 loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd); 1655 loadImages(loadRange); 1656 1657 if (_.slideCount <= _.options.slidesToShow) { 1658 cloneRange = _.$slider.find('.slick-slide'); 1659 loadImages(cloneRange); 1660 } else 1661 if (_.currentSlide >= _.slideCount - _.options.slidesToShow) { 1662 cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow); 1663 loadImages(cloneRange); 1664 } else if (_.currentSlide === 0) { 1665 cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1); 1666 loadImages(cloneRange); 1667 } 1668 1669 }; 1670 1671 Slick.prototype.loadSlider = function() { 1672 1673 var _ = this; 1674 1675 _.setPosition(); 1676 1677 _.$slideTrack.css({ 1678 opacity: 1 1679 }); 1680 1681 _.$slider.removeClass('slick-loading'); 1682 1683 _.initUI(); 1684 1685 if (_.options.lazyLoad === 'progressive') { 1686 _.progressiveLazyLoad(); 1687 } 1688 1689 }; 1690 1691 Slick.prototype.next = Slick.prototype.slickNext = function() { 1692 1693 var _ = this; 1694 1695 _.changeSlide({ 1696 data: { 1697 message: 'next' 1698 } 1699 }); 1700 1701 }; 1702 1703 Slick.prototype.orientationChange = function() { 1704 1705 var _ = this; 1706 1707 _.checkResponsive(); 1708 _.setPosition(); 1709 1710 }; 1711 1712 Slick.prototype.pause = Slick.prototype.slickPause = function() { 1713 1714 var _ = this; 1715 1716 _.autoPlayClear(); 1717 _.paused = true; 1718 1719 }; 1720 1721 Slick.prototype.play = Slick.prototype.slickPlay = function() { 1722 1723 var _ = this; 1724 1725 _.autoPlay(); 1726 _.options.autoplay = true; 1727 _.paused = false; 1728 _.focussed = false; 1729 _.interrupted = false; 1730 1731 }; 1732 1733 Slick.prototype.postSlide = function(index) { 1734 1735 var _ = this; 1736 1737 if( !_.unslicked ) { 1738 1739 _.$slider.trigger('afterChange', [_, index]); 1740 1741 _.animating = false; 1742 1743 _.setPosition(); 1744 1745 _.swipeLeft = null; 1746 1747 if ( _.options.autoplay ) { 1748 _.autoPlay(); 1749 } 1750 1751 if (_.options.accessibility === true) { 1752 _.initADA(); 1753 } 1754 1755 } 1756 1757 }; 1758 1759 Slick.prototype.prev = Slick.prototype.slickPrev = function() { 1760 1761 var _ = this; 1762 1763 _.changeSlide({ 1764 data: { 1765 message: 'previous' 1766 } 1767 }); 1768 1769 }; 1770 1771 Slick.prototype.preventDefault = function(event) { 1772 1773 event.preventDefault(); 1774 1775 }; 1776 1777 Slick.prototype.progressiveLazyLoad = function( tryCount ) { 1778 1779 tryCount = tryCount || 1; 1780 1781 var _ = this, 1782 $imgsToLoad = $( 'img[data-lazy]', _.$slider ), 1783 image, 1784 imageSource, 1785 imageToLoad; 1786 1787 if ( $imgsToLoad.length ) { 1788 1789 image = $imgsToLoad.first(); 1790 imageSource = image.attr('data-lazy'); 1791 imageToLoad = document.createElement('img'); 1792 1793 imageToLoad.onload = function() { 1794 1795 image 1796 .attr( 'src', imageSource ) 1797 .removeAttr('data-lazy') 1798 .removeClass('slick-loading'); 1799 1800 if ( _.options.adaptiveHeight === true ) { 1801 _.setPosition(); 1802 } 1803 1804 _.$slider.trigger('lazyLoaded', [ _, image, imageSource ]); 1805 _.progressiveLazyLoad(); 1806 1807 }; 1808 1809 imageToLoad.onerror = function() { 1810 1811 if ( tryCount < 3 ) { 1812 1813 /** 1814 * try to load the image 3 times, 1815 * leave a slight delay so we don't get 1816 * servers blocking the request. 1817 */ 1818 setTimeout( function() { 1819 _.progressiveLazyLoad( tryCount + 1 ); 1820 }, 500 ); 1821 1822 } else { 1823 1824 image 1825 .removeAttr( 'data-lazy' ) 1826 .removeClass( 'slick-loading' ) 1827 .addClass( 'slick-lazyload-error' ); 1828 1829 _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]); 1830 1831 _.progressiveLazyLoad(); 1832 1833 } 1834 1835 }; 1836 1837 imageToLoad.src = imageSource; 1838 1839 } else { 1840 1841 _.$slider.trigger('allImagesLoaded', [ _ ]); 1842 1843 } 1844 1845 }; 1846 1847 Slick.prototype.refresh = function( initializing ) { 1848 1849 var _ = this, currentSlide, lastVisibleIndex; 1850 1851 lastVisibleIndex = _.slideCount - _.options.slidesToShow; 1852 1853 // in non-infinite sliders, we don't want to go past the 1854 // last visible index. 1855 if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) { 1856 _.currentSlide = lastVisibleIndex; 1857 } 1858 1859 // if less slides than to show, go to start. 1860 if ( _.slideCount <= _.options.slidesToShow ) { 1861 _.currentSlide = 0; 1862 1863 } 1864 1865 currentSlide = _.currentSlide; 1866 1867 _.destroy(true); 1868 1869 $.extend(_, _.initials, { currentSlide: currentSlide }); 1870 1871 _.init(); 1872 1873 if( !initializing ) { 1874 1875 _.changeSlide({ 1876 data: { 1877 message: 'index', 1878 index: currentSlide 1879 } 1880 }, false); 1881 1882 } 1883 1884 }; 1885 1886 Slick.prototype.registerBreakpoints = function() { 1887 1888 var _ = this, breakpoint, currentBreakpoint, l, 1889 responsiveSettings = _.options.responsive || null; 1890 1891 if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) { 1892 1893 _.respondTo = _.options.respondTo || 'window'; 1894 1895 for ( breakpoint in responsiveSettings ) { 1896 1897 l = _.breakpoints.length-1; 1898 currentBreakpoint = responsiveSettings[breakpoint].breakpoint; 1899 1900 if (responsiveSettings.hasOwnProperty(breakpoint)) {
vendor: 12,466 bytes, lines 1900-2333
1900 1901 1902 // loop through the breakpoints and cut out any existing 1903 // ones with the same breakpoint number, we don't want dupes. 1904 while( l >= 0 ) { 1905 if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) { 1906 _.breakpoints.splice(l,1); 1907 } 1908 l--; 1909 } 1910 1911 _.breakpoints.push(currentBreakpoint); 1912 _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings; 1913 1914 } 1915 1916 } 1917 1918 _.breakpoints.sort(function(a, b) { 1919 return ( _.options.mobileFirst ) ? a-b : b-a; 1920 }); 1921 1922 } 1923 1924 }; 1925 1926 Slick.prototype.reinit = function() { 1927 1928 var _ = this; 1929 1930 _.$slides = 1931 _.$slideTrack 1932 .children(_.options.slide) 1933 .addClass('slick-slide'); 1934 1935 _.slideCount = _.$slides.length; 1936 1937 if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) { 1938 _.currentSlide = _.currentSlide - _.options.slidesToScroll; 1939 } 1940 1941 if (_.slideCount <= _.options.slidesToShow) { 1942 _.currentSlide = 0; 1943 } 1944 1945 _.registerBreakpoints(); 1946 1947 _.setProps(); 1948 _.setupInfinite(); 1949 _.buildArrows(); 1950 _.updateArrows(); 1951 _.initArrowEvents(); 1952 _.buildDots(); 1953 _.updateDots(); 1954 _.initDotEvents(); 1955 _.cleanUpSlideEvents(); 1956 _.initSlideEvents(); 1957 1958 _.checkResponsive(false, true); 1959 1960 if (_.options.focusOnSelect === true) { 1961 $(_.$slideTrack).children().on('click.slick', _.selectHandler); 1962 } 1963 1964 _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0); 1965 1966 _.setPosition(); 1967 _.focusHandler(); 1968 1969 _.paused = !_.options.autoplay; 1970 _.autoPlay(); 1971 1972 _.$slider.trigger('reInit', [_]); 1973 1974 }; 1975 1976 Slick.prototype.resize = function() { 1977 1978 var _ = this; 1979 1980 if ($(window).width() !== _.windowWidth) { 1981 clearTimeout(_.windowDelay); 1982 _.windowDelay = window.setTimeout(function() { 1983 _.windowWidth = $(window).width(); 1984 _.checkResponsive(); 1985 if( !_.unslicked ) { _.setPosition(); } 1986 }, 50); 1987 } 1988 }; 1989 1990 Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) { 1991 1992 var _ = this; 1993 1994 if (typeof(index) === 'boolean') { 1995 removeBefore = index; 1996 index = removeBefore === true ? 0 : _.slideCount - 1; 1997 } else { 1998 index = removeBefore === true ? --index : index; 1999 } 2000 2001 if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) { 2002 return false; 2003 } 2004 2005 _.unload(); 2006 2007 if (removeAll === true) { 2008 _.$slideTrack.children().remove(); 2009 } else { 2010 _.$slideTrack.children(this.options.slide).eq(index).remove(); 2011 } 2012 2013 _.$slides = _.$slideTrack.children(this.options.slide); 2014 2015 _.$slideTrack.children(this.options.slide).detach(); 2016 2017 _.$slideTrack.append(_.$slides); 2018 2019 _.$slidesCache = _.$slides; 2020 2021 _.reinit(); 2022 2023 }; 2024 2025 Slick.prototype.setCSS = function(position) { 2026 2027 var _ = this, 2028 positionProps = {}, 2029 x, y; 2030 2031 if (_.options.rtl === true) { 2032 position = -position; 2033 } 2034 x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px'; 2035 y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px'; 2036 2037 positionProps[_.positionProp] = position; 2038 2039 if (_.transformsEnabled === false) { 2040 _.$slideTrack.css(positionProps); 2041 } else { 2042 positionProps = {}; 2043 if (_.cssTransitions === false) { 2044 positionProps[_.animType] = 'translate(' + x + ', ' + y + ')'; 2045 _.$slideTrack.css(positionProps); 2046 } else { 2047 positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)'; 2048 _.$slideTrack.css(positionProps); 2049 } 2050 } 2051 2052 }; 2053 2054 Slick.prototype.setDimensions = function() { 2055 2056 var _ = this; 2057 2058 if (_.options.vertical === false) { 2059 if (_.options.centerMode === true) { 2060 _.$list.css({ 2061 padding: ('0px ' + _.options.centerPadding) 2062 }); 2063 } 2064 } else { 2065 _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow); 2066 if (_.options.centerMode === true) { 2067 _.$list.css({ 2068 padding: (_.options.centerPadding + ' 0px') 2069 }); 2070 } 2071 } 2072 2073 _.listWidth = _.$list.width(); 2074 _.listHeight = _.$list.height(); 2075 2076 2077 if (_.options.vertical === false && _.options.variableWidth === false) { 2078 _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow); 2079 _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length))); 2080 2081 } else if (_.options.variableWidth === true) { 2082 _.$slideTrack.width(5000 * _.slideCount); 2083 } else { 2084 _.slideWidth = Math.ceil(_.listWidth); 2085 _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length))); 2086 } 2087 2088 var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width(); 2089 if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset); 2090 2091 }; 2092 2093 Slick.prototype.setFade = function() { 2094 2095 var _ = this, 2096 targetLeft; 2097 2098 _.$slides.each(function(index, element) { 2099 targetLeft = (_.slideWidth * index) * -1; 2100 if (_.options.rtl === true) { 2101 $(element).css({ 2102 position: 'relative', 2103 right: targetLeft, 2104 top: 0, 2105 zIndex: _.options.zIndex - 2, 2106 opacity: 0 2107 }); 2108 } else { 2109 $(element).css({ 2110 position: 'relative', 2111 left: targetLeft, 2112 top: 0, 2113 zIndex: _.options.zIndex - 2, 2114 opacity: 0 2115 }); 2116 } 2117 }); 2118 2119 _.$slides.eq(_.currentSlide).css({ 2120 zIndex: _.options.zIndex - 1, 2121 opacity: 1 2122 }); 2123 2124 }; 2125 2126 Slick.prototype.setHeight = function() { 2127 2128 var _ = this; 2129 2130 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) { 2131 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true); 2132 _.$list.css('height', targetHeight); 2133 } 2134 2135 }; 2136 2137 Slick.prototype.setOption = 2138 Slick.prototype.slickSetOption = function() { 2139 2140 /** 2141 * accepts arguments in format of: 2142 * 2143 * - for changing a single option's value: 2144 * .slick("setOption", option, value, refresh ) 2145 * 2146 * - for changing a set of responsive options: 2147 * .slick("setOption", 'responsive', [{}, ...], refresh ) 2148 * 2149 * - for updating multiple values at once (not responsive) 2150 * .slick("setOption", { 'option': value, ... }, refresh ) 2151 */ 2152 2153 var _ = this, l, item, option, value, refresh = false, type; 2154 2155 if( $.type( arguments[0] ) === 'object' ) { 2156 2157 option = arguments[0]; 2158 refresh = arguments[1]; 2159 type = 'multiple'; 2160 2161 } else if ( $.type( arguments[0] ) === 'string' ) { 2162 2163 option = arguments[0]; 2164 value = arguments[1]; 2165 refresh = arguments[2]; 2166 2167 if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) { 2168 2169 type = 'responsive'; 2170 2171 } else if ( typeof arguments[1] !== 'undefined' ) { 2172 2173 type = 'single'; 2174 2175 } 2176 2177 } 2178 2179 if ( type === 'single' ) { 2180 2181 _.options[option] = value; 2182 2183 2184 } else if ( type === 'multiple' ) { 2185 2186 $.each( option , function( opt, val ) { 2187 2188 _.options[opt] = val; 2189 2190 }); 2191 2192 2193 } else if ( type === 'responsive' ) { 2194 2195 for ( item in value ) { 2196 2197 if( $.type( _.options.responsive ) !== 'array' ) { 2198 2199 _.options.responsive = [ value[item] ]; 2200 2201 } else { 2202 2203 l = _.options.responsive.length-1; 2204 2205 // loop through the responsive object and splice out duplicates. 2206 while( l >= 0 ) { 2207 2208 if( _.options.responsive[l].breakpoint === value[item].breakpoint ) { 2209 2210 _.options.responsive.splice(l,1); 2211 2212 } 2213 2214 l--; 2215 2216 } 2217 2218 _.options.responsive.push( value[item] ); 2219 2220 } 2221 2222 } 2223 2224 } 2225 2226 if ( refresh ) { 2227 2228 _.unload(); 2229 _.reinit(); 2230 2231 } 2232 2233 }; 2234 2235 Slick.prototype.setPosition = function() { 2236 2237 var _ = this; 2238 2239 _.setDimensions(); 2240 2241 _.setHeight(); 2242 2243 if (_.options.fade === false) { 2244 _.setCSS(_.getLeft(_.currentSlide)); 2245 } else { 2246 _.setFade(); 2247 } 2248 2249 _.$slider.trigger('setPosition', [_]); 2250 2251 }; 2252 2253 Slick.prototype.setProps = function() { 2254 2255 var _ = this, 2256 bodyStyle = document.body.style; 2257 2258 _.positionProp = _.options.vertical === true ? 'top' : 'left'; 2259 2260 if (_.positionProp === 'top') { 2261 _.$slider.addClass('slick-vertical'); 2262 } else { 2263 _.$slider.removeClass('slick-vertical'); 2264 } 2265 2266 if (bodyStyle.WebkitTransition !== undefined || 2267 bodyStyle.MozTransition !== undefined || 2268 bodyStyle.msTransition !== undefined) { 2269 if (_.options.useCSS === true) { 2270 _.cssTransitions = true; 2271 } 2272 } 2273 2274 if ( _.options.fade ) { 2275 if ( typeof _.options.zIndex === 'number' ) { 2276 if( _.options.zIndex < 3 ) { 2277 _.options.zIndex = 3; 2278 } 2279 } else { 2280 _.options.zIndex = _.defaults.zIndex; 2281 } 2282 } 2283 2284 if (bodyStyle.OTransform !== undefined) { 2285 _.animType = 'OTransform'; 2286 _.transformType = '-o-transform'; 2287 _.transitionType = 'OTransition'; 2288 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false; 2289 } 2290 if (bodyStyle.MozTransform !== undefined) { 2291 _.animType = 'MozTransform'; 2292 _.transformType = '-moz-transform'; 2293 _.transitionType = 'MozTransition'; 2294 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false; 2295 } 2296 if (bodyStyle.webkitTransform !== undefined) { 2297 _.animType = 'webkitTransform'; 2298 _.transformType = '-webkit-transform'; 2299 _.transitionType = 'webkitTransition'; 2300 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false; 2301 } 2302 if (bodyStyle.msTransform !== undefined) { 2303 _.animType = 'msTransform'; 2304 _.transformType = '-ms-transform'; 2305 _.transitionType = 'msTransition'; 2306 if (bodyStyle.msTransform === undefined) _.animType = false; 2307 } 2308 if (bodyStyle.transform !== undefined && _.animType !== false) { 2309 _.animType = 'transform'; 2310 _.transformType = 'transform'; 2311 _.transitionType = 'transition'; 2312 } 2313 _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false); 2314 }; 2315 2316 2317 Slick.prototype.setSlideClasses = function(index) { 2318 2319 var _ = this, 2320 centerOffset, allSlides, indexOffset, remainder; 2321 2322 allSlides = _.$slider 2323 .find('.slick-slide') 2324 .removeClass('slick-active slick-center slick-current') 2325 .attr('aria-hidden', 'true'); 2326 2327 _.$slides 2328 .eq(index) 2329 .addClass('slick-current'); 2330 2331 if (_.options.centerMode === true) { 2332 2333
2333centerOffset = Math.floor(_.options.slidesToShow / 2); 2334 2335 if (_.options.infinite === true) { 2336 2337 if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) { 2338 2339 _.$slides 2340 .slice(index - centerOffset, index + centerOffset + 1) 2341 .addClass('slick-active') 2342 .attr('aria-hidden', 'false'); 2343 2344 } else { 2345 2346 indexOffset = _.options.slidesToShow + index; 2347 allSlides 2348 .slice(indexOffset - centerOffset + 1, indexOffset + centerOffset + 2) 2349 .addClass('slick-active') 2350 .attr('aria-hidden', 'false'); 2351 2352 } 2353 2354 if (index === 0) { 2355 2356 allSlides 2357 .eq(allSlides.length - 1 - _.options.slidesToShow) 2358 .addClass('slick-center'); 2359 2360 } else if (index === _.slideCount - 1) { 2361 2362 allSlides 2363 .eq(_.options.slidesToShow) 2364 .addClass('slick-center'); 2365 2366 } 2367 2368 } 2369 2370 _.$slides 2371 .eq(index) 2372 .addClass('slick-center'); 2373 2374 } else { 2375 2376 if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) { 2377 2378 _.$slides 2379 .slice(index, index + _.options.slidesToShow) 2380 .addClass('slick-active') 2381 .attr('aria-hidden', 'false'); 2382 2383 } else if (allSlides.length <= _.options.slidesToShow) { 2384 2385 allSlides 2386 .addClass('slick-active') 2387 .attr('aria-hidden', 'false'); 2388 2389 } else { 2390 2391 remainder = _.slideCount % _.options.slidesToShow; 2392 indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index; 2393 2394 if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) { 2395 2396 allSlides 2397 .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder) 2398 .addClass('slick-active') 2399 .attr('aria-hidden', 'false'); 2400 2401 } else { 2402 2403 allSlides 2404 .slice(indexOffset, indexOffset + _.options.slidesToShow) 2405 .addClass('slick-active') 2406 .attr('aria-hidden', 'false'); 2407 2408 } 2409 2410 } 2411 2412 } 2413 2414 if (_.options.lazyLoad === 'ondemand') { 2415 _.lazyLoad(); 2416 } 2417 2418 }; 2419 2420 Slick.prototype.setupInfinite = function() { 2421 2422 var _ = this, 2423 i, slideIndex, infiniteCount; 2424 2425 if (_.options.fade === true) {
vendor: 15,027 bytes, lines 2426-2959
2426 _.options.centerMode = false; 2427 } 2428 2429 if (_.options.infinite === true && _.options.fade === false) { 2430 2431 slideIndex = null; 2432 2433 if (_.slideCount > _.options.slidesToShow) { 2434 2435 if (_.options.centerMode === true) { 2436 infiniteCount = _.options.slidesToShow + 1; 2437 } else { 2438 infiniteCount = _.options.slidesToShow; 2439 } 2440 2441 for (i = _.slideCount; i > (_.slideCount - 2442 infiniteCount); i -= 1) { 2443 slideIndex = i - 1; 2444 $(_.$slides[slideIndex]).clone(true).attr('id', '') 2445 .attr('data-slick-index', slideIndex - _.slideCount) 2446 .prependTo(_.$slideTrack).addClass('slick-cloned'); 2447 } 2448 for (i = 0; i < infiniteCount; i += 1) { 2449 slideIndex = i; 2450 $(_.$slides[slideIndex]).clone(true).attr('id', '') 2451 .attr('data-slick-index', slideIndex + _.slideCount) 2452 .appendTo(_.$slideTrack).addClass('slick-cloned'); 2453 } 2454 _.$slideTrack.find('.slick-cloned').find('[id]').each(function() { 2455 $(this).attr('id', ''); 2456 }); 2457 2458 } 2459 2460 } 2461 2462 }; 2463 2464 Slick.prototype.interrupt = function( toggle ) { 2465 2466 var _ = this; 2467 2468 if( !toggle ) { 2469 _.autoPlay(); 2470 } 2471 _.interrupted = toggle; 2472 2473 }; 2474 2475 Slick.prototype.selectHandler = function(event) { 2476 2477 var _ = this; 2478 2479 var targetElement = 2480 $(event.target).is('.slick-slide') ? 2481 $(event.target) : 2482 $(event.target).parents('.slick-slide'); 2483 2484 var index = parseInt(targetElement.attr('data-slick-index')); 2485 2486 if (!index) index = 0; 2487 2488 if (_.slideCount <= _.options.slidesToShow) { 2489 2490 _.setSlideClasses(index); 2491 _.asNavFor(index); 2492 return; 2493 2494 } 2495 2496 _.slideHandler(index); 2497 2498 }; 2499 2500 Slick.prototype.slideHandler = function(index, sync, dontAnimate) { 2501 2502 var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null, 2503 _ = this, navTarget; 2504 2505 sync = sync || false; 2506 2507 if (_.animating === true && _.options.waitForAnimate === true) { 2508 return; 2509 } 2510 2511 if (_.options.fade === true && _.currentSlide === index) { 2512 return; 2513 } 2514 2515 if (_.slideCount <= _.options.slidesToShow) { 2516 return; 2517 } 2518 2519 if (sync === false) { 2520 _.asNavFor(index); 2521 } 2522 2523 targetSlide = index; 2524 targetLeft = _.getLeft(targetSlide); 2525 slideLeft = _.getLeft(_.currentSlide); 2526 2527 _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft; 2528 2529 if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) { 2530 if (_.options.fade === false) { 2531 targetSlide = _.currentSlide; 2532 if (dontAnimate !== true) { 2533 _.animateSlide(slideLeft, function() { 2534 _.postSlide(targetSlide); 2535 }); 2536 } else { 2537 _.postSlide(targetSlide); 2538 } 2539 } 2540 return; 2541 } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) { 2542 if (_.options.fade === false) { 2543 targetSlide = _.currentSlide; 2544 if (dontAnimate !== true) { 2545 _.animateSlide(slideLeft, function() { 2546 _.postSlide(targetSlide); 2547 }); 2548 } else { 2549 _.postSlide(targetSlide); 2550 } 2551 } 2552 return; 2553 } 2554 2555 if ( _.options.autoplay ) { 2556 clearInterval(_.autoPlayTimer); 2557 } 2558 2559 if (targetSlide < 0) { 2560 if (_.slideCount % _.options.slidesToScroll !== 0) { 2561 animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll); 2562 } else { 2563 animSlide = _.slideCount + targetSlide; 2564 } 2565 } else if (targetSlide >= _.slideCount) { 2566 if (_.slideCount % _.options.slidesToScroll !== 0) { 2567 animSlide = 0; 2568 } else { 2569 animSlide = targetSlide - _.slideCount; 2570 } 2571 } else { 2572 animSlide = targetSlide; 2573 } 2574 2575 _.animating = true; 2576 2577 _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]); 2578 2579 oldSlide = _.currentSlide; 2580 _.currentSlide = animSlide; 2581 2582 _.setSlideClasses(_.currentSlide); 2583 2584 if ( _.options.asNavFor ) { 2585 2586 navTarget = _.getNavTarget(); 2587 navTarget = navTarget.slick('getSlick'); 2588 2589 if ( navTarget.slideCount <= navTarget.options.slidesToShow ) { 2590 navTarget.setSlideClasses(_.currentSlide); 2591 } 2592 2593 } 2594 2595 _.updateDots(); 2596 _.updateArrows(); 2597 2598 if (_.options.fade === true) { 2599 if (dontAnimate !== true) { 2600 2601 _.fadeSlideOut(oldSlide); 2602 2603 _.fadeSlide(animSlide, function() { 2604 _.postSlide(animSlide); 2605 }); 2606 2607 } else { 2608 _.postSlide(animSlide); 2609 } 2610 _.animateHeight(); 2611 return; 2612 } 2613 2614 if (dontAnimate !== true) { 2615 _.animateSlide(targetLeft, function() { 2616 _.postSlide(animSlide); 2617 }); 2618 } else { 2619 _.postSlide(animSlide); 2620 } 2621 2622 }; 2623 2624 Slick.prototype.startLoad = function() { 2625 2626 var _ = this; 2627 2628 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 2629 2630 _.$prevArrow.hide(); 2631 _.$nextArrow.hide(); 2632 2633 } 2634 2635 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 2636 2637 _.$dots.hide(); 2638 2639 } 2640 2641 _.$slider.addClass('slick-loading'); 2642 2643 }; 2644 2645 Slick.prototype.swipeDirection = function() { 2646 2647 var xDist, yDist, r, swipeAngle, _ = this; 2648 2649 xDist = _.touchObject.startX - _.touchObject.curX; 2650 yDist = _.touchObject.startY - _.touchObject.curY; 2651 r = Math.atan2(yDist, xDist); 2652 2653 swipeAngle = Math.round(r * 180 / Math.PI); 2654 if (swipeAngle < 0) { 2655 swipeAngle = 360 - Math.abs(swipeAngle); 2656 } 2657 2658 if ((swipeAngle <= 45) && (swipeAngle >= 0)) { 2659 return (_.options.rtl === false ? 'left' : 'right'); 2660 } 2661 if ((swipeAngle <= 360) && (swipeAngle >= 315)) { 2662 return (_.options.rtl === false ? 'left' : 'right'); 2663 } 2664 if ((swipeAngle >= 135) && (swipeAngle <= 225)) { 2665 return (_.options.rtl === false ? 'right' : 'left'); 2666 } 2667 if (_.options.verticalSwiping === true) { 2668 if ((swipeAngle >= 35) && (swipeAngle <= 135)) { 2669 return 'down'; 2670 } else { 2671 return 'up'; 2672 } 2673 } 2674 2675 return 'vertical'; 2676 2677 }; 2678 2679 Slick.prototype.swipeEnd = function(event) { 2680 2681 var _ = this, 2682 slideCount, 2683 direction; 2684 2685 _.dragging = false; 2686 _.interrupted = false; 2687 _.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true; 2688 2689 if ( _.touchObject.curX === undefined ) { 2690 return false; 2691 } 2692 2693 if ( _.touchObject.edgeHit === true ) { 2694 _.$slider.trigger('edge', [_, _.swipeDirection() ]); 2695 } 2696 2697 if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) { 2698 2699 direction = _.swipeDirection(); 2700 2701 switch ( direction ) { 2702 2703 case 'left': 2704 case 'down': 2705 2706 slideCount = 2707 _.options.swipeToSlide ? 2708 _.checkNavigable( _.currentSlide + _.getSlideCount() ) : 2709 _.currentSlide + _.getSlideCount(); 2710 2711 _.currentDirection = 0; 2712 2713 break; 2714 2715 case 'right': 2716 case 'up': 2717 2718 slideCount = 2719 _.options.swipeToSlide ? 2720 _.checkNavigable( _.currentSlide - _.getSlideCount() ) : 2721 _.currentSlide - _.getSlideCount(); 2722 2723 _.currentDirection = 1; 2724 2725 break; 2726 2727 default: 2728 2729 2730 } 2731 2732 if( direction != 'vertical' ) { 2733 2734 _.slideHandler( slideCount ); 2735 _.touchObject = {}; 2736 _.$slider.trigger('swipe', [_, direction ]); 2737 2738 } 2739 2740 } else { 2741 2742 if ( _.touchObject.startX !== _.touchObject.curX ) { 2743 2744 _.slideHandler( _.currentSlide ); 2745 _.touchObject = {}; 2746 2747 } 2748 2749 } 2750 2751 }; 2752 2753 Slick.prototype.swipeHandler = function(event) { 2754 2755 var _ = this; 2756 2757 if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) { 2758 return; 2759 } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) { 2760 return; 2761 } 2762 2763 _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ? 2764 event.originalEvent.touches.length : 1; 2765 2766 _.touchObject.minSwipe = _.listWidth / _.options 2767 .touchThreshold; 2768 2769 if (_.options.verticalSwiping === true) { 2770 _.touchObject.minSwipe = _.listHeight / _.options 2771 .touchThreshold; 2772 } 2773 2774 switch (event.data.action) { 2775 2776 case 'start': 2777 _.swipeStart(event); 2778 break; 2779 2780 case 'move': 2781 _.swipeMove(event); 2782 break; 2783 2784 case 'end': 2785 _.swipeEnd(event); 2786 break; 2787 2788 } 2789 2790 }; 2791 2792 Slick.prototype.swipeMove = function(event) { 2793 2794 var _ = this, 2795 edgeWasHit = false, 2796 curLeft, swipeDirection, swipeLength, positionOffset, touches; 2797 2798 touches = event.originalEvent !== undefined ? event.originalEvent.touches : null; 2799 2800 if (!_.dragging || touches && touches.length !== 1) { 2801 return false; 2802 } 2803 2804 curLeft = _.getLeft(_.currentSlide); 2805 2806 _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX; 2807 _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY; 2808 2809 _.touchObject.swipeLength = Math.round(Math.sqrt( 2810 Math.pow(_.touchObject.curX - _.touchObject.startX, 2))); 2811 2812 if (_.options.verticalSwiping === true) { 2813 _.touchObject.swipeLength = Math.round(Math.sqrt( 2814 Math.pow(_.touchObject.curY - _.touchObject.startY, 2))); 2815 } 2816 2817 swipeDirection = _.swipeDirection(); 2818 2819 if (swipeDirection === 'vertical') { 2820 return; 2821 } 2822 2823 if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) { 2824 event.preventDefault(); 2825 } 2826 2827 positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1); 2828 if (_.options.verticalSwiping === true) { 2829 positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1; 2830 } 2831 2832 2833 swipeLength = _.touchObject.swipeLength; 2834 2835 _.touchObject.edgeHit = false; 2836 2837 if (_.options.infinite === false) { 2838 if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) { 2839 swipeLength = _.touchObject.swipeLength * _.options.edgeFriction; 2840 _.touchObject.edgeHit = true; 2841 } 2842 } 2843 2844 if (_.options.vertical === false) { 2845 _.swipeLeft = curLeft + swipeLength * positionOffset; 2846 } else { 2847 _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset; 2848 } 2849 if (_.options.verticalSwiping === true) { 2850 _.swipeLeft = curLeft + swipeLength * positionOffset; 2851 } 2852 2853 if (_.options.fade === true || _.options.touchMove === false) { 2854 return false; 2855 } 2856 2857 if (_.animating === true) { 2858 _.swipeLeft = null; 2859 return false; 2860 } 2861 2862 _.setCSS(_.swipeLeft); 2863 2864 }; 2865 2866 Slick.prototype.swipeStart = function(event) { 2867 2868 var _ = this, 2869 touches; 2870 2871 _.interrupted = true; 2872 2873 if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) { 2874 _.touchObject = {}; 2875 return false; 2876 } 2877 2878 if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) { 2879 touches = event.originalEvent.touches[0]; 2880 } 2881 2882 _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX; 2883 _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY; 2884 2885 _.dragging = true; 2886 2887 }; 2888 2889 Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() { 2890 2891 var _ = this; 2892 2893 if (_.$slidesCache !== null) { 2894 2895 _.unload(); 2896 2897 _.$slideTrack.children(this.options.slide).detach(); 2898 2899 _.$slidesCache.appendTo(_.$slideTrack); 2900 2901 _.reinit(); 2902 2903 } 2904 2905 }; 2906 2907 Slick.prototype.unload = function() { 2908 2909 var _ = this; 2910 2911 $('.slick-cloned', _.$slider).remove(); 2912 2913 if (_.$dots) { 2914 _.$dots.remove(); 2915 } 2916 2917 if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) { 2918 _.$prevArrow.remove(); 2919 } 2920 2921 if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) { 2922 _.$nextArrow.remove(); 2923 } 2924 2925 _.$slides 2926 .removeClass('slick-slide slick-active slick-visible slick-current') 2927 .attr('aria-hidden', 'true') 2928 .css('width', ''); 2929 2930 }; 2931 2932 Slick.prototype.unslick = function(fromBreakpoint) { 2933 2934 var _ = this; 2935 _.$slider.trigger('unslick', [_, fromBreakpoint]); 2936 _.destroy(); 2937 2938 }; 2939 2940 Slick.prototype.updateArrows = function() { 2941 2942 var _ = this, 2943 centerOffset; 2944 2945 centerOffset = Math.floor(_.options.slidesToShow / 2); 2946 2947 if ( _.options.arrows === true && 2948 _.slideCount > _.options.slidesToShow && 2949 !_.options.infinite ) { 2950 2951 _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 2952 _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 2953 2954 if (_.currentSlide === 0) { 2955 2956 _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true'); 2957 _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 2958 2959 } else if (_.currentSlide >
2959= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) { 2960 2961 _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true'); 2962 _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 2963 2964 } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) { 2965 2966 _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true'); 2967 _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 2968 2969 } 2970 2971 } 2972 2973 }; 2974 2975 Slick.prototype.updateDots = function() { 2976 2977 var _ = this; 2978 2979 if (_.$dots !== null) { 2980 2981 _.$dots 2982 .find('li') 2983 .removeClass('slick-active') 2984 .attr('aria-hidden', 'true'); 2985 2986 _.$dots 2987 .find('li') 2988 .eq(Math.floor(_.currentSlide / _.options.slidesToScroll)) 2989 .addClass('slick-active') 2990 .attr('aria-hidden', 'false'); 2991 2992 } 2993 2994 }; 2995 2996 Slick.prototype.visibility = function() { 2997 2998 var _ = this; 2999 3000 if ( _.options.autoplay ) { 3001 3002 if ( document[_.hidden] ) { 3003 3004 _.interrupted = true; 3005 3006 } else { 3007 3008 _.interrupted = false; 3009 3010 } 3011 3012 } 3013 3014 }; 3015 3016 $.fn.slick = function() { 3017 var _ = this, 3018 opt = arguments[0], 3019 args = Array.prototype.slice.call(arguments, 1), 3020 l = _.length, 3021 i, 3022 ret; 3023 for (i = 0; i < l; i++) { 3024 if (typeof opt == 'object' || typeof opt == 'undefined') 3025 _[i].slick = new Slick(_[i], opt); 3026 else 3027 ret = _[i].slick[opt].apply(_[i].slick, args); 3028 if (typeof ret != 'undefined') return ret; 3029 } 3030 return _; 3031 }; 3032 3033})); 3034; 3035/*! 3036* jQuery meanMenu v2.0.8 3037* @Copyright (C) 2012-2014 Chris Wharton @ MeanThemes (https://github.com/meanthemes/meanMenu) 3038* 3039*/ 3040/* 3041* This program is free software: you can redistribute it and/or modify 3042* it under the terms of the GNU General Public License as published by 3043* the Free Software Foundation, either version 3 of the License, or 3044* (at your option) any later version. 3045* 3046* THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT 3047* HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, 3048* INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR 3049* FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE 3050* OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, 3051* COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.COPYRIGHT HOLDERS WILL NOT 3052* BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL 3053* DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. 3054* 3055* You should have received a copy of the GNU General Public License 3056* along with this program. If not, see <http://gnu.org/licenses/>. 3057* 3058* Find more information at http://www.meanthemes.com/plugins/meanmenu/ 3059* 3060*/ 3061(function ($) { 3062 "use strict"; 3063 $.fn.meanmenu = function (options) { 3064 var defaults = { 3065 meanMenuTarget: jQuery(this), // Target the current HTML markup you wish to replace 3066 meanMenuContainer: 'body', // Choose where meanmenu will be placed within the HTML 3067 meanMenuClose: "X", // single character you want to represent the close menu button 3068 meanMenuCloseSize: "18px", // set font size of close button 3069 meanMenuOpen: "<span /><span /><span />", // text/markup you want when menu is closed 3070 meanRevealPosition: "right", // left right or center positions 3071 meanRevealPositionDistance: "0", // Tweak the position of the menu 3072 meanRevealColour: "", // override CSS colours for the reveal background 3073 meanScreenWidth: "767", // set the screen width you want meanmenu to kick in at 3074 meanNavPush: "", // set a height here in px, em or % if you want to budge your layout now the navigation is missing. 3075 meanShowChildren: true, // true to show children in the menu, false to hide them 3076 meanExpandableChildren: true, // true to allow expand/collapse children 3077 meanExpand: "+", // single character you want to represent the expand for ULs 3078 meanContract: "-", // single character you want to represent the contract for ULs 3079 meanRemoveAttrs: false, // true to remove classes and IDs, false to keep them 3080 onePage: false, // set to true for one page sites 3081 meanDisplay: "block", // override display method for table cell based layouts e.g. table-cell 3082 removeElements: "" // set to hide page elements 3083 }; 3084 options = $.extend(defaults, options); 3085 3086 // get browser width 3087 var currentWidth = window.innerWidth || document.documentElement.clientWidth; 3088 3089 return this.each(function () { 3090 var meanMenu = options.meanMenuTarget; 3091 var meanContainer = options.meanMenuContainer; 3092 var meanMenuClose = options.meanMenuClose; 3093 var meanMenuCloseSize = options.meanMenuCloseSize; 3094 var meanMenuOpen = options.meanMenuOpen; 3095 var meanRevealPosition = options.meanRevealPosition; 3096 var meanRevealPositionDistance = options.meanRevealPositionDistance; 3097 var meanRevealColour = options.meanRevealColour; 3098 var meanScreenWidth = options.meanScreenWidth; 3099 var meanNavPush = options.meanNavPush; 3100 var meanRevealClass = ".meanmenu-reveal"; 3101 var meanShowChildren = options.meanShowChildren; 3102 var meanExpandableChildren = options.meanExpandableChildren; 3103 var meanExpand = options.meanExpand; 3104 var meanContract = options.meanContract; 3105 var meanRemoveAttrs = options.meanRemoveAttrs; 3106 var onePage = options.onePage; 3107 var meanDisplay = options.meanDisplay; 3108 var removeElements = options.removeElements; 3109 3110 //detect known mobile/tablet usage 3111 var isMobile = false; 3112 if ( (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/Blackberry/i)) || (navigator.userAgent.match(/Windows Phone/i)) ) { 3113 isMobile = true; 3114 } 3115 3116 if ( (navigator.userAgent.match(/MSIE 8/i)) || (navigator.userAgent.match(/MSIE 7/i)) ) { 3117 // add scrollbar for IE7 & 8 to stop breaking resize function on small content sites 3118 jQuery('html').css("overflow-y" , "scroll"); 3119 } 3120 3121 var meanRevealPos = ""; 3122 var meanCentered = function() { 3123 if (meanRevealPosition === "center") { 3124 var newWidth = window.innerWidth || document.documentElement.clientWidth; 3125 var meanCenter = ( (newWidth/2)-22 )+"px"; 3126 meanRevealPos = "left:" + meanCenter + ";right:auto;"; 3127 3128 if (!isMobile) { 3129 jQuery('.meanmenu-reveal').css("left",meanCenter); 3130 } else { 3131 jQuery('.meanmenu-reveal').animate({ 3132 left: meanCenter 3133 });
3134 } 3135 } 3136 }; 3137 3138 var menuOn = false; 3139 var meanMenuExist = false; 3140 3141 3142 if (meanRevealPosition === "right") { 3143 meanRevealPos = "right:" + meanRevealPositionDistance + ";left:auto;"; 3144 } 3145 if (meanRevealPosition === "left") { 3146 meanRevealPos = "left:" + meanRevealPositionDistance + ";right:auto;"; 3147 } 3148 // run center function 3149 meanCentered(); 3150 3151 // set all styles for mean-reveal 3152 var $navreveal = ""; 3153 3154 var meanInner = function() { 3155 // get last class name 3156 if (jQuery($navreveal).is(".meanmenu-reveal.meanclose")) { 3157 $navreveal.html(meanMenuClose); 3158 } else { 3159 $navreveal.html(meanMenuOpen); 3160 } 3161 }; 3162 3163 // re-instate original nav (and call this on window.width functions) 3164 var meanOriginal = function() { 3165 jQuery('.mean-bar,.mean-push').remove(); 3166 jQuery(meanContainer).removeClass("mean-container"); 3167 jQuery(meanMenu).css('display', meanDisplay); 3168 menuOn = false; 3169 meanMenuExist = false; 3170 jQuery(removeElements).removeClass('mean-remove'); 3171 }; 3172 3173 // navigation reveal 3174 var showMeanMenu = function() { 3175 var meanStyles = "background:"+meanRevealColour+";color:"+meanRevealColour+";"+meanRevealPos; 3176 if (currentWidth <= meanScreenWidth) { 3177 jQuery(removeElements).addClass('mean-remove'); 3178 meanMenuExist = true; 3179 // add class to body so we don't need to worry about media queries here, all CSS is wrapped in '.mean-container' 3180 jQuery(meanContainer).addClass("mean-container"); 3181 jQuery('.mean-container').prepend('<div class="mean-bar"><a href="#nav" class="meanmenu-reveal" style="'+meanStyles+'">Show Navigation</a><nav class="mean-nav"></nav></div>'); 3182 3183 //push meanMenu navigation into .mean-nav 3184 var meanMenuContents = jQuery(meanMenu).html(); 3185 jQuery('.mean-nav').html(meanMenuContents); 3186 3187 // remove all classes from EVERYTHING inside meanmenu nav 3188 if(meanRemoveAttrs) { 3189 jQuery('nav.mean-nav ul, nav.mean-nav ul *').each(function() { 3190 // First check if this has mean-remove class 3191 if (jQuery(this).is('.mean-remove')) { 3192 jQuery(this).attr('class', 'mean-remove'); 3193 } else { 3194 jQuery(this).removeAttr("class"); 3195 } 3196 jQuery(this).removeAttr("id"); 3197 }); 3198 } 3199 3200 // push in a holder div (this can be used if removal of nav is causing layout issues) 3201 jQuery(meanMenu).before('<div class="mean-push" />'); 3202 jQuery('.mean-push').css("margin-top",meanNavPush); 3203 3204 // hide current navigation and reveal mean nav link 3205 jQuery(meanMenu).hide(); 3206 jQuery(".meanmenu-reveal").show(); 3207 3208 // turn 'X' on or off 3209 jQuery(meanRevealClass).html(meanMenuOpen); 3210 $navreveal = jQuery(meanRevealClass); 3211 3212 //hide mean-nav ul 3213 jQuery('.mean-nav ul').hide(); 3214 3215 // hide sub nav 3216 if(meanShowChildren) { 3217 // allow expandable sub nav(s) 3218 if(meanExpandableChildren){ 3219 jQuery('.mean-nav ul ul').each(function() { 3220 if(jQuery(this).children().length){ 3221 jQuery(this,'li:first').parent().append('<a class="mean-expand" href="#" style="font-size: '+ meanMenuCloseSize +'">'+ meanExpand +'</a>'); 3222 } 3223 }); 3224 jQuery('.mean-expand').on("click",function(e){ 3225 e.preventDefault(); 3226 if (jQuery(this).hasClass("mean-clicked")) { 3227 jQuery(this).text(meanExpand); 3228 jQuery(this).prev('ul').slideUp(300, function(){}); 3229 } else { 3230 jQuery(this).text(meanContract); 3231 jQuery(this).prev('ul').slideDown(300, function(){}); 3232 } 3233 jQuery(this).toggleClass("mean-clicked"); 3234 }); 3235 } else { 3236 jQuery('.mean-nav ul ul').show(); 3237 } 3238 } else { 3239 jQuery('.mean-nav ul ul').hide(); 3240 } 3241 3242 // add last class to tidy up borders 3243 jQuery('.mean-nav ul li').last().addClass('mean-last'); 3244 $navreveal.removeClass("meanclose"); 3245 jQuery($navreveal).click(function(e){
3246 e.preventDefault(); 3247 if( menuOn === false ) { 3248 $navreveal.css("text-align", "center"); 3249 $navreveal.css("text-indent", "0"); 3250 $navreveal.css("font-size", meanMenuCloseSize); 3251 jQuery('.mean-nav ul:first').slideDown(); 3252 menuOn = true; 3253 } else { 3254 jQuery('.mean-nav ul:first').slideUp(); 3255 menuOn = false; 3256 } 3257 $navreveal.toggleClass("meanclose"); 3258 meanInner(); 3259 jQuery(removeElements).addClass('mean-remove'); 3260 }); 3261 3262 // for one page websites, reset all variables... 3263 if ( onePage ) { 3264 jQuery('.mean-nav ul > li > a:first-child').on( "click" , function () { 3265 jQuery('.mean-nav ul:first').slideUp(); 3266 menuOn = false; 3267 jQuery($navreveal).toggleClass("meanclose").html(meanMenuOpen); 3268 }); 3269 } 3270 } else { 3271 meanOriginal(); 3272 } 3273 }; 3274 3275 if (!isMobile) { 3276 // reset menu on resize above meanScreenWidth 3277 jQuery(window).resize(function () { 3278 currentWidth = window.innerWidth || document.documentElement.clientWidth; 3279 if (currentWidth > meanScreenWidth) { 3280 meanOriginal(); 3281 } else { 3282 meanOriginal(); 3283 } 3284 if (currentWidth <= meanScreenWidth) { 3285 showMeanMenu(); 3286 meanCentered(); 3287 } else { 3288 meanOriginal(); 3289 } 3290 });
3291 } 3292 3293 jQuery(window).resize(function () { 3294 // get browser width 3295 currentWidth = window.innerWidth || document.documentElement.clientWidth; 3296 3297 if (!isMobile) { 3298 meanOriginal(); 3299 if (currentWidth <= meanScreenWidth) { 3300 showMeanMenu(); 3301 meanCentered(); 3302 } 3303 } else { 3304 meanCentered(); 3305 if (currentWidth <= meanScreenWidth) { 3306 if (meanMenuExist === false) { 3307 showMeanMenu(); 3308 } 3309 } else { 3310 meanOriginal(); 3311 } 3312 } 3313 }); 3314 3315 // run main menuMenu function on load 3316 showMeanMenu(); 3317 }); 3318 }; 3319})(jQuery);; 3320/*! 3321 * Theia Sticky Sidebar v1.7.0 3322 * https://github.com/WeCodePixels/theia-sticky-sidebar 3323 * 3324 * Glues your website's sidebars, making them permanently visible while scrolling. 3325 * 3326 * Copyright 2013-2016 WeCodePixels and other contributors 3327 * Released under the MIT license 3328 */ 3329 3330(function ($) { 3331 $.fn.theiaStickySidebar = function (options) { 3332 var defaults = { 3333 'containerSelector': '', 3334 'additionalMarginTop': 0, 3335 'additionalMarginBottom': 0, 3336 'updateSidebarHeight': true, 3337 'minWidth': 0, 3338 'disableOnResponsiveLayouts': true, 3339 'sidebarBehavior': 'modern', 3340 'defaultPosition': 'relative', 3341 'namespace': 'TSS' 3342 }; 3343 options = $.extend(defaults, options); 3344 3345 // Validate options 3346 options.additionalMarginTop = parseInt(options.additionalMarginTop) || 0; 3347 options.additionalMarginBottom = parseInt(options.additionalMarginBottom) || 0; 3348 3349 tryInitOrHookIntoEvents(options, this); 3350 3351 // Try doing init, otherwise hook into window.resize and document.scroll and try again then. 3352 function tryInitOrHookIntoEvents(options, $that) { 3353 var success = tryInit(options, $that); 3354 3355 if (!success) {
3356 console.log('TSS: Body width smaller than options.minWidth. Init is delayed.'); 3357 3358 $(document).on('scroll.' + options.namespace, function (options, $that) { 3359 return function (evt) { 3360 var success = tryInit(options, $that); 3361 3362 if (success) { 3363 $(this).unbind(evt); 3364 } 3365 }; 3366 }(options, $that)); 3367 $(window).on('resize.' + options.namespace, function (options, $that) { 3368 return function (evt) { 3369 var success = tryInit(options, $that); 3370 3371 if (success) { 3372 $(this).unbind(evt); 3373 } 3374 }; 3375 }(options, $that)) 3376 } 3377 } 3378 3379 // Try doing init if proper conditions are met. 3380 function tryInit(options, $that) { 3381 if (options.initialized === true) { 3382 return true; 3383 } 3384 3385 if ($('body').width() < options.minWidth) { 3386 return false; 3387 } 3388 3389 init(options, $that); 3390 3391 return true; 3392 } 3393 3394 // Init the sticky sidebar(s). 3395 function init(options, $that) { 3396 options.initialized = true; 3397 3398 // Add CSS 3399 var existingStylesheet = $('#theia-sticky-sidebar-stylesheet-' + options.namespace); 3400 if (existingStylesheet.length === 0) { 3401 $('head').append($('<style id="theia-sticky-sidebar-stylesheet-' + options.namespace + '">.theiaStickySidebar:after {content: ""; display: table; clear: both;}</style>')); 3402 } 3403 3404 $that.each(function () { 3405 var o = {}; 3406 3407 o.sidebar = $(this); 3408 3409 // Save options 3410 o.options = options || {}; 3411 3412 // Get container 3413 o.container = $(o.options.containerSelector); 3414 if (o.container.length == 0) { 3415 o.container = o.sidebar.parent(); 3416 } 3417 3418 // Create sticky sidebar 3419 o.sidebar.parents().css('-webkit-transform', 'none'); // Fix for WebKit bug - https://code.google.com/p/chromium/issues/detail?id=20574 3420 o.sidebar.css({ 3421 'position': o.options.defaultPosition, 3422 'overflow': 'visible', 3423 // The "box-sizing" must be set to "content-box" because we set a fixed height to this element when the sticky
3423sidebar has a fixed position. 3424 '-webkit-box-sizing': 'border-box', 3425 '-moz-box-sizing': 'border-box', 3426 'box-sizing': 'border-box' 3427 }); 3428 3429 // Get the sticky sidebar element. If none has been found, then create one. 3430 o.stickySidebar = o.sidebar.find('.theiaStickySidebar'); 3431 if (o.stickySidebar.length == 0) { 3432 // Remove <script> tags, otherwise they will be run again when added to the stickySidebar. 3433 var javaScriptMIMETypes = /(?:text|application)\/(?:x-)?(?:javascript|ecmascript)/i; 3434 o.sidebar.find('script').filter(function (index, script) { 3435 return script.type.length === 0 || script.type.match(javaScriptMIMETypes); 3436 }).remove(); 3437 3438 o.stickySidebar = $('<div>').addClass('theiaStickySidebar').append(o.sidebar.children()); 3439 o.sidebar.append(o.stickySidebar); 3440 } 3441 3442 // Get existing top and bottom margins and paddings 3443 o.marginBottom = parseInt(o.sidebar.css('margin-bottom')); 3444 o.paddingTop = parseInt(o.sidebar.css('padding-top')); 3445 o.paddingBottom = parseInt(o.sidebar.css('padding-bottom')); 3446
3447 // Add a temporary padding rule to check for collapsable margins. 3448 var collapsedTopHeight = o.stickySidebar.offset().top; 3449 var collapsedBottomHeight = o.stickySidebar.outerHeight(); 3450 o.stickySidebar.css('padding-top', 1); 3451 o.stickySidebar.css('padding-bottom', 1); 3452 collapsedTopHeight -= o.stickySidebar.offset().top; 3453 collapsedBottomHeight = o.stickySidebar.outerHeight() - collapsedBottomHeight - collapsedTopHeight; 3454 if (collapsedTopHeight == 0) { 3455 o.stickySidebar.css('padding-top', 0); 3456 o.stickySidebarPaddingTop = 0; 3457 } 3458 else { 3459 o.stickySidebarPaddingTop = 1; 3460 } 3461 3462 if (collapsedBottomHeight == 0) { 3463 o.stickySidebar.css('padding-bottom', 0); 3464 o.stickySidebarPaddingBottom = 0; 3465 } 3466 else { 3467 o.stickySidebarPaddingBottom = 1; 3468 } 3469 3470 // We use this to know whether the user is scrolling up or down. 3471 o.previousScrollTop = null; 3472 3473 // Scroll top (value) when the sidebar has fixed position. 3474 o.fixedScrollTop = 0; 3475 3476 // Set sidebar to default values. 3477 resetSidebar(); 3478 3479 o.onScroll = function (o) { 3480 // Stop if the sidebar isn't visible. 3481 if (!o.stickySidebar.is(":visible")) { 3482 return; 3483 } 3484 3485 // Stop if the window is too small. 3486 if ($('body').width() < o.options.minWidth) { 3487 resetSidebar(); 3488 return; 3489 } 3490 3491 // Stop if the sidebar width is larger than the container width (e.g. the theme is responsive and the sidebar is now below the content) 3492 if (o.options.disableOnResponsiveLayouts) { 3493 var sidebarWidth = o.sidebar.outerWidth(o.sidebar.css('float') == 'none'); 3494 3495 if (sidebarWidth + 50 > o.container.width()) { 3496 resetSidebar(); 3497 return; 3498 } 3499 } 3500 3501 var scrollTop = $(document).scrollTop(); 3502 var position = 'static'; 3503 3504 // If the user has scrolled down enough for the sidebar to be clipped at the top, then we can consider changing its position. 3505 if (scrollTop >= o.sidebar.offset().top + (o.paddingTop - o.options.additionalMarginTop)) { 3506 // The top and bottom offsets, used in various calculations. 3507 var offsetTop = o.paddingTop + options.additionalMarginTop; 3508 var offsetBottom = o.paddingBottom + o.marginBottom + options.additionalMarginBottom; 3509 3510 // All top and bottom positions are relative to the window, not to the parent elemnts. 3511 var containerTop = o.sidebar.offset().top; 3512 var containerBottom = o.sidebar.offset().top + getClearedHeight(o.container); 3513 3514 // The top and bottom offsets relative to the window screen top (zero) and bottom (window height). 3515 var windowOffsetTop = 0 + options.additionalMarginTop; 3516 var windowOffsetBottom; 3517 3518 var sidebarSmallerThanWindow = (o.stickySidebar.outerHeight() + offsetTop + offsetBottom) < $(window).height(); 3519 if (sidebarSmallerThanWindow) { 3520 windowOffsetBottom = windowOffsetTop + o.stickySidebar.outerHeight(); 3521 } 3522 else { 3523 windowOffsetBottom = $(window).height() - o.marginBottom - o.paddingBottom - options.additionalMarginBottom; 3524 } 3525 3526 var staticLimitTop = containerTop - scrollTop + o.paddingTop; 3527 var staticLimitBottom = containerBottom - scrollTop - o.paddingBottom - o.marginBottom; 3528 3529 var top = o.stickySidebar.offset().top - scrollTop; 3530 var scrollTopDiff = o.previousScrollTop - scrollTop; 3531 3532 // If the sidebar position is fixed, then it won't move up or down by itself. So, we manually adjust the top coordinate. 3533 if (o.stickySidebar.css('position') == 'fixed') { 3534 if (o.options.sidebarBehavior == 'modern') { 3535 top += scrollTopDiff; 3536 } 3537 } 3538 3539 if (o.options.sidebarBehavior == 'stick-to-top') { 3540 top = options.additionalMarginTop; 3541 } 3542 3543 if (o.options.sidebarBehavior == 'stick-to-bottom') { 3544 top = windowOffsetBottom - o.stickySidebar.outerHeight(); 3545 } 3546 3547 if (scrollTopDiff > 0) { // If the user is scrolling up. 3548 top = Math.min(top, windowOffsetTop); 3549 } 3550 else { // If the user is scrolling down. 3551 top = Math.max(top, windowOffsetBottom - o.stickySidebar.outerHeight()); 3552 } 3553 3554 top = Math.max(top, staticLimitTop); 3555 3556 top = Math.min(top, staticLimitBottom - o.stickySidebar.outerHeight()); 3557 3558 // If the sidebar is the same height as the container, we won't use fixed positioning. 3559 var sidebarSameHeightAsContainer = o.container.height() == o.stickySidebar.outerHeight(); 3560 3561 if (!sidebarSameHeightAsContainer && top == windowOffsetTop) { 3562 position = 'fixed'; 3563 } 3564 else if (!sidebarSameHeightAsContainer && top == windowOffsetBottom - o.stickySidebar.outerHeight()) { 3565 position = 'fixed'; 3566 } 3567 else if (scrollTop + top - o.sidebar.offset().top - o.paddingTop <= options.additionalMarginTop) { 3568 // Stuck to the top of the page. No special behavior. 3569 position = 'static'; 3570 } 3571 else { 3572 // Stuck to the bottom of the page. 3573 position = 'absolute'; 3574 } 3575 } 3576 3577 /*
3578 * Performance notice: It's OK to set these CSS values at each resize/scroll, even if they don't change. 3579 * It's way slower to first check if the values have changed. 3580 */ 3581 if (position == 'fixed') { 3582 var scrollLeft = $(document).scrollLeft(); 3583 3584 o.stickySidebar.css({ 3585 'position': 'fixed', 3586 'width': getWidthForObject(o.stickySidebar) + 'px', 3587 'transform': 'translateY(' + top + 'px)', 3588 'left': (o.sidebar.offset().left + parseInt(o.sidebar.css('padding-left')) - scrollLeft) + 'px', 3589 'top': '0px' 3590 }); 3591 } 3592 else if (position == 'absolute') { 3593 var css = {}; 3594 3595 if (o.stickySidebar.css('position') != 'absolute') { 3596 css.position = 'absolute'; 3597 css.transform = 'translateY(' + (scrollTop + top - o.sidebar.offset().top - o.stickySidebarPaddingTop - o.stickySidebarPaddingBottom) + 'px)'; 3598 css.top = '0px'; 3599 } 3600 3601 css.width = getWidthForObject(o.stickySidebar) + 'px'; 3602 css.left = ''; 3603 3604 o.stickySidebar.css(css); 3605 } 3606 else if (position == 'static') { 3607 resetSidebar(); 3608 } 3609 3610 if (position != 'static') { 3611 if (o.options.updateSidebarHeight == true) { 3612 o.sidebar.css({ 3613 'min-height': o.stickySidebar.outerHeight() + o.stickySidebar.offset().top - o.sidebar.offset().top + o.paddingBottom 3614 }); 3615 } 3616 } 3617 3618 o.previousScrollTop = scrollTop; 3619 }; 3620 3621 // Initialize the sidebar's position. 3622 o.onScroll(o); 3623 3624 // Recalculate the sidebar's position on every scroll and resize. 3625 $(document).on('scroll.' + o.options.namespace, function (o) { 3626 return function () { 3627 o.onScroll(o); 3628 }; 3629 }(o)); 3630 $(window).on('resize.' + o.options.namespace, function (o) { 3631 return function () { 3632 o.stickySidebar.css({'position': 'static'}); 3633 o.onScroll(o); 3634 }; 3635 }(o)); 3636 3637 // Recalculate the sidebar's position every time the sidebar changes its size. 3638 if (typeof ResizeSensor !== 'undefined') { 3639 new ResizeSensor(o.stickySidebar[0], function (o) { 3640 return function () { 3641 o.onScroll(o); 3642 }; 3643 }(o)); 3644 } 3645 3646 // Reset the sidebar to its default state 3647 function resetSidebar() { 3648 o.fixedScrollTop = 0; 3649 o.sidebar.css({ 3650 'min-height': '1px' 3651 }); 3652 o.stickySidebar.css({ 3653 'position': 'static', 3654 'width': '', 3655 'transform': 'none' 3656 }); 3657 } 3658 3659 // Get the height of a div as if its floated children were cleared. Note that this function fails if the floats are more than one level deep. 3660 function getClearedHeight(e) { 3661 var height = e.height(); 3662 3663 e.children().each(function () { 3664 height = Math.max(height, $(this).height()); 3665 }); 3666 3667 return height; 3668 } 3669 }); 3670 } 3671 3672 function getWidthForObject(object) { 3673 var width; 3674 3675 try { 3676 width = object[0].getBoundingClientRect().width; 3677 } 3678 catch (err) { 3679 } 3680 3681 if (typeof width === "undefined") { 3682 width = object.width(); 3683 } 3684 3685 return width; 3686 } 3687 3688 return this; 3689 } 3690})(jQuery); 3691 3692//# sourceMappingURL=maps/theia-sticky-sidebar.js.map 3693; 3694jQuery(document).ready(function($){ 3695 3696 /* MEan Menu */ 3697 jQuery('#main-nav').meanmenu({ 3698 meanMenuContainer: '.main-navigation-holder', 3699 meanScreenWidth:"767" 3700 }); 3701 3702 /* slick slider */ 3703 $('.main-blog-slider').slick(); 3704 3705 $('.main-slider-nav').slick(); 3706 3707 /* show/hide search form */ 3708 jQuery(".search-box").hide(); 3709 3710 jQuery(".search-btn").click(function(e) { 3711 3712 var parent_element = $(this).parent(); 3713 3714 parent_element.children('.search-box').slideToggle('slow'); 3715 3716 parent_element.toggleClass('open'); 3717 3718 e.preventDefault(); 3719 3720 }); 3721 3722 /* Scroll to top */ 3723 var $scroll_obj = $( '#btn-gotop' ); 3724 3725 $( window ).scroll(function(){ 3726 3727 if ( $( this ).scrollTop() > 100 ) { 3728 3729 $scroll_obj.fadeIn(); 3730 3731 } else { 3732 3733 $scroll_obj.fadeOut(); 3734 3735 } 3736 3737 }); 3738 3739 $scroll_obj.click(function(){ 3740 3741 $( 'html, body' ).animate( { scrollTop: 0 }, 600 ); 3742 3743 return false; 3744 3745 }); 3746 3747 /* Sticky sidebar */ 3748 var main_ref = $("body"); 3749 3750 if( main_ref.hasClass( 'sticky-sidebar-enabled' ) ){ 3751 3752 $( '#primary, #sidebar-primary' ).theiaStickySidebar(); 3753 3754 } 3755 3756 //For news carousel 3757 $('.carousel-enabled .grid-news-items').slick({ 3758 dots: false, 3759 infinite: true, 3760 speed: 600, 3761 slidesToShow: 3, 3762 arrows:true, 3763 autoplay:true, 3764 slidesToScroll: 1, 3765 responsive: [ 3766 { 3767 breakpoint: 1024, 3768 settings: { 3769 slidesToShow: 2, 3770 slidesToScroll: 2, 3771 infinite: true, 3772 dots: false 3773 } 3774 }, 3775 { 3776 breakpoint: 481, 3777 settings: { 3778 slidesToShow: 1, 3779 slidesToScroll: 1 3780 } 3781 } 3782 ] 3783 }); 3784 3785 //For breaking news carousel 3786 $('#breaking-news').slick({ 3787 autoplay: true, 3788 autoplaySpeed: 5000, 3789 dots: false, 3790 slidesToShow: 1, 3791 slidesToScroll: 1, 3792 vertical: true, 3793 arrows:true, 3794 adaptiveHeight: true, 3795 }); 3796 3797});; 3798!function(){"use strict";var e,t={noop:function(){}
3798,texturize:function(e){return(e=(e=(e=(e+="").replace(/'/g,"’").replace(/'/g,"’")).replace(/"/g,"”").replace(/"/g,"”").replace(/"/g,"”").replace(/[\u201D]/g,"”")).replace(/([\w]+)=&#[\d]+;(.+?)&#[\d]+;/g,'$1="$2"')).trim()},applyReplacements:function(e,t){if(e)return t?e.replace(/{(\d+)}/g,function(e,r){return void 0!==t[r]?t[r]:e}):e},getBackgroundImage:function(e){var t=document.createElement("canvas"),r=t.getContext&&t.getContext("2d");if(e){r.filter="blur(20px) ",r.drawImage(e,0,0);var o=t.toDataURL("image/png");return t=null,o}}},r=function(){function e(e,t){return Element.prototype.matches?e.matches(t):Element.prototype.msMatchesSelector?e.msMatchesSelector(t):void 0}function r(e,t,r,o){if(!e)return o();e.jpCarouselCancelFade&&e.jpCarouselCancelFade(),e.classList.remove("jp-carousel-fade"),e.style.removeProperty("display"),e.style.opacity=t,e.style.pointerEvents="none",e.offsetWidth,e.classList.add("jp-carousel-fade"),e.style.opacity=r;var a=1e3*parseFloat(getComputedStyle(e).transitionDuration)||0,n=setTimeout(function(){e.jpCarouselCancelFade=null,e.style.removeProperty("pointer-events"),o()},a+50);e.jpCarouselCancelFade=function(){clearTimeout(n),e.jpCarouselCancelFade=null}}return{closest:function(t,r){if(t.closest)return t.closest(r);var o=t;do{if(e(o,r))return o;o=o.parentElement||o.parentNode}while(null!==o&&1===o.nodeType);return null},matches:e,hide:function(e){e&&(e.style.display="none")},show:function(e){e&&(e.style.display="block")},fadeIn:function(e,o){r(e,0,1,o=o||t.noop)},fadeOut:function(e,o){o=o||t.noop,r(e,1,0,function(){e&&(e.style.display="none"),o()})},scrollToElement:function(e,t,r){if(!e||!t)return r?r():void 0;var o=t.querySelector(".jp-carousel-info-extra");o&&(o.style.minHeight=window.innerHeight-64+"px");var a=!0,n=Date.now(),i=t.scrollTop,l=Math.max(0,e.offsetTop-Math.max(0,window.innerHeight-function(e){var t=e.querySelector(".jp-carousel-info-footer"),r=e.querySelector(".jp-carousel-info-extra"),o=e.querySelector(".jp-carousel-info-content-wrapper");if(t&&r&&o){var a=window.getComputedStyle(r),n=parseInt(a.paddingTop,10)+parseInt(a.paddingBottom,10);return n=isNaN(n)?0:n,o.offsetHeight+t.offsetHeight+n}return 0}(t)))-t.scrollTop;function s(){a=!1}l=Math.min(l,t.scrollHeight-window.innerHeight),t.addEventListener("wheel",s),function e(){var c,u=Date.now(),d=(c=(u-n)/300)<.5?2*c*c:1-Math.pow(-2*c+2,2)/2,m=(d=d>1?1:d)*l;if(t.scrollTop=i+m,u<=n+300&&a)return requestAnimationFrame(e);r&&r(),o&&(o.style.minHeight=""),a=!1,t.removeEventListener("wheel",s)}()},getJSONAttribute:function(e,t){if(e&&e.hasAttribute(t))try{return JSON.parse(e.getAttribute(t))}catch{return}},convertToPlainText:function(e){var t=document.createElement("div");return t.textContent=e,t.innerHTML},stripHTML:function(e){var t=document.createElement("div");return t.innerHTML=e.replace(/<[^>]*>?/gm,""),t.textContent},emitEvent:function(e,t,r){var o;try{o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:r||null})}catch{(o=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,r||null)}e.dispatchEvent(o)},isTouch:function(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch},prefersReducedMotion:function(){return!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}}}();function o(){var o,a,n,i,l={},s={},c="",u=!1,d="div.gallery, div.tiled-gallery, ul.wp-block-gallery, ul.blocks-gallery-grid, figure.wp-block-gallery.has-nested-images, div.wp-block-jetpack-tiled-gallery, a.single-image-gallery",m=".gallery-item, .tiled-gallery-item, .blocks-gallery-item, .tiled-gallery__item",p=m+", .wp-block-image",g={},h="undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.stat?wpcom.carousel.stat:t.noop,f="undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.pageview?wpcom.carousel.pageview:t.noop;function v(t){if(!u)switch(t.which){case 38:t.preventDefault(),g.overlay.scrollTop-=100;break;case 40:t.preventDefault(),g.overlay.scrollTop+=100;break;case 39:t.preventDefault(),e.slideNext();break;case 37:case 8:t.preventDefault(),e.slidePrev();break;case 27:t.preventDefault(),k()}}function y(){u=!0}function w(){u=!1}function S(e){e.role="button",e.tabIndex=0,e.ariaLabel=jetpackCarouselStrings.image_label}function j(){g.overlay||(g.overlay=document.querySelector(".jp-carousel-overlay"),g.container=g.overlay.querySelector(".jp-carousel-wrap"),g.gallery=g.container.querySelector(".jp-carousel"),g.info=g.overlay.querySelector(".jp-carousel-info"),g.caption=g.
3798info.querySelector(".jp-carousel-caption"),g.commentField=g.overlay.querySelector("#jp-carousel-comment-form-comment-field"),g.emailField=g.overlay.querySelector("#jp-carousel-comment-form-email-field"),g.authorField=g.overlay.querySelector("#jp-carousel-comment-form-author-field"),g.urlField=g.overlay.querySelector("#jp-carousel-comment-form-url-field"),window.innerWidth<=760&&Math.round(window.innerWidth/760*110)<40&&r.isTouch(),[g.commentField,g.emailField,g.authorField,g.urlField].forEach(function(e){e&&(e.addEventListener("focus",y),e.addEventListener("blur",w))}),g.overlay.addEventListener("click",function(e){var t,o,a=e.target,n=!!r.closest(a,".jp-carousel-close-hint"),i=!!window.matchMedia("(max-device-width: 760px)").matches;a===g.overlay?i||k():n?k():a.classList.contains("jp-carousel-image-download")?h("download_original_click"):a.classList.contains("jp-carousel-comment-login")?(t=g.currentSlide,o=t?t.attrs.attachmentId:"0",window.location.href=jetpackCarouselStrings.login_url+"%23jp-carousel-"+o):r.closest(a,"#jp-carousel-comment-form-container")?function(e){var t=e.target,o=r.getJSONAttribute(g.container,"data-carousel-extra")||{},a=g.currentSlide.attrs.attachmentId,n=document.querySelector("#jp-carousel-comment-form-submit-and-info-wrapper"),i=document.querySelector("#jp-carousel-comment-form-spinner"),s=document.querySelector("#jp-carousel-comment-form-button-submit"),c=document.querySelector("#jp-carousel-comment-form");if(g.commentField&&g.commentField.getAttribute("id")===t.getAttribute("id"))y(),r.show(n);else if(r.matches(t,'input[type="submit"]')){e.preventDefault(),e.stopPropagation(),r.show(i),c.classList.add("jp-carousel-is-disabled");var u={action:"post_attachment_comment",nonce:jetpackCarouselStrings.nonce,blog_id:o.blog_id,id:a,comment:g.commentField.value};if(!u.comment.length)return void b(jetpackCarouselStrings.no_comment_text,!1);if(1!==Number(jetpackCarouselStrings.is_logged_in)&&(u.email=g.emailField.value,u.author=g.authorField.value,u.url=g.urlField.value,1===Number(jetpackCarouselStrings.require_name_email))){if(!u.email.length||!u.email.match("@"))return void b(jetpackCarouselStrings.no_comment_email,!1);if(!u.author.length)return void b(jetpackCarouselStrings.no_comment_author,!1)}var d=new XMLHttpRequest;d.open("POST",jetpackCarouselStrings.ajaxurl,!0),d.setRequestHeader("X-Requested-With","XMLHttpRequest"),d.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),d.onreadystatechange=function(){if(this.readyState===XMLHttpRequest.DONE&&this.status>=200&&this.status<300){var e;try{e=JSON.parse(this.response)}catch{return void b(jetpackCarouselStrings.comment_post_error,!1)}if("approved"===e.comment_status){b(jetpackCarouselStrings.comment_approved,!0);var t=function(e){for(var t=0;t<g.slides.length;t++)if(g.slides[t].attrs.attachmentId===e)return g.slides[t];return null}(a);t&&(t.attrs.commentsCount=(parseInt(t.attrs.commentsCount,10)||0)+1)}else"unapproved"===e.comment_status?b(jetpackCarouselStrings.comment_unapproved,!0):b(jetpackCarouselStrings.comment_post_error,!1);W(),delete l[a],_(a,void 0,!0),s.value=jetpackCarouselStrings.post_comment,r.hide(i),c.classList.remove("jp-carousel-is-disabled")}else b(jetpackCarouselStrings.comment_post_error,!1)};var m=[];for(var p in u)if(p){var h=encodeURIComponent(p)+"="+encodeURIComponent(u[p]);m.push(h.replace(/%20/g,"+"))}var f=m.join("&");d.send(f)}}(e):(r.closest(a,".jp-carousel-photo-icons-container")||a.classList.contains("jp-carousel-photo-title"))&&function(e){e.preventDefault();var t=e.target,o=g.info.querySelector(".jp-carousel-info-extra"),a=g.info.querySelector(".jp-carousel-image-meta"),n=g.info.querySelector(".jp-carousel-comments-wrapper"),i=g.info.querySelector(".jp-carousel-icon-info"),s=g.info.querySelector(".jp-carousel-icon-comments");function c(){s&&s.classList.remove("jp-carousel-selected"),i.classList.toggle("jp-carousel-selected"),n&&n.classList.remove("jp-carousel-show"),a&&(a.classList.toggle("jp-carousel-show"),a.classList.contains("jp-carousel-show")?o.classList.add("jp-carousel-show"):o.classList.remove("jp-carousel-show"))}function u(){if(i&&i.classList.remove("jp-carousel-selected"),s.classList.toggle("jp-carousel-selected"),a&&a.classList.remove("jp-carousel-show"),n)if(n.classList.toggle("jp-carousel-show"),n.classList.contains("jp-carousel-show")){o.classList.add("jp-carousel-show");var e=g.currentSlide;if(e){var t=l[e.attrs.attachmentId];t?t.hasMore&&T(e.attrs.attachmentId,t.nextOffset):_(e.attrs.attachmentId)}}else o.classList.remove("jp-carousel-show")}(r.closest(t,".jp-carousel-icon-info")||t.classList.contains("jp-carousel-photo-title"))&&(a&&a.classList.contains("jp-carousel-show")?r.scrollToElement(g.overlay,g.overlay,c):(c(),r.scrollToElement(g.info,g.overlay))),r.closest(t,".jp-carousel-icon-comments")&&(n&&n.classList.contains("jp-carousel-show")?r.scrollToElement(g.overlay,g.overlay,u):(u(),r.scrollToElement(g.info,g.overlay)))}(e)}),window.addEventListener("keydown",v),g.overlay.addEventListener("jp_carousel.afterOpen",function(){w(),g.slides.length<=1||(g.slides.length<=5?r.show(g.info.querySelector(".jp-swiper-pagination")):r.show(g.info.querySelector(".jp-carousel-pagination")))}),g.overlay.addEventListener("jp_carousel.beforeClose",function(){y(),document.documentElement.style.removeProperty("height"),e&&e.enable(),r.hide(g.info.querySelector(".jp-swiper-pagination")),r.hide(g.info.querySelector(".jp-carousel-pagination"))}),g.overlay.addEventListener("jp_carousel.afterClose",function(){window.history.pushState?history.pushState("",document.title,window.location.pathname+window.location.search):window.location.href="",c="",g.isOpen=!1}),g.overlay.addEventListener("touchstart",function(e){e.touches.length>1&&e.preventDefault()}))}function b(e,t){var o=g.overlay.querySelector("#jp-carousel-comment-post-results"),a="jp-carousel-comment-post-"+(t?"success":"error");o.innerHTML='<span class="'+a+'">'+e+"</span>",r.hide(g.overlay.querySelector("#jp-carousel-comment-form-spinner")),g.overlay.querySelector("#jp-carousel-comment-form").classList.remove("jp-carousel-is-disabled"),r.show(o)}function L(){var e=document.querySelectorAll("a img[data-attachment-id]");Array.prototype.forEach.call(e,function(e){var t=e.parentElement,o=t.parentElement;if(!o.classList.contains("gallery-icon")&&!r.closest(o,m)&&t.hasAttribute("href")){var a=!1;t.getAttribute("href").split("?")[0]===e.getAttribute("data-orig-file").split("?")[0]&&1===Number(jetpackCarouselStrings.single_image_gallery_media_file)&&(a=!0),t.getAttribute("href")===e.getAttribute("data-permalink")&&(a=!0),a&&(S(e),t.classList.add("single-image-gallery"),t.setAttribute("data-carousel-extra",JSON.stringify({blog_id:Number(jetpackCarouselStrings.blog_id)})))}})}function x(t,r){g.isOpen?(C(r),e.slideTo(r+1)):z(t,{startIndex:r})}function C(e){(!e||e<0||e>g.slides.length)&&(e=0),g.currentSlide=g.slides[e];var a,n,i=g.currentSlide,s=i.attrs.attachmentId;M(g.slides[e]),function(e){var t=[],r=g.slides.length;if(r>1){var o=e>0?e-1:r-1;t.push(o);var a=e<r-1?e+1:0;t.push(a)}t.forEach(function(e){var t=g.slides[e];t&&(M(t),1!==Number(jetpackCarouselStrings.display_background_image)||t.backgroundImage||F(t))})}(e),1!==Number(jetpackCarouselStrings.display_background_image)||g.slides[e].backgroundImage||F(g.slides[e]),r.hide(g.caption),function(e){var t,o,a,n,i,l,s;if(n=g.overlay.querySelector(".jp-carousel-photo-caption"),i=g.overlay.querySelector(".jp-carousel-caption"),l=g.overlay.querySelector(".jp-carousel-photo-title"),s=g.overlay.querySelector(".jp-carousel-photo-description"),r.hide(n),r.hide(i),r.hide(l),r.hide(s),t=A(e.caption)||"",o=A(e.title)||"",a=A(e.desc)||"",(t||o||a)&&(t&&(n.innerHTML=t,i.innerHTML=t,r.show(n),r.show(i)),r.stripHTML(t)===r.stripHTML(o)&&(o=""),r.stripHTML(t)===r.stripHTML(a)&&(a=""),r.stripHTML(o)===r.stripHTML(a)&&(a=""),a&&(s.innerHTML=a,r.show(s),o||t||(n.textContent=r.stripHTML(a),r.show(n))),o)){var c=r.stripHTML(o);l.textContent=c,t||(n.textContent=c,i.textContent=c,r.show(n)),r.show(l)}}
3798({caption:i.attrs.caption,title:i.attrs.title,desc:i.attrs.desc}),function(e){if(!e||1!==Number(jetpackCarouselStrings.display_exif))return!1;var t=g.info.querySelector(".jp-carousel-image-meta");if(!t)return!1;var r="";for(var o in e){var a=e[o],n=jetpackCarouselStrings.meta_data||[];if(0!==parseFloat(a)&&a.length&&-1!==n.indexOf(o)){switch(o){case"focal_length":a+="mm";break;case"shutter_speed":a=E(a);break;case"aperture":a="f/"+a}r+="<li><h5>"+jetpackCarouselStrings[o]+"</h5>"+a+"</li>"}}var i=t.querySelector("ul.jp-carousel-image-exif");if(""!==r){if(!i){(i=document.createElement("ul")).className="jp-carousel-image-exif";var l=t.querySelector(".jp-carousel-title-and-caption");l&&l.nextSibling?t.insertBefore(i,l.nextSibling):t.insertBefore(i,t.firstChild)}i.innerHTML=r,i.style.removeProperty("display")}else i&&i.parentNode.removeChild(i)}(g.slides[e].attrs.imageMeta),function(e){if(!e)return!1;var r,o=[e.attrs.origWidth,e.attrs.origHeight],a=document.createElement("a");a.href=e.attrs.src.replace(/\?.+$/,""),r=null!==a.hostname.match(/^i[\d]{1}\.wp\.com$/i)?a.href:e.attrs.origFile.replace(/\?.+$/,"");var n=g.info.querySelector(".jp-carousel-download-text"),i=g.info.querySelector(".jp-carousel-image-download");n.innerHTML=t.applyReplacements(jetpackCarouselStrings.download_original,o),i.setAttribute("href",r),i.style.removeProperty("display")}(i),1===Number(jetpackCarouselStrings.display_comments)&&(a=g.slides[e].attrs.commentsOpened,n=g.info.querySelector("#jp-carousel-comment-form-container"),1===parseInt(a,10)?r.fadeIn(n):r.fadeOut(n),function(e){var t=e.attrs.attachmentId,a=g.info.querySelector(".jp-carousel-comments"),n=l[t];if(clearInterval(o),r.hide(g.info.querySelector("#jp-carousel-comments-loading")),n)return a.innerHTML=n.html,H(n.count),r.show(a),void(n.hasMore&&I()&&T(t,n.nextOffset));a.innerHTML="",r.hide(a),H(parseInt(e.attrs.commentsCount,10)||0),I()&&_(t)}(i),r.hide(g.info.querySelector("#jp-carousel-comment-post-results")));var u=g.info.querySelector(".jp-carousel-pagination");if(u&&g.slides.length>5){var d=e+1;u.innerHTML="<span>"+d+" / "+g.slides.length+"</span>"}jetpackCarouselStrings.stats&&g.isOpen&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?"+jetpackCarouselStrings.stats+"&post="+encodeURIComponent(s)+"&rand="+Math.random()),g.isOpen&&f(s),c="#jp-carousel-"+s,window.location.hash=c}function k(){document.body.style.overflow=a,document.documentElement.style.overflow=n,W(),y(),r.emitEvent(g.overlay,"jp_carousel.beforeClose"),window.scrollTo(window.scrollX||window.pageXOffset||0,i||0),g.isOpen=!1,e.destroy(),g.slides=[],l={},s={},g.currentSlide=void 0,g.gallery.innerHTML="",r.fadeOut(g.overlay,function(){r.emitEvent(g.overlay,"jp_carousel.afterClose")})}function q(e){if("object"!=typeof e&&(e={}),void 0===e.origFile)return"";if(void 0===e.origWidth||void 0===e.maxWidth)return e.origFile;if(!e.largeFile)return e.origFile;var t=document.createElement("a");t.href=e.largeFile;var r=/^i[0-2]\.wp\.com$/i.test(t.hostname),o=function(e,t,r){var o,a=r?e.replace(/.*=([\d]+%2C[\d]+).*$/,"$1"):e.replace(/.*-([\d]+x[\d]+)\..+$/,"$1");return"9999"===(o=a!==e?r?a.split("%2C"):a.split("x"):[t,0])[0]&&(o[0]="0"),"9999"===o[1]&&(o[1]="0"),o}(e.largeFile,e.origWidth,r),a=parseInt(o[0],10),n=parseInt(o[1],10);e.origMaxWidth=e.maxWidth,e.origMaxHeight=e.maxHeight,void 0!==window.devicePixelRatio&&window.devicePixelRatio>1&&(e.maxWidth=e.maxWidth*window.devicePixelRatio,e.maxHeight=e.maxHeight*window.devicePixelRatio);var i=e.zoomHeadroom||1;if(i>1&&(e.maxWidth=e.maxWidth*i,e.maxHeight=e.maxHeight*i),a>=e.maxWidth||n>=e.maxHeight)return e.largeFile;if(r){if(-1===e.largeFile.lastIndexOf("?"))return e.largeFile;var l=function(e){var t;try{t=new URL(e)}catch(t){return e}var r=["quality","ssl","filter","brightness","contrast","colorize","smooth"],o=Array.from(t.searchParams.entries());return t.search="",o.forEach(([e,o])=>{r.includes(e)&&t.searchParams.append(e,o)}),t}(e.largeFile);return(e.origWidth>e.maxWidth||e.origHeight>e.maxHeight)&&(e.origMaxWidth=e.maxWidth,e.origMaxHeight=e.maxHeight,l.searchParams.set("fit",e.origMaxWidth+","+e.origMaxHeight)),l.toString()}return e.origFile}function E(e){return e>=1?Math.round(10*e)/10+"s":"1/"+Math.round(1/e)+"s"}
3798function A(e){return!e.match(" ")&&e.match("_")?"":e}function I(){var e=g.info.querySelector(".jp-carousel-comments-wrapper");return!!e&&e.classList.contains("jp-carousel-show")}function H(e){var t=g.info.querySelector(".jp-carousel-icon-comments .jp-carousel-has-comments-indicator");t&&(e>0?(t.innerText=e,t.classList.add("jp-carousel-show")):t.classList.remove("jp-carousel-show"))}function T(e,t){clearInterval(o),o=setInterval(function(){g.container.scrollTop+150>window.innerHeight&&(clearInterval(o),_(e,t))},300)}function _(e,t,a){var n=void 0===t;if(clearInterval(o),e&&g.currentSlide&&g.currentSlide.attrs.attachmentId===e&&(!s[e]||a)){(!t||t<1)&&(t=0);var i=g.info.querySelector(".jp-carousel-comments"),c=g.info.querySelector("#jp-carousel-comments-loading");r.show(c),n&&(r.hide(i),i.innerHTML="");var u=new XMLHttpRequest;s[e]=u;var d=function(){return s[e]===u},m=jetpackCarouselStrings.ajaxurl+"?action=get_attachment_comments&nonce="+jetpackCarouselStrings.nonce+"&id="+e+"&offset="+t;u.open("GET",m),u.setRequestHeader("X-Requested-With","XMLHttpRequest");var p=function(){r.fadeIn(i),r.fadeOut(c)};u.onload=function(){if(d()&&(delete s[e],g.currentSlide&&g.currentSlide.attrs.attachmentId===e)){var o,a=u.status>=200&&u.status<300;try{o=JSON.parse(u.responseText)}catch{}if(a&&o&&Array.isArray(o)){n&&(i.innerHTML="");for(var m=0;m<o.length;m++){var h=o[m];if(!i.querySelector("#jp-carousel-comment-"+h.id)){var f=document.createElement("div");f.classList.add("jp-carousel-comment"),f.setAttribute("id","jp-carousel-comment-"+h.id),f.innerHTML='<div class="comment-gravatar">'+h.gravatar_markup+'</div><div class="comment-content"><div class="comment-author">'+h.author_markup+'</div><div class="comment-date">'+h.date_gmt+"</div>"+h.content+"</div>",i.appendChild(f)}}var v=o.length>=10,y=t+10;v&&T(e,y);var w=i.querySelectorAll(".jp-carousel-comment").length,S=Math.max(parseInt(g.currentSlide.attrs.commentsCount,10)||0,w);o.length>0&&(r.show(i),H(S)),l[e]={html:i.innerHTML,count:S,hasMore:v,nextOffset:y},r.hide(c)}else p()}},u.onerror=function(){d()&&(delete s[e],g.currentSlide&&g.currentSlide.attrs.attachmentId===e&&p())},u.send()}}function M(e){var t=e.attrs,r=e.el.querySelector("img");if(!r.hasAttribute("data-loaded"))if(r.setAttribute("itemprop","image"),r.setAttribute("data-loaded",1),t.previewImage&&t.previewImage!==t.src){r.src=t.previewImage,r.style.filter="blur(8px)";var o=new window.Image;o.addEventListener("load",function(){r.hasAttribute("data-zoom-loaded")||(r.src=t.src),r.style.filter=""},{once:!0}),o.addEventListener("error",function(){r.style.filter=""},{once:!0}),o.src=t.src}else r.src=t.src}function F(e){var t=e.attrs.originalElement;if(t)if(t.complete&&0!==t.naturalHeight)O(e,t);else{var r=function(){t.removeEventListener("error",o),O(e,t)},o=function(){t.removeEventListener("load",r)};t.addEventListener("load",r,{once:!0}),t.addEventListener("error",o,{once:!0})}}function O(e,r){var o=t.getBackgroundImage(r);o&&(e.backgroundImage=o,e.el.style.backgroundImage="url("+o+")",e.el.style.backgroundSize="cover",e.el.style.backgroundPosition="center")}function W(){g.commentField&&(g.commentField.value="")}function N(e,o){g.slides=[];var a={width:window.innerWidth,height:window.innerHeight-64};0!==o&&null!==e[o].getAttribute("data-gallery-src")&&((new Image).src=e[o].getAttribute("data-gallery-src")),Array.prototype.forEach.call(e,function(e,o){var n=r.closest(e,"a"),i=e.getAttribute("data-orig-file")||e.getAttribute("src-orig"),l=e.getAttribute("data-attachment-id")||e.getAttribute("data-id")||"0",s=document.querySelector('img[data-attachment-id="'+l+'"] + figcaption');s=s?s.innerHTML:e.getAttribute("data-image-caption");var c={originalElement:e,attachmentId:l,commentsOpened:e.getAttribute("data-comments-opened")||"0",commentsCount:e.getAttribute("data-comments-count")||"0",imageMeta:r.getJSONAttribute(e,"data-image-meta")||{},title:e.getAttribute("data-image-title")||"",desc:e.getAttribute("data-image-description")||"",largeFile:e.getAttribute("data-large-file")||"",origFile:i||"",thumbSize:{width:e.naturalWidth,height:e.naturalHeight},caption:s||"",permalink:n&&n.getAttribute("href"),src:i||e.getAttribute("src")||""},u=r.closest(e,".tiled-gallery-item"),d=u&&u.querySelector(".tiled-gallery-caption"),m=d&&d.innerHTML;m&&(c.caption=m);var p=function(e){var t=e.getAttribute("data-orig-size")||"";if(t){var r=t.split(",");return{width:parseInt(r[0],10),height:parseInt(r[1],10)}}return{width:e.getAttribute("data-original-width")||e.getAttribute("width")||void 0,height:e.getAttribute("data-original-height")||e.getAttribute("height")||void 0}}(e);if(c.origWidth=p.width||c.thumbSize.width,c.origHeight=p.height||c.thumbSize.height,"undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.generateImgSrc)c.src=wpcom.carousel.generateImgSrc(e,a);else{var h=function(e){return{origFile:c.src,origWidth:c.origWidth,origHeight:c.origHeight,maxWidth:a.width,maxHeight:a.height,largeFile:c.largeFile,zoomHeadroom:e}};c.zoomSrc=q(h(2)),c.src=q(h(1))}if(e.setAttribute("data-gallery-src",c.src),"0"!==c.attachmentId){c.title=t.texturize(c.title),c.desc=t.texturize(c.desc),c.caption=t.texturize(c.caption);var f=new Image,v=document.createElement("div");v.classList.add("swiper-slide"),v.setAttribute("itemprop","associatedMedia"),v.setAttribute("itemscope",""),v.setAttribute("itemtype","https://schema.org/ImageObject");var y=document.createElement("div");y.classList.add("swiper-zoom-container"),g.gallery.appendChild(v),v.appendChild(y),y.appendChild(f),v.setAttribute("data-attachment-id",c.attachmentId),v.setAttribute("data-permalink",c.permalink),v.setAttribute("data-orig-file",c.origFile),c.previewImage=e.currentSrc||e.getAttribute("src")||"";var w={el:v,attrs:c,index:o};g.slides.push(w)}})}function z(e,t){if(!window.JetpackSwiper){var o=document.querySelector("#jp-carousel-loading-overlay");r.show(o);var a=document.createElement("script");return a.id="jetpack-carousel-swiper-js",a.src=window.jetpackSwiperLibraryPath.url,a.async=!0,a.onload=function(){r.hide(o),R(e,t)},a.onerror=function(){r.hide(o)},void document.head.appendChild(a)}R(e,t)}function R(t,o){var c,u={imgSelector:".gallery-item [data-attachment-id], .tiled-gallery-item [data-attachment-id], img[data-attachment-id], img[data-id]",startIndex:0},d=r.getJSONAttribute(t,"data-carousel-extra");if(!d)return;const m=t.querySelectorAll(u.imgSelector);if(m.length&&(j(),!g.isOpen)){for(var p in g.isOpen=!0,a=getComputedStyle(document.body).overflow,document.body.style.overflow="hidden",n=getComputedStyle(document.documentElement).overflow,document.documentElement.style.overflow="hidden",i=window.scrollY||window.pageYOffset||0,g.container.setAttribute("data-carousel-extra",JSON.stringify(d)),h(["open","view_image"]),o||{})u[p]=o[p];-1===u.startIndex&&(u.startIndex=0),r.emitEvent(g.overlay,"jp_carousel.beforeOpen"),g.gallery.innerHTML="",l={},s={},g.overlay.style.opacity=1,g.overlay.style.display="block",N(m,u.startIndex),(e=new window.JetpackSwiper(".jp-carousel-swiper-container",{centeredSlides:!0,speed:r.prefersReducedMotion()?0:250,zoom:!0,loop:g.slides.length>1,enabled:g.slides.length>1,pagination:{el:".jp-swiper-pagination",clickable:!0},navigation:{nextEl:".jp-swiper-button-next",prevEl:".jp-swiper-button-prev"},initialSlide:u.startIndex,on:{init:function(){C(u.startIndex)}},preventClicks:!1,preventClicksPropagation:!1,preventInteractionOnTransition:!r.isTouch(),threshold:5})).on("slideChange",function(e){g.isOpen&&(C(e.realIndex),g.overlay.classList.remove("jp-carousel-hide-control
3798s"))}),e.on("zoomChange",function(e,t){t>1&&(function(e){if(e&&e.attrs.zoomSrc&&e.attrs.zoomSrc!==e.attrs.src){var t=e.el.querySelector("img");t&&!t.hasAttribute("data-zoom-loaded")&&(t.setAttribute("data-zoom-loaded",1),t.src=e.attrs.zoomSrc)}}(g.currentSlide),g.overlay.classList.add("jp-carousel-hide-controls")),1===t&&g.overlay.classList.remove("jp-carousel-hide-controls")}),e.on("doubleTap",function(e){if(clearTimeout(c),1===e.zoom.scale)var t=setTimeout(function(){g.overlay.classList.remove("jp-carousel-hide-controls"),clearTimeout(t)},150)}),e.on("tap",function(){e.zoom.scale>1&&(c=setTimeout(function(){g.overlay.classList.toggle("jp-carousel-hide-controls")},150))}),r.fadeIn(g.overlay,function(){r.emitEvent(g.overlay,"jp_carousel.afterOpen")})}}function P(e){if("click"!==e.type){if("keydown"===e.type){const t=document.activeElement.parentElement,r=t&&t.classList.contains("tiled-gallery__item");" "!==e.key&&"Enter"!==e.key||!r||$(e)}}else $(e)}function D(e){return(e||"").split("?")[0].replace(/\/$/,"")}function J(e){"A"===e.tagName&&(e=e.querySelector("img")||e);var t=e.parentElement,o=t?t.parentElement:null,a=null;if(o&&o.classList.contains("wp-block-image")?a=t.getAttribute("href"):t&&t.classList.contains("wp-block-image")&&t.querySelector(":scope > a")&&(a=t.querySelector(":scope > a").getAttribute("href")),a){var n=D(a),i=D(e.getAttribute("data-orig-file")),l=D(e.getAttribute("data-permalink"));if(n!==i&&n!==l)return!1}return!(t&&t.classList.contains("gallery-caption")||r.matches(t,"figcaption"))}function $(e){if(window.CSS&&window.CSS.supports&&window.CSS.supports("display","grid")){var t,o=e.target,a=r.closest(o,d);if(a){if(!(t=a)||!t.getAttribute("data-carousel-extra"))return;if(!J(o))return;document.documentElement.style.height="auto",e.preventDefault(),e.stopPropagation();var n=r.closest(o,p),i=Array.prototype.indexOf.call(a.querySelectorAll(p),n);z(a,{startIndex:i})}}}document.body.addEventListener("click",P),document.body.addEventListener("keydown",P),document.querySelectorAll(m+"img").forEach(function(e){J(e)&&S(e)}),1===Number(jetpackCarouselStrings.single_image_gallery)&&(L(),document.body.addEventListener("is.post-load",function(){L()})),window.addEventListener("hashchange",function(){var e=/jp-carousel-(\d+)/;if(window.location.hash&&e.test(window.location.hash)){if(window.location.hash!==c||!g.isOpen)if(window.location.hash&&g.gallery&&!g.isOpen&&history.back)history.back();else{c=window.location.hash;for(var t=window.location.hash.match(e),r=parseInt(t[1],10),o=document.querySelectorAll(d),a=0;a<o.length;a++){for(var n,i=o[a],l=i.querySelectorAll("img"),s=0;s<l.length;s++)if(parseInt(l[s].getAttribute("data-attachment-id"),10)===r||parseInt(l[s].getAttribute("data-id"),10)===r){n=s;break}if(void 0!==n){x(i,n);break}}}}else g.isOpen&&k()}),window.location.hash&&r.emitEvent(window,"hashchange")}"loading"!==document.readyState?o():document.addEventListener("DOMContentLoaded",o)}();;
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.