{"version":3,"sources":["webpack:///./app/components/modules/DropdownAlignment/index.js"],"names":["__webpack_require__","_domHelpers","_class","context","_classCallCheck","this","handleImageLazyLoading","event","featuredContent","target","parentNode","querySelector","featuredContentImageHolders","querySelectorAll","allFeaturedImagesHidden","every","featuredContentImageHolder","classList","contains","forEach","remove","Blazy","revalidate","_context","_dropdowns","_navButtons","_dropdownActiveClass","init","_this","containerWith","parentElement","offsetWidth","length","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","Symbol","iterator","next","done","dropdown","value","parent","limitedDistance","offsetLeft","hasClass","className","err","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","navButton","addEventListener","toggleDropdown","add"],"mappings":"ybAAAA,EAAA,KACAC,EAAAD,EAAA,qBAGE,SAAAE,EAAYC,gGAASC,CAAAC,KAAAH,GAAAG,KAiDrBC,uBAAyB,SAACC,GACxB,IAAMC,EAAkBD,EAAME,OAAOC,WAAWC,cAAc,8BAE9D,GAAIH,EAAiB,CACnB,IAAMI,mIAAkCJ,EAAgBK,iBAAiB,mCAEnEC,EAA0BF,EAA4BG,MAAM,SAAAC,GAAA,OAA8BA,EAA2BC,UAAUC,SADtG,0CAG3BN,GAA+BE,IACjCF,EAA4BO,QAAQ,SAAAH,GAClCA,EAA2BC,UAAUG,OALV,0CAO7BC,UAAMC,gBA3DVjB,KAAKkB,SAAWpB,EAGhBE,KAAKmB,WAAanB,KAAKkB,SAASV,iBAAiB,aACjDR,KAAKoB,YAAcpB,KAAKkB,SAASV,iBAAiB,wBAClDR,KAAKqB,qBAAuB,gBAG5BrB,KAAKsB,gDAGA,IAAAC,EAAAvB,KAGCwB,EADYxB,KAAKkB,SAASO,cACAC,YAChC,GAAI1B,KAAKmB,WAAWQ,OAAS,EAAG,KAAAC,GAAA,EAAAC,GAAA,EAAAC,OAAAC,EAAA,IAC9B,QAAAC,EAAAC,EAAqBjC,KAAKmB,WAA1Be,OAAAC,cAAAP,GAAAI,EAAAC,EAAAG,QAAAC,MAAAT,GAAA,EAAsC,KAA7BU,EAA6BN,EAAAO,MAC9BC,EAASF,EAASb,cAIlBgB,EAAkBjB,EAHHgB,EAAOE,WACRF,EAAOd,YAGLY,EAASZ,YAEXe,GACb,EAAA7C,EAAA+C,UAASL,EAAU,aAAcA,EAASb,cAAcmB,WAAa,aAEtE,EAAAhD,EAAA+C,UAASL,EAAU,aAAcA,EAASb,cAAcmB,WAAa,aAZ/C,MAAAC,GAAAhB,GAAA,EAAAC,EAAAe,EAAA,aAAAjB,GAAAK,EAAAa,QAAAb,EAAAa,SAAA,WAAAjB,EAAA,MAAAC,IAgBhC,GAAI9B,KAAKoB,YAAYO,OAAS,EAAG,KAAAoB,GAAA,EAAAC,GAAA,EAAAC,OAAAlB,EAAA,IAC/B,QAAAmB,EAAAC,EAAsBnD,KAAKoB,YAA3Bc,OAAAC,cAAAY,GAAAG,EAAAC,EAAAf,QAAAC,MAAAU,GAAA,EAAwC,KAA/BK,EAA+BF,EAAAX,MACtCa,EAAUC,iBAAiB,QAAS,SAAAnD,GAAA,OAASqB,EAAK+B,eAAepD,KACjEkD,EAAUC,iBAAiB,YAAa,SAAAnD,GAAA,OAASqB,EAAKtB,uBAAuBC,MAHhD,MAAA2C,GAAAG,GAAA,EAAAC,EAAAJ,EAAA,aAAAE,GAAAI,EAAAL,QAAAK,EAAAL,SAAA,WAAAE,EAAA,MAAAC,4CAQpB/C,GACb,IAAIoC,EAAWpC,EAAME,OAAOE,cAAc,+BACtCgC,GACFA,EAAS1B,UAAU2C,IAAIvD,KAAKqB,sBAE9BrB,KAAKC,uBAAuBC","file":"DropdownAlignment-f8f256e651ae08681398.js","sourcesContent":["import Blazy from '../../../managers/blazy';\r\nimport {hasClass} from '../../../util/dom-helpers';\r\n\r\nexport default class {\r\n constructor(context) {\r\n // Set Context\r\n this._context = context;\r\n\r\n // Set State Values\r\n this._dropdowns = this._context.querySelectorAll('.dropdown');\r\n this._navButtons = this._context.querySelectorAll('[data-element=\"nav\"]');\r\n this._dropdownActiveClass = \"mobile-active\";\r\n\r\n // Initialise component\r\n this.init();\r\n }\r\n\r\n init() {\r\n \r\n const container = this._context.parentElement;\r\n const containerWith = container.offsetWidth;\r\n if (this._dropdowns.length > 0) {\r\n for (let dropdown of this._dropdowns) {\r\n const parent = dropdown.parentElement;\r\n const parentOffset = parent.offsetLeft;\r\n const parentWidth = parent.offsetWidth;\r\n\r\n const limitedDistance = containerWith - parentOffset - parentWidth;\r\n const dropdownWidth = dropdown.offsetWidth;\r\n\r\n if (dropdownWidth > limitedDistance) {\r\n if (!hasClass(dropdown, \"aligned\")) { dropdown.parentElement.className += \" aligned\" }\r\n } else\r\n if (hasClass(dropdown, \"aligned\")) { dropdown.parentElement.className -= \" aligned\" }\r\n }\r\n }\r\n\r\n if (this._navButtons.length > 0) {\r\n for (let navButton of this._navButtons) {\r\n navButton.addEventListener('click', event => this.toggleDropdown(event));\r\n navButton.addEventListener('mouseover', event => this.handleImageLazyLoading(event));\r\n }\r\n }\r\n }\r\n\r\n toggleDropdown(event) {\r\n let dropdown = event.target.querySelector('[data-component=\"Megamenu\"]');\r\n if (dropdown) {\r\n dropdown.classList.add(this._dropdownActiveClass);\r\n }\r\n this.handleImageLazyLoading(event);\r\n }\r\n\r\n handleImageLazyLoading = (event) => {\r\n const featuredContent = event.target.parentNode.querySelector('.site-navigation__featured');\r\n \r\n if (featuredContent) {\r\n const featuredContentImageHolders = [...featuredContent.querySelectorAll('.site-navigation__imageHolder')];\r\n const imageHolderHiddenClass = 'site-navigation__imageHolder--hidden';\r\n const allFeaturedImagesHidden = featuredContentImageHolders.every(featuredContentImageHolder => featuredContentImageHolder.classList.contains(imageHolderHiddenClass));\r\n \r\n if (featuredContentImageHolders && allFeaturedImagesHidden) {\r\n featuredContentImageHolders.forEach(featuredContentImageHolder => {\r\n featuredContentImageHolder.classList.remove(imageHolderHiddenClass);\r\n });\r\n Blazy.revalidate();\r\n }\r\n }\r\n }\r\n}\r\n"],"sourceRoot":""}