{"version":3,"file":"main-bundle.js","mappings":"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","sources":["webpack://niftic-starter/./src/js/modules/accordion-section.js","webpack://niftic-starter/./src/js/modules/accordion.js","webpack://niftic-starter/./src/js/modules/citation.js","webpack://niftic-starter/./src/js/modules/content-fade.js","webpack://niftic-starter/./src/js/modules/faq.js","webpack://niftic-starter/./src/js/modules/global-measures-slider.js","webpack://niftic-starter/./src/js/modules/graphs.js","webpack://niftic-starter/./src/js/modules/header.js","webpack://niftic-starter/./src/js/modules/newsletter.js","webpack://niftic-starter/./src/js/modules/queryinterface.js","webpack://niftic-starter/./src/js/sticky-nav.js","webpack://niftic-starter/./src/js/whats-new.js","webpack://niftic-starter/webpack/bootstrap","webpack://niftic-starter/webpack/runtime/compat get default export","webpack://niftic-starter/webpack/runtime/define property getters","webpack://niftic-starter/webpack/runtime/hasOwnProperty shorthand"],"sourcesContent":["document.addEventListener('DOMContentLoaded', () => {\n\tconst accordions = document.querySelectorAll('.accordion-section');\n\taccordions.forEach((accordion, i) => {\n\t\tconst header = accordion.querySelector('.accordion-section__header');\n\t\tconst content = accordion.querySelector('.accordion-section__content');\n\t\tconst contentInner = accordion.querySelector('.accordion-section__content-inner');\n\t\tconst icon = accordion.querySelector('.accordion-section__icon');\n\n\t\tconst { expand, collapse } =\n\t\t\tcreateAccordionControls(accordion, header, content, contentInner, icon);\n\t\t// Set initial state\n\t\tcontent.style.height = '0px';\n\t\taccordion.dataset.expanded = 'false';\n\t\theader.setAttribute('aria-expanded', 'false');\n\n\t\tif (i === 0) {\n\t\t\texpand();\n\t\t}\n\n\t\theader.addEventListener('click', () => {\n\t\t\tif (accordion.dataset.expanded === 'true') {\n\t\t\t\tcollapse();\n\t\t\t} else {\n\t\t\t\texpand();\n\t\t\t}\n\t\t});\n\t});\n\t// resize open accordion heights\n\twindow.addEventListener('resize', () => {\n\t\taccordions.forEach((accordion) => {\n\t\t\tif (accordion.dataset.expanded === 'true') {\n\t\t\t\tconst content = accordion.querySelector('.accordion-section__content');\n\t\t\t\tconst contentInner = accordion.querySelector('.accordion-section__content-inner');\n\t\t\t\tcontent.style.height = `${contentInner.offsetHeight}px`;\n\t\t\t}\n\t\t});\n\t});\n});\n\nfunction createAccordionControls(accordion, header, content, contentInner, icon) {\n\tconst expand = () => {\n\t\tcontent.hidden = false;\n\t\trequestAnimationFrame(() => {\n\t\t\taccordion.dataset.expanded = 'true';\n\t\t\theader.setAttribute('aria-expanded', 'true');\n\t\t\tcontent.style.height = `${contentInner.offsetHeight}px`;\n\t\t\ticon.innerHTML = ICONS.minus;\n\t\t});\n\t};\n\n\tlet collapseTimeout;\n\n\tconst collapse = () => {\n\t\tif (collapseTimeout) {\n\t\t\tclearTimeout(collapseTimeout);\n\t\t}\n\t\theader.disabled = true;\n\t\taccordion.dataset.expanded = 'false';\n\t\theader.setAttribute('aria-expanded', 'false');\n\t\tcontent.style.height = '0px';\n\n\t\tcollapseTimeout = setTimeout(() => {\n\t\t\tcontent.hidden = true;\n\t\t\theader.disabled = false;\n\n\t\t\tcollapseTimeout = null;\n\t\t}, 500);\n\n\t\ticon.innerHTML = ICONS.plus;\n\t};\n\treturn {\n\t\texpand,\n\t\tcollapse,\n\t};\n}\n\nconst ICONS = {\n\tplus: '',\n\tminus: '',\n};\n","document.addEventListener('DOMContentLoaded', () => {\n const accordions = document.querySelectorAll('.global-measures-accordion');\n accordions.forEach((accordion) => {\n const button = accordion.querySelector('.accordion-button');\n const content = accordion.querySelector('.accordion-content');\n const contentInner = accordion.querySelector('.accordion-content-inner');\n button.addEventListener('click', () => {\n if (accordion.classList.contains('expanded')) {\n accordion.classList.remove('expanded');\n content.style.height = '0px';\n } else {\n accordion.classList.add('expanded');\n content.style.height = `${contentInner.offsetHeight}px`;\n }\n });\n });\n});\n","document.addEventListener('DOMContentLoaded', function () {\n\tconst citationLinks = document.querySelectorAll('.fpc-citation');\n\n\tcitationLinks.forEach(function (link) {\n\t\tlink.addEventListener('click', function (event) {\n\t\t\tif (link.getAttribute('href') === '#') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst citationNumber = link.dataset.citationNumber;\n\t\t\t\tconst citationContent = link.dataset.citationContent;\n\t\t\t\tcreateCitationModal(citationNumber, citationContent);\n\t\t\t}\n\t\t});\n\t});\n});\n\nfunction createCitationModal(citationNumber, citationContent) {\n\tlet newModalHolder = document.createElement('div');\n\tnewModalHolder.classList.add('citation-modal-holder', 'modal', 'open');\n\tdocument.body.classList.add('modal-open');\n\tnewModalHolder.innerHTML = `\n
\n
\n \n
\n

${citationNumber}${citationContent}

\n
\n
\n `;\n\tdocument.body.appendChild(newModalHolder);\n\tconst closeModalControls = document.querySelectorAll(\n\t\t'.citation-modal-holder button.close-button, .citation-modal-holder .modal-bg',\n\t);\n\tcloseModalControls.forEach((button) => {\n\t\tbutton.addEventListener('click', (e) => {\n\t\t\te.preventDefault();\n\t\t\tif (newModalHolder) newModalHolder.remove();\n\t\t\tdocument.body.classList.remove('modal-open');\n\t\t});\n\t});\n}\n","document.addEventListener('DOMContentLoaded', () => {\n\tconst contentNodes = Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6,p,a,button,ul,ol'));\n\tconst options = {\n\t\trootMargin: '0px',\n\t\tthreshold: 0.7,\n\t};\n\tcontentNodes.forEach((node) => {\n\t\tconst observer = new IntersectionObserver((entries, observer) => {\n\t\t\tentries.forEach((entry) => {\n\t\t\t\tif (entry.intersectionRatio >= 0.7) {\n\t\t\t\t\tentry.target.classList.add('fade-in');\n\t\t\t\t\tobserver.unobserve(entry.target);\n\t\t\t\t}\n\t\t\t});\n\t\t}, options);\n\t\tobserver.observe(node);\n\t});\n});\n","document.addEventListener('DOMContentLoaded', () => {\n\tif (document.querySelector('.faq')) {\n\t\tconst faqs = Array.from(document.querySelectorAll('.faq'));\n\t\tfaqs.forEach((faq) => {\n\t\t\tconst header = faq.querySelector('.header');\n\t\t\tconst content = faq.querySelector('.content');\n\t\t\theader.addEventListener('click', () => {\n\t\t\t\tfaq.classList.toggle('active');\n\t\t\t\tif (faq.classList.contains('active')) {\n\t\t\t\t\tcontent.style.height = `${content.firstElementChild.clientHeight}px`;\n\t\t\t\t} else {\n\t\t\t\t\tcontent.style.height = '0px';\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\twindow.addEventListener('resize', () => {\n\t\t\tfaqs.forEach((faq) => {\n\t\t\t\tconst content = faq.querySelector('.content');\n\t\t\t\tif (faq.classList.contains('active')) {\n\t\t\t\t\tcontent.style.height = `${content.firstElementChild.clientHeight}px`;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n});\n","// TODO: Clean this up\ndocument.addEventListener('DOMContentLoaded', () => {\n\tconst sliders = document.querySelectorAll('.global-measures-slider');\n\tsliders.forEach((slider) => {\n\t\tconst slides = slider.querySelectorAll('.slide');\n\t\tconst titles = slider.querySelectorAll('.slide-title');\n let currentSlide = parseInt(slider.dataset.current);\n slides[currentSlide].classList.add('current');\n // Controls for the title navigation\n\t\ttitles.forEach((title, i) => {\n const button = title.querySelector('.title-button');\n if(currentSlide === i) {\n button.classList.add('current');\n } else {\n button.classList.remove('current');\n }\n\t\t\tbutton.addEventListener('click', () => {\n slides.forEach(slide => slide.classList.remove('current'));\n titles.forEach(title => title.querySelector('.title-button').classList.remove('current'));\n currentSlide = i;\n button.classList.add('current');\n slides[currentSlide].classList.add('current');\n\t\t\t});\n\t\t});\n // Controls for the arrow navigation\n slides.forEach((slide, i) => {\n const arrowControls = slide.querySelector('.arrow-controls');\n const prev = arrowControls.children[0];\n const next = arrowControls.children[1];\n if(i === 0) prev.disabled = true;\n if(slides.length - 1 === i) next.disabled = true;\n\n prev.addEventListener('click', () => {\n slide.classList.remove('current');\n currentSlide = i - 1;\n titles.forEach((title, i) => {\n const button = title.querySelector('.title-button');\n button.classList.remove('current');\n if(currentSlide === i) button.classList.add('current');\n });\n slides[currentSlide].classList.add('current');\n\n });\n next.addEventListener('click', () => {\n slide.classList.remove('current');\n currentSlide = i + 1;\n titles.forEach((title, i) => {\n const button = title.querySelector('.title-button');\n button.classList.remove('current');\n if(currentSlide === i) button.classList.add('current');\n });\n slides[currentSlide].classList.add('current');\n\n });\n });\n\t});\n});\n","document.addEventListener('DOMContentLoaded', () => {\n const observerOptions = {\n root: null,\n rootMargin: '100px',\n };\n function loadFlourishGraph(entry) {\n if (entry.isIntersecting) {\n const flourishEmbed = entry.target;\n if (!flourishEmbed.classList.contains('flourish-loaded')) {\n flourishEmbed.classList.add('flourish-loaded');\n\n // Create and embed the Flourish iframe manually\n const src = flourishEmbed.getAttribute('data-src');\n const iframe = document.createElement('iframe');\n iframe.src = `https://flo.uri.sh/${ src }/embed`;\n iframe.setAttribute('scrolling', 'no');\n iframe.setAttribute('frameborder', '0');\n iframe.style.width = '100%';\n iframe.style.height = '500px';\n flourishEmbed.appendChild(iframe);\n }\n }\n }\n\n const observer = new IntersectionObserver(((entries) => {\n entries.forEach(loadFlourishGraph);\n }), observerOptions);\n\n document.querySelectorAll('.flourish-embed').forEach((el) => {\n observer.observe(el);\n });\n});\n","document.addEventListener('DOMContentLoaded', () => {\n\tconst openMobileNav = document.querySelector('.mobile-toggle-button');\n\tconst closeMobileNav = document.querySelector('.mobile-close-button');\n\tconst pageElement = document.getElementById('page');\n\tconst html = document.querySelector('html');\n\tlet scrollOffset = 0;\n\tconst documentCloseEventListener = (e) => {\n\t\tif (!e.target.closest('#mobile-header') || e.target.closest('.newsletter-button')) {\n\t\t\tcloseNav(e);\n\t\t}\n\t};\n\n\tconst preventScroll = () => {\n\t\tpageElement.style.setProperty('--scroll-offset', `-${scrollOffset}px`);\n\t};\n\n\tconst returnScroll = () => {\n\t\tconst offset = parseInt(scrollOffset);\n\t\twindow.scrollTo(0, offset);\n\t\tsetTimeout(() => {\n\t\t\tpageElement.style.setProperty('--scroll-offset', '');\n\t\t});\n\t};\n\n\tconst openNav = (e) => {\n\t\te.preventDefault();\n\t\tscrollOffset = window.scrollY;\n\n\t\thtml.classList.add('mobile-overlay-shown');\n\t\thtml.classList.add('mobile-nav-expanded');\n\t\tpreventScroll();\n\t\tsetTimeout(() => {\n\t\t\tdocument.addEventListener('click', documentCloseEventListener);\n\t\t}, 10);\n\t};\n\n\tlet closeNav = (e) => {\n\t\te.preventDefault();\n\t\thtml.classList.remove('mobile-nav-expanded');\n\t\tsetTimeout(() => {\n\t\t\thtml.classList.remove('mobile-overlay-shown');\n\t\t}, 350);\n\t\tdocument.removeEventListener('click', documentCloseEventListener);\n\t\treturnScroll();\n\t};\n\n\topenMobileNav.addEventListener('click', openNav);\n\tcloseMobileNav.addEventListener('click', closeNav);\n\n\thandleSubmenuToggle();\n\taddWrapperToMobileSubMenu();\n});\n\n// Manage the submenu toggle\nfunction handleSubmenuToggle() {\n\tconst firstLevelMenus = document.querySelectorAll('.menu-item-has-children');\n\tif (!firstLevelMenus.length) return;\n\n\tlet timeoutId;\n\n\tfirstLevelMenus.forEach((subMenu) => {\n\t\tconst submenuList = subMenu.querySelector('.sub-menu');\n\t\tconst isDesktopMenu = subMenu.closest('#site-header');\n\n\t\t// Click handler\n\t\tsubMenu.addEventListener('click', (e) => {\n\t\t\tsubmenuList.classList.toggle('sub-menu-expanded');\n\t\t});\n\n\t\tif (isDesktopMenu) {\n\t\t\t// Mouse enter handler - desktop only\n\t\t\tsubMenu.addEventListener('mouseenter', () => {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\tsubmenuList.classList.add('sub-menu-expanded');\n\t\t\t});\n\n\t\t\t// Mouse leave handler - desktop only\n\t\t\tsubMenu.addEventListener('mouseleave', () => {\n\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\tsubmenuList.classList.remove('sub-menu-expanded');\n\t\t\t\t}, 200);\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction addWrapperToMobileSubMenu() {\n\tconst mobileMenu = document.querySelector('#mobile-menu');\n\tif (!mobileMenu) return;\n\tconst mobileMenuItems = mobileMenu.querySelectorAll('.menu-item-has-children');\n\tif (!mobileMenuItems.length) return;\n\n\tmobileMenuItems.forEach((menuItem) => {\n\t\tconst submenuList = menuItem.querySelector('.sub-menu');\n\t\tconst submenuWrapper = document.createElement('div');\n\t\tsubmenuWrapper.classList.add('sub-menu-wrapper');\n\t\tsubmenuWrapper.appendChild(submenuList);\n\t\tmenuItem.appendChild(submenuWrapper);\n\t});\n}\n","document.addEventListener('DOMContentLoaded', () => {\n\tconst newsletterModal = document.getElementById('newsletter-modal');\n\tconst closeNewsletterModal = document.querySelectorAll(\n\t\t'#newsletter-modal button.close-button, #newsletter-modal .modal-bg',\n\t);\n\tconst openNewsletterButtons = document.querySelectorAll('.newsletter-button');\n\n\topenNewsletterButtons.forEach((button) => {\n\t\tbutton.addEventListener('click', (e) => {\n\t\t\te.preventDefault();\n\t\t\tnewsletterModal.classList.add('open');\n\t\t\tdocument.body.classList.add('modal-open');\n\t\t});\n\t});\n\tcloseNewsletterModal.forEach((button) => {\n\t\tbutton.addEventListener('click', (e) => {\n\t\t\te.preventDefault();\n\t\t\tnewsletterModal.classList.remove('open');\n\t\t\tdocument.body.classList.remove('modal-open');\n\t\t});\n\t});\n});\n","window.NifticQueryInterface = class {\n constructor(permalink, element) {\n this.permalink = permalink;\n this.element = element;\n this.dropdowns = this.element.querySelectorAll('[data-niftic-dropdown]');\n this.selects = this.element.querySelectorAll('select[data-niftic-select]');\n this.tmpSelects = this.element.querySelector('.temp-select-location');\n this.searchInput = this.element.querySelector('input#search-box');\n this.resultsArea = this.element.querySelector('[data-niftic-results]');\n this.currentCount = this.element.querySelector('.current-page-count');\n this.paginationArea = this.element.querySelector('.niftic-pagination-controls');\n this.addEventListeners();\n this.ajaxifyLinks();\n }\n\n addEventListeners() {\n this.dropdowns.forEach(dropdown => {\n const button = dropdown.querySelector('button');\n if (button) {\n button.addEventListener('click', event => {\n dropdown.querySelector('.filter-dropdown').classList.toggle('show');\n });\n dropdown.querySelectorAll('input[type=\"checkbox\"]').forEach(checkbox => {\n checkbox.addEventListener('change', event => {\n this.eventLoad();\n });\n });\n const checked = dropdown.querySelectorAll('input:checked').length;\n button.dataset.activeChildren = checked;\n }\n });\n\n this.selects.forEach(select => {\n this.resizeSelect(select);\n select.addEventListener('change', event => {\n this.eventLoad();\n this.resizeSelect(select);\n });\n });\n\n this.searchInput.addEventListener('keyup', e => {\n if ('Enter' === e.key || 13 === e.keyCode) {\n this.eventLoad();\n }\n });\n\n document.addEventListener('click', event => {\n this.dropdowns.forEach(dropdown => {\n if (\n dropdown.querySelector('.filter-dropdown') &&\n dropdown.querySelector('.filter-dropdown').classList.contains('show') &&\n dropdown.querySelector('.filter-dropdown') !== event.target &&\n !dropdown.contains(event.target)\n ) {\n dropdown.querySelector('.filter-dropdown').classList.remove('show');\n }\n });\n });\n }\n\n copyNodeStyle(sourceNode, targetNode) {\n const computedStyle = window.getComputedStyle(sourceNode);\n Array.from(computedStyle).forEach(function(key) {\n return targetNode.style.setProperty(\n key,\n computedStyle.getPropertyValue(key),\n computedStyle.getPropertyPriority(key)\n );\n });\n }\n\n resizeSelect(select) {\n const name = select.name;\n if (!this.tmpSelects.querySelector('select[data-select-name=\"' + name + '\"]')) {\n const newTempSelect = document.createElement('select');\n newTempSelect.dataset.selectName = name;\n newTempSelect.innerHTML = '';\n newTempSelect.classList.add('tmp_select', 'mbn');\n this.tmpSelects.appendChild(newTempSelect);\n }\n const temp = this.tmpSelects.querySelector('select[data-select-name=\"' + name + '\"]');\n temp.innerHTML = '';\n select.style.width = temp.clientWidth + 'px';\n }\n\n makeRequest(type, url, data, callback) {\n const classInstance = this;\n const newXHR = new XMLHttpRequest() || new window.ActiveXObject('Microsoft.XMLHTTP');\n newXHR.open(type, url, true);\n newXHR.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n newXHR.send(data);\n newXHR.onreadystatechange = function() {\n if (200 === this.status && 3 < this.readyState) {\n callback(classInstance, this.response);\n }\n };\n }\n\n updateQueryStringParameter(uri, key, value) {\n const re = new RegExp('([?&])' + key + '=.*?(&|#|$)', 'i');\n if (value === undefined) {\n if (uri.match(re)) {\n return uri\n .replace(re, '$1$2')\n .replace(/[?&]$/, '')\n .replaceAll(/([?&])&+/g, '$1')\n .replace(/[?&]#/, '#');\n }\n return uri;\n }\n if (uri.match(re)) {\n return uri.replace(re, '$1' + key + '=' + value + '$2');\n }\n let hash = '';\n if (-1 !== uri.indexOf('#')) {\n hash = uri.replace(/.*#/, '#');\n uri = uri.replace(/#.*/, '');\n }\n const separator = -1 !== uri.indexOf('?') ? '&' : '?';\n return uri + separator + key + '=' + value + hash;\n }\n addUrlParams(ajaxLink = this.permalink) {\n this.dropdowns.forEach(dropdown => {\n const query = dropdown.dataset.nifticQuery;\n const checked = dropdown.querySelectorAll('input:checked');\n const button = dropdown.querySelector('button');\n if (checked.length) {\n ajaxLink = this.updateQueryStringParameter(\n ajaxLink,\n query,\n Array.from(checked)\n .map(e => e.value)\n .join(' ')\n );\n if (button) {\n dropdown.querySelector('button').classList.add('active');\n dropdown.querySelector('button').dataset.activeChildren = checked.length;\n }\n } else if (button) {\n dropdown.querySelector('button').classList.remove('active');\n dropdown.querySelector('button').dataset.activeChildren = 0;\n }\n });\n this.selects.forEach(select => {\n const query = select.dataset.nifticQuery;\n const value = select.value;\n ajaxLink = this.updateQueryStringParameter(ajaxLink, query, value);\n });\n if (this.searchInput.value) {\n ajaxLink = this.updateQueryStringParameter(ajaxLink, 'search', this.searchInput.value);\n }\n // Update URL before adding JSON parameter\n window.history.pushState(\n {\n path: ajaxLink\n },\n document.title,\n ajaxLink\n );\n ajaxLink = this.updateQueryStringParameter(ajaxLink, 'json', 'true');\n return ajaxLink;\n }\n\n ajaxifyLinks() {\n const links = this.paginationArea.querySelectorAll('a:not([data-ajax-listened])');\n links.forEach(link => {\n link.href = this.updateQueryStringParameter(link.href, 'json', '');\n link.addEventListener('click', event => {\n event.preventDefault();\n const target = event.target;\n if (target.href) {\n const ajaxLink = this.addUrlParams(target.href);\n this.loadBuffer();\n this.makeRequest('GET', ajaxLink, '', this.loadNewEntries);\n }\n });\n link.dataset.ajaxListened = true; // Mark as listened\n });\n }\n\n loadBuffer() {\n this.resultsArea.style.height = this.resultsArea.clientHeight + 'px';\n this.resultsArea.innerHTML =\n '
';\n /*document.querySelector('.main-header').scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });*/\n }\n\n eventLoad(scroll = false) {\n const ajaxLink = this.addUrlParams(this.permalink);\n this.loadBuffer();\n this.makeRequest('GET', ajaxLink, '', this.loadNewEntries);\n }\n\n loadNewEntries(that, data) {\n that.resultsArea.style.height = 'auto';\n data = JSON.parse(data);\n if (data.search) {\n that.searchInput.value = data.search;\n }\n /*if (data['active-topics'] !== \"\") {\n that.topicSelected.innerHTML = '
Filter by: '+ data['active-topics'] +'
';\n } else {\n that.topicSelected.innerHTML = '';\n }*/\n //that.currentCount.innerHTML = data.total;\n that.paginationArea.innerHTML = data.pagination;\n /*if(document.querySelectorAll(that.topicCheck).length > 0) {\n document.getElementById('filter-by-topic').classList.add('active');\n } else {\n document.getElementById('filter-by-topic').classList.remove('active');\n }\n if(document.querySelectorAll(that.yearCheck).length > 0) {\n document.getElementById('filter-by-year').classList.add('active');\n } else {\n document.getElementById('filter-by-year').classList.remove('active');\n }*/\n\n that.ajaxifyLinks();\n that.resultsArea.innerHTML = '';\n data.results.forEach(element => (that.resultsArea.innerHTML += element));\n /*document.querySelectorAll(that.unselectTopics).forEach((cb) => {\n cb.addEventListener('click', () => {\n document.querySelector('input[type=\"checkbox\"][value=\"'+ cb.dataset.topic +'\"]').checked = false;\n var newLink = that.addUrlParams();\n that.loadBuffer();\n that.makeRequest('GET', newLink, '', that.loadNewEntries);\n });\n });\n\n if(that.yearButton.classList.contains('active') || that.topicButton.classList.contains('active'))\n that.mobileFilterToggle.classList.add('active');\n else\n that.mobileFilterToggle.classList.remove('active');*/\n }\n};\n","document.addEventListener('DOMContentLoaded', () => {\n\tconst stickyNav = document.querySelector('#sticky-nav');\n\tif (!stickyNav) return;\n\tconst stickyNavParent = stickyNav.parentElement;\n\tconst sectionAnchors = stickyNav.children;\n\tconst [navLimitLeft, navLimitRight] = stickyNav.querySelectorAll('.nav-limit');\n\tfor (const anchor of sectionAnchors) {\n\t\tif (isOverflowing(anchor, navLimitLeft)|| isOverflowing(anchor, navLimitRight)) {\n\t\t\tanchor.classList.add('faded');\n\t\t} else {\n\t\t\tanchor.classList.remove('faded');\n\t\t}\n\t}\n\tconst sections = [];\n\tfor (const anchor of sectionAnchors) {\n\t\tconst sectionId = anchor.dataset.section;\n\t\tconst sectionElement = document.getElementById(sectionId);\n\t\tif (sectionElement) {\n\t\t\tsections.push(sectionElement);\n\t\t}\n\t}\n\tconst sectionOptions = {\n\t\troot: null,\n\t\trootMargin: '0px',\n\t\tthreshold: 0.2, // If omitted there's a bug when navigating backwards\n\t};\n\n\tlet currentActiveSection = null;\n\n\tconst observerCallback = (entries) => {\n\t\tentries.forEach((entry) => {\n\t\t\tif (!entry.isIntersecting) return;\n\t\t\tconst currentSection = entry.target.id;\n\t\t\tif (currentSection === currentActiveSection) return;\n\t\t\tcurrentActiveSection = currentSection;\n\t\t\tfor (const anchor of sectionAnchors) {\n\t\t\t\t// Scroll so the current one is in the center\n\t\t\t\tif (anchor.dataset.section === currentSection) {\n\t\t\t\t\tanchor.classList.add('current');\n\t\t\t\t} else {\n\t\t\t\t\tanchor.classList.remove('current');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tconst observer = new IntersectionObserver(observerCallback, sectionOptions);\n\n\tsections.forEach((section) => {\n\t\tobserver.observe(section);\n\t});\n\tconst stickyNavOptions = {\n\t\troot: null,\n\t\trootMargin: '10% 0px 0px -50%',\n\t\tthreshold: 0.01,\n\t};\n\n\tconst stickyNavObserverCallback = (entries) => {\n\t\tentries.forEach((entry) => {\n\t\t\tif (entry.isIntersecting) {\n\t\t\t\tconsole.log('here');\n\t\t\t\tstickyNav.dataset.visible = 'true';\n\t\t\t} else {\n\t\t\t\tconsole.log('not here');\n\t\t\t\tstickyNav.dataset.visible = 'false';\n\t\t\t}\n\t\t});\n\t};\n\n\tconst stickyNavObserver = new IntersectionObserver(stickyNavObserverCallback, stickyNavOptions);\n\tstickyNavObserver.observe(stickyNavParent);\n\n\t// // Check if footer section is visible, set sticky nav visibility to 0\n\t// const footerSection = document.querySelector('.footer-section');\n\t// if(footerSection) {\n\t// \tconst footerObserver = new IntersectionObserver((entries) => {\n\t// \t\tentries.forEach(entry => {\n\t// \t\t\tif (entry.isIntersecting) {\n\t// \t\t\t\tstickyNav.dataset.visible = 'false';\n\t// \t\t\t\tfooterObserver.unobserve(entry.target);\n\t// \t\t\t}\n\t// \t\t});\n\t// \t}, {\n\t// \t\tthreshold: 0.01,\n\t// \t});\n\t// \tfooterObserver.observe(footerSection);\n\t// }\n\n\t// Event for horizontal scrolling on mobile\n\n\t// TODO: Instead of overflowing on the parent, check if its on top of the arrows?\n\tstickyNav.addEventListener('scroll', (e) => {\n\t\tfor (const anchor of sectionAnchors) {\n\t\t\tif (isOverflowing(anchor, navLimitLeft) || isOverflowing(anchor, navLimitRight)) {\n\t\t\t\tanchor.classList.add('faded');\n\t\t\t} else {\n\t\t\t\tanchor.classList.remove('faded');\n\t\t\t}\n\t\t}\n\t});\n});\n\n/**\n * @param {HTMLElement | Element} element\n * @param {HTMLElement | Element | null} otherElement\n */\nfunction isOverflowing(element, otherElement = null) {\n\tif (!element) {\n\t\tconsole.error(\"The element doesn't exist in the DOM\");\n\t\treturn false;\n\t}\n\tconst parent = element.parentElement;\n\tif (!parent) {\n\t\tconsole.error('The element does not have a parent element.');\n\t\treturn false;\n\t}\n\t// Check if the element's dimensions exceed its parent's dimensions\n\tconst elementRect = element.getBoundingClientRect();\n\tconst parentRect = parent.getBoundingClientRect();\n\tconst isOverflowingLeft = elementRect.left < parentRect.left;\n\tconst isOverflowingRight = elementRect.right > parentRect.right;\n\n\tif (otherElement) {\n\t\tconst otherRect = otherElement.getBoundingClientRect();\n\n\t\tconst isOverlapping = !(\n\t\t\telementRect.right < otherRect.left ||\n\t\t\telementRect.left > otherRect.right ||\n\t\t\telementRect.bottom < otherRect.top ||\n\t\t\telementRect.top > otherRect.bottom\n\t\t);\n\t\treturn isOverflowingLeft || isOverflowingRight || isOverlapping;\n\t}\n\n\treturn isOverflowingRight || isOverflowingLeft;\n}\n","window.WhatsNewPage = class {\n\tconstructor() {\n\t\tthis.loading = false;\n\t\tthis.reachedEnd = false;\n\t\tthis.selector = '.posts-navigation-area';\n\t\tthis.navigationElm = document.querySelector(this.selector);\n\t\tif (!this.navigationElm) return;\n\t\tthis.navigationElm.classList.add('js-enabled');\n\t\tthis.intersectionObserver.observe(this.navigationElm);\n\t}\n\n\tmakeRequest(type, url, data, callback) {\n\t\tconst classInstance = this;\n\t\tconst newXHR = new XMLHttpRequest() || new window.ActiveXObject('Microsoft.XMLHTTP');\n\t\tnewXHR.open(type, url, true);\n\t\tnewXHR.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\t\tnewXHR.send('json=true');\n\t\tnewXHR.onreadystatechange = function () {\n\t\t\tif (200 === this.status && 3 < this.readyState) {\n\t\t\t\tcallback(classInstance, this.response);\n\t\t\t}\n\t\t};\n\t}\n\n\tappendPosts(classInstance, response) {\n\t\tif (!response) return;\n\t\tresponse = JSON.parse(response);\n\t\tif (response.next_link) {\n\t\t\tclassInstance.navigationElm.innerHTML = response.next_link;\n\t\t} else {\n\t\t\tclassInstance.reachedEnd = true;\n\t\t\tclassInstance.navigationElm.querySelector('a.btn').remove();\n\t\t}\n\t\tconst parser = new DOMParser();\n\t\tconst parsedHTML = parser.parseFromString(response.html, 'text/html');\n\t\tconst posts = parsedHTML.querySelectorAll('.grid .posts-card-holder');\n\t\tif (!posts.length) return;\n\t\t[].forEach.call(posts, function (post, index) {\n\t\t\tpost.classList.add('fade-in');\n\t\t\tpost.style.setProperty('--animation-delay', index * 100 + 'ms');\n\t\t\tdocument.querySelector('.posts-page-section:last-of-type .container .grid').appendChild(post);\n\t\t});\n\t\tsetTimeout(\n\t\t\t() => {\n\t\t\t\tclassInstance.loading = false;\n\t\t\t},\n\t\t\t300 + posts.length * 100,\n\t\t);\n\t\tclassInstance.loading = false;\n\t}\n\n\tintersectionObserver = new IntersectionObserver((entries) => {\n\t\tif (this.loading || this.reachedEnd || entries[0].intersectionRatio <= 0) return;\n\t\tthis.loading = true;\n\t\tconst nextPage = this.navigationElm.querySelector('a.btn');\n\t\tif (!nextPage) return;\n\t\tconst nextPageUrl = nextPage.href;\n\t\tthis.makeRequest('POST', nextPageUrl, JSON.stringify({ json: true }), this.appendPosts);\n\t});\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))"],"names":["document","addEventListener","accordions","querySelectorAll","forEach","accordion","i","header","querySelector","content","contentInner","icon","expand","collapse","hidden","requestAnimationFrame","dataset","expanded","setAttribute","style","height","offsetHeight","innerHTML","ICONS","minus","collapseTimeout","clearTimeout","disabled","setTimeout","plus","createAccordionControls","window","button","classList","contains","remove","add","link","event","getAttribute","preventDefault","citationNumber","citationContent","newModalHolder","createElement","body","appendChild","e","createCitationModal","contentNodes","Array","from","options","rootMargin","threshold","node","IntersectionObserver","entries","observer","entry","intersectionRatio","target","unobserve","observe","faqs","faq","toggle","firstElementChild","clientHeight","slider","slides","titles","currentSlide","parseInt","current","title","slide","arrowControls","prev","children","next","length","loadFlourishGraph","isIntersecting","flourishEmbed","src","iframe","width","root","el","openMobileNav","closeMobileNav","pageElement","getElementById","html","scrollOffset","documentCloseEventListener","closest","closeNav","removeEventListener","returnScroll","offset","scrollTo","setProperty","scrollY","firstLevelMenus","timeoutId","subMenu","submenuList","isDesktopMenu","handleSubmenuToggle","mobileMenu","mobileMenuItems","menuItem","submenuWrapper","addWrapperToMobileSubMenu","newsletterModal","closeNewsletterModal","NifticQueryInterface","constructor","permalink","element","this","dropdowns","selects","tmpSelects","searchInput","resultsArea","currentCount","paginationArea","addEventListeners","ajaxifyLinks","dropdown","checkbox","eventLoad","checked","activeChildren","select","resizeSelect","key","keyCode","copyNodeStyle","sourceNode","targetNode","computedStyle","getComputedStyle","getPropertyValue","getPropertyPriority","name","newTempSelect","selectName","value","temp","clientWidth","makeRequest","type","url","data","callback","classInstance","newXHR","XMLHttpRequest","ActiveXObject","open","setRequestHeader","send","onreadystatechange","status","readyState","response","updateQueryStringParameter","uri","re","RegExp","undefined","match","replace","replaceAll","hash","indexOf","separator","addUrlParams","ajaxLink","query","nifticQuery","map","join","history","pushState","path","href","loadBuffer","loadNewEntries","ajaxListened","scroll","that","JSON","parse","search","pagination","results","isOverflowing","otherElement","console","error","parent","parentElement","elementRect","getBoundingClientRect","parentRect","isOverflowingLeft","left","isOverflowingRight","right","otherRect","isOverlapping","bottom","top","stickyNav","stickyNavParent","sectionAnchors","navLimitLeft","navLimitRight","anchor","sections","sectionId","section","sectionElement","push","currentActiveSection","currentSection","id","log","visible","WhatsNewPage","loading","reachedEnd","selector","navigationElm","intersectionObserver","appendPosts","next_link","posts","DOMParser","parseFromString","call","post","index","nextPage","nextPageUrl","stringify","json","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty"],"sourceRoot":""}