{"version":3,"file":"main.js","names":["_ImageLoader","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","concat","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","_typeof","jquery","nodeType","getElement","length","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","getClientRects","getPropertyValue","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","reflow","offsetHeight","getjQuery","_window","jQuery","body","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","push","isRTL","documentElement","dir","defineJQueryPlugin","plugin","$","name","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","execute","executeAfterTransition","transitionElement","waitForTransition","arguments","durationPadding","emulatedDuration","called","handler","_ref","target","removeEventListener","setTimeout","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","parentNode","i","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","isNative","has","addHandler","wrapFn","relatedTarget","_normalizeParams","_normalizeParams2","_slicedToArray","handlers","previousFn","replace","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","_normalizeParams3","_normalizeParams4","inNamespace","isNamespace","elementEvent","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","key","defineProperty","get","preventDefault","normalizeData","val","normalizeDataKey","chr","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","pageYOffset","left","pageXOffset","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","find","_ref2","_toConsumableArray","Element","prototype","findOne","children","_ref3","child","matches","parents","ancestor","prev","previous","previousElementSibling","next","nextElementSibling","focusableChildren","focusables","map","join","el","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","_classCallCheck","_element","_createClass","getWidth","documentWidth","clientWidth","Math","abs","innerWidth","hide","width","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","style","overflow","styleProp","_this","scrollbarWidth","manipulationCallBack","_applyManipulationCallback","reset","_resetElementAttributes","actualValue","removeProperty","callBack","isOverflowing","elementMap","Map","Data","set","instance","instanceMap","size","console","error","Array","from","remove","VERSION","BaseComponent","constructor","DATA_KEY","dispose","_this2","EVENT_KEY","getOwnPropertyNames","propertyName","_queueCallback","isAnimated","getInstance","getOrCreateInstance","Error","Default$2","className","rootElement","clickCallback","DefaultType$2","NAME$3","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","EVENT_MOUSEDOWN","Backdrop","_config","_getConfig","_isAppended","show","_append","_getElement","add","_emulateAnimation","_this3","backdrop","createElement","_objectSpread","_this4","append","Default$1","trapElement","autofocus","DefaultType$1","NAME$2","DATA_KEY$2","EVENT_KEY$2","EVENT_FOCUSIN","EVENT_KEYDOWN_TAB","TAB_KEY","TAB_NAV_FORWARD","TAB_NAV_BACKWARD","FocusTrap","_isActive","_lastTabNavDirection","activate","_this5","_this$_config","focus","_handleFocusin","_handleKeydown","deactivate","elements","shiftKey","enableDismissTrigger","component","method","clickEvent","tagName","closest","NAME$1","DATA_KEY$1","EVENT_KEY$1","DATA_API_KEY$1","ESCAPE_KEY","Default","keyboard","DefaultType","EVENT_HIDE$1","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$1","CLASS_NAME_OPEN","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","CLASS_NAME_STATIC","OPEN_SELECTOR","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE$1","Modal","_BaseComponent","_inherits","_super","_createSuper","_this6","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_isShown","_ignoreBackdropClick","_isTransitioning","_scrollBar","toggle","_this7","showEvent","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this8","hideEvent","_hideModal","htmlElement","_get","_getPrototypeOf","handleUpdate","_this9","modalBody","display","scrollTop","transitionComplete","_resetAndDisplayIframe","iframe","originalSrc","src","_this10","_triggerBackdropTransition","_this11","_this12","_resetAdjustments","_hideVideoOnModalClose","_this13","currentTarget","_this14","_this$_element","scrollHeight","isModalOverflowing","clientHeight","overflowY","isBodyOverflowing","paddingLeft","paddingRight","each","data","_this15","allReadyOpen","DATA_API_KEY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_DROPDOWN","SELECTOR_NAV_LIST_GROUP","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","_BaseComponent2","_super2","_this16","listElement","itemSelector","nodeName","_activate","complete","container","_this17","activeElements","active","isTransitioning","_transitionComplete","dropdownChild","parent","dropdownElement","dropdown","Accordion","main","bodyClass","isGov","accordions","init","accordion","toggleAccordion","e","accordionItem","toggleIcon","iconHref","blur","Alerts","alertCloseBtns","shouldRender","closeBtn","closeAlert","alerts","alert","alertId","sessionStorage","getItem","setItem","getElementById","AnimatedStat","counters","options","rootMargin","threshold","observer","IntersectionObserver","entries","entry","isIntersecting","animateCounter","unobserve","counter","observe","counterHTML","start","end","step","current","timer","setInterval","innerHTML","clearInterval","BlogCards","years","categories","categories2","categories3","activeCategory","activeCategory2","activeCategory3","activeYear","activeSort","searchTerm","currentPage","index","firstIndex","lastIndex","cardLinks","initCards","filtered","setCategories","card","cardEl","categoriesArr","JSON","parse","category","categorySelect","categoryOption","innerText","appendChild","setCategories2","setCategories3","setYears","_cardEl$querySelector","cardContent","textContent","yearsSelect","year","yearOption","handlePages","list","insertAdjacentHTML","pagination","pageAmount","ceil","renderPage","slicedBlogs","blog","sortingAndFiltering","hasFilters","keyWordSearch","filterBlog","selectedIndex","sortBlog","changePage","pages","nextButton","prevButton","page","parseInt","handlePagingStatus","pageControl","pagingStatus","cardLink","setHover","removeHover","cardImage","filteredCards","cardsReplica","sort","a","b","_a$querySelector","_a$querySelector2","_b$querySelector","_b$querySelector2","_a$querySelector3","_a$querySelector4","_b$querySelector3","_b$querySelector4","_a$querySelector5","_a$querySelector6","_b$querySelector5","_b$querySelector6","yearA","Date","yearB","authorA","authorB","titleA","titleB","cards","cardCategories","filteredCards2","filteredCards3","filteredCards4","_cardEl$querySelector2","filteredCards5","NewsCards","_cardEl$querySelector3","slicedNews","news","filterNews","_document$querySelect","_document$querySelect2","_document$querySelect3","_document$querySelect4","_document$querySelect5","localStorage","sortNews","pageToNav","click","_a$querySelector7","_a$querySelector8","_b$querySelector7","_b$querySelector8","_a$querySelector9","_a$querySelector10","_b$querySelector9","_b$querySelector10","_a$querySelector11","_a$querySelector12","_b$querySelector11","_b$querySelector12","_cardEl$querySelector4","ImageLoader","queue","backgroundQueue","lazyImageObserver","lazyBgObserver","initialize","_this18","getImagesToLazyLoad","abort","onContentLoaded","setGenericPlaceholder","lazyImage","lazyBg","_this19","genericImagePlaceholder","img","genericBgPlaceholder","bg","backgroundColor","_this20","srcset","freeze","_BREAKPOINTS_","Proxy","Symbol","iterator","URLSearchParams","location","search","url","URL","searchParams","history","replaceState","deleteProperty","Carousel","id","carouselType","bulletsWrapper","totalSlides","perSlide","perSlideTablet","perSlideMobile","centerFocus","centerFocusMobile","autoPlay","autoPlayDuration","animationTimingFunc","hoverPause","peek","peekTablet","peekMobile","gap","gapTablet","gapMobile","leftArrowIcon","leftArrowIconMobile","rightArrowIcon","rightArrowIconMobile","cardsSlider","adjustableHeightOnMobile","carouselIsMobileOnly","carousels","resizeHandler","carouselItem","random","checkCarouselIsMobileOnly","setup","carousel","_this21","glideSlides","slides","sm","hideOrShowArrows","setFullBackground","setCarouselButtonPosition","perView","perSwipe","focusAt","autoplay","hoverpause","rewind","dragThreshold","breakpoints","track","parentElement","unscrolled","scrollLeft","slide","slideIndex","indexOf","slider","go","setCountText","isMobile","destroy","Glide","mount","md","slideHeight","root","glideTrack","newHeight","height","scrollIntoView","behavior","block","isFullCarousel","_carousel$parentEleme","_carousel$parentEleme2","_carousel$parentEleme3","_carousel$parentEleme4","fullCarousel","backColor","backImage","showDots","dots","prevNext","showPrevNext","backgroundImage","isGalleryCarousel","gallerySlideContainer","_gallerySlideContaine","photoHeight","_carousel$getAttribut","_carouselItem$getAttr","Datatables","tables","table","_table$getAttribute","_table$getAttribute2","paging","info","searching","isResponsive","horizontalScrollbar","orderCol","orderDir","orderArray","DataTable","targets","orderable","responsive","drawCallback","settings","api","Footer","currentYear","getCurrentYear","getFullYear","yearHTML","FeaturedImageVideoCallout","calculateHeaderHeights","cardLayouts","cardLayout","cardHeadlines","maxHeight","headline","heroBanner","pausePlayBtn","pausePlayVideo","video","paused","play","pause","IconCard","iconCards","ImageCard","imageCards","href","urlExtension","getUrlExtension","fileExtensions","endUrl","pop","LeftNavMenu","seriius","gov","leftNav","shareBarCol9","toggleLeftNavBtns","browserWidth","moveShareBar","toggleLeftNavBtn","toggleLeftNav","leftnav","moveLeftNav","bindMobile","leftNavMobileWrapper","leftNavDesktopWrapper","parentNodes","node","shareDiv","mobileNavToggle","parentToggles","toggleMobileMenu","parentToggle","openMobileSubmenu","closeAllMobileSubmenus","openNodes","keyCode","leftNavMenu","LinkUpdates","links","link","removeTitleAttribute","changeUrl","fileTypes","fileExtension","some","currentUrl","newHref","LogosWidget","backgroundImg","useImg","setBG","desktopImg","mobileImg","MainMenu","parentLinks","bodyClasses","timeId","clearTimeout","executeAfterResize","setBindings","moveSearch","userLinksMobile","checkStacked","siteMenu","abortControl","noMenu","checkIfOutsideOfMenu","hideShowSearchheader2","hideShowSearchheader1","hideShowSearchheader3","reformatRequired","_abortControl","AbortController","desktop","matchMedia","bindDesktop","navStyle","parentLink","openSubmenu","signal","childToggles","childToggle","header3SearchWrappers","header3SearchWrapper","searchToggle","header2SearchWrappers","header2SearchWrapper","header3","mobileSearchSpacer","header1SearchWrappers","headerOneSearch","header1SearchWrapper","header","dropdownList","userLinks","menuWrapper","windowWidth","isheader2","grayBackground","_document$querySelect6","_document$querySelect7","_document$querySelect8","titleWidth","offsetWidth","menuWidth","menuHeight","activeElement","openNode","closeAllSubmenus","searchToggleBtn","mobileSearch","searchMenuWrap","conatains","openChildNodes","currentNode","headerSearchCol","bannerTitleCol","mainMenu","lg","after","prepend","forms","form","labels","label","labelText","mobileToggleBtn","NotificationBanner","notifications","hasLeftNav","notification","closeNotification","subForm","marginBottom","titleBar","ParallaxHero","heros","hero","currentImg","ParallaxImageTextOverlay","fullWidthCtas","banner","fadeOut","opacity","fade","requestAnimationFrame","fadeIn","ScrollToTop","btn","isShown","scrollY","onclick","scrollTo","SoftwareTools","dropdownToggles","ossdTable","toggleDropdown","clickedOutside","OSSDDT","initDatatable","getDatatable","draw","not","stopPropagation","va","order","text","dropdownMenu","withinDropdown","dt","methods","dtid","dom","columns","rows","contents","html","invalidate","pageLength","dataTable","ext","dataIndex","fv","is","rv","row","t","inArray","TeamMembers","teamMemberSections","teamMembers","loadMoreBtn","searchBtn","expandModule","teamSearchRedirect","elementScrollHeight","ToggleSearch","toggleSearchBtns","srcSubSearch","externalSubSearchBtn","externalSubSearchBox","externalSearchBtns","_loop","x","redirectToExternalSearch","childNodes","toggleSearch","pageTitle","redirectToExternalSubSearch","header3ToggleSearchBtn","headerTwoToggleSearchBtn","headerOneToggleSearchBtn","pageWrapper","searchButton","marginTop","_e$target$parentNode$","_e$target$parentNode$2","externalTarget","_e$target$parentNode$3","_e$target$parentNode$4","_e$target$parentNode$5","_e$target$parentNode$6","encodeURIComponent","videoPopup","videos","openModalBtn","generateModal","openModalLink","modalAlt","iframeHref","videoTitle","setAttributes","prop","modalDiv","role","modalContent","fixTabbing","bindModal","closeModal","modal","log","videoModal","clickedVideo","VideoHero","heroVideo","pauseBtn","playBtn","pauseVideo","playVideo","TabbedContent","tabbedContent","targetList","listItems","tab","li","bsToggle","bsTarget","heading","replaceChildren","MailChimpForm","setItemWithDate","newDate","date","stringify","getItemWithDate","subscribeForm","validate","isPopup","seconds","isNaN","formCode","result","visitNo","originalDate","diffDays","GovNews","newsListing","searchInput","yearFilter","sortBy","newsType","newsTopic","clearButton","setEvents","setData","DoSearch","ClearSearch","urlParams","selectedYear","selectedSort","searchText","selectedType","selectedTopic","yearsList","jsonYears","selected","topic","_urlParams$get","_urlParams$get2","_urlParams$get3","_urlParams$get4","_urlParams$get5","searchString","selectedSearch","_searchInput$value","_sortBy$value","_newsType$value","_newsTopic$value","_yearFilter$value","path","segments","isNumeric","searchPath","substring","n","isFinite","ShareThisThreads","updateThreadsLink","currentTitle","title","encodedTitle","encodedUrl","updatedUrl","screenWidth","screen","screenHeight","windowHeight","windowFeatures","open","threads","svg4everybody"],"sources":["main.js"],"sourcesContent":["(function () {\n 'use strict';\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/index.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n const MILLISECONDS_MULTIPLIER = 1000;\r\n const TRANSITION_END = 'transitionend';\r\n\r\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\r\n const toType = obj => {\r\n if (obj === null || obj === undefined) {\r\n return `${obj}`\r\n }\r\n\r\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\r\n };\r\n\r\n const getSelector = element => {\r\n let selector = element.getAttribute('data-bs-target');\r\n\r\n if (!selector || selector === '#') {\r\n let hrefAttr = element.getAttribute('href');\r\n\r\n // The only valid content that could double as a selector are IDs or classes,\r\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\r\n // `document.querySelector` will rightfully complain it is invalid.\r\n // See https://github.com/twbs/bootstrap/issues/32273\r\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\r\n return null\r\n }\r\n\r\n // Just in case some CMS puts out a full URL with the anchor appended\r\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\r\n hrefAttr = `#${hrefAttr.split('#')[1]}`;\r\n }\r\n\r\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\r\n }\r\n\r\n return selector\r\n };\r\n\r\n const getElementFromSelector = element => {\r\n const selector = getSelector(element);\r\n\r\n return selector ? document.querySelector(selector) : null\r\n };\r\n\r\n const getTransitionDurationFromElement = element => {\r\n if (!element) {\r\n return 0\r\n }\r\n\r\n // Get transition-duration of the element\r\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element);\r\n\r\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\r\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\r\n\r\n // Return 0 if element or transition duration is not found\r\n if (!floatTransitionDuration && !floatTransitionDelay) {\r\n return 0\r\n }\r\n\r\n // If multiple durations are defined, take the first\r\n transitionDuration = transitionDuration.split(',')[0];\r\n transitionDelay = transitionDelay.split(',')[0];\r\n\r\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\r\n };\r\n\r\n const triggerTransitionEnd = element => {\r\n element.dispatchEvent(new Event(TRANSITION_END));\r\n };\r\n\r\n const isElement = obj => {\r\n if (!obj || typeof obj !== 'object') {\r\n return false\r\n }\r\n\r\n if (typeof obj.jquery !== 'undefined') {\r\n obj = obj[0];\r\n }\r\n\r\n return typeof obj.nodeType !== 'undefined'\r\n };\r\n\r\n const getElement = obj => {\r\n if (isElement(obj)) { // it's a jQuery object or a node element\r\n return obj.jquery ? obj[0] : obj\r\n }\r\n\r\n if (typeof obj === 'string' && obj.length > 0) {\r\n return document.querySelector(obj)\r\n }\r\n\r\n return null\r\n };\r\n\r\n const typeCheckConfig = (componentName, config, configTypes) => {\r\n Object.keys(configTypes).forEach(property => {\r\n const expectedTypes = configTypes[property];\r\n const value = config[property];\r\n const valueType = value && isElement(value) ? 'element' : toType(value);\r\n\r\n if (!new RegExp(expectedTypes).test(valueType)) {\r\n throw new TypeError(\r\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\r\n )\r\n }\r\n });\r\n };\r\n\r\n const isVisible = element => {\r\n if (!isElement(element) || element.getClientRects().length === 0) {\r\n return false\r\n }\r\n\r\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible'\r\n };\r\n\r\n const isDisabled = element => {\r\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\r\n return true\r\n }\r\n\r\n if (element.classList.contains('disabled')) {\r\n return true\r\n }\r\n\r\n if (typeof element.disabled !== 'undefined') {\r\n return element.disabled\r\n }\r\n\r\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\r\n };\r\n\r\n /**\r\n * Trick to restart an element's animation\r\n *\r\n * @param {HTMLElement} element\r\n * @return void\r\n *\r\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\r\n */\r\n const reflow = element => {\r\n // eslint-disable-next-line no-unused-expressions\r\n element.offsetHeight;\r\n };\r\n\r\n const getjQuery = () => {\r\n const { jQuery } = window;\r\n\r\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\r\n return jQuery\r\n }\r\n\r\n return null\r\n };\r\n\r\n const DOMContentLoadedCallbacks = [];\r\n\r\n const onDOMContentLoaded = callback => {\r\n if (document.readyState === 'loading') {\r\n // add listener on the first call when the document is in loading state\r\n if (!DOMContentLoadedCallbacks.length) {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n DOMContentLoadedCallbacks.forEach(callback => callback());\r\n });\r\n }\r\n\r\n DOMContentLoadedCallbacks.push(callback);\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n const isRTL = () => document.documentElement.dir === 'rtl';\r\n\r\n const defineJQueryPlugin = plugin => {\r\n onDOMContentLoaded(() => {\r\n const $ = getjQuery();\r\n /* istanbul ignore if */\r\n if ($) {\r\n const name = plugin.NAME;\r\n const JQUERY_NO_CONFLICT = $.fn[name];\r\n $.fn[name] = plugin.jQueryInterface;\r\n $.fn[name].Constructor = plugin;\r\n $.fn[name].noConflict = () => {\r\n $.fn[name] = JQUERY_NO_CONFLICT;\r\n return plugin.jQueryInterface\r\n };\r\n }\r\n });\r\n };\r\n\r\n const execute = callback => {\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n };\r\n\r\n const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\r\n if (!waitForTransition) {\r\n execute(callback);\r\n return\r\n }\r\n\r\n const durationPadding = 5;\r\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\r\n\r\n let called = false;\r\n\r\n const handler = ({ target }) => {\r\n if (target !== transitionElement) {\r\n return\r\n }\r\n\r\n called = true;\r\n transitionElement.removeEventListener(TRANSITION_END, handler);\r\n execute(callback);\r\n };\r\n\r\n transitionElement.addEventListener(TRANSITION_END, handler);\r\n setTimeout(() => {\r\n if (!called) {\r\n triggerTransitionEnd(transitionElement);\r\n }\r\n }, emulatedDuration);\r\n };\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/event-handler.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n const namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\r\n const stripNameRegex = /\\..*/;\r\n const stripUidRegex = /::\\d+$/;\r\n const eventRegistry = {}; // Events storage\r\n let uidEvent = 1;\r\n const customEvents = {\r\n mouseenter: 'mouseover',\r\n mouseleave: 'mouseout'\r\n };\r\n const customEventsRegex = /^(mouseenter|mouseleave)/i;\r\n const nativeEvents = new Set([\r\n 'click',\r\n 'dblclick',\r\n 'mouseup',\r\n 'mousedown',\r\n 'contextmenu',\r\n 'mousewheel',\r\n 'DOMMouseScroll',\r\n 'mouseover',\r\n 'mouseout',\r\n 'mousemove',\r\n 'selectstart',\r\n 'selectend',\r\n 'keydown',\r\n 'keypress',\r\n 'keyup',\r\n 'orientationchange',\r\n 'touchstart',\r\n 'touchmove',\r\n 'touchend',\r\n 'touchcancel',\r\n 'pointerdown',\r\n 'pointermove',\r\n 'pointerup',\r\n 'pointerleave',\r\n 'pointercancel',\r\n 'gesturestart',\r\n 'gesturechange',\r\n 'gestureend',\r\n 'focus',\r\n 'blur',\r\n 'change',\r\n 'reset',\r\n 'select',\r\n 'submit',\r\n 'focusin',\r\n 'focusout',\r\n 'load',\r\n 'unload',\r\n 'beforeunload',\r\n 'resize',\r\n 'move',\r\n 'DOMContentLoaded',\r\n 'readystatechange',\r\n 'error',\r\n 'abort',\r\n 'scroll'\r\n ]);\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Private methods\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n function getUidEvent(element, uid) {\r\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\r\n }\r\n\r\n function getEvent(element) {\r\n const uid = getUidEvent(element);\r\n\r\n element.uidEvent = uid;\r\n eventRegistry[uid] = eventRegistry[uid] || {};\r\n\r\n return eventRegistry[uid]\r\n }\r\n\r\n function bootstrapHandler(element, fn) {\r\n return function handler(event) {\r\n event.delegateTarget = element;\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(element, [event])\r\n }\r\n }\r\n\r\n function bootstrapDelegationHandler(element, selector, fn) {\r\n return function handler(event) {\r\n const domElements = element.querySelectorAll(selector);\r\n\r\n for (let { target } = event; target && target !== this; target = target.parentNode) {\r\n for (let i = domElements.length; i--;) {\r\n if (domElements[i] === target) {\r\n event.delegateTarget = target;\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, selector, fn);\r\n }\r\n\r\n return fn.apply(target, [event])\r\n }\r\n }\r\n }\r\n\r\n // To please ESLint\r\n return null\r\n }\r\n }\r\n\r\n function findHandler(events, handler, delegationSelector = null) {\r\n const uidEventList = Object.keys(events);\r\n\r\n for (let i = 0, len = uidEventList.length; i < len; i++) {\r\n const event = events[uidEventList[i]];\r\n\r\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\r\n return event\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n function normalizeParams(originalTypeEvent, handler, delegationFn) {\r\n const delegation = typeof handler === 'string';\r\n const originalHandler = delegation ? delegationFn : handler;\r\n\r\n let typeEvent = getTypeEvent(originalTypeEvent);\r\n const isNative = nativeEvents.has(typeEvent);\r\n\r\n if (!isNative) {\r\n typeEvent = originalTypeEvent;\r\n }\r\n\r\n return [delegation, originalHandler, typeEvent]\r\n }\r\n\r\n function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return\r\n }\r\n\r\n if (!handler) {\r\n handler = delegationFn;\r\n delegationFn = null;\r\n }\r\n\r\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\r\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\r\n if (customEventsRegex.test(originalTypeEvent)) {\r\n const wrapFn = fn => {\r\n return function (event) {\r\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\r\n return fn.call(this, event)\r\n }\r\n }\r\n };\r\n\r\n if (delegationFn) {\r\n delegationFn = wrapFn(delegationFn);\r\n } else {\r\n handler = wrapFn(handler);\r\n }\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);\r\n const events = getEvent(element);\r\n const handlers = events[typeEvent] || (events[typeEvent] = {});\r\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\r\n\r\n if (previousFn) {\r\n previousFn.oneOff = previousFn.oneOff && oneOff;\r\n\r\n return\r\n }\r\n\r\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\r\n const fn = delegation ?\r\n bootstrapDelegationHandler(element, handler, delegationFn) :\r\n bootstrapHandler(element, handler);\r\n\r\n fn.delegationSelector = delegation ? handler : null;\r\n fn.originalHandler = originalHandler;\r\n fn.oneOff = oneOff;\r\n fn.uidEvent = uid;\r\n handlers[uid] = fn;\r\n\r\n element.addEventListener(typeEvent, fn, delegation);\r\n }\r\n\r\n function removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\r\n\r\n if (!fn) {\r\n return\r\n }\r\n\r\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\r\n delete events[typeEvent][fn.uidEvent];\r\n }\r\n\r\n function removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n const storeElementEvent = events[typeEvent] || {};\r\n\r\n Object.keys(storeElementEvent).forEach(handlerKey => {\r\n if (handlerKey.includes(namespace)) {\r\n const event = storeElementEvent[handlerKey];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n }\r\n\r\n function getTypeEvent(event) {\r\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n event = event.replace(stripNameRegex, '');\r\n return customEvents[event] || event\r\n }\r\n\r\n const EventHandler = {\r\n on(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, false);\r\n },\r\n\r\n one(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, true);\r\n },\r\n\r\n off(element, originalTypeEvent, handler, delegationFn) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);\r\n const inNamespace = typeEvent !== originalTypeEvent;\r\n const events = getEvent(element);\r\n const isNamespace = originalTypeEvent.startsWith('.');\r\n\r\n if (typeof originalHandler !== 'undefined') {\r\n // Simplest case: handler is passed, remove that listener ONLY.\r\n if (!events || !events[typeEvent]) {\r\n return\r\n }\r\n\r\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\r\n return\r\n }\r\n\r\n if (isNamespace) {\r\n Object.keys(events).forEach(elementEvent => {\r\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\r\n });\r\n }\r\n\r\n const storeElementEvent = events[typeEvent] || {};\r\n Object.keys(storeElementEvent).forEach(keyHandlers => {\r\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\r\n\r\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\r\n const event = storeElementEvent[keyHandlers];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n },\r\n\r\n trigger(element, event, args) {\r\n if (typeof event !== 'string' || !element) {\r\n return null\r\n }\r\n\r\n const $ = getjQuery();\r\n const typeEvent = getTypeEvent(event);\r\n const inNamespace = event !== typeEvent;\r\n const isNative = nativeEvents.has(typeEvent);\r\n\r\n let jQueryEvent;\r\n let bubbles = true;\r\n let nativeDispatch = true;\r\n let defaultPrevented = false;\r\n let evt = null;\r\n\r\n if (inNamespace && $) {\r\n jQueryEvent = $.Event(event, args);\r\n\r\n $(element).trigger(jQueryEvent);\r\n bubbles = !jQueryEvent.isPropagationStopped();\r\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\r\n defaultPrevented = jQueryEvent.isDefaultPrevented();\r\n }\r\n\r\n if (isNative) {\r\n evt = document.createEvent('HTMLEvents');\r\n evt.initEvent(typeEvent, bubbles, true);\r\n } else {\r\n evt = new CustomEvent(event, {\r\n bubbles,\r\n cancelable: true\r\n });\r\n }\r\n\r\n // merge custom information in our event\r\n if (typeof args !== 'undefined') {\r\n Object.keys(args).forEach(key => {\r\n Object.defineProperty(evt, key, {\r\n get() {\r\n return args[key]\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (defaultPrevented) {\r\n evt.preventDefault();\r\n }\r\n\r\n if (nativeDispatch) {\r\n element.dispatchEvent(evt);\r\n }\r\n\r\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\r\n jQueryEvent.preventDefault();\r\n }\r\n\r\n return evt\r\n }\r\n };\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/manipulator.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n function normalizeData(val) {\r\n if (val === 'true') {\r\n return true\r\n }\r\n\r\n if (val === 'false') {\r\n return false\r\n }\r\n\r\n if (val === Number(val).toString()) {\r\n return Number(val)\r\n }\r\n\r\n if (val === '' || val === 'null') {\r\n return null\r\n }\r\n\r\n return val\r\n }\r\n\r\n function normalizeDataKey(key) {\r\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\r\n }\r\n\r\n const Manipulator = {\r\n setDataAttribute(element, key, value) {\r\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\r\n },\r\n\r\n removeDataAttribute(element, key) {\r\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\r\n },\r\n\r\n getDataAttributes(element) {\r\n if (!element) {\r\n return {}\r\n }\r\n\r\n const attributes = {};\r\n\r\n Object.keys(element.dataset)\r\n .filter(key => key.startsWith('bs'))\r\n .forEach(key => {\r\n let pureKey = key.replace(/^bs/, '');\r\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\r\n attributes[pureKey] = normalizeData(element.dataset[key]);\r\n });\r\n\r\n return attributes\r\n },\r\n\r\n getDataAttribute(element, key) {\r\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\r\n },\r\n\r\n offset(element) {\r\n const rect = element.getBoundingClientRect();\r\n\r\n return {\r\n top: rect.top + window.pageYOffset,\r\n left: rect.left + window.pageXOffset\r\n }\r\n },\r\n\r\n position(element) {\r\n return {\r\n top: element.offsetTop,\r\n left: element.offsetLeft\r\n }\r\n }\r\n };\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/selector-engine.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n const NODE_TEXT = 3;\r\n\r\n const SelectorEngine = {\r\n find(selector, element = document.documentElement) {\r\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\r\n },\r\n\r\n findOne(selector, element = document.documentElement) {\r\n return Element.prototype.querySelector.call(element, selector)\r\n },\r\n\r\n children(element, selector) {\r\n return [].concat(...element.children)\r\n .filter(child => child.matches(selector))\r\n },\r\n\r\n parents(element, selector) {\r\n const parents = [];\r\n\r\n let ancestor = element.parentNode;\r\n\r\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\r\n if (ancestor.matches(selector)) {\r\n parents.push(ancestor);\r\n }\r\n\r\n ancestor = ancestor.parentNode;\r\n }\r\n\r\n return parents\r\n },\r\n\r\n prev(element, selector) {\r\n let previous = element.previousElementSibling;\r\n\r\n while (previous) {\r\n if (previous.matches(selector)) {\r\n return [previous]\r\n }\r\n\r\n previous = previous.previousElementSibling;\r\n }\r\n\r\n return []\r\n },\r\n\r\n next(element, selector) {\r\n let next = element.nextElementSibling;\r\n\r\n while (next) {\r\n if (next.matches(selector)) {\r\n return [next]\r\n }\r\n\r\n next = next.nextElementSibling;\r\n }\r\n\r\n return []\r\n },\r\n\r\n focusableChildren(element) {\r\n const focusables = [\r\n 'a',\r\n 'button',\r\n 'input',\r\n 'textarea',\r\n 'select',\r\n 'details',\r\n '[tabindex]',\r\n '[contenteditable=\"true\"]'\r\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(', ');\r\n\r\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\r\n }\r\n };\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/scrollBar.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\r\n const SELECTOR_STICKY_CONTENT = '.sticky-top';\r\n\r\n class ScrollBarHelper {\r\n constructor() {\r\n this._element = document.body;\r\n }\r\n\r\n getWidth() {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\r\n const documentWidth = document.documentElement.clientWidth;\r\n return Math.abs(window.innerWidth - documentWidth)\r\n }\r\n\r\n hide() {\r\n const width = this.getWidth();\r\n this._disableOverFlow();\r\n // give padding to element to balance the hidden scrollbar width\r\n this._setElementAttributes(this._element, 'paddingRight', calculatedValue => calculatedValue + width);\r\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\r\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);\r\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);\r\n }\r\n\r\n _disableOverFlow() {\r\n this._saveInitialAttribute(this._element, 'overflow');\r\n this._element.style.overflow = 'hidden';\r\n }\r\n\r\n _setElementAttributes(selector, styleProp, callback) {\r\n const scrollbarWidth = this.getWidth();\r\n const manipulationCallBack = element => {\r\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\r\n return\r\n }\r\n\r\n this._saveInitialAttribute(element, styleProp);\r\n const calculatedValue = window.getComputedStyle(element)[styleProp];\r\n element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`;\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n reset() {\r\n this._resetElementAttributes(this._element, 'overflow');\r\n this._resetElementAttributes(this._element, 'paddingRight');\r\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\r\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\r\n }\r\n\r\n _saveInitialAttribute(element, styleProp) {\r\n const actualValue = element.style[styleProp];\r\n if (actualValue) {\r\n Manipulator.setDataAttribute(element, styleProp, actualValue);\r\n }\r\n }\r\n\r\n _resetElementAttributes(selector, styleProp) {\r\n const manipulationCallBack = element => {\r\n const value = Manipulator.getDataAttribute(element, styleProp);\r\n if (typeof value === 'undefined') {\r\n element.style.removeProperty(styleProp);\r\n } else {\r\n Manipulator.removeDataAttribute(element, styleProp);\r\n element.style[styleProp] = value;\r\n }\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n _applyManipulationCallback(selector, callBack) {\r\n if (isElement(selector)) {\r\n callBack(selector);\r\n } else {\r\n SelectorEngine.find(selector, this._element).forEach(callBack);\r\n }\r\n }\r\n\r\n isOverflowing() {\r\n return this.getWidth() > 0\r\n }\r\n }\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n const elementMap = new Map();\r\n\r\n var Data = {\r\n set(element, key, instance) {\r\n if (!elementMap.has(element)) {\r\n elementMap.set(element, new Map());\r\n }\r\n\r\n const instanceMap = elementMap.get(element);\r\n\r\n // make it clear we only want one instance per element\r\n // can be removed later when multiple key/instances are fine to be used\r\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\r\n // eslint-disable-next-line no-console\r\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\r\n return\r\n }\r\n\r\n instanceMap.set(key, instance);\r\n },\r\n\r\n get(element, key) {\r\n if (elementMap.has(element)) {\r\n return elementMap.get(element).get(key) || null\r\n }\r\n\r\n return null\r\n },\r\n\r\n remove(element, key) {\r\n if (!elementMap.has(element)) {\r\n return\r\n }\r\n\r\n const instanceMap = elementMap.get(element);\r\n\r\n instanceMap.delete(key);\r\n\r\n // free up element references if there are no instances left for an element\r\n if (instanceMap.size === 0) {\r\n elementMap.delete(element);\r\n }\r\n }\r\n };\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): base-component.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n const VERSION = '5.1.3';\r\n\r\n class BaseComponent {\r\n constructor(element) {\r\n element = getElement(element);\r\n\r\n if (!element) {\r\n return\r\n }\r\n\r\n this._element = element;\r\n Data.set(this._element, this.constructor.DATA_KEY, this);\r\n }\r\n\r\n dispose() {\r\n Data.remove(this._element, this.constructor.DATA_KEY);\r\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\r\n\r\n Object.getOwnPropertyNames(this).forEach(propertyName => {\r\n this[propertyName] = null;\r\n });\r\n }\r\n\r\n _queueCallback(callback, element, isAnimated = true) {\r\n executeAfterTransition(callback, element, isAnimated);\r\n }\r\n\r\n /** Static */\r\n\r\n static getInstance(element) {\r\n return Data.get(getElement(element), this.DATA_KEY)\r\n }\r\n\r\n static getOrCreateInstance(element, config = {}) {\r\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\r\n }\r\n\r\n static get VERSION() {\r\n return VERSION\r\n }\r\n\r\n static get NAME() {\r\n throw new Error('You have to implement the static method \"NAME\", for each component!')\r\n }\r\n\r\n static get DATA_KEY() {\r\n return `bs.${this.NAME}`\r\n }\r\n\r\n static get EVENT_KEY() {\r\n return `.${this.DATA_KEY}`\r\n }\r\n }\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/backdrop.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n const Default$2 = {\r\n className: 'modal-backdrop',\r\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\r\n isAnimated: false,\r\n rootElement: 'body', // give the choice to place backdrop under different elements\r\n clickCallback: null\r\n };\r\n\r\n const DefaultType$2 = {\r\n className: 'string',\r\n isVisible: 'boolean',\r\n isAnimated: 'boolean',\r\n rootElement: '(element|string)',\r\n clickCallback: '(function|null)'\r\n };\r\n const NAME$3 = 'backdrop';\r\n const CLASS_NAME_FADE$2 = 'fade';\r\n const CLASS_NAME_SHOW$2 = 'show';\r\n\r\n const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$3}`;\r\n\r\n class Backdrop {\r\n constructor(config) {\r\n this._config = this._getConfig(config);\r\n this._isAppended = false;\r\n this._element = null;\r\n }\r\n\r\n show(callback) {\r\n if (!this._config.isVisible) {\r\n execute(callback);\r\n return\r\n }\r\n\r\n this._append();\r\n\r\n if (this._config.isAnimated) {\r\n reflow(this._getElement());\r\n }\r\n\r\n this._getElement().classList.add(CLASS_NAME_SHOW$2);\r\n\r\n this._emulateAnimation(() => {\r\n execute(callback);\r\n });\r\n }\r\n\r\n hide(callback) {\r\n if (!this._config.isVisible) {\r\n execute(callback);\r\n return\r\n }\r\n\r\n this._getElement().classList.remove(CLASS_NAME_SHOW$2);\r\n\r\n this._emulateAnimation(() => {\r\n this.dispose();\r\n execute(callback);\r\n });\r\n }\r\n\r\n // Private\r\n\r\n _getElement() {\r\n if (!this._element) {\r\n const backdrop = document.createElement('div');\r\n backdrop.className = this._config.className;\r\n if (this._config.isAnimated) {\r\n backdrop.classList.add(CLASS_NAME_FADE$2);\r\n }\r\n\r\n this._element = backdrop;\r\n }\r\n\r\n return this._element\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default$2,\r\n ...(typeof config === 'object' ? config : {})\r\n };\r\n\r\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\r\n config.rootElement = getElement(config.rootElement);\r\n typeCheckConfig(NAME$3, config, DefaultType$2);\r\n return config\r\n }\r\n\r\n _append() {\r\n if (this._isAppended) {\r\n return\r\n }\r\n\r\n this._config.rootElement.append(this._getElement());\r\n\r\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\r\n execute(this._config.clickCallback);\r\n });\r\n\r\n this._isAppended = true;\r\n }\r\n\r\n dispose() {\r\n if (!this._isAppended) {\r\n return\r\n }\r\n\r\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\r\n\r\n this._element.remove();\r\n this._isAppended = false;\r\n }\r\n\r\n _emulateAnimation(callback) {\r\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\r\n }\r\n }\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/focustrap.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n const Default$1 = {\r\n trapElement: null, // The element to trap focus inside of\r\n autofocus: true\r\n };\r\n\r\n const DefaultType$1 = {\r\n trapElement: 'element',\r\n autofocus: 'boolean'\r\n };\r\n\r\n const NAME$2 = 'focustrap';\r\n const DATA_KEY$2 = 'bs.focustrap';\r\n const EVENT_KEY$2 = `.${DATA_KEY$2}`;\r\n const EVENT_FOCUSIN = `focusin${EVENT_KEY$2}`;\r\n const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$2}`;\r\n\r\n const TAB_KEY = 'Tab';\r\n const TAB_NAV_FORWARD = 'forward';\r\n const TAB_NAV_BACKWARD = 'backward';\r\n\r\n class FocusTrap {\r\n constructor(config) {\r\n this._config = this._getConfig(config);\r\n this._isActive = false;\r\n this._lastTabNavDirection = null;\r\n }\r\n\r\n activate() {\r\n const { trapElement, autofocus } = this._config;\r\n\r\n if (this._isActive) {\r\n return\r\n }\r\n\r\n if (autofocus) {\r\n trapElement.focus();\r\n }\r\n\r\n EventHandler.off(document, EVENT_KEY$2); // guard against infinite focus loop\r\n EventHandler.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event));\r\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\r\n\r\n this._isActive = true;\r\n }\r\n\r\n deactivate() {\r\n if (!this._isActive) {\r\n return\r\n }\r\n\r\n this._isActive = false;\r\n EventHandler.off(document, EVENT_KEY$2);\r\n }\r\n\r\n // Private\r\n\r\n _handleFocusin(event) {\r\n const { target } = event;\r\n const { trapElement } = this._config;\r\n\r\n if (target === document || target === trapElement || trapElement.contains(target)) {\r\n return\r\n }\r\n\r\n const elements = SelectorEngine.focusableChildren(trapElement);\r\n\r\n if (elements.length === 0) {\r\n trapElement.focus();\r\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\r\n elements[elements.length - 1].focus();\r\n } else {\r\n elements[0].focus();\r\n }\r\n }\r\n\r\n _handleKeydown(event) {\r\n if (event.key !== TAB_KEY) {\r\n return\r\n }\r\n\r\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default$1,\r\n ...(typeof config === 'object' ? config : {})\r\n };\r\n typeCheckConfig(NAME$2, config, DefaultType$1);\r\n return config\r\n }\r\n }\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/component-functions.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n const enableDismissTrigger = (component, method = 'hide') => {\r\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\r\n const name = component.NAME;\r\n\r\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (isDisabled(this)) {\r\n return\r\n }\r\n\r\n const target = getElementFromSelector(this) || this.closest(`.${name}`);\r\n const instance = component.getOrCreateInstance(target);\r\n\r\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\r\n instance[method]();\r\n });\r\n };\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): modal.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n const NAME$1 = 'modal';\r\n const DATA_KEY$1 = 'bs.modal';\r\n const EVENT_KEY$1 = `.${DATA_KEY$1}`;\r\n const DATA_API_KEY$1 = '.data-api';\r\n const ESCAPE_KEY = 'Escape';\r\n\r\n const Default = {\r\n backdrop: true,\r\n keyboard: true,\r\n focus: true\r\n };\r\n\r\n const DefaultType = {\r\n backdrop: '(boolean|string)',\r\n keyboard: 'boolean',\r\n focus: 'boolean'\r\n };\r\n\r\n const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;\r\n const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$1}`;\r\n const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;\r\n const EVENT_SHOW$1 = `show${EVENT_KEY$1}`;\r\n const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;\r\n const EVENT_RESIZE = `resize${EVENT_KEY$1}`;\r\n const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$1}`;\r\n const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$1}`;\r\n const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$1}`;\r\n const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$1}`;\r\n const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$1}${DATA_API_KEY$1}`;\r\n\r\n const CLASS_NAME_OPEN = 'modal-open';\r\n const CLASS_NAME_FADE$1 = 'fade';\r\n const CLASS_NAME_SHOW$1 = 'show';\r\n const CLASS_NAME_STATIC = 'modal-static';\r\n\r\n const OPEN_SELECTOR = '.modal.show';\r\n const SELECTOR_DIALOG = '.modal-dialog';\r\n const SELECTOR_MODAL_BODY = '.modal-body';\r\n const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"modal\"]';\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n class Modal extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._config = this._getConfig(config);\r\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\r\n this._backdrop = this._initializeBackDrop();\r\n this._focustrap = this._initializeFocusTrap();\r\n this._isShown = false;\r\n this._ignoreBackdropClick = false;\r\n this._isTransitioning = false;\r\n this._scrollBar = new ScrollBarHelper();\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default\r\n }\r\n\r\n static get NAME() {\r\n return NAME$1\r\n }\r\n\r\n // Public\r\n\r\n toggle(relatedTarget) {\r\n return this._isShown ? this.hide() : this.show(relatedTarget)\r\n }\r\n\r\n show(relatedTarget) {\r\n if (this._isShown || this._isTransitioning) {\r\n return\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, {\r\n relatedTarget\r\n });\r\n\r\n if (showEvent.defaultPrevented) {\r\n return\r\n }\r\n\r\n this._isShown = true;\r\n\r\n if (this._isAnimated()) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n this._scrollBar.hide();\r\n\r\n document.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n this._adjustDialog();\r\n\r\n this._setEscapeEvent();\r\n this._setResizeEvent();\r\n\r\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\r\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\r\n if (event.target === this._element) {\r\n this._ignoreBackdropClick = true;\r\n }\r\n });\r\n });\r\n\r\n this._showBackdrop(() => this._showElement(relatedTarget));\r\n }\r\n\r\n hide() {\r\n if (!this._isShown || this._isTransitioning) {\r\n return\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$1);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return\r\n }\r\n\r\n this._isShown = false;\r\n const isAnimated = this._isAnimated();\r\n\r\n if (isAnimated) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n this._setEscapeEvent();\r\n this._setResizeEvent();\r\n\r\n this._focustrap.deactivate();\r\n\r\n this._element.classList.remove(CLASS_NAME_SHOW$1);\r\n\r\n EventHandler.off(this._element, EVENT_CLICK_DISMISS);\r\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\r\n\r\n this._queueCallback(() => this._hideModal(), this._element, isAnimated);\r\n }\r\n\r\n dispose() {\r\n [window, this._dialog]\r\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$1));\r\n\r\n this._backdrop.dispose();\r\n this._focustrap.deactivate();\r\n super.dispose();\r\n }\r\n\r\n handleUpdate() {\r\n this._adjustDialog();\r\n }\r\n\r\n // Private\r\n\r\n _initializeBackDrop() {\r\n return new Backdrop({\r\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value\r\n isAnimated: this._isAnimated()\r\n })\r\n }\r\n\r\n _initializeFocusTrap() {\r\n return new FocusTrap({\r\n trapElement: this._element\r\n })\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...(typeof config === 'object' ? config : {})\r\n };\r\n typeCheckConfig(NAME$1, config, DefaultType);\r\n return config\r\n }\r\n\r\n _showElement(relatedTarget) {\r\n const isAnimated = this._isAnimated();\r\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\r\n\r\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\r\n // Don't move modal's DOM position\r\n document.body.append(this._element);\r\n }\r\n\r\n this._element.style.display = 'block';\r\n this._element.removeAttribute('aria-hidden');\r\n this._element.setAttribute('aria-modal', true);\r\n this._element.setAttribute('role', 'dialog');\r\n this._element.scrollTop = 0;\r\n\r\n if (modalBody) {\r\n modalBody.scrollTop = 0;\r\n }\r\n\r\n if (isAnimated) {\r\n reflow(this._element);\r\n }\r\n\r\n this._element.classList.add(CLASS_NAME_SHOW$1);\r\n\r\n const transitionComplete = () => {\r\n if (this._config.focus) {\r\n this._focustrap.activate();\r\n }\r\n\r\n this._isTransitioning = false;\r\n EventHandler.trigger(this._element, EVENT_SHOWN$1, {\r\n relatedTarget\r\n });\r\n this._resetAndDisplayIframe(); \r\n };\r\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\r\n }\r\n\r\n _resetAndDisplayIframe() {\r\n const iframe = this._element.querySelector('iframe');\r\n \r\n if (iframe && iframe.dataset.originalSrc) {\r\n iframe.src = iframe.dataset.originalSrc;\r\n }\r\n }\r\n _setEscapeEvent() {\r\n if (this._isShown) {\r\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\r\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\r\n event.preventDefault();\r\n this.hide();\r\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\r\n this._triggerBackdropTransition();\r\n }\r\n });\r\n } else {\r\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);\r\n }\r\n }\r\n\r\n _setResizeEvent() {\r\n if (this._isShown) {\r\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog());\r\n } else {\r\n EventHandler.off(window, EVENT_RESIZE);\r\n }\r\n }\r\n\r\n _hideModal() {\r\n this._element.style.display = 'none';\r\n this._element.setAttribute('aria-hidden', true);\r\n this._element.removeAttribute('aria-modal');\r\n this._element.removeAttribute('role');\r\n this._isTransitioning = false;\r\n this._backdrop.hide(() => {\r\n document.body.classList.remove(CLASS_NAME_OPEN);\r\n this._resetAdjustments();\r\n this._scrollBar.reset();\r\n EventHandler.trigger(this._element, EVENT_HIDDEN$1);\r\n });\r\n this._hideVideoOnModalClose(); \r\n }\r\n\r\n _hideVideoOnModalClose() {\r\n const iframe = this._element.querySelector('iframe');\r\n \r\n if(iframe) {\r\n iframe.dataset.originalSrc = iframe.src;\r\n iframe.removeAttribute('src');\r\n }\r\n }\r\n\r\n _showBackdrop(callback) {\r\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\r\n if (this._ignoreBackdropClick) {\r\n this._ignoreBackdropClick = false;\r\n return\r\n }\r\n\r\n if (event.target !== event.currentTarget) {\r\n return\r\n }\r\n\r\n if (this._config.backdrop === true) {\r\n this.hide();\r\n } else if (this._config.backdrop === 'static') {\r\n this._triggerBackdropTransition();\r\n }\r\n });\r\n\r\n this._backdrop.show(callback);\r\n }\r\n\r\n _isAnimated() {\r\n return this._element.classList.contains(CLASS_NAME_FADE$1)\r\n }\r\n\r\n _triggerBackdropTransition() {\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\r\n if (hideEvent.defaultPrevented) {\r\n return\r\n }\r\n\r\n const { classList, scrollHeight, style } = this._element;\r\n const isModalOverflowing = scrollHeight > document.documentElement.clientHeight;\r\n\r\n // return if the following background transition hasn't yet completed\r\n if ((!isModalOverflowing && style.overflowY === 'hidden') || classList.contains(CLASS_NAME_STATIC)) {\r\n return\r\n }\r\n\r\n if (!isModalOverflowing) {\r\n style.overflowY = 'hidden';\r\n }\r\n\r\n classList.add(CLASS_NAME_STATIC);\r\n this._queueCallback(() => {\r\n classList.remove(CLASS_NAME_STATIC);\r\n if (!isModalOverflowing) {\r\n this._queueCallback(() => {\r\n style.overflowY = '';\r\n }, this._dialog);\r\n }\r\n }, this._dialog);\r\n\r\n this._element.focus();\r\n }\r\n\r\n // ----------------------------------------------------------------------\r\n // the following methods are used to handle overflowing modals\r\n // ----------------------------------------------------------------------\r\n\r\n _adjustDialog() {\r\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n const scrollbarWidth = this._scrollBar.getWidth();\r\n const isBodyOverflowing = scrollbarWidth > 0;\r\n\r\n if ((!isBodyOverflowing && isModalOverflowing && !isRTL()) || (isBodyOverflowing && !isModalOverflowing && isRTL())) {\r\n this._element.style.paddingLeft = `${scrollbarWidth}px`;\r\n }\r\n\r\n if ((isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!isBodyOverflowing && isModalOverflowing && isRTL())) {\r\n this._element.style.paddingRight = `${scrollbarWidth}px`;\r\n }\r\n }\r\n\r\n _resetAdjustments() {\r\n this._element.style.paddingLeft = '';\r\n this._element.style.paddingRight = '';\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config, relatedTarget) {\r\n return this.each(function () {\r\n const data = Modal.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return\r\n }\r\n\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`)\r\n }\r\n\r\n data[config](relatedTarget);\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\r\n const target = getElementFromSelector(this);\r\n\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n EventHandler.one(target, EVENT_SHOW$1, showEvent => {\r\n if (showEvent.defaultPrevented) {\r\n // only register focus restorer if modal will actually get shown\r\n return\r\n }\r\n\r\n EventHandler.one(target, EVENT_HIDDEN$1, () => {\r\n if (isVisible(this)) {\r\n this.focus();\r\n }\r\n });\r\n });\r\n\r\n // avoid conflict when clicking modal toggler while another one is open\r\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\r\n if (allReadyOpen) {\r\n Modal.getInstance(allReadyOpen).hide();\r\n }\r\n\r\n const data = Modal.getOrCreateInstance(target);\r\n\r\n data.toggle(this);\r\n });\r\n\r\n enableDismissTrigger(Modal);\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Modal to jQuery only if jQuery is present\r\n */\r\n\r\n defineJQueryPlugin(Modal);\n\n /**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): tab.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n const NAME = 'tab';\r\n const DATA_KEY = 'bs.tab';\r\n const EVENT_KEY = `.${DATA_KEY}`;\r\n const DATA_API_KEY = '.data-api';\r\n\r\n const EVENT_HIDE = `hide${EVENT_KEY}`;\r\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\n const EVENT_SHOW = `show${EVENT_KEY}`;\r\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\r\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\n const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\r\n const CLASS_NAME_ACTIVE = 'active';\r\n const CLASS_NAME_FADE = 'fade';\r\n const CLASS_NAME_SHOW = 'show';\r\n\r\n const SELECTOR_DROPDOWN = '.dropdown';\r\n const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\r\n const SELECTOR_ACTIVE = '.active';\r\n const SELECTOR_ACTIVE_UL = ':scope > li > .active';\r\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]';\r\n const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\r\n const SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n class Tab extends BaseComponent {\r\n // Getters\r\n\r\n static get NAME() {\r\n return NAME\r\n }\r\n\r\n // Public\r\n\r\n show() {\r\n if ((this._element.parentNode &&\r\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\r\n this._element.classList.contains(CLASS_NAME_ACTIVE))) {\r\n return\r\n }\r\n\r\n let previous;\r\n const target = getElementFromSelector(this._element);\r\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);\r\n\r\n if (listElement) {\r\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;\r\n previous = SelectorEngine.find(itemSelector, listElement);\r\n previous = previous[previous.length - 1];\r\n }\r\n\r\n const hideEvent = previous ?\r\n EventHandler.trigger(previous, EVENT_HIDE, {\r\n relatedTarget: this._element\r\n }) :\r\n null;\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\r\n relatedTarget: previous\r\n });\r\n\r\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\r\n return\r\n }\r\n\r\n this._activate(this._element, listElement);\r\n\r\n const complete = () => {\r\n EventHandler.trigger(previous, EVENT_HIDDEN, {\r\n relatedTarget: this._element\r\n });\r\n EventHandler.trigger(this._element, EVENT_SHOWN, {\r\n relatedTarget: previous\r\n });\r\n };\r\n\r\n if (target) {\r\n this._activate(target, target.parentNode, complete);\r\n } else {\r\n complete();\r\n }\r\n }\r\n\r\n // Private\r\n\r\n _activate(element, container, callback) {\r\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\r\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\r\n SelectorEngine.children(container, SELECTOR_ACTIVE);\r\n\r\n const active = activeElements[0];\r\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE));\r\n\r\n const complete = () => this._transitionComplete(element, active, callback);\r\n\r\n if (active && isTransitioning) {\r\n active.classList.remove(CLASS_NAME_SHOW);\r\n this._queueCallback(complete, element, true);\r\n } else {\r\n complete();\r\n }\r\n }\r\n\r\n _transitionComplete(element, active, callback) {\r\n if (active) {\r\n active.classList.remove(CLASS_NAME_ACTIVE);\r\n\r\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);\r\n\r\n if (dropdownChild) {\r\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE);\r\n }\r\n\r\n if (active.getAttribute('role') === 'tab') {\r\n active.setAttribute('aria-selected', false);\r\n }\r\n }\r\n\r\n element.classList.add(CLASS_NAME_ACTIVE);\r\n if (element.getAttribute('role') === 'tab') {\r\n element.setAttribute('aria-selected', true);\r\n }\r\n\r\n reflow(element);\r\n\r\n if (element.classList.contains(CLASS_NAME_FADE)) {\r\n element.classList.add(CLASS_NAME_SHOW);\r\n }\r\n\r\n let parent = element.parentNode;\r\n if (parent && parent.nodeName === 'LI') {\r\n parent = parent.parentNode;\r\n }\r\n\r\n if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\r\n const dropdownElement = element.closest(SELECTOR_DROPDOWN);\r\n\r\n if (dropdownElement) {\r\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement)\r\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE));\r\n }\r\n\r\n element.setAttribute('aria-expanded', true);\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Tab.getOrCreateInstance(this);\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`)\r\n }\r\n\r\n data[config]();\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (isDisabled(this)) {\r\n return\r\n }\r\n\r\n const data = Tab.getOrCreateInstance(this);\r\n data.show();\r\n });\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Tab to jQuery only if jQuery is present\r\n */\r\n\r\n defineJQueryPlugin(Tab);\n\n class Accordion {\r\n static main() {\r\n const bodyClass = document.querySelector('body').classList;\r\n const isGov = bodyClass.contains('gov') ? true : false;\r\n\r\n const accordions = document.querySelectorAll('.accordion-trigger');\r\n if (accordions) {\r\n init();\r\n }\r\n\r\n function init() {\r\n accordions.forEach((accordion) => {\r\n accordion.addEventListener('click', toggleAccordion); \r\n }); \r\n }\r\n\r\n function toggleAccordion(e) {\r\n e.preventDefault();\r\n const accordionItem = e.target.closest('.accordion'); \r\n const toggle = e.currentTarget; \r\n\r\n if (!accordionItem.classList.contains('open')) {\r\n accordionItem.classList.add('open');\r\n toggle.setAttribute('aria-expanded', true);\r\n\r\n // Gov uses + and - icons, not chevrons like Microsites\r\n if (isGov) {\r\n const toggleIcon = e.currentTarget.querySelector('.accordion-icon svg use');\r\n if (toggleIcon) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#accordion-minus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n }\r\n else {\r\n accordionItem.classList.remove('open');\r\n toggle.setAttribute('aria-expanded', false); \r\n toggle.blur();\r\n\r\n // Gov uses + and - circles, not chevrons like Microsites\r\n if (isGov) {\r\n const toggleIcon = e.currentTarget.querySelector('.accordion-icon svg use');\r\n if (toggleIcon) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#accordion-plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // function updateAccordionScrollbar() {\r\n // accordions.forEach((accordion) => {\r\n // const content = accordion.querySelector('.accordion-content');\r\n // if (content.scrollHeight > accordion.clientHeight) {\r\n // accordion.style.overflowY = 'scroll';\r\n // } else {\r\n // accordion.style.overflowY = 'hidden';\r\n // }\r\n // });\r\n // }\r\n }\r\n }\n\n class Alerts {\r\n static main() {\r\n\r\n init();\r\n\r\n function init() { \r\n const alertCloseBtns = document.querySelectorAll('.alert .js-close-alert');\r\n \r\n if (alertCloseBtns) {\r\n shouldRender();\r\n\r\n alertCloseBtns.forEach((closeBtn) => {\r\n closeBtn.addEventListener('click', closeAlert);\r\n });\r\n }\r\n }\r\n\r\n // check sessionStorage if alert has been closed or not already\r\n function shouldRender() {{\r\n const alerts = document.querySelectorAll('.alert');\r\n\r\n alerts.forEach((alert) => {\r\n const alertId = alert.getAttribute('id');\r\n const shouldRender = sessionStorage.getItem('alert-'+alertId) !== \"dismissed\";\r\n\r\n if (shouldRender) {\r\n alert.classList.add('show');\r\n }\r\n });\r\n }}\r\n\r\n function closeAlert(e) {\r\n e.preventDefault();\r\n const alertId = e.target.closest('.alert').getAttribute('id');\r\n \r\n sessionStorage.setItem('alert-' + alertId, \"dismissed\");\r\n document.getElementById(alertId).classList.remove('show');\r\n }\r\n }\r\n }\n\n /*\r\n We start by selecting all elements with the class counter and setting up an IntersectionObserver to watch for when they become visible in the viewport.\r\n\r\n When a counter element becomes visible, we call the animateCounter function to start animating the counter from the start value to the end value in increments of the step value.\r\n\r\n The animateCounter function uses a setInterval timer to increment the current value of the counter and update its text content every 5 milliseconds. Once the current value reaches the end value, the timer is cleared and the counter text content is set to the final value.\r\n\r\n */\r\n class AnimatedStat {\r\n static main() {\r\n const counters = document.querySelectorAll('.animated-stat');\r\n const options = {\r\n rootMargin: '0px',\r\n threshold: 0.5\r\n };\r\n\r\n const observer = new IntersectionObserver(function(entries, observer) {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n animateCounter(entry.target);\r\n observer.unobserve(entry.target);\r\n }\r\n });\r\n }, options);\r\n\r\n counters.forEach(counter => {\r\n observer.observe(counter);\r\n });\r\n\r\n function animateCounter(counter) {\r\n const counterHTML = counter.querySelector('.counter-num');\r\n const start = Number(counter.getAttribute('data-start'));\r\n const end = Number(counter.getAttribute('data-end'));\r\n const step = Number(counter.getAttribute('data-step'));\r\n let current = start;\r\n\r\n const timer = setInterval(() => {\r\n current += step;\r\n counterHTML.innerHTML = current;\r\n if (current >= end) {\r\n counterHTML.innerHTML = end;\r\n clearInterval(timer);\r\n }\r\n }, 5);\r\n }\r\n }\r\n }\n\n class BlogCards {\r\n static main() {\r\n let years = new Set();\r\n let categories = new Set();\r\n let categories2 = new Set();\r\n let categories3 = new Set();\r\n\r\n let activeCategory = \"all\";\r\n let activeCategory2 = \"all\";\r\n let activeCategory3 = \"all\";\r\n let activeYear = \"all\";\r\n let activeSort = \"all\";\r\n let searchTerm = null;\r\n let currentPage = 1;\r\n let index = {\r\n firstIndex: 0,\r\n lastIndex: 9\r\n };\r\n \r\n const cardLinks = document.querySelectorAll('.blog-widget .kdx-card a, .event-widget .kdx-card a, .blog-listing .kdx-card a, .event-listing .kdx-card a');\r\n const initCards = [...document.querySelectorAll('.blog-listing .listing.row > *')];\r\n \r\n let filtered = initCards;\r\n\r\n if (cardLinks.length) {\r\n init();\r\n }\r\n\r\n function setCategories(){\r\n initCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const categoriesArr = JSON.parse(cardEl.getAttribute(\"data-categories\"));\r\n for(const category in categoriesArr){\r\n categories.add(categoriesArr[category]);\r\n }\r\n });\r\n const categorySelect = document.querySelector(\"#filter-by-category\");\r\n categories.forEach(category => {\r\n const categoryOption = document.createElement(\"option\");\r\n categoryOption.setAttribute(\"value\", category);\r\n categoryOption.innerText = category;\r\n categorySelect.appendChild(categoryOption);\r\n });\r\n }\r\n\r\n function setCategories2(){\r\n initCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const categoriesArr = JSON.parse(cardEl.getAttribute(\"data-categories-2\"));\r\n for(const category in categoriesArr){\r\n categories2.add(categoriesArr[category]);\r\n }\r\n });\r\n const categorySelect = document.querySelector(\"#filter-by-category-2\");\r\n categories2.forEach(category => {\r\n const categoryOption = document.createElement(\"option\");\r\n categoryOption.setAttribute(\"value\", category);\r\n categoryOption.innerText = category;\r\n categorySelect.appendChild(categoryOption);\r\n });\r\n }\r\n\r\n function setCategories3(){\r\n initCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const categoriesArr = JSON.parse(cardEl.getAttribute(\"data-categories-3\"));\r\n for(const category in categoriesArr){\r\n categories3.add(categoriesArr[category]);\r\n }\r\n });\r\n const categorySelect = document.querySelector(\"#filter-by-category-3\");\r\n categories3.forEach(category => {\r\n const categoryOption = document.createElement(\"option\");\r\n categoryOption.setAttribute(\"value\", category);\r\n categoryOption.innerText = category;\r\n categorySelect.appendChild(categoryOption);\r\n });\r\n }\r\n\r\n function setYears(){\r\n initCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const cardContent = cardEl.querySelector(\".date\")?.textContent;\r\n cardContent !== null && cardContent !== undefined && years.add(cardContent.slice(-4));\r\n });\r\n const yearsSelect = document.querySelector(\"#filter-by-year\");\r\n years.forEach((year) => {\r\n const yearOption = document.createElement(\"option\");\r\n yearOption.setAttribute(\"value\", year);\r\n yearOption.innerText = year;\r\n yearsSelect.appendChild(yearOption);\r\n });\r\n }\r\n\r\n function handlePages(){\r\n //clear pages\r\n const list = document.querySelector(\".blog-listing .pagination ul\");\r\n if (list==null)\r\n {\r\n return;\r\n }\r\n\r\n Array.from(list.children).forEach((child) => {\r\n child.remove();\r\n });\r\n\r\n //Add prev and next buttons manually\r\n list.insertAdjacentHTML(\"afterbegin\", `
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • `);\r\n\r\n //Then append pages\r\n const pagination = document.querySelector(\".blog-listing .pagination ul li.previous-page\");\r\n const pageAmount = filtered.length ? Math.ceil(filtered.length / 9) : 0;\r\n if(pageAmount <= 1){\r\n document.querySelector(\".next-page a\").setAttribute(\"disabled\", \"true\");\r\n document.querySelector(\".previous-page a\").setAttribute(\"disabled\", \"true\");\r\n }\r\n for(var i = pageAmount; i > 0; i--){\r\n pagination.insertAdjacentHTML(\"afterend\", `
  • ${i}
  • `);\r\n }\r\n }\r\n\r\n function renderPage(){\r\n filtered.forEach((card) => {\r\n card.remove();\r\n });\r\n \r\n const slicedBlogs = filtered.slice(index.firstIndex, index.lastIndex);\r\n slicedBlogs.forEach((blog) => {\r\n document.querySelector(\".blog-listing .listing.row\").append(blog);\r\n });\r\n }\r\n\r\n function sortingAndFiltering(){\r\n var hasFilters = document.querySelector(\"#filter-by-category\") \r\n || document.querySelector(\"#filter-by-category-2\")\r\n || document.querySelector(\"#filter-by-category-3\");\r\n \r\n if (!hasFilters)\r\n {\r\n return;\r\n }\r\n\r\n document.querySelector(\".blog-listing .filters form .input-group input[type='submit']\").addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n const keyWordSearch = document.querySelector(\"#keyword-search\").value;\r\n searchTerm = keyWordSearch ? keyWordSearch : null;\r\n filterBlog();\r\n });\r\n\r\n document.querySelector(\".blog-listing .filters .clear-search a\").addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n document.querySelector(\"#keyword-search\").value = \"\";\r\n document.querySelector(\"#sort-by\").selectedIndex = \"0\";\r\n document.querySelector(\"#filter-by-category\").selectedIndex = \"0\";\r\n document.querySelector(\"#filter-by-category-2\").selectedIndex = \"0\";\r\n document.querySelector(\"#filter-by-category-3\").selectedIndex = \"0\";\r\n document.querySelector(\"#filter-by-year\").selectedIndex = \"0\";\r\n activeSort = document.querySelector(\"#sort-by\").value;\r\n activeCategory = document.querySelector(\"#filter-by-category\").value;\r\n activeCategory2 = document.querySelector(\"#filter-by-category-2\").value;\r\n activeCategory3 = document.querySelector(\"#filter-by-category-3\").value;\r\n activeYear = document.querySelector(\"#filter-by-year\").value;\r\n searchTerm = null;\r\n filterBlog();\r\n sortBlog(filtered);\r\n });\r\n\r\n\r\n if (document.querySelector(\"#filter-by-category\"))\r\n {\r\n document.querySelector(\"#filter-by-category\").addEventListener(\"change\", (e) => {\r\n activeCategory = e.target.value;\r\n filterBlog();\r\n });\r\n }\r\n\r\n if (document.querySelector(\"#filter-by-category-2\"))\r\n {\r\n document.querySelector(\"#filter-by-category-2\").addEventListener(\"change\", (e) => {\r\n activeCategory2 = e.target.value;\r\n filterBlog();\r\n });\r\n }\r\n\r\n if (document.querySelector(\"#filter-by-category-3\"))\r\n {\r\n document.querySelector(\"#filter-by-category-3\").addEventListener(\"change\", (e) => {\r\n activeCategory3 = e.target.value;\r\n filterBlog();\r\n });\r\n }\r\n\r\n if (document.querySelector(\"#filter-by-year\"))\r\n {\r\n document.querySelector(\"#filter-by-year\").addEventListener(\"change\", (e) => {\r\n activeYear = e.target.value;\r\n filterBlog();\r\n });\r\n }\r\n\r\n if (document.querySelector(\"#sort-by\"))\r\n {\r\n document.querySelector(\"#sort-by\").addEventListener(\"change\", (e) => {\r\n activeSort = e.target.value;\r\n sortBlog(filtered);\r\n });\r\n }\r\n }\r\n\r\n function changePage(e, pages, nextButton, prevButton){\r\n e.preventDefault();\r\n pages.forEach((page) => page.classList.contains(\"active\") && page.classList.remove(\"active\"));\r\n\r\n currentPage = parseInt(e.target.getAttribute(\"data-index\"));\r\n index.firstIndex = currentPage === 1 ? 0 : (9 * (currentPage - 1));\r\n index.lastIndex = currentPage === 1 ? 9 : (9 * (currentPage - 1)) + 9;\r\n\r\n nextButton.removeAttribute(\"disabled\");\r\n prevButton.removeAttribute(\"disabled\");\r\n\r\n handlePagingStatus(filtered);\r\n\r\n index.firstIndex === 0 ? prevButton.setAttribute(\"disabled\", \"true\") : prevButton.removeAttribute(\"disabled\");\r\n filtered[index.lastIndex] === undefined ? nextButton.setAttribute(\"disabled\", \"true\") : nextButton.removeAttribute(\"disabled\");\r\n\r\n e.target.classList.add(\"active\");\r\n renderPage();\r\n }\r\n\r\n function pageControl(){\r\n\r\n const prevButton = document.querySelector(\".previous-page a\");\r\n const nextButton = document.querySelector(\".next-page a\");\r\n const pages = Array.from(document.querySelectorAll(\".blog-listing .pagination ul .page\"));\r\n\r\n if (prevButton)\r\n {\r\n prevButton.addEventListener(\"click\", (e) => {\r\n currentPage -= 1;\r\n index.firstIndex -= 9;\r\n index.lastIndex -= 9;\r\n\r\n pages.forEach((page) => page.classList.contains(\"active\") && page.classList.remove(\"active\"));\r\n pages.find((page) => parseInt(page.getAttribute(\"data-index\")) === currentPage).classList.add(\"active\");\r\n\r\n handlePagingStatus(filtered);\r\n\r\n nextButton.removeAttribute(\"disabled\");\r\n index.firstIndex === 0 ? prevButton.setAttribute(\"disabled\", \"true\") : prevButton.removeAttribute(\"disabled\");\r\n renderPage();\r\n });\r\n }\r\n if (nextButton)\r\n {\r\n nextButton.addEventListener(\"click\", (e) => {\r\n currentPage += 1;\r\n index.firstIndex += 9;\r\n index.lastIndex += 9;\r\n\r\n pages.forEach((page) => page.classList.contains(\"active\") && page.classList.remove(\"active\"));\r\n pages.find((page) => parseInt(page.getAttribute(\"data-index\")) === currentPage).classList.add(\"active\");\r\n\r\n handlePagingStatus(filtered);\r\n\r\n prevButton.removeAttribute(\"disabled\");\r\n filtered[index.lastIndex] === undefined ? nextButton.setAttribute(\"disabled\", \"true\") : prevButton.removeAttribute(\"disabled\");\r\n renderPage();\r\n });\r\n }\r\n if (pages)\r\n {\r\n pages.forEach((page) => {\r\n page.addEventListener(\"click\", (e) => {\r\n changePage(e, pages, nextButton, prevButton);\r\n });\r\n });\r\n }\r\n }\r\n\r\n function handlePagingStatus(filtered){\r\n let lastIndex = null;\r\n for(var i = (index.firstIndex); i < index.lastIndex; i++){\r\n if(filtered[i] === undefined){\r\n lastIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n const pagingStatus = document.querySelector(\".paging-status\");\r\n if (pagingStatus)\r\n {\r\n document.querySelector(\".paging-status\").innerText = `Showing ${index.firstIndex + 1}-${filtered.length < 9 ? filtered.length : (lastIndex !== null ? lastIndex : index.lastIndex)} of ${filtered.length}`;\r\n }\r\n }\r\n\r\n function init() {\r\n //Handle init paging status\r\n handlePagingStatus(filtered);\r\n \r\n //Render first page on load\r\n renderPage();\r\n\r\n //Handle page buttons\r\n handlePages();\r\n\r\n //Find Categories and Years.\r\n setCategories();\r\n setCategories2();\r\n setCategories3();\r\n setYears();\r\n\r\n\r\n //Add click listeners to page buttons\r\n pageControl();\r\n \r\n //Add change and click listeners for filtering and sorting\r\n sortingAndFiltering();\r\n\r\n\r\n //Add hover listeners to blog links\r\n cardLinks.forEach((cardLink) => {\r\n const card = cardLink.closest('.kdx-card');\r\n \r\n cardLink.addEventListener('mouseenter', setHover);\r\n cardLink.addEventListener('mouseleave', removeHover);\r\n cardLink.addEventListener('focusin', setHover);\r\n cardLink.addEventListener('focusout', removeHover);\r\n \r\n if (card) {\r\n const cardImage = card.querySelector('.card-img-top');\r\n\r\n if (!cardImage) {\r\n card.classList.add('no-image'); \r\n }\r\n }\r\n });\r\n }\r\n\r\n function sortBlog(filteredCards){\r\n handlePagingStatus(filteredCards);\r\n\r\n currentPage = 1;\r\n index.firstIndex = 0;\r\n index.lastIndex = 9;\r\n const cardsReplica = filteredCards.sort((a, b) => {\r\n //Date Sorting\r\n const yearA = a?.querySelector(\".date\")?.textContent !== undefined && a?.querySelector(\".date\")?.textContent !== null ? new Date(a.querySelector(\".date\").textContent) : new Date(\"1/1/1900\");\r\n const yearB = b?.querySelector(\".date\")?.textContent !== undefined && b?.querySelector(\".date\")?.textContent !== null ? new Date(b.querySelector(\".date\").textContent) : new Date(\"1/1/1900\");\r\n\r\n //Author Sorting\r\n const authorA = a?.querySelector(\".author\")?.textContent !== undefined && a?.querySelector(\".author\")?.textContent !== null ? a.querySelector(\".author\").textContent.toUpperCase().trim(\"\") : \" \";\r\n const authorB = b?.querySelector(\".author\")?.textContent !== undefined && b?.querySelector(\".author\")?.textContent !== null ? b.querySelector(\".author\").textContent.toUpperCase().trim(\"\") : \" \";\r\n\r\n //Title Sorting\r\n const titleA = a?.querySelector(\".card-title a\")?.textContent !== undefined && a?.querySelector(\".card-title a\")?.textContent !== null ? a.querySelector(\".card-title a\").textContent.toUpperCase().trim(\"\") : \" \";\r\n const titleB = b?.querySelector(\".card-title a\")?.textContent !== undefined && b?.querySelector(\".card-title a\")?.textContent !== null ? b.querySelector(\".card-title a\").textContent.toUpperCase().trim(\"\") : \" \";\r\n\r\n if(activeSort === \"date-descending\"){\r\n return yearA == yearB ? 0 : (yearA > yearB ? 1 : -1);\r\n }else if(activeSort === \"date-ascending\"){\r\n return yearA == yearB ? 0 : (yearA < yearB ? 1 : -1);\r\n }else if(activeSort === \"author-z-a\"){\r\n return authorA == authorB ? 0 : (authorA > authorB ? 1 : -1);\r\n }else if(activeSort === \"author-a-z\"){\r\n return authorA == authorB ? 0 : (authorA < authorB ? 1 : -1);\r\n }else if(activeSort == \"title-z-a\"){\r\n return titleA == titleB ? 0 : (titleA < titleB ? 1 : -1);\r\n }else if(activeSort == \"title-a-z\"){\r\n return titleA == titleB ? 0 : (titleA > titleB ? 1 : -1);\r\n }\r\n });\r\n filtered = [...cardsReplica];\r\n \r\n handlePages();\r\n renderPage();\r\n pageControl();\r\n }\r\n \r\n function filterBlog(){\r\n filtered = [];\r\n //Level 1 Filter (categories)\r\n const cards = [...initCards];\r\n cards.forEach((child) => {\r\n child.remove();\r\n });\r\n let filteredCards = [];\r\n if(activeCategory == \"all\"){\r\n filteredCards = [...cards];\r\n }else {\r\n cards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const cardCategories = JSON.parse(cardEl.getAttribute(\"data-categories\"));\r\n if(cardCategories.includes(activeCategory)){\r\n filteredCards.push(card);\r\n }\r\n });\r\n }\r\n\r\n //Level 2 Filter (categories2)\r\n let filteredCards2 = [];\r\n if(activeCategory2 == \"all\"){\r\n filteredCards2 = [...filteredCards];\r\n }else {\r\n filteredCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const cardCategories = JSON.parse(cardEl.getAttribute(\"data-categories-2\"));\r\n if(cardCategories.includes(activeCategory2)){\r\n filteredCards2.push(card);\r\n }\r\n });\r\n }\r\n\r\n //Level 3 Filter (categories2)\r\n let filteredCards3 = [];\r\n if(activeCategory3 == \"all\"){\r\n filteredCards3 = [...filteredCards2];\r\n }else {\r\n filteredCards2.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const cardCategories = JSON.parse(cardEl.getAttribute(\"data-categories-3\"));\r\n if(cardCategories.includes(activeCategory3)){\r\n filteredCards3.push(card);\r\n }\r\n });\r\n }\r\n \r\n //Level 4 Filter (years)\r\n let filteredCards4 = [];\r\n if(activeYear == \"all\"){\r\n filteredCards4 = [...filteredCards3];\r\n }else {\r\n filteredCards3.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n if(cardEl?.querySelector(\".date\")?.textContent.slice(-4) == activeYear){\r\n filteredCards4.push(card);\r\n }\r\n });\r\n }\r\n\r\n //Level 5 Filter (search term)\r\n let filteredCards5 = [];\r\n if(searchTerm == null){\r\n filteredCards4.forEach((card) => {\r\n document.querySelector(\".blog-listing .listing.row\").append(card);\r\n });\r\n filteredCards5 = filteredCards4;\r\n }else {\r\n filteredCards4.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n if(cardEl?.querySelector(\".card-title a\").textContent.toUpperCase().includes(searchTerm.toUpperCase())){\r\n document.querySelector(\".blog-listing .listing.row\").append(card);\r\n filteredCards5.push(card);\r\n }\r\n });\r\n }\r\n\r\n index.firstIndex = 0;\r\n index.lastIndex = 9;\r\n\r\n //Sort the filtered list\r\n sortBlog(filteredCards5);\r\n\r\n //Handle pagination\r\n \r\n handlePages();\r\n renderPage();\r\n pageControl();\r\n\r\n\r\n }\r\n\r\n function setHover(e) {\r\n e.target.closest('.kdx-card').classList.add('hover');\r\n }\r\n\r\n function removeHover(e) {\r\n e.target.closest('.kdx-card').classList.remove('hover');\r\n }\r\n }\r\n }\n\n class NewsCards {\r\n static main() {\r\n let years = new Set();\r\n let categories = new Set();\r\n let categories2 = new Set();\r\n let categories3 = new Set();\r\n\r\n let activeCategory = \"all\";\r\n let activeCategory2 = \"all\";\r\n let activeCategory3 = \"all\";\r\n let activeYear = \"all\";\r\n let activeSort = \"all\";\r\n let searchTerm = null;\r\n let currentPage = 1;\r\n let pageAmount = 0;\r\n let prevButton = null;\r\n let nextButton = null;\r\n\r\n let index = {\r\n firstIndex: 0,\r\n lastIndex: 9\r\n };\r\n\r\n let pages = [];\r\n \r\n const cardLinks = document.querySelectorAll('.news-widget .kdx-card a, .event-widget .kdx-card a, .news-listing .kdx-card a, .event-listing .kdx-card a');\r\n const initCards = [...document.querySelectorAll('.news-listing .listing.row > *')];\r\n \r\n let filtered = initCards;\r\n\r\n if (cardLinks.length) {\r\n init();\r\n }\r\n\r\n function setCategories(){\r\n initCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const categoriesArr = JSON.parse(cardEl.getAttribute(\"data-categories\"));\r\n for(const category in categoriesArr){\r\n categories.add(categoriesArr[category]);\r\n }\r\n });\r\n const categorySelect = document.querySelector(\"#filter-by-category\");\r\n categories.forEach(category => {\r\n const categoryOption = document.createElement(\"option\");\r\n categoryOption.setAttribute(\"value\", category);\r\n categoryOption.innerText = category;\r\n categorySelect.appendChild(categoryOption);\r\n });\r\n }\r\n\r\n function setCategories2(){\r\n initCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const categoriesArr = JSON.parse(cardEl.getAttribute(\"data-categories-2\"));\r\n for(const category in categoriesArr){\r\n categories2.add(categoriesArr[category]);\r\n }\r\n });\r\n const categorySelect = document.querySelector(\"#filter-by-category-2\");\r\n categories2.forEach(category => {\r\n const categoryOption = document.createElement(\"option\");\r\n categoryOption.setAttribute(\"value\", category);\r\n categoryOption.innerText = category;\r\n categorySelect.appendChild(categoryOption);\r\n });\r\n }\r\n\r\n function setCategories3(){\r\n initCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const categoriesArr = JSON.parse(cardEl.getAttribute(\"data-categories-3\"));\r\n for(const category in categoriesArr){\r\n categories3.add(categoriesArr[category]);\r\n }\r\n });\r\n const categorySelect = document.querySelector(\"#filter-by-category-3\");\r\n categories3.forEach(category => {\r\n const categoryOption = document.createElement(\"option\");\r\n categoryOption.setAttribute(\"value\", category);\r\n categoryOption.innerText = category;\r\n categorySelect.appendChild(categoryOption);\r\n });\r\n }\r\n\r\n function setYears(){\r\n initCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const cardContent = cardEl.querySelector(\".date\")?.textContent;\r\n cardContent !== null && cardContent !== undefined && years.add(cardContent.slice(-4));\r\n });\r\n const yearsSelect = document.querySelector(\"#filter-by-year\");\r\n years.forEach((year) => {\r\n const yearOption = document.createElement(\"option\");\r\n yearOption.setAttribute(\"value\", year);\r\n yearOption.innerText = year;\r\n yearsSelect.appendChild(yearOption);\r\n });\r\n }\r\n\r\n function handlePages(){\r\n //clear pages\r\n const list = document.querySelector(\".news-listing .pagination ul\");\r\n if (list==null)\r\n {\r\n return;\r\n }\r\n\r\n Array.from(list.children).forEach((child) => {\r\n child.remove();\r\n });\r\n\r\n list.innerHTML = \"\";\r\n\r\n //Add prev and next buttons manually\r\n list.insertAdjacentHTML(\"afterbegin\", `
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • `);\r\n\r\n //Then append pages\r\n const pagination = document.querySelector(\".news-listing .pagination ul li.previous-page\");\r\n pageAmount = filtered.length ? Math.ceil(filtered.length / 9) : 0;\r\n\r\n if(pageAmount <= 1){\r\n document.querySelector(\".next-page a\").setAttribute(\"disabled\", \"true\");\r\n document.querySelector(\".previous-page a\").setAttribute(\"disabled\", \"true\");\r\n }\r\n\r\n if (!currentPage)\r\n {\r\n currentPage = 1;\r\n }\r\n\r\n if (pageAmount <= 11)\r\n {\r\n for(var i = pageAmount; i > 0; i--){\r\n pagination.insertAdjacentHTML(\"afterend\", `
  • ${i}
  • `);\r\n }\r\n }\r\n //handle paging for large number of pages\r\n else\r\n {\r\n for(var i = pageAmount; i > pageAmount-3; i--){\r\n pagination.insertAdjacentHTML(\"afterend\", `
  • ${i}
  • `);\r\n }\r\n pagination.insertAdjacentHTML(\"afterend\", \"... \");\r\n if (currentPage > 3 && currentPage <= pageAmount-3) {\r\n for(var i = currentPage+3; i > currentPage-3; i--){\r\n if (i > 3 && i <= pageAmount - 3)\r\n {\r\n pagination.insertAdjacentHTML(\"afterend\", `
  • ${i}
  • `);\r\n }\r\n }\r\n pagination.insertAdjacentHTML(\"afterend\", \"... \");\r\n }\r\n for(var i = 3; i > 0; i--){\r\n pagination.insertAdjacentHTML(\"afterend\", `
  • ${i}
  • `);\r\n }\r\n }\r\n }\r\n\r\n function renderPage(){\r\n filtered.forEach((card) => {\r\n card.remove();\r\n });\r\n \r\n const slicedNews = filtered.slice(index.firstIndex, index.lastIndex);\r\n slicedNews.forEach((news) => {\r\n document.querySelector(\".news-listing .listing.row\").append(news);\r\n });\r\n }\r\n\r\n function sortingAndFiltering(){\r\n var hasFilters = document.querySelector(\"#filter-by-category\") \r\n || document.querySelector(\"#filter-by-category-2\")\r\n || document.querySelector(\"#filter-by-category-3\");\r\n \r\n if (!hasFilters)\r\n {\r\n return;\r\n }\r\n\r\n document.querySelector(\".news-listing .filters form .input-group input[type='submit']\").addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n const keyWordSearch = document.querySelector(\"#keyword-search\").value;\r\n searchTerm = keyWordSearch ? keyWordSearch : null;\r\n filterNews();\r\n });\r\n\r\n document.querySelector(\".news-listing .filters .clear-search a\").addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n localStorage.setItem(\"newsPage\", 1);\r\n document.querySelector(\"#keyword-search\").value = \"\";\r\n document.querySelector(\"#sort-by\").selectedIndex = \"0\";\r\n document.querySelector(\"#filter-by-category\").selectedIndex = \"0\";\r\n document.querySelector(\"#filter-by-category-2\").selectedIndex = \"0\";\r\n document.querySelector(\"#filter-by-category-3\").selectedIndex = \"0\";\r\n document.querySelector(\"#filter-by-year\").selectedIndex = \"0\";\r\n activeSort = document.querySelector(\"#sort-by\")?.value;\r\n activeCategory = document.querySelector(\"#filter-by-category\")?.value;\r\n activeCategory2 = document.querySelector(\"#filter-by-category-2\")?.value;\r\n activeCategory3 = document.querySelector(\"#filter-by-category-3\")?.value;\r\n activeYear = document.querySelector(\"#filter-by-year\")?.value;\r\n searchTerm = null;\r\n filterNews();\r\n sortNews(filtered);\r\n });\r\n\r\n\r\n if (document.querySelector(\"#filter-by-category\"))\r\n {\r\n document.querySelector(\"#filter-by-category\").addEventListener(\"change\", (e) => {\r\n activeCategory = e.target.value;\r\n filterNews();\r\n });\r\n }\r\n\r\n if (document.querySelector(\"#filter-by-category-2\"))\r\n {\r\n document.querySelector(\"#filter-by-category-2\").addEventListener(\"change\", (e) => {\r\n activeCategory2 = e.target.value;\r\n filterNews();\r\n });\r\n }\r\n\r\n if (document.querySelector(\"#filter-by-category-3\"))\r\n {\r\n document.querySelector(\"#filter-by-category-3\").addEventListener(\"change\", (e) => {\r\n activeCategory3 = e.target.value;\r\n filterNews();\r\n });\r\n }\r\n\r\n if (document.querySelector(\"#filter-by-year\"))\r\n {\r\n document.querySelector(\"#filter-by-year\").addEventListener(\"change\", (e) => {\r\n activeYear = e.target.value;\r\n filterNews();\r\n });\r\n }\r\n\r\n if (document.querySelector(\"#sort-by\"))\r\n {\r\n document.querySelector(\"#sort-by\").addEventListener(\"change\", (e) => {\r\n activeSort = e.target.value;\r\n sortNews(filtered);\r\n });\r\n }\r\n }\r\n\r\n function changePage(e, pages, nextButton, prevButton){\r\n e.preventDefault();\r\n\r\n pages.forEach((page) => page.classList.contains(\"active\") && page.classList.remove(\"active\"));\r\n\r\n currentPage = parseInt(e.target.getAttribute(\"data-index\"));\r\n\r\n handlePages();\r\n pageControl();\r\n index.firstIndex = currentPage === 1 ? 0 : (9 * (currentPage - 1));\r\n index.lastIndex = currentPage === 1 ? 9 : (9 * (currentPage - 1)) + 9;\r\n\r\n handlePagingStatus(filtered);\r\n \r\n //if user clicked on page 1, disable prev button, otherwise remove disabled attribute\r\n currentPage === 1 ? document.querySelector(\".previous-page a\").setAttribute(\"disabled\", \"true\") : \r\n document.querySelector(\".previous-page a\").removeAttribute(\"disabled\");\r\n\r\n //if user clicked on last page, disable next button, otherwise remove disabled attribute\r\n currentPage === pageAmount ? document.querySelector(\".next-page a\").setAttribute(\"disabled\", \"true\") : \r\n document.querySelector(\".next-page a\").removeAttribute(\"disabled\");\r\n\r\n e.target.classList.add(\"active\");\r\n localStorage.setItem(\"newsPage\", currentPage);\r\n renderPage();\r\n \r\n }\r\n\r\n function pageControl(){\r\n\r\n prevButton = document.querySelector(\".previous-page a\");\r\n nextButton = document.querySelector(\".next-page a\");\r\n pages = Array.from(document.querySelectorAll(\".news-listing .pagination ul .page\"));\r\n\r\n if (prevButton)\r\n {\r\n prevButton.addEventListener(\"click\", (e) => {\r\n currentPage -= 1;\r\n index.firstIndex -= 9;\r\n index.lastIndex -= 9;\r\n\r\n handlePages();\r\n pageControl();\r\n\r\n pages.forEach((page) => page.classList.contains(\"active\") && page.classList.remove(\"active\"));\r\n pages.find((page) => parseInt(page.getAttribute(\"data-index\")) === currentPage).classList.add(\"active\");\r\n\r\n handlePagingStatus(filtered);\r\n\r\n nextButton.removeAttribute(\"disabled\");\r\n\r\n currentPage === 1 ? prevButton.setAttribute(\"disabled\", \"true\") : prevButton.removeAttribute(\"disabled\");\r\n renderPage();\r\n \r\n });\r\n }\r\n if (nextButton)\r\n {\r\n nextButton.addEventListener(\"click\", (e) => {\r\n currentPage += 1;\r\n index.firstIndex += 9;\r\n index.lastIndex += 9;\r\n\r\n handlePages();\r\n pageControl();\r\n\r\n pages.forEach((page) => page.classList.contains(\"active\") && page.classList.remove(\"active\"));\r\n pages.find((page) => parseInt(page.getAttribute(\"data-index\")) === currentPage).classList.add(\"active\");\r\n\r\n handlePagingStatus(filtered);\r\n\r\n prevButton.removeAttribute(\"disabled\");\r\n currentPage === pageAmount ? nextButton.setAttribute(\"disabled\", \"true\") : nextButton.removeAttribute(\"disabled\");\r\n renderPage();\r\n \r\n });\r\n }\r\n if (pages)\r\n {\r\n pages.forEach((page) => {\r\n page.addEventListener(\"click\", (e) => {\r\n changePage(e, pages);\r\n });\r\n });\r\n }\r\n }\r\n\r\n function handlePagingStatus(filtered){\r\n let lastIndex = null;\r\n for(var i = (index.firstIndex); i < index.lastIndex; i++){\r\n if(filtered[i] === undefined){\r\n lastIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n const pagingStatus = document.querySelector(\".paging-status\");\r\n if (pagingStatus)\r\n {\r\n document.querySelector(\".paging-status\").innerText = `Showing ${index.firstIndex + 1}-${filtered.length < 9 ? filtered.length : (lastIndex !== null ? lastIndex : index.lastIndex)} of ${filtered.length}`;\r\n }\r\n }\r\n\r\n function init() {\r\n //Handle init paging status\r\n handlePagingStatus(filtered);\r\n \r\n //Render first page on load\r\n renderPage();\r\n\r\n //Handle page buttons\r\n handlePages();\r\n\r\n //Find Categories and Years.\r\n setCategories();\r\n setCategories2();\r\n setCategories3();\r\n setYears();\r\n\r\n\r\n //Add click listeners to page buttons\r\n pageControl();\r\n \r\n //Add change and click listeners for filtering and sorting\r\n sortingAndFiltering();\r\n\r\n\r\n //Add hover listeners to news links\r\n cardLinks.forEach((cardLink) => {\r\n const card = cardLink.closest('.kdx-card');\r\n \r\n cardLink.addEventListener('mouseenter', setHover);\r\n cardLink.addEventListener('mouseleave', removeHover);\r\n cardLink.addEventListener('focusin', setHover);\r\n cardLink.addEventListener('focusout', removeHover);\r\n \r\n if (card) {\r\n const cardImage = card.querySelector('.card-img-top');\r\n\r\n if (!cardImage) {\r\n card.classList.add('no-image'); \r\n }\r\n }\r\n });\r\n\r\n var pageToNav = localStorage.getItem(\"newsPage\");\r\n\r\n if (pageToNav && currentPage !== pageToNav)\r\n {\r\n var page = document.querySelector(\"[data-index='\" + pageToNav + \"']\");\r\n if (page)\r\n {\r\n page.click();\r\n }\r\n }\r\n }\r\n\r\n function sortNews(filteredCards){\r\n handlePagingStatus(filteredCards);\r\n\r\n currentPage = 1;\r\n localStorage.setItem(\"newsPage\", 1);\r\n\r\n index.firstIndex = 0;\r\n index.lastIndex = 9;\r\n const cardsReplica = filteredCards.sort((a, b) => {\r\n \r\n //Date Sorting\r\n const yearA = a?.querySelector(\".date\")?.textContent !== undefined && a?.querySelector(\".date\")?.textContent !== null ? new Date(a.querySelector(\".date\").textContent) : new Date(\"1/1/1900\");\r\n const yearB = b?.querySelector(\".date\")?.textContent !== undefined && b?.querySelector(\".date\")?.textContent !== null ? new Date(b.querySelector(\".date\").textContent) : new Date(\"1/1/1900\");\r\n\r\n //Author Sorting\r\n const authorA = a?.querySelector(\".author\")?.textContent !== undefined && a?.querySelector(\".author\")?.textContent !== null ? a.querySelector(\".author\").textContent.toUpperCase().trim(\"\") : \" \";\r\n const authorB = b?.querySelector(\".author\")?.textContent !== undefined && b?.querySelector(\".author\")?.textContent !== null ? b.querySelector(\".author\").textContent.toUpperCase().trim(\"\") : \" \";\r\n\r\n //Title Sorting\r\n const titleA = a?.querySelector(\".card-title a\")?.textContent !== undefined && a?.querySelector(\".card-title a\")?.textContent !== null ? a.querySelector(\".card-title a\").textContent.toUpperCase().trim(\"\") : \" \";\r\n const titleB = b?.querySelector(\".card-title a\")?.textContent !== undefined && b?.querySelector(\".card-title a\")?.textContent !== null ? b.querySelector(\".card-title a\").textContent.toUpperCase().trim(\"\") : \" \";\r\n\r\n if(activeSort === \"date-descending\"){\r\n return yearA == yearB ? 0 : (yearA > yearB ? 1 : -1);\r\n }else if(activeSort === \"date-ascending\"){\r\n return yearA == yearB ? 0 : (yearA < yearB ? 1 : -1);\r\n }else if(activeSort === \"author-z-a\"){\r\n return authorA == authorB ? 0 : (authorA > authorB ? 1 : -1);\r\n }else if(activeSort === \"author-a-z\"){\r\n return authorA == authorB ? 0 : (authorA < authorB ? 1 : -1);\r\n }else if(activeSort == \"title-z-a\"){\r\n return titleA == titleB ? 0 : (titleA < titleB ? 1 : -1);\r\n }else if(activeSort == \"title-a-z\"){\r\n return titleA == titleB ? 0 : (titleA > titleB ? 1 : -1);\r\n }\r\n });\r\n filtered = [...cardsReplica];\r\n \r\n handlePages();\r\n renderPage();\r\n pageControl();\r\n }\r\n \r\n function filterNews(){\r\n filtered = [];\r\n //Level 1 Filter (categories)\r\n const cards = [...initCards];\r\n cards.forEach((child) => {\r\n child.remove();\r\n });\r\n let filteredCards = [];\r\n if(activeCategory == \"all\"){\r\n filteredCards = [...cards];\r\n }else {\r\n cards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const cardCategories = JSON.parse(cardEl.getAttribute(\"data-categories\"));\r\n if(cardCategories.includes(activeCategory)){\r\n filteredCards.push(card);\r\n }\r\n });\r\n }\r\n\r\n //Level 2 Filter (categories2)\r\n let filteredCards2 = [];\r\n if(activeCategory2 == \"all\"){\r\n filteredCards2 = [...filteredCards];\r\n }else {\r\n filteredCards.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const cardCategories = JSON.parse(cardEl.getAttribute(\"data-categories-2\"));\r\n if(cardCategories.includes(activeCategory2)){\r\n filteredCards2.push(card);\r\n }\r\n });\r\n }\r\n\r\n //Level 3 Filter (categories2)\r\n let filteredCards3 = [];\r\n if(activeCategory3 == \"all\"){\r\n filteredCards3 = [...filteredCards2];\r\n }else {\r\n filteredCards2.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n const cardCategories = JSON.parse(cardEl.getAttribute(\"data-categories-3\"));\r\n if(cardCategories.includes(activeCategory3)){\r\n filteredCards3.push(card);\r\n }\r\n });\r\n }\r\n \r\n //Level 4 Filter (years)\r\n let filteredCards4 = [];\r\n if(activeYear == \"all\"){\r\n filteredCards4 = [...filteredCards3];\r\n }else {\r\n filteredCards3.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n if(cardEl?.querySelector(\".date\")?.textContent.slice(-4) == activeYear){\r\n filteredCards4.push(card);\r\n }\r\n });\r\n }\r\n\r\n //Level 5 Filter (search term)\r\n let filteredCards5 = [];\r\n if(searchTerm == null){\r\n filteredCards4.forEach((card) => {\r\n document.querySelector(\".news-listing .listing.row\").append(card);\r\n });\r\n filteredCards5 = filteredCards4;\r\n }else {\r\n filteredCards4.forEach((card) => {\r\n const cardEl = card.querySelector(\".kdx-card\");\r\n if(cardEl?.querySelector(\".card-title a\").textContent.toUpperCase().includes(searchTerm.toUpperCase())){\r\n document.querySelector(\".news-listing .listing.row\").append(card);\r\n filteredCards5.push(card);\r\n }\r\n });\r\n }\r\n\r\n index.firstIndex = 0;\r\n index.lastIndex = 9;\r\n\r\n //Sort the filtered list\r\n sortNews(filteredCards5);\r\n\r\n //Handle pagination\r\n \r\n handlePages();\r\n renderPage();\r\n pageControl();\r\n\r\n\r\n }\r\n\r\n function setHover(e) {\r\n e.target.closest('.kdx-card').classList.add('hover');\r\n }\r\n\r\n function removeHover(e) {\r\n e.target.closest('.kdx-card').classList.remove('hover');\r\n }\r\n }\r\n }\n\n /**\r\n * Lazy loads images that are set up properly.\r\n * For img tags: \r\n * \r\n \r\n For BG Images:
    \r\n\r\n more info: https://developers.google.com/web/fundamentals/performance/lazy-loading-guidance/images-and-video\r\n */\r\n class ImageLoader {\r\n\r\n constructor(options = {}) {\r\n this.queue = [];\r\n this.backgroundQueue = [];\r\n this.lazyImageObserver = null;\r\n this.lazyBgObserver = null;\r\n this.options = options;\r\n }\r\n\r\n initialize() {\r\n this.getImagesToLazyLoad();\r\n\r\n if (!(\"IntersectionObserver\" in window)) {\r\n this.abort();\r\n return;\r\n }\r\n\r\n this.onContentLoaded();\r\n this.setGenericPlaceholder();\r\n\r\n this.queue.forEach((lazyImage) => {\r\n this.lazyImageObserver.observe(lazyImage);\r\n });\r\n\r\n this.backgroundQueue.forEach((lazyBg) => {\r\n this.lazyBgObserver.observe(lazyBg);\r\n });\r\n }\r\n\r\n getImagesToLazyLoad() {\r\n this.queue = document.querySelectorAll('.lazy-load-img');\r\n this.backgroundQueue = document.querySelectorAll('.lazy-load-bg'); \r\n }\r\n\r\n setGenericPlaceholder() {\r\n if (this.options.genericImagePlaceholder) {\r\n this.queue.forEach((img) => {\r\n img.setAttribute('src', this.options.genericImagePlaceholder);\r\n });\r\n }\r\n\r\n if (this.options.genericBgPlaceholder) {\r\n this.backgroundQueue.forEach((bg) => {\r\n bg.style.backgroundColor = this.options.genericBgPlaceholder;\r\n });\r\n }\r\n }\r\n\r\n onContentLoaded() {\r\n this.lazyImageObserver = new IntersectionObserver((entries, observer) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) { \r\n let lazyImage = entry.target;\r\n lazyImage.src = lazyImage.dataset.src;\r\n lazyImage.srcset = lazyImage.dataset.srcset;\r\n lazyImage.classList.remove('lazy-load-img');\r\n this.lazyImageObserver.unobserve(lazyImage);\r\n }\r\n });\r\n });\r\n\r\n this.lazyBgObserver = new IntersectionObserver((entries, observer) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.remove('lazy-load-bg');\r\n this.lazyBgObserver.unobserve(entry.target);\r\n }\r\n });\r\n });\r\n }\r\n\r\n abort() {\r\n for (let i = 0; i < this.queue.length; i++) {\r\n this.queue[i].setAttribute('src', this.queue[i].getAttribute('data-src'));\r\n this.queue[i].classList.remove('lazy-load-img');\r\n }\r\n\r\n for (let i = 0; i < this.backgroundQueue.length; i++) {\r\n this.backgroundQueue[i].classList.remove('lazy-load-bg');\r\n }\r\n }\r\n\r\n }\n\n /**\r\n * Component Helpers\r\n */\r\n\r\n /**\r\n * Theme Helpers\r\n */\r\n Object.freeze({\r\n 0: 'primary',\r\n 1: 'secondary',\r\n 2: 'tertiary',\r\n 4: 'quarternary',\r\n 5: 'quinary',\r\n 6: 'senary',\r\n 7: 'gray-lite',\r\n 8: 'gray-dark',\r\n });\r\n\r\n /**\r\n * Window Helpers\r\n */\r\n\r\n // Keyboard Enum\r\n Object.freeze({\r\n 'enter': 13,\r\n 'arrow-u': 38,\r\n 'arrow-r': 39,\r\n 'arrow-d': 40,\r\n 'arrow-l': 37,\r\n 'esc': 27,\r\n 'tab': 9,\r\n 'space': 32\r\n });\r\n\r\n /**\r\n * Breakpoints are situatued such that\r\n * comparison would be \"and down\" --\r\n * \r\n * if (window.innerWidth < _BREAKPOINTS_.sm) { ... }\r\n */\r\n const _BREAKPOINTS_ = Object.freeze({\r\n 'xs': 576,\r\n 'sm': 767,\r\n 'md': 991,\r\n 'lg': 1199,\r\n 'xl': 1399,\r\n 'giant': 1799\r\n });\r\n\r\n // An incomplete but convenient proxy for the current url's search parameters\r\n new Proxy({}, {\r\n get(target, property) {\r\n // the iterator gives an escape hatch to see order and duplicate properties\r\n // note that new Map() and Object.fromEntries() will use the last value in case of duplicates\r\n if (property === Symbol.iterator)\r\n return () => new URLSearchParams(location.search).entries();\r\n\r\n // this will return the first value in case of duplicates\r\n return new URLSearchParams(location.search).get(property);\r\n },\r\n\r\n set(target, property, value) {\r\n const url = new URL(location);\r\n url.searchParams.set(property, value);\r\n history.replaceState(undefined, undefined, url);\r\n return true;\r\n },\r\n\r\n deleteProperty(target, property) {\r\n const url = new URL(location);\r\n url.searchParams.delete(property);\r\n history.replaceState(undefined, undefined, url);\r\n return true;\r\n }\r\n });\n\n class Carousel {\r\n static main() { \r\n // carousel options \r\n let id,\r\n carouselType, \r\n bulletsWrapper,\r\n totalSlides,\r\n perSlide,\r\n perSlideTablet,\r\n perSlideMobile,\r\n centerFocus,\r\n centerFocusMobile,\r\n autoPlay,\r\n autoPlayDuration,\r\n animationTimingFunc,\r\n hoverPause,\r\n peek,\r\n peekTablet,\r\n peekMobile,\r\n gap,\r\n gapTablet,\r\n gapMobile,\r\n leftArrowIcon,\r\n leftArrowIconMobile,\r\n rightArrowIcon,\r\n rightArrowIconMobile,\r\n cardsSlider,\r\n adjustableHeightOnMobile,\r\n instance,\r\n carouselIsMobileOnly; \r\n\r\n init(document.querySelectorAll('.kdx-carousel'));\r\n\r\n function init(carousels) {\r\n if (document.body.matches('.is-editing, .sfPageEditor')) {\r\n return;\r\n }\r\n\r\n window.addEventListener('resize', resizeHandler);\r\n\r\n carousels.forEach(carouselItem => {\r\n carouselItem.id ||= `kdx-carousel-${Math.random().toString(36).slice(2)}`;\r\n\r\n if (checkCarouselIsMobileOnly(carouselItem))\r\n {\r\n return;\r\n }\r\n\r\n setup(carouselItem);\r\n });\r\n }\r\n \r\n // initialize glideJS carousel\r\n function setup(carousel) { \r\n id = carousel.id; \r\n carouselType = carousel.getAttribute('data-carouselType'); \r\n bulletsWrapper = carousel.querySelector('.glide__bullets');\r\n carousel.getAttribute('data-bulletNav'); \r\n totalSlides = carousel.querySelector('.glide__slides').children.length;\r\n const glideSlides = carousel.querySelector('.glide__slides');\r\n const slides = [...glideSlides.children];\r\n perSlide = carousel.getAttribute('data-perSlide') ? carousel.getAttribute('data-perSlide') : '1';\r\n perSlideTablet = carousel.getAttribute('data-perSlideTablet') ? carousel.getAttribute('data-perSlideTablet') : '1';\r\n perSlideMobile = carousel.getAttribute('data-perSlideMobile') ? carousel.getAttribute('data-perSlideMobile') : '1';\r\n carousel.getAttribute('data-perSwipe');\r\n carousel.getAttribute('data-hideArrows');\r\n centerFocus = carousel.getAttribute('data-centerFocus');\r\n centerFocusMobile = carousel.getAttribute('data-perSwipe');\r\n carousel.getAttribute('data-focusAt');\r\n autoPlay = carousel.getAttribute('data-autoPlay');\r\n autoPlayDuration = carousel.getAttribute('data-autoPlayDuration') ? carousel.getAttribute('data-autoPlayDuration') : '8000';\r\n animationTimingFunc = carousel.getAttribute('data-animationTimingFunc') ? carousel.getAttribute('data-animationTimingFunc') : 'ease-in-out';\r\n hoverPause = carousel.getAttribute('data-hoverPause');\r\n peek = carousel.getAttribute('data-peek') ? carousel.getAttribute('data-peek') : '0';\r\n peekTablet = carousel.getAttribute('data-peekTablet') ? carousel.getAttribute('data-peekTablet') : '0';\r\n peekMobile = carousel.getAttribute('data-peekMobile') ? carousel.getAttribute('data-peekMobile') : '0';\r\n gap = carousel.getAttribute('data-gap') ? carousel.getAttribute('data-gap') : '32';\r\n gapTablet = carousel.getAttribute('data-gapTablet') ? carousel.getAttribute('data-gapTablet') : '32';\r\n gapMobile = carousel.getAttribute('data-gapMobile') ? carousel.getAttribute('data-gapMobile') : '16';\r\n carousel.getAttribute('data-pauseText');\r\n carousel.getAttribute('data-playText');\r\n carousel.getAttribute('data-rewind') ? carousel.getAttribute('data-rewind') : 'true';\r\n carousel.getAttribute('data-displayBulletNavExternally');\r\n leftArrowIcon = carousel.getAttribute('data-leftArrowIcon') ? carousel.getAttribute('data-leftArrowIcon') : 'chevron-left';\r\n leftArrowIconMobile = carousel.getAttribute('data-leftArrowIconMobile') ? carousel.getAttribute('data-leftArrowIcon') : 'chevron-left';\r\n rightArrowIcon = carousel.getAttribute('data-rightArrowIcon') ? carousel.getAttribute('data-leftArrowIcon') : 'chevron-right';\r\n rightArrowIconMobile = carousel.getAttribute('data-rightArrowIconMobile') ? carousel.getAttribute('data-rightArrowIconMobile') : 'chevron-right';\r\n cardsSlider = carousel.getAttribute('data-cardsSlider');\r\n carousel.getAttribute('data-fullWidth');\r\n adjustableHeightOnMobile = carousel.getAttribute('data-adjustableHeightOnMobile'); \r\n carouselIsMobileOnly = carousel.getAttribute('data-carouselIsMobileOnly');\r\n window.innerWidth > _BREAKPOINTS_.sm ? leftArrowIcon : leftArrowIconMobile;\r\n window.innerWidth > _BREAKPOINTS_.sm ? rightArrowIcon : rightArrowIconMobile;\r\n \r\n hideOrShowArrows(carousel);\r\n setFullBackground(carousel);\r\n setCarouselButtonPosition(carousel);\r\n\r\n\r\n let options = {\r\n type: carouselType ? carouselType : 'carousel',\r\n perView: parseInt(perSlide, 10),\r\n perSwipe: '',\r\n focusAt: centerFocus ? 'center' : '',\r\n autoplay: autoPlay ? parseInt(autoPlayDuration, 10) : 0,\r\n animationTimingFunc: animationTimingFunc,\r\n hoverpause: hoverPause,\r\n peek: peek,\r\n gap: gap,\r\n rewind: false,\r\n dragThreshold: (totalSlides > perSlide) ? true : false, \r\n breakpoints: {\r\n 980: {\r\n perView: parseInt(perSlideTablet, 10),\r\n peek: peekTablet,\r\n gap: gapTablet,\r\n dragThreshold: (totalSlides > perSlideTablet) ? true : false\r\n },\r\n 720: {\r\n perView: parseInt(perSlideMobile, 10),\r\n peek: peekMobile,\r\n gap: gapMobile,\r\n focusAt: centerFocusMobile ? 'center' : '',\r\n dragThreshold: (totalSlides > perSlideMobile) ? true : false\r\n },\r\n },\r\n };\r\n\r\n // Fix keyboard navigation\r\n const track = glideSlides.parentElement;\r\n track.addEventListener('focusin', ()=> {\r\n let unscrolled = track.scrollLeft === 0;\r\n track.scrollLeft = 0;\r\n // webkit scrolls in the next task\r\n setTimeout(() => {\r\n if (track.scrollLeft === 0 && unscrolled)\r\n return;\r\n track.scrollLeft = 0;\r\n const slide = e.target.closest('.glide__slide');\r\n const slideIndex = slides.indexOf(slide);\r\n // could be a clone slide\r\n if (slideIndex !== -1)\r\n this.slider.go(`=${slideIndex}`);\r\n }, 0);\r\n });\r\n\r\n if (bulletsWrapper) {\r\n for (let i = 0; i < totalSlides; i++) {\r\n bulletsWrapper.innerHTML += ``;\r\n }\r\n }\r\n\r\n if (cardsSlider) {\r\n setCountText();\r\n\r\n instance.on(['run.after', 'resize'], () => {\r\n setCountText();\r\n hideOrShowArrows(carousel);\r\n\r\n const isMobile = window.innerWidth > _BREAKPOINTS_.sm ? false : true;\r\n\r\n if (carouselIsMobileOnly && !isMobile)\r\n {\r\n this.destroy();\r\n }\r\n });\r\n }\r\n \r\n if (perSlide) { \r\n instance = new Glide(`#${id}`, options).mount();\r\n } else {\r\n instance = new Glide(`#${id}`, {\r\n autoplay: autoPlay ? parseInt(autoPlayDuration, 10) : null,\r\n hoverpause: hoverPause\r\n }).mount();\r\n }\r\n\r\n //FullCarouselButtonConfig(carousel, instance);\r\n\r\n // adjustable height. Change height to active slide height, and scrolls to top of slide. good for mobile with variable height slides\r\n if (adjustableHeightOnMobile && window.innerWidth <= _BREAKPOINTS_.md) {\r\n\r\n instance.on('build.after', ()=> {\r\n let slideHeight = root.querySelector('.glide__slide--active .row').clientHeight;\r\n let glideTrack = root.querySelector('.glide__track').clientHeight;\r\n \r\n if (slideHeight != glideTrack) {\r\n let newHeight = slideHeight;\r\n carousel.querySelector('.glide__track').style.height = newHeight+'px';\r\n carousel.querySelector('.glide__track').scrollIntoView({behavior: \"smooth\", block: \"start\"});\r\n }\r\n });\r\n \r\n instance.on('run.after', ()=> {\r\n let slideHeight = carousel.querySelector('.glide__slide--active .row').clientHeight;\r\n let glideTrack = carousel.querySelector('.glide__track').clientHeight;\r\n \r\n if (slideHeight != glideTrack) {\r\n let newHeight = slideHeight;\r\n carousel.querySelector('.glide__track').style.height = newHeight+'px';\r\n carousel.querySelector('.glide__track').scrollIntoView({behavior: \"smooth\", block: \"start\"});\r\n }\r\n });\r\n }\r\n\r\n instance.on(['run.after', 'resize'], () => {\r\n let isMobile = window.innerWidth > _BREAKPOINTS_.sm ? false : true;\r\n\r\n if (carouselIsMobileOnly)\r\n {\r\n if (!isMobile) {\r\n instance.destroy();\r\n }\r\n }\r\n window.innerWidth > _BREAKPOINTS_.sm ? leftArrowIcon : leftArrowIconMobile;\r\n window.innerWidth > _BREAKPOINTS_.sm ? rightArrowIcon : rightArrowIconMobile;\r\n\r\n let carousels = document.querySelectorAll('.kdx-carousel');\r\n\r\n carousels.forEach(carouselItem => {\r\n setCarouselButtonPosition(carousel); \r\n });\r\n });\r\n\r\n instance.on('mount.after', () => {\r\n if (ImageLoader != null) {\r\n ImageLoader.initialize();\r\n } \r\n }); \r\n }\r\n\r\n function hideOrShowArrows(carousel) { \r\n if (carousel) {\r\n if (window.innerWidth >= 981) {\r\n if (totalSlides <= parseInt(perSlide, 10)) {\r\n carousel.classList.add('hide-arrows');\r\n }\r\n else {\r\n carousel.classList.remove('hide-arrows');\r\n }\r\n }\r\n \r\n if (window.innerWidth <= 980 && window.innerWidth >= 721) {\r\n if (totalSlides <= parseInt(perSlideTablet, 10)) {\r\n carousel.classList.add('hide-arrows');\r\n }\r\n else {\r\n carousel.classList.remove('hide-arrows');\r\n }\r\n }\r\n \r\n if (window.innerWidth <= 720) {\r\n if (totalSlides <= parseInt(perSlideMobile, 10)) {\r\n carousel.classList.add('hide-arrows');\r\n }\r\n else {\r\n carousel.classList.remove('hide-arrows');\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setFullBackground(carousel) {\r\n if (carousel)\r\n {\r\n const isFullCarousel = carousel.parentElement.classList.contains('multi-card-carousel-full');\r\n\r\n if (isFullCarousel)\r\n {\r\n const fullCarousel = carousel.parentElement;\r\n //get block data\r\n const backColor = carousel.parentElement.querySelector('.card-header')?.getAttribute('data-bg-color');\r\n const backImage = carousel.parentElement.querySelector('.card-header')?.getAttribute('data-bg-img');\r\n const showDots = carousel.parentElement.querySelector('.card-header')?.getAttribute('data-show-dots');\r\n const dots = carousel.querySelector('.glide__bullets');\r\n const prevNext = carousel.querySelector('.glide__arrows');\r\n const showPrevNext = carousel.parentElement.querySelector('.card-header')?.getAttribute('data-show-prevnext');\r\n\r\n if ((showDots != 'True') && (showPrevNext != \"True\")) {\r\n prevNext.style.display = 'none';\r\n }\r\n else if (showDots != 'True') {\r\n dots.style.display = 'none';\r\n }\r\n else if (showPrevNext != 'True') {\r\n prevNext.style.display = 'none';\r\n }\r\n\r\n if (backImage && backImage !== \"\")\r\n {\r\n fullCarousel.style.backgroundImage = \"url('\" + backImage + \"')\";\r\n }\r\n else if (backColor && backColor !== \"\")\r\n {\r\n fullCarousel.classList.add(backColor);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setCarouselButtonPosition(carousel)\r\n {\r\n if (carousel)\r\n {\r\n const isGalleryCarousel = carousel.parentElement.classList.contains('image-gallery-carousel');\r\n\r\n if (isGalleryCarousel)\r\n {\r\n let gallerySlideContainer = carousel.querySelector('.glide__slide--active ');\r\n if (!gallerySlideContainer)\r\n {\r\n gallerySlideContainer = carousel.querySelector('.glide__slide');\r\n }\r\n\r\n if (gallerySlideContainer)\r\n {\r\n var photoHeight = gallerySlideContainer.querySelector('.photo')?.height;\r\n if (photoHeight)\r\n {\r\n carousel.querySelector('.glide__arrow--left').style.height = photoHeight + 'px';\r\n carousel.querySelector('.glide__arrow--right').style.height = photoHeight + 'px';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function checkCarouselIsMobileOnly(carousel) {\r\n const carouselIsMobileOnly = carousel.getAttribute('data-carouselIsMobileOnly') ?? false; \r\n\r\n let isMobile = window.innerWidth > _BREAKPOINTS_.sm ? false : true;\r\n return (carouselIsMobileOnly && !isMobile) \r\n }\r\n\r\n function resizeHandler() {\r\n let carousels = document.querySelectorAll('.kdx-carousel');\r\n\r\n carousels.forEach(carouselItem => {\r\n const carouselIsMobileOnly = carouselItem.getAttribute('data-carouselIsMobileOnly') ?? false; \r\n\r\n if (carouselIsMobileOnly)\r\n {\r\n let isMobile = window.innerWidth > _BREAKPOINTS_.sm ? false : true;\r\n if (isMobile)\r\n {\r\n setup(carouselItem);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\n\n class Datatables {\r\n static main() {\r\n const tables = document.querySelectorAll('.dataTable');\r\n tables.forEach((table, index) => { \r\n init(table, index);\r\n });\r\n\r\n function init(table, index) {\r\n const id = table.getAttribute('id') ? table.getAttribute('id') : 'table-'+index+'';\r\n if (!table.getAttribute('id'))\r\n {\r\n table.setAttribute('id', id);\r\n }\r\n const paging = table.getAttribute('data-paging') === \"false\" ? false : true;\r\n const info = table.getAttribute('data-info') === \"false\" ? false : true;\r\n const searching = table.getAttribute('data-searching') === \"false\" ? false : true;\r\n const isResponsive = table.getAttribute('data-responsive') === \"true\" ? true : false;\r\n const horizontalScrollbar = table.getAttribute('data-horizontal-scroll') === \"true\" ? true : false;\r\n const orderCol = table.getAttribute('data-order-col') ?? 0;\r\n const orderDir = table.getAttribute('data-order-direction') ?? 'asc';\r\n const orderArray = JSON.parse('[[' + orderCol + ', \"' + orderDir + '\"]]');\r\n \r\n $('#'+id+'').DataTable({\r\n \"paging\": paging,\r\n \"order\": orderArray,\r\n \"info\": info,\r\n \"searching\": searching,\r\n \"scrollX\": horizontalScrollbar,\r\n \"columnDefs\": [{ targets: 'sorting_disabled', orderable: false }],\r\n responsive: isResponsive, drawCallback: function (settings) {\r\n var pagination = $(this).closest('.dataTables_wrapper').find('.dataTables_paginate');\r\n pagination.toggle(this.api().page.info().pages > 1);\r\n }\r\n });\r\n }\r\n }\r\n }\n\n class Footer {\r\n static main() {\r\n\r\n init(); \r\n \r\n function init() {\r\n const currentYear = document.querySelector('footer.site-footer .current-year');\r\n if (currentYear) {\r\n getCurrentYear();\r\n }\r\n\r\n }\r\n\r\n function getCurrentYear() {\r\n const year = new Date().getFullYear();\r\n const yearHTML = document.querySelector('footer.site-footer .current-year');\r\n yearHTML.innerHTML = year.toString();\r\n }\r\n }\r\n }\n\n class FeaturedImageVideoCallout {\r\n static main() { \r\n const card = document.querySelector('.featured-image-video-callout'); \r\n \r\n if (card) {\r\n init();\r\n } \r\n \r\n function init() {\r\n calculateHeaderHeights();\r\n\r\n window.addEventListener('resize', ()=> {\r\n calculateHeaderHeights();\r\n }); \r\n }\r\n\r\n // loop thru all card headlines and set equal heights\r\n function calculateHeaderHeights() {\r\n const cardLayouts = document.querySelectorAll('.card-layout');\r\n\r\n cardLayouts.forEach((cardLayout) => {\r\n const cardHeadlines = cardLayout.querySelectorAll('.featured-image-video-callout .headline');\r\n let maxHeight = 0;\r\n\r\n cardHeadlines.forEach((headline) => {\r\n headline.style.height = \"auto\";\r\n maxHeight = headline.clientHeight > maxHeight ? headline.clientHeight : maxHeight;\r\n });\r\n // now set each headline to tallest\r\n cardHeadlines.forEach((headline) => {\r\n headline.style.height = maxHeight+'px';\r\n });\r\n });\r\n }\r\n }\r\n }\n\n class heroBanner {\r\n static main() {\r\n\r\n const pausePlayBtn = document.querySelector('.hero-banner .pause-play-video');\r\n\r\n if (pausePlayBtn) {\r\n pausePlayBtn.addEventListener('click', pausePlayVideo);\r\n }\r\n\r\n function pausePlayVideo() {\r\n const video = document.querySelector('.hero-banner .video');\r\n if (video.paused) {\r\n video.play();\r\n pausePlayBtn.setAttribute('aria-label', 'Video is playing. Click to pause.');\r\n } else {\r\n video.pause();\r\n pausePlayBtn.setAttribute('aria-label', 'Video is paused. Click to play.');\r\n }\r\n }\r\n }\r\n }\n\n class IconCard {\r\n static main() {\r\n\r\n const iconCards = document.querySelectorAll('.icon-card a.card-link');\r\n \r\n if (iconCards) {\r\n init();\r\n }\r\n\r\n function init() {\r\n iconCards.forEach((card) => {\r\n card.addEventListener('mouseenter', setHover);\r\n card.addEventListener('mouseleave', removeHover);\r\n card.addEventListener('focusin', setHover);\r\n card.addEventListener('focusout', removeHover); \r\n });\r\n }\r\n\r\n function setHover(e) {\r\n e.target.closest('.icon-card').classList.add('hover');\r\n }\r\n\r\n function removeHover(e) {\r\n e.target.closest('.icon-card').classList.remove('hover');\r\n }\r\n }\r\n }\n\n class ImageCard {\r\n static main() {\r\n\r\n const imageCards = document.querySelectorAll('.image-card a');\r\n init();\r\n\r\n function init() {\r\n imageCards.forEach((card) => {\r\n card.addEventListener('mouseenter', setHover);\r\n card.addEventListener('mouseleave', removeHover);\r\n card.addEventListener('focusin', setHover);\r\n card.addEventListener('focusout', removeHover);\r\n \r\n const href = card.getAttribute('href');\r\n const urlExtension = getUrlExtension(href);\r\n \r\n let fileExtensions = ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'mp4', 'txt', 'zip', 'jpg', 'png', 'gif'];\r\n\r\n if (fileExtensions.includes(urlExtension)) {\r\n card.classList.add('has-doc-file');\r\n }\r\n });\r\n }\r\n\r\n function setHover(e) {\r\n e.target.closest('.image-card').classList.add('hover');\r\n }\r\n\r\n function removeHover(e) {\r\n e.target.closest('.image-card').classList.remove('hover');\r\n }\r\n\r\n function getUrlExtension( url ) {\r\n var endUrl = url.split(/[#?]/)[0].split('.').pop().trim();\r\n return(endUrl);\r\n }\r\n }\r\n }\n\n class LeftNavMenu {\r\n static main() {\r\n const seriius = document.querySelector('body.seriius');\r\n const gov = document.querySelector('body.gov');\r\n\r\n const leftNav = document.querySelector('.left-nav-menu'); \r\n const shareBarCol9 = document.querySelector('.force-tools-col9'); \r\n document.querySelectorAll('.left-nav-menu .parent a'); \r\n const toggleLeftNavBtns = document.querySelectorAll('body.theSource .toggle-left-nav');\r\n\r\n let browserWidth = window.innerWidth; \r\n \r\n // only move leftnav into header if on seriius site, since seriius doesn't have a main menu\r\n if (leftNav && seriius) {\r\n init();\r\n }\r\n\r\n if ((leftNav || shareBarCol9) && gov) {\r\n moveShareBar();\r\n\r\n window.addEventListener('resize', resizeHandler);\r\n }\r\n \r\n // on theSource the leftnav turns into mobile accordion\r\n toggleLeftNavBtns.forEach((toggleLeftNavBtn) => { \r\n toggleLeftNavBtn.addEventListener('click', (e) => { toggleLeftNav(e);});\r\n });\r\n \r\n function init() {\r\n const seriius = document.querySelector('body.seriius');\r\n const leftnav = document.querySelector('.left-nav-menu'); \r\n\r\n if (leftnav && seriius)\r\n {\r\n moveLeftNav();\r\n bindMobile();\r\n }\r\n\r\n window.addEventListener('resize', resizeHandler);\r\n }\r\n\r\n function resizeHandler() {\r\n // only move leftNav if browser actually resized in width and not just ios triggering a resize on menu opens \r\n const seriius = document.querySelector('body.seriius');\r\n const gov = document.querySelector('body.gov');\r\n const leftnav = document.querySelector('.left-nav-menu'); \r\n\r\n if (browserWidth != window.innerWidth) {\r\n if (leftnav && seriius) {\r\n moveLeftNav();\r\n }\r\n\r\n if (leftnav && gov) {\r\n moveShareBar();\r\n }\r\n\r\n browserWidth = window.innerWidth;\r\n }\r\n }\r\n\r\n function moveLeftNav() {\r\n // on Seriius site, the left nav needs to be moved for mobile\r\n // determine if on mobile or desktop menu and move leftNav accordingly in DOM\r\n const leftNavMobileWrapper = document.querySelector('.left-nav-mobile-wrapper');\r\n const leftNavDesktopWrapper = document.querySelector('.left-nav-desktop-wrapper');\r\n\r\n // desktop menu\r\n if (window.innerWidth >= 992) {\r\n if (leftNav && leftNavMobileWrapper) {\r\n leftNavDesktopWrapper.append(leftNav);\r\n }\r\n }\r\n // mobile menu\r\n else {\r\n leftNavMobileWrapper.append(leftNav);\r\n\r\n const parentNodes = leftNavMobileWrapper.querySelectorAll('.left-nav-menu .node');\r\n if (parentNodes) {\r\n parentNodes.forEach((node) => {\r\n // close all mobile menu's except active-page\r\n const toggleIcon = node.querySelector('.parent-toggle svg use');\r\n \r\n if (toggleIcon) {\r\n node.classList.remove('open');\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n });\r\n }\r\n }\r\n document.querySelector('body').classList.remove('menu-open');\r\n document.querySelector('.mobile-nav-toggle').classList.remove('opened');\r\n bindMobile();\r\n }\r\n\r\n function moveShareBar() {\r\n\r\n if ((leftNav || shareBarCol9) && gov && window.innerWidth >= 992) {\r\n { \r\n const shareDiv = document.getElementById(\"page-tools\");\r\n if (shareDiv)\r\n {\r\n shareDiv.classList.remove(\"col-12\");\r\n shareDiv.classList.add(\"col-9\");\r\n }\r\n }\r\n\r\n }\r\n else if ((leftNav || shareBarCol9) && gov && window.innerWidth < 992) {\r\n const shareDiv = document.getElementById(\"page-tools\");\r\n if (shareDiv)\r\n {\r\n shareDiv.classList.remove(\"col-9\");\r\n shareDiv.classList.add(\"col-12\");\r\n }\r\n }\r\n \r\n } \r\n\r\n // Bind mobile mouse/keyboard interactions\r\n function bindMobile() {\r\n const mobileNavToggle = document.querySelector('.mobile-nav-toggle');\r\n const parentToggles = document.querySelectorAll('.left-nav-menu .parent-toggle');\r\n const parentNodes = document.querySelectorAll('.left-nav-menu .node .parent a');\r\n\r\n if (mobileNavToggle) {\r\n mobileNavToggle.addEventListener('click', toggleMobileMenu);\r\n }\r\n\r\n if (parentToggles) {\r\n parentToggles.forEach((parentToggle) => {\r\n parentToggle.addEventListener('click', openMobileSubmenu);\r\n parentToggle.addEventListener('keyup', openMobileSubmenu);\r\n });\r\n }\r\n\r\n parentNodes.forEach((parentNode) => {\r\n // now bind\r\n parentNode.addEventListener('focusin', closeAllMobileSubmenus);\r\n }); \r\n }\r\n\r\n function toggleMobileMenu(e) {\r\n e.preventDefault();\r\n \r\n e.currentTarget.classList.toggle('opened');\r\n document.querySelector('body').classList.toggle('menu-open');\r\n }\r\n\r\n // open mobile submenu\r\n function openMobileSubmenu(e) {\r\n const openNodes = document.querySelectorAll('.left-nav-menu .node.open');\r\n const keyCode = e.key;\r\n \r\n // close any open menus except clicked one\r\n if (openNodes) {\r\n openNodes.forEach((node) => {\r\n if (node != e.currentTarget.closest('.node')) {\r\n const toggleIcon = node.querySelector('.parent .parent-toggle svg use');\r\n\r\n node.closest('.node').classList.remove('open');\r\n if (toggleIcon) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n\r\n }\r\n });\r\n }\r\n // toggle subnav if mouse click or enter/down key pressed\r\n if (keyCode === undefined || keyCode == \"Enter\" || keyCode == \"ArrowDown\") {\r\n const toggleIcon = e.currentTarget.querySelector('svg use');\r\n\r\n if (!e.currentTarget.closest('.node').classList.contains('open')) {\r\n e.currentTarget.closest('.node').classList.add('open');\r\n \r\n if (toggleIcon) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#minus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n else {\r\n e.currentTarget.closest('.node').classList.remove('open');\r\n \r\n if (toggleIcon) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function closeAllMobileSubmenus(e) { \r\n if (!e.currentTarget.classList.contains('open')) {\r\n const openNodes = document.querySelectorAll('.left-nav-menu .node.open');\r\n \r\n if (openNodes) {\r\n openNodes.forEach((node) => {\r\n const toggleIcon = node.querySelector('.parent .parent-toggle svg use');\r\n\r\n node.classList.remove('open');\r\n if (toggleIcon) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n });\r\n } \r\n }\r\n }\r\n\r\n function toggleLeftNav(e) {\r\n e.preventDefault();\r\n const leftNavMenu = e.currentTarget.closest('.toggle-left-nav-wrapper').nextElementSibling;\r\n \r\n if (leftNavMenu) {\r\n if (!leftNavMenu.classList.contains('show')) {\r\n leftNavMenu.classList.add('show');\r\n e.currentTarget.setAttribute('aria-expanded', true);\r\n }\r\n else {\r\n leftNavMenu.classList.remove('show');\r\n e.currentTarget.setAttribute('aria-expanded', false);\r\n }\r\n }\r\n }\r\n }\r\n }\n\n class LinkUpdates {\r\n static main() {\r\n const bodyClass = document.body.classList;\r\n\r\n // only run for GOV/theSource\r\n if (bodyClass.contains(\"gov\") || bodyClass.contains(\"theSource\")) {\r\n const links = document.querySelectorAll(\"a\"); \r\n \r\n links.forEach(link => {\r\n const href = link.getAttribute(\"href\");\r\n if (href) {\r\n removeTitleAttribute(link, href);\r\n changeUrl(link, href);\r\n }\r\n });\r\n }\r\n\r\n // CMS adds title to any file links, so this removes the title attribute\r\n function removeTitleAttribute(link, href) {\r\n const fileTypes = [\"pdf\", \"doc\", \"xls\", \"ppt\", \"mp4\", \"txt\", \"zip\"];\r\n const fileExtension = href.split('.').pop().toLowerCase();\r\n\r\n // Check if the file extension ends with any of the specified file types\r\n if (fileTypes.some(type => fileExtension.includes(type))) {\r\n if (link.hasAttribute(\"title\")) {\r\n link.removeAttribute(\"title\");\r\n }\r\n }\r\n }\r\n \r\n // Changes any urls from https://thesource2.nrel.gov to https://thesource.nrel.gov\r\n function changeUrl(link, href) {\r\n var currentUrl = window.location.href;\r\n\r\n //handle relative urls\r\n if (href.startsWith(\"/\") && currentUrl.includes(\"//thesource\")) {\r\n const newHref = href = \"https://thesource.nrel.gov\" + href;\r\n link.setAttribute(\"href\", newHref);\r\n }\r\n //handle absolute urls\r\n else if (href.includes(\"https://thesource2.nrel.gov\")) {\r\n const newHref = href.replace(\"https://thesource2.nrel.gov\", \"https://thesource.nrel.gov\");\r\n link.setAttribute(\"href\", newHref);\r\n }\r\n\r\n if (href.startsWith(\"/\") && currentUrl.includes(\"//www2.nrel\")) {\r\n const newHref = href = \"https://www.nrel.gov\" + href;\r\n link.setAttribute(\"href\", newHref);\r\n }\r\n //handle absolute urls\r\n else if (href.includes(\"https://www2.nrel.gov\")) {\r\n const newHref = href.replace(\"https://www2.nrel.gov\", \"https://www.nrel.gov\");\r\n link.setAttribute(\"href\", newHref);\r\n }\r\n }\r\n } \r\n }\n\n class LogosWidget {\r\n static main() { \r\n const backgroundImg = document.querySelector('.logos-widget .background-img'); \r\n let useImg = \"\";\r\n \r\n if (backgroundImg) {\r\n init();\r\n } \r\n \r\n function init() {\r\n setTimeout(function() {\r\n setBG();\r\n }, 500);\r\n window.addEventListener('resize', setBG);\r\n }\r\n \r\n // determines if on desktop or mobile and changes image accordingly\r\n function setBG() {\r\n const desktopImg = backgroundImg.getAttribute('data-desktop-img');\r\n const mobileImg = backgroundImg.getAttribute('data-mobile-img');\r\n \r\n if (desktopImg && backgroundImg) { \r\n useImg = (!mobileImg || window.innerWidth >= _BREAKPOINTS_.sm) ? desktopImg : mobileImg;\r\n\r\n backgroundImg.setAttribute('src', useImg); \r\n backgroundImg.setAttribute('srcset', useImg); \r\n }\r\n \r\n }\r\n }\r\n }\n\n class MainMenu {\r\n static main() {\r\n const parentLinks = document.querySelectorAll('.main-menu .parent a');\r\n const bodyClasses = document.querySelector('body').classList;\r\n var timeId = null;\r\n\r\n window.addEventListener('resize', () => {\r\n clearTimeout(timeId);\r\n timeId = setTimeout(executeAfterResize, 300);\r\n });\r\n\r\n function executeAfterResize() {\r\n setBindings();\r\n moveSearch();\r\n userLinksMobile();\r\n checkStacked();\r\n }\r\n\r\n let siteMenu;\r\n let abortControl = undefined; // used for binding/unbinding \r\n \r\n // microsites use hover, DOE/GOV uses clicks. Microsites and GOV have + and - for mobile menu where DOE has carets \r\n if (bodyClasses.contains('microsite')) {\r\n siteMenu = 'microsite';\r\n }\r\n else if (bodyClasses.contains('doe')) {\r\n siteMenu = 'doe';\r\n }\r\n else if (bodyClasses.contains('gov')) {\r\n siteMenu = 'gov';\r\n } \r\n else if (bodyClasses.contains('theSource')) {\r\n siteMenu = 'theSource';\r\n } \r\n \r\n if (parentLinks.length) {\r\n init();\r\n }\r\n else {\r\n noMenu(); // remove menu/mobile toggle\r\n }\r\n \r\n function init() { \r\n setBindings();\r\n moveSearch();\r\n userLinksMobile();\r\n checkStacked();\r\n //addMargin();\r\n \r\n window.addEventListener('resize', setBindings);\r\n document.addEventListener('click', checkIfOutsideOfMenu);\r\n document.addEventListener('keyup', checkIfOutsideOfMenu);\r\n window.addEventListener('resize', moveSearch);\r\n window.addEventListener('resize', userLinksMobile);\r\n\r\n //window.addEventListener('resize', addMargin);\r\n window.addEventListener('resize', hideShowSearchheader2);\r\n window.addEventListener('resize', hideShowSearchheader1);\r\n window.addEventListener('resize', hideShowSearchheader3);\r\n reformatRequired();\r\n } \r\n\r\n function setBindings() {\r\n // unbind event listeners before adding them again\r\n abortControl?.abort();\r\n abortControl = new AbortController; \r\n \r\n const desktop = matchMedia('(min-width: 1200px)');\r\n if (desktop.matches)\r\n bindDesktop();\r\n else\r\n bindMobile();\r\n\r\n const navStyle = document.getElementById('navStyle');\r\n if (navStyle && navStyle.value == 'gray-background') {\r\n document.querySelector('.navbar-row').classList.add('gray-background');\r\n }\r\n\r\n desktop.addEventListener('change', () => {\r\n if (desktop.matches)\r\n bindDesktop();\r\n else\r\n bindMobile();\r\n });\r\n }\r\n \r\n // Bind desktop for mouse/keyboard interactions\r\n function bindDesktop() {\r\n // open dropdowns on click\r\n if (siteMenu === 'doe' || siteMenu === 'gov' || siteMenu === 'microsite' || siteMenu === 'theSource') {\r\n parentLinks.forEach((parentLink) => { \r\n var children = parentLink.closest('.node').querySelector('.children');\r\n\r\n if (children) {\r\n parentLink.addEventListener('click', openSubmenu, { signal: abortControl.signal });\r\n } \r\n });\r\n }\r\n }\r\n\r\n // Bind mobile mouse/keyboard interactions\r\n function bindMobile() {\r\n const mobileNavToggle = document.querySelectorAll('.mobile-nav-toggle');\r\n const parentToggles = document.querySelectorAll('.main-menu .parent-toggle');\r\n const childToggles = document.querySelectorAll('.main-menu .child-toggle');\r\n const parentLinks = document.querySelectorAll('.main-menu .node .parent a');\r\n \r\n mobileNavToggle.forEach((toggle) => { \r\n toggle.addEventListener('click', toggleMobileMenu, { signal: abortControl.signal });\r\n });\r\n\r\n parentToggles.forEach((parentToggle) => {\r\n parentToggle.addEventListener('click', openMobileSubmenu, { signal: abortControl.signal });\r\n parentToggle.addEventListener('keyup', openMobileSubmenu, { signal: abortControl.signal });\r\n });\r\n\r\n childToggles.forEach((childToggle) => {\r\n childToggle.addEventListener('click', openMobileSubmenu, { signal: abortControl.signal });\r\n childToggle.addEventListener('keyup', openMobileSubmenu, { signal: abortControl.signal });\r\n });\r\n\r\n parentLinks.forEach((parentLink) => {\r\n const href = parentLink.getAttribute('href');\r\n\r\n if (href === \"#\")\r\n {\r\n parentLink.addEventListener('click', openMobileSubmenu, { signal: abortControl.signal });\r\n parentLink.addEventListener('keyup', openMobileSubmenu, { signal: abortControl.signal });\r\n }\r\n else\r\n {\r\n parentLink.addEventListener('focusin', closeAllMobileSubmenus, { signal: abortControl.signal });\r\n }\r\n });\r\n \r\n // for GOV, hide header3 search on page load even if set to show by default on desktop\r\n const header3SearchWrappers = document.querySelectorAll('.header3 .search-menu-wrapper'); \r\n header3SearchWrappers.forEach((header3SearchWrapper) => { \r\n header3SearchWrapper.classList.add('hide');\r\n\r\n var searchToggle = document.querySelector('.toggle-header3-search');\r\n if (searchToggle.style.display == \"none\")\r\n {\r\n header3SearchWrapper.classList.remove('hide');\r\n }\r\n });\r\n\r\n // for GOV, hide header2 search on page load even if set to show by default on desktop\r\n const header2SearchWrappers = document.querySelectorAll('.header2 .mobile-search-menu-wrapper');\r\n header2SearchWrappers.forEach(function (header2SearchWrapper) {\r\n header2SearchWrapper.classList.add('hide');\r\n });\r\n }\r\n\r\n function hideShowSearchheader3() {\r\n const header3 = document.querySelector('.header3');\r\n if(header3) {\r\n const header3SearchWrappers = document.querySelectorAll('.header3 .search-menu-wrapper');\r\n const mobileSearchSpacer = document.querySelector('.mobile-search-spacer');\r\n header3SearchWrappers.forEach((header3SearchWrapper) => { \r\n if(window.innerWidth <= 991.98 && bodyClasses.contains('search-open')) {\r\n header3SearchWrapper.classList.add('hide');\r\n mobileSearchSpacer.style.display = 'none';\r\n bodyClasses.remove('search-open');\r\n } else if(window.innerWidth >= 991 && bodyClasses.contains('search-open')) {\r\n header3SearchWrapper.classList.remove('hide');\r\n mobileSearchSpacer.style.display = 'block';\r\n bodyClasses.add('search-open');\r\n } \r\n });\r\n }\r\n }\r\n function hideShowSearchheader2() {\r\n const header2SearchWrappers = document.querySelectorAll('.header2 .search-menu-wrapper');\r\n header2SearchWrappers.forEach((header2SearchWrapper) => { \r\n if(window.innerWidth <= 991.98) {\r\n header2SearchWrapper.classList.add('hide');\r\n\r\n } else if(window.innerWidth >= 991) {\r\n header2SearchWrapper.classList.remove('hide');\r\n\r\n } \r\n });\r\n }\r\n function hideShowSearchheader1() {\r\n const header1SearchWrappers = document.querySelectorAll('.header1 .search-menu-wrapper');\r\n const headerOneSearch = document.querySelector('.header1 .header-search');\r\n header1SearchWrappers.forEach((header1SearchWrapper) => { \r\n if(window.innerWidth <= 991.98) {\r\n header1SearchWrapper.classList.add('hide');\r\n headerOneSearch.style.display = 'none';\r\n\r\n } else if(window.innerWidth >= 991) {\r\n header1SearchWrapper.classList.remove('hide');\r\n headerOneSearch.style.display = 'block';\r\n\r\n } \r\n });\r\n }\r\n\r\n // GOV header3 with userLinks, add to ul on mobile menu\r\n function userLinksMobile() {\r\n const header = document.querySelector('.gov-site-header.header3');\r\n\r\n if (header)\r\n {\r\n const dropdownList = header.querySelector('.main-menu ul');\r\n const userLinks = header.querySelector('.navbar-row .user-action-links');\r\n \r\n if(window.innerWidth < 992) {\r\n if(userLinks) {\r\n dropdownList.appendChild(userLinks);\r\n }\r\n }\r\n else {\r\n const menuWrapper = header.querySelector('.menu-wrapper');\r\n\r\n if (menuWrapper)\r\n {\r\n if (userLinks && !menuWrapper.querySelector('user-action-links'))\r\n {\r\n menuWrapper.appendChild(userLinks);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function checkStacked() {\r\n const windowWidth = window.innerWidth;\r\n \r\n const isheader2 = document.querySelector('.header2');\r\n\r\n //don't care about mobile, but for desktop, check if we need to stack the menu\r\n if (isheader2 && windowWidth && windowWidth > 992)\r\n {\r\n const grayBackground = document.querySelector('.gray-background');\r\n if (grayBackground)\r\n {\r\n grayBackground.classList.remove('is-stacked');\r\n\r\n const titleWidth = document.querySelector('.brand-title')?.offsetWidth;\r\n const menuWidth = document.querySelector('.menu-col')?.offsetWidth;\r\n const menuHeight = document.querySelector('.gray-background .container .row')?.offsetHeight;\r\n \r\n\r\n if (windowWidth && titleWidth && menuWidth && menuHeight) {\r\n if (menuHeight > 80 || (windowWidth - (titleWidth + menuWidth + 40) < 0))\r\n {\r\n if (grayBackground) {\r\n grayBackground.classList.add('is-stacked');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // open desktop submenu\r\n function openSubmenu(e) {\r\n e.preventDefault();\r\n const openNodes = document.querySelectorAll('.main-menu .node.open'); \r\n \r\n // close any open menus except clicked one\r\n openNodes.forEach((node) => {\r\n if (node != e.currentTarget.closest('.node')) { \r\n node.closest('.node').classList.remove('open');\r\n document.querySelector('body').classList.remove('menu-open');\r\n }\r\n });\r\n e.currentTarget.closest('.node').classList.toggle('open'); \r\n document.querySelector('body').classList.toggle('menu-open'); \r\n }\r\n \r\n // check if clicked outside of any menu, if so close all submenus\r\n function checkIfOutsideOfMenu(e) { \r\n const activeElement = document.activeElement;\r\n // const menu = document.querySelector('.main-menu');\r\n // const programMenu = document.querySelector('.program-menu');\r\n // const mobileMenuBtn = document.querySelector('.mobile-nav-toggle');\r\n const openNode = document.querySelector('.main-menu .node.open');\r\n\r\n if (!e.target.closest('.main-menu') && !e.target.closest('.mobile-nav-toggle')) {\r\n closeAllSubmenus();\r\n document.querySelector('body').classList.remove('menu-open');\r\n }\r\n\r\n // if keyboard focuses into a parent node, close any open nodes\r\n if (openNode && activeElement.closest('.node')) {\r\n if (openNode != activeElement.closest('.node')) { \r\n openNode.classList.remove('open');\r\n }\r\n }\r\n }\r\n\r\n function closeAllSubmenus() {\r\n const openNodes = document.querySelectorAll('.main-menu .node.open');\r\n const mobileNavToggle = document.querySelector('.mobile-nav-toggle');\r\n if (openNodes) {\r\n openNodes.forEach((node) => {\r\n node.classList.remove('open');\r\n });\r\n }\r\n document.querySelector('body').classList.remove('menu-open');\r\n if (mobileNavToggle) {\r\n mobileNavToggle.classList.remove('opened');\r\n }\r\n }\r\n\r\n function toggleMobileMenu(e) { \r\n e.preventDefault();\r\n const searchToggleBtn = document.querySelector('.toggle-search');\r\n const mobileSearch = document.querySelector('.mobile-search-menu-wrapper');\r\n const searchMenuWrap = document.querySelector('.search-menu-wrapper');\r\n const mobileSearchSpacer = document.querySelector('.mobile-search-spacer');\r\n \r\n if (searchToggleBtn) {\r\n document.querySelector('body').classList.remove('search-open');\r\n searchToggleBtn.classList.remove('show');\r\n if(mobileSearch) {\r\n mobileSearch.classList.add('hide');\r\n\r\n } else if(searchMenuWrap) {\r\n searchMenuWrap.classList.add('hide');\r\n }\r\n\r\n\r\n } else if(searchToggleBtn && window.innerWidth <= 991.98 && searchToggleBtn.classList.conatains('show')) {\r\n mobileSearch.classList.remove('hide');\r\n }\r\n \r\n e.currentTarget.classList.toggle('opened');\r\n document.querySelector('body').classList.toggle('menu-open');\r\n if (mobileSearchSpacer)\r\n {\r\n mobileSearchSpacer.style.display = 'none';\r\n }\r\n }\r\n\r\n // open mobile submenu\r\n function openMobileSubmenu(e) {\r\n e.preventDefault(); \r\n const openNodes = document.querySelectorAll('.main-menu .node.open');\r\n const openChildNodes = document.querySelectorAll('.main-menu .child-node.open'); \r\n let currentNode = e.currentTarget.classList.contains('parent-toggle') ? e.currentTarget.closest('.node') : e.currentTarget.closest('.child-node');\r\n if (currentNode == null)\r\n {\r\n currentNode = e.currentTarget.closest('.node');\r\n }\r\n const keyCode = e.key;\r\n \r\n // if clicking parent toggle, close any open menus except clicked one. if child toggle clicked ignore\r\n if (openNodes && !e.currentTarget.classList.contains('child-toggle')) {\r\n openNodes.forEach((node) => {\r\n if (node != e.currentTarget.closest('.node')) {\r\n const toggleIcon = node.querySelector('.parent .parent-toggle svg use');\r\n\r\n node.closest('.node').classList.remove('open');\r\n // Microsites & GOV mobile menu uses + and - icons\r\n if (toggleIcon && (siteMenu == 'microsite' || siteMenu == 'theSource')) {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n\r\n if (toggleIcon && siteMenu == 'gov') {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#chevron-down');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n\r\n }\r\n });\r\n }\r\n else {\r\n openChildNodes.forEach((node) => {\r\n if (node != e.currentTarget.closest('.child-node')) {\r\n const toggleIcon = node.querySelector('.children .child-toggle svg use');\r\n\r\n node.closest('.child-node').classList.remove('open');\r\n // Microsites & GOV mobile menu uses + and - icons\r\n if (toggleIcon && (siteMenu == 'microsite' || siteMenu === 'theSource')) {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n\r\n if (toggleIcon && siteMenu == 'gov') {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#chevron-down');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n // toggle subnav if mouse click or enter/down key pressed\r\n if (keyCode === undefined || keyCode == \"Enter\" || keyCode == \"ArrowDown\") {\r\n const toggleIcon = e.currentTarget.querySelector('svg use');\r\n\r\n if (!currentNode.classList.contains('open')) {\r\n currentNode.classList.add('open');\r\n \r\n // Microsites & GOV mobile menu uses + and - icons \r\n if (toggleIcon && (siteMenu === 'microsite' || siteMenu === 'theSource')) {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#minus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n\r\n if (toggleIcon && siteMenu == 'gov') {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#chevron-up');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n }\r\n else { \r\n currentNode.classList.remove('open');\r\n \r\n // Microsites & GOV mobile menu uses + and - icons\r\n if (toggleIcon && (siteMenu === 'microsite' || siteMenu === 'theSource')) {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n\r\n if (toggleIcon && siteMenu == 'gov') {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#chevron-down');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function closeAllMobileSubmenus(e) { \r\n if (!e.currentTarget.classList.contains('open')) {\r\n const openNodes = document.querySelectorAll('.main-menu .node.open');\r\n const openChildNodes = document.querySelectorAll('.main-menu .child-node.open');\r\n \r\n if (openNodes) {\r\n openNodes.forEach((node) => {\r\n const toggleIcon = node.querySelector('.parent .parent-toggle svg use');\r\n\r\n node.classList.remove('open');\r\n // Microsites & GOV mobile menu uses + and - icons\r\n if (toggleIcon && (siteMenu === 'microsite' || siteMenu === 'theSource')) {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n\r\n if (toggleIcon && siteMenu == 'gov') {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#chevron-down');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n });\r\n }\r\n \r\n if (openChildNodes) {\r\n openChildNodes.forEach((node) => {\r\n const toggleIcon = node.querySelector('.children .child-toggle svg use');\r\n\r\n node.classList.remove('open');\r\n // Microsites & GOV mobile menu uses + and - icons\r\n if (toggleIcon && (siteMenu === 'microsite' || siteMenu === 'theSource')) {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n\r\n if (toggleIcon && siteMenu == 'gov') {\r\n // header3 on GOV doesn't change icons\r\n if (!e.target.closest('header.header3') && !e.target.closest('header.header2')) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#chevron-down');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // move search from desktop position to mobile position, depending on breakpoint\r\n function moveSearch() {\r\n\r\n // DOE \r\n const headerSearchCol = document.querySelector('.doe-site-header .search-col'); \r\n const bannerTitleCol = document.querySelector('.doe-site-header .banner-title-col');\r\n const mainMenu = document.querySelector('.doe-site-header .main-menu');\r\n\r\n if (headerSearchCol && bannerTitleCol && mainMenu) {\r\n if (window.innerWidth > _BREAKPOINTS_.lg) {\r\n bannerTitleCol.after(headerSearchCol);\r\n }\r\n else {\r\n mainMenu.prepend(headerSearchCol);\r\n }\r\n }\r\n }\r\n\r\n function reformatRequired() {\r\n const forms = document.querySelectorAll('[data-sf-role=\"form-container\"]');\r\n\r\n forms.forEach((form) => {\r\n var labels = form.querySelectorAll('label');\r\n\r\n labels.forEach((label) => {\r\n let labelText = label.innerHTML;\r\n if (labelText.indexOf('(Required)') < 0)\r\n {\r\n labelText = labelText.replace('(Required)', '(Required)');\r\n label.innerHTML = labelText;\r\n }\r\n });\r\n\r\n labels.forEach((label) => {\r\n let labelText = label.innerHTML;\r\n if (labelText.indexOf('(Required if not a U.S. Citizen)') < 0)\r\n {\r\n labelText = labelText.replace('(Required if not a U.S. Citizen)', '(Required if not a U.S. Citizen)');\r\n label.innerHTML = labelText;\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n function noMenu() {\r\n // remove menu and mobile toggle since no menu exists (DOE)\r\n const mainMenu = document.querySelector('.main-menu');\r\n const mobileToggleBtn = document.querySelector('.mobile-nav-toggle');\r\n\r\n if (mainMenu) {\r\n mainMenu.remove();\r\n }\r\n if (mobileToggleBtn) {\r\n mobileToggleBtn.remove();\r\n }\r\n }\r\n }\r\n }\n\n class NotificationBanner {\r\n static main() {\r\n const notifications = document.querySelectorAll('.notification-banner');\r\n const isMobile = window.innerWidth < 1200;\r\n const hasLeftNav = document.querySelector('.left-nav-desktop-wrapper');\r\n\r\n notifications.forEach((notification) => {\r\n const closeBtn = notification.querySelector('.js-close-notification');\r\n\r\n if (closeBtn) {\r\n closeBtn.addEventListener('click', (e) => { closeNotification(e, notification); });\r\n }\r\n });\r\n\r\n //logic to add bottom margin to mobile view header if no left nav is present\r\n if (isMobile && !hasLeftNav) {\r\n const subForm = document.querySelector('.searchbar-sub-form');\r\n \r\n if (subForm) {\r\n subForm.style.marginBottom = \"16px\";\r\n }\r\n else {\r\n const titleBar = document.querySelector('.page-title-bar-brand');\r\n if (titleBar) {\r\n titleBar.style.marginBottom = \"16px\";\r\n }\r\n }\r\n }\r\n\r\n\r\n function closeNotification(e, notification) {\r\n e.preventDefault();\r\n notification.classList.add('hide');\r\n }\r\n }\r\n }\n\n class ParallaxHero {\r\n static main() { \r\n const heros = document.querySelectorAll('.parallax-hero'); \r\n let useImg = \"\";\r\n \r\n heros.forEach(function (hero) {\r\n if (hero) {\r\n init(hero);\r\n }\r\n }); \r\n \r\n function init(hero) {\r\n setTimeout(function() {\r\n setBG(hero);\r\n }, 500);\r\n window.addEventListener('resize', setBG);\r\n }\r\n \r\n // determines if on desktop or mobile and changes image accordingly\r\n function setBG(hero) {\r\n const desktopImg = hero.getAttribute('data-desktop-img');\r\n const mobileImg = hero.getAttribute('data-mobile-img');\r\n const currentImg = hero.style.backgroundImage; \r\n \r\n if (desktopImg && hero) {\r\n useImg = (!mobileImg || window.innerWidth >= _BREAKPOINTS_.sm) ? desktopImg : mobileImg;\r\n \r\n if (currentImg == '' || !useImg.includes(currentImg)) { \r\n hero.style.backgroundImage = \"url('\"+useImg+\"')\"; \r\n }\r\n }\r\n \r\n }\r\n }\r\n }\n\n class ParallaxImageTextOverlay {\r\n static main() {\r\n\r\n const fullWidthCtas = document.querySelectorAll('.parallax-image-text-overlay');\r\n let useImg = \"\";\r\n\r\n if (fullWidthCtas) {\r\n fullWidthCtas.forEach((banner) => {\r\n init(banner);\r\n });\r\n }\r\n function init(banner) {\r\n setTimeout(function() { \r\n setBG(banner);\r\n }, 500);\r\n window.addEventListener('resize', (e) => { setBG(banner); });\r\n }\r\n\r\n // determines if on desktop or mobile and changes image accordingly\r\n function setBG(banner) {\r\n const desktopImg = banner.getAttribute('data-desktop-img');\r\n const mobileImg = banner.getAttribute('data-mobile-img');\r\n const currentImg = banner.style.backgroundImage;\r\n \r\n useImg = (!mobileImg || window.innerWidth >= _BREAKPOINTS_.lg) ? desktopImg : mobileImg;\r\n if (currentImg == '' || !useImg.includes(currentImg)) {\r\n banner.style.backgroundImage = \"url('\"+useImg+\"')\";\r\n }\r\n }\r\n }\r\n }\n\n /**\r\n * Animation Helpers\r\n */\r\n\r\n const fadeOut = (element) => {\r\n element.style.opacity = 1;\r\n (function fade() {\r\n if ((element.style.opacity -= 0.1) < 0) {\r\n element.style.display = 'none';\r\n } else {\r\n requestAnimationFrame(fade);\r\n }\r\n })();\r\n };\r\n\r\n const fadeIn = (element, display) => {\r\n element.style.opacity = 0;\r\n element.style.display = display || \"block\";\r\n (function fade() {\r\n let val = parseFloat(element.style.opacity);\r\n if ((val += 0.1) <= 1) {\r\n element.style.opacity = val;\r\n requestAnimationFrame(fade);\r\n }\r\n })();\r\n };\n\n class ScrollToTop {\r\n static main() {\r\n \t\t\r\n \t\tconst btn = document.querySelector('.btn-scroll-to-top');\r\n \t\tlet isShown = false;\r\n \t\t\r\n \t\tif (btn) {\r\n \t\t\tinit();\r\n \t\t}\r\n \r\n \t\tfunction init() {\r\n \t\r\n \t\t\twindow.addEventListener('scroll', () => {\r\n \t\t\t\tif (window.scrollY > 350 && !isShown) {\r\n \t\t\t\t\tfadeIn(btn);\r\n \t\t\t\t\tisShown = true;\r\n \t\t\t\t} else if (window.scrollY <= 350 && isShown) {\r\n \t\t\t\t\tfadeOut(btn);\r\n \t\t\t\t\tisShown = false;\r\n \t\t\t\t}\r\n \t\t\t});\r\n \t\r\n \t\t\tbtn.onclick = (e) => {\r\n \t\t\t\te.preventDefault();\r\n \t\t\t\twindow.scrollTo({top: 0, behavior: 'smooth'});\r\n \t\t\t};\r\n \t\t}\t\t\r\n \t}\r\n }\n\n class SoftwareTools {\r\n static main() {\r\n\r\n const dropdownToggles = document.querySelectorAll('.dropdown-toggle');\r\n const ossdTable = document.querySelector('#ossd_table');\r\n \r\n function init() {\r\n // Table Filter Dropdowns\r\n dropdownToggles.forEach((toggle) => {\r\n toggle.addEventListener('click', toggleDropdown);\r\n });\r\n\r\n window.addEventListener('click', clickedOutside);\r\n \r\n // Table\r\n OSSDDT.initDatatable('#ossd_table');\r\n \r\n $(document).on('change', '#dt_custom_filters .dropdown-menu input[type=checkbox]', function(e){\r\n OSSDDT.getDatatable().draw();\r\n });\r\n $(document).on('click', '#dt_custom_filters .dropdown-menu', function(e){\r\n if($(e.target).not('input[type=checkbox]')) $(e.target).find('input[type=checkbox]').click();\r\n e.stopPropagation();\r\n });\r\n $(document).on('click', '#sortbydropdown a', function(e) {\r\n e.preventDefault();\r\n var va=$(this).data('sortval').split(' ');\r\n OSSDDT.getDatatable().order([[va[0], va[1]]]).draw();\r\n $('#sortbydropdown-btn-label').text($(this).text());\r\n }); \r\n }\r\n\r\n // Toggle filter dropdowns\r\n function toggleDropdown(e) {\r\n e.preventDefault();\r\n const dropdownMenu = e.currentTarget.nextElementSibling;\r\n if (!dropdownMenu || !dropdownMenu.classList.contains('dropdown-menu'))\r\n return;\r\n \r\n // close any open ones first\r\n dropdownToggles.forEach((toggle) => {\r\n if (toggle != e.currentTarget) {\r\n const dropdown = toggle.nextElementSibling;\r\n \r\n if (!dropdownMenu.classList.contains('dropdown-menu'))\r\n return;\r\n\r\n toggle.setAttribute('aria-expanded', false);\r\n dropdown.classList.remove('show');\r\n }\r\n });\r\n\r\n // toggle clicked one\r\n if (e.currentTarget.getAttribute('aria-expanded') != \"true\") { \r\n e.currentTarget.setAttribute('aria-expanded', true);\r\n dropdownMenu.classList.add('show');\r\n }\r\n else {\r\n dropdownMenu.classList.remove('show');\r\n e.currentTarget.setAttribute('aria-expanded', false);\r\n }\r\n }\r\n\r\n // check if clicked outside of dropdown, if so close all dropdowns\r\n function clickedOutside(e) { \r\n const withinDropdown = e.target.closest('.dropdown'); \r\n \r\n if (!withinDropdown) { \r\n // close any open ones first\r\n dropdownToggles.forEach((toggle) => {\r\n const dropdownMenu = toggle.nextElementSibling;\r\n \r\n if (!dropdownMenu.classList.contains('dropdown-menu'))\r\n return;\r\n\r\n toggle.setAttribute('aria-expanded', false);\r\n dropdownMenu.classList.remove('show');\r\n \r\n });\r\n }\r\n }\r\n\r\n // DataTables for OSSDDT table\r\n // @TODO: Come back once we get api data from client to have all data. JS errors at the moment, possilbiy due to data pulled from prod but incomplete\r\n \r\n var OSSDDT=function(){\r\n var dt, methods={};\r\n methods.getDatatable=function(){\r\n return dt;\r\n };\r\n methods.initDatatable=function(dtid){ \r\n // Create the datatable\r\n dt=$(dtid).DataTable({\r\n destroy: true,\r\n dom: 'itpr',\r\n columns: [\r\n null, {'visible' : false }, {'visible' : false }, {'visible' : false }, {'visible' : false }, {'visible' : false }, {'visible' : false }, {'visible' : false }\r\n ],\r\n drawCallback: function(settings) {\r\n $(dtid+' thead').remove();\r\n var api=this.api();\r\n var data=api.rows({page: 'current'}).data();\r\n $.each(data, function(i) {\r\n var contents='

    ';\r\n if(data[i][1] != '') contents += ('');\r\n contents += data[i][2];\r\n if(data[i][1] != '') contents += '';\r\n contents += ('

    Release Date: '+((data[i][5]['display'] == '') ? 'n/a' : data[i][5]['display'])+'
    '+data[i][3]+'
    ');\r\n $(dtid+' tbody > tr:eq('+i+') > td:eq(0)').html(contents);\r\n });\r\n api.rows({page: 'current'}).invalidate();\r\n },\r\n order: [[2, 'asc']],\r\n pageLength: 30\r\n });\r\n\r\n // Add the LANGUAGE filter to the search chain\r\n $.fn.dataTable.ext.search.push(\r\n function(settings, data, dataIndex){\r\n var fv=[];\r\n $('#dtf-language').closest('.dropdown').find('input[type=checkbox]').each(function(){\r\n if($(this).is(':checked')) fv.push($(this).val());\r\n });\r\n $('#dtf-language-count').text(fv.length);\r\n if(fv.length === 0) return true;\r\n var rv=dt.row(dataIndex).data()[4];\r\n if(rv === '') return false;\r\n rv=rv.split(';').map(function(t){return $.trim(t);});\r\n return ($(rv).filter(fv).length > 0);\r\n }\r\n );\r\n // Add the TECHNOLOGY filter to the search chain\r\n $.fn.dataTable.ext.search.push(\r\n function(settings, data, dataIndex){\r\n var fv=[];\r\n $('#dtf-technology').closest('.dropdown').find('input[type=checkbox]').each(function(){\r\n if($(this).is(':checked')) fv.push($(this).val());\r\n });\r\n $('#dtf-technology-count').text(fv.length);\r\n if(fv.length === 0) return true;\r\n var rv=dt.row(dataIndex).data()[7];\r\n if(rv === '') return false;\r\n rv=rv.split(';').map(function(t){return $.trim(t);});\r\n return ($(rv).filter(fv).length > 0);\r\n }\r\n );\r\n // Add the YEAR filter to the search chain\r\n $.fn.dataTable.ext.search.push(\r\n function(settings, data, dataIndex){\r\n var fv=[];\r\n $('#dtf-year').closest('.dropdown').find('input[type=checkbox]').each(function(){\r\n if($(this).is(':checked')) fv.push($(this).val());\r\n });\r\n $('#dtf-year-count').text(fv.length);\r\n if(fv.length === 0) return true;\r\n var rv=dt.row(dataIndex).data()[6];\r\n if(rv === '') return false;\r\n rv=('20'+rv.split('/').pop());\r\n return ($.inArray(rv, fv) > -1);\r\n }\r\n );\r\n $('#dtf-filter').on('keyup search input paste cut', function(e){\r\n dt.search(this.value).draw();\r\n });\r\n };\r\n return methods;\r\n }();\r\n\r\n \r\n if (ossdTable) {\r\n init();\r\n } \r\n\r\n }\r\n \r\n }\n\n class TeamMembers {\r\n static main() {\r\n const teamMemberSections = document.querySelectorAll('.team-members');\r\n \r\n if (teamMemberSections) {\r\n teamMemberSections.forEach((teamMembers) => {\r\n init(teamMembers);\r\n });\r\n }\r\n \r\n function init(teamMembers) { \r\n const cards = teamMembers.querySelectorAll('.team-card').length;\r\n const loadMoreBtn = teamMembers.querySelector('.load-more-members-btn');\r\n const searchBtn = teamMembers.querySelector('#keyword-search');\r\n\r\n if (cards && cards <= 4) { \r\n teamMembers.classList.remove('fade-active');\r\n }\r\n\r\n if (loadMoreBtn) {\r\n loadMoreBtn.addEventListener('click', (e) => { expandModule(e, teamMembers); });\r\n }\r\n\r\n if (searchBtn) {\r\n searchBtn.addEventListener('click', (e) => { teamSearchRedirect(e, teamMembers); });\r\n }\r\n }\r\n\r\n function teamSearchRedirect(e, teamMembers) {\r\n e.preventDefault();\r\n\r\n const searchTerm = teamMembers.querySelector('#keyword-input');\r\n\r\n if (searchTerm.length < 3) {\r\n alert(\"Please enter at least 3 letters to search for\");\r\n }\r\n else {\r\n window.location.href = '?search=' + searchTerm.value;\r\n }\r\n }\r\n\r\n function expandModule(e, teamMembers) {\r\n e.preventDefault();\r\n \r\n if (!e.currentTarget.classList.contains('expanded')) {\r\n teamMembers.classList.add('expanded');\r\n e.currentTarget.classList.add('expanded');\r\n e.currentTarget.querySelector('.text').innerHTML = \"Show Less\";\r\n const elementScrollHeight = teamMembers.scrollHeight;\r\n // console.log('elementScrollHeight: ', elementScrollHeight);\r\n \r\n teamMembers.style.maxHeight = elementScrollHeight.toString() + 'px';\r\n }\r\n else {\r\n teamMembers.classList.remove('expanded');\r\n e.currentTarget.classList.remove('expanded');\r\n e.currentTarget.querySelector('.text').innerHTML = \"Load More\";\r\n \r\n if (window.innerWidth > 991.8) {\r\n teamMembers.style.maxHeight ='842px';\r\n } else {\r\n teamMembers.style.maxHeight ='1500px';\r\n \r\n teamMembers.scrollIntoView();\r\n }\r\n }\r\n }\r\n }\r\n }\n\n class ToggleSearch {\r\n static main() {\r\n\r\n const toggleSearchBtns = document.querySelectorAll('.toggle-search');\r\n const body = document.querySelector('body');\r\n const srcSubSearch = document.querySelector(\".searchbar-sub-form\");\r\n const externalSubSearchBtn = document.querySelector('.external-sub-search-button');\r\n const externalSubSearchBox = document.querySelector(\".external-sub-search-input\"); \r\n const externalSearchBtns = document.querySelectorAll('.external-search-button');\r\n \r\n\r\n for (let x=0; x< externalSearchBtns.length; x++)\r\n {\r\n if (externalSearchBtns[x])\r\n {\r\n externalSearchBtns[x].addEventListener('click', redirectToExternalSearch); \r\n\r\n if (externalSearchBtns[x].previousElementSibling)\r\n {\r\n externalSearchBtns[x].previousElementSibling.addEventListener(\"keypress\", function(event) {\r\n // If the user presses the \"Enter\" key on the keyboard\r\n if (event.key === \"Enter\") {\r\n // Cancel the default action, if needed\r\n event.preventDefault();\r\n // Trigger the button element with a click\r\n externalSearchBtns[x].click();\r\n } });\r\n }\r\n\r\n if (externalSearchBtns[x].parentElement.parentElement.childNodes[1].childNodes[3])\r\n {\r\n externalSearchBtns[x].parentElement.parentElement.childNodes[1].childNodes[3].addEventListener(\"keypress\", function(event) {\r\n // If the user presses the \"Enter\" key on the keyboard\r\n if (event.key === \"Enter\") {\r\n // Cancel the default action, if needed\r\n event.preventDefault();\r\n // Trigger the button element with a click\r\n externalSearchBtns[x].click();\r\n } });\r\n }\r\n }\r\n }\r\n \r\n for (let x=0; x< toggleSearchBtns.length; x++)\r\n { \r\n toggleSearchBtns[x].addEventListener('click', toggleSearch);\r\n }\r\n\r\n if (srcSubSearch) {\r\n const pageTitle = document.querySelector('.page-title-bar-brand');\r\n\r\n if (pageTitle) {\r\n pageTitle.classList.add('no-margin');\r\n }\r\n }\r\n\r\n if (externalSubSearchBtn)\r\n {\r\n externalSubSearchBtn.addEventListener('click', redirectToExternalSubSearch); \r\n\r\n externalSubSearchBox.addEventListener(\"keypress\", function(event) {\r\n // If the user presses the \"Enter\" key on the keyboard\r\n if (event.key === \"Enter\") {\r\n // Cancel the default action, if needed\r\n event.preventDefault();\r\n // Trigger the button element with a click\r\n externalSubSearchBtn.click();\r\n } });\r\n }\r\n\r\n function toggleSearch(e) {\r\n e.preventDefault();\r\n\r\n // close any open menus \r\n const openNodes = document.querySelectorAll('.main-menu .node.open');\r\n const openChildNodes = document.querySelectorAll('.main-menu .child-node.open');\r\n \r\n if (openNodes) {\r\n openNodes.forEach((node) => {\r\n const toggleIcon = node.querySelector('.parent .parent-toggle svg use');\r\n\r\n node.classList.remove('open');\r\n if (toggleIcon) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n });\r\n }\r\n \r\n if (openChildNodes) {\r\n openChildNodes.forEach((node) => {\r\n const toggleIcon = node.querySelector('.children .child-toggle svg use');\r\n\r\n node.classList.remove('open');\r\n if (toggleIcon) {\r\n let iconHref = toggleIcon.getAttribute('href').replace(/\\#.*/, '#plus');\r\n toggleIcon.setAttribute('href', iconHref);\r\n }\r\n });\r\n }\r\n\r\n // open search header2\r\n const header3ToggleSearchBtn = document.querySelector('.header3 .toggle-header3-search.toggle-search');\r\n const headerTwoToggleSearchBtn = document.querySelector('.header2 .toggle-header3-search');\r\n const headerOneToggleSearchBtn = document.querySelector('.header1 .toggle-search');\r\n\r\n if (!body.classList.contains('search-open') && headerTwoToggleSearchBtn || !body.classList.contains('search-open') && header3ToggleSearchBtn || !body.classList.contains('search-open') && headerOneToggleSearchBtn) {\r\n const mobileSearch = document.querySelector('.mobile-search-menu-wrapper');\r\n const searchMenuWrap = document.querySelector('.search-menu-wrapper');\r\n const mobileSearchSpacer = document.querySelector('.mobile-search-spacer');\r\n const headerOneSearch = document.querySelector('.header1 .header-search');\r\n const headerOneToggleSearchBtn = document.querySelector('.header1 .toggle-search');\r\n const pageWrapper = document.querySelector('.page-wrapper');\r\n const searchButton = document.querySelector('.search-alternate');\r\n\r\n\r\n body.classList.remove('menu-open');\r\n body.classList.add('search-open');\r\n if (searchButton) {\r\n searchButton.style.display = \"block\";\r\n }\r\n\r\n if (mobileSearchSpacer) {\r\n mobileSearchSpacer.style.display = \"none\";\r\n }\r\n\r\n\r\n if(mobileSearch) {\r\n mobileSearch.classList.remove('hide');\r\n headerTwoToggleSearchBtn.classList.add('show');\r\n }\r\n if(searchMenuWrap && header3ToggleSearchBtn) {\r\n searchMenuWrap.classList.remove('hide');\r\n header3ToggleSearchBtn.classList.add('show');\r\n if (window.innerWidth <= 992 && mobileSearchSpacer)\r\n {\r\n mobileSearchSpacer.style.display = \"block\";\r\n }\r\n pageWrapper.style.marginTop = '60px';\r\n }\r\n if(searchMenuWrap && headerOneToggleSearchBtn) {\r\n body.classList.add('search-open');\r\n searchMenuWrap.classList.remove('hide');\r\n headerOneSearch.style.display = 'block';\r\n }\r\n }\r\n else {\r\n const mobileSearch = document.querySelector('.mobile-search-menu-wrapper');\r\n const searchMenuWrap = document.querySelector('.search-menu-wrapper');\r\n const mobileSearchSpacer = document.querySelector('.mobile-search-spacer');\r\n const headerOneSearch = document.querySelector('.header1 .header-search');\r\n const pageWrapper = document.querySelector('.page-wrapper');\r\n const searchButton = document.querySelector('.search-alternate');\r\n\r\n for (let x=0; x< toggleSearchBtns.length; x++)\r\n { \r\n toggleSearchBtns[x].classList.remove('show');\r\n }\r\n\r\n body.classList.remove('search-open');\r\n\r\n if (searchButton) {\r\n searchButton.style.display = \"none\";\r\n }\r\n\r\n if(mobileSearch) {\r\n mobileSearch.classList.add('hide');\r\n headerTwoToggleSearchBtn.classList.remove('show');\r\n }\r\n if(searchMenuWrap && header3ToggleSearchBtn) {\r\n searchMenuWrap.classList.add('hide');\r\n header3ToggleSearchBtn.classList.remove('show');\r\n if (mobileSearchSpacer){\r\n mobileSearchSpacer.style.display = \"none\";\r\n }\r\n pageWrapper.style.marginTop = '20px';\r\n }\r\n if(searchMenuWrap && headerOneToggleSearchBtn) {\r\n body.classList.remove('search-open');\r\n searchMenuWrap.classList.add('hide');\r\n headerOneSearch.style.display = 'none';\r\n }\r\n }\r\n \r\n }\r\n\r\n function redirectToExternalSearch(e) {\r\n let externalTarget = e.target.getAttribute(\"data-href\");\r\n let searchTerm = e.target.parentNode.childNodes[1]?.value ?? \"\";\r\n if (!searchTerm || searchTerm == \"\") {\r\n searchTerm = e.target.parentNode.childNodes[5]?.value ?? \"\";\r\n if (!searchTerm || searchTerm == \"\")\r\n {\r\n searchTerm = e.target.parentNode.parentNode.childNodes[1].childNodes[3]?.value ?? \"\";\r\n }\r\n }\r\n\r\n externalTarget = externalTarget.replace(\"{query}\", encodeURIComponent(searchTerm.replace(/<\\/?[^>]+(>|$)/g, \"\")));\r\n\r\n window.location.href = externalTarget;\r\n }\r\n\r\n function redirectToExternalSubSearch(e) {\r\n let externalTarget = externalSubSearchBtn.getAttribute(\"data-href\");\r\n const searchTerm = externalSubSearchBox.value;\r\n externalTarget = externalTarget.replace(\"{query}\", encodeURIComponent(searchTerm.replace(/<\\/?[^>]+(>|$)/g, \"\")));\r\n\r\n window.location.href = externalTarget;\r\n }\r\n }\r\n }\n\n class videoPopup {\r\n static main() {\r\n const videos = document.querySelectorAll('.video-popup');\r\n \r\n if (videos.length) {\r\n init();\r\n }\r\n \r\n function init() {\r\n videos.forEach((video) => {\r\n const openModalBtn = video.querySelector('.js-open-modal');\r\n openModalBtn.addEventListener('click', (e) => {generateModal(e, video); });\r\n\r\n const openModalLink = video.querySelector('.js-open-modal-link');\r\n if (openModalLink) {\r\n openModalLink.addEventListener('click', (e) => {generateModal(e, video); });\r\n }\r\n });\r\n }\r\n \r\n function generateModal(e, video) {\r\n e.preventDefault();\r\n const body = document.querySelector('body');\r\n video.querySelector('.js-open-modal');\r\n const id = video.getAttribute('data-video-id');\r\n const modalAlt = 'video modal for id: '+id+'';\r\n const iframeHref = video.getAttribute('data-video-url');\r\n const videoTitle = video.getAttribute('data-video-title'); \r\n \r\n Element.prototype.setAttributes = function(obj){\r\n for(var prop in obj) {\r\n this.setAttribute(prop, obj[prop]);\r\n }\r\n };\r\n \r\n // create modal to be added at end of body tag\r\n const modalDiv = document.createElement(\"div\");\r\n modalDiv.setAttributes({\r\n id: \"video-modal-\"+id,\r\n \"data-clicked-id\": id,\r\n class: 'video-modal',\r\n \"aria-label\": modalAlt,\r\n role: \"dialog\",\r\n \"aria-modal\": true,\r\n \"aria-live\": \"polite\"\r\n });\r\n\r\n // create modal content with iframe\r\n const modalContent = `\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n

    ${videoTitle}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n `;\r\n \r\n // add modal to body\r\n modalDiv.innerHTML = modalContent;\r\n body.appendChild(modalDiv);\r\n\r\n fixTabbing();\r\n bindModal();\r\n }\r\n \r\n function bindModal() {\r\n // const closeBtns = document.querySelectorAll('.video-modal .js-close-btn');\r\n // const overlay = document.querySelector('.video-modal .modal-overlay');\r\n document.addEventListener('click', function(e) {\r\n if (e.target.closest('.js-close-modal')) {\r\n closeModal(e);\r\n\r\n // stop youtube videos from playing when in a modal and you close modal\r\n const modal = e.target.closest('.video-modal');\r\n modal.addEventListener('hidden.bs.modal', function() {\r\n var iframe = modal.querySelector('iframe');\r\n iframe.src = iframe.src;\r\n });\r\n }\r\n });\r\n }\r\n\r\n function fixTabbing() {\r\n const links = document.querySelectorAll('.video-modal a');\r\n\r\n if (links) {\r\n links[0].focus();\r\n\r\n links.forEach((link) => {\r\n link.addEventListener('focusout', function() {\r\n if (link == links[links.length - 1]) {\r\n console.log('last link');\r\n links[0].focus();\r\n }\r\n });\r\n });\r\n \r\n }\r\n }\r\n function closeModal(e) {\r\n e.preventDefault();\r\n const videoModal = e.target.closest('.video-modal');\r\n const id = videoModal.getAttribute('data-clicked-id');\r\n \r\n videoModal.remove();\r\n const clickedVideo = document.getElementById(id);\r\n clickedVideo.querySelector('.video-poster').focus();\r\n }\r\n }\r\n }\n\n class VideoHero {\r\n static main() { \r\n const heros = document.querySelectorAll('.video-hero'); \r\n \r\n heros.forEach((hero) => {\r\n const heroVideo = hero.querySelector('video');\r\n const pauseBtn = hero.querySelector('.controls .pause-video');\r\n const playBtn = hero.querySelector('.controls .play-video');\r\n\r\n if (pauseBtn) {\r\n pauseBtn.addEventListener('click', () => {pauseVideo(heroVideo, pauseBtn, playBtn);});\r\n }\r\n if (playBtn) {\r\n playBtn.addEventListener('click', () => {playVideo(heroVideo, pauseBtn, playBtn);}); \r\n }\r\n });\r\n \r\n function pauseVideo(heroVideo, pauseBtn, playBtn) {\r\n heroVideo.pause();\r\n pauseBtn.classList.add('hide');\r\n playBtn.classList.remove('hide');\r\n }\r\n \r\n function playVideo(heroVideo, pauseBtn, playBtn) {\r\n heroVideo.play();\r\n pauseBtn.classList.remove('hide');\r\n playBtn.classList.add('hide');\r\n }\r\n }\r\n }\n\n class TabbedContent {\r\n static main() {\r\n document.querySelectorAll(\".tabbed-content\").forEach((tabbedContent) => {\r\n const targetList = tabbedContent.querySelector(\".nav-tabs\");\r\n if (!targetList) return;\r\n const listItems = [...tabbedContent.querySelectorAll(\".tab-pane\")].map((tab, i) => {\r\n if (i === 0) tab.classList.add(\"show\", \"active\");\r\n const li = document.createElement(\"li\");\r\n li.classList.add(\"nav-item\");\r\n li.setAttribute(\"role\", \"presentation\");\r\n const btn = document.createElement(\"button\");\r\n btn.classList.add(\"nav-link\");\r\n if (i === 0) {\r\n btn.classList.add(\"active\");\r\n btn.setAttribute(\"aria-selected\", true);\r\n } else {\r\n btn.setAttribute(\"aria-selected\", false);\r\n }\r\n btn.id = tab.getAttribute(\"aria-labelledby\");\r\n btn.dataset.bsToggle = \"tab\";\r\n btn.dataset.bsTarget = \"#\" + tab.id;\r\n btn.type = \"button\";\r\n btn.role = \"tab\";\r\n btn.setAttribute(\"aria-controls\", tab.id);\r\n btn.textContent = tab.dataset.heading;\r\n li.append(btn);\r\n return li;\r\n });\r\n targetList.replaceChildren(...listItems);\r\n });\r\n }\r\n }\n\n class MailChimpForm {\r\n static main() { \r\n\r\n function setItemWithDate(key, value, newDate) {\r\n const data = {\r\n value: value,\r\n date: newDate ?? new Date()\r\n };\r\n localStorage.setItem(key, JSON.stringify(data));\r\n }\r\n \r\n // Getting the variable and its creation date\r\n function getItemWithDate(key) {\r\n const data = JSON.parse(localStorage.getItem(key));\r\n if (data) {\r\n return { value: data.value, date: new Date(data.date) };\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n let subscribeForm = document.getElementById('mc-embedded-subscribe-form');\r\n \r\n //check element exists before we do anything with jquery to avoid script errors\r\n if (subscribeForm)\r\n {\r\n $(subscribeForm).validate();\r\n\r\n var isPopup = document.getElementById('hidSecondsToPopup');\r\n if (isPopup)\r\n {\r\n let seconds = $('#hidSecondsToPopup').val();\r\n seconds = isNaN(seconds) ? 0 : parseInt(seconds);\r\n\r\n let start = $('#hidVisitStart').val();\r\n start = isNaN(start) ? 0 : parseInt(start);\r\n\r\n let end = $('#hidVisitEnd').val();\r\n end = isNaN(end) ? 1000 : parseInt(end);\r\n\r\n const formCode = $('#hidFormCode').val();\r\n\r\n if (formCode && (seconds || start || end)) {\r\n const result = getItemWithDate(\"form_\" + formCode);\r\n\r\n let visitNo = (!result) || isNaN(result?.value) ? 0 : parseInt(result.value);\r\n let originalDate = result?.date;\r\n\r\n //check if a year has elapsed - if so, reset\r\n if (originalDate) {\r\n\r\n var diffDays = parseInt((new Date() - originalDate) / (1000 * 60 * 60 * 24), 10); \r\n if (diffDays > 365) {\r\n originalDate = new Date();\r\n visitNo = 0;\r\n }\r\n }\r\n\r\n visitNo = visitNo + 1;\r\n\r\n setItemWithDate(\"form_\" + formCode, visitNo, originalDate);\r\n\r\n if ((start <= visitNo) && (end > visitNo)) {\r\n setTimeout(function () {\r\n $('#popup-subscribe').modal('show');\r\n }, seconds * 1000);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\n\n class GovNews {\r\n static main() {\r\n\r\n const newsListing = document.querySelector('.news-listing');\r\n const bodyClass = document.body.classList;\r\n\r\n const searchInput = document.getElementById('news-search-input');\r\n const yearFilter = document.getElementById('filter-by-year');\r\n const sortBy = document.getElementById('sort-by');\r\n const newsType = document.getElementById('news-type');\r\n const newsTopic = document.getElementById('news-topic');\r\n const searchButton = document.getElementById('news-search-button');\r\n const clearButton = document.getElementById('clear-search-button');\r\n\r\n if (newsListing && bodyClass.contains('gov'))\r\n {\r\n setEvents();\r\n setData();\r\n }\r\n\r\n function setEvents() {\r\n if (searchInput)\r\n {\r\n searchInput\r\n .addEventListener(\"keyup\", function (event) {\r\n event.preventDefault();\r\n if (event.keyCode === 13) {\r\n document.getElementById(\"news-search-button\").click();\r\n }\r\n });\r\n }\r\n \r\n if (yearFilter)\r\n {\r\n yearFilter\r\n .addEventListener(\"change\", function (event) {\r\n event.preventDefault();\r\n DoSearch();\r\n });\r\n }\r\n\r\n if (newsType)\r\n {\r\n newsType\r\n .addEventListener(\"change\", function (event) {\r\n event.preventDefault();\r\n DoSearch();\r\n });\r\n }\r\n\r\n if (newsTopic)\r\n {\r\n newsTopic\r\n .addEventListener(\"change\", function (event) {\r\n event.preventDefault();\r\n DoSearch();\r\n });\r\n }\r\n \r\n if (sortBy)\r\n {\r\n sortBy\r\n .addEventListener(\"change\", function (event) {\r\n event.preventDefault();\r\n DoSearch();\r\n });\r\n }\r\n \r\n if (searchButton) {\r\n searchButton\r\n .addEventListener(\"click\", function (event) {\r\n event.preventDefault();\r\n DoSearch();\r\n });\r\n }\r\n \r\n if (clearButton)\r\n {\r\n clearButton\r\n .addEventListener(\"click\", function (event) {\r\n event.preventDefault();\r\n ClearSearch();\r\n });\r\n }\r\n }\r\n \r\n function setData() {\r\n \r\n const urlParams = new URLSearchParams(window.location.search);\r\n const selectedYear = urlParams.get('year');\r\n const selectedSort = urlParams.get('sort');\r\n const searchText = urlParams.get('search');\r\n const selectedType = urlParams.get('type');\r\n const selectedTopic = urlParams.get('topic');\r\n \r\n if (yearFilter)\r\n {\r\n var yearsList = document.getElementById('hidYears');\r\n\r\n if (yearsList)\r\n {\r\n var jsonYears = JSON.parse(yearsList.value);\r\n for (var x = 0; x < jsonYears.length; x++)\r\n {\r\n const yearOption = document.createElement(\"option\");\r\n yearOption.setAttribute(\"value\", jsonYears[x]);\r\n yearOption.innerText = jsonYears[x];\r\n if (yearOption.value == selectedYear) {\r\n yearOption.selected = true;\r\n }\r\n yearFilter.appendChild(yearOption);\r\n }\r\n }\r\n }\t\t\r\n \r\n if (sortBy)\r\n {\r\n for (var i = 0; i < sortBy.length; i++) {\r\n const sort = sortBy[i];\r\n if (sort.value == selectedSort) {\r\n sort.selected = true;\r\n }\r\n }\r\n }\r\n\r\n if (selectedType)\r\n {\r\n for (var i = 0; i < newsType.length; i++) {\r\n const type = newsType[i];\r\n if (type.value == selectedType) {\r\n type.selected = true;\r\n }\r\n }\r\n }\r\n\r\n if (selectedTopic)\r\n {\r\n for (var i = 0; i < newsTopic.length; i++) {\r\n const topic = newsTopic[i];\r\n if (topic.value == selectedTopic) {\r\n topic.selected = true;\r\n }\r\n }\r\n }\r\n \r\n if (searchInput)\r\n {\r\n searchInput.value = searchText;\r\n }\r\n }\r\n \r\n \r\n function DoSearch(event) {\r\n var searchString = \"\";\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const selectedYear = urlParams.get('year') ?? \"\";\r\n const selectedSort = urlParams.get('sort') ?? \"\" ;\r\n const selectedSearch = urlParams.get('search') ?? \"\";\r\n const selectedType = urlParams.get('type') ?? \"\";\r\n const selectedTopic = urlParams.get('topic') ?? \"\";\r\n \r\n if (searchInput)\r\n {\r\n var search = searchInput.value ?? selectedSearch;\r\n if (search && search !== \"\")\r\n searchString += searchString + \"&search=\" + encodeURIComponent(search.replace(/<\\/?[^>]+(>|$)/g, \"\"));\r\n }\r\n \r\n if (sortBy)\r\n {\r\n var sort = sortBy.value ?? selectedSort;\r\n if (sort && sort !== \"\")\r\n searchString += \"&sort=\" + encodeURIComponent(sort.replace(/<\\/?[^>]+(>|$)/g, \"\"));\r\n }\r\n\r\n if (newsType)\r\n {\r\n var type = newsType.value ?? selectedType;\r\n if (type && type !== \"\")\r\n searchString += \"&type=\" + encodeURIComponent(type.replace(/<\\/?[^>]+(>|$)/g, \"\"));\r\n }\r\n\r\n if (newsTopic)\r\n {\r\n var topic = newsTopic.value ?? selectedTopic;\r\n if (topic && topic !== \"\")\r\n searchString += \"&topic=\" + encodeURIComponent(topic.replace(/<\\/?[^>]+(>|$)/g, \"\"));\r\n }\r\n \r\n if (yearFilter)\r\n {\r\n var year = yearFilter.value ?? selectedYear;\r\n if (year && year !== \"\")\r\n searchString += \"&year=\" + encodeURIComponent(year.replace(/<\\/?[^>]+(>|$)/g, \"\"));\r\n }\r\n\r\n let path = window.location.href.split('?')[0];\r\n \r\n var segments = path.split('/');\r\n\r\n if (isNumeric(segments[segments.length-1]))\r\n segments.pop();\r\n\r\n var searchPath = segments.join('/');\r\n \r\n\r\n window.location.href = searchPath + \"?ign=1\" + searchString;\r\n }\r\n \r\n function ClearSearch() {\r\n let path = window.location.href.split('?')[0];\r\n \r\n if (path.indexOf(\"-in-category\") > 0) {\r\n path = path.substring(0, path.indexOf(\"-in-category\"));\r\n }\r\n window.location.href = path;\r\n }\r\n\r\n function isNumeric(n) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n }\r\n }\r\n\r\n \r\n }\n\n class ShareThisThreads {\r\n static main() {\r\n \t\t\r\n \t\t/*\r\n * Custom Threads button for ShareThis\r\n */\r\n \t\tfunction updateThreadsLink() {\r\n \t\t\tconst currentUrl = window.location.href;\r\n \t\t\tconst currentTitle = document.title;\r\n \t\t\tconst encodedTitle = encodeURIComponent(currentTitle);\r\n \t\t\tconst encodedUrl = encodeURIComponent(currentUrl);\r\n \t\t\tconst updatedUrl = `https://www.threads.net/intent/post?text=${encodedTitle}%0A${encodedUrl}`;\r\n \t\r\n \t\t\t// Calculate the position to center the window\r\n \t\t\tconst screenWidth = window.screen.width;\r\n \t\t\tconst screenHeight = window.screen.height;\r\n \t\t\tconst windowWidth = 785;\r\n \t\t\tconst windowHeight = 450;\r\n \t\t\tconst left = (screenWidth - windowWidth) / 2;\r\n \t\t\tconst top = (screenHeight - windowHeight) / 2;\r\n \t\r\n \t\t\t// Open the link in a new window with specific size and position\r\n \t\t\tconst windowFeatures = `width=${windowWidth},height=${windowHeight},left=${left},top=${top}`;\r\n \t\t\twindow.open(updatedUrl, 'myWindow', windowFeatures);\r\n \t\t}\r\n \t\r\n \t\tvar threads = document.getElementById(\"btnthreads\");\r\n \t\tif (threads)\r\n \t\t{\r\n \t\t\tthreads.addEventListener(\"click\", updateThreadsLink);\r\n \t\t}\r\n \t}\r\n }\n\n /* Vendors */\r\n\r\n //JS Applications\r\n\r\n // //High Charts\r\n // import './components/GOV/apps/highCharts/BusinessVolume';\r\n // import './components/GOV/apps/highCharts/DemographicsCharts';\r\n // import './components/GOV/apps/highCharts/Energy';\r\n // import './components/GOV/apps/highCharts/Transportation';\r\n // import './components/GOV/apps/highCharts/StorageFutures1';\r\n // import './components/GOV/apps/highCharts/StorageFutures2';\r\n // import './components/GOV/apps/highCharts/StorageFutures3';\r\n // import './components/GOV/apps/highCharts/StorageFutures4';\r\n // import './components/GOV/apps/highCharts/StorageFutures5';\r\n // import './components/GOV/apps/highCharts/CheckTheStack1';\r\n // import './components/GOV/apps/highCharts/CheckTheStack2';\r\n\r\n //High Maps\r\n // import './components/GOV/apps/highMaps/StateSelect';\r\n\r\n // Shared\r\n if (typeof svg4everybody == 'function') {\r\n \tsvg4everybody();\r\n }\r\n\r\n // Site javascript\r\n Accordion.main();\r\n Alerts.main();\r\n AnimatedStat.main();\r\n BlogCards.main();\r\n Carousel.main();\r\n Datatables.main();\r\n FeaturedImageVideoCallout.main();\r\n Footer.main();\r\n heroBanner.main();\r\n IconCard.main();\r\n ImageCard.main();\r\n LeftNavMenu.main();\r\n LinkUpdates.main();\r\n LogosWidget.main();\r\n MainMenu.main();\r\n MailChimpForm.main();\r\n NewsCards.main();\r\n NotificationBanner.main();\r\n ParallaxHero.main();\r\n ParallaxImageTextOverlay.main();\r\n ScrollToTop.main();\r\n SoftwareTools.main();\r\n TabbedContent.main();\r\n TeamMembers.main();\r\n ToggleSearch.main();\r\n VideoHero.main();\r\n videoPopup.main();\r\n GovNews.main();\r\n ShareThisThreads.main();\r\n\r\n new ImageLoader()?.initialize();\n\n})();\n"],"mappings":"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","ignoreList":[]}