{"version":3,"file":"js/header.a3cb4f6673c450f9416e.js","mappings":"mBAEA,MAAMA,EAAcC,SAASC,cAAc,QACrCC,EAASF,SAASC,cAAc,WAChCE,EAAeD,EAAOE,aAC5B,IAAIC,GAAgB,EAGpB,MAAMC,EAAoBC,OAAOC,WAAW,uBAE5C,SAASC,IACPP,EAAOQ,UAAUC,OAAO,iBACxBZ,EAAYW,UAAUC,OAAO,eAC7BN,GAAgB,CAClB,CAEA,SAASO,IACPV,EAAOQ,UAAUG,IAAI,iBACrBd,EAAYW,UAAUG,IAAI,eAC1BR,GAAgB,CAClB,CAEA,MAAMS,ECtBC,SAAkBC,EAAgCC,EAAU,KACjE,IAAIC,EAEJ,OAAO,SAASC,KAAcC,GAC5BC,aAAaH,GACbA,EAAQI,YAAW,KACjBN,EAAKO,MAAMJ,EAAMC,EAAK,GACrBH,EACL,CACF,CDa0BO,EAAS,KAC7BxB,EAAYW,UAAUc,SAAS,kBAI/BjB,OAAOkB,QAAUtB,IAAiBE,EACpCO,IAEOL,OAAOkB,SAAWtB,GAAgBE,GACzCI,I,GAED,KAEGiB,EAAQC,IACRA,EAAMC,SACJrB,OAAOkB,QAAUtB,IAAiBE,GACpCO,IAEFL,OAAOsB,iBAAiB,SAAUf,KAE9BT,GACFI,IAEFF,OAAOuB,oBAAoB,SAAUhB,G,EAIzCR,EAAkBuB,iBAAiB,SAAUH,GAC7CA,EAAKpB,E","sources":["webpack:///./Features/Layout/Features/Header/js/header.ts","webpack:///./Frontend/js/util/debounce.ts"],"sourcesContent":["import { debounce } from '../../../../../Frontend/js/util/debounce';\r\n\r\nconst bodyElement = document.querySelector(\"body\")!;\r\nconst header = document.querySelector(\".header\") as HTMLElement;\r\nconst headerHeight = header.clientHeight;\r\nlet isHeaderFixed = false;\r\n\r\n/* Media query for desktop */\r\nconst desktopMediaQuery = window.matchMedia(\"(min-width: 1260px)\");\r\n\r\nfunction clearHeaderFixed(): void {\r\n header.classList.remove(\"header--fixed\");\r\n bodyElement.classList.remove(\"padding-top\");\r\n isHeaderFixed = false;\r\n}\r\n\r\nfunction makeHeaderFixed(): void {\r\n header.classList.add(\"header--fixed\");\r\n bodyElement.classList.add(\"padding-top\");\r\n isHeaderFixed = true;\r\n}\r\n\r\nconst toggleHeaderFixed = debounce((): void => {\r\n if (bodyElement.classList.contains(\"menu-is-open\")) {\r\n return;\r\n }\r\n\r\n if (window.scrollY > headerHeight && !isHeaderFixed) {\r\n makeHeaderFixed()\r\n }\r\n else if (window.scrollY <= headerHeight && isHeaderFixed) {\r\n clearHeaderFixed();\r\n }\r\n}, 100);\r\n\r\nconst blub = (event: MediaQueryListEvent | MediaQueryList): void => {\r\n if (event.matches) {\r\n if (window.scrollY > headerHeight && !isHeaderFixed) {\r\n makeHeaderFixed();\r\n }\r\n window.addEventListener(\"scroll\", toggleHeaderFixed);\r\n } else {\r\n if (isHeaderFixed) {\r\n clearHeaderFixed();\r\n }\r\n window.removeEventListener(\"scroll\", toggleHeaderFixed);\r\n }\r\n}\r\n\r\ndesktopMediaQuery.addEventListener('change', blub);\r\nblub(desktopMediaQuery);\r\n","export function debounce(func: (...args: any[]) => void, timeout = 300) {\r\n let timer: NodeJS.Timeout;\r\n\r\n return function(self: any, ...args: any[]) {\r\n clearTimeout(timer);\r\n timer = setTimeout(() => {\r\n func.apply(self, args);\r\n }, timeout);\r\n };\r\n}"],"names":["bodyElement","document","querySelector","header","headerHeight","clientHeight","isHeaderFixed","desktopMediaQuery","window","matchMedia","clearHeaderFixed","classList","remove","makeHeaderFixed","add","toggleHeaderFixed","func","timeout","timer","self","args","clearTimeout","setTimeout","apply","debounce","contains","scrollY","blub","event","matches","addEventListener","removeEventListener"],"sourceRoot":""}