{"version":3,"sources":["../../src/js/wksmenu.js"],"names":["wsMenu","extendDefaults","source","properties","property","hasOwnProperty","this","target","defaults","addClassNames","changeToDesktop","megaMenu","Elements","container","list","item","btn","link","mobile","desktop","mega","ClassNames","tierZero","tierOne","tierTwo","tierThree","activeClass","grid","fullWidthLink","arguments","_typeof","options","document","querySelector","slideUpTimeout","slideDownTimeout","init","prototype","subnavs","querySelectorAll","concat","numOfSubnavs","length","i","setAttribute","addParentClassNames","hover","onEvent","key","number","tier","zero","one","two","three","classList","add","k","tierList","forEach","a","slice","call","children","b","tagName","c","_this","contains","tierMegaLists","elem","l","tierMegaElems","menu_items","menu_items_children","submenuDetected","j","btns","addEventListener","n","siblings","event","parentNode","parentSiblings","skipMe","r","nextSibling","nodeType","push","getChildren","firstChild","sibling","toLowerCase","slideToggle","slideUp","remove","listParent","duration","undefined","style","transitionProperty","transitionDuration","boxSizing","height","offsetHeight","overflow","paddingTop","paddingBottom","marginTop","marginBottom","clearTimeout","setTimeout","display","removeProperty","slideDown","window","getComputedStyle","rebuild","elClone","cloneNode","replaceChild","x","matchMedia","mq","matches","addListener"],"mappings":"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","sourcesContent":["/* ======================================================= */\n/* WORKSHOP MENU */\n/* ======================================================= */\n\n//wks menu plugin\n\nvar wsMenu;\n\n(function () {\n\n\twsMenu = function () {\n\n\t\t//global element references\n\t\tthis.target;\n\n\t\t//define option defaults\n\t\tlet defaults = {\n\t\t\ttarget: '.ws_menu',\n\t\t\taddClassNames: false,\n\t\t\tchangeToDesktop: 1200,\n\t\t\tmegaMenu: false,\n\t\t}\n\n\t\t//recurring classes\n\t\tthis.Elements = {\n\t\t\tcontainer: \"ws_menu__inner\",\n\t\t\tlist: \"ws_menu__list\",\n\t\t\titem: \"ws_menu__item\",\n\t\t\tbtn: \"ws_menu__dropdown_btn\",\n\t\t\tlink: \"ws_menu__link\",\n\t\t\tmobile: \"ws_menu--mobile\",\n\t\t\tdesktop: \"ws_menu--desktop\",\n\t\t\tmega: \"ws_menu--megamenu\",\n\t\t}\n\n\t\t//classnames assigned by the plugin (optional)\n\t\tthis.ClassNames = {\n\t\t\ttierZero: \"ws_menu__list--tier_zero\",\n\t\t\ttierOne: \"ws_menu__list--tier_one\",\n\t\t\ttierTwo: \"ws_menu__list--tier_two\",\n\t\t\ttierThree: \"ws_menu__list--tier_three\",\n\t\t\tmega: \"ws_menu__list--tier_mega\",\n\t\t\tactiveClass: \"active\",\n\t\t\tgrid: \"ws_menu__item--grid\",\n\t\t\tfullWidthLink: \"ws_menu__item--full_width_link\",\n\t\t\tlist: \"ws_menu__item--list\",\n\t\t}\n\n\t\t// Create options by extending defaults with the passed in arugments\n\t\tif (arguments[0] && typeof arguments[0] === 'object') {\n\t\t\tthis.options = extendDefaults(defaults, arguments[0]);\n\t\t}\n\n\t\tlet target = document.querySelector(this.options.target);\n\t\tthis.target = target;\n\t\tthis.slideUpTimeout;\n\t\tthis.slideDownTimeout;\n\n\n\t\t//\n\t\t//CALL METHODS\n\t\t//\n\n\t\tthis.init(target);\n\n\t}\n\n\t//\n\t//PUBLIC METHODS\n\t//\n\n\twsMenu.prototype.init = function (target) {\n\n\t\tvar subnavs = target.querySelectorAll(`.${this.Elements.item} > .${this.Elements.list}`),\n\t\t\tnumOfSubnavs = subnavs.length;\n\n\t\tfor (var i = 0; i < numOfSubnavs; i++) {\n\t\t\tsubnavs[i].setAttribute(\"aria-expanded\", \"false\");\n\t\t}\n\n\t\tif (this.options.addClassNames && !this.options.megaMenu) {\n\t\t\tthis.addClassNames(target);\n\t\t}\n\n\t\tif (this.options.megaMenu) {\n\t\t\tthis.megaMenu(target);\n\t\t}\n\n\t\tthis.changeToDesktop();\n\t\tthis.addParentClassNames(target);\n\n\t\tif (this.options.hover) {\n\t\t\tthis.onEvent(target, true);\n\t\t} else {\n\t\t\tthis.onEvent(target, false );\n\t\t}\n\t}\n\n\n\twsMenu.prototype.addClassNames = function (target) {\n\n\t\tvar _this = this;\n\t\tvar tier = {\n\t\t\tzero: [target.querySelectorAll(`.${_this.Elements.container} > .${_this.Elements.list}`), _this.ClassNames.tierZero],\n\t\t\tone: [target.querySelectorAll(`.${_this.Elements.container} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list}`), _this.ClassNames.tierOne],\n\t\t\ttwo: [target.querySelectorAll(`.${_this.Elements.container} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list}`), _this.ClassNames.tierTwo],\n\t\t\tthree: [target.querySelectorAll(`.${_this.Elements.container} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list}`), _this.ClassNames.tierThree],\n\t\t}\n\n\t\tvar key;\n\t\tfor (key in tier) {\n\n\t\t\tvar i;\n\t\t\tfor (i = 0; i < tier[key][0].length; i++) {\n\t\t\t\ttier[key][0][i].classList.add(tier[key][1]);\n\t\t\t}\n\t\t}\n\n\t\tvar number;\n\t\tfor (number in tier) {\n\t\t\tvar tierList = target.querySelectorAll(`.ws_menu__list--tier_${number}`);\n\n\t\t\t//add tier number to the child item of the list--tier_X\n\t\t\ttierList.forEach(function (a) {\n\n\t\t\t\tvar tierListChildren = [].slice.call(a.children);\n\t\t\t\ttierListChildren.forEach(function (b) {\n\n\t\t\t\t\tif (b.tagName !== \"UL\") {\n\t\t\t\t\t\tb.classList.add(`tier_${number}`);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tierListGrandChildren = [].slice.call(b.children);\n\t\t\t\t\ttierListGrandChildren.forEach(function (c) {\n\t\t\t\t\t\tif (c.tagName !== \"UL\") {\n\t\t\t\t\t\t\tc.classList.add(`tier_${number}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tvar k;\n\t\t\tfor (k = 0; k < tierList.length; k++) {\n\t\t\t\tvar tierItems = tierList[k];\n\t\t\t}\n\t\t}\n\t}\n\n\twsMenu.prototype.megaMenu = function (target) {\n\n\t\tvar _this = this;\n\t\tvar tier = {\n\t\t\tzero: [target.querySelectorAll(`.${_this.Elements.container} > .${_this.Elements.list}`), _this.ClassNames.tierZero],\n\t\t\tone: [target.querySelectorAll(`.${_this.Elements.container} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list}`), _this.ClassNames.tierOne],\n\t\t\tmega: [target.querySelectorAll(`.${_this.Elements.container} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list}`), _this.ClassNames.mega],\n\t\t\ttwo: [target.querySelectorAll(`.${_this.Elements.container} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list} > .${_this.Elements.item} > .${_this.Elements.list}`), _this.ClassNames.tierTwo],\n\t\t}\n\n\t\t//add overall mega menu class to the first ancestor of the menu\n\t\tif (!target.classList.contains(_this.Elements.mega)) {\n\t\t\ttarget.classList.add(_this.Elements.mega);\n\t\t}\n\n\t\tvar key;\n\t\tfor (key in tier) {\n\n\t\t\tvar i;\n\t\t\tfor (i = 0; i < tier[key][0].length; i++) {\n\t\t\t\ttier[key][0][i].classList.add(tier[key][1]);\n\t\t\t}\n\t\t}\n\n\t\tvar number;\n\t\tfor (number in tier) {\n\t\t\tvar tierList = target.querySelectorAll(`.ws_menu__list--tier_${number}`);\n\n\t\t\t//add tier number to the child item of the list--tier_X\n\t\t\ttierList.forEach(function (a) {\n\n\t\t\t\tvar tierListChildren = [].slice.call(a.children);\n\t\t\t\ttierListChildren.forEach(function (b) {\n\n\t\t\t\t\tif (b.tagName !== \"UL\") {\n\t\t\t\t\t\tb.classList.add(`tier_${number}`);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tierListGrandChildren = [].slice.call(b.children);\n\t\t\t\t\ttierListGrandChildren.forEach(function (c) {\n\t\t\t\t\t\tif (c.tagName !== \"UL\") {\n\t\t\t\t\t\t\tc.classList.add(`tier_${number}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tvar k;\n\t\t\tfor (k = 0; k < tierList.length; k++) {\n\t\t\t\tvar tierItems = tierList[k];\n\t\t\t}\n\t\t}\n\n\t\t//add grid and full width classes to index 0 & 1 tier_mega elements in mega tier lists\n\t\tvar tierMegaLists = target.querySelectorAll(\".ws_menu__list--tier_mega\");\n\n\t\tif(tierMegaLists) {\n\t\t\ttierMegaLists.forEach(function (elem) {\n\t\t\t\tvar tierMegaElems = elem.querySelectorAll(\".ws_menu__item.tier_mega\");\n\t\t\t\tvar l;\n\t\t\t\t\n\t\t\t\tfor (l = 0; l < tierMegaElems.length; l++) {\n\t\t\t\t\tif (l == 0) {\n\t\t\t\t\t\ttierMegaElems[l].classList.add(_this.ClassNames.grid);\n\t\t\t\t\t} else if (l == 1){\n\t\t\t\t\t\ttierMegaElems[l].classList.add(_this.ClassNames.fullWidthLink);\n\t\t\t\t\t} else if (l == 2){\n\t\t\t\t\t\ttierMegaElems[l].classList.add(_this.ClassNames.list);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t//DETECT\n\twsMenu.prototype.addParentClassNames = function (target) {\n\n\t\tvar menu_items = target.querySelectorAll(\"li\");\n\n\t\tif (menu_items !== \"undefined\") {\n\t\t\tfor (var i = 0; i < menu_items.length; i++) {\n\t\t\t\tvar menu_items_children = menu_items[i].children;\n\t\t\t\tvar submenuDetected = false;\n\t\t\t\tfor (var j = 0; j < menu_items_children.length; j++) {\n\t\t\t\t\tif (menu_items_children[j].tagName == \"UL\") {\n\t\t\t\t\t\tsubmenuDetected = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (submenuDetected) {\n\t\t\t\t\tmenu_items[i].classList.add(\"has_submenu\");\n\t\t\t\t} else {\n\t\t\t\t\tmenu_items[i].classList.add(\"empty\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\twsMenu.prototype.onEvent = function (target) {\n\n\t\tvar _this = this;\n\t\tvar btns = target.querySelectorAll(`.${this.Elements.btn}`);\n\t\tvar numOfbtns = btns.length;\n\n\t\taddClickListeners();\n\n\t\tfunction addClickListeners() {\n\t\t\tbtns.forEach(function(btn){\n\n\t\t\t\tbtn.addEventListener(\"click\", clickListener);\n\n\t\t\t\t function clickListener() {\n\t\t\t\t\tvar siblings = event.target.parentNode.children;\n\t\t\t\t\tvar parent = this.parentNode;\n\t\t\t\t\tvar parentSiblings = getSiblings(parent);\n\t\t\t\t\t\t\tsiblings = [].slice.call(siblings);\n\t\n\t\t\t\t\tsiblings.forEach(function(sibling){\n\t\t\t\t\t\tif (sibling.tagName.toLowerCase() == \"ul\") {\n\t\t\t\t\t\t\t_this.slideToggle(sibling);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t//close other same-tier menues\n\t\t\t\t\tvar k;\n\t\t\t\t\tfor (k = 0; k < parentSiblings.length; k++) {\n\t\t\t\t\t\tif (parentSiblings[k].classList.contains(_this.ClassNames.activeClass)) {\n\t\t\t\t\t\t\t_this.slideUp(parentSiblings[k].querySelector(`.${_this.Elements.list}`));\n\t\t\t\t\t\t\tparentSiblings[k].classList.remove(_this.ClassNames.activeClass);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t//////////////\n\t//vanilla slidetoggle - https://w3bits.com/javascript-slidetoggle/\n\t//////////////\n\n\twsMenu.prototype.slideUp = function slideUp(target) {\n\n\t\tvar listSibling = target.parentNode.querySelector(`.${this.Elements.list}`);\n\t\tvar listParent = target.parentNode;\n\t\tlistParent.classList.remove(this.ClassNames.activeClass);\n\n\t\tvar duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n\t\ttarget.style.transitionProperty = 'height, margin, padding';\n\t\ttarget.style.transitionDuration = duration + 'ms';\n\t\ttarget.style.boxSizing = 'border-box';\n\t\ttarget.style.height = target.offsetHeight + 'px';\n\t\ttarget.offsetHeight;\n\t\ttarget.style.overflow = 'hidden';\n\t\ttarget.style.height = 0;\n\t\ttarget.style.paddingTop = 0;\n\t\ttarget.style.paddingBottom = 0;\n\t\ttarget.style.marginTop = 0;\n\t\ttarget.style.marginBottom = 0;\n\t\t\n\t\tclearTimeout(this.slideDownTimeout);\n\t\tclearTimeout(this.slideUpTimeout);\n\n\t\tthis.slideUpTimeout = setTimeout(function () {\n\t\t\ttarget.style.display = 'none';\n\t\t\ttarget.style.removeProperty('height');\n\t\t\ttarget.style.removeProperty('padding-top');\n\t\t\ttarget.style.removeProperty('padding-bottom');\n\t\t\ttarget.style.removeProperty('margin-top');\n\t\t\ttarget.style.removeProperty('margin-bottom');\n\t\t\ttarget.style.removeProperty('overflow');\n\t\t\ttarget.style.removeProperty('transition-duration');\n\t\t\ttarget.style.removeProperty('transition-property');\n\t\t}, duration);\n\t};\n\n\twsMenu.prototype.slideDown = function slideDown(target) {\n\n\t\tvar listSibling = target.parentNode.querySelector(`.${this.Elements.list}`);\n\t\tvar listParent = target.parentNode;\n\t\tlistParent.classList.add(this.ClassNames.activeClass);\n\n\t\tvar duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n\t\ttarget.style.removeProperty('display');\n\t\tvar display = window.getComputedStyle(target).display;\n\t\tif (display === 'none') display = 'flex';\n\t\ttarget.style.display = display;\n\t\tvar height = target.offsetHeight; \n\t\ttarget.style.overflow = 'hidden';\n\t\ttarget.style.height = 0;\n\t\ttarget.style.paddingTop = 0;\n\t\ttarget.style.paddingBottom = 0;\n\t\ttarget.style.marginTop = 0;\n\t\ttarget.style.marginBottom = 0;\n\t\ttarget.offsetHeight;\n\t\ttarget.style.boxSizing = 'border-box';\n\t\ttarget.style.transitionProperty = \"height, margin, padding\";\n\t\ttarget.style.transitionDuration = duration + 'ms';\n\t\ttarget.style.height = height + 'px';\n\t\ttarget.style.removeProperty('padding-top');\n\t\ttarget.style.removeProperty('padding-bottom');\n\t\ttarget.style.removeProperty('margin-top');\n\t\ttarget.style.removeProperty('margin-bottom');\n\n\t\tclearTimeout(this.slideDownTimeout);\n\t\tclearTimeout(this.slideUpTimeout);\n\n\t\tthis.slideDownTimeout = setTimeout(function () {\n\t\t\ttarget.style.removeProperty('height');\n\t\t\ttarget.style.removeProperty('overflow');\n\t\t\ttarget.style.removeProperty('transition-duration');\n\t\t\ttarget.style.removeProperty('transition-property');\n\t\t}, duration); \n\t};\n\n\twsMenu.prototype.slideToggle = function slideToggle(target) {\n\n\t\tvar duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n\n\t\tif (window.getComputedStyle(target).display === 'none') {\n\t\t\treturn this.slideDown(target, duration);\n\t\t} else {\n\t\t\treturn this.slideUp(target, duration);\n\t\t}\n\t};\n\n\t//remove all event listeners\n\twsMenu.prototype.rebuild = function() {\n\t\tvar _this = this;\n\t\tvar elClone = _this.target.cloneNode(true);\n\t\t_this.target.parentNode.replaceChild(elClone, _this.target);\n\t};\n\n\t//////////////\n\t//////////////\n\n\n\twsMenu.prototype.changeToDesktop = function () {\n\n\t\tvar _this = this;\n\n\t\tvar x = window.matchMedia(`(min-width: ${_this.options.changeToDesktop}px)`);\n\t\tmq(x); // Call listener function at run time\n\t\tx.addListener(mq) // Attach listener function on state changes\n\n\t\tfunction mq(x) {\n\t\t\tif (x.matches) { // If media query matches\n\t\t\t\tdocument.querySelector(_this.options.target).classList.remove(\"ws_menu--mobile\");\n\t\t\t\tdocument.querySelector(_this.options.target).classList.add(\"ws_menu--desktop\");\n\t\t\t} else {\n\t\t\t\tdocument.querySelector(_this.options.target).classList.remove(\"ws_menu--desktop\");\n\t\t\t\tdocument.querySelector(_this.options.target).classList.add(\"ws_menu--mobile\");\n\t\t\t}\n\t\t}\n\t}\n\n\t//\n\t//PRIVATE METHODS\n\t//\n\t// Utility method to extend defaults with user options\n\tfunction extendDefaults(source, properties) {\n\t\tvar property;\n\t\tfor (property in properties) {\n\t\t\tif (properties.hasOwnProperty(property)) {\n\t\t\t\tsource[property] = properties[property];\n\t\t\t}\n\t\t}\n\t\treturn source;\n\t}\n\n\tfunction debounce(func, wait, immediate) {\n\t\tvar timeout;\n\t\treturn function () {\n\t\t\tvar context = this,\n\t\t\t\targs = arguments;\n\t\t\tvar later = function () {\n\t\t\t\ttimeout = null;\n\t\t\t\tif (!immediate) func.apply(context, args);\n\t\t\t};\n\t\t\tvar callNow = immediate && !timeout;\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = setTimeout(later, wait);\n\t\t\tif (callNow) func.apply(context, args);\n\t\t};\n\t}\n\n\tfunction throttle(func, wait, options) {\n\t\tvar context, args, result;\n\t\tvar timeout = null;\n\t\tvar previous = 0;\n\t\tif (!options) options = {};\n\t\tvar later = function () {\n\t\t\tprevious = options.leading === false ? 0 : Date.now();\n\t\t\ttimeout = null;\n\t\t\tresult = func.apply(context, args);\n\t\t\tif (!timeout) context = args = null;\n\t\t};\n\t\treturn function () {\n\t\t\tvar now = Date.now();\n\t\t\tif (!previous && options.leading === false) previous = now;\n\t\t\tvar remaining = wait - (now - previous);\n\t\t\tcontext = this;\n\t\t\targs = arguments;\n\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\tif (timeout) {\n\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\ttimeout = null;\n\t\t\t\t}\n\t\t\t\tprevious = now;\n\t\t\t\tresult = func.apply(context, args);\n\t\t\t\tif (!timeout) context = args = null;\n\t\t\t} else if (!timeout && options.trailing !== false) {\n\t\t\t\ttimeout = setTimeout(later, remaining);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t};\n\n\tfunction getChildren(n, skipMe) {\n\t\tvar r = [];\n\t\tfor (; n; n = n.nextSibling)\n\t\t\tif (n.nodeType == 1 && n != skipMe) \n\t\t\t\tr.push(n);\n\t\treturn r;\n\t};\n\n\tfunction getSiblings(n) {\n\t\treturn getChildren(n.parentNode.firstChild, n);\n\t}\n\n})();\n\n\n"]}