{"version":3,"file":"search-page.bundle.js","mappings":"yBAgBA,SAASA,EAAaC,GAElB,GADiBC,SAASC,cAAc,gBACxB,CACZ,IAAIC,EAAc,IAAIC,eAEtB,IAAKD,EAGD,OAFAE,SAAS,yDACTC,QAAQC,IAAI,sCACL,EAGXJ,EAAYK,mBAAqB,WAC7B,GAAIL,EAAYM,aAAeL,eAAeM,KAC1C,GAA2B,MAAvBP,EAAYQ,OAAgB,CAC5B,IAAIC,EAASX,SAASC,cAAc,WAChCW,EAAmBZ,SAASC,cAAc,oBAC1CY,EAAoBD,EAAiBE,wBAAwBC,KAAOC,OAAOC,aAAeD,OAAOE,iBAAmC,IAAXP,GAAoC,MAAVA,EAAkBA,EAAOQ,aAAe,GAE/LP,EAAiBQ,UAAYlB,EAAYmB,SCjC5DrB,SAASsB,iBAAiB,mBAAoB,WAW/C,IAEKC,EAMAC,EANAD,EAAevB,SAASyB,iBAAiB,cAMzCD,EAAc,IAAIE,qBAAqB,SAAUC,GAEpDA,EAAQC,QAAQ,SAAUC,GACzB,GAAIA,EAAMC,eAAgB,CACzB,IAAIC,EAAQF,EAAMG,OAClBD,EAAME,IAAMF,EAAMG,QAAQD,IAC1BF,EAAMI,gBAAgB,YAEtBJ,EAAMK,UAAUC,OAAO,QACvBb,EAAYc,UAAUP,EAEvB,CAED,EAED,EAnBqB,CACpBQ,WAAY,UAoBbhB,EAAaK,QAAQ,SAAUG,GAC9BP,EAAYgB,QAAQT,EACrB,EApCA,GC8DwBU,EF5BI5B,EAAmB,GEgCxC6B,EAAQC,KAAKC,MACbC,EAAO7C,SAAS8C,iBAChBC,EAAOF,EAAK3B,aAIHuB,EAsBbO,sBAbA,SAASC,EAAOC,GAEZ,IAd2BC,EAQfC,EAORC,EAAW,GAPHD,GAMMT,KAAKC,MACWF,GAAS,KAA5B,EANIU,EAOfE,GAhBuBH,EAgBCE,GAhBa,GAAK,EAAEF,EAAEA,EAAEA,GAAKA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,GAAG,EAkB9EN,EAAK3B,UAAaoC,GAAUb,EAAIM,GAASA,EAErCM,EAAO,GAAGL,sBAAsBC,EAGxC,GAnBIM,GFtCQ,MAEIlD,QAAQC,IAAI,yDAA2DJ,EAAYQ,QEyBhG,IAAkB+B,EAAGc,EAIpBb,EACAG,EACAE,CF5BA,EAEAhD,EAAcA,GAA4B,GAC1CA,GAA6BA,EAAYyD,SAAS,KAAO,QAAU,QAEnEtD,EAAYuD,KAAK,MAAO1D,GAAa,GACrCG,EAAYwD,iBAAiB,mBAAoB,kBACjDxD,EAAYyD,MAChB,CAEJ,CAlDA3D,SAASsB,iBAAiB,QAAS,SAAUsC,GACrCA,EAAE5B,SACsB,KAApB4B,EAAE5B,OAAO6B,UAAmBD,EAAE5B,OAAO8B,UAAUN,SAAS,eAAiBI,EAAE5B,OAAO8B,UAAUN,SAAS,gBACrGI,EAAEG,iBACFjE,EAAa8D,EAAE5B,OAAOgC,aAAa,UAEC,KAA/BJ,EAAE5B,OAAOiC,WAAWJ,UAAmBD,EAAE5B,OAAOiC,WAAWH,UAAUN,SAAS,eAAiBI,EAAE5B,OAAOiC,WAAWH,UAAUN,SAAS,iBAC3II,EAAEG,iBACFjE,EAAc8D,EAAE5B,OAAOiC,WAAWD,aAAa,UAG3D","sources":["webpack://enjoy-digital-frontend-foundation/./assets/src/js/pages/search-page.js","webpack://enjoy-digital-frontend-foundation/./assets/src/js/modules/lazyLoadImages.js","webpack://enjoy-digital-frontend-foundation/./assets/src/js/modules/functions.js"],"sourcesContent":["import LazyLoadImages from '../modules/lazyLoadImages';\r\nimport { scrollTo } from '../modules/functions';\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(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( e.target.parentNode.getAttribute(\"href\"));\r\n }\r\n }\r\n});\r\n\r\nfunction applyFilters(queryString) {\r\n var searchForm = document.querySelector(\".search-form\");\r\n if (searchForm) {\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 var header = document.querySelector('.header');\r\n var resultsContainer = document.querySelector(\".listing-results\");\r\n var resultsOffsetTop = (resultsContainer.getBoundingClientRect().top + (window.pageYOffset || window.scrollTop)) - ((typeof (header) != 'undefined' && header != null) ? header.offsetHeight : 0);\r\n\r\n resultsContainer.outerHTML = httpRequest.response;\r\n\r\n LazyLoadImages();\r\n scrollTo(resultsOffsetTop - 50);\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 queryString = queryString ? queryString : \"\"\r\n queryString = queryString + (queryString.includes(\"?\") ? \"&ajax\" : \"?ajax\")\r\n\r\n httpRequest.open('GET', queryString, true);\r\n httpRequest.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\"); //Ensure 'IsAjaxRequest'\r\n httpRequest.send();\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\timage.classList.remove(\"blur\");\r\n\t\t\t\tsrcObserver.unobserve(image);\r\n\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\timage.classList.remove(\"blur\");\r\n\t\t\t\tsrcObserver.unobserve(image);\r\n\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}","export function debounce(func, time) {\r\n var time = time || 100; // 100 by default if no param\r\n var timer;\r\n return function (event) {\r\n if (timer) clearTimeout(timer);\r\n timer = setTimeout(func, time, event);\r\n };\r\n}\r\n\r\n// Determines if the passed element is overflowing its bounds,\r\n// either vertically or horizontally.\r\n// Will temporarily modify the \"overflow\" style to detect this\r\n// if necessary.\r\nexport function checkHorizontalOverflow(el) {\r\n\r\n var curOverflow = el.style.overflow;\r\n\r\n if (!curOverflow || curOverflow === \"visible\")\r\n el.style.overflow = \"hidden\";\r\n\r\n var isOverflowing = el.clientWidth < el.scrollWidth;\r\n\r\n el.style.overflow = curOverflow;\r\n\r\n return isOverflowing;\r\n}\r\n\r\n//adjusts size/position of a video to ensure full coverage of the parent element\r\nexport function coverParent(el, ratioWidth, ratioHeight) {\r\n var parentWidth = el.parentElement.clientWidth;\r\n var parentHeight = el.parentElement.clientHeight;\r\n var parentRatio = (parentWidth / parentHeight);\r\n var targetRatio = (ratioWidth / ratioHeight);\r\n\r\n if (parentRatio >= targetRatio) {\r\n el.style.width = parentWidth + \"px\";\r\n el.style.height = (parentWidth * (ratioHeight / ratioWidth)) + \"px\";\r\n }\r\n else {\r\n el.style.width = (parentHeight * (ratioWidth / ratioHeight)) + \"px\";\r\n el.style.height = parentHeight + \"px\";\r\n\t}\r\n\r\n}\r\n\r\n//gets the index of a child node relative to it's nearest parent\r\nexport function getChildIndex(node) {\r\n return Array.prototype.indexOf.call(node.parentNode.children, node);\r\n}\r\n\r\nexport function removeClassesWithSuffix(node, suffix) {\r\n var classes = node.className.split(\" \").filter(function (c) {\r\n return c.lastIndexOf(suffix) !== (c.length - suffix.length);\r\n });\r\n node.className = classes.join(\" \").trim();\r\n}\r\n\r\nexport function getScreenWidth() {\r\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n}\r\n\r\nexport function getScreenHeight() {\r\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight\r\n}\r\n\r\nexport function scrollTo(Y, callback) {\r\n\r\n //https://gist.github.com/SgtPooki/6a9bf70ccd97750e0d57\r\n\r\n var start = Date.now(),\r\n elem = document.documentElement,\r\n from = elem.scrollTop,\r\n easingFunction = function (t) { return t<.5 ? 4*t*t*t : (t-1)*(2*t-2)*(2*t-2)+1 }; //easing fixed as easeInOutCubic. This was the closest to the cubic-bezier easing used for large items in CSS\r\n\r\n\r\n if (from === Y) {\r\n callback();\r\n return; /* Prevent scrolling to the Y point if already there */\r\n }\r\n\r\n function min(a, b) {\r\n return a < b ? a : b;\r\n }\r\n\r\n function scroll(timestamp) {\r\n\r\n var currentTime = Date.now(),\r\n time = min(1, ((currentTime - start) / 600)), //duration fixed at 600ms\r\n easedT = easingFunction(time);\r\n\r\n elem.scrollTop = (easedT * (Y - from)) + from;\r\n\r\n if (time < 1) requestAnimationFrame(scroll);\r\n else\r\n if (callback) callback();\r\n }\r\n\r\n requestAnimationFrame(scroll)\r\n}"],"names":["applyFilters","queryString","document","querySelector","httpRequest","XMLHttpRequest","addError","console","log","onreadystatechange","readyState","DONE","status","header","resultsContainer","resultsOffsetTop","getBoundingClientRect","top","window","pageYOffset","scrollTop","offsetHeight","outerHTML","response","addEventListener","lazyloadSrcs","srcObserver","querySelectorAll","IntersectionObserver","entries","forEach","entry","isIntersecting","image","target","src","dataset","removeAttribute","classList","remove","unobserve","rootMargin","observe","Y","start","Date","now","elem","documentElement","from","requestAnimationFrame","scroll","timestamp","t","b","time","easedT","callback","includes","open","setRequestHeader","send","e","tagName","className","preventDefault","getAttribute","parentNode"],"sourceRoot":""}