{"version":3,"sources":["node_modules/browser-pack/_prelude.js","index.js","frontend/KnowledgePlatform/assets/js/ULI/AdvancedSearch.js","frontend/KnowledgePlatform/assets/js/ULI/Breadcrumbs.js","frontend/KnowledgePlatform/assets/js/ULI/CardListToggle.js","frontend/KnowledgePlatform/assets/js/ULI/CardSlider.js","frontend/KnowledgePlatform/assets/js/ULI/CookieBanner.js","frontend/KnowledgePlatform/assets/js/ULI/CoveoOverride.js","frontend/KnowledgePlatform/assets/js/ULI/ForYou.js","frontend/KnowledgePlatform/assets/js/ULI/LineChart.js","frontend/KnowledgePlatform/assets/js/ULI/LinkScroll.js","frontend/KnowledgePlatform/assets/js/ULI/LoginForm.js","frontend/KnowledgePlatform/assets/js/ULI/MobileMenu.js","frontend/KnowledgePlatform/assets/js/ULI/PaginatedFeatureList.js","frontend/KnowledgePlatform/assets/js/ULI/Popup.js","frontend/KnowledgePlatform/assets/js/ULI/PosterVideo.js","frontend/KnowledgePlatform/assets/js/ULI/Recommendations.js","frontend/KnowledgePlatform/assets/js/ULI/ScrollToggle.js","frontend/KnowledgePlatform/assets/js/ULI/SignUp.js","frontend/KnowledgePlatform/assets/js/ULI/SlideIn.js","frontend/KnowledgePlatform/assets/js/ULI/TakeoverModal.js","frontend/KnowledgePlatform/assets/js/ULI/TooltipToggle.js","frontend/KnowledgePlatform/assets/js/ULI/TranscriptVideo.js","frontend/KnowledgePlatform/assets/js/ULI/TrendingNav.js","frontend/KnowledgePlatform/assets/js/ULI/TrendingTopics.js","frontend/KnowledgePlatform/assets/js/ULI/initTableSearch.js","frontend/KnowledgePlatform/assets/js/index.js","frontend/KnowledgePlatform/assets/js/polyfill/closest.js","frontend/KnowledgePlatform/assets/js/polyfill/es6-polyfill.js","frontend/KnowledgePlatform/assets/js/polyfill/index.js","frontend/KnowledgePlatform/assets/js/polyfill/popstate-event.js","frontend/KnowledgePlatform/assets/js/thread/ImageSlider.js","frontend/KnowledgePlatform/assets/js/thread/ViewAllExpand.js","frontend/KnowledgePlatform/assets/js/thread/accordion.js","frontend/KnowledgePlatform/assets/js/thread/breakpoint.js","frontend/KnowledgePlatform/assets/js/thread/common/components/CollapsePane.jsx","frontend/KnowledgePlatform/assets/js/thread/common/components/Flyout.jsx","frontend/KnowledgePlatform/assets/js/thread/custom-vendor/slick-carousel/slick/slick.js","frontend/KnowledgePlatform/assets/js/thread/navigation/NavMenu.js","frontend/KnowledgePlatform/assets/js/thread/navigation/PrimaryNav.js","frontend/KnowledgePlatform/assets/js/thread/navigation/SearchNav.js","frontend/KnowledgePlatform/assets/js/thread/navigation/StickyHeader.js","frontend/KnowledgePlatform/assets/js/thread/navigation/UtilityNav.js","frontend/KnowledgePlatform/assets/js/thread/richText.js","frontend/KnowledgePlatform/assets/js/thread/search/components/Checkbox.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/FacetGroup.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/FacetList.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/FilterSelect/FilterSelectBar.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/FilterSelect/MultiSelectList.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/LoadMore.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/LoadingSpinner.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/Pagination.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/ResultItem.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/SearchBox.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/SearchResultList.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/SearchStatus.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/SimpleResultList.jsx","frontend/KnowledgePlatform/assets/js/thread/search/components/SortBar.jsx","frontend/KnowledgePlatform/assets/js/thread/search/containers/FacetsContainer.jsx","frontend/KnowledgePlatform/assets/js/thread/search/containers/FilterBarContainer.jsx","frontend/KnowledgePlatform/assets/js/thread/search/containers/QueryContainer.jsx","frontend/KnowledgePlatform/assets/js/thread/search/containers/SearchResultsContainer.jsx","frontend/KnowledgePlatform/assets/js/thread/search/containers/SimpleResultsContainer.jsx","frontend/KnowledgePlatform/assets/js/thread/search/dataShapes.js","frontend/KnowledgePlatform/assets/js/thread/search/factory.js","frontend/KnowledgePlatform/assets/js/thread/search/filterSlider.js","frontend/KnowledgePlatform/assets/js/thread/search/index.js","frontend/KnowledgePlatform/assets/js/thread/search/paging.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/configureStore.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/createRoutingMiddleware.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/facets.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/initialState.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/resultsDisplay.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/rootReducer.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/routing.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/search/search.actions.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/search/search.reducer.js","frontend/KnowledgePlatform/assets/js/thread/search/redux/service.js","frontend/KnowledgePlatform/assets/js/thread/search/util.js","frontend/KnowledgePlatform/assets/js/thread/widthAccordion.js","frontend/KnowledgePlatform/js/Components/BookmarkButton/BookmarkButton.jsx","frontend/KnowledgePlatform/js/Components/BookmarkButton/renderBookmarkButtons.jsx","frontend/KnowledgePlatform/js/Components/BookmarkList/BookmarkList.jsx","frontend/KnowledgePlatform/js/Components/BookmarkList/renderBookmarkList.jsx","frontend/KnowledgePlatform/js/Components/Bookmark/Bookmark.jsx","frontend/KnowledgePlatform/js/Components/MarketContent/initTabbedContent.js","frontend/KnowledgePlatform/js/Components/Pagination/Pagination.jsx","node_modules/@babel/runtime/helpers/defineProperty.js","node_modules/@babel/runtime/helpers/extends.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@babel/runtime/helpers/interopRequireWildcard.js","node_modules/@babel/runtime/helpers/toPrimitive.js","node_modules/@babel/runtime/helpers/toPropertyKey.js","node_modules/@babel/runtime/helpers/typeof.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","Object","defineProperty","value","AdvancedSearch","_jquery","[object Object]","$el","this","updateLink","bindEvents","default","window","on","q","getParameterByName","url","prop","split","hash","updateParameterByName","querystring","name","result","reduce","res","item","parts","decodeURIComponent","param","location","replace","results","RegExp","exec","@babel/runtime/helpers/interopRequireDefault","jquery","2","Breadcrumbs","el","id","button","querySelector","list","contentWrapper","wrapper","parentNode","insertBefore","appendChild","wrap","document","createElement","editorView","expanded","contentBuffer","setTimeout","classList","contains","toggleContent","setWidth","setAttribute","addEventListener","preventDefault","width","scrollWidth","clearTimeout","add","animationSpeed","remove","3","CardListToggle","addClass","removeClass","4","CardSlider","conf","slickConf","assign","slickDefaults","slick","event","currentTarget","blur","dots","infinite","speed","slidesToShow","slidesToScroll","prevArrow","nextArrow","appendArrows","responsive","breakpoint","settings","../thread/custom-vendor/slick-carousel/slick/slick","5","CookieBanner","getCookie","setCookie","d","Date","setTime","getTime","expires","toUTCString","cookie","cname","ca","charAt","substring","indexOf","6","_renderBookmarkButtons","_accordion","firstLoad","PushDownloadsToDataLayer","dataLayer","push","kf-downloadPresent","root","coveoPager","dynamicListSearchSort","args","querySelectorAll","forEach","innerHTML","Coveo","l","target","lastChild","children","replaceWith","Accordion","elementOffset","offset","top","animate","scrollTop","doScroll","data","selectedFacets","selectedFacetsLabels","siblings","getAttribute","selectedvalues","join","searchFacet","PushSelectedFacetsToDataLayer","../../../js/Components/BookmarkButton/renderBookmarkButtons.jsx","../thread/accordion.js","7","ForYou","arrows","8","LineChart","_chart","initChart","defaults","global","elements","point","radius","defaultFontColor","legend","align","tooltips","backgroundColor","cornerRadius","titleFontFamily","titleFontColor","titleAlign","bodyFontFamily","bodyFontColor","bodyAlign","chartCanvas","find","chartDataSource","JSON","parse","dataset","source","chartXLabel","xAxis","chartXLabelConfig","display","labelString","fontSize","fontFamily","fontStyle","chartYLabel","yAxis","ctx","getContext","config","type","labels","datasets","label","dataSets","borderColor","borderWidth","fill","lineTension","spanGaps","pointHitRadius","pointRadius","options","bezierCurve","aspectRatio","usePointStyle","boxWidth","onClick","scales","xAxes","scaleLabel","gridLines","drawOnChartArea","lineWidth","color","ticks","fontColor","padding","yAxes","min","yAxisMin","max","yAxisMax","stepSize","yAxisStepSize","myLineExtend","controllers","line","prototype","draw","helpers","extend","apply","arguments","controller","chart","xOffset","yOffset","height","font","fillStyle","fillText","myChart","currentChartWidth","outerWidth","resize","chart.js","9","attr","anchorNameSelector","scrollTo","10","LoginForm","$button","validate","errorClass","errorElement","rules","Email","Password","messages","required","email","highlight","element","parent","unhighlight","validClass","self","valid","getUrlParameter","post","val","success","error","search","jquery-validation","11","MobileMenu","_focusTrap","$toggle","$flyout","$buttons","$slides","$wrapper","trap","get","toggleMenu","handleItemClick","handleItemKey","currentSlide","doFocus","hasClass","deactivate","slideCount","activate","slideIndex","key","parentElement","index","focus","focus-trap","12","PaginatedFeatureList","customPaging","slider","slidesPerRow","rows","closest","13","Popup","throttle","props","closed","animationDelay","elParent","elCloseButtons","closeButtonClass","elMenuButton","menuButton","elMenuContainer","menuContainer","onOpen","openClass","closeMenu","openMenu","removeAttribute","moveFocus","undefined","14","posterWrapper","iframeEl","delegateTarget","first","iframeSrc","css","videoTitle","eventCategory","eventAction","15","container","16","ScrollToggle","_lodash","$searchBanner","bannerBottom","position","outerHeight","onScroll","trailing","lodash.throttle","17","SignUp","$form","$successRedirectUrl","errorPlacement","is","append","FirstName","LastName","City","Country","AreTermsConfirmed","serialize","form_id","18","SlideIn","cookieName","dismissSlideIn","sessionStorage","getItem","showIt","iframe","setItem","19","TakeoverModal","$cookieName","body","20","TooltipToggle","$parentEl","$tooltip","next","handleToggle","bind","toggle","closeMe","openMe","removeEventListener","21","TranscriptVideo","isOpen","trigger","22","TrendingNav","throttler","$links","initLinks","y","each","link","23","TrendingTopics","chartInFocusMode","lastDatasetIsFill","ttTableRevealedRows","lineColor","num","Math","round","afterDatasetsDraw","save","fillBetweenSet","meta1","getDatasetMeta","meta2","hidden","beginPath","curr","moveTo","_view","x","lineTo","steppedLine","tension","bezierCurveTo","controlPointNextX","controlPointNextY","controlPointPreviousX","controlPointPreviousY","closePath","fillBetweenColor","pluginService","register","fillBetweenLinesPlugin","chartData","fillColor","fadedLineColor","intersect","animationDuration","enabled","scale","animation","duration","layout","hover","onHover","tooltip","_active","style","cursor","activeInd","_datasetIndex","parseInt","text","Topic","opacity","zIndex","_model","update","beginAtZero","onmousedown","resetChart","focusOnDataset","focusIndex","comparisonData","newFill","LastWeek","ThisWeek","order","showLine","cubicInterpolationMode","isLast","origPoint","newPoint","thisWeekOffsetY","lastWeekOffsetY","show","left","roundHalf","TopicUrl","forceReset","callback","params","pop","hide","revealTableRows","$table","addRows","tableRows","slice","ready","$ttTableBody","$ttTopTen","createLinearGradient","getBoundingClientRect","addColorStop","fetch","then","response","json","topic","ind","origIndex","sourceId","sortedByIndex","sort","topicA","topicB","Index","reverse","elm","arr","24","searchResults","searchId","_factory","createApp","_index","defaultFacetedSearchFactory","searchApp","dynamicResults","dynamicFilterBar","filterUid","containerUid","defaultDynamicContentFactory","dynamicContentApp","../thread/search/factory.js","../thread/search/index.js","25","_smoothScroll","_PrimaryNav","_SearchNav","_UtilityNav","_Popup","_ViewAllExpand","_ImageSlider","_richText","_CardSlider","_Breadcrumbs","_widthAccordion","_CardListToggle","_CookieBanner","_TrendingNav","_AdvancedSearch","_StickyHeader","_MobileMenu","_SlideIn","_ScrollToggle","_ForYou","_TrendingTopics","_LoginForm","_SignUp","_TakeoverModal","_TooltipToggle","_initTableSearch","_LineChart","_PaginatedFeatureList","_LinkScroll","_PosterVideo","_renderBookmarkList","_initTabbedContent","WidthAccordion","UtilityNav","makeArray","map","ImageSlider","$translation","$takeoverModal","$slideIn","nav","fixedHeader","header","profileMenu","languageSelector","mlanguageSelector","quickSearch","accordions","$header","StickyHeader","facetAccordion","$mobileMenu","PrimaryNav","SearchNav","ViewAllExpand","$link","href","innerWidth","../../js/Components/BookmarkButton/renderBookmarkButtons.jsx","../../js/Components/BookmarkList/renderBookmarkList.jsx","../../js/Components/MarketContent/initTabbedContent.js","./ULI/AdvancedSearch","./ULI/Breadcrumbs","./ULI/CardListToggle.js","./ULI/CardSlider","./ULI/CookieBanner","./ULI/CoveoOverride","./ULI/ForYou","./ULI/LineChart","./ULI/LinkScroll.js","./ULI/LoginForm","./ULI/MobileMenu","./ULI/PaginatedFeatureList.js","./ULI/Popup.js","./ULI/PosterVideo.js","./ULI/Recommendations","./ULI/ScrollToggle","./ULI/SignUp","./ULI/SlideIn","./ULI/TakeoverModal","./ULI/TooltipToggle","./ULI/TranscriptVideo","./ULI/TrendingNav","./ULI/TrendingTopics","./ULI/initTableSearch.js","./polyfill","./thread/ImageSlider","./thread/ViewAllExpand","./thread/accordion.js","./thread/navigation/PrimaryNav","./thread/navigation/SearchNav.js","./thread/navigation/StickyHeader","./thread/navigation/UtilityNav.js","./thread/richText.js","./thread/search","./thread/search/factory","./thread/widthAccordion.js","picturefill","smooth-scroll","26","ElementProto","Element","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","ownerDocument","Boolean","nodeType","27","core-js/features/array/fill.js","core-js/features/array/find-index.js","core-js/features/array/find.js","core-js/features/array/from.js","core-js/features/array/includes.js","core-js/features/map/index.js","core-js/features/object/assign.js","core-js/features/promise/finally.js","core-js/features/promise/index.js","core-js/features/set/index.js","core-js/features/symbol","whatwg-fetch","28","_svg4everybody","./closest","./es6-polyfill","./popstate-event","svg4everybody","29","PopStateEvent","bubbles","cancelable","state","evt","createEvent","initPopStateEvent","30","./custom-vendor/slick-carousel/slick/slick","31","$expandTarget","expand","slideDown","32","content","setHeight","openState","scrollHeight","visibility","overflow","33","getComputedStyle","getPropertyValue","34","_defineProperty2","_react","_propTypes","CollapsePane","Component","super","collapse","contentRef","createRef","open","ref","current","contentHeight","refTransition","transition","requestAnimationFrame","setState","handler","openStateClass","initialStyle","className","renderTrigger","func","bool","node","string","isRequired","defaultProps","@babel/runtime/helpers/defineProperty","prop-types","react","35","_interopRequireWildcard","R","_classnames","Flyout","flyoutRef","handleClickOutside","allRefs","doNotCloseOn","concat","all","equals","requestClose","inFlow","anchor","anchorToEl","rect","offsetTop","offsetLeft","flyoutClass","is-open","anchorId","Fragment","positionStyles","aria-labelledby","_default","arrayOf","instanceOf","propTypes","HTMLElement","@babel/runtime/helpers/interopRequireWildcard","classnames","ramda","36","factory","define","amd","jQuery","$","instanceUid","Slick","dataSettings","_","accessibility","adaptiveHeight","appendDots","asNavFor","autoplay","autoplaySpeed","centerMode","centerPadding","cssEase","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","focusOnChange","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnFocus","pauseOnDotsHover","respondTo","rtl","slide","swipe","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","verticalSwiping","waitForAnimate","initials","animating","dragging","autoPlayTimer","currentDirection","currentLeft","direction","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","scrolling","slideWidth","$slideTrack","sliding","slideOffset","swipeLeft","swiping","$list","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","focussed","interrupted","paused","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","originalSettings","mozHidden","webkitHidden","autoPlay","proxy","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","htmlExpr","registerBreakpoints","init","activateADA","aria-hidden","tabindex","addSlide","slickAdd","markup","addBefore","unload","appendTo","eq","insertAfter","prependTo","detach","reinit","animateHeight","targetHeight","animateSlide","targetLeft","animProps","animStart","step","now","ceil","complete","applyTransition","disableTransition","getNavTarget","not","slideHandler","setInterval","clearInterval","slideTo","buildArrows","removeAttr","test","aria-disabled","buildDots","dot","getDotCount","buildOut","wrapAll","setupInfinite","updateDots","setSlideClasses","buildRows","b","newSlides","numOfSlides","originalSlides","slidesPerSection","createDocumentFragment","row","empty","checkResponsive","initial","forceUpdate","targetBreakpoint","respondToWidth","triggerBreakpoint","sliderWidth","hasOwnProperty","unslick","refresh","dontAnimate","indexOffset","$target","message","checkNavigable","navigables","prevNavigable","getNavigableIndexes","cleanUpEvents","off","interrupt","cleanUpSlideEvents","orientationChange","cleanUpRows","stopImmediatePropagation","stopPropagation","destroy","fadeSlide","fadeSlideOut","filterSlides","slickFilter","filter","focusHandler","$sf","getCurrent","slickCurrentSlide","breakPoint","counter","pagerQty","getLeft","verticalHeight","targetSlide","coef","verticalOffset","floor","getOption","slickGetOption","option","indexes","getSlick","getSlideCount","swipedSlide","centerOffset","abs","goTo","slickGoTo","creation","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initADA","numDotGroups","tabControlIndexes","slideControlIndex","role","ariaButtonControl","aria-describedby","mappedSlideIndex","aria-controls","aria-label","aria-selected","end","initArrowEvents","initDotEvents","initSlideEvents","action","initUI","tagName","match","keyCode","loadRange","rangeStart","rangeEnd","loadImages","imagesScope","image","imageSource","imageSrcSet","imageSizes","imageToLoad","onload","onerror","src","prevSlide","nextSlide","progressiveLazyLoad","slickNext","pause","slickPause","play","slickPlay","postSlide","prev","slickPrev","tryCount","$imgsToLoad","initializing","lastVisibleIndex","currentBreakpoint","responsiveSettings","splice","windowDelay","removeSlide","slickRemove","removeBefore","removeAll","setCSS","positionProps","setDimensions","setFade","right","setOption","slickSetOption","opt","bodyStyle","WebkitTransition","MozTransition","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","transform","allSlides","remainder","evenCoef","infiniteCount","clone","targetElement","parents","sync","animSlide","oldSlide","slideLeft","navTarget","swipeDirection","xDist","yDist","swipeAngle","startX","curX","startY","curY","atan2","PI","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","originalEvent","touches","swipeStart","swipeMove","curLeft","positionOffset","verticalSwipeLength","pageX","clientX","pageY","clientY","sqrt","pow","unfilterSlides","slickUnfilter","fromBreakpoint","fn","ret","Array","37","NavMenu","elMenuLinks","menuLink","shiftKey","38","_NavMenu","elItems","menus","closeOtherMenus","menuIndexOpen","menu","./NavMenu.js","39","_breakpoint","mobile","mobileTest","setDirection","../breakpoint","40","$topBar","lastPosition","windowPosition","headerY","41","42","table","43","disabled","checked","onFacetChange","Checkbox","onChange","44","_dataShapes","_Checkbox","_facets","FacetGroup","groupRef","closeGroup","isGroupOpen","openBtnRef","isGroupExpanded","valuesExpanded","group","selected","selectedFacetsFromGroup","shouldOpen","selectedIds","valuesWithSelectedChildren","v","shouldExpand","drop","values","should","tv","handleKeyPress","splitAt","tailValues","childGroups","isExpanded","valueId","valueIdx","selectedValues","handleFacetChange","handleClearGroup","numFacetsSelectedInGroup","toggleGroup","xlinkHref","recursionLevel","childValues","hasChildValues","valueIsExpanded","renderChildValues","toggleClass","count","toggleValueExpand","renderValues","renderValue","htmlFor","chunkedValues","chunkValues","stateClass","valuesWrapperClass","has-no-values","shouldRenderTailValues","renderValueItem","childGroup","dupeSelected","groupClass","renderOpenButton","onClearGroup","dictionary","clearLabel","renderChildGroups","shape","number","oneOfType","object","facetGroupShape","../dataShapes","../redux/facets","./Checkbox.jsx","45","_FacetGroup","_filterSlider","FacetList","handleClearAll","closeFilters","hideMobileFacets","facets","numOpenGroups","acc","clearAll","clearFiltersLabel","facetGroups","renderFacetGroups","renderClearAll","mobileFiltersShown","../filterSlider","./FacetGroup.jsx","react-animate-height","46","_Flyout","_CollapsePane","_MultiSelectList","_reactResponsive","groupLens","groupId","lensPath","openGroup","curry","set","closeAllGroups","over","lensProp","ifElse","compose","view","FilterSelectBar","buttonRefs","openGroups","pipe","onFilterChange","flyoutIsInFlow","matchMedia","selectedFilters","hasSelected","handleCloseGroup","showSelected","items","showChildren","onClear","groups","hideSelected","filterGroups","g","numSelected","selectedPostfix","handleGroupClick","aria-haspopup","aria-expanded","renderList","title","filterTitle","allSelectedLabel","allSelectedFacets","maxWidth","renderGroups","../../../common/components/CollapsePane.jsx","../../../common/components/Flyout.jsx","../../dataShapes","../../redux/facets","./MultiSelectList.jsx","react-responsive","47","MultiSelectList","_ref","FilterItem","_ref2","hideSelcted","facetValueShape","48","_LoadingSpinner","LoadMore","initiatedLoad","handleClick","shouldShowSpinner","showSpinner","loading","buttonClass","loadMoreLabel","./LoadingSpinner.jsx","49","50","_paging","Pagination","totalResults","resultsPerPage","currentPage","handlePageChange","block","pageBlock","isLastPage","isFirst","isFirstPage","totalPages","onPageClick","pageNum","isDisabled","xmlns","viewBox","stroke","strokeWidth","strokeLinecap","strokeLinejoin","x1","y1","x2","y2","points","page","search-table__page-btn--active","../paging","51","_moment","_reactAnimateHeight","ResultItem","itemWrapper","dateStr","date","format","contentType","authors","displayUrl","contentUrl","additionalData","keys","isArray","search-table__accordion-btn--is-open","lessInfoLabel","moreInfoLabel","colSpan","cta","rel","fillRule","dangerouslySetInnerHTML","__html","search-table__result-card-item--full","image1x1","moment","ramda-adjunct","52","SearchBox","nextProps","handleEntry","keywordInput","keywords","onSubmit","handleSubmit","noValidate","searchBoxLabel","placeholder","searchBoxPlaceholder","defaultValue","input","53","_extends2","_ResultItem","_LoadMore","_SortBar","_SearchStatus","_Pagination","_useDebounce","_resultsDisplay","_reactSelect","SearchResultList","resultsDisplayStrategy","isFirstLoad","sorters","nextPage","gotoPage","dismissFacet","changeSort","query","pagination","showMobileFacets","setPerPage","perPage","shouldShowNoResults","shouldShowPager","setWindowWidth","useState","handleResize","useDebouncedCallback","perPageOptions","resultsRange","ceiling","RESULTS_DISPLAY_APPEND","renderPagingControl","useEffect","isRefreshing","RESULTS_DISPLAY_REFRESH","isAppending","is-refreshing","is-appending","wrapperClass","handleSortClick","noResultsLabel","handleFacetDismiss","showPerPageLabel","styles","valueContainer","provided","isSearchable","valueObj","isActive","sortBy","pageId","../redux/resultsDisplay","./LoadMore.jsx","./Pagination.jsx","./ResultItem.jsx","./SearchStatus.jsx","./SortBar.jsx","@babel/runtime/helpers/extends","react-select","use-debounce","54","SearchStatus","showingLabel","resultsInfoSeparator","55","SimpleResultList","56","SortBar","sorter","sorterClass","is-active","sorterId","dirLens","adjustSorters","cond","whereEq","dir","assoc","T","identity","activateOrToggleSorter","marginBottom","57","_reactRedux","_FacetList","_search","connect","ownProps","mobileFacetsShown","dispatch","facetId","facetValue","loadFacetChange","loadClearFacetGroup","loadClearAllFacets","../components/FacetList.jsx","../redux/search/search.actions","react-redux","58","_FilterSelectBar","../components/FilterSelect/FilterSelectBar.jsx","59","_SearchBox","loadNewKeywords","../components/SearchBox.jsx","60","_SearchResultList","loadNextPage","loadNewSort","loadNewPage","loadNewPerPage","../components/SearchResultList.jsx","61","_SimpleResultList","../components/SimpleResultList.jsx","62","_this","lazyF","_len","_key","63","withoutQueryStringRouting","withoutNode","withServiceApi","withSearchId","withQueryStringRouting","withNode","withInitialState","withInitialDispatch","RA","_reactDom","_reduxThunk","_rootReducer","_configureStore","_createRoutingMiddleware","baseApp","mountNodes","initialState","reduxMiddleware","externalConfig","initialDispatch","reactNode","assocPath","dissocPath","fetchSearchResults","mapResponseToState","withExtraArgument","mapStateToUrl","handleUrlChange","transformer","actionFn","appFactory","app","nodeSelectors","ids","s","allEqual","nodesMatchSearchId","store","routing","popStateEvent","History","dispatchEvent","forceUrlChangeEvent","forEachObjIndexed","elem","render","Provider","mountReactNodes","./redux/configureStore","./redux/createRoutingMiddleware","./redux/rootReducer","react-dom","redux-thunk","64","filtersWrapper","filters","manageContainerWhitespace","col","from","child","openFilters","filtersAreOpen","setFiltersOpenDirection","sibling","nextElementSibling","65","nodelessDefaultFactory","_initialState","_service","_routing","_SearchResultsContainer","_SimpleResultsContainer","_QueryContainer","_FacetsContainer","_FilterBarContainer","itemsPerPage","threadSearchConfigs","perPageInitialState","applyExternalConfig","applyResultDisplayStrategy","loadResults","./containers/FacetsContainer.jsx","./containers/FilterBarContainer.jsx","./containers/QueryContainer.jsx","./containers/SearchResultsContainer.jsx","./containers/SimpleResultsContainer.jsx","./factory","./redux/initialState","./redux/routing","./redux/search/search.actions","./redux/service.js","66","numPages","numPagesVisible","PAGE_BLOCK_RANGE","start","pages","range","67","rootReducer","middlewares","middlewareEnhancer","_redux","applyMiddleware","devToolEnhancer","devToolsExtension","createStore","redux","68","handleLoad","initialUrlParams","_urijs","shouldReplace","urlParams","change","executeUrlChange","getState","decode","toString","URL_INIT","history","replaceState","pushState","urijs","69","allFacetValuesFromGroup","groupHasSelectedChildren","pathFromValueId","selectedFacetIdsByGroup","selectedFacetsByGroup","k","selectedFacetsFromValues","setSelectedOnFacetValues","valueIds","pathArr","newFacets","path","valueHasSelectedChildren","_util","allValues","grabAllValues","cv","facetsByGroup","selectedChildren","invertObj","flattenObj","segment","numberified","isNaN","../util","70","applyRenameKeys","applyOmitKeys","errorMsg","preSelectedFacets","sortOrder","loadAllPages","configArr","console","warn","obj1","obj2","propEq","mergeDeepLeft","keyDef","renameKeys","keydef","omit","./resultsDisplay","71","72","./search/search.reducer","73","nonFacetParams","queryParams","pick","facetParams","castToInt","__","evolve","mergeQueryParams","exposedParams","merge","./facets","./search/search.actions","74","TOGGLE_MOBILE_FACETS","SORT_CHANGED","SET_PER_PAGE","MERGE_QUERY_PARAMS","LOAD_RESULTS_SUCCESS","LOAD_RESULTS_START","LOAD_RESULTS_FAIL","KEYWORDS_CHANGED","INCREMENT_PAGE","FACET_CHANGED","CLEAR_FACET_GROUP","CLEAR_ALL_FACETS","CHANGE_PAGE","changePage","clearAllFacets","clearFacetGroup","facetChanged","payload","incrementPage","keywordsChanged","loadFail","sortChanged","loadStart","loadSuccess","resultsDisplay","err","numPerPage","fail","../facets","../resultsDisplay","75","actionType","actionMap","activeSorter","selectedFacetIds","./search.actions","76","ajax","request","newResults","when","oldResults","strategy","77","obj","go","obj_","chain","k_","v_","toPairs","fromPairs","78","79","bookmark","contentId","description","isSaved","orientation","alignment","confirmRemove","classNames","handleChange","getBookmarksApi","removeBookmarkApi","saveBookmarkApi","BookmarkButton","bookmarkButton","useRef","contentArea","contentAreaContainer","contentAreaContainerOffset","contentAreaY","setContentAreaY","contentAreaTop","setContentAreaTop","alignSideBookmarkButton","useCallback","handleScroll","newContentAreaTop","savedState","setSavedState","doNotShowAgain","toggleOtherBookmarks","click","handleChangeBookmark","detail","handleRemoveBookmark","handleSaveBookmark","dlEvent","bookmarkContentTitle","doNotShowQuery","ok","bookmark-button--vertical","bookmark-button--icon-right","bookmark-button--saved","popup js-popup","popup--right","popup--left","data-content-id","popup__toggle js-popup-button","isBookmarkedLabel","isNotBookmarkedLabel","data-show","removeBookmarkConfirmMessage","removeBookmarkYesLabel","removeBookmarkNoLabel","doNotShowAgainLabel","popupCloseLabel","../../../assets/js/ULI/Popup.js","80","mount","dataModel","model","dataDictionary","_BookmarkButton","./BookmarkButton.jsx","81","_Bookmark","bookmarks","BookmarkList","setTotalPages","setPage","bookmarkData","setBookmarkData","listAnchor","isWide","setIsWide","customAlignment","setCustomAlignment","handlePage","globalHeaderHeight","innerHeight","pageYOffset","updateBookmarkData","queryString","tabIndex","noBookmarksMessage","../Bookmark/Bookmark.jsx","../Pagination/Pagination.jsx","82","_BookmarkList","./BookmarkList.jsx","83","contentTypeUrl","Bookmark","../BookmarkButton/BookmarkButton.jsx","../BookmarkButton/renderBookmarkButtons.jsx","84","isSelectedClass","appIndex","elTabList","elPanels","elTabs","elNextButton","elPrevButton","parentIndex","tabButtonSelector","isOverflowing","currentTab","changeTab","newTab","hideCurrentTab","showThisTab","behavior","activeTab","activeTabButton","panel","handleOverflowResize","overflowing","clientWidth","tab","passive","85","pagination__item--current","86","toPropertyKey","enumerable","configurable","writable","__esModule","./toPropertyKey.js","87","_extends","88","89","_typeof","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","./typeof.js","90","hint","prim","Symbol","toPrimitive","TypeError","String","Number","91","arg","./toPrimitive.js","92","iterator","constructor"],"mappings":"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","file":"index-generated.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i {\r\n renderBookmarkList();\r\n renderBookmarkButtons();\r\n initTabbedContent();\r\n LinkScroll();\r\n PosterVideo();\r\n\r\n [...document.querySelectorAll(\".js-accordion\")].forEach(Accordion);\r\n\r\n document.querySelectorAll(\".js-info-tooltip\").forEach((tooltip) => {\r\n new TooltipToggle($(tooltip));\r\n });\r\n\r\n [...document.querySelectorAll(\".js-horizontal-accordion\")].forEach((el) => {\r\n new WidthAccordion(el);\r\n });\r\n\r\n [...document.querySelectorAll(\".js-utility-nav\")].forEach((el) => {\r\n new UtilityNav(el);\r\n });\r\n\r\n [...document.querySelectorAll(\".trending-topics__chart\")].forEach((el) => {\r\n const ttopics = new TrendingTopics($(el));\r\n });\r\n\r\n [...document.querySelectorAll(\".js-line-chart__wrapper\")].forEach((el) => {\r\n const charts = new LineChart($(el));\r\n });\r\n\r\n // Slideshows\r\n\r\n // do not intialize slideshows inside\r\n // page editor\r\n if (!$(\"body\").hasClass(\"is-page-editor\")) {\r\n const slideshows = $.makeArray($(\".slideshow .js-gallery\")).map((el) => {\r\n return new ImageSlider($(el), {});\r\n });\r\n\r\n const cardSliders = $.makeArray($(\".js-card-slider\")).map((el) => {\r\n return new CardSlider($(el), {});\r\n });\r\n\r\n const paginatedFeatureLists = $.makeArray(\r\n $(\".js-paginated-feature-list\"),\r\n ).map((el) => {\r\n return new PaginatedFeatureList($(el), {});\r\n });\r\n\r\n const forYouSliders = $.makeArray($(\".js-for-you-slider\")).map((el) => {\r\n return new ForYou($(el), {});\r\n });\r\n }\r\n\r\n // Cookie Banner\r\n const $cookieBanner = $(\".js-accept-cookies\");\r\n if ($cookieBanner.length) {\r\n const cookiesBanner = new CookieBanner($(\".js-accept-cookies\"));\r\n }\r\n\r\n // Tooltip\r\n const $translation = $(\".js-translation-tooltip\");\r\n if ($translation.length) {\r\n const translation = new TooltipToggle($translation);\r\n }\r\n\r\n // Takeover Modal\r\n const $takeoverModal = $(\".js-takeover-modal\");\r\n if ($takeoverModal.length) {\r\n const modal = new TakeoverModal($takeoverModal);\r\n }\r\n\r\n //Slide In\r\n const $slideIn = $(\".js-slide-in\");\r\n if ($slideIn.length) {\r\n const slideIn = new SlideIn($slideIn);\r\n }\r\n});\r\n\r\nrichText();\r\n\r\n[...document.querySelectorAll(\".js-trending-nav\")].forEach((nav) => {\r\n new TrendingNav($(nav));\r\n});\r\n\r\nvar fixedHeader =\r\n $(\".js-sticky-header\").css(\"display\") != \"none\"\r\n ? \".js-sticky-header\"\r\n : \".mobile-header\";\r\nconst scroll = new SmoothScroll(\".js-trending-nav a\", {\r\n speed: 300,\r\n header: fixedHeader,\r\n});\r\n\r\nlet profileMenu = null;\r\nif ($(\".js-profile-accordion\").length) {\r\n profileMenu = new Accordion(document.querySelector(\".js-profile-accordion\"));\r\n\r\n document.querySelector(\"body\").addEventListener(\"click\", (e) => {\r\n if (!profileMenu.el.contains(e.target)) {\r\n profileMenu.toggleContent(false);\r\n }\r\n });\r\n}\r\n\r\nlet languageSelector = null;\r\nif ($(\".js-language-selector\").length) {\r\n languageSelector = new Accordion(\r\n document.querySelector(\".js-language-selector\"),\r\n );\r\n\r\n document.querySelector(\"body\").addEventListener(\"click\", (e) => {\r\n if (!languageSelector.el.contains(e.target)) {\r\n languageSelector.toggleContent(false);\r\n }\r\n });\r\n}\r\n\r\nlet mlanguageSelector = null;\r\nif ($(\".js-mobile-language-selector\").length) {\r\n mlanguageSelector = new Accordion(\r\n document.querySelector(\".js-mobile-language-selector\"),\r\n );\r\n}\r\n\r\nlet quickSearch = null;\r\nif ($(\".js-quick-search\").length) {\r\n quickSearch = new Accordion(document.querySelector(\".js-quick-search\"));\r\n}\r\n\r\nif ($(\".js-scroll-toggle\").length) {\r\n const scrollToggles = new ScrollToggle($(\".js-scroll-toggle\"));\r\n}\r\n\r\nlet accordions = [profileMenu, languageSelector];\r\nconst $header = $(\".js-sticky-header\");\r\nif ($header.length) {\r\n const stickyHeader = new StickyHeader($header, accordions);\r\n}\r\n\r\nif ($(\".js-facet-accordion\").length) {\r\n let facetAccordion = new Accordion(\r\n document.querySelector(\".js-facet-accordion\"),\r\n );\r\n facetAccordion.toggleContent(true);\r\n window.addEventListener(\"resize\", (e) => {\r\n facetAccordion.toggleContent(true);\r\n });\r\n}\r\n\r\nconst $mobileMenu = $(\".js-mobile-menu\");\r\nif ($mobileMenu) {\r\n const mobileMenu = new MobileMenu($mobileMenu);\r\n}\r\n\r\n/*\r\n\r\nconst $transcript = $(\".js-transcript-video\");\r\nif ($transcript.length) {\r\n const transcript = new TranscriptVideo($transcript);\r\n}\r\n*/\r\n\r\n[...document.querySelectorAll(\".js-popup\")].forEach((el) => {\r\n const props = {\r\n menuButton: \".js-popup-button\",\r\n menuContainer: \".js-popup-content\",\r\n parent: el,\r\n };\r\n\r\n new Popup(props);\r\n});\r\n\r\n[...document.querySelectorAll(\".js-primary-nav\")].forEach((el) => {\r\n new PrimaryNav(el);\r\n});\r\n\r\n//SearchNav\r\n[...document.querySelectorAll(\".js-search-nav\")].forEach((el) => {\r\n new SearchNav(el);\r\n});\r\n\r\n// Expandable Listings\r\nconst viewAllables = $.makeArray($(\".js-view-all-expand\")).map((el) => {\r\n return new ViewAllExpand($(el));\r\n});\r\n\r\n$(\".js-link\").each((i, link) => {\r\n const $link = $(link);\r\n\r\n $link.on(\"click\", () => {\r\n window.location.href = $link.data(\"href\");\r\n });\r\n});\r\n\r\nif ($(\".js-topic-nav\").length) {\r\n if ($(window).innerWidth() < 680) {\r\n $(\".js-topic-nav\").removeClass(\"is-open\");\r\n }\r\n}\r\n\r\n[...document.querySelectorAll(\".js-breadcrumbs\")].forEach(Breadcrumbs);\r\n\r\n[...document.querySelectorAll(\".js-dynamic-content\")].forEach((el) => {\r\n const toggle = new CardListToggle($(el));\r\n});\r\n\r\n[...document.querySelectorAll(\".js-advanced-search\")].forEach((el) => {\r\n const link = new AdvancedSearch($(el));\r\n});\r\n\r\n[...document.querySelectorAll(\".js-login-form\")].forEach((el) => {\r\n const form = new LoginForm($(el));\r\n});\r\n\r\n[...document.querySelectorAll(\".js-sign-up\")].forEach((el) => {\r\n const signup = new SignUp($(el));\r\n});\r\n\r\ninitTableSearch();\r\n","import $ from \"jquery\";\r\nexport class AdvancedSearch {\r\n constructor($el) {\r\n this.$el = $el;\r\n\r\n this.updateLink();\r\n this.bindEvents();\r\n }\r\n\r\n bindEvents() { \r\n $(window).on('hashchange', e => {\r\n this.updateLink();\r\n });\r\n }\r\n\r\n updateLink() {\r\n var q = this.getParameterByName(\"q\");\r\n\r\n var url = this.$el.prop(\"href\").split(\"#\");\r\n var hash = this.updateParameterByName(url[1], \"q\", q);\r\n \r\n this.$el.prop(\"href\", url[0] + \"#\" + hash);\r\n }\r\n\r\n updateParameterByName(querystring, name, value) {\r\n const qstr = querystring || \"\";\r\n const result = qstr.split('&').reduce(function (res, item) {\r\n const parts = item.split('=');\r\n res[parts[0]] = parts[1];\r\n return res;\r\n }, {});\r\n\r\n result[name] = value;\r\n\r\n return decodeURIComponent($.param(result));\r\n }\r\n\r\n getParameterByName(name, url) {\r\n if (!url) url = window.location.hash;\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[#?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n }\r\n}\r\n","// Expected markup.\r\n// The link and content need to be nested within the js-accordion element, but can be placed anywhere in the code.\r\n//\r\n//
\r\n//
\r\n// \r\n//
\r\n//
\r\n// Content to show and hide\r\n//
\r\n//
\r\n\r\nexport function Breadcrumbs(el, id) {\r\n const button = el.querySelector(\".js-breadcrumbs-toggle\");\r\n const list = el.querySelector(\".js-breadcrumbs-list\");\r\n\r\n if (!button || !list) {\r\n return false;\r\n }\r\n\r\n const contentWrapper = wrap(list, document.createElement(\"div\"));\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 = 200;\r\n\r\n if (el.classList.contains(\"is-open\") || editorView) {\r\n expanded = true;\r\n toggleContent(expanded);\r\n }\r\n else {\r\n setWidth(contentWrapper, \"0px\");\r\n }\r\n\r\n button.setAttribute(\"aria-expanded\", expanded);\r\n button.setAttribute(\"id\", `breadcrumbs-toggle-${id}`);\r\n button.setAttribute(\"aria-controls\", `breadcrumbs-list-${id}`);\r\n\r\n contentWrapper.setAttribute(\"id\", `breadcrumbs-list-${id}`);\r\n contentWrapper.setAttribute(\"aria-labelledby\", `breadcrumbs-toggle-${id}`);\r\n\r\n if (editorView === null) {\r\n button.addEventListener(\"click\", e => {\r\n e.preventDefault();\r\n expanded = !expanded;\r\n toggleContent(expanded);\r\n });\r\n }\r\n\r\n function toggleContent(expanded) {\r\n const width = list.scrollWidth;\r\n\r\n button.setAttribute(\"aria-expanded\", expanded);\r\n\r\n clearTimeout(contentBuffer);\r\n\r\n if (expanded) {\r\n el.classList.add(\"is-open\");\r\n setWidth(contentWrapper, `${width}px`);\r\n\r\n contentBuffer = setTimeout(() => {\r\n setWidth(contentWrapper, \"auto\");\r\n }, animationSpeed + 20);\r\n }\r\n else {\r\n el.classList.remove(\"is-open\");\r\n setWidth(contentWrapper, `${width}px`);\r\n\r\n setTimeout(() => {\r\n setWidth(contentWrapper, \"0\");\r\n }, 20);\r\n }\r\n }\r\n\r\n function setWidth(el, width) {\r\n el.setAttribute(\"style\", `width: ${width}; transition: width ${animationSpeed}ms ease; overflow: hidden; display:inline-flex; height: 20px;`);\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 $ from 'jquery';\r\n\r\nexport class CardListToggle {\r\n constructor($el) {\r\n this.$el = $el;\r\n \r\n this.bindEvents();\r\n }\r\n\r\n bindEvents() {\r\n this.$el.on('click', '.js-grid', e => {\r\n e.preventDefault();\r\n $(this.$el).addClass(\"dynamic-list--grid\")\r\n });\r\n\r\n this.$el.on('click', '.js-list', e => {\r\n e.preventDefault();\r\n $(this.$el).removeClass(\"dynamic-list--grid\")\r\n });\r\n }\r\n}\r\n\r\n","import $ from \"jquery\";\r\nimport \"../thread/custom-vendor/slick-carousel/slick/slick\";\r\n\r\nexport class CardSlider {\r\n constructor($el, conf) {\r\n this.$el = $el;\r\n let slickConf = Object.assign(this.slickDefaults(), conf);\r\n\r\n // bind event prior to slick init\r\n this.bindEvents();\r\n this.$el.slick(slickConf);\r\n }\r\n\r\n bindEvents() {\r\n // bind an event on the arrows to de-focus them when\r\n // you mouse out, so the focus state doesn't get stuck\r\n this.$el.on(\"mouseleave\", \".slick-next, .slick-prev\", (event) => {\r\n event.currentTarget.blur();\r\n });\r\n }\r\n\r\n slickDefaults() {\r\n return {\r\n dots: false,\r\n infinite: false,\r\n speed: 300,\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n prevArrow: `\r\n `,\r\n nextArrow: `\r\n `,\r\n appendArrows: $(\".js-slider-arrows\"),\r\n responsive: [\r\n {\r\n breakpoint: 815,\r\n settings: {\r\n slidesToShow: 1,\r\n },\r\n },\r\n {\r\n breakpoint: 1000,\r\n settings: {\r\n slidesToShow: 2,\r\n },\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import $ from 'jquery';\r\n\r\nexport class CookieBanner {\r\n \r\n constructor($el) {\r\n this.$el = $el;\r\n this.bindEvents();\r\n let cookie = this.getCookie(\"ULI_KnowledgePlatform_Cookies\");\r\n \r\n if(!cookie){\r\n $('.js-cookie-banner').removeClass(\"cookie-banner--accepted\");\r\n }\r\n }\r\n\r\n bindEvents() {\r\n this.$el.on('click', e => {\r\n e.preventDefault();\r\n this.setCookie();\r\n $('.js-cookie-banner').addClass(\"cookie-banner--accepted\");\r\n });\r\n }\r\n\r\n setCookie(){\r\n let d = new Date();\r\n d.setTime(d.getTime() + (24*60*60*1000));\r\n let expires = \"expires=\"+ d.toUTCString();\r\n document.cookie = \"ULI_KnowledgePlatform_Cookies=\" + true + \";\" + expires + \";path=/\";\r\n }\r\n\r\n getCookie(cname){\r\n let name = cname + \"=\";\r\n let decodedCookie = decodeURIComponent(document.cookie);\r\n let ca = decodedCookie.split(';');\r\n for(let i = 0; i \r\n \r\n Previous Page\r\n \r\n \r\n `\r\n );\r\n const coveoNext = $(\".coveo-pager-next-icon\");\r\n coveoNext.replaceWith(\r\n ``\r\n );\r\n\r\n [...document.querySelectorAll(\".js-accordion\")].forEach(Accordion);\r\n\r\n if(!firstLoad){\r\n setTimeout(doScroll(), 1200);\r\n }\r\n\r\n firstLoad = false;\r\n\r\n renderBookmarkButtons();\r\n });\r\n\r\n $(root).on(\"noResults\", function (e, args) {\r\n firstLoad = true;\r\n coveoPager.addClass(\"u-hidden\")\r\n if(dynamicListSearchSort.length) {\r\n dynamicListSearchSort.addClass(\"u-hidden\");\r\n }\r\n });\r\n\r\n if($('.coveo-override').length ) {\r\n\r\n $(root).on('deferredQuerySuccess', function (e, data) {\r\n PushSelectedFacetsToDataLayer();\r\n });\r\n\r\n $(root).on('newResultsDisplayed', function(e, data){\r\n PushDownloadsToDataLayer();\r\n });\r\n }\r\n else {\r\n PushDownloadsToDataLayer();\r\n }\r\n});\r\n\r\nfunction translateFacetLabels() {\r\n [...document.querySelectorAll(\".coveo-facet-less\")].forEach(el => {\r\n el.innerHTML = Coveo.l(\"ShowLess\") + el.innerHTML;\r\n });\r\n\r\n [...document.querySelectorAll(\".coveo-facet-more\")].forEach(el => {\r\n el.innerHTML = Coveo.l(\"ShowMore\") + el.innerHTML;\r\n });\r\n}\r\n\r\nfunction translateCategoryFacetLabels() {\r\n [...document.querySelectorAll(\".coveo-category-facet-less\")].forEach(el => {\r\n el.innerHTML = Coveo.l(\"ShowLess\") + el.innerHTML;\r\n });\r\n\r\n [...document.querySelectorAll(\".coveo-category-facet-more\")].forEach(el => {\r\n el.innerHTML = Coveo.l(\"ShowMore\") + el.innerHTML;\r\n });\r\n}\r\n\r\nfunction doScroll(){\r\n let $pager = $(document.querySelector('ul.coveo-pager-list'));\r\n let elementOffset = $pager.offset().top;\r\n $('html,body').animate({ scrollTop: elementOffset - 150 }, 500);\r\n}\r\n\r\nfunction PushSelectedFacetsToDataLayer() {\r\n var selectedFacets = $('.coveo-facet-value input[type=\"checkbox\"]:checked');\r\n var selectedFacetsLabels = [];\r\n for (let i = 0; i < selectedFacets.length; i++) {\r\n selectedFacetsLabels.push($(selectedFacets[i]).siblings('.coveo-facet-value-caption')[0].getAttribute('title'));\r\n }\r\n if (selectedFacetsLabels.length > 0) {\r\n var selectedvalues = selectedFacetsLabels.join('|');\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'searchFacetSelection',\r\n 'searchFacet': selectedvalues\r\n });\r\n } else {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'searchFacetSelection',\r\n 'searchFacet': 'No Facets Are Selected'\r\n });\r\n }\r\n}\r\n\r\nfunction PushDownloadsToDataLayer() {\r\n var downloads = $('.CoveoResultFolding, .detail-page__sidebar-resources a.taxonomy-item');\r\n\r\n if (downloads.length > 0) {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'downloadImpression',\r\n 'kf-downloadPresent': 'true'\r\n });\r\n } else {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'downloadImpression',\r\n 'kf-downloadPresent': 'false'\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport \"../thread/custom-vendor/slick-carousel/slick/slick\";\r\n\r\nexport class ForYou {\r\n constructor($el, conf) {\r\n this.$el = $el;\r\n let slickConf = Object.assign(this.slickDefaults(), conf);\r\n\r\n // bind event prior to slick init\r\n this.bindEvents();\r\n this.$el.slick(slickConf);\r\n }\r\n\r\n bindEvents() {\r\n // bind an event on the arrows to de-focus them when\r\n // you mouse out, so the focus state doesn't get stuck\r\n this.$el.on('mouseleave', '.slick-next, .slick-prev', event => {\r\n event.currentTarget.blur();\r\n });\r\n }\r\n\r\n slickDefaults() {\r\n return {\r\n dots: false,\r\n arrows: true,\r\n infinite: false,\r\n speed: 300,\r\n slidesToShow: 4,\r\n slidesToScroll: 1,\r\n prevArrow: `\r\n `,\r\n nextArrow: `\r\n `,\r\n appendArrows: $(\".js-for-you-arrows\"),\r\n responsive: [ \r\n {\r\n breakpoint: 815,\r\n settings: {\r\n slidesToShow: 1\r\n }\r\n },\r\n {\r\n breakpoint: 1000,\r\n settings: {\r\n slidesToShow: 2\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n}\r\n\r\n","import Chart from \"chart.js\";\r\nimport $ from \"jquery\";\r\n\r\nexport class LineChart {\r\n constructor($el) {\r\n this.$el = $el;\r\n\r\n if (this.$el.length === 0) {\r\n return;\r\n }\r\n\r\n this.initChart();\r\n }\r\n\r\n initChart() {\r\n //Default Settings\r\n Chart.defaults.global.elements.point.radius = 0; // hides points on line\r\n Chart.defaults.global.defaultFontColor = \"#0D1112\";\r\n Chart.defaults.global.legend.align = \"end\";\r\n\r\n //Tooltip Settings\r\n Chart.defaults.global.tooltips.backgroundColor = \"#ecf2ec\";\r\n Chart.defaults.global.tooltips.cornerRadius = \"0\";\r\n Chart.defaults.global.tooltips.titleFontFamily = \"'Roboto', sans-serif\";\r\n Chart.defaults.global.tooltips.titleFontColor = \"#0D1112\";\r\n Chart.defaults.global.tooltips.titleAlign = \"center\";\r\n Chart.defaults.global.tooltips.bodyFontFamily = \"'Roboto', sans-serif\";\r\n Chart.defaults.global.tooltips.bodyFontColor = \"#0D1112\";\r\n Chart.defaults.global.tooltips.bodyAlign = \"center\";\r\n\r\n const chartCanvas = this.$el.find(\".js-line-chart__canvas\")[0];\r\n const chartDataSource = JSON.parse(chartCanvas.dataset.source);\r\n\r\n const chartXLabel =\r\n chartCanvas.dataset.xAxis && chartCanvas.dataset.xAxis !== \"\"\r\n ? chartCanvas.dataset.xAxis\r\n : \"\";\r\n\r\n const chartXLabelConfig =\r\n chartXLabel !== \"\"\r\n ? {\r\n display: true,\r\n labelString: chartXLabel,\r\n fontSize: 13,\r\n fontFamily: \"'Roboto', sans-serif\",\r\n fontStyle: \"700\",\r\n }\r\n : { display: false };\r\n const chartYLabel =\r\n chartCanvas.dataset.yAxis && chartCanvas.dataset.yAxis !== \"\"\r\n ? chartCanvas.dataset.yAxis\r\n : \"\";\r\n const ctx = chartCanvas.getContext(\"2d\");\r\n\r\n const config = {\r\n type: \"line\",\r\n data: {\r\n labels: chartDataSource.labels,\r\n datasets: [\r\n {\r\n label: chartDataSource.dataSets[0].label,\r\n backgroundColor: \"#7A9A01\",\r\n borderColor: \"#7A9A01\",\r\n borderWidth: 2,\r\n fill: false,\r\n data: chartDataSource.dataSets[0].data,\r\n lineTension: 0,\r\n spanGaps: true,\r\n pointHitRadius: 20,\r\n pointRadius: 2,\r\n },\r\n {\r\n label: chartDataSource.dataSets[1].label,\r\n backgroundColor: \"#979797\",\r\n borderColor: \"#979797\",\r\n borderWidth: 2,\r\n fill: false,\r\n data: chartDataSource.dataSets[1].data,\r\n lineTension: 0,\r\n spanGaps: true,\r\n pointHitRadius: 20,\r\n pointRadius: 2,\r\n },\r\n ],\r\n },\r\n options: {\r\n bezierCurve: false,\r\n responsive: true,\r\n aspectRatio: 1,\r\n legend: {\r\n labels: {\r\n fontSize: 13,\r\n fontFamily: \"'Roboto', sans-serif\",\r\n usePointStyle: true,\r\n boxWidth: 6,\r\n },\r\n onClick: null,\r\n },\r\n scales: {\r\n xAxes: [\r\n {\r\n offset: true,\r\n display: true,\r\n scaleLabel: chartXLabelConfig,\r\n gridLines: {\r\n drawOnChartArea: false,\r\n lineWidth: 1,\r\n color: \"#0D1112\",\r\n },\r\n ticks: {\r\n fontSize: 14,\r\n fontFamily: \"'Roboto', sans-serif\",\r\n fontColor: \"#0D1112\",\r\n fontStyle: \"700\",\r\n padding: 8,\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n offset: true,\r\n display: true,\r\n scaleLabel: {\r\n display: false,\r\n },\r\n gridLines: {\r\n drawOnChartArea: false,\r\n lineWidth: 1,\r\n color: \"#0D1112\",\r\n },\r\n ticks: {\r\n min: chartDataSource.yAxisMin,\r\n max: chartDataSource.yAxisMax,\r\n stepSize: chartDataSource.yAxisStepSize,\r\n\r\n fontSize: 14,\r\n fontFamily: \"'Roboto', sans-serif\",\r\n fontColor: \"#0D1112\",\r\n fontStyle: \"700\",\r\n padding: 8,\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n };\r\n\r\n //This to Handle Y Axis label position if exist\r\n if (chartYLabel !== \"\") {\r\n const myLineExtend = Chart.controllers.line.prototype.draw;\r\n\r\n Chart.helpers.extend(Chart.controllers.line.prototype, {\r\n draw: function () {\r\n myLineExtend.apply(this, arguments);\r\n const controller = this.chart.controller,\r\n chart = controller.chart,\r\n xOffset = 5,\r\n yOffset = chart.height - (chart.height - 18);\r\n\r\n ctx.font = \"normal 14px 'Roboto', sans-serif\";\r\n ctx.fillStyle = \"#0D1112\";\r\n ctx.fillText(chartYLabel, xOffset, yOffset);\r\n },\r\n });\r\n }\r\n const myChart = new Chart(ctx, config);\r\n\r\n //This to handle aspectRatio Problem When Load,Resize, OrientationChange\r\n $(window).on(\"orientationchange resize load\", () => {\r\n let currentChartWidth = $(chartCanvas).outerWidth();\r\n\r\n if (currentChartWidth >= 475) {\r\n myChart.aspectRatio = 2;\r\n } else {\r\n myChart.aspectRatio = 1;\r\n }\r\n\r\n myChart.resize();\r\n });\r\n }\r\n}\r\n","import $ from \"jquery\";\r\n\r\nexport default () => {\r\n $('a[href^=\"#\"]').on(\"click\", function (e) {\r\n if ($(this).attr(\"href\") === '#' || $(this).attr(\"href\").indexOf(\"#\") != 0)\r\n {\r\n return;\r\n }\r\n e.preventDefault();\r\n let target = $($(this).attr(\"href\"));\r\n\r\n if (!target.length) {\r\n var anchorNameSelector = `[name='${$(this).attr(\"href\").substring(1)}']`\r\n target = $(anchorNameSelector);\r\n }\r\n\r\n if (target.length) {\r\n const scrollTo = target.offset().top - 128; // Extra 128px for sticky navigation bar\r\n $(\"html, body\").animate(\r\n {\r\n scrollTop: `${scrollTo}px`,\r\n },\r\n 500,\r\n \"linear\",\r\n );\r\n }\r\n });\r\n};\r\n","import $ from \"jquery\";\r\nimport validate from \"jquery-validation\";\r\n\r\nexport class LoginForm {\r\n constructor($el) {\r\n this.$el = $el;\r\n var $button = $el.find(\"button[type='submit']\");\r\n\r\n $el.validate({\r\n errorClass: \"login-form__input-group-error\",\r\n errorElement: \"span\",\r\n rules: {\r\n Email: \"required email\",\r\n Password: \"required\",\r\n },\r\n messages: {\r\n Email: {\r\n required: $(\"#Email\").data(\"msgRequired\"),\r\n email: $(\"#Email\").data(\"msgEmail\"),\r\n },\r\n Password: {\r\n required: $(\"#Password\").data(\"msgRequired\"),\r\n },\r\n },\r\n highlight: function (element, errorClass) {\r\n $(element).parent().addClass(\"has-error\");\r\n },\r\n unhighlight: function (element, errorClass, validClass) {\r\n $(element).parent().removeClass(\"has-error\");\r\n },\r\n });\r\n\r\n var self = this;\r\n $el.on(\"submit\", function (e) {\r\n var isValid = $el.valid();\r\n if (isValid) {\r\n var param = self.getUrlParameter(\"URL_Success\") || \"/\";\r\n\r\n $.post({\r\n url: \"/api/Account/LogIn?URL_Success=\" + param,\r\n data: { Email: $(\"#Email\").val(), Password: $(\"#Password\").val() },\r\n success: function (data) {\r\n window.location = data;\r\n },\r\n error: function (data) {\r\n $el.addClass(\"show-invalid\");\r\n $button.attr(\"disabled\", false);\r\n $button.removeClass(\"btn--disabled\");\r\n },\r\n });\r\n\r\n $button.attr(\"disabled\", true);\r\n $button.addClass(\"btn--disabled\");\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n getUrlParameter(name) {\r\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\r\n var results = regex.exec(window.location.search);\r\n return results === null\r\n ? \"\"\r\n : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport focusTrap from \"focus-trap\";\r\nimport \"../thread/custom-vendor/slick-carousel/slick/slick\";\r\n\r\nexport class MobileMenu {\r\n constructor($el) {\r\n this.$el = $el;\r\n this.$toggle = this.$el.find(\".js-mobile-menu-toggle\");\r\n this.$flyout = this.$el.find(\".js-mobile-menu-flyout\");\r\n this.$buttons = this.$el.find(\".js-flyout-nav-item\");\r\n this.$slides = this.$el.find(\".js-flyout-slides\");\r\n this.$wrapper = this.$el.find(\".js-flyout-buttons-wrapper\");\r\n let slickConf = {\r\n dots: false,\r\n infinite: false,\r\n speed: 350,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false\r\n };\r\n this.$slides.slick(slickConf);\r\n this.trap = focusTrap(this.$flyout.get(0));\r\n this.bindEvents();\r\n }\r\n\r\n bindEvents() {\r\n this.$toggle.on(\"click\", e => this.toggleMenu(e));\r\n this.$buttons.on(\"click\", e => this.handleItemClick(e));\r\n this.$wrapper.on(\"keydown\", e => this.handleItemKey(e));\r\n this.$buttons.on(\"keydown\", e => this.handleItemKey(e));\r\n this.$slides.on(\"afterChange\", (event, currentSlide) =>\r\n this.doFocus(event, currentSlide.currentSlide)\r\n );\r\n }\r\n\r\n toggleMenu(event) {\r\n event.preventDefault();\r\n\r\n if (this.$flyout.hasClass(\"is-open\")) {\r\n this.$flyout.removeClass(\"is-open\");\r\n $(\"body\").removeClass(\"mobile-menu-is-open\");\r\n this.trap.deactivate();\r\n }\r\n else {\r\n this.$flyout.addClass(\"is-open\");\r\n $(\"body\").addClass(\"mobile-menu-is-open\");\r\n if(this.$slides.slick('getSlick').slideCount > 2){\r\n this.$slides.slick(\"slickGoTo\", 1);\r\n }else{\r\n this.$slides.slick(\"slickGoTo\", 0);\r\n }\r\n this.trap.activate();\r\n }\r\n }\r\n\r\n handleItemKey(e) {\r\n\r\n let slideIndex = this.$slides.slick(\"slickCurrentSlide\");\r\n switch (e.key) {\r\n case \"ArrowRight\":\r\n this.$slides.slick(\"slickGoTo\", slideIndex + 1);\r\n break;\r\n case \"ArrowLeft\":\r\n this.$slides.slick(\"slickGoTo\", slideIndex - 1);\r\n break;\r\n }\r\n }\r\n\r\n handleItemClick(event) {\r\n event.preventDefault();\r\n this.$buttons.parent().removeClass(\"is-open\");\r\n let parent = event.currentTarget.parentElement;\r\n let index = $(parent).index();\r\n this.$slides.slick(\"slickGoTo\", index);\r\n }\r\n\r\n doFocus(event, slideIndex) {\r\n this.$buttons.removeClass(\"is-active\");\r\n this.$buttons[slideIndex].focus();\r\n this.$buttons[slideIndex].classList.add(\"is-active\");\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport \"../thread/custom-vendor/slick-carousel/slick/slick\";\r\n\r\nexport class PaginatedFeatureList {\r\n constructor($el, conf) {\r\n this.$el = $el;\r\n let slickConf = Object.assign(this.slickDefaults(), conf);\r\n\r\n // bind event prior to slick init\r\n this.bindEvents();\r\n this.$el.slick(slickConf);\r\n }\r\n\r\n bindEvents() {\r\n // bind an event on the arrows to de-focus them when\r\n // you mouse out, so the focus state doesn't get stuck\r\n this.$el.on(\"mouseleave\", \".slick-next, .slick-prev\", (event) => {\r\n event.currentTarget.blur();\r\n });\r\n }\r\n\r\n slickDefaults() {\r\n return {\r\n dots: true,\r\n customPaging: function (slider, i) {\r\n var thumb = $(slider.$slides[i]).data();\r\n return `${i + 1}`;\r\n },\r\n infinite: false,\r\n speed: 300,\r\n slidesPerRow: 4,\r\n rows: 2,\r\n prevArrow: `\r\n `,\r\n nextArrow: `\r\n `,\r\n appendArrows: this.$el\r\n .closest(\"section\")\r\n .find(\".js-list-slider-arrows\")[0],\r\n responsive: [\r\n {\r\n breakpoint: 680,\r\n settings: {\r\n slidesPerRow: 2,\r\n rows: 2,\r\n },\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","// props: {\r\n// animationDelay: number\r\n// closed: boolean\r\n// menuButton: string (class or id selector)\r\n// menuContainer: string (class or id selector)\r\n// onOpen: function (callback when the menu opens)\r\n// parent: node element\r\n// }\r\n\r\nlet throttle = window.setTimeout(() => {}, 0);\r\n\r\nexport class Popup {\r\n constructor(props) {\r\n const defaultProps = {\r\n closed: true,\r\n animationDelay: 600\r\n };\r\n this.props = Object.assign({}, defaultProps, props);\r\n\r\n this.closed = this.props.closed;\r\n this.animationDelay = this.props.animationDelay;\r\n\r\n this.elParent = this.props.parent;\r\n\r\n this.elCloseButtons = this.elParent.querySelectorAll(this.props.closeButtonClass);\r\n this.elMenuButton = this.elParent.querySelector(this.props.menuButton);\r\n this.elMenuContainer = this.elParent.querySelector(\r\n this.props.menuContainer\r\n );\r\n\r\n this.onOpen = this.props.onOpen;\r\n this.openClass = \"is-open\";\r\n\r\n this.bindEvents();\r\n if (this.closed) {\r\n this.closeMenu(false);\r\n }\r\n else {\r\n this.openMenu();\r\n }\r\n }\r\n\r\n bindEvents() {\r\n this.elMenuButton.addEventListener(\"mousedown\", e => {\r\n e.preventDefault();\r\n this.toggleMenu();\r\n });\r\n\r\n this.elCloseButtons.forEach(e => e.addEventListener(\"mousedown\", e => {\r\n e.preventDefault();\r\n this.closeMenu();\r\n }));\r\n\r\n this.elMenuButton.addEventListener(\"keydown\", e => {\r\n switch (e.key) {\r\n case \"Escape\":\r\n e.preventDefault();\r\n this.closeMenu();\r\n break;\r\n case \"Enter\":\r\n case \" \":\r\n e.preventDefault();\r\n this.toggleMenu();\r\n break;\r\n default:\r\n }\r\n });\r\n\r\n document.querySelector(\"html\").addEventListener(\"click\", e => {\r\n if (!this.elParent.contains(e.target) && !this.closed) {\r\n this.closeMenu(false);\r\n }\r\n });\r\n\r\n }\r\n\r\n toggleMenu() {\r\n if (this.closed) {\r\n this.openMenu();\r\n }\r\n else {\r\n this.closeMenu();\r\n }\r\n }\r\n\r\n openMenu() {\r\n this.closed = false;\r\n this.elMenuButton.setAttribute(\"aria-expanded\", true);\r\n this.elParent.classList.add(this.openClass);\r\n this.elMenuContainer.removeAttribute(\"aria-hidden\");\r\n\r\n window.clearTimeout(throttle);\r\n\r\n throttle = setTimeout(() => {\r\n }, this.animationDelay);\r\n\r\n if (this.onOpen) {\r\n this.onOpen();\r\n }\r\n }\r\n\r\n closeMenu(moveFocus = true) {\r\n this.closed = true;\r\n if (moveFocus) {\r\n this.elMenuButton.focus();\r\n }\r\n this.elMenuButton.setAttribute(\"aria-expanded\", false);\r\n this.elParent.classList.remove(this.openClass);\r\n this.elMenuContainer.setAttribute(\"aria-hidden\", true);\r\n }\r\n}\r\n","import $ from \"jquery\";\r\n\r\nexport default () => {\r\n \r\n const posterWrapper = $(\".video-block__poster-wrapper\");\r\n if (posterWrapper)\r\n {\r\n posterWrapper.on(\"click\", (event) => {\r\n \r\n var iframeEl = $(event.delegateTarget).parent().find(\".video-block__iframe-player\").first(); \r\n\r\n if (iframeEl)\r\n {\r\n var iframeSrc = iframeEl.attr('video-src');\r\n iframeEl.css(\"display\", \"block\");\r\n iframeEl.attr(\"src\", iframeSrc);\r\n var button = $(event.delegateTarget).parent().find(\".video-block__poster-wrapper\").first();\r\n var videoTitle = button.attr(\"data-videotitle\");\r\n var eventCategory = button.attr(\"data-eventcategory\");\r\n button.css(\"display\", \"none\");\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'video',\r\n 'eventCategory': eventCategory ?? 'In-Page Video',\r\n 'eventAction': 'Played video',\r\n 'videoTitle': videoTitle ?? ''\r\n });\r\n }\r\n \r\n });\r\n }\r\n}","import $ from \"jquery\";\r\n\r\nconst editorView = document.querySelector(\"body.is-page-editor\");\r\nif(!editorView) {\r\n document.addEventListener(\"DOMContentLoaded\", function() {\r\n const root = document.querySelector(\".CoveoRecommendation\");\r\n const container = $(root).closest(\".related-events\");\r\n \r\n $(root).on(\"noResults\", function (e, args) { \r\n container.addClass(\"u-hidden\");\r\n });\r\n });\r\n}","import $ from 'jquery';\r\nimport throttle from \"lodash.throttle\";\r\n\r\nexport class ScrollToggle {\r\n constructor($el) {\r\n this.$el = $el;\r\n this.$searchBanner = $('.js-search-banner');\r\n \r\n if (!this.$searchBanner.length) {\r\n this.$el.addClass('show');\r\n }else {\r\n this.bannerBottom = this.$searchBanner.position().top + this.$searchBanner.outerHeight();\r\n this.bindEvents();\r\n }\r\n }\r\n\r\n bindEvents() {\r\n window.addEventListener(\"scroll\", throttle(() => { \r\n this.onScroll(); \r\n }, 200, {\"trailing\": true} ));\r\n }\r\n\r\n onScroll(){\r\n let windowPosition = $(window).scrollTop();\r\n if(windowPosition > this.bannerBottom){\r\n this.$el.addClass('show');\r\n }else{\r\n this.$el.removeClass('show');\r\n }\r\n }\r\n}\r\n\r\n","import $ from \"jquery\";\r\nimport validate from \"jquery-validation\";\r\n\r\nexport class SignUp {\r\n constructor($el) {\r\n this.$el = $el;\r\n var $button = $el.find(\"button[type='submit']\");\r\n var $form = $el.find(\"form\");\r\n var $successRedirectUrl = $el.find(\"input[name='SuccessRedirectUrl']\");\r\n\r\n $form.validate({\r\n errorClass: \"sign-up__input-group-error\",\r\n errorElement: \"span\",\r\n errorPlacement: function (error, element) {\r\n if ($(element).is(\"input[type='checkbox']\")) {\r\n $(element).parent().parent().append(error);\r\n } else {\r\n $(element).parent().append(error);\r\n }\r\n },\r\n rules: {\r\n FirstName: \"required\",\r\n LastName: \"required\",\r\n Email: \"required email\",\r\n City: \"required\",\r\n Country: \"required\",\r\n AreTermsConfirmed: \"required\",\r\n },\r\n messages: {\r\n FirstName: {\r\n required: $(\"#FirstName\").data(\"msgRequired\"),\r\n },\r\n LastName: {\r\n required: $(\"#LastName\").data(\"msgRequired\"),\r\n },\r\n Email: {\r\n required: $(\"#Email\").data(\"msgRequired\"),\r\n email: $(\"#Email\").data(\"msgEmail\"),\r\n },\r\n City: {\r\n required: $(\"#City\").data(\"msgRequired\"),\r\n },\r\n Country: {\r\n required: $(\"#Country\").data(\"msgRequired\"),\r\n },\r\n AreTermsConfirmed: {\r\n required: $(\"#AreTermsConfirmed\").data(\"msgRequired\"),\r\n },\r\n },\r\n highlight: function (element, errorClass) {\r\n if ($(element).is(\"input[type='checkbox']\")) {\r\n $(element).parent().parent().addClass(\"has-error\");\r\n } else {\r\n $(element).parent().addClass(\"has-error\");\r\n }\r\n },\r\n unhighlight: function (element, errorClass, validClass) {\r\n if ($(element).is(\"input[type='checkbox']\")) {\r\n $(element).parent().parent().removeClass(\"has-error\");\r\n } else {\r\n $(element).parent().removeClass(\"has-error\");\r\n }\r\n },\r\n });\r\n\r\n $button.on(\"click\", function (e) {\r\n e.preventDefault();\r\n\r\n var isValid = $form.valid();\r\n if (isValid) {\r\n $.post({\r\n url: \"/api/Newsletter/SignUp\",\r\n data: $form.find(\"[id]\").serialize(),\r\n success: function (data) {\r\n if ($successRedirectUrl.val() != \"\") {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'formSubmissionSuccess',\r\n 'form_id': 'signup'\r\n });\r\n window.location = $successRedirectUrl.val();\r\n } else {\r\n $el.addClass(\"show-success\");\r\n }\r\n },\r\n error: function (data) {\r\n $el.addClass(\"show-invalid\");\r\n $button.attr(\"disabled\", false);\r\n $button.removeClass(\"btn--disabled\");\r\n },\r\n });\r\n\r\n $button.attr(\"disabled\", true);\r\n $button.addClass(\"btn--disabled\");\r\n }\r\n });\r\n }\r\n}\r\n","import $ from \"jquery\";\r\n\r\nexport class SlideIn {\r\n constructor($el) {\r\n this.$el = $el;\r\n this.cookieName = $el.data(\"cookie\");\r\n this.cookie = this.getCookie(this.cookieName);\r\n this.dismissSlideIn =\r\n window.sessionStorage.getItem(\"slideIn\") === \"dismiss\";\r\n this.bindEvents();\r\n }\r\n\r\n showIt() {\r\n $(\".js-slide-in\").removeClass(\"slide-in--dismissed\");\r\n }\r\n\r\n bindEvents() {\r\n if (!this.cookie && !this.dismissSlideIn) {\r\n setTimeout(this.showIt, 1200);\r\n }\r\n\r\n this.$el.find(\".js-slide-in-dismiss\").on(\"click\", (e) => {\r\n // stop video playback on dismiss\r\n const iframe = $(\".slide-in__body\").find(\".video-block__iframe-player\").first();\r\n if (iframe) {\r\n iframe.attr(\"src\",\"\");\r\n }\r\n\r\n e.preventDefault();\r\n window.sessionStorage.setItem(\"slideIn\", \"dismiss\");\r\n this.setCookie();\r\n $(\".js-slide-in\").addClass(\"slide-in--dismissed\");\r\n });\r\n\r\n this.$el.find(\".slide-in__body-cta\").on(\"click\", (e) => {\r\n e.preventDefault();\r\n window.sessionStorage.setItem(\"slideIn\", \"dismiss\");\r\n this.setCookie();\r\n window.location = $(\".slide-in__body-cta\").attr('href');\r\n });\r\n }\r\n\r\n setCookie() {\r\n let d = new Date();\r\n d.setTime(d.getTime() + 24 * 60 * 60 * 1000);\r\n let expires = \"expires=\" + d.toUTCString();\r\n document.cookie = this.cookieName + \"=\" + true + \";\" + expires + \";path=/\";\r\n }\r\n\r\n getCookie(cname) {\r\n let name = cname + \"=\";\r\n let decodedCookie = decodeURIComponent(document.cookie);\r\n let ca = decodedCookie.split(\";\");\r\n for (let i = 0; i < ca.length; i++) {\r\n let 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","import $ from 'jquery';\r\n\r\nexport class TakeoverModal {\r\n \r\n constructor($el) {\r\n this.$el = $el;\r\n\r\n let key = $el.data('modalKey') || \"Preferences\";\r\n this.$cookieName = `ULI_KnowledgePlatform_${key}Modal`;\r\n this.bindEvents();\r\n \r\n let cookie = this.getCookie(this.$cookieName);\r\n \r\n if(!cookie){\r\n $('.js-takeover-modal').removeClass(\"takeover-modal--dismissed\");\r\n $(document.body).addClass('scroll-disabled');\r\n }\r\n }\r\n\r\n bindEvents() {\r\n this.$el.find('.js-takeover-dismiss').on('click', e => {\r\n\r\n this.setCookie();\r\n $('.js-takeover-modal').addClass(\"takeover-modal--dismissed\");\r\n $(document.body).removeClass('scroll-disabled');\r\n });\r\n }\r\n\r\n setCookie(){\r\n let d = new Date();\r\n d.setTime(d.getTime() + (24*60*60*1000));\r\n let expires = \"expires=\"+ d.toUTCString();\r\n document.cookie = this.$cookieName + \"=\" + true + \";\" + expires + \";path=/\";\r\n }\r\n\r\n getCookie(cname){\r\n let name = cname + \"=\";\r\n let decodedCookie = decodeURIComponent(document.cookie);\r\n let ca = decodedCookie.split(';');\r\n for(let i = 0; i {\r\n this.toggle();\r\n });\r\n }\r\n\r\n toggle() {\r\n if (this.$tooltip.hasClass(\"is-open\")) {\r\n this.closeMe();\r\n } else {\r\n this.openMe();\r\n }\r\n }\r\n\r\n closeMe() {\r\n this.$tooltip.removeClass(\"is-open\");\r\n document.body.removeEventListener(\"click\", this.handleToggle);\r\n }\r\n\r\n openMe() {\r\n this.$tooltip.addClass(\"is-open\");\r\n document.body.addEventListener(\"click\", this.handleToggle);\r\n }\r\n\r\n handleToggle(event) {\r\n if (!this.$parentEl[0].contains(event.target)) {\r\n this.closeMe();\r\n }\r\n }\r\n}\r\n","import $ from 'jquery';\r\n\r\nexport class TranscriptVideo {\r\n constructor($el) {\r\n this.$el = $el;\r\n this.$button = this.$el.find(\".js-transcript-toggle\");\r\n this.isOpen = false;\r\n this.bindEvents();\r\n }\r\n\r\n bindEvents() {\r\n this.$button.on('click', e => { this.toggle() });\r\n }\r\n\r\n toggle() {\r\n if(this.isOpen){\r\n this.$el.removeClass('is-open');\r\n this.isOpen = false;\r\n }else{\r\n this.$el.addClass('is-open');\r\n this.isOpen = true;\r\n }\r\n setTimeout(() => {\r\n $(window).trigger('resize');\r\n }, 500 + 20);\r\n }\r\n \r\n}","import $ from \"jquery\";\r\nlet throttler;\r\n\r\nexport class TrendingNav {\r\n constructor($el) {\r\n this.$el = $el;\r\n this.$links = $el.find(\".js-trending-nav-link\");\r\n\r\n if (this.$links.length === 0) {\r\n return;\r\n }\r\n\r\n this.bindEvents();\r\n this.initLinks(this.$links);\r\n }\r\n\r\n bindEvents() {\r\n $(window).on(\"resize\", e => {\r\n if (throttler) {\r\n window.clearTimeout(throttler);\r\n }\r\n\r\n throttler = setTimeout(() => {\r\n this.initLinks(this.$links);\r\n }, 30);\r\n });\r\n }\r\n\r\n initLinks($links) {\r\n let y = -1;\r\n $links.removeClass(\"first-in-row\");\r\n $links.each((i, link) => {\r\n if ($(link).offset().top > y) {\r\n y = $(link).offset().top;\r\n $(link).addClass(\"first-in-row\");\r\n }\r\n });\r\n }\r\n}\r\n","import Chart from \"chart.js\";\r\nimport $ from \"jquery\";\r\n\r\nexport class TrendingTopics {\r\n constructor($el) {\r\n this.$el = $el;\r\n\r\n if (this.$el.length === 0) {\r\n return;\r\n }\r\n\r\n //\r\n // STATE MANAGEMENT\r\n //\r\n this.chartInFocusMode = false;\r\n this.lastDatasetIsFill = false;\r\n this.ttTableRevealedRows = 0;\r\n\r\n this.lineColor;\r\n\r\n this.initChart();\r\n }\r\n\r\n // Helper function to round to the nearest 0.5\r\n // Useful for getting exact pixel alignment\r\n roundHalf(num) {\r\n return Math.round(num * 2) / 2;\r\n }\r\n\r\n // Using this plugin instead of native `fill` because fill doesn't draw over\r\n // lines, doesn't respect `order` value for some reason.\r\n fillBetweenLinesPlugin() {\r\n return {\r\n afterDatasetsDraw: function (chart) {\r\n var ctx = chart.chart.ctx;\r\n var xaxis = chart.scales[\"x-axis-0\"];\r\n var yaxis = chart.scales[\"y-axis-0\"];\r\n var datasets = chart.data.datasets;\r\n ctx.save();\r\n\r\n for (var d = 0; d < datasets.length; d++) {\r\n var dataset = datasets[d];\r\n if (dataset.fillBetweenSet == undefined) {\r\n continue;\r\n }\r\n\r\n // get meta for both data sets\r\n var meta1 = chart.getDatasetMeta(d);\r\n var meta2 = chart.getDatasetMeta(dataset.fillBetweenSet);\r\n\r\n // do not draw fill if one of the datasets is hidden\r\n if (meta1.hidden || meta2.hidden) continue;\r\n\r\n // create fill areas in pairs\r\n for (var p = 0; p < meta1.data.length - 1; p++) {\r\n // if null skip\r\n if (dataset.data[p] == null || dataset.data[p + 1] == null)\r\n continue;\r\n\r\n ctx.beginPath();\r\n\r\n // trace line 1\r\n var curr = meta1.data[p];\r\n var next = meta1.data[p + 1];\r\n\r\n ctx.moveTo(curr._view.x, curr._view.y);\r\n ctx.lineTo(curr._view.x, curr._view.y);\r\n if (curr._view.steppedLine === true) {\r\n ctx.lineTo(next._view.x, curr._view.y);\r\n ctx.lineTo(next._view.x, next._view.y);\r\n } else if (next._view.tension === 0) {\r\n ctx.lineTo(next._view.x, next._view.y);\r\n } else {\r\n ctx.bezierCurveTo(\r\n curr._view.controlPointNextX,\r\n curr._view.controlPointNextY,\r\n next._view.controlPointPreviousX,\r\n next._view.controlPointPreviousY,\r\n next._view.x,\r\n next._view.y\r\n );\r\n }\r\n\r\n // connect dataset1 to dataset2\r\n var curr = meta2.data[p + 1];\r\n var next = meta2.data[p];\r\n ctx.lineTo(curr._view.x, curr._view.y);\r\n\r\n // trace BACKWARDS set2 to complete the box\r\n if (curr._view.steppedLine === true) {\r\n ctx.lineTo(curr._view.x, next._view.y);\r\n ctx.lineTo(next._view.x, next._view.y);\r\n } else if (next._view.tension === 0) {\r\n ctx.lineTo(next._view.x, next._view.y);\r\n } else {\r\n // reverse bezier\r\n ctx.bezierCurveTo(\r\n curr._view.controlPointPreviousX,\r\n curr._view.controlPointPreviousY,\r\n next._view.controlPointNextX,\r\n next._view.controlPointNextY,\r\n next._view.x,\r\n next._view.y\r\n );\r\n }\r\n\r\n // close the loop and fill with shading\r\n ctx.closePath();\r\n ctx.fillStyle = dataset.fillBetweenColor || \"rgba(0,0,0,0.1)\";\r\n ctx.fill();\r\n } // end for p loop\r\n }\r\n }, // end afterDatasetsDraw\r\n };\r\n } // end fillBetweenLinesPlugin\r\n\r\n initChart() {\r\n // use fill plugin instead of built-in functionality\r\n Chart.pluginService.register(this.fillBetweenLinesPlugin());\r\n //\r\n // DATA STRUCTURE:\r\n // [{\"Topic\":null,\"ThisWeek\":0.0,\"LastWeek:\":0.0,\"Index\":0.0}]\r\n //\r\n\r\n //\r\n // CHART SETUP\r\n //\r\n var chartData = [];\r\n var chartCanvas = $(\".trending-topics__canvas\")[0];\r\n var ctx = chartCanvas.getContext(\"2d\");\r\n\r\n var fillColor = \"rgba(235, 245, 245, 1)\";\r\n var fillColorNegative = \"rgba(231, 232, 233, 1)\";\r\n var fadedLineColor = \"rgba(243, 249, 250, 1)\";\r\n\r\n Chart.defaults.global.elements.point.radius = 0; // hides points on line\r\n Chart.defaults.global.tooltips.intersect = false; // don't require point hover for line \"focus\"\r\n Chart.defaults.global.tooltips.animationDuration = 50;\r\n Chart.defaults.global.tooltips.enabled = false; // don't display Chart.js tooltips\r\n Chart.defaults.global.legend.display = false; // don't show X/Y legends\r\n Chart.defaults.scale.gridLines.display = false; // don't show grid lines on chart itself\r\n Chart.defaults.global.elements.line.borderWidth = 1;\r\n Chart.defaults.global.animation.duration = 500;\r\n\r\n var chart = new Chart(ctx, {\r\n // The type of chart we want to create\r\n type: \"scatter\",\r\n\r\n // The data for our dataset\r\n data: {\r\n // labels: [\"0\", \"1\", \"2\"],\r\n datasets: [],\r\n },\r\n\r\n // Configuration options go here\r\n options: {\r\n responsive: true,\r\n aspectRatio: 2,\r\n layout: {\r\n padding: {\r\n top: 20, // Always have room for the tooltip\r\n // left: 10,\r\n // right: 10,\r\n },\r\n },\r\n hover: {\r\n onHover: (event, elements) => {\r\n if (\r\n chart.tooltip._active &&\r\n chart.tooltip._active.length &&\r\n !this.chartInFocusMode\r\n ) {\r\n event.target.style.cursor = \"pointer\";\r\n var activeInd = chart.tooltip._active[0]._datasetIndex;\r\n for (var i = 0; i < chart.data.datasets.length; i++) {\r\n if (i !== activeInd) {\r\n chart.data.datasets[i].borderColor = fadedLineColor;\r\n } else {\r\n chart.data.datasets[i].borderColor = this.lineColor;\r\n let activeIndexNum = parseInt(activeInd) + 1;\r\n $(\".trending-topics__active-tooltip-topic\").text(\r\n // `${activeIndexNum}. ${chartData[activeInd].Topic}`\r\n `${chartData[activeInd].Topic}`\r\n );\r\n\r\n // Tooltip should be positioned above the top of the filled shape\r\n // Y offset is from the top, so whichever point is _smaller_ is highest\r\n $(\".trending-topics__active-tooltip\").css({\r\n opacity: 1,\r\n zIndex: 78,\r\n top: Math.round(chart.tooltip._active[0]._model.y) - 50,\r\n });\r\n }\r\n // update chart on last loop\r\n if (i === chart.data.datasets.length - 1) {\r\n chart.update();\r\n }\r\n }\r\n } else {\r\n event.target.style.cursor = \"default\";\r\n }\r\n },\r\n },\r\n\r\n scales: {\r\n xAxes: [\r\n {\r\n display: false,\r\n type: \"linear\",\r\n ticks: {\r\n min: 0,\r\n max: 4,\r\n beginAtZero: true,\r\n },\r\n },\r\n ], //this will remove all the x-axis grid lines\r\n yAxes: [\r\n {\r\n type: \"linear\",\r\n ticks: {\r\n min: 0,\r\n beginAtZero: true,\r\n },\r\n display: false, // hide y-axis grid lines\r\n },\r\n ],\r\n },\r\n },\r\n });\r\n\r\n //\r\n // Focus on individual topic when hovered line is clicked\r\n //\r\n chartCanvas.onmousedown = () => {\r\n //\r\n // CHART UPDATES\r\n //\r\n if (chart.tooltip._active && chart.tooltip._active.length) {\r\n if (this.lastDatasetIsFill) {\r\n resetChart(\r\n false,\r\n focusOnDataset(chart.tooltip._active[0]._datasetIndex)\r\n );\r\n } else {\r\n focusOnDataset();\r\n }\r\n }\r\n };\r\n\r\n var focusOnDataset = (focusIndex) => {\r\n this.chartInFocusMode = true;\r\n\r\n // Loose typing strikes again. Top Ten indexes are passed as string.\r\n // Convert to integer for proper comparison checks\r\n var activeInd = parseInt(\r\n focusIndex || chart.tooltip._active[0]._datasetIndex\r\n );\r\n\r\n if (this.lastDatasetIsFill) {\r\n resetChart(true);\r\n }\r\n\r\n var comparisonData = chartData[activeInd];\r\n\r\n // if a topic has worse traffic than last week, use the right fill\r\n let newFill =\r\n comparisonData.LastWeek <= comparisonData.ThisWeek\r\n ? fillColor\r\n : fillColorNegative;\r\n\r\n chart.data.datasets.push({\r\n backgroundColor: newFill,\r\n borderColor: this.lineColor,\r\n borderWidth: 2,\r\n data: [\r\n { x: 0, y: 0 },\r\n { x: 0.1, y: 0 },\r\n { x: 0.4, y: comparisonData.LastWeek * 0.05 },\r\n { x: 2, y: comparisonData.LastWeek },\r\n { x: 3.6, y: comparisonData.LastWeek * 0.05 },\r\n { x: 3.9, y: 0 },\r\n { x: 4, y: 0 },\r\n ],\r\n order: 1,\r\n fill: false,\r\n showLine: true,\r\n fillBetweenSet: activeInd,\r\n fillBetweenColor: newFill,\r\n cubicInterpolationMode: \"monotone\",\r\n });\r\n\r\n for (var i = 0; i < chart.data.datasets.length; i++) {\r\n let isLast = i === chart.data.datasets.length - 1;\r\n if (i === activeInd || isLast) {\r\n chart.data.datasets[i].borderColor = this.lineColor;\r\n } else {\r\n chart.data.datasets[i].borderColor = fadedLineColor;\r\n }\r\n\r\n if (isLast) {\r\n this.lastDatasetIsFill = true;\r\n chart.data.datasets[activeInd].order = 1;\r\n // chart.data.datasets[activeInd].fill = chart.data.datasets.length - 1;\r\n\r\n chart.update();\r\n\r\n // reset after draw to prevent future overlap\r\n chart.data.datasets[activeInd].order = 100;\r\n }\r\n }\r\n\r\n //\r\n // DOM UPDATES\r\n //\r\n var origPoint = chart.getDatasetMeta(activeInd).data;\r\n origPoint = origPoint[3]; // index 1 is the center (actual data) point\r\n var newPoint = chart.getDatasetMeta(chart.data.datasets.length - 1).data;\r\n newPoint = newPoint[3];\r\n\r\n let thisWeekOffsetY = 24;\r\n let lastWeekOffsetY = 24;\r\n if (Math.round(newPoint._model.y) > Math.round(origPoint._model.y)) {\r\n lastWeekOffsetY = -1;\r\n } else {\r\n thisWeekOffsetY = -1;\r\n }\r\n $(\".trending-topics__last-week-line\")\r\n .show()\r\n .css({\r\n width: $(\"#trending-topics\").width() / 2,\r\n left: $(\"#trending-topics\").width() / 2,\r\n opacity: 1,\r\n top: this.roundHalf(newPoint._model.y) - lastWeekOffsetY,\r\n width: \"50%\",\r\n zIndex: 77,\r\n })\r\n .addClass(\r\n lastWeekOffsetY < 0 ? \"trending-topics__last-week-line--bottom\" : \"\"\r\n );\r\n\r\n $(\".trending-topics__this-week-line\")\r\n .show()\r\n .css({\r\n width: $(\"#trending-topics\").width() / 2,\r\n left: $(\"#trending-topics\").width() / 2,\r\n opacity: 1,\r\n top: this.roundHalf(origPoint._model.y) - thisWeekOffsetY,\r\n width: \"50%\",\r\n zIndex: 77,\r\n })\r\n .addClass(\r\n thisWeekOffsetY < 0 ? \"trending-topics__this-week-line--bottom\" : \"\"\r\n );\r\n\r\n let activeIndexNum = parseInt(activeInd) + 1;\r\n $(\".trending-topics__active-tooltip-topic\").text(\r\n // `${activeIndexNum}. ${chartData[activeInd].Topic}`\r\n `${chartData[activeInd].Topic}`\r\n );\r\n $(\".trending-topics__active-tooltip-cta\").attr(\r\n \"href\",\r\n chartData[activeInd].TopicUrl\r\n );\r\n $(\".trending-topics__active-tooltip-cta\").attr(\r\n \"href\",\r\n chartData[activeInd].TopicUrl\r\n );\r\n\r\n // Tooltip should be positioned above the top of the filled shape\r\n // Y offset is from the top, so whichever point is _smaller_ is highest\r\n $(\".trending-topics__active-tooltip\").css({\r\n opacity: 1,\r\n zIndex: 78,\r\n top:\r\n Math.round(\r\n newPoint._model.y < origPoint._model.y\r\n ? newPoint._model.y\r\n : origPoint._model.y\r\n ) - 50,\r\n });\r\n $(\r\n \".trending-topics__active-tooltip-cta, .trending-topics__close-topic\"\r\n ).show();\r\n };\r\n\r\n //\r\n // Reset chart line colors when mouse leave chart (aka nothing is hovered)\r\n //\r\n chartCanvas.addEventListener(\"mouseleave\", (e) => {\r\n resetChart();\r\n });\r\n //\r\n // Reset chart line colors when an focussed target is closed\r\n //\r\n $(\".js-reset-chart\").on(\"click\", () => resetChart(true));\r\n\r\n const resetChart = (forceReset, callback, params) => {\r\n // For performance reasons, we only need to reset the chart if the chart\r\n // is currently \"focusing\" on a particular topic,\r\n // or if the method is called with `forceReset`\r\n if (!this.chartInFocusMode || forceReset === true) {\r\n // If the last chart dataset is for displaying a fill (used when comparing\r\n // last week to prior average for a topic), we should remove that from\r\n // the array since that topic is no longer active.\r\n if (this.lastDatasetIsFill) {\r\n chart.data.datasets.pop();\r\n this.lastDatasetIsFill = false;\r\n }\r\n\r\n // chart is no longer focussing on a particular topic\r\n this.chartInFocusMode = false;\r\n\r\n // reset DOM label styling\r\n $(\r\n \".trending-topics__active-tooltip, .trending-topics__this-week-line, .trending-topics__last-week-line\"\r\n ).css({\r\n opacity: 0,\r\n zIndex: -1,\r\n });\r\n\r\n // last/this week labels also need to be hidden and have sizing reset\r\n $(\".trending-topics__this-week-line, .trending-topics__last-week-line\")\r\n .hide()\r\n .css(\"width\", \"200px\");\r\n\r\n // reset DOM tooltip styling\r\n $(\r\n \".trending-topics__active-tooltip-cta, .trending-topics__close-topic\"\r\n ).hide();\r\n\r\n // whichever of the last/this week labels are on the \"bottom\" of the chart,\r\n // remove the styling classes so the next active one displays correctly\r\n $(\r\n \".trending-topics__last-week-line--bottom, .trending-topics__this-week-line--bottom\"\r\n ).removeClass(\r\n \"trending-topics__last-week-line--bottom trending-topics__this-week-line--bottom\"\r\n );\r\n\r\n // reset the color of all dataset lines to the default color, and\r\n // remove any fills\r\n for (var i = 0; i < chart.data.datasets.length; i++) {\r\n chart.data.datasets[i].borderColor = this.lineColor;\r\n // chart.data.datasets[i].fill = false;\r\n }\r\n\r\n // redraw the chart with updated datasets\r\n chart.update();\r\n\r\n if (callback) callback(params);\r\n }\r\n };\r\n\r\n // Allows us to control how many table rows are revealed at a time\r\n var revealTableRows = ($table, addRows) => {\r\n if (addRows) this.ttTableRevealedRows += addRows;\r\n let tableRows = $table.find(\"tr\");\r\n if (tableRows.length < this.ttTableRevealedRows) {\r\n $(\".js-tt-more-rows\").hide();\r\n }\r\n tableRows.slice(0, this.ttTableRevealedRows).show();\r\n };\r\n\r\n // Table builder\r\n $(document).ready(() => {\r\n var $ttTableBody = $(\".trending-topics__table tbody\");\r\n var $ttTopTen = $(\".trending-topics__top-ten\");\r\n\r\n this.lineColor = ctx.createLinearGradient(\r\n 0,\r\n 0,\r\n chartCanvas.getBoundingClientRect().width,\r\n 0\r\n );\r\n this.lineColor.addColorStop(0, \"#007FA3\");\r\n this.lineColor.addColorStop(0.5, \"#9CBB62\");\r\n this.lineColor.addColorStop(1, \"#007FA3\");\r\n\r\n fetch(\"/api/TrendingTopics/get?page=0&perpage=999999\")\r\n .then((response) => {\r\n return response.json();\r\n })\r\n .then((data) => {\r\n chartData = data;\r\n chartData.forEach((topic, ind) => {\r\n // populate chart with data\r\n // stash the original index of each dataset for reference later\r\n chartData[ind].origIndex = ind;\r\n\r\n // add each item to the chart itself\r\n chart.data.datasets.push({\r\n backgroundColor: fillColor,\r\n borderColor: this.lineColor,\r\n borderWidth: 1,\r\n data: [\r\n { x: 0, y: 0 },\r\n { x: 0.1, y: 0 },\r\n { x: 0.4, y: topic.ThisWeek * 0.05 },\r\n { x: 2, y: topic.ThisWeek },\r\n { x: 3.6, y: topic.ThisWeek * 0.05 },\r\n { x: 3.9, y: 0 },\r\n { x: 4, y: 0 },\r\n ],\r\n lineTension: 0.4,\r\n fill: false,\r\n showLine: true,\r\n sourceId: ind,\r\n order: 100,\r\n fillBetweenColor: fillColor,\r\n cubicInterpolationMode: \"monotone\",\r\n });\r\n\r\n if (chartData.length - 1 == ind) {\r\n chart.update();\r\n\r\n var sortedByIndex = chartData;\r\n sortedByIndex.sort(function (topicA, topicB) {\r\n return topicA.Index - topicB.Index;\r\n });\r\n sortedByIndex.reverse();\r\n setTimeout(() => {\r\n sortedByIndex.forEach(function (elm, ind, arr) {\r\n $ttTableBody.append(\r\n `${elm.Topic}${elm.ThisWeek}%${elm.LastWeek}%`\r\n );\r\n if (ind < 10) {\r\n $ttTopTen.append(\r\n `
  • ${elm.Topic}
  • `\r\n );\r\n }\r\n });\r\n\r\n // Focus a chart line from the Top Ten list\r\n $(\".js-top-ten-click\").on(\"click\", function () {\r\n if ($(this).attr(\"data-dataset-ind\")) {\r\n resetChart(\r\n true,\r\n focusOnDataset,\r\n $(this).attr(\"data-dataset-ind\")\r\n );\r\n }\r\n });\r\n\r\n revealTableRows($ttTableBody, 10);\r\n }, 250);\r\n }\r\n });\r\n });\r\n\r\n $(\".js-tt-more-rows\").on(\"click\", function () {\r\n revealTableRows($ttTableBody, 10);\r\n });\r\n\r\n $(\".js-activate-table\").on(\"click\", function () {\r\n $(\".js-activate-table\").addClass(\r\n \"trending-topics__view-toggle--active\"\r\n );\r\n $(\".js-activate-chart\").removeClass(\r\n \"trending-topics__view-toggle--active\"\r\n );\r\n $(\".trending-topics__chart-wrapper\").addClass(\"is-hidden\");\r\n $(\".trending-topics__table\").addClass(\"is-active\");\r\n });\r\n $(\".js-activate-chart\").on(\"click\", function () {\r\n $(\".js-activate-table\").removeClass(\r\n \"trending-topics__view-toggle--active\"\r\n );\r\n $(\".js-activate-chart\").addClass(\r\n \"trending-topics__view-toggle--active\"\r\n );\r\n $(\".trending-topics__chart-wrapper\").removeClass(\"is-hidden\");\r\n $(\".trending-topics__table\").removeClass(\"is-active\");\r\n });\r\n });\r\n }\r\n}\r\n","import {\r\n defaultFacetedSearchFactory,\r\n defaultDynamicContentFactory\r\n} from \"../thread/search/index.js\";\r\n\r\nimport { createApp } from \"../thread/search/factory.js\";\r\n\r\n/**\r\n * only init if results are included\r\n * TODO remove jquery dependecy!!\r\n */\r\nexport default function initTableSearch() {\r\n const searchResults = document.querySelector(\".js-search-results\");\r\n if (searchResults) {\r\n const searchId = searchResults.getAttribute(\"data-search-id\");\r\n const searchApp = createApp(defaultFacetedSearchFactory(searchId));\r\n searchApp();\r\n }\r\n\r\n const dynamicResults = document.querySelectorAll(\".js-dynamic-results\");\r\n const dynamicFilterBar = document.querySelector(\".js-dynamic-filter-bar\");\r\n\r\n if (dynamicResults && dynamicFilterBar) {\r\n [...dynamicResults].forEach(function(item) {\r\n const searchId = item.getAttribute(\"data-search-id\");\r\n const filterUid = item.parentElement\r\n .querySelector(\".js-dynamic-filter-bar\")\r\n .getAttribute(\"id\");\r\n const containerUid = item.getAttribute(\"id\");\r\n const dynamicContentApp = createApp(\r\n defaultDynamicContentFactory(\r\n searchId,\r\n `#${containerUid}`,\r\n `#${filterUid}`\r\n )\r\n );\r\n dynamicContentApp();\r\n });\r\n }\r\n}\r\n","import \"./polyfill\";\r\nimport $ from \"jquery\";\r\nimport \"picturefill\";\r\nimport SmoothScroll from \"smooth-scroll\";\r\n\r\nimport { createApp } from \"./thread/search/factory\";\r\nimport { defaultFacetedSearchFactory } from \"./thread/search\";\r\nimport { PrimaryNav } from \"./thread/navigation/PrimaryNav\";\r\nimport { SearchNav } from \"./thread/navigation/SearchNav.js\";\r\nimport { UtilityNav } from \"./thread/navigation/UtilityNav.js\";\r\nimport { Popup } from \"./ULI/Popup.js\";\r\nimport { ViewAllExpand } from \"./thread/ViewAllExpand\";\r\nimport { ImageSlider } from \"./thread/ImageSlider\";\r\nimport richText from \"./thread/richText.js\";\r\nimport { CardSlider } from \"./ULI/CardSlider\";\r\nimport { Breadcrumbs } from \"./ULI/Breadcrumbs\";\r\nimport { Accordion } from \"./thread/accordion.js\";\r\nimport { WidthAccordion } from \"./thread/widthAccordion.js\";\r\nimport { CardListToggle } from \"./ULI/CardListToggle.js\";\r\nimport { CookieBanner } from \"./ULI/CookieBanner\";\r\nimport { TrendingNav } from \"./ULI/TrendingNav\";\r\nimport { AdvancedSearch } from \"./ULI/AdvancedSearch\";\r\nimport { StickyHeader } from \"./thread/navigation/StickyHeader\";\r\nimport { MobileMenu } from \"./ULI/MobileMenu\";\r\nimport { SlideIn } from \"./ULI/SlideIn\";\r\nimport { ScrollToggle } from \"./ULI/ScrollToggle\";\r\nimport { ForYou } from \"./ULI/ForYou\";\r\nimport \"./ULI/CoveoOverride\";\r\nimport { TrendingTopics } from \"./ULI/TrendingTopics\";\r\nimport { LoginForm } from \"./ULI/LoginForm\";\r\nimport { SignUp } from \"./ULI/SignUp\";\r\nimport { TakeoverModal } from \"./ULI/TakeoverModal\";\r\nimport { TranscriptVideo } from \"./ULI/TranscriptVideo\";\r\nimport { TooltipToggle } from \"./ULI/TooltipToggle\";\r\nimport \"./ULI/Recommendations\";\r\nimport initTableSearch from \"./ULI/initTableSearch.js\";\r\nimport { LineChart } from \"./ULI/LineChart\";\r\nimport { PaginatedFeatureList } from \"./ULI/PaginatedFeatureList.js\";\r\nimport LinkScroll from \"./ULI/LinkScroll.js\";\r\nimport PosterVideo from \"./ULI/PosterVideo.js\";\r\n\r\nimport renderBookmarkList from \"../../js/Components/BookmarkList/renderBookmarkList.jsx\";\r\nimport renderBookmarkButtons from \"../../js/Components/BookmarkButton/renderBookmarkButtons.jsx\";\r\n\r\nimport initTabbedContent from \"../../js/Components/MarketContent/initTabbedContent.js\";\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n renderBookmarkList();\r\n renderBookmarkButtons();\r\n initTabbedContent();\r\n LinkScroll();\r\n PosterVideo();\r\n\r\n [...document.querySelectorAll(\".js-accordion\")].forEach(Accordion);\r\n\r\n document.querySelectorAll(\".js-info-tooltip\").forEach((tooltip) => {\r\n new TooltipToggle($(tooltip));\r\n });\r\n\r\n [...document.querySelectorAll(\".js-horizontal-accordion\")].forEach((el) => {\r\n new WidthAccordion(el);\r\n });\r\n\r\n [...document.querySelectorAll(\".js-utility-nav\")].forEach((el) => {\r\n new UtilityNav(el);\r\n });\r\n\r\n [...document.querySelectorAll(\".trending-topics__chart\")].forEach((el) => {\r\n const ttopics = new TrendingTopics($(el));\r\n });\r\n\r\n [...document.querySelectorAll(\".js-line-chart__wrapper\")].forEach((el) => {\r\n const charts = new LineChart($(el));\r\n });\r\n\r\n // Slideshows\r\n\r\n // do not intialize slideshows inside\r\n // page editor\r\n if (!$(\"body\").hasClass(\"is-page-editor\")) {\r\n const slideshows = $.makeArray($(\".slideshow .js-gallery\")).map((el) => {\r\n return new ImageSlider($(el), {});\r\n });\r\n\r\n const cardSliders = $.makeArray($(\".js-card-slider\")).map((el) => {\r\n return new CardSlider($(el), {});\r\n });\r\n\r\n const paginatedFeatureLists = $.makeArray(\r\n $(\".js-paginated-feature-list\"),\r\n ).map((el) => {\r\n return new PaginatedFeatureList($(el), {});\r\n });\r\n\r\n const forYouSliders = $.makeArray($(\".js-for-you-slider\")).map((el) => {\r\n return new ForYou($(el), {});\r\n });\r\n }\r\n\r\n // Cookie Banner\r\n const $cookieBanner = $(\".js-accept-cookies\");\r\n if ($cookieBanner.length) {\r\n const cookiesBanner = new CookieBanner($(\".js-accept-cookies\"));\r\n }\r\n\r\n // Tooltip\r\n const $translation = $(\".js-translation-tooltip\");\r\n if ($translation.length) {\r\n const translation = new TooltipToggle($translation);\r\n }\r\n\r\n // Takeover Modal\r\n const $takeoverModal = $(\".js-takeover-modal\");\r\n if ($takeoverModal.length) {\r\n const modal = new TakeoverModal($takeoverModal);\r\n }\r\n\r\n //Slide In\r\n const $slideIn = $(\".js-slide-in\");\r\n if ($slideIn.length) {\r\n const slideIn = new SlideIn($slideIn);\r\n }\r\n});\r\n\r\nrichText();\r\n\r\n[...document.querySelectorAll(\".js-trending-nav\")].forEach((nav) => {\r\n new TrendingNav($(nav));\r\n});\r\n\r\nvar fixedHeader =\r\n $(\".js-sticky-header\").css(\"display\") != \"none\"\r\n ? \".js-sticky-header\"\r\n : \".mobile-header\";\r\nconst scroll = new SmoothScroll(\".js-trending-nav a\", {\r\n speed: 300,\r\n header: fixedHeader,\r\n});\r\n\r\nlet profileMenu = null;\r\nif ($(\".js-profile-accordion\").length) {\r\n profileMenu = new Accordion(document.querySelector(\".js-profile-accordion\"));\r\n\r\n document.querySelector(\"body\").addEventListener(\"click\", (e) => {\r\n if (!profileMenu.el.contains(e.target)) {\r\n profileMenu.toggleContent(false);\r\n }\r\n });\r\n}\r\n\r\nlet languageSelector = null;\r\nif ($(\".js-language-selector\").length) {\r\n languageSelector = new Accordion(\r\n document.querySelector(\".js-language-selector\"),\r\n );\r\n\r\n document.querySelector(\"body\").addEventListener(\"click\", (e) => {\r\n if (!languageSelector.el.contains(e.target)) {\r\n languageSelector.toggleContent(false);\r\n }\r\n });\r\n}\r\n\r\nlet mlanguageSelector = null;\r\nif ($(\".js-mobile-language-selector\").length) {\r\n mlanguageSelector = new Accordion(\r\n document.querySelector(\".js-mobile-language-selector\"),\r\n );\r\n}\r\n\r\nlet quickSearch = null;\r\nif ($(\".js-quick-search\").length) {\r\n quickSearch = new Accordion(document.querySelector(\".js-quick-search\"));\r\n}\r\n\r\nif ($(\".js-scroll-toggle\").length) {\r\n const scrollToggles = new ScrollToggle($(\".js-scroll-toggle\"));\r\n}\r\n\r\nlet accordions = [profileMenu, languageSelector];\r\nconst $header = $(\".js-sticky-header\");\r\nif ($header.length) {\r\n const stickyHeader = new StickyHeader($header, accordions);\r\n}\r\n\r\nif ($(\".js-facet-accordion\").length) {\r\n let facetAccordion = new Accordion(\r\n document.querySelector(\".js-facet-accordion\"),\r\n );\r\n facetAccordion.toggleContent(true);\r\n window.addEventListener(\"resize\", (e) => {\r\n facetAccordion.toggleContent(true);\r\n });\r\n}\r\n\r\nconst $mobileMenu = $(\".js-mobile-menu\");\r\nif ($mobileMenu) {\r\n const mobileMenu = new MobileMenu($mobileMenu);\r\n}\r\n\r\n/*\r\n\r\nconst $transcript = $(\".js-transcript-video\");\r\nif ($transcript.length) {\r\n const transcript = new TranscriptVideo($transcript);\r\n}\r\n*/\r\n\r\n[...document.querySelectorAll(\".js-popup\")].forEach((el) => {\r\n const props = {\r\n menuButton: \".js-popup-button\",\r\n menuContainer: \".js-popup-content\",\r\n parent: el,\r\n };\r\n\r\n new Popup(props);\r\n});\r\n\r\n[...document.querySelectorAll(\".js-primary-nav\")].forEach((el) => {\r\n new PrimaryNav(el);\r\n});\r\n\r\n//SearchNav\r\n[...document.querySelectorAll(\".js-search-nav\")].forEach((el) => {\r\n new SearchNav(el);\r\n});\r\n\r\n// Expandable Listings\r\nconst viewAllables = $.makeArray($(\".js-view-all-expand\")).map((el) => {\r\n return new ViewAllExpand($(el));\r\n});\r\n\r\n$(\".js-link\").each((i, link) => {\r\n const $link = $(link);\r\n\r\n $link.on(\"click\", () => {\r\n window.location.href = $link.data(\"href\");\r\n });\r\n});\r\n\r\nif ($(\".js-topic-nav\").length) {\r\n if ($(window).innerWidth() < 680) {\r\n $(\".js-topic-nav\").removeClass(\"is-open\");\r\n }\r\n}\r\n\r\n[...document.querySelectorAll(\".js-breadcrumbs\")].forEach(Breadcrumbs);\r\n\r\n[...document.querySelectorAll(\".js-dynamic-content\")].forEach((el) => {\r\n const toggle = new CardListToggle($(el));\r\n});\r\n\r\n[...document.querySelectorAll(\".js-advanced-search\")].forEach((el) => {\r\n const link = new AdvancedSearch($(el));\r\n});\r\n\r\n[...document.querySelectorAll(\".js-login-form\")].forEach((el) => {\r\n const form = new LoginForm($(el));\r\n});\r\n\r\n[...document.querySelectorAll(\".js-sign-up\")].forEach((el) => {\r\n const signup = new SignUp($(el));\r\n});\r\n\r\ninitTableSearch();\r\n","(function (ElementProto) {\r\n if (typeof ElementProto.matches !== \"function\") {\r\n ElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\r\n var element = this;\r\n var elements = (element.document || element.ownerDocument).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 svg4everybody from \"svg4everybody\";\r\nimport \"./popstate-event\";\r\n\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\r\n function PopStateEvent ( event, params ) {\r\n params = params || { bubbles: false, cancelable: false, state: undefined };\r\n var evt = document.createEvent( 'PopStateEvent' );\r\n evt.initPopStateEvent( event, params.state, params.bubbles, params.cancelable );\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 }\r\n catch(error) {\r\n window.PopStateEvent = PopStateEvent;\r\n }\r\n})();\r\n","import $ from 'jquery';\r\nimport \"./custom-vendor/slick-carousel/slick/slick\";\r\n\r\nexport class ImageSlider {\r\n constructor($el, conf) {\r\n this.$el = $el;\r\n let slickConf = Object.assign(this.slickDefaults(), conf);\r\n\r\n // bind event prior to slick init\r\n this.bindEvents();\r\n this.$el.slick(slickConf);\r\n }\r\n\r\n bindEvents() {\r\n // bind an event on the arrows to de-focus them when\r\n // you mouse out, so the focus state doesn't get stuck\r\n this.$el.on('mouseleave', '.slick-next, .slick-prev', event => {\r\n event.currentTarget.blur();\r\n });\r\n }\r\n\r\n slickDefaults() {\r\n return {\r\n dots: true,\r\n infinite: true,\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\n}\r\n\r\n","import $ from 'jquery';\r\n\r\nexport class ViewAllExpand {\r\n constructor($el) {\r\n this.$el = $el;\r\n this.$button = $el.find('.js-more');\r\n this.$expandTarget = $el.find('.js-expand-target');\r\n \r\n this.bindEvents();\r\n }\r\n\r\n bindEvents() {\r\n this.$el.on('click', '.js-more', (event) => this.expand(event));\r\n }\r\n\r\n expand(event) {\r\n event.preventDefault();\r\n this.$expandTarget\r\n .slideDown(200)\r\n .attr('aria-expanded', true);\r\n this.$button.hide();\r\n }\r\n \r\n}","// Expected markup.\r\n// The link and content need to be nested within the js-accordion element, but can be placed anywhere in the code.\r\n//\r\n//
    \r\n//
    \r\n// \r\n//
    \r\n//
    \r\n// Content to show and hide\r\n//
    \r\n//
    \r\n\r\nexport function Accordion(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 }\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 }\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","// Extract current breakpoint name as string from DOM\r\n// More details: https://www.lullabot.com/articles/importing-css-breakpoints-into-javascript\r\nexport const breakpoint = () => {\r\n return window\r\n .getComputedStyle(document.querySelector(\"body\"), \"::before\")\r\n .getPropertyValue(\"content\")\r\n .replace(/\\\"/g, \"\");\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 *\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 => this.handleClickOutside(e));\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","/*\r\n _ _ _ _\r\n ___| (_) ___| | __ (_)___\r\n/ __| | |/ __| |/ / | / __|\r\n\\__ \\ | | (__| < _ | \\__ \\\r\n|___/_|_|\\___|_|\\_(_)/ |___/\r\n |__/\r\n\r\n Version: 1.8.0\r\n Author: Ken Wheeler\r\n Website: http://kenwheeler.github.io\r\n Docs: http://kenwheeler.github.io/slick\r\n Repo: http://github.com/kenwheeler/slick\r\n Issues: http://github.com/kenwheeler/slick/issues\r\n\r\n */\r\n/* global window, document, define, jQuery, setInterval, clearInterval */\r\n;(function(factory) {\r\n 'use strict';\r\n if (typeof define === 'function' && define.amd) {\r\n define(['jquery'], factory);\r\n } else if (typeof exports !== 'undefined') {\r\n module.exports = factory(require('jquery'));\r\n } else {\r\n factory(jQuery);\r\n }\r\n\r\n}(function($) {\r\n 'use strict';\r\n var Slick = window.Slick || {};\r\n\r\n Slick = (function() {\r\n\r\n var instanceUid = 0;\r\n\r\n function Slick(element, settings) {\r\n\r\n var _ = this, dataSettings;\r\n\r\n _.defaults = {\r\n accessibility: true,\r\n adaptiveHeight: false,\r\n appendArrows: $(element),\r\n appendDots: $(element),\r\n arrows: true,\r\n asNavFor: null,\r\n prevArrow: '',\r\n nextArrow: '',\r\n autoplay: false,\r\n autoplaySpeed: 3000,\r\n centerMode: false,\r\n centerPadding: '50px',\r\n cssEase: 'ease',\r\n customPaging: function(slider, i) {\r\n return $('\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 \r\n {value.name} ({value.count})\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 \r\n {value.name} ({value.count})\r\n \r\n \r\n
  • \r\n );\r\n };\r\n\r\n return (\r\n
      \r\n {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 {values.map(val => this.renderValueItem(val, recursionLevel))}\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
    {group.label}
    \r\n {this.renderOpenButton(group)}\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 {this.props.dictionary.clearLabel}\r\n \r\n
    \r\n )}\r\n {this.renderValues(group.values, 0)}\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, object } = 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 numFacetsSelectedInGroup: number.isRequired,\r\n dictionary: object\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 FacetGroup from \"./FacetGroup.jsx\";\r\nimport {\r\n closeFilters,\r\n setFiltersOpenDirection,\r\n manageContainerWhitespace\r\n} from \"../filterSlider\";\r\nimport AnimateHeight from \"react-animate-height\";\r\n\r\nexport default class FacetList extends React.Component {\r\n constructor(props) {\r\n super(props);\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 renderFacetGroups() {\r\n return this.props.facets.map((group, i) => {\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 const numFacetsSelectedInGroup = group.values.reduce((acc, curr) => {\r\n return curr.selected ? acc + 1 : acc;\r\n }, 0);\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 return (\r\n
    \r\n {facetGroups}\r\n {this.renderClearAll()}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst { string, arrayOf, bool, shape, number, oneOfType, func, object } = PropTypes;\r\nFacetList.propTypes = {\r\n dictionary: object,\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\n R.equals(true),\r\n R.view(groupLens(groupId))\r\n ),\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\n R.pipe(\r\n closeAllGroups,\r\n openGroup(groupId)\r\n )(this.state)\r\n );\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 &&\r\n 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\r\n return (\r\n
    \r\n {title &&
    {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 = ({ items, groups, onChange, onClear, label, showChildren }) => {\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 &&\r\n !!item.childValues.length &&\r\n 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 && groups.map( (g, i) => ())}\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 = this.props.showSpinner && this.props.loading && this.state.initiatedLoad;\r\n return (\r\n
    \r\n \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\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 \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\nimport cx from \"classnames\";\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 onPageClick(currentPage - 1, isFirst)}\r\n disabled={isFirst}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {block.map(page => {\r\n return getPage(page.label, page.num, page.current);\r\n })}\r\n onPageClick(currentPage + 1, isLast)}\r\n disabled={isLast}\r\n >\r\n \r\n \r\n \r\n \r\n \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 * as R from \"ramda\";\r\nimport * as RA from \"ramda-adjunct\";\r\nimport PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport moment from \"moment\";\r\nimport cx from \"classnames\";\r\nimport AnimateHeight from \"react-animate-height\";\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 state = {\r\n height: 0\r\n };\r\n\r\n componentDidMount() {\r\n this.itemWrapper.className = this.itemWrapper.className + \" is-visible\";\r\n }\r\n\r\n formatDate(dateStr) {\r\n const date = new Date(dateStr);\r\n return moment(date).format(\"MMMM Do, YYYY\");\r\n }\r\n\r\n toggle = () => {\r\n const { height } = this.state;\r\n\r\n this.setState({\r\n height: height === 0 ? \"auto\" : 0\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n title,\r\n body,\r\n contentType,\r\n date,\r\n authors,\r\n displayUrl,\r\n contentUrl,\r\n location,\r\n data,\r\n additionalData\r\n } = this.props;\r\n\r\n const { height } = this.state;\r\n\r\n const MOBILE_BREAKPOINT = 911;\r\n\r\n return this.props.windowWidth > MOBILE_BREAKPOINT ? (\r\n (this.itemWrapper = el)}\r\n >\r\n \r\n {Object.keys(data).map(key => {\r\n return Array.isArray(data[`${key}`]) &&\r\n data[`${key}`].length > 0 ? (\r\n \r\n
      \r\n {data[`${key}`].map(item => (\r\n
    • {item}
    • \r\n ))}\r\n
    \r\n \r\n ) : (\r\n {data[`${key}`]}\r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {additionalData.map((data, i) =>\r\n !data.cta ? (\r\n \r\n
    \r\n {data.label}\r\n
    \r\n
    \r\n
    \r\n ) : data.cta.href !== \"\" && data.cta.href !== null && data.cta.href !== undefined ? (\r\n
    \r\n \r\n {data.cta.text}{\" \"}\r\n \r\n \r\n \r\n \r\n
    \r\n ): null\r\n )}\r\n
    \r\n
    \r\n \r\n \r\n \r\n ) : (\r\n
  • \r\n (this.itemWrapper = el)}\r\n >\r\n {Object.keys(data).map((key, i) => {\r\n return Array.isArray(data[`${key}`]) &&\r\n data[`${key}`].length > 0 ? (\r\n \r\n
    \r\n {key}\r\n
    \r\n
      \r\n {data[`${key}`].map(item => (\r\n
    • {item}
    • \r\n ))}\r\n
    \r\n \r\n ) : (\r\n \r\n
    \r\n {key}\r\n
    \r\n
    {data[`${key}`]}
    \r\n \r\n );\r\n })}\r\n \r\n \r\n {height !== 0 ? {this.props.dictionary.lessInfoLabel} : {this.props.dictionary.moreInfoLabel}}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {additionalData.map((data, i) =>\r\n !data.cta ? (\r\n \r\n
    \r\n {data.label}\r\n
    \r\n
    \r\n
    \r\n ) : data.cta.href !== \"\" && data.cta.href !== null && data.cta.href !== undefined ? (\r\n
    \r\n \r\n {data.cta.text}{\" \"}\r\n \r\n \r\n \r\n \r\n
    \r\n ): null\r\n )}\r\n
    \r\n
    \r\n
  • \r\n );\r\n }\r\n}\r\n\r\nconst { arrayOf, string, number, shape, object } = PropTypes;\r\nResultItem.propTypes = {\r\n dictionary: object,\r\n date: string,\r\n authors: arrayOf(string),\r\n title: string,\r\n body: string,\r\n contentUrl: string,\r\n displayUrl: string,\r\n contentType: string,\r\n location: string,\r\n image1x1: string,\r\n windowWidth: number.isRequired,\r\n data: object.isRequired,\r\n additionalData: arrayOf(\r\n shape({\r\n label: string,\r\n text: string,\r\n cta: shape({ href: string, text: string })\r\n })\r\n )\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 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);\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 >\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, { useEffect, useState } 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 { useDebouncedCallback } from \"use-debounce\";\r\nimport {\r\n RESULTS_DISPLAY_REFRESH,\r\n RESULTS_DISPLAY_APPEND\r\n} from \"../redux/resultsDisplay\";\r\nimport Select from \"react-select\";\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 setPerPage\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 const MOBILE_BREAKPOINT = 911;\r\n\r\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\r\n\r\n const handleResize = useDebouncedCallback(\r\n () => setWindowWidth(window.innerWidth),\r\n 400\r\n );\r\n\r\n const perPageOptions = [\r\n { value: 5, label: \"5\" },\r\n { value: 10, label: \"10\" },\r\n { value: 25, label: \"25\" },\r\n { value: 50, label: \"50\" },\r\n { value: 100, label: \"100\" }\r\n ].filter(option => option.value <= totalResults);\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, [handleResize]);\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-table__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 Filter Your Results\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return windowWidth > MOBILE_BREAKPOINT ? (\r\n \r\n {!shouldShowNoResults && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {loading && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {shouldShowNoResults && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {results.map((item, i) => (\r\n \r\n ))}\r\n {!shouldShowNoResults && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n
    {dictionary.noResultsLabel}
    \r\n
    \r\n \r\n
    \r\n {shouldShowPager ? renderPagingControl() : null}\r\n
    \r\n
    \r\n {dictionary.showPerPageLabel}  \r\n {\r\n const width = \"35px\";\r\n return { ...provided, width };\r\n }\r\n }}\r\n className=\"search-table__per-page-selector\"\r\n value={{\r\n value: query.perPage,\r\n label: `${query.perPage}`\r\n }}\r\n isSearchable={false}\r\n options={perPageOptions}\r\n onChange={valueObj => setPerPage(valueObj.value)}\r\n />\r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n {!shouldShowNoResults && (\r\n
      \r\n {results.map((item, i) => (\r\n \r\n ))}\r\n
    \r\n )}\r\n {shouldShowNoResults && (\r\n
    \r\n {dictionary.noResultsLabel}\r\n
    \r\n )}\r\n
    \r\n {shouldShowPager ? renderPagingControl() : null}\r\n
    \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 setPerPage: func.isRequired\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 dictionary\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 {value.name}\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 {dictionary.showingLabel} \r\n {resultsRange} \r\n {dictionary.resultsInfoSeparator} \r\n {totalResults} \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 dictionary: object\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 {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\nconst SortBar = ({ sorters, handleSortClick }) => {\r\n return sorters.map(sorter => {\r\n let sorterClass = classnames(\"search-results__sorter\", {\r\n \"is-active\": sorter.isActive\r\n });\r\n return (\r\n \r\n {sorter.value === \"policytypes\" ? (\r\n \r\n {sorter.label}\r\n \r\n ) : (\r\n \r\n activateOrToggleSorter(sorter.id, sorters, handleSortClick)\r\n }\r\n disabled={sorter.value === \"policytypes\"}\r\n type=\"button\"\r\n className=\"search-results__sort-btn\"\r\n >\r\n {sorter.label}\r\n {sorter.direction && sorter.value !== \"policytypes\" && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n )}\r\n \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 facets: state.facets,\r\n numOpenGroups: state.numOpenGroups,\r\n mobileFacetsShown: state.mobileFacetsShown,\r\n dictionary: state.dictionary\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(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(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 loadNewPerPage,\r\n loadFacetChange,\r\n showMobileFacets,\r\n loadNewPage\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 setPerPage: perPage => {\r\n dispatch(loadNewPerPage(perPage));\r\n }\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(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(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(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\", { state: History.state });\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 Thread 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.map(n => document.querySelector(n), R.keys(app.mountNodes)).length) {\r\n throw new Error(\r\n \"Could not initialize Thread 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__inner\")) {\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(\".facets\");\r\n}\r\n\r\nfunction filtersAreOpen(filtersWrapper) {\r\n return filtersWrapper.classList.contains(\"is-open\");\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\nconst itemsPerPage = window.threadSearchConfigs && window.threadSearchConfigs[0] ? window.threadSearchConfigs[0].itemsPerPage : 5;\r\nconst perPageInitialState = R.assocPath([\"query\", \"perPage\"], itemsPerPage, defaultInitialState);\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 perPageInitialState,\r\n R.pipe(\r\n applyExternalConfig(window.threadSearchConfigs, 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 =>\r\n R.pipe(\r\n nodelessDefaultFactory(searchId),\r\n withoutQueryStringRouting(),\r\n withNode(\".js-dynamic-results\", ),\r\n withNode(\r\n \".js-dynamic-filter-bar\",\r\n \r\n )\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 = 2;\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\n\r\n\r\nexport default function configureStore(rootReducer, initialState = {}, middlewares = {}) {\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 ? window.devToolsExtension() : x => x;\r\n\r\n // build our store!\r\n return createStore(rootReducer, initialState, compose(middlewareEnhancer, devToolEnhancer));\r\n}\r\n","// http://redux.js.org/docs/advanced/Middleware.html\r\nimport URI from \"urijs\";\r\n\r\nconst URL_INIT = \"ROUTING/URL_INIT\";\r\n\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(mapStateToUrl, handleUrlChange, 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 ? URI(window.location).search(true) : undefined;\r\n\r\n return store => next => {\r\n\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\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(() => { shouldReplace = false; });\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\r\n // our augmented dispatch function\r\n const dispatch = action => {\r\n\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 = mapStateToUrl(store.getState());\r\n\r\n // .search uses a ? in the url\r\n const url = URI.decode(URI(window.location.href).search(params).toString());\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 }\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}","/** @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 {RESULTS_DISPLAY_APPEND, RESULTS_DISPLAY_REFRESH} 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.threadSearchConfigs)\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(\"Search: applyExternalConfig for initialState received a null or undefined config object. No changes applied.\");\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 = [\r\n \"q\",\r\n \"sortBy\",\r\n \"sortOrder\",\r\n \"page\"\r\n ];\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\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 = [\r\n \"q\",\r\n \"sortOrder\",\r\n \"sortBy\",\r\n \"page\"\r\n ];\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\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 page: castToInt\r\n }, queryParams);\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(mergeQueryParams(queryParams, newFacets, preSelectedFacets));\r\n}\r\n\r\n","import * as R from \"ramda\";\r\nimport {\r\n RESULTS_DISPLAY_APPEND,\r\n RESULTS_DISPLAY_REFRESH\r\n} from \"../resultsDisplay\";\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\nexport const SET_PER_PAGE = \"SEARCH/SET_PER_PAGE\";\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\nexport function setPerPage(numPerPage) {\r\n return {\r\n type: SET_PER_PAGE,\r\n payload: numPerPage\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 fetchSearchResults(url, R.merge(query, facets))\r\n .then(response => {\r\n dispatch(loadSuccess(response, resultsDisplay, mapResponseToState));\r\n })\r\n .fail(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\r\nexport function loadNewPerPage(perPage) {\r\n return dispatch => {\r\n dispatch(changePage(1));\r\n dispatch(setPerPage(perPage));\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 SET_PER_PAGE\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 [SET_PER_PAGE]: setPerPage\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\r\nfunction setPerPage(state, action) {\r\n return R.assocPath([\"query\", \"perPage\"], action.payload, state);\r\n}\r\n","/** @module search/service */\r\nimport $ from \"jquery\";\r\nimport * as R from \"ramda\";\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 return $.ajax({\r\n url: url,\r\n data: query\r\n });\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.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","// Expected markup.\r\n// The link and content need to be nested within the js-accordion element, but can be placed anywhere in the code.\r\n//\r\n//
    \r\n//
    \r\n// \r\n//
    \r\n//
    \r\n// Content to show and hide\r\n//
    \r\n//
    \r\n\r\nexport function WidthAccordion(el, id) {\r\n const link = el.querySelector(\".js-horizontal-accordion-link\");\r\n const content = el.querySelector(\".js-horizontal-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 }\r\n else {\r\n setWidth(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 width = content.scrollWidth;\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 setWidth(contentWrapper, `${width}px`);\r\n contentBuffer = setTimeout(() => {\r\n setWidth(contentWrapper, \"auto\");\r\n contentWrapper.style.overflow = \"visible\";\r\n }, animationSpeed + 20);\r\n }\r\n else {\r\n el.classList.remove(\"is-open\");\r\n setWidth(contentWrapper, `${width}px`);\r\n\r\n setTimeout(() => {\r\n setWidth(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 setWidth(el, width) {\r\n el.setAttribute(\r\n \"style\",\r\n `width: ${width}; transition: width ${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, { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport { Popup } from \"../../../assets/js/ULI/Popup.js\";\r\nimport cx from \"classnames\";\r\nimport { bool, func, object, shape, string } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n bookmark: shape({\r\n contentId: string.isRequired,\r\n contentType: string,\r\n title: string.isRequired,\r\n description: string,\r\n isSaved: bool.isRequired,\r\n orientation: string,\r\n alignment: string,\r\n confirmRemove: bool,\r\n }),\r\n dictionary: object,\r\n classNames: string,\r\n handleChange: func,\r\n getBookmarksApi: string.isRequired,\r\n removeBookmarkApi: string.isRequired,\r\n saveBookmarkApi: string.isRequired,\r\n};\r\n\r\nconst BookmarkButton = (props) => {\r\n const {\r\n bookmark,\r\n classNames,\r\n handleChange,\r\n removeBookmarkApi,\r\n saveBookmarkApi,\r\n dictionary,\r\n } = props;\r\n\r\n const {\r\n contentId,\r\n isSaved,\r\n orientation,\r\n alignment,\r\n confirmRemove,\r\n } = bookmark;\r\n\r\n const bookmarkButton = useRef();\r\n const [contentArea] = useState(\r\n document.querySelector(\".page-banner\") ||\r\n document.querySelector(\".page-meta\"),\r\n );\r\n const [contentAreaContainer] = useState(\r\n contentArea ? contentArea.closest(\".container\") : null,\r\n );\r\n\r\n\r\n const hasBanner = document.querySelector(\".page-banner\");\r\n var contentAreaContainerOffset = hasBanner || !contentAreaContainer ? 40 : contentAreaContainer.offsetTop;\r\n const [contentAreaY, setContentAreaY] = useState(\r\n contentArea ? contentArea.offsetTop + contentAreaContainerOffset + 1 : 0,\r\n //contentArea ? contentArea.offsetTop + 40 : 0,\r\n );\r\n\r\n const [contentAreaTop, setContentAreaTop] = useState(\r\n contentArea ? contentArea.getBoundingClientRect().top : 0,\r\n );\r\n\r\n const alignSideBookmarkButton = useCallback(() => {\r\n if (contentAreaTop > 10) {\r\n bookmarkButton.current.closest(\r\n \".bookmark-button-wrapper\",\r\n ).style.top = `${contentAreaY}px`;\r\n bookmarkButton.current.closest(\r\n \".bookmark-button-wrapper\",\r\n ).style.position = \"relative\";\r\n } else {\r\n bookmarkButton.current.closest(\".bookmark-button-wrapper\").style.top = \"\";\r\n bookmarkButton.current.closest(\r\n \".bookmark-button-wrapper\",\r\n ).style.position = \"\";\r\n }\r\n }, [contentAreaTop, contentAreaY]);\r\n\r\n const handleScroll = useCallback(() => {\r\n const newContentAreaTop = contentArea.getBoundingClientRect().top;\r\n\r\n if (\r\n newContentAreaTop !== contentAreaTop &&\r\n newContentAreaTop > -100 // if you scroll too fast, you go past 0\r\n ) {\r\n setContentAreaTop(Math.max(newContentAreaTop, 0));\r\n }\r\n\r\n alignSideBookmarkButton();\r\n }, [contentArea, contentAreaTop, alignSideBookmarkButton]);\r\n\r\n useEffect(() => {\r\n if (contentArea) {\r\n const hasBanner = document.querySelector(\".page-banner\");\r\n var contentAreaContainerOffset = hasBanner || !contentAreaContainer ? 40 : contentAreaContainer.offsetTop;\r\n setContentAreaY(contentArea.offsetTop + contentAreaContainerOffset + 1);\r\n setContentAreaTop(contentArea.getBoundingClientRect().top);\r\n\r\n if (\r\n bookmarkButton.current.closest(\".bookmark-button-wrapper--article-side\")\r\n ) {\r\n alignSideBookmarkButton();\r\n window.addEventListener(\"scroll\", handleScroll);\r\n\r\n return () => {\r\n window.removeEventListener(\"scroll\", handleScroll);\r\n };\r\n }\r\n }\r\n }, [alignSideBookmarkButton, handleScroll, contentArea]);\r\n\r\n const [savedState, setSavedState] = useState(isSaved);\r\n\r\n const doNotShowAgain = useRef();\r\n\r\n const toggleOtherBookmarks = () => {\r\n const bookmarkInstances = document.querySelectorAll(\r\n `[data-content-id='${contentId}']`,\r\n );\r\n bookmarkInstances.forEach((bookmark) => {\r\n if (bookmark !== bookmarkButton.current) {\r\n bookmark.querySelector(\"button\").click();\r\n }\r\n });\r\n };\r\n\r\n const handleChangeBookmark = (contentId, event) => {\r\n setSavedState(!savedState);\r\n if (event.detail) {\r\n // Only refresh if this is the bookmark that got the \"real\" click\r\n savedState\r\n ? handleRemoveBookmark(contentId, event)\r\n : handleSaveBookmark(contentId, event);\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n var dlEvent = savedState ? 'bookmarkUnsave' : 'bookmarkSave';\r\n window.dataLayer.push({ \r\n 'event': dlEvent,\r\n 'bookmarkContentTitle': bookmark.title\r\n });\r\n\r\n toggleOtherBookmarks();\r\n }\r\n\r\n const doNotShowQuery = doNotShowAgain.current\r\n ? \"/?doNotShowAgain=\" + doNotShowAgain.current.checked\r\n : \"\";\r\n handleChange && handleChange(doNotShowQuery);\r\n };\r\n\r\n const handleRemoveBookmark = (contentId) => {\r\n const doNotShowQuery = doNotShowAgain.current\r\n ? \"&doNotShowAgain=\" + doNotShowAgain.current.checked\r\n : \"\";\r\n\r\n const url = removeBookmarkApi + \"/?contentId=\" + contentId + doNotShowQuery;\r\n\r\n // If this is in a reading list promo, remove the promo immediately\r\n if (bookmarkButton.current.closest(\".reading-list-promo--bookmark\")) {\r\n bookmarkButton.current.closest(\r\n \".reading-list-promo--bookmark\",\r\n ).style.display = \"none\";\r\n }\r\n\r\n fetch(url).then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n };\r\n\r\n const handleSaveBookmark = () => {\r\n const url = saveBookmarkApi + \"/?contentId=\" + contentId;\r\n\r\n fetch(url).then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n document.querySelectorAll(\".js-popup\").forEach((el) => {\r\n const props = {\r\n menuButton: \".js-popup-button\",\r\n menuContainer: \".js-popup-content\",\r\n parent: el,\r\n closeButtonClass: \".js-popup-close\",\r\n };\r\n\r\n new Popup(props);\r\n });\r\n }, []);\r\n\r\n return (\r\n \r\n {\r\n (!confirmRemove || !savedState) && handleChangeBookmark(contentId, e);\r\n }}\r\n className={cx(\"bookmark-button__button\", {\r\n \"popup__toggle js-popup-button\": confirmRemove && savedState,\r\n })}\r\n {...(confirmRemove && { ...{ \"aria-expanded\": false } })}\r\n >\r\n \r\n \r\n \r\n \r\n {savedState\r\n ? dictionary.isBookmarkedLabel\r\n : dictionary.isNotBookmarkedLabel}\r\n \r\n \r\n {confirmRemove && savedState && (\r\n \r\n

    {dictionary.removeBookmarkConfirmMessage}

    \r\n
    \r\n handleChangeBookmark(contentId, e)}\r\n >\r\n {dictionary.removeBookmarkYesLabel}\r\n \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nBookmarkButton.propTypes = propTypes;\r\nexport default BookmarkButton;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport BookmarkButton from \"./BookmarkButton.jsx\";\r\n\r\nexport default function renderBookmarkButtons() {\r\n document.querySelectorAll(\".js-bookmark-button-mount\").forEach((mount, i) => {\r\n const dataModel = JSON.parse(mount.dataset.model);\r\n const dataDictionary = JSON.parse(mount.dataset.dictionary);\r\n\r\n ReactDom.render(, mount);\r\n });\r\n}\r\n","import React, { useCallback, useState, useEffect, useRef } from \"react\";\r\nimport Bookmark from \"../Bookmark/Bookmark.jsx\";\r\nimport Pagination from \"../Pagination/Pagination.jsx\";\r\nimport { arrayOf, bool, number, object, shape, string } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n perPage: number.isRequired,\r\n dictionary: object,\r\n bookmarks: arrayOf(\r\n shape({\r\n contentId: string.isRequired,\r\n contentType: string,\r\n title: string.isRequired,\r\n description: string,\r\n isSaved: bool.isRequired,\r\n orientation: string,\r\n alignment: string,\r\n confirmRemove: bool,\r\n }),\r\n ).isRequired,\r\n getBookmarksApi: string.isRequired,\r\n removeBookmarkApi: string.isRequired,\r\n saveBookmarkApi: string.isRequired,\r\n};\r\n\r\nconst BookmarkList = (props) => {\r\n const {\r\n bookmarks,\r\n perPage,\r\n dictionary,\r\n getBookmarksApi,\r\n removeBookmarkApi,\r\n saveBookmarkApi,\r\n } = props;\r\n\r\n const [totalPages, setTotalPages] = useState(1);\r\n const [page, setPage] = useState(1);\r\n const [bookmarkData, setBookmarkData] = useState(bookmarks);\r\n const list = useRef();\r\n const listAnchor = useRef();\r\n\r\n const [isWide, setIsWide] = useState(true);\r\n const [customAlignment, setCustomAlignment] = useState(\"right\");\r\n\r\n const handleResize = useCallback(() => {\r\n if (isWide !== window.innerWidth > 780) {\r\n setIsWide(window.innerWidth > 780);\r\n }\r\n }, [isWide]);\r\n\r\n useEffect(() => {\r\n setCustomAlignment(isWide ? \"right\" : \"left\");\r\n }, [isWide]);\r\n\r\n useEffect(() => {\r\n setIsWide(window.innerWidth > 780);\r\n }, []);\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", handleResize);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", handleResize);\r\n };\r\n }, [handleResize]);\r\n\r\n const handlePage = (page) => {\r\n const globalHeaderHeight = document.querySelector(\".global-header\")\r\n ? document.querySelector(\".global-header\").innerHeight\r\n : 0;\r\n setPage(page);\r\n listAnchor.current.focus();\r\n if (list.current.getBoundingClientRect().top < 0) {\r\n window.scrollTo({\r\n top:\r\n list.current.getBoundingClientRect().top +\r\n window.pageYOffset -\r\n globalHeaderHeight,\r\n });\r\n }\r\n };\r\n\r\n const updateBookmarkData = useCallback((queryString) => {\r\n const url = getBookmarksApi + queryString;\r\n\r\n fetch(url)\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n .then((json) => {\r\n setTotalPages(Math.ceil(json.length / perPage));\r\n setBookmarkData(json);\r\n });\r\n }, [getBookmarksApi, perPage]);\r\n\r\n useEffect(() => {\r\n setTotalPages(Math.ceil(bookmarkData.length / perPage));\r\n }, [bookmarkData, perPage, updateBookmarkData]);\r\n\r\n return (\r\n <>\r\n {bookmarkData.length > 10 && (\r\n \r\n )}\r\n {(bookmarkData.length > 0 && (\r\n <>\r\n \r\n
    \r\n {bookmarkData\r\n .slice(perPage * (page - 1), perPage * page)\r\n .map((bookmark) => (\r\n \r\n ))}\r\n
    \r\n \r\n )) || (\r\n \r\n )}\r\n {bookmarkData.length > 10 && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nBookmarkList.propTypes = propTypes;\r\nexport default BookmarkList;\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport BookmarkList from \"./BookmarkList.jsx\";\r\n\r\nexport default function renderBookmarkList() {\r\n document.querySelectorAll(\".js-bookmark-list-mount\").forEach((mount, i) => {\r\n const dataModel = JSON.parse(mount.dataset.model);\r\n const dataDictionary = JSON.parse(mount.dataset.dictionary);\r\n\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport BookmarkButton from \"../BookmarkButton/BookmarkButton.jsx\";\r\nimport renderBookmarkButtons from \"../BookmarkButton/renderBookmarkButtons.jsx\";\r\nimport { bool, func, object, shape, string } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n bookmark: shape({\r\n contentId: string.isRequired,\r\n contentType: string,\r\n contentTypeUrl: string,\r\n contentUrl: string,\r\n title: string.isRequired,\r\n description: string,\r\n isSaved: bool.isRequired,\r\n orientation: string,\r\n alignment: string,\r\n confirmRemove: bool,\r\n }),\r\n dictionary: object,\r\n handleChange: func,\r\n getBookmarksApi: string.isRequired,\r\n removeBookmarkApi: string.isRequired,\r\n saveBookmarkApi: string.isRequired,\r\n};\r\n\r\nconst Bookmark = (props) => {\r\n const {\r\n dictionary,\r\n bookmark,\r\n handleChange,\r\n getBookmarksApi,\r\n removeBookmarkApi,\r\n saveBookmarkApi,\r\n } = props;\r\n\r\n const {\r\n contentType,\r\n contentTypeUrl,\r\n contentUrl,\r\n title,\r\n description,\r\n } = bookmark;\r\n\r\n useEffect(() => {\r\n renderBookmarkButtons();\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nBookmark.propTypes = propTypes;\r\nexport default Bookmark;\r\n","export default () => {\r\n if (document.querySelector(\".is-page-editor\")) {\r\n return;\r\n }\r\n\r\n const isSelectedClass = \"is-selected\";\r\n\r\n document.querySelectorAll(\".js-market-content\").forEach((el, appIndex) => {\r\n // find the tablist element\r\n const elTabList = el.querySelector(\".js-market-content-controls\");\r\n const elPanels = el.querySelectorAll(\".js-market-content-panel\");\r\n const elTabs = el.querySelectorAll(\".js-market-content-tab\");\r\n const elNextButton = el.querySelector(\".js-market-content-next-button\");\r\n const elPrevButton = el.querySelector(\".js-market-content-previous-button\");\r\n const parentIndex = appIndex + 1 * 100;\r\n const tabButtonSelector = \".js-market-content-tab-button\";\r\n\r\n let currentTab = 0;\r\n let isOverflowing;\r\n\r\n // initialize tabs and panels\r\n elTabs.forEach(initTab);\r\n elPanels.forEach(initPanel);\r\n\r\n showThisTab(currentTab, false);\r\n\r\n elTabList.addEventListener(\"keydown\", handleKeyPress);\r\n\r\n // initialize overflow interface\r\n initOverflow();\r\n\r\n function changeTab(newTab, moveFocus = true) {\r\n if (newTab === currentTab) {\r\n return;\r\n }\r\n\r\n hideCurrentTab(currentTab, moveFocus);\r\n showThisTab(newTab, moveFocus);\r\n\r\n if (newTab === 0) {\r\n elPrevButton.setAttribute(\"disabled\", true);\r\n } else if (newTab === elTabs.length - 1) {\r\n elNextButton.setAttribute(\"disabled\", true);\r\n } else {\r\n elPrevButton.removeAttribute(\"disabled\");\r\n elNextButton.removeAttribute(\"disabled\");\r\n }\r\n\r\n elTabList.scrollTo({\r\n top: 0,\r\n left: elTabs[newTab].offsetLeft - 30, // not sure why this is 3\r\n behavior: \"smooth\",\r\n });\r\n }\r\n\r\n function hideCurrentTab(tabIndex) {\r\n // reset currently selected Tab aria-selected and classes\r\n const activeTab = elTabs[tabIndex];\r\n activeTab.classList.remove(isSelectedClass);\r\n\r\n const activeTabButton = activeTab.querySelector(tabButtonSelector);\r\n activeTabButton.setAttribute(\"aria-selected\", false);\r\n activeTabButton.setAttribute(\"tabindex\", -1);\r\n // reset currently selected Panel classes\r\n const panel = elPanels[tabIndex];\r\n panel.classList.remove(isSelectedClass);\r\n panel.setAttribute(\"aria-hidden\", true);\r\n panel.setAttribute(\"tabindex\", -1);\r\n }\r\n\r\n function showThisTab(tabIndex, moveFocus = true) {\r\n // set this Tab's aria-selected and classes\r\n elTabs[tabIndex].classList.add(isSelectedClass);\r\n const button = elTabs[tabIndex].querySelector(tabButtonSelector);\r\n button.setAttribute(\"aria-selected\", true);\r\n button.setAttribute(\"tabindex\", 0);\r\n\r\n if (moveFocus) {\r\n button.focus();\r\n }\r\n // set this Tab's panel class\r\n const panel = elPanels[tabIndex];\r\n panel.classList.add(isSelectedClass);\r\n panel.removeAttribute(\"aria-hidden\");\r\n panel.setAttribute(\"tabindex\", 0);\r\n\r\n currentTab = tabIndex;\r\n }\r\n\r\n function handleKeyPress(event, index) {\r\n switch (event.key) {\r\n case \"Left\":\r\n case \"ArrowLeft\":\r\n event.preventDefault();\r\n if (currentTab === 0) {\r\n changeTab(elTabs.length - 1);\r\n } else {\r\n changeTab(currentTab - 1);\r\n }\r\n break;\r\n case \"Right\":\r\n case \"ArrowRight\":\r\n event.preventDefault();\r\n if (currentTab === elTabs.length - 1) {\r\n changeTab(0);\r\n } else {\r\n changeTab(currentTab + 1);\r\n }\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n function handleOverflowResize(e) {\r\n const overflowing = elTabList.scrollWidth !== elTabList.clientWidth;\r\n\r\n if (isOverflowing && !overflowing) {\r\n isOverflowing = false;\r\n elNextButton.classList.remove(\r\n \"market-content__control-button--visible\",\r\n );\r\n elPrevButton.classList.remove(\r\n \"market-content__control-button--visible\",\r\n );\r\n }\r\n\r\n if (!isOverflowing && overflowing) {\r\n isOverflowing = true;\r\n elNextButton.classList.add(\"market-content__control-button--visible\");\r\n elPrevButton.classList.add(\"market-content__control-button--visible\");\r\n }\r\n }\r\n\r\n function initPanel(panel, i) {\r\n // add ids and aria roles to panel\r\n panel.setAttribute(\"aria-labelledby\", `tab-button-${parentIndex + i}`);\r\n panel.setAttribute(\"id\", `tab-content-panel-${parentIndex + i}`);\r\n panel.setAttribute(\"tabindex\", -1);\r\n panel.setAttribute(\"aria-hidden\", true);\r\n }\r\n\r\n function initTab(tab, i) {\r\n // add ids and aria roles to button\r\n const button = tab.querySelector(tabButtonSelector);\r\n button && button.setAttribute(\"id\", `tab-button-${parentIndex + i}`);\r\n button && button.setAttribute(\"aria-selected\", false);\r\n button && button.setAttribute(\"tabindex\", -1);\r\n button &&\r\n button.setAttribute(\r\n \"aria-controls\",\r\n `tab-content-panel-${parentIndex + i}`,\r\n );\r\n // move all the tab to the tablist element\r\n elTabList.append(tab);\r\n\r\n // add event listeners to tab\r\n button &&\r\n button.addEventListener(\"click\", () => {\r\n if (currentTab !== i) {\r\n changeTab(i);\r\n }\r\n });\r\n }\r\n\r\n function initOverflow() {\r\n elPrevButton.setAttribute(\"disabled\", true);\r\n\r\n // event listeners - button click and tab focus\r\n elNextButton.addEventListener(\"click\", () => {\r\n changeTab(currentTab + 1, false);\r\n });\r\n\r\n elPrevButton.addEventListener(\"click\", () => {\r\n changeTab(currentTab - 1, false);\r\n });\r\n // reversing isOverflowing so classes will be set correctly.\r\n isOverflowing = elTabList.scrollWidth === elTabList.clientWidth;\r\n handleOverflowResize();\r\n\r\n // add resize event to detect overflow - toggle class\r\n window.addEventListener(\"resize\", handleOverflowResize, {\r\n passive: true,\r\n });\r\n }\r\n });\r\n};\r\n","import React from \"react\";\r\nimport cx from \"classnames\";\r\nimport { func, number } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n currentPage: number,\r\n totalPages: number,\r\n handlePage: func,\r\n};\r\n\r\nconst Pagination = (props) => {\r\n const { totalPages, currentPage, handlePage, classNames } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nPagination.propTypes = propTypes;\r\nexport default Pagination;\r\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj[\"default\"] = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"]}