{"version":3,"sources":["node_modules/browser-pack/_prelude.js","frontend/VelirSite/js/assetsDirectory.js","frontend/VelirSite/js/common/NavMenu.js","frontend/VelirSite/js/common/accordion.js","frontend/VelirSite/js/common/components/CollapsePane.jsx","frontend/VelirSite/js/common/components/Flyout.jsx","frontend/VelirSite/js/common/dynamicSearch.js","frontend/VelirSite/js/common/fetchSearchResults.js","frontend/VelirSite/js/common/loadAddThis.js","frontend/VelirSite/js/common/makeClickable.js","frontend/VelirSite/js/common/scrollHelpers.js","frontend/VelirSite/js/common/slickSlider.js","frontend/VelirSite/js/common/useClickAway.js","frontend/VelirSite/js/components/AccordionHorizontal/initAccordionHorizontal.js","frontend/VelirSite/js/components/AccordionVertical/initAccordionVertical.js","frontend/VelirSite/js/components/AlertBanner/initAlertBanner.js","frontend/VelirSite/js/components/AnchorLinkNavigation/AnchorLinkNavigationApp.jsx","frontend/VelirSite/js/components/AnchorLinkNavigation/renderAnchorLinkNavigation.jsx","frontend/VelirSite/js/components/ArrowLink/ArrowLink.jsx","frontend/VelirSite/js/components/BackToTop/initBackToTop.js","frontend/VelirSite/js/components/Carousel/initCarousel.js","frontend/VelirSite/js/components/Container/initContainer.js","frontend/VelirSite/js/components/ContentList/initContentList.js","frontend/VelirSite/js/components/DynamicContentListing/CaseStudyGrid/CaseStudyGrid.jsx","frontend/VelirSite/js/components/DynamicContentListing/DynamicContentListingApp.jsx","frontend/VelirSite/js/components/DynamicContentListing/FilterBar/FilterBar.jsx","frontend/VelirSite/js/components/DynamicContentListing/FilterDropdown/FilterDropdown.jsx","frontend/VelirSite/js/components/DynamicContentListing/FullGrid/FullGrid.jsx","frontend/VelirSite/js/components/DynamicContentListing/LoadingSpinner/LoadingSpinner.jsx","frontend/VelirSite/js/components/DynamicContentListing/ResultsInfo/ResultsInfo.jsx","frontend/VelirSite/js/components/DynamicContentListing/SimpleGrid/SimpleGrid.jsx","frontend/VelirSite/js/components/DynamicContentListing/SimpleList/SimpleList.jsx","frontend/VelirSite/js/components/DynamicContentListing/Sorters/Sorters.jsx","frontend/VelirSite/js/components/DynamicContentListing/ThreeUpGrid/ThreeUpGrid.jsx","frontend/VelirSite/js/components/DynamicContentListing/initialState.js","frontend/VelirSite/js/components/DynamicContentListing/renderDynamicContentListing.jsx","frontend/VelirSite/js/components/FeaturedPromo/FeaturedPromo.jsx","frontend/VelirSite/js/components/FeaturedPromo/initFeaturedPromo.js","frontend/VelirSite/js/components/FormItems/Checkbox.jsx","frontend/VelirSite/js/components/GlobalFooter/initNewsletterSignup.js","frontend/VelirSite/js/components/GlobalHeader/initGlobalHeader.js","frontend/VelirSite/js/components/HeroSlider/initHeroSlider.js","frontend/VelirSite/js/components/HeroVideo/initHeroVideo.js","frontend/VelirSite/js/components/Icon/Icon.jsx","frontend/VelirSite/js/components/ListItem/ListItem.jsx","frontend/VelirSite/js/components/ListItem/initListItem.js","frontend/VelirSite/js/components/MobileMenu/initMobileMenu.js","frontend/VelirSite/js/components/PrimaryNav/initPrimaryNav.js","frontend/VelirSite/js/components/PrivacyBanner/initPrivacyBanner.js","frontend/VelirSite/js/components/Promo/initPromo.js","frontend/VelirSite/js/components/RichText/initRichText.js","frontend/VelirSite/js/components/SearchMenu/initSearchMenu.js","frontend/VelirSite/js/components/SectionNavigator/initSectionNavigator.js","frontend/VelirSite/js/components/ShareBar/initShareBar.js","frontend/VelirSite/js/components/SiteHeader/initSiteHeader.js","frontend/VelirSite/js/components/SiteLogo/initSiteLogo.js","frontend/VelirSite/js/components/SkipNavigation/initSkipNavigation.js","frontend/VelirSite/js/components/Slideshow/initSlideShow.js","frontend/VelirSite/js/components/Taxonomy/Taxonomy.jsx","frontend/VelirSite/js/components/Testimonial/initTestimonals.js","frontend/VelirSite/js/components/YouTubeVideo/YouTubeVideoApp.jsx","frontend/VelirSite/js/components/YouTubeVideo/renderYouTubeVideo.jsx","frontend/VelirSite/js/components/YouTubeVideo/youtubeService.js","frontend/VelirSite/js/index.js","frontend/VelirSite/js/polyfill/closest.js","frontend/VelirSite/js/polyfill/es6-polyfill.js","frontend/VelirSite/js/polyfill/index.js","frontend/VelirSite/js/polyfill/popstate-event.js","frontend/VelirSite/js/search/components/FacetGroup.jsx","frontend/VelirSite/js/search/components/FacetList.jsx","frontend/VelirSite/js/search/components/FilterSelect/FilterSelectBar.jsx","frontend/VelirSite/js/search/components/FilterSelect/MultiSelectList.jsx","frontend/VelirSite/js/search/components/LoadMore.jsx","frontend/VelirSite/js/search/components/LoadingSpinner.jsx","frontend/VelirSite/js/search/components/Pagination.jsx","frontend/VelirSite/js/search/components/ResultItem.jsx","frontend/VelirSite/js/search/components/SearchBox.jsx","frontend/VelirSite/js/search/components/SearchResultList.jsx","frontend/VelirSite/js/search/components/SearchStatus.jsx","frontend/VelirSite/js/search/components/SimpleResultList.jsx","frontend/VelirSite/js/search/components/SortBar.jsx","frontend/VelirSite/js/search/containers/FacetsContainer.jsx","frontend/VelirSite/js/search/containers/FilterBarContainer.jsx","frontend/VelirSite/js/search/containers/QueryContainer.jsx","frontend/VelirSite/js/search/containers/SearchResultsContainer.jsx","frontend/VelirSite/js/search/containers/SimpleResultsContainer.jsx","frontend/VelirSite/js/search/dataShapes.js","frontend/VelirSite/js/search/factory.js","frontend/VelirSite/js/search/filterSlider.js","frontend/VelirSite/js/search/index.js","frontend/VelirSite/js/search/paging.js","frontend/VelirSite/js/search/redux/configureStore.js","frontend/VelirSite/js/search/redux/createRoutingMiddleware.js","frontend/VelirSite/js/search/redux/facets.js","frontend/VelirSite/js/search/redux/initialState.js","frontend/VelirSite/js/search/redux/resultsDisplay.js","frontend/VelirSite/js/search/redux/rootReducer.js","frontend/VelirSite/js/search/redux/routing.js","frontend/VelirSite/js/search/redux/search/search.actions.js","frontend/VelirSite/js/search/redux/search/search.reducer.js","frontend/VelirSite/js/search/redux/service.js","frontend/VelirSite/js/search/util.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","window","assetsFolder","initProps","let","propsFail","menuButton","console","error","menuContainer","navigationLink","parent","props","Object","assign","animationDelay","closed","direction","reversed","openClass","closedState","elParent","elMenuButton","querySelector","elMenuContainer","elMenuLinks","querySelectorAll","addEventListener","preventDefault","toggleMenu","handleMenuKeyEvent","forEach","link","index","handleLinkKeyEvent","target","key","closeMenu","shiftKey","focusPrevious","focusNext","elList","focus","tagName","init","openMenu","setDirection","newDirection","controlId","id","_lodash","default","buttonId","setAttribute","clickAway","contains","moveFocus","arguments","undefined","classList","add","removeAttribute","clearTimeout","timeoutId","setTimeout","onOpen","currentWidth","innerWidth","dataLayer","push","type","event","dropdownSelection","innerText","remove","onClose","removeEventListener","__esModule","el","content","wrapper","document","createElement","parentNode","insertBefore","appendChild","contentWrapper","editorView","expanded","contentBuffer","animationSpeed","toggleContent","openState","height","scrollHeight","style","visibility","setHeight","overflow","_react","_interopRequireDefault","_propTypes","_defineProperty","Symbol","toPrimitive","String","Number","TypeError","defineProperty","value","enumerable","configurable","writable","CollapsePane","Component","constructor","super","this","state","isOpen","collapse","expand","contentRef","createRef","open","ref","current","contentHeight","refTransition","transition","requestAnimationFrame","setState","self","handler","render","openStateClass","initialStyle","className","renderTrigger","toggle","children","func","bool","node","string","isRequired","defaultProps","R","_getRequireWildcardCache","has","get","__proto__","getOwnPropertyDescriptor","hasOwnProperty","set","_classnames","WeakMap","Flyout","flyoutRef","componentDidMount","handleClickOutside","componentWillUnmount","allRefs","doNotCloseOn","concat","all","equals","map","requestClose","positionStyles","anchor","rect","inFlow","anchorToEl","getBoundingClientRect","position","top","offsetTop","left","offsetLeft","flyoutClass","is-open","anchorId","Fragment","aria-labelledby","arrayOf","instanceOf","propTypes","HTMLElement","_queryString","toggleItemInArray","curry","array","Array","isArray","symmetricDifference","selectedFacetShape","objectOf","parseQueryString","parse","arrayFormat","skipEmptyString","skipNull","stringifyQueryString","data","stringify","initFacets","urlQueryString","ifElse","identity","compose","pickBy","initCurrentParams","queryString","generalParams","when","page","assoc","q","createQueryString","currentParams","selectedFacets","parseInt","createFacetQueryString","facet","facetGroupId","facetId","toggleFacet","facetGroupValue","propEq","dissoc","evolve","clearFacetGroup","clearFacet","over","lensProp","reject","url","params","signal","fetchURL","indexOf","fetch","then","response","json","catch","err","name","pubId","script","append","dataset","location","href","setFocus","scrollTo","getOffsetTopById","getOffsetTop","element","getScrollTop","nav","navPos","getComputedStyle","replace","documentElement","scrollTop","body","offset","callback","clientHeight","fixedOffset","toFixed","onScroll","pageYOffset","passive","scroll","behavior","conf","_jquery","hasClass","$slider","liveregion","on","slick","textContent","currentSlide","slideCount","button","slickDefaults","dots","infinite","speed","slidesToShow","slidesToScroll","prevArrow","nextArrow","setOpen","fallbackRef","useRef","dropdownRef","clickStartedInside","setClickStartedInside","useState","useEffect","handleClickAway","isOrContainsNode","handleKeydown","handleMouseDown","child","_accordion","activeIndex","accordions","accordion","_slickSlider","indexParent","elAccordion","elSlider","variableWidth","centerMode","mobileFirst","accordionItems","toggleAccordions","item","accordionItem","CONSTANTS","DEBUG_ENABLED","QUERY_SELECTORS","ALERT_BANNER","CLASSNAMES","IS_ACTIVE","CSS_VARS","ALERT_BANNER_HEIGHT","handleResizeScroll","bannerHeight","scrollY","adjustedBannerHeight","foundAlertBanner","offsetHeight","Math","max","log","setProperty","_scrollHelpers","links","AnchorLinkNavigation","onClick","handleClick","scrollToId","text","mount","shortTitle","innerHTML","_reactDom","_AnchorLinkNavigationApp","_Icon","oneOf","title","ArrowLink","aria-label","iconName","main","playSpeed","initCallback","sliderActive","clientWidth","autoplay","autoplaySpeed","customPaging","slider","slice","responsive","breakpoint","documentWidth","which","click","hide","show","attr","modal","iframe","firstNewItem","results","shape","imageSrcWide","imageSrcSquare","clients","taxonomy","contentUrl","focusRef","object","focusItem","number","CaseStudyGrid","result","tall","case-study-grid__media--tall","alt","srcSet","sizes","dangerouslySetInnerHTML","__html","memo","_initialState","_fetchSearchResults","_dynamicSearch","_CaseStudyGrid","_FeaturedPromo","_FilterBar","_FullGrid","_ResultsInfo","_SimpleGrid","_ThreeUpGrid","_SimpleList","_Sorters","_LoadingSpinner","_extends","bind","apply","theme","subtitle","enableQueryString","pagination","loadMore","hideMobileSummary","featuredBackground","dictionary","query","listingId","showSummaries","showDates","showContentTypes","showImages","excludedTaxonomy","loadAllPages","pageId","sorters","label","isActive","DynamicContentListingApp","activeSorterParam","useMemo","activeSorter","find","sorter","sortBy","sortOrder","showOverlay","setShowOverlay","setSelectedFacets","search","serverData","setServerData","setCurrentParams","resultsFocusRef","showFocusRef","showFocus","URL","searchParams","history","replaceState","origin","pathname","hash","controller","AbortController","prevState","warn","message","finally","abort","handleFacetChange","useCallback","showLoadMore","totalResults","perPage","imageBackground","ctaText","facets","filterTitle","filterLabel","onFacetChange","onClearFacetGroup","request","resultsInfoLabel","clearAllFacetsLabel","clearAll","onSorterClick","sortDirection","aria-live","noResultsMessage","dynamic-content-listing__results--no-mobile-summaries","handlePageChange","loadMoreLabel","_FilterDropdown","singleSelect","FilterBar","some","values","_useClickAway","_Checkbox","childGroups","FilterDropdown","filterDropdownRef","renderGroup","ind","count","checked","selected","onChange","childValues","keys","aria-expanded","filter-dropdown__panel--is-open","group","_ListItem","FullGrid","resultsGroup","reduce","acc","curr","media","LoadingSpinner","ResultsInfo","currentResultsRange","currentPageNumber","resultsPerPageNumber","ceiling","floor","SimpleGrid","isMobile","setIsMobile","leftResults","setLeftResults","rightResults","setRightResults","renderNarrow","half","ceil","filter","handleResize","renderWide","firstColumn","imagePosition","SimpleList","Sorters","sorters__sorter--active","sorters__sorter--has-direction","sorters__sorter--desc","sorters__sorter--asc","dir","labelAsc","labelDesc","ThreeUpGrid","maxThreeResults","setMaxThreeResults","date","preSelectedFacets","JSON","dataModel","model","_DynamicContentListingApp","_Taxonomy","eyebrow","contentType","FeaturedPromo","data-location","loading","_makeClickable","required","errorMsg","checkbox","js-form-required","sc-form-item--optional","has-error","aria-required","role","elForm","successMessage","errorMessage","field","match","action","URLSearchParams","FormData","toString","credentials","method","headers","Content-Type","success","hideable","display","_initPrimaryNav","_initMobileMenu","_initSearchMenu","elGlobal","indexGlobal","ExperienceEditor","searchEl","searchIndex","_bundle","heroSlider","heroSliderThumbs","a11y","allowTouchMove","matchMedia","matches","observer","observeParents","preventClicks","preventClicksPropagation","slidesPerView","watchSlidesVisibility","watchSlidesProgress","heroSliderMain","delay","disableOnInteraction","loop","thumbs","swiper","playButton","pauseButton","start","stop","onPlayerReady","toggleVideoDisplay","videoOverlay","displayVideo","videoOverlayClass","tag","firstScriptTag","src","getElementsByTagName","arrowBtn","nextContainer","nextElementSibling","parentElement","nextParentSibling","nextFocusableEl","scrollMarginTop","container","focusableElements","scrollTimeout","scrollIntoView","block","inline","onYouTubeIframeAPIReady","players","videoContainer","playBtn","player","YT","Player","width","videoId","playerVars","rel","events","onReady","onStateChange","YTPlayerStates","handlePlayButtonClick","playVideo","Icon","otherProps","focusable","aria-hidden","xlinkHref","listItem","list-item--left","list-item--right","_NavMenu","globalHeader","globalHeaderEl","openMenuID","primaryLinks","handleKeyDown","contentEl","marginBottom","margin","acceptBtn","closeBtn","resizeHeight","paddingBottom","handlePrivacy","accept","setCookie","cname","cvalue","exdays","d","Date","expires","setTime","getTime","toUTCString","cookie","ca","split","charAt","substring","_core","_javascript","_css","_yaml","_php","_bash","_csharp","_xml","_java","registerLanguage","highlightBlock","table","_jsMatchHeight","parentIndex","cards","titles","blankImage","firstImage","secondImage","activeSlide","imageDecorator","cloneNode","fade","appendDots","settings","card","cardIndex","rightColumn","MatchHeight","startsWith","hashParts","spacer","slideIndex","prepend","controlLinks","_loadAddThis","elShare","textLength","readTimeMinutes","menuConfig","targetElement","currentTarget","blur","getAttribute","slideshowTheme","closest","slidestoScroll","slickDotsWidth","Taxonomy","appendArrows","arrows","_youtubeService","poster","transcriptLink","caption","darkButton","YouTubeVideoApp","videoStarted","setVideoStarted","setPlayer","playerReady","setPlayerReady","playerId","loadScript","newPlayer","createPlayer","youtube-video--video-started","youtube-video__poster-button--dark","small","medium","large","_YouTubeVideoApp","cb","_initHeroSlider","_initHeroVideo","_initAccordionHorizontal","_initAccordionVertical","_initBackToTop","_initCarousel","_initContainer","_initContentList","_initFeaturedPromo","_initGlobalHeader","_initListItem","_initNewsletterSignup","_initPrivacyBanner","_initPromo","_initRichText","_initSectionNavigator","_initSiteHeader","_initShareBar","_initSkipNavigation","_initSlideShow","_initTestimonals","_initSiteLogo","_initAlertBanner","_renderAnchorLinkNavigation","_renderDynamicContentListing","_renderYouTubeVideo","_factory","_search","searchId","createApp","defaultFacetedSearchFactory","jQuery","ElementProto","Element","prototype","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","elements","ownerDocument","Boolean","nodeType","_svg4everybody","NodeList","PopStateEvent","bubbles","cancelable","evt","createEvent","initPopStateEvent","_dataShapes","_facets","FacetGroup","isGroupOpen","isGroupExpanded","valuesExpanded","componentWillMount","selectedFacetsFromGroup","shouldOpen","selectedIds","valuesWithSelectedChildren","v","shouldExpand","drop","should","tv","chunkValues","splitAt","showExpandButton","shouldRenderTailValues","tailValues","shouldRenderChildGroups","toggleGroup","toggleExpand","isExpanded","toggleValueExpand","valueId","valueIdx","selectedValues","valueIsExpanded","onClearGroup","handleClearGroup","renderOpenButton","renderValueItem","recursionLevel","hasChildValues","renderChildValues","toggleClass","htmlFor","renderValues","renderFlatValues","renderValue","chunkedValues","headValues","stateClass","valuesWrapperClass","has-no-values","val","renderChildGroups","childGroup","dupeSelected","groupClass","expandLabel","facetGroupShape","_FacetGroup","_filterSlider","FacetList","setFiltersOpenDirection","manageContainerWhitespace","addPriorityContainerClass","handleClearAll","hideFilters","closeFilters","hideMobileFacets","renderHideFilters","renderFacetGroups","numOpenGroups","renderClearAll","facetGroups","oneOfType","mobileFiltersShown","_Flyout","_CollapsePane","_MultiSelectList","_reactResponsive","groupLens","groupId","lensPath","openGroup","closeGroup","closeAllGroups","view","FilterSelectBar","buttonRefs","openGroups","handleGroupClick","stopPropagation","pipe","handleCloseGroup","renderList","flyoutIsInFlow","selectedFilters","hasSelected","disabled","showSelected","items","showChildren","onFilterChange","onClear","groups","hideSelected","renderGroups","filterGroups","g","numSelected","selectedPostfix","aria-haspopup","allSelectedLabel","allSelectedFacets","showTitle","maxWidth","MultiSelectList","_ref","FilterItem","_ref2","hideSelcted","facetValueShape","LoadMore","initiatedLoad","shouldShowSpinner","showSpinner","buttonClass","_paging","Pagination","resultsPerPage","currentPage","pageBlock","isLast","isLastPage","isFirst","isFirstPage","lastPage","totalPages","getPage","isDisabled","pageNum","num","ResultItem","itemWrapper","renderEyebrow","authors","join","featured","list-item--featured is-dark-mode","displayUrl","SearchBox","componentWillReceiveProps","nextProps","handleSubmit","handleEntry","keywordInput","replaceAll","keywords","onSubmit","noValidate","searchBoxLabel","placeholder","searchBoxPlaceholder","defaultValue","input","_ResultItem","_LoadMore","_SortBar","_SearchStatus","_Pagination","_resultsDisplay","_ArrowLink","SearchResultList","resultsDisplayStrategy","isFirstLoad","nextPage","gotoPage","dismissFacet","changeSort","showMobileFacets","isRefreshing","isAppending","shouldShowNoResults","shouldShowPager","RESULTS_DISPLAY_REFRESH","RESULTS_DISPLAY_APPEND","is-refreshing","is-appending","openFilters","resultsRange","handleFacetDismiss","handleSortClick","noResultsTitle","noResultsLink","noResultsHref","featuredResultLabel","SearchStatus","shouldRenderFacets","SimpleResultList","SortBar","sorterClass","is-active","has-arrow","sorterId","dirLens","adjustSorters","cond","whereEq","T","is-selected","_reactRedux","_FacetList","connect","ownProps","facetsTitle","mobileFacetsShown","dispatch","facetValue","loadFacetChange","loadClearFacetGroup","loadClearAllFacets","_FilterSelectBar","_SearchBox","loadNewKeywords","_SearchResultList","loadNextPage","loadNewSort","loadNewPage","_SimpleResultList","lazyF","_len","args","_key","_interopRequireWildcard","RA","_reduxThunk","_rootReducer","_configureStore","_createRoutingMiddleware","baseApp","mountNodes","initialState","reduxMiddleware","externalConfig","initialDispatch","withSearchId","withNode","reactNode","assocPath","withoutNode","dissocPath","withServiceApi","fetchSearchResults","mapResponseToState","withExtraArgument","withQueryStringRouting","mapStateToUrl","handleUrlChange","withoutQueryStringRouting","withInitialState","transformer","withInitialDispatch","actionFn","appFactory","app","ids","s","allEqual","store","routing","popStateEvent","History","dispatchEvent","forEachObjIndexed","elem","Provider","filtersWrapper","filters","filtersContainer","col","from","childCount","sibling","_service","_routing","_SearchResultsContainer","_SimpleResultsContainer","_QueryContainer","_FacetsContainer","_FilterBarContainer","nodelessDefaultFactory","applyExternalConfig","VelirSiteSearchConfigs","applyResultDisplayStrategy","loadResults","defaultDynamicContentFactory","bar","numPages","numPagesVisible","min","PAGE_BLOCK_RANGE","pages","range","rootReducer","middlewares","middlewareEnhancer","_redux","applyMiddleware","devToolEnhancer","devToolsExtension","x","createStore","handleLoad","initialUrlParams","_urijs","next","shouldReplace","urlParams","change","isNil","getState","decode","URL_INIT","pushState","selectedFacetsByGroup","k","valueIds","paths","pathArr","pathFromValueId","newFacets","path","allFacetValuesFromGroup","valueHasSelectedChildren","_util","allValues","grabAllValues","cv","facetsByGroup","selectedFacetsFromValues","selectedChildren","invertObj","flattenObj","pop","segment","numberified","isNaN","configArr","config","mergeDeepLeft","obj1","obj2","applyRenameKeys","keyDef","renameKeys","keydef","applyOmitKeys","omit","nonFacetParams","queryParams","pick","facetParams","setSelectedOnFacetValues","castToInt","__","mergeQueryParams","exposedParams","selectedFacetIdsByGroup","merge","TOGGLE_MOBILE_FACETS","payload","clearAllFacets","facetChanged","keywordsChanged","changePage","sortChanged","incrementPage","MERGE_QUERY_PARAMS","LOAD_RESULTS_START","LOAD_RESULTS_FAIL","LOAD_RESULTS_SUCCESS","KEYWORDS_CHANGED","INCREMENT_PAGE","CHANGE_PAGE","SORT_CHANGED","FACET_CHANGED","CLEAR_FACET_GROUP","CLEAR_ALL_FACETS","loadStart","loadSuccess","resultsDisplay","loadFail","searchPromise","featuredPromise","Promise","searchResponse","featuredResponse","handleMultipleResponses","actionType","actionMap","selectedFacetIds","stringifyUrl","searchData","insertAll","newResults","setActiveSorter","oldResults","strategy","obj","go","obj_","chain","k_","v_","toPairs","fromPairs"],"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 {}, 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 (!initProps.navigationLink || initProps.navigationLink.length === 0) {\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 elMenuContainer = elParent.querySelector(props.menuContainer);\r\n const elMenuLinks = elMenuContainer.querySelectorAll(props.navigationLink);\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 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","// Accordion Code created by Jonathan Dallas - 2019\r\n// Version 1.0.1\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 default (el, id) => {\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 const contentWrapper = wrap(content, document.createElement(\"div\"));\r\n\r\n contentWrapper.classList.add(\"accordion-wrapper\");\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(\"body.is-page-editor\");\r\n\r\n let expanded = false;\r\n let contentBuffer = setTimeout(() => {}, 1);\r\n\r\n const animationSpeed = 500;\r\n\r\n if (el.classList.contains(\"is-open\") || editorView) {\r\n expanded = true;\r\n toggleContent(expanded);\r\n } else {\r\n setHeight(contentWrapper, \"0px\");\r\n }\r\n\r\n link.setAttribute(\"aria-expanded\", expanded);\r\n link.setAttribute(\"id\", `accordion-link-${id}`);\r\n link.setAttribute(\"aria-controls\", `accordion-content-${id}`);\r\n\r\n contentWrapper.setAttribute(\"id\", `accordion-content-${id}`);\r\n contentWrapper.setAttribute(\"aria-labelledby\", `accordion-link-${id}`);\r\n\r\n if (editorView === null) {\r\n link.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n toggleContent(!expanded);\r\n });\r\n }\r\n\r\n function toggleContent(openState) {\r\n if (openState === expanded) {\r\n return;\r\n }\r\n\r\n const height = content.scrollHeight;\r\n expanded = openState;\r\n\r\n link.setAttribute(\"aria-expanded\", openState);\r\n\r\n clearTimeout(contentBuffer);\r\n\r\n if (openState) {\r\n el.classList.add(\"is-open\");\r\n contentWrapper.style.visibility = \"visible\";\r\n setHeight(contentWrapper, `${height}px`);\r\n contentBuffer = setTimeout(() => {\r\n setHeight(contentWrapper, \"auto\");\r\n contentWrapper.style.overflow = \"visible\";\r\n }, animationSpeed + 20);\r\n } else {\r\n el.classList.remove(\"is-open\");\r\n setHeight(contentWrapper, `${height}px`);\r\n\r\n setTimeout(() => {\r\n setHeight(contentWrapper, \"0\");\r\n }, 20);\r\n\r\n setTimeout(() => {\r\n contentWrapper.style.visibility = \"hidden\";\r\n }, animationSpeed + 20);\r\n }\r\n }\r\n\r\n function setHeight(el, height) {\r\n el.setAttribute(\r\n \"style\",\r\n `height: ${height}; transition: height ${animationSpeed}ms ease; overflow: hidden;`,\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 return {\r\n el,\r\n toggleContent,\r\n };\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nexport default class CollapsePane extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.contentRef = React.createRef();\r\n this.state = {\r\n isOpen: props.open || false,\r\n };\r\n }\r\n\r\n collapse() {\r\n const ref = this.contentRef.current;\r\n // get the height of the content ref\r\n const contentHeight = ref.scrollHeight;\r\n\r\n // temporarily disable transitions\r\n const refTransition = ref.style.transition;\r\n ref.style.transition = \"\";\r\n\r\n // on the next frame, set the height of the content\r\n // explicitly, so we're not animating from \"auto\"\r\n requestAnimationFrame(() => {\r\n ref.style.height = contentHeight;\r\n ref.style.transition = refTransition;\r\n\r\n // on the very next frame, set height to 0\r\n requestAnimationFrame(() => {\r\n ref.style.height = \"0px\";\r\n this.setState({ isOpen: false });\r\n });\r\n });\r\n }\r\n\r\n expand() {\r\n const ref = this.contentRef.current;\r\n // get the height of the content ref\r\n const contentHeight = ref.scrollHeight;\r\n\r\n // create a one-time callback for when the ref is\r\n // done the transition\r\n var self = this;\r\n ref.addEventListener(\"transitionend\", function handler(e) {\r\n // remove it immediately\r\n ref.removeEventListener(\"transitionend\", handler);\r\n\r\n // remove the inline \"height\" style, reverting back to initial value\r\n ref.style.height = null;\r\n self.setState({ isOpen: true });\r\n });\r\n\r\n // set the height of the ref\r\n ref.style.height = `${contentHeight}px`;\r\n }\r\n\r\n toggle = () => (this.state.isOpen ? this.collapse() : this.expand());\r\n\r\n render() {\r\n const openStateClass = this.state.isOpen ? \"is-open\" : \"is-closed\";\r\n const initialStyle = this.state.isOpen ? {} : { height: \"0px\" };\r\n return (\r\n
\r\n {this.props.renderTrigger(this.toggle)}\r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst { func, bool, node, string } = PropTypes;\r\n\r\nCollapsePane.props = {\r\n open: bool,\r\n renderTrigger: func.isRequired,\r\n className: string,\r\n children: node,\r\n};\r\n\r\nCollapsePane.defaultProps = {\r\n className: \"collapse-pane\",\r\n};\r\n","/** @module common/components */\r\n\r\nimport * as R from \"ramda\";\r\nimport React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport classnames from \"classnames\";\r\n\r\n/**\r\n * \r\n * A generic pop-out container that is anchored to an element. Useful for drop-down functionality.\r\n * ```\r\n }\r\n inFlow={bool}\r\n open={bool.isRequired}\r\n requestClose={func}\r\n >\r\n \r\n \r\n * ```\r\n * @extends React.Component \r\n * @param {function} props.anchorToEl Function returning an HtmlElement for the dropdown to be anchored to.\r\n * @param {array} props.doNotCloseOn An array of HtmlElement that should NOT trigger the flyout to close when clicked\r\n @param {bool} props.inFlow Allow flyout to render as static in the document flow (not absolutely positioned)\r\n @param {bool} open Flag for setting the open state\r\n @param {function} requestClose Function called when the component itself asks to be closed\r\n\r\n */\r\nclass Flyout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.flyoutRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"mousedown\", (e) => this.handleClickOutside(e));\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener(\"mousedown\", (e) =>\r\n this.handleClickOutside(e),\r\n );\r\n }\r\n\r\n handleClickOutside(event) {\r\n if (!this.props.open) {\r\n return;\r\n }\r\n\r\n const target = event.target;\r\n const flyoutRef = this.flyoutRef.current;\r\n const allRefs = this.props.doNotCloseOn.concat(flyoutRef);\r\n const isOutside = R.all(R.equals(false))(\r\n R.map((ref) => ref.contains(target), allRefs),\r\n );\r\n\r\n if (isOutside) {\r\n if (this.props.requestClose) {\r\n this.props.requestClose(this.props.id);\r\n }\r\n }\r\n }\r\n\r\n positionStyles() {\r\n if (this.props.inFlow) {\r\n return {};\r\n }\r\n\r\n const anchor = this.props.anchorToEl();\r\n const rect = anchor.getBoundingClientRect();\r\n return {\r\n position: \"absolute\",\r\n top: anchor.offsetTop + rect.height,\r\n left: anchor.offsetLeft,\r\n };\r\n }\r\n\r\n render() {\r\n const flyoutClass = classnames(\"flyout\", { \"is-open\": this.props.open });\r\n const anchor = this.props.anchorToEl();\r\n const anchorId = anchor ? anchor.id : \"\";\r\n\r\n return (\r\n \r\n {this.props.open && (\r\n \r\n {this.props.children}\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Flyout;\r\n\r\nconst { string, bool, node, func, arrayOf, instanceOf } = PropTypes;\r\nFlyout.propTypes = {\r\n id: string,\r\n children: node.isRequired,\r\n open: bool.isRequired,\r\n anchorToEl: func.isRequired,\r\n doNotCloseOn: arrayOf(instanceOf(HTMLElement)),\r\n requestClose: func,\r\n inFlow: bool,\r\n};\r\n\r\nFlyout.defaultProps = {\r\n open: false,\r\n doNotCloseOn: [],\r\n};\r\n","import * as R from \"ramda\";\r\nimport queryString from \"query-string\";\r\nimport { string, objectOf, arrayOf } from \"prop-types\";\r\n\r\nconst toggleItemInArray = 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\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","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 return data;\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","export default (pubId) => {\r\n if (document.querySelector(\"#addThisScript\")) {\r\n return false;\r\n }\r\n\r\n const script = document.createElement(\"script\");\r\n script.setAttribute(\"id\", \"addThisScript\");\r\n script.setAttribute(\r\n \"src\",\r\n `https://static.addtoany.com/menu/page.js`,\r\n );\r\n document.querySelector(\"body\").append(script);\r\n};\r\n","export default (el, i) => {\r\n if (el.dataset.location) {\r\n el.addEventListener(\"click\", (event) => {\r\n window.location.href = el.dataset.location;\r\n });\r\n }\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() - 16, // magic number moves it just a bit below the top\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(offset, callback) {\r\n if (typeof callback === \"function\") {\r\n // the page is taller than the contents\r\n if (document.body.scrollHeight >= document.documentElement.clientHeight) {\r\n const fixedOffset = offset.toFixed();\r\n const onScroll = function () {\r\n if (window.pageYOffset.toFixed() === fixedOffset) {\r\n window.removeEventListener(\"scroll\", onScroll, { passive: true });\r\n callback();\r\n }\r\n };\r\n\r\n window.addEventListener(\"scroll\", onScroll, { passive: true });\r\n onScroll();\r\n } else {\r\n callback();\r\n }\r\n }\r\n\r\n window.scroll({\r\n top: offset,\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, setFocus) {\r\n scrollTo(getOffsetTopById(id), () => {\r\n if (setFocus) {\r\n document.querySelector(id).focus();\r\n }\r\n });\r\n}\r\n","import $ from \"jquery\";\r\nimport \"slick-slider\";\r\n\r\nconst slickDefaults = {\r\n dots: true,\r\n infinite: false,\r\n speed: 300,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n prevArrow: `\r\n `,\r\n nextArrow: `\r\n `,\r\n};\r\n\r\nexport default function slickSlider(el, conf, callback) {\r\n // do not intialize slideshows inside page editor\r\n if ($(\"body\").hasClass(\"is-page-editor\")) {\r\n return {};\r\n }\r\n\r\n const $slider = $(el);\r\n\r\n // create a region to tell the user which slide is active\r\n const liveregion = document.createElement(\"div\");\r\n liveregion.setAttribute(\"aria-live\", \"polite\");\r\n liveregion.setAttribute(\"aria-atomic\", \"true\");\r\n liveregion.setAttribute(\"class\", \"slick-slider__info u-visuallyhidden\");\r\n\r\n // populate the live region after Slick has been run\r\n $slider.on(\"init\", (event, slick) => {\r\n liveregion.textContent = `Item ${slick.currentSlide + 1} of ${\r\n slick.slideCount\r\n }`;\r\n el.appendChild(liveregion);\r\n\r\n setTimeout(() => {\r\n document\r\n .querySelectorAll(\".js-custom-slide-control\")\r\n .forEach((button) => {\r\n button.removeAttribute(\"aria-label\");\r\n });\r\n }, 100);\r\n\r\n if (typeof callback === \"function\") {\r\n callback(event, slick, slick.currentSlide);\r\n }\r\n });\r\n\r\n $slider.on(\"afterChange\", (event, slick, currentSlide) => {\r\n liveregion.textContent = `Item ${currentSlide + 1} of ${slick.slideCount}`;\r\n\r\n setTimeout(() => {\r\n document\r\n .querySelectorAll(\".js-custom-slide-control\")\r\n .forEach((button) => {\r\n button.removeAttribute(\"aria-label\");\r\n });\r\n }, 10);\r\n });\r\n\r\n // create the slider\r\n $slider.slick(Object.assign({}, slickDefaults, conf));\r\n return $slider;\r\n\r\n // return {\r\n // next: $slider.slick(\"slickNext\"),\r\n // prev: $slider.slick(\"slickPrev\"),\r\n // goto: $slider.slick(\"slickGoTo\"),\r\n // };\r\n}\r\n","import { useEffect, useState, useRef } from \"react\";\r\n\r\nexport default function useClickAway(props) {\r\n const { isOpen, setOpen, ref } = props;\r\n\r\n const fallbackRef = useRef();\r\n const dropdownRef = ref || 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 useEffect(() => {\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 };\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 document.addEventListener(\"click\", handleClickAway, true);\r\n document.addEventListener(\"keydown\", handleKeydown);\r\n document.addEventListener(\"mousedown\", handleMouseDown);\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 };\r\n }\r\n }, [clickStartedInside, dropdownRef, isOpen, setOpen]);\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 initAccordion from \"../../common/accordion.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-accordion-horizontal\").forEach((el, i) => {\r\n let activeIndex = 0;\r\n\r\n const accordions = [...el.querySelectorAll(\".js-accordion\")].map(\r\n (el, index) => {\r\n el.querySelector(\".js-accordion-link\").addEventListener(\r\n \"click\",\r\n (e) => {\r\n activeIndex = index;\r\n\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 return initAccordion(el, index);\r\n },\r\n );\r\n });\r\n};\r\n","import accordionSetup from \"../../common/accordion.js\";\r\nimport slickSlider from \"../../common/slickSlider.js\";\r\nimport $ from \"jquery\";\r\n\r\nexport default () => {\r\n document\r\n .querySelectorAll(\".js-accordion-vertical\")\r\n .forEach((elParent, indexParent) => {\r\n const elAccordion = elParent.querySelector(\r\n \".js-accordion-vertical__accordion\",\r\n );\r\n const elSlider = elParent.querySelector(\".js-accordion-vertical__slider\");\r\n\r\n // Start Slider Setup\r\n const conf = {\r\n speed: 500,\r\n variableWidth: false,\r\n centerMode: true, // allows for sneak peek at prev/next slides\r\n dots: false,\r\n mobileFirst: true,\r\n };\r\n\r\n slickSlider(elSlider, conf, (event, slick) => {});\r\n\r\n // slick slider synthetic events require jQuery to listen.\r\n // gross.\r\n $(elSlider).on(\"afterChange\", () => {\r\n // slick wants to add tabindex=-1 to all links in a slide\r\n // this is bad, we lose keyboard nav inside a slide.\r\n // delay to allow slick to make bad decisions, then fix it\r\n setTimeout(() => {\r\n elSlider\r\n .querySelectorAll(\"a\")\r\n .forEach((link) => link.removeAttribute(\"tabindex\"));\r\n }, 100);\r\n });\r\n // End Slider Setup\r\n\r\n // Start Accordion Setup\r\n const accordionItems = [];\r\n let activeIndex = 0;\r\n\r\n const toggleAccordions = (index) => {\r\n activeIndex = index === activeIndex ? -1 : index;\r\n accordionItems.forEach((item, i) => {\r\n item.toggleContent(i === activeIndex);\r\n });\r\n };\r\n\r\n elAccordion\r\n .querySelectorAll(\".js-accordion-vertical__accordion-item\")\r\n .forEach((el, i) => {\r\n const accordionItem = accordionSetup(el, i);\r\n accordionItems.push(accordionItem);\r\n\r\n const foundMedia = \r\n // open this accordion if the image is clicked\r\n el.querySelector(\".js-accordion-vertical__media\")?.addEventListener(\r\n \"click\",\r\n (e) => {\r\n toggleAccordions(i);\r\n },\r\n );\r\n\r\n // close other accordions - only one open at a time\r\n el.querySelector(\".js-accordion-link\").addEventListener(\r\n \"click\",\r\n (e) => {\r\n toggleAccordions(i);\r\n },\r\n );\r\n });\r\n\r\n // open first accordion\r\n accordionItems[activeIndex].toggleContent(true);\r\n // End Accordion Setup\r\n\r\n // Keep current slide in sync\r\n // this feels like too much work LOE > ROI - Jonathan 7/2021\r\n });\r\n};\r\n","const CONSTANTS = {\r\n DEBUG_ENABLED: false,\r\n QUERY_SELECTORS: {\r\n ALERT_BANNER: \".alert-banner-wrapper\",\r\n },\r\n CLASSNAMES: {\r\n IS_ACTIVE: \"is-active\",\r\n },\r\n CSS_VARS: {\r\n ALERT_BANNER_HEIGHT: \"--alert-banner-height\",\r\n },\r\n};\r\n\r\nexport default () => {\r\n function handleResizeScroll() {\r\n const foundAlertBanner = document.querySelector(\r\n CONSTANTS.QUERY_SELECTORS.ALERT_BANNER\r\n );\r\n\r\n if (foundAlertBanner) {\r\n const bannerHeight = foundAlertBanner.offsetHeight;\r\n const scrollY = window.scrollY;\r\n const adjustedBannerHeight = Math.max(bannerHeight - scrollY, 0);\r\n\r\n if (CONSTANTS.DEBUG_ENABLED) {\r\n console.log(\"alert banner found\");\r\n `Class applied: ${foundAlertBanner.classList.contains(\r\n CONSTANTS.CLASSNAMES.IS_ACTIVE\r\n )}`,\r\n `Adjusted height: ${adjustedBannerHeight}px`;\r\n }\r\n\r\n if (CONSTANTS.DEBUG_ENABLED) {\r\n console.log(\r\n `scrollY: ${scrollY}, bannerHeight: ${bannerHeight}, adjustedBannerHeight: ${adjustedBannerHeight}`\r\n );\r\n }\r\n\r\n document.documentElement.style.setProperty(\r\n CONSTANTS.CSS_VARS.ALERT_BANNER_HEIGHT,\r\n `${adjustedBannerHeight}px`\r\n );\r\n }\r\n }\r\n\r\n handleResizeScroll();\r\n window.addEventListener(\"resize\", handleResizeScroll, { passive: true });\r\n window.addEventListener(\"scroll\", handleResizeScroll, { passive: true });\r\n};\r\n","import React from \"react\";\r\nimport { array } from \"prop-types\";\r\n\r\nimport { scrollToId } from \"../../common/scrollHelpers.js\";\r\n\r\nconst propTypes = { links: array };\r\n\r\nconst AnchorLinkNavigation = (props) => {\r\n const { links } = props;\r\n\r\n if (!links || links.length < 1) {\r\n return null;\r\n }\r\n\r\n const handleClick = (event, id) => {\r\n event.preventDefault();\r\n scrollToId(`#${id}`, true);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\nAnchorLinkNavigation.propTypes = propTypes;\r\nexport default AnchorLinkNavigation;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport uniqueid from \"lodash.uniqueid\";\r\n\r\nimport AnchorLinkNavigation from \"./AnchorLinkNavigationApp.jsx\";\r\n\r\nexport default function renderAnchorLinkNavigation() {\r\n document\r\n .querySelectorAll(\".js-anchor-link-navigation-mount\")\r\n .forEach((mount, i) => {\r\n if (document.querySelector(\".is-page-editor\")) {\r\n return null;\r\n }\r\n\r\n const links = [...document.querySelectorAll(\".js-anchor-link\")].map(\r\n (el) => {\r\n const id = uniqueid(\"page-section-\");\r\n // Sitecore required a placeholder so we choose \"...\"\r\n const shortTitle = el.dataset.shortTitle;\r\n const text =\r\n shortTitle && shortTitle !== \"...\" ? shortTitle : el.textContent;\r\n\r\n el.setAttribute(\"id\", id);\r\n el.setAttribute(\"tabindex\", \"-1\");\r\n\r\n return {\r\n id,\r\n href: `#${id}`,\r\n text,\r\n };\r\n },\r\n );\r\n\r\n if (links.length < 1) {\r\n mount.parentNode.classList.add(\"is-empty\");\r\n return;\r\n }\r\n\r\n mount.innerHTML = \"\"; // getting rid of EE Placeholder text\r\n\r\n ReactDom.render(, mount);\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { string, oneOf } from \"prop-types\";\r\n\r\nimport Icon from \"../Icon/Icon.jsx\";\r\n\r\nconst propTypes = {\r\n href: string.isRequired,\r\n type: oneOf([\"\", \"external\", \"download\", \"anchor\", \"jump\"]),\r\n text: string,\r\n title: string,\r\n className: string,\r\n};\r\n\r\nconst ArrowLink = (props) => {\r\n const { href, type, text, title, className } = props;\r\n\r\n const classModifier = type ? `arrow-link--${type}` : \"\";\r\n\r\n return (\r\n \r\n {text}\r\n \r\n \r\n );\r\n};\r\nArrowLink.propTypes = propTypes;\r\nexport default ArrowLink;\r\n","import { scrollTo } from \"../../common/scrollHelpers.js\";\r\nimport { getScrollTop } from \"../../common/scrollHelpers.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-back-to-top\").forEach((el) => {\r\n const main = document.querySelector(\"#main-content\");\r\n\r\n if (!main) {\r\n return;\r\n }\r\n\r\n el.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n scrollTo(0, () => {\r\n main.focus();\r\n });\r\n });\r\n\r\n window.addEventListener(\r\n \"scroll\",\r\n (e) => {\r\n const scrollPosition = getScrollTop();\r\n\r\n // if user scrolls is able to scroll on viewport, show button\r\n if (scrollPosition > 300) {\r\n el.classList.add(\"is-active\");\r\n } else {\r\n el.classList.remove(\"is-active\");\r\n }\r\n },\r\n { passive: true },\r\n );\r\n });\r\n};\r\n","import $ from \"jquery\";\r\nimport slickSlider from \"../../common/slickSlider.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-carousel__slider\").forEach((el) => {\r\n const breakpoint = 679;\r\n const playSpeed = 5000;\r\n\r\n const initCallback = (event, slick) => {\r\n setTimeout(() => {\r\n \r\n }, playSpeed * slick.slideCount);\r\n };\r\n\r\n let sliderActive = document.documentElement.clientWidth > breakpoint;\r\n const customPaging = (slider, i) => {\r\n // leading zero for single digits, 01 - 99\r\n const number = `0${i + 1}`.slice(-2);\r\n\r\n return ``;\r\n };\r\n\r\n const conf = {\r\n autoplay: true,\r\n infinite: true,\r\n autoplaySpeed: playSpeed,\r\n customPaging,\r\n responsive: [\r\n {\r\n breakpoint: breakpoint,\r\n },\r\n ],\r\n };\r\n\r\n slickSlider(el, conf, initCallback);\r\n\r\n window.addEventListener(\"resize\", () => {\r\n const documentWidth = document.documentElement.clientWidth;\r\n if (!sliderActive && documentWidth > breakpoint) {\r\n slickSlider(el, conf, initCallback);\r\n }\r\n if (sliderActive && documentWidth <= breakpoint) {\r\n // fix Slick Slider bug => https://github.com/kenwheeler/slick/issues/4083\r\n el.querySelectorAll(\"a\").forEach((link) =>\r\n link.removeAttribute(\"tabindex\"),\r\n );\r\n }\r\n sliderActive = document.documentElement.clientWidth > breakpoint;\r\n });\r\n\r\n window.addEventListener(\"keydown\", (e) => {\r\n if(e.which == 27) {\r\n $(\".close-video\").click();\r\n }\r\n })\r\n\r\n $(\".hero-carousel .pause\").on(\"click\", function(){\r\n $(el).slick('slickPause');\r\n $(this).hide();\r\n $(\".hero-carousel .play\").show();\r\n });\r\n\r\n $(\".hero-carousel .play\").on(\"click\", function(){\r\n $(el).slick('slickPlay');\r\n $(this).hide();\r\n $(\".hero-carousel .pause\").show();\r\n });\r\n\r\n\r\n $(\".video-play-btn\").on(\"click\", function(){\r\n var videoId = $(this).attr(\"data-video-url\");\r\n var url = videoId + \"?rel=0&autoplay=1\";\r\n\r\n var modal = $(\"#video-modal\");\r\n var iframe = $(\"#video-modal iframe\");\r\n\r\n if (iframe){\r\n $(modal).show();\r\n $(iframe).attr(\"src\", url);\r\n }\r\n\r\n $(\".hero-carousel .pause\").click();\r\n });\r\n\r\n $(\".close-video\").on(\"click\", function(){\r\n var modal = $(\"#video-modal\");\r\n var iframe = $(\"#video-modal iframe\");\r\n\r\n if (iframe){\r\n $(modal).hide();\r\n $(iframe).attr(\"src\", \"\");\r\n }\r\n\r\n $(\".hero-carousel .play\").click();\r\n });\r\n });\r\n};\r\n","// Dealing with bleed components that have backgrounds to remove space between them.\r\nexport default () => {\r\n document.querySelectorAll(\".container--bleed\").forEach((el) => {\r\n if (\r\n el.querySelector(\".has-background:last-child\") ||\r\n el.querySelector(\".has-bottom-background:last-child\")\r\n ) {\r\n el.classList.add(\"contains-last-background\");\r\n }\r\n if (el.querySelector(\".has-background:first-child\")) {\r\n el.classList.add(\"contains-first-background\");\r\n }\r\n });\r\n\r\n // Hero is in a 100 container add should have this logic applied\r\n document.querySelectorAll(\".container--100\").forEach((el) => {\r\n if (el.querySelector(\".hero.has-bottom-background:last-child\") || el.querySelector(\".hero-slider-container:last-child\")) {\r\n el.classList.add(\"contains-last-background\");\r\n }\r\n });\r\n};\r\n","import accordion from \"../../common/accordion.js\";\r\nimport makeClickable from \"../../common/makeClickable.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-list-item-overflow\").forEach((el, i) => {\r\n accordion(el, i);\r\n\r\n const firstNewItem = el.querySelectorAll(\".content-list__item\")[0];\r\n firstNewItem.setAttribute(\"tabIndex\", \"-1\");\r\n\r\n el.querySelector(\".js-accordion-link\").addEventListener(\"click\", (e) => {\r\n window.setTimeout(() => {\r\n firstNewItem.focus();\r\n }, 500);\r\n });\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { string, array, shape, arrayOf, object, number } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n results: arrayOf(\r\n shape({\r\n imageSrcWide: string,\r\n imageSrcSquare: string,\r\n title: string,\r\n clients: array,\r\n taxonomy: array,\r\n contentUrl: string,\r\n }),\r\n ),\r\n focusRef: object,\r\n focusItem: number,\r\n};\r\n\r\nconst CaseStudyGrid = (props) => {\r\n const { results, focusRef, focusItem } = props;\r\n\r\n if (!results || results.length < 1) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {results.map((result, i) => {\r\n const tall = (i + 7) % 8 === 0 || (i + 4) % 8 === 0;\r\n const {\r\n key,\r\n imageSrcWide,\r\n imageSrcSquare,\r\n clients,\r\n contentUrl,\r\n title,\r\n body,\r\n taxonomy,\r\n } = result;\r\n\r\n return (\r\n
  • \r\n {((imageSrcSquare && tall) || (!tall && imageSrcWide)) && (\r\n (window.location = contentUrl)}\r\n >\r\n \r\n \r\n )}\r\n {clients && clients.length >= 1 && (\r\n
    {clients[0]}
    \r\n )}\r\n
    \r\n \r\n {title}\r\n \r\n
    \r\n {body && (\r\n \r\n )}\r\n {taxonomy && (\r\n
    \r\n {taxonomy.map((type) => (\r\n
    \r\n {type.text}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n
  • \r\n );\r\n })}\r\n
\r\n );\r\n};\r\nCaseStudyGrid.propTypes = propTypes;\r\nexport default React.memo(CaseStudyGrid);\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, number } 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 CaseStudyGrid from \"./CaseStudyGrid/CaseStudyGrid.jsx\";\r\nimport FeaturedPromo from \"../FeaturedPromo/FeaturedPromo.jsx\";\r\nimport FilterBar from \"./FilterBar/FilterBar.jsx\";\r\nimport FullGrid from \"./FullGrid/FullGrid.jsx\";\r\nimport ResultsInfo from \"./ResultsInfo/ResultsInfo.jsx\";\r\nimport SimpleGrid from \"./SimpleGrid/SimpleGrid.jsx\";\r\nimport ThreeUpGrid from \"./ThreeUpGrid/ThreeUpGrid.jsx\";\r\nimport SimpleList from \"./SimpleList/SimpleList.jsx\";\r\nimport Sorters from \"./Sorters/Sorters.jsx\";\r\nimport LoadingSpinner from \"./LoadingSpinner/LoadingSpinner.jsx\";\r\n\r\nconst propTypes = {\r\n id: string.isRequired,\r\n theme: number,\r\n title: string,\r\n subtitle: string,\r\n enableQueryString: bool,\r\n pagination: bool,\r\n loadMore: bool,\r\n hideMobileSummary: bool,\r\n url: string.isRequired,\r\n featuredBackground: 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 link: shape({ href: string, text: string, title: 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 DynamicContentListingApp = (props) => {\r\n const {\r\n id,\r\n title,\r\n subtitle,\r\n theme,\r\n enableQueryString,\r\n hideMobileSummary,\r\n url,\r\n featuredBackground,\r\n dictionary,\r\n query,\r\n link,\r\n sorters,\r\n pagination,\r\n loadMore,\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, true);\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 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 signal,\r\n )\r\n .then(function (data) {\r\n if (data && loadMore && currentParams.page > 1) {\r\n setServerData((prevState) => {\r\n return {\r\n ...data,\r\n results: [...prevState.results, ...data.results],\r\n };\r\n });\r\n } else {\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, url, loadMore]);\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 after new results are rendred.\r\n window.setTimeout(() => {\r\n resultsFocusRef.current.focus();\r\n showFocusRef.current.showFocus = false;\r\n }, 100);\r\n }\r\n }, [serverData]);\r\n\r\n const handlePageChange = (page) => {\r\n showFocusRef.current.showFocus = true;\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, page: page };\r\n });\r\n if (pagination) {\r\n scrollToId(`${id}-results`, true);\r\n }\r\n };\r\n\r\n const handleFacetChange = useCallback((facetGroupValue, facet) => {\r\n // analytics\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n type: \"DCL Facet Change\",\r\n event: \"dropdownClick\",\r\n dropdownSelection: facet,\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 showLoadMore =\r\n loadMore &&\r\n serverData &&\r\n serverData.totalResults > currentParams.page * currentParams.perPage &&\r\n theme != 6; //ThreeUpGrid only ever shows the first 3 \r\n\r\n return (\r\n
\r\n {serverData &&\r\n serverData.results &&\r\n serverData.results.length > 0 &&\r\n theme === 4 && (\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 && (\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 {serverData && serverData.results && serverData.results.length < 1 && (\r\n
\r\n {dictionary.noResultsMessage || \"No Results Found\"}\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 {(!theme || theme === 1) && (\r\n \r\n )}\r\n {theme === 2 && (\r\n \r\n )}\r\n {theme === 3 && (\r\n \r\n )}\r\n {theme === 4 && (\r\n 1 ? resultsFocusRef : null}\r\n focusItem={(currentParams.page - 1) * currentParams.perPage}\r\n />\r\n )}\r\n {theme === 5 && (\r\n \r\n )}\r\n {theme === 6 && (\r\n \r\n )}\r\n
\r\n )}\r\n {showLoadMore && (\r\n
\r\n handlePageChange(currentParams.page + 1)}\r\n className=\"btn btn--primary dynamic-content-listing__load-more-btn\"\r\n type=\"button\"\r\n >\r\n {dictionary.loadMoreLabel\r\n ? dictionary.loadMoreLabel\r\n : \"Load more results\"}\r\n \r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nDynamicContentListingApp.propTypes = propTypes;\r\nexport default DynamicContentListingApp;\r\n","import React from \"react\";\r\nimport { func, object, arrayOf, string, bool } from \"prop-types\";\r\n\r\nimport { selectedFacetShape } from \"../../../common/dynamicSearch.js\";\r\n\r\nimport FilterDropdown from \"../FilterDropdown/FilterDropdown.jsx\";\r\n\r\nconst propTypes = {\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};\r\n\r\nconst FilterBar = (props) => {\r\n const {\r\n filterLabel,\r\n facets,\r\n onFacetChange,\r\n selectedFacets,\r\n onClearFacetGroup,\r\n } = props;\r\n\r\n // check if we need to render anything.\r\n const emptyFacets =\r\n !facets ||\r\n facets.length < 1 ||\r\n !facets.some((facet) => {\r\n return facet.values && facet.values.length > 0;\r\n });\r\n\r\n if (emptyFacets) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {facets &&\r\n facets.map((facet) => (\r\n \r\n ))}\r\n
\r\n
\r\n );\r\n};\r\n\r\nFilterBar.propTypes = propTypes;\r\nexport default React.memo(FilterBar);\r\n","import React, { useState } from \"react\";\r\nimport cx from \"classnames\";\r\n\r\nimport { func, string, array } from \"prop-types\";\r\nimport { selectedFacetShape } from \"../../../common/dynamicSearch.js\";\r\n\r\nimport useClickAway from \"../../../common/useClickAway.js\";\r\n\r\nimport Checkbox from \"../../FormItems/Checkbox.jsx\";\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 onClearFacetGroup,\r\n } = props;\r\n\r\n const [isOpen, setOpen] = useState(false);\r\n const filterDropdownRef = useClickAway({ isOpen, setOpen });\r\n\r\n if (!values || values.length < 1) {\r\n return null;\r\n }\r\n\r\n const renderGroup = (values) => {\r\n return (\r\n values &&\r\n values.map((value, ind) => {\r\n return (\r\n
  • \r\n onFacetChange(id, value.id)}\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 renderSelectedGroup = (values) => {\r\n return (\r\n values &&\r\n values.map((value, ind) => {\r\n return value.selected === true ? (\r\n <>\r\n
  • \r\n onFacetChange(id, value.id)}\r\n />\r\n
  • \r\n {value.childValues &&\r\n value.childValues.length > 0 &&\r\n renderSelectedGroup(value.childValues)}\r\n \r\n ) : (\r\n value.childValues &&\r\n value.childValues.length > 0 &&\r\n renderSelectedGroup(value.childValues)\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 const handleMenuClick = () => {\r\n // analytics\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n type: `DCL Facet ${isOpen ? \"Closed\" : \"Opened\"}`,\r\n event: \"dropdownClick\",\r\n dropdownSelection: label,\r\n });\r\n\r\n setOpen(!isOpen);\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 \r\n \r\n \r\n {filterLabel ? `${filterLabel} ${label}` : `${label} ${count}`}\r\n \r\n \r\n \r\n
    \r\n \r\n {selectedFacets[id] && Object.keys(selectedFacets[id]).length > 0 && (\r\n
    \r\n onClearFacetGroup(id)}\r\n >\r\n Clear All\r\n \r\n
    \r\n )}\r\n
    \r\n
      \r\n {renderGroup(values)}\r\n
    \r\n {childGroups &&\r\n childGroups.map((group, ind) => {\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 React.memo(FilterDropdown);\r\n","import React, { useMemo } from \"react\";\r\nimport { array, object, number } from \"prop-types\";\r\n\r\nimport ListItem from \"../../ListItem/ListItem.jsx\";\r\n\r\nconst propTypes = {\r\n results: array,\r\n focusRef: object,\r\n focusItem: number,\r\n};\r\n\r\nconst FullGrid = (props) => {\r\n const { results, focusRef, focusItem } = props;\r\n\r\n const resultsGroup = useMemo(() => {\r\n const size = 4;\r\n\r\n return results.reduce((acc, curr, i, self) => {\r\n if (!(i % size)) {\r\n return [...acc, self.slice(i, i + size)];\r\n }\r\n return acc;\r\n }, []);\r\n }, [results]);\r\n\r\n if (!results || results.length < 1) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {resultsGroup.map((group, i) => (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {group[1] && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n {group[2] && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n {group[3] && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n ))}\r\n
    \r\n );\r\n};\r\nFullGrid.propTypes = propTypes;\r\nexport default React.memo(FullGrid);\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, { useMemo } from \"react\";\r\nimport { shape, string, number } 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};\r\n\r\nconst ResultsInfo = (props) => {\r\n const { query, request, resultsInfoLabel, totalResults } = props;\r\n\r\n const currentResultsRange = useMemo(() => {\r\n //ensure base 10 number\r\n const currentPageNumber = parseInt(request.page || 1, 10);\r\n const resultsPerPageNumber = parseInt(request.perPage || 10, 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 }, [request.page, request.perPage, totalResults]);\r\n\r\n return (\r\n
    \r\n {resultsInfoLabel && (\r\n {resultsInfoLabel}\r\n )}\r\n {request && (\r\n {currentResultsRange}\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
    \r\n );\r\n};\r\n\r\nResultsInfo.propTypes = propTypes;\r\nexport default ResultsInfo;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport debounce from \"lodash.debounce\";\r\n\r\nimport { string, array, shape, arrayOf, bool, object } from \"prop-types\";\r\n\r\nimport ListItem from \"../../ListItem/ListItem.jsx\";\r\n\r\nconst propTypes = {\r\n reversed: bool,\r\n results: arrayOf(\r\n shape({\r\n imageSrcWide: string,\r\n imageSrcSquare: string,\r\n title: string,\r\n taxonomy: array,\r\n contentUrl: string,\r\n }),\r\n ),\r\n focusRef: object,\r\n};\r\n\r\nconst SimpleGrid = (props) => {\r\n const { reversed, results, focusRef } = props;\r\n\r\n const breakpoint = 779;\r\n\r\n const [isMobile, setIsMobile] = useState(window.innerWidth <= breakpoint);\r\n const [leftResults, setLeftResults] = useState([]);\r\n const [rightResults, setRightResults] = useState([]);\r\n\r\n useEffect(() => {\r\n if (results.length === 1) {\r\n setLeftResults(results);\r\n setRightResults([]);\r\n } else {\r\n if (isMobile) {\r\n const half = Math.ceil(results.length / 2);\r\n setLeftResults(results.slice(0, half));\r\n setRightResults(results.slice(half, results.length));\r\n } else {\r\n setLeftResults(results.filter((r, i) => i % 2 === 0));\r\n setRightResults(results.filter((r, i) => (i + 1) % 2 === 0));\r\n }\r\n }\r\n }, [results, isMobile]);\r\n\r\n useEffect(() => {\r\n const handleResize = debounce(() => {\r\n // render is only called if this actually changes state.\r\n setIsMobile(window.innerWidth <= breakpoint);\r\n }, 100);\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, [breakpoint]);\r\n\r\n // no results passed.\r\n if (!results || results.length < 1) {\r\n return null;\r\n }\r\n\r\n const renderWide = (firstColumn) => (\r\n
    \r\n {leftResults &&\r\n leftResults.map((result, i) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n\r\n const renderNarrow = (firstColumn) => (\r\n
    \r\n {rightResults &&\r\n rightResults.map((result, i) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n {reversed ? renderNarrow(true) : renderWide(true)}\r\n {reversed ? renderWide() : renderNarrow()}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nSimpleGrid.propTypes = propTypes;\r\nexport default SimpleGrid;\r\n","import React from \"react\";\r\nimport { string, array, shape, arrayOf, object } from \"prop-types\";\r\n\r\nimport ListItem from \"../../ListItem/ListItem.jsx\";\r\n\r\nconst propTypes = {\r\n results: arrayOf(\r\n shape({\r\n imageSrcSquare: string,\r\n title: string,\r\n taxonomy: array,\r\n contentUrl: string,\r\n }),\r\n ),\r\n focusRef: object,\r\n};\r\n\r\nconst SimpleList = (props) => {\r\n const { results, focusRef } = props;\r\n\r\n if (!results || results.length < 1) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {results.map((result, i) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n};\r\nSimpleList.propTypes = propTypes;\r\nexport default React.memo(SimpleList);\r\n","import React, { useState } from \"react\";\r\nimport { func, array, string } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n onSorterClick: func,\r\n sorters: array,\r\n sortBy: string,\r\n sortDirection: string,\r\n};\r\n\r\nconst Sorters = (props) => {\r\n const { onSorterClick, sorters, sortBy, sortDirection } = props;\r\n\r\n const toggleDir = (dir) => {\r\n if (!dir) return null;\r\n return dir === \"asc\" ? \"desc\" : \"asc\";\r\n };\r\n\r\n if (!sorters) {\r\n return null;\r\n }\r\n\r\n //if there is only one sorter and is relevance, return null, otherwise return sorters\r\n if (sorters && sorters.length === 1 && sorters[0].value === \"relevance\")\r\n return null;\r\n\r\n return (\r\n
    \r\n
      \r\n {sorters.map(\r\n (sorter, i) =>\r\n typeof sorter.label === \"string\" &&\r\n sorter.label.length > 0 &&\r\n typeof sorter.value === \"string\" &&\r\n sorter.value.length > 0 && (\r\n
    • \r\n \r\n onSorterClick({\r\n sortBy: sorter.value,\r\n sortOrder:\r\n sorter.value === \"relevance\"\r\n ? null\r\n : sorter.value === props.sortBy\r\n ? toggleDir(sortDirection)\r\n : sorter.direction,\r\n })\r\n }\r\n type=\"button\"\r\n >\r\n \r\n {sortDirection === \"asc\"\r\n ? sorter.labelAsc || sorter.label\r\n : sorter.labelDesc || sorter.label}\r\n \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 React, { useState, useEffect } from \"react\";\r\nimport debounce from \"lodash.debounce\";\r\n\r\nimport { string, array, shape, arrayOf, bool, object } from \"prop-types\";\r\n\r\nimport ListItem from \"../../ListItem/ListItem.jsx\";\r\n\r\nconst propTypes = {\r\n results: arrayOf(\r\n shape({\r\n imageSrcWide: string,\r\n imageSrcSquare: string,\r\n title: string,\r\n taxonomy: array,\r\n contentUrl: string,\r\n }),\r\n ),\r\n focusRef: object,\r\n};\r\n\r\nconst ThreeUpGrid = (props) => {\r\n const { results, focusRef } = props;\r\n\r\n const [maxThreeResults, setMaxThreeResults] = useState([]);\r\n\r\n useEffect(() => {\r\n if (results.length > 3) {\r\n setMaxThreeResults(results.slice(0,3));\r\n } else {\r\n setMaxThreeResults(results);\r\n }\r\n }, [results]);\r\n\r\n // no results passed.\r\n if (!results || results.length < 1) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {maxThreeResults &&\r\n maxThreeResults.map((result, i) => (\r\n
    \r\n {/* To solve \"properly sized images\" issue we can update the sizes to be 270 but we will need to see if this will affect any other places*/}\r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nThreeUpGrid.propTypes = propTypes;\r\nexport default ThreeUpGrid;\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 DynamicContentListingApp from \"./DynamicContentListingApp.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\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { string, array, object } from \"prop-types\";\r\n\r\nimport Taxonomy from \"../Taxonomy/Taxonomy.jsx\";\r\n\r\nconst propTypes = {\r\n imageBackground: string,\r\n imageSrcSquare: string,\r\n title: string.isRequired,\r\n eyebrow: string,\r\n taxonomy: array,\r\n contentUrl: string,\r\n contentType: string,\r\n date: string,\r\n sizes: string,\r\n focusRef: object,\r\n};\r\n\r\nconst FeaturedPromo = (props) => {\r\n const {\r\n imageBackground,\r\n imageSrcSquare,\r\n title,\r\n eyebrow,\r\n taxonomy,\r\n contentUrl,\r\n contentType,\r\n date,\r\n sizes,\r\n focusRef,\r\n } = props;\r\n\r\n return (\r\n
    \r\n
    \r\n (window.location = contentUrl)}\r\n >\r\n {imageBackground && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n {eyebrow &&
    {eyebrow}
    }\r\n {(contentType || date) && (\r\n
    \r\n {contentType && (\r\n
    \r\n {contentType}\r\n
    \r\n )}\r\n {date &&
    {date}
    }\r\n
    \r\n )}\r\n {taxonomy && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n \r\n
    \r\n );\r\n};\r\nFeaturedPromo.propTypes = propTypes;\r\nexport default FeaturedPromo;\r\n","import makeClickable from \"../../common/makeClickable.js\";\r\n\r\nexport default () => {\r\n document\r\n .querySelectorAll(\".js-featured-promo-clickable\")\r\n .forEach(makeClickable);\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};\r\n\r\nconst checkbox = props => {\r\n const { required, error, value, label, errorMsg, onChange, checked } = 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 () => {\r\n [...document.querySelectorAll(\".js-newsletter-signup\")].forEach((elForm) => {\r\n const successMessage = document.querySelector(\r\n \".js-newsletter-success-message\",\r\n );\r\n const errorMessage = document.querySelector(\".js-newsletter-error-message\");\r\n\r\n // When the input is focused, hide any existing error messages\r\n elForm.querySelector(\"input\").addEventListener(\"focus\", () => {\r\n window.setTimeout(\r\n () => errorMessage.classList.remove(\"is-visible\"),\r\n 5000,\r\n );\r\n });\r\n\r\n elForm.addEventListener(\"submit\", (e) => {\r\n e.preventDefault();\r\n // on submit, blur the input to remove floating placeholder text and allow\r\n // for accurate success/error display\r\n elForm.querySelector(\"button\").focus();\r\n errorMessage.classList.remove(\"is-visible\");\r\n\r\n const field = elForm.querySelector(\"input\");\r\n const valid = !!field.value.match(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]+/i);\r\n\r\n if (!valid) {\r\n errorMessage.classList.add(\"is-visible\");\r\n elForm.querySelector(\".js-newsletter-error-response\").innerText =\r\n \"Email address is invalid\";\r\n field.focus();\r\n return;\r\n }\r\n\r\n fetch(elForm.action, {\r\n body: new URLSearchParams(new FormData(elForm)).toString(),\r\n credentials: \"same-origin\",\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((data) => {\r\n if (data.success) {\r\n document\r\n .querySelectorAll(\".js-newsletter-hideable\")\r\n .forEach((hideable) => {\r\n hideable.style.display = \"none\";\r\n });\r\n successMessage.classList.add(\"is-visible\");\r\n elForm.querySelector(\".js-newsletter-success-response\").innerText =\r\n data.message;\r\n } else {\r\n errorMessage.classList.add(\"is-visible\");\r\n elForm.querySelector(\".js-newsletter-error-response\").innerText =\r\n data.message;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n errorMessage.classList.add(\"is-visible\");\r\n elForm.querySelector(\".js-newsletter-error-response\").innerText =\r\n \"An error has occurred.\";\r\n });\r\n });\r\n });\r\n};\r\n","import initPrimaryNav from \"../PrimaryNav/initPrimaryNav.js\";\r\nimport initMobileMenu from \"../MobileMenu/initMobileMenu.js\";\r\nimport initSearchMenu from \"../SearchMenu/initSearchMenu.js\";\r\n\r\nimport uniqueid from \"lodash.uniqueid\";\r\n\r\nexport default () => {\r\n document\r\n .querySelectorAll(\".js-global-header\")\r\n .forEach((elGlobal, indexGlobal) => {\r\n // VRD-535 - Primary Nav and Quick Search have ID values that are being duplicated between desktop and mobile.\r\n // Solution is to remove one set of ID values before initialize the code.\r\n elGlobal.querySelectorAll(\".js-primary-nav\").forEach((el, i) => {\r\n if (i !== 0 && !window.ExperienceEditor) {\r\n el.querySelectorAll(\"[id]\").forEach((el) => {\r\n el.removeAttribute(\"id\");\r\n });\r\n }\r\n\r\n initPrimaryNav(el, i);\r\n });\r\n\r\n elGlobal.querySelectorAll(\".js-mobile-menu\").forEach(initMobileMenu);\r\n\r\n // duplicate ids on the two forms\r\n elGlobal\r\n .querySelectorAll(\".js-search-menu\")\r\n .forEach((searchEl, searchIndex) => {\r\n initSearchMenu(searchEl, searchIndex);\r\n const id = uniqueid(\"search-form-\");\r\n searchEl.querySelector(\"label\").setAttribute(\"for\", id);\r\n searchEl.querySelector(\"input\").setAttribute(\"id\", id);\r\n });\r\n });\r\n};\r\n","import Swiper from \"swiper/bundle\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-hero-slider\").forEach((heroSlider) => {\r\n const heroSliderThumbs = new Swiper(\".js-hero-slider-thumbs\", {\r\n a11y: true,\r\n allowTouchMove: matchMedia(\"(max-width: 909px)\").matches ? true : false,\r\n observer: true,\r\n observeParents: true,\r\n preventClicks: false,\r\n preventClicksPropagation: false,\r\n slidesPerView: matchMedia(\"(max-width: 909px)\").matches ? 2 : 4,\r\n // spaceBetween: 30,\r\n watchSlidesVisibility: true,\r\n watchSlidesProgress: true,\r\n });\r\n\r\n const heroSliderMain = new Swiper(\".js-hero-slider-main\", {\r\n a11y: true,\r\n autoplay: {\r\n delay: 5000,\r\n disableOnInteraction: false,\r\n },\r\n loop: true,\r\n observer: true,\r\n observeParents: true,\r\n pagination: {\r\n el: \".swiper-pagination\",\r\n },\r\n slidesPerView: 1,\r\n thumbs: {\r\n swiper: heroSliderThumbs,\r\n },\r\n });\r\n\r\n const playButton = heroSlider.querySelector(\".js-hero-slider-play-btn\");\r\n const pauseButton = heroSlider.querySelector(\".js-hero-slider-pause-btn\");\r\n\r\n if (playButton) {\r\n playButton.addEventListener(\"click\", () => {\r\n playButton.classList.add(\"hidden\");\r\n pauseButton.classList.remove(\"hidden\");\r\n\r\n heroSliderMain.autoplay.start();\r\n });\r\n }\r\n\r\n if (pauseButton) {\r\n pauseButton.addEventListener(\"click\", () => {\r\n pauseButton.classList.add(\"hidden\");\r\n playButton.classList.remove(\"hidden\");\r\n\r\n heroSliderMain.autoplay.stop();\r\n });\r\n }\r\n });\r\n};\r\n","/* eslint-disable prettier/prettier */\r\n/* eslint-disable no-console */\r\nexport default () => {\r\n const tag = document.createElement(\"script\");\r\n tag.src = \"https://www.youtube.com/iframe_api\";\r\n const firstScriptTag = document.getElementsByTagName(\"script\")[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n\r\n const arrowBtn = document.querySelector(\".js-hero-video-arrow-btn\");\r\n const nextContainer = findNextElementWithClass(arrowBtn, \"container\");\r\n if (nextContainer !== null) {\r\n nextContainer.style.scrollMarginTop = \"125px\";\r\n }\r\n\r\n const nextFocusableEl = findFirstFocusableElement(nextContainer);\r\n if (arrowBtn) {\r\n arrowBtn.addEventListener(\"click\", () => {\r\n if (nextContainer === null) {\r\n return;\r\n }\r\n nextContainer.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"start\",\r\n inline: \"nearest\",\r\n });\r\n\r\n var scrollTimeout;\r\n addEventListener(\"scroll\", () => {\r\n clearTimeout(scrollTimeout);\r\n\r\n scrollTimeout = setTimeout(() => {\r\n if (nextFocusableEl === null) {\r\n return;\r\n }\r\n nextFocusableEl?.focus();\r\n }, 100);\r\n });\r\n });\r\n }\r\n};\r\n\r\nfunction initYouTubePlayers() {\r\n const players = document.querySelectorAll(\".js-hero-video\");\r\n\r\n if (players) {\r\n players.forEach((el) => {\r\n const videoContainer = el.querySelector(\".js-hero-video-container\");\r\n const videoOverlay = el.querySelector(\".js-hero-video-overlay\");\r\n const playBtn = el.querySelector(\".js-hero-video-play-btn\");\r\n\r\n // YT is defined on the window level by the above function\r\n // eslint-disable-next-line no-undef\r\n const player = new YT.Player(videoContainer, {\r\n height: \"auto\",\r\n width: \"100%\",\r\n videoId: videoContainer.id,\r\n playerVars: {\r\n rel: 0,\r\n },\r\n events: {\r\n onReady: onPlayerReady,\r\n onStateChange: (event) =>\r\n onPlayerStateChange(event, videoOverlay, player),\r\n },\r\n });\r\n\r\n if (playBtn) {\r\n playBtn.addEventListener(\"click\", () =>\r\n handlePlayButtonClick(videoOverlay, player)\r\n );\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction onPlayerReady(e) {}\r\n\r\nfunction handlePlayButtonClick(videoOverlay, player) {\r\n toggleVideoDisplay(videoOverlay, true);\r\n player.playVideo();\r\n}\r\n\r\nfunction toggleVideoDisplay(videoOverlay, displayVideo ) {\r\n const videoOverlayClass = \"hero-video__overlay--hidden\";\r\n if (displayVideo) {\r\n videoOverlay.classList.add(videoOverlayClass);\r\n } else {\r\n videoOverlay.classList.remove(videoOverlayClass);\r\n }\r\n}\r\n\r\nfunction onPlayerStateChange(event, videoOverlay, player) {\r\n const YTPlayerStates = {\r\n UNSTARTED: -1,\r\n ENDED: 0,\r\n PLAYING: 1,\r\n PAUSED: 2,\r\n BUFFERING: 3,\r\n CUED: 5,\r\n };\r\n\r\n switch (event.data) {\r\n case YTPlayerStates.ENDED:\r\n toggleVideoDisplay(videoOverlay, false);\r\n break;\r\n case YTPlayerStates.PLAYING:\r\n break;\r\n case YTPlayerStates.PAUSED:\r\n break;\r\n default:\r\n break;\r\n }\r\n}\r\n\r\n// When API loads, this function is called\r\nwindow.onYouTubeIframeAPIReady = initYouTubePlayers;\r\n\r\nfunction findNextElementWithClass(element, className) {\r\n if (!element) {\r\n return null;\r\n }\r\n let current = element.nextElementSibling;\r\n\r\n while (current) {\r\n if (current.classList.contains(className)) {\r\n return current;\r\n }\r\n\r\n current = current.nextElementSibling;\r\n }\r\n\r\n // If no sibling found, search in parent's siblings\r\n let parent = element.parentElement;\r\n while (parent) {\r\n let nextParentSibling = parent.nextElementSibling;\r\n while (nextParentSibling) {\r\n if (nextParentSibling.classList.contains(className)) {\r\n return nextParentSibling;\r\n }\r\n nextParentSibling = nextParentSibling.nextElementSibling;\r\n }\r\n parent = parent.parentElement;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction findFirstFocusableElement(container) {\r\n if (!container) {\r\n return null;\r\n }\r\n const focusableElements = container.querySelectorAll(\r\n 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n\r\n return focusableElements[0];\r\n}\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, array, oneOf, shape, object } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport Taxonomy from \"../Taxonomy/Taxonomy.jsx\";\r\n\r\nconst propTypes = {\r\n imagePosition: oneOf([\"\", \"left\", \"right\"]),\r\n media: string,\r\n sizes: string,\r\n title: string,\r\n body: string,\r\n taxonomy: array,\r\n contentType: string,\r\n date: string,\r\n link: shape({\r\n href: string,\r\n text: string,\r\n title: string,\r\n }),\r\n focusRef: object, // for React Search apps\r\n};\r\n\r\nconst listItem = (props) => {\r\n const {\r\n imagePosition,\r\n media,\r\n sizes,\r\n title,\r\n body,\r\n taxonomy,\r\n contentType,\r\n date,\r\n link,\r\n focusRef,\r\n } = props;\r\n\r\n return (\r\n \r\n {media && (\r\n (window.location = link.href)}\r\n >\r\n \"\"\r\n \r\n )}\r\n
    \r\n {(contentType || date) && (\r\n
    \r\n {contentType && (\r\n
    {contentType}
    \r\n )}\r\n {date &&
    {date}
    }\r\n
    \r\n )}\r\n {taxonomy && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nlistItem.propTypes = propTypes;\r\nexport default listItem;\r\n","import makeClickable from \"../../common/makeClickable.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-list-item-clickable\").forEach(makeClickable);\r\n};\r\n","import NavMenu from \"../../common/NavMenu.js\";\r\n\r\nexport default (el, i) => {\r\n const globalHeader = document.querySelector(\".js-global-header\");\r\n\r\n const onClose = () => {\r\n // check for quick search input\r\n if (el.querySelector(\"input\")) {\r\n el.querySelector(\"input\").value = \"\";\r\n }\r\n globalHeader.classList.remove(\"menu-is-open\");\r\n };\r\n\r\n const onOpen = () => {\r\n globalHeader.classList.add(\"menu-is-open\");\r\n };\r\n\r\n NavMenu({\r\n animationDelay: 800,\r\n closed: true,\r\n direction: \"vertical\",\r\n menuButton: \".js-nav-toggle\",\r\n menuContainer: \".js-mobile-menu-content\",\r\n navigationLink:\r\n \".js-primary-nav-top-link, .js-primary-nav-menu-button, input, button\",\r\n openClass: \"is-open\",\r\n onClose: onClose,\r\n onOpen: onOpen,\r\n parent: el,\r\n });\r\n\r\n el.classList.add(\"menu-initialized\");\r\n};\r\n","import NavMenu from \"../../common/NavMenu.js\";\r\n\r\nexport default (el, index, callback) => {\r\n const globalHeaderEl = document.querySelector(\".js-global-header\");\r\n let openMenuID = -1;\r\n\r\n const onClose = (i) => {\r\n if (openMenuID === i) {\r\n openMenuID = -1;\r\n\r\n if (globalHeaderEl) {\r\n globalHeaderEl.classList.remove(\"is-expanded\");\r\n globalHeaderEl.style.marginBottom = 0;\r\n }\r\n }\r\n };\r\n const onOpen = (i, margin) => {\r\n if (openMenuID !== i) {\r\n openMenuID = i;\r\n\r\n if (globalHeaderEl) {\r\n globalHeaderEl.style.marginBottom = `${margin}px`;\r\n globalHeaderEl.classList.add(\"is-expanded\");\r\n }\r\n }\r\n };\r\n const primaryLinks = el.querySelectorAll(\r\n \".js-primary-nav-top-link, .js-primary-nav-menu-button\",\r\n );\r\n\r\n primaryLinks.forEach((el, i) => {\r\n el.addEventListener(\"keydown\", (e) => {\r\n handleKeyDown(e, i);\r\n });\r\n });\r\n el.querySelectorAll(\".js-primary-nav-menu\").forEach((el, i) => {\r\n const contentEl = el.querySelector(\".js-primary-nav-menu-content\");\r\n\r\n NavMenu({\r\n animationDelay: 500,\r\n closed: true,\r\n direction: \"vertical\",\r\n menuButton: \".js-primary-nav-menu-button\",\r\n menuContainer: \".js-primary-nav-menu-content\",\r\n navigationLink: \".js-primary-nav-sub-link\",\r\n openClass: \"is-open\",\r\n onClose: () => onClose(i),\r\n onOpen: () => onOpen(i, contentEl.offsetHeight),\r\n parent: el,\r\n });\r\n });\r\n\r\n function handleKeyDown(event, index) {\r\n switch (event.key) {\r\n case \"Left\":\r\n case \"ArrowLeft\":\r\n if (index > 0) {\r\n event.preventDefault();\r\n primaryLinks[index - 1].focus();\r\n }\r\n break;\r\n case \"Right\":\r\n case \"ArrowRight\":\r\n if (index < primaryLinks.length - 1) {\r\n event.preventDefault();\r\n primaryLinks[index + 1].focus();\r\n }\r\n break;\r\n default:\r\n }\r\n }\r\n};\r\n","export default () => {\r\n document.querySelectorAll(\".js-privacy-banner\").forEach((el) => {\r\n const acceptBtn = document.querySelector(\".js-accept-cookies\");\r\n const closeBtn = document.querySelector(\".js-close-banner\");\r\n const body = document.querySelector(\"body\");\r\n\r\n if (!getCookie(\"acceptPrivacy\")) {\r\n el.classList.remove(\"is-hidden\");\r\n\r\n handleResize();\r\n window.addEventListener(\"resize\", handleResize);\r\n\r\n acceptBtn.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n handlePrivacy(!body.classList.contains(\"is-page-editor\"));\r\n });\r\n\r\n closeBtn.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n handlePrivacy(false);\r\n });\r\n }\r\n\r\n function handleResize() {\r\n let resizeHeight = el.offsetHeight;\r\n body.style.paddingBottom = `${resizeHeight}px`;\r\n }\r\n\r\n function handlePrivacy(accept) {\r\n if (accept) {\r\n //closed by accepting\r\n setCookie(\"acceptPrivacy\", true, 90);\r\n } else {\r\n //closed without accepting\r\n setCookie(\"acceptPrivacy\", false, 1);\r\n }\r\n\r\n body.style.paddingBottom = \"0\";\r\n\r\n window.removeEventListener(\"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 + \";\";\r\n el.classList.add(\"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 makeClickable from \"../../common/makeClickable.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-promo-clickable\").forEach(makeClickable);\r\n};","import hljs from \"highlight.js/lib/core\";\r\nimport javascript from \"highlight.js/lib/languages/javascript\";\r\nimport css from \"highlight.js/lib/languages/css\";\r\nimport yaml from \"highlight.js/lib/languages/yaml\";\r\nimport php from \"highlight.js/lib/languages/php\";\r\nimport bash from \"highlight.js/lib/languages/bash\";\r\nimport csharp from \"highlight.js/lib/languages/csharp\";\r\nimport xml from \"highlight.js/lib/languages/xml\";\r\nimport java from \"highlight.js/lib/languages/java\";\r\n\r\nexport default () => {\r\n hljs.registerLanguage(\"javascript\", javascript);\r\n hljs.registerLanguage(\"css\", css);\r\n hljs.registerLanguage(\"yaml\", yaml);\r\n hljs.registerLanguage(\"php\", php);\r\n hljs.registerLanguage(\"bash\", bash);\r\n hljs.registerLanguage(\"csharp\", csharp);\r\n hljs.registerLanguage(\"xml\", xml);\r\n hljs.registerLanguage(\"java\", java);\r\n\r\n document.querySelectorAll(\".js-rich-text code\").forEach((code) => {\r\n hljs.highlightBlock(code);\r\n });\r\n\r\n document.querySelectorAll(\".js-rich-text table\").forEach((table) => {\r\n const wrapper = document.createElement(\"div\");\r\n wrapper.classList.add(\"rich-text__table-wrapper\");\r\n table.parentNode.insertBefore(wrapper, table);\r\n wrapper.appendChild(table);\r\n });\r\n};\r\n","import NavMenu from \"../../common/NavMenu.js\";\r\n\r\nexport default (el, i) => {\r\n const onClose = () => {\r\n el.querySelector(\"input[type='search']\").value = \"\";\r\n };\r\n const onOpen = () => {};\r\n\r\n NavMenu({\r\n animationDelay: 800,\r\n closed: true,\r\n direction: \"\",\r\n menuButton: \".js-search-menu-button\",\r\n menuContainer: \".js-search-menu-content\",\r\n navigationLink: \"input, button\",\r\n openClass: \"is-open\",\r\n onClose: onClose,\r\n onOpen: onOpen,\r\n parent: el,\r\n });\r\n};\r\n","import { MatchHeight } from \"js-match-height\";\r\n\r\nimport slickSlider from \"../../common/slickSlider.js\";\r\n\r\nexport default () => {\r\n if (document.querySelector(\".is-page-editor\")) {\r\n return;\r\n }\r\n\r\n document.querySelectorAll(\".js-section-navigator\").forEach((el, i) => {\r\n const parentIndex = i + 1;\r\n const cards = el.querySelectorAll(\".js-rich-text-card\");\r\n const titles = [...el.querySelectorAll(\".js-rich-text-card__title\")].map(\r\n (title) => title.innerHTML,\r\n );\r\n\r\n if (!cards || cards.length < 2) {\r\n return;\r\n }\r\n\r\n // **** Create Fake Card appearance at end of the slider *****************/\r\n const blankImage = document.createElement(\"div\");\r\n blankImage.classList.add(\"rich-text-card__image\");\r\n const firstImage = cards[0].querySelector(\".js-rich-text-card__image\");\r\n const secondImage = cards[1].querySelector(\".js-rich-text-card__image\");\r\n let activeSlide = 0;\r\n\r\n const imageDecorator = document.createElement(\"div\");\r\n\r\n imageDecorator.classList.add(\"rich-text-card__decorative-images\");\r\n imageDecorator.append(\r\n firstImage ? firstImage.cloneNode() : blankImage.cloneNode(),\r\n );\r\n imageDecorator.append(\r\n secondImage ? secondImage.cloneNode() : blankImage.cloneNode(),\r\n );\r\n cards[cards.length - 1].append(imageDecorator);\r\n\r\n // **** Create Slick Sider ******************************************/\r\n const customPaging = (slider, i) =>\r\n ``;\r\n\r\n const conf = {\r\n speed: 500,\r\n fade: true,\r\n customPaging,\r\n appendDots: el.querySelector(\".js-section-navigator__controls\"),\r\n responsive: [\r\n {\r\n breakpoint: 909,\r\n settings: {\r\n fade: false,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n const elSlider = el.querySelector(\".js-section-navigator__slider\");\r\n const slider = slickSlider(elSlider, conf, (event, slick) => {});\r\n\r\n // **** Handle URL hash tag controls *******************************/\r\n cards.forEach((card, cardIndex) => {\r\n card.addEventListener(\"focus\", (event) => {\r\n slider.slick(\"slickGoTo\", cardIndex);\r\n });\r\n });\r\n\r\n // **** Set Equal heights for each card ********************************/\r\n const id = `section-navigator-${parentIndex}`;\r\n el.setAttribute(\"id\", id);\r\n const matchHeight = new MatchHeight(`#${id} .rich-text-card`);\r\n\r\n if (window.location.hash) {\r\n const hash = window.location.hash;\r\n if (hash.startsWith(\"#section-navigator\")) {\r\n const hashParts = hash.split(\"-\");\r\n if (parseInt(hashParts[2], 10) === i + 1) {\r\n slider.slick(\"slickGoTo\", parseInt(hashParts[3], 10) - 1);\r\n }\r\n }\r\n }\r\n\r\n // Adding tracking for hash tag events\r\n const rightColumn = el.querySelector(\".js-section-navigator__column-right\");\r\n // create spacer elements for all cards.\r\n for (let index = 0; index < cards.length; index++) {\r\n const spacer = document.createElement(\"div\");\r\n spacer.classList.add(\"section-navigator__spacer-card\");\r\n spacer.dataset.slideIndex = index;\r\n spacer.setAttribute(\r\n \"id\",\r\n `section-navigator-${parentIndex}-${index + 1}`,\r\n );\r\n spacer.setAttribute(\"tabindex\", \"-1\");\r\n rightColumn.prepend(spacer);\r\n\r\n spacer.addEventListener(\"focus\", (e) => {\r\n slider.slick(\"slickGoTo\", index);\r\n });\r\n }\r\n\r\n slider.on(\"afterChange\", (event, slick, currentSlide) => {\r\n activeSlide = currentSlide;\r\n document.querySelector(`#slick-slide-control${i}${activeSlide}`).focus();\r\n });\r\n\r\n // **** Handle Up Down Key controls *************************/\r\n // declaring an array so we can find the next and prev controls\r\n const controlLinks = el.querySelectorAll(\r\n \".js-section-navigator__control-link\",\r\n );\r\n\r\n controlLinks.forEach((link, i) => {\r\n link.addEventListener(\"click\", (e) => {\r\n activeSlide = i;\r\n });\r\n\r\n link.addEventListener(\"keydown\", (e) => {\r\n switch (e.key) {\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n slider.slick(\"slickPrev\");\r\n if (i > 0) {\r\n controlLinks[i - 1].focus();\r\n }\r\n break;\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n slider.slick(\"slickNext\");\r\n if (i < controlLinks.length - 1) {\r\n controlLinks[i + 1].focus();\r\n }\r\n break;\r\n default:\r\n }\r\n });\r\n });\r\n });\r\n};\r\n","import loadAddThis from \"../../common/loadAddThis.js\";\r\nimport NavMenu from \"../../common/NavMenu.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-share-bar\").forEach((elShare, index) => {\r\n if (index === 0) {\r\n loadAddThis(elShare.dataset.pubId || \"\");\r\n }\r\n\r\n const elItems = elShare.querySelector(\".js-share-bar-items\"); \r\n\r\n // set the max-width of the share items for animation affects\r\n elItems.setAttribute(\"style\", `max-width: 100%`);\r\n\r\n // using forEach as a conditional selector\r\n elShare.querySelectorAll(\".js-read-time\").forEach((el, i) => {\r\n const wordsPerMinute = 200; // 200 is the average case.\r\n let textLength = 0;\r\n\r\n document.querySelectorAll(\".js-rich-text > p\").forEach((p) => {\r\n textLength = textLength + p.textContent.split(\" \").length;\r\n });\r\n\r\n const readTimeMinutes =\r\n textLength > 0 ? Math.ceil(textLength / wordsPerMinute) : 0;\r\n\r\n el.innerText =\r\n readTimeMinutes > 60\r\n ? `${(readTimeMinutes / 60).toFixed(1)} hours`\r\n : `${readTimeMinutes} minutes`;\r\n });\r\n\r\n const menuConfig = {\r\n animationDelay: 350,\r\n closed: window.innerWidth < 680,\r\n reversed: true,\r\n direction: \"horizontal\",\r\n menuButton: \".js-share-bar-menu\",\r\n menuContainer: \".js-share-bar-items\",\r\n navigationLink: \".js-share-bar-items a\",\r\n openClass: \"is-open\",\r\n onClose: closeShare,\r\n onOpen: openShare,\r\n parent: elShare,\r\n };\r\n\r\n const shareMenu = NavMenu(menuConfig);\r\n\r\n function closeShare() {\r\n elShare.classList.add(\"is-closed\");\r\n }\r\n\r\n function openShare() {\r\n elShare.classList.remove(\"is-closed\");\r\n }\r\n });\r\n};\r\n","export default () => {\r\n if (\r\n document.querySelector(\".page-banner\") ||\r\n document.querySelector(\".hero-slider\") ||\r\n document.querySelector(\".hero-video\")\r\n ) {\r\n document.querySelectorAll(\".js-site-header\").forEach((el) => {\r\n el.classList.add(\"site-header--has-page-banner\");\r\n });\r\n }\r\n};\r\n","export default () => {\r\n document.querySelectorAll(\"a.site-logo__link\").forEach((link) => {\r\n link.addEventListener(\"click\", (event) => {\r\n const targetElement = event.currentTarget;\r\n\r\n if (targetElement.target === \"_blank\") {\r\n setTimeout(() => {\r\n targetElement.blur();\r\n }, 0);\r\n }\r\n });\r\n });\r\n};\r\n","import { scrollToId } from \"../../common/scrollHelpers.js\";\r\n\r\nexport default () => {\r\n document.querySelectorAll(\".js-skip-navigation\").forEach((el) => {\r\n const id = el.getAttribute(\"href\"); //`.href` returned a full url\r\n\r\n if (!id || id === \"#\") {\r\n return;\r\n }\r\n\r\n const target = document.querySelector(id);\r\n\r\n if (!target) {\r\n return;\r\n }\r\n\r\n el.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n target.focus();\r\n });\r\n });\r\n};\r\n","import slickSlider from \"../../common/slickSlider.js\";\r\n\r\nexport default function initSlideShow(el, i) {\r\n document.querySelectorAll(\".js-slideshow-slider\").forEach((el) => {\r\n const slideshowTheme = parseInt(el.dataset.theme, 10);\r\n\r\n const customPaging = (slider, i) => {\r\n // leading zero for single digits, 01 - 99\r\n const number = `0${i + 1}`.slice(-2);\r\n\r\n return ``;\r\n };\r\n\r\n if (slideshowTheme === 2) {\r\n try {\r\n el.closest(\".slideshow:last-child\")\r\n .closest(\".container\")\r\n .classList.add(\"contains-last-background\");\r\n } catch (err) {}\r\n }\r\n\r\n const conf =\r\n slideshowTheme === 1\r\n ? {\r\n prevArrow: null,\r\n nextArrow: null,\r\n customPaging,\r\n }\r\n : {\r\n dots: false,\r\n slidesToShow: 2,\r\n responsive: [\r\n {\r\n breakpoint: 779,\r\n settings: {\r\n slidesToShow: 1,\r\n slidestoScroll: 1,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n slickSlider(el, conf, (event, slick, currentSlide) => {\r\n if (slideshowTheme === 1) {\r\n const slickDotsWidth = el\r\n .querySelector(\".slick-dots\")\r\n .getBoundingClientRect().width;\r\n\r\n el.style.setProperty(\"--l-slick-dots-width\", `${slickDotsWidth}px`);\r\n }\r\n });\r\n });\r\n}\r\n","import React from \"react\";\r\nimport { arrayOf, shape, string } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n values: arrayOf(\r\n shape({\r\n text: string,\r\n href: string,\r\n title: string,\r\n }),\r\n ),\r\n};\r\n\r\nconst Taxonomy = (props) => {\r\n const { values } = props;\r\n\r\n if (!values || values.length < 1) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {values.map((value, ind) => (\r\n \r\n {value.text}\r\n \r\n ))}\r\n
    \r\n );\r\n};\r\nTaxonomy.propTypes = propTypes;\r\nexport default Taxonomy;\r\n","import slickSlider from \"../../common/slickSlider.js\";\r\n\r\nconst initTestimonals = () => {\r\n document.querySelectorAll(\".js-testimonials\").forEach((el) => {\r\n const isDarkMode = el.closest(\".is-dark-mode\");\r\n if (isDarkMode) {\r\n el.classList.add(\"testimonials--dark-mode\");\r\n }\r\n\r\n const customPaging = (slider, i) => {\r\n // leading zero for single digits, 01 - 99\r\n const maxAmount = slider.slideCount;\r\n // const number = `0${i + 1}`.slice(-2);\r\n\r\n return `${i + 1} / ${maxAmount}`;\r\n };\r\n\r\n const conf = {\r\n appendArrows: el.querySelector(\".js-testimonials-arrows\"),\r\n appendDots: el.querySelector(\".js-testimonials-pagination-dots\"),\r\n arrows: true,\r\n // dots: false,\r\n customPaging,\r\n infinite: true,\r\n slidesToShow: 1,\r\n responsive: [\r\n {\r\n breakpoint: 779,\r\n settings: {\r\n slidesToShow: 1,\r\n slidestoScroll: 1,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n slickSlider(\r\n el.querySelector(\".js-testimonial-slider\"),\r\n conf,\r\n (event, slick, currentSlide) => {},\r\n );\r\n });\r\n};\r\n\r\nexport default initTestimonals;\r\n","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport { object, string, bool } from \"prop-types\";\r\nimport { loadScript, createPlayer } from \"./youtubeService.js\";\r\n\r\nimport uniqueid from \"lodash.uniqueid\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n id: string.isRequired,\r\n poster: object,\r\n transcriptLink: object,\r\n caption: string,\r\n darkButton: bool,\r\n};\r\n\r\nconst YouTubeVideoApp = (props) => {\r\n const { id, poster, transcriptLink, caption, darkButton } = props;\r\n\r\n const [videoStarted, setVideoStarted] = useState(false);\r\n const [player, setPlayer] = useState(null);\r\n const [playerReady, setPlayerReady] = useState(false);\r\n\r\n const playerId = useMemo(() => uniqueid(), []);\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 // Check if window.onYouTubeIframeAPIReady already exists\r\n if (window.YT) {\r\n const newPlayer = createPlayer(playerId, id, 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, id, onPlayerReady);\r\n setPlayer(newPlayer);\r\n };\r\n }\r\n }, [id, playerId]);\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 onPlayerReady = () => {\r\n setPlayerReady(true);\r\n };\r\n\r\n const playVideo = () => {\r\n setVideoStarted(true);\r\n\r\n if (playerReady) {\r\n player.playVideo();\r\n }\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n {poster && poster.small ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n {caption && (\r\n
    \r\n {caption && (\r\n {caption}\r\n )}\r\n
    \r\n )}\r\n {transcriptLink && transcriptLink.href && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nYouTubeVideoApp.propTypes = propTypes;\r\nexport default YouTubeVideoApp;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\n\r\nimport YouTubeVideo from \"./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, videoId, cb) => {\r\n return new window.YT.Player(playerId, {\r\n videoId,\r\n width: \"auto\",\r\n height: \"auto\",\r\n events: {\r\n onReady: cb,\r\n },\r\n });\r\n};\r\n","import \"./polyfill\";\r\nimport \"picturefill\";\r\nimport jquery from \"jquery\";\r\n\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\nimport \"./assetsDirectory.js\";\r\n\r\n// component JS helpers\r\nimport initHeroSlider from \"./components/HeroSlider/initHeroSlider.js\";\r\nimport initHeroVideo from \"./components/HeroVideo/initHeroVideo.js\";\r\nimport initAccordionHorizontal from \"./components/AccordionHorizontal/initAccordionHorizontal.js\";\r\nimport initAccordionVertical from \"./components/AccordionVertical/initAccordionVertical\";\r\nimport initBackToTop from \"./components/BackToTop/initBackToTop.js\";\r\nimport initCarousel from \"./components/Carousel/initCarousel.js\";\r\nimport initContainer from \"./components/Container/initContainer.js\";\r\nimport initContentList from \"./components/ContentList/initContentList.js\";\r\nimport initFeaturedPromo from \"./components/FeaturedPromo/initFeaturedPromo.js\";\r\nimport initGlobalHeader from \"./components/GlobalHeader/initGlobalHeader.js\";\r\nimport initListItem from \"./components/ListItem/initListItem.js\";\r\nimport initNewsletterSignup from \"./components/GlobalFooter/initNewsletterSignup.js\";\r\nimport initPrivacyBanner from \"./components/PrivacyBanner/initPrivacyBanner.js\";\r\nimport initPromo from \"./components/Promo/initPromo.js\";\r\nimport initRichText from \"./components/RichText/initRichText.js\";\r\nimport initSectionNavigator from \"./components/SectionNavigator/initSectionNavigator.js\";\r\nimport initSiteHeader from \"./components/SiteHeader/initSiteHeader.js\";\r\nimport initShareBar from \"./components/ShareBar/initShareBar.js\";\r\nimport initSkipNavigation from \"./components/SkipNavigation/initSkipNavigation.js\";\r\nimport initSlideShow from \"./components/Slideshow/initSlideShow.js\";\r\nimport initTestimonals from \"./components/Testimonial/initTestimonals.js\";\r\nimport initSiteLogo from \"./components/SiteLogo/initSiteLogo.js\";\r\nimport initAlertBanner from \"./components/AlertBanner/initAlertBanner.js\";\r\n\r\n// React Apps\r\nimport renderAnchorLinkNavigation from \"./components/AnchorLinkNavigation/renderAnchorLinkNavigation.jsx\";\r\nimport renderDynamicContentListing from \"./components/DynamicContentListing/renderDynamicContentListing.jsx\";\r\nimport renderYouTubeVideo from \"./components/YouTubeVideo/renderYouTubeVideo.jsx\";\r\n\r\n// Search Apps\r\nimport { createApp } from \"./search/factory\";\r\nimport { defaultFacetedSearchFactory } from \"./search\";\r\n\r\n// This is required to make Storybook run JS when patterns are choosen\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n initHeroSlider();\r\n initHeroVideo();\r\n initAccordionHorizontal();\r\n initCarousel();\r\n initContainer();\r\n initContentList();\r\n initFeaturedPromo();\r\n initGlobalHeader();\r\n initNewsletterSignup();\r\n initListItem();\r\n initRichText();\r\n initSectionNavigator();\r\n initAccordionVertical();\r\n initShareBar();\r\n initSiteHeader();\r\n initSkipNavigation();\r\n initSlideShow();\r\n initPromo();\r\n initBackToTop();\r\n initPrivacyBanner();\r\n initTestimonals();\r\n initSiteLogo();\r\n initAlertBanner();\r\n\r\n // react Apps\r\n renderAnchorLinkNavigation();\r\n renderDynamicContentListing();\r\n renderYouTubeVideo();\r\n\r\n // Search Apps\r\n // only init if results are included\r\n document.querySelectorAll(\".js-search-results\").forEach((el, i) => {\r\n const searchId = el.dataset.searchId;\r\n const searchApp = createApp(defaultFacetedSearchFactory(searchId));\r\n searchApp();\r\n });\r\n\r\n // Google Tag Manager requires jquery\r\n window.jQuery = window.jQuery || jquery;\r\n});\r\n\r\nwindow.addEventListener(\"load\", () => {});\r\n","(function (ElementProto) {\r\n if (typeof ElementProto.matches !== \"function\") {\r\n ElementProto.matches =\r\n ElementProto.msMatchesSelector ||\r\n ElementProto.mozMatchesSelector ||\r\n ElementProto.webkitMatchesSelector ||\r\n function matches(selector) {\r\n var element = this;\r\n var elements = (\r\n element.document || element.ownerDocument\r\n ).querySelectorAll(selector);\r\n var index = 0;\r\n\r\n while (elements[index] && elements[index] !== element) {\r\n ++index;\r\n }\r\n\r\n return Boolean(elements[index]);\r\n };\r\n }\r\n\r\n if (typeof ElementProto.closest !== \"function\") {\r\n ElementProto.closest = function closest(selector) {\r\n var element = this;\r\n\r\n while (element && element.nodeType === 1) {\r\n if (element.matches(selector)) {\r\n return element;\r\n }\r\n\r\n element = element.parentNode;\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n})(window.Element.prototype);\r\n","import \"core-js/features/object/assign.js\";\r\nimport \"core-js/features/array/find.js\";\r\nimport \"core-js/features/array/find-index.js\";\r\nimport \"core-js/features/array/fill.js\";\r\nimport \"core-js/features/array/includes.js\";\r\nimport \"core-js/features/array/from.js\";\r\nimport \"core-js/features/promise/index.js\";\r\nimport \"core-js/features/promise/finally.js\";\r\nimport \"core-js/features/symbol\";\r\n\r\n// window.fetch\r\nimport \"whatwg-fetch\";\r\n\r\n// for react 16\r\n// https://facebook.github.io/react/blog/2017/09/26/react-v16.0.html#javascript-environment-requirements\r\nimport \"core-js/features/map/index.js\";\r\nimport \"core-js/features/set/index.js\";\r\n","// Note: object-fit has been refactored to be applied on-demand instead of automatically\r\n// You may invoke it directly in your scripts\r\n\r\nimport \"./es6-polyfill\";\r\nimport \"./closest\";\r\nimport \"./popstate-event\";\r\n\r\n//NodeList forEach polyfill\r\nif (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = Array.prototype.forEach;\r\n}\r\n\r\n// Jonathan 10-2019 - this was missing for some reason. I'm adding it, but leaving it commented out.\r\n// import { objectFitPolyfill } from \"./object-fit.js\";\r\n// if (\"objectFit\" in document.documentElement.style === false) {\r\n// objectFitPolyfill();\r\n// }\r\n\r\nimport svg4everybody from \"svg4everybody\";\r\nsvg4everybody();\r\n","// IE11 does not support using Event constructors (new Event())\r\n// If we cannot use the constructor, we'll use a re-implementation of PopStateEvent\r\n// instead of the native one.\r\n\r\n// This was derived from the CustomEvent polyfill on MDN: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\r\n\r\n(function () {\r\n function PopStateEvent(event, params) {\r\n params = params || {\r\n bubbles: false,\r\n cancelable: false,\r\n state: undefined,\r\n };\r\n var evt = document.createEvent(\"PopStateEvent\");\r\n evt.initPopStateEvent(\r\n event,\r\n params.state,\r\n params.bubbles,\r\n params.cancelable,\r\n );\r\n return evt;\r\n }\r\n\r\n PopStateEvent.prototype = window.PopStateEvent.prototype;\r\n\r\n try {\r\n new window.PopStateEvent(\"test\");\r\n } catch (error) {\r\n window.PopStateEvent = PopStateEvent;\r\n }\r\n})();\r\n","/** @module search/components */\r\n\r\nimport React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport * as R from \"ramda\";\r\nimport classnames from \"classnames\";\r\nimport { facetGroupShape, facetValueShape } from \"../dataShapes\";\r\n\r\nimport {\r\n valuesWithSelectedChildren,\r\n selectedFacetsFromGroup,\r\n} from \"../redux/facets\";\r\n\r\nimport Icon from \"../../components/Icon/Icon.jsx\";\r\n\r\nconst MAX_FACETS_SHOWN = 5;\r\n\r\n/**\r\n *\r\n * An accordion like section for a single grouping of facets\r\n * ```\r\n * \r\n * ```\r\n * @component\r\n * @param {object} props\r\n * @param {bool} props.isOpen Flag for the open state of the accordion\r\n * @param {object} props.group The group of facets to show\r\n * @param {function} props.handleFacetChange Function called when a facet is selected/deselected\r\n * @params {function} prop.handleClearGroup Function called when clearing all selected facets\r\n */\r\n\r\nclass FacetGroup extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isGroupOpen: this.props.isOpen,\r\n isGroupExpanded: false,\r\n valuesExpanded: [],\r\n };\r\n }\r\n\r\n // Lifecycle\r\n\r\n componentWillMount() {\r\n // if group is closed, but has selected\r\n // values, open it\r\n const group = this.props.group;\r\n\r\n const selected = selectedFacetsFromGroup(group);\r\n let shouldOpen = this.state.isGroupOpen;\r\n if (selected.length > 0) {\r\n shouldOpen = true;\r\n }\r\n\r\n // Some facets will be expanded by default due to\r\n // children being pre-selected\r\n const hasSelected = valuesWithSelectedChildren(group);\r\n const selectedIds = hasSelected.map((v) => v.id);\r\n\r\n // similarly, if group's values or value children\r\n // are selected, auto-expand that group\r\n const tailValues = R.drop(MAX_FACETS_SHOWN, group.values);\r\n const shouldExpand = tailValues.reduce((should, tv) => {\r\n if (tv.selected === true || selectedIds.indexOf(tv.id) >= 0) {\r\n should = true;\r\n }\r\n\r\n return should;\r\n }, false);\r\n\r\n this.setState({\r\n isGroupOpen: shouldOpen,\r\n isGroupExpanded: shouldExpand,\r\n valuesExpanded: selectedIds,\r\n });\r\n }\r\n\r\n chunkValues(values) {\r\n // divide the values into two arrays, the first for the Top X facets\r\n // and the second for overflow. If recursion level is over zero, put\r\n // all values in first array.\r\n return values.length > MAX_FACETS_SHOWN\r\n ? R.splitAt(MAX_FACETS_SHOWN, values)\r\n : [values, []];\r\n }\r\n\r\n showExpandButton() {\r\n return !this.state.isGroupExpanded;\r\n }\r\n\r\n shouldRenderTailValues(tailValues) {\r\n return this.state.isGroupExpanded && tailValues.length > 0;\r\n }\r\n\r\n shouldRenderChildGroups(group) {\r\n return group.isOpen && !!group.childGroups && group.childGroups.length > 0;\r\n }\r\n\r\n toggleGroup() {\r\n const isOpen = !this.state.isGroupOpen;\r\n this.setState({ isGroupOpen: isOpen });\r\n }\r\n\r\n toggleExpand() {\r\n const isExpanded = !this.state.isGroupExpanded;\r\n this.setState({ isGroupExpanded: isExpanded });\r\n }\r\n\r\n toggleValueExpand(valueId) {\r\n // check if the valueId is in the list. Remove it\r\n // if found, add it if not.\r\n const valueIdx = this.state.valuesExpanded.indexOf(valueId);\r\n const selectedValues =\r\n valueIdx >= 0\r\n ? R.remove(valueIdx, 1, this.state.valuesExpanded)\r\n : R.append(valueId, this.state.valuesExpanded);\r\n\r\n this.setState({ valuesExpanded: selectedValues });\r\n }\r\n\r\n valueIsExpanded(value) {\r\n return this.state.valuesExpanded.indexOf(value.id) >= 0;\r\n }\r\n\r\n onFacetChange(event, valueId) {\r\n this.props.handleFacetChange(valueId, event.target.checked);\r\n }\r\n\r\n onClearGroup() {\r\n const group = this.props.group;\r\n this.props.handleClearGroup(group);\r\n }\r\n\r\n // Rendering\r\n renderOpenButton(title) {\r\n const openClass = classnames(\"search-facets__group-toggle\", {\r\n \"is-open\": this.state.isGroupOpen,\r\n });\r\n return (\r\n this.toggleGroup(e)}\r\n >\r\n {title}\r\n \r\n \r\n );\r\n }\r\n\r\n renderValueItem(value, recursionLevel) {\r\n const childValues = value.childValues;\r\n const hasChildValues = !!childValues && childValues.length > 0;\r\n const isExpanded = this.valueIsExpanded(value);\r\n const renderChildValues = hasChildValues && isExpanded;\r\n const toggleClass = classnames(\"search-facets__value-expand\", {\r\n \"is-open\": isExpanded,\r\n });\r\n\r\n return (\r\n
  • \r\n this.onFacetChange(e, value.id)}\r\n type=\"checkbox\"\r\n />\r\n \r\n {hasChildValues && (\r\n this.toggleValueExpand(value.id)}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {renderChildValues &&\r\n this.renderValues(childValues, recursionLevel + 1)}\r\n
  • \r\n );\r\n }\r\n\r\n renderFlatValues(values) {\r\n const renderValue = (value) => {\r\n return (\r\n
  • \r\n this.onFacetChange(e, value.id)}\r\n type=\"checkbox\"\r\n />\r\n \r\n
  • \r\n );\r\n };\r\n\r\n return (\r\n
      \r\n {values.map((value) => renderValue(value))}\r\n
    \r\n );\r\n }\r\n\r\n renderValues(values, recursionLevel) {\r\n let chunkedValues;\r\n if (recursionLevel === 0) {\r\n chunkedValues = this.chunkValues(values);\r\n } else {\r\n chunkedValues = [values, []];\r\n }\r\n\r\n const headValues = chunkedValues[0];\r\n const tailValues = chunkedValues[1];\r\n\r\n const stateClass = `search-facets__group-values is-level-${recursionLevel}`;\r\n const valuesWrapperClass = classnames(\"search-facets__values-wrapper\", {\r\n \"has-no-values\": !values.length,\r\n });\r\n const shouldRenderTailValues = this.shouldRenderTailValues(tailValues);\r\n\r\n return (\r\n
    \r\n
      \r\n {headValues.map((val) => this.renderValueItem(val, recursionLevel))}\r\n
    \r\n {shouldRenderTailValues && (\r\n
      \r\n {tailValues.map((val) => this.renderValueItem(val, recursionLevel))}\r\n
    \r\n )}\r\n
    \r\n );\r\n }\r\n\r\n renderChildGroups(group) {\r\n if (\r\n this.state.isGroupOpen &&\r\n group.childGroups &&\r\n group.childGroups.length\r\n ) {\r\n return group.childGroups.map((childGroup) => {\r\n if (childGroup.values.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const group = this.props.group;\r\n const selectedValues = selectedFacetsFromGroup(group);\r\n const showDupeSelected =\r\n selectedValues.length > 0 && this.props.dupeSelected;\r\n const groupClass = classnames(\"search-facets__group\", {\r\n \"is-open\": this.state.isGroupOpen,\r\n });\r\n const expandLabel = this.state.isGroupExpanded ? \"Show less\" : \"Show more\";\r\n\r\n return (\r\n
    \r\n
    \r\n {this.renderOpenButton(group.label)}\r\n
    \r\n
    \r\n {this.state.isGroupOpen && (\r\n
    \r\n {group.values.length > 0 && (\r\n
    \r\n this.onClearGroup()}\r\n className=\"search-facets__group-clear\"\r\n type=\"button\"\r\n >\r\n Clear\r\n \r\n \r\n
    \r\n )}\r\n {/* {showDupeSelected && (\r\n
    \r\n {this.renderFlatValues(selectedValues)}\r\n
    \r\n )} */}\r\n {this.renderValues(group.values, 0)}\r\n {group.values.length > MAX_FACETS_SHOWN && (\r\n
    \r\n this.toggleExpand()}\r\n aria-expanded={this.state.isGroupExpanded}\r\n >\r\n {expandLabel}\r\n \r\n \r\n
    \r\n )}\r\n {this.renderChildGroups(group)}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default FacetGroup;\r\n\r\nconst { func, shape, bool, number, string, oneOfType, arrayOf } = PropTypes;\r\n\r\nFacetGroup.propTypes = {\r\n isOpen: bool,\r\n dupeSelected: bool,\r\n handleFacetChange: func.isRequired,\r\n handleClearGroup: func.isRequired,\r\n group: facetGroupShape,\r\n};\r\n\r\nFacetGroup.defaultProps = {\r\n isOpen: true,\r\n dupeSelected: true,\r\n};\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport cx from \"classnames\";\r\n\r\nimport FacetGroup from \"./FacetGroup.jsx\";\r\nimport Icon from \"../../components/Icon/Icon.jsx\";\r\n\r\nimport {\r\n closeFilters,\r\n setFiltersOpenDirection,\r\n manageContainerWhitespace,\r\n addPriorityContainerClass,\r\n} from \"../filterSlider\";\r\n\r\nexport default class FacetList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n componentDidMount() {\r\n setFiltersOpenDirection();\r\n manageContainerWhitespace();\r\n addPriorityContainerClass();\r\n }\r\n\r\n clearAll() {\r\n this.props.handleClearAll();\r\n }\r\n\r\n hideFilters() {\r\n closeFilters(); // DOM ops\r\n this.props.hideMobileFacets(); // action creator\r\n }\r\n\r\n renderHideFilters() {\r\n return (\r\n
    \r\n this.hideFilters()}\r\n >\r\n \r\n \r\n \r\n Close\r\n \r\n
    \r\n );\r\n }\r\n\r\n renderFacetGroups() {\r\n return this.props.facets.map((group, i) => {\r\n if (group.values.length === 0 && group.childGroups.length === 0) {\r\n return null;\r\n }\r\n const numOpenGroups = this.props.numOpenGroups;\r\n const isOpen =\r\n typeof numOpenGroups !== \"undefined\" &&\r\n numOpenGroups !== null &&\r\n i < numOpenGroups;\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n renderClearAll() {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const facetGroups = this.renderFacetGroups();\r\n\r\n return (\r\n
    \r\n
    \r\n
    {this.props.title}
    \r\n {facetGroups}\r\n {this.renderClearAll()}\r\n
    \r\n {this.renderHideFilters()}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst { string, arrayOf, bool, shape, number, oneOfType, func } = PropTypes;\r\nFacetList.propTypes = {\r\n title: string,\r\n mobileFiltersShown: bool,\r\n hideMobileFacets: func,\r\n facets: arrayOf(shape({ id: oneOfType([number, string]) })),\r\n numOpenGroups: number,\r\n handleFacetChange: func.isRequired,\r\n handleClearGroup: func.isRequired,\r\n handleClearAll: func.isRequired,\r\n};\r\n\r\nFacetList.defaultProps = {\r\n facets: [],\r\n numOpenGroups: null,\r\n};\r\n","import * as R from \"ramda\";\r\nimport React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { facetGroupShape } from \"../../dataShapes\";\r\nimport Flyout from \"../../../common/components/Flyout.jsx\";\r\nimport CollapsePane from \"../../../common/components/CollapsePane.jsx\";\r\nimport MultiSelectList from \"./MultiSelectList.jsx\";\r\nimport { allSelectedFacets, selectedFacetsFromGroup } from \"../../redux/facets\";\r\nimport MediaQuery from \"react-responsive\";\r\n\r\n// Create a lens using a groupId to point to the openGroups value\r\nconst groupLens = (groupId) => R.lensPath([\"openGroups\", groupId]);\r\n\r\n// Given a state, open the group beloning to an id\r\nconst openGroup = R.curry((groupId, state) =>\r\n R.set(groupLens(groupId), true, state),\r\n);\r\n\r\n// Given a state, close the group belonging to an id\r\nconst closeGroup = R.curry((groupId, state) =>\r\n R.set(groupLens(groupId), false, state),\r\n);\r\n\r\n// Set all group ids to closed\r\nconst closeAllGroups = R.over(R.lensProp(\"openGroups\"), (v) => false);\r\n\r\n// Given a state, open a closed group or close an open group\r\nconst toggleGroup = R.curry((groupId, state) =>\r\n R.ifElse(\r\n R.compose(R.equals(true), R.view(groupLens(groupId))),\r\n closeGroup(groupId),\r\n openGroup(groupId),\r\n )(state),\r\n);\r\n\r\n/** A horizontal bar of groupings containing selectable facets/filters */\r\nclass FilterSelectBar extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.buttonRefs = {};\r\n this.state = {\r\n openGroups: {},\r\n };\r\n }\r\n\r\n handleGroupClick(event, groupId) {\r\n event.stopPropagation();\r\n\r\n if (this.isGroupOpen(groupId)) {\r\n this.setState(toggleGroup(groupId, this.state));\r\n } else {\r\n this.setState(R.pipe(closeAllGroups, openGroup(groupId))(this.state));\r\n }\r\n }\r\n\r\n handleCloseGroup(groupId) {\r\n this.setState(closeGroup(groupId, this.state));\r\n }\r\n\r\n isGroupOpen(groupId) {\r\n return this.state.openGroups[groupId] || false;\r\n }\r\n\r\n renderList(group) {\r\n const { onFilterChange } = this.props;\r\n const flyoutIsInFlow = matchMedia(\"(max-width: 480px)\").matches;\r\n const selectedFilters = selectedFacetsFromGroup(group);\r\n const hasSelected = selectedFilters.length > 0;\r\n\r\n return (\r\n this.buttonRefs[group.id]}\r\n inFlow={flyoutIsInFlow}\r\n requestClose={() => this.handleCloseGroup(group.id)}\r\n >\r\n
    \r\n \r\n {this.props.dictionary.clearAll}\r\n \r\n {this.props.showSelected && hasSelected > 0 && (\r\n \r\n Selected\r\n \r\n \r\n )}\r\n
    \r\n \r\n \r\n );\r\n }\r\n\r\n renderGroups(filterGroups) {\r\n const openClass = (groupId) => (this.isGroupOpen(groupId) ? \"is-open\" : \"\");\r\n return (\r\n
      \r\n {filterGroups.map((g, i) => {\r\n const numSelected = selectedFacetsFromGroup(g).length;\r\n const selectedPostfix =\r\n numSelected > 0 ? `(${numSelected} Selected)` : \"\";\r\n return (\r\n \r\n
    • \r\n (this.buttonRefs[g.id] = el)}\r\n onClick={(e) => this.handleGroupClick(e, g.id)}\r\n aria-haspopup=\"true\"\r\n aria-expanded={this.isGroupOpen(g.id)}\r\n >\r\n \r\n {`${g.label} ${selectedPostfix}`}\r\n \r\n \r\n \r\n {this.renderList(g)}\r\n
    • \r\n
      \r\n );\r\n })}\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const { dictionary, filterGroups, onFilterChange } = this.props;\r\n const title = dictionary.filterTitle;\r\n const allSelected = allSelectedFacets(filterGroups);\r\n const allSelectedLabel = `${allSelected.length} Selected`;\r\n const showTitle = filterGroups.length > 0 && title;\r\n return (\r\n
    \r\n {showTitle &&
    {title}
    }\r\n \r\n {(matches) => {\r\n if (matches) {\r\n return (\r\n (\r\n \r\n {title}\r\n {allSelectedLabel}\r\n \r\n )}\r\n >\r\n {this.renderGroups(filterGroups)}\r\n \r\n );\r\n } else {\r\n return this.renderGroups(filterGroups);\r\n }\r\n }}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst { string, arrayOf, func, bool, shape } = PropTypes;\r\n\r\nFilterSelectBar.propTypes = {\r\n filterGroups: arrayOf(facetGroupShape).isRequired,\r\n handleClearGroup: func.isRequired,\r\n dictionary: shape({\r\n filterTitle: string,\r\n clearAll: string,\r\n }),\r\n showSelected: bool,\r\n title: string,\r\n};\r\n\r\nFilterSelectBar.defaultProps = {\r\n dictionary: {\r\n filterTitle: \"Filter By\",\r\n clearAll: \"Clear All\",\r\n },\r\n showSelected: true,\r\n};\r\n\r\nexport default FilterSelectBar;\r\n","import * as R from \"ramda\";\r\nimport React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { facetValueShape, facetGroupShape } from \"../../dataShapes\";\r\n\r\nconst MultiSelectList = ({\r\n items,\r\n groups,\r\n onChange,\r\n onClear,\r\n label,\r\n showChildren,\r\n}) => {\r\n const FilterItem = ({ item, onChange }) => (\r\n
  • \r\n onChange(item.id, e.target.checked)}\r\n id={item.id}\r\n checked={item.selected}\r\n />\r\n \r\n {item.childValues && !!item.childValues.length && showChildren && (\r\n
      \r\n {item.childValues.map((value, i) => (\r\n \r\n ))}\r\n
    \r\n )}\r\n
  • \r\n );\r\n\r\n return (\r\n \r\n
      \r\n {label &&
    • {label}
    • }\r\n {items.map((item, i) => (\r\n \r\n ))}\r\n
    \r\n {groups &&\r\n groups.map((g, i) => (\r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default MultiSelectList;\r\n\r\nconst { arrayOf, func, bool, string } = PropTypes;\r\nMultiSelectList.propTypes = {\r\n items: arrayOf(facetValueShape).isRequired,\r\n groups: arrayOf(facetGroupShape),\r\n label: string,\r\n showChildren: bool,\r\n onChange: func.isRequired,\r\n onClear: func.isRequired,\r\n};\r\n\r\nMultiSelectList.defaultProps = {\r\n showChildren: true,\r\n};\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport LoadingSpinner from \"./LoadingSpinner.jsx\";\r\n\r\nexport default class LoadMore extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n initiatedLoad: false,\r\n };\r\n }\r\n\r\n onClick(event) {\r\n event.preventDefault();\r\n this.props.handleClick();\r\n this.setState({\r\n initiatedLoad: true,\r\n });\r\n }\r\n\r\n render() {\r\n const { dictionary } = this.props;\r\n const shouldShowSpinner =\r\n this.props.showSpinner && this.props.loading && this.state.initiatedLoad;\r\n return (\r\n
    \r\n this.onClick(e)}\r\n >\r\n {dictionary.loadMoreLabel}\r\n {shouldShowSpinner ? : null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst { func, shape, string, bool } = PropTypes;\r\n\r\nLoadMore.propTypes = {\r\n handleClick: func.isRequired,\r\n loading: bool,\r\n buttonClass: string,\r\n showSpinner: bool,\r\n dictionary: shape({\r\n loadMoreLabel: string,\r\n }),\r\n};\r\n\r\nLoadMore.defaultProps = {\r\n buttonClass: \"btn btn--primary\",\r\n};\r\n","import React from \"react\";\r\n\r\nexport default () => {\r\n return (\r\n
    \r\n Loading Results\r\n
    \r\n );\r\n};\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { isLastPage, isFirstPage, totalPages, pageBlock } from \"../paging\";\r\n\r\nconst Pagination = ({\r\n totalResults,\r\n resultsPerPage,\r\n currentPage,\r\n handlePageChange,\r\n}) => {\r\n const block = pageBlock(totalResults, resultsPerPage, currentPage);\r\n const isLast = isLastPage(totalResults, resultsPerPage, currentPage);\r\n const isFirst = isFirstPage(currentPage);\r\n const lastPage = totalPages(totalResults, resultsPerPage);\r\n\r\n function getPage(label, value, isDisabled) {\r\n return (\r\n onPageClick(value, isDisabled)}\r\n disabled={isDisabled}\r\n >\r\n {label}\r\n \r\n );\r\n }\r\n\r\n function onPageClick(pageNum, isDisabled) {\r\n if (!isDisabled) {\r\n handlePageChange(pageNum);\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {getPage(\"<< First\", 1, isFirst)}\r\n {getPage(\"< Previous\", currentPage - 1, isFirst)}\r\n {block.map((page) => getPage(page.label, page.num, page.current))}\r\n {getPage(\"Next >\", currentPage + 1, isLast)}\r\n {getPage(\"Last >>\", lastPage, isLast)}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst { number, func } = PropTypes;\r\n\r\nPagination.propTypes = {\r\n totalResults: number.isRequired,\r\n resultsPerPage: number.isRequired,\r\n currentPage: number.isRequired,\r\n handlePageChange: func.isRequired,\r\n};\r\n\r\nexport default Pagination;\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport cx from \"classnames\";\r\n\r\nexport default class ResultItem extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.itemWrapper = null;\r\n }\r\n\r\n componentDidMount() {\r\n this.itemWrapper.className = this.itemWrapper.className + \" is-visible\";\r\n }\r\n\r\n renderEyebrow() {\r\n const { contentType, date, authors, clients } = this.props;\r\n\r\n return (\r\n
    \r\n {contentType && (\r\n {contentType}\r\n )}\r\n {date && {date}}\r\n {authors && authors.length > 0 && (\r\n By: {authors.join(\", \")}\r\n )}\r\n {clients && clients.length > 0 && (\r\n \r\n Client: {clients.join(\", \")}\r\n \r\n )}\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const { title, body, contentUrl, featured, imageSrcWide } = this.props;\r\n\r\n return (\r\n (this.itemWrapper = el)}\r\n >\r\n {this.renderEyebrow()}\r\n \r\n
    \r\n {imageSrcWide && (\r\n (window.location = contentUrl)}\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\nconst { arrayOf, string, bool } = PropTypes;\r\nResultItem.propTypes = {\r\n date: string.isRequired,\r\n authors: arrayOf(string),\r\n clients: arrayOf(string),\r\n title: string.isRequired,\r\n body: string.isRequired,\r\n contentUrl: string.isRequired,\r\n displayUrl: string,\r\n contentType: string,\r\n location: string,\r\n imageSrcWide: string,\r\n featured: bool,\r\n};\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\n\r\nexport default class SearchBox extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n initiatedLoad: false,\r\n };\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (!nextProps.loading) {\r\n this.setState({ initiatedLoad: false });\r\n }\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n this.props.handleEntry(this.keywordInput.value ? this.keywordInput.value.replaceAll(\"\\\"\", \"\") : \"\"); \r\n this.setState({ initiatedLoad: true });\r\n }\r\n\r\n render() {\r\n const { dictionary, keywords, loading } = this.props;\r\n const shouldShowSpinner = this.state.initiatedLoad && loading;\r\n return (\r\n this.handleSubmit(e)}\r\n noValidate\r\n role=\"search\"\r\n >\r\n
    \r\n \r\n (this.keywordInput = input)}\r\n />\r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst { string, func, shape, bool } = PropTypes;\r\n\r\nSearchBox.propTypes = {\r\n keywords: string,\r\n handleEntry: func.isRequired,\r\n loading: bool,\r\n dictionary: shape({\r\n searchBoxPlaceholder: string,\r\n searchBoxLabel: string,\r\n }).isRequired,\r\n};\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { isLastPage } from \"../paging\";\r\nimport { openFilters } from \"../filterSlider\";\r\nimport ResultItem from \"./ResultItem.jsx\";\r\nimport LoadMore from \"./LoadMore.jsx\";\r\nimport LoadingSpinner from \"./LoadingSpinner.jsx\";\r\nimport SortBar from \"./SortBar.jsx\";\r\nimport SearchStatus from \"./SearchStatus.jsx\";\r\nimport Pagination from \"./Pagination.jsx\";\r\nimport {\r\n RESULTS_DISPLAY_REFRESH,\r\n RESULTS_DISPLAY_APPEND,\r\n} from \"../redux/resultsDisplay\";\r\n\r\nimport ArrowLink from \"../../components/ArrowLink/ArrowLink.jsx\";\r\n\r\nconst SearchResultList = ({\r\n results,\r\n resultsDisplayStrategy,\r\n selectedFacets,\r\n totalResults,\r\n loading,\r\n isFirstLoad,\r\n sorters,\r\n nextPage,\r\n gotoPage,\r\n dismissFacet,\r\n changeSort,\r\n query,\r\n pagination,\r\n dictionary,\r\n showMobileFacets,\r\n}) => {\r\n const isLast = isLastPage(totalResults, query.perPage, query.page);\r\n const shouldShowNoResults = results.length === 0 && !isFirstLoad;\r\n const shouldShowPager = totalResults > query.perPage;\r\n\r\n function showFilters() {\r\n openFilters(); // DOM ops\r\n showMobileFacets(); // action creator\r\n }\r\n\r\n function wrapperClass() {\r\n const isRefreshing =\r\n loading && resultsDisplayStrategy === RESULTS_DISPLAY_REFRESH;\r\n const isAppending =\r\n loading && resultsDisplayStrategy === RESULTS_DISPLAY_APPEND;\r\n return classnames(\"search-results\", {\r\n \"is-refreshing\": isRefreshing,\r\n \"is-appending\": isAppending,\r\n });\r\n }\r\n\r\n function resultsRange() {\r\n // Upper bound of visible results\r\n let ceiling = query.page * query.perPage;\r\n\r\n // Lower bound of visible results\r\n let floor = ceiling - query.perPage + 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 <= query.perPage) {\r\n return `${totalResults}`;\r\n }\r\n\r\n // if we're using load more, we want to show only\r\n // the ceiling of results displayed\r\n if (resultsDisplayStrategy === RESULTS_DISPLAY_APPEND) {\r\n return `${ceiling}`;\r\n }\r\n\r\n // otherwise, return the full range\r\n return `${floor} - ${ceiling}`;\r\n }\r\n\r\n function renderPagingControl() {\r\n if (pagination) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (!pagination && !isLast) {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n function renderFilterToggle() {\r\n return (\r\n showFilters()}\r\n >\r\n Refine your search\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {renderFilterToggle()}\r\n \r\n \r\n
    \r\n {loading && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {shouldShowNoResults ? (\r\n
    \r\n
    {dictionary.noResultsMessage}
    \r\n {dictionary.noResultsTitle && (\r\n
    \r\n {dictionary.noResultsTitle}\r\n
    \r\n )}\r\n {dictionary.noResultsLink && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n ) : null}\r\n {results.map((item) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n {shouldShowPager ? renderPagingControl() : null}\r\n
    \r\n );\r\n};\r\n\r\nconst {\r\n arrayOf,\r\n string,\r\n object,\r\n func,\r\n bool,\r\n number,\r\n shape,\r\n oneOfType,\r\n} = PropTypes;\r\n\r\nSearchResultList.propTypes = {\r\n results: arrayOf(\r\n shape({\r\n id: oneOfType([number, string]),\r\n }),\r\n ),\r\n resultsDisplayStrategy: number,\r\n selectedFacets: arrayOf(object).isRequired,\r\n totalResults: number.isRequired,\r\n sorters: arrayOf(\r\n shape({\r\n id: oneOfType([number, string]).isRequired,\r\n label: string.isRequired,\r\n value: string.isRequired,\r\n direction: oneOfType([bool, string]),\r\n isActive: bool.isRequired,\r\n }),\r\n ),\r\n loading: bool,\r\n isFirstLoad: bool,\r\n nextPage: func,\r\n gotoPage: func,\r\n changeSort: func,\r\n showMobileFacets: func,\r\n dismissFacet: func,\r\n query: shape({\r\n q: string,\r\n sortBy: string,\r\n page: number,\r\n perPage: number,\r\n pageId: string,\r\n }),\r\n pagination: bool,\r\n dictionary: object,\r\n};\r\n\r\nSearchResultList.defaultProps = {\r\n selectedFacets: [],\r\n};\r\n\r\nexport default SearchResultList;\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\n\r\nconst SearchStatus = ({\r\n resultsRange,\r\n totalResults,\r\n keywords,\r\n selectedFacets,\r\n handleFacetDismiss,\r\n}) => {\r\n const shouldRenderFacets = selectedFacets.length > 0;\r\n const shouldRenderKeywords = !!keywords;\r\n\r\n const onFacetClick = (value) => {\r\n handleFacetDismiss(value.id);\r\n };\r\n\r\n const resultLabel = totalResults === 1 ? \"result\" : \"results\";\r\n\r\n const renderSelectedFacets = () => {\r\n return (\r\n
    \r\n {/* with filters */}\r\n
      \r\n {selectedFacets.map((value) => {\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 return (\r\n
    \r\n
    \r\n {resultsRange} \r\n of \r\n {totalResults} \r\n {resultLabel} \r\n {shouldRenderKeywords && for "{keywords ? keywords.replaceAll(\"\\\"\", \"\") : \"\"}" }\r\n
    \r\n {shouldRenderFacets && renderSelectedFacets()}\r\n
    \r\n );\r\n};\r\n\r\nconst { string, number, object, arrayOf, func } = PropTypes;\r\n\r\nSearchStatus.propTypes = {\r\n resultsRange: string.isRequired,\r\n totalResults: number.isRequired,\r\n keywords: string,\r\n selectedFacets: arrayOf(object).isRequired,\r\n handleFacetDismiss: func.isRequired,\r\n};\r\n\r\nSearchStatus.defaultProps = {\r\n selectedFacets: [],\r\n};\r\n\r\nexport default SearchStatus;\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { isLastPage } from \"../paging\";\r\nimport ResultItem from \"./ResultItem.jsx\";\r\nimport LoadMore from \"./LoadMore.jsx\";\r\nimport LoadingSpinner from \"./LoadingSpinner.jsx\";\r\nimport Pagination from \"./Pagination.jsx\";\r\nimport {\r\n RESULTS_DISPLAY_REFRESH,\r\n RESULTS_DISPLAY_APPEND,\r\n} from \"../redux/resultsDisplay\";\r\n\r\nconst SimpleResultList = ({\r\n results,\r\n resultsDisplayStrategy,\r\n totalResults,\r\n loading,\r\n isFirstLoad,\r\n nextPage,\r\n gotoPage,\r\n query,\r\n pagination,\r\n dictionary,\r\n}) => {\r\n const isLast = isLastPage(totalResults, query.perPage, query.page);\r\n const shouldShowNoResults = results.length === 0 && !isFirstLoad;\r\n const shouldShowPager = totalResults > query.perPage;\r\n\r\n function wrapperClass() {\r\n const isRefreshing =\r\n loading && resultsDisplayStrategy === RESULTS_DISPLAY_REFRESH;\r\n const isAppending =\r\n loading && resultsDisplayStrategy === RESULTS_DISPLAY_APPEND;\r\n return classnames(\"search-results search-results--simple\", {\r\n \"is-refreshing\": isRefreshing,\r\n \"is-appending\": isAppending,\r\n });\r\n }\r\n\r\n function resultsRange() {\r\n // Upper bound of visible results\r\n let ceiling = query.page * query.perPage;\r\n\r\n // Lower bound of visible results\r\n let floor = ceiling - query.perPage + 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 <= query.perPage) {\r\n return `${totalResults}`;\r\n }\r\n\r\n // if we're using load more, we want to show only\r\n // the ceiling of results displayed\r\n if (resultsDisplayStrategy === RESULTS_DISPLAY_APPEND) {\r\n return `${ceiling}`;\r\n }\r\n\r\n // otherwise, return the full range\r\n return `${floor} - ${ceiling}`;\r\n }\r\n\r\n function renderPagingControl() {\r\n if (pagination) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (!pagination && !isLast) {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {loading && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {shouldShowNoResults ? (\r\n

    No results found to match your query.

    \r\n ) : null}\r\n {results.map((item) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n {shouldShowPager ? renderPagingControl() : null}\r\n
    \r\n );\r\n};\r\n\r\nconst {\r\n arrayOf,\r\n string,\r\n object,\r\n func,\r\n bool,\r\n number,\r\n shape,\r\n oneOfType,\r\n} = PropTypes;\r\n\r\nSimpleResultList.propTypes = {\r\n results: arrayOf(\r\n shape({\r\n id: oneOfType([number, string]),\r\n }),\r\n ),\r\n resultsDisplayStrategy: number,\r\n totalResults: number.isRequired,\r\n loading: bool,\r\n isFirstLoad: bool,\r\n nextPage: func,\r\n gotoPage: func,\r\n changeSort: func,\r\n query: shape({\r\n q: string,\r\n sortBy: string,\r\n page: number,\r\n perPage: number,\r\n pageId: string,\r\n }),\r\n pagination: bool,\r\n dictionary: object,\r\n};\r\n\r\nexport default SimpleResultList;\r\n","import PropTypes from \"prop-types\";\r\nimport * as R from \"ramda\";\r\nimport React from \"react\";\r\nimport classnames from \"classnames\";\r\n\r\nfunction activeSortAscClass(sorter) {\r\n return classnames({\r\n \"is-selected\": sorter.isActive && sorter.direction === \"asc\",\r\n });\r\n}\r\n\r\nfunction activeSortDescClass(sorter) {\r\n return classnames({\r\n \"is-selected\": sorter.isActive && sorter.direction === \"desc\",\r\n });\r\n}\r\n\r\nfunction activateOrToggleSorter(sorterId, sorters, handleSortClick) {\r\n const toggleDir = (dir) => {\r\n if (!dir) {\r\n return null;\r\n } else {\r\n return dir === \"asc\" ? \"desc\" : \"asc\";\r\n }\r\n };\r\n\r\n // this is like a 'bookmark' to the direction property\r\n const dirLens = R.lensProp(\"direction\");\r\n\r\n // each argument array supplies a condition predicate, and an action\r\n // 1) if clicked sorter and active, toggle the sort direction\r\n // 2) if clicked sorter and not active, make active\r\n // 3) if not clicked sorter, and active, make inactive\r\n // 4) all other cases, do nothing\r\n const adjustSorters = R.cond([\r\n [R.whereEq({ id: sorterId, isActive: true }), R.over(dirLens, toggleDir)],\r\n [R.whereEq({ id: sorterId, isActive: false }), R.assoc(\"isActive\", true)],\r\n [R.whereEq({ isActive: true }), R.assoc(\"isActive\", false)],\r\n [R.T, R.identity],\r\n ]);\r\n\r\n const newSorters = R.map(adjustSorters, sorters);\r\n handleSortClick(newSorters);\r\n}\r\n\r\n\r\nconst SortBar = ({ sorters, handleSortClick }) => {\r\n if (!sorters || sorters.length < 1) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n Sort By:\r\n
      \r\n {sorters.map((sorter) => {\r\n let sorterClass = classnames(\"search-results__sorter\", {\r\n \"is-active\": sorter.isActive,\r\n \"has-arrow\": sorter.direction,\r\n });\r\n\r\n return (\r\n \r\n activateOrToggleSorter(sorter.id, sorters, handleSortClick)\r\n }\r\n >\r\n \r\n {sorter.direction && (\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\nconst { shape, func, number, string, bool, oneOfType, arrayOf } = PropTypes;\r\n\r\nSortBar.propTypes = {\r\n sorters: arrayOf(\r\n shape({\r\n id: oneOfType([number, string]).isRequired,\r\n label: string.isRequired,\r\n value: string.isRequired,\r\n direction: oneOfType([bool, string]),\r\n isActive: bool.isRequired,\r\n }),\r\n ).isRequired,\r\n handleSortClick: func.isRequired,\r\n};\r\n\r\nexport default SortBar;\r\n","import { connect } from \"react-redux\";\r\nimport FacetList from \"../components/FacetList.jsx\";\r\nimport {\r\n loadFacetChange,\r\n loadClearFacetGroup,\r\n loadClearAllFacets,\r\n hideMobileFacets,\r\n} from \"../redux/search/search.actions\";\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return {\r\n title: state.dictionary.facetsTitle,\r\n facets: state.facets,\r\n numOpenGroups: state.numOpenGroups,\r\n mobileFacetsShown: state.mobileFacetsShown,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleFacetChange: (facetId, facetValue) => {\r\n dispatch(loadFacetChange(facetId, facetValue));\r\n },\r\n\r\n handleClearGroup: (group) => {\r\n dispatch(loadClearFacetGroup(group));\r\n },\r\n\r\n handleClearAll: () => {\r\n dispatch(loadClearAllFacets());\r\n },\r\n\r\n hideMobileFacets: () => {\r\n dispatch(hideMobileFacets);\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(FacetList);\r\n","import { connect } from \"react-redux\";\r\nimport FilterSelectBar from \"../components/FilterSelect/FilterSelectBar.jsx\";\r\nimport {\r\n loadFacetChange,\r\n loadClearFacetGroup,\r\n loadClearAllFacets,\r\n} from \"../redux/search/search.actions\";\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return {\r\n title: state.dictionary.filterTitle,\r\n filterGroups: state.facets,\r\n dictionary: state.dictionary,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onFilterChange: (facetId, facetValue) => {\r\n dispatch(loadFacetChange(facetId, facetValue));\r\n },\r\n\r\n handleClearGroup: (group) => () => {\r\n dispatch(loadClearFacetGroup(group));\r\n },\r\n\r\n handleClearAll: () => {\r\n dispatch(loadClearAllFacets());\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(FilterSelectBar);\r\n","import { connect } from \"react-redux\";\r\nimport SearchBox from \"../components/SearchBox.jsx\";\r\nimport { loadNewKeywords } from \"../redux/search/search.actions\";\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n keywords: state.query.q,\r\n dictionary: state.dictionary,\r\n loading: state.loading,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleEntry: (value) => {\r\n dispatch(loadNewKeywords(value));\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SearchBox);\r\n","import { connect } from \"react-redux\";\r\nimport SearchResultList from \"../components/SearchResultList.jsx\";\r\nimport {\r\n loadNextPage,\r\n loadNewSort,\r\n loadNewPage,\r\n loadFacetChange,\r\n showMobileFacets,\r\n} from \"../redux/search/search.actions\";\r\nimport { allSelectedFacets } from \"../redux/facets\";\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n results: state.results,\r\n resultsDisplayStrategy: state.resultsDisplayStrategy,\r\n selectedFacets: allSelectedFacets(state.facets),\r\n totalResults: state.totalResults,\r\n loading: state.loading,\r\n isFirstLoad: state.isFirstLoad,\r\n sorters: state.sorters,\r\n query: state.query,\r\n pagination: state.pagination,\r\n dictionary: state.dictionary,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n nextPage: () => {\r\n dispatch(loadNextPage());\r\n },\r\n changeSort: (sorters) => {\r\n dispatch(loadNewSort(sorters));\r\n },\r\n gotoPage: (pageNum) => {\r\n dispatch(loadNewPage(pageNum));\r\n },\r\n dismissFacet: (facetId) => {\r\n dispatch(loadFacetChange(facetId, false));\r\n },\r\n showMobileFacets: () => {\r\n dispatch(showMobileFacets());\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SearchResultList);\r\n","import { connect } from \"react-redux\";\r\nimport SimpleResultList from \"../components/SimpleResultList.jsx\";\r\nimport { loadNextPage, loadNewPage } from \"../redux/search/search.actions\";\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n results: state.results,\r\n resultsDisplayStrategy: state.resultsDisplayStrategy,\r\n totalResults: state.totalResults,\r\n loading: state.loading,\r\n isFirstLoad: state.isFirstLoad,\r\n query: state.query,\r\n pagination: state.pagination,\r\n dictionary: state.dictionary,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n nextPage: () => {\r\n dispatch(loadNextPage());\r\n },\r\n gotoPage: (pageNum) => {\r\n dispatch(loadNewPage(pageNum));\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SimpleResultList);\r\n","import PropTypes from \"prop-types\";\r\n\r\n// allows us to define propTypes recursively\r\n// https://github.com/facebook/react/issues/5676\r\nconst lazyF = (f) => (...args) => f().apply(this, args);\r\n\r\nconst { shape, oneOfType, string, number, bool, arrayOf } = PropTypes;\r\n\r\nexport const facetValueShape = shape({\r\n id: oneOfType([number, string]).isRequired,\r\n name: string.isRequired,\r\n count: number.isRequired,\r\n selected: bool.isRequired,\r\n childValues: arrayOf(lazyF(() => facetValueShape)),\r\n});\r\n\r\nexport const facetGroupShape = shape({\r\n id: oneOfType([number, string]).isRequired,\r\n label: string.isRequired,\r\n values: arrayOf(facetValueShape).isRequired,\r\n childGroups: arrayOf(lazyF(() => facetGroupShape)),\r\n});\r\n","/** @module search/factory */\r\n\r\nimport * as R from \"ramda\";\r\nimport * as RA from \"ramda-adjunct\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport thunk from \"redux-thunk\";\r\nimport { Provider } from \"react-redux\";\r\nimport rootReducer from \"./redux/rootReducer\";\r\nimport configureStore from \"./redux/configureStore\";\r\nimport createRoutingMiddleware from \"./redux/createRoutingMiddleware\";\r\n\r\n// Starting point for the object create by calling factory functions\r\nconst baseApp = {\r\n searchId: null,\r\n mountNodes: {},\r\n initialState: null,\r\n reduxMiddleware: {},\r\n externalConfig: null,\r\n initialDispatch: null,\r\n};\r\n\r\n// COMPOSABLE FACTORY FUNCTIONS\r\n// These functions can be composed us R.pipe or R.compose to\r\n// create a single factory function that can be used with createApp()\r\n\r\n/**\r\n * Assign a search id\r\n * @function\r\n * @param {string} id\r\n * @returns {function(Object): Object} A function that modifies a search app object\r\n */\r\nexport const withSearchId = (id) => R.assoc(\"searchId\", id);\r\n\r\n// Specify a CSS selector where a react node should be mounted\r\n\r\n/**\r\n * Add a binding to mount a React node to a CSS selector\r\n * @function\r\n * @param {string} selector\r\n * @param {ReactNode} reactNode\r\n * @returns {function(Object): Object} A function that modifies a search app object\r\n */\r\nexport const withNode = (selector, reactNode) =>\r\n R.assocPath([\"mountNodes\", selector], reactNode);\r\n\r\n/**\r\n * Remove an already registered node by it's CSS selector\r\n * @function\r\n * @param {string} selector\r\n * @returns {function(Object): Object} A function that modifies a search app object\r\n */\r\nexport const withoutNode = (selector) => R.dissocPath([\"mountNodes\"], selector);\r\n\r\n/**\r\n * Applies thunk redux middleware, taking two functions to be applied as extra arguments\r\n * @function\r\n * @param {function(string, Object): Promise} fetchSearchResults Invokes the fetch/ajax for fetching results from server\r\n * @param {function(Object, Object): Object} mapResponseToState Taking the raw response and current state, returns a new state\r\n * @returns {function(Object): Object} A function that modifies a search app object\r\n */\r\nexport const withServiceApi = (fetchSearchResults, mapResponseToState) =>\r\n R.assocPath(\r\n [\"reduxMiddleware\", \"thunk\"],\r\n thunk.withExtraArgument({ fetchSearchResults, mapResponseToState }),\r\n );\r\n\r\n/**\r\n * Applies query string routing middleware, taking two functions as arguments\r\n * @function\r\n * @param {function(Object): Object} mapStateToUrl Given current state, return an object mapping query param keys to values\r\n * @param {function(Object, Object): Object} handleUrlChange Given new query string params in the url, provide a new state object\r\n * @returns {function(Object): Object} A function that modifies a search app object\r\n */\r\nexport const withQueryStringRouting = (mapStateToUrl, handleUrlChange) =>\r\n R.assocPath(\r\n [\"reduxMiddleware\", \"routing\"],\r\n createRoutingMiddleware(mapStateToUrl, handleUrlChange),\r\n );\r\n\r\n/**\r\n * Remove query string routing middleware\r\n * @function\r\n * @returns {function(Object): Object} A function that modifies a search app object\r\n */\r\nexport const withoutQueryStringRouting = () =>\r\n R.dissocPath([\"reduxMiddleware\", \"routing\"]);\r\n\r\n/**\r\n * Assign an initial state object to the redux store. Optionally,\r\n * provide a function to transform the initial state, which is invoked\r\n * before the store is created. A good use of the transform function is\r\n * to dynamically alter the initial state at runtime, as a result of\r\n * outside configuration or computation. Non-dynamic initial state options should simply be\r\n * statically coded in the starting initial state object.\r\n * @function\r\n * @param {Object} initialState Object describing the initial state of the redux store\r\n * @param {function} [transformer] Optional function to apply tranformations to initialState before store is created\r\n * @returns {function(Object): Object} A function that modifies a search app object\r\n */\r\nexport const withInitialState = (initialState, transformer = R.identity) =>\r\n R.assoc(\"initialState\", transformer(initialState));\r\n\r\n/**\r\n * Specify a redux action creator to be dispatched immediately after store creation\r\n * @function\r\n * @param {function} actionFn The action creator function\r\n * @returns {function(Object): Object} A function that modifies a search app object\r\n */\r\nexport const withInitialDispatch = (actionFn) =>\r\n R.assoc(\"initialDispatch\", actionFn);\r\n\r\n// FACTORY LOGIC\r\n// Internal bootstrap logic for the app\r\n\r\n// Ensure that all mountNodes share the same searchId\r\nconst nodesMatchSearchId = (searchId, nodeSelectors) => {\r\n const ids = R.map(\r\n R.pipe(\r\n (s) => document.querySelector(s),\r\n (e) => e.getAttribute(\"data-search-id\"),\r\n ),\r\n );\r\n\r\n return RA.allEqual(ids);\r\n};\r\n\r\n// Render the specified React components to their bound elements.\r\n// Each component will be provided a redux store.\r\nconst mountReactNodes = (store, mountNodes) => {\r\n return R.forEachObjIndexed((node, selector) => {\r\n const elem = document.querySelector(selector);\r\n if (elem) {\r\n ReactDOM.render({node}, elem);\r\n }\r\n }, mountNodes);\r\n};\r\n\r\n// Trigger a no-op popstate event to force handleUrlChange() to be called\r\n// when the app is done bootstrapping.\r\nconst forceUrlChangeEvent = () => {\r\n const popStateEvent = new PopStateEvent(\"popstate\", {\r\n state: History.state,\r\n });\r\n window.dispatchEvent(popStateEvent);\r\n};\r\n\r\n/**\r\n * Initialize a search app according to the factory provided. Sets up redux store and mounts React nodes.\r\n * @function\r\n * @param {function} appFactory The factory function\r\n * @throws {Error}\r\n */\r\nexport const createApp = (appFactory) => {\r\n const app = appFactory(baseApp);\r\n return () => {\r\n // if we have an invalid or non-matching id, raise an error\r\n if (!app.searchId || !nodesMatchSearchId(app.searchId, app.mountNodes)) {\r\n throw new Error(\r\n \"Could not initialize VelirSite search app. searchId was either not present, or provided mount nodes did not share the same searchId\",\r\n );\r\n }\r\n\r\n const store = configureStore(\r\n rootReducer,\r\n app.initialState,\r\n R.values(app.reduxMiddleware),\r\n );\r\n\r\n // if we are using routing, we want to run handleUrlChange on load\r\n if (app.reduxMiddleware.routing) {\r\n forceUrlChangeEvent();\r\n }\r\n\r\n if (app.initialDispatch && typeof app.initialDispatch === \"function\") {\r\n store.dispatch(app.initialDispatch());\r\n }\r\n\r\n if (\r\n !R.map((n) => document.querySelector(n), R.keys(app.mountNodes)).length\r\n ) {\r\n throw new Error(\r\n \"Could not initialize VelirSite search app. No mount nodes were provided, or mount node selectors could not resolve to elements in document.\",\r\n );\r\n }\r\n mountReactNodes(store, app.mountNodes);\r\n };\r\n};\r\n","// Open/Close for mobile sliding of filter bar.\r\n// Involves working with elements outside the\r\n// scope of React components, so logic kept here.\r\n\r\nexport function openFilters() {\r\n // Note - this depends on page state outside of the React app\r\n let filters = filtersWrapper();\r\n if (filters && !filtersAreOpen(filters)) {\r\n filters.classList.add(\"is-open\");\r\n }\r\n}\r\n\r\nexport function closeFilters() {\r\n let filters = filtersWrapper();\r\n if (filters) {\r\n filters.classList.remove(\"is-open\");\r\n }\r\n}\r\n\r\nexport function setFiltersOpenDirection() {\r\n let direction = \"is-right\";\r\n let filters = filtersWrapper();\r\n\r\n if (filters) {\r\n const sibling = filters.closest(\".container__col\").nextElementSibling;\r\n if (sibling && sibling.className.indexOf(\"container__col\") >= 0) {\r\n direction = \"is-left\";\r\n }\r\n }\r\n\r\n filters.classList.add(direction);\r\n}\r\n\r\n// when the facet column is 'lifted' absolutely from the container\r\n// it leaves behind an empty stacked container with a bottom margin\r\n// we want to remove that margin -- but only if facets are the\r\n// only components in the column\r\nexport function manageContainerWhitespace() {\r\n let parent = filtersWrapper().closest(\".container__col\");\r\n let col = parent;\r\n if (parent.children.item(0).classList.contains(\"container__col\")) {\r\n parent = parent.children.item(0);\r\n }\r\n\r\n // cast from HTMLCollection to Array\r\n let children = Array.from(parent.children);\r\n const childCount = children.reduce((count, child) => {\r\n if (!child.classList.contains(\"search__facets-wrapper\")) {\r\n count = count + 1;\r\n }\r\n\r\n return count;\r\n }, 0);\r\n\r\n if (childCount === 0) {\r\n // remove the margin on the parent column\r\n col.style.marginBottom = 0;\r\n }\r\n}\r\n\r\nfunction filtersWrapper() {\r\n return document.querySelector(\".search__facets-wrapper\");\r\n}\r\n\r\nfunction filtersAreOpen(filtersWrapper) {\r\n return filtersWrapper.classList.contains(\"is-open\");\r\n}\r\n\r\nexport function addPriorityContainerClass() {\r\n let filters = filtersWrapper();\r\n let filtersContainer = filters.parentElement.parentElement.parentElement;\r\n return filtersContainer\r\n .querySelector(\".container__col--70\")\r\n .classList.add(\"container__col--priority\");\r\n}\r\n","import React from \"react\";\r\nimport * as R from \"ramda\";\r\n\r\nimport {\r\n withSearchId,\r\n withNode,\r\n withoutNode,\r\n withServiceApi,\r\n withQueryStringRouting,\r\n withoutQueryStringRouting,\r\n withInitialState,\r\n withInitialDispatch,\r\n} from \"./factory\";\r\n\r\nimport {\r\n initialState as defaultInitialState,\r\n applyExternalConfig,\r\n applyResultDisplayStrategy,\r\n} from \"./redux/initialState\";\r\nimport {\r\n fetchSearchResults as defaultFetchResults,\r\n mapResponseToState as defaultMapResponseToState,\r\n} from \"./redux/service.js\";\r\nimport { loadResults } from \"./redux/search/search.actions\";\r\n\r\nimport {\r\n mapStateToUrl as defaultMapStateToUrl,\r\n handleUrlChange as defaultHandleUrlChange,\r\n} from \"./redux/routing\";\r\n\r\nimport SearchResultsContainer from \"./containers/SearchResultsContainer.jsx\";\r\nimport SimpleResultsContainer from \"./containers/SimpleResultsContainer.jsx\";\r\nimport QueryContainer from \"./containers/QueryContainer.jsx\";\r\nimport FacetsContainer from \"./containers/FacetsContainer.jsx\";\r\nimport FilterBarContainer from \"./containers/FilterBarContainer.jsx\";\r\n\r\n// Default search app factory function, without any React components\r\n// specified. This is a good \"base factory\" to use if you want the\r\n// \"out-of-box\" search config, but with custom components.\r\nexport const nodelessDefaultFactory = (searchId) =>\r\n R.pipe(\r\n withSearchId(searchId),\r\n withInitialState(\r\n defaultInitialState,\r\n R.pipe(\r\n applyExternalConfig(window.VelirSiteSearchConfigs, searchId),\r\n applyResultDisplayStrategy,\r\n ),\r\n ),\r\n withQueryStringRouting(defaultMapStateToUrl, defaultHandleUrlChange),\r\n withServiceApi(defaultFetchResults, defaultMapResponseToState),\r\n withInitialDispatch(loadResults),\r\n );\r\n\r\n// Default \"out-of-box\" search page factory\r\nexport const defaultFacetedSearchFactory = (searchId) =>\r\n R.pipe(\r\n nodelessDefaultFactory(searchId),\r\n withNode(\".js-search-query\", ),\r\n withNode(\".js-search-results\", ),\r\n withNode(\".js-search-facets\", ),\r\n );\r\n\r\n// Factory for Dynamic Content Listing apps\r\nexport const defaultDynamicContentFactory = (searchId, container, bar) =>\r\n R.pipe(\r\n nodelessDefaultFactory(searchId),\r\n withoutQueryStringRouting(),\r\n withNode(container, ),\r\n withNode(bar, ),\r\n );\r\n","/**\r\n * @module search/paging\r\n */\r\n\r\n/**\r\n * @typedef {Object} PageShape\r\n * @property {number} num The page number\r\n * @property {string} label Display name for page\r\n * @property {boolean} current True if page is the current page\r\n */\r\n\r\nimport * as R from \"ramda\";\r\n\r\n// number of page to show before and after current page\r\n// if at first or last page, double the number will be shown\r\n// either after or before\r\nconst PAGE_BLOCK_RANGE = 3;\r\n\r\n/**\r\n * Get a count total pages in the current result set.\r\n * @param {Number} totalResults\r\n * @param {Number} resultsPerPage\r\n * @returns {Number} total number of pages\r\n */\r\nexport function totalPages(totalResults, resultsPerPage) {\r\n return Math.ceil(totalResults / resultsPerPage);\r\n}\r\n\r\n/**\r\n * Is this page the last?\r\n * @param {number} totalResults\r\n * @param {number} resultsPerPage\r\n * @param {number} currentPage\r\n * @returns {boolean}\r\n */\r\nexport function isLastPage(totalResults, resultsPerPage, currentPage) {\r\n const numPages = totalPages(totalResults, resultsPerPage);\r\n return currentPage >= numPages;\r\n}\r\n\r\n/**\r\n * Is this page the first?\r\n * @param {number} currentPage\r\n * @returns {boolean}\r\n */\r\nexport function isFirstPage(currentPage) {\r\n return currentPage === 1;\r\n}\r\n\r\n// returns a block of page numbers appropriately\r\n// adjacent to the currently selected page\r\n/**\r\n * A block of page numbers appropriately adjacent to the currently selected page\r\n * @param {number} totalResults\r\n * @param {number} resultsPerPage\r\n * @param {number} currentPage\r\n * @returns {Array}\r\n */\r\nexport function pageBlock(totalResults, resultsPerPage, currentPage) {\r\n const numPages = totalPages(totalResults, resultsPerPage);\r\n const numPagesVisible = Math.min(numPages, PAGE_BLOCK_RANGE * 2 + 1);\r\n let start = Math.max(1, currentPage - PAGE_BLOCK_RANGE);\r\n\r\n if (currentPage + PAGE_BLOCK_RANGE > numPages) {\r\n // (desired page range) - (Size of current page range)\r\n start -= numPagesVisible - (numPages - (start - 1));\r\n }\r\n\r\n const pages = R.range(start, start + numPagesVisible);\r\n\r\n return R.map((page) => {\r\n return {\r\n num: page,\r\n label: page,\r\n current: page == currentPage,\r\n };\r\n }, pages);\r\n}\r\n","import { createStore, applyMiddleware, compose } from \"redux\";\r\n\r\nexport default function configureStore(\r\n rootReducer,\r\n initialState = {},\r\n middlewares = {},\r\n) {\r\n const middlewareEnhancer = applyMiddleware(...middlewares);\r\n\r\n // https://github.com/zalmoxisus/redux-devtools-extension#1-with-redux\r\n // Apply devToolsExtension if present on client, otherwise, just pass through an Identity function\r\n const devToolEnhancer = window.devToolsExtension\r\n ? window.devToolsExtension()\r\n : (x) => x;\r\n\r\n // build our store!\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(middlewareEnhancer, devToolEnhancer),\r\n );\r\n}\r\n","// http://redux.js.org/docs/advanced/Middleware.html\r\nimport URI from \"urijs\";\r\nimport * as R from \"ramda\";\r\n\r\nconst URL_INIT = \"ROUTING/URL_INIT\";\r\n\r\n/**\r\n * mapStateToUrl: User provided function to get the URL parameters out of the redux state.\r\n * The middleware will use this to update the URL when the redux state changes.\r\n * @callback mapStateToUrl\r\n * @param {Object} state: the current redux state\r\n * @return {Object} An object with key/value pairs of the parameters to go in the url.\r\n * This object will be passed to URI.search()\r\n * https://medialize.github.io/URI.js/docs.html#accessors-search\r\n * eg { location: state.location.slug } => my-url.com/?location=united-states\r\n */\r\n\r\n/**\r\n * hangleUrlChange: User provided function to handle updating the state when the url changes\r\n * @callback hangleUrlChange\r\n * @param {Object} urlParams: the current url params\r\n * @param {Object} store : the current redux store. Use store.getState() and store.dispatch\r\n * @param {Object} event : the popstate event\r\n * @return {Promise|Any} Return a promise if something in handleUrlChange is disptached async.\r\n * Otherwise, it doesn't matter\r\n */\r\n\r\n/**\r\n * createRoutingMiddleware: creates a middleware function to be passed to applyMiddleware\r\n * and attaches a window popstate listener\r\n * @param {Function} mapStateToUrl : callback function, see above\r\n * @param {Function} handleUrlChange : callback function, see above\r\n * @param {Boolean} handleLoad : if true, it will call handleUrlChange when the page loads\r\n * @return {Function} redux middleware\r\n */\r\nexport default function createRoutingMiddleware(\r\n mapStateToUrl,\r\n handleUrlChange,\r\n handleLoad = true,\r\n) {\r\n // return the middlware\r\n // \"next\" is the next dispatch function\r\n\r\n // cache the url params at load time if handling first load\r\n let initialUrlParams = handleLoad\r\n ? URI(window.location).search(true)\r\n : undefined;\r\n\r\n return (store) => (next) => {\r\n // flags are a code smell, but maybe this is ok in the situation.\r\n // use replaceState instead of pushState if this dispatch came from the popstate\r\n let shouldReplace = false;\r\n\r\n // function to run the user-provided handleUrlChange\r\n const executeUrlChange = (event) => {\r\n const urlParams = initialUrlParams || URI(window.location).search(true);\r\n\r\n // set the flag that lets the dispatch function know that it should use replaceState\r\n shouldReplace = true;\r\n\r\n // call user function to handle the url change. This function will probably call store.dispatch\r\n const change = handleUrlChange(urlParams, store, event);\r\n\r\n // once we've consumed initialUrlParams, scrap them\r\n initialUrlParams = undefined;\r\n\r\n // if handleUrlChange returns a promise, revert the flag only after it's done\r\n if (change && typeof change.then === \"function\") {\r\n change.then(() => {\r\n shouldReplace = false;\r\n });\r\n }\r\n // otherwise, revert it after handleUrlChange is done\r\n else {\r\n shouldReplace = false;\r\n }\r\n };\r\n\r\n // when the url changes...\r\n window.addEventListener(\"popstate\", (event) => {\r\n event.preventDefault();\r\n executeUrlChange(event);\r\n });\r\n\r\n // our augmented dispatch function\r\n const dispatch = (action) => {\r\n // result is the action itself, this will also update the state\r\n // http://redux.js.org/docs/api/Store.html#dispatch\r\n const result = next(action);\r\n\r\n // execute the user function to get the url params out of the newly updated redux state\r\n const params = R.compose(\r\n R.reject((value) => R.isNil(value) || value === \"\"),\r\n )(mapStateToUrl(store.getState()));\r\n\r\n // .search uses a ? in the url\r\n const url = URI.decode(\r\n URI(window.location.href).search(params).toString(),\r\n );\r\n\r\n // if the url is different, pushState/replaceState the new url\r\n if (!URI(url).equals(window.location.href)) {\r\n // if we're initializing the url params, replace the url state instead of push\r\n // eg. /profile?loc=27 > /profile?loc=27&breakdown=...\r\n // when the browser navigates \"back\", we don't want to go back to just /profile?loc=27\r\n // we want all the breakdown=... stuff\r\n if (action.type === URL_INIT || shouldReplace === true) {\r\n history.replaceState(null, null, url);\r\n } else {\r\n history.pushState(null, null, url);\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n // dispatch immediately to populate the url params\r\n // (this only happens when createRoutingMiddleware is called)\r\n dispatch({ type: URL_INIT });\r\n\r\n // return the new dispatch function\r\n return dispatch;\r\n };\r\n}\r\n","/** @module search/facets **/\r\n\r\n/**\r\n * @typedef {Object} FacetValueShape\r\n * @property {Array} childValues Array of {@link FacetValueShape}\r\n * @property {number} count Number of available records\r\n * @property {string} id Identifier\r\n * @property {string} name Display Name\r\n * @property {boolean} selected Selection state\r\n */\r\n\r\n/**\r\n * @typedef {Object} FacetGroupShape\r\n * @property {Array} childGroups Array of {@link FacetGroupShape}\r\n * @property {string} id Identifier for group\r\n\r\n * @property {string} label Display name for group\r\n * @property {array} values Array of {@link FacetValueShape}\r\n */\r\n\r\nimport * as R from \"ramda\";\r\nimport { flattenObj } from \"../util\";\r\n\r\n/**\r\n * Extract all facet values from a facet group, including child groups and child values.\r\n * @param {FacetGroupShape} group The group to filter\r\n * @returns {Array} List of extracted facet values\r\n */\r\nexport function allFacetValuesFromGroup(group) {\r\n let allValues = [];\r\n\r\n const grabAllValues = (value) => {\r\n allValues.push(value);\r\n if (value.childValues.length > 0) {\r\n value.childValues.forEach((cv) => grabAllValues(cv));\r\n }\r\n };\r\n\r\n group.values.forEach((value) => grabAllValues(value));\r\n\r\n if (group.hasOwnProperty(\"childGroups\")) {\r\n group.childGroups.forEach((childGroup) => {\r\n childGroup.values.forEach((value) => grabAllValues(value));\r\n });\r\n }\r\n\r\n return allValues;\r\n}\r\n\r\n/**\r\n * Extract selected facet values, grouping by root facet group.\r\n * @param {Array} facets List of facet groups\r\n * @returns {Object>} Lists of selected facet values, keyed by root group id.\r\n */\r\nexport function selectedFacetsByGroup(facets) {\r\n let facetsByGroup = {};\r\n facets.forEach((group) => {\r\n const selectedFacets = selectedFacetsFromGroup(group);\r\n if (selectedFacets.length) {\r\n facetsByGroup[group.id] = selectedFacetsFromGroup(group);\r\n }\r\n });\r\n\r\n return facetsByGroup;\r\n}\r\n\r\n/**\r\n * Extract just the ids of select facet values from a facet group\r\n * @param {Array} facets List of facet groups\r\n * @returns {object>} Lists of selected ids, keyed by root group id.\r\n */\r\nexport function selectedFacetIdsByGroup(facets) {\r\n const selectedFacets = selectedFacetsByGroup(facets);\r\n Object.keys(selectedFacets).forEach((k) => {\r\n selectedFacets[k] = selectedFacets[k].map((f) => f.id);\r\n });\r\n\r\n return selectedFacets;\r\n}\r\n\r\n/**\r\n * Extract only selected facet values from a list of facet values. Inclusive of child facet values.\r\n * @param {Array} values Facet value objects to filter\r\n * @returns {Array} A flat list of selected facet values\r\n */\r\nexport function selectedFacetsFromValues(values) {\r\n let selected = values.filter((v) => v.selected === true);\r\n values.forEach((value) => {\r\n if (value.hasOwnProperty(\"childValues\")) {\r\n selected = selected.concat(selectedFacetsFromValues(value.childValues));\r\n }\r\n });\r\n\r\n return selected;\r\n}\r\n\r\n/**\r\n * Extract only selected facet values from a facet group. Inclusive of child facet groups and child facet values.\r\n * @param {FacetGroupShape} values Facet group to filter\r\n * @returns {Array} Only selected facet values\r\n */\r\nexport function selectedFacetsFromGroup(group) {\r\n let selected = selectedFacetsFromValues(group.values);\r\n if (group.hasOwnProperty(\"childGroups\")) {\r\n group.childGroups.forEach((childGroup) => {\r\n selected = selected.concat(selectedFacetsFromGroup(childGroup));\r\n });\r\n }\r\n\r\n return selected;\r\n}\r\n\r\n/**\r\n * Extract all facet value objects that are selected. Inclusive of all groups, subgroups and child values.\r\n * @param {Array} facets List of facet groups to be filtered\r\n * @returns {Array} Only selected facet values\r\n */\r\nexport function allSelectedFacets(facets) {\r\n return facets.reduce((all, group) => {\r\n return all.concat(selectedFacetsFromGroup(group));\r\n }, []);\r\n}\r\n\r\n/**\r\n * Does a group have a facet value object that is selected?\r\n * @param {FacetGroupShape} group Facet group to be filtered\r\n * @returns {boolean}\r\n */\r\nexport function groupHasSelectedChildren(group) {\r\n return selectedFacetsFromGroup(group).length > 0;\r\n}\r\n\r\n/**\r\n * Does a facet value object have a child facet value that is selected?\r\n * @param {FacetGroupShape} group Facet group to check\r\n * @returns {boolean}\r\n */\r\nexport function valueHasSelectedChildren(value) {\r\n // does not include selection state of group itself\r\n let selectedChildren = [];\r\n if (value.hasOwnProperty(\"childValues\")) {\r\n selectedChildren = selectedFacetsFromValues(value.childValues);\r\n }\r\n\r\n return selectedChildren.length > 0;\r\n}\r\n\r\n/**\r\n * Extract facets value objects from a group which has a child value that is selected.\r\n * The parent facet value does not need to be selected in order to be chosen.\r\n * @param {FacetGroupShape}group Facet group to check\r\n * @returns {Array}\r\n */\r\nexport function valuesWithSelectedChildren(group) {\r\n const all = allFacetValuesFromGroup(group);\r\n return all.reduce((hasSelected, value) => {\r\n if (valueHasSelectedChildren(value)) {\r\n hasSelected.push(value);\r\n }\r\n\r\n return hasSelected;\r\n }, []);\r\n}\r\n\r\n// TODO: This performs acceptably for now\r\n// but is definitely not optimal for very large data sets.\r\n// Should consider a different approach to setting deeply nested data.\r\n/**\r\n * Returns an array of object path segments that\r\n * resolves to the facet value object in the\r\n * provided facets state object. This is useful\r\n * when needing to make immutable changes using\r\n * R.assocPath or R.lensPath\r\n * @param {string} valueId\r\n * @param {Array} facets List of facet groups\r\n * @returns {Object}\r\n */\r\nexport function pathFromValueId(valueId, facets) {\r\n // First, flatten the facets object into k,v pairs of properties\r\n // and stringified \"path\" keys. Then use the paths to\r\n // lookup the facet value\r\n const facetLookup = R.invertObj(flattenObj(facets));\r\n const delimitedPath = facetLookup[valueId];\r\n\r\n // Our paths are in format \"a.b.0.c', so convert into [\"a\", \"b\", 0, \"c\"].\r\n // Then pop off the last path segment so it points to the entire value\r\n // object, instead of just the id.\r\n let pathArr = delimitedPath.split(\".\");\r\n pathArr.pop();\r\n\r\n // Finally, ensure numerical \"keys\" are properly cast to Numbers\r\n // or else Ramda will treat them as object keys and\r\n // convert arrays to objects when using assocPath or lens methods.\r\n pathArr = pathArr.map((segment) => {\r\n const numberified = parseInt(segment, 10);\r\n return isNaN(numberified) ? segment : numberified;\r\n });\r\n\r\n return pathArr;\r\n}\r\n\r\n/**\r\n * Create a new facets array with the specified value objects set the desired selected state\r\n * @param {Array} valueIds The ids of the value object we want to affect\r\n * @param {boolean} selected State of the selected property\r\n * @param {Array} facets List of facet groups\r\n * @returns {Array} The new facets array\r\n */\r\nexport function setSelectedOnFacetValues(valueIds, selected, facets) {\r\n // Lookup the path for the given facetId\r\n // and change it using assocPath\r\n\r\n if (!valueIds.length) {\r\n return facets;\r\n }\r\n\r\n const paths = valueIds.map((valueId) => {\r\n let pathArr = pathFromValueId(valueId, facets);\r\n // add \"selected\" to the end of our path\r\n pathArr.push(\"selected\");\r\n\r\n return pathArr;\r\n });\r\n\r\n return paths.reduce((newFacets, path) => {\r\n // NOTE: Using numerical indexes in assocPath only work in\r\n // Ramda 0.23.0+\r\n return R.assocPath(path, selected, newFacets);\r\n }, facets);\r\n}\r\n","/** @module search/initialState **/\r\nimport * as R from \"ramda\";\r\nimport * as RA from \"ramda-adjunct\";\r\nimport {\r\n RESULTS_DISPLAY_APPEND,\r\n RESULTS_DISPLAY_REFRESH,\r\n} from \"./resultsDisplay\";\r\n\r\n/**\r\n * @typedef InitialState\r\n * @property {object} [dictionary={}] Key/value pairs corresponding to entries within a Sitecore dictionary item. Use as needed.\r\n * @property {string} [errorMsg=null] A place to store a current global error message than be used by componetns\r\n * @property {Array} [facets=[]] Array of FacetGroups in the current result set\r\n * @property {boolean} [isFirstLoad=true] Flag to denote if search results have been loaded once. Automatically set to false after the first request.\r\n * @property {boolean} [loading=false] Flag set if the app is currently waiting for a query to return\r\n * @property {boolean} [mobileFacetsShown=false] Flag for whether or not to trigger the display for facets on mobile\r\n * @property {number} [numOpenGroups=null] Number of facets groups to show expanded on page load. Only used with accordion facet bar.\r\n * @property {boolean} [pagination=false] Controls whether or not to display the pagination control at the bottom of the result list. If false, a \"Load More\" button will appear instead.\r\n * @property {object} [preSelectedFacets={}] Mark facets as selected prior to initial search request. Used to restore facet state from url parameters. Specify using `{groupName: [\"facetId1\", \"facetId2\"]}`\r\n * @property {object} query Represents a search query, as sent to the server\r\n * @property {boolean} [query.loadAllPages=false] Flag to return all results up until the page being requested. Used in conjunction with the \"Lore More\" style of pagination when restoring state from the URL's query string.\r\n * @property {number} [query.page=1] The page number of results being requested\r\n * @property {string} [query.pageId=Empty GUID] A GUID corresponding to the Sitecore page where the search lives\r\n * @property {number} [query.perPage=10] The number of results to return in the requested page\r\n * @property {string} [query.q=null] Keyword terms to search for\r\n * @property {string} [query.sortBy=\"relevance\"] The value to sort the results by\r\n * @property {string} [query.sortOrder=\"asc\"] The order in which to display the results\r\n * @property {number} [resultsDisplayStrategy=RESULTS_DISPLAY_APPEND] Indicates how new result items should be displayed: either replacing the current result set or appending to it.\r\n * @property {Array} [sorters=[]] Array of sorter objects, which defines which sort options are available\r\n * @property {number} [totalResults=0] Total number of items in the current search result set\r\n * @property {string} [url=\"http:localhost:4000\"] The enpoint url of the search web service\r\n */\r\n\r\n/**\r\n * The starting state of the redux store, data to be shared among app components.\r\n * @type InitialState\r\n */\r\nexport const initialState = {\r\n dictionary: {},\r\n errorMsg: null,\r\n facets: [],\r\n isFirstLoad: true,\r\n loading: true,\r\n mobileFacetsShown: false,\r\n numOpenGroups: null,\r\n pagination: false,\r\n preSelectedFacets: {},\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: \"00000000-0000-0000-0000-000000000000\",\r\n loadAllPages: true,\r\n },\r\n results: [],\r\n resultsDisplayStrategy: RESULTS_DISPLAY_APPEND,\r\n sorters: [],\r\n totalResults: 0,\r\n url: \"http://localhost:4000\",\r\n};\r\n\r\n// given a set of external config objects (e.g., window.VelirSiteSearchConfigs)\r\n// find the appropriate config for the searchId and deep merge it into\r\n// the initial state\r\nexport const applyExternalConfig = (configArr, searchId) => {\r\n if (!configArr) {\r\n console.warn(\r\n \"Search: applyExternalConfig for initialState received a null or undefined config object. No changes applied.\",\r\n );\r\n return R.curry((obj1, obj2) => R.identity(obj2))({});\r\n }\r\n const config = R.find(R.propEq(\"searchId\", searchId), configArr);\r\n return R.mergeDeepLeft(config);\r\n};\r\n\r\n// Change the key names of the initial state params,\r\n// keyDef is object like: { oldName: \"newName\" }\r\nexport const applyRenameKeys = (keyDef) => RA.renameKeys(keydef);\r\n\r\n// Given an array of property keys, remove them from the initial state\r\nexport const applyOmitKeys = (keys) => R.omit(keys);\r\n\r\n// Based on the current value of \"pagination\", toggle the results display\r\n// strategy (\"append\" (for no pagination) or \"refresh\" (for pagination))\r\nexport const applyResultDisplayStrategy = R.ifElse(\r\n R.propEq(\"pagination\", true),\r\n R.assoc(\"resultsDisplayStrategy\", RESULTS_DISPLAY_REFRESH),\r\n R.assoc(\"resultsDisplayStrategy\", RESULTS_DISPLAY_APPEND),\r\n);\r\n","// flags to determine how to handle\r\n// showing a new result set\r\nexport const RESULTS_DISPLAY_REFRESH = 0;\r\nexport const RESULTS_DISPLAY_APPEND = 1;\r\n","import searchReducer from \"./search/search.reducer\";\r\n\r\n// For now, this application only has a single reducer\r\n// Additional reducers can be added here by using\r\n// combineReducers() from redux or rolling your\r\n// own: http://redux.js.org/docs/recipes/reducers/BeyondCombineReducers.html\r\n\r\nexport default searchReducer;\r\n","import * as R from \"ramda\";\r\nimport { mergeQueryParams } from \"./search/search.actions\";\r\nimport { selectedFacetIdsByGroup, setSelectedOnFacetValues } from \"./facets\";\r\n\r\nexport function mapStateToUrl(state) {\r\n // choose which parts of the query\r\n // state we want exposed in the\r\n // url query string\r\n let exposedParams = [\"q\", \"sortBy\", \"sortOrder\", \"page\"];\r\n\r\n // if we're in pagination mode,\r\n // we also want to expose the page num\r\n if (state.pagination) {\r\n exposedParams.push(\"page\");\r\n }\r\n\r\n let selectedFacets;\r\n if (state.facets.length > 0) {\r\n selectedFacets = selectedFacetIdsByGroup(state.facets);\r\n\r\n // turn selected facets ids into comma delimited string\r\n Object.keys(selectedFacets).forEach((k) => {\r\n selectedFacets[k] = selectedFacets[k].join(\",\");\r\n });\r\n } else {\r\n selectedFacets = state.preSelectedFacets;\r\n }\r\n\r\n return R.merge(selectedFacets, R.pick(exposedParams, state.query));\r\n}\r\n\r\nexport function handleUrlChange(urlParams, store) {\r\n // a list of parameters that we know aren't\r\n // bound to facet group names\r\n const nonFacetParams = [\"q\", \"sortOrder\", \"sortBy\", \"page\"];\r\n\r\n let facets = store.getState().facets;\r\n\r\n // separate out the param types\r\n let queryParams = R.pick(nonFacetParams, urlParams);\r\n let facetParams = R.omit(nonFacetParams, urlParams);\r\n\r\n let newFacets = [];\r\n let preSelectedFacets = {};\r\n if (facets.length > 0) {\r\n // get an array of valueIds from { group: valueId, valueId } format\r\n // and set them to selected. If\r\n newFacets = setSelectedOnFacetValues(R.values(facetParams), true, facets);\r\n } else {\r\n // if facets is empty, it's because we haven't gotten\r\n // a response yet. So we'll also pass an object of\r\n // pre-selected facets we can pass to the query\r\n // Note: transforms comma-delimited strings to array\r\n\r\n preSelectedFacets = R.map(R.split(\",\"), facetParams);\r\n }\r\n\r\n // Anytime we expose a number value to the query\r\n // string it will be sent back to us as a string.\r\n // Make sure to cast it back to a number here.\r\n const castToInt = R.curry(parseInt)(R.__, 10);\r\n queryParams = R.evolve(\r\n {\r\n page: castToInt,\r\n },\r\n queryParams,\r\n );\r\n\r\n // Provide a new facets object.\r\n // First, just grab all facets ids from\r\n // from the facetParams\r\n //pickIds = R.values();\r\n\r\n return store.dispatch(\r\n mergeQueryParams(queryParams, newFacets, preSelectedFacets),\r\n );\r\n}\r\n","import * as R from \"ramda\";\r\nimport $ from \"jquery\";\r\nimport {\r\n RESULTS_DISPLAY_APPEND,\r\n RESULTS_DISPLAY_REFRESH,\r\n} from \"../resultsDisplay\";\r\nimport { handleMultipleResponses } from \"../service\";\r\nimport { selectedFacetIdsByGroup } from \"../facets\";\r\n\r\n// Action Names\r\nexport const LOAD_RESULTS_START = \"SEARCH/LOAD_RESULTS_START\";\r\nexport const LOAD_RESULTS_FAIL = \"SEARCH/LOAD_RESULTS_FAIL\";\r\nexport const LOAD_RESULTS_SUCCESS = \"SEARCH/LOAD_RESULTS_SUCCESS\";\r\nexport const MERGE_QUERY_PARAMS = \"SEARCH/MERGE_QUERY_PARAMS\";\r\nexport const KEYWORDS_CHANGED = \"SEARCH/KEYWORDS_CHANGED\";\r\nexport const INCREMENT_PAGE = \"SEARCH/INCREMENT_PAGE\";\r\nexport const CHANGE_PAGE = \"SEARCH/CHANGE_PAGE\";\r\nexport const SORT_CHANGED = \"SEARCH/SORT_CHANGED\";\r\nexport const FACET_CHANGED = \"SEARCH/FACET_CHANGED\";\r\nexport const CLEAR_FACET_GROUP = \"SEARCH/CLEAR_FACET_GROUP\";\r\nexport const CLEAR_ALL_FACETS = \"SEARCH/CLEAR_ALL_FACETS\";\r\nexport const TOGGLE_MOBILE_FACETS = \"SEARCH/TOGGLE_MOBILE_FACETS\";\r\n\r\n// Single-dispatch Action Creators\r\nexport function mergeQueryParams(params, facets, preSelectedFacets) {\r\n return {\r\n type: MERGE_QUERY_PARAMS,\r\n payload: { params, facets, preSelectedFacets },\r\n };\r\n}\r\n\r\nexport function loadStart() {\r\n return {\r\n type: LOAD_RESULTS_START,\r\n payload: null,\r\n };\r\n}\r\n\r\nexport function loadSuccess(response, resultsDisplay, mapResponseToState) {\r\n return {\r\n type: LOAD_RESULTS_SUCCESS,\r\n payload: { response, resultsDisplay, mapResponseToState },\r\n };\r\n}\r\n\r\nexport function loadFail(err) {\r\n return {\r\n type: LOAD_RESULTS_FAIL,\r\n payload: err,\r\n };\r\n}\r\n\r\nexport function sortChanged(sorters) {\r\n return {\r\n type: SORT_CHANGED,\r\n payload: sorters,\r\n };\r\n}\r\n\r\nexport function incrementPage() {\r\n return {\r\n type: INCREMENT_PAGE,\r\n payload: null,\r\n };\r\n}\r\n\r\nexport function changePage(pageNum) {\r\n return {\r\n type: CHANGE_PAGE,\r\n payload: pageNum,\r\n };\r\n}\r\n\r\nexport function keywordsChanged(keywords) {\r\n return {\r\n type: KEYWORDS_CHANGED,\r\n payload: keywords,\r\n };\r\n}\r\n\r\nexport function facetChanged(facetId, facetValue) {\r\n return {\r\n type: FACET_CHANGED,\r\n payload: { facetId, facetValue },\r\n };\r\n}\r\n\r\nexport function clearFacetGroup(group) {\r\n return {\r\n type: CLEAR_FACET_GROUP,\r\n payload: group,\r\n };\r\n}\r\n\r\nexport function clearAllFacets() {\r\n return {\r\n type: CLEAR_ALL_FACETS,\r\n payload: null,\r\n };\r\n}\r\n\r\nexport function showMobileFacets() {\r\n return {\r\n type: TOGGLE_MOBILE_FACETS,\r\n payload: true,\r\n };\r\n}\r\n\r\nexport function hideMobileFacets() {\r\n return {\r\n type: TOGGLE_MOBILE_FACETS,\r\n payload: false,\r\n };\r\n}\r\n\r\n// Multi-dispatch Action Creators\r\n// Note that multiple dispatches inside an\r\n// action creator only work when using the\r\n// redux-thunk middleware. These action\r\n// creators MUST return a function.\r\n// https://github.com/gaearon/redux-thunk\r\n\r\nexport function loadResults(resultsDisplay = RESULTS_DISPLAY_APPEND) {\r\n return (dispatch, getState, { mapResponseToState, fetchSearchResults }) => {\r\n const state = getState();\r\n const url = state.url;\r\n\r\n // get our query params, and add any pre-selected facets we\r\n // might have\r\n const query = R.merge(state.query, state.preSelectedFacets);\r\n\r\n const facets = selectedFacetIdsByGroup(getState().facets);\r\n\r\n // merge with pre-selected facets\r\n R.merge(facets, state.preSelectedFacets);\r\n\r\n dispatch(loadStart());\r\n\r\n const [searchPromise, featuredPromise] = fetchSearchResults(\r\n url,\r\n R.merge(query, facets),\r\n );\r\n\r\n Promise.all([searchPromise, featuredPromise])\r\n .then((values) => {\r\n const [searchResponse, featuredResponse] = values;\r\n const response = handleMultipleResponses(\r\n searchResponse,\r\n featuredResponse,\r\n );\r\n dispatch(loadSuccess(response, resultsDisplay, mapResponseToState));\r\n })\r\n .catch((error) => {\r\n dispatch(loadFail(error));\r\n });\r\n };\r\n}\r\n\r\nexport function loadNextPage() {\r\n return (dispatch) => {\r\n dispatch(incrementPage());\r\n dispatch(loadResults());\r\n };\r\n}\r\n\r\nexport function loadNewPage(pageNum) {\r\n return (dispatch) => {\r\n dispatch(changePage(pageNum));\r\n dispatch(loadResults());\r\n };\r\n}\r\n\r\nexport function loadNewSort(sorters) {\r\n return (dispatch) => {\r\n dispatch(sortChanged(sorters));\r\n dispatch(loadResults());\r\n };\r\n}\r\n\r\nexport function loadNewKeywords(keywords) {\r\n return (dispatch) => {\r\n dispatch(keywordsChanged(keywords));\r\n dispatch(loadResults());\r\n };\r\n}\r\n\r\nexport function loadFacetChange(facetId, facetValue) {\r\n return (dispatch) => {\r\n dispatch(facetChanged(facetId, facetValue));\r\n dispatch(loadResults());\r\n };\r\n}\r\n\r\nexport function loadClearFacetGroup(group) {\r\n return (dispatch) => {\r\n dispatch(clearFacetGroup(group));\r\n dispatch(loadResults());\r\n };\r\n}\r\n\r\nexport function loadClearAllFacets() {\r\n return (dispatch) => {\r\n dispatch(clearAllFacets());\r\n dispatch(loadResults());\r\n };\r\n}\r\n","import * as R from \"ramda\";\r\nimport { setSelectedOnFacetValues, selectedFacetsFromGroup } from \"../facets\";\r\n\r\nimport {\r\n RESULTS_DISPLAY_APPEND,\r\n RESULTS_DISPLAY_REFRESH,\r\n} from \"../resultsDisplay\";\r\n\r\nimport {\r\n LOAD_RESULTS_START,\r\n LOAD_RESULTS_SUCCESS,\r\n LOAD_RESULTS_FAIL,\r\n MERGE_QUERY_PARAMS,\r\n SORT_CHANGED,\r\n KEYWORDS_CHANGED,\r\n INCREMENT_PAGE,\r\n CHANGE_PAGE,\r\n FACET_CHANGED,\r\n CLEAR_FACET_GROUP,\r\n CLEAR_ALL_FACETS,\r\n TOGGLE_MOBILE_FACETS,\r\n} from \"./search.actions\";\r\n\r\nconst actionMap = {\r\n [LOAD_RESULTS_START]: loadStart,\r\n [LOAD_RESULTS_SUCCESS]: loadSuccess,\r\n [LOAD_RESULTS_FAIL]: loadError,\r\n [SORT_CHANGED]: updateSort,\r\n [MERGE_QUERY_PARAMS]: updateQueryParams,\r\n [KEYWORDS_CHANGED]: updateKeywords,\r\n [INCREMENT_PAGE]: incrementPage,\r\n [CHANGE_PAGE]: changePage,\r\n [FACET_CHANGED]: changeFacet,\r\n [CLEAR_FACET_GROUP]: clearFacetGroup,\r\n [CLEAR_ALL_FACETS]: clearAllFacets,\r\n [TOGGLE_MOBILE_FACETS]: toggleMobileFacets,\r\n};\r\n\r\nexport default function searchReducer(state = initialState, action) {\r\n const actionType = actionMap[action.type];\r\n return actionType ? actionType(state, action) : state;\r\n}\r\n\r\nfunction loadStart(state, action) {\r\n return R.merge(state, {\r\n loading: true,\r\n });\r\n}\r\n\r\nfunction loadSuccess(state, action) {\r\n const { mapResponseToState, response } = action.payload;\r\n return R.merge(mapResponseToState(response, state), {\r\n loading: false,\r\n isFirstLoad: false,\r\n preSelectedFacets: {},\r\n });\r\n}\r\n\r\nfunction loadError(state, action) {\r\n return R.merge(state, { loading: false, errorMsg: action.payload });\r\n}\r\n\r\nfunction updateSort(state, action) {\r\n const activeSorter = R.find(R.propEq(\"isActive\", true), action.payload);\r\n\r\n return R.merge(state, {\r\n sorters: action.payload,\r\n resultsDisplayStrategy: RESULTS_DISPLAY_REFRESH,\r\n query: R.merge(state.query, {\r\n sortBy: activeSorter.value,\r\n sortOrder: activeSorter.direction,\r\n page: 1,\r\n }),\r\n });\r\n}\r\n\r\nfunction updateQueryParams(state, action) {\r\n return R.merge(state, {\r\n query: R.merge(state.query, action.payload.params),\r\n facets: action.payload.facets,\r\n preSelectedFacets: action.payload.preSelectedFacets,\r\n });\r\n}\r\n\r\nfunction incrementPage(state, action) {\r\n const pageNum = parseInt(state.query.page, 10) + 1;\r\n return R.merge(state, {\r\n resultsDisplayStrategy: RESULTS_DISPLAY_APPEND,\r\n query: R.merge(state.query, {\r\n page: pageNum,\r\n }),\r\n });\r\n}\r\n\r\nfunction changePage(state, action) {\r\n return R.merge(state, {\r\n resultsDisplayStrategy: RESULTS_DISPLAY_REFRESH,\r\n query: R.merge(state.query, {\r\n page: action.payload,\r\n }),\r\n });\r\n}\r\n\r\nfunction updateKeywords(state, action) {\r\n return R.merge(state, {\r\n resultsDisplayStrategy: RESULTS_DISPLAY_REFRESH,\r\n query: R.merge(state.query, {\r\n q: action.payload,\r\n page: 1,\r\n }),\r\n });\r\n}\r\n\r\nfunction changeFacet(state, action) {\r\n // We want to provide a new facet object to our\r\n // state with a single facet changed.\r\n\r\n // Lookup the path for the given facetId\r\n // and change it using assocPath\r\n const facetId = action.payload.facetId;\r\n const facetValue = action.payload.facetValue;\r\n const newFacets = setSelectedOnFacetValues(\r\n [facetId],\r\n facetValue,\r\n state.facets,\r\n );\r\n\r\n return R.merge(state, {\r\n facets: newFacets,\r\n resultsDisplayStrategy: RESULTS_DISPLAY_REFRESH,\r\n query: R.merge(state.query, {\r\n page: 1,\r\n }),\r\n });\r\n}\r\n\r\nfunction clearFacetGroup(state, action) {\r\n const group = action.payload;\r\n const selectedFacetIds = selectedFacetsFromGroup(group).map((v) => v.id);\r\n const newFacets = setSelectedOnFacetValues(\r\n selectedFacetIds,\r\n false,\r\n state.facets,\r\n );\r\n\r\n return R.merge(state, {\r\n facets: newFacets,\r\n resultsDisplayStrategy: RESULTS_DISPLAY_REFRESH,\r\n query: R.merge(state.query, {\r\n page: 1,\r\n }),\r\n });\r\n}\r\n\r\nfunction clearAllFacets(state, action) {\r\n const facets = state.facets;\r\n const selectedFacetIds = facets.reduce((all, group) => {\r\n return all.concat(selectedFacetsFromGroup(group).map((v) => v.id));\r\n }, []);\r\n\r\n const newFacets = setSelectedOnFacetValues(selectedFacetIds, false, facets);\r\n\r\n return R.merge(state, {\r\n facets: newFacets,\r\n resultsDisplayStrategy: RESULTS_DISPLAY_REFRESH,\r\n query: R.merge(state.query, {\r\n page: 1,\r\n }),\r\n });\r\n}\r\n\r\nfunction toggleMobileFacets(state, action) {\r\n return R.merge(\r\n {\r\n mobileFacetsShown: action.payload,\r\n },\r\n state,\r\n );\r\n}\r\n","/** @module search/service */\r\nimport $ from \"jquery\";\r\nimport * as R from \"ramda\";\r\nimport queryString from \"query-string\";\r\nimport {\r\n RESULTS_DISPLAY_APPEND,\r\n RESULTS_DISPLAY_REFRESH,\r\n} from \"./resultsDisplay\";\r\n\r\n/** @typedef SearchResultsShape\r\n * @property {Array} facets Lists of facet groups, their facet values and child groups. See [FacetGroupShape]{@link module:search/facets~FacetGroupShape}.\r\n * @property {Array} results List of individual search result items. Object shape may vary project-to-project\r\n * @property {Object} request The request parameters that were originally sent up to the service.\r\n * This is mostly useful for debugging purposes, but can be used to allow the server to change parameters on-the-fly\r\n * @property {number} request.page The page number of results being requested\r\n * @property {string} request.pageId A GUID corresponding to the Sitecore page where the search lives\r\n * @property {number} request.perPage The number of results to return in the requested page\r\n * @property {string} request.q Keyword terms to search for\r\n * @property {string} request.sortBy The value to sort the results by\r\n * @property {string} request.sortOrder The order in which to display the results\r\n * @property {number} totalResults The total number of available results across all pages\r\n */\r\n\r\nconst newResults = R.curry((newResults, oldResults, strategy) => {\r\n return strategy === RESULTS_DISPLAY_APPEND\r\n ? R.concat(oldResults, newResults)\r\n : newResults;\r\n});\r\n\r\n/**\r\n * Initiates a GET request to the search endpoint\r\n * @param {string} url The url to send the request to\r\n * @param {object} query The data for the GET request\r\n * @returns Promise\r\n */\r\nexport function fetchSearchResults(url, query) {\r\n const searchPromise = fetch(\r\n queryString.stringifyUrl({ url, query }),\r\n ).then((response) => response.json());\r\n\r\n return [searchPromise];\r\n}\r\n\r\n// for handling queries that include a call to get Featured Items,\r\n// which have result items that need to get merged into\r\n// the response\r\nexport function handleMultipleResponses(searchResponse, featuredResponse) {\r\n // no featuredResponse;\r\n if (!featuredResponse || Object.keys(featuredResponse).length === 0) {\r\n return searchResponse;\r\n }\r\n\r\n const searchData = R.evolve(\r\n {\r\n results: R.insertAll(0, featuredResponse),\r\n totalResults: R.add(featuredResponse.length || 0),\r\n },\r\n searchResponse,\r\n );\r\n\r\n return searchData;\r\n}\r\n\r\nconst setActiveSorter = (sorters, sortBy) =>\r\n R.pipe(\r\n R.map(R.assoc(\"isActive\", false)),\r\n R.map(R.when(R.propEq(\"value\", sortBy), R.assoc(\"isActive\", true))),\r\n )(sorters);\r\n\r\n/**\r\n * Map a response from a web service to our state object\r\n * @param {object} response Response data from our web service\r\n * @param {object} state Our current state data\r\n * @returns {object} Our new state data\r\n */\r\nexport function mapResponseToState(response, state) {\r\n const request = response.request;\r\n const castToInt = R.curry(parseInt)(R.__, 10);\r\n return R.mergeDeepLeft(\r\n {\r\n totalResults: parseInt(response.totalResults, 10),\r\n results: newResults(\r\n response.results,\r\n state.results,\r\n state.resultsDisplayStrategy,\r\n ),\r\n facets: response.facets,\r\n sorters: setActiveSorter(state.sorters, response.request.sortBy),\r\n query: {\r\n pageId: request.pageId,\r\n page: castToInt(request.page),\r\n perPage: castToInt(request.perPage),\r\n sortOrder: request.sortOrder,\r\n loadAllPages: false,\r\n },\r\n },\r\n state,\r\n );\r\n}\r\n","import * as R from \"ramda\";\r\n\r\n// Utility function to map object paths to values\r\n// See: https://github.com/ramda/ramda/wiki/Cookbook#flatten-a-nested-object-into-dot-separated-key--value-pairs\r\nexport function flattenObj(obj) {\r\n const go = (obj_) =>\r\n R.chain(([k, v]) => {\r\n if (typeof v === \"object\") {\r\n return R.map(([k_, v_]) => [`${k}.${k_}`, v_], go(v));\r\n } else {\r\n return [[k, v]];\r\n }\r\n }, R.toPairs(obj_));\r\n\r\n return R.fromPairs(go(obj));\r\n}\r\n"]}