function on_keydown_remove_from_cart(e){" "===e.key&&(e.preventDefault(),e.currentTarget.click())}function focus_populate_live_region(){var e=["woocommerce-message","woocommerce-error","wc-block-components-notice-banner"].map(function(e){return"."+e+'[role="alert"]'}).join(", "),o=document.querySelectorAll(e);if(0!==o.length){var t=o[0];t.setAttribute("tabindex","-1");var n=setTimeout(function(){t.focus(),clearTimeout(n)},500)}}function refresh_sorted_by_live_region(){var e=document.querySelector(".woocommerce-result-count");if(e){var o=e.innerHTML;e.setAttribute("aria-hidden","true");var t=setTimeout(function(){e.setAttribute("aria-hidden","false"),e.innerHTML="",e.innerHTML=o,clearTimeout(t)},2e3)}}function on_document_ready(){focus_populate_live_region(),refresh_sorted_by_live_region()}jQuery(function(e){e(".woocommerce-ordering").on("change","select.orderby",function(){e(this).closest("form").trigger("submit")}),e("input.qty:not(.product-quantity input.qty)").each(function(){var o=parseFloat(e(this).attr("min"));o>=0&&parseFloat(e(this).val())<o&&e(this).val(o)});var o="store_notice"+(e(".woocommerce-store-notice").data("noticeId")||"");if("hidden"===Cookies.get(o))e(".woocommerce-store-notice").hide();else{function t(o){["Enter"," "].includes(o.key)&&(o.preventDefault(),e(".woocommerce-store-notice__dismiss-link").click())}e(".woocommerce-store-notice").show(),e(".woocommerce-store-notice__dismiss-link").on("click",function n(r){Cookies.set(o,"hidden",{path:"/"}),e(".woocommerce-store-notice").hide(),r.preventDefault(),e(".woocommerce-store-notice__dismiss-link").off("click",n).off("keydown",t)}).on("keydown",t)}e(".woocommerce-input-wrapper span.description").length&&e(document.body).on("click",function(){e(".woocommerce-input-wrapper span.description:visible").prop("aria-hidden",!0).slideUp(250)}),e(".woocommerce-input-wrapper").on("click",function(e){e.stopPropagation()}),e(".woocommerce-input-wrapper :input").on("keydown",function(o){var t=e(this).parent().find("span.description");if(27===o.which&&t.length&&t.is(":visible"))return t.prop("aria-hidden",!0).slideUp(250),o.preventDefault(),!1}).on("click focus",function(){var o=e(this).parent(),t=o.find("span.description");o.addClass("currentTarget"),e(".woocommerce-input-wrapper:not(.currentTarget) span.description:visible").prop("aria-hidden",!0).slideUp(250),t.length&&t.is(":hidden")&&t.prop("aria-hidden",!1).slideDown(250),o.removeClass("currentTarget")}),e.scroll_to_notices=function(o){o.length&&e("html, body").animate({scrollTop:o.offset().top-100},1e3)},e('.woocommerce form .woocommerce-Input[type="password"]').wrap('<span class="password-input"></span>'),e(".woocommerce form input").filter(":password").parent("span").addClass("password-input"),e(".password-input").each(function(){const o=e(this).find("input").attr("id");e(this).append('<button type="button" class="show-password-input" aria-label="'+woocommerce_params.i18n_password_show+'" aria-describedBy="'+o+'"></button>')}),e(".show-password-input").on("click",function(o){o.preventDefault(),e(this).hasClass("display-password")?(e(this).removeClass("display-password"),e(this).attr("aria-label",woocommerce_params.i18n_password_show)):(e(this).addClass("display-password"),e(this).attr("aria-label",woocommerce_params.i18n_password_hide)),e(this).hasClass("display-password")?e(this).siblings(['input[type="password"]']).prop("type","text"):e(this).siblings('input[type="text"]').prop("type","password"),e(this).siblings("input").focus()}),e("a.coming-soon-footer-banner-dismiss").on("click",function(o){var t=e(o.target);e.ajax({type:"post",url:t.data("rest-url"),data:{woocommerce_meta:{coming_soon_banner_dismissed:"yes"}},beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",t.data("rest-nonce"))},complete:function(){e("#coming-soon-footer-banner").hide()}})}),"undefined"==typeof wc_add_to_cart_params&&e(document.body).on("keydown",".remove_from_cart_button",on_keydown_remove_from_cart),e(document.body).on("item_removed_from_classic_cart updated_wc_div",focus_populate_live_region)}),document.addEventListener("DOMContentLoaded",on_document_ready);
var twentytwenty=twentytwenty||{};
twentytwenty.scrolled=0;
if(! Element.prototype.closest){
Element.prototype.closest=function(s){
var el=this;
do {
if(el.matches(s) ){
return el;
}
el=el.parentElement||el.parentNode;
} while(el!==null&&el.nodeType===1);
return null;
};}
if(window.NodeList&&! NodeList.prototype.forEach){
NodeList.prototype.forEach=function(callback, thisArg){
var i;
var len=this.length;
thisArg=thisArg||window;
for(i=0; i < len; i++){
callback.call(thisArg, this[ i ], i, this);
}};}
twentytwenty.createEvent=function(eventName){
var event;
if(typeof window.Event==='function'){
event=new Event(eventName);
}else{
event=document.createEvent('Event');
event.initEvent(eventName, true, false);
}
return event;
};
if(! Element.prototype.matches){
Element.prototype.matches =
Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s){
var matches=(this.document||this.ownerDocument).querySelectorAll(s),
i=matches.length;
while(--i >=0&&matches.item(i)!==this){}
return i > -1;
};}
twentytwenty.touchEnabled={
init: function(){
var matchMedia=function(){
var prefixes=[ '-webkit-', '-moz-', '-o-', '-ms-' ];
var query=[ '(', prefixes.join('touch-enabled),('), 'heartz', ')' ].join('');
return window.matchMedia&&window.matchMedia(query).matches;
};
if(( 'ontouchstart' in window)||(window.DocumentTouch&&document instanceof window.DocumentTouch)||matchMedia()){
document.body.classList.add('touch-enabled');
}}
};
twentytwenty.coverModals={
init: function(){
if(document.querySelector('.cover-modal') ){
this.onToggle();
this.outsideUntoggle();
this.closeOnEscape();
this.hideAndShowModals();
}},
onToggle: function(){
document.querySelectorAll('.cover-modal').forEach(function(element){
element.addEventListener('toggled', function(event){
var modal=event.target,
body=document.body;
if(modal.classList.contains('active') ){
body.classList.add('showing-modal');
}else{
body.classList.remove('showing-modal');
body.classList.add('hiding-modal');
setTimeout(function(){
body.classList.remove('hiding-modal');
}, 500);
}});
});
},
outsideUntoggle: function(){
document.addEventListener('click', function(event){
var target=event.target;
var modal=document.querySelector('.cover-modal.active');
if(event.target.tagName.toLowerCase()==='a'&&event.target.hash.includes('#')&&modal!==null){
this.untoggleModal(modal);
setTimeout(function(){
var anchor=document.getElementById(event.target.hash.slice(1) );
anchor.scrollIntoView();
}, 550);
}
if(target===modal){
this.untoggleModal(target);
}}.bind(this) );
},
closeOnEscape: function(){
document.addEventListener('keydown', function(event){
if(event.keyCode===27){
event.preventDefault();
document.querySelectorAll('.cover-modal.active').forEach(function(element){
this.untoggleModal(element);
}.bind(this) );
}}.bind(this) );
},
hideAndShowModals: function(){
var _doc=document,
_win=window,
modals=_doc.querySelectorAll('.cover-modal'),
htmlStyle=_doc.documentElement.style,
adminBar=_doc.querySelector('#wpadminbar');
function getAdminBarHeight(negativeValue){
var height,
currentScroll=_win.pageYOffset;
if(adminBar){
height=currentScroll + adminBar.getBoundingClientRect().height;
return negativeValue ? -height:height;
}
return currentScroll===0 ? 0:-currentScroll;
}
function htmlStyles(){
var overflow=_win.innerHeight > _doc.documentElement.getBoundingClientRect().height;
return {
'overflow-y': overflow ? 'hidden':'scroll',
position: 'fixed',
width: '100%',
top: getAdminBarHeight(true) + 'px',
left: 0
};}
modals.forEach(function(modal){
modal.addEventListener('toggle-target-before-inactive', function(event){
var styles=htmlStyles(),
offsetY=_win.pageYOffset,
paddingTop=(Math.abs(getAdminBarHeight()) - offsetY) + 'px',
mQuery=_win.matchMedia('(max-width: 600px)');
if(event.target!==modal){
return;
}
Object.keys(styles).forEach(function(styleKey){
htmlStyle.setProperty(styleKey, styles[ styleKey ]);
});
_win.twentytwenty.scrolled=parseInt(styles.top, 10);
if(adminBar){
_doc.body.style.setProperty('padding-top', paddingTop);
if(mQuery.matches){
if(offsetY >=getAdminBarHeight()){
modal.style.setProperty('top', 0);
}else{
modal.style.setProperty('top',(getAdminBarHeight() - offsetY) + 'px');
}}
}
modal.classList.add('show-modal');
});
modal.addEventListener('toggle-target-after-inactive', function(event){
if(event.target!==modal){
return;
}
setTimeout(function(){
var clickedEl=twentytwenty.toggles.clickedEl;
modal.classList.remove('show-modal');
Object.keys(htmlStyles()).forEach(function(styleKey){
htmlStyle.removeProperty(styleKey);
});
if(adminBar){
_doc.body.style.removeProperty('padding-top');
modal.style.removeProperty('top');
}
if(clickedEl!==false){
clickedEl.focus();
clickedEl=false;
}
_win.scrollTo({
top: Math.abs(_win.twentytwenty.scrolled + getAdminBarHeight()),
behavior: 'instant'
});
_win.twentytwenty.scrolled=0;
}, 500);
});
});
},
untoggleModal: function(modal){
var modalTargetClass,
modalToggle=false;
if(modal.dataset.modalTargetString){
modalTargetClass=modal.dataset.modalTargetString;
modalToggle=document.querySelector('*[data-toggle-target="' + modalTargetClass + '"]');
}
if(modalToggle){
modalToggle.click();
}else{
modal.classList.remove('active');
}}
};
twentytwenty.intrinsicRatioVideos={
init: function(){
this.makeFit();
window.addEventListener('resize', function(){
this.makeFit();
}.bind(this) );
},
makeFit: function(){
document.querySelectorAll('iframe, object, video').forEach(function(video){
var ratio, iTargetWidth,
container=video.parentNode;
if(video.classList.contains('intrinsic-ignore')||video.parentNode.classList.contains('intrinsic-ignore') ){
return true;
}
if(! video.dataset.origwidth){
video.setAttribute('data-origwidth', video.width);
video.setAttribute('data-origheight', video.height);
}
iTargetWidth=container.offsetWidth;
ratio=iTargetWidth / video.dataset.origwidth;
video.style.width=iTargetWidth + 'px';
video.style.height=(video.dataset.origheight * ratio) + 'px';
});
}};
twentytwenty.modalMenu={
init: function(){
this.expandLevel();
this.keepFocusInModal();
},
expandLevel: function(){
var modalMenus=document.querySelectorAll('.modal-menu');
modalMenus.forEach(function(modalMenu){
var activeMenuItem=modalMenu.querySelector('.current-menu-item');
if(activeMenuItem){
twentytwentyFindParents(activeMenuItem, 'li').forEach(function(element){
var subMenuToggle=element.querySelector('.sub-menu-toggle');
if(subMenuToggle){
twentytwenty.toggles.performToggle(subMenuToggle, true);
}});
}});
},
keepFocusInModal: function(){
var _doc=document;
_doc.addEventListener('keydown', function(event){
var toggleTarget, modal, selectors, elements, menuType, bottomMenu, activeEl, lastEl, firstEl, tabKey, shiftKey,
clickedEl=twentytwenty.toggles.clickedEl;
if(clickedEl&&_doc.body.classList.contains('showing-modal') ){
toggleTarget=clickedEl.dataset.toggleTarget;
selectors='input, a, button';
modal=_doc.querySelector(toggleTarget);
elements=modal.querySelectorAll(selectors);
elements=Array.prototype.slice.call(elements);
if('.menu-modal'===toggleTarget){
menuType=window.matchMedia('(min-width: 1000px)').matches;
menuType=menuType ? '.expanded-menu':'.mobile-menu';
elements=elements.filter(function(element){
return null!==element.closest(menuType)&&null!==element.offsetParent;
});
elements.unshift(_doc.querySelector('.close-nav-toggle') );
bottomMenu=_doc.querySelector('.menu-bottom > nav');
if(bottomMenu){
bottomMenu.querySelectorAll(selectors).forEach(function(element){
elements.push(element);
});
}}
lastEl=elements[ elements.length - 1 ];
firstEl=elements[0];
activeEl=_doc.activeElement;
tabKey=event.keyCode===9;
shiftKey=event.shiftKey;
if(! shiftKey&&tabKey&&lastEl===activeEl){
event.preventDefault();
firstEl.focus();
}
if(shiftKey&&tabKey&&firstEl===activeEl){
event.preventDefault();
lastEl.focus();
}}
});
}};
twentytwenty.primaryMenu={
init: function(){
this.focusMenuWithChildren();
},
focusMenuWithChildren: function(){
var links, i, len,
menu=document.querySelector('.primary-menu-wrapper');
if(! menu){
return false;
}
links=menu.getElementsByTagName('a');
for(i=0, len=links.length; i < len; i++){
links[i].addEventListener('focus', updateFocus, true);
}
menu.addEventListener('focusout', removeFocus, true);
function removeFocus(e){
const leavingMenu = ! menu.contains(e.relatedTarget);
if(leavingMenu){
menu.querySelectorAll('li').forEach(function(el){
if(el.classList.contains('focus') ){
el.classList.remove('focus', 'closed');
}});
}}
function updateFocus(){
var self=this;
menu.querySelectorAll('li').forEach(function(el){
if(el.classList.contains('closed') ){
el.classList.remove('closed');
}
if(el.classList.contains('focus') ){
el.classList.remove('focus');
}});
self.parentElement.classList.add('focus');
if(self.closest('.menu-item-has-children') ){
twentytwentyFindParents(self, 'li.menu-item-has-children').forEach(function(element){
element.classList.add('focus');
});
}}
menu.addEventListener('keydown', removeFocusEsc, true);
function removeFocusEsc(e){
e=e||window.event;
var isEscape=false,
focusedElement=e.target;
if('key' in e){
isEscape=(e.key==='Escape'||e.key==='Esc');
}else{
isEscape=(e.keyCode===27);
}
if(isEscape){
var parentLi=focusedElement.closest('li'),
nestedParent=closestExcludingSelf(parentLi, 'li.menu-item-has-children'),
focusPosition=nestedParent ? nestedParent.querySelector('a'):false;
if(null!==nestedParent){
nestedParent.classList.add('focus');
focusPosition.focus();
}else{
parentLi.classList.remove('focus');
parentLi.classList.add('closed');
}}
}
function closestExcludingSelf(element, selector){
if(! element||! selector){
return null;
}
const parent=element.parentElement;
return parent ? parent.closest(selector):null;
}}
};
twentytwenty.toggles={
clickedEl: false,
init: function(){
this.toggle();
this.resizeCheck();
this.untoggleOnEscapeKeyPress();
},
performToggle: function(element, instantly){
var target, timeOutTime, classToToggle,
self=this,
_doc=document,
toggle=element,
targetString=toggle.dataset.toggleTarget,
activeClass='active';
if(! _doc.querySelectorAll('.show-modal').length){
self.clickedEl=_doc.activeElement;
}
if(targetString==='next'){
target=toggle.nextSibling;
}else{
target=_doc.querySelector(targetString);
}
if(target.classList.contains(activeClass) ){
target.dispatchEvent(twentytwenty.createEvent('toggle-target-before-active') );
}else{
target.dispatchEvent(twentytwenty.createEvent('toggle-target-before-inactive') );
}
classToToggle=toggle.dataset.classToToggle ? toggle.dataset.classToToggle:activeClass;
timeOutTime=0;
if(target.classList.contains('cover-modal') ){
timeOutTime=10;
}
setTimeout(function(){
var focusElement,
subMenued=target.classList.contains('sub-menu'),
newTarget=subMenued ? toggle.closest('.menu-item').querySelector('.sub-menu'):target,
duration=toggle.dataset.toggleDuration;
if(toggle.dataset.toggleType==='slidetoggle'&&! instantly&&duration!=='0'){
twentytwentyMenuToggle(newTarget, duration);
}else{
newTarget.classList.toggle(classToToggle);
}
if(targetString==='next'){
toggle.classList.toggle(activeClass);
}else if(target.classList.contains('sub-menu') ){
toggle.classList.toggle(activeClass);
}else{
_doc.querySelector('*[data-toggle-target="' + targetString + '"]').classList.toggle(activeClass);
}
twentytwentyToggleAttribute(toggle, 'aria-expanded', 'true', 'false');
if(self.clickedEl&&-1!==toggle.getAttribute('class').indexOf('close-') ){
twentytwentyToggleAttribute(self.clickedEl, 'aria-expanded', 'true', 'false');
}
if(toggle.dataset.toggleBodyClass){
_doc.body.classList.toggle(toggle.dataset.toggleBodyClass);
}
if(toggle.dataset.setFocus){
focusElement=_doc.querySelector(toggle.dataset.setFocus);
if(focusElement){
if(target.classList.contains(activeClass) ){
focusElement.focus();
}else{
focusElement.blur();
}}
}
target.dispatchEvent(twentytwenty.createEvent('toggled') );
if(target.classList.contains(activeClass) ){
target.dispatchEvent(twentytwenty.createEvent('toggle-target-after-active') );
}else{
target.dispatchEvent(twentytwenty.createEvent('toggle-target-after-inactive') );
}}, timeOutTime);
},
toggle: function(){
var self=this;
document.querySelectorAll('*[data-toggle-target]').forEach(function(element){
element.addEventListener('click', function(event){
event.preventDefault();
self.performToggle(element);
});
});
},
resizeCheck: function(){
if(document.querySelectorAll('*[data-untoggle-above], *[data-untoggle-below], *[data-toggle-above], *[data-toggle-below]').length){
window.addEventListener('resize', function(){
var winWidth=window.innerWidth,
toggles=document.querySelectorAll('.toggle');
toggles.forEach(function(toggle){
var unToggleAbove=toggle.dataset.untoggleAbove,
unToggleBelow=toggle.dataset.untoggleBelow,
toggleAbove=toggle.dataset.toggleAbove,
toggleBelow=toggle.dataset.toggleBelow;
if(! unToggleAbove&&! unToggleBelow&&! toggleAbove&&! toggleBelow){
return;
}
if((((unToggleAbove&&winWidth > unToggleAbove) ||
(unToggleBelow&&winWidth < unToggleBelow) ) &&
toggle.classList.contains('active') ) ||
(((toggleAbove&&winWidth > toggleAbove) ||
(toggleBelow&&winWidth < toggleBelow) ) &&
! toggle.classList.contains('active') )
){
toggle.click();
}});
});
}},
untoggleOnEscapeKeyPress: function(){
document.addEventListener('keyup', function(event){
if(event.key==='Escape'){
document.querySelectorAll('*[data-untoggle-on-escape].active').forEach(function(element){
if(element.classList.contains('active') ){
element.click();
}});
}});
}};
function twentytwentyDomReady(fn){
if(typeof fn!=='function'){
return;
}
if(document.readyState==='interactive'||document.readyState==='complete'){
return fn();
}
document.addEventListener('DOMContentLoaded', fn, false);
}
twentytwentyDomReady(function(){
twentytwenty.toggles.init();
twentytwenty.coverModals.init();
twentytwenty.intrinsicRatioVideos.init();
twentytwenty.modalMenu.init();
twentytwenty.primaryMenu.init();
twentytwenty.touchEnabled.init();
});
function twentytwentyToggleAttribute(element, attribute, trueVal, falseVal){
var toggles;
if(! element.hasAttribute(attribute) ){
return;
}
if(trueVal===undefined){
trueVal=true;
}
if(falseVal===undefined){
falseVal=false;
}
toggles=document.querySelectorAll('[data-toggle-target="' + element.dataset.toggleTarget + '"]');
toggles.forEach(function(toggle){
if(! toggle.hasAttribute(attribute) ){
return;
}
if(toggle.getAttribute(attribute)!==trueVal){
toggle.setAttribute(attribute, trueVal);
}else{
toggle.setAttribute(attribute, falseVal);
}});
}
function twentytwentyMenuToggle(target, duration){
var initialParentHeight, finalParentHeight, menu, menuItems, transitionListener,
initialPositions=[],
finalPositions=[];
if(! target){
return;
}
menu=target.closest('.menu-wrapper');
menuItems=menu.querySelectorAll('.menu-item');
menuItems.forEach(function(menuItem, index){
initialPositions[ index ]={ x: menuItem.offsetLeft, y: menuItem.offsetTop };});
initialParentHeight=target.parentElement.offsetHeight;
target.classList.add('toggling-target');
target.classList.toggle('active');
menuItems.forEach(function(menuItem, index){
finalPositions[ index ]={ x: menuItem.offsetLeft, y: menuItem.offsetTop };});
finalParentHeight=target.parentElement.offsetHeight;
target.classList.toggle('active');
menu.classList.add('is-toggling');
target.classList.toggle('active');
menuItems.forEach(function(menuItem, index){
var initialPosition=initialPositions[ index ];
if(initialPosition.y===0&&menuItem.parentElement===target){
initialPosition.y=initialParentHeight;
}
menuItem.style.transform='translate(' + initialPosition.x + 'px, ' + initialPosition.y + 'px)';
});
requestAnimationFrame(function(){
requestAnimationFrame(function(){
menu.classList.add('is-animating');
menuItems.forEach(function(menuItem, index){
var finalPosition=finalPositions[ index ];
if(finalPosition.y===0&&menuItem.parentElement===target){
finalPosition.y=finalParentHeight;
}
if(duration!==undefined){
menuItem.style.transitionDuration=duration + 'ms';
}
menuItem.style.transform='translate(' + finalPosition.x + 'px, ' + finalPosition.y + 'px)';
});
if(duration!==undefined){
target.style.transitionDuration=duration + 'ms';
}});
transitionListener=function(){
menu.classList.remove('is-animating');
menu.classList.remove('is-toggling');
target.classList.remove('toggling-target');
menuItems.forEach(function(menuItem){
menuItem.style.transform='';
menuItem.style.transitionDuration='';
});
target.style.transitionDuration='';
target.removeEventListener('transitionend', transitionListener);
};
target.addEventListener('transitionend', transitionListener);
});
}
function twentytwentyFindParents(target, query){
var parents=[];
function traverse(item){
var parent=item.parentNode;
if(parent instanceof HTMLElement){
if(parent.matches(query) ){
parents.push(parent);
}
traverse(parent);
}}
traverse(target);
return parents;
};