{"version":3,"file":"listing-page.bundle.js","mappings":"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","sources":["webpack://enjoy-digital-frontend-foundation/./assets/src/js/pages/listing-page.js","webpack://enjoy-digital-frontend-foundation/./assets/src/js/modules/lazyLoadImages.js"],"sourcesContent":["import { lazyLoadImages } from '../modules/lazyLoadImages';\r\nimport { scrollTo } from '../modules/functions';\r\n\r\ndocument.addEventListener('change', function (e) {\r\n if (e.target && e.target.className.includes(\"tag\")) {\r\n applyFilters(e.target);\r\n }\r\n});\r\n\r\ndocument.addEventListener('click', function (e) {\r\n if (e.target) {\r\n if (e.target.tagName == \"A\" && (e.target.className.includes(\"pag-button\") || e.target.className.includes(\"pag-number\"))) {\r\n e.preventDefault();\r\n applyFilters(null, e.target.getAttribute(\"href\"));\r\n }\r\n else if (e.target.parentNode.tagName == \"A\" && (e.target.parentNode.className.includes(\"pag-button\") || e.target.parentNode.className.includes(\"pag-number\"))) {\r\n e.preventDefault();\r\n applyFilters(null, e.target.parentNode.getAttribute(\"href\"));\r\n }\r\n }\r\n});\r\n\r\nfunction applyFilters(activeTag, queryString, skipState) {\r\n var filterForm = document.querySelector(\".filter-form\");\r\n if (filterForm) {\r\n var httpRequest = new XMLHttpRequest();\r\n\r\n if (!httpRequest) {\r\n addError(\"Error retrieving information, please try again later.\");\r\n console.log('Cannot create an XMLHTTP instance'); //TODO: Handle this error\r\n return false;\r\n }\r\n\r\n httpRequest.onreadystatechange = function () {\r\n if (httpRequest.readyState === XMLHttpRequest.DONE) {\r\n if (httpRequest.status === 200) {\r\n\r\n var resultsContainer = document.querySelector(\".listing-results\");\r\n\r\n resultsContainer.outerHTML = httpRequest.response;\r\n lazyLoadImages();\r\n\r\n var filter = document.querySelector(\".filter-form\");\r\n var filterScroll = filter.getBoundingClientRect().top + window.scrollY;\r\n window.scroll({\r\n top: filterScroll - 100,\r\n behavior: 'smooth'\r\n });\r\n\r\n\r\n }\r\n else {\r\n console.log('There was a problem with the request. Request status: ' + httpRequest.status);\r\n }\r\n }\r\n };\r\n\r\n if (!skipState && activeTag) {\r\n var state = { tagValue: activeTag.value };\r\n window.history.pushState(state, \"\", activeTag.dataset.url);\r\n }\r\n\r\n queryString = queryString ? queryString : \"\"\r\n queryString = queryString + (queryString.includes(\"?\") ? \"&ajax\" : \"?ajax\")\r\n\r\n httpRequest.open('GET', (queryString ? queryString : \"\"), true);\r\n httpRequest.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\"); //Ensure 'IsAjaxRequest'\r\n httpRequest.send();\r\n }\r\n}\r\n\r\nwindow.addEventListener('load', (e) => {\r\n var activeTag = document.querySelector(\".filters .tag:checked\");\r\n if (activeTag) {\r\n var state = { tagValue: activeTag.value };\r\n history.replaceState(state, \"\", activeTag.dataset.url);\r\n }\r\n else {\r\n var state = { tagValue: \"\" };\r\n history.replaceState(state, \"\");\r\n }\r\n});\r\n\r\nwindow.addEventListener('popstate', (e) => {\r\n if (history.state) {\r\n var tagButton = document.querySelector(\".filters .tag[value='\" + history.state.tagValue + \"']\");\r\n if (tagButton) {\r\n tagButton.checked = true;\r\n applyFilters(tagButton, null, true);\r\n }\r\n }\r\n});","export default function initLazyLoadImages() {\r\n\tdocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\t\tobserveImages()\r\n\t});\r\n}\r\n\r\nexport function lazyLoadImages() {\r\n\trefreshImages();\r\n}\r\n\r\n\r\n\r\nfunction observeImages() {\r\n\t//Lazy Img sources or sourc sets using attr 'data-'prefixed versions of the attribute\r\n\tvar lazyloadSrcs = document.querySelectorAll(\"[data-src]\");\r\n\r\n\tvar obseverOptions = {\r\n\t\trootMargin: '350px', //magic number (of how far off the page it will define as 'observable'), 350px seems to work nicely\r\n\t}\r\n\r\n\tvar srcObserver = new IntersectionObserver(function (entries) {\r\n\r\n\t\tentries.forEach(function (entry) {\r\n\t\t\tif (entry.isIntersecting) { //what we do when we 'observe' an image come into view\r\n\t\t\t\tvar image = entry.target;\r\n\t\t\t\timage.src = image.dataset.src;\r\n\t\t\t\timage.removeAttribute('data-src');\r\n\r\n\t\t\t\t//check for srcsets in parent tag\r\n\t\t\t\tvar parent = image.parentElement;\r\n\t\t\t\tif (parent.tagName == 'PICTURE') {\r\n\t\t\t\t\tvar childSources = parent.getElementsByTagName('source');\r\n\t\t\t\t\tvar childSourceElems = Array.prototype.slice.call(childSources, 0);\r\n\t\t\t\t\tchildSourceElems.forEach(function (childSource) { //loop though source elems replacing data-srcsets\r\n\t\t\t\t\t\tchildSource.srcset = childSource.dataset.srcset;\r\n\t\t\t\t\t\tchildSource.removeAttribute('data-srcset');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\timage.classList.remove(\"blur\");\r\n\t\t\t\tsrcObserver.unobserve(image);\r\n\t\t\r\n\t\t\t} \r\n\r\n\t\t});\r\n\r\n\t}, obseverOptions);\r\n\r\n\tlazyloadSrcs.forEach(function (image) {\r\n\t\tsrcObserver.observe(image); //observe our images, wait for them to come into view\r\n\t});\r\n}\r\n\r\n\r\nfunction refreshImages() {\r\n\t//Lazy Img sources or sourc sets using attr 'data-'prefixed versions of the attribute\r\n\tvar lazyloadSrcs = document.querySelectorAll(\".main [data-src]\");\r\n\r\n\tvar obseverOptions = {\r\n\t\trootMargin: '350px', //magic number (of how far off the page it will define as 'observable'), 350px seems to work nicely\r\n\t}\r\n\r\n\tvar srcObserver = new IntersectionObserver(function (entries) {\r\n\r\n\t\tentries.forEach(function (entry) {\r\n\t\t\tif (entry.isIntersecting) { //what we do when we 'observe' an image come into view\r\n\t\t\t\tvar image = entry.target;\r\n\t\t\t\timage.src = image.dataset.src;\r\n\t\t\t\timage.removeAttribute('data-src');\r\n\r\n\t\t\t\t//check for srcsets in parent tag\r\n\t\t\t\tvar parent = image.parentElement;\r\n\t\t\t\tif (parent.tagName == 'PICTURE') {\r\n\t\t\t\t\tvar childSources = parent.getElementsByTagName('source');\r\n\t\t\t\t\tvar childSourceElems = Array.prototype.slice.call(childSources, 0);\r\n\t\t\t\t\tchildSourceElems.forEach(function (childSource) { //loop though source elems replacing data-srcsets\r\n\t\t\t\t\t\tchildSource.srcset = childSource.dataset.srcset;\r\n\t\t\t\t\t\tchildSource.removeAttribute('data-srcset');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\timage.classList.remove(\"blur\");\r\n\t\t\t\tsrcObserver.unobserve(image);\r\n\t\t\r\n\t\t\t} \r\n\r\n\t\t});\r\n\r\n\t}, obseverOptions);\r\n\r\n\tlazyloadSrcs.forEach(function (image) {\r\n\t\tsrcObserver.observe(image); //observe our images, wait for them to come into view\r\n\t});\r\n}"],"names":["applyFilters","activeTag","queryString","skipState","document","querySelector","httpRequest","XMLHttpRequest","addError","console","log","onreadystatechange","readyState","DONE","status","outerHTML","response","lazyloadSrcs","querySelectorAll","srcObserver","IntersectionObserver","entries","forEach","entry","isIntersecting","image","target","src","dataset","removeAttribute","parent","parentElement","tagName","childSources","getElementsByTagName","Array","prototype","slice","call","childSource","srcset","classList","remove","unobserve","rootMargin","observe","filterScroll","getBoundingClientRect","top","window","scrollY","scroll","behavior","state","tagValue","value","history","pushState","url","includes","open","setRequestHeader","send","addEventListener","e","className","preventDefault","getAttribute","parentNode","replaceState","tagButton","checked"],"sourceRoot":""}