{"version":3,"sources":["node_modules/browser-pack/_prelude.js","frontend/BrooklynDataSite/js/assetsDirectory.js","frontend/BrooklynDataSite/js/common/NavMenu.js","frontend/BrooklynDataSite/js/common/accordion.js","frontend/BrooklynDataSite/js/common/components/CollapsePane.jsx","frontend/BrooklynDataSite/js/common/components/Flyout.jsx","frontend/BrooklynDataSite/js/common/dynamicSearch.js","frontend/BrooklynDataSite/js/common/fetchSearchResults.js","frontend/BrooklynDataSite/js/common/loadAddThis.js","frontend/BrooklynDataSite/js/common/makeClickable.js","frontend/BrooklynDataSite/js/common/scrollHelpers.js","frontend/BrooklynDataSite/js/common/slickSlider.js","frontend/BrooklynDataSite/js/common/useClickAway.js","frontend/BrooklynDataSite/js/components/AccordionHorizontal/initAccordionHorizontal.js","frontend/BrooklynDataSite/js/components/AccordionVertical/initAccordionVertical.js","frontend/BrooklynDataSite/js/components/AnchorLinkNavigation/AnchorLinkNavigationApp.jsx","frontend/BrooklynDataSite/js/components/AnchorLinkNavigation/renderAnchorLinkNavigation.jsx","frontend/BrooklynDataSite/js/components/ArrowLink/ArrowLink.jsx","frontend/BrooklynDataSite/js/components/BackToTop/initBackToTop.js","frontend/BrooklynDataSite/js/components/Carousel/initCarousel.js","frontend/BrooklynDataSite/js/components/Container/initContainer.js","frontend/BrooklynDataSite/js/components/ContentList/initContentList.js","frontend/BrooklynDataSite/js/components/DynamicContentListing/CaseStudyGrid/CaseStudyGrid.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/DynamicContentListingApp.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/FilterBar/FilterBar.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/FilterDropdown/FilterDropdown.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/FullGrid/FullGrid.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/LoadingSpinner/LoadingSpinner.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/ResultsInfo/ResultsInfo.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/SimpleGrid/SimpleGrid.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/SimpleList/SimpleList.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/Sorters/Sorters.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/ThreeUpGrid/ThreeUpGrid.jsx","frontend/BrooklynDataSite/js/components/DynamicContentListing/initialState.js","frontend/BrooklynDataSite/js/components/DynamicContentListing/renderDynamicContentListing.jsx","frontend/BrooklynDataSite/js/components/FeaturedPromo/FeaturedPromo.jsx","frontend/BrooklynDataSite/js/components/FeaturedPromo/initFeaturedPromo.js","frontend/BrooklynDataSite/js/components/FormItems/Checkbox.jsx","frontend/BrooklynDataSite/js/components/GlobalFooter/initNewsletterSignup.js","frontend/BrooklynDataSite/js/components/GlobalHeader/initGlobalHeader.js","frontend/BrooklynDataSite/js/components/Icon/Icon.jsx","frontend/BrooklynDataSite/js/components/ListItem/ListItem.jsx","frontend/BrooklynDataSite/js/components/ListItem/initListItem.js","frontend/BrooklynDataSite/js/components/MobileMenu/initMobileMenu.js","frontend/BrooklynDataSite/js/components/PrimaryNav/initPrimaryNav.js","frontend/BrooklynDataSite/js/components/PrivacyBanner/initPrivacyBanner.js","frontend/BrooklynDataSite/js/components/Promo/initPromo.js","frontend/BrooklynDataSite/js/components/RichText/initRichText.js","frontend/BrooklynDataSite/js/components/SearchMenu/initSearchMenu.js","frontend/BrooklynDataSite/js/components/SectionNavigator/initSectionNavigator.js","frontend/BrooklynDataSite/js/components/ShareBar/initShareBar.js","frontend/BrooklynDataSite/js/components/SiteHeader/initSiteHeader.js","frontend/BrooklynDataSite/js/components/SkipNavigation/initSkipNavigation.js","frontend/BrooklynDataSite/js/components/Slideshow/initSlideShow.js","frontend/BrooklynDataSite/js/components/Taxonomy/Taxonomy.jsx","frontend/BrooklynDataSite/js/components/YouTubeVideo/YouTubeVideoApp.jsx","frontend/BrooklynDataSite/js/components/YouTubeVideo/renderYouTubeVideo.jsx","frontend/BrooklynDataSite/js/components/YouTubeVideo/youtubeService.js","frontend/BrooklynDataSite/js/index.js","frontend/BrooklynDataSite/js/polyfill/closest.js","frontend/BrooklynDataSite/js/polyfill/es6-polyfill.js","frontend/BrooklynDataSite/js/polyfill/index.js","frontend/BrooklynDataSite/js/polyfill/popstate-event.js","frontend/BrooklynDataSite/js/search/components/FacetGroup.jsx","frontend/BrooklynDataSite/js/search/components/FacetList.jsx","frontend/BrooklynDataSite/js/search/components/FilterSelect/FilterSelectBar.jsx","frontend/BrooklynDataSite/js/search/components/FilterSelect/MultiSelectList.jsx","frontend/BrooklynDataSite/js/search/components/LoadMore.jsx","frontend/BrooklynDataSite/js/search/components/LoadingSpinner.jsx","frontend/BrooklynDataSite/js/search/components/Pagination.jsx","frontend/BrooklynDataSite/js/search/components/ResultItem.jsx","frontend/BrooklynDataSite/js/search/components/SearchBox.jsx","frontend/BrooklynDataSite/js/search/components/SearchResultList.jsx","frontend/BrooklynDataSite/js/search/components/SearchStatus.jsx","frontend/BrooklynDataSite/js/search/components/SimpleResultList.jsx","frontend/BrooklynDataSite/js/search/components/SortBar.jsx","frontend/BrooklynDataSite/js/search/containers/FacetsContainer.jsx","frontend/BrooklynDataSite/js/search/containers/FilterBarContainer.jsx","frontend/BrooklynDataSite/js/search/containers/QueryContainer.jsx","frontend/BrooklynDataSite/js/search/containers/SearchResultsContainer.jsx","frontend/BrooklynDataSite/js/search/containers/SimpleResultsContainer.jsx","frontend/BrooklynDataSite/js/search/dataShapes.js","frontend/BrooklynDataSite/js/search/factory.js","frontend/BrooklynDataSite/js/search/filterSlider.js","frontend/BrooklynDataSite/js/search/index.js","frontend/BrooklynDataSite/js/search/paging.js","frontend/BrooklynDataSite/js/search/redux/configureStore.js","frontend/BrooklynDataSite/js/search/redux/createRoutingMiddleware.js","frontend/BrooklynDataSite/js/search/redux/facets.js","frontend/BrooklynDataSite/js/search/redux/initialState.js","frontend/BrooklynDataSite/js/search/redux/resultsDisplay.js","frontend/BrooklynDataSite/js/search/redux/rootReducer.js","frontend/BrooklynDataSite/js/search/redux/routing.js","frontend/BrooklynDataSite/js/search/redux/search/search.actions.js","frontend/BrooklynDataSite/js/search/redux/search/search.reducer.js","frontend/BrooklynDataSite/js/search/redux/service.js","frontend/BrooklynDataSite/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","_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","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","Math","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","log","_initPrimaryNav","_initMobileMenu","_initSearchMenu","elGlobal","indexGlobal","ExperienceEditor","searchEl","searchIndex","Icon","otherProps","focusable","aria-hidden","xlinkHref","listItem","list-item--left","list-item--right","_NavMenu","globalHeader","globalHeaderEl","openMenuID","primaryLinks","handleKeyDown","contentEl","marginBottom","margin","offsetHeight","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","elItems","textLength","readTimeMinutes","menuConfig","IntersectionObserver","entries","intersectionRatio","threshold","observe","getAttribute","slideshowTheme","closest","slidestoScroll","slickDotsWidth","width","setProperty","Taxonomy","_youtubeService","poster","transcriptLink","caption","darkButton","YouTubeVideoApp","videoStarted","setVideoStarted","player","setPlayer","playerReady","setPlayerReady","playerId","onPlayerReady","loadScript","YT","newPlayer","createPlayer","onYouTubeIframeAPIReady","playVideo","youtube-video--video-started","youtube-video__poster-button--dark","small","medium","large","src","_YouTubeVideoApp","tag","firstScriptTag","getElementsByTagName","videoId","cb","Player","events","onReady","_initAccordionHorizontal","_initAccordionVertical","_initBackToTop","_initCarousel","_initContainer","_initContentList","_initFeaturedPromo","_initGlobalHeader","_initListItem","_initNewsletterSignup","_initPrivacyBanner","_initPromo","_initRichText","_initSectionNavigator","_initSiteHeader","_initShareBar","_initSkipNavigation","_initSlideShow","_renderAnchorLinkNavigation","_renderDynamicContentListing","_renderYouTubeVideo","_factory","_search","searchId","createApp","defaultFacetedSearchFactory","jQuery","ElementProto","Element","prototype","matches","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","matchMedia","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","block","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","parentElement","col","from","childCount","sibling","nextElementSibling","_service","_routing","_SearchResultsContainer","_SimpleResultsContainer","_QueryContainer","_FacetsContainer","_FilterBarContainer","nodelessDefaultFactory","applyExternalConfig","VelirSiteSearchConfigs","applyResultDisplayStrategy","loadResults","defaultDynamicContentFactory","container","bar","numPages","numPagesVisible","min","PAGE_BLOCK_RANGE","start","max","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 // 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","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};\r\n\r\nconst ArrowLink = (props) => {\r\n const { href, type, text, title } = 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 $(\".hero-carousel .pause\").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\").click(function(){\r\n $(el).slick('slickPlay');\r\n $(this).hide();\r\n $(\".hero-carousel .pause\").show();\r\n });\r\n\r\n $(\".video-play-btn\").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\").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\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 \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 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 if (el) {\r\n console.log(\"search found\");\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};\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: ${elItems.clientWidth}px`);\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 document.querySelectorAll(\".js-site-header\").forEach((el) => {\r\n const observer = new IntersectionObserver(\r\n (entries) => {\r\n // fully intersects with screen\r\n if (entries[0].intersectionRatio === 0) {\r\n el.classList.add(\"site-header--sticky\");\r\n } else {\r\n el.classList.remove(\"site-header--sticky\");\r\n }\r\n },\r\n { threshold: [0, 1] },\r\n );\r\n\r\n observer.observe(document.querySelector(\".js-site-header-trigger\"));\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 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 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\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 chosen\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\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\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"]}