{"version":3,"file":"newsListing.bundle.js","mappings":"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","sources":["webpack://enjoy-digital-frontend-foundation/./assets/src/js/modules/ajaxFormSubmission.js","webpack://enjoy-digital-frontend-foundation/./assets/src/js/modules/functions.js","webpack://enjoy-digital-frontend-foundation/./assets/src/js/pages/newsListing.js"],"sourcesContent":["import {\r\n serializeForm\r\n} from '../modules/functions';\r\nimport {\r\n scrollTo\r\n} from '../modules/functions';\r\nexport default function formSubmissionOverride(formTarget, containerTarget, paginationElementClass, method = \"GET\") {\r\n\r\n /* Filter reset */\r\n let form = document.querySelector(formTarget);\r\n let resultsContainer = document.querySelector(containerTarget);\r\n\r\n\r\n form.addEventListener('submit', function (e) {\r\n e.preventDefault();\r\n //console.log(\"hello\")\r\n getContent(this.action, serializeForm(this), setFilteredContent)\r\n });\r\n\r\n if (resultsContainer) {\r\n\r\n\r\n resultsContainer.addEventListener('click', function (e) {\r\n if (e.target) {\r\n if (e.target.tagName == \"A\" && (e.target.className.includes(paginationElementClass) || e.target.className.includes(paginationElementClass))) {\r\n e.preventDefault();\r\n getContent(e.target.getAttribute(\"href\"), '', setFilteredContent);\r\n } else if (e.target.parentNode.tagName == \"A\" && (e.target.parentNode.className.includes(paginationElementClass) || e.target.parentNode.className.includes(paginationElementClass))) {\r\n e.preventDefault();\r\n getContent(e.target.parentNode.getAttribute(\"href\"), '', setFilteredContent);\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n function setFilteredContent(content) {\r\n resultsContainer.innerHTML = content;\r\n var header = document.querySelector('.site-header');\r\n var resultsOffsetTop = (resultsContainer.getBoundingClientRect().top + (window.pageYOffset || window.scrollTop)) - ((typeof (header) != 'undefined' && header != null) ? header.offsetHeight : 0);\r\n scrollTo(resultsOffsetTop)\r\n }\r\n\r\n function getContent(url, data, callback) {\r\n\r\n if (url.length < 1) {\r\n return;\r\n }\r\n if (data.length > 1) {\r\n url = url + \"?\" + data;\r\n window.history.pushState(data, \"\", url);\r\n } else {\r\n window.history.pushState(null, \"\", url);\r\n }\r\n\r\n\r\n fetch(url, {\r\n method: method,\r\n headers: {\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n }\r\n })\r\n .then(response => response.text())\r\n .then(html => callback(html))\r\n .catch(error => console.log(error.message))\r\n .finally(() => console.log(\"Done\"));\r\n\r\n }\r\n}\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 }\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 serializeForm(form) {\r\n if (!form || form.nodeName !== \"FORM\") {\r\n return;\r\n }\r\n var i, j, q = [];\r\n for (i = form.elements.length - 1; i >= 0; i = i - 1) {\r\n if (form.elements[i].name === \"\") {\r\n continue;\r\n }\r\n switch (form.elements[i].nodeName) {\r\n case 'INPUT':\r\n switch (form.elements[i].type) {\r\n case 'text':\r\n case 'tel':\r\n case 'email':\r\n case 'hidden':\r\n case 'password':\r\n case 'button':\r\n case 'reset':\r\n case 'submit':\r\n q.push(form.elements[i].name + \"=\" + encodeURIComponent(form.elements[i].value));\r\n break;\r\n case 'checkbox':\r\n case 'radio':\r\n if (form.elements[i].checked) {\r\n q.push(form.elements[i].name + \"=\" + encodeURIComponent(form.elements[i].value));\r\n }\r\n break;\r\n }\r\n break;\r\n case 'file':\r\n break;\r\n case 'TEXTAREA':\r\n q.push(form.elements[i].name + \"=\" + encodeURIComponent(form.elements[i].value));\r\n break;\r\n case 'SELECT':\r\n switch (form.elements[i].type) {\r\n case 'select-one':\r\n q.push(form.elements[i].name + \"=\" + encodeURIComponent(form.elements[i].value));\r\n break;\r\n case 'select-multiple':\r\n for (j = form.elements[i].options.length - 1; j >= 0; j = j - 1) {\r\n if (form.elements[i].options[j].selected) {\r\n q.push(form.elements[i].name + \"=\" + encodeURIComponent(form.elements[i].options[j].value));\r\n }\r\n }\r\n break;\r\n }\r\n break;\r\n case 'BUTTON':\r\n switch (form.elements[i].type) {\r\n case 'reset':\r\n case 'submit':\r\n case 'button':\r\n q.push(form.elements[i].name + \"=\" + encodeURIComponent(form.elements[i].value));\r\n break;\r\n }\r\n break;\r\n }\r\n }\r\n return q.join(\"&\");\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}","import FormSubmissionOverride from '../modules/ajaxFormSubmission';\r\n\r\nFormSubmissionOverride('.filter-form', '.result-container', 'pag-number');"],"names":["formTarget","containerTarget","paginationElementClass","method","form","document","querySelector","resultsContainer","setFilteredContent","content","innerHTML","Y","callback","start","elem","from","header","resultsOffsetTop","getBoundingClientRect","top","window","pageYOffset","scrollTop","offsetHeight","Date","now","documentElement","requestAnimationFrame","scroll","timestamp","t","b","time","easedT","getContent","url","data","length","history","pushState","fetch","headers","then","response","text","html","catch","error","console","log","message","finally","addEventListener","e","preventDefault","this","action","nodeName","i","j","q","elements","name","type","push","encodeURIComponent","value","checked","options","selected","join","serializeForm","target","tagName","className","includes","getAttribute","parentNode","FormSubmissionOverride"],"sourceRoot":""}