-
Notifications
You must be signed in to change notification settings - Fork 84
/
Copy pathhc-offcanvas-nav.js
executable file
·11 lines (11 loc) · 30.4 KB
/
hc-offcanvas-nav.js
1
2
3
4
5
6
7
8
9
10
11
/*
* HC Off-canvas Nav
* ===================
* Version: 6.1.5
* Author: Some Web Media
* Author URL: https://github.com/somewebmedia/
* Plugin URL: https://github.com/somewebmedia/hc-offcanvas-nav
* Description: JavaScript library for creating off-canvas multi-level navigations
* License: MIT
*/
"use strict";!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){if(!e.document)throw new Error("HC Off-canvas Nav requires a browser to run.");module.exports=t(e)}else"function"==typeof define&&define.amd?define("hcOffcanvasNav",[],t(e)):t(e)}("undefined"!=typeof window?window:this,function(re){function i(e,t){if(t=t||{},!(e="string"==typeof e?"#"===e.charAt(0)&&-1===e.indexOf(" ")?ie.querySelector(e):ie.querySelectorAll(e):e))return!1;var ee=i.Helpers;void 0!==t.maxWidth&&(ee.deprecated("maxWidth","disableAt","option"),t.disableAt=t.maxWidth);var te=Object.assign({},{width:280,height:"auto",disableAt:!1,pushContent:null,swipeGestures:!0,expanded:!1,position:"left",levelOpen:"overlap",levelSpacing:40,levelTitles:!0,closeOpenLevels:!0,closeActiveLevel:!1,navTitle:null,navClass:"",disableBody:!0,closeOnClick:!0,closeOnEsc:!0,customToggle:null,activeToggleClass:null,bodyInsert:"prepend",keepClasses:!0,removeOriginalNav:!1,rtl:!1,insertClose:!0,insertBack:!0,levelTitleAsBack:!0,labelClose:"",labelBack:"Back"},t);function ne(e){if(ae.length){for(var t=!1,n=(e="string"==typeof e?[e]:e).length,a=0;a<n;a++)-1!==ae.indexOf(e[a])&&(t=!0);return t}}function n(e){if(e.querySelector("ul")||"UL"===e.tagName){var b="hc-nav-"+ ++oe,s=ee.printStyle("hc-offcanvas-"+oe+"-style"),o="keydown.hcOffcanvasNav",v=te.activeToggleClass||"toggle-open",u=ee.createElement("nav",{id:b}),d=ee.createElement("div",{class:"nav-container"});u.addEventListener("click",ee.stopPropagation),u.appendChild(d);var n,p,a,f=null,h=null,m=null,t={},g=!1,y=!1,E=null,L=0,A=0,x=0,C=null,O={},k=[],N=!1,T=[],r=null,i=null,l=!1,c=!1;te.customToggle?f=ee.getElements(te.customToggle):(f=[ee.createElement("a",{href:"#"},ee.createElement("span"))],e.insertAdjacentElement("afterend",f[0])),f&&f.length&&f.forEach(function(e){e.addEventListener("click",J(e)),e.classList.add("hc-nav-trigger",b),e.setAttribute("role","button"),e.setAttribute("aria-label",(te.ariaLabels||{}).open),e.setAttribute("aria-controls",b),e.setAttribute("aria-expanded",!1),e.addEventListener("keydown",function(e){"Enter"!==e.key&&13!==e.keyCode||setTimeout(function(){w(0,0)},0)})});var w=function(e,t,n){var a,r,i,s;"number"!=typeof t||"number"!=typeof e&&!T.length||(a=Array.prototype.filter.call(d.querySelectorAll(".nav-wrapper"),function(e){return e.getAttribute("data-level")==t&&("number"!=typeof n||"number"==typeof n&&e.getAttribute("data-index")==n)})[0],a=ee.children(a,".nav-content")[0],r=ee.children(a,".nav-close, .nav-back"),a=ee.children(a,"ul"),a=ee.children(a,"li"),a=ee.children(a,":not(.nav-wrapper)"),a=[].concat(r,a),a=Array.prototype.map.call(a,function(e){return Array.prototype.slice.call(e.querySelectorAll('[tabindex="0"], a[role="menuitem"], a[href], button, textarea, input[type="text"], input[type="radio"], input[type="checkbox"], select'))}).flat(),(a=Array.prototype.filter.call(a,function(e){return"-1"!==e.getAttribute("tabindex")}))&&(u.classList.add("user-is-tabbing"),i=a[0],s=a[a.length-1],"number"==typeof e?a[e].focus():(T[T.length-1].focus(),T.pop()),ie.removeEventListener(o),ie.addEventListener(o,function(e){"Tab"!==e.key&&9!==e.keyCode||(e.shiftKey?ie.activeElement===i&&(e.preventDefault(),s.focus()):ie.activeElement===s&&(e.preventDefault(),i.focus()))})))},S=function(){ie.removeEventListener(o),h&&setTimeout(function(){h.focus()},p)},M=function(){d.style.transition="none",u.style.display="block";var e=ee.formatSizeVal(A=d.offsetWidth),t=ee.formatSizeVal(x=d.offsetHeight);s.add(".hc-offcanvas-nav."+b+".nav-position-left .nav-container","transform: translate3d(-"+e+", 0, 0)"),s.add(".hc-offcanvas-nav."+b+".nav-position-right .nav-container","transform: translate3d("+e+", 0, 0)"),s.add(".hc-offcanvas-nav."+b+".nav-position-top .nav-container","transform: translate3d(0, -"+t+", 0)"),s.add(".hc-offcanvas-nav."+b+".nav-position-bottom .nav-container","transform: translate3d(0, "+t+", 0)"),s.insert(),u.style.display="",d.style.transition="",n=re.getComputedStyle(d).transitionProperty,p=ee.toMs(re.getComputedStyle(d).transitionDuration),a=re.getComputedStyle(d).transitionTimingFunction,te.pushContent&&m&&n&&s.add(ee.getElementCssTag(m),"transition: "+n+" "+p+"ms "+a),s.insert()},j=function(e){var t=!!f&&re.getComputedStyle(f[0]).display,n=!!te.disableAt&&"max-width: "+(te.disableAt-1)+"px",a=ee.formatSizeVal(te.width),r=ee.formatSizeVal(te.height),i=ee.formatSizeVal(te.levelSpacing);!ee.isNumeric(a)&&-1===a.indexOf("px")||(A=parseInt(a)),!ee.isNumeric(r)&&-1===r.indexOf("px")||(x=parseInt(r)),ne(["disableAt","position"])&&s.reset(),s.add(".hc-offcanvas-nav."+b,"display: block",n),s.add(".hc-nav-original."+b,"display: none",n),t&&s.add(".hc-nav-trigger."+b,"display: "+(t&&"none"!==t?t:"block"),n),-1!==["left","right"].indexOf(te.position)?s.add(".hc-offcanvas-nav."+b+" .nav-container","width: "+a):s.add(".hc-offcanvas-nav."+b+" .nav-container","height: "+r),s.add(".hc-offcanvas-nav."+b+".nav-position-left .nav-container","transform: translate3d(-"+a+", 0, 0);"),s.add(".hc-offcanvas-nav."+b+".nav-position-right .nav-container","transform: translate3d("+a+", 0, 0);"),s.add(".hc-offcanvas-nav."+b+".nav-position-top .nav-container","transform: translate3d(0, -"+r+", 0);"),s.add(".hc-offcanvas-nav."+b+".nav-position-bottom .nav-container","transform: translate3d(0, "+r+", 0);"),s.add(".hc-offcanvas-nav."+b+".nav-levels-overlap.nav-position-left li.level-open > .nav-wrapper","transform: translate3d(-"+i+", 0, 0)",n),s.add(".hc-offcanvas-nav."+b+".nav-levels-overlap.nav-position-right li.level-open > .nav-wrapper","transform: translate3d("+i+", 0, 0)",n),s.add(".hc-offcanvas-nav."+b+".nav-levels-overlap.nav-position-top li.level-open > .nav-wrapper","transform: translate3d(0, -"+i+", 0)",n),s.add(".hc-offcanvas-nav."+b+".nav-levels-overlap.nav-position-bottom li.level-open > .nav-wrapper","transform: translate3d(0, "+i+", 0)",n),s.insert(),e&&!ne("pushContent")||(m=te.pushContent?ee.getElements(te.pushContent)[0]:null),d.style.transition="none";n=u.classList.contains(le),n=["hc-offcanvas-nav",te.navClass||"",b,"nav-levels-"+(te.levelOpen||"none"),"nav-position-"+te.position,te.disableBody?"disable-body":"",ee.isIos?"is-ios":"",ee.isTouchDevice?"touch-device":"",n?le:"",te.rtl?"rtl":"",!0!==te.insertClose||te.labelClose?"":"nav-close-button-empty"].join(" ").trim().replace(/ +/g," ");u.removeEventListener("click"),u.className=n,u.setAttribute("aria-hidden",!0),ie.documentElement.style.setProperty("--nav-level-spacing",te.levelSpacing+"px"),te.disableBody&&u.addEventListener("click",$),e?M():setTimeout(M,0)},P=function(){t=function l(e,t){var n=[];Array.prototype.forEach.call(e,function(e){var o;("UL"===e.tagName||e instanceof HTMLHeadingElement)&&(o={tagName:e.tagName,id:t,htmlClass:e.getAttribute("class")||null,items:[]},e instanceof HTMLHeadingElement?o.content=ee.clone(e,!1,!0):(null!==e.getAttribute("data-nav-active")&&(E=t,e.removeAttribute("data-nav-active")),Array.prototype.forEach.call(e.children,function(e){var t=null!==e.getAttribute("data-nav-custom-content"),n=t?e.childNodes:Array.prototype.filter.call(e.children,function(e){return"UL"!==e.tagName&&!e.querySelector("ul")}).concat(e.children.length?[]:[e.firstChild]),a=t?[]:Array.prototype.slice.call(e.querySelectorAll("ul")),r=a.length?[].concat(Array.prototype.filter.call(a[0].parentNode.children,function(e){return"UL"===e.tagName||e instanceof HTMLHeadingElement})):[],a=null;if(!n.length){for(var i="",s=0;s<e.childNodes.length;s++)e.childNodes[s].nodeType===Node.TEXT_NODE&&(i+=e.childNodes[s].textContent.trim());n=[ie.createTextNode(i)]}r.length&&(ee.data(e,"hc-uniqid")?a=ee.data(e,"hc-uniqid"):(a=Math.random().toString(36).substr(2),ee.data(e,"hc-uniqid",a))),null!==e.getAttribute("data-nav-active")&&(E=a,e.removeAttribute("data-nav-active")),o.items.push({id:a,htmlClass:e.getAttribute("class")||"",content:n,custom:t,subnav:r.length?l(r,a):[],highlight:null!==e.getAttribute("data-nav-highlight")})})),n.push(o))});return n}("UL"===e.tagName?[e]:Array.prototype.filter.call(e.children,function(e){return"UL"===e.tagName||e instanceof HTMLHeadingElement}),null)},_=function(e){if(e){for(;d.firstChild;)d.removeChild(d.firstChild);O={}}!function p(n,e,f,h,t,a){var m=ee.createElement("div",{class:"nav-wrapper nav-wrapper-"+f,"data-level":f,"data-index":t||0});var r=ee.createElement("div",{class:"nav-content"});m.addEventListener("click",ee.stopPropagation);m.appendChild(r);e.appendChild(m);h&&(0===f||0<f&&"overlap"===te.levelOpen)&&(e="string"==typeof h?h:ee.clone(re.jQuery&&h instanceof re.jQuery&&h.length?h[0]:h,!0,!0),r.insertBefore(ee.createElement("h2",{id:0===f?b+"-nav-title":null,class:0===f?"nav-title":"level-title"},e),r.firstChild),0===f&&"string"==typeof h&&u.setAttribute("aria-labelledby",b+"-nav-title"));var i=-1;n.forEach(function(e,t){var d;"UL"===e.tagName?(i++,d=ee.createElement("ul",{id:e.id?1<n.length?"menu-"+e.id+"-"+i:"menu-"+e.id:null,role:"menu","aria-level":f+1}),r.appendChild(d),te.keepClasses&&e.htmlClass&&d.classList.add.apply(d.classList,e.htmlClass.split(" ")),e.items.forEach(function(t,e){var n=t.content;if(t.custom){var a=ee.createElement("li",{class:"nav-item nav-item-custom"},ee.createElement("div",{class:"nav-custom-content"},Array.prototype.map.call(n,function(e){return ee.clone(e,!0,!0)})));return te.keepClasses&&t.htmlClass&&a.classList.add.apply(a.classList,t.htmlClass.split(" ")),void d.appendChild(a)}var r,i=Array.prototype.filter.call(n,function(e){return"A"===e.tagName||e.nodeType!==Node.TEXT_NODE&&e.querySelector("a")})[0];i?(r=ee.clone(i,!1,!0)).classList.add("nav-item-link"):r=ee.createElement(t.subnav.length?"a":"span",{class:"nav-item-link"},Array.prototype.map.call(n,function(e){return ee.clone(e,!0,!0)})),"A"===r.tagName&&(r.setAttribute("tabindex","0"),r.setAttribute("role","menuitem"),r.getAttribute("href")||r.setAttribute("href","#")),i&&r.addEventListener("click",function(e){e.stopPropagation(),ee.hasListener(i,"click")&&i.click()}),"#"===r.getAttribute("href")&&r.addEventListener("click",ee.preventDefault),te.closeOnClick&&(W()?"A"!==r.tagName||"false"===r.dataset.navClose||null!==r.getAttribute("disabled")&&"false"!==r.getAttribute("disabled")||t.subnav.length&&(!r.getAttribute("href")||"#"===r.getAttribute("href").charAt(0))||r.addEventListener("click",$):"A"!==r.tagName||"false"===r.dataset.navClose||null!==r.getAttribute("disabled")&&"false"!==r.getAttribute("disabled")||r.addEventListener("click",$));var s,o,l,c,v,u=ee.createElement("li",{class:"nav-item"});u.appendChild(r),d.appendChild(u),te.keepClasses&&t.htmlClass&&u.classList.add.apply(u.classList,t.htmlClass.split(" ")),t.highlight&&u.classList.add("nav-highlight"),ee.wrap(r,ee.createElement("div",{class:"nav-item-wrapper"})),t.subnav.length&&(s=f+1,o=t.id,l="",O[s]||(O[s]=0),u.classList.add("nav-parent"),W()?(c=O[s],(v=ee.createElement("input",{type:"checkbox",id:b+"-"+s+"-"+c,class:"hc-chk",tabindex:-1,"data-level":s,"data-index":c,value:o})).addEventListener("click",ee.stopPropagation),v.addEventListener("change",Q),u.insertBefore(v,u.firstChild),a=function(e){e.addEventListener("click",function(e){e.stopPropagation(),v.setAttribute("checked","true"!==v.getAttribute("checked")),"createEvent"in ie&&((e=ie.createEvent("HTMLEvents")).initEvent("change",!1,!0),v.dispatchEvent(e))}),e.addEventListener("keydown",function(e){"Enter"!==e.key&&13!==e.keyCode||(N=!0,T.push(this))}),e.setAttribute("aria-controls",1<t.subnav.length?t.subnav.filter(function(e){return"UL"===e.tagName}).map(function(e,t){return"menu-"+e.id+"-"+t}).join(" "):"menu-"+o),e.setAttribute("aria-haspopup","overlap"===te.levelOpen),e.setAttribute("aria-expanded",!1)},-1!==k.indexOf(o)&&(m.classList.add("sub-level-open"),m.addEventListener("click",function(){return Z(s,c)}),u.classList.add("level-open"),v.setAttribute("checked",!0)),l=!0===te.levelTitles?n[0].textContent.trim():"",r.getAttribute("href")&&"#"!==r.getAttribute("href")?((n=ee.createElement("a",{href:"#",class:"nav-next","aria-label":(te.ariaLabels||{}).submenu+": "+l,role:"menuitem",tabindex:0},ee.createElement("span"))).addEventListener("click",ee.preventClick()),a(n),te.rtl?r.parentNode.appendChild(n):r.parentNode.insertBefore(n,r.nextSibling)):(r.appendChild(ee.createElement("span",{class:"nav-next"},ee.createElement("span"))),a(r))):r.setAttribute("aria-expanded",!0),O[s]++,p(t.subnav,u,s,l,O[s]-1,"string"==typeof h?h:""))})):r.appendChild(e.content)});f&&void 0!==t&&!1!==te.insertBack&&"overlap"===te.levelOpen&&(s=ee.children(r,"ul"),a=te.levelTitleAsBack&&a||te.labelBack||"",l=ee.createElement("a",{href:"#",class:"nav-back-button",role:"menuitem",tabindex:0},[a,ee.createElement("span")]),!0===te.insertBack||0===te.insertBack?(a=ee.createElement("div",{class:"nav-back"},l),r.insertBefore(a,ee.children(r,":not(.level-title)")[0])):(o=ee.createElement("li",{class:"nav-item nav-back"},l),ee.insertAt(o,!0===te.insertBack?0:te.insertBack,s)),o=function(){return Z(f,t)},ee.wrap(l,ee.createElement("div",{class:"nav-item-wrapper"})),l.addEventListener("click",ee.preventClick(o)),l.addEventListener("keydown",function(e){"Enter"!==e.key&&13!==e.keyCode||(N=!0)}));{var s,o,l;0===f&&!1!==te.insertClose&&((s=ee.createElement("a",{href:"#",class:"nav-close-button"+(te.labelClose?" has-label":""),role:"menuitem",tabindex:0,"aria-label":te.labelClose?"":(te.ariaLabels||{}).close},[te.labelClose||"",ee.createElement("span")])).addEventListener("click",ee.preventClick($)),s.addEventListener("keydown",function(e){"Enter"!==e.key&&13!==e.keyCode||S()}),h&&!0===te.insertClose?r.insertBefore(ee.createElement("div",{class:"nav-close"},s),r.children[1]):!0===te.insertClose?r.insertBefore(ee.createElement("div",{class:"nav-close"},s),r.firstChild):(o=ee.children(r,"ul"),l=ee.createElement("li",{class:"nav-item nav-close"},s),ee.wrap(s,ee.createElement("div",{class:"nav-item-wrapper"})),ee.insertAt(l,te.insertClose,o)))}}(t,d,0,te.navTitle)},B=function(t){return function(e){"left"!==te.position&&"right"!==te.position||(r=e.touches[0].clientX,i=e.touches[0].clientY,"doc"===t?c||(ie.addEventListener("touchmove",D,ee.supportsPassive),ie.addEventListener("touchend",U,ee.supportsPassive)):(c=!0,d.addEventListener("touchmove",z,ee.supportsPassive),d.addEventListener("touchend",I,ee.supportsPassive)))}},q=function(e,t){re.addEventListener("touchmove",ee.preventDefault,ee.supportsPassive),u.style.visibility="visible",d.style[ee.browserPrefix("transition")]="none",ee.setTransform(d,e,te.position),m&&(m.style[ee.browserPrefix("transition")]="none",ee.setTransform(m,t,te.position))},H=function(e,t,n,a){void 0===t&&(t=!0),void 0===n&&(n=!1),void 0===a&&(a=!1),re.removeEventListener("touchmove",ee.preventDefault,ee.supportsPassive),d.style[ee.browserPrefix("transition")]="",ee.setTransform(d,n,te.position),m&&(m.style[ee.browserPrefix("transition")]="",ee.setTransform(m,a,te.position)),"open"===e?K():($(),t?setTimeout(function(){u.style.visibility=""},p):u.style.visibility="")},D=function(e){var t=0-(r-e.touches[0].clientX),e="overlap"===te.levelOpen?Y()*te.levelSpacing:0,e=A+e,t="left"===te.position?Math.min(Math.max(t,0),e):Math.abs(Math.min(Math.max(t,-e),0));("left"===te.position&&r<50||"right"===te.position&&r>ie.body.clientWidth-50)&&(l=!0,q(0-(A-t),Math.abs(t)))},U=function e(t){var n;ie.removeEventListener("touchmove",D),ie.removeEventListener("touchend",e),l&&(n=t.changedTouches[t.changedTouches.length-1],t=0-(r-n.clientX),n="overlap"===te.levelOpen?Y()*te.levelSpacing:0,n=A+n,(t="left"===te.position?Math.min(Math.max(t,0),n):Math.abs(Math.min(Math.max(t,-n),0)))?H(70<t?"open":"close"):H("close",!1),i=r=null,l=!1)},z=function(e){var t=0-(r-e.touches[0].clientX),n=0-(i-e.touches[0].clientY);Math.abs(t)<Math.abs(n)||(e="overlap"===te.levelOpen?Y()*te.levelSpacing:0,n=A+e,t="left"===te.position?Math.min(Math.max(t,-n),0):Math.min(Math.max(t,0),n),("left"===te.position&&t<0||"right"===te.position&&0<t)&&(l=!0,q(-Math.abs(t)+e,n-Math.abs(t))))},I=function e(t){var n,a;d.removeEventListener("touchmove",z),d.removeEventListener("touchend",e),c=!1,l&&(n=t.changedTouches[t.changedTouches.length-1],a=0-(r-n.clientX),t="overlap"===te.levelOpen?Y()*te.levelSpacing:0,n=A+t,(a="left"===te.position?Math.abs(Math.min(Math.max(a,-n),0)):Math.abs(Math.min(Math.max(a,0),n)))===n?H("close",!1):50<a?H("close"):H("open",!0,t,n),i=r=null,l=!1)};j(),P(),_(),!0===te.removeOriginalNav?e.parentNode.removeChild(e):e.classList.add("hc-nav-original",b),"prepend"===te.bodyInsert?ie.body.insertBefore(u,ie.body.firstChild):"append"===te.bodyInsert&&ie.body.appendChild(u),!0===te.expanded&&(y=!0,K()),te.swipeGestures&&(d.addEventListener("touchstart",B("nav"),ee.supportsPassive),ie.addEventListener("touchstart",B("doc"),ee.supportsPassive)),te.closeOnEsc&&ie.addEventListener("keydown",function(e){!g||"Escape"!==e.key&&27!==e.keyCode||(0===(e=Y())?($(),S()):(Z(e,G()),w(null,e-1)))});B=ee.debounce(M,500);re.addEventListener("resize",B,ee.supportsPassive);var X=function(e,t,n){var a,r,i=ie.querySelector("#"+b+"-"+e+"-"+t);i&&(a=i.value,t=(r=i.parentNode).closest(".nav-wrapper"),i.setAttribute("checked",!1),t.classList.remove("sub-level-open"),r.classList.remove("level-open"),r.querySelectorAll("[aria-controls]")[0].setAttribute("aria-expanded",!1),-1!==k.indexOf(a)&&k.splice(k.indexOf(a),1),n&&"overlap"===te.levelOpen&&(t.removeEventListener("click"),t.addEventListener("click",ee.stopPropagation),ee.setTransform(d,(e-1)*te.levelSpacing,te.position),m&&(t="x"===ee.getAxis(te.position)?A:x,ee.setTransform(m,t+(e-1)*te.levelSpacing,te.position))))};return u.on=function(e,t){u.addEventListener(e,t)},u.off=function(e,t){u.removeEventListener(e,t)},u.getSettings=function(){return Object.assign({},te)},u.isOpen=F,u.open=K,u.close=$,u.toggle=J(null),u.update=function(e,t){if(ae=[],"object"==typeof e){for(var n in e)te[n]!==e[n]&&ae.push(n);te=Object.assign({},te,e)}!0===e||!0===t?te.removeOriginalNav?console.warn("%c! HC Offcanvas Nav:%c Can't update because original navigation has been removed. Disable `removeOriginalNav` option.","color: #fa253b","color: default"):(j(!0),P(),_(!0)):(j(!0),_(!0))},u}function Q(){var e=Number(this.dataset.level),t=Number(this.dataset.index);("true"===this.getAttribute("checked")?R:Z)(e,t)}function V(e){e.classList.remove(v),e.setAttribute("aria-expanded",!1)}function W(){return!1!==te.levelOpen&&"none"!==te.levelOpen}function F(){return g}function Y(){return k.length?Number(Array.prototype.filter.call(d.querySelectorAll(".hc-chk"),function(e){return e.value==k[k.length-1]})[0].dataset.level):0}function G(){return k.length?Number(Array.prototype.filter.call(d.querySelectorAll(".hc-chk"),function(e){return e.value==k[k.length-1]})[0].dataset.index):0}function K(e,t){var n,a;if((!g||void 0!==t)&&(g||(g=!0,u.style.visibility="visible",u.setAttribute("aria-hidden",!1),u.classList.add(le),f&&(f.forEach(V),h&&(h.classList.add(v),h.setAttribute("aria-expanded",!0))),"expand"===te.levelOpen&&C&&clearTimeout(C),te.disableBody&&(L=re.pageYOffset||se.scrollTop||ie.documentElement.scrollTop||ie.body.scrollTop,ie.documentElement.scrollHeight>ie.documentElement.clientHeight&&se.classList.add("hc-nav-yscroll"),ie.body.classList.add("hc-nav-open"),L&&(ie.body.style.top=-L+"px")),m&&(n="x"===ee.getAxis(te.position)?A:x,ee.setTransform(m,n,te.position)),y?y=!1:(u._eventListeners.toggle&&u._eventListeners.toggle.forEach(function(e){e.fn(ee.customEventObject("toggle",u,u,{action:"open"}),Object.assign({},te))}),setTimeout(function(){u._eventListeners.open&&u._eventListeners.open.forEach(function(e){e.fn(ee.customEventObject("open",u,u),Object.assign({},te))})},p))),W())){if("number"!=typeof e&&!ee.isNumeric(e)||"number"!=typeof t&&!ee.isNumeric(t))E?(a=Array.prototype.filter.call(d.querySelectorAll(".hc-chk"),function(e){return e.value==E})[0],!te.closeActiveLevel&&te.closeOpenLevels||(E=null)):!1===te.closeOpenLevels&&(a=(a=Array.prototype.filter.call(d.querySelectorAll(".hc-chk"),function(e){return"true"===e.getAttribute("checked")}))[a.length-1]);else if(!(a=ie.querySelector("#"+b+"-"+e+"-"+t)))return void console.warn("HC Offcanvas Nav: level "+e+" doesn't have index "+t);if(a){var r=[];if(e=Number(a.dataset.level),t=Number(a.dataset.index),1<e){for(var i=[];a&&a!==ie;a=a.parentNode)a.matches(".nav-wrapper")&&i.push(a);for(var s=0;s<i.length;s++){var o=i[s],l=Number(o.dataset.level);0<l&&r.push({level:l,index:Number(o.dataset.index)})}r=r.reverse()}r.push({level:e,index:t});for(var c=0;c<r.length;c++)R(r[c].level,r[c].index,!1)}}}function $(){var e;g&&(g=!1,m&&ee.setTransform(m,!1),u.classList.remove(le),u.classList.remove("user-is-tabbing"),u.setAttribute("aria-hidden",!0),d.removeAttribute("style"),f&&f.forEach(V),"expand"===te.levelOpen&&-1!==["top","bottom"].indexOf(te.position)?Z(0):W()&&(C=setTimeout(function(){Z(0)},"expand"===te.levelOpen?p:0)),te.disableBody&&(ie.body.classList.remove("hc-nav-open"),se.classList.remove("hc-nav-yscroll"),L&&(ie.body.style.top="",ie.body.scrollTop=L,se.scrollTop=L,"bottom"===te.position&&(e=L,setTimeout(function(){ie.body.scrollTop=e,se.scrollTop=e},0)),L=0)),u._eventListeners.toggle&&u._eventListeners.toggle.forEach(function(e){e.fn(ee.customEventObject("toggle",u,u,{action:"close"}),Object.assign({},te))}),setTimeout(function(){u.style.visibility="",u._eventListeners.close&&u._eventListeners.close.forEach(function(e){e.fn(ee.customEventObject("close",u,u),Object.assign({},te))}),u._eventListeners["close.once"]&&u._eventListeners["close.once"].forEach(function(e){e.fn(ee.customEventObject("close.once",u,u),Object.assign({},te))}),u.removeEventListener("close.once")},p))}function J(t){return function(e){e&&(e.preventDefault(),e.stopPropagation()),t&&(h=t),(g?$:K)()}}function R(t,n,e){void 0===e&&(e=!0);var a=ie.querySelector("#"+b+"-"+t+"-"+n),r=a.value,i=a.parentNode,s=i.closest(".nav-wrapper"),o=ee.children(i,".nav-wrapper")[0];!1===e&&(o.style.transition="none"),a.setAttribute("checked",!0),s.classList.add("sub-level-open"),i.classList.add("level-open"),i.querySelectorAll("[aria-controls]")[0].setAttribute("aria-expanded",!0),!1===e&&setTimeout(function(){o.style.transition=""},p),-1===k.indexOf(r)&&k.push(r),"overlap"===te.levelOpen&&(s.addEventListener("click",function(){return Z(t,n)}),ee.setTransform(d,t*te.levelSpacing,te.position),m&&(s="x"===ee.getAxis(te.position)?A:x,ee.setTransform(m,s+t*te.levelSpacing,te.position))),u._eventListeners["open.level"]&&u._eventListeners["open.level"].forEach(function(e){e.fn(ee.customEventObject("open.level",u,o,{currentLevel:t,currentIndex:n}),Object.assign({},te))}),N&&(w(0,t,n),N=!1)}function Z(t,e){for(var n,a=t;a<=Object.keys(O).length;a++)if(a===t&&void 0!==e)X(t,e,!0);else if(0!==t||te.closeOpenLevels)for(var r=0;r<O[a];r++)X(a,r,a===t);else;0<t&&u._eventListeners["close.level"]&&(n=ie.querySelector("#"+b+"-"+t+"-"+e).closest(".nav-wrapper"),u._eventListeners["close.level"].forEach(function(e){e.fn(ee.customEventObject("close.level",u,n,{currentLevel:t-1,currentIndex:G()}),Object.assign({},te))})),N&&(w(null,t-1),N=!1)}console.error("%c! HC Offcanvas Nav:%c Navigation must contain <ul> element.","color: #fa253b","color: default")}te.ariaLabels=Object.assign({},{open:"Open Menu",close:"Close Menu",submenu:"Submenu"},t.ariaLabels);var ae=[];if(Array.isArray(e)||e instanceof NodeList){for(var a=[],r=0;r<e.length;r++)a.push(n(e[r]));return 1<a.length?a:a[0]}return n(e)}var n,a,ie=re.document,se=ie.getElementsByTagName("html")[0],oe=0,le="nav-open";return void 0!==re.jQuery&&(n=re.jQuery,a="hcOffcanvasNav",n.fn.extend({hcOffcanvasNav:function(t){return this.length?this.each(function(){var e=n.data(this,a);e?e.update(t):(e=new i(this,t),n.data(this,a,e))}):this}})),re.hcOffcanvasNav=re.hcOffcanvasNav||i,i}),function(n){var e=n.hcOffcanvasNav,o=n.document;"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(e,t){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var n=Object(e),a=1;a<arguments.length;a++){var r=arguments[a];if(null!=r)for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])}return n},writable:!0,configurable:!0}),Element.prototype.closest||(Element.prototype.closest=function(e){var t=this;do{if(Element.prototype.matches.call(t,e))return t}while(null!==(t=t.parentElement||t.parentNode)&&1===t.nodeType);return null}),Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function n(){var a=isNaN(arguments[0])?1:Number(arguments[0]);return a?Array.prototype.reduce.call(this,function(e,t){return Array.isArray(t)?e.push.apply(e,n.call(t,a-1)):e.push(t),e},[]):Array.prototype.slice.call(this)},writable:!0}),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector);var t=!1;try{var a=Object.defineProperty({},"passive",{get:function(){t={passive:!1}}});n.addEventListener("testPassive",null,a),n.removeEventListener("testPassive",null,a)}catch(e){}function r(e){return!isNaN(parseFloat(e))&&isFinite(e)}function i(e){return"auto"===e?"100%":r(e)&&0!==e?e+"px":e}function s(e){var t=["Webkit","Moz","Ms","O"],n=(o.body||o.documentElement).style,a=e.charAt(0).toUpperCase()+e.slice(1);if(void 0!==n[e])return e;for(var r=0;r<t.length;r++)if(void 0!==n[t[r]+a])return t[r]+a;return!1}function l(e,t){if(e instanceof Element)return t?Array.prototype.filter.call(e.children,function(e){return e.matches(t)}):e.children;var n=[];return Array.prototype.forEach.call(e,function(e){n=t?n.concat(Array.prototype.filter.call(e.children,function(e){return e.matches(t)})):n.concat(Array.prototype.slice.call(e.children))}),n}var c=(/iPad|iPhone|iPod/.test(navigator.userAgent)||!!navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform))&&!n.MSStream,v="ontouchstart"in n||navigator.maxTouchPoints||n.DocumentTouch&&o instanceof DocumentTouch,u=function(o){var l=Node.prototype[o+"EventListener"];return function(e,t,n){if(this){var a=e.split(".")[0];if(this._eventListeners=this._eventListeners||{},"add"===o){this._eventListeners[e]=this._eventListeners[e]||[];var r={fn:t};n&&(r.options=n),this._eventListeners[e].push(r),l.call(this,a,t,n)}else if("function"==typeof t)for(var i in l.call(this,a,t,n),this._eventListeners)this._eventListeners[i]=this._eventListeners[i].filter(function(e){return e.fn!==t}),this._eventListeners[i].length||delete this._eventListeners[i];else if(this._eventListeners[e]){for(var s=this._eventListeners[e].length;s--;)l.call(this,a,this._eventListeners[e][s].fn,this._eventListeners[e][s].options),this._eventListeners[e].splice(s,1);this._eventListeners[e].length||delete this._eventListeners[e]}}}};Node.prototype.addEventListener=u("add"),Node.prototype.removeEventListener=u("remove");function d(e,t,n){void 0===t&&(t={});var a,r=o.createElement(e);for(a in t)"class"!==a?!t[a]&&0!==t[a]||r.setAttribute(a,t[a]):r.className=t[a];if(n){Array.isArray(n)||(n=[n]);for(var i=0;i<n.length;i++)if("object"==typeof n[i]&&n[i].length&&!n[i].nodeType)for(var s=0;s<n[i].length;s++)r.appendChild(n[i][s]);else r.appendChild("string"==typeof n[i]?o.createTextNode(n[i]):n[i])}return r}function p(e){return-1!==["left","right"].indexOf(e)?"x":"y"}a=function e(t){return"string"==typeof t?t:t.getAttribute("id")?"#"+t.getAttribute("id"):t.getAttribute("class")?t.tagName.toLowerCase()+"."+t.getAttribute("class").replace(/\s+/g,"."):e(t.parentNode)+" > "+t.tagName.toLowerCase()},u=function(){s("transform");return function(e,t,n){!1===t||""===t?e.style.transform="":"x"===p(n)?e.style.transform="translate3d("+i("left"===n?t:-t)+",0,0)":e.style.transform="translate3d(0,"+i("top"===n?t:-t)+",0)"}}();e.Helpers={supportsPassive:t,isIos:c,isTouchDevice:v,isNumeric:r,formatSizeVal:i,toMs:function(e){return parseFloat(e)*(/\ds$/.test(e)?1e3:1)},stopPropagation:function(e){return e.stopPropagation()},preventDefault:function(e){return e.preventDefault()},preventClick:function(t){return function(e){e.preventDefault(),e.stopPropagation(),"function"==typeof t&&t()}},browserPrefix:s,children:l,wrap:function(e,t){e.parentNode.insertBefore(t,e),t.appendChild(e)},data:function(e,t,n){if(e.hcOffcanvasNav=e.hcOffcanvasNav||{},void 0===n)return e.hcOffcanvasNav[t];e.hcOffcanvasNav[t]=n},clone:function(e,t,n){var a=e.cloneNode(n||!1),r=e instanceof Element?[e].concat(Array.prototype.slice.call(e.getElementsByTagName("*"))):[],e=a instanceof Element?[a].concat(Array.prototype.slice.call(a.getElementsByTagName("*"))):[];return t||(r.shift(),e.shift()),n&&function(e,t){for(var n=0;n<e.length;n++)if(e[n]._eventListeners)for(var a in e[n]._eventListeners)for(var r=0;r<e[n]._eventListeners[a].length;r++)t[r].addEventListener(a,e[n]._eventListeners[a][r].fn,e[n]._eventListeners[a][r].options)}(r,e),a},customEventObject:function(e,n,a,r){return new function(e){for(var t in this.bubbles=!1,this.cancelable=!1,this.composed=!1,this.currentTarget=a,this.data=r?{}:null,this.defaultPrevented=!1,this.eventPhase=0,this.isTrusted=!1,this.target=n,this.timeStamp=Date.now(),this.type=e,r)this.data[t]=r[t]}(e)},hasListener:function(e,t){return(t?(e._eventListeners||{})[t]:e._eventListeners)||!1},debounce:function(a,r,i){var s;return function(){var e=this,t=arguments,n=i&&!s;clearTimeout(s),s=setTimeout(function(){s=null,i||a.apply(e,t)},r),n&&a.apply(e,t)}},createElement:d,getElements:function(e){var t=null;return"string"==typeof e?t=o.querySelectorAll(e):n.jQuery&&e instanceof n.jQuery&&e.length?t=e.toArray():e instanceof Element&&(t=[e]),t},getElementCssTag:a,printStyle:function(e){var r=d("style",{id:e}),i={},s={};o.head.appendChild(r);function a(e){return";"!==e.substr(-1)&&(e+=";"!==e.substr(-1)?";":""),e}return{reset:function(){i={},s={}},add:function(e,t,n){e=e.trim(),t=t.trim(),n?(n=n.trim(),s[n]=s[n]||{},s[n][e]=a(t)):i[e]=a(t)},remove:function(e,t){e=e.trim(),t?(t=t.trim(),void 0!==s[t][e]&&delete s[t][e]):void 0!==i[e]&&delete i[e]},insert:function(){var e,t,n="";for(e in s){for(var a in n+="@media screen and ("+e+") {\n",s[e])n+=" "+a+" { "+s[e][a]+" }\n";n+="}\n"}for(t in i)n+=t+" { "+i[t]+" }\n";r.innerHTML=n}}},insertAt:function(e,t,n){var a=l(n),r=a.length,r=-1<(t="last"===(t="first"===t?0:t)?r:t)?Math.max(0,Math.min(t,r)):Math.max(0,Math.min(r+t,r));0===r?n[0].insertBefore(e,n[0].firstChild):a[r-1].insertAdjacentElement("afterend",e)},getAxis:p,setTransform:u,deprecated:function(e,t,n){console.warn("%cHC Off-canvas Nav:%c "+n+"%c '"+e+"'%c is now deprecated and will be removed in the future. Use%c '"+t+"'%c option instead. See details about plugin usage at https://github.com/somewebmedia/hc-offcanvas-nav.","color: #fa253b","color: default","color: #5595c6","color: default","color: #5595c6","color: default")}}}(window);