{"version":3,"file":"stickyheader-475a0a90.js","names":["define","Moduler","create","defaults","init","self","this","document","querySelectorAll","forEach","t","addEventListener","stickyHeader","classList","contains","window","setTimeout","scrollBy","header","querySelector","deviceHeader","headerHeight","deviceHeaderHight","headerHeightRef","stickyHeaderHight","topRef","body","add","onResize","getBoundingClientRect","height","top","scrollY","prevScrollY","currentScrollY","disableEvents","stickyMenu","remove","style","wasHidden","recalc","wasVisible","onScroll","type","evt","Event","s","dispatchEvent"],"sources":["stickyheader.js"],"mappings":"AAAAA,OAAO,CAAC,YAAY,SAAUC,GAC1B,aAEA,OAAOA,EAAQC,OAAO,CAClBC,SAAU,CAEV,EAEAC,KAAM,WACF,IAAIC,EAAOC,KAEXC,SAASC,iBAAiB,cAAcC,SAAQC,IAC5CA,EAAEC,iBAAiB,SAAS,WACpBC,EAAaC,UAAUC,SAAS,uBAChCC,OAAOC,YAAW,WACdD,OAAOE,SAAS,EAAG,EACvB,GAAG,IAEX,GAAE,IAGN,MAAMC,EAASX,SAASY,cAAc,WAChCC,EAAeb,SAASY,cAAc,sBAO5C,IAAIE,EACAC,EACAV,EACAW,EACAC,EACAC,EAVAlB,SAASmB,KAAKb,UAAUC,SAAS,qBACjCM,EAAaP,UAAUc,IAAI,0BAC3BT,EAAOL,UAAUc,IAAI,2BAUzB,MAAMC,EAAW,KACbP,EAAeH,EAAOW,wBAAwBC,OAC9CR,EAAoBF,EAAaS,wBAAwBC,OACzDlB,EAAiBS,EAAeH,EAASE,EACzCG,EAAoBF,GAA8BC,EAClDE,EAAsBH,EAAe,QAAU,OAC/CI,EAAWJ,EAAeH,EAAOW,wBAAwBE,IAAMX,EAAaS,wBAAwBE,IACpGN,GAAUV,OAAOiB,OAAO,EAE5BJ,IAEA,IAAIK,EAAc,EAyDlBlB,OAAOC,YAAW,WACdD,OAAOJ,iBAAiB,UAAU,KAC9BiB,GAAU,IAGdb,OAAOJ,iBAAiB,UAAU,KA7DrBuB,KACb,GAAI7B,EAAK8B,cAEL,YADA9B,EAAK8B,eAAgB,GAIzB,MAAMC,EAAa7B,SAASY,cAAc,mBAC1C,GAAIe,EAAiBD,GAejB,GAdIC,GAAmB,EAAIT,IACvBb,EAAaC,UAAUwB,OAAO,wBAC9BzB,EAAaC,UAAUwB,OAAO,2BAG9BH,EAAoC,GAAlBX,EAAwBE,GAC1Cb,EAAaC,UAAUwB,OAAO,6BAG9BH,EAAoC,GAAlBX,EAAwBE,IAC1Cb,EAAa0B,MAAMR,OAASN,EAC5BZ,EAAaC,UAAUwB,OAAO,6BAG9BH,EAAkBX,EAAkBE,EAAS,CAC7C,IAAIc,GAAa3B,EAAaC,UAAUC,SAAS,sBAEjDF,EAAaC,UAAUc,IAAI,6BAC3Bf,EAAaC,UAAUc,IAAI,0BAC3Bf,EAAaC,UAAUc,IAAI,sBAC3Bf,EAAa0B,MAAMR,OAAWT,EAAe,QAAU,OAEvDH,EAAOL,UAAUc,IAAI,uBAAwB,4BAA6B,0BAC1EP,EAAaP,UAAUc,IAAI,uBAAwB,4BAA6B,0BAChFS,GAAcA,EAAWvB,UAAUC,SAAS,cAAgBsB,EAAWvB,UAAUc,IAAI,qBAEjFY,GACAlC,EAAKmC,OAAO,OAEpB,OAGA,GAAIN,EAAkBX,EAAkBE,EAAS,CAC7C,IAAIgB,EAAa7B,EAAaC,UAAUC,SAAS,sBACjDF,EAAaC,UAAUwB,OAAO,sBAC9BzB,EAAaC,UAAUc,IAAI,uBAAwB,4BACnDf,EAAa0B,MAAMR,OAAWT,EAAe,QAAU,OAEvDe,GAAcA,EAAWvB,UAAUwB,OAAO,qBAEtCI,GACApC,EAAKmC,OAAO,OAEpB,CAEJP,EAAcC,CAAc,EASxBQ,CAAS3B,OAAOiB,QAAO,GAE/B,GAAG,IACP,EAEAQ,OAAQ,SAASG,GACb,IAAIC,EAAM,IAAIC,MAAM,UACpBtC,SAASC,iBAAiB,8DAA8DC,SAAQqC,IAE5FA,EAAEC,cAAcH,EAAI,GAE5B,GAER","sourcesContent":["define(['moduler'], function (Moduler) {\r\n 'use strict';\r\n\r\n return Moduler.create({\r\n defaults: {\r\n\r\n },\r\n\r\n init: function () {\r\n let self = this;\r\n\r\n document.querySelectorAll('.Tabs-link').forEach(t => { \r\n t.addEventListener('click', function () {\r\n if (stickyHeader.classList.contains('StickyHeader--show')) {\r\n window.setTimeout(function () {\r\n window.scrollBy(0, 1);\r\n }, 100);\r\n }\r\n });\r\n });\r\n\r\n const header = document.querySelector('.Header');\r\n const deviceHeader = document.querySelector('.DeviceNav-wrapper')\r\n\r\n if (document.body.classList.contains('js-invertHeader')) {\r\n deviceHeader.classList.add('StickyHeader--inverted');\r\n header.classList.add('StickyHeader--inverted');\r\n }\r\n\r\n let headerHeight;\r\n let deviceHeaderHight;\r\n let stickyHeader;\r\n let headerHeightRef;\r\n let stickyHeaderHight;\r\n let topRef;\r\n\r\n const onResize = () => {\r\n headerHeight = header.getBoundingClientRect().height;\r\n deviceHeaderHight = deviceHeader.getBoundingClientRect().height;\r\n stickyHeader = !!headerHeight ? header : deviceHeader;\r\n headerHeightRef = !!headerHeight ? headerHeight : deviceHeaderHight;\r\n stickyHeaderHight = !!headerHeight ? '146px' : '60px';\r\n topRef = !!headerHeight ? header.getBoundingClientRect().top : deviceHeader.getBoundingClientRect().top;\r\n topRef += window.scrollY;\r\n }\r\n onResize();\r\n\r\n let prevScrollY = 0;\r\n const onScroll = currentScrollY => {\r\n if (self.disableEvents) {\r\n self.disableEvents = false;\r\n return;\r\n }\r\n\r\n const stickyMenu = document.querySelector('.Sticky-element');\r\n if (currentScrollY < prevScrollY) {\r\n if (currentScrollY <= (1 + topRef)) {\r\n stickyHeader.classList.remove('StickyHeader--sticky');\r\n stickyHeader.classList.remove('StickyHeader--animated');\r\n }\r\n\r\n if (currentScrollY < (headerHeightRef * .2) + topRef) {\r\n stickyHeader.classList.remove('StickyHeader--proportions');\r\n }\r\n\r\n if (currentScrollY < (headerHeightRef * .4) + topRef) {\r\n stickyHeader.style.height = stickyHeaderHight;\r\n stickyHeader.classList.remove('StickyHeader--background')\r\n }\r\n\r\n if (currentScrollY > (headerHeightRef + topRef)) {\r\n let wasHidden = !stickyHeader.classList.contains('StickyHeader--show');\r\n\r\n stickyHeader.classList.add('StickyHeader--proportions');\r\n stickyHeader.classList.add('StickyHeader--animated');\r\n stickyHeader.classList.add('StickyHeader--show');\r\n stickyHeader.style.height = !!headerHeight ? '146px' : '60px';\r\n\r\n header.classList.add('StickyHeader--sticky', 'StickyHeader--proportions', 'StickyHeader--animated');\r\n deviceHeader.classList.add('StickyHeader--sticky', 'StickyHeader--proportions', 'StickyHeader--animated');\r\n stickyMenu && stickyMenu.classList.contains('is-sticky') && stickyMenu.classList.add('StickyMenu-offset');\r\n\r\n if (wasHidden) {\r\n self.recalc('show');\r\n }\r\n }\r\n\r\n } else {\r\n if (currentScrollY > (headerHeightRef + topRef)) {\r\n let wasVisible = stickyHeader.classList.contains('StickyHeader--show');\r\n stickyHeader.classList.remove('StickyHeader--show');\r\n stickyHeader.classList.add('StickyHeader--sticky', 'StickyHeader--background');\r\n stickyHeader.style.height = !!headerHeight ? '146px' : '60px';\r\n\r\n stickyMenu && stickyMenu.classList.remove('StickyMenu-offset');\r\n\r\n if (wasVisible) {\r\n self.recalc('hide');\r\n }\r\n }\r\n }\r\n prevScrollY = currentScrollY;\r\n }\r\n\r\n window.setTimeout(function () {\r\n window.addEventListener('resize', () => {\r\n onResize();\r\n });\r\n\r\n window.addEventListener('scroll', () => {\r\n onScroll(window.scrollY)\r\n });\r\n }, 500);\r\n },\r\n\r\n recalc: function(type) {\r\n let evt = new Event('recalc');\r\n document.querySelectorAll('[data-module*=sticky i]:not([data-module*=stickyheader i])').forEach(s => {\r\n //console.log('dispatch ' + type + ': ' + s);\r\n s.dispatchEvent(evt);\r\n });\r\n }\r\n });\r\n});"]}