{"version":3,"sources":["node_modules/browser-pack/_prelude.js","frontend/Common/js/commonFiles.js","frontend/Common/js/common/NavMenu.js","frontend/Common/js/common/ThreadValidator.js","frontend/Common/js/common/clickAway.js","frontend/Common/js/common/componentSlider.js","frontend/Common/js/common/dynamicSearch.js","frontend/Common/js/common/fetchSearchResults.js","frontend/Common/js/common/inPageNavigation.js","frontend/Common/js/common/initAccordions.js","frontend/Common/js/common/makeClickable.js","frontend/Common/js/common/scrollHelpers.js","frontend/Common/js/common/scrollIntoView.js","frontend/Common/js/common/toggleItemInArray.js","frontend/Common/js/common/useClickAway.js","frontend/Common/js/common/useMatchMedia.js","frontend/Common/js/components/Accordion/Accordion.jsx","frontend/Common/js/components/Accordion/initAccordion.js","frontend/Common/js/components/Accordion/initAccordionCategories.js","frontend/Common/js/components/Accordion/initAccordionGroup.js","frontend/Common/js/components/AlertBanner/initAlertBanner.js","frontend/Common/js/components/ArrowLink/ArrowLink.jsx","frontend/Common/js/components/ArticleMetadata/initArticleMetadata.js","frontend/Common/js/components/ArticlePromo/ArticlePromo.jsx","frontend/Common/js/components/AssetsCard/initAssetsCard.js","frontend/Common/js/components/AudioPlayer/initAudioPlayer.js","frontend/Common/js/components/BackgroundVideo/BackgroundVideo.jsx","frontend/Common/js/components/BackgroundVideo/initBackgroundVideo.js","frontend/Common/js/components/Breadcrumb/initBreadcrumb.js","frontend/Common/js/components/CardSlider/BackOfCard/BackOfCard.jsx","frontend/Common/js/components/CardSlider/CardSliderApp.jsx","frontend/Common/js/components/CardSlider/CardSliderFilters/CardSliderFilters.jsx","frontend/Common/js/components/CardSlider/CardSliderNavigation/CardSliderNavigation.jsx","frontend/Common/js/components/CardSlider/SliderCard/SliderCard.jsx","frontend/Common/js/components/CardSlider/constants.js","frontend/Common/js/components/CardSlider/prop-types.js","frontend/Common/js/components/CardSlider/renderCardSlider.jsx","frontend/Common/js/components/ChapterNavigation/ChapterNavigationApp.jsx","frontend/Common/js/components/ChapterNavigation/renderChapterNavigation.jsx","frontend/Common/js/components/Checkbox/Checkbox.jsx","frontend/Common/js/components/Container/initScrollSnapping.js","frontend/Common/js/components/CountdownBanner/CountdownBannerApp.jsx","frontend/Common/js/components/CountdownBanner/CountdownTicker.jsx","frontend/Common/js/components/CountdownBanner/renderCountdownBanner.jsx","frontend/Common/js/components/DynamicContentListing/DynamicContentListing.jsx","frontend/Common/js/components/DynamicContentListing/initialState.js","frontend/Common/js/components/DynamicContentListing/renderDynamicContentListing.jsx","frontend/Common/js/components/DynamicLeadershipListing/DynamicLeadershipListingApp.jsx","frontend/Common/js/components/DynamicLeadershipListing/renderDynamicLeadershipListing.jsx","frontend/Common/js/components/ExpertProfileCard/ExpertProfileCard.jsx","frontend/Common/js/components/FilterBar/FilterBar.jsx","frontend/Common/js/components/FilterDropdown/FilterDropdown.jsx","frontend/Common/js/components/FilterDropdown/FilterDropdownSingle.jsx","frontend/Common/js/components/Form/SelectInput.jsx","frontend/Common/js/components/Form/TextInput.jsx","frontend/Common/js/components/Form/forms.js","frontend/Common/js/components/Framework/FrameworkModal/FrameworkModal.jsx","frontend/Common/js/components/Framework/FrameworkModal/renderFrameworkModal.jsx","frontend/Common/js/components/Framework/initFramework.js","frontend/Common/js/components/GranteeListing/GranteeListing.jsx","frontend/Common/js/components/Icon/Icon.jsx","frontend/Common/js/components/ImageBlock/ImageBlock.jsx","frontend/Common/js/components/ImageElement/ImageElement.jsx","frontend/Common/js/components/JumpNavigation/JumpNavigationApp.jsx","frontend/Common/js/components/JumpNavigation/renderJumpNavigation.jsx","frontend/Common/js/components/LanguageSelector/initLanguageSelector.js","frontend/Common/js/components/LoadingSpinner/LoadingSpinner.jsx","frontend/Common/js/components/ManualContentListing/ManualContentListing.jsx","frontend/Common/js/components/ManualInternalPromoSlider/initManualInternalPromoSlider.js","frontend/Common/js/components/MenuButton/MenuButton.jsx","frontend/Common/js/components/Modal/Modal.jsx","frontend/Common/js/components/NavMenu/initNavMenu.js","frontend/Common/js/components/Pagination/Pagination.jsx","frontend/Common/js/components/PrivacyBanner/initPrivacyBanner.js","frontend/Common/js/components/ProgressBar/ProgressBar.jsx","frontend/Common/js/components/Quiz/appQuiz.jsx","frontend/Common/js/components/Quiz/renderQuiz.jsx","frontend/Common/js/components/RFPListing/RFPListing.jsx","frontend/Common/js/components/ReadMore/initReadMore.js","frontend/Common/js/components/ResultsInfo/ResultsInfo.jsx","frontend/Common/js/components/SCTracking/sc-tracking.js","frontend/Common/js/components/ScrollingEmbed/initScrollingEmbed.js","frontend/Common/js/components/ScrollingTilesFullWidth/initScrollingTilesFullWidth.js","frontend/Common/js/components/SearchBox/SearchBox.jsx","frontend/Common/js/components/SearchBox/initSearchBox.js","frontend/Common/js/components/SearchComponent/AdditionalPrograms.jsx","frontend/Common/js/components/SearchComponent/GrantsCallout.jsx","frontend/Common/js/components/SearchComponent/SearchComponent.jsx","frontend/Common/js/components/SearchComponent/renderSearchComponent.jsx","frontend/Common/js/components/SearchParts/SelectedFilters/SelectedFilters.jsx","frontend/Common/js/components/SecondaryNav/initSecondaryNav.js","frontend/Common/js/components/SectionHeadline/SectionHeadline.jsx","frontend/Common/js/components/ShareBar/ShareBar.jsx","frontend/Common/js/components/ShareBar/ShareBarMount.jsx","frontend/Common/js/components/ShareBar/renderShareBar.jsx","frontend/Common/js/components/ShareIcons/ShareIcons.jsx","frontend/Common/js/components/SimpleContentListing/initSimpleContentListing.js","frontend/Common/js/components/SimpleHomepageHero/initSimpleHomepageHero.js","frontend/Common/js/components/SimpleSearchBox/SimpleSearchBox.jsx","frontend/Common/js/components/SiteHeader/GlobalNav/GlobalNav.jsx","frontend/Common/js/components/SiteHeader/GlobalNav/GlobalNavIntro.jsx","frontend/Common/js/components/SiteHeader/GlobalNav/GlobalNavPerson.jsx","frontend/Common/js/components/SiteHeader/GlobalNav/GlobalNavPromo.jsx","frontend/Common/js/components/SiteHeader/GlobalNav/GlobalNavPromoList.jsx","frontend/Common/js/components/SiteHeader/GlobalNav/GlobalNavStat.jsx","frontend/Common/js/components/SiteHeader/SiteHeaderBase.jsx","frontend/Common/js/components/SiteHeader/renderSiteHeader.jsx","frontend/Common/js/components/SiteLogo/SiteLogo.jsx","frontend/Common/js/components/SocialConnectIcons/SocialConnectIcons.jsx","frontend/Common/js/components/Sorters/Sorters.jsx","frontend/Common/js/components/StoryBuilder/initStoryBuilder.js","frontend/Common/js/components/SwitchToggle/SwitchToggle.jsx","frontend/Common/js/components/TabbedContent/initTabbedContent.js","frontend/Common/js/components/TextCards/initTextCards.js","frontend/Common/js/components/Timeline/Timeline.jsx","frontend/Common/js/components/Timeline/renderTimeline.jsx","frontend/Common/js/components/ToggleGroup/ToggleGroup.jsx","frontend/Common/js/components/TypeaheadSearch/TypeaheadSearch.jsx","frontend/Common/js/components/TypeaheadSearch/renderTypeaheadSearch.jsx","frontend/Common/js/components/YouTubeVideo/YouTubeVideoApp.jsx","frontend/Common/js/components/YouTubeVideo/renderYouTubeVideo.jsx","frontend/Common/js/components/YouTubeVideo/youtubeService.js","frontend/Common/js/jsComponents.js","frontend/Common/js/reactComponents.js","frontend/GFO/js/assetsDirectory.js","frontend/GFO/js/index.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_forms","_interopRequireDefault","_scrollIntoView","_inPageNavigation","_makeClickable","__esModule","default","document","addEventListener","pageNav","querySelectorAll","handleHashUrl","forEach","initScrolledIntoView","initMakeClickable","initProps","let","propsFail","menuButton","console","error","menuContainer","navigationLink","menuLink","parent","props","Object","assign","animationDelay","closed","direction","reversed","openClass","closedState","elParent","elMenuButton","querySelector","elCloseButton","closeButton","elMenuContainer","elMenuLinks","preventDefault","closeMenu","handleMenuKeyEvent","toggleMenu","link","index","handleLinkKeyEvent","target","key","shiftKey","focusPrevious","focusNext","elList","focus","tagName","bindEvents","init","openMenu","setDirection","newDirection","controlId","id","_lodash","buttonId","setAttribute","clickAway","contains","moveFocus","classList","add","removeAttribute","window","clearTimeout","timeoutId","setTimeout","onOpen","currentWidth","innerWidth","dataLayer","push","type","event","dropdownSelection","innerText","remove","onClose","removeEventListener","setRecaptchaToken","inputEl","grecaptcha","ready","execute","action","then","token","initRecaptcha","elForm","recaptchaInput","setInterval","recaptchaEl","onload","resetRecaptcha","strip","html","DOMParser","parseFromString","body","textContent","checkIfDirty","field","dataset","isDirty","value","originalValue","parentElement","validateField","valid","re","match","test","passwordFields","passwordFieldVals","map","isBlank","reduce","b","notEq","unescape","getAttribute","checked","trim","name","handleSubmit","handleSuccess","handleError","noJs","url","method","toLowerCase","el","validFields","HTMLFormElement","prototype","submit","postFormData","matchfields","items","item","field2Match","recaptchaLabel","getResponse","params","FormData","fetch","credentials","mode","formmode","response","contentType","headers","get","indexOf","json","ok","data","Success","RedirectUrl","location","Message","catch","err","setDefaults","resetDefaults","reset","validationListeners","callback","handleKeyEvent","unBindEvents","handleClickEvent","_jquery","defaultConfig","dots","infinite","speed","slidesToShow","slidesToScroll","accessibility","autoplay","responsive","breakpoint","settings","customConfig","$el","$slider","find","$slideNextButton","$slidePrevButton","$slideBar","config","show","nextArrow","prevArrow","on","slick","css","inset-inline-start","width","options","slideCount","currentSlide","nextSlide","$slides","slide","createSlider","destroySlider","R","_getRequireWildcardCache","has","__proto__","defineProperty","getOwnPropertyDescriptor","hasOwnProperty","set","_interopRequireWildcard","_queryString","_propTypes","_toggleItemInArray","WeakMap","selectedFacetShape","objectOf","arrayOf","string","parseQueryString","parse","arrayFormat","skipEmptyString","skipNull","stringifyQueryString","stringify","initFacets","urlQueryString","ifElse","equals","identity","compose","Array","isArray","pickBy","initCurrentParams","queryString","generalParams","when","undefined","page","assoc","q","createQueryString","currentParams","selectedFacets","parseInt","createFacetQueryString","facet","facetGroupId","facetId","toggleFacet","facetGroupValue","state","propEq","dissoc","evolve","clearFacetGroup","clearFacet","over","lensProp","reject","selectedFacetIds","facets","groupId","selectedValues","filter","selected","facetValue","facetName","selectedChildren","final","child","childValues","allSelectedFacetIds","facetGroup","childGroups","selectedGroups","group","values","signal","fetchURL","results","result","cta","href","contentUrl","urlType","image","alt","sources","imageSrc","imageFormat","imageSrc1x1","imageSrc16x9","image1x1","image16x9","summary","grantBox","sidebar","links","targets","animationTime","isScrolling","activeLinkIndex","scrollPageTo","scrollPadding","DEFAULT_SCROLL_PADDING","_scrollPadding","isNaN","offset","getOffset","top","animate","scrollTop","scrollTo","handleScroll","getCurrentTarget","setCurrentLink","rect","getBoundingClientRect","innerHeight","bottom","scrollLeft","pageXOffset","documentElement","pageYOffset","left","includes","pathname","initLinks","hash","split","warn","urlHash","customScrollOffset","collapseSection","element","height","dispatchEvent","Event","sectionHeight","scrollHeight","style","overflow","requestAnimationFrame","visibility","expandSection","expandedDone","transition","initAccordion","content","wrapper","editorView","createElement","parentNode","insertBefore","appendChild","contentWrapper","expanded","isMobile","checkMobileOnlyAccordions","passive","toggleContent","openState","from","makeClickable","openInNewTab","open","getOffsetTopById","getOffsetTop","getScrollTop","nav","navPos","getComputedStyle","position","getHeaderHeight","replace","scroll","behavior","isScrolledIntoView","all","elemTop","elemBottom","scrollAll","repeatAnimation","showComponent","initSingleScrolledIntoView","nodelist","activeIndex","newIndex","curry","array","symmetricDifference","isOpen","setOpen","ref","disallow","fallbackRef","_react","useRef","dropdownRef","buttonRef","clickStartedInside","setClickStartedInside","useState","setMoveFocus","useEffect","handleClickAway","isOrContainsNode","current","handleKeydown","handleMouseDown","handleFocusLoss","media","matchChangeCallback","matches","setMatches","matchMedia","mediaQueryList","handleMatchChange","addListener","removeListener","_classnames","propTypes","title","isRequired","children","node","bool","number","is5050","description","Accordion","plusIcon","xmlns","viewBox","fill","stroke","strokeWidth","className","x1","y1","x2","y2","x","y","transform","is-open","accordion--50-50","accordion--with-description","data-accordion-breakpoint","_initAccordions","_NavMenu","accordions","onlyOne","elAccordion","accordion","localStorage","getItem","setItem","propertyName","_Icon","arrowLinkPropTypes","oneOf","text","onKeyDown","func","lang","gtmElementLabel","focusRef","object","ArrowLink","download","iconName","hrefLang","arrow-link--reversed","rel","data-gtm-element","data-gtm-link","data-gtm-text","parentEl","initReadTime","readtimeEl","readTime","wordCount","Math","ceil","_ImageElement","_ShareBarMount","_ArrowLink","shape","authors","shareData","fullWidth","darkTheme","date","updatedLabel","gtmElementBaseLabel","articlePromo","srcSet","join","sizes","article-promo--full-width","article-promo--dark","dangerouslySetInnerHTML","__html","slice","formatTime","rawSeconds","minutes","floor","seconds","audioButton","audioElement","audioPause","audioPlay","audioSeek","audioDuration","audioCurrentTime","audioSlider","rAF","initSeekSlider","duration","max","displayBufferedAmount","play","whilePlaying","pause","cancelAnimationFrame","bufferedAmount","buffered","end","setProperty","currentTime","setCurrentTime","showRangeProgress","paused","readyState","src","loop","hasAudio","poster","caption","credit","transcriptLink","darkButton","smallButton","BackgroundVideo","reducedMotion","showCaption","showDescription","renderButton","background-video__button--dark","background-video__button--small","background-video__button--audio","renderVideo","muted","autoPlay","playsInline","data-has-audio","controlsList","background-video--audio","pausedByObserver","observer","IntersectionObserver","entries","entry","video","isIntersecting","pictureInPictureElement","threshold","selector","buttonEl","videoEl","videoPause","videoPlay","videoPoster","hasAttribute","observe","untouched","handleClick","_Accordion","sectors","bodyContent","accordionTitle","accordionText","buttonLink","BackOfCard","containerRef","sector","idx","_propTypes2","_constants","_useMatchMedia","_SliderCard","_BackOfCard","_CardSliderNavigation","_CardSliderFilters","_reactSlick","_extends","bind","arguments","apply","itemsShape","filters","filtersShape","CardSliderApp","parentRef","sliderRef","backSliderRef","filteredItems","setFilteredItems","activeFilter","setActiveFilter","ALL","setActiveIndex","isFlipped","setIsFlipped","isInitialRender","setIsInitialRender","isDesktop","slickGoTo","SLIDE_SPEED","handleFlipCard","PREV","slickPrev","slickNext","scrollIntoView","block","inline","toggle","arrows","centerMode","ITEMS_TO_SHOW","centerPadding","initialSlide","swipeToSlide","variableWidth","focusOnSelect","beforeChange","next","afterChange","card-slider--flipped","onChange","ACTIVE","prevItemIsLast","nextItemIsFirst","NEXT","getCardPosition","isActive","onClickCard","onFlipCard","flipped","onClick","aria-label","draggable","currentPage","totalPages","onClickPrev","onClickNext","_SelectInput","CardSliderFilters","setValue","selectedFilter","active","label","SliderNavigation","toString","padStart","_gsap","itemShape","SliderCard","tabIndex","setTabIndex","closest","activeProps","onPointerMove","card","currentTarget","box","centerPosition","angle","atan2","pageX","PI","--card-rotation-offset","onMouseLeave","defaultProps","isEmpty","filterShape","dataShape","mount","JSON","_reactDom","render","_CardSliderApp","ChapterNavigation","useMemo","navHelper","setActiveLinkIndex","setIsScrolling","handleLinkClick","previousLink","throttleHandleScroll","topOffset","history","replaceState","nextLink","chapter-navigation__item--before","chapter-navigation__item--current","chapter-navigation__item--next","chapter-navigation__item--after","aria-hidden","anchors","anchor","_ChapterNavigationApp","required","errorMsg","checkbox","js-form-required","sc-form-item--optional","has-error","aria-required","role","snapMarkers","numIntersecting","firstIntersection","rootMargin","container","_CountdownTicker","postLink","countdownEnd","interval","imageCaption","CountdownBannerApp","postText","activeEvent","setActiveEvent","Date","getTime","countdownRef","sessionStorage","onCompletion","dictionary","days","hours","intervalTime","CountdownTicker","setDays","setHours","setMinutes","setSeconds","endTime","intervalObj","now","timeleft","clearInterval","toLocaleString","minimumIntegerDigits","useGrouping","aria-labelledby","model","sessionId","_CountdownBannerApp","_initialState","_fetchSearchResults","_dynamicSearch","_scrollHelpers","_Pagination","_FilterBar","_ResultsInfo","_ManualContentListing","_GranteeListing","_Sorters","_SimpleSearchBox","_ToggleGroup","_SectionHeadline","_LoadingSpinner","_SelectedFilters","_RFPListing","enableQueryString","subTitle","pagination","search","hideMobileSummary","query","listingId","showSummaries","showDates","showContentTypes","showImages","excludedTaxonomy","loadAllPages","pageId","seeMore","sorters","DynamicContentListing","activeSorterParam","activeSorter","sorter","sortBy","sortOrder","showOverlay","setShowOverlay","setSelectedFacets","serverData","setServerData","setCurrentParams","resultsFocusRef","showFocusRef","showFocus","URL","searchParams","scrollToId","origin","controller","AbortController","message","finally","abort","handleFacetChange","useCallback","prevState","handleSorterClick","renderResults","granteeWebsiteText","granteeWebsite","granteeReportText","granteeReport","applyLinkText","applyLink","detailsLinkText","detailsLink","applicationDueText","applicationDue","classModifier","subtitle","size","noBorder","searchTerm","onTextChange","term","placeholder","searchPlaceholder","Fragment","filterTitle","filterLabel","onFacetChange","onClearFacetGroup","selectedFilters","clearLabel","clearAll","onClearItem","onClearAll","onSorterClick","sortDirection","totalResults","request","resultsInfoLabel","clearAllFacetsLabel","aria-live","noResultsMessage","dynamic-content-listing__results--no-mobile-summaries","perPage","dynamic-content-listing__pagination--centered","resultsPerPage","Number","onPaginationChange","preSelectedFacets","dataModel","showQueryStrings","seeMoreUrl","_DynamicContentListing","_ExpertProfileCard","defaultFacet","DynamicLeadershipListingApp","keyword","requestedFacets","resultMessage","setResultMessage","ignoreFetch","ignore","facetMessages","activeMessage","facetMessage","messages","origFacets","filtered","newParams","singleSelect","dynamic-leadership-listing__result-message--loading","_DynamicLeadershipListingApp","_SocialConnectIcons","occupation","relatedContent","socialConnectIcons","ExpertProfileCard","_reactAnimateHeight","_FilterDropdown","_FilterDropdownSingle","accordionOpen","FilterBar","isAccordionOpen","setIsAccordionOpen","windowWidth","setWindowWidth","handleResize","fitler-bar__mobile-accordion-btn--is-open","aria-expanded","_useClickAway","_Checkbox","FilterDropdown","filterDropdownRef","renderGroup","count","keys","filter-dropdown__panel--is-open","FilterDropdownSingle","selectedLabel","setSelectedLabel","selectedFacet","filter-dropdown__single-option--selected","handleSelectChange","inputdescription","autocomplete","matchName","readonly","jsClass","hiddenLabel","SelectInput","inputId","random","selectClass","sc-form-item--full-width","htmlFor","u-visuallyhidden","data-type","autoComplete","data-match","readOnly","option","validationType","helperText","extraClass","maxLength","showPassword","keyDownHandler","textInput","extraInputClasses","input-validation-error","data-max-length","defaultValue","data-input-id","_ThreadValidator","elItems","matchItems","errorbox","detectChange","input","String","btn","resetButton","button","elements","reload","customMessage","status","msg","submitButtons","innerHTML","_Modal","_ImageBlock","_BackgroundVideo","_initBackgroundVideo","editing","FrameworkModal","modalOpen","setModalOpen","videoRef","contentIsVideo","showPrintButton","EE","_FrameworkModal","toggleItem","itemContent","contentHeight","maxHeight","resizeBorder","firstItemPos","firstItem","offsetTop","firstItemHeight","resetToDefault","itemButton","isFirst","activeElements","activeEl","information","reportLink","websiteLink","GranteeListing","granteeInformation","info","arr","Icon","otherProps","focusable","xlinkHref","assetsFolder","orientation","source","altClass","ImageBlock","srcset","loading","ImageElement","--image-height","--image-width","_ProgressBar","condensed","JumpNavigation","menuButtonRef","itemsRef","wideView","setWideView","focusIndex","setFocusIndex","showMenu","setShowMenu","dropDownRef","newWideView","offsetWidth","scrollWidth","renderLinkItem","jump-navigation__item--active","aria-current","handleMenuItemKeyboard","jump-navigation__app--condensed","aria-controls","handleMenuButtonKeyboard","jump-navigation__menu--is-open","_JumpNavigationApp","_clickAway","menuOpen","LoadingSpinner","_ArticlePromo","suppressLeft","topBorder","authorLabel","language","langDir","ManualContentListing","manual-content-listing__items--top-border","manual-content-listing__item--no-meta","dir","rtl","company","_componentSlider","requestedSlidesToShow","fixedCount","numberChildren","showCircles","mobileOnly","mobileFirst","isRtl","activeSlider","sliderControls","openText","closeText","classNames","controlID","onFocus","showVisibleLabel","MenuButton","ariaLabel","menu-button--right","menu-button--labelled","aria-haspopup","_reactFocusLock","noPadding","oneOfType","Modal","rest","overflowRef","childrenCache","modalContainer","setModalContainer","keydownHandler","classes","modal--no-padding","modalNode","disabled","returnFocus","aria-modal","print","createPortal","Pagination","isHidden","range","renderPageButton","skipButton","pagination__page-button--hidden","btn--active","$acceptBtn","$closeBtn","$cookieName","paddingBottom","outerHeight","handlePrivacy","accept","setCookie","off","cname","cvalue","exdays","d","setTime","expires","toUTCString","cookie","addClass","ca","charAt","substring","getCookie","removeClass","resize","ProgressBar","setMax","windowHeight","clientHeight","progressMax","setProgressMax","progressValue","setProgressValue","throttledScroll","newValue","resetMax","backgroundColor","legal","questions","question","eyebrow","subtext","answerText","isCorrect","Quiz","statusOfQuestion","setStatusOfQuestion","currentQuestion","setCurrentQuestion","indexInQuestions","setIndexInQuestions","isAnswered","setIsAnswered","trackClick","setTrackClick","isDisabled","setIsDisabled","cn","quiz--background","--background-color","answer","answer--correct","answer--incorrect","handleAnswer","icon","iconTemplate","ariaInCorrect","nextQuestion","_appQuiz","_index","_index2","applicationStatus","applicationDueDate","RFPListing","minHeight","onClearFacets","ResultsInfo","currentPageNumber","resultsPerPageNumber","ceiling","renderCurrentResultsRange","email","goal","rte","enterPageObserver","root","markCoveredItems","tops","pageTopObserver","els","opacity","intersectionRatio","_TextInput","searchUrl","buttonText","SearchBox","searchId","placholder","setIsOpen","inputRef","timeout","handleKeyDown","search-box--open","toggleButton","form","close","AdditionalPrograms","ind","additionalLinks","indd","numberOfGrants","grantSearchUrl","GrantsCallout","linkToGrantSearch","_GrantsCallout","_AdditionalPrograms","useRightSidebar","SearchComponent","showSortersArea","_SearchComponent","SelectedFilters","labelId","pills","sort","centered","stacked","sectionHeadline","titleClass","section-headline--no-border","section-headline--centered","section-headline--dark","section-headline--stacked","_ShareIcons","dictionaryText","enableCopy","copyText","shares","shareCopy","shareTitle","defaultExpanded","copyTimeoutId","desktopMediaQuery","ShareBar","displayShare","setDisplayShare","shareBarRef","copied","setCopied","share-bar--active","share-bar--vertical","share-bar__panel--expanded","select","execCommand","blur","share-bar__copied--is-visibile","ShareBarMount","data-model","_ShareBar","_scTracking","onShare","ShareIcons","getContent","metaTagEl","pageTitle","pageDescription","pageUrl","twitterTitle","encodeURIComponent","twitterUserRaw","twitterUser","handleShare","share","getShareUrl","data-action","overlay","offsetHeight","SimpleSearchBox","inputValue","setInputValue","onSubmit","onBlur","_GlobalNavIntro","_GlobalNavStat","_GlobalNavPromo","_GlobalNavPromoList","_GlobalNavPerson","theme","introBlock","menuLabel","feature","submenu","header","numberOfColumns","topLevelKeyDown","subMenuBack","GlobalNav","menuId","focusTimeout","navId","backButtonRef","menuRef","handleMenuClick","handleFocusLock","handleTopLinkKeydown","global-nav--open","data-label","menuColumn","columnIndex","renderFeature","GlobalNavIntro","GlobalNavPerson","GlobalNavPromo","promos","GlobalNavPromoList","promo","GlobalNavStat","global-nav-stat--dark","global-nav-stat--has-background","_lodash2","_SiteLogo","_SearchBox","_MenuButton","_GlobalNav","logo","sticky","primaryNav","skipNavigation","openMenuText","closeMenuText","SiteHeaderBase","setIsMobile","isSticky","setIsSticky","siteHeaderRef","stickyTriggerRef","toggleMenuRef","unobserve","handleScrollLock","renderPrimaryNav","site-header__navigation--mobile","site-header__navigation--desktop","site-header__navigation--open","handleNavKeyDown","lastIndex","first","last","site-header__background--sticky","site-header__container--mobile","site-header__container--desktop","site-header__container--sticky","site-header__item-container--search","_SiteHeaderBase","linkClass","logoSm","logoLg","siteLogo","socialProfiles","SocialConnectIcons","profile","Sorters","sorters__sorter--active","sorters__sorter--has-direction","sorters__sorter--desc","sorters__sorter--asc","toggleDir","labelAsc","labelDesc","slider","slides","firstSlideItem","addSlideTitleClass","slideItem","slideType","getSlideType","hasTitle","Boolean","setSlideDescription","initSlider","hasContent","maybeString","observerConfig","attributes","MutationObserver","mutationsList","mutation","attributeName","firstElementChild","storyBuilderCaption","titleEl","captionEl","creditEl","getSlideDescription","backgroundVideoEl","youtubeVideoEl","innerContainer","adaptiveHeight","storyBuilderCaptionContainer","removeAttr","$audio","$audioButton","click","activeSlideItem","_reactSwitch","facetCount","facetLabel","SwitchToggle","onColor","offColor","offHandleColor","onHandleColor","uncheckedIcon","checkedIcon","isSelectedClass","appIndex","elTabList","elPanels","elTabs","elNextButton","elPrevButton","elAccordionLinks","parentIndex","tabButtonSelector","currentTab","isOverflowing","changeTab","newTab","hideCurrentTab","activeTab","activeTabButton","panel","showThisTab","offsetLeft","handleAccordionResize","handleOverflowResize","overflowing","clientWidth","tab","append","_slugify","Timeline","activeItem","setActiveItem","componentWidth","setComponentWidth","controlsId","skipEl","itemsContainer","isVisible","timeline__item--active","maxWidth","_Timeline","_SwitchToggle","ToggleGroup","_downshift","showSearchIcon","minCharsForFilter","noResultsString","TypeaheadSearch","inputItems","setInputItems","inputVisible","setInputVisible","getMenuProps","getInputProps","getComboboxProps","highlightedIndex","getItemProps","useCombobox","onSelectedItemChange","changes","selectedItem","onInputValueChange","selfRef","typeahead-search--visible","typeahead-search__results--open","display","externalLink","_TypeaheadSearch","_youtubeService","Name","YouTubeVideo","videoStarted","setVideoStarted","player","setPlayer","playerReady","setPlayerReady","rootRef","playerId","videoId","playerVars","cc_lang_pref","hl","URLSearchParams","paramsToObject","onPlayerReady","mute","YT","loaded","newPlayer","createPlayer","onYouTubeIframeAPIReady","loadScript","playVideo","getPlayerState","PlayerState","PLAYING","pauseVideo","youtube-video--video-started","youtube-video__poster-button--dark","youtube-video__poster-button--small","_YouTubeVideoApp","tag","firstScriptTag","getElementsByTagName","cb","defaults","host","Player","events","onReady","_initAccordion","_initAccordionGroup","_initAccordionCategories","_initAlertBanner","_initAssetsCard","_initAudioPlayer","_initBreadcrumb","_initLanguageSelector","_initManualInternalPromoSlider","_initNavMenu","_initPrivacyBanner","_initReadMore","_initScrollingEmbed","_initSearchBox","_initSecondaryNav","_initSimpleContentListing","_initSimpleHomepageHero","_initTabbedContent","_initTextCards","_initFramework","_initScrollingTilesFullWidth","_initArticleMetadata","_initScrollSnapping","_renderJumpNavigation","_renderChapterNavigation","_renderDynamicLeadershipListing","_renderDynamicContentListing","_renderSearchComponent","_renderShareBar","_renderYouTubeVideo","_renderTypeaheadSearch","_renderSiteHeader","_renderTimeline","_renderFrameworkModal","_renderCardSlider","_renderQuiz","_renderCountdownBanner","_initStoryBuilder","elm"],"mappings":"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","file":"index-generated.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i {\r\n // run this first since it is blanket query search that could affect other apps.\r\n const pageNav = inPageNavigation(document.querySelectorAll('a[href*=\"#\"]'));\r\n pageNav.handleHashUrl();\r\n\r\n forms();\r\n\r\n document\r\n .querySelectorAll(\".js-scroll-into-view\")\r\n .forEach(initScrolledIntoView);\r\n\r\n initMakeClickable();\r\n});\r\n","// Version 1.1a\r\n//\r\n// closeButton added for 1.1a\r\n//\r\n// author: Jonthan Dallas\r\n// date: November 2020\r\n//\r\n// pass these props when intializing this module\r\n//\r\n// props: {\r\n// animationDelay: number\r\n// closed: boolean\r\n// reversed: boolean\r\n// direction: string (horizontal or vertical)\r\n// menuButton: string.isRequired (class or id selector)\r\n// closeButton: string.isRequired (class or id selector)\r\n// menuContainer: string.isRequired (class or id selector)\r\n// navigationLink: string.isRequired (class selector)\r\n// openClass: string (class name)\r\n// onClose: function (callback when the menu opens)\r\n// onOpen: function (callback when the menu opens)\r\n// parent: node_element.isRequired\r\n// }\r\n\r\nimport uniqueid from \"lodash.uniqueid\";\r\n\r\nlet timeoutId = window.setTimeout(() => {}, 0);\r\n\r\nexport default function (initProps) {\r\n let propsFail = false;\r\n\r\n if (!initProps.menuButton || initProps.menuButton.length === 0) {\r\n console.error(\"'menuButton' selector is required\");\r\n propsFail = true;\r\n }\r\n if (!initProps.menuContainer || initProps.menuContainer.length === 0) {\r\n console.error(\"'menuContainer' selector is required\");\r\n propsFail = true;\r\n }\r\n if (\r\n (!initProps.navigationLink || initProps.navigationLink.length === 0) &&\r\n (!initProps.menuLink || initProps.menuLink.length === 0)\r\n ) {\r\n console.error(\"'navigationLink' selector is required\");\r\n propsFail = true;\r\n }\r\n if (!initProps.parent) {\r\n console.error(\"'parent' node element is required\");\r\n propsFail = true;\r\n }\r\n\r\n if (propsFail) {\r\n return;\r\n }\r\n\r\n const defaultProps = {\r\n animationDelay: 600,\r\n closed: true,\r\n direction: \"vertical\",\r\n reversed: false,\r\n openClass: \"is-open\",\r\n };\r\n\r\n const props = Object.assign({}, defaultProps, initProps);\r\n\r\n let closedState = props.closed;\r\n let direction = props.direction;\r\n let animationDelay = props.animationDelay;\r\n\r\n const elParent = props.parent;\r\n\r\n const elMenuButton = elParent.querySelector(props.menuButton);\r\n const elCloseButton = elParent.querySelector(props.closeButton);\r\n const elMenuContainer = elParent.querySelector(props.menuContainer);\r\n const elMenuLinks = elMenuContainer.querySelectorAll(\r\n props.navigationLink || props.menuLink,\r\n );\r\n\r\n bindEvents();\r\n init();\r\n\r\n function init() {\r\n const controlId = elMenuContainer.id || uniqueid(\"menu\");\r\n const buttonId = elMenuButton.id || uniqueid(\"menu\");\r\n\r\n elMenuButton.id = buttonId;\r\n elMenuButton.setAttribute(\"aria-haspopup\", true);\r\n elMenuButton.setAttribute(\"aria-controls\", controlId);\r\n\r\n elMenuContainer.id = controlId;\r\n elMenuContainer.setAttribute(\"aria-labelledby\", buttonId);\r\n\r\n if (closedState) {\r\n closeMenu(false);\r\n } else {\r\n openMenu(false);\r\n }\r\n }\r\n\r\n function bindEvents() {\r\n // need to run this on mousedown to properly allow the focus state to move.\r\n if (elCloseButton) {\r\n elCloseButton.addEventListener(\"mousedown\", (e) => {\r\n e.preventDefault();\r\n closeMenu();\r\n });\r\n elCloseButton.addEventListener(\"keydown\", handleMenuKeyEvent);\r\n }\r\n\r\n // need to run this on mousedown to properly allow the focus state to move.\r\n elMenuButton.addEventListener(\"mousedown\", (e) => {\r\n // console.log(e);\r\n e.preventDefault();\r\n toggleMenu();\r\n });\r\n\r\n elMenuButton.addEventListener(\"keydown\", handleMenuKeyEvent);\r\n\r\n [...elMenuLinks].forEach((link, index) => {\r\n link.addEventListener(\"keydown\", (e) => {\r\n handleLinkKeyEvent(e, link, index);\r\n });\r\n\r\n if (link.tagName === \"A\") {\r\n link.addEventListener(\"click\", (e) => {\r\n closeMenu(false);\r\n });\r\n }\r\n });\r\n }\r\n\r\n function setDirection(newDirection) {\r\n direction = newDirection;\r\n }\r\n\r\n function clickAway(e) {\r\n if (!elParent.contains(e.target) && !closedState) {\r\n closeMenu(false);\r\n }\r\n }\r\n\r\n function toggleMenu(moveFocus) {\r\n if (closedState) {\r\n openMenu(moveFocus);\r\n } else {\r\n closeMenu(moveFocus);\r\n }\r\n }\r\n\r\n function openMenu(moveFocus = true) {\r\n closedState = false;\r\n elMenuButton.setAttribute(\"aria-expanded\", true);\r\n elParent.classList.add(props.openClass);\r\n elMenuContainer.removeAttribute(\"aria-hidden\");\r\n\r\n if (moveFocus) {\r\n window.clearTimeout(timeoutId);\r\n\r\n timeoutId = setTimeout(() => {\r\n elMenuLinks[0] && elMenuLinks[0].focus();\r\n }, animationDelay);\r\n }\r\n\r\n if (props.onOpen) {\r\n props.onOpen();\r\n }\r\n\r\n window.addEventListener(\"click\", clickAway);\r\n\r\n let currentWidth = window.innerWidth;\r\n window.addEventListener(\"resize\", () => {\r\n // ignore browsers with headers that show/hide on scroll\r\n if (currentWidth !== window.innerWidth) {\r\n currentWidth = window.innerWidth;\r\n closeMenu();\r\n }\r\n });\r\n\r\n if (moveFocus) {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n type: \"Menu Opened\",\r\n event: \"dropdownClick\",\r\n dropdownSelection: elMenuButton.innerText,\r\n });\r\n }\r\n }\r\n\r\n function closeMenu(moveFocus = true) {\r\n closedState = true;\r\n if (moveFocus) {\r\n elMenuButton && elMenuButton.focus();\r\n }\r\n elMenuButton.setAttribute(\"aria-expanded\", false);\r\n elParent.classList.remove(props.openClass);\r\n elMenuContainer.setAttribute(\"aria-hidden\", true);\r\n\r\n if (props.onClose) {\r\n props.onClose();\r\n }\r\n\r\n window.removeEventListener(\"click\", clickAway);\r\n window.removeEventListener(\"resize\", closeMenu);\r\n\r\n if (moveFocus) {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n type: \"Menu Closed\",\r\n event: \"dropdownClick\",\r\n dropdownSelection: elMenuButton.innerText,\r\n });\r\n }\r\n }\r\n\r\n function handleMenuKeyEvent(e) {\r\n switch (e.key) {\r\n case \"Escape\":\r\n e.preventDefault();\r\n closeMenu();\r\n break;\r\n case \"Enter\":\r\n case \" \":\r\n e.preventDefault();\r\n toggleMenu(true);\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n function handleLinkKeyEvent(e, link, index) {\r\n let target = index;\r\n\r\n switch (e.key) {\r\n case \"Escape\":\r\n e.preventDefault();\r\n closeMenu(true);\r\n break;\r\n case \"Tab\":\r\n if (e.shiftKey) {\r\n if (index === 0) {\r\n if (!props.reversed) {\r\n e.preventDefault();\r\n }\r\n closeMenu(!props.reversed);\r\n }\r\n } else {\r\n if (index === elMenuLinks.length - 1) {\r\n if (props.reversed) {\r\n e.preventDefault();\r\n }\r\n closeMenu(props.reversed);\r\n }\r\n }\r\n break;\r\n default:\r\n }\r\n\r\n if (direction === \"vertical\") {\r\n switch (e.key) {\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n focusPrevious(elMenuLinks, index, target);\r\n break;\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n focusNext(elMenuLinks, index, target);\r\n break;\r\n default:\r\n }\r\n }\r\n if (direction === \"horizontal\") {\r\n switch (e.key) {\r\n case \"Left\":\r\n case \"ArrowLeft\":\r\n e.preventDefault();\r\n focusPrevious(elMenuLinks, index, target);\r\n break;\r\n case \"Right\":\r\n case \"ArrowRight\":\r\n e.preventDefault();\r\n focusNext(elMenuLinks, index, target);\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n function focusPrevious(elList, index, target) {\r\n if (index === 0) {\r\n target = elMenuLinks.length;\r\n }\r\n elMenuLinks[target - 1] && elMenuLinks[target - 1].focus();\r\n }\r\n\r\n function focusNext(elList, index, target) {\r\n if (index === elMenuLinks.length - 1) {\r\n target = -1;\r\n }\r\n elMenuLinks[target + 1] && elMenuLinks[target + 1].focus();\r\n }\r\n }\r\n\r\n return {\r\n init,\r\n toggleMenu,\r\n openMenu,\r\n closeMenu,\r\n setDirection,\r\n };\r\n}\r\n","const setRecaptchaToken = (inputEl) => {\r\n if (window.grecaptcha) {\r\n window.grecaptcha.ready(function () {\r\n window.grecaptcha\r\n .execute(\"6LeUriooAAAAABgBI359S_WLqi83taQGDDNVoaCM\", {\r\n action: \"submit\",\r\n })\r\n .then(function (token) {\r\n inputEl.setAttribute(\"value\", token);\r\n });\r\n });\r\n }\r\n};\r\n\r\n// V3 recaptcha setup.\r\nexport const initRecaptcha = (elForm) => {\r\n const recaptchaInput = elForm.querySelector(\".js-recaptcha-input\");\r\n\r\n if (!recaptchaInput) {\r\n return false;\r\n }\r\n\r\n if (typeof window.grecaptcha !== \"undefined\") {\r\n setRecaptchaToken(recaptchaInput);\r\n\r\n // fix timeout issue\r\n setInterval(function () {\r\n setRecaptchaToken(recaptchaInput);\r\n }, 110000);\r\n } else {\r\n const recaptchaEl = document.querySelector(\".js-recaptcha\");\r\n if (recaptchaEl) {\r\n recaptchaEl.onload = () => setRecaptchaToken(recaptchaInput);\r\n\r\n // fix timeout issue\r\n setInterval(function () {\r\n setRecaptchaToken(recaptchaInput);\r\n }, 110000);\r\n }\r\n }\r\n};\r\n\r\nexport const resetRecaptcha = (elForm) => {\r\n const recaptchaInput = elForm.querySelector(\".js-recaptcha-input\");\r\n\r\n if (recaptchaInput) {\r\n setRecaptchaToken(recaptchaInput);\r\n }\r\n};\r\n\r\nexport const strip = (html) => {\r\n var doc = new DOMParser().parseFromString(html, \"text/html\");\r\n return doc.body.textContent || \"\";\r\n};\r\n\r\nexport const checkIfDirty = (field) => {\r\n if (field.dataset.isDirty === \"true\") {\r\n if (field.value === field.dataset.originalValue) {\r\n field.parentElement.classList.remove(\"is-dirty\");\r\n field.dataset.isDirty = \"false\";\r\n }\r\n } else {\r\n if (field.value !== field.dataset.originalValue) {\r\n field.parentElement.classList.add(\"is-dirty\");\r\n field.dataset.isDirty = \"true\";\r\n }\r\n }\r\n\r\n // this flag can be used to position a label over the input\r\n if (field.value === \"\") {\r\n field.parentElement.classList.remove(\"has-value\");\r\n } else {\r\n field.parentElement.classList.add(\"has-value\");\r\n }\r\n return field.dataset.isDirty;\r\n};\r\n\r\n// takes in a field items\r\n// returns true or false\r\n// adds error class to invalid fields\r\nexport const validateField = (field, elForm) => {\r\n let valid = true;\r\n const re =\r\n /^.*(?=.{8,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\\W])(?!.*[\\s]).*$/;\r\n\r\n switch (field.dataset.type) {\r\n case \"email\":\r\n valid = !!field.value.match(\r\n /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,\r\n );\r\n break;\r\n case \"password\":\r\n // more than eight characters\r\n // contains digits\r\n // contains lower case alpha\r\n // contains upper case alpha\r\n // contains special characters\r\n // does not contain white space\r\n\r\n valid = re.test(field.value);\r\n\r\n break;\r\n case \"new-password\":\r\n //valid password that doesnt match other password\r\n const passwordFields = [...elForm.querySelectorAll(\".js-new-password\")];\r\n\r\n //only return true when there are 2 new password fields\r\n if (passwordFields.length > 1 && passwordFields.length < 3) {\r\n const passwordFieldVals = passwordFields.map((field) => field.value);\r\n\r\n /*\r\n //if password fields are blank or\r\n //bothfields pass regex and are not\r\n //equal the new passwords are valid\r\n */\r\n\r\n const isBlank = passwordFieldVals.reduce((a, b) => a + b) === \"\";\r\n\r\n const notEq =\r\n passwordFieldVals[0] !== passwordFieldVals[1] &&\r\n re.test(passwordFieldVals[0]) &&\r\n re.test(passwordFieldVals[1]);\r\n\r\n valid = isBlank ? isBlank : notEq;\r\n } else {\r\n valid = false;\r\n }\r\n break;\r\n case \"tel\":\r\n valid = !!field.value.match(/^[0-9]*^[()-]*$/) || field.value === \"\";\r\n break;\r\n\r\n case \"extension\":\r\n valid = !!field.value.match(/^\\d{1,4}$/) || field.value === \"\";\r\n break;\r\n\r\n case \"zip\":\r\n valid = !!field.value.match(\r\n /^[0-9]{5}$|^[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]$/,\r\n );\r\n break;\r\n\r\n case \"website\":\r\n valid =\r\n !!field.value.match(\r\n /^(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})$/,\r\n ) || field.value === \"\";\r\n break;\r\n\r\n case \"text-length\":\r\n valid =\r\n strip(unescape(field.value)).length <\r\n field.getAttribute(\"data-max-length\") || field.value === \"\";\r\n break;\r\n\r\n case \"checkbox\":\r\n valid = field.checked === true;\r\n break;\r\n\r\n case \"select\":\r\n case \"text\":\r\n default:\r\n if (field.value.trim().length === 0) {\r\n valid = false;\r\n }\r\n if (field.name == \"investmentId\") {\r\n valid = !!field.value.match(\r\n /[iI]{1}[nN]{1}[vV]{1}[\\-]{1}[0-9]+$|[oO]{1}[pP]{2}[0-9]+$/,\r\n );\r\n }\r\n }\r\n\r\n return valid;\r\n};\r\n\r\nexport const handleSubmit = (\r\n elForm,\r\n handleSuccess,\r\n handleError,\r\n noJs = false,\r\n) => {\r\n const url = elForm.getAttribute(\"data-post-url\");\r\n const method = elForm.getAttribute(\"method\").toLowerCase();\r\n\r\n elForm.addEventListener(\"submit\", (e) => {\r\n if (!noJs && method !== \"get\" && !!url) {\r\n e.preventDefault();\r\n }\r\n\r\n [...elForm.querySelectorAll(\".has-error\")].forEach((el) =>\r\n el.classList.remove(\"has-error\"),\r\n );\r\n\r\n if (\r\n validFields([...elForm.querySelectorAll(\".js-form-required\")], elForm)\r\n ) {\r\n //submit with js only if method != Get, noJS is false, and there is a url.\r\n if (!noJs && method !== \"get\" && !!url) {\r\n e.preventDefault();\r\n [\r\n ...elForm.querySelectorAll(\"button[type=submit], input[type=submit]\"),\r\n ].forEach((el) => {\r\n el.setAttribute(\"disabled\", true);\r\n el.classList.add(\"is-loading\");\r\n });\r\n\r\n if (elForm.getAttribute(\"data-bypass-fetch\")) {\r\n // If a form field name is \"submit\", form.submit() breaks\r\n // Calling the prototype method to be sure it'll work\r\n HTMLFormElement.prototype.submit.call(elForm);\r\n } else {\r\n postFormData(elForm, url, handleSuccess, handleError);\r\n }\r\n }\r\n } else {\r\n e.preventDefault();\r\n [...elForm.querySelectorAll(\"button[type=submit]\")].forEach((el) => {\r\n el.removeAttribute(\"disabled\");\r\n el.classList.remove(\"is-loading\");\r\n });\r\n elForm.querySelectorAll(\".has-error\")[0].focus();\r\n }\r\n });\r\n};\r\n\r\nexport const matchfields = (elForm, items) => {\r\n let valid = true;\r\n\r\n items.forEach((item) => {\r\n const field = item.querySelector(\"[aria-required]\");\r\n const field2Match = elForm.querySelector(`[name=${field.dataset.match}]`);\r\n\r\n if (field === null) {\r\n return;\r\n }\r\n\r\n if (field2Match && field2Match.value !== field.value) {\r\n item.classList.add(\"has-error\");\r\n valid = false;\r\n } else {\r\n item.classList.remove(\"has-error\");\r\n }\r\n });\r\n\r\n return valid;\r\n};\r\n\r\n// takes in a node array of field items\r\n// returns true or false\r\nexport const validFields = (items, elForm) => {\r\n let valid = true;\r\n\r\n items.forEach((item) => {\r\n const field = item.querySelector(\"[aria-required]\");\r\n\r\n if (field === null) {\r\n return;\r\n }\r\n\r\n if (validateField(field, elForm)) {\r\n item.classList.remove(\"has-error\");\r\n } else {\r\n item.classList.add(\"has-error\");\r\n valid = false;\r\n }\r\n });\r\n\r\n // Recaptcha V2 test.\r\n const recaptchaLabel = document.querySelector(\".g-recaptcha-error-label\");\r\n const recaptchaInput = document.querySelector(\".g-recaptcha\");\r\n if (window.grecaptcha && window.grecaptcha.getResponse() === \"\") {\r\n if (recaptchaInput) {\r\n recaptchaInput.classList.add(\"has-error\");\r\n }\r\n if (recaptchaLabel) {\r\n recaptchaLabel.classList.add(\"has-error\");\r\n }\r\n valid = false;\r\n } else {\r\n if (recaptchaInput) {\r\n recaptchaInput.classList.remove(\"has-error\");\r\n }\r\n if (recaptchaLabel) {\r\n recaptchaLabel.classList.remove(\"has-error\");\r\n }\r\n }\r\n\r\n return valid;\r\n};\r\n\r\n//stripped down submit handler taken from thread/forms/forms.js\r\n//takes form el, action url, and success and error handler fns\r\nconst postFormData = (elForm, url, handleSuccess, handleError) => {\r\n const params = new FormData(elForm);\r\n\r\n fetch(url, {\r\n body: params,\r\n credentials: \"same-origin\",\r\n mode: elForm.dataset.formmode ? elForm.dataset.formmode : \"cors\",\r\n method: \"post\",\r\n })\r\n .then((response) => {\r\n const contentType = response.headers.get(\"content-type\");\r\n resetRecaptcha(elForm);\r\n\r\n if (contentType && contentType.indexOf(\"application/json\") !== -1) {\r\n return response.json();\r\n } else {\r\n return response.ok;\r\n }\r\n })\r\n .then((data) => {\r\n if (data.Success) {\r\n if (data.RedirectUrl) {\r\n window.location = data.RedirectUrl;\r\n } else {\r\n handleSuccess();\r\n }\r\n } else {\r\n handleError(data.Message);\r\n }\r\n })\r\n .catch((err) => {\r\n handleError();\r\n resetRecaptcha(elForm);\r\n });\r\n};\r\n\r\nexport const setDefaults = (elForm) => {\r\n // handling the back button with setTimeout\r\n setTimeout(() => {\r\n elForm\r\n .querySelectorAll(\"input:not([type=submit]), textarea, select\")\r\n //create dataset for form fields\r\n .forEach((field) => {\r\n if (field.type === \"checkbox\" || field.type === \"radio\") {\r\n field.dataset.checked = field.checked;\r\n } else {\r\n field.dataset.originalValue = field.value;\r\n }\r\n checkIfDirty(field);\r\n });\r\n }, 100);\r\n};\r\n\r\nexport const resetDefaults = (elForm) => {\r\n elForm.reset();\r\n\r\n elForm\r\n .querySelectorAll(\"input:not([type=submit]), textarea, select\")\r\n .forEach((field) => {\r\n if (field.type === \"checkbox\" || field.type === \"radio\") {\r\n if (field.dataset.checked === \"true\") {\r\n field.checked = true;\r\n } else {\r\n field.checked = false;\r\n }\r\n } else {\r\n field.value = field.dataset.originalValue;\r\n }\r\n checkIfDirty(field);\r\n });\r\n\r\n resetRecaptcha(elForm);\r\n};\r\n\r\nexport const validationListeners = (item, elForm) => {\r\n const field = item.querySelector(\"[aria-required]\");\r\n\r\n if (field === null) {\r\n return;\r\n }\r\n\r\n if (field.dataset.type !== \"select\") {\r\n field.addEventListener(\"blur\", (e) => {\r\n if (field.getAttribute(\"data-type\") !== \"new-password\") {\r\n // ignore blank fields\r\n if (field.value.trim().length === 0 || validateField(field, elForm)) {\r\n item.classList.remove(\"has-error\");\r\n } else {\r\n item.classList.add(\"has-error\");\r\n }\r\n }\r\n checkIfDirty(field);\r\n });\r\n\r\n field.addEventListener(\"focus\", (e) => {\r\n field.parentElement.classList.add(\"has-value\");\r\n });\r\n }\r\n};\r\n","export default (el, callback) => {\r\n const handleKeyEvent = (event) => {\r\n if (event.key === \"Escape\") {\r\n unBindEvents();\r\n callback(true); // true => focus needs to be moved\r\n }\r\n };\r\n\r\n const handleClickEvent = (event) => {\r\n if (!el.contains(event.target)) {\r\n unBindEvents();\r\n callback(false);\r\n }\r\n };\r\n\r\n const bindEvents = () => {\r\n document.addEventListener(\"keydown\", handleKeyEvent);\r\n document.addEventListener(\"click\", handleClickEvent);\r\n document.addEventListener(\"focusin\", handleClickEvent);\r\n };\r\n\r\n const unBindEvents = () => {\r\n document.removeEventListener(\"keydown\", handleKeyEvent);\r\n document.removeEventListener(\"click\", handleClickEvent);\r\n document.removeEventListener(\"focusin\", handleClickEvent);\r\n };\r\n\r\n bindEvents();\r\n};\r\n","import $ from \"jquery\";\r\nimport \"slick-slider\";\r\n\r\nconst defaultConfig = {\r\n dots: false,\r\n infinite: false,\r\n speed: 500,\r\n slidesToShow: 4,\r\n slidesToScroll: 2,\r\n accessibility: true,\r\n autoplay: false,\r\n responsive: [\r\n {\r\n breakpoint: 680,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: false,\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport default (el, customConfig) => {\r\n const $el = $(el);\r\n const $slider = $el.find(\".js-slide-container\");\r\n const $slideNextButton = $el.find(\".js-slide-next-button\");\r\n const $slidePrevButton = $el.find(\".js-slide-prev-button\");\r\n const $slideBar = $el.find(\".js-slide-position-bar\");\r\n\r\n $slider.show();\r\n\r\n const config = {\r\n nextArrow: $slideNextButton,\r\n prevArrow: $slidePrevButton,\r\n ...defaultConfig,\r\n ...customConfig,\r\n };\r\n\r\n if (config.slidesToShow > 2) {\r\n config.responsive = [\r\n {\r\n breakpoint: 780,\r\n settings: {\r\n slidesToShow: 2,\r\n },\r\n },\r\n ...config.responsive,\r\n ];\r\n }\r\n\r\n if (config.slidesToShow > 3) {\r\n config.responsive = [\r\n {\r\n breakpoint: 910,\r\n settings: {\r\n slidesToShow: 3,\r\n },\r\n },\r\n ...config.responsive,\r\n ];\r\n }\r\n\r\n if (config.slidesToShow > 4) {\r\n config.responsive = [\r\n {\r\n breakpoint: 1100,\r\n settings: {\r\n slidesToShow: 4,\r\n },\r\n },\r\n ...config.responsive,\r\n ];\r\n }\r\n\r\n // need to bind `init` BEFORE initializing the slider\r\n $slider.on(\"init\", function (event, slick) {\r\n // setting left: 0 gives a start point to smoothly animate from, in case\r\n // the value is not set in CSS (which can cause jumpy first anim)\r\n $slideBar.css({\r\n \"inset-inline-start\": 0,\r\n width: 100 * (slick.options.slidesToShow / slick.slideCount) + \"%\",\r\n });\r\n });\r\n\r\n $slider.on(\"beforeChange\", function (event, slick, currentSlide, nextSlide) {\r\n // Updating bar width every change, in case the viewport has changed\r\n // responsive sliders may have different slidesToShow value\r\n $slideBar.css({\r\n \"inset-inline-start\": (nextSlide / slick.slideCount) * 100 + \"%\",\r\n width: 100 * (slick.options.slidesToShow / slick.slideCount) + \"%\",\r\n });\r\n\r\n // Add class to slide while animating\r\n\r\n slick.$slides[currentSlide].classList.add(\"slick-animating\");\r\n slick.$slides[nextSlide].classList.add(\"slick-animating\");\r\n });\r\n\r\n $slider.on(\"afterChange\", function (event, slick, currentSlide) {\r\n for (const slide of slick.$slides) {\r\n slide.classList.remove(\"slick-animating\");\r\n }\r\n });\r\n\r\n const createSlider = () => {\r\n $slider.slick(config);\r\n };\r\n\r\n const destroySlider = () => {\r\n // This removed all html in the slider when I tried it\r\n // need to see if this works if the responsive setting isn't doing unslick\r\n //$slider.slick(\"unslick\");\r\n };\r\n\r\n createSlider();\r\n\r\n return {\r\n createSlider,\r\n destroySlider,\r\n };\r\n};\r\n","import * as R from \"ramda\";\r\nimport queryString from \"query-string\";\r\nimport { string, objectOf, arrayOf } from \"prop-types\";\r\nimport toggleItemInArray from \"./toggleItemInArray.js\";\r\n\r\n//the key of the selectedFacetsObject is the id of the facetGroup\r\nexport const selectedFacetShape = objectOf(arrayOf(string));\r\n\r\n//query string v5 does not support this options object, leaving these wrapper\r\n//functions for now incase of future upgrade\r\nexport const parseQueryString = (string) =>\r\n queryString.parse(string, {\r\n arrayFormat: \"comma\",\r\n skipEmptyString: true,\r\n skipNull: true,\r\n });\r\n\r\nexport const stringifyQueryString = (data) =>\r\n queryString.stringify(data, {\r\n arrayFormat: \"comma\",\r\n skipEmptyString: true,\r\n skipNull: true,\r\n });\r\n\r\n//initialize facets from the URL query string\r\nexport const initFacets = (urlQueryString) => {\r\n return R.ifElse(\r\n R.equals({}),\r\n R.identity,\r\n R.compose(\r\n R.map((value) => (Array.isArray(value) ? value : [value])),\r\n R.pickBy((value, key) => key !== \"q\" && key !== \"page\" && key !== \"id\"),\r\n ),\r\n )(parseQueryString(urlQueryString));\r\n};\r\n\r\n//init current params from the URL query string\r\nexport const initCurrentParams = (queryString, generalParams) => {\r\n return R.compose(\r\n R.when(\r\n () => parseQueryString(queryString).page !== undefined,\r\n R.assoc(\"page\", parseQueryString(queryString).page),\r\n ),\r\n R.when(\r\n () => parseQueryString(queryString).q !== undefined,\r\n R.assoc(\"q\", parseQueryString(queryString).q),\r\n ),\r\n )(generalParams);\r\n};\r\n\r\nexport const createQueryString = (currentParams, selectedFacets) => {\r\n return stringifyQueryString({\r\n // ...parseQueryString(window.location.search),\r\n q:\r\n currentParams.q === \"\" || currentParams.q === null\r\n ? undefined\r\n : currentParams.q,\r\n page: parseInt(currentParams.page) === 1 ? undefined : currentParams.page,\r\n ...selectedFacets,\r\n });\r\n};\r\n\r\nexport const createFacetQueryString = (facet) => {\r\n return stringifyQueryString({\r\n [facet.facetGroupId]: facet.facetId,\r\n });\r\n};\r\n\r\n//If the facetGroup id value exists in the selectedFacets, add the facet id to existing array\r\n//Otherwise, create the the array with the seleced facet\r\n//If the array at selectedFacet[GroupId] is empty, remove it.\r\nexport const toggleFacet = (facetGroupValue, facet, state) => {\r\n return R.compose(\r\n R.when(R.propEq(facetGroupValue, []), R.dissoc(facetGroupValue)),\r\n R.ifElse(\r\n R.has(facetGroupValue),\r\n R.evolve({\r\n [facetGroupValue]: toggleItemInArray(facet),\r\n }),\r\n R.assoc(facetGroupValue, [facet]),\r\n ),\r\n )(state);\r\n};\r\n\r\n//clear a facetGroup\r\nexport const clearFacetGroup = (facetGroupValue, state) => {\r\n return R.when(R.has(facetGroupValue), R.dissoc(facetGroupValue))(state);\r\n};\r\n\r\n//clear a single facet\r\nexport const clearFacet = (facetGroupValue, facetId, state) => {\r\n return R.compose(\r\n R.when(R.propEq(facetGroupValue, []), R.dissoc(facetGroupValue)),\r\n R.over(\r\n R.lensProp(facetGroupValue),\r\n R.reject((value) => value === facetId),\r\n ),\r\n )(state);\r\n};\r\n\r\nexport const selectedFacetIds = (facets, groupId) => {\r\n if (!facets && facets.length < 1) {\r\n return [];\r\n }\r\n\r\n // find all selected items in Values\r\n const selectedValues = facets\r\n .filter((facet) => facet.selected)\r\n .map((facet) => {\r\n return {\r\n facetGroupId: groupId,\r\n facetValue: facet.id,\r\n facetName: facet.name || \"\",\r\n };\r\n });\r\n\r\n // find all selected items in childValues if it exists\r\n const selectedChildren = facets.reduce((final, child) => {\r\n return [...final, ...selectedFacetIds(child.childValues || [], groupId)];\r\n }, []);\r\n\r\n // return the combination as a single array\r\n return [...selectedValues, ...selectedChildren];\r\n};\r\n\r\nexport const allSelectedFacetIds = (facets) => {\r\n return facets.reduce((selectedFacets, facetGroup) => {\r\n const childGroups = facetGroup.childGroups || [];\r\n\r\n const selectedGroups = childGroups.reduce((final, group) => {\r\n return [...final, ...selectedFacetIds(group.values, facetGroup.id)];\r\n }, []);\r\n\r\n return [\r\n ...selectedFacets,\r\n ...selectedFacetIds(facetGroup.values, facetGroup.id),\r\n ...selectedGroups,\r\n ];\r\n }, []);\r\n};\r\n","import queryString from \"query-string\";\r\n\r\nexport default (url, params, type, signal) => {\r\n const fetchURL =\r\n url + (!url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + queryString.stringify(params);\r\n\r\n return fetch(fetchURL, { signal })\r\n .then((response) => response.json())\r\n .then((data) => {\r\n if (type === \"default\" || type === undefined) {\r\n const results =\r\n data &&\r\n data.results &&\r\n data.results.map((result) => {\r\n return {\r\n ...result,\r\n cta: {\r\n href: result.contentUrl || \"\",\r\n type: result.urlType || \"\",\r\n },\r\n image: {\r\n alt: \"\",\r\n sources: result.imageSrc\r\n ? [result.imageSrc]\r\n : result.imageFormat === 1 && result.imageSrc1x1\r\n ? [result.imageSrc1x1]\r\n : result.imageFormat === 2 && result.imageSrc16x9\r\n ? [result.imageSrc16x9]\r\n : [],\r\n },\r\n image1x1: {\r\n alt: \"\",\r\n sources: result.imageSrc1x1 ? [result.imageSrc1x1] : [],\r\n },\r\n image16x9: {\r\n alt: \"\",\r\n sources: result.imageSrc16x9 ? [result.imageSrc16x9] : [],\r\n },\r\n };\r\n });\r\n\r\n return { ...data, results };\r\n } else if (type === \"search-component\") {\r\n const results =\r\n data &&\r\n data.results[0].results &&\r\n data.results[0].results.map((result) => {\r\n return {\r\n ...result,\r\n body: result.summary,\r\n cta: { href: result.link || \"\" },\r\n image: {\r\n alt: \"\",\r\n sources: result.image ? [result.image] : [],\r\n },\r\n };\r\n });\r\n\r\n return {\r\n ...data,\r\n grantBox: data.results[0].grantBox,\r\n sidebar: data.results[0].sidebar,\r\n results,\r\n };\r\n } else {\r\n return data;\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.name === \"AbortError\") {\r\n return; // Continuation logic has already been skipped, so return normally\r\n }\r\n console.error(err);\r\n });\r\n};\r\n","import throttle from \"lodash.throttle\";\r\nimport $ from \"jquery\";\r\n\r\nconst DEFAULT_SCROLL_PADDING = 96;\r\n\r\n// Added check for current page - Jonathan Dallas - Sept 2021\r\n\r\n// This code looks for\r\n// 1. A hash in the url and will scroll to a matching id on the page if found\r\n// 2. Anchor links on the page containing \"#\" and will scroll the page to a matching target if they exist.\r\n//\r\n// Targets on the page should always be coded as \r\n\r\nexport default function inPageNavigation(links = []) {\r\n const targets = [];\r\n const animationTime = 750;\r\n let isScrolling = false;\r\n let activeLinkIndex = 0;\r\n\r\n [...links].forEach((link, index) => {\r\n // check if the link is more than just \"#\" and is pointing to the current page\r\n if (\r\n link.href.length > 1 &&\r\n (link.href[0] === \"#\" || link.href.includes(window.location.pathname))\r\n ) {\r\n initLinks(link, index);\r\n }\r\n });\r\n\r\n function initLinks(link, index) {\r\n const href = link.getAttribute(\"href\");\r\n const hash = `#${href.split(\"#\")[1]}`;\r\n\r\n let target = null;\r\n\r\n try {\r\n target = document.querySelector(hash);\r\n } catch (e) {\r\n console.warn(`${hash} is not a valid target`);\r\n }\r\n\r\n if (target) {\r\n target.dataset.index = index;\r\n targets.push(target);\r\n\r\n link.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n\r\n // manually move the aria current\r\n // scroll event might do this as well, but better to make sure\r\n setCurrentLink(link);\r\n\r\n scrollPageTo(target);\r\n });\r\n }\r\n\r\n handleScroll(targets);\r\n window.addEventListener(\r\n \"scroll\",\r\n throttle(() => {\r\n handleScroll(targets);\r\n }, animationTime),\r\n );\r\n }\r\n\r\n function handleHashUrl() {\r\n const urlHash = window.location.hash;\r\n if (!urlHash || urlHash.length <= 1) {\r\n return;\r\n }\r\n\r\n const target = document.querySelector(urlHash);\r\n\r\n if (target) {\r\n let customScrollOffset = target.dataset.customScrollOffset\r\n ? parseInt(target.dataset.customScrollOffset, 10)\r\n : undefined;\r\n\r\n scrollPageTo(target, customScrollOffset);\r\n\r\n // wait for images to fill space and readjust.\r\n window.setTimeout(() => {\r\n scrollPageTo(target, customScrollOffset);\r\n }, 750);\r\n }\r\n }\r\n\r\n function scrollPageTo(target, scrollPadding = DEFAULT_SCROLL_PADDING) {\r\n const _scrollPadding =\r\n typeof scrollPadding === \"number\" && !isNaN(scrollPadding)\r\n ? scrollPadding\r\n : DEFAULT_SCROLL_PADDING;\r\n\r\n // find the offset to the target\r\n // remove a little so it's not at the top of the page\r\n let offset = getOffset(target).top - _scrollPadding;\r\n\r\n isScrolling = true;\r\n\r\n $(\"html,body\").animate(\r\n {\r\n scrollTop: offset,\r\n },\r\n animationTime,\r\n function () {\r\n offset = getOffset(target).top - _scrollPadding;\r\n // lazy loaded images are throwing off the position so do a quick re-adjustment.\r\n $(\"html,body\").animate(\r\n {\r\n scrollTop: offset,\r\n },\r\n 50,\r\n function () {\r\n offset = getOffset(target).top - _scrollPadding;\r\n target.setAttribute(\"tabIndex\", \"-1\");\r\n target.focus();\r\n target.removeAttribute(\"tabIndex\");\r\n window.scrollTo(0, offset); // reset any scrolling due to focus being set.\r\n isScrolling = false;\r\n },\r\n );\r\n },\r\n );\r\n }\r\n\r\n // on page scroll, move the aria-current attribute to the appropriate link\r\n function handleScroll(targets) {\r\n if (isScrolling) {\r\n return;\r\n }\r\n\r\n const target = getCurrentTarget(targets);\r\n\r\n if (target && target.dataset.index !== activeLinkIndex) {\r\n activeLinkIndex = parseInt(target.dataset.index);\r\n setCurrentLink(links[activeLinkIndex]);\r\n }\r\n }\r\n\r\n // Takes a Node List of anchor tags on the page and a callback function\r\n function getCurrentTarget(targets) {\r\n return [...targets].find((target) => {\r\n const rect = target.getBoundingClientRect();\r\n return (\r\n rect.top < window.innerHeight / 2 + 100 &&\r\n rect.bottom > window.innerHeight / 2 - 100\r\n );\r\n });\r\n }\r\n\r\n function getOffset(target) {\r\n const rect = target.getBoundingClientRect();\r\n const scrollLeft =\r\n window.pageXOffset || document.documentElement.scrollLeft;\r\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\r\n }\r\n\r\n function setCurrentLink(link) {\r\n [...links].forEach((link) => {\r\n link.removeAttribute(\"aria-current\");\r\n });\r\n\r\n link.setAttribute(\"aria-current\", \"location\");\r\n }\r\n\r\n return {\r\n scrollPageTo,\r\n getOffset,\r\n handleHashUrl,\r\n getCurrentTarget,\r\n };\r\n}\r\n","// Accordion Code created by Jonathan Dallas - 2019\r\n// Version 1.2.0\r\n// breakpoint can be passed as argument\r\n// initializing component more efficiently\r\n//\r\n// Version 1.1.1\r\n// Version 1.2.1 // Added new collapse and expand methods - Jonathan\r\n\r\n// Expected markup.\r\n// The link and content need to be nested within the js-accordion element, but can be placed anywhere in the code.\r\n//\r\n//
\r\n//
\r\n// \r\n//
\r\n//
\r\n// Content to show and hide\r\n//
\r\n//
\r\n\r\nexport function collapseSection(element, height = 0) {\r\n element.dispatchEvent(new Event(\"transitionend\"));\r\n // get the height of the element's inner content, regardless of its actual size\r\n var sectionHeight = element.scrollHeight;\r\n\r\n element.style.overflow = \"hidden\";\r\n element.style.height = `${sectionHeight}px`;\r\n\r\n // on the next frame (as soon as the previous style change has taken effect),\r\n // have the element transition to height: 0\r\n requestAnimationFrame(() => {\r\n element.style.height = `${height}px`;\r\n\r\n if (height === 0) {\r\n element.setAttribute(\"aria-hidden\", true);\r\n element.style.visibility = \"hidden\";\r\n }\r\n });\r\n\r\n // mark the section as \"currently collapsed\"\r\n element.setAttribute(\"data-collapsed\", \"true\");\r\n}\r\n\r\nexport function expandSection(element) {\r\n // get the height of the element's inner content, regardless of its actual size\r\n var sectionHeight = element.scrollHeight;\r\n\r\n // have the element transition to the height of its inner content\r\n element.style.height = sectionHeight + \"px\";\r\n element.style.visibility = \"visible\";\r\n\r\n const expandedDone = (e) => {\r\n // remove this event listener so it only gets triggered once\r\n element.removeEventListener(\"transitionend\", expandedDone);\r\n\r\n // remove \"height\" from the element's inline styles, so it can return to its initial value\r\n element.style.height = null;\r\n element.removeAttribute(\"aria-hidden\"); // existence of aria-hidden makes it hidden\r\n element.style.overflow = \"unset\";\r\n };\r\n\r\n // when the next css transition finishes (which should be the one we just triggered)\r\n if (element.style.transition) {\r\n element.addEventListener(\"transitionend\", expandedDone);\r\n } else {\r\n expandedDone();\r\n }\r\n\r\n // mark the section as \"currently not collapsed\"\r\n element.setAttribute(\"data-collapsed\", \"false\");\r\n}\r\n\r\nexport function initAccordions() {\r\n Array.from(document.querySelectorAll(\".js-accordion\")).forEach(initAccordion);\r\n}\r\n\r\nexport default function initAccordion(el, id, breakpoint = null) {\r\n const link = el.querySelector(\".js-accordion-link\");\r\n const content = el.querySelector(\".js-accordion-content\");\r\n\r\n if (!link || !content) {\r\n return false;\r\n }\r\n\r\n // check if we're in the experience editor to force the content open and prevent the binding event for the link.\r\n const editorView = document.querySelector(\".is-page-editor\");\r\n const animationSpeed = 500;\r\n\r\n const contentWrapper = wrap(content, document.createElement(\"div\"));\r\n\r\n breakpoint = breakpoint || el.getAttribute(\"data-accordion-breakpoint\");\r\n\r\n let expanded; // do not set to an initial value that is done be the ToggleContent\r\n let isMobile;\r\n\r\n // if in Experience Editor open accordions and then exit.\r\n if (editorView) {\r\n toggleContent(true);\r\n // adding the wrapper class will show the content\r\n contentWrapper.classList.add(\"accordion-wrapper\");\r\n return;\r\n }\r\n\r\n if (breakpoint) {\r\n // initialize this backwards so the checkMobile method works properly.\r\n isMobile = window.innerWidth > breakpoint;\r\n\r\n checkMobileOnlyAccordions();\r\n\r\n window.addEventListener(\"resize\", checkMobileOnlyAccordions, {\r\n passive: true,\r\n });\r\n } else {\r\n toggleContent(!!el.classList.contains(\"is-open\"));\r\n }\r\n\r\n link.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n toggleContent(!expanded);\r\n });\r\n\r\n // initialize the Link's attributes\r\n link.setAttribute(\"id\", `accordion-link-${id}`);\r\n link.setAttribute(\"aria-controls\", `accordion-content-${id}`);\r\n\r\n // initialize the Content Wrapper after the expanded state is set to avoid transitions\r\n contentWrapper.classList.add(\"accordion-wrapper\");\r\n contentWrapper.setAttribute(\"id\", `accordion-content-${id}`);\r\n contentWrapper.setAttribute(\"aria-labelledby\", `accordion-link-${id}`);\r\n contentWrapper.style.transition = `height ${animationSpeed}ms ease, visibility ${animationSpeed}ms ease`;\r\n\r\n function toggleContent(openState) {\r\n if (openState === expanded || (!openState && !isToggleable())) {\r\n return;\r\n }\r\n\r\n expanded = openState;\r\n\r\n link.setAttribute(\"aria-expanded\", openState);\r\n\r\n if (expanded) {\r\n expandSection(contentWrapper);\r\n el.classList.add(\"is-open\");\r\n } else {\r\n collapseSection(contentWrapper);\r\n el.classList.remove(\"is-open\");\r\n }\r\n }\r\n\r\n function wrap(el, wrapper) {\r\n el.parentNode.insertBefore(wrapper, el);\r\n wrapper.appendChild(el);\r\n return wrapper;\r\n }\r\n\r\n // helper function to check if mobile-only accordions should toggle their state\r\n // non-mobile-only will always toggle; mobile-only should only toggle at\r\n // smartphone widths or narrower (470px matches the CSS breakpoint)\r\n function isToggleable() {\r\n return !breakpoint || (breakpoint && window.innerWidth <= breakpoint);\r\n }\r\n\r\n function checkMobileOnlyAccordions() {\r\n if (isMobile && window.innerWidth > breakpoint) {\r\n link.setAttribute(\"disabled\", \"\");\r\n toggleContent(true);\r\n isMobile = false;\r\n }\r\n\r\n if (!isMobile && window.innerWidth <= breakpoint) {\r\n link.removeAttribute(\"disabled\");\r\n toggleContent(false);\r\n isMobile = true;\r\n }\r\n }\r\n\r\n return {\r\n el,\r\n toggleContent,\r\n };\r\n}\r\n","const makeClickable = (el, i) => {\r\n if (el.dataset?.location) {\r\n el.addEventListener(\"click\", (event) => {\r\n if (el.dataset?.openInNewTab === \"true\") {\r\n window.open(el.dataset.location, \"_blank\", \"noopener,noreferrer\");\r\n } else {\r\n window.location.href = el.dataset.location;\r\n }\r\n });\r\n }\r\n};\r\n\r\nexport default makeClickable;\r\n\r\nexport const initMakeClickable = () => {\r\n document\r\n .querySelectorAll(\".js-make-clickable-element\")\r\n .forEach(makeClickable);\r\n};\r\n","import * as R from \"ramda\";\r\n\r\n// Element -> Number\r\nexport function getOffsetTop(element) {\r\n if (!element) {\r\n return 0;\r\n }\r\n\r\n const { top } = element.getBoundingClientRect();\r\n const scrollTop = getScrollTop();\r\n return top + scrollTop;\r\n}\r\n\r\n// String -> Number\r\nconst getOffsetTopById = (id) => {\r\n try {\r\n return R.compose(\r\n (top) => top - getHeaderHeight() - 150,\r\n getOffsetTop,\r\n (id) => document.querySelector(`#${id}`),\r\n R.replace(\"#\", \"\"),\r\n )(id);\r\n } catch (e) {\r\n // probably a bad id\r\n }\r\n};\r\n\r\n// cross browser schinanigans\r\nexport function getScrollTop() {\r\n return document.documentElement.scrollTop || document.body.scrollTop;\r\n}\r\n\r\nexport function scrollTo(top) {\r\n window.scroll({\r\n top,\r\n left: 0,\r\n behavior: \"smooth\",\r\n });\r\n}\r\n\r\n// () -> Number\r\nfunction getHeaderHeight() {\r\n const nav = document.querySelector(\".js-global-header\");\r\n const navPos = nav && window.getComputedStyle(nav).position;\r\n return nav && navPos === \"sticky\" ? nav.getBoundingClientRect().height : 0;\r\n}\r\n\r\nexport function scrollToId(id) {\r\n scrollTo(getOffsetTopById(id));\r\n}\r\n","import throttle from \"lodash.throttle\";\r\n\r\nexport const isScrolledIntoView = (el, all = false) => {\r\n const rect = el.getBoundingClientRect();\r\n const elemTop = rect.top;\r\n const elemBottom = rect.bottom;\r\n\r\n if (all) {\r\n // Only completely visible elements return true:\r\n return elemTop <= 0 && elemBottom > window.innerHeight;\r\n } else {\r\n // Partially visible elements return true:\r\n return (\r\n elemTop <= window.innerHeight / 2 + 100 &&\r\n elemBottom > window.innerHeight / 2 - 100\r\n );\r\n }\r\n};\r\n\r\nexport const initScrolledIntoView = (el, index) => {\r\n const scrollAll =\r\n (el.dataset.scrollAll && el.dataset.scrollAll === \"true\") || false;\r\n\r\n const repeatAnimation =\r\n (el.dataset.repeatAnimation && el.dataset.repeatAnimation === \"true\") ||\r\n false;\r\n\r\n const showComponent = throttle(() => {\r\n if (isScrolledIntoView(el, scrollAll)) {\r\n el.classList.add(\"scrolled-into-view\");\r\n if (!repeatAnimation) {\r\n window.removeEventListener(\"scroll\", showComponent);\r\n }\r\n } else {\r\n el.classList.remove(\"scrolled-into-view\");\r\n }\r\n }, 50);\r\n\r\n setTimeout(showComponent, 1000);\r\n\r\n window.addEventListener(\"scroll\", showComponent);\r\n};\r\n\r\nexport const initSingleScrolledIntoView = (nodelist, callback) => {\r\n if (nodelist?.length < 1) {\r\n return;\r\n }\r\n\r\n let activeIndex = -1;\r\n let newIndex = -1;\r\n\r\n const showComponent = throttle(() => {\r\n nodelist.forEach((el, index) => {\r\n if (isScrolledIntoView(el) && index !== activeIndex) {\r\n newIndex = index;\r\n }\r\n });\r\n\r\n if (newIndex !== activeIndex) {\r\n activeIndex = newIndex;\r\n nodelist.forEach((el, index) => {\r\n el.classList.remove(\"scrolled-into-view\");\r\n });\r\n\r\n nodelist[activeIndex].classList.add(\"scrolled-into-view\");\r\n\r\n try {\r\n callback(activeIndex);\r\n } catch (err) {\r\n //not a function\r\n }\r\n }\r\n }, 100);\r\n\r\n setTimeout(showComponent, 1000);\r\n\r\n window.addEventListener(\"scroll\", showComponent);\r\n};\r\n","import * as R from \"ramda\";\r\n\r\nexport default R.curry((value, array) => {\r\n if (Array.isArray(value)) {\r\n return R.symmetricDifference(value, array);\r\n } else {\r\n return R.symmetricDifference([value], array);\r\n }\r\n});\r\n","import { useEffect, useState, useRef } from \"react\";\r\n\r\n/**\r\n *\r\n * @param {object} props\r\n * @param {boolean} props.isOpen\r\n * @param {function} props.setOpen\r\n * @param {React.RefObject} props.ref\r\n * @param {boolean | undefined} [disallow] - Optional boolean to disallow click away in certain circumstances\r\n * @returns {React.RefObject}\r\n */\r\nexport default function useClickAway(props) {\r\n const { isOpen, setOpen, ref, disallow } = props;\r\n\r\n const fallbackRef = useRef();\r\n const dropdownRef = ref || fallbackRef;\r\n const buttonRef = props.buttonRef || fallbackRef;\r\n\r\n // if the click originated inside, don't close it when the \"click\" event\r\n // happens outside\r\n const [clickStartedInside, setClickStartedInside] = useState(false);\r\n\r\n const [moveFocus, setMoveFocus] = useState(true);\r\n\r\n useEffect(() => {\r\n if (disallow) {\r\n return;\r\n }\r\n\r\n if (isOpen) {\r\n const handleClickAway = (e) => {\r\n if (\r\n !isOrContainsNode(dropdownRef.current, e.target) &&\r\n !clickStartedInside\r\n ) {\r\n setOpen(false);\r\n }\r\n\r\n setClickStartedInside(false); // reset\r\n };\r\n\r\n const handleKeydown = (e) => {\r\n if (e.key === \"Esc\" || e.key === \"Escape\") {\r\n setOpen(false);\r\n\r\n if (moveFocus) {\r\n buttonRef.current.focus();\r\n }\r\n }\r\n };\r\n\r\n const handleMouseDown = (e) => {\r\n if (isOrContainsNode(dropdownRef.current, e.target)) {\r\n setClickStartedInside(true);\r\n }\r\n };\r\n\r\n const handleFocusLoss = (e) => {\r\n setMoveFocus(isOrContainsNode(dropdownRef.current, e.target));\r\n };\r\n\r\n document.addEventListener(\"click\", handleClickAway, true);\r\n document.addEventListener(\"keydown\", handleKeydown);\r\n document.addEventListener(\"mousedown\", handleMouseDown);\r\n document.addEventListener(\"focusin\", handleFocusLoss);\r\n\r\n return () => {\r\n document.removeEventListener(\"click\", handleClickAway, true);\r\n document.removeEventListener(\"keydown\", handleKeydown);\r\n document.removeEventListener(\"mousedown\", handleMouseDown);\r\n document.removeEventListener(\"focusin\", handleFocusLoss);\r\n };\r\n }\r\n }, [\r\n clickStartedInside,\r\n dropdownRef,\r\n isOpen,\r\n setOpen,\r\n buttonRef,\r\n moveFocus,\r\n disallow,\r\n ]);\r\n\r\n return dropdownRef;\r\n}\r\n\r\n/* https://github.com/downshift-js/downshift/blob/046e4abf4468fead3bf3adadb1352279532345ed/src/utils.js#L41-L48*/\r\n/**\r\n * @param {HTMLElement} parent the parent node\r\n * @param {HTMLElement} child the child node\r\n * @return {Boolean} whether the parent is the child or the child is in the parent\r\n */\r\nfunction isOrContainsNode(parent, child) {\r\n return (\r\n !parent || parent === child || (parent.contains && parent.contains(child))\r\n );\r\n}\r\n","import { useState, useEffect } from \"react\";\r\n\r\n/**\r\n * Callback to run on match change\r\n *\r\n * @callback matchChangeCallback\r\n * @param {boolean} isMatch - boolean for if media condition is currently matched\r\n */\r\n\r\n/**\r\n * useMatchMedia\r\n *\r\n * usage:\r\n * const matches = useMatchMedia(\"(min-width: 900px)\")\r\n * matches will be true or false\r\n *\r\n * the format of the string is important, eg, needs ()'s\r\n * see https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia\r\n * @param {String} media : media query to match\r\n * @param {matchChangeCallback} [callback] - Optional callback to run on match change\r\n * @return {Boolean} true if it matches, false if it doesn't\r\n */\r\nexport default function useMatchMedia(media, matchChangeCallback) {\r\n const [matches, setMatches] = useState(() => {\r\n return window.matchMedia(media).matches;\r\n });\r\n\r\n // define mediaQueryList inside effect because of server rendering/hydration\r\n // https://github.com/gatsbyjs/gatsby/issues/14601\r\n // we need to render again when the client loads\r\n useEffect(() => {\r\n const mediaQueryList = window.matchMedia(media);\r\n\r\n const handleMatchChange = (event) => {\r\n setMatches(event.matches);\r\n\r\n if (matchChangeCallback) matchChangeCallback(event.matches);\r\n };\r\n\r\n mediaQueryList.addListener(handleMatchChange);\r\n return () => mediaQueryList.removeListener(handleMatchChange);\r\n }, [media]);\r\n\r\n return matches;\r\n}\r\n","import React from \"react\";\r\nimport { string, node, bool, number } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n title: string.isRequired,\r\n children: node,\r\n isOpen: bool,\r\n breakpoint: number,\r\n is5050: bool,\r\n description: node,\r\n};\r\n\r\nconst Accordion = (props) => {\r\n const { title, children, isOpen, breakpoint, is5050, description } = props;\r\n\r\n const plusIcon = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n
\r\n \r\n {title}\r\n {plusIcon}\r\n \r\n {description && (\r\n
{description}
\r\n )}\r\n
\r\n
\r\n {description && (\r\n
{description}
\r\n )}\r\n {children}\r\n
\r\n \r\n );\r\n};\r\n\r\nAccordion.propTypes = propTypes;\r\nexport default Accordion;\r\n","import initAccordion from \"../../common/initAccordions.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-accordion\").forEach((el, i) => {\r\n if (!el.parentElement.classList.contains(\"js-accordion-group\")) {\r\n initAccordion(el, i);\r\n }\r\n });\r\n};\r\n","import NavMenu from \"../../common/NavMenu.js\";\r\n\r\n// props: {\r\n// animationDelay: number\r\n// closed: boolean\r\n// direction: string (horizontal or vertical)\r\n// menuButton: string (class or id selector)\r\n// menuContainer: string (class or id selector)\r\n// menuLink: string (class selector)\r\n// onOpen: function (callback when the menu opens)\r\n// parent: node element\r\n// }\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-accordion-categories\").forEach((el, i) => {\r\n const accordionCategories = new NavMenu({\r\n animationDelay: 250,\r\n closed: true,\r\n direction: \"vertical\",\r\n menuButton: \".js-accordion-categories-toggle\",\r\n menuContainer: \".js-accordion-categories-links\",\r\n menuLink: \"a\",\r\n parent: el,\r\n });\r\n });\r\n};\r\n","import initAccordion from \"../../common/initAccordions.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-accordion-group\").forEach((el) => {\r\n let accordions = [];\r\n let activeIndex = 0;\r\n const onlyOne = el.dataset.onlyOne === \"true\" || false;\r\n\r\n el.querySelectorAll(\".js-accordion\").forEach((elAccordion, index) => {\r\n accordions.push(initAccordion(elAccordion, index));\r\n\r\n if (onlyOne) {\r\n elAccordion\r\n .querySelector(\".js-accordion-link\")\r\n .addEventListener(\"click\", (e) => {\r\n activeIndex = index;\r\n\r\n // close other accordions\r\n accordions.forEach((accordion, i) => {\r\n if (i !== activeIndex) {\r\n accordion.toggleContent(false);\r\n }\r\n });\r\n });\r\n }\r\n });\r\n });\r\n};\r\n","export default () => {\r\n document.querySelectorAll(\".js-alert-banner\").forEach((el, i) => {\r\n const closeButton = el.querySelector(\".js-alert-banner__close\");\r\n //Note: sessionStorage would expire when page session ends if we want to go that route\r\n const localStorage = window.localStorage;\r\n const id = el.getAttribute(\"id\");\r\n\r\n // the id is required so we know which alert to show.\r\n if (!id) {\r\n return;\r\n }\r\n\r\n // has this alert been hidden?\r\n if (localStorage.getItem(id)) {\r\n // remove the alert\r\n el.remove();\r\n } else {\r\n // show the alert\r\n el.classList.add(\"alert-banner--visible\");\r\n el.style.position = \"relative\"; // prevents the transition back to absolute\r\n }\r\n\r\n closeButton.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n localStorage.setItem(id, true);\r\n el.classList.remove(\"alert-banner--visible\");\r\n\r\n el.addEventListener(\"transitionend\", (event) => {\r\n if (event.propertyName === \"opacity\") {\r\n el.remove();\r\n }\r\n });\r\n });\r\n });\r\n};\r\n","// *****\r\n// Sitecore link types are: internal, external, anchor, media, mailto, javascript\r\n// type mailto links already have the `mailto:` string prepended\r\n// *****\r\n\r\nimport React from \"react\";\r\nimport { string, oneOf, bool, func, object } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport Icon from \"../Icon/Icon.jsx\";\r\n\r\nconst propTypes = {\r\n href: string.isRequired,\r\n type: oneOf([\r\n \"\",\r\n \"internal\",\r\n \"external\",\r\n \"anchor\",\r\n \"mailto\",\r\n \"media\",\r\n \"download\",\r\n \"arrow\",\r\n ]),\r\n text: string,\r\n title: string,\r\n className: string,\r\n reversed: bool,\r\n onKeyDown: func,\r\n lang: string,\r\n gtmElementLabel: string,\r\n focusRef: object,\r\n};\r\n\r\nconst ArrowLink = (props) => {\r\n const {\r\n href,\r\n type,\r\n text,\r\n title,\r\n className,\r\n lang,\r\n reversed = false,\r\n gtmElementLabel,\r\n focusRef,\r\n } = props;\r\n\r\n let download = false;\r\n let iconName = \"\";\r\n\r\n switch (type) {\r\n case \"download\":\r\n case \"media\":\r\n download = true;\r\n iconName = \"download\";\r\n break;\r\n case \"external\":\r\n iconName = \"external\";\r\n break;\r\n case \"anchor\":\r\n case \"arrow\":\r\n iconName = reversed ? \"arrow-left\" : \"arrow-right\";\r\n break;\r\n default:\r\n }\r\n\r\n const classModifier = type ? `arrow-link--${type}` : \"\";\r\n\r\n return (\r\n // eslint-disable-next-line react/jsx-no-target-blank\r\n \r\n {reversed && iconName && }\r\n {text}\r\n {!reversed && iconName && }\r\n \r\n );\r\n};\r\nArrowLink.propTypes = propTypes;\r\nexport { propTypes as arrowLinkPropTypes };\r\nexport default ArrowLink;\r\n","export default () => {\r\n document.querySelectorAll(\".js-article-metadata\").forEach((parentEl) => {\r\n const initReadTime = () => {\r\n const readtimeEl = parentEl.querySelector(\".js-am-read-time\");\r\n\r\n if (!readtimeEl) {\r\n return false;\r\n }\r\n\r\n const wordsPerMinute = 225;\r\n let readTime = 0;\r\n\r\n document.querySelectorAll(\".js-rich-text\").forEach((el) => {\r\n const text = el.innerText;\r\n const wordCount = text.trim().split(/\\s+/).length;\r\n readTime = readTime + Math.ceil(wordCount / wordsPerMinute);\r\n });\r\n\r\n if (readTime > 0) {\r\n readtimeEl.innerText = readTime;\r\n } else {\r\n readtimeEl.parentNode.remove();\r\n }\r\n };\r\n\r\n initReadTime();\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { string, shape, array, object, oneOf, bool } from \"prop-types\";\r\n\r\nimport ImageElement from \"../ImageElement/ImageElement.jsx\";\r\nimport ShareBarMount from \"../ShareBar/ShareBarMount.jsx\";\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\n\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n image: shape({\r\n alt: string,\r\n sources: array,\r\n }),\r\n title: string.isRequired,\r\n body: string,\r\n contentType: string,\r\n authors: array,\r\n cta: shape({\r\n href: string.isRequired,\r\n text: string,\r\n type: oneOf([\"\", \"external\", \"download\", \"anchor\", \"arrow\"]),\r\n title: string,\r\n }),\r\n location: string,\r\n shareData: object,\r\n fullWidth: bool,\r\n darkTheme: bool,\r\n focusRef: object,\r\n date: string,\r\n updatedLabel: string,\r\n lang: string,\r\n gtmElementBaseLabel: string,\r\n};\r\n\r\nconst articlePromo = (props) => {\r\n const {\r\n title,\r\n body,\r\n contentType,\r\n cta,\r\n authors,\r\n location,\r\n shareData,\r\n fullWidth,\r\n darkTheme,\r\n focusRef,\r\n date,\r\n updatedLabel,\r\n lang,\r\n gtmElementBaseLabel,\r\n } = props;\r\n\r\n const image = props.image ? processImage(props.image) : null;\r\n\r\n function processImage(image) {\r\n return {\r\n alt: image.alt,\r\n srcSet: image.srcSet\r\n ? image.srcSet\r\n : image.sources\r\n ? image.sources.join(\", \")\r\n : null,\r\n sizes: image.sizes || null,\r\n width: image.width || null,\r\n height: image.height || null,\r\n };\r\n }\r\n\r\n return (\r\n \r\n {image && image.srcSet && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n {contentType && (\r\n
{contentType}
\r\n )}\r\n

\r\n \r\n

\r\n
\r\n
\r\n {body && (\r\n \r\n )}\r\n {authors && authors.length > 0 && (\r\n
\r\n {authors.length > 0 && (\r\n \r\n {authors.length > 2\r\n ? `${authors.slice(0, -1).join(\", \")}, and ${\r\n authors[authors.length - 1]\r\n }`\r\n : authors.join(\" and \")}\r\n \r\n )}\r\n {location && (\r\n {location}\r\n )}\r\n
\r\n )}\r\n {date && (\r\n
\r\n {updatedLabel && (\r\n \r\n {updatedLabel}\r\n \r\n )}\r\n {date}\r\n
\r\n )}\r\n {shareData && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\narticlePromo.propTypes = propTypes;\r\nexport default articlePromo;\r\n","import makeClickable from \"../../common/makeClickable.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-assets-card\").forEach(makeClickable);\r\n};\r\n","// code for this was borrowed from https://css-tricks.com/lets-create-a-custom-audio-player/\r\n// Jonathan - Nov 2021\r\n\r\nconst formatTime = (rawSeconds) => {\r\n const minutes = Math.floor(rawSeconds / 60);\r\n const seconds = Math.floor(rawSeconds % 60);\r\n const returnedSeconds = seconds < 10 ? `0${seconds}` : `${seconds}`;\r\n return `${minutes}:${returnedSeconds}`;\r\n};\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-audio-player\").forEach((el) => {\r\n const audioButton = el.querySelector(\".js-audio-player-button\");\r\n const audioElement = el.querySelector(\".js-audio-player-source\");\r\n const audioPause = \"audio-is-paused\";\r\n const audioPlay = \"audio-is-playing\";\r\n\r\n // optional seek progress bar\r\n const audioSeek = el.querySelector(\".js-audio-player__seek\");\r\n const audioDuration = el.querySelector(\".js-audio-player__duration\");\r\n const audioCurrentTime = el.querySelector(\".js-audio-player__current-time\");\r\n const audioSlider = el.querySelector(\".js-audio-player__range\");\r\n\r\n let rAF = null;\r\n\r\n init();\r\n\r\n function init() {\r\n setTimeout(() => {\r\n audioElement.paused\r\n ? el.classList.add(audioPause)\r\n : el.classList.add(audioPlay);\r\n }, 10);\r\n\r\n if (audioElement.readyState > 0) {\r\n if (audioSeek) {\r\n initSeekSlider();\r\n }\r\n } else {\r\n if (audioSeek) {\r\n audioElement.addEventListener(\"loadedmetadata\", initSeekSlider);\r\n }\r\n }\r\n\r\n bindEvents();\r\n }\r\n\r\n function initSeekSlider() {\r\n audioElement.removeEventListener(\"loadedmetadata\", initSeekSlider);\r\n displayDuration();\r\n setSliderMax();\r\n displayBufferedAmount();\r\n\r\n // As the audio player\r\n audioElement.addEventListener(\"progress\", displayBufferedAmount);\r\n }\r\n\r\n function bindEvents() {\r\n audioButton.addEventListener(\"click\", (e) => {\r\n if (audioElement.paused) {\r\n play();\r\n } else {\r\n pause();\r\n }\r\n });\r\n\r\n audioElement.addEventListener(\"ended\", pause);\r\n audioElement.addEventListener(\"play\", play);\r\n audioElement.addEventListener(\"pause\", pause);\r\n\r\n if (audioSeek) {\r\n // clicking on the seeker\r\n audioSlider.addEventListener(\"input\", () => {\r\n setCurrentTime();\r\n showRangeProgress();\r\n if (!audioElement.paused) {\r\n cancelAnimationFrame(rAF);\r\n }\r\n });\r\n // sliding the seeker\r\n audioSlider.addEventListener(\"change\", () => {\r\n audioElement.currentTime = audioSlider.value;\r\n if (!audioElement.paused) {\r\n requestAnimationFrame(whilePlaying);\r\n }\r\n });\r\n }\r\n }\r\n\r\n function play() {\r\n el.classList.remove(audioPause);\r\n el.classList.add(audioPlay);\r\n audioElement.play();\r\n\r\n if (audioSeek) {\r\n window.requestAnimationFrame(whilePlaying);\r\n }\r\n }\r\n\r\n function pause() {\r\n el.classList.remove(audioPlay);\r\n el.classList.add(audioPause);\r\n audioElement.pause();\r\n\r\n if (audioSeek) {\r\n window.cancelAnimationFrame(rAF);\r\n }\r\n }\r\n\r\n function displayDuration() {\r\n audioDuration.textContent = formatTime(audioElement.duration);\r\n }\r\n\r\n function displayBufferedAmount() {\r\n // safari doesn't seem to buffer\r\n // .end() cannot except 0\r\n if (audioElement.buffered.length === 0) {\r\n return;\r\n }\r\n const bufferedAmount = Math.floor(\r\n audioElement.buffered.end(audioElement.buffered.length - 1),\r\n );\r\n\r\n el.style.setProperty(\r\n \"--buffered-width\",\r\n `${(bufferedAmount / audioSlider.max) * 100}%`,\r\n );\r\n }\r\n\r\n function whilePlaying() {\r\n audioSlider.value = Math.floor(audioElement.currentTime);\r\n setCurrentTime();\r\n showRangeProgress();\r\n rAF = requestAnimationFrame(whilePlaying);\r\n }\r\n\r\n function setSliderMax() {\r\n audioSlider.max = Math.floor(audioElement.duration);\r\n }\r\n\r\n function setCurrentTime() {\r\n audioCurrentTime.textContent = formatTime(audioSlider.value);\r\n }\r\n\r\n function showRangeProgress() {\r\n el.style.setProperty(\r\n \"--seek-before-width\",\r\n (audioSlider.value / audioSlider.max) * 100 + \"%\",\r\n );\r\n }\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { string, bool, object, oneOf } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\n\r\nconst propTypes = {\r\n src: string.isRequired,\r\n loop: bool,\r\n title: string,\r\n autoplay: bool,\r\n hasAudio: oneOf([\"True\", \"False\", \"\"]), // Sitecore bool values\r\n poster: string,\r\n className: string,\r\n caption: string,\r\n credit: string,\r\n transcriptLink: object,\r\n darkButton: bool,\r\n smallButton: bool,\r\n};\r\n\r\nconst BackgroundVideo = (props) => {\r\n const {\r\n src,\r\n loop,\r\n poster,\r\n className,\r\n title,\r\n autoplay,\r\n hasAudio = \"False\",\r\n transcriptLink,\r\n caption,\r\n credit,\r\n darkButton,\r\n smallButton,\r\n } = props;\r\n\r\n const reducedMotion = window.matchMedia(\r\n \"(prefers-reduced-motion: reduce)\",\r\n ).matches;\r\n\r\n const showCaption = title || caption || credit;\r\n const showDescription = transcriptLink || showCaption;\r\n\r\n const renderButton = () => (\r\n \r\n \r\n Play or Pause the Video\r\n \r\n \r\n \r\n );\r\n\r\n const renderVideo = () => (\r\n // eslint-disable-next-line jsx-a11y/media-has-caption\r\n \r\n );\r\n\r\n return (\r\n \r\n {!showDescription && renderButton()}\r\n {!showDescription && renderVideo()}\r\n {showDescription && (\r\n
\r\n
\r\n {renderButton()}\r\n {renderVideo()}\r\n
\r\n
\r\n {showCaption && (\r\n
\r\n {title && (\r\n

\r\n {title}\r\n

\r\n )}\r\n {caption && (\r\n {caption}\r\n )}\r\n {credit && (\r\n {credit}\r\n )}\r\n
\r\n )}\r\n {transcriptLink && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\nBackgroundVideo.propTypes = propTypes;\r\nexport default BackgroundVideo;\r\n","const pausedByObserver = new WeakMap();\r\n\r\nconst observer = new IntersectionObserver(\r\n /**\r\n * If video is playing when it leaves the viewport, pause it.\r\n * If video then re-enters the viewport, play it.\r\n */\r\n (entries) => {\r\n entries.forEach((entry) => {\r\n const video = entry.target;\r\n\r\n if (entry.isIntersecting) {\r\n // Video is entering the viewport - play it if it was paused\r\n // by the observer.\r\n if (pausedByObserver.get(video)) {\r\n video.play();\r\n pausedByObserver.set(video, false);\r\n }\r\n } else {\r\n // Video is leaving the viewport - pause it and track that it was\r\n // paused by the observer.\r\n if (!video.paused && document.pictureInPictureElement !== video) {\r\n video.pause();\r\n pausedByObserver.set(video, true);\r\n }\r\n }\r\n });\r\n },\r\n { threshold: 0.5 },\r\n);\r\n\r\nexport default (selector = \".js-background-video\") => {\r\n return document.querySelectorAll(selector).forEach((el) => {\r\n const buttonEl = el.querySelector(\".js-background-video-button\");\r\n const videoEl = el.querySelector(\".js-background-video-media\");\r\n\r\n const videoPause = \"video-is-paused\";\r\n const videoPlay = \"video-is-playing\";\r\n const videoPoster = \"video-has-poster\";\r\n const autoplay = videoEl.hasAttribute(\"autoplay\");\r\n const hasAudio = videoEl.dataset.hasAudio === \"True\"; // C# bool is True not true\r\n const poster = videoEl.hasAttribute(\"poster\");\r\n\r\n observer.observe(videoEl);\r\n\r\n let untouched = true;\r\n\r\n if (autoplay && hasAudio) {\r\n // let the native controls do their thing.\r\n videoEl.setAttribute(\"controls\", \"true\");\r\n return;\r\n }\r\n\r\n if (autoplay) {\r\n buttonEl.classList.add(videoPlay);\r\n buttonEl.classList.remove(videoPause);\r\n play();\r\n } else {\r\n buttonEl.classList.add(videoPause);\r\n buttonEl.classList.remove(videoPlay);\r\n }\r\n\r\n if (poster && !autoplay) {\r\n buttonEl.classList.add(videoPoster);\r\n } else {\r\n buttonEl.classList.remove(videoPoster);\r\n }\r\n\r\n bindEvents();\r\n\r\n function bindEvents() {\r\n const handleClick = (e) => {\r\n e.preventDefault();\r\n if (videoEl.paused) {\r\n play();\r\n\r\n if (hasAudio) {\r\n videoEl.removeEventListener(\"click\", handleClick);\r\n }\r\n } else {\r\n pause();\r\n }\r\n };\r\n\r\n videoEl.addEventListener(\"click\", handleClick);\r\n\r\n buttonEl.addEventListener(\"click\", (e) => {\r\n if (videoEl.paused) {\r\n play();\r\n } else {\r\n pause();\r\n }\r\n });\r\n }\r\n\r\n function play() {\r\n el.classList.add(\"background-video--video-started\");\r\n buttonEl.classList.remove(videoPause);\r\n buttonEl.classList.add(videoPlay);\r\n\r\n // first time played\r\n if (untouched) {\r\n untouched = false;\r\n buttonEl.classList.remove(videoPoster);\r\n\r\n if (hasAudio) {\r\n videoEl.setAttribute(\"controls\", \"true\");\r\n }\r\n }\r\n\r\n if (videoEl.paused) {\r\n videoEl.play();\r\n }\r\n }\r\n\r\n function pause() {\r\n buttonEl.classList.remove(videoPlay);\r\n buttonEl.classList.add(videoPause);\r\n videoEl.pause();\r\n }\r\n });\r\n};\r\n","export default () => {\r\n document.querySelectorAll(\".js-breadcrumb\").forEach((el) => {\r\n // check if secondary nav exists on the pages\r\n // it also exists within the breadcrumb so check for multiples\r\n if (document.querySelectorAll(\".js-secondary-nav\").length > 1) {\r\n el.classList.add(\"breadcrumb--show-nav\");\r\n }\r\n });\r\n};\r\n","import React, { useEffect, useRef } from \"react\";\r\n\r\nimport { string, array, arrayOf, shape } from \"prop-types\";\r\n\r\nimport initAccordion from \"../../../common/initAccordions.js\";\r\n\r\nimport Accordion from \"../../Accordion/Accordion.jsx\";\r\n\r\nconst propTypes = {\r\n title: string,\r\n sectors: array,\r\n description: string,\r\n bodyContent: arrayOf(\r\n shape({ accordionTitle: string, accordionText: string }),\r\n ),\r\n buttonLink: shape({ text: string, href: string }),\r\n};\r\n\r\nconst BackOfCard = (props) => {\r\n const { sectors, title, description, bodyContent, buttonLink } = props;\r\n\r\n const containerRef = useRef();\r\n\r\n // Init Accordions\r\n useEffect(() => {\r\n if (bodyContent) {\r\n [...containerRef.current.querySelectorAll(\".js-accordion\")].forEach(\r\n (el) => {\r\n initAccordion(el);\r\n },\r\n );\r\n }\r\n }, [bodyContent]);\r\n\r\n return (\r\n
\r\n {sectors && (\r\n
\r\n {sectors.map((sector) => (\r\n \r\n {sector}\r\n \r\n ))}\r\n
\r\n )}\r\n {title &&

{title}

}\r\n {description && (\r\n \r\n )}\r\n
\r\n {bodyContent?.map((c, idx) => (\r\n \r\n
\r\n \r\n ))}\r\n {buttonLink && (\r\n \r\n {buttonLink?.text}\r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nBackOfCard.propTypes = propTypes;\r\n\r\nexport default BackOfCard;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\n\r\nimport { string } from \"prop-types\";\r\nimport { itemsShape, filtersShape } from \"./prop-types.js\";\r\nimport {\r\n ALL,\r\n ITEMS_TO_SHOW,\r\n SLIDE_SPEED,\r\n ACTIVE,\r\n PREV,\r\n NEXT,\r\n} from \"./constants.js\";\r\nimport useMatchMedia from \"../../common/useMatchMedia.js\";\r\n\r\nimport SliderCard from \"./SliderCard/SliderCard.jsx\";\r\nimport BackOfCard from \"./BackOfCard/BackOfCard.jsx\";\r\nimport SliderNavigation from \"./CardSliderNavigation/CardSliderNavigation.jsx\";\r\nimport SliderFilter from \"./CardSliderFilters/CardSliderFilters.jsx\";\r\nimport Icon from \"../Icon/Icon.jsx\";\r\n\r\nimport Slider from \"react-slick\";\r\n\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n title: string,\r\n items: itemsShape,\r\n filters: filtersShape,\r\n};\r\n\r\nconst CardSliderApp = (props) => {\r\n const { items, filters, title } = props;\r\n\r\n const parentRef = useRef();\r\n const sliderRef = useRef();\r\n const backSliderRef = useRef();\r\n\r\n const [filteredItems, setFilteredItems] = useState(items || []);\r\n const [activeFilter, setActiveFilter] = useState(ALL);\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n const [isFlipped, setIsFlipped] = useState(false);\r\n const [isInitialRender, setIsInitialRender] = useState(true);\r\n\r\n // matches _breakpoints.scss\r\n const isDesktop = useMatchMedia(\"(min-width: 681px)\");\r\n\r\n useEffect(() => {\r\n if (activeFilter === ALL) {\r\n setFilteredItems(items);\r\n } else {\r\n setFilteredItems(\r\n items.filter((item) => item.sectors.includes(activeFilter)),\r\n );\r\n }\r\n }, [items, activeFilter]);\r\n\r\n // Reset slider to first slide after filter change\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setActiveIndex(0);\r\n sliderRef?.current.slickGoTo(0);\r\n }, SLIDE_SPEED + 50);\r\n }, [filteredItems]);\r\n\r\n useEffect(() => {\r\n if (isFlipped) {\r\n const handleKeydown = (e) => {\r\n if (e.key === \"Esc\" || e.key === \"Escape\") {\r\n handleFlipCard(false);\r\n }\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleKeydown);\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleKeydown);\r\n };\r\n }\r\n }, [isFlipped]);\r\n\r\n const handleFilterChange = (filter) => {\r\n setActiveFilter(filter.text);\r\n };\r\n\r\n const handleClick = (direction) => {\r\n if (direction === PREV) {\r\n sliderRef.current.slickPrev();\r\n } else {\r\n sliderRef.current.slickNext();\r\n }\r\n };\r\n\r\n const handleFlipCard = (isOpen = true) => {\r\n setIsFlipped(isOpen);\r\n\r\n parentRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"end\",\r\n inline: \"nearest\",\r\n });\r\n\r\n if (!isDesktop) {\r\n // On mobile, back of card will take over screen and prevent user from scrolling\r\n document.body.classList.toggle(\"card-slider-open\", isOpen);\r\n }\r\n };\r\n\r\n const handleClickPrev = () => {\r\n if (isFlipped) {\r\n backSliderRef.current.slickPrev();\r\n setTimeout(() => sliderRef.current.slickPrev(), SLIDE_SPEED);\r\n } else {\r\n sliderRef.current.slickPrev();\r\n }\r\n };\r\n\r\n const handleClickNext = () => {\r\n if (isFlipped) {\r\n backSliderRef.current.slickNext();\r\n setTimeout(() => sliderRef.current.slickNext(), SLIDE_SPEED);\r\n } else {\r\n sliderRef.current.slickNext();\r\n }\r\n };\r\n\r\n const getCardPosition = (idx) => {\r\n if (filteredItems.length === 1) return ACTIVE;\r\n\r\n const prevItemIsLast =\r\n activeIndex === 0 && idx === filteredItems.length - 1;\r\n const nextItemIsFirst =\r\n activeIndex === filteredItems.length - 1 && idx === 0;\r\n\r\n if (prevItemIsLast || idx === activeIndex - 1) {\r\n return PREV;\r\n } else if (nextItemIsFirst || idx === activeIndex + 1) {\r\n return NEXT;\r\n } else if (idx === activeIndex) {\r\n return ACTIVE;\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n const settings = {\r\n arrows: false,\r\n centerMode: filteredItems.length > ITEMS_TO_SHOW,\r\n centerPadding: \"60px\",\r\n infinite: filteredItems.length > ITEMS_TO_SHOW,\r\n initialSlide: 0,\r\n slidesToShow: ITEMS_TO_SHOW,\r\n speed: SLIDE_SPEED,\r\n swipeToSlide: true,\r\n variableWidth: true,\r\n focusOnSelect: false,\r\n beforeChange: (current, next) => {\r\n if (filteredItems.length > ITEMS_TO_SHOW) {\r\n setActiveIndex(next);\r\n }\r\n },\r\n afterChange: (current) => {\r\n if (current !== 0) {\r\n setIsInitialRender(false);\r\n }\r\n if (!isFlipped && !isInitialRender) {\r\n parentRef.current\r\n .querySelector(\".slick-current .slider-card.active\")\r\n .focus();\r\n }\r\n },\r\n };\r\n\r\n return (\r\n \r\n {title &&

{title}

}\r\n \r\n
\r\n {filteredItems && filteredItems.length > 0 && (\r\n \r\n {filteredItems.map((item, idx) => {\r\n const position = getCardPosition(idx);\r\n const isActive = idx === activeIndex;\r\n\r\n return (\r\n \r\n );\r\n })}\r\n \r\n )}\r\n
\r\n handleFlipCard(false)}\r\n aria-label=\"Close card\"\r\n >\r\n \r\n \r\n {filteredItems && filteredItems.length > 0 && isFlipped && (\r\n \r\n {filteredItems.map((item, idx) => (\r\n \r\n ))}\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nCardSliderApp.propTypes = propTypes;\r\n\r\nexport default CardSliderApp;\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\nimport { string, func } from \"prop-types\";\r\nimport { filtersShape } from \"../prop-types.js\";\r\n\r\nimport useMatchMedia from \"../../../../../Common/js/common/useMatchMedia.js\";\r\n\r\nimport SelectInput from \"../../Form/SelectInput.jsx\";\r\n\r\nimport cx from \"classnames\";\r\nimport * as R from \"ramda\";\r\n\r\nconst propTypes = {\r\n filters: filtersShape,\r\n activeFilter: string,\r\n onChange: func,\r\n};\r\n\r\nconst CardSliderFilters = (props) => {\r\n const { filters, activeFilter, onChange } = props;\r\n\r\n const [value, setValue] = useState(activeFilter);\r\n\r\n // matches _breakpoints.scss\r\n const isDesktop = useMatchMedia(\"(min-width: 681px)\");\r\n\r\n useEffect(() => {\r\n const selectedFilter = R.find(R.propEq(\"text\", activeFilter))(filters);\r\n setValue(selectedFilter.value);\r\n }, [activeFilter, filters]);\r\n\r\n const handleFilterSelect = (e) => {\r\n const value = e.target.value;\r\n\r\n const selectedFilter = R.find(R.propEq(\"value\", value))(filters);\r\n onChange(selectedFilter);\r\n };\r\n\r\n return (\r\n
\r\n {isDesktop ? (\r\n filters.map((filter, idx) => (\r\n onChange(filter)}\r\n >\r\n {filter.text}\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nCardSliderFilters.propTypes = propTypes;\r\n\r\nexport default CardSliderFilters;\r\n","import React from \"react\";\r\n\r\nimport { number, func } from \"prop-types\";\r\n\r\nimport Icon from \"../../Icon/Icon.jsx\";\r\n\r\nconst propTypes = {\r\n currentPage: number,\r\n totalPages: number,\r\n onClickPrev: func,\r\n onClickNext: func,\r\n};\r\n\r\nconst SliderNavigation = (props) => {\r\n const { currentPage, totalPages, onClickPrev, onClickNext } = props;\r\n\r\n const formatPagination = () => {\r\n const current =\r\n currentPage !== totalPages\r\n ? (currentPage + 1).toString().padStart(2, \"0\")\r\n : currentPage + 1;\r\n\r\n const total = totalPages - 1 < 9 ? `0${totalPages}` : totalPages;\r\n\r\n return `${current} / ${total}`;\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n Previous\r\n \r\n \r\n {formatPagination()}\r\n \r\n \r\n Next\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nSliderNavigation.propTypes = propTypes;\r\n\r\nexport default SliderNavigation;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\n\r\nimport { string, bool, func } from \"prop-types\";\r\nimport { itemShape } from \"../prop-types.js\";\r\n\r\nimport gsap from \"gsap\";\r\nimport cx from \"classnames\";\r\nimport * as R from \"ramda\";\r\n\r\nconst propTypes = {\r\n item: itemShape,\r\n position: string,\r\n activeFilter: string,\r\n isActive: bool,\r\n isFlipped: bool,\r\n onClickCard: func,\r\n onFlipCard: func,\r\n};\r\n\r\nconst SliderCard = (props) => {\r\n const {\r\n item,\r\n position,\r\n activeFilter,\r\n isActive,\r\n isFlipped,\r\n onClickCard,\r\n onFlipCard,\r\n } = props;\r\n\r\n const [tabIndex, setTabIndex] = useState(-1);\r\n\r\n const buttonRef = useRef();\r\n\r\n useEffect(() => {\r\n if (isActive) {\r\n const parent = buttonRef.current.closest(\".slick-slide\");\r\n if (parent.classList.contains(\"slick-current\")) {\r\n setTabIndex(0);\r\n }\r\n } else {\r\n setTabIndex(-1);\r\n }\r\n }, [isActive]);\r\n\r\n const tiltCard = (e) => {\r\n const card = e.currentTarget;\r\n const box = card.getBoundingClientRect();\r\n const centerPosition = {\r\n x: box.left + box.width / 2,\r\n y: box.top + box.height / 2,\r\n };\r\n let angle = Math.atan2(e.pageX - centerPosition.x, 0) * (25 / Math.PI);\r\n gsap.set(e.currentTarget, {\r\n \"--card-rotation-offset\": `${angle}deg`,\r\n });\r\n };\r\n\r\n const resetTilt = (e) => {\r\n gsap.set(e.currentTarget, { \"--card-rotation-offset\": \"0deg\" });\r\n };\r\n\r\n const activeProps = {\r\n onClick: () => onFlipCard(true),\r\n onPointerMove: tiltCard,\r\n onMouseLeave: resetTilt,\r\n };\r\n\r\n const defaultProps = {\r\n onClick: () => onClickCard(position),\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n {item.title &&

{item.title}

}\r\n {!R.isEmpty(item.sectors) && (\r\n
\r\n {item.sectors.map((sector) => (\r\n \r\n {sector}\r\n \r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nSliderCard.propTypes = propTypes;\r\n\r\nexport default SliderCard;\r\n","export const ALL = \"All\";\r\n\r\nexport const ITEMS_TO_SHOW = 1;\r\nexport const SLIDE_SPEED = 500;\r\n\r\nexport const PREV = \"prev\";\r\nexport const NEXT = \"next\";\r\nexport const ACTIVE = \"active\";\r\n","import { string, shape, array, arrayOf } from \"prop-types\";\r\n\r\nexport const itemShape = shape({\r\n title: string,\r\n sectors: array,\r\n description: string,\r\n bodyContent: arrayOf(\r\n shape({ accordionTitle: string, accordionText: string }),\r\n ),\r\n buttonLink: shape({ text: string, href: string }),\r\n});\r\n\r\nexport const itemsShape = arrayOf(itemShape);\r\n\r\nexport const filterShape = shape({ value: string, label: string });\r\n\r\nexport const filtersShape = arrayOf(filterShape);\r\n\r\nexport const dataShape = shape({\r\n title: string,\r\n filters: filtersShape,\r\n items: itemsShape,\r\n});\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport CardSliderApp from \"./CardSliderApp.jsx\";\r\n\r\nexport default function renderCardSlider() {\r\n document.querySelectorAll(\".js-card-slider-mount\").forEach((mount) => {\r\n const data = JSON.parse(mount.getAttribute(\"data-model\"));\r\n\r\n ReactDom.render(, mount);\r\n });\r\n}\r\n","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport { arrayOf, string, shape, number } from \"prop-types\";\r\nimport throttle from \"lodash.throttle\";\r\nimport cx from \"classnames\";\r\n\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport inPageNavigation from \"../../common/inPageNavigation.js\";\r\n\r\nconst propTypes = {\r\n links: arrayOf(\r\n shape({\r\n index: number.isRequired,\r\n label: string.isRequired,\r\n href: string.isRequired,\r\n }),\r\n ).isRequired,\r\n label: string,\r\n};\r\n\r\nconst ChapterNavigation = (props) => {\r\n const { links, label } = props;\r\n\r\n const targets = useMemo(() => {\r\n return links.map((link) => document.querySelector(link.href));\r\n }, [links]);\r\n\r\n const navHelper = inPageNavigation();\r\n\r\n const [activeLinkIndex, setActiveLinkIndex] = useState(0);\r\n const [isScrolling, setIsScrolling] = useState(false);\r\n\r\n const handleLinkClick = (e, index) => {\r\n e.preventDefault();\r\n setIsScrolling(true);\r\n navHelper.scrollPageTo(targets[index]);\r\n\r\n setTimeout(() => {\r\n setActiveLinkIndex(index);\r\n setIsScrolling(false);\r\n }, 1000);\r\n };\r\n\r\n useEffect(() => {\r\n const throttleHandleScroll = throttle((event) => {\r\n if (isScrolling) {\r\n return;\r\n }\r\n\r\n const topOffset = window.innerHeight / 2 + 100;\r\n\r\n const index = [...targets].reduce((index, target) => {\r\n const rect = target.getBoundingClientRect();\r\n return rect.top < topOffset ? parseInt(target.dataset.index) : index;\r\n }, -1);\r\n\r\n if (index !== activeLinkIndex) {\r\n const hash = index >= 0 ? links[index].href : \"\";\r\n const url = window.location.hash\r\n ? window.location.href.replace(/#.*$/, hash)\r\n : window.location.href + hash;\r\n history.replaceState(\"\", document.title, url);\r\n event.preventDefault();\r\n setActiveLinkIndex(index);\r\n }\r\n }, 100);\r\n\r\n window.addEventListener(\"scroll\", throttleHandleScroll);\r\n\r\n return () => {\r\n window.removeEventListener(\"scroll\", throttleHandleScroll);\r\n };\r\n }, [activeLinkIndex, isScrolling, links, navHelper, targets]);\r\n\r\n const previousLink = activeLinkIndex > 0 ? links[activeLinkIndex - 1] : null;\r\n const nextLink =\r\n activeLinkIndex < links.length ? links[activeLinkIndex + 1] : null;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {links.map((link, i) => {\r\n return (\r\n activeLinkIndex + 1,\r\n })}\r\n >\r\n {i === activeLinkIndex + 1 && (\r\n {label}\r\n )}\r\n {link.label}\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n {!previousLink && (\r\n \r\n \r\n
\r\n )}\r\n {previousLink && (\r\n handleLinkClick(e, previousLink.index)}\r\n >\r\n \r\n \r\n )}\r\n {nextLink && (\r\n handleLinkClick(e, nextLink.index)}\r\n >\r\n \r\n \r\n )}\r\n {!nextLink && (\r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\nChapterNavigation.propTypes = propTypes;\r\nexport default ChapterNavigation;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\n\r\nimport ChapterNavigationApp from \"./ChapterNavigationApp.jsx\";\r\n\r\nexport default function renderChapterNavigation() {\r\n const anchors =\r\n Array.from(document.querySelectorAll(\".js-jump-nav-anchor\")) || [];\r\n\r\n if (anchors.length <= 0) {\r\n return;\r\n }\r\n\r\n // There should only be one of these on the page\r\n // forEach is acting as an If statement\r\n document.querySelectorAll(\".js-chapter-navigation-mount\").forEach((mount) => {\r\n let index = 0;\r\n const label = mount.dataset.label || \"Up Next:\";\r\n\r\n const links = anchors.reduce((data, anchor) => {\r\n if (!anchor.textContent) {\r\n return data;\r\n }\r\n\r\n const target = anchor.id ? anchor.id : `jump-nav-anchor${index}`;\r\n anchor.setAttribute(\"data-index\", index);\r\n anchor.setAttribute(\"id\", target);\r\n\r\n data.push({\r\n label: anchor.textContent,\r\n index,\r\n href: `#${target}`,\r\n });\r\n\r\n index++;\r\n\r\n return data;\r\n }, []);\r\n\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { string, bool, func } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n required: bool,\r\n error: bool,\r\n value: string.isRequired,\r\n label: string.isRequired,\r\n errorMsg: string,\r\n onChange: func,\r\n checked: bool,\r\n gtmElementLabel: string,\r\n};\r\n\r\nconst checkbox = (props) => {\r\n const {\r\n required,\r\n error,\r\n value,\r\n label,\r\n errorMsg,\r\n onChange,\r\n checked,\r\n gtmElementLabel,\r\n } = props;\r\n\r\n const handleChange = (e) => {\r\n if (onChange) {\r\n onChange(e.target.checked);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n
{label}
\r\n {errorMsg && (\r\n \r\n {errorMsg}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\ncheckbox.propTypes = propTypes;\r\nexport default checkbox;\r\n","export default (selector = \".js-scroll-snap-bleed\") => {\r\n const snapMarkers = document.querySelectorAll(selector);\r\n\r\n if (snapMarkers.length < 1) return;\r\n\r\n const options = {\r\n rootMargin: \"-50% 0px -50% 0px\",\r\n threshold: 0,\r\n };\r\n\r\n let numIntersecting = 0;\r\n let firstIntersection = true;\r\n const observer = new IntersectionObserver((entries, observer) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n numIntersecting++;\r\n } else if (numIntersecting > 0 && !firstIntersection) {\r\n numIntersecting--;\r\n }\r\n });\r\n\r\n if (numIntersecting > 0) {\r\n document.documentElement.classList.add(\"u-snap-block\");\r\n } else {\r\n document.documentElement.classList.remove(\"u-snap-block\");\r\n }\r\n\r\n if (firstIntersection) {\r\n firstIntersection = false;\r\n }\r\n }, options);\r\n\r\n snapMarkers.forEach((container) => {\r\n observer.observe(container);\r\n });\r\n};\r\n","import React, { useState, useRef } from \"react\";\r\nimport { shape, object, string } from \"prop-types\";\r\n\r\nimport ArrowLink from \"../../components/ArrowLink/ArrowLink.jsx\";\r\nimport Icon from \"../../components/Icon/Icon.jsx\";\r\nimport ImageElement from \"../../components/ImageElement/ImageElement.jsx\";\r\n\r\nimport CountdownTicker from \"./CountdownTicker.jsx\";\r\n\r\nconst propTypes = {\r\n image: object,\r\n text: string,\r\n link: object,\r\n postLink: object,\r\n id: string,\r\n countdownEnd: string.isRequired,\r\n interval: string,\r\n imageCaption: string,\r\n};\r\n\r\nconst CountdownBannerApp = (props) => {\r\n const { id, countdownEnd, image, imageCaption, link, postLink, postText } =\r\n props;\r\n\r\n const [activeEvent, setActiveEvent] = useState(() => {\r\n const endTime = new Date(countdownEnd).getTime();\r\n const now = new Date().getTime();\r\n return endTime - now <= 0;\r\n });\r\n\r\n const countdownRef = useRef();\r\n\r\n const tickerCompleted = () => {\r\n setActiveEvent(true);\r\n };\r\n\r\n const onClose = () => {\r\n window.sessionStorage.setItem(\"countdown-banner\", id);\r\n countdownRef.current.parentElement.classList.remove(\"show-banner\");\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {image && (\r\n
\r\n \r\n {imageCaption && !activeEvent && (\r\n
{imageCaption}
\r\n )}\r\n
\r\n )}\r\n {activeEvent && (\r\n \r\n )}\r\n {!activeEvent && (\r\n
\r\n \r\n
\r\n )}\r\n {!activeEvent && link?.href && (\r\n
\r\n \r\n
\r\n )}\r\n {activeEvent && postLink?.href && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\nCountdownBannerApp.propTypes = propTypes;\r\nexport default CountdownBannerApp;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { func, string, shape, oneOf } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n onCompletion: func,\r\n countdownEnd: string.isRequired,\r\n interval: oneOf([\"seconds\", \"minutes\", \"hours\", \"days\"]),\r\n dictionary: shape({\r\n days: string,\r\n hours: string,\r\n minutes: string,\r\n seconds: string,\r\n }),\r\n};\r\n\r\nconst intervalTime = {\r\n seconds: 1000,\r\n minutes: 60000,\r\n hours: 3600000,\r\n days: 86400000,\r\n};\r\n\r\nconst CountdownTicker = (props) => {\r\n const {\r\n dictionary,\r\n countdownEnd,\r\n interval = \"seconds\",\r\n onCompletion,\r\n } = props;\r\n\r\n const [days, setDays] = useState(0);\r\n const [hours, setHours] = useState(0);\r\n const [minutes, setMinutes] = useState(0);\r\n const [seconds, setSeconds] = useState(0);\r\n\r\n useEffect(() => {\r\n const endTime = new Date(countdownEnd).getTime();\r\n\r\n const intervalObj = setInterval(() => {\r\n const now = new Date().getTime();\r\n const timeleft = endTime - now;\r\n\r\n if (timeleft < 0) {\r\n onCompletion();\r\n window.clearInterval(intervalObj);\r\n return;\r\n }\r\n\r\n // only update values if it is displayed\r\n if (dictionary.days) {\r\n // timeleft / (1000 * 60 * 60 * 24)\r\n setDays(\r\n Math.floor(timeleft / 86400000).toLocaleString(\"en-US\", {\r\n minimumIntegerDigits: 2,\r\n useGrouping: false,\r\n }),\r\n );\r\n }\r\n if (dictionary.hours) {\r\n // (timeleft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)\r\n setHours(\r\n Math.floor((timeleft % 86400000) / 3600000).toLocaleString(\"en-US\", {\r\n minimumIntegerDigits: 2,\r\n useGrouping: false,\r\n }),\r\n );\r\n }\r\n\r\n if (dictionary.minutes) {\r\n // (timeleft % (1000 * 60 * 60)) / (1000 * 60)\r\n setMinutes(\r\n Math.floor((timeleft % 3600000) / 60000).toLocaleString(\"en-US\", {\r\n minimumIntegerDigits: 2,\r\n useGrouping: false,\r\n }),\r\n );\r\n }\r\n if (dictionary.seconds) {\r\n // (timeleft % (1000 * 60)) / 1000\r\n setSeconds(\r\n Math.floor((timeleft % 60000) / 1000).toLocaleString(\"en-US\", {\r\n minimumIntegerDigits: 2,\r\n useGrouping: false,\r\n }),\r\n );\r\n }\r\n }, intervalTime[interval]);\r\n\r\n return () => clearInterval(intervalObj);\r\n }, [countdownEnd, interval, dictionary, onCompletion]);\r\n\r\n return (\r\n
\r\n {dictionary.days && (\r\n
\r\n \r\n {days}\r\n
\r\n
\r\n {dictionary.days}\r\n
\r\n \r\n )}\r\n {dictionary.days && (\r\n
 
\r\n )}\r\n {dictionary.hours && (\r\n
\r\n \r\n {hours}\r\n
\r\n
\r\n {dictionary.hours}\r\n
\r\n \r\n )}\r\n {dictionary.minutes && dictionary.hours && (\r\n
:
\r\n )}\r\n {dictionary.minutes && (\r\n
\r\n \r\n {minutes}\r\n
\r\n \r\n {dictionary.minutes}\r\n \r\n \r\n )}\r\n {dictionary.seconds && (dictionary.minutes || dictionary.hours) && (\r\n
:
\r\n )}\r\n {dictionary.seconds && (\r\n
\r\n \r\n {seconds}\r\n
\r\n \r\n {dictionary.seconds}\r\n \r\n \r\n )}\r\n
\r\n );\r\n};\r\nCountdownTicker.propTypes = propTypes;\r\nexport default CountdownTicker;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport CountdownBannerApp from \"./CountdownBannerApp.jsx\";\r\n\r\nexport default function renderCountdownBanner() {\r\n document\r\n .querySelectorAll(\".js-countdown-banner__mount\")\r\n .forEach((mount, i) => {\r\n const data = JSON.parse(mount.dataset.model || {});\r\n const dictionary = JSON.parse(mount.dataset.dictionary) || null;\r\n\r\n const sessionId = window.sessionStorage.getItem(\"countdown-banner\");\r\n\r\n // do not show the banner if the user has closed it.\r\n if (sessionId && sessionId === data.id) {\r\n return;\r\n }\r\n\r\n mount.classList.add(\"show-banner\");\r\n\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n","import React, {\r\n useEffect,\r\n useState,\r\n useRef,\r\n useCallback,\r\n useMemo,\r\n} from \"react\";\r\nimport { string, bool, arrayOf, shape, objectOf } from \"prop-types\";\r\n\r\nimport cx from \"classnames\";\r\n\r\nimport initialState from \"./initialState.js\";\r\n\r\nimport fetchSearchResults from \"../../common/fetchSearchResults.js\";\r\nimport {\r\n toggleFacet,\r\n clearFacetGroup,\r\n initFacets,\r\n initCurrentParams,\r\n createQueryString,\r\n} from \"../../common/dynamicSearch.js\";\r\n\r\nimport { scrollToId } from \"../../common/scrollHelpers.js\";\r\n\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\n\r\nimport Pagination from \"../Pagination/Pagination.jsx\";\r\nimport FilterBar from \"../FilterBar/FilterBar.jsx\";\r\nimport ResultsInfo from \"../ResultsInfo/ResultsInfo.jsx\";\r\nimport ManualContentListing from \"../ManualContentListing/ManualContentListing.jsx\";\r\nimport GranteeListing from \"../GranteeListing/GranteeListing.jsx\";\r\nimport Sorters from \"../Sorters/Sorters.jsx\";\r\nimport SimpleSearchBox from \"../SimpleSearchBox/SimpleSearchBox.jsx\";\r\nimport ToggleGroup from \"../ToggleGroup/ToggleGroup.jsx\";\r\nimport SectionHeadline from \"../SectionHeadline/SectionHeadline.jsx\";\r\nimport LoadingSpinner from \"../LoadingSpinner/LoadingSpinner.jsx\";\r\nimport SelectedFilters from \"../SearchParts/SelectedFilters/SelectedFilters.jsx\";\r\n\r\n// USP specific Renderings\r\nimport RFPListing from \"../RFPListing/RFPListing.jsx\";\r\n\r\nconst propTypes = {\r\n id: string.isRequired,\r\n title: string,\r\n enableQueryString: bool,\r\n subTitle: string,\r\n pagination: bool,\r\n search: bool,\r\n hideMobileSummary: bool,\r\n url: string.isRequired,\r\n type: string,\r\n dictionary: objectOf(string).isRequired,\r\n query: shape({\r\n listingId: string,\r\n showSummaries: bool,\r\n showDates: bool,\r\n showContentTypes: bool,\r\n showImages: string,\r\n excludedTaxonomy: string,\r\n loadAllPages: bool,\r\n pageId: string,\r\n }).isRequired,\r\n seeMore: shape({ href: string, text: string }),\r\n sorters: arrayOf(\r\n shape({\r\n direction: string,\r\n label: string,\r\n value: string,\r\n isActive: bool,\r\n id: string,\r\n }),\r\n ),\r\n};\r\n\r\nconst DynamicContentListing = (props) => {\r\n const {\r\n id,\r\n title,\r\n subTitle,\r\n enableQueryString,\r\n pagination,\r\n search,\r\n hideMobileSummary,\r\n url,\r\n type,\r\n dictionary,\r\n query,\r\n seeMore,\r\n sorters,\r\n } = props;\r\n\r\n const activeSorterParam = useMemo(() => {\r\n const activeSorter = sorters.find((sorter) => sorter.isActive) || null;\r\n\r\n return activeSorter\r\n ? {\r\n sortBy: activeSorter.value,\r\n sortOrder: activeSorter.direction,\r\n }\r\n : null;\r\n }, [sorters]);\r\n\r\n const generalParams = {\r\n ...initialState.query,\r\n ...query,\r\n ...activeSorterParam,\r\n };\r\n\r\n const [showOverlay, setShowOverlay] = useState(false);\r\n\r\n const [selectedFacets, setSelectedFacets] = useState(\r\n initFacets(window.location.search),\r\n );\r\n const [serverData, setServerData] = useState(null);\r\n\r\n //initialize the query to that of the query string if it exists\r\n const [currentParams, setCurrentParams] = useState(\r\n initCurrentParams(window.location.search, generalParams),\r\n );\r\n\r\n const resultsFocusRef = useRef();\r\n const showFocusRef = useRef({ showFocus: false });\r\n\r\n useEffect(() => {\r\n if (new URL(document.location).searchParams.get(\"q\")) {\r\n scrollToId(id);\r\n setTimeout(() => {\r\n document.querySelector(`#${id} .simple-search-box__input`).focus();\r\n }, 1000);\r\n }\r\n }, [id]);\r\n\r\n //update the url with the latest query parameters\r\n useEffect(() => {\r\n if (enableQueryString) {\r\n const queryString = createQueryString(currentParams, selectedFacets);\r\n if (queryString.length > 0) {\r\n window.history.replaceState(\r\n \"\",\r\n \"\",\r\n window.location.origin +\r\n window.location.pathname +\r\n \"?\" +\r\n createQueryString(currentParams, selectedFacets) +\r\n window.location.hash,\r\n );\r\n } else {\r\n window.history.replaceState(\r\n \"\",\r\n \"\",\r\n window.location.origin +\r\n window.location.pathname +\r\n window.location.hash,\r\n );\r\n }\r\n }\r\n }, [currentParams, enableQueryString, selectedFacets]);\r\n\r\n const handleQueryChange = (term) => {\r\n if (currentParams.q === term) {\r\n return;\r\n }\r\n\r\n setCurrentParams((prevState) => {\r\n return {\r\n ...prevState,\r\n q: term,\r\n page: 1,\r\n sortBy: \"relevance\",\r\n sortOrder: null,\r\n };\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const controller = new AbortController();\r\n const signal = controller.signal;\r\n\r\n setShowOverlay(true);\r\n\r\n fetchSearchResults(\r\n url,\r\n {\r\n ...currentParams,\r\n ...selectedFacets,\r\n },\r\n type,\r\n signal,\r\n )\r\n .then(function (data) {\r\n if (data) {\r\n setServerData(data);\r\n }\r\n })\r\n .catch(function (e) {\r\n if (e.name === \"AbortError\") {\r\n return; // Continuation logic has already been skipped, so return normally\r\n }\r\n console.warn(\"request error: \" + e.message);\r\n })\r\n .finally(function () {\r\n setShowOverlay(false);\r\n });\r\n // unmounts or data changes\r\n return () => {\r\n controller.abort();\r\n };\r\n }, [currentParams, selectedFacets, type, url]);\r\n\r\n useEffect(() => {\r\n if (resultsFocusRef.current && showFocusRef.current.showFocus) {\r\n //move the focus back to the top of the results on page change\r\n resultsFocusRef.current.focus();\r\n showFocusRef.current.showFocus = false;\r\n }\r\n }, [serverData]);\r\n\r\n const handlePaginationChange = (page) => {\r\n showFocusRef.current.showFocus = true;\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, page: page };\r\n });\r\n };\r\n\r\n const handleFacetChange = useCallback((facetGroupValue, facet) => {\r\n setCurrentParams((prevState) => {\r\n return {\r\n ...prevState,\r\n page: 1,\r\n };\r\n });\r\n\r\n setSelectedFacets((prevState) => {\r\n return toggleFacet(facetGroupValue, facet, prevState);\r\n });\r\n }, []);\r\n\r\n const handleClearFacetGroup = (facetGroupValue) => {\r\n setSelectedFacets((prevState) => {\r\n return clearFacetGroup(facetGroupValue, prevState);\r\n });\r\n };\r\n\r\n const handleSorterClick = (params) => {\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, ...params, page: 1 };\r\n });\r\n };\r\n\r\n const renderResults = useMemo(() => {\r\n if (!serverData) {\r\n return null;\r\n }\r\n\r\n switch (type) {\r\n case \"grantee\":\r\n return (\r\n \r\n );\r\n case \"rfp\":\r\n return (\r\n \r\n );\r\n default:\r\n return (\r\n \r\n );\r\n }\r\n }, [\r\n dictionary.applicationDue,\r\n dictionary.applyLink,\r\n dictionary.detailsLink,\r\n dictionary.granteeReport,\r\n dictionary.granteeWebsite,\r\n serverData,\r\n type,\r\n ]);\r\n\r\n const classModifier = `dynamic-content-listing--${type}`;\r\n\r\n return (\r\n
\r\n {title && (\r\n \r\n )}\r\n {search && (\r\n
\r\n \r\n
\r\n )}\r\n {serverData &&\r\n serverData.facets &&\r\n serverData.facets.length > 0 &&\r\n (type === \"default\" || type === \"grantee\") && (\r\n <>\r\n
\r\n \r\n
\r\n {selectedFacets && JSON.stringify(selectedFacets) !== \"{}\" && (\r\n
\r\n {\r\n setSelectedFacets({});\r\n }}\r\n />\r\n
\r\n )}\r\n \r\n )}\r\n {serverData && serverData.facets && type === \"rfp\" && (\r\n
\r\n
\r\n {serverData.facets\r\n //rfp listing only displays facets with id \"fostatus\"\r\n .filter((facet) => facet.id === \"fostatus\")\r\n .map((facet, i) => {\r\n if (facet.values.length > 0)\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n {sorters && sorters.length > 0 && (\r\n
\r\n sorter.value !== \"date\")}\r\n sortBy={currentParams.sortBy}\r\n sortDirection={currentParams.sortOrder}\r\n />\r\n
\r\n )}\r\n
\r\n )}\r\n\r\n {serverData && (type === \"default\" || type === \"grantee\") && (\r\n
\r\n
\r\n \r\n
\r\n\r\n {sorters && sorters.length > 0 && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n {serverData && serverData.results && serverData.results.length < 1 && (\r\n
\r\n {dictionary.noResultsMessage || \"No Results Found\"}\r\n
\r\n )}\r\n
\r\n {serverData && serverData.results && (\r\n \r\n {showOverlay && }\r\n {!showOverlay && serverData.results.length > 0 && (\r\n
\r\n New Results\r\n
\r\n )}\r\n {renderResults}\r\n
\r\n )}\r\n {serverData &&\r\n pagination &&\r\n serverData.totalResults > serverData.request.perPage && (\r\n \r\n \r\n {seeMore.href && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nDynamicContentListing.propTypes = propTypes;\r\nexport default DynamicContentListing;\r\n","export default {\r\n query: {\r\n q: null,\r\n sortBy: \"relevance\",\r\n sortOrder: \"asc\",\r\n page: 1,\r\n perPage: 10,\r\n pageId: \"\",\r\n loadAllPages: true,\r\n date: null,\r\n showDates: false,\r\n showContentTypes: false,\r\n showSummaries: false,\r\n listingId: \"\",\r\n showImages: 1,\r\n },\r\n pagination: false,\r\n preSelectedFacets: {},\r\n sorters: [],\r\n url: \"/api/dynamiccontentlisting\",\r\n};\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport DynamicContentListing from \"./DynamicContentListing.jsx\";\r\n\r\nexport default function renderDynamicContentListing() {\r\n document\r\n .querySelectorAll(\".js-dynamic-content-listing-mount\")\r\n .forEach((mount, i) => {\r\n const dictionary = JSON.parse(mount.dataset.dictionary) || null;\r\n const query = JSON.parse(mount.dataset.query) || {};\r\n const dataModel = JSON.parse(mount.dataset.model);\r\n const showQueryStrings =\r\n dataModel.enableQueryString &&\r\n !document.querySelector(\"body.is-page-editor\");\r\n\r\n const seeMore = {\r\n href: dataModel.seeMoreUrl,\r\n text: (dictionary && dictionary.seeMore) || \"\",\r\n };\r\n\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport { string, bool, shape, object } from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport * as R from \"ramda\";\r\n\r\nimport initialState from \"./initialState.js\";\r\n\r\nimport { scrollToId } from \"../../common/scrollHelpers.js\";\r\nimport { initFacets } from \"../../common/dynamicSearch.js\";\r\nimport fetchSearchResults from \"../../common/fetchSearchResults.js\";\r\n\r\nimport Pagination from \"../Pagination/Pagination.jsx\";\r\nimport ExpertProfileCard from \"../ExpertProfileCard/ExpertProfileCard.jsx\";\r\nimport FilterBar from \"../FilterBar/FilterBar.jsx\";\r\nimport ResultsInfo from \"../ResultsInfo/ResultsInfo.jsx\";\r\nimport SimpleSearchBox from \"../SimpleSearchBox/SimpleSearchBox.jsx\";\r\nimport LoadingSpinner from \"../LoadingSpinner/LoadingSpinner.jsx\";\r\n\r\nimport {\r\n createQueryString,\r\n parseQueryString,\r\n} from \"../../common/dynamicSearch.js\";\r\n\r\nconst propTypes = {\r\n id: string.isRequired,\r\n title: string,\r\n enableQueryString: bool,\r\n pagination: bool,\r\n search: bool,\r\n hideMobileSummary: bool,\r\n url: string.isRequired,\r\n type: string,\r\n defaultFacet: object,\r\n dictionary: object.isRequired,\r\n query: shape({\r\n listingId: string,\r\n showSummaries: bool,\r\n showDates: bool,\r\n showContentTypes: bool,\r\n showImages: string,\r\n loadAllPages: bool,\r\n pageId: string,\r\n }).isRequired,\r\n};\r\n\r\nconst DynamicLeadershipListingApp = (props) => {\r\n const {\r\n id,\r\n title,\r\n enableQueryString,\r\n pagination,\r\n search,\r\n url,\r\n type,\r\n defaultFacet,\r\n dictionary,\r\n query,\r\n } = props;\r\n\r\n const generalParams = {\r\n ...initialState.query,\r\n ...query,\r\n };\r\n\r\n const [showOverlay, setShowOverlay] = useState(false);\r\n\r\n const [selectedFacets, setSelectedFacets] = useState(() => {\r\n const keyword = parseQueryString(window.location.search).q;\r\n const requestedFacets = initFacets(window.location.search);\r\n\r\n return !R.isEmpty(requestedFacets)\r\n ? requestedFacets\r\n : !keyword\r\n ? defaultFacet\r\n : {};\r\n });\r\n const [serverData, setServerData] = useState(null);\r\n\r\n //initialize the query to that of the query string if it exists\r\n const [currentParams, setCurrentParams] = useState(() => {\r\n const keyword = parseQueryString(window.location.search).q;\r\n\r\n return {\r\n ...generalParams,\r\n ...(keyword ? { q: keyword } : {}),\r\n ...selectedFacets,\r\n };\r\n });\r\n\r\n const [resultMessage, setResultMessage] = useState(null);\r\n\r\n const resultsFocusRef = useRef();\r\n const showFocusRef = useRef({ showFocus: false });\r\n\r\n const ignoreFetch = useRef({ ignore: false });\r\n\r\n const handleQueryChange = (term) => {\r\n ignoreFetch.current.ignore = true;\r\n setSelectedFacets({});\r\n ignoreFetch.current.ignore = false;\r\n setCurrentParams((prevState) => {\r\n if (serverData.facets) {\r\n serverData.facets.forEach((facet) => {\r\n delete prevState[facet.id];\r\n });\r\n }\r\n return { ...prevState, q: term, page: 1 };\r\n });\r\n };\r\n\r\n const handleFacetChange = (facetGroupId, facetValue) => {\r\n if (serverData.facets) {\r\n serverData.facets.forEach((facet) => {\r\n delete currentParams[facet.id];\r\n });\r\n }\r\n\r\n const newParams = { ...currentParams, ...selectedFacets, page: 1 };\r\n\r\n facetValue === \"\"\r\n ? delete newParams[facetGroupId]\r\n : (newParams[facetGroupId] = [facetValue]);\r\n\r\n setCurrentParams(newParams);\r\n };\r\n\r\n // Not used with single select\r\n const handleClearFacetGroup = (facetGroupValue) => {\r\n // setSelectedFacets((prevState) => {\r\n // return clearFacetGroup(facetGroupValue, prevState);\r\n // });\r\n };\r\n\r\n const handlePaginationChange = (page) => {\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, page: page };\r\n });\r\n // move the focus back to the top of the results on page change\r\n scrollToId(`${id}-results`);\r\n showFocusRef.current.showFocus = true;\r\n };\r\n\r\n useEffect(() => {\r\n if (dictionary.facetMessages) {\r\n setResultMessage(\r\n dictionary.facetMessages.reduce((activeMessage, facetMessage) => {\r\n if (selectedFacets[facetMessage.id]) {\r\n const messageObject = facetMessage.messages.find(\r\n (message) => message.id === selectedFacets[facetMessage.id][0],\r\n );\r\n return messageObject;\r\n } else {\r\n return activeMessage;\r\n }\r\n }, {}),\r\n );\r\n }\r\n }, [dictionary.facetMessages, selectedFacets]);\r\n\r\n //update the url with the latest query parameters\r\n useEffect(() => {\r\n if (enableQueryString) {\r\n const queryString = createQueryString(currentParams, selectedFacets);\r\n\r\n if (queryString.length > 0) {\r\n window.history.replaceState(\r\n \"\",\r\n \"\",\r\n window.location.origin +\r\n window.location.pathname +\r\n \"?\" +\r\n createQueryString(currentParams, selectedFacets) +\r\n window.location.hash,\r\n );\r\n } else {\r\n window.history.replaceState(\r\n \"\",\r\n \"\",\r\n window.location.origin +\r\n window.location.pathname +\r\n window.location.hash,\r\n );\r\n }\r\n }\r\n }, [currentParams, enableQueryString, selectedFacets]);\r\n\r\n useEffect(() => {\r\n if (ignoreFetch.current.ignore) {\r\n ignoreFetch.current.ignore = false;\r\n return;\r\n }\r\n\r\n const controller = new AbortController();\r\n const signal = controller.signal;\r\n\r\n setShowOverlay(true);\r\n\r\n fetchSearchResults(\r\n url,\r\n {\r\n ...currentParams,\r\n },\r\n type,\r\n signal,\r\n )\r\n .then(function (data) {\r\n if (data) {\r\n setServerData(data);\r\n\r\n const origFacets = {};\r\n if (data.facets) {\r\n data.facets.forEach((facet) => {\r\n const selectedValues = facet.values.reduce((filtered, value) => {\r\n if (value.selected) {\r\n filtered.push(value.id);\r\n }\r\n return filtered;\r\n }, []);\r\n\r\n if (selectedValues.length > 0) {\r\n origFacets[facet.id] = selectedValues;\r\n }\r\n });\r\n }\r\n\r\n setSelectedFacets(origFacets);\r\n }\r\n })\r\n .catch(function (e) {\r\n if (e.name === \"AbortError\") {\r\n return; // Continuation logic has already been skipped, so return normally\r\n }\r\n console.warn(\"request error: \" + e.message);\r\n })\r\n .finally(function () {\r\n setShowOverlay(false);\r\n });\r\n // unmounts or data changes\r\n return () => {\r\n controller.abort();\r\n };\r\n }, [currentParams, type, url]);\r\n\r\n useEffect(() => {\r\n if (resultsFocusRef.current && showFocusRef.current.showFocus) {\r\n //move the focus back to the top of the results on page change\r\n resultsFocusRef.current.focus();\r\n showFocusRef.current.showFocus = false;\r\n }\r\n }, [serverData]);\r\n\r\n return (\r\n
\r\n {title && (\r\n

{title}

\r\n )}\r\n {search && (\r\n
\r\n \r\n
\r\n )}\r\n {serverData && serverData.facets && serverData.facets.length > 0 && (\r\n
\r\n \r\n
\r\n )}\r\n {serverData && serverData.totalResults > 0 && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {showOverlay && }\r\n {resultMessage && resultMessage.title && (\r\n \r\n
\r\n {resultMessage.title}\r\n
\r\n {resultMessage.description && (\r\n
\r\n {resultMessage.description}\r\n
\r\n )}\r\n
\r\n )}\r\n {serverData && serverData.results && serverData.results.length < 1 && (\r\n \r\n {dictionary.noResultsMessage || \"No Results Found\"}\r\n
\r\n )}\r\n {!showOverlay &&\r\n serverData &&\r\n serverData.results &&\r\n serverData.results.length > 0 && (\r\n
\r\n New Results\r\n
\r\n )}\r\n {serverData && serverData.results && serverData.results.length > 0 && (\r\n
    \r\n {serverData.results.map((result, i) => {\r\n return (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n })}\r\n
\r\n )}\r\n \r\n {serverData &&\r\n pagination &&\r\n serverData.totalResults > serverData.request.perPage && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nDynamicLeadershipListingApp.propTypes = propTypes;\r\nexport default DynamicLeadershipListingApp;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport DynamicLeadershipListingApp from \"./DynamicLeadershipListingApp.jsx\";\r\n\r\nexport default function renderDynamicLeadershipListingApp() {\r\n document\r\n .querySelectorAll(\".js-dynamic-leadership-listing-mount\")\r\n .forEach((mount, i) => {\r\n const dictionary = JSON.parse(mount.dataset.dictionary) || null;\r\n const query = JSON.parse(mount.dataset.query) || {};\r\n const dataModel = JSON.parse(mount.dataset.model);\r\n const showQueryStrings =\r\n dataModel.enableQueryString &&\r\n !document.querySelector(\"body.is-page-editor\");\r\n\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { shape, string, array, bool, object } from \"prop-types\";\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\nimport SocialConnectIcons from \"../SocialConnectIcons/SocialConnectIcons.jsx\";\r\n\r\nconst propTypes = {\r\n image: shape({\r\n alt: string,\r\n sources: array,\r\n }),\r\n name: string.isRequired,\r\n occupation: string,\r\n description: string,\r\n cta: shape({\r\n href: string.isRequired,\r\n text: string,\r\n }),\r\n relatedContent: shape({\r\n href: string.isRequired,\r\n text: string.isRequired,\r\n }),\r\n fullWidth: bool,\r\n socialConnectIcons: object,\r\n};\r\n\r\nconst ExpertProfileCard = (props) => {\r\n const {\r\n image,\r\n name,\r\n occupation,\r\n description,\r\n cta,\r\n relatedContent,\r\n fullWidth,\r\n socialConnectIcons,\r\n } = props;\r\n\r\n return (\r\n \r\n {image && image.sources.length > 0 && (\r\n
\r\n {cta && cta.href ? (\r\n \r\n {image.alt}\r\n \r\n ) : (\r\n {image.alt}\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n {cta && cta.href ? (\r\n \r\n {name}\r\n \r\n ) : (\r\n name\r\n )}\r\n
\r\n {occupation && (\r\n
{occupation}
\r\n )}\r\n {socialConnectIcons && (\r\n
\r\n \r\n
\r\n )}\r\n {description && (\r\n \r\n )}\r\n {cta && cta.text && (\r\n
\r\n \r\n
\r\n )}\r\n {relatedContent && (\r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nExpertProfileCard.propTypes = propTypes;\r\nexport default ExpertProfileCard;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport debounce from \"lodash.debounce\";\r\nimport cx from \"classnames\";\r\nimport { func, object, arrayOf, string, bool } from \"prop-types\";\r\nimport AnimateHeight from \"react-animate-height\";\r\n\r\nimport { selectedFacetShape } from \"../../common/dynamicSearch.js\";\r\n\r\nimport FilterDropdown from \"../FilterDropdown/FilterDropdown.jsx\";\r\n\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\nimport FilterDropdownSingle from \"../FilterDropdown/FilterDropdownSingle.jsx\";\r\n\r\nconst propTypes = {\r\n filterTitle: string,\r\n filterLabel: string,\r\n facets: arrayOf(object).isRequired,\r\n link: object,\r\n selectedFacets: selectedFacetShape.isRequired,\r\n onFacetChange: func.isRequired,\r\n onClearFacetGroup: func.isRequired,\r\n singleSelect: bool,\r\n accordionOpen: bool,\r\n};\r\n\r\nconst FilterBar = (props) => {\r\n const {\r\n filterTitle,\r\n filterLabel,\r\n facets,\r\n onFacetChange,\r\n link,\r\n selectedFacets,\r\n onClearFacetGroup,\r\n singleSelect,\r\n accordionOpen = true,\r\n } = props;\r\n\r\n const [isAccordionOpen, setIsAccordionOpen] = useState(accordionOpen);\r\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\r\n\r\n useEffect(() => {\r\n const handleResize = debounce(() => {\r\n setWindowWidth(window.innerWidth);\r\n }, 100);\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n });\r\n\r\n return (\r\n
\r\n {windowWidth < 780 && (\r\n setIsAccordionOpen(!isAccordionOpen)}\r\n type=\"button\"\r\n aria-expanded={isAccordionOpen}\r\n data-gtm-element=\"dcl mobile filters accordion button\"\r\n >\r\n {filterTitle ? filterTitle : \"Filters\"}\r\n \r\n )}\r\n = 780\r\n ? \"auto\"\r\n : windowWidth < 780 && isAccordionOpen\r\n ? \"auto\"\r\n : 0\r\n }\r\n >\r\n
\r\n {facets &&\r\n facets.map((facet) => {\r\n return singleSelect ? (\r\n \r\n ) : (\r\n \r\n );\r\n })}\r\n
\r\n \r\n\r\n {link && link.href && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nFilterBar.propTypes = propTypes;\r\nexport default FilterBar;\r\n","import React, { useState } from \"react\";\r\nimport cx from \"classnames\";\r\n\r\nimport { func, string, array } from \"prop-types\";\r\n\r\nimport useClickAway from \"../../common/useClickAway.js\";\r\nimport Checkbox from \"../Checkbox/Checkbox.jsx\";\r\nimport { selectedFacetShape } from \"../../common/dynamicSearch.js\";\r\n\r\nconst propTypes = {\r\n filterLabel: string,\r\n label: string,\r\n id: string,\r\n values: array,\r\n childGroups: array,\r\n onFacetChange: func.isRequired,\r\n selectedFacets: selectedFacetShape.isRequired,\r\n onClearFacetGroup: func,\r\n};\r\n\r\nconst FilterDropdown = (props) => {\r\n const {\r\n filterLabel,\r\n label,\r\n values,\r\n id,\r\n onFacetChange,\r\n childGroups,\r\n selectedFacets,\r\n } = props;\r\n\r\n const [isOpen, setOpen] = useState(false);\r\n const filterDropdownRef = useClickAway({ isOpen, setOpen });\r\n\r\n const renderGroup = (values) => {\r\n return (\r\n values &&\r\n values.map((value) => {\r\n return (\r\n
  • \r\n onFacetChange(id, value.id)}\r\n gtmElementLabel=\"dcl filter checkbox\"\r\n />\r\n {value.childValues && value.childValues.length > 0 && (\r\n
      \r\n {renderGroup(value.childValues)}\r\n
    \r\n )}\r\n
  • \r\n );\r\n })\r\n );\r\n };\r\n\r\n const count =\r\n selectedFacets[id] && Object.keys(selectedFacets[id]).length > 0\r\n ? `(${Object.keys(selectedFacets[id]).length})`\r\n : \"\";\r\n\r\n return (\r\n
    \r\n {filterLabel ? (\r\n \r\n {label} {count}\r\n \r\n ) : null}\r\n
    \r\n setOpen(!isOpen)}\r\n className=\"filter-dropdown__open-button\"\r\n data-gtm-element=\"dcl filter dropdown button\"\r\n >\r\n \r\n \r\n {filterLabel ? `${filterLabel} ${label}` : `${label} ${count}`}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
      \r\n {renderGroup(values)}\r\n
    \r\n {childGroups &&\r\n childGroups.map((group) => {\r\n return (\r\n
    \r\n
    {group.label}
    \r\n \r\n {renderGroup(group.values)}\r\n \r\n
    \r\n );\r\n })}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nFilterDropdown.propTypes = propTypes;\r\nexport default FilterDropdown;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { func, string, arrayOf, shape, number } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport useClickAway from \"../../common/useClickAway.js\";\r\n\r\nconst propTypes = {\r\n filterLabel: string,\r\n label: string.isRequired,\r\n id: string,\r\n values: arrayOf(\r\n shape({\r\n name: string.isRequired,\r\n id: string.isRequired,\r\n count: number,\r\n }),\r\n ).isRequired,\r\n onFacetChange: func.isRequired,\r\n};\r\n\r\nconst FilterDropdownSingle = (props) => {\r\n const { filterLabel, label, values, id, onFacetChange } = props;\r\n\r\n const [isOpen, setOpen] = useState(false);\r\n const [selectedLabel, setSelectedLabel] = useState(null);\r\n const filterDropdownRef = useClickAway({ isOpen, setOpen });\r\n\r\n useEffect(() => {\r\n const selectedFacet = values.find((value) => value.selected);\r\n setSelectedLabel(\r\n selectedFacet ? `${selectedFacet.name} (${selectedFacet.count})` : label,\r\n );\r\n }, [values, label]);\r\n\r\n const handleSelectChange = (id, value) => {\r\n if (value.selected) {\r\n onFacetChange(id, \"\");\r\n } else {\r\n onFacetChange(id, value.id);\r\n }\r\n setSelectedLabel(value.selected ? label : `${value.name} (${value.count})`);\r\n setOpen(false);\r\n };\r\n\r\n const renderGroup = (values) => {\r\n return (\r\n values &&\r\n values.map((value) => {\r\n return (\r\n
  • \r\n handleSelectChange(id, value)}\r\n data-gtm-element=\"dcl filter\"\r\n >{`${value.name} (${value.count})`}\r\n
  • \r\n );\r\n })\r\n );\r\n };\r\n\r\n return (\r\n \r\n {filterLabel ? (\r\n \r\n {label}\r\n \r\n ) : null}\r\n
    \r\n setOpen(!isOpen)}\r\n className=\"filter-dropdown__open-button\"\r\n data-gtm-element=\"dcl filter dropdown\"\r\n >\r\n \r\n \r\n {selectedLabel !== null\r\n ? selectedLabel\r\n : filterLabel\r\n ? `${filterLabel} ${label}`\r\n : `${label}`}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
      \r\n {renderGroup(values)}\r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\nFilterDropdownSingle.propTypes = propTypes;\r\nexport default FilterDropdownSingle;\r\n","import React, { useState } from \"react\";\r\nimport { string, bool, arrayOf, shape, func } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n id: string,\r\n type: string,\r\n required: bool,\r\n error: bool,\r\n name: string.isRequired,\r\n label: string.isRequired,\r\n errorMsg: string,\r\n checked: bool,\r\n value: string,\r\n inputdescription: string,\r\n fullWidth: bool,\r\n autocomplete: string,\r\n options: arrayOf(\r\n shape({\r\n value: string,\r\n text: string,\r\n selected: bool,\r\n }),\r\n ),\r\n matchName: string,\r\n readonly: bool,\r\n jsClass: string,\r\n onChange: func,\r\n hiddenLabel: bool,\r\n};\r\n\r\nconst SelectInput = (props) => {\r\n const {\r\n type,\r\n required,\r\n error,\r\n name,\r\n label,\r\n errorMsg,\r\n value,\r\n fullWidth,\r\n autocomplete,\r\n options,\r\n matchName,\r\n readonly,\r\n jsClass,\r\n id,\r\n onChange,\r\n hiddenLabel,\r\n } = props;\r\n\r\n const [inputId] = useState(id || `GUID-${parseInt(Math.random() * 1000)}`);\r\n const selectClass = jsClass || \"\";\r\n\r\n return (\r\n \r\n {label && (\r\n \r\n {label}\r\n \r\n )}\r\n
    \r\n \r\n {options.map((option) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
    \r\n {errorMsg && (\r\n \r\n {errorMsg}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nSelectInput.propTypes = propTypes;\r\nexport default SelectInput;\r\n","import React from \"react\";\r\nimport { string, bool, number, object, func } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport Icon from \"../Icon/Icon.jsx\";\r\n\r\nconst propTypes = {\r\n required: bool,\r\n label: string,\r\n error: bool,\r\n validationType: string,\r\n type: string,\r\n autocomplete: string,\r\n matchName: string,\r\n readonly: bool,\r\n placeholder: string,\r\n name: string,\r\n errorMsg: string,\r\n helperText: string,\r\n fullWidth: bool,\r\n extraClass: string,\r\n maxLength: number,\r\n showPassword: bool,\r\n value: string,\r\n focusRef: object,\r\n keyDownHandler: func,\r\n};\r\n\r\nconst textInput = (props) => {\r\n const {\r\n required,\r\n label,\r\n error,\r\n validationType,\r\n type,\r\n autocomplete,\r\n matchName,\r\n readonly,\r\n placeholder,\r\n name,\r\n errorMsg,\r\n helperText,\r\n fullWidth,\r\n extraClass,\r\n maxLength,\r\n showPassword,\r\n value,\r\n focusRef,\r\n keyDownHandler,\r\n } = props;\r\n\r\n const id = parseInt(Math.random() * 1000);\r\n\r\n const extraInputClasses = extraClass || \"\";\r\n\r\n return (\r\n \r\n {label && {label}}\r\n \r\n {showPassword && (\r\n \r\n Show password\r\n \r\n )}\r\n \r\n {errorMsg}\r\n \r\n\r\n {helperText && (\r\n
    \r\n \r\n {helperText}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\ntextInput.propTypes = propTypes;\r\nexport default textInput;\r\n","// Forms with empty inputs (create profile)\r\n//
    \r\nimport {\r\n setDefaults,\r\n matchfields,\r\n validationListeners,\r\n handleSubmit,\r\n resetDefaults,\r\n initRecaptcha,\r\n} from \"../../common/ThreadValidator.js\";\r\n\r\nexport default () => {\r\n [...document.querySelectorAll(\".js-form\")].forEach((elForm) => {\r\n const elItems = elForm.querySelectorAll(\".js-form-required\");\r\n const matchItems = elForm.querySelectorAll(\".js-form-match\");\r\n const errorbox = elForm.querySelectorAll(\".js-error-box\");\r\n setDefaults(elForm);\r\n\r\n [\r\n ...elForm.querySelectorAll(\"input\"),\r\n ...elForm.querySelectorAll(\"textarea\"),\r\n ...elForm.querySelectorAll(\"select\"),\r\n ].forEach((input) => {\r\n input.addEventListener(\"change\", () => {\r\n detectChange(input);\r\n });\r\n detectChange(input);\r\n });\r\n\r\n function detectChange(input) {\r\n if (\r\n input.dataset.checked !== String(input.checked) &&\r\n input.dataset.originalValue !== input.value\r\n ) {\r\n [\r\n ...elForm.querySelectorAll(\".js-cancel-btn\"),\r\n ...elForm.querySelectorAll(\".js-submit-btn\"),\r\n ].forEach((btn) => {\r\n btn.removeAttribute(\"disabled\");\r\n });\r\n } else {\r\n [\r\n ...elForm.querySelectorAll(\".js-cancel-btn\"),\r\n ...elForm.querySelectorAll(\".js-submit-btn\"),\r\n ].forEach((btn) => {\r\n // btn.setAttribute(\"disabled\", true);\r\n });\r\n }\r\n }\r\n\r\n //form sepecific handlers\r\n function resetButton(button) {\r\n button.classList.remove(\"is-loading\");\r\n button.removeAttribute(\"disabled\");\r\n }\r\n\r\n function showMessage(status, msg, el) {\r\n [...el].forEach((el) => {\r\n el.querySelector(\".js-error-msg\").innerHTML = msg;\r\n el.classList.remove(\"is-hidden\");\r\n if (status === \"error\") {\r\n el.setAttribute(\"role\", \"alert!\");\r\n }\r\n });\r\n }\r\n\r\n //handle successfull form response\r\n function successHandler() {\r\n // on success, if there's a return URL set, forward browser to that URL\r\n if (elForm.elements[\"retURL\"]) {\r\n window.location.assign(elForm.elements[\"retURL\"].value);\r\n }\r\n\r\n //TODO add js-error-box code if element is in DOM\r\n if (!elForm.classList.contains(\"js-form-changes\")) {\r\n resetDefaults(elForm);\r\n } else {\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 5000);\r\n }\r\n\r\n elForm.querySelectorAll(\".js-form-general-success\").forEach((el) => {\r\n el.classList.add(\"is-visible\");\r\n });\r\n }\r\n\r\n //handle successfull form response\r\n function errorHandler(customMessage) {\r\n const submitButtons = elForm.querySelectorAll(\"button[type=submit]\");\r\n [...elForm.querySelectorAll(\".js-form-general-error\")].forEach((el) => {\r\n el.classList.add(\"has-error\");\r\n el.textContent = customMessage || \"Server Error. Please try again\";\r\n });\r\n [...submitButtons].forEach(resetButton);\r\n if (errorbox.length) {\r\n showMessage(\r\n \"error\",\r\n \"Whoops, something went wrong please try again later.\",\r\n errorbox,\r\n );\r\n }\r\n }\r\n\r\n [...matchItems].forEach((item) => {\r\n const field = item.querySelector(\"[aria-required]\");\r\n\r\n if (field === null) {\r\n return;\r\n }\r\n\r\n if (field.dataset.type === \"select\") {\r\n field.addEventListener(\"change\", (e) => {\r\n matchfields(elForm, [item]);\r\n });\r\n } else {\r\n field.addEventListener(\"keyup\", (e) => {\r\n matchfields(elForm, [item]);\r\n });\r\n }\r\n });\r\n\r\n [...elForm.querySelectorAll(\".js-cancel-btn\")].forEach((btn) => {\r\n btn.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n elForm.querySelectorAll(\"input\").forEach((input) => {\r\n input.value = input.dataset.originalValue;\r\n if (input.checked !== undefined) {\r\n input.checked = input.dataset.checked;\r\n }\r\n });\r\n });\r\n });\r\n\r\n //form field validation\r\n elItems.forEach((item) => {\r\n validationListeners(item, elForm);\r\n });\r\n\r\n // setup recaptcha v3 if the field exists\r\n initRecaptcha(elForm);\r\n\r\n // noJs TRUE submit w/o JS\r\n handleSubmit(elForm, successHandler, errorHandler, false);\r\n });\r\n};\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\n\r\nimport { string, bool } from \"prop-types\";\r\n\r\nimport Modal from \"../../Modal/Modal.jsx\";\r\nimport Icon from \"../../Icon/Icon.jsx\";\r\nimport ImageBlock from \"../../ImageBlock/ImageBlock.jsx\";\r\nimport BackgroundVideo from \"../../BackgroundVideo/BackgroundVideo.jsx\";\r\nimport initBackgroundVideo from \"../../BackgroundVideo/initBackgroundVideo.js\";\r\n\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n href: string.isRequired,\r\n text: string.isRequired,\r\n poster: string,\r\n editing: bool,\r\n};\r\n\r\nconst FrameworkModal = (props) => {\r\n const { href, text, poster, editing } = props;\r\n\r\n const [modalOpen, setModalOpen] = useState(false);\r\n\r\n const videoRef = useRef();\r\n\r\n const videoTypes = /(\\.|\\/)(mov|mp4)$/i;\r\n const contentIsVideo = videoTypes.test(href);\r\n\r\n useEffect(() => {\r\n if (videoRef.current) {\r\n initBackgroundVideo(\".framework-video-wrapper\");\r\n }\r\n }, [videoRef.current]);\r\n\r\n const openModal = (e) => {\r\n e.preventDefault();\r\n\r\n if (editing) {\r\n return;\r\n }\r\n\r\n setModalOpen(true);\r\n };\r\n\r\n const handleClose = (e) => {\r\n e.preventDefault();\r\n setModalOpen(false);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n {text}\r\n \r\n \r\n \r\n
    \r\n {contentIsVideo ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nFrameworkModal.propTypes = propTypes;\r\n\r\nexport default FrameworkModal;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport FrameworkModal from \"./FrameworkModal.jsx\";\r\n\r\nexport default function renderFrameworkModal() {\r\n document.querySelectorAll(\".js-framework-modal-mount\").forEach((mount) => {\r\n const data = JSON.parse(mount.getAttribute(\"data-model\"));\r\n\r\n const EE = mount.closest(\".is-page-editor\") ? true : false;\r\n\r\n ReactDom.render(, mount);\r\n });\r\n}\r\n","export default function () {\r\n [...document.querySelectorAll(\".js-framework\")].forEach((el) => {\r\n const container = el.querySelector(\".js-framework-container\");\r\n const items = el.querySelectorAll(\".js-framework-item\");\r\n\r\n const editorView = document.querySelector(\".is-page-editor\");\r\n\r\n let isDesktop = window.matchMedia(\"(min-width: 1230px)\").matches;\r\n\r\n const toggleItem = (item, isOpen = false) => {\r\n const itemContent = item.querySelector(\".js-framework-item-content\");\r\n item.classList.toggle(\"is-open\", isOpen);\r\n\r\n requestAnimationFrame(() => {\r\n const contentHeight = itemContent.scrollHeight;\r\n if (!editorView) {\r\n itemContent.style.maxHeight = isOpen ? `${contentHeight}px` : 0;\r\n }\r\n });\r\n\r\n itemContent.setAttribute(\"aria-hidden\", !isOpen);\r\n item.setAttribute(\"aria-expanded\", isOpen);\r\n };\r\n\r\n // Runs only on initial load and resize\r\n const resizeBorder = () => {\r\n const firstItem = el.querySelectorAll(\".js-framework-item-btn\")[0];\r\n\r\n // Resize border relative to 1st item if present\r\n if (firstItem) {\r\n const firstItemPos = firstItem.offsetTop;\r\n const firstItemHeight = firstItem.scrollHeight;\r\n\r\n container.style.setProperty(\r\n \"--border-height\",\r\n `${firstItemPos + firstItemHeight / 2}px`,\r\n );\r\n } else {\r\n container.style.setProperty(\"--border-height\", \"100%\");\r\n }\r\n };\r\n\r\n // if in Experience Editor open accordions and then exit.\r\n if (editorView) {\r\n [...items].forEach((item) => {\r\n toggleItem(item, true);\r\n });\r\n\r\n return;\r\n }\r\n\r\n const resetToDefault = () => {\r\n [...items].forEach((item, idx) => {\r\n if (idx === 1) {\r\n toggleItem(item, true);\r\n } else {\r\n toggleItem(item);\r\n }\r\n });\r\n };\r\n\r\n resetToDefault();\r\n\r\n // Click handlers\r\n [...items].forEach((item, idx) => {\r\n const itemButton = item.querySelector(\".js-framework-item-btn\");\r\n\r\n itemButton.addEventListener(\"click\", (e) => {\r\n const isFirst = idx === 0;\r\n\r\n const activeElements = el.querySelectorAll(\".is-open\");\r\n const activeEl =\r\n activeElements.length > 1 ? activeElements[1] : activeElements[0];\r\n\r\n if (isDesktop) {\r\n // Close other open items except when clicking first item\r\n if (!isFirst) {\r\n toggleItem(activeEl);\r\n toggleItem(item, true);\r\n }\r\n\r\n // When 1st item is expanded, the expanded items before it will remain expanded\r\n else if (isFirst) {\r\n item.classList.contains(\"is-open\")\r\n ? toggleItem(item)\r\n : toggleItem(item, true);\r\n }\r\n } else {\r\n if (activeEl) {\r\n toggleItem(activeEl);\r\n }\r\n\r\n toggleItem(item, true);\r\n }\r\n });\r\n });\r\n\r\n window.addEventListener(\"resize\", () => {\r\n isDesktop = window.matchMedia(\"(min-width: 1230px)\").matches;\r\n\r\n requestAnimationFrame(() => {\r\n // Close all items and open second on resize\r\n resetToDefault();\r\n\r\n setTimeout(() => resizeBorder(), 300);\r\n });\r\n });\r\n\r\n requestAnimationFrame(() => resizeBorder());\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { arrayOf, string, shape, object } from \"prop-types\";\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\n\r\nconst propTypes = {\r\n granteeReportText: string.isRequired,\r\n granteeWebsiteText: string.isRequired,\r\n items: arrayOf(\r\n shape({\r\n title: string,\r\n summary: string,\r\n image: shape({ src: string, alt: string }),\r\n information: arrayOf(string),\r\n reportLink: shape({\r\n url: string,\r\n text: string,\r\n target: string,\r\n }),\r\n websiteLink: shape({\r\n url: string,\r\n text: string,\r\n target: string,\r\n }),\r\n }),\r\n ),\r\n focusRef: object,\r\n};\r\n\r\nconst GranteeListing = (props) => {\r\n const { items, granteeWebsiteText, granteeReportText, focusRef } = props;\r\n return (\r\n
    \r\n
      \r\n {items.map((item, i) => (\r\n
    • \r\n {item.image && (\r\n
      \r\n {item.image && (\r\n {item.image.alt}\r\n )}\r\n
      \r\n )}\r\n {(item.title || item.description || item.granteeInformation) && (\r\n
      \r\n {item.title && (\r\n \r\n {item.title}\r\n
      \r\n )}\r\n {item.summary && (\r\n
      \r\n {item.summary}\r\n
      \r\n )}\r\n {item.information && (\r\n
      \r\n {item.information.map((info, i, arr) => (\r\n \r\n {info}\r\n {arr.length - 1 !== i ? (\r\n   /  \r\n ) : null}\r\n \r\n ))}\r\n
      \r\n )}\r\n \r\n )}\r\n {(item.websiteLink || item.reportLink) && (\r\n
      \r\n {item.reportLink && (\r\n
      \r\n \r\n {granteeReportText}\r\n \r\n
      \r\n )}\r\n {item.websiteLink && (\r\n
      \r\n \r\n
      \r\n )}\r\n
      \r\n )}\r\n
    • \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nGranteeListing.propTypes = propTypes;\r\nexport default GranteeListing;\r\n","import React from \"react\";\r\nimport { string } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n iconName: string,\r\n className: string,\r\n title: string,\r\n};\r\n\r\nconst Icon = (props) => {\r\n const { iconName, className, title, ...otherProps } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nIcon.propTypes = propTypes;\r\nexport default Icon;\r\n","import React from \"react\";\r\nimport { string, object } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport ImageElement from \"../ImageElement/ImageElement.jsx\";\r\n\r\nconst propTypes = {\r\n orientation: string,\r\n description: string,\r\n source: string,\r\n altClass: string,\r\n image: object,\r\n title: string, // only used in StoryBuilder component\r\n};\r\n\r\nconst ImageBlock = (props) => {\r\n const { orientation, description, source, altClass, image, title } = props;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {(title || description || source) && (\r\n
    \r\n {title && (\r\n

    {title}

    \r\n )}\r\n {description && (\r\n {description}\r\n )}\r\n {source && {source}}\r\n
    \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nImageBlock.propTypes = propTypes;\r\nexport default ImageBlock;\r\n","import React from \"react\";\r\nimport { string } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n srcset: string,\r\n srcSet: string,\r\n height: string,\r\n width: string,\r\n alt: string,\r\n sizes: string,\r\n className: string,\r\n loading: string,\r\n};\r\n\r\nconst defaultProps = {\r\n srcset: `\r\n https://via.placeholder.com/400x300 400w,\r\n https://via.placeholder.com/800x600 800w,\r\n https://via.placeholder.com/1200x900 1200w,\r\n https://via.placeholder.com/1600x1200 1600w,\r\n https://via.placeholder.com/2000x1500 2000w,\r\n https://via.placeholder.com/2400x1800 2400w,\r\n https://via.placeholder.com/2800x2100 2800w,\r\n https://via.placeholder.com/3200x2400 3200w\"\r\n `,\r\n alt: \"\",\r\n sizes: \"(min-width: 1230px) 1170px, 100vw\",\r\n className: \"\",\r\n loading: \"lazy\", // put this here so it can be overridden\r\n height: \"2400\",\r\n width: \"3200\",\r\n};\r\n\r\nconst ImageElement = (props) => {\r\n const { alt, sizes, className, loading, height, width } = props;\r\n const srcset = props.srcSet ? props.srcSet : props.srcset; // fallback srcset makes more sense\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nImageElement.propTypes = propTypes;\r\nImageElement.defaultProps = defaultProps;\r\n\r\nexport { propTypes };\r\nexport default ImageElement;\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { array, bool, string } from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport throttle from \"lodash.throttle\";\r\n\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport useClickAway from \"../../common/useClickAway.js\";\r\nimport inPageNavigation from \"../../common/inPageNavigation.js\";\r\n\r\nimport ProgressBar from \"../ProgressBar/ProgressBar.jsx\";\r\n\r\nconst propTypes = {\r\n links: array.isRequired,\r\n condensed: bool,\r\n label: string,\r\n};\r\n\r\nconst JumpNavigation = (props) => {\r\n const { links, condensed, label } = props;\r\n\r\n const menuButtonRef = useRef();\r\n const itemsRef = useRef();\r\n\r\n const [navHelper] = useState(() => inPageNavigation());\r\n const [targets] = useState(\r\n links.map((link) => document.querySelector(link.href)),\r\n );\r\n\r\n const [wideView, setWideView] = useState(true);\r\n const [focusIndex, setFocusIndex] = useState(0);\r\n const [activeLinkIndex, setActiveLinkIndex] = useState(() => {\r\n const hash = window.location.hash;\r\n if (hash) {\r\n const link = links.find((link) => {\r\n return link.href === hash;\r\n });\r\n return link ? link.index : -1;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n\r\n const [showMenu, setShowMenu] = useState(false);\r\n const [isScrolling, setIsScrolling] = useState(false);\r\n\r\n const dropDownRef = useClickAway({\r\n isOpen: showMenu,\r\n setOpen: () => {\r\n setShowMenu(false);\r\n },\r\n });\r\n\r\n const closeMenu = () => {\r\n setShowMenu(false);\r\n setFocusIndex(0);\r\n menuButtonRef.current.focus();\r\n };\r\n\r\n const toggleMenu = (e) => {\r\n e.preventDefault();\r\n if (showMenu) {\r\n closeMenu();\r\n } else {\r\n setFocusIndex(0);\r\n setShowMenu(true);\r\n }\r\n };\r\n\r\n const handleLinkClick = (e, index) => {\r\n e.preventDefault();\r\n\r\n const target = targets[index];\r\n const customScrollOffset = target.dataset.customScrollOffset;\r\n\r\n setShowMenu(false);\r\n setIsScrolling(true);\r\n setActiveLinkIndex(index);\r\n\r\n if (customScrollOffset) {\r\n navHelper.scrollPageTo(targets[index], parseInt(customScrollOffset, 10));\r\n } else {\r\n navHelper.scrollPageTo(targets[index]);\r\n }\r\n\r\n setTimeout(() => {\r\n setIsScrolling(false);\r\n }, 1000);\r\n };\r\n\r\n const handleMenuButtonKeyboard = (e) => {\r\n switch (e.key) {\r\n case \"Escape\":\r\n e.preventDefault();\r\n closeMenu();\r\n break;\r\n case \"Enter\":\r\n e.preventDefault();\r\n toggleMenu(e);\r\n break;\r\n default:\r\n }\r\n };\r\n\r\n const handleMenuItemKeyboard = (e) => {\r\n if (wideView) {\r\n return;\r\n }\r\n\r\n switch (e.key) {\r\n case \"Escape\":\r\n e.preventDefault();\r\n closeMenu();\r\n break;\r\n case \"Tab\":\r\n e.preventDefault();\r\n if (e.shiftKey) {\r\n if (focusIndex === 0) {\r\n closeMenu();\r\n } else {\r\n setFocusIndex(focusIndex - 1);\r\n }\r\n } else {\r\n if (focusIndex === links.length - 1) {\r\n closeMenu();\r\n } else {\r\n setFocusIndex(focusIndex + 1);\r\n }\r\n }\r\n break;\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n if (focusIndex === 0) {\r\n setFocusIndex(links.length - 1);\r\n } else {\r\n setFocusIndex(focusIndex - 1);\r\n }\r\n break;\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n if (focusIndex === links.length - 1) {\r\n setFocusIndex(0);\r\n } else {\r\n setFocusIndex(focusIndex + 1);\r\n }\r\n break;\r\n\r\n default:\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n const newWideView =\r\n itemsRef.current.offsetWidth >= itemsRef.current.scrollWidth;\r\n\r\n if (newWideView !== wideView) {\r\n setShowMenu(false);\r\n setWideView(newWideView);\r\n }\r\n };\r\n\r\n handleResize();\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", handleResize);\r\n };\r\n }, [wideView]);\r\n\r\n useEffect(() => {\r\n const throttleHandleScroll = throttle(() => {\r\n if (isScrolling) {\r\n return;\r\n }\r\n\r\n const index = [...targets].reduce((index, target) => {\r\n const rect = target.getBoundingClientRect();\r\n return rect.top < window.innerHeight / 2 + 100 ? index + 1 : index;\r\n }, -1);\r\n\r\n if (index !== activeLinkIndex) {\r\n setActiveLinkIndex(index);\r\n }\r\n }, 100);\r\n\r\n window.addEventListener(\"scroll\", throttleHandleScroll);\r\n\r\n return () => {\r\n window.removeEventListener(\"scroll\", throttleHandleScroll);\r\n };\r\n }, [activeLinkIndex, isScrolling, targets]);\r\n\r\n const renderLinkItem = (link) => {\r\n return (\r\n \r\n \r\n focusIndex === link.index && showMenu && el && el.focus()\r\n }\r\n href={link.href}\r\n onClick={(e) => handleLinkClick(e, link.index)}\r\n onKeyDown={(e) => handleMenuItemKeyboard(e, link.index)}\r\n >\r\n {link.label}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {wideView && (\r\n
      \r\n {links.map(renderLinkItem)}\r\n
    \r\n )}\r\n {!wideView && (\r\n
    \r\n
    \r\n {links[activeLinkIndex === -1 ? 0 : activeLinkIndex].label}\r\n
    \r\n
    \r\n handleMenuButtonKeyboard(e)}\r\n >\r\n \r\n {links[activeLinkIndex === -1 ? 0 : activeLinkIndex].label}\r\n \r\n {label}\r\n \r\n \r\n \r\n
      \r\n {links.map(renderLinkItem)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n {!wideView && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n \r\n );\r\n};\r\nJumpNavigation.propTypes = propTypes;\r\nexport default JumpNavigation;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\n\r\nimport JumpNavigation from \"./JumpNavigationApp.jsx\";\r\nimport inPageNavigation from \"../../common/inPageNavigation.js\";\r\n\r\nexport default function renderJumpNavigation() {\r\n const anchors =\r\n Array.from(document.querySelectorAll(\".js-jump-nav-anchor\")) || [];\r\n\r\n if (anchors.length <= 0) {\r\n return;\r\n }\r\n\r\n document.querySelectorAll(\".js-jump-nav-mount\").forEach((mount) => {\r\n const condensed = mount.hasAttribute(\"data-condensed\");\r\n const label = mount.dataset.label || \"\";\r\n\r\n let index = 0;\r\n\r\n const links = anchors.reduce((data, anchor) => {\r\n if (!anchor.textContent) {\r\n return data;\r\n }\r\n\r\n const target = anchor.id ? anchor.id : `jump-nav-anchor${index}`;\r\n anchor.setAttribute(\"data-index\", index);\r\n anchor.setAttribute(\"id\", target);\r\n\r\n data.push({\r\n label: anchor.textContent,\r\n index,\r\n href: `#${target}`,\r\n });\r\n\r\n index++;\r\n\r\n return data;\r\n }, []);\r\n\r\n // look for any anchor tags on the page targeting jump links.\r\n // these links are ignored in the global # check (index.js) due to the targets not having IDs\r\n inPageNavigation(document.querySelectorAll('a[href*=\"#jump-nav-anchor\"'));\r\n\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n","import clickAway from \"../../common/clickAway.js\";\r\n\r\nexport default (selector = \".js-language-selector\") => {\r\n document.querySelectorAll(selector).forEach((elParent) => {\r\n const button = elParent.querySelector(\".js-language-selector__button\");\r\n let menuOpen = button.getAttribute(\"aria-expanded\") === \"true\";\r\n\r\n if (!button) {\r\n return;\r\n }\r\n\r\n const closeMenu = (moveFocus) => {\r\n elParent.classList.remove(\"language-selector__navigation--open\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n menuOpen = false;\r\n\r\n if (moveFocus) {\r\n button.focus();\r\n }\r\n };\r\n\r\n const openMenu = () => {\r\n elParent.classList.add(\"language-selector__navigation--open\");\r\n button.setAttribute(\"aria-expanded\", \"true\");\r\n menuOpen = true;\r\n };\r\n\r\n button.addEventListener(\"click\", () => {\r\n if (!menuOpen) {\r\n openMenu();\r\n clickAway(elParent, closeMenu);\r\n } else {\r\n closeMenu();\r\n }\r\n });\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { string } from \"prop-types\";\r\n\r\nconst propTypes = { text: string };\r\n\r\nconst LoadingSpinner = (props) => {\r\n const { text } = props;\r\n\r\n return (\r\n
    \r\n {text || \"Loading Results\"}\r\n
    \r\n );\r\n};\r\n\r\nLoadingSpinner.propTypes = propTypes;\r\nexport default LoadingSpinner;\r\n","import React from \"react\";\r\nimport cx from \"classnames\";\r\n\r\nimport { shape, string, object, arrayOf, array, bool } from \"prop-types\";\r\n\r\nimport ArticlePromo from \"../ArticlePromo/ArticlePromo.jsx\";\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\n\r\nconst propTypes = {\r\n suppressLeft: bool,\r\n topBorder: bool,\r\n results: arrayOf(\r\n shape({\r\n id: string,\r\n key: string,\r\n contentType: string,\r\n authors: array,\r\n location: string,\r\n date: string,\r\n authorLabel: string,\r\n language: string,\r\n langDir: string,\r\n }),\r\n ),\r\n link: object,\r\n focusRef: object,\r\n};\r\n\r\nconst ManualContentListing = (props) => {\r\n const { topBorder, suppressLeft, results, link, focusRef } = props;\r\n\r\n if (!results || results.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {results.map((result, i) => {\r\n return (\r\n \r\n {!suppressLeft && (\r\n
    \r\n {result.contentType && (\r\n
    \r\n {result.contentType}\r\n
    \r\n )}\r\n {((result.authors && result.authors.length > 0) ||\r\n result.company) && (\r\n
    \r\n {result.authors && result.authors.length > 0 && (\r\n \r\n {result.authorLabel}{\" \"}\r\n {result.authors.length > 2\r\n ? `${result.authors.slice(0, -1).join(\", \")}, and ${\r\n result.authors[result.authors.length - 1]\r\n }`\r\n : result.authors.join(\" and \")}\r\n \r\n )}\r\n {result.location && (\r\n \r\n {result.location}\r\n \r\n )}\r\n
    \r\n )}\r\n {result.date && (\r\n
    \r\n \r\n {result.date}\r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n );\r\n })}\r\n \r\n {link && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nManualContentListing.propTypes = propTypes;\r\nexport default ManualContentListing;\r\n","import componentSlider from \"../../common/componentSlider.js\";\r\nimport { initScrolledIntoView } from \"../../common/scrollIntoView.js\";\r\n\r\nexport default () => {\r\n document\r\n .querySelectorAll(\".js-manual-internal-promo-slider\")\r\n .forEach((el, index) => {\r\n if (\r\n // Don't init slider for Image Promo Slider variant in Experience Editor\r\n document.body.classList.contains(\"is-page-editor\") &&\r\n el.classList.contains(\r\n \"manual-internal-promo-slider--image-promo-slider\",\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n const config = {};\r\n const fixedCount = el.hasAttribute(\"data-leave-gap\");\r\n const numberChildren = el.querySelectorAll(\r\n \".js-slide-container > *\",\r\n ).length;\r\n\r\n if (el.dataset.slidesToShow) {\r\n const requestedSlidesToShow = parseInt(el.dataset.slidesToShow, 10); // stricter typing\r\n config.slidesToShow =\r\n numberChildren < requestedSlidesToShow && !fixedCount\r\n ? numberChildren\r\n : requestedSlidesToShow;\r\n }\r\n\r\n if (el.dataset.slidesToScroll) {\r\n config.slidesToScroll = parseInt(el.dataset.slidesToScroll, 10); // stricter typing\r\n }\r\n\r\n if (el.dataset.showCircles) {\r\n el.querySelectorAll(\".js-quick-stat\").forEach((element, i) => {\r\n element.setAttribute(\"style\", `--animation-order: ${i + 1};`);\r\n });\r\n\r\n initScrolledIntoView(el, index);\r\n }\r\n\r\n const breakpoint = 781;\r\n if (el.dataset.mobileOnly) {\r\n config.mobileFirst = true;\r\n config.responsive = [\r\n {\r\n breakpoint: breakpoint,\r\n settings: \"unslick\",\r\n },\r\n ];\r\n }\r\n\r\n if (document.dir === \"rtl\" || el.parentElement.dir === \"rtl\") {\r\n config.rtl = true;\r\n el.dataset.isRtl = \"true\";\r\n }\r\n\r\n let activeSlider = window.innerWidth < breakpoint;\r\n\r\n const sliderControls = componentSlider(el, config);\r\n\r\n window.addEventListener(\"resize\", () => {\r\n if (!activeSlider && window.innerWidth < breakpoint) {\r\n activeSlider = true;\r\n sliderControls.createSlider();\r\n }\r\n\r\n if (activeSlider && window.innerWidth >= breakpoint) {\r\n activeSlider = false;\r\n }\r\n });\r\n });\r\n};\r\n","import React from \"react\";\r\nimport cx from \"classnames\";\r\n\r\nimport { string, bool, func, object } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n openText: string,\r\n closeText: string,\r\n classNames: string,\r\n isOpen: bool,\r\n controlID: string,\r\n onClick: func,\r\n onFocus: func,\r\n reversed: bool,\r\n buttonRef: object,\r\n showVisibleLabel: bool,\r\n};\r\n\r\nconst MenuButton = (props) => {\r\n const {\r\n openText,\r\n closeText,\r\n classNames,\r\n controlID,\r\n reversed,\r\n buttonRef,\r\n isOpen,\r\n showVisibleLabel = false,\r\n } = props;\r\n\r\n const handleClick = (e) => {\r\n if (props.onClick) {\r\n props.onClick(e);\r\n }\r\n };\r\n\r\n let ariaLabel;\r\n if (!showVisibleLabel) {\r\n ariaLabel = isOpen ? closeText || \"Close Menu\" : openText || \"Open Menu\";\r\n }\r\n\r\n return (\r\n \r\n \r\n {showVisibleLabel && openText && closeText && (\r\n <>\r\n {openText}\r\n {closeText}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nMenuButton.propTypes = propTypes;\r\nexport default MenuButton;\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { bool, func, oneOfType, string, node } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\n// https://hackernoon.com/its-a-focus-trap-699a04d66fb5\r\nimport FocusLock from \"react-focus-lock\";\r\n\r\nimport Icon from \"../Icon/Icon.jsx\";\r\n\r\nconst propTypes = {\r\n title: node,\r\n isOpen: bool.isRequired,\r\n noPadding: bool,\r\n onClose: func.isRequired,\r\n className: string,\r\n lang: string,\r\n children: oneOfType([node, func]),\r\n showPrintButton: bool,\r\n};\r\n\r\nconst Modal = (props) => {\r\n const {\r\n isOpen,\r\n lang,\r\n onClose,\r\n title,\r\n children,\r\n className,\r\n noPadding,\r\n showPrintButton = false,\r\n ...rest\r\n } = props;\r\n\r\n const overflowRef = useRef();\r\n\r\n // keep around the children so when we close, we can fade out with the content\r\n const childrenCache = useRef();\r\n\r\n const [modalContainer, setModalContainer] = useState();\r\n useEffect(() => {\r\n const container = document.createElement(\"div\");\r\n container.setAttribute(\"class\", \"modal-container\");\r\n document.querySelector(\"body\").appendChild(container);\r\n\r\n setModalContainer(container);\r\n return () => {\r\n container.remove();\r\n };\r\n }, []);\r\n\r\n // if children is a funciton, render it with some state\r\n const content =\r\n typeof children === \"function\" ? children({ isOpen, title }) : children;\r\n\r\n if (content) {\r\n childrenCache.current = content;\r\n }\r\n\r\n // listen for esc if the modal is open\r\n useEffect(() => {\r\n const keydownHandler = (e) => {\r\n if (e.key === \"Escape\") {\r\n onClose();\r\n }\r\n };\r\n\r\n if (isOpen) {\r\n // always open with the modal scrolled to the top\r\n if (overflowRef.current) {\r\n overflowRef.current.scrollTo(0, 0);\r\n }\r\n\r\n window.addEventListener(\"keydown\", keydownHandler);\r\n return () => window.removeEventListener(\"keydown\", keydownHandler);\r\n } else {\r\n window.removeEventListener(\"keydown\", keydownHandler);\r\n }\r\n }, [isOpen, onClose]);\r\n\r\n useEffect(() => {\r\n document.querySelector(\"body\").classList.toggle(\"modal-open\", isOpen);\r\n if (document.querySelector(\".js-page-content-wrapper\")) {\r\n document\r\n .querySelector(\".js-page-content-wrapper\")\r\n .setAttribute(\"aria-hidden\", isOpen);\r\n }\r\n }, [isOpen]);\r\n\r\n const classes = cx(\"modal\", className, {\r\n \"is-open\": isOpen,\r\n \"modal--no-padding\": noPadding,\r\n });\r\n\r\n const modalNode = (\r\n
    \r\n
    \r\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\r\n
    \r\n \r\n
    \r\n {title}\r\n \r\n \r\n \r\n
    \r\n
    {childrenCache.current}
    \r\n {showPrintButton && (\r\n
    \r\n window.print()}\r\n >\r\n \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n\r\n return modalContainer\r\n ? ReactDOM.createPortal(modalNode, modalContainer)\r\n : null;\r\n};\r\n\r\nModal.propTypes = propTypes;\r\nexport default Modal;\r\n","import navMenu from \"../../common/NavMenu.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-nav-menu\").forEach((el, index) => {\r\n const config = {\r\n animationDelay: 500,\r\n closed: true,\r\n direction: \"vertical\",\r\n menuButton: \".js-nav-menu-button\",\r\n menuContainer: \".js-nav-menu-dropdown\",\r\n menuLink: \".js-nav-menu-dropdown a\",\r\n openClass: \"is-open\",\r\n onClose: null,\r\n onOpen: null,\r\n parent: el,\r\n };\r\n\r\n const menu = navMenu(config);\r\n });\r\n};\r\n","import React from \"react\";\r\nimport * as R from \"ramda\";\r\nimport cx from \"classnames\";\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport { number, func } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n totalResults: number.isRequired,\r\n resultsPerPage: number.isRequired,\r\n currentPage: number.isRequired,\r\n onPaginationChange: func.isRequired,\r\n};\r\n\r\nconst Pagination = (props) => {\r\n const { totalResults, resultsPerPage, currentPage, onPaginationChange } =\r\n props;\r\n\r\n const totalPages = Math.ceil(totalResults / resultsPerPage);\r\n\r\n const isHidden = (value, currentPage, totalPages) => {\r\n if (totalPages <= 8) {\r\n return false;\r\n }\r\n\r\n // current Page\r\n if (value === currentPage) {\r\n return false;\r\n }\r\n\r\n // first and last page\r\n if (value === 1 || value === totalPages) {\r\n return false;\r\n }\r\n\r\n // previous and next page\r\n if (value === currentPage - 1 || value === currentPage + 1) {\r\n return false;\r\n }\r\n\r\n // start or end position\r\n if (\r\n (currentPage <= 2 || currentPage >= totalPages - 1) &&\r\n (value <= 3 || value >= totalPages - 2)\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const renderPageButton = (value, currentPage, totalPages) => {\r\n const skipButton = isHidden(value, currentPage, totalPages);\r\n\r\n return (\r\n \r\n {skipButton ? (\r\n \r\n ) : (\r\n onPaginationChange(value)}\r\n data-gtm-element=\"dcl page button\"\r\n >\r\n {value}\r\n \r\n )}\r\n
    \r\n );\r\n };\r\n\r\n const renderButtons = (totalPages, currentPage) => {\r\n //R.range create an array from x to y of incrementing numbers\r\n return R.range(1, totalPages + 1).map((page) =>\r\n renderPageButton(page, currentPage, totalPages),\r\n );\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nPagination.propTypes = propTypes;\r\nexport default Pagination;\r\n","import throttle from \"lodash.throttle\";\r\nimport $ from \"jquery\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-privacy-banner\").forEach((el, index) => {\r\n const $el = $(el);\r\n const $acceptBtn = $el.find(\".js-accept-cookies\");\r\n const $closeBtn = $el.find(\".js-close-banner\");\r\n const $cookieName = $el.data(\"cookiename\");\r\n const handleResize = throttle(() => {\r\n $(\"body\").css({ paddingBottom: $el.outerHeight() });\r\n }, 150);\r\n init();\r\n\r\n function init() {\r\n if (!getCookie($cookieName)) {\r\n $el.removeClass(\"is-hidden\");\r\n //focus first link or button\r\n [...$el.find(\"a\"), ...$el.find(\"button\")][0].focus();\r\n bindEvents();\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n function bindEvents() {\r\n $(window).on(\"resize\", handleResize).resize();\r\n\r\n $acceptBtn.on(\"click\", (event) => handlePrivacy(true));\r\n $closeBtn.on(\"click\", (event) => handlePrivacy(false));\r\n }\r\n\r\n function handlePrivacy(accept) {\r\n if (accept) {\r\n //closed ithout accepting\r\n setCookie($cookieName, true, 90);\r\n } else {\r\n //closed without accepting\r\n setCookie($cookieName, true, 1);\r\n }\r\n\r\n $(\"body\").css({ paddingBottom: 0 });\r\n\r\n $(window).off(\"resize\", handleResize);\r\n }\r\n\r\n function setCookie(cname, cvalue, exdays) {\r\n const d = new Date();\r\n //exdays from now\r\n d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\r\n const expires = \"expires=\" + d.toUTCString();\r\n document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/\";\r\n $el.addClass(\"is-hidden\");\r\n }\r\n\r\n function getCookie(cname) {\r\n var name = cname + \"=\";\r\n var ca = document.cookie.split(\";\");\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == \" \") {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return false;\r\n }\r\n });\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {} from \"prop-types\";\r\nimport throttle from \"lodash.throttle\";\r\n\r\nconst propTypes = {};\r\n\r\nconst ProgressBar = (props) => {\r\n const setMax = () => {\r\n const windowHeight = window.innerHeight;\r\n const documentHeight = document.body.clientHeight;\r\n return documentHeight - windowHeight;\r\n };\r\n\r\n const initialValue = 100;\r\n const [progressMax, setProgressMax] = useState(setMax());\r\n const [progressValue, setProgressValue] = useState(initialValue);\r\n\r\n useEffect(() => {\r\n const throttledScroll = throttle(() => {\r\n const newValue =\r\n window.pageYOffset > initialValue ? window.pageYOffset : initialValue;\r\n setProgressValue(newValue);\r\n setProgressMax(setMax());\r\n }, 100);\r\n\r\n window.addEventListener(\"scroll\", throttledScroll);\r\n\r\n return () => {\r\n window.removeEventListener(\"scroll\", throttledScroll);\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n const resetMax = () => {\r\n setProgressMax(setMax());\r\n };\r\n\r\n window.addEventListener(\"resize\", resetMax);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", resetMax);\r\n };\r\n });\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nProgressBar.propTypes = propTypes;\r\nexport default ProgressBar;\r\n","import React, { useState } from \"react\";\r\nimport cx from \"classnames\";\r\nimport Icon from \"../Icon/Icon.jsx\";\r\n\r\nimport { object, string, arrayOf, shape, bool } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n dictionary: object,\r\n backgroundColor: string,\r\n legal: string,\r\n questions: arrayOf(\r\n shape({\r\n question: string,\r\n eyebrow: string,\r\n subtext: string,\r\n description: string,\r\n options: arrayOf(\r\n shape({\r\n title: string, // answer ttext\r\n answerText: string,\r\n isCorrect: bool,\r\n }),\r\n ),\r\n }),\r\n ),\r\n};\r\n\r\n/**\r\n * A component that allows you to answer questions\r\n * from the data given.\r\n *\r\n * @param {object} props\r\n * @property {object} model\r\n * @property {object} dictionary\r\n * data from sitecore\r\n *\r\n * @variable {string} statusOfQuestion useState variable that will show the answerText after an answer button is pressed\r\n * @variable {object} currentQuestion useState variable of the current question in the original model.question array\r\n * @variable {number} indexInQuestions useState variable the current index being used to keep track where you are in the array\r\n * @variable {bool} isAnswered useState variable if the answer button has been clicked or not\r\n * @variable {number} trackClick useState variable of the click index of the answer button\r\n * @variable {bool} isDisabled useState variable for the answer buttons if they should be disabled or not\r\n * @variable {object} cn classNames\r\n *\r\n * @func handleAnswer\r\n * onClick event for answer buttons that set the state for multiple variables\r\n *\r\n * @func handleNextQuestion onClick event for next question button. Sets up the state for the next question in the orginal array\r\n * @func iconTemplate A template for the icons in the answer buttons\r\n *\r\n * @returns \r\n *\r\n * quiz--dark on the mount\r\n * if there is a color passed in the model then add container--background to the below what would be the js-mount\r\n * darkmode just changes the color we need to pass the bg color in\r\n */\r\n\r\nconst Quiz = (props) => {\r\n const { backgroundColor, legal, questions = [], dictionary } = props;\r\n\r\n const [statusOfQuestion, setStatusOfQuestion] = useState();\r\n const [currentQuestion, setCurrentQuestion] = useState(questions[0]);\r\n const [indexInQuestions, setIndexInQuestions] = useState(1);\r\n const [isAnswered, setIsAnswered] = useState(false);\r\n const [trackClick, setTrackClick] = useState(0);\r\n const [isDisabled, setIsDisabled] = useState(false);\r\n\r\n // Quiz doesn't do anything without questions.\r\n if (!questions || questions.length < 1) {\r\n return null;\r\n }\r\n\r\n const cn = cx(\"quiz\", {\r\n \"quiz--background\": backgroundColor,\r\n });\r\n\r\n const backgroundStyle = backgroundColor\r\n ? { \"--background-color\": backgroundColor }\r\n : {};\r\n\r\n const handleAnswer = (idx) => {\r\n setIsAnswered(true);\r\n setTrackClick(idx);\r\n setIsDisabled(true);\r\n setStatusOfQuestion(currentQuestion.options[idx].answerText);\r\n };\r\n\r\n const handleNextQuestion = () => {\r\n setIndexInQuestions(indexInQuestions + 1);\r\n setCurrentQuestion(questions[indexInQuestions]);\r\n setStatusOfQuestion(\"\");\r\n setIsDisabled(false);\r\n setIsAnswered(false);\r\n };\r\n\r\n const iconTemplate = (idx) => {\r\n let icon;\r\n if (currentQuestion.options[idx].isCorrect && isAnswered) {\r\n icon = ;\r\n } else if (\r\n isAnswered &&\r\n !currentQuestion.options[idx].isCorrect &&\r\n trackClick === idx\r\n ) {\r\n icon = ;\r\n } else {\r\n icon = null;\r\n }\r\n return icon;\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {currentQuestion && (\r\n
    \r\n
    \r\n
    \r\n {currentQuestion.eyebrow}\r\n {`${indexInQuestions}/${questions.length}`}\r\n
    \r\n

    \r\n {currentQuestion.question}\r\n

    \r\n

    {currentQuestion.subtext}

    \r\n
    \r\n
    \r\n
      \r\n {currentQuestion.options.map((answer, idx) => (\r\n \r\n handleAnswer(idx)}\r\n disabled={isDisabled}\r\n >\r\n {answer.title}\r\n {iconTemplate(idx)}\r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n {currentQuestion.description && !statusOfQuestion && (\r\n
    \r\n )}\r\n {statusOfQuestion && (\r\n
    \r\n

    \r\n {statusOfQuestion}\r\n \r\n {dictionary.ariaInCorrect}\r\n \r\n

    \r\n {indexInQuestions !== questions.length && (\r\n handleNextQuestion()}\r\n >\r\n {dictionary.nextQuestion}\r\n \r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n );\r\n};\r\nQuiz.propTypes = propTypes;\r\nexport default Quiz;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport Quiz from \"./appQuiz.jsx\";\r\n\r\nexport default function renderQuiz() {\r\n document.querySelectorAll(\".js-quiz-mount\").forEach((mount) => {\r\n const dictionary = JSON.parse(mount.dataset.dictionary);\r\n const model = JSON.parse(mount.dataset.model);\r\n\r\n ReactDom.render(, mount);\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { arrayOf, shape, string, oneOf, object } from \"prop-types\";\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\nimport parseISO from \"date-fns/parseISO/index.js\";\r\nimport format from \"date-fns/format/index.js\";\r\n\r\nconst propTypes = {\r\n applyLinkText: string.isRequired,\r\n detailsLinkText: string.isRequired,\r\n applicationDueText: string.isRequired,\r\n items: arrayOf(\r\n shape({\r\n title: string,\r\n summary: string,\r\n url: string,\r\n applicationStatus: oneOf([\"Upcoming\", \"Open\", \"Closed\"]),\r\n applicationDueDate: string,\r\n information: arrayOf(string),\r\n applyLink: shape({\r\n url: string,\r\n text: string,\r\n target: string,\r\n }),\r\n }),\r\n ),\r\n focusRef: object,\r\n};\r\n\r\nconst RFPListing = (props) => {\r\n const {\r\n applyLinkText,\r\n detailsLinkText,\r\n applicationDueText,\r\n items,\r\n focusRef,\r\n } = props;\r\n\r\n return items && items.length > 0 ? (\r\n
    \r\n {items &&\r\n items.map((item, i) => (\r\n
    \r\n {item.title && (\r\n \r\n {item.url ? (\r\n \r\n {item.title}\r\n \r\n ) : (\r\n item.title\r\n )}\r\n
    \r\n )}\r\n {item.summary && (\r\n
    {item.summary}
    \r\n )}\r\n\r\n {item.applicationDueDate && (\r\n
    \r\n
    \r\n {applicationDueText && (\r\n
    \r\n {applicationDueText}\r\n
    \r\n )}\r\n\r\n
    \r\n {/* https://date-fns.org/v1.28.5/docs/format */}\r\n {format(parseISO(item.applicationDueDate), \"PP\").toString()}\r\n
    \r\n
    \r\n
    \r\n )}\r\n {item.url && detailsLinkText && (\r\n
    \r\n \r\n
    \r\n )}\r\n {item.applyLink && item.applicationStatus === \"Open\" && (\r\n
    \r\n \r\n {applyLinkText}\r\n \r\n
    \r\n )}\r\n\r\n {item.information && (\r\n
    \r\n {item.information.map((info, i, arr) => (\r\n \r\n {info}\r\n {arr.length - 1 !== i ? (\r\n   /  \r\n ) : null}\r\n \r\n ))}\r\n
    \r\n )}\r\n \r\n ))}\r\n
    \r\n ) : null;\r\n};\r\n\r\nRFPListing.propTypes = propTypes;\r\nexport default RFPListing;\r\n","import { collapseSection, expandSection } from \"../../common/initAccordions.js\";\r\nimport uniqueid from \"lodash.uniqueid\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-read-more\").forEach((el, index) => {\r\n const container = el.closest(\".container__col\");\r\n const button = el.querySelector(\"button\");\r\n const height = el.dataset.height;\r\n const id = uniqueid(\"readMore-\");\r\n const buttonId = uniqueid(\"readMore-\");\r\n\r\n if (!container) {\r\n return;\r\n }\r\n\r\n container.classList.add(\"read-more__container\");\r\n container.setAttribute(\"tabindex\", \"-1\");\r\n container.setAttribute(\"id\", id);\r\n container.setAttribute(\"aria-labelledby\", buttonId);\r\n container.style.transition = \"height 500ms ease\";\r\n\r\n collapseSection(container);\r\n\r\n if (height) {\r\n container.style.minHeight = `min(100vh, ${height}px)`;\r\n }\r\n\r\n button.setAttribute(\"aria-controls\", id);\r\n button.setAttribute(\"id\", buttonId);\r\n\r\n button.addEventListener(\"click\", (e) => {\r\n button.setAttribute(\"aria-expanded\", \"true\");\r\n expandSection(container);\r\n container.focus();\r\n container.classList.add(\"read-more__container--open\");\r\n });\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { shape, string, number, func } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n query: string,\r\n request: shape({\r\n page: number,\r\n perPage: number,\r\n }),\r\n resultsInfoLabel: string,\r\n totalResults: number.isRequired,\r\n onClearFacets: func,\r\n clearAllFacetsLabel: string,\r\n};\r\n\r\nconst ResultsInfo = (props) => {\r\n const {\r\n query,\r\n request,\r\n resultsInfoLabel,\r\n totalResults,\r\n onClearFacets,\r\n clearAllFacetsLabel,\r\n } = props;\r\n\r\n const renderCurrentResultsRange = (currentPage, resultsPerPage) => {\r\n //ensure base 10 number\r\n const currentPageNumber = parseInt(currentPage, 10);\r\n const resultsPerPageNumber = parseInt(resultsPerPage, 10);\r\n\r\n // Upper bound of visible results\r\n let ceiling = currentPageNumber * resultsPerPageNumber;\r\n\r\n // Lower bound of visible results\r\n let floor = ceiling - resultsPerPageNumber + 1;\r\n\r\n // make sure the ceiling does not exceed total results\r\n if (ceiling > totalResults) {\r\n ceiling = totalResults;\r\n }\r\n\r\n // if results are only one page, eschew the range entirely\r\n if (totalResults <= resultsPerPageNumber) {\r\n return ` ${totalResults}`;\r\n }\r\n\r\n // otherwise, return the full range\r\n return ` ${floor} - ${ceiling}`;\r\n };\r\n\r\n return (\r\n
    \r\n {resultsInfoLabel && (\r\n {resultsInfoLabel}\r\n )}\r\n {request && (\r\n \r\n {renderCurrentResultsRange(request.page, request.perPage)}\r\n \r\n )}\r\n {totalResults > 0 && (\r\n \r\n of{\" \"}\r\n {`${totalResults}`}\r\n \r\n )}\r\n {query && (\r\n \r\n for {`“${query}”`}\r\n \r\n )}\r\n {onClearFacets && (\r\n \r\n {clearAllFacetsLabel ? clearAllFacetsLabel : \"Clear All\"}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nResultsInfo.propTypes = propTypes;\r\nexport default ResultsInfo;\r\n","export default function scTracking(event, params) {\r\n if (!event) return false;\r\n\r\n var url = \"\";\r\n\r\n switch (event) {\r\n case \"share\":\r\n url = \"/api/tracking/share\";\r\n break;\r\n case \"socialfollow\":\r\n url = \"/api/tracking/socialfollow\";\r\n break;\r\n case \"download\":\r\n url = \"/api/tracking/download\";\r\n break;\r\n case \"videoplay\":\r\n url = \"/api/tracking/videoplay\";\r\n break;\r\n case \"interstitialtriggered\":\r\n url = \"/api/tracking/interstitialtriggered\";\r\n break;\r\n case \"email1\":\r\n url = `/api/tracking/email?email=${params.email}&goalId=${params.goal}`;\r\n break;\r\n case \"email2\":\r\n url = \"/api/tracking/email?goalId=\" + params.goal;\r\n break;\r\n default:\r\n return false;\r\n }\r\n\r\n fetch(url, {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n })\r\n .then((response) => {\r\n return;\r\n })\r\n .catch((error) => {\r\n console.error(\"SC Tracking Error: \", error);\r\n });\r\n}\r\n","export default () => {\r\n document.querySelectorAll(\".js-rich-text\").forEach((rte) => {\r\n rte.querySelectorAll(\".js-rte-scroll-into-view\").forEach((el) => {\r\n // check for when the embed enters from the bottom\r\n const enterPageObserver = new IntersectionObserver(\r\n (entries, observer) => {\r\n // using setTimeout to ignore the affect when jump links are clicked\r\n entries.forEach((entry, i) => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add(\"scrolled-into-view\");\r\n } else {\r\n entry.target.classList.remove(\"scrolled-into-view\");\r\n }\r\n });\r\n },\r\n {\r\n root: null,\r\n rootMargin: \"0px 0px -50%\",\r\n threshold: 0,\r\n },\r\n );\r\n\r\n enterPageObserver.observe(el);\r\n\r\n const markCoveredItems = () => {\r\n rte\r\n .querySelectorAll(\".is-covered\")\r\n .forEach((el) => el.classList.remove(\"is-covered\"));\r\n\r\n const tops = rte.querySelectorAll(\".at-top\");\r\n // mark all but the last one \"length - 1\"\r\n for (let i = 0; i < tops.length - 1; i++) {\r\n tops[i].classList.add(\"is-covered\");\r\n }\r\n };\r\n\r\n // check for when the embed reaches the top of the page\r\n const pageTopObserver = new IntersectionObserver(\r\n (entries, observer) => {\r\n entries.forEach((entry, i) => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add(\"at-top\");\r\n markCoveredItems();\r\n } else {\r\n entry.target.classList.remove(\"at-top\");\r\n markCoveredItems();\r\n }\r\n });\r\n },\r\n {\r\n root: null,\r\n rootMargin: \"0px 0px -80%\",\r\n threshold: 0,\r\n },\r\n );\r\n\r\n pageTopObserver.observe(el);\r\n });\r\n });\r\n};\r\n","export default () => {\r\n document.querySelectorAll(\".js-scrolling-tiles-full-width\").forEach((els) => {\r\n els\r\n .querySelectorAll(\".js-scrolling-tiles-full-width__content\")\r\n .forEach((el, i) => {\r\n // check for when the embed enters from the bottom\r\n const enterPageObserver = new IntersectionObserver(\r\n (entries, observer) => {\r\n // using setTimeout to ignore the affect when jump links are clicked\r\n entries.forEach((entry, i) => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add(\r\n \"scrolling-tiles-full-width__content--in-view\",\r\n );\r\n entry.target.classList.remove(\r\n \"scrolling-tiles-full-width__content--not-in-view\",\r\n );\r\n } else {\r\n entry.target.classList.remove(\r\n \"scrolling-tiles-full-width__content--in-view\",\r\n );\r\n entry.target.classList.add(\r\n \"scrolling-tiles-full-width__content--not-in-view\",\r\n );\r\n }\r\n });\r\n },\r\n {\r\n root: null,\r\n rootMargin: \"0px 0px -50%\",\r\n threshold: 0,\r\n },\r\n );\r\n enterPageObserver.observe(el);\r\n });\r\n els\r\n .querySelectorAll(\".js-scrolling-tiles-full-width__image\")\r\n .forEach((el, i) => {\r\n const observerOptions = {\r\n root: null,\r\n threshold: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1],\r\n };\r\n const observerCallback = (entries) => {\r\n entries.forEach((entry) => {\r\n entry.target.style.opacity = entry.intersectionRatio;\r\n });\r\n };\r\n const observer = new IntersectionObserver(\r\n observerCallback,\r\n observerOptions,\r\n );\r\n observer.observe(\r\n el.querySelector(\".js-scrolling-tiles-full-width__media-wrapper\"),\r\n );\r\n });\r\n });\r\n};\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { string, object } from \"prop-types\";\r\nimport uniqueid from \"lodash.uniqueid\";\r\nimport cx from \"classnames\";\r\n\r\nimport useClickAway from \"../../common/useClickAway.js\";\r\n\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport TextInput from \"../Form/TextInput.jsx\";\r\n\r\nconst propTypes = {\r\n label: string,\r\n textInput: object,\r\n searchUrl: string,\r\n buttonText: string,\r\n placeholder: string,\r\n};\r\n\r\n// Component is used as both React and Vanilla JS so the `js-classes` are required\r\nconst SearchBox = (props) => {\r\n const { label, textInput, searchUrl, buttonText = \"Search\" } = props;\r\n\r\n const searchId = uniqueid(\"site-search\");\r\n const placeholder =\r\n (textInput && textInput.placholder) || props.placeholder || \"\";\r\n\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const inputRef = useRef();\r\n const buttonRef = useRef();\r\n const containerRef = useClickAway({\r\n isOpen: isOpen,\r\n setOpen: setIsOpen,\r\n });\r\n\r\n // initializing timeout to be the correct type to avoid errors.\r\n let timeout = setTimeout(() => {}, 1);\r\n\r\n const handleToggleClick = () => {\r\n clearTimeout(timeout);\r\n if (!isOpen) {\r\n timeout = setTimeout(() => {\r\n inputRef.current.focus();\r\n }, 800);\r\n }\r\n\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n const handleButtonKeyDown = (e) => {\r\n if (e.key === \"Tab\" && !e.shiftKey) {\r\n e.preventDefault();\r\n setIsOpen(false);\r\n buttonRef.current.focus();\r\n }\r\n };\r\n\r\n const handleInputKeyDown = (e) => {\r\n if (e.key === \"Tab\" && e.shiftKey) {\r\n e.preventDefault();\r\n setIsOpen(false);\r\n buttonRef.current.focus();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (e) => {\r\n if (e.key === \"Esc\" || e.key === \"Escape\") {\r\n setIsOpen(false);\r\n buttonRef.current.focus();\r\n }\r\n };\r\n\r\n if (isOpen) {\r\n document.addEventListener(\"keydown\", handleKeyDown);\r\n } else {\r\n document.removeEventListener(\"keydown\", handleKeyDown);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleKeyDown);\r\n };\r\n }, [isOpen]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    {label || \"Search\"}
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {buttonText}\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nSearchBox.propTypes = propTypes;\r\nexport default SearchBox;\r\n","export default () => {\r\n document.querySelectorAll(\".js-search-box\").forEach((el) => {\r\n const toggleButton = el.querySelector(\".js-search-box-toggle-button\");\r\n const form = el.querySelector(\".js-search-box-form\");\r\n const input = form.querySelector(\"input\");\r\n const dropdown = el.querySelector(\".js-search-box-content\");\r\n\r\n let timeout = setTimeout(() => {}, 0);\r\n\r\n let expanded =\r\n toggleButton.getAttribute(\"aria-expanded\") === \"true\" ? true : false;\r\n\r\n // set state to match button state\r\n expanded ? open() : close(false);\r\n\r\n bindEvents();\r\n\r\n function bindEvents() {\r\n toggleButton.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n // e.stopPropagation(); // prevent click away from firing\r\n\r\n expanded ? close(true) : open();\r\n });\r\n\r\n form.addEventListener(\"keyup\", (e) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n close(true);\r\n }\r\n });\r\n }\r\n\r\n function open() {\r\n expanded = true;\r\n toggleButton.setAttribute(\"aria-expanded\", true);\r\n el.classList.add(\"search-box--open\");\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n input.focus();\r\n }, 800);\r\n\r\n document.querySelector(\"body\").addEventListener(\"click\", clickAway);\r\n }\r\n\r\n function close(focus) {\r\n expanded = false;\r\n toggleButton.setAttribute(\"aria-expanded\", false);\r\n el.classList.remove(\"search-box--open\");\r\n clearTimeout(timeout);\r\n\r\n if (focus) {\r\n toggleButton.focus();\r\n }\r\n\r\n document.querySelector(\"body\").removeEventListener(\"click\", clickAway);\r\n }\r\n\r\n function clickAway(e) {\r\n if (!el.contains(e.target) && expanded) {\r\n close(false);\r\n }\r\n }\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { array } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n sidebar: array,\r\n};\r\n\r\nconst AdditionalPrograms = (props) => {\r\n const { sidebar } = props;\r\n\r\n return (\r\n <>\r\n
    Related
    \r\n {sidebar.map((item, ind) => (\r\n
    \r\n
    \r\n {item.contentType}\r\n
    \r\n
    \r\n {item.title}\r\n
    \r\n
    \r\n {item.summary}\r\n
    \r\n {item.additionalLinks.length > 0 && (\r\n
    \r\n
    \r\n Additional Programs:\r\n
    \r\n {item.additionalLinks.map((link, indd) => (\r\n \r\n {link.title}\r\n \r\n ))}\r\n
    \r\n )}\r\n
    \r\n ))}\r\n \r\n );\r\n};\r\n\r\nAdditionalPrograms.propTypes = propTypes;\r\nexport default AdditionalPrograms;\r\n","import React from \"react\";\r\nimport { shape, string, number } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n grantBox: shape({\r\n numberOfGrants: number,\r\n }),\r\n query: string,\r\n grantSearchUrl: string,\r\n};\r\n\r\nconst GrantsCallout = (props) => {\r\n const { query, grantBox, grantSearchUrl } = props;\r\n\r\n if (!query || !grantBox) return null;\r\n return (\r\n
    \r\n
    \r\n
    \r\n See \"{query}\" in Committed Grants\r\n
    \r\n \r\n {grantBox.numberOfGrants} Grants found\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nGrantsCallout.propTypes = propTypes;\r\nexport default GrantsCallout;\r\n","import React, { useEffect, useState, useRef, useMemo } from \"react\";\r\nimport { string, bool, arrayOf, shape, objectOf } from \"prop-types\";\r\n\r\nimport cx from \"classnames\";\r\n\r\nimport initialState from \"./initialState.js\";\r\n\r\nimport fetchSearchResults from \"../../common/fetchSearchResults.js\";\r\nimport {\r\n initCurrentParams,\r\n createQueryString,\r\n} from \"../../common/dynamicSearch.js\";\r\n\r\nimport { scrollToId } from \"../../common/scrollHelpers.js\";\r\n\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\n\r\nimport Pagination from \"../Pagination/Pagination.jsx\";\r\nimport ResultsInfo from \"../ResultsInfo/ResultsInfo.jsx\";\r\nimport SimpleSearchBox from \"../SimpleSearchBox/SimpleSearchBox.jsx\";\r\nimport LoadingSpinner from \"../LoadingSpinner/LoadingSpinner.jsx\";\r\nimport GrantsCallout from \"./GrantsCallout.jsx\";\r\nimport AdditionalPrograms from \"./AdditionalPrograms.jsx\";\r\nimport ManualContentListing from \"../ManualContentListing/ManualContentListing.jsx\";\r\n\r\nconst propTypes = {\r\n id: string,\r\n title: string,\r\n enableQueryString: bool,\r\n useRightSidebar: bool,\r\n pagination: bool,\r\n search: bool,\r\n hideMobileSummary: bool,\r\n url: string.isRequired,\r\n type: string,\r\n grantSearchUrl: string,\r\n dictionary: objectOf(string).isRequired,\r\n query: shape({\r\n listingId: string,\r\n showSummaries: bool,\r\n showDates: bool,\r\n showContentTypes: bool,\r\n showImages: string,\r\n loadAllPages: bool,\r\n pageId: string,\r\n }).isRequired,\r\n seeMore: shape({ href: string, text: string }),\r\n sorters: arrayOf(\r\n shape({\r\n direction: string,\r\n label: string,\r\n value: string,\r\n isActive: bool,\r\n id: string,\r\n }),\r\n ),\r\n};\r\n\r\nconst SearchComponent = (props) => {\r\n const {\r\n id,\r\n title,\r\n enableQueryString,\r\n useRightSidebar,\r\n pagination,\r\n search,\r\n hideMobileSummary,\r\n url,\r\n type,\r\n dictionary,\r\n query,\r\n grantSearchUrl,\r\n seeMore,\r\n sorters,\r\n } = props;\r\n\r\n const activeSorterParam = useMemo(() => {\r\n const activeSorter = sorters.find((sorter) => sorter.isActive) || null;\r\n\r\n return activeSorter\r\n ? {\r\n sortBy: activeSorter.value,\r\n sortOrder: activeSorter.direction,\r\n }\r\n : null;\r\n }, [sorters]);\r\n\r\n const generalParams = {\r\n ...initialState.query,\r\n ...query,\r\n ...activeSorterParam,\r\n };\r\n\r\n const [showOverlay, setShowOverlay] = useState(false);\r\n const [serverData, setServerData] = useState(null);\r\n\r\n //initialize the query to that of the query string if it exists\r\n const [currentParams, setCurrentParams] = useState(\r\n initCurrentParams(window.location.search, generalParams),\r\n );\r\n\r\n const resultsFocusRef = useRef();\r\n const showFocusRef = useRef({ showFocus: false });\r\n\r\n useEffect(() => {\r\n if (new URL(document.location).searchParams.get(\"q\")) {\r\n scrollToId(id);\r\n setTimeout(() => {\r\n document.querySelector(`#${id} .simple-search-box__input`).focus();\r\n }, 1000);\r\n }\r\n }, [id]);\r\n\r\n //update the url with the latest query parameters\r\n useEffect(() => {\r\n if (enableQueryString) {\r\n const queryString = createQueryString(currentParams);\r\n if (queryString.length > 0) {\r\n window.history.replaceState(\r\n \"\",\r\n \"\",\r\n window.location.origin +\r\n window.location.pathname +\r\n \"?\" +\r\n createQueryString(currentParams) +\r\n window.location.hash,\r\n );\r\n } else {\r\n window.history.replaceState(\r\n \"\",\r\n \"\",\r\n window.location.origin +\r\n window.location.pathname +\r\n window.location.hash,\r\n );\r\n }\r\n }\r\n }, [currentParams, enableQueryString]);\r\n\r\n useEffect(() => {\r\n if (resultsFocusRef.current && showFocusRef.current.showFocus) {\r\n //move the focus back to the top of the results on page change\r\n resultsFocusRef.current.focus();\r\n showFocusRef.current.showFocus = false;\r\n }\r\n }, [serverData]);\r\n\r\n useEffect(() => {\r\n const controller = new AbortController();\r\n const signal = controller.signal;\r\n\r\n setShowOverlay(true);\r\n\r\n fetchSearchResults(\r\n url,\r\n {\r\n ...currentParams,\r\n },\r\n type,\r\n signal,\r\n )\r\n .then(function (data) {\r\n if (data) {\r\n setServerData(data);\r\n }\r\n })\r\n .catch(function (e) {\r\n if (e.name === \"AbortError\") {\r\n return; // Continuation logic has already been skipped, so return normally\r\n }\r\n console.warn(\"request error: \" + e.message);\r\n })\r\n .finally(function () {\r\n setShowOverlay(false);\r\n });\r\n // unmounts or data changes\r\n return () => {\r\n controller.abort();\r\n };\r\n }, [currentParams, type, url]);\r\n\r\n const handleQueryChange = (term) => {\r\n if (currentParams.q === term) {\r\n return;\r\n }\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, q: term, page: 1 };\r\n });\r\n };\r\n\r\n const handlePaginationChange = (page) => {\r\n showFocusRef.current.showFocus = true;\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, page: page };\r\n });\r\n scrollToId(`${id}-results`);\r\n };\r\n\r\n const classModifier = `dynamic-content-listing--${type}`;\r\n const showSortersArea = serverData && sorters && sorters.length > 0;\r\n\r\n return (\r\n \r\n {title &&

    {title}

    }\r\n {search && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n
    \r\n
    \r\n {serverData &&\r\n showSortersArea &&\r\n (type === \"default\" ||\r\n type === \"grantee\" ||\r\n type === \"search-component\") && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n\r\n {serverData && serverData.results && (\r\n \r\n {showOverlay && }\r\n
    \r\n {serverData.results.length > 0 && (\r\n \r\n )}\r\n {serverData.grantBox &&\r\n serverData.grantBox.numberOfGrants > 0 &&\r\n currentParams.page === 1 && (\r\n \r\n )}\r\n {serverData.results.length > 1 && (\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n {serverData &&\r\n pagination &&\r\n serverData.totalResults > serverData.request.perPage && (\r\n \r\n \r\n {seeMore.href && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n
    \r\n {serverData &&\r\n serverData.sidebar &&\r\n serverData.totalResults > 0 &&\r\n currentParams.page === 1 &&\r\n useRightSidebar === true && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nSearchComponent.propTypes = propTypes;\r\nexport default SearchComponent;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport SearchComponent from \"./SearchComponent.jsx\";\r\n\r\nexport default function renderSearchComponent() {\r\n document\r\n .querySelectorAll(\".js-search-component-mount\")\r\n .forEach((mount, i) => {\r\n const dictionary = JSON.parse(mount.dataset.dictionary) || null;\r\n const query = JSON.parse(mount.dataset.query) || {};\r\n const dataModel = JSON.parse(mount.dataset.model);\r\n const showQueryStrings =\r\n dataModel.enableQueryString &&\r\n !document.querySelector(\"body.is-page-editor\");\r\n\r\n const seeMore = {\r\n href: dataModel.seeMoreUrl,\r\n text: (dictionary && dictionary.seeMore) || \"\",\r\n };\r\n\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n","import React, { useMemo, useRef } from \"react\";\r\nimport { func, string, array } from \"prop-types\";\r\nimport { allSelectedFacetIds } from \"../../../common/dynamicSearch.js\";\r\nimport uniqueId from \"lodash.uniqueid\";\r\n\r\nimport Icon from \"../../Icon/Icon.jsx\";\r\n\r\nconst propTypes = {\r\n label: string,\r\n clearLabel: string,\r\n facets: array,\r\n onClearItem: func,\r\n onClearAll: func,\r\n};\r\n\r\nconst SelectedFilters = (props) => {\r\n const { label, clearLabel, facets, onClearItem, onClearAll } = props;\r\n\r\n const labelId = useRef(uniqueId(\"selected-filter-label-\"));\r\n\r\n const pills = useMemo(() => {\r\n if (facets) {\r\n return allSelectedFacetIds(facets);\r\n } else {\r\n return [];\r\n }\r\n }, [facets]);\r\n\r\n if (pills.length < 1) {\r\n return null;\r\n }\r\n\r\n pills.sort((a, b) => (a.value < b.value ? -1 : 1));\r\n\r\n return (\r\n
    \r\n {label && (\r\n
    \r\n {label}\r\n
    \r\n )}\r\n {pills?.length > 0 && (\r\n \r\n {pills.map((item, index) => (\r\n
  • \r\n {\r\n onClearItem(item.facetGroupId, item.facetValue);\r\n }}\r\n >\r\n {item.facetName}\r\n \r\n \r\n
  • \r\n ))}\r\n {pills?.length > 1 && onClearAll && (\r\n
  • \r\n {\r\n onClearAll();\r\n }}\r\n >\r\n {clearLabel || \"Clear\"}\r\n \r\n \r\n
  • \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\nSelectedFilters.propTypes = propTypes;\r\nexport default SelectedFilters;\r\n","import navMenu from \"../../common/NavMenu.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-secondary-nav\").forEach((el, index) => {\r\n const config = {\r\n animationDelay: 500,\r\n closed: true,\r\n direction: \"vertical\",\r\n menuButton: \".js-nav-toggle\",\r\n menuContainer: \".js-menu\",\r\n menuLink: \".js-menu a[href]\",\r\n openClass: \"is-open\",\r\n onClose: null,\r\n onOpen: null,\r\n parent: el,\r\n };\r\n\r\n const menu = navMenu(config);\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { object, string, bool, oneOf } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\n\r\nconst propTypes = {\r\n cta: object,\r\n title: string.isRequired,\r\n subtitle: string,\r\n centered: bool,\r\n noBorder: bool,\r\n darkTheme: bool,\r\n stacked: bool,\r\n size: oneOf([\"\", \"large\", \"small\", \"x-small\"]),\r\n};\r\n\r\nconst sectionHeadline = (props) => {\r\n const { cta, title, subtitle, size, centered, noBorder, darkTheme, stacked } =\r\n props;\r\n\r\n const titleClass =\r\n size && size !== \"\" ? `section-headline__title--${size}` : \"\";\r\n\r\n return (\r\n \r\n

    {title}

    \r\n {!stacked && cta && cta.href && (\r\n
    \r\n \r\n
    \r\n )}\r\n {subtitle && (\r\n \r\n )}\r\n {stacked && cta && cta.href && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nsectionHeadline.propTypes = propTypes;\r\nexport default sectionHeadline;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { bool, array, string } from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport useClickAway from \"../../common/useClickAway.js\";\r\nimport ShareIcons from \"../ShareIcons/ShareIcons.jsx\";\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport useMatchMedia from \"../../common/useMatchMedia.js\";\r\n\r\nconst propTypes = {\r\n dictionaryText: string.isRequired,\r\n enableCopy: bool.isRequired,\r\n copyText: string,\r\n orientation: string,\r\n shares: array.isRequired,\r\n shareCopy: string,\r\n shareTitle: string,\r\n defaultExpanded: bool,\r\n};\r\n\r\nlet copyTimeoutId;\r\n// From _breakpoints.scss\r\nconst desktopMediaQuery = \"(min-width: 911px)\";\r\n\r\nconst ShareBar = (props) => {\r\n const {\r\n dictionaryText,\r\n enableCopy,\r\n copyText,\r\n orientation,\r\n shares,\r\n shareCopy,\r\n shareTitle,\r\n defaultExpanded = false,\r\n } = props;\r\n const [displayShare, setDisplayShare] = useState(() => {\r\n const isDesktop = window.matchMedia(desktopMediaQuery).matches;\r\n if (orientation === \"vertical\" && !isDesktop) {\r\n return false;\r\n } else if (orientation === \"vertical\" && isDesktop) {\r\n return true;\r\n } else {\r\n return defaultExpanded;\r\n }\r\n });\r\n const isDesktop = useMatchMedia(desktopMediaQuery, (matches) => {\r\n // For vertical orientation, show on viewport change to desktop,\r\n // hide on change to mobile\r\n if (orientation === \"vertical\") setDisplayShare(matches);\r\n });\r\n const shareBarRef = useClickAway({\r\n isOpen: displayShare,\r\n setOpen: setDisplayShare,\r\n disallow: orientation === \"vertical\" && isDesktop,\r\n });\r\n const [copied, setCopied] = useState(false);\r\n\r\n const inputRef = useRef();\r\n\r\n const handleCopy = (e) => {\r\n if (copyTimeoutId) clearTimeout(copyTimeoutId);\r\n setCopied(true);\r\n inputRef.current.setAttribute(\"type\", \"text\");\r\n inputRef.current.focus();\r\n inputRef.current.select();\r\n document.execCommand(\"copy\");\r\n inputRef.current.blur();\r\n inputRef.current.setAttribute(\"type\", \"hidden\");\r\n\r\n copyTimeoutId = setTimeout(() => {\r\n copyTimeoutId = null;\r\n setCopied(false);\r\n }, 3000);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {orientation === \"horizontal\" || !isDesktop ? (\r\n setDisplayShare(!displayShare)}\r\n type=\"button\"\r\n >\r\n {dictionaryText}\r\n \r\n Expand share menu\r\n \r\n \r\n ) : (\r\n
    {dictionaryText}
    \r\n )}\r\n
    \r\n \r\n
    \r\n \r\n {enableCopy && (\r\n
    \r\n \r\n \r\n Copy\r\n \r\n \r\n Copied\r\n
    \r\n
    \r\n )}\r\n \r\n \r\n {enableCopy && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nShareBar.propTypes = propTypes;\r\nexport default ShareBar;\r\n","import React from \"react\";\r\nimport { object } from \"prop-types\";\r\n\r\nconst propTypes = { data: object };\r\n\r\nconst ShareBarMount = (props) => {\r\n return (\r\n \r\n );\r\n};\r\nShareBarMount.propTypes = propTypes;\r\nexport default ShareBarMount;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport ShareBar from \"./ShareBar.jsx\";\r\n\r\nexport default function renderShareBar() {\r\n document.querySelectorAll(\".js-share-bar-mount\").forEach((mount) => {\r\n const data = JSON.parse(mount.dataset.model);\r\n\r\n ReactDom.render(, mount);\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { arrayOf, func, string, oneOf, shape } from \"prop-types\";\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport scTracking from \"../SCTracking/sc-tracking.js\";\r\n\r\nconst propTypes = {\r\n onShare: func,\r\n orientation: oneOf([\"horizontal\", \"vertical\"]).isRequired,\r\n shares: arrayOf(\r\n shape({\r\n type: string.isRequired,\r\n icon: string.isRequired,\r\n name: string.isRequired,\r\n }),\r\n ).isRequired,\r\n shareCopy: string,\r\n shareTitle: string,\r\n};\r\n\r\nconst ShareIcons = (props) => {\r\n const { onShare, orientation, shares, shareCopy, shareTitle } = props;\r\n\r\n // og might be undefined, so only get the content if it is defined\r\n const getContent = (metaTagEl) =>\r\n metaTagEl ? metaTagEl.getAttribute(\"content\") : \"\";\r\n\r\n const pageTitle =\r\n document.querySelector(\"meta[property='og:title']\") ||\r\n document.querySelector(\"meta[name='title']\");\r\n const pageDescription =\r\n document.querySelector(\"meta[property='og:description']\") ||\r\n document.querySelector(\"meta[name='description']\");\r\n\r\n const pageUrl =\r\n getContent(document.querySelector(\"meta[property='og:url']\")) ||\r\n window.location.href;\r\n\r\n const twitterTitle = encodeURIComponent(\r\n getContent(\r\n document.querySelector(\"meta[property='twitter:title']\") || pageTitle,\r\n ),\r\n );\r\n\r\n const twitterUserRaw = getContent(\r\n document.querySelector(\"meta[name='twitter:site']\"),\r\n );\r\n\r\n const twitterUser = twitterUserRaw\r\n ? `&via=${encodeURIComponent(twitterUserRaw.substring(1))}`\r\n : \"\";\r\n\r\n const getDescription = () => {\r\n if (shareCopy) {\r\n return encodeURIComponent(shareCopy);\r\n } else {\r\n return encodeURIComponent(getContent(pageDescription));\r\n }\r\n };\r\n\r\n const title = shareTitle\r\n ? encodeURIComponent(shareTitle)\r\n : encodeURIComponent(getContent(pageTitle));\r\n\r\n const url = encodeURIComponent(pageUrl);\r\n const description = getDescription();\r\n\r\n const getShareUrl = (id) => {\r\n switch (id) {\r\n case \"twitter\":\r\n // https://dev.twitter.com/web/tweet-button\r\n if (shareCopy) {\r\n return `https://twitter.com/intent/tweet?text=${description}&url=${url}${twitterUser}`;\r\n } else {\r\n return `https://twitter.com/intent/tweet?text=${twitterTitle}&url=${url}${twitterUser}`;\r\n }\r\n case \"linkedin\":\r\n return `https://www.linkedin.com/shareArticle?mini=true&url=${url}&title=${title}&summary=${description}`;\r\n case \"facebook\":\r\n // https://developers.facebook.com/tools/debug/sharing/\r\n return `https://www.facebook.com/sharer/sharer.php?u=${url}&t=${title}"e=${description}`;\r\n case \"email\":\r\n // mailto opens default email client\r\n return description\r\n ? `mailto:?subject=${title}&body=${description} - ${url}`\r\n : `mailto:?subject=${title}&body=${url}`;\r\n\r\n case \"pinterest\":\r\n //http://pinterest.com/pin/create/button/?url={URI-encoded URL of the page to pin}&media={URI-encoded URL of the image to pin}&description={optional URI-encoded description}\">\r\n return `https://pinterest.com/pin/create/button/?url=${url}&description=${description}`;\r\n case \"whatsapp\":\r\n //http://pinterest.com/pin/create/button/?url={URI-encoded URL of the page to pin}&media={URI-encoded URL of the image to pin}&description={optional URI-encoded description}\">\r\n if (shareCopy) {\r\n return `https://api.whatsapp.com/send?text=${description} ${url}`;\r\n } else {\r\n return `https://api.whatsapp.com/send?text=${title} ${url}`;\r\n }\r\n }\r\n };\r\n\r\n const handleShare = () => {\r\n if (onShare) onShare();\r\n scTracking(\"share\");\r\n };\r\n\r\n return (\r\n
    \r\n {shares.map((share) => (\r\n
    \r\n \r\n \r\n {share.name}\r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n};\r\nShareIcons.propTypes = propTypes;\r\nexport default ShareIcons;\r\n","import componentSlider from \"../../common/componentSlider.js\";\r\n\r\nexport default (el) => {\r\n if (document.querySelector(\".is-page-editor\")) {\r\n return;\r\n }\r\n\r\n document\r\n .querySelectorAll(\".js-simple-content-listing-carousel\")\r\n .forEach((el) => {\r\n const breakpoint = 681;\r\n // **** responsive will destroy the slider, but doesn't recreate it (August 2020) **** //\r\n const config = {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n mobileFirst: true,\r\n responsive: [\r\n {\r\n breakpoint: breakpoint,\r\n settings: \"unslick\",\r\n },\r\n ],\r\n };\r\n\r\n let activeSlider = window.innerWidth < breakpoint;\r\n const sliderControls = componentSlider(el, config);\r\n\r\n window.addEventListener(\"resize\", () => {\r\n if (!activeSlider && window.innerWidth < breakpoint) {\r\n activeSlider = true;\r\n sliderControls.createSlider();\r\n }\r\n\r\n if (activeSlider && window.innerWidth >= breakpoint) {\r\n activeSlider = false;\r\n }\r\n });\r\n });\r\n};\r\n","export default () => {\r\n if (document.querySelector(\".is-page-editor\")) {\r\n return;\r\n }\r\n\r\n document.querySelectorAll(\".js-simple-homepage-hero\").forEach((el) => {\r\n window.setTimeout(() => {\r\n const container = el.querySelector(\".js-simple-homepage-hero-container\");\r\n const overlay = el.querySelector(\".js-simple-homepage-hero-overlay\");\r\n\r\n overlay.style.height = container.offsetHeight + \"px\";\r\n\r\n overlay.classList.add(\"start-animation\");\r\n }, 500);\r\n });\r\n};\r\n","import React, { useRef, useState } from \"react\";\r\nimport { string, func } from \"prop-types\";\r\nimport debounce from \"lodash.debounce\";\r\n\r\nconst propTypes = {\r\n onTextChange: func.isRequired,\r\n placeholder: string,\r\n searchTerm: string,\r\n};\r\n\r\nconst SimpleSearchBox = (props) => {\r\n const { onTextChange, placeholder, searchTerm } = props;\r\n\r\n const [inputValue, setInputValue] = useState(searchTerm || \"\");\r\n\r\n const handleInputChange = (e) => {\r\n // slash characters where crashing the Grants Search App.\r\n // \"\\\\\" is an escaped backslash\r\n if (inputRef.current.value === \"/\" || inputRef.current.value === \"\\\\\") {\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n setInputValue(inputRef.current.value);\r\n\r\n debounce(() => {\r\n onTextChange(inputRef.current.value);\r\n }, 500);\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n if (inputRef.current.value === searchTerm) {\r\n return;\r\n }\r\n\r\n onTextChange(inputRef.current.value);\r\n };\r\n\r\n const inputRef = useRef();\r\n\r\n return (\r\n
    \r\n \r\n \r\n onTextChange(inputRef.current.value)}\r\n className=\"btn btn--primary simple-search-box__button\"\r\n data-gtm-element=\"dcl search button\"\r\n >\r\n Search\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nSimpleSearchBox.propTypes = propTypes;\r\nexport default SimpleSearchBox;\r\n","import React, { useState, useRef } from \"react\";\r\nimport uniqueid from \"lodash.uniqueid\";\r\nimport cx from \"classnames\";\r\n\r\nimport { string, arrayOf, object, shape, bool, func, number } from \"prop-types\";\r\n\r\nimport useClickAway from \"../../../common/useClickAway.js\";\r\n\r\nimport ArrowLink from \"../../ArrowLink/ArrowLink.jsx\";\r\nimport Icon from \"../../Icon/Icon.jsx\";\r\n\r\nimport GlobalNavIntro from \"./GlobalNavIntro.jsx\";\r\nimport GlobalNavStat from \"./GlobalNavStat.jsx\";\r\nimport GlobalNavPromo from \"./GlobalNavPromo.jsx\";\r\nimport GlobalNavPromoList from \"./GlobalNavPromoList.jsx\";\r\nimport GlobalNavPerson from \"./GlobalNavPerson.jsx\";\r\n\r\nconst propTypes = {\r\n theme: string,\r\n introBlock: object,\r\n menuLabel: string,\r\n link: shape({\r\n text: string.isRequired,\r\n href: string.isRequired,\r\n }),\r\n feature: shape({\r\n type: string,\r\n data: object,\r\n }),\r\n submenu: arrayOf(\r\n shape({\r\n header: string,\r\n numberOfColumns: number,\r\n links: arrayOf(\r\n shape({\r\n text: string,\r\n href: string,\r\n }),\r\n ),\r\n }),\r\n ),\r\n isMobile: bool,\r\n topLevelKeyDown: func,\r\n dictionary: shape({\r\n subMenuBack: string,\r\n }),\r\n};\r\n\r\nconst GlobalNav = (props) => {\r\n const {\r\n link,\r\n submenu,\r\n isMobile,\r\n menuLabel,\r\n introBlock,\r\n feature,\r\n theme,\r\n dictionary,\r\n } = props;\r\n const menuId = uniqueid(\"global-nav-\");\r\n let focusTimeout = window.setTimeout(() => {}, 1); // setting variable to a timeout object for clearTimeout\r\n const animationTime = 600;\r\n\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [navId, setNavId] = useState(uniqueid());\r\n\r\n const menuButtonRef = useRef();\r\n const backButtonRef = useRef();\r\n const menuRef = useClickAway({\r\n isOpen: isOpen,\r\n setOpen: setIsOpen,\r\n });\r\n\r\n const closeMenu = (moveFocus) => {\r\n window.clearTimeout(focusTimeout);\r\n setIsOpen(false);\r\n\r\n if (moveFocus) {\r\n menuButtonRef.current.focus();\r\n }\r\n };\r\n\r\n const openMenu = () => {\r\n window.clearTimeout(focusTimeout);\r\n setIsOpen(true);\r\n\r\n if (backButtonRef.current) {\r\n focusTimeout = window.setTimeout(() => {\r\n backButtonRef.current.focus();\r\n }, animationTime);\r\n }\r\n };\r\n\r\n const handleMenuClick = (e) => {\r\n isOpen ? closeMenu(true) : openMenu();\r\n };\r\n\r\n const handleBackButtonClick = (e) => {\r\n closeMenu(true);\r\n };\r\n\r\n const handleFocusLock = (e) => {\r\n backButtonRef.current.focus();\r\n };\r\n\r\n const handleTopLinkKeydown = (e) => {\r\n if (props.topLevelKeyDown) {\r\n props.topLevelKeyDown(e);\r\n }\r\n };\r\n\r\n const renderFeature = ({ type, data }) => {\r\n switch (type) {\r\n case \"stat\":\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n case \"promo\":\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n case \"promoList\":\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n case \"person\":\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n if (!submenu || submenu.length <= 0) {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n } else {\r\n return (\r\n \r\n
    \r\n \r\n {menuLabel}\r\n {!isMobile && }\r\n {isMobile && }\r\n \r\n
    \r\n \r\n {isMobile && (\r\n \r\n \r\n )}\r\n {introBlock && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {submenu.map((menuColumn, columnIndex) => (\r\n \r\n {menuColumn.header && (\r\n \r\n {menuColumn.header}\r\n \r\n )}\r\n \r\n {menuColumn.links.map((item, i) => (\r\n
  • \r\n \r\n {item.text}\r\n \r\n
  • \r\n ))}\r\n \r\n
    \r\n ))}\r\n \r\n {!isMobile && feature && renderFeature(feature)}\r\n \r\n {isMobile && (\r\n \r\n \r\n ),\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nSorters.propTypes = propTypes;\r\nexport default Sorters;\r\n","import $ from \"jquery\";\r\nimport \"slick-slider\";\r\n\r\n/**\r\n * Check if variable is a string and that it doesn't\r\n * contain only whitespace characters\r\n * @param {unknown} maybeString\r\n * @returns {boolean}\r\n */\r\nfunction hasContent(maybeString) {\r\n if (typeof maybeString !== \"string\") return false;\r\n\r\n return maybeString.trim().length !== 0;\r\n}\r\n\r\nfunction removeTitleOverlayOnVideoStart(mutationsList, observer) {\r\n for (const mutation of mutationsList) {\r\n if (\r\n mutation.type === \"attributes\" &&\r\n mutation.attributeName === \"class\" &&\r\n mutation.target.className.includes(\"video-started\")\r\n ) {\r\n const slider = mutation.target.closest(\".story-builder__slider\");\r\n const title = slider.querySelector(\r\n \".story-builder-slider__caption-container .story-builder-slider__title\",\r\n );\r\n title.classList.add(\"story-builder-slider__title--no-overlay\");\r\n }\r\n }\r\n}\r\n\r\nconst observerConfig = { attributes: true };\r\nconst observer = new MutationObserver(removeTitleOverlayOnVideoStart);\r\n\r\n/**\r\n * Check if slide has a video. If so, observe if video\r\n * starts by checking if \"background-video--video-started\" or\r\n * \"youtube-video--video-started\" classes are added, and then\r\n * add .story-builder-caption__title--no-overlay to description title\r\n * @param {HTMLElement} slideItem\r\n */\r\nfunction observeSlide(slideItem) {\r\n const slideType = getSlideType(slideItem);\r\n\r\n if (slideType === \"video\") {\r\n const backgroundVideoEl = slideItem.querySelector(\".background-video\");\r\n observer.observe(backgroundVideoEl, observerConfig);\r\n }\r\n\r\n if (slideType === \"youtube-video\") {\r\n const youtubeVideoEl = slideItem.querySelector(\".youtube-video\");\r\n observer.observe(youtubeVideoEl, observerConfig);\r\n }\r\n}\r\n\r\nfunction getVideoType(slideItem) {\r\n if (slideItem.firstElementChild.classList.contains(\"youtube-video-mount\"))\r\n return \"youtube-video\";\r\n else return \"video\";\r\n}\r\n\r\n/**\r\n * Slide types: video, youtube-video, image, split, rich-text, quote, embed\r\n */\r\nfunction getSlideType(slideItem) {\r\n const className = slideItem.className;\r\n if (className.includes(\"video\")) {\r\n return getVideoType(slideItem);\r\n } else if (className.includes(\"image\")) {\r\n return \"image\";\r\n } else if (className.includes(\"split\")) {\r\n return \"split\";\r\n } else if (className.includes(\"rich-text\")) {\r\n return \"rich-text\";\r\n } else if (className.includes(\"quote\")) {\r\n return \"quote\";\r\n } else if (className.includes(\"embed\")) {\r\n return \"embed\";\r\n } else {\r\n console.warn(`Couldn't decipher slide type from className: \"${className}\"`);\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction getSlideDescription(slideItem) {\r\n const slideType = getSlideType(slideItem);\r\n let title, caption, credit;\r\n\r\n switch (slideType) {\r\n case \"video\":\r\n title = slideItem.querySelector(\".background-video__title\")?.textContent;\r\n caption = slideItem.querySelector(\r\n \".background-video__caption\",\r\n )?.textContent;\r\n credit = slideItem.querySelector(\r\n \".background-video__credit\",\r\n )?.textContent;\r\n break;\r\n case \"youtube-video\":\r\n title = slideItem.querySelector(\".youtube-video__title\")?.textContent;\r\n caption = slideItem.querySelector(\r\n \".youtube-video__description\",\r\n )?.textContent;\r\n credit = slideItem.querySelector(\".youtube-video__credit\")?.textContent;\r\n break;\r\n case \"image\":\r\n title = slideItem.querySelector(\".image-block__title\")?.textContent;\r\n caption = slideItem.querySelector(\r\n \".image-block__description\",\r\n )?.textContent;\r\n credit = slideItem.querySelector(\".image-block__source\")?.textContent;\r\n break;\r\n case \"split\":\r\n caption = slideItem.querySelector(\r\n \".split-slide__description\",\r\n )?.textContent;\r\n credit = slideItem.querySelector(\".split-slide__credit\")?.textContent;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return { title, caption, credit };\r\n}\r\n\r\nfunction setSlideDescription(root, slideItem) {\r\n const storyBuilderCaption = root.querySelector(\r\n \".story-builder-slider__caption-container\",\r\n );\r\n\r\n const titleEl = storyBuilderCaption.querySelector(\r\n \".story-builder-slider__title\",\r\n );\r\n\r\n const captionEl = storyBuilderCaption.querySelector(\r\n \".story-builder-slider__caption\",\r\n );\r\n const creditEl = storyBuilderCaption.querySelector(\r\n \".story-builder-slider__credit\",\r\n );\r\n\r\n // Clear previous title modifier\r\n titleEl.classList.remove(\"story-builder-slider__title--no-overlay\");\r\n\r\n // Get slide theme and set title color\r\n if (\r\n slideItem\r\n .closest(\".story-builder-slide\")\r\n ?.classList.contains(\"story-builder-slide--light\")\r\n ) {\r\n root.classList.add(\"story-builder--light\");\r\n } else {\r\n root.classList.remove(\"story-builder--light\");\r\n }\r\n\r\n const { title, caption, credit } = getSlideDescription(slideItem);\r\n\r\n // Determine if title should be overlaid over video\r\n const slideType = getSlideType(slideItem);\r\n if (slideType === \"video\") {\r\n const backgroundVideoEl = slideItem.querySelector(\".background-video\");\r\n if (backgroundVideoEl.className.includes(\"video-started\")) {\r\n titleEl.classList.add(\"story-builder-slider__title--no-overlay\");\r\n }\r\n }\r\n\r\n if (slideType === \"youtube-video\") {\r\n const youtubeVideoEl = slideItem.querySelector(\".youtube-video\");\r\n if (youtubeVideoEl.className.includes(\"video-started\")) {\r\n titleEl.classList.add(\"story-builder-slider__title--no-overlay\");\r\n }\r\n }\r\n\r\n if (hasContent(title)) {\r\n titleEl.textContent = title;\r\n titleEl.classList.remove(\"is-empty\");\r\n } else {\r\n titleEl.textContent = \"\";\r\n titleEl.classList.add(\"is-empty\");\r\n }\r\n\r\n const innerContainer = root.querySelector(\r\n \".story-builder-slider__caption-inner\",\r\n );\r\n if (hasContent(caption) || hasContent(credit)) {\r\n innerContainer.classList.remove(\"is-empty\");\r\n } else {\r\n innerContainer.classList.add(\"is-empty\");\r\n }\r\n\r\n captionEl.textContent = caption ?? \"\";\r\n\r\n if (hasContent(credit)) {\r\n creditEl.textContent = credit;\r\n creditEl.classList.remove(\"is-empty\");\r\n } else {\r\n creditEl.textContent = \"\";\r\n creditEl.classList.add(\"is-empty\");\r\n }\r\n}\r\n\r\nconst defaultConfig = {\r\n dots: false,\r\n infinite: false,\r\n adaptiveHeight: false,\r\n speed: 850,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n accessibility: true,\r\n autoplay: false,\r\n};\r\n\r\nconst initSlider = (el) => {\r\n const root = el.closest(\".js-story-builder\");\r\n const $el = $(el);\r\n const $slider = $el.find(\".js-slide-container\");\r\n const $slideNextButton = $el.find(\".js-slide-next-button\");\r\n const $slidePrevButton = $el.find(\".js-slide-prev-button\");\r\n const $slides = $el.find(\".js-slide\");\r\n const storyBuilderCaptionContainer = el.querySelector(\r\n \".story-builder-slider__caption-container\",\r\n );\r\n\r\n $slider.show();\r\n\r\n const config = {\r\n nextArrow: $slideNextButton,\r\n prevArrow: $slidePrevButton,\r\n ...defaultConfig,\r\n };\r\n\r\n // set the total count\r\n $el.find(\".js-slide-total\").text($slides.length);\r\n\r\n $slider.on(\"init\", function (event, slick) {\r\n for (const slide of slick.$slides) {\r\n const slideItem = slide.querySelector(\".story-builder-slide__item\");\r\n observeSlide(slideItem);\r\n }\r\n });\r\n\r\n $slider.slick(config);\r\n\r\n //removing inline styles added by Slick Slider\r\n $(\".js-slide\").removeAttr(\"style\");\r\n\r\n $slider.on(\"beforeChange\", function (event, slick, currentSlide, nextSlide) {\r\n storyBuilderCaptionContainer.classList.add(\r\n \"story-builder-slider__caption-container--hide\",\r\n );\r\n\r\n const $audio = $el.find(\".slick-active .audio-is-playing\");\r\n const $audioButton = $el.find(\".slick-active .js-audio-player-button\");\r\n\r\n $el.find(\".js-slide-current\").text(nextSlide + 1);\r\n\r\n if ($audio.length > 0) {\r\n $audioButton.click();\r\n }\r\n });\r\n\r\n $slider.on(\"afterChange\", function (event, slick, currentSlide) {\r\n const activeSlideItem = el.querySelector(\r\n \".slick-active .story-builder-slide__item\",\r\n );\r\n\r\n setSlideDescription(root, activeSlideItem);\r\n storyBuilderCaptionContainer.classList.remove(\r\n \"story-builder-slider__caption-container--hide\",\r\n );\r\n });\r\n};\r\n\r\nfunction addSlideTitleClass(slide) {\r\n const slideItem = slide.querySelector(\".js-slide-item\");\r\n const slideType = getSlideType(slideItem);\r\n let hasTitle;\r\n\r\n switch (slideType) {\r\n case \"image\":\r\n hasTitle = Boolean(slideItem.querySelector(\".image-block__title\"));\r\n break;\r\n case \"video\":\r\n hasTitle = Boolean(slideItem.querySelector(\".background-video__title\"));\r\n break;\r\n case \"youtube-video\":\r\n hasTitle = Boolean(slideItem.querySelector(\".youtube-video__title\"));\r\n break;\r\n default:\r\n hasTitle = false;\r\n break;\r\n }\r\n\r\n if (!hasTitle) return;\r\n\r\n slide.classList.add(\"story-builder-slide--has-title\");\r\n}\r\n\r\nexport default function initStoryBuilder() {\r\n document.querySelectorAll(\".js-story-builder\").forEach((el, i) => {\r\n const EE = el.closest(\".is-page-editor\") ? true : false;\r\n\r\n if (EE) {\r\n return;\r\n }\r\n\r\n const slider = el.querySelector(\".js-story-builder-slider\");\r\n const slides = slider.querySelectorAll(\".js-slide\");\r\n const firstSlideItem = slides[0].querySelector(\".js-slide-item\");\r\n\r\n // Add story-builder-slide--has-title modifier class to slides with titles\r\n for (const slide of slides) {\r\n addSlideTitleClass(slide);\r\n }\r\n\r\n // Set initial slide description\r\n setSlideDescription(el, firstSlideItem);\r\n\r\n initSlider(slider);\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { string, func, bool, number } from \"prop-types\";\r\nimport Switch from \"react-switch\";\r\n\r\nconst propTypes = {\r\n groupId: string.isRequired,\r\n facetId: string.isRequired,\r\n facetCount: number,\r\n facetLabel: string.isRequired,\r\n selected: bool.isRequired,\r\n onFacetChange: func.isRequired,\r\n};\r\n\r\nconst SwitchToggle = (props) => {\r\n const { groupId, facetId, facetCount, facetLabel, selected, onFacetChange } =\r\n props;\r\n\r\n return (\r\n /* eslint-disable-next-line jsx-a11y/label-has-associated-control */\r\n \r\n );\r\n};\r\n\r\nSwitchToggle.propTypes = propTypes;\r\nexport default SwitchToggle;\r\n","import createAccordion from \"../../common/initAccordions.js\";\r\n\r\nexport default () => {\r\n if (document.querySelector(\".is-page-editor\")) {\r\n return;\r\n }\r\n\r\n const isSelectedClass = \"is-selected\";\r\n\r\n document.querySelectorAll(\".js-tabbed-content\").forEach((el, appIndex) => {\r\n // find the tablist element\r\n const elTabList = el.querySelector(\".js-tabbed-content-controls\");\r\n const elPanels = el.querySelectorAll(\".js-tabbed-content-panel\");\r\n const elTabs = el.querySelectorAll(\".js-tabbed-content-tab\");\r\n const elNextButton = el.querySelector(\".js-tabbed-content__next-button\");\r\n const elPrevButton = el.querySelector(\r\n \".js-tabbed-content__previous-button\",\r\n );\r\n const elAccordionLinks = el.querySelectorAll(\".js-accordion-link\");\r\n const accordion =\r\n el.dataset.accordion === \"true\" || el.dataset.accordion === \"True\"; // Sitecore using True for boolen.\r\n const parentIndex = appIndex + 1 * 100;\r\n const tabButtonSelector = \".js-tabbed-content-tab-button\";\r\n const breakpoint = 780;\r\n\r\n let isMobile = window.innerWidth <= breakpoint;\r\n let currentTab = 0;\r\n let isOverflowing;\r\n\r\n // initialize tabs and panels\r\n elTabs.forEach(initTab);\r\n elPanels.forEach(initPanel);\r\n\r\n showThisTab(currentTab, false);\r\n\r\n elTabList.addEventListener(\"keydown\", handleKeyPress);\r\n\r\n elAccordionLinks.forEach((el, i) => {\r\n el.addEventListener(\"click\", () => {\r\n if (currentTab !== i) {\r\n changeTab(i);\r\n }\r\n });\r\n });\r\n\r\n // initialize accordion or overflow interface\r\n accordion ? initAccordion() : initOverflow();\r\n\r\n function changeTab(newTab, moveFocus = true) {\r\n if (newTab === currentTab) {\r\n return;\r\n }\r\n\r\n hideCurrentTab(currentTab, moveFocus);\r\n showThisTab(newTab, moveFocus);\r\n\r\n if (!accordion) {\r\n if (newTab === 0) {\r\n elPrevButton.setAttribute(\"disabled\", true);\r\n } else if (newTab === elTabs.length - 1) {\r\n elNextButton.setAttribute(\"disabled\", true);\r\n } else {\r\n elPrevButton.removeAttribute(\"disabled\");\r\n elNextButton.removeAttribute(\"disabled\");\r\n }\r\n\r\n elTabList.scrollTo({\r\n top: 0,\r\n left: elTabs[newTab].offsetLeft - 30, // not sure why this is 3\r\n behavior: \"smooth\",\r\n });\r\n }\r\n }\r\n\r\n function hideCurrentTab(tabIndex) {\r\n // reset currently selected Tab aria-selected and classes\r\n const activeTab = elTabs[tabIndex];\r\n activeTab.classList.remove(isSelectedClass);\r\n\r\n const activeTabButton = activeTab.querySelector(tabButtonSelector);\r\n activeTabButton.setAttribute(\"aria-selected\", false);\r\n activeTabButton.setAttribute(\"tabindex\", -1);\r\n // reset currently selected Panel classes\r\n const panel = elPanels[tabIndex];\r\n panel.classList.remove(isSelectedClass);\r\n panel.setAttribute(\"aria-hidden\", true);\r\n panel.setAttribute(\"tabindex\", -1);\r\n }\r\n\r\n function showThisTab(tabIndex, moveFocus = true) {\r\n // set this Tab's aria-selected and classes\r\n elTabs[tabIndex].classList.add(isSelectedClass);\r\n const button = elTabs[tabIndex].querySelector(tabButtonSelector);\r\n button.setAttribute(\"aria-selected\", true);\r\n button.setAttribute(\"tabindex\", 0);\r\n\r\n if (moveFocus) {\r\n button.focus();\r\n }\r\n // set this Tab's panel class\r\n const panel = elPanels[tabIndex];\r\n panel.classList.add(isSelectedClass);\r\n panel.removeAttribute(\"aria-hidden\");\r\n panel.setAttribute(\"tabindex\", 0);\r\n\r\n currentTab = tabIndex;\r\n }\r\n\r\n function handleKeyPress(event, index) {\r\n switch (event.key) {\r\n case \"Left\":\r\n case \"ArrowLeft\":\r\n event.preventDefault();\r\n if (currentTab === 0) {\r\n changeTab(elTabs.length - 1);\r\n } else {\r\n changeTab(currentTab - 1);\r\n }\r\n break;\r\n case \"Right\":\r\n case \"ArrowRight\":\r\n event.preventDefault();\r\n if (currentTab === elTabs.length - 1) {\r\n changeTab(0);\r\n } else {\r\n changeTab(currentTab + 1);\r\n }\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n function handleAccordionResize(e) {\r\n if (isMobile && window.innerWidth > breakpoint) {\r\n elPanels.forEach((panel, i) => {\r\n if (i !== currentTab) {\r\n panel.setAttribute(\"aria-hidden\", true);\r\n panel.setAttribute(\"tabindex\", -1);\r\n } else {\r\n panel.setAttribute(\"tabindex\", 0);\r\n }\r\n });\r\n isMobile = false;\r\n }\r\n\r\n if (!isMobile && window.innerWidth <= breakpoint) {\r\n elPanels.forEach((panel) => {\r\n panel.removeAttribute(\"aria-hidden\");\r\n panel.removeAttribute(\"tabindex\");\r\n });\r\n isMobile = true;\r\n }\r\n }\r\n\r\n function handleOverflowResize(e) {\r\n const overflowing = elTabList.scrollWidth !== elTabList.clientWidth;\r\n\r\n if (isOverflowing && !overflowing) {\r\n isOverflowing = false;\r\n elNextButton.classList.remove(\r\n \"tabbed-content__control-button--visible\",\r\n );\r\n elPrevButton.classList.remove(\r\n \"tabbed-content__control-button--visible\",\r\n );\r\n }\r\n\r\n if (!isOverflowing && overflowing) {\r\n isOverflowing = true;\r\n elNextButton.classList.add(\"tabbed-content__control-button--visible\");\r\n elPrevButton.classList.add(\"tabbed-content__control-button--visible\");\r\n }\r\n }\r\n\r\n function initPanel(panel, i) {\r\n // add ids and aria roles to panel\r\n panel.setAttribute(\"aria-labelledby\", `tab-button-${parentIndex + i}`);\r\n panel.setAttribute(\"id\", `tab-content-panel-${parentIndex + i}`);\r\n panel.setAttribute(\"tabindex\", -1);\r\n panel.setAttribute(\"aria-hidden\", true);\r\n }\r\n\r\n function initTab(tab, i) {\r\n // add ids and aria roles to button\r\n const button = tab.querySelector(tabButtonSelector);\r\n button.setAttribute(\"id\", `tab-button-${parentIndex + i}`);\r\n button.setAttribute(\"aria-selected\", false);\r\n button.setAttribute(\"tabindex\", -1);\r\n button.setAttribute(\r\n \"aria-controls\",\r\n `tab-content-panel-${parentIndex + i}`,\r\n );\r\n // move all the tab to the tablist element\r\n elTabList.append(tab);\r\n\r\n // add event listeners to tab\r\n button.addEventListener(\"click\", () => {\r\n if (currentTab !== i) {\r\n changeTab(i);\r\n }\r\n });\r\n }\r\n\r\n function initOverflow() {\r\n el.classList.add(\"tabbed-content--overflow\");\r\n\r\n elPrevButton.setAttribute(\"disabled\", true);\r\n\r\n // event listeners - button click and tab focus\r\n elNextButton.addEventListener(\"click\", () => {\r\n changeTab(currentTab + 1, false);\r\n });\r\n\r\n elPrevButton.addEventListener(\"click\", () => {\r\n changeTab(currentTab - 1, false);\r\n });\r\n // reversing isOverflowing so classes will be set correctly.\r\n isOverflowing = elTabList.scrollWidth === elTabList.clientWidth;\r\n handleOverflowResize();\r\n\r\n // add resize event to detect overflow - toggle class\r\n window.addEventListener(\"resize\", handleOverflowResize, {\r\n passive: true,\r\n });\r\n }\r\n\r\n function initAccordion() {\r\n window.addEventListener(\"resize\", handleAccordionResize, {\r\n passive: true,\r\n });\r\n el.classList.add(\"tabbed-content--accordion\");\r\n el.querySelectorAll(\".js-tabbed-content-accordion\").forEach((el, i) => {\r\n createAccordion(el, parentIndex + i, breakpoint);\r\n });\r\n }\r\n });\r\n};\r\n","export default () => {\r\n document.querySelectorAll(\".js-text-cards__clickable\").forEach((el) => {\r\n const url = el.dataset.location;\r\n\r\n if (url) {\r\n el.addEventListener(\"click\", () => {\r\n window.location = url;\r\n });\r\n }\r\n });\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-has-content */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\n\r\nimport React, { useState, useMemo, useRef, useEffect } from \"react\";\r\nimport { string, arrayOf, shape } from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport uniqueId from \"lodash.uniqueid\";\r\nimport debounce from \"lodash.debounce\";\r\nimport slugify from \"slugify\";\r\n\r\nimport Icon from \"../../../../Common/js/components/Icon/Icon.jsx\";\r\nimport SectionHeadline from \"../../../../Common/js/components/SectionHeadline/SectionHeadline.jsx\";\r\n\r\nconst propTypes = {\r\n title: string.isRequired,\r\n description: string.isRequired,\r\n items: arrayOf(\r\n shape({\r\n title: string.isRequired,\r\n date: string.isRequired,\r\n description: string.isRequired,\r\n }),\r\n ),\r\n};\r\n\r\nconst Timeline = (props) => {\r\n const { title, description, items } = props;\r\n\r\n const [activeItem, setActiveItem] = useState(0);\r\n const [componentWidth, setComponentWidth] = useState();\r\n const controlsId = useMemo(\r\n () => uniqueId(`${slugify(title).toLowerCase()}-`),\r\n [title],\r\n );\r\n\r\n const skipEl = useRef();\r\n const itemsContainer = useRef();\r\n\r\n useEffect(() => {\r\n const resize = debounce(\r\n () => setComponentWidth(itemsContainer.current.clientWidth),\r\n 300,\r\n );\r\n\r\n if (itemsContainer.current) {\r\n setComponentWidth(itemsContainer.current.clientWidth);\r\n window.addEventListener(\"resize\", resize);\r\n //setComponentWidth(itemsContainer.current.clientWidth);\r\n }\r\n return () => {\r\n window.removeEventListener(\"resize\", resize);\r\n };\r\n }, [itemsContainer]);\r\n\r\n //determine if the collapsed card should be shown\r\n const isVisible = (index, array) => {\r\n //if the active card is the first card then display the following 4\r\n if (activeItem === 0) {\r\n switch (index) {\r\n case 0:\r\n case 1:\r\n case 2:\r\n case 3:\r\n case 4:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n //if the active card is the second card then display the first and the following 3\r\n else if (activeItem === 1) {\r\n switch (index) {\r\n case 0:\r\n case 1:\r\n case 2:\r\n case 3:\r\n case 4:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n //if the active card is the last card then display the previous 4\r\n else if (activeItem === array.length - 1) {\r\n switch (index) {\r\n case array.length - 1:\r\n case array.length - 2:\r\n case array.length - 3:\r\n case array.length - 4:\r\n case array.length - 5:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n //if the active card is the second to last then display the last card and the previous three\r\n else if (activeItem === array.length - 2) {\r\n switch (index) {\r\n case array.length - 1:\r\n case array.length - 2:\r\n case array.length - 3:\r\n case array.length - 4:\r\n case array.length - 5:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n //if the active card is not the first or the last then display the following two and previous two\r\n else {\r\n switch (index) {\r\n case activeItem - 1:\r\n case activeItem - 2:\r\n case activeItem:\r\n case activeItem + 1:\r\n case activeItem + 2:\r\n return true;\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {title && }\r\n
    \r\n skipEl.current.focus()}\r\n >\r\n Skip Component\r\n \r\n
    \r\n \r\n {items &&\r\n items.map((item, i, arr) =>\r\n isVisible(i, arr) ? (\r\n \r\n {item.title && (\r\n setActiveItem(i)}\r\n aria-expanded={i === activeItem ? true : false}\r\n >\r\n

    \r\n {i + 1}. \r\n {i === activeItem && (\r\n \r\n {item.title}\r\n \r\n )}\r\n

    \r\n \r\n )}\r\n {i === activeItem && (\r\n \r\n {item.date &&
    {item.date}
    }\r\n {item.description && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n ) : null,\r\n )}\r\n \r\n \r\n {\r\n activeItem === 0\r\n ? setActiveItem(items.length - 1)\r\n : setActiveItem(activeItem - 1);\r\n }}\r\n disabled={activeItem === 0}\r\n type=\"button\"\r\n aria-label=\"previous item\"\r\n >\r\n Previous Item\r\n \r\n \r\n {\r\n activeItem === items.length - 1\r\n ? setActiveItem(0)\r\n : setActiveItem(activeItem + 1);\r\n }}\r\n disabled={activeItem === items.length - 1}\r\n className=\"btn timeline__next\"\r\n type=\"button\"\r\n aria-label=\"next item\"\r\n >\r\n Next Item\r\n \r\n \r\n \r\n
    \r\n \r\n End of {title}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nTimeline.propTypes = propTypes;\r\nexport default Timeline;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport Timeline from \"./Timeline.jsx\";\r\n\r\nexport default function renderTimeline() {\r\n document.querySelectorAll(\".js-timeline-mount\").forEach((mount) => {\r\n const data = JSON.parse(mount.getAttribute(\"data-model\"));\r\n\r\n ReactDom.render(, mount);\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { func, string, arrayOf, object } from \"prop-types\";\r\nimport SwitchToggle from \"../SwitchToggle/SwitchToggle.jsx\";\r\n\r\nconst propTypes = {\r\n id: string.isRequired,\r\n onFacetChange: func.isRequired,\r\n values: arrayOf(object),\r\n};\r\n\r\nconst ToggleGroup = (props) => {\r\n const { id, values, onFacetChange } = props;\r\n\r\n return (\r\n
    \r\n {values &&\r\n values.length > 0 &&\r\n values.map((value, i) => (\r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nToggleGroup.propTypes = propTypes;\r\nexport default ToggleGroup;\r\n","import React, { useState, useRef } from \"react\";\r\nimport { string, bool, number, arrayOf, shape } from \"prop-types\";\r\nimport { useCombobox } from \"downshift\";\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n showSearchIcon: bool,\r\n placeholder: string,\r\n className: string,\r\n minCharsForFilter: number,\r\n noResultsString: string,\r\n items: arrayOf(\r\n shape({\r\n label: string,\r\n }),\r\n ),\r\n};\r\n\r\nconst TypeaheadSearch = (props) => {\r\n const {\r\n showSearchIcon,\r\n placeholder,\r\n className,\r\n items,\r\n noResultsString,\r\n minCharsForFilter = 3,\r\n } = props;\r\n\r\n const [inputItems, setInputItems] = useState(items);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [selectedItem, setSelectedItem] = useState({});\r\n const [inputVisible, setInputVisible] = useState(false);\r\n\r\n const {\r\n isOpen,\r\n getMenuProps,\r\n getInputProps,\r\n getComboboxProps,\r\n highlightedIndex,\r\n getItemProps,\r\n } = useCombobox({\r\n items: inputItems.map((input) => input.label),\r\n onSelectedItemChange: (changes) => {\r\n const { selectedItem } = changes;\r\n\r\n const selected = inputItems.find((input) => input.label === selectedItem);\r\n\r\n if (selected.href) {\r\n window.location = selected.href;\r\n } else {\r\n setInputValue(changes.selectedItem.label);\r\n }\r\n },\r\n onInputValueChange: ({ inputValue }) => {\r\n setInputValue(inputValue);\r\n setInputItems(\r\n items.filter(\r\n (item) =>\r\n inputValue.length >= minCharsForFilter &&\r\n item.label.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1,\r\n ),\r\n );\r\n },\r\n });\r\n\r\n const selfRef = useRef();\r\n\r\n const handleToggleClick = () => {\r\n let parent = selfRef.current.closest(\".js-typeahead-parent\");\r\n if (inputVisible) {\r\n if (parent) {\r\n parent.classList.remove(\"is-open\");\r\n }\r\n setInputVisible(false);\r\n } else {\r\n if (parent) {\r\n parent.classList.add(\"is-open\");\r\n }\r\n setInputVisible(true);\r\n // delaying focus on typeahead field to allow animation to complete for better UX\r\n setTimeout(() => {\r\n selfRef.current.querySelector(\"input\").focus();\r\n }, 400);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n {showSearchIcon && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {showSearchIcon && (\r\n \r\n \r\n \r\n toggle search input\r\n \r\n )}\r\n \r\n {inputItems.length > 0 &&\r\n inputItems.map((item, index) => (\r\n \r\n \r\n \r\n ))}\r\n\r\n {inputItems.length === 0 && inputValue.length < 3 && (\r\n
  • \r\n Please type at least 3 letters\r\n
  • \r\n )}\r\n\r\n {inputItems.length === 0 && inputValue.length >= 3 && (\r\n
  • \r\n {noResultsString || \"No results found\"}\r\n
  • \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nTypeaheadSearch.propTypes = propTypes;\r\nexport default TypeaheadSearch;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport TypeaheadSearch from \"./TypeaheadSearch.jsx\";\r\n\r\nexport default function renderTypeaheadSearch() {\r\n document.querySelectorAll(\".js-typeahead\").forEach((mount) => {\r\n const dataModel = JSON.parse(mount.dataset.model);\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n","import uniqueId from \"lodash.uniqueid\";\r\nimport cx from \"classnames\";\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useCallback,\r\n} from \"react\";\r\n\r\nimport { loadScript, createPlayer } from \"./youtubeService.js\";\r\nimport scTracking from \"../SCTracking/sc-tracking.js\";\r\nimport { isScrolledIntoView } from \"../../common/scrollIntoView.js\";\r\n\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport ImageElement from \"../ImageElement/ImageElement.jsx\";\r\n\r\nimport { object, string, bool, shape } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n id: string.isRequired,\r\n params: string,\r\n image: shape({\r\n srcSet: string,\r\n }),\r\n transcriptLink: object,\r\n title: string,\r\n caption: string,\r\n credit: string,\r\n darkButton: bool,\r\n smallButton: bool,\r\n autoplay: bool,\r\n language: shape({\r\n Name: string,\r\n }),\r\n};\r\n\r\nconst YouTubeVideo = (props) => {\r\n const {\r\n id,\r\n params,\r\n image,\r\n transcriptLink,\r\n title,\r\n caption,\r\n credit,\r\n darkButton,\r\n smallButton,\r\n autoplay,\r\n language,\r\n } = props;\r\n\r\n const [videoStarted, setVideoStarted] = useState(autoplay);\r\n const [player, setPlayer] = useState(null);\r\n const [playerReady, setPlayerReady] = useState(false);\r\n const rootRef = useRef(null);\r\n\r\n const playerId = useMemo(() => uniqueId(), []);\r\n\r\n const init = useCallback(() => {\r\n const config = {\r\n videoId: id,\r\n playerVars: {\r\n autoplay: autoplay ? 1 : 0,\r\n cc_lang_pref: language?.Name || \"en\",\r\n hl: language?.Name || \"en\",\r\n },\r\n };\r\n\r\n const paramsToObject = (params) => {\r\n const entries = new URLSearchParams(params);\r\n\r\n const result = {};\r\n for (const [key, value] of entries) {\r\n // each 'entry' is a [key, value] tupple\r\n result[key] = value;\r\n }\r\n return result;\r\n };\r\n\r\n if (params && params !== \"\") {\r\n config.playerVars = { ...config.playerVars, ...paramsToObject(params) };\r\n }\r\n\r\n const onPlayerReady = (e) => {\r\n if (autoplay) {\r\n e.target.mute();\r\n }\r\n setPlayerReady(true);\r\n };\r\n\r\n // Check if window.onYouTubeIframeAPIReady already exists\r\n if (window.YT && window.YT.loaded) {\r\n const newPlayer = createPlayer(playerId, config, onPlayerReady);\r\n setPlayer(newPlayer);\r\n } else {\r\n // after onYouTubeIframeAPIReady is executed, create a new player\r\n const callback = window.onYouTubeIframeAPIReady;\r\n window.onYouTubeIframeAPIReady = () => {\r\n if (callback) {\r\n callback();\r\n }\r\n\r\n const newPlayer = createPlayer(playerId, config, onPlayerReady);\r\n setPlayer(newPlayer);\r\n };\r\n }\r\n }, [id, autoplay, language, params, playerId]);\r\n\r\n useEffect(() => {\r\n // On mount, check to see if the API script is already loaded\r\n loadScript();\r\n\r\n const root = rootRef.current;\r\n\r\n // Lazy load initialization of the YouTube player\r\n const observer = new IntersectionObserver((entries, observer) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n init();\r\n observer.unobserve(root);\r\n }\r\n });\r\n });\r\n\r\n if (root && isScrolledIntoView(root)) {\r\n init();\r\n } else {\r\n observer.observe(root);\r\n }\r\n\r\n return () => {\r\n observer.unobserve(root);\r\n };\r\n }, [init]);\r\n\r\n useEffect(() => {\r\n // If video's started but player is not ready, play video when ready\r\n if (videoStarted && playerReady) {\r\n player.playVideo();\r\n }\r\n }, [player, playerReady, videoStarted]);\r\n\r\n const playVideo = () => {\r\n setVideoStarted(true);\r\n scTracking(\"videoplay\");\r\n\r\n if (playerReady) {\r\n player.playVideo();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!player || !rootRef.current) return;\r\n\r\n const root = rootRef.current;\r\n\r\n const pausedByObserver = new WeakMap();\r\n\r\n const observer = new IntersectionObserver(\r\n /**\r\n * If video is playing when it leaves the viewport, pause it.\r\n * If video then re-enters the viewport, play it.\r\n */\r\n (entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n // Video is entering the viewport - play it if it was paused\r\n // by the observer.\r\n if (pausedByObserver.get(root)) {\r\n player.playVideo();\r\n pausedByObserver.set(root, false);\r\n }\r\n } else {\r\n // Video is leaving the viewport - pause it and track that it was\r\n // paused by the observer.\r\n // https://developers.google.com/youtube/iframe_api_reference#Playback_status\r\n if (\r\n player &&\r\n player.getPlayerState &&\r\n player.getPlayerState() === window.YT.PlayerState.PLAYING\r\n ) {\r\n player.pauseVideo();\r\n pausedByObserver.set(root, true);\r\n }\r\n }\r\n });\r\n },\r\n { threshold: 0.5 },\r\n );\r\n\r\n observer.observe(root);\r\n\r\n return () => {\r\n observer.unobserve(root);\r\n };\r\n }, [player]);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n {image && image.srcSet ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {(title || caption || credit) && (\r\n
    \r\n {title && (\r\n

    {title}

    \r\n )}\r\n {caption && (\r\n {caption}\r\n )}\r\n {credit && (\r\n {credit}\r\n )}\r\n
    \r\n )}\r\n {transcriptLink && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nYouTubeVideo.propTypes = propTypes;\r\n\r\nexport default YouTubeVideo;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\n\r\nimport YouTubeVideo from \"../YouTubeVideo/YouTubeVideoApp.jsx\";\r\n\r\nexport default function renderYoutubeVideo() {\r\n document.querySelectorAll(\".js-youtube-video-mount\").forEach((mount) => {\r\n const dataModel = JSON.parse(mount.dataset.model);\r\n\r\n ReactDom.render(, mount);\r\n });\r\n}\r\n","// Handles YouTube API\r\n\r\nexport const loadScript = () => {\r\n if (!document.querySelector(\"#js-youtube-iframe-api\")) {\r\n // If not, load the script asynchronously\r\n const tag = document.createElement(\"script\");\r\n tag.src = \"https://www.youtube.com/iframe_api\";\r\n tag.id = \"js-youtube-iframe-api\";\r\n\r\n const firstScriptTag = document.getElementsByTagName(\"script\")[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n }\r\n};\r\n\r\nexport const createPlayer = (playerId, config, cb) => {\r\n const defaults = {\r\n width: \"auto\",\r\n height: \"auto\",\r\n host: \"https://www.youtube-nocookie.com\",\r\n playerVars: {\r\n rel: 0,\r\n },\r\n };\r\n\r\n return new window.YT.Player(\r\n playerId,\r\n Object.assign({ events: { onReady: cb } }, defaults, config, {\r\n playerVars: { ...defaults.playerVars, ...config.playerVars },\r\n }),\r\n );\r\n};\r\n","/**** Vanilla Javascript Apps ****/\r\nimport initAccordion from \"./components/Accordion/initAccordion.js\";\r\nimport initAccordionGroup from \"./components/Accordion/initAccordionGroup.js\";\r\nimport initAccordionCategories from \"./components/Accordion/initAccordionCategories.js\";\r\nimport initAlertBanner from \"./components/AlertBanner/initAlertBanner.js\";\r\nimport initAssetsCard from \"./components/AssetsCard/initAssetsCard.js\";\r\nimport initAudioPlayer from \"./components/AudioPlayer/initAudioPlayer.js\";\r\nimport initBackgroundVideo from \"./components/BackgroundVideo/initBackgroundVideo.js\";\r\nimport initBreadcrumb from \"./components/Breadcrumb/initBreadcrumb.js\";\r\nimport initLanguageSelector from \"./components/LanguageSelector/initLanguageSelector.js\";\r\nimport initManualInternalPromoSlider from \"./components/ManualInternalPromoSlider/initManualInternalPromoSlider.js\";\r\nimport initNavMenu from \"./components/NavMenu/initNavMenu.js\";\r\nimport initPrivacyBanner from \"./components/PrivacyBanner/initPrivacyBanner.js\";\r\nimport initReadMore from \"./components/ReadMore/initReadMore.js\";\r\nimport initScrollingEmbed from \"./components/ScrollingEmbed/initScrollingEmbed.js\";\r\nimport initSearchBox from \"./components/SearchBox/initSearchBox.js\";\r\nimport initSecondaryNav from \"./components/SecondaryNav/initSecondaryNav.js\";\r\nimport initSimpleContentListing from \"./components/SimpleContentListing/initSimpleContentListing.js\";\r\nimport initSimpleHomepageHero from \"./components/SimpleHomepageHero/initSimpleHomepageHero.js\";\r\nimport initTabbedContent from \"./components/TabbedContent/initTabbedContent.js\";\r\nimport initTextCards from \"./components/TextCards/initTextCards.js\";\r\nimport initFramework from \"./components/Framework/initFramework.js\";\r\nimport initScrollingTilesFullWidth from \"./components/ScrollingTilesFullWidth/initScrollingTilesFullWidth.js\";\r\nimport initArticleMetadata from \"./components/ArticleMetadata/initArticleMetadata.js\";\r\nimport initScrollSnapping from \"./components/Container/initScrollSnapping.js\";\r\n\r\n// This is required to make Storybook run JS when patterns are choosen\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n initAccordionGroup();\r\n initAccordion();\r\n initAccordionCategories();\r\n initAlertBanner();\r\n initArticleMetadata();\r\n initAssetsCard();\r\n initAudioPlayer();\r\n initBackgroundVideo();\r\n initBreadcrumb();\r\n initFramework();\r\n initLanguageSelector();\r\n initManualInternalPromoSlider();\r\n initNavMenu();\r\n initPrivacyBanner();\r\n initReadMore();\r\n initScrollingEmbed();\r\n initScrollingTilesFullWidth();\r\n initSearchBox();\r\n initSecondaryNav();\r\n initSimpleContentListing();\r\n initSimpleHomepageHero();\r\n initTabbedContent();\r\n initTextCards();\r\n initScrollSnapping();\r\n});\r\n","/*** React Apps ****/\r\n\r\n// jumpNavigation needs to be before DynamicContentListing\r\nimport renderJumpNavigation from \"./components/JumpNavigation/renderJumpNavigation.jsx\";\r\nimport renderChapterNavigation from \"./components/ChapterNavigation/renderChapterNavigation.jsx\";\r\nimport renderDynamicLeadershipListing from \"./components/DynamicLeadershipListing/renderDynamicLeadershipListing.jsx\";\r\nimport renderDynamicContentListing from \"./components/DynamicContentListing/renderDynamicContentListing.jsx\";\r\nimport renderSearchComponent from \"./components/SearchComponent/renderSearchComponent.jsx\";\r\nimport renderShareBar from \"./components/ShareBar/renderShareBar.jsx\";\r\nimport renderYouTubeVideo from \"./components/YouTubeVideo/renderYouTubeVideo.jsx\";\r\nimport renderTypeaheadSearch from \"./components/TypeaheadSearch/renderTypeaheadSearch.jsx\";\r\nimport renderSiteHeader from \"./components/SiteHeader/renderSiteHeader.jsx\";\r\nimport renderTimeline from \"./components/Timeline/renderTimeline.jsx\";\r\nimport renderFrameworkModal from \"./components/Framework/FrameworkModal/renderFrameworkModal.jsx\";\r\nimport renderCardSlider from \"./components/CardSlider/renderCardSlider.jsx\";\r\nimport renderQuiz from \"./components/Quiz/renderQuiz.jsx\";\r\nimport renderCountdownBanner from \"./components/CountdownBanner/renderCountdownBanner.jsx\";\r\n\r\n// This is required to make Storybook run JS when patterns are choosen\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n renderChapterNavigation();\r\n renderCountdownBanner();\r\n renderDynamicContentListing();\r\n renderSearchComponent();\r\n renderDynamicLeadershipListing();\r\n renderJumpNavigation();\r\n renderYouTubeVideo();\r\n renderTypeaheadSearch();\r\n renderShareBar();\r\n renderSiteHeader();\r\n renderTimeline();\r\n renderFrameworkModal();\r\n renderCardSlider();\r\n renderQuiz();\r\n});\r\n","window.assetsFolder = \"/Areas/GFO/assets\";\r\n","// needed to set the path for Images used in JS files.\r\n// import was required to set the value before the other imports.\r\n// the other imports are used so this file can be used on SiteBuilder with a different assetsDirectory\r\nimport \"./assetsDirectory.js\";\r\n\r\n// Common Helpers\r\nimport \"../../Common/js/commonFiles.js\";\r\n\r\n// Javscript Apps\r\nimport \"../../Common/js/jsComponents.js\";\r\n\r\n// React Components\r\nimport \"../../Common/js/reactComponents.js\";\r\nimport initStoryBuilder from \"../../Common/js/components/StoryBuilder/initStoryBuilder.js\";\r\n\r\n// GFO Common Helpers\r\nimport scTracking from \"../../Common/js/components/SCTracking/sc-tracking.js\";\r\n\r\n//GFO React Components\r\n\r\n// This is required to make Storybook run JS when patterns are choosen\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n // JS Apps\r\n // Story Builder component is not initiated with other components because\r\n // it needs to be initialized after the Youtube React component mounts\r\n initStoryBuilder();\r\n\r\n // React Apps\r\n\r\n // SC tracking for social follow (note: not ShareBar)\r\n document.querySelectorAll(\".js-social-follow\").forEach((elm) => {\r\n elm.addEventListener(\"click\", () => scTracking(\"socialfollow\"));\r\n });\r\n\r\n // SC tracking for downloads\r\n // This might need to be made more robust in the future.\r\n // Only set to watch Arrow Link clicks of type \"download\" for now\r\n document.querySelectorAll(\".arrow-link--download\").forEach((elm) => {\r\n elm.addEventListener(\"click\", () => scTracking(\"download\"));\r\n });\r\n});\r\n"]}