{"version":3,"file":"index-DfTPAqXy.js","sources":["../../Assets/Scripts/utils/debounce.ts","../../Assets/Scripts/components/scrollTop/index.ts"],"sourcesContent":["const debounce = ) => ReturnType>(\n func: F,\n waitFor: number = 200,\n) => {\n let timeout: ReturnType;\n\n return (...args: Parameters) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => func(...args), waitFor);\n };\n};\n\nexport default debounce;\n","import debounce from \"../../utils/debounce\";\nimport { CSS } from \"../../constants/css\";\n\n/**\n * Component handling scrolling users back to the top of the page.\n */\n\nconst instance = ($el: Element) => {\n const checkShouldShow = () => {\n if (document.documentElement.scrollTop > window.screen.height) {\n $el.classList.add(CSS.visible);\n return;\n }\n\n $el.classList.remove(CSS.visible);\n };\n\n const scrollToTop = (e: Event) => {\n e.preventDefault();\n\n window.scrollTo(0, 0);\n\n return false;\n };\n\n $el.addEventListener(\"click\", scrollToTop);\n\n document.addEventListener(\"scroll\", debounce(checkShouldShow));\n checkShouldShow();\n};\n\n/**\n * Initialises each element matching the selector.\n */\nconst scrollTop = () => {\n const SELECTOR = \".js-scroll-top\";\n\n document.querySelectorAll(SELECTOR).forEach(($el: Element) => {\n instance($el);\n });\n};\n\nexport default scrollTop;\n"],"names":["debounce","func","waitFor","timeout","args","instance","$el","checkShouldShow","CSS","scrollToTop","e","scrollTop"],"mappings":"uCAAA,MAAMA,EAAW,CACfC,EACAC,EAAkB,MACf,CACC,IAAAC,EAEJ,MAAO,IAAIC,IAAwB,CACjC,aAAaD,CAAO,EACpBA,EAAU,WAAW,IAAMF,EAAK,GAAGG,CAAI,EAAGF,CAAO,CACnD,CACF,ECHMG,EAAYC,GAAiB,CACjC,MAAMC,EAAkB,IAAM,CAC5B,GAAI,SAAS,gBAAgB,UAAY,OAAO,OAAO,OAAQ,CACzDD,EAAA,UAAU,IAAIE,EAAI,OAAO,EAC7B,MAAA,CAGEF,EAAA,UAAU,OAAOE,EAAI,OAAO,CAClC,EAEMC,EAAeC,IACnBA,EAAE,eAAe,EAEV,OAAA,SAAS,EAAG,CAAC,EAEb,IAGLJ,EAAA,iBAAiB,QAASG,CAAW,EAEzC,SAAS,iBAAiB,SAAUT,EAASO,CAAe,CAAC,EAC7CA,EAAA,CAClB,EAKMI,EAAY,IAAM,CAGtB,SAAS,iBAFQ,gBAEiB,EAAE,QAASL,GAAiB,CAC5DD,EAASC,CAAG,CAAA,CACb,CACH"}