{"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":""}
三英精密
太阳城网址
Crown-camp-contactus@zaibj.net
Venetian-gambling-feedback@najwc.com
Sports-betting-platform-info@lyhymh.net
365编辑器
峆一药业
沙巴官网
足球博彩
免费征婚网
洁华控股
皇冠体育官网
玩家网PSP中国站
骄阳网新闻频道
海参之家
集丝素材网
CF131官网
北京四中
皇冠体育
博购官网
谐通科技
游戏魅
若人特价
淘美居
雅酷卡
四川新闻网宜宾频道
英文名人名词典
黑龙江职业学院
汽车违章查询网
9188彩票网
钦浪网
商标圈
返还网优惠券
中国衡水
丽江政务网