{"version":3,"file":"js/listing-page.e33f444b901d9b689be4.js","mappings":"mBAAA,MAAMA,EAASC,SAASC,cAAc,WAChCC,EAAgBF,SAASG,iBAAiB,mBAC1CC,EAAWJ,SAASG,iBAAiB,0BACrCE,EAAY,IAAIC,gBAAgBC,OAAOC,SAASC,QAGtD,SAASC,EAAWC,GAClBA,EAAOC,UAAUC,IAAI,kBACrBF,EAAOG,aAAa,eAAgB,OACtC,CAqCA,SAASC,EAAeC,GACtB,MAAMC,EAAuBjB,SAASC,cAAc,WAA+BiB,aACnFX,OAAOY,SAAS,CAACC,IAAKJ,EAAQK,UAAYJ,EAAqBK,SAAU,UAC3E,EArCA,WACE,MAAMC,EAAmClB,EAAUmB,IAAI,UACjDC,EAAiCpB,EAAUmB,IAAI,QAEjDtB,EAAcwB,OAAS,IACpBH,GAAsBE,GAGlBF,GAAqBE,KAE5BvB,EAAcyB,SAAShB,IACrB,IAAIiB,EAAajB,EAAOkB,aAAaC,OAEjCP,IAAsBK,GAAcH,IAAoBG,GAC1DlB,EAAWC,E,IAIfI,EAAehB,IAZfW,EAAWR,EAAc,IAe/B,CAkBA6B,GAfA,WACE,MAAMC,EAAiC3B,EAAUmB,IAAI,QAErD,GAAIQ,GAAmB5B,EAASsB,OAAS,EAAG,CAE1CX,EADqBX,EAAS6B,SAASD,EAAiB,K,CAG5D,CASAE,E","sources":["webpack:///./Features/Pages/ListingPage/_js/listing-page.ts"],"sourcesContent":["const filter = document.querySelector('.filter') as HTMLElement;\r\nconst filterButtons = document.querySelectorAll('.button--filter') as NodeListOf;\r\nconst articles = document.querySelectorAll('.listing-page__article') as NodeListOf;\r\nconst urlParams = new URLSearchParams(window.location.search);\r\n\r\n// Add the active class to the selected filter button\r\nfunction makeActive(button: HTMLAnchorElement): void {\r\n button.classList.add('button--active');\r\n button.setAttribute('aria-current', 'true');\r\n}\r\n\r\n// Set the default filter\r\nfunction setDefaultFilter(): void {\r\n const filterQueryString: string | null = urlParams.get('filter');\r\n const yearQueryString: string | null = urlParams.get('year');\r\n\r\n if (filterButtons.length > 0) {\r\n if (!filterQueryString && !yearQueryString) {\r\n makeActive(filterButtons[0]);\r\n }\r\n else if (filterQueryString || yearQueryString) {\r\n // Loop through the filter buttons and set the active class to the button that matches the query string\r\n filterButtons.forEach((button: HTMLAnchorElement) => {\r\n let buttonText = button.textContent?.trim();\r\n\r\n if (filterQueryString === buttonText || yearQueryString === buttonText) {\r\n makeActive(button);\r\n }\r\n });\r\n\r\n scrollIntoView(filter);\r\n }\r\n }\r\n}\r\n\r\n// Scroll to the first article if the take query string is present\r\nfunction scrollNextElementIntoView(): void {\r\n const takeQueryString: string | null = urlParams.get('take');\r\n\r\n if (takeQueryString && articles.length > 0) {\r\n const firstArticle = articles[parseInt(takeQueryString, 10)];\r\n scrollIntoView(firstArticle);\r\n }\r\n}\r\n\r\n// Scroll to element\r\nfunction scrollIntoView(element: HTMLElement): void {\r\n const headerElementHeight = (document.querySelector(\".header\") as HTMLHeadElement).scrollHeight;\r\n window.scrollTo({top: element.offsetTop - headerElementHeight, behavior: 'smooth'})\r\n}\r\n\r\nsetDefaultFilter();\r\nscrollNextElementIntoView();\r\n"],"names":["filter","document","querySelector","filterButtons","querySelectorAll","articles","urlParams","URLSearchParams","window","location","search","makeActive","button","classList","add","setAttribute","scrollIntoView","element","headerElementHeight","scrollHeight","scrollTo","top","offsetTop","behavior","filterQueryString","get","yearQueryString","length","forEach","buttonText","textContent","trim","setDefaultFilter","takeQueryString","parseInt","scrollNextElementIntoView"],"sourceRoot":""}