{"version":3,"sources":["webpack:///./src/feature/mobile-menu/mobile-menu.js"],"names":["classes","open","activeItem","mobileItemClass","openMobileItem","MobileMenu","element","el","body","window","features","dom","initDomCache","mobileExpanders","querySelectorAll","addEventListeners","addSubscriptions","addEventListener","link","e","preventDefault","toggleMenu","forEach","item","hideMobileContent","toggleMobileItem","target","contains","classList","remove","subscribe","publish","add","secondSection","openSection","setActiveItem","clearSecondSection","section","closest","querySelector","style","maxHeight","targetSection","targetHasSection","offsetHeight","setTimeout","scrollHeight","topSection","BaseFeature"],"mappings":"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","file":"24-91d49e57.pkg.js","sourcesContent":["import BaseFeature from '../../foundation/base/base';\r\n\r\nconst classes = {\r\n\topen: 'o-mobile-menu--open',\r\n\tactiveItem: 'o-mobile-menu__link--active',\r\n\tmobileItemClass: '.o-mobile-menu__item',\r\n\topenMobileItem: 'o-mobile-menu__item--open'\r\n};\r\n\r\nexport default class MobileMenu extends BaseFeature {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\t\tthis.el = element;\r\n\t\tthis.body = window.features.dom.body;\r\n\t\tthis.initDomCache();\r\n\r\n\t\tthis.mobileExpanders = this.el.querySelectorAll('[data-js=\"item-expander\"]');\r\n\r\n\t\tthis.addEventListeners();\r\n\t\tthis.addSubscriptions();\r\n\t}\r\n\r\n\taddEventListeners() {\r\n\t\tthis.addEventListener(this.dom.link, 'click', (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tthis.toggleMenu();\r\n\t\t});\r\n\r\n\t\t// Mobile items\r\n\t\tthis.mobileExpanders.forEach((item) => {\r\n\t\t\tMobileMenu.hideMobileContent(item);\r\n\r\n\t\t\tthis.addEventListener(item, 'click', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tMobileMenu.toggleMobileItem(e.target);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.addEventListener(this.body, 'click', (e) => {\r\n\t\t\tif (!this.el.contains(e.target)) {\r\n\t\t\t\tthis.el.classList.remove(classes.open);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\taddSubscriptions() {\r\n\t\tthis.subscribe('/header/action/switch', () => {\r\n\t\t\tif (this.el.classList.contains(classes.open)) {\r\n\t\t\t\tthis.el.classList.remove(classes.open);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/* ------------------------------------ *\\\r\n\t\t\t\tGeneral methods\r\n\t\\* ------------------------------------ */\r\n\r\n\ttoggleMenu() {\r\n\t\tif (this.el.classList.contains(classes.open)) {\r\n\t\t\tthis.el.classList.remove(classes.open);\r\n\t\t} else {\r\n\t\t\tthis.publish('/header/action/switch');\r\n\t\t\tthis.el.classList.add(classes.open);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tcloseMenu() {\r\n\t\tif (this.dom.secondSection.classList.contains(classes.openSection)) {\r\n\t\t\tthis.dom.secondSection.classList.remove(classes.openSection);\r\n\t\t}\r\n\t\tif (this.el.classList.contains(classes.open)) {\r\n\t\t\tthis.el.classList.remove(classes.open);\r\n\t\t}\r\n\t\tthis.setActiveItem(null); // Remove active items when menu is closed\r\n\t\tthis.clearSecondSection();\r\n\t}\r\n\r\n\r\n\t/* ------------------------------------ *\\\r\n\t\t\t\tDesktop methods\r\n\t\\* ------------------------------------ */\r\n\r\n\t/* ------------------------------------ *\\\r\n\t\t\t\tMobile methods\r\n\t\\* ------------------------------------ */\r\n\r\n\tstatic hideMobileContent(item) {\r\n\t\tconst section = item.closest(classes.mobileItemClass).querySelector('[data-js=\"item-section\"]');\r\n\t\tsection.style.maxHeight = '0px';\r\n\t}\r\n\r\n\tstatic toggleMobileItem(item) {\r\n\t\t// TODO: Update function to not use 'max-height none'.\r\n\t\t// Then we dont need to use a timeout, causing a slight delay in UX\r\n\t\tconst target = item.closest(classes.mobileItemClass); // Get closest item\r\n\t\tconst targetSection = target.querySelector('[data-js=\"item-section\"]'); // Get section that should be expanded\r\n\t\tconst targetHasSection = targetSection.querySelector('[data-js=\"item-section\"]'); // Check if section has children sections\r\n\r\n\t\tif (target.classList.contains(classes.openMobileItem)) {\r\n\t\t\t// If item is open, remove class\r\n\r\n\t\t\t// Due to using 'max-height none' further down, before we can close item,\r\n\t\t\t// we need calculate the height and then set it to none.\r\n\t\t\ttarget.classList.remove(classes.openMobileItem);\r\n\t\t\ttargetSection.style.maxHeight = targetSection.offsetHeight + 'px';\r\n\t\t\t// We need an empty timeout to be able to calculate height properly\r\n\t\t\t// due to 'co-operative multitasking'\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\ttargetSection.style.maxHeight = '0px';\r\n\t\t\t}, 0);\r\n\t\t} else {\r\n\t\t\t// Else, add 'open' class to item\r\n\t\t\ttarget.classList.add(classes.openMobileItem);\r\n\t\t\t// Update target section height\r\n\t\t\tif (targetSection) {\r\n\t\t\t\ttargetSection.style.maxHeight = targetSection.scrollHeight + 'px';\r\n\t\t\t}\r\n\t\t\t// If target has no section, we need to update closest second section height\r\n\t\t\tif (!targetHasSection) {\r\n\t\t\t\tconst topSection = target.closest('.o-mobile-menu__second-section');\r\n\t\t\t\ttopSection.style.maxHeight = 'none';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n"],"sourceRoot":""}
bet365-Sports-careers@ferrosound.net
361房车网
Wynn-Gaming-hr@theabsolutelongestwebdomainnameinthewholegoddamnfuckinguniverse.com
丝路英雄官方网站
威尼斯人网上赌场
Crown-Sports-website-billing@gsy1258.com
Buy-ball-app-support@ejly.net
Gaming-platform-media@rf518.com
51咒语大全
Buy-ball-app-info@metcoelectronics.com
中文电码查询
Crown-Sports-careers@muurausahvenlampi.com
沙巴体育
皇冠现金网
Buy-ball-app-hr@xingtaiyichuang.com
婺城新闻网
Sports-betting-marketing@mygril-yaoyao.com
阳泉天气预报
Galaxy-Macau-hr@25674.net
Sport-Venetian-help@tccestates.com
全时
南宁住房公积金网
中国日报网
珠海赶集网
太原交警网
澳客网排列5
宁波地图
内蒙古自治区地方税务局
河南整形美容医院
徐福记
山西晚报
站点地图
达州天气预报
青白江论坛