{"version":3,"file":"pages-news-blog.js","mappings":"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","sources":["webpack://silverstripe-base/./themes/app/src/pages/news-blog.js","webpack://silverstripe-base/./themes/app/src/scripts/common/ajax.js","webpack://silverstripe-base/./node_modules/jump.js/dist/jump.module.js","webpack://silverstripe-base/./themes/app/src/scripts/common/scroll-to.js","webpack://silverstripe-base/./themes/app/src/scripts/common/util.js","webpack://silverstripe-base/./themes/app/src/scripts/components/pill-list.js"],"sourcesContent":["import Swiper from \"swiper\";\nimport { A11y, Autoplay, EffectFade, Pagination } from \"swiper/modules\";\nimport \"@styles/components/slider.css\";\nimport easydropdown from \"easydropdown-a11y\";\nimport \"@styles/components/dropdown.css\";\nimport { on } from \"delegated-events\";\nimport ajax from \"@common/ajax\";\nimport { scrollToIfNeeded } from \"@common/scroll-to\";\nimport { generateQueryString } from \"@common/util\";\nimport pillList from \"@scripts/components/pill-list\";\n\nconst form = document.querySelector(\".filter-form\");\n\nconst setupDropdown = (el) => {\n if (el.tagName !== \"SELECT\") {\n return;\n }\n\n const opts = {\n behavior: {\n openOnFocus: true,\n maxVisibleItems: 10,\n liveUpdates: true,\n useNativeUiOnMobile: false,\n },\n };\n\n easydropdown(el, opts);\n};\n\nconst handleFilterChange = (e) => {\n e && e.preventDefault();\n\n const params = new FormData(form);\n const queryString = generateQueryString(params);\n const url = queryString.size ? `${form.action}?${queryString}` : form.action;\n\n window.history.replaceState({}, \"\", url);\n\n updateResults();\n};\n\nconst handleFilterClear = () => {\n form.reset();\n form.querySelectorAll(\"select\").forEach((x) => (x.value = \"\"));\n\n window.history.replaceState({}, \"\", form.action);\n\n updateResults();\n};\n\nconst updateResults = async () => {\n const pageContent = document.querySelector(\"[data-page-content]\");\n\n pageContent.classList.add(\"is-loading\");\n\n const res = await ajax.get(window.location.href).json();\n\n pageContent.innerHTML = res.page;\n pageContent.classList.remove(\"is-loading\");\n\n if (res.isFiltered) {\n form.classList.add(\"is-filtered\");\n scrollToIfNeeded(pageContent, 24);\n } else {\n form.classList.remove(\"is-filtered\");\n }\n\n if (window.matchMedia(\"(min-width: 768px)\").matches && res.isFiltered) {\n if (form.querySelector(\"[type=search]\").value === \"\") {\n form.classList.remove(\"is-filtered\");\n }\n }\n\n setupFeaturedSlider();\n};\n\nconst setupFeaturedSlider = () => {\n const slider = document.querySelector(\".featured-slider\");\n\n if (slider) {\n const container = slider.querySelector(\".swiper\");\n const numSlides = slider.querySelectorAll(\".swiper-slide\").length;\n\n if (numSlides > 1) {\n const opts = {\n modules: [A11y, Autoplay, EffectFade, Pagination],\n autoplay: {\n delay: 6000,\n pauseOnMouseEnter: true,\n },\n effect: \"fade\",\n fadeEffect: {\n crossFade: true,\n },\n loop: true,\n speed: 1000,\n pagination: {\n el: slider.querySelector(\".slider-pagination\"),\n clickable: true,\n },\n };\n\n new Swiper(container, opts);\n }\n }\n};\n\nconst init = () => {\n if (form) {\n form.querySelectorAll(\"select:not([multiple])\").forEach((el) => setupDropdown(el));\n\n const filterPills = form.querySelector(\"[data-pill-list]\");\n\n if (filterPills) {\n pillList.init(filterPills);\n }\n\n on(\"change\", '.filter-form input[type=\"radio\"]', (e) => {\n handleFilterChange(e);\n pillList.animatePillMarker(filterPills);\n });\n\n on(\"change\", \".filter-form select\", handleFilterChange);\n on(\"submit\", \".filter-form\", handleFilterChange);\n on(\"click\", \".filter-form-clear\", () => {\n handleFilterClear();\n\n if (pillList) {\n pillList.animatePillMarker(filterPills);\n }\n\n document.body.classList.remove(\"is-searching\");\n });\n\n on(\"click\", \".search-toggle\", () => {\n document.body.classList.toggle(\"is-searching\");\n\n if (document.body.classList.contains(\"is-searching\")) {\n form.querySelector('input[type=\"search\"]').focus();\n }\n });\n\n const handleFilterVisibility = () => {\n if (window.matchMedia(\"(min-width: 1024px)\").matches) {\n form.querySelectorAll(\"select\").forEach((el) => (el.disabled = true));\n form.querySelectorAll('input[type=\"radio\"]').forEach((el) => (el.disabled = false));\n } else {\n form.querySelectorAll(\"select\").forEach((el) => (el.disabled = false));\n form.querySelectorAll('input[type=\"radio\"]').forEach((el) => (el.disabled = true));\n }\n };\n\n if (filterPills) {\n handleFilterVisibility();\n\n window.addEventListener(\"resize\", handleFilterVisibility);\n }\n }\n\n setupFeaturedSlider();\n};\n\ninit();\n","import wretch from 'wretch'\nimport QueryStringAddon from 'wretch/addons/queryString'\n\nwretch.options({\n headers: { 'X-Requested-With': 'XMLHttpRequest' },\n})\n\nexport default wretch().addon(QueryStringAddon)\n","// Robert Penner's easeInOutQuad\n\n// find the rest of his easing functions here: http://robertpenner.com/easing/\n// find them exported for ES6 consumption here: https://github.com/jaxgeller/ez.js\n\nvar easeInOutQuad = function easeInOutQuad(t, b, c, d) {\n t /= d / 2;\n if (t < 1) return c / 2 * t * t + b;\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar jumper = function jumper() {\n // private variable cache\n // no variables are created during a jump, preventing memory leaks\n\n var element = void 0; // element to scroll to (node)\n\n var start = void 0; // where scroll starts (px)\n var stop = void 0; // where scroll stops (px)\n\n var offset = void 0; // adjustment from the stop position (px)\n var easing = void 0; // easing function (function)\n var a11y = void 0; // accessibility support flag (boolean)\n\n var distance = void 0; // distance of scroll (px)\n var duration = void 0; // scroll duration (ms)\n\n var timeStart = void 0; // time scroll started (ms)\n var timeElapsed = void 0; // time spent scrolling thus far (ms)\n\n var next = void 0; // next scroll position (px)\n\n var callback = void 0; // to call when done scrolling (function)\n\n // scroll position helper\n\n function location() {\n return window.scrollY || window.pageYOffset;\n }\n\n // element offset helper\n\n function top(element) {\n return element.getBoundingClientRect().top + start;\n }\n\n // rAF loop helper\n\n function loop(timeCurrent) {\n // store time scroll started, if not started already\n if (!timeStart) {\n timeStart = timeCurrent;\n }\n\n // determine time spent scrolling so far\n timeElapsed = timeCurrent - timeStart;\n\n // calculate next scroll position\n next = easing(timeElapsed, start, distance, duration);\n\n // scroll to it\n window.scrollTo(0, next);\n\n // check progress\n timeElapsed < duration ? window.requestAnimationFrame(loop) // continue scroll loop\n : done(); // scrolling is done\n }\n\n // scroll finished helper\n\n function done() {\n // account for rAF time rounding inaccuracies\n window.scrollTo(0, start + distance);\n\n // if scrolling to an element, and accessibility is enabled\n if (element && a11y) {\n // add tabindex indicating programmatic focus\n element.setAttribute('tabindex', '-1');\n\n // focus the element\n element.focus();\n }\n\n // if it exists, fire the callback\n if (typeof callback === 'function') {\n callback();\n }\n\n // reset time for next jump\n timeStart = false;\n }\n\n // API\n\n function jump(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // resolve options, or use defaults\n duration = options.duration || 1000;\n offset = options.offset || 0;\n callback = options.callback; // \"undefined\" is a suitable default, and won't be called\n easing = options.easing || easeInOutQuad;\n a11y = options.a11y || false;\n\n // cache starting position\n start = location();\n\n // resolve target\n switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) {\n // scroll from current position\n case 'number':\n element = undefined; // no element to scroll to\n a11y = false; // make sure accessibility is off\n stop = start + target;\n break;\n\n // scroll to element (node)\n // bounding rect is relative to the viewport\n case 'object':\n element = target;\n stop = top(element);\n break;\n\n // scroll to element (selector)\n // bounding rect is relative to the viewport\n case 'string':\n element = document.querySelector(target);\n stop = top(element);\n break;\n }\n\n // resolve scroll distance, accounting for offset\n distance = stop - start + offset;\n\n // resolve duration\n switch (_typeof(options.duration)) {\n // number in ms\n case 'number':\n duration = options.duration;\n break;\n\n // function passed the distance of the scroll\n case 'function':\n duration = options.duration(distance);\n break;\n }\n\n // start the loop\n window.requestAnimationFrame(loop);\n }\n\n // expose only the jump method\n return jump;\n};\n\n// export singleton\n\nvar singleton = jumper();\n\nexport default singleton;\n","import jump from \"jump.js\";\n\nconst getPageOffset = () => {\n let offset = 0;\n\n const siteHeader = document.querySelector(\".site-header\");\n\n if (siteHeader) {\n const siteHeaderHeight = getComputedStyle(document.documentElement).getPropertyValue(\"--site-header-height\");\n\n offset += parseInt(siteHeaderHeight);\n }\n\n return offset;\n};\n\nconst scrollTo = (target, additionalOffset = 0) => {\n const pageOffset = getPageOffset() * -1;\n\n if (target.dataset.scrollOffset) {\n additionalOffset = parseInt(target.dataset.scrollOffset);\n }\n\n let offset = pageOffset - additionalOffset;\n\n return new Promise((resolve) => {\n jump(target, {\n duration: 600,\n offset,\n callback: () => {\n resolve();\n },\n });\n });\n};\n\nexport const scrollToIfNeeded = (target, additionalOffset = 0) => {\n const rect = target.getBoundingClientRect();\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n const isInViewport = rect.top >= 0 && rect.bottom <= viewportHeight;\n const is50PercentFromTop = rect.top <= viewportHeight / 2;\n\n if (!isInViewport || !is50PercentFromTop) {\n return scrollTo(target, additionalOffset);\n }\n};\n\nexport default scrollTo;\n","export const isTouchDevice = \"ontouchstart\" in document.documentElement;\n\nexport const generateQueryString = (data = {}) => {\n let params = data;\n\n if (data instanceof FormData === true) {\n params = {};\n\n data.forEach((value, key) => (params[key] = value));\n }\n\n for (const key in params) {\n if (params[key] === \"\") {\n delete params[key];\n }\n }\n\n return new URLSearchParams(params);\n};\n\nexport const trackGoogleAnalytics = (event) => {\n if (window.dataLayer) {\n window.dataLayer.push(event);\n }\n};\n","import \"@styles/components/pill-list.css\";\n\nconst observedElements = new Set();\n\nconst animatePillMarker = (pillList) => {\n pillList.querySelectorAll('[aria-selected=\"true\"]').forEach((tab) => {\n const marker = tab.closest(\"[data-pill-list]\").querySelector(\".marker\");\n marker.style.left = `${tab.offsetLeft}px`;\n marker.style.width = `${tab.offsetWidth}px`;\n });\n\n pillList.querySelectorAll(\"input:checked + [data-pill]\").forEach((tab) => {\n const marker = tab.closest(\"[data-pill-list]\").querySelector(\".marker\");\n marker.style.left = `${tab.offsetLeft}px`;\n marker.style.width = `${tab.offsetWidth}px`;\n });\n};\n\nexport default {\n init: (pillList) => {\n const resizeAnimate = () => {\n animatePillMarker(pillList);\n };\n\n window.removeEventListener(\"resize\", resizeAnimate);\n window.addEventListener(\"resize\", resizeAnimate);\n\n const observer = new MutationObserver((mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === \"attributes\" && mutation.attributeName === \"aria-selected\") {\n animatePillMarker(pillList);\n }\n }\n });\n\n pillList.querySelectorAll(\"[data-pill]\").forEach((el) => {\n if (!observedElements.has(el)) {\n observer.observe(el, { attributes: true });\n observedElements.add(el);\n }\n });\n\n setTimeout(() => {\n animatePillMarker(pillList);\n }, 10);\n },\n animatePillMarker,\n};\n"],"names":["form","document","querySelector","handleFilterChange","e","preventDefault","params","FormData","queryString","generateQueryString","url","size","action","window","history","replaceState","updateResults","async","pageContent","classList","add","res","ajax","get","location","href","json","innerHTML","page","remove","isFiltered","scrollToIfNeeded","matchMedia","matches","value","setupFeaturedSlider","slider","container","querySelectorAll","length","opts","modules","A11y","Autoplay","EffectFade","Pagination","autoplay","delay","pauseOnMouseEnter","effect","fadeEffect","crossFade","loop","speed","pagination","el","clickable","Swiper","init","forEach","tagName","easydropdown","behavior","openOnFocus","maxVisibleItems","liveUpdates","useNativeUiOnMobile","setupDropdown","filterPills","pillList","on","animatePillMarker","reset","x","body","toggle","contains","focus","handleFilterVisibility","disabled","addEventListener","wretch","options","headers","addon","QueryStringAddon","easeInOutQuad","t","b","c","d","_typeof","Symbol","iterator","obj","constructor","prototype","element","start","stop","offset","easing","a11y","distance","duration","timeStart","timeElapsed","next","callback","top","getBoundingClientRect","timeCurrent","scrollTo","requestAnimationFrame","setAttribute","target","arguments","undefined","scrollY","pageYOffset","jumper","additionalOffset","pageOffset","getPageOffset","siteHeaderHeight","getComputedStyle","documentElement","getPropertyValue","parseInt","dataset","scrollOffset","Promise","resolve","jump","rect","viewportHeight","innerHeight","clientHeight","isInViewport","bottom","is50PercentFromTop","isTouchDevice","data","key","URLSearchParams","trackGoogleAnalytics","event","dataLayer","push","observedElements","Set","tab","marker","closest","style","left","offsetLeft","width","offsetWidth","resizeAnimate","removeEventListener","observer","MutationObserver","mutationList","mutation","type","attributeName","has","observe","attributes","setTimeout"],"sourceRoot":""}