{"version":3,"sources":["assets/common.js","components/Dropdown/Dropdown.jsx","util.js","components/AutofillSearchResult/AutofillSearchResult.jsx","utils/constants.js","utils/searchHelpers.jsx","components/HorizontalRule/HorizontalRule.jsx","components/ItemWithIcon/ItemWithIcon.jsx","components/MegaNavPrimary/MegaNavPrimary.jsx","components/MegaNavSecondary/MegaNavSecondary.jsx","components/MegaNavTertiary/MegaNavTertiary.jsx","components/SearchInput/SearchInput.jsx","components/MegaNavHome/MegaNavHomeFooter.jsx","components/MegaNavHome/MegaNavHome.jsx","components/NavBarMain/NavBarMenuPrimary.jsx","components/NavBarMain/NavBarMain.jsx","components/Button/Button.js","Layout.js","components/Text/Text.jsx","components/ButtonLink/ButtonLink.jsx","utils/paramToBool.js","components/Text/index.js","actions/index.js","components/Link/Link.jsx","utils/pageTitleGenerator.js","utils/observers.jsx","utils/enums.js","components/Navigation/Navigation.jsx","components/QuarterlyNavigation/QuarterlyNavigation.jsx","temp/config.js","lib/mapbox-gl-accessibility.js","components/Navigation/BypassButton.jsx","components/ColoredList/ColoredList.jsx","components/QuarterlyNavigation/QuarterlyNavigationNavBar.jsx","components/LinkListItem/LinkListItem.jsx","utils/withErrorBoundary.jsx","utils/hooks/usePdfView.jsx","lib/GraphQLClientFactory.js","utils/mock/dictionary.js","utils/forStorybook.jsx","components/LinkList/LinkList.jsx","utils/getScrollbarWidth.js","components/SocialMediaLinks/SocialMediaIcons.jsx","components/MegaNavHeader/MegaNavHeader.jsx","components/SocialMediaLinks/SocialMediaLink.jsx","assets/LinkIcons.js","components/Accordion/Accordion.jsx","components/ArticleHeading/ArticleHeading.jsx","utils/dateExtensions.js","components/ArticleHero/ArticleHero.jsx","utils/calendarEvent.jsx","components/ContentCard/ContentCard.jsx","components/AutoloadContentRow/ContentRowPdfList.jsx","components/HeadingAccent/HeadingAccent.jsx","components/SectionHeading/SectionHeading.jsx","components/AutoloadContentRow/AutoloadContentRow.jsx","components/BioEducation/BioEducation.jsx","components/BioProfessionalInvolvement/BioProfessionalInvolvement.jsx","utils/vcardUrl.jsx","components/BioProfileHero/BioProfileHero.jsx","assets/QuoteIcons.js","components/Quote/Quote.jsx","components/BioQuote/BioQuote.jsx","components/FeaturedList/FeaturedList.jsx","components/FeaturedListItem/FeaturedListItem.jsx","components/BioRelatedArticleList/BioRelatedArticleList.jsx","components/Carousel/Carousel.jsx","components/ColumnGrid/ColumnGrid.jsx","components/ContactCard/ContactCard.jsx","components/ContactCardManual/ContactCardManual.jsx","components/ContactCards/ContactCards.jsx","components/ContentCardRow/ContentCardRow.jsx","components/ContextContactCards/ContextContactCards.jsx","components/ContextFeatureList/ContextFeatureList.jsx","components/ContextLinkList/ContextLinkList.jsx","components/RichText/RichText.jsx","components/ContextRichText/ContextRichText.jsx","components/Tag/Tag.jsx","components/TagList/TagList.jsx","components/ContextTagList/ContextTagList.jsx","components/Checkbox/Checkbox.jsx","components/Checkbox/CheckboxWrapper.jsx","components/SearchBarFilter/SearchBarFilter.jsx","components/EventSearchBar/EventAutofillSearchResult/EventAutofillSearchResult.jsx","ui/RangeDataPicker/RangeDataPicker.jsx","components/EventSearchBar/helpers.js","components/EventSearchBar/EventSearchBar.jsx","components/Pagination/Pagination.jsx","components/EventSearchResults/EventContentCard/EventContentCard.jsx","components/EventSearchResults/EventSearchResults.jsx","components/ExpertiseFeaturedWorkList/FeaturedWorksPdfList.jsx","components/ExpertiseFeaturedWorkList/ExpertiseFeaturedWorkList.jsx","components/GeneralHero/GeneralHero.jsx","components/ExpertiseHero/ExpertiseHero.jsx","components/ExpertisePageLinks/ExpertisePageLinks.jsx","components/ExpertisePageLinksContainer/ExpertisePageLinksContainer.jsx","components/ExpertisePageLinksItem/ExpertisePageLinksItem.jsx","components/FeaturedContent/FeaturedContent.jsx","components/FooterLinkList/FooterLinkList.jsx","components/FooterContactBar/FooterContactBar.jsx","components/FooterTeaser/FooterTeaser.jsx","components/Footer/Footer.jsx","components/Footnotes/Footnotes.jsx","components/FootnotesItem/FootnotesItem.jsx","components/GeneralLandingSearchBar/GeneralLandingSearchBar.jsx","components/Grid/Grid.jsx","components/HomepageHero/HomepageHero.jsx","components/IconDropdown/IconDropdown.jsx","components/Image/Image.jsx","components/InPageNavigationItem/InPageNavigationItem.jsx","components/InPageNavigation/InPageNavigation.jsx","components/InteractiveMapPopup/InteractiveMapPopup.jsx","components/InteractiveMap/mapUtil.js","components/InteractiveMap/InteractiveMap.jsx","components/ItemWithImage/ItemWithImage.jsx","components/KnowledgeHubDate/KnowledgeHubDate.jsx","components/KnowledgeHubHero/KnowledgeHubHero.jsx","components/NewsCard/NewsCard.jsx","components/NewsCardRow/NewsCardRow.jsx","components/OfficeCard/OfficeCard.jsx","components/PartialContainer/PartialContainer.jsx","components/ProfileHero/ProfileHero.jsx","components/ProjectMapListItem/ProjectMapListItem.jsx","components/ProjectMapList/ProjectMapList.jsx","components/Checkbox/CheckboxWithDropdown.jsx","components/ProjectMapSearchBarFilter/ProjectMapSearchBarFilter.jsx","components/ProjectMapSearchBarFilter/ProjectMapSearchBarFilterMobile.jsx","components/AdvancedFilter/AdvancedFilter.jsx","components/AdvancedFilterModal/AdvancedFilterModal.jsx","components/ProjectMapContainer/projectMapHelper.jsx","components/ProjectMapSearchBar/ProjectMapSearchBar.jsx","components/ProjectMapContainer/ProjectMapContainer.jsx","components/ProjectMapWorkArticleTable/ProjectMapWorkArticleTable.jsx","components/ProjectMapWorkArticleTableDivider/ProjectMapWorkArticleTableDivider.jsx","components/ProjectMapWorkArticleTableRow/ProjectMapWorkArticleTableRow.jsx","components/ProjectMapWorkTable/ProjectMapWorkTable.jsx","components/QuarterlyAnimationSection/QuarterlyAnimationSection.jsx","components/QuarterlyArticleNavigationBanner/QuarterlyArticleNavigationBanner.jsx","components/QuarterlyIntroduction/QuarterlyIntroduction.jsx","components/QuarterlyIntroductionAnimation/QuarterlyIntroductionAnimation.jsx","components/QuarterlyIntroductionListItem/QuarterlyIntroductionListItem.jsx","components/QuarterlyLandingHero/QuarterlyLandingHero.jsx","components/QuarterlyLandingHeroAnimation/QuarterlyLandingHeroAnimation.jsx","components/QuarterlySectionHeader/QuarterlySectionHeader.jsx","utils/mock/repWorkData.js","components/RepresentativeWorkFilter/RepresentativeWorkFilter.jsx","components/RepresentativeWork/RepresentativeWork.jsx","components/MonthPicker/MonthPicker.jsx","components/SearchBar/SearchBar.jsx","components/SearchResults/SearchResults.jsx","components/Section/Section.jsx","components/SideNavigationItem/SideNavigationItem.jsx","components/SideNavigation/SideNavigation.jsx","components/SimpleHero/SimpleHero.jsx","components/SnippetComponent/index.js","components/Statistics/Statistics.jsx","components/StickySideBanner/StickySideBanner.jsx","components/StickySideSection/StickySideSection.jsx","components/StudentProfile/StudentProfile.jsx","components/TwoColStickySideBanner/TwoColStickySideBanner.jsx","components/TwoColumnProfileList/TwoColumnProfileList.jsx","components/TwoColumnProfileListItem/TwoColumnProfileListItem.jsx","components/Video/Video.jsx","temp/componentFactory.js","dataFetcher.js","NotFound.js","RouteHandler.js","AppRoot.js","index.js","i18n.js","components/SocialMediaLinks/CopyToClipboardButton.jsx","components/SocialMediaLinks/SocialMediaLinks.jsx"],"names":["SearchIcon","theme","customColor","color","ThemeEnum","dark","toLowerCase","width","height","viewBox","fill","xmlns","d","HamburguerMenu","stroke","id","CloseIcon","size","SizeEnum","small","MailIcon","transform","PhoneIcon","MovieCameraIcon","HeadPhonesIcon","DocumentIcon","NewsPaperIcon","QuarterlyIcon","CalendarIcon","InPersonEventIcon","strokeLinecap","strokeLinejoin","StaticEventIcon","SearchBarIcon","fillRule","clipRule","strokeWidth","SelectedCheckbox","rx","UnselectedCheckbox","x","y","Checkmark","CalendarSearchBarIcon","PersonIcon","CloseBubbleIcon","BookmarkIcon","BriefcaseIcon","MapExport","ListView","clipPath","MapView","MapFilters","MapAdvancedFilters","Dropdown","active","title","Icon","content","border","isActive","setActive","useState","useEffect","escFunction","event","key","window","addEventListener","removeEventListener","className","classNames","as","variant","onClick","type","field","value","useDefaultMargin","config","require","isDisconnected","test","sitecoreApiHost","module","exports","getHostname","location","origin","TypeToIconEmum","Podcast","Insight","Event","Video","News","WorkItem","QuarterlyIssue","ContentSeries","Webinar","BioPage","AutofillSearchResult","fields","searchValue","autofillSearchResultsBlock","Image","Title","LinkUrl","ResultType","ContentTag","ContentStyle","parseContentType","IconTag","replace","titleValue","str","query","resultType","n","SearchResultTypeEnum","biopage","toUpperCase","q","indexOf","l","length","substr","boldString","withImage","class","Object","keys","src","href","classnames","templateNameCondition","tagIdentifierCondition","tagNameCondition","subTagNameCondition","teaserDateSortBy","scoreSortBy","rootItem","isSearchable","name","relatedPeopleCondition","relatedFeaturedPeopleCondition","workItemTemplate","relatedFeaturedPagesCondition","notBioPageOnlyCondition","rootSiteItem","allTemplatesConditions","displayedContentTypes","peopleRelationsArray","bioPageTemplateCondition","mapTagCondition","mapMarkerInheritanceCondition","includeInMapCondition","MAP_DEBOUNCE_CONST","MAP_EASE_PADDING_CONST","formatSearchParams","useor","PeopleFiltersValues","fieldValue","label","mapFacetTypeToDisplay","facetTypes","displayTypes","i","push","mapDisplayTypeToTemplate","selectedContentTypes","templateTypes","mapTemplateTypeToDisplay","tagIdConditions","filterValues","tagIds","entries","substring","filter","item","map","templateTypesConditions","mappedFilters","condition","group","tagSearchConditions","tagIdResults","peopleFilterKeys","t","searchConditions","includes","results","find","identifier","decodeURIComponent","mappedFacetValue","template","contentType","ContentCardType","publication","events","video","webinar","podcast","workItem","news","quarterlyIssue","contentSeries","person","sortFilterValues","a","b","isNaN","localeCompare","relatedPeopleConditions","personId","personRelationCondition","decodeURIComponentSafe","s","HorizontalRuleSitecore","withSitecoreContext","withErrorBoundary","ErrorBoundaryConditions","params","HorizontalRuleColor","PaddingTop","PaddingBottom","horizontalRule","forStorybookV2","ItemWithIcon","icon","description","linkName","LinkURL","text","target","LinkTargetValueEnum","self","Theme","Variant","defaultProps","link","OfficesName","hasLanguage","versions","language","lan","MegaNavPrimary","expertiseItem","expertiseList","openMegaMenuHome","authorableExpertiseLink","activeTab","setActiveTab","activeGroup","setActiveGroup","columnLists","setColumnList","Array","isArray","children","mobileDisplay","setMobileDisplay","mobileHeaderValues","setMobileHeaderValues","descriptionLink","url","linkText","secondaryLink","secondaryDescriptionLink","secondaryLinkText","linkTarget","LinkTargetEnum","sameTab","onBackArray","setOnBackArray","changeScreenMobile","pActiveTab","pColumnList","pMobileDisplay","pMobileHeaderValues","pBackArray","pActiveGroup","secondaryDescription","onBack","tab","index","displayName","LinkVariantEnum","nav","SubVariant","LinkSubVariantsEnum","chevronRight","inactive","LinkText","parsePageTitle","LinkAltText","LinkTarget","e","preventDefault","list","bold","ButtonVariantEnum","tertiary","MegaNavSecondary","insightsItem","insightsContentTypeTitle","insightsContentTypeLinks","editorsPicksLinks","navigationLink","subTitle","itemIcon","Layout","LinkListLayoutEnum","highlighted","HideArrows","LinkName","MegaNavTertiary","aboutUsContentTypeTitle","aboutUsContentTypeLinks","default","SearchInput","alt","searchPage","placeholder","onClose","searchInputRef","seearchInputBlock","searchParams","setSearchParams","autofillResults","setAutofillResults","autoloadSuggestionsRef","useRef","searchCondition","timer","setTimeout","fetchResults","then","catch","clearTimeout","searchKeyBoard","keyCode","blur","document","suggestedResults","getElementsByClassName","searchInputBar","targetElement","parentNode","current","style","display","method","onSubmit","encodeURIComponent","split","aria-label","onChange","ref","autoComplete","onFocus","result","templateName","firstName","middleName","lastName","teaserTitle","profileImage","notNavigatable","action","undefined","MegaNavHomeFooter","homeSocialMediaText","homeSubscribeText","homeSocialMediaLinks","homeSubscribeButton","Text","ButtonLink","light","primary","SocialMediaLinks","FacebookLabel","facebookLabel","FacebookPageLink","facebookPageLink","FacebookIconAltText","facebookIconAltText","TwitterLabel","twitterLabel","TwitterPageLink","twitterPageLink","TwitterIconAltText","twitterIconAltText","LinkedInLabel","linkedInLabel","LinkedInPageLink","linkedInPageLink","LinkedInIconAltText","linkedInIconAltText","EmailLabel","emailLabel","EmailLink","emailLink","EmailIconAltText","emailIconAltText","PDFLabel","pDFLabel","PDFLink","pDFLink","PDFIconAltText","pDFIconAltText","CopyUrlLabel","copyUrlLabel","CopyUrlIconAltText","copyUrlIconAltText","MegaNavHome","languages","pageUrl","homeMainLinksPrimary","homeMainLinksSecondary","homeSecondaryLinks","openMegaMenuPrimary","openMegaMenuSecondary","openMegaMenuTertiary","history","useHistory","hasDropdown","paramToBool","isInsights","isExpertise","isAboutUs","Link","LanguageNamesEnum","noMargin","NavBarMenuPrimary","activeItem","isMegaMenuOpen","setDisplaySearch","displaySearch","mainNavBarRef","toggle","getElementById","contains","relatedTarget","firstElementChild","toggleButton","click","closeLanguageToggle","chevronDown","Button","FullPageRefresh","NavNarMain","CustomBackgroundColor","logoLink","lightThemeLogo","darkThemeLogo","searchResultsPage","searchPlaceholderText","onOpen","setNavBarDisplay","navBarDisplay","animationEnabled","mainNavBarMenuButtonRef","mainNavBarMenuLogoRef","scrollWidth","logoIcon","focus","backgroundColor","fadeIn","props","withTranslation","MAIN_CONTENT_PRE","LayoutContext","route","lang","pageTitle","createPageTitle","animationStyle","setAnimationStyle","isPopEvent","setIsPopEvent","MetaDescriptionIncluded","MetaDescription","TeaserDescriptionIncluded","TeaserDescription","MetaImageIncluded","MetaImage","TeaserImageIncluded","TeaserImage","html","querySelector","scrollBehavior","state","pageScrollValue","__scrollY","scrollTo","scrollRestoration","originalPushState","pushState","originalReplaceState","replaceState","newStateOfCurrentPage","assign","__scrollX","scrollX","scrollY","call","apply","arguments","newState","_len","otherArgs","_key","concat","onpopstate","OneTrust","changeLanguage","Fragment","htmlAttributes","property","MetaKeywords","ExternallySearchable","BioPageOnly","media","rendering","App","headingLevels","bodyTypes","textTags","TagName","cx","ButtonLinkSitecore","sitecoreContext","MarginBottom","MarginTop","isPeripheralContent","showInPDF","blank","queryParams","querystring","isPdfUrl","match","isMedia","startsWith","pdfView","setPdfView","showInPdf","pageEditing","data-is-peripheral","to","download","receiveResults","json","data","customSearch","items","child","facets","totalCount","pageInfo","facetFragment","gql","representativeResultsFragment","resultsFragment","personInfoFragment","resultsItemsFragment","mapFragment","mapTagFragment","mapPropertiesFacetFragment","conditions","facetOn","first","after","sortBy","sortDesc","excludeIds","keyword","excludeBioOnlyItems","client","GraphQLClientFactory","graphQLEndpoint","excludeIdsClause","includeFacet","onlyFacetQuery","conditionFragments","conditionsString","variablesString","variables","fetchRepresentativeResults","fetchTagIds","fetchPersonInfo","fetchPeopleFilters","fetchResultsTypeahead","typeAhead","fetchMapPoints","withinRadius","fetchMapTags","fetchMapPropertiesFragment","decodeSpecialChars","input","chars","RegExp","join","classBase","newTab","subVariant","chevronLeft","getChildren","node","next","parse","MetaTitle","TeaserTitle","itemTitle","middleTitle","ContentTypeEnum","premiumArticle","quarterlyReportLanding","work","projectMapWork","about","people","bioPage","defaultOptions","threshold","createIntersectionObserver","callback","options","observables","observer","IntersectionObserver","from","forEach","observable","observe","setAnimationInterObserver","selector","newClass","querySelectorAll","entry","isIntersecting","classList","add","DisplayStyleEnum","vertical","horizontal","LinkTypeEnum","pageLink","shareLink","medium","large","HighlightColorEnum","teal","orange","blue","navy","grey","AccentColorEnum","none","HighlightColorItemEnum","SectionHeadingSizeEnum","eyebrow","OverrideAlignmentEnum","left","center","right","TwoColumnLayoutEnum","paragraph","bulletPoint","singleColumn","doubleColumn","doubleColumnSpaceBetween","TagTypeEnum","button","hyperlink","ArticleHeroThemeColorEnum","white","HomepageHeroBackgroundColorEnum","HomepageHeroAccentColorEnum","black","AccordionTitleColorEnum","secondary","FeaturedListLayoutEnum","oneColumn","twoColumn","HeadingLevelEnum","h1","h2","h3","h4","h5","h6","en","fr","SideNavigationTypeEnum","inPage","betweenPage","GeneralHeroColourTheme","ArticleHeadingColorEnum","audio","notes","HighlightedBlockEnum","SearchBarCalendarEnum","start","end","publish","ContextLinkListEnum","relatedServices","ContextLinkListItemEnum","ContextFeatureListEnum","relatedWork","pinnedExperience","ContextFeatureListItemEnum","ContentCardColour","ContextContactCardsEnum","authors","relatedProfessionals","eventSpeakers","relatedPeople","relatedLawyers","dealTeamList","HorizontalRuleColorEnum","highlight","noPadding","FeaturedContentImageDisplayEnum","hideImage","TimeZoneEnum","edt","this","quarterly","homepage","office","expertise","insight","RepresentativeItemsEnum","representativeWork","representativeInsights","representativeNews","SearchSortingOrderEnum","mostRecent","relevancy","QuarterlyOverlayColor","NavigationSitecore","navBlock","datasource","EnableAnimation","Services","Industries","Offices","editorsPicksLinkOne","editorsPicksLinkTwo","editorsPicksLinkThree","editorsPicksLinkFour","contextItem","Set","getOtherLanguages","global","setScrollWidth","initialTheme","megaMenuHome","setMegaMenuHome","megaMenuPrimary","setMegaMenuPrimary","megaMenuSecondary","setMegaMenuSecondary","megaMenuTertiary","setMegaMenuTertiary","setMegaMenuOpen","menuActive","setMenuActive","qNav","setQNav","setTheme","scrollPosition","setScrollPosition","mainNavRef","menuOpenClass","mainContent","quarterlyElement","getScrollbarWidth","fadeUpSelector","fadeUpClass","resetMegaMenu","isOpen","isQuarterlyAnimationApplied","paddingRight","remove","allMainLinks","targetItems","qNavTop","getBoundingClientRect","top","logoLeft","logoWidth","qNavLeft","navHeight","handleScroll","useCallback","qNavMenu","qNavHeight","currentTarget","Math","abs","scrollCallback","targetItem","TemplatesEnum","colors","QuarterlyNavigationSitecore","slideMenuOpenClass","slideMenuCloseClass","socialMedia","socialMediaLinks","chapters","quarterName","issueTitle","quarterUrl","Chapters","IssueTitle","quarterlyInfo","TableOfContentsArticles","quarterlyItem","getChaptersFormPublication","quarterDisplay","quarter","jss","isMenuOpen","setIsMenuOpen","isMenuOpenOverlapping","setIsMenuOpenOverlapping","closeMenuWithoutAnimation","setCloseMenuWithoutAnimation","openStatePadding","setOpenStatePadding","qNavRef","qNavContentRef","mainNav","setMainNav","toggleMenuOpen","navMarginTop","marginTop","removeProperty","closeQuarterlyNav","subscribeButton","chapter","ChapterColor","isLink","ChapterTitle","Articles","previousIssues","factory","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_defineProperty","obj","immutable","source","hasOwnProperty","prototype","commonjsGlobal","globalThis","unwrapExports","__esModule","createCommonjsModule","fn","helpers","feature","geom","properties","feat","bbox","geometry","point","coordinates","polygon","_i","coordinates_1","ring","Error","j","lineString","featureCollection","features","fc","multiLineString","multiPoint","multiPolygon","radiansToLength","radians","units","factor","factors","lengthToRadians","distance","radiansToDegrees","PI","isNumber","num","earthRadius","centimeters","centimetres","degrees","feet","inches","kilometers","kilometres","meters","metres","miles","millimeters","millimetres","nauticalmiles","yards","unitsFactors","areaFactors","acres","points","coords","polygons","lineStrings","geometryCollection","geometries","round","precision","multiplier","pow","lengthToDegrees","bearingToAzimuth","bearing","angle","degreesToRadians","convertLength","originalUnit","finalUnit","convertArea","area","startFactor","finalFactor","isObject","constructor","validateBBox","validateId","radians2degrees","degrees2radians","distanceToDegrees","distanceToRadians","radiansToDistance","bearingToAngle","convertDistance","meta","coordEach","geojson","excludeWrapCoord","k","stopG","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","stop","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","propEach","featureEach","geomEach","g","featureProperties","featureBBox","featureId","flattenEach","segmentEach","segmentIndex","previousCoords","previousFeatureIndex","previousMultiIndex","prevGeomIndex","currentCoord","featureIndexCoord","multiPartIndexCoord","currentSegment","lineEach","coordReduce","initialValue","previousValue","propReduce","currentProperties","featureReduce","currentFeature","coordAll","coord","geomReduce","currentGeometry","flattenReduce","segmentReduce","started","lineReduce","currentLine","findSegment","findPoint","Infinity","isObject_1","_freeGlobal","freeSelf","_root","Function","now_1","Date","now","_Symbol","Symbol","objectProto","hasOwnProperty$1","nativeObjectToString","toString","symToStringTag","toStringTag","_getRawTag","isOwn","tag","unmasked","nativeObjectToString$1","_objectToString","symToStringTag$1","_baseGetTag","isObjectLike_1","isSymbol_1","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber_1","other","valueOf","isBinary","slice","nativeMax","max","nativeMin","min","debounce_1","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","cancel","flush","MapboxAccessibility","_this","instance","Constructor","_classCallCheck","marker","getCanvasContainer","removeChild","_debouncedQueryFeatures","clearMarkers","queryRenderedFeatures","layers","position","accessibleLabelProperty","createElement","setAttribute","project","featureBbox","bl","tr","appendChild","isMoving","protoProps","staticProps","queryFeatures","on","_movestart","_render","container","off","BypassButton","useLocation","dummy","opacity","overflow","body","insertBefore","firstChild","resetTabOrder","pathname","scrollIntoView","behavior","currentTabIndex","tabIndex","ColoredList","noPading","TitleLink","React","linkListItemBlock","LinkListItem","LinkEyebrow","LinkSubtext","NoPadding","HideDividerLines","isHighlighted","hasDivider","usePdfView","linkURL","Tag","PropTypes","shape","string","isRequired","objectOf","bool","array","oneOf","values","checkConditions","ErrorMessage","message","WrappedComponent","ErrorBoundary","isEditing","getDisplayName","endpoint","ssr","initialCacheState","createPersistedQueryLink","BatchHttpLink","uri","credentials","headers","connection","cache","InMemoryCache","fragmentMatcher","IntrospectionFragmentMatcher","introspectionQueryResultData","ApolloClient","ssrMode","ssrForceFetchDelay","restore","Scroll","SortBy","SearchResultsLabel","Result","Results","Contact","Education","BarAdmissions","ProfessionalInvolvement","ClearAll","ClearFilter","ShowResults","ClearDate","Filter","Filters","FiltersSelected","Any","SelectADate","PublishDate","Published","StartDate","EndDate","BackToPublishDate","Of","GoToSeries","Events","NoPageLinkSet","AddtoCalendar","Menu","ContentType","EditorsPicks","SkipContent","ResultsLoading","MostRecent","Municipality","Province","Country","ProjectType","ProcurementModel","GovernmentLevel","Client","ClientRole","Value","NoResults","Reset","ResetFilter","Keywords","LearnMore","ExportAsPDF","Search","Calculating","MinRead","Insights","TorysBrand","ReadMore","WorkTitle","People","About","Expertise","Relevancy","Alphabetical","SubmitSearch","CloseNavigation","Position","School","YearOfCall","FilterWork","FilterEvents","FilterInsights","FilterPodcasts","FilterVideos","FilterNews","RecommendedFilters","NoMatchingFiltersTitle","NoMatchingFiltersDescription","Share","OpensInANewTab","OpensInANewWindow","OpenArticleNavigation","toValueObject","reduce","mockT","mockDictionary","StorybookWrapper","placeholders","customFields","renderings","fieldsWithObject","forStorybook","LinkList","linkList","linkListBlock","LayoutEnum","exact","Links","arrayOf","BasicLinkList","withPlaceholder","outer","visibility","msOverflowStyle","inner","scrollbarWidth","offsetWidth","FacebookIconComponent","TwitterIconComponent","LinkedinIconComponent","LinkIconComponent","MailIconComponent","PdfIconComponent","MegaNavHeader","socialMediaLinkBlock","SocialMediaLink","include","IconComponent","showLabel","labelsMarginSize","rel","ArrowRight","ArrowLeft","ExternalLink","ChevronRight","SocialShare","ChevronLeft","DownloadFile","ChevronDown","xmlnsXlink","ChevronUp","ChevronLeftCirlcle","borderColor","chevronColor","cy","r","ChevronRightCirlcle","CirlcleSmall","ChevronLeftNav","ChevronRightNav","AccordionSitecore","Body","TitleColor","setIsActive","maxHeight","setMaxHeight","contentRef","accordionBlock","TitleTag","prevIsActive","scrollHeight","ArticleHeadingSitecore","Size","HeadingLevel","Color","MarginTopSize","MarginBottomSize","sectionHeadingBlock","marginTopSize","marginBottomSize","luxon","IsEmptyDate","date","parsed","jsDate","DateTime","fromJSDate","year","timeZone","server","ArticleHeroSitecore","PremiumArticle","QuarterlyWatermark","ReportEdition","ReadingTimeOverride","ContextDateField","ContextTitleField","ColorTheme","ColorAccent","TwoColumnLayout","contextFields","isPageEdit","isEvent","isPremiumArticle","isPublication","isProjectMapWork","DefaultPostingStyle","isWork","isNews","isWebinar","articleHeroBlock","colourTheme","colourAccent","expertiseCategory","ExpertiseCategory","Location","Subtitle","projectMapIndustry","contextEyebrowPremium","getChapterTitle","publishDate","fromISO","locale","itemLanguage","setZone","keepLocalTime","contextDate","StartDateAndTime","contextEndDate","EndDateAndTime","endTimeValue","hour","minute","toLocaleString","minimumIntegerDigits","useGrouping","endDateValue","DATE_FULL","publishDateValue","publishDateLocale","monthLong","day","publishDateString","EventTimeZone","DisplayName","workEyebrowText","padding","toLocaleLowerCase","calendarEventURL","eventData","startDate","endDate","duration","startDateObject","getFullYear","getMonth","getDate","getHours","getMinutes","endDateObject","eventJSON","createEvent","getCalendarEventURL","timeToRead","setTimeToRead","readingTimeStats","readingTime","innerText","minutes","ceil","backgroundImage","Street","City","StateOrProvince","StateAndProvinceName","ZipOrPostalCode","contentCardBlock","ContentCardSitecore","IncludeImage","ImageHighlightColor","DefaultCardColor","AltText","altText","TitleOverride","titleOverride","DescriptionOverride","descriptionOverride","DateOverride","dateOverride","ImageOverride","imageOverride","externalLink","ExternalLinkIcon","externalLinkIcon","PageLink","teaserDescription","teaserTemplateTypeOverride","teaserDate","hideDate","hideCardTeaserDate","teaserImage","ContextDateOverride","DATE_MED","ContextTeaserDate","useExternalLink","linkType","externalLinkTitle","FinalDate","image","Type","ContentRowPdfList","Row","useTranslation","featuredTeaserTitle","featuredTeaserDescription","HeadingAccent","AccentColor","SectionHeadingSize","SectionHeadingSitecore","OverrideAlignment","TextInput","isAnimated","autoloadContentRowBlock","AutoloadContentRowSitecore","featuredContent","TitleAccentColor","NumberOfDesktopRows","NumberOfMobileCards","ContentTypes","Tags","SearchResultsPage","TitleInput","ApplyTagsFromPage","setResults","isLoading","setIsLoading","hasError","setHasError","excludedID","contentURL","ButtonTag","templates","tags","tagsID","tagsNames","Identifier","formattedTags","formattedTemplates","templateCallParams","tagCallParams","performSearch","searchString","currentItemId","itemId","AutoloadContentRowTranslation","AutoloadContentRowWithPlaceholder","EducationTypeEnum","sectionTitle","educationList","barAdmissions","hasEducation","hasBarAdmissions","sort","yearOfDegree","education","degree","school","barAdmission","BioProfessionalInvolvementSitecore","znBlock","getVCardUrl","FirstName","MiddleName","LastName","PrimaryPhoneNumber","SecondaryPhoneNumber","PrimaryPhoneLabel","SecondaryPhoneLabel","Email","contactCardJSON","givenName","familyName","works","organization","primaryNumber","secondaryNumber","phones","primaryNumberJSON","secondaryNumberJSON","emails","contactCard","vcard","generate","BioProfileHeroSitecore","socialmedia","dropdown","Role","LeadParagraph","OtherPhone","BusinessEmail","BusinessPhone","Prefix","Suffix","HighResolutionImage","RelatedOffices","profileHeroBlock","hasImage","relatedOffices","BusinessPhoneLabel","OtherPhoneLabel","offices","hasContactDetails","fullName","trim","QuoteIcon","QuoteSitecore","QuoteText","Subtext","QuoteColor","quote","BioQuoteSitecore","FeaturedList","featuredList","BasicFeaturedList","getHighlightValue","Highlights","FeaturedListItem","ParagraphText","DividerLines","AddTitleArrows","highlightSelector","highlightNewClass","expandDown","editable","bioRelatedArticleListBlock","BioRelatedArticleListSitecore","Description","FeaturedItemsCount","RepresentativeTitle","ButtonText","RepresentativeItemsCount","RepresentativeItems","RepresentativeItemType","ContextDescriptionField","bioPageId","featuredItemsCount","representativeItemsCount","featuredResults","setFeaturedResults","representativeResults","setRepresentativeResults","featuredConditions","representativeConditions","contextItemField","representativeContextItems","IncludeInSearch","displayedRepresentativeItems","some","featuredResultsHandler","excludedIds","FeaturedTeaserTitle","Narrative","narrative","TeaserDate","TeaserDisplayDate","teaserDisplayDate","NotNavigatable","Source","representativeResultsHandler","showButton","carousel","activeSlide","setActiveSlide","createPagination","pages","activePage","pagination","role","disabled","component","data-slide","arial-label","isLarge","getPagination","ColumnGrid","column","Columns","PaddingLeft","PaddingRight","HasYPadding","HideMobile","VerticalAlignment","ColumnGridPlaceholder","ContactCard","contactNameOverride","profileURL","lowResolutionImage","Name","charAt","ContactNameOverride","contactCardsBlock","ContactCards","contactCardsContext","contactCardList","SectionTitle","HideProfileImages","HideProfileImagesMobile","Inline","ContentCardRow","contentCards","HideOnMobile","contentCardRowBlock","ContentCardRowSitecore","ContextContactCardsSitecore","contextContactCardList","TemplateFieldName","dataField","ContactCardsItems","contactCardItemsNodes","contact","LowResolutionImage","ContextFeatureListSitecore","FieldTitle","FieldParagraph","hasFieldTitle","hasFieldParagraph","titleFieldName","paragraphFieldName","FeatureListItems","paragraphText","ContextLinkListSitecore","listFieldName","LinkListItems","HideInPdf","navigatable","RichTextSitecore","HighlightedColor","RichTextSize","CustomRichTextClass","richTextBlock","highlightColour","hasHighlight","tablesArray","getElementsByTagName","rows","totalColumns","offsetHeight","parentElement","cells","minWidth","colTotal","setTableCellWidths","ContextRichTextSitecore","TemplateFieldNameOverride","ApplyTemplateToSearch","HideInArticleTagList","searchQuery","tagListBlock","TagList","tagList","searchLinkedTags","searchLinkedTagList","BasicTagList","ContextTagList","TagListItems","Checkbox","checked","change","pId","disabledState","setDisabledState","onKeyPress","CheckboxWrapper","highLevelId","isDropdownFilter","notTabbable","SearchBarFilter","translation","activeFilter","toggleFilter","checkBox","uncheckAllBoxes","onApplyFilters","searchBarFilterBlock","totalSelected","parentId","selectableFilters","hasResults","option","Virtual","EventAutofillSearchResult","searchBarBase","enCA","frCA","formatDate","toLocaleDateString","month","dateRange","setDateRange","isDatePickerOpen","setIsDatePickerOpen","datePickerRef","handleOutsideClick","isApplyDisabled","handleDateRangeChange","range","mode","selected","onSelect","numberOfMonths","captionLayout","fromYear","subtractDays","getStartOfWeek","getEndOfWeek","lastWeek","subtractWeeks","getStartOfMonth","getEndOfMonth","lastMonth","subtractMonths","getSearchConditions","flat","el","operation","flattenFilterOptions","setTotalSelected","paramObj","defaultChecked","updateClearOptions","oldOptions","hideMobileFilters","formatFilterTitle","searchBarBlock","staticFilterIds","templateTypeConditions","SearchBarWithTranslation","filters","DefaultFilters","defaultFilters","SearchPrompt","searchPrompt","flattenedFilters","formatFilter","URLSearchParams","search","SearchParam","get","itemID","queryParamsString","isFilterApplied","setIsFilterApplied","pageLoadingState","setPageLoadingState","firstFacetLoad","setFirstFacetLoad","allFilters","setAllFilters","stateItemID","contextFilterParams","setContextFilterParams","setActiveFilterGroup","setActiveFilterGroupState","setMobileActive","setMobileActiveState","setMobilePublishMenuActive","setMobilePublishMenuActiveState","prevActiveGroup","filterList","_setAutofillResults","autofillResultsRef","decodeURI","param","fromDate","toDate","standardFilters","peopleOnly","facetValue","fromDateStr","toDateStr","clearSingularFilter","updatedOptions","clearAllFilters","updateFacets","facettedResults","mappedFacetKey","checkedOptions","newOptions","acc","curr","updatePeopleOptions","mappedFacetArray","updateHasResults","changeTotalSelectedForFacets","filteredValues","filterParams","mapFilterFacetValue","filtersWithResults","pageState","changeTotalSelected","updatedId","newCount","checkSingularBox","newValue","currentId","updateCheckedOption","toggleActiveFilterGroup","searchConditionsHandler","mappedObject","titleCondition","queryConditions","facetSearchHandler","facetValues","mappedFacettedResults","facet","submitForm","setScrollY","documentElement","setProperty","unsetActiveFilterGroup","searchBarFilters","datePickerFilter","mappedValues","tagIdConditionsArray","every","getPropertyValue","showMobileFilters","val","paginationBase","total","OnNumberClick","leftmost","rightmost","Pagination","Total","Current","OnNext","OnPrevious","displayDate","searchResults","defaultAnimationOptions","loop","autoplay","animationData","rendererSettings","preserveAspectRatio","SearchResults","PastSessions","UpcomingSessions","UpcomingSessionsHeading","PastSessionsHeading","searchParam","setSearchParam","filterValuesInitial","historyFilters","setHistoryFilters","pastSessionItemsPerPage","upcomingSessionItemsPerPage","onreplacestate","itemsPerPage","heading","session","selectedFilters","paginationPressed","setPaginationPressed","page","setPage","resultCount","setResultCount","searchResultsRef","executeScroll","offsetParent","offsetTop","updatedSearchConditions","refineEventFormatCondition","dateCond","newDateCond","getUpdatedDateCond","pageToFetch","sortDescending","fetchSearchResults","getContentCardFields","number","SearchResultsSitecore","groupItem","fromDateObj","toDateObj","today","setHours","newToDateStr","getTime","newFromDateStr","resultItem","externalHost","expertiseFeaturedWorkListBlock","ExpertiseFeaturedWorkListSitecore","pageId","serviceName","ServiceName","encodedServiceName","generalHeroBlock","GeneralHero","ColourTheme","Eyebrow","PdfImage","LottieAnimationDesktop","LottieAnimationMobile","lottieDesktop","lottieMobile","lightTheme","responsiveLottie","setResponsiveLottie","handleResize","innerWidth","path","ExpertiseHeroSitecore","Overview","ExpertisePageLinksSitecore","expertisePageLinks","setActiveState","setHeight","setHeightState","dropdownContent","expPageLinks","ExpandText","CollapseText","LinksRow","ExpertisePageLinksContainerSitecore","expertisePageLinksComponents","mobileElements","desktopElements","bgColor","ExpertisePageLinksItem","FeaturedContentSitecore","ImageDisplay","CTAText","cTAText","CTAAltText","cTAAltText","FooterLinkList","columnTitle","links","FooterContactBar","legalText","legalLinks","FooterTeaser","buttonLink","FooterSitecore","columns","footerContactBar","footerTeaser","logo","propTypes","FootnotesTitle","Footnotes","FootnotesWithContext","footnotes","footnotesBlock","FootnotesItem","ReferenceText","ReferenceID","footnotesItemBlock","generalLandingSeachBarBlock","GeneralLandingSearchBarWithTranslation","SearchPromptOverride","pageName","formattedPageName","tagConditions","setTagConditions","templateConditions","setTemplateConditions","templatesArray","tagsNamesNonEncoded","placeholderText","GeneralLandingSearchBarSitecore","Grid","grid","ReverseColumns","emptyColumns","emptyGrid","GridPlaceholder","homepageHero","HomepageHeroSitecore","PageURL","EyebrowLeft","EyebrowRight","ImageDesktop","ImageMobile","BackgroundColor","CustomBackground","CustomBackgroundLightness","scrollSelector","scrollClass","headingRevealSelector","headingRevealClass","headingAccentSelector","headingAccentClass","headingFadeIn","expandRight","IconDropdownWithContext","DisplayRightOnMobile","socialOpen","setSocialOpen","iconDropdownBlock","popupElement","previousSibling","compStyles","getComputedStyle","halfMax","vpOffset","topOffset","bottomOffset","innerHeight","bottom","handleClick","ImageSitecore","Caption","ShowInPdf","FillSpace","FieldNameImage","FieldNameCaption","caption","imageBlock","fillSpaceBool","maxWidth","changeTitle","changeDropdown","changeCurrent","sectionIds","inPageNavigationItemBlock","SectionName","SectionID","section","InPageNavigationWithContext","pageSections","inPageNavigationBlock","PageTitle","scrolledToEnd","setScrolledToEnd","scrolledToStart","setScrolledToStart","clickedSection","setClickedSection","setMobileTitle","setMobileTitleState","setSectionIds","observerRef","sectionRef","navRef","navListRef","desktopContentRef","toggleDropdown","toggleTitle","mobileTitle","toggleCurrentPressed","currentSection","getContentWidth","listTotalWidth","contentWidth","titleWidth","isOverflow","widthArray","setContentWidth","timeoutId","resizeListener","useCurrentWidth","rootMargin","viewportOffset","selectedId","getAttribute","scrollLeft","clientWidth","offsetLeft","scrollSetup","inPageNavItems","inPageNavItem","unobserve","InteractiveMapPopup","ctaText","disableMapCTA","interMapPopupBlock","nonNavigable","dangerouslySetInnerHTML","__html","getBoundingBoxCoordinates","coordinatesArray","isBetween","inclusive","getMarkerTag","tagId","mapTags","mapTag","getMarkerTitle","markertitle","teasertitle","InteractiveMap","mapStyle","lng","lat","zoom","mapMarkerData","filterFacets","searchInput","clearAll","setClearAll","spriteData","maxNumListResults","setLng","setLat","setZoom","setMapMarkerData","setListData","setIsListLoading","updateFilterFacets","DefaultZoomLevel","MinZoomLevel","MaxZoomLevel","MaxClusterZoom","MapBoxAPIKey","MapImageExportName","Latitude","Longitude","MapLegend","mapContainer","mapboxgl","accessToken","firstPageLoad","setFirstPageLoad","isClustersOn","setIsClustersOn","sourceMapLoaded","setSourceMapLoaded","searchConditionInitial","setSearchConditionInitial","updateMapPoints","debounce","updateListPoints","withinRadiusCondition","radius","curMap","bounds","getBounds","getCenter","sw","_sw","turf","getSearchRadius","inBoundsPoints","withinRadiusPoints","mapBounds","nePoint","_ne","swPoint","parseFloat","filterInBoundMapPoints","Map","minZoom","maxZoom","preserveDrawingBuffer","addControl","NavigationControl","showCompass","scrollZoom","disable","markerTags","industries","mapSvgPath","getMapSvgPath","circleIcon","lowLevelTag","formatGeoJsonData","getSource","setData","easeTo","longitudes","latitudes","latMaxMin","lngMaxMin","isFinite","fitBounds","easeToMapPoints","enable","mapPopup","mapCardNode","ReactDOM","render","lngLat","renderMapPopup","Popup","closeOnMove","setLngLat","setDOMContent","addTo","addSource","cluster","clusterMaxZoom","clusterRadius","loadMapSource","getLayer","mapLayers","clusterLayer","addLayer","clusterCountLayer","pointShadowLayer","pointLayer","loadMapLayers","accessibilityControl","loadMapAccessibilityLayer","getCanvas","cursor","toFixed","getZoom","clusterId","cluster_id","getClusterExpansionZoom","err","loadClusterClickFunctionality","sourceDataEventHandler","dataType","sourceId","isSourceLoaded","styleDataEventHandler","isStyleLoaded","layerName","setLayoutProperty","loadMapLanguage","getStyle","sources","places","setStyle","toBlob","blob","fileURL","URL","createObjectURL","open","downloadLink","webkitURL","onclick","exportCanvasBlob","BasicInteractiveMap","InteractiveMapWithContext","InteractiveMapWithTranslation","ItemWithImage","isPageEditing","EducationInformation","DisplayDate","Document","Phone","PeopleOnly","ItemLanguage","itemWithImageBlock","knowledgeHubDate","KnowledgeHubDateSitecore","EventTitle","EventDate","monthString","monthShort","dayString","WorkPage","QuarterlyReportLanding","knowledgeHubHero","KnowledgeHubHeroSitecore","dates1","dates2","FeaturedPageImage","FeaturedContentStyle","FeaturedContentStyleTextOverride","FeaturedPageEyebrow","FeaturedPageDescriptionOverride","FeaturedPageDateOverride","FeaturedPage","DatedLinks1Title","DatedLinks2Title","DatedLinks1LandingURL","DatedLinks2LandingURL","HighlightColor","FeaturedPageDescription","ArticleDate","FeaturedPageDate","ContentStyleText","linksTarget1","linksTarget2","KnowledgeHubHeroPlaceholder","newsCard","NewsCardSitecore","newsItemURL","NewsCardRow","newsCards","NewsCardRowSitecore","officeCard","OfficeCardSitecore","LocationInfo","contentPre","contentMain","contentPost","ProfileHeroWithContext","splitName","ProjectMapListItem","isListLoading","projectMapListItemBlock","ProjectMapList","listData","setIsMobileListViewOpen","includesProjectMap","NumberOfResults","resultsLimit","projectMapListBlock","svgPath","highLevelTag","BasicProjectMapList","ProjectMapListContext","ProjectMapListWithTranslation","CheckboxWithDropdown","toggleHighLevelFilter","dropdownOptions","activeHighLevelFilterGroup","setActiveHighLevelFilterGroup","checkboxWithDropdown","hasChildren","setHasChildren","dropdownOption","parentIndex","matchingChildren","hasResultsChildren","lowLevelFilter","ProjectMapSearchBarFilter","checkLowLevelFilter","clearCategory","searchReset","dropdownPlaceholderText","highLevelFilters","setSearchInput","prevActiveHighLevelGroup","highLevelFilter","lowLevelFilters","ProjectMapSearchBarFilterMobile","checkAdvancedFilter","checkHighLevelFilter","isMobileFilterViewOpen","setIsMobileFilterViewOpen","toggleAdvancedFilter","isAdvancedFiltersMobileOpen","toggleAdvancedHighLevelFilter","searchBarFilterMobileBlock","isAdFilter","activeHighLevelFilterGroupTitle","setActiveHighLevelFilterGroupTitle","prevActiveHighLevelGroupTitle","includeHighLevelSelectAll","toggleActiveFilterGroupTitle","AdvancedFilter","advancedFilterBlock","showAllCheckboxes","setShowAllCheckboxes","visibleCheckboxes","showAdditionalControls","childOption","hasAvailableFilters","AdvancedFilterModal","modalRef","toggleAdvancedFilterModal","isAdvancedFiltersOpen","advancedFilterModalBlock","closeModal","advancedFilters","updateTotalSelected","categoryFilters","getAdFilTotalSelected","formatProjectSearchBarFilters","projectSearchBarFilters","urlFilters","fieldName","getTextFacetValues","advancedFilter","textValueProperty","facetName","formatAdvancedFilters","pinnedAdvancedFilters","urlTags","urlObj","isTextAdFilter","optionValues","titleOption","shift","constructSearchConditions","filtersObject","mapTagFilters","category","categoryConditions","BasicProjectMapSearchBar","activeFilterGroup","clearAllAdvancedFiltersFunc","handleSearchInput","toggleMobileFilterView","mapTitle","mainSearchPlaceholderText","mainPlaceholderText","projectMapSearchBarBlock","setSearchReset","setIsAdvancedFiltersOpen","setIsAdvancedFiltersMobileOpen","filterContainer","mobileFilterContainer","modalOpenClass","toggleAdvancedFilterModalMobile","focusableElements","firstFocusableElement","focusableContent","lastFocusableElement","shiftKey","activeElement","focusModalElements","ProjectMapSearchBarContext","ProjectMapSearchBarWithTranslation","ProjectMapContainerContext","projectsMap","projectsList","projectsSearchBar","projectsMapContainerBlock","MapBoxStyleURL","mapComponent","listComponent","searchBarComponent","mapFilters","defaultSelectedFilters","latParam","lngParam","zoomParam","keywordParam","regionsParam","industriesParam","tagsParam","setMapTags","setSpriteData","filterApplied","setFilterApplied","isAdvancedFiltersLoaded","setIsAdvancedFiltersLoaded","setFilters","setSearchConditions","isMobileListViewOpen","lowLevelId","categoryId","updatedHighLevelFilters","updatedLowLevelFilters","updateLowLevelFilter","updateAdvancedFilter","updateHighLevelFilter","isClear","updateAdvancedFilterHighLevelSection","clearHighLevelFilter","updateAdvancedFilterSection","updateCategory","updatedHighLevelFiltersMap","updatedLowLevelFiltersMap","updatedHighLevelFiltersAd","updatedLowLevelFiltersAd","updateAllCategories","flattenedFacets","categoryFacet","updateUrl","mapFilterKeyValuePairs","adFilterKeyValuePairs","tagKeyValuePairs","formatFilterParams","append","newUrl","baseURI","textFacetValues","styleURLkey","mapTagItems","svgpath","async","response","fetch","arrOfPromises","svg","Promise","all","getData","clearAllAdvancedFilters","prevValue","ProjectMapContainerWithTranslation","ProjectMapWorkArticleTable","rowItem","ContextValueField","attr","projectWorkTableRowBlock","colSpan","Label","contextValue","tableLabel","tableValue","projectValue","projectCurrency","localizedLanguage","langProjectValue","Intl","NumberFormat","currency","currencyDisplay","maximumFractionDigits","minimumFractionDigits","format","ProjectMapWorkTableSitecore","projectMapBlock","hasLocationAttributes","Jurisdiction","hasLevelAttributes","hasClientAttributes","ClientName","qLAnimationSectionBlock","quarterlyHero","quarterlyIntro","qLIntro","setqLIntro","touchStart","setStartTouch","quarterlyAnimationClass","htmlElement","mainNavBar","scrollBarHandler","getWindowSize","applyDownwardsScrollAnimation","qLHero","isNavOpen","applyUpwardsScrollAnimation","deltaY","qLAnimationSection","handleScrollBar","lastScroll","pageYOffset","scrollTop","sectionTop","currentScroll","handleKeyDown","handleTouchEnd","changedTouches","screenY","keyDownCallback","touchStartCallback","touchEndCallback","scrollBarCallback","handleWindowResize","QuarterlyArticleNavigationBanner","PreviousArticleText","PreviousArticleAltText","PreviousArticleLink","NextArticleText","NextArticleAltText","NextArticleLink","quarArticleNavBannerBlock","qLIntroBlock","QuarterlyIntroduction","sectionLinks","IntroductionParagraph","SectionsLabel","qLIntroAnimationBlock","qlIntroItemBlock","QuarterlyIntroductionListItem","SectionHighlightColour","qLHeroBlock","QuarterlyLandingHero","FeaturedImage","OverlayImage","qLHeroAnimationBlock","OverlayColor","overlayColor","scrollContainerRef","contentContainerRef","qLSectionHeader","QuarterlySectionHeader","AddDateFilters","RepresentativeWorkFilter","representativeWorkFilterBlock","repWorkData","RepresentativeWorkWithTranslation","countUpdatedOptions","RepresentativeWork","representativeWorkBlock","pageTags","applyDefaultPageTags","applyRecommendedFilters","serviceNameOverride","finalServiceName","pageTagIds","incomingSearchParams","incomingSearchParam","incomingPageParam","pageTagCondition","setPageTagCondition","filtersAppliedObject","setFiltersAppliedObject","setPageTitle","repWorkFilterRef","newArray","byIdentifier","formatAllFilters","selectedFilterOptions","isSubfilterGroup","queryParam","tagParam","subTagParam","pageParam","selectedTags","standardFiltersWithoutSubtags","pageTag","subFilters","associatedSubFilter","standardFiltersWithSubTags","closeBypass","RepresentativeWorkStorybookContext","monthMap","MonthPicker","monthYear","setMonthYear","toggleMobilePublishMenu","monthPickerBlock","currentYear","setYearState","monthType","updateYear","offset","String","currentColor","includeContentTypes","defaultContentTypes","PeopleOnlySearch","searchObject","setSearchObject","personSearchFilters","startMonthYear","setStartMonthYear","endMonthYear","setEndMonthYear","prevStartDate","prevEndDate","personFilterName","setPersonFilterName","contentFilter","v","toggleStartMonthYear","toggleEndMonthYear","toggleMobilePublishMenuOpen","startMonth","startYear","endMonth","endYear","peopleFilters","translatedFilterLabel","urlFormattedFilterTitle","peopleFacetHandler","personInfo","searchTags","peopleConditions","targetValue","orderBy","includeBioPageOnlyExclusion","bioTitle","prefix","suffix","paragraphRegex","ItemsPerPage","DefaultSortingOrder","ItemsPerPageValue","sortDefault","orderByOptions","isDropdownActive","setIsDropdownActive","setOrderBy","getDescription","leadParagraph","peopleSearchOrder","orderByValue","order","businessEmail","businessPhone","sectionBlock","Section","BackgroundCustomColor","FullWidth","FullHeight","Highlight","HighlightCustomColor","HighlightIndent","ID","HorizontalAlignment","HideEmpty","sectionStyles","isHideSection","setIsHideSection","hideSection","checkSectionContent","hasMedia","contentSection","nonPeripheralItems","dataset","isPeripheral","hasInnerText","p","showSection","displaySection","navItem","removeAttribute","MutationObserver","disconnect","attributes","childList","subtree","SectionWithPlaceholder","NavigationType","sideNavigationItemBlock","SideNavigationWithContext","sideNavigationBottom","sideNavigation","sideNavigationBlock","sideNavigationItems","NavigationTitleOverride","AddPDFDownloadLink","SocialMediaLinkArgs","sections","setInteractionObserver","contactCardInclude","SideNavigationWithTranslation","SimpleHero","block","HeroTitle","LineColor","HeroDescription","SnippetComponent","isExperienceEditorActive","StatisticsSitecore","Subtitle1","Paragraph1","CTAURL1","Subtitle2","Paragraph2","CTAURL2","Statistic1","StatisticSubtitle1","Statistic2","StatisticSubtitle2","Statistic3","StatisticSubtitle3","statBlock","stickySideBannerBlock","StickySideBannerWithContext","stickySideBanner","stickySideBannerContent","stickySideSectionBlock","StickySideSection","leftStickyContent","rightContent","AlternateColorsOverride","StickySideSectionWithPlaceholder","StudentProfileWithContext","PhoneNumber","EmailAddress","twoColStickySideBannerBlock","TwoColStickySideBannerWithContext","leftColumnContent","rightColumnContent","TwoColumnProfileListSitecore","twoColumnListItems","twoColumnProfileListBlock","TwoColumnProfileListItem","twoColumnProfileListItemBlock","VideoURL","playerURL","setPlayerURL","videoBlock","activeGroups","OnetrustActiveGroups","Boolean","videoId","dnt","video_id","error","fetchPlayerURL","frameBorder","allowFullScreen","components","componentFactory","componentName","set","Accordion","ArticleHeading","ArticleHero","AutoloadContentRow","BioEducation","BioProfessionalInvolvement","BioProfileHero","BioQuote","BioRelatedArticleList","Carousel","ContactCardManual","ContentCard","ContextContactCards","ContextFeatureList","ContextLinkList","ContextRichText","EventSearchBar","EventSearchResults","ExpertiseFeaturedWorkList","ExpertiseHero","ExpertisePageLinks","ExpertisePageLinksContainer","FeaturedContent","Footer","GeneralLandingSearchBar","HomepageHero","HorizontalRule","IconDropdown","InPageNavigation","InPageNavigationItem","KnowledgeHubDate","KnowledgeHubHero","NavBarMain","Navigation","NewsCard","OfficeCard","PartialContainer","ProfileHero","ProjectMapContainer","ProjectMapSearchBar","ProjectMapWorkArticleTableDivider","ProjectMapWorkArticleTableRow","ProjectMapWorkTable","QuarterlyAnimationSection","QuarterlyIntroductionAnimation","QuarterlyLandingHeroAnimation","QuarterlyNavigation","Quote","RichText","SearchBar","SectionHeading","SideNavigation","SideNavigationItem","Statistics","StickySideBanner","StudentProfile","TwoColStickySideBanner","TwoColumnProfileList","dataFetcher","axios","withCredentials","NotFound","context","site","RouteHandler","Component","super","extractRouteData","sitecore","notFound","defaultLanguage","routeData","updateLanguage","myRef","createRef","componentDidMount","nprogress","ssrRenderComplete","updateRouteData","done","sitecoreRoutePath","sitecoreRoute","fetchOptions","layoutServiceConfig","host","querystringParams","sc_lang","sc_apikey","sitecoreApiKey","fetcher","dataApi","fetchRouteData","status","console","getRouteData","updateSitecoreContext","setState","newLanguage","i18n","componentDidUpdate","previousProps","existingRoute","newRoute","reload","updatable","routePatterns","AppRoot","setSsrRenderComplete","ssrState","Router","graphQLClient","routePattern","renderFunction","initLanguage","__JSS_STATE__","ssrRawJson","JSON","innerHTML","hydrate","initialGraphQLState","APOLLO_STATE","dictionary","resolve","reject","debug","fallbackLng","load","useCookie","interpolation","escapeValue","isInitialized","addResourceBundle","use","initReactI18next","init","dictionaryServicePath","jssAppName","backend","loadPath","parsedData","phrases","fetchBackend","rootElement","BrowserRouter","copyToClipboard","navigator","clipboard","writeText","contentToCopy","onKeyDown","socialMediaLinksBlock","getLinkType","SocialMediaLinksSitecore","DisplayStyle","ShowLabels","LabelsMarginSize","FacebookInclude","FacebookLinkType","TwitterInclude","TwitterLinkType","LinkedInInclude","LinkedInLinkType","EmailInclude","PDFInclude","CopyUrlInclude","PDFServiceURL","hash","locationString","pdfURL","setPdfURL"],"mappings":"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","file":"static/js/main.85b666d0.chunk.js","sourcesContent":["import React from 'react';\nimport { ThemeEnum, SizeEnum } from '../utils/enums.js';\n\nexport const SearchIcon = ({ theme, customColor }) => {\n let color = theme === ThemeEnum.dark.toLowerCase() ? 'white' : '#424D54';\n color = customColor || color;\n return (\n \n \n \n );\n};\n\nexport const HamburguerMenu = ({ theme }) => {\n const color = theme === ThemeEnum.dark.toLowerCase() ? 'white' : 'black';\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ShareIcon = () => {\n return (\n \n \n \n );\n};\n\nexport const CloseIcon = ({ customColor, size }) => {\n const color = customColor || '#006EAA';\n\n if (size === SizeEnum.small) {\n return (\n \n \n \n );\n } else {\n return (\n \n \n \n \n );\n }\n};\n\nexport const Globe = ({ theme }) => {\n const color = theme === ThemeEnum.dark.toLowerCase() ? 'white' : 'black';\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const MailIcon = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const PhoneIcon = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const MovieCameraIcon = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const HeadPhonesIcon = () => {\n return (\n \n \n \n \n );\n};\n\nexport const DocumentIcon = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const NewsPaperIcon = () => {\n return (\n \n \n \n );\n};\n\nexport const QuarterlyIcon = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const NotebookIcon = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const CalendarIcon = () => {\n return (\n \n \n \n \n );\n};\n\nexport const InPersonEventIcon = () => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport const StaticEventIcon = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const SearchBarIcon = () => {\n return (\n \n \n \n \n );\n};\n\nexport const SelectedCheckbox = () => {\n return (\n \n \n \n \n );\n};\n\nexport const UnselectedCheckbox = () => {\n return (\n \n \n \n );\n};\n\nexport const Checkmark = () => {\n return (\n \n \n \n );\n};\n\nexport const CalendarSearchBarIcon = () => {\n return (\n \n \n \n \n );\n};\n\nexport const PersonIcon = () => {\n return (\n \n \n \n \n );\n};\n\nexport const CloseBubbleIcon = () => {\n return (\n \n \n \n \n );\n};\n\nexport const BookmarkIcon = () => {\n return (\n \n \n \n \n );\n};\n\nexport const BriefcaseIcon = () => {\n return (\n \n \n \n );\n};\n\nexport const MapExport = () => {\n return (\n \n \n \n \n );\n};\n\nexport const ListView = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const MapView = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport const MapFilters = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const MapAdvancedFilters = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport Text from '../Text/Text.jsx';\nimport { Button } from '../Button/Button.js';\nimport { ChevronDown } from '../../assets/LinkIcons.js';\n\nimport './dropdown.scss';\nimport classNames from 'classnames';\n\nconst Dropdown = ({ active, title, Icon, content, theme, border }) => {\n const [isActive, setActive] = useState(active);\n\n useEffect(() => {\n const escFunction = (event) => {\n if (event?.key === 'Escape') {\n setActive(false);\n }\n };\n\n window.addEventListener('keydown', escFunction);\n\n return () => {\n window.removeEventListener('keydown', escFunction);\n };\n }, []);\n\n return (\n \n {\n setActive(!isActive);\n }}\n >\n {Icon && (\n \n \n \n )}\n \n \n \n \n \n {isActive &&
{content}
}\n
\n );\n};\n\nexport default Dropdown;\n","const config = require('./temp/config');\n\n/**\n * Check is disconnected mode started\n * @returns {boolean}\n */\nconst isDisconnected = () => /localhost/i.test(config.sitecoreApiHost);\n\nmodule.exports.isDisconnected = isDisconnected;\n\n/**\n * Get hostname which used to access application, in disconnected mode it can be localhost or ip address\n * @returns {string} hostname\n */\nmodule.exports.getHostname = () =>\n isDisconnected() ? window.location.origin : config.sitecoreApiHost;\n","import React from 'react';\nimport classnames from 'classnames';\nimport './autofill-search-result.scss';\nimport { RichText, Image as Img } from '@sitecore-jss/sitecore-jss-react';\nimport {\n DocumentIcon,\n MovieCameraIcon,\n HeadPhonesIcon,\n NewsPaperIcon,\n CalendarIcon,\n BookmarkIcon,\n BriefcaseIcon,\n PersonIcon,\n} from '../../assets/common.js';\nimport { SearchResultTypeEnum } from '../../utils/enums';\nimport { parseContentType } from '../../utils/searchHelpers.jsx';\n\nconst TypeToIconEmum = {\n Podcast: HeadPhonesIcon,\n Insight: NewsPaperIcon,\n Event: CalendarIcon,\n Video: MovieCameraIcon,\n News: BriefcaseIcon,\n WorkItem: DocumentIcon,\n QuarterlyIssue: NewsPaperIcon,\n ContentSeries: BookmarkIcon,\n Webinar: MovieCameraIcon,\n BioPage: PersonIcon,\n};\n\nconst boldString = (str, query, resultType) => {\n const n = resultType?.value === SearchResultTypeEnum.biopage ? str : str.toUpperCase();\n const q = resultType?.value === SearchResultTypeEnum.biopage ? query : query.toUpperCase();\n const x = n.indexOf(q);\n if (!q || x === -1) {\n return str;\n }\n const l = q.length;\n return (\n str.substr(0, x) +\n '' +\n str.substr(x, l) +\n '' +\n str.substr(x + l)\n );\n};\n\nconst AutofillSearchResult = ({ fields, searchValue }) => {\n const autofillSearchResultsBlock = 'zn-autofill-search-result';\n const { Image, Title, LinkUrl, ResultType } = fields;\n const ContentTag = LinkUrl?.value ? 'a' : 'div';\n const ContentStyle = ResultType?.value ? parseContentType(ResultType?.value) : '';\n const IconTag = ContentStyle ? TypeToIconEmum[ContentStyle.replace(/\\s/g, '')] : '';\n let titleValue = boldString(Title?.value, searchValue, ResultType);\n\n let withImage =\n !Image?.value?.class &&\n Image?.value &&\n Object.keys(Image?.value).length > 0 &&\n Image?.value?.src;\n\n return (\n \n {ResultType?.value === SearchResultTypeEnum.biopage && withImage && (\n
\n \n
\n )}\n {((ResultType?.value !== SearchResultTypeEnum.biopage && !!IconTag) ||\n (ResultType?.value === SearchResultTypeEnum.biopage &&\n !withImage &&\n !!IconTag)) && (\n \n \n \n )}\n \n \n );\n};\n\nexport default AutofillSearchResult;\n","export const templateNameCondition = '_templatename';\nexport const nameCondition = '_name';\nexport const tagIdentifierCondition = 'identifier';\nexport const tagNameCondition = 'tags';\nexport const subTagNameCondition = 'subtags';\nexport const teaserDateSortBy = 'teaserdate';\nexport const scoreSortBy = 'score';\nexport const includeInSearchCondition = 'includeinsearch';\nexport const rootItem = '/sitecore/content/zenith tenant/zenith site/home';\nexport const isSearchable = { name: includeInSearchCondition, value: 'True' };\nexport const relatedPeopleCondition = 'relatedpeople';\nexport const relatedFeaturedPeopleCondition = 'relatedfeaturedpeople';\nexport const workItemTemplate = { name: templateNameCondition, value: 'Work Page' };\nexport const relatedFeaturedPagesCondition = 'relatedfeaturedpages';\nexport const notBioPageOnlyCondition = { name: 'biopageonly', value: 'False' };\nexport const rootSiteItem = '/sitecore/content/zenith tenant/zenith site';\nexport const allTemplatesConditions = [\n 'About Us',\n 'Bio Page',\n 'Event',\n 'Expertise Landing',\n 'General Landing',\n 'Homepage',\n 'Knowledge Hub',\n 'News',\n 'Office',\n 'Podcast',\n 'Premium Article',\n 'Premium Expertise Landing',\n 'Project Map Work',\n 'Publication Page',\n 'Quarterly Report Landing',\n 'Service',\n 'Video',\n 'Webinar',\n 'Work Page',\n];\nexport const displayedContentTypes = ['Work', 'News', 'Events', 'Insights', 'Podcasts', 'Videos'];\nexport const peopleRelationsArray = [\n 'relatedpeople',\n 'dealteamlist',\n 'relatedfeaturedpeople',\n 'relatedprofessionals',\n];\nexport const bioPageTemplateCondition = { name: '_templatename', value: 'Bio Page' };\nexport const mapTagCondition = { name: '_templatename', value: 'MapTag' };\nexport const mapMarkerInheritanceCondition = {\n name: '_templates',\n value: 'a48ae6a3415d5031b9f5792c3ed3ccc2',\n};\nexport const includeInMapCondition = { name: 'includeinmap', value: 'True' };\nexport const MAP_DEBOUNCE_CONST = 1000;\nexport const MAP_EASE_PADDING_CONST = 70;\n","import {\n allTemplatesConditions,\n templateNameCondition,\n tagNameCondition,\n tagIdentifierCondition,\n peopleRelationsArray,\n} from './constants';\n\nimport { ContentCardType } from './enums';\n\n//Function to format a key value pair to be used as a condition in a solr query\nexport const formatSearchParams = (key, value) => {\n return { name: key, value: value, useor: true };\n};\n\nexport const formatDate = (date) => {\n return (\n date.substr(0, 4) +\n '-' +\n date.substr(4, 2) +\n '-' +\n date.substr(6, 5) +\n ':' +\n date.substr(11, 2) +\n ':' +\n date.substr(13, 3)\n );\n};\n\nexport const bioParseDate = (date, formatWithCommas) => {\n let formattedDate = new Date(date).toDateString().split(' ');\n if (formatWithCommas) {\n return [formattedDate[1], formattedDate[2] + ',', formattedDate[3]].join(' ');\n } else {\n return formattedDate.slice(1).join(' ');\n }\n};\n\nexport const parseDate = (date, formatWithCommas) => {\n let formattedDate = new Date(formatDate(date)).toDateString().split(' ');\n if (formatWithCommas) {\n return [formattedDate[1], formattedDate[2] + ',', formattedDate[3]].join(' ');\n } else {\n return formattedDate.slice(1).join(' ');\n }\n};\n\nexport const PeopleFiltersValues = [\n {\n fieldValue: 'education',\n label: 'School',\n },\n {\n fieldValue: 'yearofcall',\n label: 'Year Of Call',\n },\n];\n\n//Maps the display names used in the content filter to the sitecore template names to be used in search queries\nexport const mapFacetTypeToDisplay = (facetTypes) => {\n let displayTypes = [];\n for (let i = 0; i < facetTypes.length; i++) {\n //Group of templates for filter group, default apply template name specified\n switch (facetTypes[i]) {\n case 'work page':\n displayTypes.push('Work');\n break;\n case 'premium article':\n displayTypes.push('Insights');\n break;\n case 'publication page':\n displayTypes.push('Insights');\n break;\n case 'podcast':\n displayTypes.push('Podcasts');\n break;\n case 'video':\n displayTypes.push('Videos');\n break;\n case 'event':\n displayTypes.push('Events');\n break;\n case 'news':\n displayTypes.push('News');\n break;\n }\n }\n return displayTypes;\n};\n\n//Maps the display names used in the content filter to the sitecore template names to be used in search queries\nexport const mapDisplayTypeToTemplate = (selectedContentTypes) => {\n let templateTypes = [];\n for (let i = 0; i < selectedContentTypes.length; i++) {\n //Group of templates for filter group, default apply template name specified\n switch (selectedContentTypes[i]) {\n case 'Work':\n templateTypes.push('Work Page');\n break;\n case 'News':\n templateTypes.push('News');\n break;\n case 'Events':\n templateTypes.push('Event', 'Webinar');\n break;\n case 'Insights':\n templateTypes.push('Publication Page', 'Premium Article', 'Podcast', 'Video');\n break;\n case 'Podcasts':\n templateTypes.push('Podcast');\n break;\n case 'Videos':\n templateTypes.push('Video');\n break;\n default:\n templateTypes.push(selectedContentTypes[i]);\n break;\n }\n }\n return templateTypes;\n};\n//Maps the sitecore template names to the display names used in the content type filter\nexport const mapTemplateTypeToDisplay = (selectedContentTypes) => {\n let templateTypes = [];\n for (let i = 0; i < selectedContentTypes?.length; i++) {\n switch (selectedContentTypes[i]) {\n case 'Work Page':\n templateTypes.push('Work');\n break;\n case 'Work':\n templateTypes.push('Work');\n break;\n case 'News':\n templateTypes.push('News');\n break;\n case 'Events':\n templateTypes.push('Events');\n break;\n case 'Event':\n templateTypes.push('Events');\n break;\n case 'Publication Page':\n templateTypes.push('Insights');\n break;\n case 'Premium Article':\n templateTypes.push('Insights');\n break;\n case 'Insights':\n templateTypes.push('Insights');\n break;\n case 'Video':\n templateTypes.push('Videos');\n break;\n case 'Videos':\n templateTypes.push('Videos');\n break;\n case 'Podcast':\n templateTypes.push('Podcasts');\n break;\n case 'Podcasts':\n templateTypes.push('Podcasts');\n break;\n }\n }\n return templateTypes;\n};\n\n/* \n Construct Solr Search Query Conditions for fetching tagIds associated to chosen filter names.\n For all query parameters parsed from the search url the conditions created will fetch all the \n Tag data item that matches the selected identifiers from the filters.\n*/\nexport const tagIdConditions = (filterValues) => {\n let tagIds = [];\n // eslint-disable-next-line no-unused-vars\n for (const [key, value] of Object.entries(filterValues)) {\n filterValues[key]?.length > 0 &&\n key !== 'q' &&\n key !== 'start' &&\n key != 'end' &&\n key != 'contenttype' &&\n key != 'person' &&\n key.substring(0, 2) != 'sc_' &&\n tagIds.push(\n filterValues[key]\n ?.filter((item) => item !== '')\n .map((item) => formatSearchParams(tagIdentifierCondition, item))\n );\n }\n return tagIds;\n};\n\n/* \n Construct Solr Search Query Conditions for selecting items to fetch based on the template types chosen by the user.\n For all entries in the url search parameters, format a search condition that fetches items\n with the template types chosen, if no template types chosen default to all template types.\n*/\nexport const templateTypesConditions = (filterValues) => {\n let templateTypes = [];\n if (filterValues['contenttype']) {\n let mappedFilters = mapDisplayTypeToTemplate(filterValues['contenttype']);\n let condition = {\n group: mappedFilters?.map((item) => formatSearchParams(templateNameCondition, item)),\n };\n condition.group.length > 0 && templateTypes.push(condition);\n } else\n templateTypes.push({\n group: [\n ...allTemplatesConditions.map((item) =>\n formatSearchParams(templateNameCondition, item)\n ),\n ],\n });\n\n return templateTypes;\n};\n\n/* \n Construct Solr Search Query condition array for selected tags. \n Params:\n - TagIdResults - the ids of the selected tags\n - filterValues - parsed url query parameters to use as the search conditions\n Returns the formatted group search conditions to be used in the search query for results based on the users selected filters\n \n*/\nexport const tagSearchConditions = (tagIdResults, filterValues, peopleFilterKeys, t) => {\n let searchConditions = [];\n // eslint-disable-next-line no-unused-vars\n for (const [key, value] of Object.entries(filterValues)) {\n // For query parameters that are to apply tag conditions (excluding the people filter values, contenttypes, and search parameters)\n if (\n filterValues[key]?.length > 0 &&\n key !== 'q' &&\n key !== 'start' &&\n key != 'end' &&\n key != 'contenttype' &&\n key != 'school' &&\n key != 'yearofcall' &&\n key != 'person' &&\n !peopleFilterKeys.includes(key) &&\n key.substring(0, 3) != 'sc_'\n ) {\n //if the query parameter has values, construct a group condition that applies an OR relationship between all items in the given filter\n if (filterValues[key].length > 0 && filterValues[key][0] !== '') {\n let condition = {\n group: filterValues[key]\n //For every item selected in the filter, find the associated tagId from the tag search results where the tag identifier matches the value in the search params url\n ?.filter((item) =>\n tagIdResults?.results.find(\n (x) => x?.identifier === decodeURIComponent(item)\n )\n )\n // From the found ids, construct a condition so search for items that have tags equal to the ids\n .map((item) =>\n formatSearchParams(\n tagNameCondition,\n tagIdResults?.results\n .find((x) => x?.identifier === decodeURIComponent(item))\n ?.id.toLowerCase()\n )\n ),\n };\n //Add the filter group condition to overall search condition applying an AND relationship between filters\n condition.group.length > 0 && searchConditions.push(condition);\n }\n }\n // For all people filters based on facets names, construct a group condition that applies an OR relationship between all selected items in the given filter\n else if (\n peopleFilterKeys.includes(key) &&\n filterValues[key].length > 0 &&\n filterValues[key][0] !== ''\n ) {\n let mappedFacetValue = '';\n if (key.toLowerCase() === t('School').toLowerCase().replace(/\\s/g, '')) {\n mappedFacetValue = 'education';\n } else if (key.toLowerCase() === t('YearOfCall').toLowerCase().replace(/\\s/g, '')) {\n mappedFacetValue = 'yearofcall';\n }\n let condition = {\n group: filterValues[key]\n //For every people filter item, construct a search condition that matches the sitecore facet value to the selected filter item\n ?.filter((item) => item != '')\n .map((item) => formatSearchParams(mappedFacetValue, item)),\n };\n //Add the filter group condition to overall search condition applying an AND relationship between filters\n condition.group.length > 0 && searchConditions.push(condition);\n }\n }\n\n return searchConditions;\n};\n\nexport const parseContentType = (template) => {\n let contentType;\n\n switch (template) {\n case 'Publication Page':\n contentType = ContentCardType.publication;\n break;\n case 'Event':\n contentType = ContentCardType.events;\n break;\n case 'Video':\n contentType = ContentCardType.video;\n break;\n case 'Webinar':\n contentType = ContentCardType.webinar;\n break;\n case 'Podcast':\n contentType = ContentCardType.podcast;\n break;\n case 'Work Page':\n contentType = ContentCardType.workItem;\n break;\n case 'Project Map Work Item':\n contentType = ContentCardType.workItem;\n break;\n case 'News':\n contentType = ContentCardType.news;\n break;\n case 'Quarterly Landing':\n contentType = ContentCardType.quarterlyIssue;\n break;\n case 'Quarterly Report Landing':\n contentType = ContentCardType.quarterlyIssue;\n break;\n case 'Expertise Landing':\n contentType = ContentCardType.contentSeries;\n break;\n case 'Premium Expertise Landing':\n contentType = ContentCardType.contentSeries;\n break;\n case 'Homepage':\n contentType = ContentCardType.contentSeries;\n break;\n case 'About Us':\n contentType = ContentCardType.contentSeries;\n break;\n case 'Office':\n contentType = ContentCardType.contentSeries;\n break;\n case 'Knowledge Hub':\n contentType = ContentCardType.contentSeries;\n break;\n case 'Premium Article':\n contentType = ContentCardType.quarterlyIssue;\n break;\n case 'Bio Page':\n contentType = ContentCardType.person;\n break;\n }\n\n return contentType;\n};\n\nexport const sortFilterValues = (a, b) => {\n if (isNaN(a?.label) || isNaN(b?.label)) {\n return a?.label?.localeCompare(b?.label);\n }\n return a?.label - b?.label;\n};\n\nexport const relatedPeopleConditions = (personId) => {\n let personRelationCondition = [];\n if (personId) {\n let condition = {\n group: peopleRelationsArray?.map((item) => formatSearchParams(item, personId)),\n };\n condition.group.length > 0 && personRelationCondition.push(condition);\n }\n\n return personRelationCondition;\n};\n\nexport const decodeURIComponentSafe = (s) => {\n if (!s) {\n return s;\n }\n return decodeURIComponent(s.replace(/%(?![0-9][0-9a-fA-F]+)/g, '%25'));\n};\n","import React from 'react';\nimport classnames from 'classnames';\nimport forStorybookV2 from '../../utils/forStorybook.jsx';\nimport './horizontalRule.scss';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nconst HorizontalRule = ({ params }) => {\n const { HorizontalRuleColor, PaddingTop, PaddingBottom } = params;\n\n const horizontalRule = 'zn-horizontal-rule';\n\n return (\n \n \n \n );\n};\n\nconst HorizontalRuleSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params])(HorizontalRule)\n);\n\nexport const HorizontalRuleStorybook = forStorybookV2(HorizontalRuleSitecore);\n\nexport default HorizontalRuleSitecore;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Image } from '@sitecore-jss/sitecore-jss-react';\n// eslint-disable-next-line import/no-unresolved\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport Text from '../Text';\nimport { LinkTargetValueEnum } from '../../utils/enums';\nimport './item-with-icon.scss';\n\nconst ItemWithIcon = ({ icon, description, href, linkName, theme, className }) => {\n return (\n
\n
\n \n
\n
\n \n \n
\n
\n );\n};\n\nItemWithIcon.propTypes = {\n icon: PropTypes.string,\n description: PropTypes.string,\n linkName: PropTypes.string,\n theme: PropTypes.string,\n className: PropTypes.string,\n};\n\nItemWithIcon.defaultProps = {\n icon: '',\n description: null,\n link: {},\n};\n\nexport default ItemWithIcon;\n","import React, { useState } from 'react';\nimport Link from '../Link/Link.jsx';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport MegaNavHeader from '../MegaNavHeader/MegaNavHeader.jsx';\nimport { parsePageTitle } from '../../utils/pageTitleGenerator.js';\nimport {\n LinkTargetEnum,\n ButtonVariantEnum,\n LinkVariantEnum,\n LinkSubVariantsEnum,\n} from '../../utils/enums';\nimport classnames from 'classnames';\nimport './mega-nav-primary.scss';\n\nconst OfficesName = 'Offices';\n\nconst hasLanguage = (versions, language) => {\n const langFound = versions.find((lan) => lan?.language?.name === language);\n return langFound;\n};\n\nconst MegaNavPrimary = ({\n expertiseItem,\n expertiseList,\n openMegaMenuHome,\n language,\n theme,\n authorableExpertiseLink,\n}) => {\n const [activeTab, setActiveTab] = useState(0);\n const [activeGroup, setActiveGroup] = useState(0);\n const [columnLists, setColumnList] = useState(\n Array.isArray(expertiseList) ? expertiseList[activeTab]?.children : []\n );\n const [mobileDisplay, setMobileDisplay] = useState(0);\n const [mobileHeaderValues, setMobileHeaderValues] = useState({\n title: expertiseItem?.title,\n link: expertiseItem?.descriptionLink?.url,\n linkText: expertiseItem?.descriptionLink?.text,\n secondaryLink: expertiseItem?.secondaryDescriptionLink?.url,\n secondaryLinkText: expertiseItem?.secondaryDescriptionLink?.text,\n linkTarget: LinkTargetEnum.sameTab,\n });\n const [onBackArray, setOnBackArray] = useState([openMegaMenuHome]);\n\n const changeScreenMobile = (\n pActiveTab,\n pColumnList,\n pMobileDisplay,\n pMobileHeaderValues,\n pBackArray,\n pActiveGroup\n ) => {\n setActiveGroup(pActiveGroup);\n setActiveTab(pActiveTab);\n setColumnList(pColumnList);\n setMobileDisplay(pMobileDisplay);\n setMobileHeaderValues(pMobileHeaderValues);\n setOnBackArray(pBackArray);\n };\n\n return (\n
\n
\n \n
\n
    \n {Array.isArray(expertiseList) &&\n expertiseList.map((tab, index) => {\n if (tab?.displayName) {\n return (\n \n {\n e.preventDefault();\n setActiveTab(index);\n setColumnList(expertiseList[index]?.children);\n }}\n />\n \n );\n }\n })}\n {authorableExpertiseLink?.url && (\n
  • \n \n
  • \n )}\n
\n \n {Array.isArray(columnLists) &&\n columnLists.map((list, index) => {\n return (\n \n {list?.displayName &&\n hasLanguage(list?.versions, language) && (\n <>\n {expertiseList[activeTab]?.name ===\n OfficesName ? (\n \n ) : (\n \n )}\n \n )}\n {Array.isArray(list?.children) &&\n list?.children.map((link, index) => {\n if (\n link?.displayName &&\n hasLanguage(link?.versions, language)\n ) {\n return (\n \n );\n }\n })}\n
\n );\n })}\n
\n \n \n
\n
\n {\n onBackArray[mobileDisplay]();\n }}\n />\n
    \n {mobileDisplay === 0 &&\n Array.isArray(expertiseList) &&\n expertiseList.map((list, index) => {\n if (list?.displayName) {\n return (\n
  • \n {\n e.preventDefault();\n onBackArray[1] = () => {\n setMobileDisplay(0);\n setMobileHeaderValues({\n linkTarget: LinkTargetEnum.sameTab,\n\n secondaryLink:\n expertiseItem\n ?.secondaryDescriptionLink?.url,\n title: expertiseItem?.title,\n linkText:\n expertiseItem?.descriptionLink\n ?.text,\n secondaryLinkText:\n expertiseItem\n ?.secondaryDescriptionLink\n ?.text,\n\n link:\n expertiseItem?.descriptionLink?.url,\n });\n };\n changeScreenMobile(\n index,\n expertiseList[index]?.children,\n 1,\n {\n title: {\n value: parsePageTitle(\n list?.displayName\n ),\n },\n },\n onBackArray,\n activeGroup\n );\n }}\n />\n
  • \n );\n }\n })}\n {mobileDisplay === 1 &&\n Array.isArray(columnLists) &&\n columnLists.map(\n (list, index) =>\n list?.displayName &&\n hasLanguage(list?.versions, language) && (\n
  • \n <>\n {Array.isArray(expertiseList) &&\n expertiseList[activeTab]?.name === OfficesName ? (\n \n ) : (\n {\n e.preventDefault();\n onBackArray[2] = () => {\n setMobileDisplay(1);\n setMobileHeaderValues({\n title: {\n value: parsePageTitle(\n expertiseList[activeTab]\n ?.displayName\n ),\n },\n });\n };\n changeScreenMobile(\n activeTab,\n expertiseList[activeTab]?.children,\n 2,\n {\n title: {\n value: parsePageTitle(\n list?.displayName\n ),\n },\n link: list?.url,\n linkText: parsePageTitle(\n list?.displayName\n ),\n linkTarget:\n LinkTargetEnum.sameTab,\n },\n onBackArray,\n index\n );\n }}\n />\n )}\n \n
  • \n )\n )}\n {mobileDisplay === 2 &&\n Array.isArray(columnLists[activeGroup]?.children) &&\n columnLists[activeGroup]?.children.map((item, index) => {\n if (item?.displayName && hasLanguage(item?.versions, language)) {\n return (\n
  • \n \n
  • \n );\n }\n })}\n
\n
\n
\n \n );\n};\n\nexport default MegaNavPrimary;\n","import React from 'react';\nimport ItemWithIcon from '../ItemWithIcon/ItemWithIcon.jsx';\nimport Text from '../Text/Text.jsx';\nimport MegaNavHeader from '../MegaNavHeader/MegaNavHeader.jsx';\nimport { BasicLinkList as LinkList } from '../LinkList/LinkList.jsx';\nimport LinkListItem from '../LinkListItem/LinkListItem.jsx';\nimport { LinkTargetEnum, LinkListLayoutEnum, LinkTargetValueEnum } from '../../utils/enums';\n\nimport './mega-nav-secondary.scss';\n\nconst MegaNavSecondary = ({\n t,\n insightsItem,\n insightsContentTypeTitle,\n insightsContentTypeLinks,\n openMegaMenuHome,\n editorsPicksLinks,\n}) => {\n return (\n
\n \n
\n
\n \n {insightsContentTypeTitle?.value}\n \n
    \n {Array.isArray(insightsContentTypeLinks) &&\n insightsContentTypeLinks.map((item, index) => (\n
  • \n \n
  • \n ))}\n
\n
\n
\n \n {t('EditorsPicks')}\n \n \n {Array.isArray(editorsPicksLinks) &&\n editorsPicksLinks.map((item, index) => {\n if (item?.text && item?.url) {\n return (\n \n );\n }\n })}\n \n
\n
\n
\n );\n};\n\nexport default MegaNavSecondary;\n","import React from 'react';\nimport Text from '../Text/Text.jsx';\nimport MegaNavHeader from '../MegaNavHeader/MegaNavHeader.jsx';\nimport { LinkTargetEnum, ButtonVariantEnum, LinkTargetValueEnum } from '../../utils/enums';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\n\nimport './mega-nav-tertiary.scss';\n\nconst MegaNavTertiary = ({\n insightsItem,\n aboutUsContentTypeTitle,\n aboutUsContentTypeLinks,\n openMegaMenuHome,\n}) => {\n return (\n
\n \n
\n
\n \n {aboutUsContentTypeTitle?.value}\n \n
    \n {Array.isArray(aboutUsContentTypeLinks) &&\n aboutUsContentTypeLinks.map((item, index) => (\n
  • \n \n
  • \n ))}\n
\n
\n
\n
\n );\n};\n\nexport default MegaNavTertiary;\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '../Button/Button.js';\nimport { SearchIcon, CloseIcon } from '../../assets/common.js';\nimport './search-input.scss';\nimport { scoreSortBy } from '../../utils/constants.js';\nimport { fetchResults } from '../../actions';\nimport AutofillSearchResult from '../AutofillSearchResult/AutofillSearchResult.jsx';\nimport { SearchResultTypeEnum } from '../../utils/enums.js';\n\n/**\n * Primary UI component for user interaction\n */\nconst SearchInput = ({ alt, searchPage, placeholder, dark, onClose, searchInputRef }) => {\n const theme = dark ? 'dark' : 'light';\n const seearchInputBlock = 'zn-search-form';\n const [searchParams, setSearchParams] = useState('');\n const [autofillResults, setAutofillResults] = useState([]);\n const autoloadSuggestionsRef = useRef(null);\n\n useEffect(() => {\n //set timer so search doesn't run with every new value typed\n\n const searchCondition = {\n group: [\n { name: '_name', value: `${searchParams}`, useor: true },\n { name: '_displayname', value: `${searchParams}`, useor: true },\n ],\n };\n\n const timer = setTimeout(() => {\n if (searchParams !== '') {\n fetchResults([searchCondition], [], 4, '0', scoreSortBy, true, [''], '', true)\n .then((x) => {\n setAutofillResults(x.results);\n })\n .catch(() => {\n setAutofillResults([]);\n });\n } else {\n setAutofillResults([]);\n }\n }, 500);\n return () => clearTimeout(timer);\n }, [searchParams]);\n\n const handleSearchParams = (e) => {\n setSearchParams(e.target.value);\n autoloadSuggestionsRef.current.style.display = 'block';\n };\n\n const submitForm = (event) => {\n event.preventDefault();\n let searchCondition = `q=${encodeURIComponent(searchParams)}`;\n window.location.href = `${searchPage?.url.split('?')[0]}?${searchCondition}`;\n };\n\n useEffect(() => {\n document.addEventListener('click', (e) => {\n const suggestedResults = document.getElementsByClassName(\n 'zn-search-form__suggested-results'\n )[0];\n const searchInputBar = document.getElementsByClassName('zn-search-form__input')[0];\n\n let targetElement = e.target;\n do {\n if (targetElement == suggestedResults || targetElement == searchInputBar) {\n return;\n }\n targetElement = targetElement.parentNode;\n } while (targetElement);\n if (autoloadSuggestionsRef.current)\n autoloadSuggestionsRef.current.style.display = 'none';\n });\n }, []);\n\n function searchKeyBoard(event) {\n if (event.keyCode == 13) {\n event.target.blur();\n }\n }\n\n useEffect(() => {\n searchInputRef?.current?.addEventListener('keypress', searchKeyBoard);\n return function cleanup() {\n searchInputRef?.current?.removeEventListener('keypress', searchKeyBoard);\n };\n }, []);\n\n return (\n
\n \n \n \n \n {\n autoloadSuggestionsRef.current.style.display = 'block';\n }}\n >\n \n \n \n \n \n {autofillResults?.length > 0 && (\n
    \n {autofillResults.map((result, index) => {\n if (result?.item) {\n result.fields = {\n Title:\n result?.templateName === SearchResultTypeEnum.biopage\n ? {\n value: `${result?.item?.firstName?.value} ${result?.item?.middleName?.value} ${result?.item?.lastName?.value}`,\n }\n : { value: result?.item?.teaserTitle?.value },\n Image:\n result?.templateName === SearchResultTypeEnum.biopage\n ? { value: result?.item?.profileImage }\n : {},\n ResultType: { value: result?.templateName },\n LinkUrl:\n result?.item?.notNavigatable?.value === '1'\n ? {}\n : { value: result?.item?.url },\n };\n return (\n \n \n \n );\n }\n })}\n
\n )}\n
\n \n );\n};\n\nSearchInput.propTypes = {\n action: PropTypes.string,\n alt: PropTypes.string,\n dark: PropTypes.bool,\n placeholder: PropTypes.string,\n onClose: PropTypes.func,\n};\n\nSearchInput.defaultProps = {\n action: '/search',\n alt: 'search',\n dark: false,\n onClose: undefined,\n};\n\nexport default SearchInput;\n","import React from 'react';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport Text from '../Text';\nimport SocialMediaLinks from '../SocialMediaLinks/SocialMediaLinks.jsx';\nimport { LinkTargetEnum, ThemeEnum, ButtonVariantEnum } from '../../utils/enums';\n\nconst MegaNavHomeFooter = ({\n homeSocialMediaText,\n homeSubscribeText,\n homeSocialMediaLinks,\n homeSubscribeButton,\n params,\n}) => (\n
\n
\n \n
\n\n
\n {homeSubscribeButton?.text && (\n \n )}\n
\n\n
\n {homeSocialMediaText && (\n
\n \n
\n )}\n {homeSocialMediaLinks && (\n \n )}\n
\n
\n);\n\nexport default MegaNavHomeFooter;\n","import React from 'react';\nimport Link from '../Link/Link.jsx';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport Dropdown from '../Dropdown/Dropdown.jsx';\nimport MegaNavHomeFooter from './MegaNavHomeFooter.jsx';\nimport {\n LinkTargetEnum,\n ThemeEnum,\n LanguageNamesEnum,\n LinkSubVariantsEnum,\n ButtonVariantEnum,\n LinkVariantEnum,\n} from '../../utils/enums';\nimport paramToBool from '../../utils/paramToBool.js';\n\nimport './mega-nav-home.scss';\nimport { useHistory } from 'react-router-dom';\n\nconst MegaNavHome = ({\n params,\n language,\n languages,\n pageUrl,\n theme,\n homeMainLinksPrimary,\n homeMainLinksSecondary,\n homeSecondaryLinks,\n homeSubscribeText,\n homeSubscribeButton,\n homeSocialMediaText,\n homeSocialMediaLinks,\n openMegaMenuPrimary,\n openMegaMenuSecondary,\n openMegaMenuTertiary,\n}) => {\n const history = useHistory();\n return (\n
\n
\n
    \n {Array.isArray(homeMainLinksPrimary) &&\n homeMainLinksPrimary.map((item, index) => {\n const hasDropdown =\n paramToBool(item?.isInsights?.value) ||\n paramToBool(item?.isExpertise?.value) ||\n paramToBool(item?.isAboutUs?.value);\n return (\n \n {\n e.preventDefault();\n if (hasDropdown) {\n if (paramToBool(item?.isExpertise?.value)) {\n openMegaMenuPrimary();\n } else if (paramToBool(item?.isInsights?.value)) {\n openMegaMenuSecondary();\n } else {\n openMegaMenuTertiary();\n }\n } else {\n history.push(item?.navigationLink?.url);\n }\n }}\n />\n \n );\n })}\n
\n
    \n {Array.isArray(homeMainLinksSecondary) &&\n homeMainLinksSecondary.map((item, index) => {\n const hasDropdown =\n paramToBool(item?.isInsights?.value) ||\n paramToBool(item?.isExpertise?.value) ||\n paramToBool(item?.isAboutUs?.value);\n return (\n \n {\n e.preventDefault();\n if (hasDropdown) {\n if (paramToBool(item?.isExpertise?.value)) {\n openMegaMenuPrimary();\n } else if (paramToBool(item?.isInsights?.value)) {\n openMegaMenuSecondary();\n } else {\n openMegaMenuTertiary();\n }\n } else {\n history.push(item?.navigationLink?.url);\n }\n }}\n />\n \n );\n })}\n
\n
\n
    \n {Array.isArray(homeSecondaryLinks) &&\n homeSecondaryLinks.map((item, index) => (\n
  • \n \n
  • \n ))}\n {languages.length > 0 && (\n
  • \n {\n if (lan === language) {\n return;\n }\n return (\n
  • \n \n
  • \n );\n })}\n />\n \n )}\n
\n
\n
\n \n
\n );\n};\n\nexport default MegaNavHome;\n","import React, { useEffect } from 'react';\nimport Link from '../Link/Link.jsx';\nimport { Button } from '../Button/Button.js';\nimport Dropdown from '../Dropdown/Dropdown.jsx';\nimport { SearchIcon } from '../../assets/common.js';\nimport paramToBool from '../../utils/paramToBool.js';\nimport {\n LinkTargetEnum,\n ThemeEnum,\n LanguageNamesEnum,\n LinkVariantEnum,\n LinkSubVariantsEnum,\n} from '../../utils/enums';\nimport classnames from 'classnames';\n\nconst NavBarMenuPrimary = ({\n language,\n languages,\n pageUrl,\n homeMainLinksPrimary,\n homeMainLinksSecondary,\n theme,\n activeItem,\n isMegaMenuOpen,\n onClose,\n openMegaMenuPrimary,\n openMegaMenuSecondary,\n openMegaMenuTertiary,\n setDisplaySearch,\n displaySearch,\n mainNavBarRef,\n}) => {\n const closeLanguageToggle = () => {\n const toggle = document?.getElementById('zn-language-toggle')?.firstElementChild;\n const toggleButton = toggle?.firstElementChild;\n const isToggleOpen = toggle?.children.length > 1;\n if (isToggleOpen) {\n toggleButton?.click();\n }\n };\n\n useEffect(() => {\n const toggle = document?.getElementById('zn-language-toggle');\n toggle?.addEventListener('focusout', function (event) {\n if (toggle.contains(event.relatedTarget)) {\n return;\n }\n closeLanguageToggle();\n });\n }, []);\n\n return (\n
\n \n {Array.isArray(homeMainLinksPrimary) &&\n homeMainLinksPrimary.map((item, index) => {\n const hasDropdown =\n paramToBool(item?.isInsights?.value) ||\n paramToBool(item?.isExpertise?.value) ||\n paramToBool(item?.isAboutUs?.value);\n return (\n
  • \n {\n if (hasDropdown) {\n e.preventDefault();\n if (isMegaMenuOpen && index === activeItem) {\n onClose();\n return;\n }\n\n if (paramToBool(item?.isExpertise?.value)) {\n openMegaMenuPrimary(index);\n } else if (paramToBool(item?.isInsights?.value)) {\n openMegaMenuSecondary(index);\n } else {\n openMegaMenuTertiary(index);\n }\n }\n }}\n />\n
  • \n );\n })}\n
    \n 0,\n })}\n >\n {Array.isArray(homeMainLinksSecondary) &&\n homeMainLinksSecondary.map((item, index) => {\n index += 100;\n const hasDropdown =\n paramToBool(item?.isInsights?.value) ||\n paramToBool(item?.isExpertise?.value) ||\n paramToBool(item?.isAboutUs?.value);\n return (\n
  • \n {\n if (hasDropdown) {\n e.preventDefault();\n if (isMegaMenuOpen && index === activeItem) {\n onClose();\n return;\n }\n\n if (paramToBool(item?.isExpertise?.value)) {\n openMegaMenuPrimary(index);\n } else if (paramToBool(item?.isInsights?.value)) {\n openMegaMenuSecondary(index);\n } else {\n openMegaMenuTertiary(index);\n }\n }\n }}\n />\n
  • \n );\n })}\n
  • \n {\n setDisplaySearch(!displaySearch);\n }}\n >\n \n \n
  • \n \n {languages.length > 0 && (\n
    \n {\n return (\n
  • \n \n
  • \n );\n })}\n />\n
    \n )}\n \n );\n};\n\nexport default NavBarMenuPrimary;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { Image } from '@sitecore-jss/sitecore-jss-react';\nimport classnames from 'classnames';\nimport { Button } from '../Button/Button.js';\nimport { CloseIcon, SearchIcon } from '../../assets/common.js';\nimport { LinkTargetValueEnum, ThemeEnum } from '../../utils/enums';\nimport SearchInput from '../SearchInput/SearchInput.jsx';\nimport Text from '../Text';\nimport NavBarMenuPrimary from './NavBarMenuPrimary.jsx';\n\nimport './nav-bar-main.scss';\n\nconst NavNarMain = ({\n t,\n CustomBackgroundColor,\n logoLink,\n theme,\n language,\n languages,\n pageUrl,\n homeMainLinksPrimary,\n homeMainLinksSecondary,\n lightThemeLogo,\n darkThemeLogo,\n searchResultsPage,\n searchPlaceholderText,\n isMegaMenuOpen,\n onOpen,\n onClose,\n openMegaMenuPrimary,\n openMegaMenuSecondary,\n openMegaMenuTertiary,\n activeItem,\n setNavBarDisplay,\n navBarDisplay,\n animationEnabled,\n style,\n mainNavBarRef,\n mainNavBarMenuButtonRef,\n mainNavBarMenuLogoRef,\n scrollWidth,\n}) => {\n const [displaySearch, setDisplaySearch] = useState(false);\n const searchInputRef = useRef(null);\n\n const dark = theme === ThemeEnum.dark.toLowerCase();\n const logoIcon = dark ? darkThemeLogo : lightThemeLogo;\n\n useEffect(() => {\n if (displaySearch) {\n searchInputRef.current.focus();\n }\n }, [displaySearch]);\n\n useEffect(() => {\n const escFunction = (event) => {\n if (event?.key === 'Escape') {\n setDisplaySearch(false);\n onClose();\n }\n };\n\n window.addEventListener('keydown', escFunction);\n\n return () => {\n window.removeEventListener('keydown', escFunction);\n };\n }, [scrollWidth]);\n\n return (\n
    \n \n
    \n \n \n \n
    \n\n {navBarDisplay &&\n (displaySearch ? (\n {\n setDisplaySearch(!displaySearch);\n }}\n searchInputRef={searchInputRef}\n placeholder={searchPlaceholderText}\n />\n ) : (\n \n ))}\n\n {isMegaMenuOpen ? (\n
    \n \n {\n onClose();\n }}\n >\n \n \n \n
    \n ) : (\n \n \n \n \n {\n setNavBarDisplay(false);\n onOpen();\n }}\n >\n
    \n \n \n \n
    \n \n {t('Menu')}\n \n \n
    \n )}\n \n \n );\n};\n\nexport default NavNarMain;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { ExternalLink } from '../../assets/LinkIcons.js';\nimport './button.scss';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { withTranslation } from 'react-i18next';\n\nexport const Button = ({\n variant,\n as,\n backgroundColor,\n type,\n dark,\n target,\n href,\n children,\n className,\n t,\n ...props\n}) => {\n const theme = dark ? 'dark' : 'light';\n return as === 'a' ? (\n \n {children}\n {target === '_blank' && {t('OpensInANewTab')}}\n {target === '_blank' && (\n \n \n \n )}\n \n ) : (\n \n {children}\n \n );\n};\n\nButton.propTypes = {\n backgroundColor: PropTypes.string,\n as: PropTypes.oneOf(['button', 'a']),\n type: PropTypes.oneOf(['button', 'submit']),\n variant: PropTypes.oneOf(['primary', 'secondary', 'icon']),\n target: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n onClick: PropTypes.func,\n href: PropTypes.string,\n};\n\nButton.defaultProps = {\n backgroundColor: null,\n as: 'button',\n type: 'button',\n children: 'Button',\n variant: 'primary',\n target: '_self',\n className: null,\n onClick: undefined,\n href: '#',\n};\n\nexport default withTranslation()(withSitecoreContext()(Button));\n","import React, { useEffect, useState } from 'react';\nimport { Placeholder, VisitorIdentification } from '@sitecore-jss/sitecore-jss-react';\nimport createPageTitle from './utils/pageTitleGenerator';\nimport { withTranslation } from 'react-i18next';\nimport Helmet from 'react-helmet';\n\n// Using bootstrap is completely optional. It's used here to provide a clean layout for samples,\n// without needing extra CSS in the sample app. Remove it in package.json as well if it's removed here.\nimport 'bootstrap/dist/css/bootstrap.css';\nimport './assets/app.css';\n\n/*\n APP LAYOUT\n This is where the app's HTML structure and root placeholders should be defined.\n\n All routes share this root layout by default (this could be customized in RouteHandler),\n but components added to inner placeholders are route-specific.\n*/\n\nexport const MAIN_CONTENT_PRE = 'main-content-pre';\nconst Layout = ({ route, t, lang }) => {\n const pageTitle = createPageTitle(route, t);\n const [animationStyle, setAnimationStyle] = useState('');\n const [isPopEvent, setIsPopEvent] = useState(false);\n const MetaDescriptionIncluded = route?.fields.MetaDescription?.value;\n const TeaserDescriptionIncluded =\n !route?.fields.MetaDescription?.value && route?.fields.TeaserDescription?.value;\n const MetaImageIncluded = route?.fields.MetaImage?.value?.src;\n const TeaserImageIncluded =\n !route?.fields.MetaImage?.value?.src && route?.fields.TeaserImage?.value?.src;\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setAnimationStyle('no-animation is-pdf-view');\n }\n }, []);\n\n useEffect(() => {\n if (!isPopEvent) {\n //load to top of page on new page navigation\n const html = document.querySelector('html');\n html.style.scrollBehavior = 'auto';\n\n setTimeout(function () {\n window.scrollTo(0, 0);\n html.style.scrollBehavior = 'smooth';\n });\n } else {\n //restore scroll position\n const html = document.querySelector('html');\n html.style.scrollBehavior = 'auto';\n const state = window.history.state;\n\n setTimeout(function () {\n const pageScrollValue = state.__scrollY || 0; //holds the session variable of the current page\n window.scrollTo(0, pageScrollValue);\n html.style.scrollBehavior = 'smooth';\n }, 300);\n }\n setIsPopEvent(false);\n }, [route]);\n\n useEffect(() => {\n window.history.scrollRestoration = 'manual'; //disable browser scroll restoration\n\n let originalPushState = window.history.pushState;\n let originalReplaceState = window.history.replaceState;\n\n // Overriding native history pushState function, stores current scroll position in current state when navigating away.\n window.history.pushState = function () {\n let newStateOfCurrentPage = Object.assign({}, window.history.state, {\n __scrollX: window.scrollX,\n __scrollY: window.scrollY,\n });\n originalReplaceState.call(window.history, newStateOfCurrentPage, ''); //replace state of current page overrding the native replace state function\n\n originalPushState.apply(window.history, arguments);\n };\n\n // Overriding native history replace State, makes sure we don't throw away scroll position when calling \"replaceState\".\n window.history.replaceState = function (state) {\n let newState = Object.assign(\n {},\n {\n __scrollX: window.history.state && window.history.state.__scrollX,\n __scrollY: window.history.state && window.history.state.__scrollY,\n },\n state\n );\n\n for (\n var _len = arguments.length, otherArgs = Array(_len > 1 ? _len - 1 : 0), _key = 1;\n _key < _len;\n _key++\n ) {\n otherArgs[_key - 1] = arguments[_key];\n }\n\n originalReplaceState.apply(window.history, [newState].concat(otherArgs));\n };\n window.onpopstate = () =>\n setTimeout(() => {\n setIsPopEvent(true);\n }, 0);\n }, []);\n\n useEffect(() => {\n // Set the lang attribute on the element whenever language changes\n // After the language is updated, trigger OneTrust's re-localization\n if (window.OneTrust) {\n window.OneTrust.changeLanguage(lang);\n }\n }, [lang]);\n\n return (\n \n {/* react-helmet enables setting contents, like title and OG meta tags */}\n \n {pageTitle}\n {pageTitle && }\n {MetaDescriptionIncluded && (\n \n )}\n {MetaDescriptionIncluded && (\n \n )}\n {!MetaDescriptionIncluded && TeaserDescriptionIncluded && (\n \n )}\n {!MetaDescriptionIncluded && TeaserDescriptionIncluded && (\n \n )}\n {MetaImageIncluded && (\n \n )}\n {MetaImageIncluded && (\n \n )}\n {!MetaImageIncluded && TeaserImageIncluded && (\n \n )}\n {!MetaImageIncluded && TeaserImageIncluded && (\n \n )}\n {route?.fields.MetaKeywords?.value && (\n \n )}\n \n {(!route?.fields?.ExternallySearchable?.value ||\n route?.fields?.BioPageOnly?.value) && }\n \n \n \n {/*\n VisitorIdentification is necessary for Sitecore Analytics to determine if the visitor is a robot.\n If Sitecore XP (with xConnect/xDB) is used, this is required or else analytics will not be collected for the JSS app.\n For XM (CMS-only) apps, this should be removed.\n\n VI detection only runs once for a given analytics ID, so this is not a recurring operation once cookies are established.\n */}\n \n
    \n {/* root placeholder for the app, which we add components to using route data */}\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nconst LayoutContext = withTranslation()(Layout);\n\nconst App = (props) => ;\n\nexport default App;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Text as TextJss } from '@sitecore-jss/sitecore-jss-react';\nimport './text.scss';\n\nconst headingLevels = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\nconst bodyTypes = ['body', 'bodyMd', 'bodyLg', 'allCapsSmall', 'allCaps'];\nexport const textTags = ['span', 'div', 'p', 'a', ...headingLevels];\nexport const types = [...bodyTypes, ...textTags];\n\nconst Text = ({ type, as, children, field, className, useDefaultMargin = true, ...props }) => {\n let TagName;\n\n if (as) {\n TagName = as;\n } else if (headingLevels.includes(type)) {\n TagName = type;\n } else if (bodyTypes.includes(type)) {\n TagName = 'p';\n } else {\n TagName = 'span';\n }\n\n return (\n \n {!!field && }\n {children}\n \n );\n};\n\nText.propTypes = {\n type: PropTypes.oneOf(types),\n as: PropTypes.oneOf(textTags),\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n useDefaultMargin: PropTypes.bool,\n className: PropTypes.string,\n field: PropTypes.object,\n};\n\nexport default Text;\n","import React, { useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport './button-link.scss';\nimport { ArrowRight, ExternalLink } from '../../assets/LinkIcons.js';\nimport { LinkTargetValueEnum, ThemeEnum, ButtonVariantEnum } from '../../utils/enums';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport paramToBool from '../../utils/paramToBool';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\n\nconst ButtonLink = ({ sitecoreContext, fields, params, onClick, t }) => {\n const { LinkURL } = fields;\n const { Variant, Theme, MarginBottom, MarginTop, isPeripheralContent, showInPDF } = params;\n const LinkText = LinkURL?.value?.text || '';\n const LinkAltText = LinkURL?.value?.title || '';\n\n const target =\n LinkURL?.value?.target === LinkTargetValueEnum.blank\n ? LinkTargetValueEnum.blank\n : LinkTargetValueEnum.self;\n const queryParams = LinkURL?.value?.querystring || '';\n const variant = Variant?.toLowerCase() || ButtonVariantEnum.primary.toLowerCase();\n const theme = Theme?.toLowerCase() || ThemeEnum.light.toLowerCase();\n const url = `${LinkURL?.value?.href?.split('?')[0]}?${queryParams}`;\n\n const isPdfUrl = (url) => (url.match(/\\.pdf\\??$/g) ? true : false);\n const isMedia = (url) => {\n return url?.startsWith('/-/media/') || false;\n };\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n const showInPdf = showInPDF ? paramToBool(showInPDF) : false;\n\n if (sitecoreContext?.pageEditing) {\n return (\n \n

    {LinkText}

    \n {target === '_blank' && {t('OpensInANewTab')}}\n {target === '_blank' && (\n \n \n \n )}\n {variant === 'tertiary' && target !== '_blank' && (\n \n \n \n )}\n \n );\n }\n\n if (url?.startsWith('/') && !isPdfUrl) {\n return (\n <>\n {LinkText && (\n \n \n {target === '_blank' && (\n {t('OpensInANewTab')}\n )}\n {target === '_blank' && (\n \n \n \n )}\n {variant === 'tertiary' && target !== '_blank' && (\n \n \n \n )}\n \n )}\n \n );\n }\n\n if (!(pdfView && !showInPdf)) {\n return (\n <>\n {LinkText && (\n \n \n {target === '_blank' && (\n {t('OpensInANewTab')}\n )}\n {target === '_blank' && (\n \n \n \n )}\n {variant === 'tertiary' && target !== '_blank' && (\n \n \n \n )}\n \n )}\n \n );\n }\n\n return null;\n};\n\nconst ButtonLinkSitecore = withTranslation()(\n withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields, ErrorBoundaryConditions.params])(\n ButtonLink\n )\n )\n);\n\nexport const ButtonLinkStorybook = forStorybookV2(ButtonLinkSitecore);\n\nexport default ButtonLinkSitecore;\n","const checkboxTrueValue = '1';\n\nconst paramToBool = (value) => value === checkboxTrueValue || value === true;\n\nexport default paramToBool;\n","export { default } from './Text.jsx';\n","/* eslint-disable no-unused-vars */\nimport gql from 'graphql-tag';\nimport GraphQLClientFactory from '../lib/GraphQLClientFactory';\n// eslint-disable-next-line import/no-unresolved\nimport config from '../temp/config';\nimport {\n rootItem,\n isSearchable,\n notBioPageOnlyCondition,\n rootSiteItem,\n templateNameCondition,\n} from '../utils/constants';\nimport {\n CHANGE_ENTERED_SEARCH_TEXT,\n PERFORM_SEARCH,\n REQUEST_RESULTS,\n RECEIVE_RESULTS,\n ADD_FACET_SELECTION,\n REMOVE_FACET_SELECTION,\n CHANGE_QUERY_TEXT,\n CHANGE_PAGE_OFFSET,\n SET_FACET_STATE,\n REGISTER_FACET,\n} from '../constants';\n\nexport const changeEnteredSearchText = (text) => ({\n type: CHANGE_ENTERED_SEARCH_TEXT,\n text: text,\n});\n\nexport const updatePageOffset = (offset) => ({\n type: CHANGE_PAGE_OFFSET,\n offset: offset,\n});\n\nexport const setFacetState = (payload) => ({\n type: SET_FACET_STATE,\n payload: payload,\n});\n\nexport const changeQueryText = (text) => ({\n type: CHANGE_QUERY_TEXT,\n text: text,\n});\n\nexport const addFacetSelection = (facetId, facetValueId) => ({\n type: ADD_FACET_SELECTION,\n facetId,\n facetValueId,\n});\n\nexport const registerFacet = (facetId) => ({\n type: REGISTER_FACET,\n facetId,\n});\n\nexport const removeFacetSelection = (facetId, facetValueId) => ({\n type: REMOVE_FACET_SELECTION,\n facetId,\n facetValueId,\n});\n\n// Format results from queries with information to be used by components\nconst receiveResults = (json) => {\n return {\n results: json.data.customSearch?.results?.items?.map((child) => child),\n facets: json.data.customSearch?.facets,\n totalCount: json.data.customSearch?.results?.totalCount,\n pageInfo: json.data.customSearch?.results?.pageInfo,\n };\n};\n\nconst requestResults = (keyword) => {\n return {\n type: REQUEST_RESULTS,\n keyword,\n };\n};\n\n// GraphQL fragment for facetting on data\nexport const facetFragment = gql`\n fragment FacetFragment on CustomSearchResults {\n facets {\n name\n values {\n count\n value\n item {\n identifier: field(name: \"identifier\") {\n value\n }\n name\n }\n }\n }\n }\n`;\n\n/* \n GraphQL fragment for fetching fields of query results\n \n - Fetch all teaser content to display on results\n - Fetch additional fields to be used on search results for Bio Pages\n - Fetch 'Not Navigatable' field to be used to alter design of results on components\n*/\nexport const representativeResultsFragment = gql`\n fragment ResultsFragment on CustomSearchResults {\n results {\n totalCount\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n items {\n id\n name\n templateName\n score\n item {\n displayName\n url\n teaserTitle: field(name: \"teasertitle\") {\n value\n }\n teaserDescription: field(name: \"teaserdescription\") {\n value\n }\n featuredTeaserTitle: field(name: \"featuredteasertitle\") {\n value\n }\n featuredTeaserDescription: field(name: \"featuredteaserdescription\") {\n value\n }\n narrative: field(name: \"narrative\") {\n value\n }\n teaserDate: field(name: \"teaserdate\") {\n value\n }\n teaserDisplayDate: field(name: \"teaserdisplaydate\") {\n value\n }\n teaserImage: field(name: \"teaserimage\") {\n ... on ImageField {\n src\n alt\n width\n height\n }\n }\n notNavigatable: field(name: \"notnavigatable\") {\n value\n }\n source: field(name: \"Source\") {\n value\n }\n }\n }\n }\n }\n`;\n\n/* \n GraphQL fragment for fetching fields of query results\n \n - Fetch all teaser content to display on results\n - Fetch additional fields to be used on search results for Bio Pages\n - Fetch 'Not Navigatable' field to be used to alter design of results on components\n*/\nexport const resultsFragment = gql`\n fragment ResultsFragment on CustomSearchResults {\n results {\n totalCount\n items {\n id\n name\n templateName\n score\n teaserDisplayDate: field(name: \"teaserdisplaydate\")\n item {\n displayName\n url\n teaserTitle: field(name: \"teasertitle\") {\n value\n }\n title: field(name: \"title\") {\n value\n }\n teaserDescription: field(name: \"teaserdescription\") {\n value\n }\n featuredTeaserTitle: field(name: \"featuredteasertitle\") {\n value\n }\n featuredTeaserDescription: field(name: \"featuredteaserdescription\") {\n value\n }\n narrative: field(name: \"narrative\") {\n value\n }\n teaserDate: field(name: \"teaserdate\") {\n value\n }\n hideCardTeaserDate: field(name: \"hidecardteaserdate\") {\n value\n }\n teaserImage: field(name: \"teaserimage\") {\n ... on ImageField {\n src\n alt\n width\n height\n }\n }\n teaserTemplateTypeOverride: field(name: \"teasertemplatetypeoverride\") {\n value\n }\n notNavigatable: field(name: \"notnavigatable\") {\n value\n }\n firstName: field(name: \"FirstName\") {\n value\n }\n middleName: field(name: \"MiddleName\") {\n value\n }\n lastName: field(name: \"LastName\") {\n value\n }\n businessEmail: field(name: \"BusinessEmail\") {\n value\n }\n businessPhone: field(name: \"BusinessPhone\") {\n value\n }\n externalHost: field(name: \"externalhost\") {\n value\n }\n role: field(name: \"Role\") {\n value\n }\n leadParagraph: field(name: \"LeadParagraph\") {\n value\n }\n profileImage: field(name: \"HighResolutionImage\") {\n ... on ImageField {\n src\n alt\n }\n }\n suffix: field(name: \"Suffix\") {\n value\n }\n prefix: field(name: \"Prefix\") {\n value\n }\n source: field(name: \"Source\") {\n value\n }\n }\n }\n }\n }\n`;\n\n// GraphQL fragment for fetching person name and search tags\nexport const personInfoFragment = gql`\n fragment ResultsFragment on CustomSearchResults {\n results {\n items {\n item {\n firstName: field(name: \"FirstName\") {\n value\n }\n middleName: field(name: \"MiddleName\") {\n value\n }\n lastName: field(name: \"LastName\") {\n value\n }\n searchTags: field(name: \"searchtags\") {\n ... on MultilistField {\n targetItems {\n identifier: field(name: \"identifier\") {\n value\n }\n }\n }\n }\n }\n }\n }\n }\n`;\n\n// GraphQL fragment for fetching id and name of items\nexport const resultsItemsFragment = gql`\n fragment ResultsFragment on CustomSearchResults {\n results {\n items {\n id\n name\n title: field(name: \"title\")\n identifier: field(name: \"identifier\")\n item {\n children(includeTemplateIDs: \"{E9058ADB-BD30-4699-868D-7221F106460A}\") {\n children {\n ... on SubTag {\n id\n title {\n value\n }\n identifier {\n value\n }\n }\n }\n }\n }\n }\n }\n }\n`;\n\n// GraphQL mapFragment data\nexport const mapFragment = gql`\n fragment MapFragment on CustomSearchResults {\n facets {\n name\n values {\n value\n }\n }\n results {\n items {\n name\n id\n path\n markertitle: field(name: \"markertitle\")\n teasertitle: field(name: \"teasertitle\")\n notNavigatable: field(name: \"notnavigatable\")\n disableMapCTA: field(name: \"disablemapcta\")\n lat: field(name: \"latitude\")\n lng: field(name: \"longitude\")\n industries: field(name: \"industries\")\n }\n }\n }\n`;\n\n// GraphQL fragment for facetting on data\nexport const mapTagFragment = gql`\n fragment MapTagFragment on CustomSearchResults {\n results {\n items {\n id\n title: field(name: \"title\")\n svgpath: field(name: \"svgpath\")\n }\n }\n }\n`;\n\n// GraphQL fragment for facetting on data\nexport const mapPropertiesFacetFragment = gql`\n fragment MapPropertiesFacetFragment on CustomSearchResults {\n facets {\n name\n values {\n value\n }\n }\n }\n`;\n/* \n GraphQL query to fetch search results\n\n * conditions - fields equal relations to be applied to search query\n * facetOn - if array passed not empty, facets will be applied on passed fields and returned from the search query\n * first - the number of results to fetch\n * after - the page to fetch results\n * sortBy - the field value to sort results by\n * sortDesc - boolean to sort values in descending order\n * excludeIds - the item ids to exclude from search results\n * keyword - keyword to apply to search results\n * excludeBioOnlyItems - boolean to include the condition to exclude Bio Page Only flagged pages in search\n */\nexport const fetchResults = (\n conditions,\n facetOn,\n first,\n after,\n sortBy,\n sortDesc,\n excludeIds,\n keyword,\n excludeBioOnlyItems\n) => {\n const client = GraphQLClientFactory(config.graphQLEndpoint, false, null);\n conditions.push(isSearchable);\n excludeBioOnlyItems && conditions.push(notBioPageOnlyCondition);\n const excludeIdsClause = excludeIds[0] !== '';\n const includeFacet = facetOn.length !== 0;\n let onlyFacetQuery = false;\n let conditionFragments = includeFacet\n ? `...FacetFragment\n...ResultsFragment`\n : `...ResultsFragment`;\n if (first === 0) {\n onlyFacetQuery = true;\n conditionFragments = `...FacetFragment`;\n }\n\n let conditionsString = `$conditions: [CustomItemSearchFieldQuery]\n $facetOn: [String!]\n $first: Int\n $after: String\n $sortBy: String\n $sortDesc: Boolean\n $rootItem: String\n $keyword: String`;\n\n let variablesString = `conditions: $conditions\n facetOn: $facetOn\n first: $first\n after: $after\n sortBy: $sortBy\n sortDesc: $sortDesc\n keyword: $keyword\n rootItem: $rootItem`;\n\n if (excludeIdsClause) {\n conditionsString += `\n $excludeIds: [String]`;\n variablesString += `\n excludeIds: $excludeIds`;\n }\n\n return client\n .query({\n variables: {\n conditions,\n facetOn,\n rootItem,\n first,\n after,\n sortBy,\n sortDesc,\n keyword,\n excludeIds,\n },\n query: gql`\n query CustomSearch(\n ${conditionsString}\n ) {\n customSearch(\n ${variablesString}\n ) {\n ${conditionFragments}\n }\n }\n ${includeFacet ? facetFragment : ``}\n ${!onlyFacetQuery ? resultsFragment : ``}\n `,\n })\n .then((json) => receiveResults(json));\n};\n/* \n GraphQL query to fetch representative search results\n\n * conditions - fields equal relations to be applied to search query\n * facetOn - if array passed not empty, facets will be applied on passed fields and returned from the search query\n * first - the number of results to fetch\n * after - the page to fetch results\n * sortBy - the field value to sort results by\n * sortDesc - boolean to sort values in descending order\n * excludeIds - the item ids to exclude from search results\n * keyword - keyword to apply to search results\n * excludeBioOnlyItems - boolean to include the condition to exclude Bio Page Only flagged pages in search\n */\nexport const fetchRepresentativeResults = (\n conditions,\n facetOn,\n first,\n after,\n sortBy,\n sortDesc,\n excludeIds,\n keyword,\n excludeBioOnlyItems\n) => {\n const client = GraphQLClientFactory(config.graphQLEndpoint, false, null);\n conditions.push(isSearchable);\n excludeBioOnlyItems && conditions.push(notBioPageOnlyCondition);\n const excludeIdsClause = excludeIds[0] !== '';\n const includeFacet = facetOn.length !== 0;\n let onlyFacetQuery = false;\n let conditionFragments = includeFacet\n ? `...FacetFragment\n ...ResultsFragment`\n : `...ResultsFragment`;\n if (first === 0) {\n onlyFacetQuery = true;\n conditionFragments = `...FacetFragment`;\n }\n\n let conditionsString = `$conditions: [CustomItemSearchFieldQuery]\n $facetOn: [String!]\n $first: Int\n $after: String\n $sortBy: String\n $sortDesc: Boolean\n $rootItem: String\n $keyword: String`;\n\n let variablesString = `conditions: $conditions\n facetOn: $facetOn\n first: $first\n after: $after\n sortBy: $sortBy\n sortDesc: $sortDesc\n keyword: $keyword\n rootItem: $rootItem`;\n\n if (excludeIdsClause) {\n conditionsString += `\n $excludeIds: [String]`;\n variablesString += `\n excludeIds: $excludeIds`;\n }\n\n return client\n .query({\n variables: {\n conditions,\n facetOn,\n rootItem,\n first,\n after,\n sortBy,\n sortDesc,\n keyword,\n excludeIds,\n },\n query: gql`\n query CustomSearch(\n ${conditionsString}\n ) {\n customSearch(\n ${variablesString}\n ) {\n ${conditionFragments}\n }\n }\n ${includeFacet ? facetFragment : ``}\n ${!onlyFacetQuery ? representativeResultsFragment : ``}\n `,\n })\n .then((json) => receiveResults(json));\n};\n\n/* \n GraphQL query to fetch tag items by name\n\n * conditions - item names to query in search results\n * facetOn - if array passed not empty, facets will be applied on passed fields and returned from the search query\n * first - the number of results to fetch\n * after - the page to fetch results\n * sortBy - the field value to sort results by\n * sortDesc - boolean to sort values in descending order\n * excludeIds - the item ids to exclude from search results\n * keyword - keyword to apply to search results\n */\nexport const fetchTagIds = (\n conditions,\n facetOn,\n first,\n after,\n sortBy,\n sortDesc,\n excludeIds,\n keyword\n) => {\n const client = GraphQLClientFactory(config.graphQLEndpoint, false, null);\n conditions.push({ name: templateNameCondition, value: 'Tag' }); //query global Tag data folder to get Tag ids\n const excludeIdsClause = false;\n const includeFacet = false;\n let rootItem = rootSiteItem;\n let conditionFragments = includeFacet\n ? `...FacetFragment\n...ResultsFragment`\n : `...ResultsFragment`;\n\n let conditionsString = `$conditions: [CustomItemSearchFieldQuery]\n $facetOn: [String!]\n $first: Int\n $after: String\n $sortBy: String\n $sortDesc: Boolean\n $rootItem: String\n $keyword: String`;\n\n let variablesString = `conditions: $conditions\n facetOn: $facetOn\n first: $first\n after: $after\n sortBy: $sortBy\n sortDesc: $sortDesc\n keyword: $keyword\n rootItem: $rootItem`;\n\n if (excludeIdsClause) {\n conditionsString += `\n $excludeIds: [String]`;\n variablesString += `\n excludeIds: $excludeIds`;\n }\n\n return client\n .query({\n variables: {\n conditions,\n facetOn,\n rootItem,\n first,\n after,\n sortBy,\n sortDesc,\n keyword,\n excludeIds,\n },\n query: gql`\n query CustomSearch(\n ${conditionsString}\n ) {\n customSearch(\n ${variablesString}\n ) {\n ${conditionFragments}\n }\n }\n ${resultsItemsFragment}\n `,\n })\n .then((json) => receiveResults(json));\n};\n\n/* \n GraphQL query to fetch person info by id\n\n * conditions - item names to query in search results\n * facetOn - if array passed not empty, facets will be applied on passed fields and returned from the search query\n * first - the number of results to fetch\n * after - the page to fetch results\n * sortBy - the field value to sort results by\n * sortDesc - boolean to sort values in descending order\n * excludeIds - the item ids to exclude from search results\n * keyword - keyword to apply to search results\n */\nexport const fetchPersonInfo = (\n conditions,\n facetOn,\n first,\n after,\n sortBy,\n sortDesc,\n excludeIds,\n keyword\n) => {\n const client = GraphQLClientFactory(config.graphQLEndpoint, false, null);\n\n let conditionFragments = `...ResultsFragment`;\n\n let conditionsString = `$conditions: [CustomItemSearchFieldQuery]\n $facetOn: [String!]\n $first: Int\n $after: String\n $sortBy: String\n $sortDesc: Boolean\n $rootItem: String\n $keyword: String`;\n\n let variablesString = `conditions: $conditions\n facetOn: $facetOn\n first: $first\n after: $after\n sortBy: $sortBy\n sortDesc: $sortDesc\n keyword: $keyword\n rootItem: $rootItem`;\n\n return client\n .query({\n variables: {\n conditions,\n facetOn,\n rootItem,\n first,\n after,\n sortBy,\n sortDesc,\n keyword,\n excludeIds,\n },\n query: gql`\n query CustomSearch(\n ${conditionsString}\n ) {\n customSearch(\n ${variablesString}\n ) {\n ${conditionFragments}\n }\n }\n ${personInfoFragment}\n `,\n })\n .then((json) => receiveResults(json));\n};\n\nexport const fetchPeopleFilters = (conditions, facetOn) => {\n const client = GraphQLClientFactory(config.graphQLEndpoint, false, null);\n let keyword = '';\n let conditionsString = `$conditions: [CustomItemSearchFieldQuery]\n $facetOn: [String!]\n $rootItem: String\n $keyword: String`;\n\n let variablesString = `conditions: $conditions\n facetOn: $facetOn\n keyword: $keyword\n rootItem: $rootItem`;\n\n return client\n .query({\n variables: {\n conditions,\n facetOn,\n rootItem,\n keyword,\n },\n query: gql`\n query CustomSearch(\n ${conditionsString}\n ) {\n customSearch(\n ${variablesString}\n ) {\n ...FacetFragment\n }\n }\n ${facetFragment}\n `,\n })\n .then((json) => receiveResults(json));\n};\n\nexport const fetchResultsTypeahead = (\n conditions,\n facetOn,\n first,\n after,\n sortBy,\n sortDesc,\n excludeIds,\n keyword,\n typeAhead,\n excludeBioOnlyItems\n) => {\n const client = GraphQLClientFactory(config.graphQLEndpoint, false, null);\n conditions.push(isSearchable);\n excludeBioOnlyItems && conditions.push(notBioPageOnlyCondition);\n const excludeIdsClause = excludeIds[0] !== '';\n const includeFacet = facetOn.length !== 0;\n let onlyFacetQuery = false;\n let conditionFragments = includeFacet\n ? `...FacetFragment\n ...ResultsFragment`\n : `...ResultsFragment`;\n if (first === 0) {\n onlyFacetQuery = true;\n conditionFragments = `...FacetFragment`;\n }\n\n let conditionsString = `$conditions: [CustomItemSearchFieldQuery]\n $facetOn: [String!]\n $first: Int\n $after: String\n $sortBy: String\n $sortDesc: Boolean\n $rootItem: String\n $keyword: String\n $typeAhead: String`;\n\n let variablesString = `conditions: $conditions\n facetOn: $facetOn\n first: $first\n after: $after\n sortBy: $sortBy\n sortDesc: $sortDesc\n keyword: $keyword\n rootItem: $rootItem\n typeAhead: $typeAhead`;\n\n if (excludeIdsClause) {\n conditionsString += `\n $excludeIds: [String]`;\n variablesString += `\n excludeIds: $excludeIds`;\n }\n\n return client\n .query({\n variables: {\n conditions,\n facetOn,\n rootItem,\n first,\n after,\n sortBy,\n sortDesc,\n keyword,\n excludeIds,\n typeAhead,\n },\n query: gql`\n query CustomSearch(\n ${conditionsString}\n ) {\n customSearch(\n ${variablesString}\n ) {\n ${conditionFragments}\n }\n }\n ${includeFacet ? facetFragment : ``}\n ${!onlyFacetQuery ? resultsFragment : ``}\n `,\n })\n .then((json) => receiveResults(json));\n};\n\nexport const fetchMapPoints = (conditions, withinRadius, facetOn, first, keyword) => {\n const client = GraphQLClientFactory(config.graphQLEndpoint, false, null);\n let sortBy = keyword ? 'score' : 'teaserdate';\n let sortDesc = true;\n let conditionsString = `$conditions: [CustomItemSearchFieldQuery]\n $facetOn: [String!]\n $sortBy: String\n $sortDesc: Boolean\n $keyword: String\n $rootItem: String\n `;\n\n let variablesString = `conditions: $conditions\n facetOn: $facetOn\n sortBy: $sortBy\n sortDesc: $sortDesc\n keyword: $keyword\n rootItem: $rootItem`;\n\n if (first) {\n conditionsString += `\n $first: Int`;\n variablesString += `\n first: $first`;\n }\n\n if (withinRadius) {\n conditionsString += `\n $withinRadius: WithinRadiusFieldQuery`;\n variablesString += `\n withinRadius: $withinRadius`;\n }\n\n return client\n .query({\n variables: {\n conditions,\n sortBy,\n sortDesc,\n keyword,\n withinRadius,\n rootItem,\n first,\n facetOn,\n },\n query: gql`\n query CustomSearch(\n ${conditionsString}\n ) {\n customSearch(\n ${variablesString}\n ) {\n ...MapFragment\n }\n }\n ${mapFragment}\n `,\n })\n .then((json) => receiveResults(json));\n};\n\nexport const fetchMapTags = (conditions) => {\n const client = GraphQLClientFactory(config.graphQLEndpoint, false, null);\n let conditionsString = `$conditions: [CustomItemSearchFieldQuery]`;\n let variablesString = `conditions: $conditions`;\n\n return client\n .query({\n variables: {\n conditions,\n },\n query: gql`\n query CustomSearch(\n ${conditionsString}\n ) {\n customSearch(\n ${variablesString}\n ) {\n ...MapTagFragment\n }\n }\n ${mapTagFragment}\n `,\n })\n .then((json) => receiveResults(json));\n};\n\nexport const fetchMapPropertiesFragment = (conditions, facetOn) => {\n const client = GraphQLClientFactory(config.graphQLEndpoint, false, null);\n let conditionsString = `$conditions: [CustomItemSearchFieldQuery]\n $facetOn: [String!]`;\n let variablesString = `conditions: $conditions\n facetOn: $facetOn`;\n\n return client\n .query({\n variables: {\n conditions,\n facetOn,\n },\n query: gql`\n query CustomSearch(\n ${conditionsString}\n ) {\n customSearch(\n ${variablesString}\n ) {\n ...MapPropertiesFacetFragment\n }\n }\n ${mapPropertiesFacetFragment}\n `,\n })\n .then((json) => receiveResults(json));\n};\n","import React from 'react';\nimport classnames from 'classnames';\nimport { ThemeEnum, LinkTargetEnum, LinkSubVariantsEnum } from '../../utils/enums';\nimport { ChevronRight, ChevronLeft, ChevronDown, ExternalLink } from '../../assets/LinkIcons.js';\nimport { Link as RouterLink } from 'react-router-dom';\nimport './link.scss';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { withTranslation } from 'react-i18next';\n\nfunction decodeSpecialChars(input) {\n if (!input) {\n return input;\n }\n\n const chars = { '&': '&', '&': '&', '(': '(', ')': ')' };\n return input.replace(RegExp(Object.keys(chars).join('|'), 'g'), (i) => chars[i]);\n}\n\nconst classBase = 'zn-link';\nconst Link = ({\n Variant,\n Theme,\n LinkText,\n LinkURL,\n LinkAltText,\n LinkTarget,\n SubVariant,\n className,\n onClick,\n children,\n t,\n FullPageRefresh,\n}) => {\n const variant = Variant?.value;\n const theme = Theme?.value === ThemeEnum.dark ? 'dark' : 'light';\n const target = LinkTarget?.value === LinkTargetEnum.newTab ? '_blank' : '_self';\n const subVariant = SubVariant?.value ? SubVariant.value : [];\n\n return LinkURL?.value?.startsWith('/') && !FullPageRefresh ? (\n \n {subVariant.includes(LinkSubVariantsEnum.chevronLeft) &&\n !subVariant.includes(LinkSubVariantsEnum.active) &&\n target !== '_blank' && (\n <>\n \n \n \n \n )}\n {LinkText?.value ? decodeSpecialChars(LinkText?.value) : children}\n {target === '_blank' && (\n <>\n {t('OpensInANewTab')}\n \n \n \n \n )}\n {subVariant.includes(LinkSubVariantsEnum.chevronRight) &&\n !subVariant.includes(LinkSubVariantsEnum.active) &&\n target !== '_blank' && (\n <>\n \n \n \n \n )}\n\n {subVariant.includes(LinkSubVariantsEnum.chevronDown) && (\n \n \n \n )}\n \n ) : (\n \n {subVariant.includes(LinkSubVariantsEnum.chevronLeft) &&\n !subVariant.includes(LinkSubVariantsEnum.active) &&\n target !== '_blank' && (\n <>\n \n \n \n \n )}\n {LinkText?.value ? decodeSpecialChars(LinkText?.value) : children}\n {target === '_blank' && (\n <>\n {t('OpensInANewTab')}\n \n \n \n \n )}\n {subVariant.includes(LinkSubVariantsEnum.chevronRight) &&\n !subVariant.includes(LinkSubVariantsEnum.active) &&\n target !== '_blank' && (\n <>\n \n \n \n \n )}\n\n {subVariant.includes(LinkSubVariantsEnum.chevronDown) && (\n \n \n \n )}\n \n );\n};\n\nexport default withTranslation()(withSitecoreContext()(Link));\n","import { ContentTypeEnum } from './enums.js';\nimport parse from 'html-dom-parser';\n\nexport function getChildren(node) {\n let text = '';\n if (node?.children) {\n text += getChildren(node?.children[0]);\n }\n\n if (node?.next) {\n text += getChildren(node.next);\n }\n return node?.data ? node?.data + text : text;\n}\n\nexport function parsePageTitle(title) {\n return getChildren(parse(title)[0]);\n}\n\nfunction createPageTitle(route, t) {\n const titleValue =\n route?.fields?.MetaTitle?.value || route?.fields?.TeaserTitle?.value || route?.displayName;\n const itemTitle = getChildren(parse(titleValue)[0]);\n\n let middleTitle = '';\n switch (route?.templateName) {\n case ContentTypeEnum.event:\n case ContentTypeEnum.premiumArticle:\n case ContentTypeEnum.quarterlyReportLanding:\n case ContentTypeEnum.publication:\n middleTitle = ` | ${t('Insights')}`;\n break;\n\n case ContentTypeEnum.work:\n case ContentTypeEnum.projectMapWork:\n middleTitle = ` | ${t('Work')}`;\n break;\n\n case ContentTypeEnum.news:\n case ContentTypeEnum.about:\n middleTitle = ` | ${t('About')}`;\n break;\n\n case ContentTypeEnum.people:\n case ContentTypeEnum.bioPage:\n middleTitle = ` | ${t('People')}`;\n break;\n\n default:\n middleTitle = '';\n }\n\n return `${itemTitle}${middleTitle} | ${t('TorysBrand')}`;\n}\n\nexport default createPageTitle;\n","// Threshold is the amount of the component to be on the screen. 1 is all of it, 0 nothing\nconst defaultOptions = {\n threshold: 0.2,\n};\n\nconst createIntersectionObserver = (callback, options, observables) => {\n const observer = new IntersectionObserver(callback, options);\n Array.from(observables).forEach((observable) => {\n observer.observe(observable);\n });\n};\n\nexport const setAnimationInterObserver = (selector, newClass, options) => {\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n entry.target.classList.add(newClass);\n }\n });\n };\n let content = document.querySelectorAll(selector);\n\n createIntersectionObserver(callback, options || defaultOptions, content);\n};\n\nexport default createIntersectionObserver;\n","export const ThemeEnum = {\n light: 'Light',\n dark: 'Dark',\n};\n\nexport const DisplayStyleEnum = {\n vertical: 'Vertical',\n horizontal: 'Horizontal',\n};\n\nexport const LinkTypeEnum = {\n pageLink: 'Page Link',\n shareLink: 'Share Link',\n};\n\nexport const SizeEnum = { small: 'Small', medium: 'Medium', large: 'Large' };\n\nexport const BackgroundColorEnum = {\n white: 'White',\n grey: 'Grey',\n blue: 'Blue',\n navy: 'Navy',\n lightBlue: 'Light Blue',\n};\n\nexport const HighlightColorEnum = {\n teal: 'Teal',\n orange: 'Orange',\n blue: 'Blue',\n navy: 'Navy',\n grey: 'Grey',\n};\n\nexport const LinkTargetEnum = {\n sameTab: 'Same Tab',\n newTab: 'New Tab',\n};\n\nexport const AccentColorEnum = {\n none: 'None',\n grey: 'Grey',\n teal: 'Teal',\n orange: 'Orange',\n blue: 'Blue',\n navy: 'Navy',\n};\n\nexport const HighlightColorItemEnum = {\n none: 'None',\n teal: 'Teal',\n orange: 'Orange',\n blue: 'Blue',\n navy: 'Navy',\n};\n\nexport const SectionHeadingSizeEnum = {\n large: 'Large',\n medium: 'Medium',\n eyebrow: 'Eyebrow',\n};\n\nexport const OverrideAlignmentEnum = {\n none: 'None',\n left: 'Left',\n center: 'Center',\n right: 'Right',\n};\n\nexport const TwoColumnLayoutEnum = {\n paragraph: 'Paragraph Style',\n bulletPoint: 'Bullet Point Style',\n};\n\nexport const LinkListLayoutEnum = {\n highlighted: 'Highlighted',\n singleColumn: 'Single-Column',\n doubleColumn: 'Two-Column',\n doubleColumnSpaceBetween: 'Two-Column-Space-Between',\n};\nexport const TagTypeEnum = {\n link: 'Link',\n button: 'Button',\n};\n\nexport const LinkVariantEnum = {\n small: 'Small',\n hyperlink: 'Hyperlink',\n nav: 'Nav',\n};\n\nexport const ArticleHeroAccentColorEnum = {\n teal: 'Teal',\n orange: 'Orange',\n blue: 'Blue',\n navy: 'Navy',\n white: 'White',\n};\n\nexport const ArticleHeroThemeColorEnum = {\n white: 'White',\n blue: 'Blue',\n navy: 'Navy',\n};\n\nexport const FeaturedContentBackgroundColorEnum = {\n white: 'White',\n blue: 'Blue',\n navy: 'Navy',\n};\n\nexport const HomepageHeroBackgroundColorEnum = {\n white: 'White',\n navy: 'Navy',\n blue: 'Blue',\n};\n\nexport const HomepageHeroAccentColorEnum = {\n grey: 'Grey',\n white: 'White',\n black: 'Black',\n blue: 'Blue',\n teal: 'Teal',\n orange: 'Orange',\n};\n\nexport const AccordionTitleColorEnum = {\n black: 'Black',\n navy: 'Navy',\n};\n\nexport const ButtonVariantEnum = {\n primary: 'Primary',\n secondary: 'Secondary',\n tertiary: 'Tertiary',\n};\n\nexport const FeaturedListLayoutEnum = {\n oneColumn: 'One Column',\n twoColumn: 'Two Column',\n};\n\nexport const HeadingLevelEnum = {\n h1: 'H1',\n h2: 'H2',\n h3: 'H3',\n h4: 'H4',\n h5: 'H5',\n h6: 'H6',\n};\n\nexport const HorizontalAlignmentEnum = {\n left: 'Left',\n center: 'Center',\n right: 'Right',\n};\n\nexport const VerticalAlignmentEnum = {\n top: 'Top',\n center: 'Center',\n bottom: 'Bottom',\n spaceBetween: 'Space Between',\n};\n\nexport const LanguageNamesEnum = {\n en: 'English',\n fr: 'Français',\n 'fr-FR': 'Français',\n 'fr-CA': 'Français',\n};\n\nexport const SideNavigationTypeEnum = {\n inPage: 'In-page',\n betweenPage: 'Between-pages',\n};\n\nexport const QuoteColorEnum = {\n blue: 'Blue',\n orange: 'Orange',\n teal: 'Teal',\n grey: 'Grey',\n navy: 'Navy',\n};\n\nexport const GeneralHeroColourTheme = {\n navy: 'Navy',\n blue: 'Blue',\n white: 'White',\n};\n\nexport const ArticleHeadingColorEnum = {\n blue: 'Blue',\n orange: 'Orange',\n teal: 'Teal',\n navy: 'Navy',\n black: 'Black',\n default: 'Default',\n};\n\nexport const GridPaddingEnum = {\n full: 'Full',\n half: 'Half',\n none: 'None',\n};\n\nexport const SearchResultTypeEnum = {\n people: 'People',\n video: 'Video',\n audio: 'Audio',\n document: 'Document',\n news: 'News',\n notes: 'Notes',\n event: 'Event',\n biopage: 'Bio Page',\n publication: 'Publication',\n};\n\nexport const HighlightedBlockEnum = {\n blue: 'Blue',\n orange: 'Orange',\n teal: 'Teal',\n grey: 'Grey',\n none: 'None',\n};\n\nexport const ContextRichTextEnum = {\n overview: 'Overview',\n description: 'Description',\n mainBio: 'MainBio',\n introductionToDeal: 'IntroductionToDeal',\n projectOverview: 'ProjectOverview',\n additionalDetail: 'AdditionalDetail',\n dealTeamList: 'DealTeamListText',\n};\n\nexport const RichTextSizeEnum = {\n none: 'None',\n small: 'Small',\n medium: 'Medium',\n large: 'Large',\n};\n\nexport const SearchBarCalendarEnum = {\n start: 'Start',\n end: 'End',\n publish: 'Publish',\n};\n\nexport const ContextLinkListEnum = {\n relatedServices: 'RelatedServices',\n};\n\nexport const ContextLinkListItemEnum = {\n name: 'Name',\n description: 'Overview',\n};\n\nexport const ContextFeatureListEnum = {\n relatedServices: 'RelatedServices',\n relatedWork: 'RelatedOffices',\n pinnedExperience: 'PinnedExperience',\n};\n\nexport const ContextFeatureListItemEnum = {\n none: 'None',\n name: 'displayName',\n description: 'Description',\n};\n\nexport const ContentCardColour = {\n white: 'White',\n grey: 'Grey',\n};\n\nexport const ContentCardType = {\n podcast: 'Podcast',\n publication: 'Insight',\n events: 'Event',\n video: 'Video',\n news: 'News',\n workItem: 'Work Item',\n quarterlyIssue: 'Quarterly Issue',\n contentSeries: 'Content Series',\n webinar: 'Webinar',\n person: 'Bio Page',\n};\n\nexport const ContextContactCardsEnum = {\n authors: 'Authors',\n relatedProfessionals: 'RelatedProfessionals',\n eventSpeakers: 'EventSpeakers',\n relatedPeople: 'RelatedPeople',\n relatedLawyers: 'RelatedLawyers',\n dealTeamList: 'DealTeamList',\n};\n\nexport const HorizontalRuleColorEnum = {\n light: 'Light',\n medium: 'Medium',\n dark: 'Dark',\n};\n\nexport const InsightTypeEnum = {\n podcast: 'Podcast',\n video: 'Video',\n standard: 'Standard',\n};\n\nexport const LinkTargetValueEnum = {\n self: '_self',\n blank: '_blank',\n};\n\nexport const LinkSubVariantsEnum = {\n chevronRight: 'chevron-right',\n chevronLeft: 'chevron-left',\n chevronDown: 'chevron-down',\n highlight: 'highlight',\n active: 'active',\n inactive: 'inactive',\n bold: 'bold',\n small: 'small',\n noMargin: 'no-margin',\n noPadding: 'no-padding',\n};\n\nexport const FeaturedContentImageDisplayEnum = {\n blue: 'Display with Blue Accent',\n navy: 'Display with Navy Accent',\n orange: 'Display with Orange Accent',\n teal: 'Display with Teal Accent',\n hideImage: 'Hide Image',\n none: 'Display with No Accent',\n};\n\nexport const TimeZoneEnum = {\n edt: 'utc-4',\n get server() {\n return this.edt;\n },\n};\n\nexport const NavigationThemeEnum = {\n None: 'None',\n Light: 'Light',\n Dark: 'Dark',\n};\n\nexport const ContentTypeEnum = {\n //TODO: update to complete list of content types\n publication: 'Publication Page',\n work: 'Work Page',\n news: 'News',\n event: 'Event',\n quarterly: 'Quarterly',\n people: 'People',\n podcast: 'Podcast',\n video: 'Video',\n webinar: 'Webinar',\n projectMapWork: 'Project Map Work',\n premiumArticle: 'Premium Article',\n quarterlyReportLanding: 'Quarterly Report Landing',\n about: 'About Us',\n homepage: 'Homepage',\n office: 'Office',\n bioPage: 'Bio Page',\n expertise: 'Expertise Landing',\n insight: 'Insight',\n};\n\nexport const RepresentativeItemsEnum = {\n representativeWork: 'Representative Work',\n representativeInsights: 'Representative Insights',\n representativeNews: 'Representative News',\n};\n\nexport const CustomRichTextClassEnum = {\n expertiseRichText: 'ExpertiseRichText',\n recognitionRichText: 'RecognitionRichText',\n};\n\nexport const SpacingsEnum = {\n none: 'None',\n small: 'Small',\n medium: 'Medium',\n large: 'Large',\n};\n\nexport const SearchSortingOrderEnum = {\n mostRecent: 'Most Recent',\n relevancy: 'Relevancy',\n};\n\nexport const QuarterlyOverlayColor = {\n white: 'White',\n grey: 'Grey',\n navy: 'Navy',\n};\n","import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport MegaNavHome from '../MegaNavHome/MegaNavHome.jsx';\nimport MegaNavPrimary from '../MegaNavPrimary/MegaNavPrimary.jsx';\nimport MegaNavSecondary from '../MegaNavSecondary/MegaNavSecondary.jsx';\nimport MegaNavTertiary from '../MegaNavTertiary/MegaNavTertiary.jsx';\nimport NavBarMain from '../NavBarMain/NavBarMain.jsx';\nimport { withTranslation } from 'react-i18next';\nimport paramToBool from '../../utils/paramToBool.js';\nimport { ThemeEnum } from '../../utils/enums';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport './navigation.scss';\nimport classNames from 'classnames';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { setAnimationInterObserver } from '../../utils/observers.jsx';\nimport getScrollbarWidth from '../../utils/getScrollbarWidth.js';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport BypassButton from './BypassButton.jsx';\n\nconst getOtherLanguages = (versions, language) => {\n const languages = new Set();\n\n versions.forEach((lan) => {\n if (lan?.language?.name !== language) {\n languages.add(lan?.language?.name);\n }\n });\n\n return Array.from(languages);\n};\nconst Navigation = ({ sitecoreContext, fields, params, t }) => {\n const navBlock = 'zn-main-nav';\n if (!fields?.data || !fields?.data?.datasource) {\n return (\n \n {sitecoreContext?.pageEditing &&
    Please select a datasource
    }\n \n );\n }\n const { CustomBackgroundColor, Theme, EnableAnimation } = params;\n const { Services, Industries, Offices } = fields?.data;\n const {\n lightThemeLogo,\n darkThemeLogo,\n logoLink,\n searchResultsPage,\n searchPlaceholderText,\n homeMainLinksPrimary,\n homeMainLinksSecondary,\n homeSecondaryLinks,\n homeSubscribeText,\n homeSubscribeButton,\n homeSocialMediaText,\n homeSocialMediaLinks,\n insightsContentTypeTitle,\n insightsContentTypeLinks,\n aboutUsContentTypeTitle,\n aboutUsContentTypeLinks,\n editorsPicksLinkOne,\n editorsPicksLinkTwo,\n editorsPicksLinkThree,\n editorsPicksLinkFour,\n authorableExpertiseLink,\n } = fields?.data?.datasource;\n\n const language = fields?.data?.contextItem?.language?.name;\n const languages = Array.isArray(fields?.data?.contextItem?.versions)\n ? getOtherLanguages(fields?.data?.contextItem?.versions, language)\n : [];\n\n if (typeof window === 'undefined') {\n global.window = {};\n }\n\n if (typeof document === 'undefined') {\n global.document = null;\n }\n\n const [scrollWidth, setScrollWidth] = useState(0);\n const initialTheme = Theme ? Theme?.toLowerCase() : ThemeEnum.light.toLowerCase();\n const pageUrl = window?.location?.href?.replace(/#.*$/, '').replace(`sc_lang=${language}`, '');\n const [megaMenuHome, setMegaMenuHome] = useState(false);\n const [megaMenuPrimary, setMegaMenuPrimary] = useState(false);\n const [megaMenuSecondary, setMegaMenuSecondary] = useState(false);\n const [megaMenuTertiary, setMegaMenuTertiary] = useState(false);\n const [isMegaMenuOpen, setMegaMenuOpen] = useState(false);\n const [menuActive, setMenuActive] = useState(null);\n const [navBarDisplay, setNavBarDisplay] = useState(true);\n const [qNav, setQNav] = useState(null);\n const [theme, setTheme] = useState(initialTheme);\n const [scrollPosition, setScrollPosition] = useState(window?.scrollY);\n\n const mainNavRef = useRef(null);\n const mainNavBarRef = useRef(null);\n const mainNavBarMenuButtonRef = useRef(null);\n const mainNavBarMenuLogoRef = useRef(null);\n const menuOpenClass = 'nav-open';\n const mainContent = document?.querySelector('body');\n const quarterlyElement = '.zn-quarterly-nav-bar-menu--padding-container';\n\n if (!sitecoreContext?.pageEditing) {\n mainContent?.classList?.add('body-nav');\n }\n const animationEnabled = EnableAnimation && !sitecoreContext?.pageEditing;\n\n useEffect(() => {\n setScrollWidth(getScrollbarWidth());\n if (animationEnabled) {\n // Scroll fade up reveal\n const fadeUpSelector = `.${navBlock} .fadeIn`;\n const fadeUpClass = 'fadeInActive';\n // Adds the class that activates the animation whenever the components are in the view\n setAnimationInterObserver(fadeUpSelector, fadeUpClass);\n }\n }, []);\n\n const resetMegaMenu = (isOpen) => {\n let isQuarterlyAnimationApplied = document\n ?.querySelector('body')\n ?.classList.contains('quarterly-animation');\n if (!isOpen) {\n if (isQuarterlyAnimationApplied && mainNavRef?.current?.style)\n mainNavRef.current.style.paddingRight = `${scrollWidth}px`;\n else if (mainNavRef?.current?.style) {\n mainNavRef.current.style.paddingRight = ``;\n }\n } else if (mainNavRef?.current?.style) {\n mainNavRef.current.style.paddingRight = `${scrollWidth}px`;\n }\n setMenuActive(null);\n setMegaMenuHome(false);\n setMegaMenuTertiary(false);\n setMegaMenuSecondary(false);\n setMegaMenuPrimary(false);\n setTheme(initialTheme);\n setMegaMenuOpen(isOpen);\n mainContent?.classList?.remove(menuOpenClass);\n };\n\n const openMegaMenuHome = () => {\n if (mainNavRef?.current) mainNavRef.current.style.paddingRight = `${scrollWidth}px`;\n setMenuActive(null);\n setNavBarDisplay(false);\n resetMegaMenu(true);\n setMegaMenuHome(true);\n setTheme(ThemeEnum.light.toLowerCase());\n mainContent?.classList?.add(menuOpenClass);\n };\n\n const openMegaMenuPrimary = (activeItem) => {\n resetMegaMenu(true);\n setMenuActive(activeItem);\n setMegaMenuPrimary(true);\n setTheme(ThemeEnum.light.toLowerCase());\n mainContent?.classList?.add(menuOpenClass);\n };\n\n const openMegaMenuSecondary = (activeItem) => {\n resetMegaMenu(true);\n setMenuActive(activeItem);\n setMegaMenuSecondary(true);\n setTheme(ThemeEnum.light.toLowerCase());\n mainContent?.classList?.add(menuOpenClass);\n };\n\n const openMegaMenuTertiary = (activeItem) => {\n resetMegaMenu(true);\n setMenuActive(activeItem);\n setMegaMenuTertiary(true);\n setTheme(ThemeEnum.light.toLowerCase());\n mainContent?.classList?.add(menuOpenClass);\n };\n\n const allMainLinks = []\n .concat(homeMainLinksPrimary?.targetItems)\n .concat(homeMainLinksSecondary?.targetItems);\n\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n mainContent?.classList?.add('no-nav');\n }\n }, []);\n\n useEffect(() => {\n resetMegaMenu(false);\n setTheme(initialTheme);\n setNavBarDisplay(true);\n mainContent?.classList?.remove(menuOpenClass);\n mainNavBarMenuButtonRef?.current?.classList?.remove('hide-mobile');\n mainNavBarMenuLogoRef?.current?.classList?.remove('hide-all');\n mainNavBarMenuLogoRef?.current?.classList?.remove('hide-mobile');\n let qNav = document?.querySelector(quarterlyElement);\n qNav?.classList?.remove('in-main-menu');\n qNav?.classList?.remove('no-animation-close');\n qNav?.classList?.remove('fade-out');\n }, [fields?.data?.contextItem?.id]);\n\n useEffect(() => {\n let qNav = document?.querySelector(quarterlyElement);\n const qNavTop = qNav?.getBoundingClientRect()?.top;\n const logoLeft = mainNavBarMenuLogoRef?.current?.getBoundingClientRect()?.left;\n const logoWidth = mainNavBarMenuLogoRef?.current?.getBoundingClientRect()?.width;\n const qNavLeft = qNav?.children[0]?.getBoundingClientRect()?.left;\n const navHeight = mainNavRef?.current.getBoundingClientRect()?.height;\n if (qNav?.style) {\n if (!isMegaMenuOpen && qNavTop > navHeight) {\n setNavBarDisplay(true);\n } else {\n if (mainNavBarMenuLogoRef.current)\n if (logoLeft + logoWidth > qNavLeft - 16)\n mainNavBarMenuLogoRef.current.classList.add('hide-all');\n else mainNavBarMenuLogoRef.current.classList.add('hide-mobile');\n }\n } else {\n if (!isMegaMenuOpen) setNavBarDisplay(true);\n }\n if (isMegaMenuOpen) {\n mainNavBarMenuLogoRef.current.classList.remove('hide-all');\n mainNavBarMenuLogoRef.current.classList.remove('hide-mobile');\n }\n }, [isMegaMenuOpen]);\n\n const handleScroll = useCallback(\n (e, scrollPosition) => {\n let qNav = document?.querySelector(quarterlyElement);\n let qNavMenu = document?.querySelector('.zn-quarterly-nav-bar-menu');\n const qNavTop = qNav?.getBoundingClientRect()?.top;\n const qNavHeight = qNav?.getBoundingClientRect()?.height;\n const navHeight = mainNavRef?.current?.getBoundingClientRect()?.height;\n const logoLeft = mainNavBarMenuLogoRef?.current?.getBoundingClientRect()?.left;\n const logoWidth = mainNavBarMenuLogoRef?.current?.getBoundingClientRect()?.width;\n const qNavLeft = qNavMenu?.children[0]?.getBoundingClientRect()?.left;\n let window = e?.currentTarget;\n if (qNavTop <= 5 && qNavTop >= -5) {\n setNavBarDisplay(false);\n if (qNav?.style) {\n qNav?.classList.add('in-main-menu');\n }\n if (mainNavBarMenuLogoRef.current)\n if (logoLeft + logoWidth > qNavLeft - 16)\n mainNavBarMenuLogoRef.current.classList.add('hide-all');\n else mainNavBarMenuLogoRef.current.classList.add('hide-mobile');\n } else if (qNavTop > navHeight) {\n qNav?.classList.remove('no-animation-close');\n setNavBarDisplay(true);\n if (qNav?.style) {\n qNav.style.backgroundColor = '';\n qNav?.classList.remove('in-main-menu');\n }\n if (mainNavBarMenuButtonRef.current)\n mainNavBarMenuButtonRef.current.classList.remove('hide-mobile');\n if (mainNavBarMenuLogoRef.current) {\n mainNavBarMenuLogoRef.current.classList.remove('hide-mobile');\n mainNavBarMenuLogoRef.current.classList.remove('hide-all');\n }\n } else if (5 < qNavTop && qNavTop <= navHeight / 2) {\n qNav?.classList.remove('no-animation-close');\n qNav?.classList.remove('in-main-menu');\n qNav?.classList.add('fade-out');\n } else {\n if (scrollPosition > window?.scrollY) {\n //scrolling up\n if (qNavTop < -5) {\n setNavBarDisplay(true);\n mainNavBarMenuLogoRef.current.classList.remove('hide-all');\n mainNavBarMenuLogoRef.current.classList.remove('hide-mobile');\n }\n } else if (scrollPosition < window?.scrollY) {\n //scrolling down\n if (qNavTop < -Math.abs(qNavHeight)) {\n setNavBarDisplay(true);\n mainNavBarMenuLogoRef.current.classList.remove('hide-all');\n mainNavBarMenuLogoRef.current.classList.remove('hide-mobile');\n }\n }\n setScrollPosition(window?.scrollY);\n }\n },\n [qNav]\n );\n\n useEffect(() => {\n setQNav(document?.querySelector(quarterlyElement));\n\n function scrollCallback(e) {\n handleScroll(e, scrollPosition);\n }\n\n if (mainNavRef?.current && qNav) {\n window?.addEventListener('scroll', scrollCallback);\n }\n return () => {\n window?.removeEventListener('scroll', scrollCallback);\n qNav?.classList.remove('in-main-menu');\n };\n }, [handleScroll, qNav, scrollPosition, fields?.data?.contextItem?.id]);\n\n return (\n !pdfView && (\n \n {t('SkipContent')}\n\n {\n resetMegaMenu(false);\n }}\n openMegaMenuPrimary={openMegaMenuPrimary}\n openMegaMenuSecondary={openMegaMenuSecondary}\n openMegaMenuTertiary={openMegaMenuTertiary}\n animationEnabled={animationEnabled}\n mainNavBarRef={mainNavBarRef}\n mainNavBarMenuButtonRef={mainNavBarMenuButtonRef}\n mainNavBarMenuLogoRef={mainNavBarMenuLogoRef}\n scrollWidth={scrollWidth}\n />\n {isMegaMenuOpen && (\n
    \n
    \n {megaMenuHome && (\n \n )}\n {megaMenuPrimary && (\n \n paramToBool(item?.isExpertise?.value)\n )}\n authorableExpertiseLink={authorableExpertiseLink}\n />\n )}\n {megaMenuSecondary && (\n \n paramToBool(item?.isInsights?.value)\n )}\n insightsContentTypeTitle={insightsContentTypeTitle}\n insightsContentTypeLinks={insightsContentTypeLinks?.targetItems}\n editorsPicksLinks={[\n editorsPicksLinkOne,\n editorsPicksLinkTwo,\n editorsPicksLinkThree,\n editorsPicksLinkFour,\n ]}\n />\n )}\n {megaMenuTertiary && (\n \n paramToBool(item?.isAboutUs?.value)\n )}\n aboutUsContentTypeTitle={aboutUsContentTypeTitle}\n aboutUsContentTypeLinks={aboutUsContentTypeLinks?.targetItems}\n />\n )}\n
    \n
    \n )}\n \n )\n );\n};\n\nexport const NavigationSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(Navigation)\n);\nexport default withTranslation()(NavigationSitecore);\nexport const NavigationStorybook = forStorybookV2(NavigationSitecore);\n","import React, { useState, useRef, useEffect } from 'react';\nimport ColoredList from '../ColoredList/ColoredList.jsx';\nimport Link from '../Link/Link.jsx';\nimport HorizontalRule from '../HorizontalRule/HorizontalRule.jsx';\nimport QuarterlyNavigationNavBar from './QuarterlyNavigationNavBar.jsx';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport SocialMediaLinks from '../SocialMediaLinks/SocialMediaLinks.jsx';\nimport getScrollbarWidth from '../../utils/getScrollbarWidth.js';\nimport {\n ThemeEnum,\n ButtonVariantEnum,\n LinkTargetEnum,\n LinkVariantEnum,\n HorizontalRuleColorEnum,\n} from '../../utils/enums';\nimport './quarterly-navigation.scss';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\n\nconst TemplatesEnum = {\n quarterly: 'Quarterly',\n quarterlyPublication: 'Quarterly Publication',\n premiumArticle: 'Premium Article',\n quarterlyReportLanding: 'Quarterly Report Landing',\n};\n\nconst colors = ['teal', 'orange', 'blue', 'navy'];\n\nconst getChaptersFormPublication = (TableOfContentsArticles) => {\n if (!Array.isArray(TableOfContentsArticles)) {\n return { chapters: [], name: '' };\n }\n const quarterlyItem = TableOfContentsArticles.find(\n (item) =>\n item?.template?.name === TemplatesEnum.quarterly ||\n item?.template?.name === TemplatesEnum.quarterlyReportLanding\n );\n\n return {\n Chapters: quarterlyItem?.Chapters,\n displayName: quarterlyItem?.displayName,\n IssueTitle: quarterlyItem?.IssueTitle,\n Title: quarterlyItem?.Title,\n url: quarterlyItem?.url,\n };\n};\n\nconst QuarterlyNavigation = ({ sitecoreContext, fields, params }) => {\n const navBlock = 'zn-quarterly-nav';\n const theme = ThemeEnum.light.toLowerCase();\n\n if (!fields?.data?.datasource || !fields?.data?.contextItem) {\n return ;\n }\n\n if (typeof document === 'undefined') {\n global.document = null;\n }\n\n const menuOpenClass = 'nav-open';\n const slideMenuOpenClass = 'slide-in';\n const slideMenuCloseClass = 'slide-out';\n const mainContent = document?.querySelector('body');\n\n if (!sitecoreContext?.pageEditing) {\n mainContent?.classList?.add('body-nav');\n }\n\n const datasource = fields?.data?.datasource;\n const contextItem = fields?.data?.contextItem;\n const socialMedia = datasource?.socialMediaLinks?.targetItem;\n\n let chapters;\n let quarterName;\n let issueTitle;\n let quarterUrl;\n\n if (\n contextItem?.template?.name === TemplatesEnum.quarterly ||\n contextItem?.template?.name === TemplatesEnum.quarterlyReportLanding\n ) {\n chapters = contextItem?.Chapters;\n issueTitle = contextItem.Title?.value\n ? `${contextItem.Title?.value}: ${contextItem?.IssueTitle?.value}`\n : contextItem?.IssueTitle?.value;\n quarterName = contextItem?.displayName;\n } else {\n const quarterlyInfo = getChaptersFormPublication(\n contextItem?.TableOfContentsArticles?.targetItems\n );\n chapters = quarterlyInfo?.Chapters;\n issueTitle = quarterlyInfo?.Title?.value\n ? `${quarterlyInfo?.Title?.value}: ${quarterlyInfo?.IssueTitle?.value}`\n : quarterlyInfo?.IssueTitle?.value;\n quarterName = quarterlyInfo?.displayName;\n quarterUrl = quarterlyInfo?.url;\n }\n\n const quarterDisplay = datasource?.quarter?.jss?.value\n ? datasource?.quarter?.jss\n : { value: quarterName?.substring(0, 2) };\n const title = datasource?.title?.jss?.value ? datasource?.title?.jss : { value: issueTitle };\n\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const [isMenuOpenOverlapping, setIsMenuOpenOverlapping] = useState(false);\n const [closeMenuWithoutAnimation, setCloseMenuWithoutAnimation] = useState(false);\n const [openStatePadding, setOpenStatePadding] = useState('');\n const qNavRef = useRef(null);\n const qNavContentRef = useRef(null);\n const [mainNav, setMainNav] = useState(null);\n\n const toggleMenuOpen = () => {\n setIsMenuOpen(!isMenuOpen);\n const nav = document?.querySelector('.zn-main-nav');\n const navHeight = nav.getBoundingClientRect()?.height;\n const qNavTop = qNavRef?.current?.getBoundingClientRect()?.top;\n const navMarginTop = nav?.style?.marginTop;\n\n if (!isMenuOpen) {\n mainContent?.classList?.add(menuOpenClass);\n qNavContentRef?.current?.classList?.add(slideMenuOpenClass);\n qNavContentRef?.current?.classList?.remove(slideMenuCloseClass);\n if (qNavRef?.current) {\n qNavRef.current.style.removeProperty('background-color');\n setCloseMenuWithoutAnimation(true);\n }\n if (mainNav?.style && qNavTop > navHeight) {\n mainNav.style.marginTop = `-${mainNav?.getBoundingClientRect()?.height}px`;\n setIsMenuOpenOverlapping(false);\n setCloseMenuWithoutAnimation(false);\n }\n } else {\n mainContent?.classList?.remove(menuOpenClass);\n qNavContentRef?.current?.classList?.remove(slideMenuOpenClass);\n qNavContentRef?.current?.classList?.add(slideMenuCloseClass);\n if (mainNav?.style) {\n mainNav.style.removeProperty('margin-top');\n setIsMenuOpenOverlapping(false);\n setCloseMenuWithoutAnimation(false);\n }\n if (navMarginTop) {\n qNavRef.current.style.removeProperty('background-color');\n setIsMenuOpenOverlapping(false);\n setCloseMenuWithoutAnimation(false);\n } else {\n qNavRef.current.style.backgroundColor = 'transparent';\n setIsMenuOpenOverlapping(true);\n setCloseMenuWithoutAnimation(true);\n }\n }\n };\n\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n setMainNav(document?.querySelector('.zn-main-nav'));\n setOpenStatePadding(getScrollbarWidth());\n\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n useEffect(() => {\n function closeQuarterlyNav(event) {\n const nav = document?.querySelector('.zn-main-nav');\n const navMarginTop = nav?.style?.marginTop;\n if (\n qNavRef.current &&\n !qNavRef.current.contains(event.target) &&\n qNavContentRef.current &&\n !qNavContentRef.current.contains(event.target)\n ) {\n setIsMenuOpen(false);\n const nav = document?.querySelector('.zn-main-nav');\n mainContent?.classList?.remove(menuOpenClass);\n qNavContentRef?.current?.classList?.remove(menuOpenClass);\n if (nav?.style) {\n nav.style.removeProperty('margin-top');\n setIsMenuOpenOverlapping(false);\n setCloseMenuWithoutAnimation(false);\n }\n if (navMarginTop) {\n qNavRef.current.style.removeProperty('background-color');\n setIsMenuOpenOverlapping(false);\n setCloseMenuWithoutAnimation(false);\n } else {\n qNavRef.current.style.backgroundColor = 'transparent';\n setIsMenuOpenOverlapping(true);\n setCloseMenuWithoutAnimation(true);\n }\n }\n }\n document.addEventListener('mousedown', closeQuarterlyNav);\n return () => {\n document.removeEventListener('mousedown', closeQuarterlyNav);\n };\n }, []);\n\n return (\n !pdfView && (\n <>\n \n {isMenuOpen && (\n
    \n \n
    \n {Array.isArray(chapters) &&\n chapters.map((chapter, index) => (\n {\n toggleMenuOpen();\n }}\n />\n ))}\n
    \n \n \n
    \n {socialMedia && (\n \n )}\n
    \n {(datasource?.subscribeButton?.jss?.value?.text ||\n sitecoreContext?.pageEditing) && (\n
    \n \n
    \n )}\n
    \n
    \n
    \n \n )}\n \n )\n );\n};\n\nexport const QuarterlyNavigationSitecore = withSitecoreContext()(QuarterlyNavigation);\nexport const QuarterlyNavigationStorybook = forStorybookV2(QuarterlyNavigationSitecore);\nexport default withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n QuarterlyNavigationSitecore\n);\n","/* eslint-disable */\n// Do not edit this file, it is auto-generated at build time!\n// See scripts/bootstrap.js to modify the generation of this file.\nmodule.exports = {\n \"sitecoreApiKey\": \"32C77C27-9463-4FF0-8CBB-510496C82C19\",\n \"sitecoreApiHost\": \"https://www.torys.com\",\n \"jssAppName\": \"zenith site\",\n \"defaultLanguage\": \"en\",\n \"graphQLEndpointPath\": \"/api/zenith-site\",\n \"graphQLEndpoint\": \"https://www.torys.com/api/zenith-site?sc_apikey=32C77C27-9463-4FF0-8CBB-510496C82C19\"\n};","/* eslint-disable no-undef */\n/* eslint-disable no-empty */\n/* eslint-disable no-unused-vars */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? (module.exports = factory())\n : typeof define === 'function' && define.amd\n ? define(factory)\n : ((global = global || self), (global.MapboxAccessibility = factory()));\n})(this, function () {\n 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\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\n return obj;\n }\n\n var immutable = extend;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n function extend() {\n var target = {};\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }\n\n var commonjsGlobal =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : typeof self !== 'undefined'\n ? self\n : {};\n\n function unwrapExports(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default')\n ? x['default']\n : x;\n }\n\n function createCommonjsModule(fn, module) {\n return (module = { exports: {} }), fn(module, module.exports), module.exports;\n }\n\n var helpers = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, '__esModule', {\n value: true,\n });\n /**\n * @module helpers\n */\n\n /**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\n\n exports.earthRadius = 6371008.8;\n /**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\n\n exports.factors = {\n centimeters: exports.earthRadius * 100,\n centimetres: exports.earthRadius * 100,\n degrees: exports.earthRadius / 111325,\n feet: exports.earthRadius * 3.28084,\n inches: exports.earthRadius * 39.37,\n kilometers: exports.earthRadius / 1000,\n kilometres: exports.earthRadius / 1000,\n meters: exports.earthRadius,\n metres: exports.earthRadius,\n miles: exports.earthRadius / 1609.344,\n millimeters: exports.earthRadius * 1000,\n millimetres: exports.earthRadius * 1000,\n nauticalmiles: exports.earthRadius / 1852,\n radians: 1,\n yards: exports.earthRadius / 1.0936,\n };\n /**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\n\n exports.unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / exports.earthRadius,\n yards: 1 / 1.0936,\n };\n /**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\n\n exports.areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n };\n /**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\n\n function feature(geom, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n var feat = {\n type: 'Feature',\n };\n\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n }\n\n exports.feature = feature;\n /**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\n\n function geometry(type, coordinates, options) {\n switch (type) {\n case 'Point':\n return point(coordinates).geometry;\n\n case 'LineString':\n return lineString(coordinates).geometry;\n\n case 'Polygon':\n return polygon(coordinates).geometry;\n\n case 'MultiPoint':\n return multiPoint(coordinates).geometry;\n\n case 'MultiLineString':\n return multiLineString(coordinates).geometry;\n\n case 'MultiPolygon':\n return multiPolygon(coordinates).geometry;\n\n default:\n throw new Error(type + ' is invalid');\n }\n }\n\n exports.geometry = geometry;\n /**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\n\n function point(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n var geom = {\n type: 'Point',\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n }\n\n exports.point = point;\n /**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\n\n function points(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n return featureCollection(\n coordinates.map(function (coords) {\n return point(coords, properties);\n }),\n options\n );\n }\n\n exports.points = points;\n /**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\n\n function polygon(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n\n if (ring.length < 4) {\n throw new Error('Each LinearRing of a Polygon must have 4 or more Positions.');\n }\n\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error('First and last Position are not equivalent.');\n }\n }\n }\n\n var geom = {\n type: 'Polygon',\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n }\n\n exports.polygon = polygon;\n /**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\n\n function polygons(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n return featureCollection(\n coordinates.map(function (coords) {\n return polygon(coords, properties);\n }),\n options\n );\n }\n\n exports.polygons = polygons;\n /**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\n\n function lineString(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (coordinates.length < 2) {\n throw new Error('coordinates must be an array of two or more positions');\n }\n\n var geom = {\n type: 'LineString',\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n }\n\n exports.lineString = lineString;\n /**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\n\n function lineStrings(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n return featureCollection(\n coordinates.map(function (coords) {\n return lineString(coords, properties);\n }),\n options\n );\n }\n\n exports.lineStrings = lineStrings;\n /**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\n\n function featureCollection(features, options) {\n if (options === void 0) {\n options = {};\n }\n\n var fc = {\n type: 'FeatureCollection',\n };\n\n if (options.id) {\n fc.id = options.id;\n }\n\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n\n fc.features = features;\n return fc;\n }\n\n exports.featureCollection = featureCollection;\n /**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\n\n function multiLineString(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n var geom = {\n type: 'MultiLineString',\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n }\n\n exports.multiLineString = multiLineString;\n /**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\n\n function multiPoint(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n var geom = {\n type: 'MultiPoint',\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n }\n\n exports.multiPoint = multiPoint;\n /**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\n\n function multiPolygon(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n var geom = {\n type: 'MultiPolygon',\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n }\n\n exports.multiPolygon = multiPolygon;\n /**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\n\n function geometryCollection(geometries, properties, options) {\n if (options === void 0) {\n options = {};\n }\n\n var geom = {\n type: 'GeometryCollection',\n geometries: geometries,\n };\n return feature(geom, properties, options);\n }\n\n exports.geometryCollection = geometryCollection;\n /**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\n\n function round(num, precision) {\n if (precision === void 0) {\n precision = 0;\n }\n\n if (precision && !(precision >= 0)) {\n throw new Error('precision must be a positive number');\n }\n\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n }\n\n exports.round = round;\n /**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, or kilometers inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\n\n function radiansToLength(radians, units) {\n if (units === void 0) {\n units = 'kilometers';\n }\n\n var factor = exports.factors[units];\n\n if (!factor) {\n throw new Error(units + ' units is invalid');\n }\n\n return radians * factor;\n }\n\n exports.radiansToLength = radiansToLength;\n /**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, or kilometers inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\n\n function lengthToRadians(distance, units) {\n if (units === void 0) {\n units = 'kilometers';\n }\n\n var factor = exports.factors[units];\n\n if (!factor) {\n throw new Error(units + ' units is invalid');\n }\n\n return distance / factor;\n }\n\n exports.lengthToRadians = lengthToRadians;\n /**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, or kilometers inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\n\n function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n }\n\n exports.lengthToDegrees = lengthToDegrees;\n /**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\n\n function bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n\n if (angle < 0) {\n angle += 360;\n }\n\n return angle;\n }\n\n exports.bearingToAzimuth = bearingToAzimuth;\n /**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\n\n function radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return (degrees * 180) / Math.PI;\n }\n\n exports.radiansToDegrees = radiansToDegrees;\n /**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\n\n function degreesToRadians(degrees) {\n var radians = degrees % 360;\n return (radians * Math.PI) / 180;\n }\n\n exports.degreesToRadians = degreesToRadians;\n /**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\n\n function convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) {\n originalUnit = 'kilometers';\n }\n\n if (finalUnit === void 0) {\n finalUnit = 'kilometers';\n }\n\n if (!(length >= 0)) {\n throw new Error('length must be a positive number');\n }\n\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n }\n\n exports.convertLength = convertLength;\n /**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted distance\n */\n\n function convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) {\n originalUnit = 'meters';\n }\n\n if (finalUnit === void 0) {\n finalUnit = 'kilometers';\n }\n\n if (!(area >= 0)) {\n throw new Error('area must be a positive number');\n }\n\n var startFactor = exports.areaFactors[originalUnit];\n\n if (!startFactor) {\n throw new Error('invalid original units');\n }\n\n var finalFactor = exports.areaFactors[finalUnit];\n\n if (!finalFactor) {\n throw new Error('invalid final units');\n }\n\n return (area / startFactor) * finalFactor;\n }\n\n exports.convertArea = convertArea;\n /**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\n\n function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num) && !/^\\s*$/.test(num);\n }\n\n exports.isNumber = isNumber;\n /**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\n\n function isObject(input) {\n return !!input && input.constructor === Object;\n }\n\n exports.isObject = isObject;\n /**\n * Validate BBox\n *\n * @private\n * @param {Array} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\n\n function validateBBox(bbox) {\n if (!bbox) {\n throw new Error('bbox is required');\n }\n\n if (!Array.isArray(bbox)) {\n throw new Error('bbox must be an Array');\n }\n\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error('bbox must be an Array of 4 or 6 numbers');\n }\n\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error('bbox must only contain numbers');\n }\n });\n }\n\n exports.validateBBox = validateBBox;\n /**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\n\n function validateId(id) {\n if (!id) {\n throw new Error('id is required');\n }\n\n if (['string', 'number'].indexOf(typeof id) === -1) {\n throw new Error('id must be a number or a string');\n }\n }\n\n exports.validateId = validateId; // Deprecated methods\n\n function radians2degrees() {\n throw new Error('method has been renamed to `radiansToDegrees`');\n }\n\n exports.radians2degrees = radians2degrees;\n\n function degrees2radians() {\n throw new Error('method has been renamed to `degreesToRadians`');\n }\n\n exports.degrees2radians = degrees2radians;\n\n function distanceToDegrees() {\n throw new Error('method has been renamed to `lengthToDegrees`');\n }\n\n exports.distanceToDegrees = distanceToDegrees;\n\n function distanceToRadians() {\n throw new Error('method has been renamed to `lengthToRadians`');\n }\n\n exports.distanceToRadians = distanceToRadians;\n\n function radiansToDistance() {\n throw new Error('method has been renamed to `radiansToLength`');\n }\n\n exports.radiansToDistance = radiansToDistance;\n\n function bearingToAngle() {\n throw new Error('method has been renamed to `bearingToAzimuth`');\n }\n\n exports.bearingToAngle = bearingToAngle;\n\n function convertDistance() {\n throw new Error('method has been renamed to `convertLength`');\n }\n\n exports.convertDistance = convertDistance;\n });\n\n unwrapExports(helpers);\n var helpers_1 = helpers.earthRadius;\n var helpers_2 = helpers.factors;\n var helpers_3 = helpers.unitsFactors;\n var helpers_4 = helpers.areaFactors;\n var helpers_5 = helpers.feature;\n var helpers_6 = helpers.geometry;\n var helpers_7 = helpers.point;\n var helpers_8 = helpers.points;\n var helpers_9 = helpers.polygon;\n var helpers_10 = helpers.polygons;\n var helpers_11 = helpers.lineString;\n var helpers_12 = helpers.lineStrings;\n var helpers_13 = helpers.featureCollection;\n var helpers_14 = helpers.multiLineString;\n var helpers_15 = helpers.multiPoint;\n var helpers_16 = helpers.multiPolygon;\n var helpers_17 = helpers.geometryCollection;\n var helpers_18 = helpers.round;\n var helpers_19 = helpers.radiansToLength;\n var helpers_20 = helpers.lengthToRadians;\n var helpers_21 = helpers.lengthToDegrees;\n var helpers_22 = helpers.bearingToAzimuth;\n var helpers_23 = helpers.radiansToDegrees;\n var helpers_24 = helpers.degreesToRadians;\n var helpers_25 = helpers.convertLength;\n var helpers_26 = helpers.convertArea;\n var helpers_27 = helpers.isNumber;\n var helpers_28 = helpers.isObject;\n var helpers_29 = helpers.validateBBox;\n var helpers_30 = helpers.validateId;\n var helpers_31 = helpers.radians2degrees;\n var helpers_32 = helpers.degrees2radians;\n var helpers_33 = helpers.distanceToDegrees;\n var helpers_34 = helpers.distanceToRadians;\n var helpers_35 = helpers.radiansToDistance;\n var helpers_36 = helpers.bearingToAngle;\n var helpers_37 = helpers.convertDistance;\n\n var meta = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, '__esModule', {\n value: true,\n });\n\n /**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n /**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\n\n function coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j,\n k,\n l,\n geometry,\n stopG,\n coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === 'FeatureCollection',\n isFeature = type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1; // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[featureIndex].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === 'GeometryCollection'\n : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[geomIndex]\n : geometryMaybeCollection; // Handles null Geometry -- Skips this geometry\n\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n wrapShrink =\n excludeWrapCoord && (geomType === 'Polygon' || geomType === 'MultiPolygon')\n ? 1\n : 0;\n\n switch (geomType) {\n case null:\n break;\n\n case 'Point':\n if (\n callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n\n case 'LineString':\n case 'MultiPoint':\n for (j = 0; j < coords.length; j++) {\n if (\n callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n if (geomType === 'MultiPoint') multiFeatureIndex++;\n }\n\n if (geomType === 'LineString') multiFeatureIndex++;\n break;\n\n case 'Polygon':\n case 'MultiLineString':\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (\n callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n\n if (geomType === 'MultiLineString') multiFeatureIndex++;\n if (geomType === 'Polygon') geometryIndex++;\n }\n\n if (geomType === 'Polygon') multiFeatureIndex++;\n break;\n\n case 'MultiPolygon':\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (\n callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n\n geometryIndex++;\n }\n\n multiFeatureIndex++;\n }\n\n break;\n\n case 'GeometryCollection':\n for (j = 0; j < geometry.geometries.length; j++)\n if (\n coordEach(\n geometry.geometries[j],\n callback,\n excludeWrapCoord\n ) === false\n )\n return false;\n\n break;\n\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n }\n }\n /**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n /**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\n\n function coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(\n geojson,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (coordIndex === 0 && initialValue === undefined)\n previousValue = currentCoord;\n else\n previousValue = callback(\n previousValue,\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n },\n excludeWrapCoord\n );\n return previousValue;\n }\n /**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n /**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\n\n function propEach(geojson, callback) {\n var i;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n\n break;\n\n case 'Feature':\n callback(geojson.properties, 0);\n break;\n }\n }\n /**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n /**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\n\n function propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentProperties;\n else previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n }\n /**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n /**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\n\n function featureEach(geojson, callback) {\n if (geojson.type === 'Feature') {\n callback(geojson, 0);\n } else if (geojson.type === 'FeatureCollection') {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n }\n /**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n /**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\n\n function featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n }\n /**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\n\n function coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n }\n /**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n /**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\n\n function geomEach(geojson, callback) {\n var i,\n j,\n g,\n geometry,\n stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === 'FeatureCollection',\n isFeature = geojson.type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1; // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[i].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n featureProperties = isFeatureCollection\n ? geojson.features[i].properties\n : isFeature\n ? geojson.properties\n : {};\n featureBBox = isFeatureCollection\n ? geojson.features[i].bbox\n : isFeature\n ? geojson.bbox\n : undefined;\n featureId = isFeatureCollection\n ? geojson.features[i].id\n : isFeature\n ? geojson.id\n : undefined;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === 'GeometryCollection'\n : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[g]\n : geometryMaybeCollection; // Handle null Geometry\n\n if (geometry === null) {\n if (\n callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n continue;\n }\n\n switch (geometry.type) {\n case 'Point':\n case 'LineString':\n case 'MultiPoint':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon': {\n if (\n callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n break;\n }\n\n case 'GeometryCollection': {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (\n callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n }\n\n break;\n }\n\n default:\n throw new Error('Unknown Geometry Type');\n }\n } // Only increase `featureIndex` per each feature\n\n featureIndex++;\n }\n }\n /**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n /**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\n\n function geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(\n geojson,\n function (\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentGeometry;\n else\n previousValue = callback(\n previousValue,\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n );\n }\n );\n return previousValue;\n }\n /**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n /**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\n\n function flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = geometry === null ? null : geometry.type;\n\n switch (type) {\n case null:\n case 'Point':\n case 'LineString':\n case 'Polygon':\n if (\n callback(\n helpers.feature(geometry, properties, {\n bbox: bbox,\n id: id,\n }),\n featureIndex,\n 0\n ) === false\n )\n return false;\n return;\n }\n\n var geomType; // Callback for multi-geometry\n\n switch (type) {\n case 'MultiPoint':\n geomType = 'Point';\n break;\n\n case 'MultiLineString':\n geomType = 'LineString';\n break;\n\n case 'MultiPolygon':\n geomType = 'Polygon';\n break;\n }\n\n for (\n var multiFeatureIndex = 0;\n multiFeatureIndex < geometry.coordinates.length;\n multiFeatureIndex++\n ) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate,\n };\n if (\n callback(\n helpers.feature(geom, properties),\n featureIndex,\n multiFeatureIndex\n ) === false\n )\n return false;\n }\n });\n }\n /**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n /**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\n\n function flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(geojson, function (currentFeature, featureIndex, multiFeatureIndex) {\n if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === undefined)\n previousValue = currentFeature;\n else\n previousValue = callback(\n previousValue,\n currentFeature,\n featureIndex,\n multiFeatureIndex\n );\n });\n return previousValue;\n }\n /**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n /**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\n\n function segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0; // Exclude null Geometries\n\n if (!feature.geometry) return; // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n\n var type = feature.geometry.type;\n if (type === 'Point' || type === 'MultiPoint') return; // Generate 2-vertex line segments\n\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (\n coordEach(\n feature,\n function (\n currentCoord,\n coordIndex,\n featureIndexCoord,\n multiPartIndexCoord,\n geometryIndex\n ) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (\n previousCoords === undefined ||\n featureIndex > previousFeatureIndex ||\n multiPartIndexCoord > previousMultiIndex ||\n geometryIndex > prevGeomIndex\n ) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n\n var currentSegment = helpers.lineString(\n [previousCoords, currentCoord],\n feature.properties\n );\n if (\n callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false\n )\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false\n )\n return false;\n });\n }\n /**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n /**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentInex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\n\n function segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(\n geojson,\n function (\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) {\n if (started === false && initialValue === undefined)\n previousValue = currentSegment;\n else\n previousValue = callback(\n previousValue,\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n );\n started = true;\n }\n );\n return previousValue;\n }\n /**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n /**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\n\n function lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error('geojson is required');\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n\n switch (type) {\n case 'LineString':\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false)\n return false;\n break;\n\n case 'Polygon':\n for (\n var geometryIndex = 0;\n geometryIndex < coords.length;\n geometryIndex++\n ) {\n if (\n callback(\n helpers.lineString(coords[geometryIndex], feature.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n }\n\n break;\n }\n });\n }\n /**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n /**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\n\n function lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(\n geojson,\n function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentLine;\n else\n previousValue = callback(\n previousValue,\n currentLine,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n }\n );\n return previousValue;\n }\n /**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature>\n */\n\n function findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0; // Find FeatureIndex\n\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n\n case 'Point':\n case 'MultiPoint':\n return null;\n\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n\n default:\n throw new Error('geojson is invalid');\n } // Find SegmentIndex\n\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n\n switch (geometry.type) {\n case 'Point':\n case 'MultiPoint':\n return null;\n\n case 'LineString':\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return helpers.lineString(\n [coords[segmentIndex], coords[segmentIndex + 1]],\n properties,\n options\n );\n\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return helpers.lineString(\n [\n coords[geometryIndex][segmentIndex],\n coords[geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n\n case 'MultiLineString':\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return helpers.lineString(\n [\n coords[multiFeatureIndex][segmentIndex],\n coords[multiFeatureIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n\n case 'MultiPolygon':\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex =\n coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return helpers.lineString(\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\n coords[multiFeatureIndex][geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n }\n\n throw new Error('geojson is invalid');\n }\n /**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature>\n */\n\n function findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0; // Find FeatureIndex\n\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n\n case 'Point':\n case 'MultiPoint':\n return null;\n\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n\n default:\n throw new Error('geojson is invalid');\n } // Find Coord Index\n\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n\n switch (geometry.type) {\n case 'Point':\n return helpers.point(coords, properties, options);\n\n case 'MultiPoint':\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n return helpers.point(coords[multiFeatureIndex], properties, options);\n\n case 'LineString':\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return helpers.point(coords[coordIndex], properties, options);\n\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[geometryIndex].length + coordIndex;\n return helpers.point(coords[geometryIndex][coordIndex], properties, options);\n\n case 'MultiLineString':\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return helpers.point(\n coords[multiFeatureIndex][coordIndex],\n properties,\n options\n );\n\n case 'MultiPolygon':\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return helpers.point(\n coords[multiFeatureIndex][geometryIndex][coordIndex],\n properties,\n options\n );\n }\n\n throw new Error('geojson is invalid');\n }\n\n exports.coordEach = coordEach;\n exports.coordReduce = coordReduce;\n exports.propEach = propEach;\n exports.propReduce = propReduce;\n exports.featureEach = featureEach;\n exports.featureReduce = featureReduce;\n exports.coordAll = coordAll;\n exports.geomEach = geomEach;\n exports.geomReduce = geomReduce;\n exports.flattenEach = flattenEach;\n exports.flattenReduce = flattenReduce;\n exports.segmentEach = segmentEach;\n exports.segmentReduce = segmentReduce;\n exports.lineEach = lineEach;\n exports.lineReduce = lineReduce;\n exports.findSegment = findSegment;\n exports.findPoint = findPoint;\n });\n\n unwrapExports(meta);\n var meta_1 = meta.coordEach;\n var meta_2 = meta.coordReduce;\n var meta_3 = meta.propEach;\n var meta_4 = meta.propReduce;\n var meta_5 = meta.featureEach;\n var meta_6 = meta.featureReduce;\n var meta_7 = meta.coordAll;\n var meta_8 = meta.geomEach;\n var meta_9 = meta.geomReduce;\n var meta_10 = meta.flattenEach;\n var meta_11 = meta.flattenReduce;\n var meta_12 = meta.segmentEach;\n var meta_13 = meta.segmentReduce;\n var meta_14 = meta.lineEach;\n var meta_15 = meta.lineReduce;\n var meta_16 = meta.findSegment;\n var meta_17 = meta.findPoint;\n\n var bbox_1 = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, '__esModule', {\n value: true,\n });\n\n /**\n * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.\n *\n * @name bbox\n * @param {GeoJSON} geojson any GeoJSON object\n * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);\n * var bbox = turf.bbox(line);\n * var bboxPolygon = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [line, bboxPolygon]\n */\n\n function bbox(geojson) {\n var result = [Infinity, Infinity, -Infinity, -Infinity];\n meta.coordEach(geojson, function (coord) {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n }\n\n exports.default = bbox;\n });\n\n var bbox = unwrapExports(bbox_1);\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n var isObject_1 = isObject;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal =\n typeof commonjsGlobal == 'object' &&\n commonjsGlobal &&\n commonjsGlobal.Object === Object &&\n commonjsGlobal;\n var _freeGlobal = freeGlobal;\n\n /** Detect free variable `self`. */\n\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n /** Used as a reference to the global object. */\n\n var root = _freeGlobal || freeSelf || Function('return this')();\n var _root = root;\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\n var now = function () {\n return _root.Date.now();\n };\n\n var now_1 = now;\n\n /** Built-in value references. */\n\n var Symbol = _root.Symbol;\n var _Symbol = Symbol;\n\n /** Used for built-in method references. */\n\n var objectProto = Object.prototype;\n /** Used to check objects for own properties. */\n\n var hasOwnProperty$1 = objectProto.hasOwnProperty;\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\n var nativeObjectToString = objectProto.toString;\n /** Built-in value references. */\n\n var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n\n function getRawTag(value) {\n var isOwn = hasOwnProperty$1.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\n }\n\n var _getRawTag = getRawTag;\n\n /** Used for built-in method references. */\n var objectProto$1 = Object.prototype;\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\n var nativeObjectToString$1 = objectProto$1.toString;\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n\n function objectToString(value) {\n return nativeObjectToString$1.call(value);\n }\n\n var _objectToString = objectToString;\n\n /** `Object#toString` result references. */\n\n var nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n /** Built-in value references. */\n\n var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag$1 && symToStringTag$1 in Object(value)\n ? _getRawTag(value)\n : _objectToString(value);\n }\n\n var _baseGetTag = baseGetTag;\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n var isObjectLike_1 = isObjectLike;\n\n /** `Object#toString` result references. */\n\n var symbolTag = '[object Symbol]';\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n function isSymbol(value) {\n return (\n typeof value == 'symbol' || (isObjectLike_1(value) && _baseGetTag(value) == symbolTag)\n );\n }\n\n var isSymbol_1 = isSymbol;\n\n /** Used as references for various `Number` constants. */\n\n var NAN = 0 / 0;\n /** Used to match leading and trailing whitespace. */\n\n var reTrim = /^\\s+|\\s+$/g;\n /** Used to detect bad signed hexadecimal string values. */\n\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n /** Used to detect binary string values. */\n\n var reIsBinary = /^0b[01]+$/i;\n /** Used to detect octal string values. */\n\n var reIsOctal = /^0o[0-7]+$/i;\n /** Built-in method references without a dependency on `root`. */\n\n var freeParseInt = parseInt;\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol_1(value)) {\n return NAN;\n }\n\n if (isObject_1(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject_1(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value)\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : reIsBadHex.test(value)\n ? NAN\n : +value;\n }\n\n var toNumber_1 = toNumber;\n\n /** Error message constants. */\n\n var FUNC_ERROR_TEXT = 'Expected a function';\n /* Built-in method references for those with the same name as other `lodash` methods. */\n\n var nativeMax = Math.max,\n nativeMin = Math.min;\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber_1(wait) || 0;\n\n if (isObject_1(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber_1(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return (\n lastCallTime === undefined ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait)\n );\n }\n\n function timerExpired() {\n var time = now_1();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now_1());\n }\n\n function debounced() {\n var time = now_1(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n var debounce_1 = debounce;\n\n var MapboxAccessibility = /*#__PURE__*/ (function () {\n function MapboxAccessibility(options) {\n var _this = this;\n\n _classCallCheck(this, MapboxAccessibility);\n\n _defineProperty(this, 'clearMarkers', function () {\n if (_this.features) {\n _this.features.forEach(function (feature) {\n if (feature.marker) {\n _this.map.getCanvasContainer().removeChild(feature.marker);\n\n delete feature.marker;\n }\n });\n }\n });\n\n _defineProperty(this, 'queryFeatures', function () {\n _this._debouncedQueryFeatures.cancel();\n\n _this.clearMarkers();\n\n _this.features = _this.map.queryRenderedFeatures({\n layers: _this.options.layers,\n });\n\n _this.features.map(function (feature) {\n var _this$options = _this.options,\n width = 42,\n height = 63;\n var label = feature.properties[_this.options.accessibleLabelProperty];\n feature.marker = document.createElement('button');\n feature.marker.setAttribute('aria-label', label);\n feature.marker.setAttribute('title', label);\n feature.marker.setAttribute('tabindex', 0);\n feature.marker.style.display = 'block';\n var position;\n\n if (feature.geometry.type === 'Point') {\n position = _this.map.project(feature.geometry.coordinates);\n } else {\n var featureBbox = bbox(feature);\n\n var bl = _this.map.project([featureBbox[0], featureBbox[1]]);\n\n var tr = _this.map.project([featureBbox[2], featureBbox[3]]);\n\n width = Math.abs(tr.x - bl.x);\n height = Math.abs(tr.y - bl.y);\n position = {\n x: (tr.x + bl.x) / 2,\n y: (tr.y + bl.y) / 2,\n };\n }\n\n feature.marker.style.width = ''.concat(width, 'px');\n feature.marker.style.height = ''.concat(height, 'px');\n feature.marker.style.top = ''.concat(56, 'px');\n feature.marker.style.transform = 'translate(-50%, -50%) translate('\n .concat(position.x, 'px, ')\n .concat(position.y, 'px)');\n feature.marker.className = 'mapboxgl-accessibility-marker';\n\n _this.map.getCanvasContainer().appendChild(feature.marker);\n\n return feature;\n });\n });\n\n _defineProperty(this, '_movestart', function () {\n _this._debouncedQueryFeatures.cancel();\n\n _this.clearMarkers();\n });\n\n _defineProperty(this, '_render', function () {\n if (!_this.map.isMoving()) {\n _this._debouncedQueryFeatures();\n }\n });\n\n var defaultOptions = {\n width: 24,\n height: 24,\n };\n\n if (!options && !options.layers) {\n throw new Error('An array of layers is required');\n }\n\n if (!options && !options.accessibleLabelProperty) {\n throw new Error('a valid accessibleLabelProperty is required');\n }\n\n this.options = immutable(defaultOptions, options);\n }\n\n _createClass(MapboxAccessibility, [\n {\n key: 'onAdd',\n value: function onAdd(map) {\n this.map = map;\n this._debouncedQueryFeatures = debounce_1(this.queryFeatures, 100);\n this.map.on('movestart', this._movestart);\n this.map.on('moveend', this._render);\n this.map.on('render', this._render);\n this.container = document.createElement('div');\n return this.container;\n },\n },\n {\n key: 'onRemove',\n value: function onRemove() {\n this.container.parentNode.removeChild(this.container);\n this.map.off('movestart', this._movestart);\n this.map.off('moveend', this._render);\n this.map.off('render', this._render);\n\n this._debouncedQueryFeatures.cancel();\n\n delete this.map;\n },\n },\n ]);\n\n return MapboxAccessibility;\n })();\n\n return MapboxAccessibility;\n});\n//# sourceMappingURL=mapbox-gl-accessibility.js.map\n","import React, { useEffect } from 'react';\nimport { Button } from '../Button/Button.js';\nimport { useLocation } from 'react-router-dom';\nimport { MAIN_CONTENT_PRE } from '../../Layout.js';\nconst BypassButton = ({ children }) => {\n const location = useLocation();\n\n const skipToMainContent = (e) => {\n const mainContent = document.getElementById(MAIN_CONTENT_PRE);\n\n if (!mainContent) return;\n mainContent.scrollIntoView({ behavior: 'smooth' });\n const currentTabIndex = mainContent.tabIndex;\n\n //Setting tabIndex to -1 to fix on firefox.\n mainContent.tabIndex = -1;\n e.target.blur();\n mainContent.focus();\n mainContent.tabIndex = currentTabIndex;\n };\n const resetTabOrder = () => {\n const dummy = document.createElement('button');\n\n dummy.style.opacity = '0';\n dummy.style.position = 'absolute';\n dummy.style.left = '-10000px';\n dummy.style.top = 'auto';\n dummy.style.width = '1px';\n dummy.style.height = '1px';\n dummy.style.overflow = 'hidden';\n\n document.body.insertBefore(dummy, document.body.firstChild);\n\n dummy.focus();\n dummy.blur();\n\n document.body.removeChild(dummy);\n };\n\n useEffect(() => {\n resetTabOrder();\n }, [location.pathname]);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default BypassButton;\n","import React from 'react';\nimport Link from '../Link/Link.jsx';\nimport Text from '../Text';\nimport { LinkTargetEnum, ThemeEnum, LinkSubVariantsEnum } from '../../utils/enums';\nimport './colored-list.scss';\n\nconst ColoredList = ({ isLink, list, color, title, theme, onClick }) => {\n return (\n
    \n \n
      \n {Array.isArray(list) &&\n list.map((item, index) => {\n if (item?.title?.value) {\n return (\n
    • \n {isLink ? (\n \n ) : (\n \n )}\n
    • \n );\n }\n })}\n
    \n
    \n );\n};\n\nexport default ColoredList;\n","import React, { useEffect, useState } from 'react';\nimport { Button } from '../Button/Button.js';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport Link from '../Link/Link.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { CloseIcon, HamburguerMenu } from '../../assets/common.js';\nimport Text from '../Text';\nimport { ButtonVariantEnum, LinkTargetEnum } from '../../utils/enums';\nimport classNames from 'classnames';\nimport { withTranslation } from 'react-i18next';\n\nconst NavBarPremium = ({\n quarter,\n title,\n theme,\n qNavRef,\n subscribeButton,\n toggleMenuOpen,\n isMenuOpen,\n pageEditing,\n quarterUrl,\n t,\n isMenuOpenOverlapping,\n closeMenuWithoutAnimation,\n openStatePadding,\n}) => {\n const navBlock = 'zn-quarterly-nav-bar-menu';\n const [pdfView, setPdfView] = useState(false);\n const TitleLink = quarterUrl ? Link : React.Fragment;\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n return (\n !pdfView && (\n \n \n
    \n
    \n \n \n {isMenuOpen ? : }\n {t('OpenArticleNavigation')}\n \n \n {\n isMenuOpen && toggleMenuOpen();\n }}\n >\n \n \n \n
    \n {(subscribeButton?.value?.text || pageEditing) && (\n
    \n \n
    \n )}\n
    \n \n \n )\n );\n};\n\nexport default withTranslation()(withSitecoreContext()(NavBarPremium));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\nimport classnames from 'classnames';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport Link from '../Link/Link.jsx';\n\nimport {\n LinkTargetEnum,\n LinkVariantEnum,\n ThemeEnum,\n LinkListLayoutEnum,\n ButtonVariantEnum,\n} from '../../utils/enums';\n\nimport './link-list-item.scss';\nimport usePdfView from '../../utils/hooks/usePdfView.jsx';\n\nconst linkListItemBlock = 'zn-link-list-item';\n\nconst LinkListItem = ({ fields, className, params }) => {\n const { LinkName, LinkURL, LinkEyebrow, LinkSubtext } = fields;\n const { Layout, NoPadding, HideDividerLines, Theme, HideArrows } = params;\n const isHighlighted = Layout === LinkListLayoutEnum.highlighted;\n const hasDivider = HideDividerLines !== '1';\n const theme = Theme === ThemeEnum.dark ? 'dark' : 'light';\n const linkText = LinkName?.value || LinkURL?.value?.text || '';\n\n const pdfView = usePdfView();\n if (pdfView) {\n const linkURL = LinkURL?.value?.href;\n const Tag = linkURL ? 'a' : 'span';\n const props = linkURL ? { href: linkURL } : {};\n\n return (\n \n \n \n );\n }\n\n return (\n \n {isHighlighted && LinkURL?.value?.href ? (\n HideArrows !== '1' ? (\n \n ) : (\n \n \n \n )\n ) : (\n <>\n {LinkEyebrow?.value && (\n \n \n

    \n )}\n {LinkURL?.value?.href ? (\n \n \n \n ) : (\n \n \n

    \n )}\n\n {LinkSubtext?.value && (\n \n \n

    \n )}\n \n )}\n \n );\n};\n\nLinkListItem.prototype = {\n fields: PropTypes.shape({\n LinkName: PropTypes.shape({\n value: PropTypes.string,\n }).isRequired,\n LinkURL: PropTypes.shape({\n value: PropTypes.string,\n }),\n LinkAltText: PropTypes.shape({\n value: PropTypes.string,\n }),\n LinkEyebrow: PropTypes.shape({\n value: PropTypes.string,\n }),\n LinkSubtext: PropTypes.shape({\n value: PropTypes.string,\n }),\n LinkTarget: PropTypes.objectOf(LinkTargetEnum),\n }),\n isHighlighted: PropTypes.bool,\n color: PropTypes.array,\n Theme: PropTypes.shape({ value: PropTypes.oneOf(Object.values(ThemeEnum)) }),\n};\n\nexport default withErrorBoundary([ErrorBoundaryConditions.fields])(LinkListItem);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst getDisplayName = (WrappedComponent) => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nexport const ErrorBoundaryConditions = {\n fields: 'fields',\n sitecoreContext: 'sitecoreContext',\n params: 'params',\n};\n\nconst checkConditions = (conditions, value) => !conditions || conditions.includes(value);\n\nconst ErrorMessage = ({ message }) =>

    {message}

    ;\n\nconst withErrorBoundary = (conditions) => (WrappedComponent) => {\n const ErrorBoundary = (props) => {\n const isEditing = props?.sitecoreContext?.pageEditing;\n\n if (checkConditions(conditions, ErrorBoundaryConditions.fields) && !props?.fields) {\n return isEditing ? : null;\n }\n if (\n checkConditions(conditions, ErrorBoundaryConditions.sitecoreContext) &&\n !props?.sitecoreContext\n ) {\n return isEditing ? (\n <>\n
    \n \n
    \n \n \n ) : null;\n }\n if (checkConditions(conditions, ErrorBoundaryConditions.params) && !props?.params) {\n return isEditing ? : null;\n }\n return ;\n };\n ErrorBoundary.displayName = `ErrorBoundary(${getDisplayName(WrappedComponent)})`;\n return ErrorBoundary;\n};\n\nwithErrorBoundary.propTypes = {\n WrappedComponent: PropTypes.element,\n};\n\nexport default withErrorBoundary;\n","import { useEffect, useState } from 'react';\n\nconst usePdfView = () => {\n const [pdfView, setPdfView] = useState(false);\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n } else {\n setPdfView(false);\n }\n }, []);\n return pdfView;\n};\n\nexport default usePdfView;\n","/* eslint-disable import/first */\n\nimport 'cross-fetch/polyfill';\nimport { ApolloClient } from 'apollo-client';\nimport { InMemoryCache, IntrospectionFragmentMatcher } from 'apollo-cache-inmemory';\n\n/* eslint-disable import/order */\n\n/*\n INTROSPECTION DATA\n See https://www.apollographql.com/docs/react/recipes/fragment-matching.html\n This enables the Apollo cache to process fragments on interface types correctly.\n If this file does not exist, you may need to run the `jss graphql:update` script.\n*/\nimport introspectionQueryResultData from '../temp/GraphQLFragmentTypes.json';\n\n/*\n QUERY LINK SELECTION\n A link is transport which GraphQL queries are pushed across.\n You have many choices.\n See the apollo-link documentation for more details.\n\n NOTE: to use Sitecore Experience Editor it is essential that your\n link passes cookies along with requests (credentials: 'include').\n*/\n\n// choose between a basic HTTP link to run queries...\n// import { createHttpLink } from 'apollo-link-http';\n// const link = createHttpLink({ uri: endpoint, credentials: 'include' });\n\n// ...or a batched link (multiple queries within 10ms all go in one HTTP request)\nimport { BatchHttpLink } from 'apollo-link-batch-http';\n\n// ...and an automatic persisted query link, which reduces bandwidth by using query hashes to alias content\n// the APQ link is _chained_ behind another link that performs the actual HTTP calls, so you can choose\n// APQ + batched, or APQ + http links for example.\nimport { createPersistedQueryLink } from 'apollo-link-persisted-queries';\n\nexport default function (endpoint, ssr, initialCacheState) {\n /* HTTP link selection: default to batched + APQ */\n const link = createPersistedQueryLink().concat(\n new BatchHttpLink({\n uri: endpoint,\n credentials: 'include',\n headers: {\n connection: 'keep-alive',\n },\n })\n );\n\n const cache = new InMemoryCache({\n fragmentMatcher: new IntrospectionFragmentMatcher({\n introspectionQueryResultData,\n }),\n });\n\n return new ApolloClient({\n ssrMode: ssr,\n ssrForceFetchDelay: 100,\n link,\n cache: cache.restore(initialCacheState),\n });\n}\n","// Also add values under jss/data/dictionary! This is just the mock for Storybook.\n\nexport default {\n Scroll: 'Scroll',\n SortBy: 'Sort By',\n SearchResultsLabel: 'Search Results for',\n Result: 'result',\n Results: 'results',\n Contact: 'Contact',\n Education: 'Education',\n BarAdmissions: 'Bar Admissions',\n ProfessionalInvolvement: 'Professional Involvement',\n ClearAll: 'Clear All',\n ClearFilter: 'Clear Filter',\n ShowResults: 'Show Results',\n ClearDate: 'Clear Date',\n Filter: 'Filter',\n Filters: 'Filters',\n FiltersSelected: 'Filter(s) Selected',\n Any: 'Any',\n SelectADate: 'Select a date',\n PublishDate: 'Publish date',\n Published: 'Published',\n StartDate: 'Start Date',\n EndDate: 'End Date',\n BackToPublishDate: 'Back to publish date',\n Date: 'Date',\n Of: 'of',\n GoToSeries: 'Go to Series',\n Podcast: 'Podcast',\n Insight: 'Insight',\n Events: 'Event',\n Video: 'Video',\n News: 'News',\n WorkItem: 'Work',\n QuarterlyIssue: 'Quarterly',\n ContentSeries: 'Series',\n Webinar: 'Webinar',\n NoPageLinkSet: 'No page link set',\n AddtoCalendar: 'Add to Calendar',\n Menu: 'Menu',\n ContentType: 'Content Type',\n EditorsPicks: 'Editor’s Picks',\n SkipContent: 'Skip to main content',\n ResultsLoading: ' Results Loading',\n Error: 'Error',\n MostRecent: 'Most Recent',\n Municipality: 'Municipality',\n Province: 'Province',\n Country: 'Country',\n ProjectType: 'Project Type',\n ProcurementModel: 'Procurement Model',\n GovernmentLevel: 'Government Level',\n Client: 'Client',\n ClientRole: 'Client Role',\n Value: 'Value',\n NoResults: 'No Results',\n Reset: 'Reset',\n ResetFilter: 'Reset Filter',\n Keywords: 'Keywords',\n LearnMore: 'Learn More',\n ExportAsPDF: 'Export as PDF',\n Search: 'Search',\n Calculating: 'Calculating',\n MinRead: 'min read',\n Insights: 'Insights',\n TorysBrand: 'Torys LLP',\n ReadMore: 'Read More',\n WorkTitle: 'Our Work',\n People: 'People',\n About: 'About',\n Expertise: 'Expertise',\n Relevancy: 'Relevancy',\n Alphabetical: 'Alphabetical',\n SubmitSearch: 'Submit Search',\n CloseNavigation: 'CloseNavigation',\n Position: 'Position',\n School: 'School',\n YearOfCall: 'Year of Call',\n FilterWork: 'Work',\n FilterEvents: 'Events',\n FilterInsights: 'Insights',\n FilterPodcasts: 'Podcasts',\n FilterVideos: 'Videos',\n FilterNews: 'News',\n RecommendedFilters: 'Recommended Filters',\n NoMatchingFiltersTitle: 'No Matching Filters',\n NoMatchingFiltersDescription: 'No Matching Filters Description',\n Share: 'Share',\n OpensInANewTab: 'Opens in a new tab',\n OpensInANewWindow: 'Opens in a new window',\n OpenArticleNavigation: 'Open Article Navigation',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport mockDictionary from './mock/dictionary.js';\nconst getDisplayName = (WrappedComponent) => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nconst toValueObject = (obj) => {\n if (typeof obj === 'object') {\n return Object.keys(obj).reduce((result, k) => {\n result[k] = toValueObject(obj[k]);\n return result;\n }, {});\n }\n\n return { value: obj };\n};\n\nconst mockT = (key) => mockDictionary[key];\n\nconst forStorybook = (WrappedComponent) => {\n const StorybookWrapper = ({\n children,\n placeholders,\n fields,\n renderings,\n rendering,\n params,\n ...props\n }) => {\n const fieldsWithObject = {\n ...toValueObject(props),\n ...fields,\n };\n return (\n \n {children}\n \n );\n };\n StorybookWrapper.displayName = `StorybookWrapper(${getDisplayName(WrappedComponent)})`;\n return StorybookWrapper;\n};\n\nforStorybook.propTypes = {\n WrappedComponent: PropTypes.element,\n};\n\nexport const forStorybookV2 = (WrappedComponent) => {\n const StorybookWrapper = ({\n children,\n placeholders,\n fields,\n customFields,\n renderings,\n rendering,\n ...props\n }) => {\n const fieldsWithObject = {\n ...toValueObject(fields),\n ...customFields,\n };\n return (\n \n {children}\n \n );\n };\n StorybookWrapper.displayName = `StorybookWrapperV2(${getDisplayName(WrappedComponent)})`;\n return StorybookWrapper;\n};\n\nforStorybookV2.propTypes = {\n WrappedComponent: PropTypes.element,\n};\n\nexport default forStorybook;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport LinkListItem from '../LinkListItem/LinkListItem.jsx';\nimport { ThemeEnum, LinkListLayoutEnum as LayoutEnum } from '../../utils/enums';\nimport { withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport './link-list.scss';\n\nconst LinkList = ({ style, linkList, children, params }) => {\n const linkListBlock = 'zn-link-list';\n const { Layout } = params;\n\n return (\n \n {linkList}\n {children}\n \n );\n};\n\nLinkList.prototype = {\n fields: PropTypes.exact({\n Layout: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(LayoutEnum)).isRequired,\n }).isRequired,\n HideDividerLines: PropTypes.bool,\n Links: PropTypes.arrayOf(LinkListItem.prototype),\n Theme: PropTypes.shape({ value: PropTypes.oneOf(Object.values(ThemeEnum)) }),\n }),\n};\n\nexport const BasicLinkList = LinkList;\nexport default withPlaceholder('linkList')(LinkList);\nexport const LinkListStorybook = forStorybook(LinkList);\n","export default function getScrollbarWidth() {\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n const scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n}\n","import React from 'react';\n\nexport const FacebookIconComponent = () => (\n \n \n \n);\n\nexport const TwitterIconComponent = () => (\n \n \n \n);\n\nexport const LinkedinIconComponent = () => (\n \n \n \n);\n\nexport const LinkIconComponent = () => (\n \n \n \n);\n\nexport const MailIconComponent = () => (\n \n \n \n);\n\nexport const PdfIconComponent = () => (\n \n \n \n);\n","import React from 'react';\nimport Link from '../Link/Link.jsx';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport { ButtonVariantEnum, LinkSubVariantsEnum, LinkVariantEnum } from '../../utils/enums';\nimport Text from '../Text';\nimport './mega-nav-header.scss';\nimport classnames from 'classnames';\n\nconst MegaNavHeader = ({\n title,\n description,\n link,\n linkText,\n linkTarget,\n onBack,\n theme,\n secondaryDescription,\n secondaryLink,\n secondaryLinkText,\n}) => {\n return (\n
    \n \n
    \n {((linkText && link) || description?.value) && (\n
    \n \n {linkText && link && (\n \n )}\n
    \n )}\n {((secondaryLink && secondaryLinkText) || secondaryDescription?.value) && (\n \n \n {secondaryLinkText && secondaryLink && (\n \n )}\n
    \n )}\n
    \n \n );\n};\n\nexport default MegaNavHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport './social-media-links.scss';\nimport Text from '../Text';\nimport classnames from 'classnames';\nimport { ThemeEnum, SizeEnum } from '../../utils/enums';\n\nconst socialMediaLinkBlock = 'zn-social-media-link';\n\nconst SocialMediaLink = ({\n include,\n link,\n theme,\n label,\n IconComponent,\n alt,\n showLabel,\n className,\n children,\n labelsMarginSize,\n}) => {\n if (include !== true) {\n return null;\n }\n\n return (\n \n \n \n {children}\n \n );\n};\n\nSocialMediaLink.propTypes = {\n theme: PropTypes.oneOf(Object.values(ThemeEnum)).isRequired,\n include: PropTypes.bool.isRequired,\n showLabel: PropTypes.bool.isRequired,\n IconComponent: PropTypes.instanceOf(Object).isRequired,\n link: PropTypes.shape({ value: PropTypes.string }),\n alt: PropTypes.shape({ value: PropTypes.string }),\n labelsMarginSize: PropTypes.oneOf(Object.values(SizeEnum)),\n label: PropTypes.shape({ value: PropTypes.string }),\n className: PropTypes.string,\n children: PropTypes.node,\n};\n\nexport default SocialMediaLink;\n","import React from 'react';\n\nexport const ArrowRight = () => {\n return (\n \n \n \n \n );\n};\n\nexport const ArrowLeft = () => {\n return (\n \n \n \n \n );\n};\n\nexport const ExternalLink = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport const ChevronRight = () => {\n return (\n \n \n \n \n );\n};\n\nexport const SocialShare = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ChevronLeft = () => {\n return (\n \n \n \n \n );\n};\n\nexport const DownloadFile = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport const NewPDF = () => {\n return (\n \n \n \n \n );\n};\n\nexport const ChevronDown = () => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ChevronUp = () => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ChevronLeftCirlcle = ({ inactive }) => {\n const borderColor = inactive ? '#E6E6E6' : 'black';\n const chevronColor = inactive ? '#4C4C4C' : 'black';\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ChevronRightCirlcle = ({ inactive }) => {\n const borderColor = inactive ? '#E6E6E6' : 'black';\n const chevronColor = inactive ? '#4C4C4C' : 'black';\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const CirlcleSmall = ({ inactive }) => {\n const color = inactive ? '#E6E6E6' : '#006EAA';\n return (\n \n \n \n );\n};\n\nexport const ChevronLeftNav = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ChevronRightNav = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport { withSitecoreContext, RichText, Text } from '@sitecore-jss/sitecore-jss-react';\nimport { ChevronDown, ChevronUp } from '../../assets/LinkIcons.js';\nimport { AccordionTitleColorEnum } from '../../utils/enums';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport './accordion.scss';\nimport '../RichText/rich-text.scss';\nimport usePdfView from '../../utils/hooks/usePdfView.jsx';\n\nconst Accordion = ({ sitecoreContext, fields, params }) => {\n const { Title, Body } = fields;\n const { TitleColor } = params;\n const [isActive, setIsActive] = useState(false);\n const [maxHeight, setMaxHeight] = useState('0px');\n const contentRef = useRef(null);\n const accordionBlock = 'zn-accordion';\n const isEditing = sitecoreContext?.pageEditing;\n const TitleTag = isEditing ? 'div' : 'button';\n const pdfView = usePdfView();\n\n const toggleAccordion = () => {\n setIsActive((prevIsActive) => !prevIsActive);\n setMaxHeight(() => (isActive ? '0px' : `${contentRef.current.scrollHeight}px`));\n };\n\n useEffect(() => {\n if (pdfView) {\n setIsActive(true);\n setMaxHeight('none');\n }\n }, [pdfView]);\n\n return (\n (Title?.value || isEditing) && (\n
    \n {isEditing && (\n

    Accordion Editor View

    \n )}\n \n \n \n
    \n
    \n {!isActive ? : }\n
    \n \n \n \n \n
    \n \n )\n );\n};\n\nAccordion.propTypes = {\n fields: PropTypes.exact({\n Title: PropTypes.shape({\n value: PropTypes.string,\n }),\n TitleColor: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(AccordionTitleColorEnum)),\n }),\n Body: PropTypes.shape({\n value: PropTypes.object,\n }),\n }),\n params: PropTypes.exact({\n TitleColor: PropTypes.oneOf(Object.values(AccordionTitleColorEnum)),\n }),\n};\n\nconst AccordionSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(Accordion)\n);\n\nexport const AccordionStorybook = forStorybookV2(AccordionSitecore);\n\nexport default AccordionSitecore;\n","/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { Text as TextJss, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { SizeEnum, ArticleHeadingColorEnum, ThemeEnum, HeadingLevelEnum } from '../../utils/enums';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport './article-heading.scss';\nimport paramToBool from '../../utils/paramToBool';\n\nconst ArticleHeading = ({ fields, params, sitecoreContext }) => {\n const { Text } = fields;\n const {\n Theme,\n Size,\n HeadingLevel,\n Color,\n MarginTopSize,\n MarginBottomSize,\n isPeripheralContent,\n } = params;\n const isEditing = sitecoreContext?.pageEditing;\n\n const sectionHeadingBlock = 'zn-article-heading';\n let theme = Theme ? Theme.toLowerCase() : ThemeEnum.light.toLowerCase();\n let TagName = HeadingLevel ? HeadingLevel.toLowerCase() : 'span';\n let color = Color ? Color.toLowerCase() : '';\n const marginTopSize = MarginTopSize?.toLowerCase() || null;\n const marginBottomSize = MarginBottomSize?.toLowerCase() || null;\n return (\n (Text?.value || isEditing) && (\n \n \n \n )\n );\n};\n\nArticleHeading.propTypes = {\n fields: PropTypes.exact({\n Text: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n params: PropTypes.exact({\n Theme: PropTypes.oneOf(Object.values(ThemeEnum)),\n Size: PropTypes.oneOf(Object.values(SizeEnum)),\n HeadingLevel: PropTypes.oneOf(Object.values(HeadingLevelEnum)),\n Color: PropTypes.oneOf(Object.values(ArticleHeadingColorEnum)),\n }),\n};\n\nconst ArticleHeadingSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n ArticleHeading\n )\n);\n\nexport const ArticleHeadingStorybook = forStorybookV2(ArticleHeadingSitecore);\n\nexport default ArticleHeadingSitecore;\n","var luxon = require('luxon');\n\nexport const IsEmptyDate = function (date) {\n var parsed = date;\n var jsDate = new Date(date);\n if (date && jsDate) {\n parsed = luxon.DateTime.fromJSDate(jsDate);\n }\n return !date || parsed?.year === 0 || parsed?.year === 1;\n};\n","import React, { useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport { DateTime } from 'luxon';\nimport { IsEmptyDate } from '../../utils/dateExtensions';\nimport readingTime from 'reading-time';\nimport Text from '../Text/Text.jsx';\nimport { withTranslation } from 'react-i18next';\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport Button from '../ButtonLink/ButtonLink.jsx';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { Image as Img } from '@sitecore-jss/sitecore-jss-react';\nimport {\n ArticleHeroThemeColorEnum,\n ThemeEnum,\n ButtonVariantEnum,\n LinkTargetEnum,\n TimeZoneEnum,\n ContentTypeEnum,\n} from '../../utils/enums.js';\nimport { getCalendarEventURL } from '../../utils/calendarEvent.jsx';\n\nimport './article-hero.scss';\n\nconst timeZone = TimeZoneEnum.server;\n\nconst getChapterTitle = (TableOfContentsArticles) => {\n if (!Array.isArray(TableOfContentsArticles)) {\n return '';\n }\n\n const quarterlyItem = TableOfContentsArticles.find(\n (item) => !!item?.fields?.['Issue Display Date']\n );\n return quarterlyItem?.fields?.['Issue Display Date'] || '';\n};\n\nconst ArticleHero = ({ fields, sitecoreContext, t, params }) => {\n const {\n Title,\n Image,\n PremiumArticle,\n QuarterlyWatermark,\n ReportEdition,\n PublishDate,\n ReadingTimeOverride,\n ButtonLink,\n ContextDateField,\n ContextTitleField,\n } = fields;\n const { ColorTheme, ColorAccent, TwoColumnLayout } = params;\n const contextFields = sitecoreContext?.route?.fields;\n const isPageEdit = sitecoreContext?.pageEditing;\n const isEvent = sitecoreContext?.route?.templateName === ContentTypeEnum.event;\n const isPremiumArticle =\n sitecoreContext?.route?.templateName === ContentTypeEnum.premiumArticle;\n const isPublication =\n sitecoreContext?.route?.templateName === ContentTypeEnum.publication || isPremiumArticle;\n const isProjectMapWork =\n contextFields?.DefaultPostingStyle?.value == 'Project' ||\n contextFields?.DefaultPostingStyle?.value == 'Hybrid';\n const isWork =\n sitecoreContext?.route?.templateName === ContentTypeEnum.work ||\n sitecoreContext?.route?.templateName === ContentTypeEnum.projectMapWork;\n const isNews = sitecoreContext?.route?.templateName === ContentTypeEnum.news;\n const isWebinar = sitecoreContext?.route?.templateName === ContentTypeEnum.webinar;\n const articleHeroBlock = 'zn-article-hero';\n const colourTheme = ColorTheme ? ColorTheme.toLowerCase() : '';\n const colourAccent = ColorAccent ? ColorAccent.toLowerCase() : '';\n const expertiseCategory =\n !isPageEdit && contextFields?.ExpertiseCategory\n ? contextFields?.ExpertiseCategory[0]?.fields?.Title\n : '';\n\n let titleValue = null;\n\n if (!Title?.value && contextFields?.[ContextTitleField?.value]?.value) {\n titleValue = contextFields[ContextTitleField.value];\n } else {\n titleValue = Title?.value ? Title : contextFields?.Title;\n }\n\n const description = isEvent ? contextFields?.Location : contextFields?.Subtitle;\n const projectMapIndustry =\n isProjectMapWork && !isPageEdit && contextFields?.Industries\n ? contextFields?.Industries[contextFields?.Industries?.length - 1]?.fields?.Title //TODO: subject to change based on how lowest level industry determined\n : '';\n\n const contextEyebrowPremium = isPremiumArticle\n ? getChapterTitle(contextFields?.['Table of Contents Articles'])\n : '';\n\n let publishDate = null;\n\n if (contextFields?.[ContextDateField?.value]?.value) {\n publishDate = DateTime.fromISO(contextFields?.[ContextDateField?.value]?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n }).setZone(timeZone, { keepLocalTime: true });\n } else if (PublishDate?.value) {\n publishDate = DateTime.fromISO(PublishDate.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n }).setZone(timeZone, { keepLocalTime: true });\n }\n const contextDate =\n isEvent || isWebinar\n ? DateTime.fromISO(contextFields?.StartDateAndTime?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n }).setZone(timeZone, { keepLocalTime: true })\n : DateTime.fromISO(contextFields?.Date?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n }).setZone(timeZone, { keepLocalTime: true });\n\n const contextEndDate =\n isEvent || isWebinar\n ? DateTime.fromISO(contextFields?.EndDateAndTime?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n }).setZone(timeZone, { keepLocalTime: true })\n : '';\n\n const endTimeValue = !IsEmptyDate(contextEndDate)\n ? ` - ${contextEndDate?.hour}:${contextEndDate?.minute.toLocaleString(\n sitecoreContext?.route?.itemLanguage,\n {\n minimumIntegerDigits: 2,\n useGrouping: false,\n }\n )}`\n : '';\n\n const endDateValue =\n !IsEmptyDate(contextEndDate) &&\n contextEndDate.toLocaleString() !== contextDate.toLocaleString()\n ? ` - ${contextEndDate.toLocaleString(DateTime.DATE_FULL)}`\n : '';\n\n const publishDateValue = !IsEmptyDate(publishDate)\n ? publishDate\n : !IsEmptyDate(contextDate)\n ? contextDate\n : '';\n\n const publishDateLocale =\n isWebinar &&\n publishDateValue &&\n !IsEmptyDate(contextEndDate) &&\n contextEndDate.toLocaleString() !== contextDate.toLocaleString()\n ? `${publishDateValue.monthLong} ${publishDateValue.day}`\n : publishDateValue\n ? publishDateValue.toLocaleString(DateTime.DATE_FULL)\n : '';\n\n const publishDateString =\n (isEvent || isWebinar) && publishDateValue\n ? `${publishDateLocale}${endDateValue} • \n ${publishDateValue?.hour}:${publishDateValue?.minute.toLocaleString(\n sitecoreContext?.route?.itemLanguage,\n {\n minimumIntegerDigits: 2,\n useGrouping: false,\n }\n )}${endTimeValue} ${contextFields?.EventTimeZone?.fields?.DisplayName?.value || ''}`\n : publishDateValue\n ? publishDateLocale\n : '';\n\n let workEyebrowText = '';\n\n if (isWork) {\n if (isProjectMapWork) {\n if (expertiseCategory?.value && projectMapIndustry?.value) {\n workEyebrowText = (\n
    \n {expertiseCategory?.value}\n |\n {projectMapIndustry?.value}\n
    \n );\n } else if (expertiseCategory?.value) {\n workEyebrowText = expertiseCategory?.value;\n } else if (projectMapIndustry?.value) {\n workEyebrowText = projectMapIndustry?.value;\n }\n } else {\n workEyebrowText = expertiseCategory?.value ? (\n
    \n {expertiseCategory?.value}\n |\n {publishDateString}\n
    \n ) : (\n publishDateString\n );\n }\n }\n\n const Theme =\n colourTheme === ArticleHeroThemeColorEnum.white.toLocaleLowerCase() || colourTheme === ''\n ? ThemeEnum.light\n : ThemeEnum.dark;\n\n const calendarEventData = {\n title: contextFields?.Title?.value,\n startDate: contextFields?.StartDateAndTime?.value,\n endDate: contextFields?.EndDateAndTime?.value,\n location: contextFields?.Location?.value,\n description: '',\n };\n\n const calendarEventURL = getCalendarEventURL(calendarEventData);\n\n const [timeToRead, setTimeToRead] = useState(\n ReadingTimeOverride?.value ? ReadingTimeOverride : { value: `${t('Calculating')}...` }\n );\n useEffect(() => {\n if (isPublication && !ReadingTimeOverride?.value) {\n const readingTimeStats = readingTime(\n document?.querySelector('.zn-sticky-side-banner__content')?.innerText || ''\n );\n setTimeToRead({\n value: readingTimeStats?.minutes\n ? `${Math.ceil(readingTimeStats?.minutes)} ${t('MinRead')}`\n : '',\n });\n }\n }, []);\n\n return (\n \n {Image?.value?.src && }\n \n \n {PremiumArticle?.value ? (\n
    \n {QuarterlyWatermark.value ? (\n \n \n \n ) : (\n \n \n \n )}\n\n {ReportEdition?.value && (\n <>\n \n •\n \n \n \n \n \n )}\n
    \n ) : (\n
    \n {(isPublication || isEvent || isNews || isWebinar) && (\n \n \n {publishDateString}\n \n \n )}\n\n {isWork && (\n \n \n {workEyebrowText}\n \n \n )}\n\n {isPublication && (timeToRead?.value || isPageEdit) && (\n <>\n \n •\n \n \n \n \n \n )}\n
    \n )}\n\n \n \n \n \n\n {(isPageEdit || description?.value) && (\n
    \n \n
    \n )}\n\n {isEvent && (\n
    \n \n
    \n \n {contextFields?.City?.value &&\n (contextFields?.StateOrProvince?.fields?.StateAndProvinceName\n ?.value ||\n contextFields?.ZipOrPostalCode?.value) && , }\n {contextFields?.StateOrProvince?.fields?.StateAndProvinceName\n ?.value && (\n \n )}\n \n \n
    \n )}\n\n {isEvent && (\n \n )}\n\n {ButtonLink?.value?.href && ButtonLink?.value?.text && (\n \n )}\n \n \n \n );\n};\n\nconst ArticleHeroSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(ArticleHero)\n);\nexport const ArticleHeroStorybook = forStorybookV2(ArticleHeroSitecore);\nexport default withTranslation()(ArticleHeroSitecore);\n","import { createEvent } from 'ics';\n\nexport const getCalendarEventURL = (eventData) => {\n /**\n * Returns a calendar download url from event data\n * @param {Object} eventData Data about the event\n * @param {String} eventData.title Title of the event\n * @param {String} eventData.startDate Date and time the event starts\n * @param {String} [eventData.endDate] Date and time the event ends\n * @param {Object} [eventData.duration] Event Duration in form {hours: X, minutes: X}\n * @param {String} [eventData.description] Description of the event\n * @param {String} [eventData.location] Location of the event\n * @param {String} [eventData.url] URL related to the event\n */\n\n const { startDate, endDate, duration, title, description, location, url } = eventData;\n let start, end;\n\n if (startDate) {\n const startDateObject = new Date(Date.parse(startDate));\n const startYear = startDateObject.getFullYear();\n const startMonth = startDateObject.getMonth() + 1;\n const startDay = startDateObject.getDate();\n const startHours = startDateObject.getHours();\n const startMinutes = startDateObject.getMinutes();\n start = [startYear, startMonth, startDay, startHours, startMinutes];\n }\n\n if (endDate) {\n const endDateObject = new Date(Date.parse(endDate));\n const endYear = endDateObject.getFullYear();\n const endMonth = endDateObject.getMonth() + 1;\n const endDay = endDateObject.getDate();\n const endHours = endDateObject.getHours();\n const endMinutes = endDateObject.getMinutes();\n end = [endYear, endMonth, endDay, endHours, endMinutes];\n }\n\n const eventJSON = Object.assign(\n {},\n start && { start },\n end && { end },\n duration && { duration },\n title && { title },\n description && { description },\n location && { location },\n url && { url }\n );\n\n return 'data:text/calendar;charset=utf-8,' + encodeURIComponent(createEvent(eventJSON).value);\n};\n","/* eslint-disable no-unused-vars */\nimport React from 'react';\n// eslint-disable-next-line import/no-unresolved\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport { ArrowRight } from '../../assets/LinkIcons.js';\nimport { withTranslation } from 'react-i18next';\nimport { Image as Img, RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport classnames from 'classnames';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { DateTime } from 'luxon';\nimport { IsEmptyDate } from '../../utils/dateExtensions';\nimport './content-card.scss';\nimport {\n HighlightColorItemEnum,\n ContentCardColour,\n ContentCardType,\n ThemeEnum,\n ButtonVariantEnum,\n LinkTargetValueEnum,\n ContentTypeEnum,\n TimeZoneEnum,\n} from '../../utils/enums.js';\nimport {\n DocumentIcon,\n MovieCameraIcon,\n HeadPhonesIcon,\n NewsPaperIcon,\n CalendarIcon,\n BookmarkIcon,\n BriefcaseIcon,\n QuarterlyIcon,\n} from '../../assets/common.js';\n\nconst TypeToIconEmum = {\n Podcast: HeadPhonesIcon,\n Insight: NewsPaperIcon,\n Event: CalendarIcon,\n Video: MovieCameraIcon,\n News: BriefcaseIcon,\n WorkItem: DocumentIcon,\n QuarterlyIssue: QuarterlyIcon,\n ContentSeries: BookmarkIcon,\n Webinar: MovieCameraIcon,\n};\n\nconst contentCardBlock = 'zn-content-card';\n\nconst parseContentType = (template) => {\n let contentType;\n\n switch (template) {\n case ContentTypeEnum.publication:\n contentType = ContentCardType.publication;\n break;\n case ContentTypeEnum.event:\n contentType = ContentCardType.events;\n break;\n case ContentTypeEnum.video:\n contentType = ContentCardType.video;\n break;\n case ContentTypeEnum.webinar:\n contentType = ContentCardType.webinar;\n break;\n case ContentTypeEnum.podcast:\n contentType = ContentCardType.podcast;\n break;\n case ContentTypeEnum.work:\n contentType = ContentCardType.workItem;\n break;\n case ContentTypeEnum.projectMapWork:\n contentType = ContentCardType.workItem;\n break;\n case ContentTypeEnum.news:\n contentType = ContentCardType.news;\n break;\n case ContentTypeEnum.quarterlyReportLanding:\n contentType = ContentCardType.quarterlyIssue;\n break;\n case ContentTypeEnum.expertise:\n contentType = ContentCardType.contentSeries;\n break;\n case ContentTypeEnum.premiumArticle:\n contentType = ContentCardType.quarterlyIssue;\n break;\n case ContentTypeEnum.insight:\n contentType = ContentCardType.publication;\n break;\n }\n\n return contentType;\n};\n\nconst ContentCard = ({ sitecoreContext, fields, params, t }) => {\n const { data } = fields;\n const { IncludeImage, ImageHighlightColor, DefaultCardColor, EnableAnimation } = params;\n const AltText = data?.datasource?.altText || '';\n const TitleOverride = data?.datasource?.titleOverride || '';\n const DescriptionOverride = data?.datasource?.descriptionOverride || '';\n const DateOverride = data?.datasource?.dateOverride || '';\n const ImageOverride = data?.datasource?.imageOverride || '';\n const ExternalLink = data?.datasource?.externalLink || {};\n const ExternalLinkIcon = data?.datasource?.externalLinkIcon?.value || 'Insight';\n const PageLink = data?.datasource?.pageLink?.targetItem || '';\n const teaserTitle = PageLink?.teaserTitle;\n const teaserDescription = PageLink?.teaserDescription;\n const teaserTemplateTypeOverride = PageLink?.teaserTemplateTypeOverride;\n const teaserDate = PageLink?.teaserDate;\n const hideDate = PageLink?.hideCardTeaserDate;\n const teaserImage = PageLink?.teaserImage;\n const notNavigatable = PageLink?.notNavigatable;\n const isEditing = sitecoreContext.pageEditing;\n const ContextDateOverride =\n DateOverride?.value &&\n DateTime.fromISO(DateOverride?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n })\n .setZone(TimeZoneEnum.server)\n .toLocaleString(DateTime.DATE_MED);\n const ContextTeaserDate =\n teaserDate?.value &&\n DateTime.fromISO(teaserDate?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n })\n .setZone(TimeZoneEnum.server)\n .toLocaleString(DateTime.DATE_MED);\n let useExternalLink =\n ExternalLink?.linkType === 'external' &&\n ExternalLink?.url &&\n (TitleOverride?.value || ExternalLink?.text);\n\n let externalLinkTitle = ExternalLink?.text\n ? { value: ExternalLink?.text }\n : TitleOverride?.value\n ? TitleOverride\n : '';\n\n //content card values\n //if external link use the link text or the title override, if page link use override or teaser title\n const title = useExternalLink\n ? externalLinkTitle\n : TitleOverride?.value\n ? TitleOverride\n : teaserTitle;\n const description = DescriptionOverride?.value ? DescriptionOverride : teaserDescription;\n\n let FinalDate = '';\n\n if (!hideDate?.value || hideDate?.value === '0' || ContextDateOverride) {\n FinalDate =\n DateOverride?.value && !IsEmptyDate(ContextDateOverride)\n ? ContextDateOverride\n : teaserDate?.value && !IsEmptyDate(ContextTeaserDate)\n ? ContextTeaserDate\n : '';\n } else {\n FinalDate = '';\n }\n\n const image = ImageOverride?.src ? ImageOverride : teaserImage;\n let link = useExternalLink ? ExternalLink?.url : PageLink?.url;\n // Encode any special characters in link. Add / and : back in\n link = link ? encodeURIComponent(link)?.replace(/%2F/g, '/')?.replace(/%3A/g, ':') : '';\n\n let withImage = PageLink?.teaserImage?.src || ImageOverride?.src;\n let ContentStyle = useExternalLink\n ? ExternalLinkIcon\n ? parseContentType(ExternalLinkIcon)\n : parseContentType('Insight')\n : PageLink?.template?.name\n ? parseContentType(PageLink?.template?.name)\n : '';\n const IconTag = ContentStyle ? TypeToIconEmum[ContentStyle.replace(/\\s/g, '')] : '';\n let Type =\n ContentStyle === ContentCardType.contentSeries ||\n !ContentStyle ||\n notNavigatable?.value === '1'\n ? 'div'\n : 'a';\n return (\n (PageLink || isEditing || useExternalLink) &&\n (link?.startsWith('/') && notNavigatable?.value !== '1' ? (\n \n
    \n {withImage &&\n IncludeImage === '1' &&\n ContentStyle !== ContentCardType.contentSeries && (\n
    \n {ImageHighlightColor &&\n ImageHighlightColor !== HighlightColorItemEnum.none && (\n
    \n )}\n \n
    \n )}\n
    \n {(ContentStyle || teaserTemplateTypeOverride?.value) && (\n
    \n {IconTag && (\n \n \n
    \n )}\n
    \n {teaserTemplateTypeOverride?.value\n ? teaserTemplateTypeOverride?.value\n : ContentStyle\n ? t(ContentStyle?.replace(/\\s/g, ''))\n : ''}\n
    \n
    \n )}\n \n \n \n
    \n \n
    \n \n \n {ContentStyle === ContentCardType.contentSeries && notNavigatable?.value !== '1' ? (\n
    \n \n
    \n ) : (\n
    \n
    {FinalDate && FinalDate}
    \n {notNavigatable?.value !== '1' && (\n
    \n \n
    \n )}\n
    \n )}\n \n ) : (\n \n
    \n {withImage &&\n IncludeImage === '1' &&\n ContentStyle !== ContentCardType.contentSeries && (\n
    \n {ImageHighlightColor &&\n ImageHighlightColor !== HighlightColorItemEnum.none && (\n
    \n )}\n \n
    \n )}\n
    \n
    \n {IconTag && (\n \n \n
    \n )}\n {(isEditing || ContentStyle) && (\n
    \n {ContentStyle\n ? t(ContentStyle?.replace(/\\s/g, ''))\n : t('NoPageLinkSet')}\n
    \n )}\n
    \n \n \n \n
    \n \n
    \n \n \n {ContentStyle === ContentCardType.contentSeries && notNavigatable?.value !== '1' ? (\n
    \n \n
    \n ) : (\n
    \n
    {FinalDate && FinalDate}
    \n {notNavigatable?.value !== '1' && (\n
    \n \n
    \n )}\n
    \n )}\n \n ))\n );\n};\n\nconst ContentCardSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params])(ContentCard)\n);\n\nexport default withTranslation()(ContentCardSitecore);\nexport const ContentCardStorybook = forStorybookV2(ContentCardSitecore);\n","import React from 'react';\nimport { LinkTargetValueEnum } from '../../utils/enums';\n\nimport { useTranslation } from 'react-i18next';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\nconst ContentRowPdfList = ({ results }) => {\n return (\n
    \n {results.map((result, index) => (\n \n ))}\n
    \n );\n};\nexport default ContentRowPdfList;\n\nconst Row = ({ result }) => {\n const { t } = useTranslation();\n const classBase = 'zn-featured-list';\n const {\n featuredTeaserTitle,\n teaserTitle,\n displayName,\n url,\n featuredTeaserDescription,\n teaserDescription,\n notNavigatable,\n } = result.item ?? {};\n const getTitle = () => {\n if (featuredTeaserTitle?.value) {\n return featuredTeaserTitle;\n } else if (teaserTitle?.value) {\n return teaserTitle;\n } else {\n return displayName;\n }\n };\n const title = getTitle();\n\n const description = featuredTeaserDescription?.value || teaserDescription || { value: '' };\n\n const link =\n notNavigatable?.value === '1'\n ? { value: null }\n : {\n value: {\n href: url,\n text: t('ReadMore'),\n title: result?.name,\n target: LinkTargetValueEnum.self,\n },\n };\n return (\n
    \n
    \n \n
    \n
    \n \n
    \n\n {link?.value && (\n \n {link.value.text}\n \n )}\n
    \n );\n};\n","import React from 'react';\nimport classnames from 'classnames';\nimport './heading-accent.scss';\nimport { AccentColorEnum, SectionHeadingSizeEnum } from '../../utils/enums';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\n\nconst HeadingAccent = ({ params }) => {\n const { AccentColor, SectionHeadingSize, EnableAnimation } = params;\n\n const sectionHeadingBlock = 'zn-heading-accent';\n\n // Don't render anything if Color is set as 'None'\n if (!AccentColor || AccentColor === AccentColorEnum.none) return null;\n\n return (\n \n );\n};\n\nexport const HeadingAccentStorybook = forStorybook(HeadingAccent);\n\nexport default HeadingAccent;\n","import React, { useEffect } from 'react';\nimport classnames from 'classnames';\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport './section-heading.scss';\nimport { OverrideAlignmentEnum, SectionHeadingSizeEnum, ThemeEnum } from '../../utils/enums';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\nimport HeadingAccent from '../HeadingAccent';\nimport { setAnimationInterObserver } from '../../utils/observers.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport paramToBool from '../../utils/paramToBool';\nimport usePdfView from '../../utils/hooks/usePdfView.jsx';\n\nconst SectionHeading = ({ fields, params, sitecoreContext }) => {\n const pdfView = usePdfView();\n\n const {\n Theme,\n SectionHeadingSize,\n HeadingLevel,\n AccentColor,\n OverrideAlignment,\n PaddingBottom,\n PaddingTop,\n EnableAnimation,\n isPeripheralContent,\n } = params;\n\n const { TextInput } = fields;\n const sectionHeadingBlock = 'zn-section-heading';\n\n let TagName = HeadingLevel ? HeadingLevel?.toLowerCase() : 'span';\n\n const isEditing = sitecoreContext?.pageEditing;\n const isAnimated = !pdfView && EnableAnimation && !isEditing;\n\n useEffect(() => {\n if (isAnimated) {\n const selector = `.${sectionHeadingBlock}`;\n const newClass = `${sectionHeadingBlock}__animation-start`;\n // Adds the class that activates the animation whenever the components are in the view\n setAnimationInterObserver(selector, newClass);\n }\n }, []);\n\n return (\n (TextInput?.value || isEditing) && (\n \n \n \n \n {SectionHeadingSize !== SectionHeadingSizeEnum.eyebrow && (\n \n )}\n \n )\n );\n};\n\nconst SectionHeadingSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n SectionHeading\n )\n);\n\nexport const SectionHeadingStorybook = forStorybook(SectionHeadingSitecore);\n\nexport default SectionHeadingSitecore;\n","import React, { useEffect, useState } from 'react';\nimport './autoload-content-row.scss';\nimport classnames from 'classnames';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport ContentCard from '../ContentCard/ContentCard.jsx';\nimport { ArrowRight } from '../../assets/LinkIcons.js';\nimport {\n HeadingLevelEnum,\n LinkTargetValueEnum,\n SectionHeadingSizeEnum,\n ThemeEnum,\n OverrideAlignmentEnum,\n HighlightColorItemEnum,\n} from '../../utils/enums';\nimport ContentRowPdfList from './ContentRowPdfList.jsx';\nimport { withTranslation } from 'react-i18next';\nimport SectionHeading from '../SectionHeading/SectionHeading.jsx';\nimport { setAnimationInterObserver } from '../../utils/observers.jsx';\nimport { fetchResults } from '../../actions';\nimport { formatSearchParams, mapDisplayTypeToTemplate } from '../../utils/searchHelpers.jsx';\nimport {\n templateNameCondition,\n tagNameCondition,\n teaserDateSortBy,\n} from '../../utils/constants.js';\nimport usePdfView from '../../utils/hooks/usePdfView.jsx';\n\nconst autoloadContentRowBlock = 'zn-autoload-content-row';\n\nconst allTemplatesConditions = [\n 'News',\n 'Event',\n 'Work Page',\n 'Publication Page',\n 'Video',\n 'Webinar',\n 'Podcast',\n 'Project Map Work',\n];\n\nconst AutoloadContentRow = ({ t, params, fields, featuredContent, sitecoreContext, rendering }) => {\n const { DefaultCardColor, TitleAccentColor, ImageHighlightColor, EnableAnimation } = params;\n const {\n NumberOfDesktopRows,\n NumberOfMobileCards,\n ContentTypes,\n Tags,\n SearchResultsPage,\n TitleInput,\n LinkText,\n ApplyTagsFromPage,\n } = fields;\n const isEditing = sitecoreContext.pageEditing;\n const [results, setResults] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const pdfView = usePdfView();\n const defaultNumberOfCards = 3;\n\n const excludedID = rendering?.placeholders?.featuredContent[0]?.fields?.data?.datasource\n ?.contentURL?.targetItem?.id\n ? rendering?.placeholders?.featuredContent[0]?.fields?.data?.datasource?.contentURL\n ?.targetItem?.id\n : '';\n\n const animationEnabled = EnableAnimation && !isEditing;\n const ButtonTag = isEditing ? 'div' : 'a';\n let templates = ContentTypes.map((item) => item?.displayName);\n\n let tags = Tags;\n\n if (ApplyTagsFromPage.value) {\n const contextFields = sitecoreContext?.route?.fields;\n tags = contextFields?.Tags;\n }\n\n let tagsID = tags.map((tag) => tag?.id);\n let tagsNames = tags.map((tag) =>\n encodeURIComponent(tag?.fields?.Identifier?.value ? tag?.fields?.Identifier?.value : '')\n );\n\n let formattedTags =\n tagsID.length > 0 &&\n tagsID.map((item) => formatSearchParams(tagNameCondition, item.replace(/-/g, '')));\n let formattedTemplates =\n templates.length > 0 &&\n mapDisplayTypeToTemplate(templates).map((item) =>\n formatSearchParams(templateNameCondition, item)\n );\n let conditions = [];\n formattedTemplates.length > 0\n ? conditions.push({ group: [...formattedTemplates] })\n : conditions.push({\n group: [\n ...allTemplatesConditions.map((item) =>\n formatSearchParams(templateNameCondition, item)\n ),\n ],\n });\n formattedTags.length > 0 && conditions.push({ group: [...formattedTags] });\n let templateCallParams = templates.join();\n let tagCallParams = tagsNames.join();\n\n let first =\n NumberOfMobileCards?.value && NumberOfDesktopRows?.value\n ? Math.max(NumberOfMobileCards?.value, NumberOfDesktopRows?.value * 3)\n : defaultNumberOfCards;\n\n const performSearch = (event) => {\n event.preventDefault();\n let searchString = `${SearchResultsPage?.url.split('?')[0]}`;\n if (templateCallParams) searchString += `?contenttype=${templateCallParams}`;\n if (tagCallParams && !templateCallParams) searchString += `?tags=${tagCallParams}`;\n if (tagCallParams && templateCallParams) searchString += `&tags=${tagCallParams}`;\n window.location.href = searchString;\n };\n\n const currentItemId = sitecoreContext.itemId.toString();\n useEffect(() => {\n fetchResults(\n conditions,\n [],\n first,\n '0',\n teaserDateSortBy,\n true,\n [currentItemId, excludedID?.toString()],\n '',\n true\n )\n .then((x) => {\n setResults(x.results);\n setIsLoading(false);\n setHasError(false);\n })\n .catch(() => {\n setIsLoading(false);\n setHasError(true);\n });\n }, [currentItemId]);\n\n useEffect(() => {\n if (animationEnabled && results.length > 0 && !isLoading) {\n // Scroll fade up reveal\n const selector = `.${autoloadContentRowBlock} .fadeIn`;\n const newClass = 'fadeInActive';\n // Adds the class that activates the animation whenever the components are in the view\n setAnimationInterObserver(selector, newClass);\n }\n }, [isLoading]);\n\n if (pdfView)\n return (\n
    \n {(TitleInput?.value || isEditing) && (\n \n )}\n \n
    \n );\n return (\n (isEditing || results.length > 0) && (\n \n
    \n
    \n {(TitleInput?.value || isEditing) && (\n \n )}\n
    \n {((SearchResultsPage?.url && LinkText?.value) || isEditing) && (\n
    \n \n \n \n \n
    \n \n
    \n )}\n \n {(featuredContent || isEditing) && (\n
    \n {featuredContent}\n
    \n )}\n
    \n {!hasError\n ? (Array.isArray(results) ? results : []).map((result, index) => (\n \n \n \n ))\n : isEditing && (\n
    \n {t('Error')}\n
    \n )}\n
    \n {!hasError &&\n !isLoading &&\n results.length === 0 &&\n templates.length > 0 &&\n isEditing && (\n
    \n No Results, please update content types and tags selection\n
    \n )}\n {SearchResultsPage?.url && LinkText?.value && (\n
    \n \n \n \n
    \n )}\n \n )\n );\n};\n\nconst AutoloadContentRowSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields, ErrorBoundaryConditions.params])(\n AutoloadContentRow\n )\n);\nconst AutoloadContentRowTranslation = withTranslation()(AutoloadContentRowSitecore);\nconst AutoloadContentRowWithPlaceholder = withPlaceholder('featuredContent')(\n AutoloadContentRowTranslation\n);\n\nexport default AutoloadContentRowWithPlaceholder;\nexport const AutoloadContentRowStorybook = forStorybookV2(AutoloadContentRowSitecore);\n","import React from 'react';\nimport { BasicLinkList as LinkList } from '../LinkList/LinkList.jsx';\nimport LinkListItem from '../LinkListItem/LinkListItem.jsx';\nimport { withTranslation } from 'react-i18next';\nimport ArticleHeading from '../ArticleHeading/ArticleHeading.jsx';\nimport { SizeEnum } from '../../utils/enums';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport './bio-education.scss';\n\nconst EducationTypeEnum = {\n education: 'Education',\n barJurisdictions: 'BarJurisdictions',\n};\n\nconst bioEducationBlock = 'zn-bio-education';\n\nconst Education = ({ fields, t, params, sitecoreContext, sectionTitle }) => {\n const educationList = Array.isArray(fields?.data?.contextItem?.children)\n ? fields?.data?.contextItem?.children.find(\n (child) => child.name === EducationTypeEnum.education\n )\n : [];\n const barAdmissions = Array.isArray(fields?.data?.contextItem?.children)\n ? fields?.data?.contextItem?.children.find(\n (child) => child.name === EducationTypeEnum.barJurisdictions\n )\n : [];\n\n const hasEducation =\n Array.isArray(educationList?.children) && educationList?.children?.length > 0;\n const hasBarAdmissions =\n Array.isArray(barAdmissions?.children) && barAdmissions?.children?.length > 0;\n\n return (\n
    \n {sitecoreContext?.pageEditing && (\n <>\n
    **Section Title placeholder**
    \n \n )}\n {(sitecoreContext?.pageEditing || hasEducation || hasBarAdmissions) && (\n <>\n
    {sectionTitle}
    \n \n )}\n
    \n {(hasEducation || sitecoreContext?.pageEditing) && (\n <>\n \n \n {educationList?.children\n ?.sort((a, b) => {\n if (a?.yearOfDegree?.value && b?.yearOfDegree?.value) {\n return (\n parseInt(b?.yearOfDegree?.value) -\n parseInt(a?.yearOfDegree?.value)\n );\n } else {\n if (a?.yearOfDegree?.value) {\n return -1;\n } else {\n return 1;\n }\n }\n })\n .map((education, index) => {\n if (education?.degree?.value) {\n return (\n <>\n \n \n \n );\n }\n })}\n \n \n )}\n {(hasBarAdmissions || sitecoreContext?.pageEditing) && (\n <>\n \n \n {barAdmissions?.children\n ?.sort((a, b) => {\n if (a?.year?.value && b?.year?.value) {\n return -(\n parseInt(b?.year?.value) - parseInt(a?.year?.value)\n );\n } else {\n if (a?.year?.value) {\n return -1;\n } else {\n return 1;\n }\n }\n })\n .map((barAdmission, index) => {\n if (barAdmission?.state?.value) {\n return (\n \n );\n }\n })}\n \n \n )}\n
    \n
    \n );\n};\n\nexport default withTranslation()(\n withSitecoreContext()(\n withPlaceholder('sectionTitle')(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n Education\n )\n )\n )\n);\nexport const EducationStorybook = forStorybookV2(Education);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport '../SocialMediaLinks/social-media-links.scss';\nimport { withSitecoreContext, withPlaceholder, RichText } from '@sitecore-jss/sitecore-jss-react';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport './bio-professional-involvement.scss';\nimport withErrorBoundary from '../../utils/withErrorBoundary.jsx';\n\nconst BioProfessionalInvolvement = ({ sitecoreContext, sectionTitle }) => {\n const { ProfessionalInvolvement } = sitecoreContext?.route?.fields;\n\n const znBlock = 'zn-bio-professional-involvement';\n\n return (\n
    \n {sitecoreContext?.pageEditing && (\n <>\n
    **Section Title placeholder**
    \n \n )}\n {(sitecoreContext?.pageEditing || ProfessionalInvolvement?.value) && (\n <>\n
    {sectionTitle}
    \n \n \n )}\n
    \n );\n};\n\nBioProfessionalInvolvement.propTypes = {\n fields: PropTypes.object,\n sitecoreContext: PropTypes.object,\n t: PropTypes.func,\n};\n\nconst BioProfessionalInvolvementSitecore = withSitecoreContext()(\n withPlaceholder('sectionTitle')(withErrorBoundary()(BioProfessionalInvolvement))\n);\n\nexport const BioProfessionalInvolvementStorybook = forStorybook(BioProfessionalInvolvementSitecore);\nexport default BioProfessionalInvolvementSitecore;\n","import vcard from 'vcard-generator';\n\nexport const getVCardUrl = (\n FirstName,\n MiddleName,\n LastName,\n Position,\n PrimaryPhoneNumber,\n SecondaryPhoneNumber,\n PrimaryPhoneLabel,\n SecondaryPhoneLabel,\n Email\n) => {\n const contactCardJSON = {};\n\n // name\n if (FirstName?.value || LastName?.value || MiddleName?.value) {\n const name = {};\n FirstName?.value && (name.givenName = FirstName?.value);\n LastName?.value && (name.familyName = LastName?.value);\n MiddleName?.value && (name.middleName = MiddleName?.value);\n contactCardJSON.name = name;\n }\n\n // work\n const works = [\n {\n organization: 'Torys LLP',\n },\n ];\n if (Position?.value) {\n works[0].title = Position?.value;\n }\n contactCardJSON.works = works;\n\n // phone\n const primaryNumber = PrimaryPhoneNumber?.value;\n const secondaryNumber = SecondaryPhoneNumber?.value;\n\n if (primaryNumber || secondaryNumber) {\n const phones = [];\n if (primaryNumber) {\n const primaryNumberJSON = {};\n if (PrimaryPhoneLabel?.value) {\n primaryNumberJSON.type = PrimaryPhoneLabel?.value;\n }\n primaryNumberJSON.text = '' + primaryNumber;\n phones.push(primaryNumberJSON);\n }\n\n if (secondaryNumber) {\n const secondaryNumberJSON = {};\n if (SecondaryPhoneLabel?.value) {\n secondaryNumberJSON.type = SecondaryPhoneLabel?.value;\n }\n secondaryNumberJSON.text = '' + secondaryNumber;\n phones.push(secondaryNumberJSON);\n }\n contactCardJSON.phones = phones;\n }\n\n // email\n if (Email?.value) {\n const emails = [\n {\n type: 'work', // WORK is the type for all emails on the legacy Torys site vCards\n text: Email?.value,\n },\n ];\n contactCardJSON.emails = emails;\n }\n\n const contactCard = vcard.generate(contactCardJSON);\n return 'data:text/vcard;charset=utf-8,' + encodeURIComponent(contactCard);\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport '../SocialMediaLinks/social-media-links.scss';\nimport {\n Image as Img,\n withSitecoreContext,\n withPlaceholder,\n RichText,\n} from '@sitecore-jss/sitecore-jss-react';\nimport { DownloadFile } from '../../assets/LinkIcons';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { getVCardUrl } from '../../utils/vcardUrl.jsx';\nimport './bio-profile-hero.scss';\nimport Text from '../Text';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withTranslation } from 'react-i18next';\n\nconst BioProfileHero = ({ socialmedia, dropdown, sitecoreContext, t }) => {\n // const { BusinessPhoneLabel, OtherPhoneLabel } = fields;\n\n if (\n sitecoreContext?.route?.templateName !== 'Bio Page' &&\n sitecoreContext?.route?.templateName !== 'Partial Design' &&\n sitecoreContext?.route?.templateName !== 'Page Design '\n ) {\n return (\n

    \n Bio Hero Component must be used with a content item with the template name Bio Page\n

    \n );\n }\n\n const {\n Role,\n LeadParagraph,\n OtherPhone,\n BusinessEmail,\n BusinessPhone,\n Prefix,\n LastName,\n FirstName,\n MiddleName,\n Suffix,\n HighResolutionImage,\n RelatedOffices,\n } = sitecoreContext?.route?.fields || {};\n\n const profileHeroBlock = 'zn-profile-hero';\n const isEditing = sitecoreContext.pageEditing;\n const hasImage = !!HighResolutionImage?.value?.src;\n\n const relatedOffices = RelatedOffices?.value;\n let BusinessPhoneLabel = { value: '' };\n let OtherPhoneLabel = { value: '' };\n if (relatedOffices) {\n const offices = relatedOffices.split(',');\n BusinessPhoneLabel.value = offices[0];\n if (offices.length > 1) {\n OtherPhoneLabel.value = offices[1];\n }\n }\n\n const hasContactDetails =\n BusinessPhone?.value || OtherPhone?.value || BusinessEmail?.value || isEditing;\n\n let fullName = '';\n FirstName?.value && (fullName += FirstName?.value + ' ');\n MiddleName?.value && (fullName += MiddleName?.value + ' ');\n LastName?.value && (fullName += LastName?.value);\n fullName = fullName.trim();\n\n return (\n
    \n
    \n {(hasImage || isEditing) && (\n
    \n \n \n
    \n
    \n )}\n \n
    \n
    {dropdown}
    \n
    \n \n \n \n
    \n
    {socialmedia}
    \n
    \n
    \n {(Prefix?.value || isEditing) && (\n <>\n \n  \n \n )}\n {(FirstName?.value || isEditing) && (\n <>\n \n  \n \n )}\n {(MiddleName?.value || isEditing) && (\n <>\n \n  \n \n )}\n {(LastName?.value || isEditing) && (\n <>\n \n \n )}\n {(Suffix?.value || isEditing) && (\n <>\n , \n \n \n )}\n
    \n {(Role?.value || isEditing) && (\n \n )}\n
    \n \n
    \n {hasContactDetails && (\n \n
    \n {t('Contact')}\n
    \n
    \n
      \n {(BusinessPhone?.value || isEditing) && (\n
    • \n \n {':'}\n \n
    • \n )}\n {(OtherPhone?.value || isEditing) && (\n
    • \n \n {':'}\n \n \n \n
    • \n )}\n
    \n {(BusinessEmail?.value || isEditing) && (\n \n \n \n )}\n
    \n \n )}\n \n \n \n );\n};\n\nBioProfileHero.propTypes = {\n fields: PropTypes.exact({\n OtherPhoneLabel: PropTypes.shape({\n value: PropTypes.string,\n }),\n BusinessPhoneLabel: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n socialmedia: PropTypes.object,\n dropdown: PropTypes.object,\n sitecoreContext: PropTypes.object,\n};\n\nconst BioProfileHeroSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields, ErrorBoundaryConditions.sitecoreContext])(\n BioProfileHero\n )\n);\n\nexport const BioProfileHeroStorybook = forStorybook(BioProfileHeroSitecore);\nexport default withPlaceholder(['socialmedia', 'dropdown'])(\n withTranslation()(BioProfileHeroSitecore)\n);\n","import React from 'react';\n\nexport const QuoteIcon = ({ className }) => {\n return (\n \n \n \n );\n};\n","/* eslint-disable prettier/prettier */\nimport React from 'react';\nimport classnames from 'classnames';\nimport { QuoteIcon } from '../../assets/QuoteIcons.js';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport './quote.scss';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nconst Quote = ({ fields, params }) => {\n const { QuoteText, Subtext } = fields;\n const { QuoteColor } = params;\n\n const quote = 'zn-quote';\n\n return (\n
    \n \n \n \n
    \n );\n};\n\nconst QuoteSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields, ErrorBoundaryConditions.params])(Quote)\n);\n\nexport const QuoteStorybook = forStorybook(QuoteSitecore);\n\nexport default QuoteSitecore;\n","import React from 'react';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport Quote from '../Quote';\n\nconst BioQuote = ({ sitecoreContext, params }) => {\n const fields = sitecoreContext?.route?.fields;\n return (\n <>\n {(sitecoreContext?.pageEditing ||\n fields?.QuoteText?.value ||\n fields?.Subtext?.value) && }\n \n );\n};\n\nconst BioQuoteSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.sitecoreContext, ErrorBoundaryConditions.params])(\n BioQuote\n )\n);\n\nexport const BioQuoteStorybook = forStorybook(BioQuoteSitecore);\n\nexport default BioQuoteSitecore;\n","import React from 'react';\nimport { withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport { FeaturedListLayoutEnum } from '../../utils/enums.js';\n\nimport './featured-list.scss';\n\nconst classBase = 'zn-featured-list';\nconst FeaturedList = ({ featuredList, params, children }) => {\n const { Layout, EnableAnimation } = params;\n return (\n \n {featuredList}\n {children}\n \n );\n};\n\nexport const BasicFeaturedList = FeaturedList;\nexport default withPlaceholder('featuredList')(FeaturedList);\nexport const FeaturedListStorybook = forStorybook(FeaturedList);\n","import React, { useEffect } from 'react';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport classnames from 'classnames';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { ArrowRight } from '../../assets/LinkIcons.js';\nimport { ThemeEnum, HighlightColorItemEnum, ButtonVariantEnum } from '../../utils/enums.js';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { setAnimationInterObserver } from '../../utils/observers.jsx';\nimport { Link as RouterLink } from 'react-router-dom';\n\nimport './featured-list-item.scss';\n\nconst classBase = 'zn-featured-list__item';\n\nconst getHighlightValue = (Highlights) => (Highlights ? Highlights.toLowerCase() : '');\n\nconst FeaturedListItem = ({ fields, params }) => {\n const { Title, ParagraphText, LinkURL } = fields;\n\n const { Highlights, DividerLines, AddTitleArrows, EnableAnimation } = params;\n\n const animationEnabled = EnableAnimation;\n\n useEffect(() => {\n if (animationEnabled) {\n // Scroll fade up reveal\n const selector = `.${classBase} .fadeIn`;\n const newClass = 'fadeInActive';\n // Adds the class that activates the animation whenever the components are in the view\n // Hightlight gets activated more easily, so threshold was lowered to activate text more easily\n setAnimationInterObserver(selector, newClass, { threshold: 0.15 });\n\n // Highlight reveal\n const highlightSelector = `.${classBase} .expandDown`;\n const highlightNewClass = 'expandDownActive';\n // Adds the class that activates the animation whenever the components are in the view\n setAnimationInterObserver(highlightSelector, highlightNewClass);\n }\n }, []);\n\n return (\n \n
    \n \n
    \n
    \n {(Title?.value || Title?.editable) &&\n (AddTitleArrows === '1' ? (\n LinkURL?.value?.href?.startsWith('/') ? (\n \n \n \n \n ) : (\n \n \n \n \n )\n ) : (\n \n ))}\n
    \n {(ParagraphText?.value || ParagraphText?.editable) && (\n \n )}\n {LinkURL?.value?.text && LinkURL?.value?.href && (\n \n )}\n
    \n
    \n \n );\n};\n\nexport default withErrorBoundary([ErrorBoundaryConditions.fields])(FeaturedListItem);\nexport const FeaturedListItemStorybook = forStorybook(FeaturedListItem);\n","import React, { useEffect, useState } from 'react';\nimport { DateTime } from 'luxon';\nimport classnames from 'classnames';\nimport {\n Text,\n RichText as RichTextJss,\n withSitecoreContext,\n} from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport { withTranslation } from 'react-i18next';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport FeaturedList from '../FeaturedList/FeaturedList.jsx';\nimport FeaturedListItem from '../FeaturedListItem/FeaturedListItem.jsx';\nimport { BasicLinkList as LinkList } from '../LinkList/LinkList.jsx';\nimport LinkListItem from '../LinkListItem/LinkListItem.jsx';\nimport { ExternalLink } from '../../assets/LinkIcons.js';\nimport {\n ThemeEnum,\n FeaturedListLayoutEnum,\n LinkTargetValueEnum,\n HighlightColorItemEnum,\n LinkListLayoutEnum,\n RepresentativeItemsEnum,\n TimeZoneEnum,\n} from '../../utils/enums';\nimport {\n relatedPeopleCondition,\n relatedFeaturedPeopleCondition,\n templateNameCondition,\n} from '../../utils/constants';\nimport { mapDisplayTypeToTemplate, formatSearchParams } from '../../utils/searchHelpers.jsx';\nimport { fetchRepresentativeResults } from '../../actions';\nimport '../RichText/rich-text.scss';\nimport './bio-related-article-list.scss';\n\nconst bioRelatedArticleListBlock = 'zn-bio-related-article-list';\n\n/**\n * Bio Related Article List with GraphQL CustomSearch Query\n *\n * Once this component is authored on a Bio Page the representative and featured items are displayed\n *\n * The following steps are taken to display the featured/representative items associated to the page template and component:\n *\n * 1. Retrieve itemId from the page context\n * 2. Retrieve selected content types from component authored field\n * 3. Retrieve page representative items from page template based on selected context item authored field\n * 4. Retrieve component representative items from the component authored treelist field\n * 5. Construct graphql custom search query conditions for featured result:\n (_templatename = 'Content Types' AND RelatedFeaturedPeople = 'Page Item Id')\n * 6. Construct graphql custom search query conditions for representative results: \n (_templatename = 'Content Types' AND RelatedPeople = 'Page Item Id') AND excludeIds = (page context representative items, manually authored representative items)\n * 7. Fetch FeaturedItemsCount number of featured results\n * 8. Set Featured Results\n * 9. Append ids of Featured Results to excludedIds array of representative results query conditions\n * 10. Fetch the remaining number of representative results with count: \n (Representative Items Count - PageContext Representative Items - Component Representative Items = Number of Fetched Representative Results)\n * 11. Append fetched representative results to the representative items to be displayed adn set representative results\n *\n */\n\nconst BioRelatedArticleList = ({ fields, sitecoreContext, t }) => {\n const {\n Description,\n FeaturedItemsCount,\n RepresentativeTitle,\n ContentTypes,\n ButtonText,\n SearchResultsPage,\n RepresentativeItemsCount,\n RepresentativeItems,\n RepresentativeItemType,\n ContextDescriptionField,\n } = fields;\n\n // 1. Page Item ID\n const bioPageId = sitecoreContext?.route?.itemId;\n\n if (\n sitecoreContext?.route?.templateName !== 'Bio Page' &&\n sitecoreContext?.route?.templateName !== 'Partial Design' &&\n sitecoreContext?.route?.templateName !== 'Page Design '\n ) {\n return (\n

    \n Bio Related Articles List Component must be used with a content item with the\n template name Bio Page\n

    \n );\n }\n let description = Description;\n if (!Description?.value) {\n description = {\n value: sitecoreContext?.route?.fields?.[ContextDescriptionField?.value]?.value,\n };\n }\n\n const isEditing = sitecoreContext?.pageEditing;\n const featuredItemsCount = FeaturedItemsCount?.value\n ? parseInt(FeaturedItemsCount?.value, 10)\n : 3;\n const representativeItemsCount = RepresentativeItemsCount?.value\n ? parseInt(RepresentativeItemsCount?.value, 10)\n : 5;\n const [featuredResults, setFeaturedResults] = useState([]);\n const [representativeResults, setRepresentativeResults] = useState([]);\n\n const [isLoading, setIsLoading] = useState(true);\n\n const ButtonTag = isEditing ? 'div' : 'a';\n let featuredConditions = [];\n let representativeConditions = [];\n let contextItemField = RepresentativeItemType?.value\n ? RepresentativeItemType?.value.replace(/\\s+/g, '')\n : '';\n\n // 2. Authored Content Types\n let templates = ContentTypes.map((item) => item.name);\n\n // 3. Page Representative Context Items\n const representativeContextItems =\n contextItemField && sitecoreContext?.route?.fields?.[contextItemField]\n ? sitecoreContext?.route?.fields?.[contextItemField].filter(\n (item) => item?.fields?.IncludeInSearch?.value\n )\n : [];\n // 4. Page Representative Context Items and Component Representative Items\n let displayedRepresentativeItems = representativeContextItems.concat(\n RepresentativeItems.filter((x) => !representativeContextItems.some((y) => x?.id === y?.id))\n );\n\n // 5. Construct Featured Results Query Conditions, map content types filter types to page template names\n let formattedTemplates =\n templates.length > 0 &&\n mapDisplayTypeToTemplate(templates).map((item) =>\n formatSearchParams(templateNameCondition, item)\n );\n\n formattedTemplates.length > 0 && featuredConditions.push({ group: [...formattedTemplates] });\n featuredConditions.push({\n name: relatedFeaturedPeopleCondition,\n value: bioPageId.replace(/-/g, ''),\n });\n // 6. Construct Representative Query Conditions\n formattedTemplates.length > 0 &&\n representativeConditions.push({ group: [...formattedTemplates] });\n representativeConditions.push({\n name: relatedPeopleCondition,\n value: bioPageId.replace(/-/g, ''),\n });\n\n let templateCallParams = templates.join();\n\n // 11. Set Representative Results\n const representativeResultsHandler = (representativeResults) => {\n setRepresentativeResults(\n displayedRepresentativeItems.concat(\n representativeResults.map((result) => ({\n name: result?.item?.teaserTitle?.value,\n url: result?.item?.url,\n date: result?.item?.teaserDate?.value,\n fields: {\n // map the display teaser date value from the graphql results to the representative results array\n TeaserTitle: {\n value: result?.item?.teaserTitle?.value,\n },\n FeaturedTeaserTitle: {\n value: result?.item?.featuredTeaserTitle?.value,\n },\n Narrative: {\n value: result?.item?.narrative?.value,\n },\n TeaserDate: {\n value: result?.item?.teaserDate?.value,\n },\n TeaserDisplayDate: {\n value: result?.item?.teaserDisplayDate?.value,\n },\n NotNavigatable: {\n value: result?.item?.notNavigatable?.value === '1',\n },\n Source: {\n value: result?.item?.source?.value,\n },\n },\n }))\n )\n );\n setIsLoading(false);\n };\n // 8. Set Featured Results\n const featuredResultsHandler = (featuredResults) => {\n setFeaturedResults(featuredResults);\n // 9. Append featured result ids to exclude ids condition\n let excludedIds = (displayedRepresentativeItems || [])\n .map((item) => item.id.replace(/-/g, '').toUpperCase())\n .concat((featuredResults || []).map((item) => item.id.replace(/-/g, '').toUpperCase()));\n // 10. Fetch Representative Results\n representativeItemsCount - displayedRepresentativeItems.length > 0\n ? fetchRepresentativeResults(\n representativeConditions,\n [],\n representativeItemsCount - displayedRepresentativeItems.length,\n '0',\n 'teaserdate',\n true,\n excludedIds.length ? excludedIds : [''],\n '',\n false\n )\n .then((x) => {\n representativeResultsHandler(x.results);\n })\n .catch(() => {\n setIsLoading(false);\n })\n : setRepresentativeResults(displayedRepresentativeItems);\n setIsLoading(false);\n };\n\n // Display logic\n const showButton =\n SearchResultsPage?.url &&\n ButtonText?.value &&\n (representativeResults.length > 0 || featuredResults.length > 0);\n\n useEffect(() => {\n if (ContentTypes.length > 0) {\n // 7. Fetch Featured Results\n fetchRepresentativeResults(\n featuredConditions,\n [],\n featuredItemsCount,\n '0',\n 'teaserdate',\n true,\n [''],\n '',\n false\n )\n .then((x) => {\n featuredResultsHandler(x.results);\n setIsLoading(false);\n })\n .catch(() => {\n setIsLoading(false);\n });\n } else {\n setRepresentativeResults(displayedRepresentativeItems);\n setIsLoading(false);\n }\n }, []);\n\n return (\n
    \n {(description?.value || isEditing) && (\n
    \n
    \n \n
    \n
    \n )}\n {(featuredResults.length > 0 || isEditing) && (\n \n {(featuredResults || []).map((result, index) => {\n if (result && index < featuredItemsCount) {\n let featuredTeaserTitle = result?.item?.featuredTeaserTitle?.value;\n let teaserTitle = result?.item?.teaserTitle?.value;\n let featuredTeaserDescription =\n result?.item?.featuredTeaserDescription?.value;\n let teaserDescription = result?.item?.teaserDescription?.value;\n if (!featuredTeaserTitle && !teaserTitle) return;\n return (\n <>\n \n \n );\n }\n })}\n \n )}\n {(representativeResults.length > 0 || isEditing) && (\n
    \n {(RepresentativeTitle?.value || isEditing) && (\n
    \n \n
    \n )}\n \n {/* here we map the representative results into the link list */}\n {(representativeResults || []).map((result, index) => {\n if (result && index < representativeItemsCount) {\n const teaserDate = result?.fields?.TeaserDate?.value\n ? result?.fields?.TeaserDate?.value\n .replace(/:/g, '')\n .replace(/-/g, '')\n : '';\n const ContextTeaserDate = teaserDate\n ? DateTime.fromISO(teaserDate, {\n locale: sitecoreContext?.route?.itemLanguage,\n })\n .setZone(TimeZoneEnum.server)\n .toLocaleString(DateTime.DATE_MED)\n : '';\n\n const teaserDisplayDate = result?.fields?.TeaserDisplayDate?.value\n ? result?.fields?.TeaserDisplayDate?.value\n : '';\n\n const FinalDate = teaserDisplayDate\n ? teaserDisplayDate\n : ContextTeaserDate && DateTime.fromISO(teaserDate).year === 1\n ? ''\n : ContextTeaserDate && DateTime.fromISO(teaserDate).year !== 0\n ? ContextTeaserDate\n : '';\n\n if (\n !result?.fields?.Narrative?.value &&\n !result?.fields?.TeaserTitle?.value\n )\n return;\n return (\n <>\n \n \n );\n }\n })}\n \n
    \n )}\n {(showButton || isEditing) && (\n
    \n \n \n
    \n \n
    \n \n
    \n )}\n {ContentTypes.length === 0 && isEditing && !isLoading && (\n
    \n No Content Types chosen, please select content type to populate item solr\n results.\n
    \n )}\n {!RepresentativeItemType?.value && isEditing && !isLoading && (\n
    \n No Representative Item Type chosen, please select representative item type to\n populate representative items associated with this bio page.\n
    \n )}\n {featuredResults.length === 0 &&\n isEditing &&\n ContentTypes.length !== 0 &&\n !isLoading && (\n
    \n No Featured Items associated with this bio page.\n
    \n )}\n {representativeResults.length === 0 &&\n RepresentativeItems.length === 0 &&\n representativeContextItems.length === 0 &&\n ContentTypes.length !== 0 &&\n !isLoading &&\n isEditing && (\n
    \n No Representative Items associated with this bio page, and no Representative\n Items selected for the component.\n
    \n )}\n
    \n );\n};\n\nconst BioRelatedArticleListSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields])(BioRelatedArticleList)\n);\n\nexport const BioRelatedArticleListStorybook = forStorybookV2(BioRelatedArticleListSitecore);\n\nexport default withTranslation()(BioRelatedArticleListSitecore);\n","import React, { useState } from 'react';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { Button } from '../Button/Button.js';\nimport { ChevronLeftCirlcle, ChevronRightCirlcle, CirlcleSmall } from '../../assets/LinkIcons.js';\nimport classnames from 'classnames';\n\nimport './carousel.scss';\n\nconst MAX_PAGES = 5;\nconst MIDDLE_PAGINATION = 3;\n\nexport const Carousel = ({ sitecoreContext, carousel }) => {\n const [activeSlide, setActiveSlide] = useState(1);\n\n const createPagination = (pages, activePage) => {\n let pagination = [];\n for (let index = 1; index < pages + 1; index++) {\n const isActive = activePage === index;\n pagination.push();\n }\n return pagination;\n };\n\n const getPagination = () => {\n const isLarge = carousel.length > MAX_PAGES;\n const pages = isLarge ? MAX_PAGES : carousel.length;\n if (isLarge) {\n let active = 1;\n if (activeSlide < MIDDLE_PAGINATION) {\n active = activeSlide;\n } else if (activeSlide <= carousel.length - MIDDLE_PAGINATION) {\n active = MIDDLE_PAGINATION;\n } else {\n active = MAX_PAGES - (carousel.length - activeSlide);\n }\n return createPagination(pages, active);\n } else {\n return createPagination(pages, activeSlide);\n }\n };\n\n return (\n \n {!sitecoreContext.pageEditing ? (\n
    \n {\n const prev = activeSlide - 1;\n if (activeSlide > 1) {\n setActiveSlide(prev);\n }\n }}\n >\n \n \n {activeSlide && (\n \n
      \n {carousel.map((component, index) => {\n const active = activeSlide === index + 1;\n // this if is important, as it prevents breakage when using Sitecore Experience Editor\n if (component.props && component.props.type === 'text/sitecore')\n return component;\n return (\n \n {component}\n \n );\n })}\n
    \n \n {getPagination()}\n \n
    \n )}\n\n {\n const next = activeSlide + 1;\n if (next < carousel.length + 1) {\n setActiveSlide(next);\n }\n }}\n >\n \n \n
    \n ) : (\n
    \n

    This is the Carousel Editor View

    \n
    \n {carousel}\n
    \n
    \n )}\n
    \n );\n};\n\nexport default withSitecoreContext()(withPlaceholder('carousel')(Carousel));\n","import React from 'react';\nimport paramToBool from '../../utils/paramToBool.js';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\nimport classNames from 'classnames';\n\nimport './column-grid.scss';\n\nconst ColumnGrid = ({ column, params, style, sitecoreContext }) => {\n const {\n Columns,\n PaddingLeft,\n PaddingRight,\n HasYPadding,\n HideMobile,\n VerticalAlignment,\n } = params;\n return (\n (sitecoreContext?.pageEditing || column?.length > 0) && (\n \n {column}\n \n )\n );\n};\n\nexport const ColumnGridPlaceholder = withSitecoreContext()(withPlaceholder('column')(ColumnGrid));\nexport const ColumnGridStorybook = forStorybook(ColumnGrid);\nexport default ColumnGridPlaceholder;\n","import React from 'react';\nimport { Image as Img, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport Link from '../Link/Link.jsx';\nimport Text from '../Text/Text.jsx';\nimport { ThemeEnum, LinkTargetEnum } from '../../utils/enums';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\n\nimport './contact-card.scss';\n\nconst contactCard = 'zn-contact-card';\n\nexport const ContactCard = ({ sitecoreContext, fields }) => {\n const data = fields?.data?.datasource;\n const contactNameOverride = data?.contactNameOverride?.jss;\n const imageOverride = data?.imageOverride?.jss;\n const profileURL = data?.profileURL?.targetItem;\n const Image =\n imageOverride?.value?.src || !profileURL\n ? imageOverride\n : profileURL?.lowResolutionImage?.jss;\n const Name =\n contactNameOverride?.value || !profileURL\n ? contactNameOverride\n : {\n value: `${profileURL?.firstName?.jss?.value?.trim() || ''} ${\n profileURL?.middleName?.jss?.value?.trim() || ''\n } ${profileURL?.lastName?.jss?.value?.trim() || ''}`,\n };\n return (\n <>\n {(sitecoreContext?.pageEditing || Name?.value) && (\n
  • \n \n {Image?.value?.src ? (\n \n ) : (\n \n )}\n \n\n {profileURL?.url && !profileURL?.notNavigatable?.jss?.value ? (\n \n ) : (\n \n )}\n
  • \n )}\n \n );\n};\n\nexport default withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(ContactCard)\n);\n","import React from 'react';\nimport ContactCard from '../ContactCard/ContactCard.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\n\nconst ContactCardManual = ({ fields, params }) => {\n const { ContactNameOverride, ImageOverride } = fields;\n return (\n \n );\n};\n\nexport default withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n ContactCardManual\n);\n","import React from 'react';\nimport Text from '../Text/Text.jsx';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport { withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\n\nimport './contact-cards.scss';\n\nconst contactCardsBlock = 'zn-contact-cards';\nexport const ContactCards = ({\n fields,\n params,\n contactCardsContext,\n contactCardList,\n children,\n}) => {\n const { SectionTitle } = fields;\n const { HideProfileImages, HideProfileImagesMobile, Inline } = params;\n return (\n \n \n \n {contactCardsContext}\n {contactCardList}\n {children}\n \n \n );\n};\n\nexport default withPlaceholder('contactCardList')(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n ContactCards\n )\n);\n\nexport const ContactCardsStorybook = forStorybook(ContactCards);\n","import React, { useEffect } from 'react';\nimport classnames from 'classnames';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { setAnimationInterObserver } from '../../utils/observers.jsx';\nimport './content-card-row.scss';\n\nconst ContentCardRow = ({ params, sitecoreContext, contentCards }) => {\n const { HideOnMobile, EnableAnimation } = params;\n const contentCardRowBlock = 'zn-content-card-row';\n const animationEnabled = EnableAnimation && !sitecoreContext?.pageEditing;\n\n useEffect(() => {\n if (animationEnabled) {\n const selector = `.${contentCardRowBlock} .zn-content-card.fadeIn`;\n const newClass = 'fadeInActive';\n // Adds the class that activates the animation whenever the components are in the view\n setAnimationInterObserver(selector, newClass, { threshold: 0.2 });\n }\n }, []);\n\n return (\n \n {contentCards}\n \n );\n};\n\nconst ContentCardRowSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params])(ContentCardRow)\n);\nexport default withPlaceholder('contentCards')(ContentCardRowSitecore);\nexport const ContentCardRowStorybook = forStorybook(ContentCardRow);\n","import React from 'react';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { ContactCards } from '../ContactCards/ContactCards.jsx';\nimport { ContactCard } from '../ContactCard/ContactCard.jsx';\nimport { ContextContactCardsEnum } from '../../utils/enums';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\n\nconst ContextContactCards = ({ fields, sitecoreContext, params, contextContactCardList }) => {\n const { TemplateFieldName, SectionTitle } = fields;\n const contextFields = sitecoreContext?.route?.fields;\n const dataField = TemplateFieldName?.value || ContextContactCardsEnum.authors;\n const ContactCardsItems = contextFields[dataField] || [];\n const contactCardItemsNodes =\n Array.isArray(ContactCardsItems) &&\n ContactCardsItems.map((contact, index) => (\n \n ));\n\n const contactCardsContext = sitecoreContext?.pageEditing\n ? contactCardItemsNodes\n : [...contactCardItemsNodes, ...contextContactCardList];\n\n const sectionTitle =\n contactCardsContext.length === 0 && !sitecoreContext?.pageEditing ? {} : SectionTitle;\n\n return (\n <>\n {sitecoreContext?.pageEditing && (\n
    \n **This component is using {dataField} Page field as datasource, updates should\n be made there**

    \n
    \n )}\n \n {sitecoreContext?.pageEditing && (\n
    \n
    \n **Add here Manual cards(Only for cards not using People linked data)**\n
    \n

    \n {contextContactCardList}\n
    \n )}\n \n \n );\n};\n\nexport const ContextContactCardsSitecore = withSitecoreContext()(ContextContactCards);\nexport const ContextContactCardsStorybook = forStorybook(ContextContactCardsSitecore);\n\nexport default withPlaceholder('contextContactCardList')(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n ContextContactCardsSitecore\n )\n);\n","import React from 'react';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { BasicFeaturedList as FeaturedList } from '../FeaturedList/FeaturedList.jsx';\nimport FeatureListItem from '../FeaturedListItem/FeaturedListItem.jsx';\nimport { ContextFeatureListEnum, ContextFeatureListItemEnum } from '../../utils/enums';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\n\nconst ContextFeatureList = ({ fields, sitecoreContext, params, sectionTitle }) => {\n const { TemplateFieldName, FieldTitle, FieldParagraph, LinkText } = fields;\n\n const contextFields = sitecoreContext?.route?.fields;\n const hasFieldTitle = FieldTitle?.value !== ContextFeatureListItemEnum.none;\n const hasFieldParagraph = FieldParagraph?.value !== ContextFeatureListItemEnum.none;\n const dataField = TemplateFieldName?.value || ContextFeatureListEnum.relatedServices;\n\n // Context field to use Item as datasource\n const titleFieldName = FieldTitle?.value || ContextFeatureListItemEnum.name;\n\n // Item datasource fields\n const paragraphFieldName = FieldParagraph?.value || ContextFeatureListItemEnum.description;\n const FeatureListItems = Array.isArray(contextFields[dataField])\n ? contextFields[dataField]\n : [];\n\n return (\n <>\n {sitecoreContext?.pageEditing && (\n <>\n
    \n **This component is using page field {dataField} as datasource**\n
    \n
    **Section Title placeholder**
    \n \n )}\n {(sitecoreContext?.pageEditing || FeatureListItems.length > 0) && (\n <>\n
    {sectionTitle}
    \n \n {FeatureListItems.map((item, index) => {\n const name = hasFieldTitle\n ? item?.fields[titleFieldName] || {\n value: item?.name,\n }\n : null;\n const paragraphText = hasFieldParagraph\n ? item?.fields[paragraphFieldName]\n : null;\n if (name && item?.url && item?.fields) {\n return (\n \n );\n }\n })}\n \n \n )}\n \n );\n};\n\nexport const ContextFeatureListSitecore = withSitecoreContext()(\n withPlaceholder('sectionTitle')(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n ContextFeatureList\n )\n )\n);\nexport const ContextFeatureListStorybook = forStorybook(ContextFeatureListSitecore);\nexport default ContextFeatureListSitecore;\n","import React, { useEffect, useState } from 'react';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { BasicLinkList as LinkList } from '../LinkList/LinkList.jsx';\nimport LinkListItem from '../LinkListItem/LinkListItem.jsx';\nimport { ContextLinkListEnum, ContextLinkListItemEnum, LinkTargetEnum } from '../../utils/enums';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\nimport './context-link-list.scss';\nimport paramToBool from '../../utils/paramToBool';\n\nconst ContextLinkList = ({ fields, sitecoreContext, linkList, sectionTitle, params }) => {\n const { TemplateFieldName, FieldTitle, LinkTarget } = fields;\n const contextFields = sitecoreContext?.route?.fields;\n const titleFieldName = FieldTitle?.value || ContextLinkListItemEnum.description;\n const listFieldName = TemplateFieldName?.value || ContextLinkListEnum.relatedServices;\n const LinkListItems = Array.isArray(contextFields[listFieldName])\n ? contextFields[listFieldName]\n : [];\n const contextLinkListBlock = `zn-context-link-list`;\n const { HideInPdf } = params;\n\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n return (\n !(pdfView && paramToBool(HideInPdf)) && (\n <>\n {sitecoreContext?.pageEditing && (\n <>\n
    \n **This component is using page field {listFieldName} as datasource**\n
    \n
    **Section Title placeholder**
    \n \n )}\n {(sitecoreContext?.pageEditing || LinkListItems.length > 0) && (\n
    \n
    {sectionTitle}
    \n \n {LinkListItems.map((item, index) => {\n const name = item?.fields[titleFieldName] || {\n value: item?.displayName,\n };\n const notNavigatable = item?.fields['NotNavigatable'];\n\n //should be navigatable except if explicitly set to 1\n const navigatable = notNavigatable?.value !== true;\n\n if (name?.value && item?.url) {\n return (\n \n );\n }\n })}\n \n
    \n )}\n \n )\n );\n};\n\nexport const ContextLinkListSitecore = withSitecoreContext()(\n withPlaceholder(['sectionTitle', 'linkList'])(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n ContextLinkList\n )\n )\n);\nexport const ContextLinkListStorybook = forStorybook(ContextLinkListSitecore);\nexport default ContextLinkListSitecore;\n","import React, { useEffect } from 'react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport { ThemeEnum, HighlightedBlockEnum } from '../../utils/enums';\nimport { RichText as RichTextJss, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport './rich-text.scss';\n\nconst setTableCellWidths = () => {\n const cellHeight = 250;\n const smallScreenSize = 767;\n\n let tablesArray = document.getElementsByTagName('table');\n for (let i = 0; i < tablesArray.length; i++) {\n let body = tablesArray[i]?.getElementsByTagName('tbody');\n let rows = Array.isArray(body) ? body[0]?.getElementsByTagName('tr') : null;\n if (!rows) {\n return;\n }\n let totalColumns = rows[1]?.children?.length;\n let maxHeight = 0;\n\n for (let j = 0; j < rows.length; j++) {\n if (rows[j].offsetHeight > maxHeight) {\n maxHeight = rows[j].offsetHeight;\n }\n }\n if (\n (totalColumns < 3 && maxHeight < cellHeight) ||\n rows[0].offsetWidth + 1 < rows[0].parentElement.offsetWidth\n ) {\n tablesArray[i].classList.add('mobile');\n body[0].classList.add('mobile');\n let cells = body[0].getElementsByTagName('td');\n\n for (let k = 0; k < cells.length; k++) {\n cells[k].classList.add('mobile');\n }\n } else {\n body[0].style.minWidth = `100%`;\n\n let cells = body[0].getElementsByTagName('td');\n let colTotal = smallScreenSize / totalColumns;\n\n for (let k = 0; k < cells.length; k++) {\n cells[k].style.minWidth = `${colTotal}px`;\n }\n }\n }\n};\n\nconst RichText = ({ fields, params, sitecoreContext }) => {\n const { TextInput } = fields;\n const { Theme, HighlightedColor, RichTextSize, CustomRichTextClass } = params;\n const richTextBlock = 'zn-rich-text';\n\n const highlightColour =\n HighlightedColor?.toLowerCase() || HighlightedBlockEnum.none.toLowerCase();\n const hasHighlight = highlightColour !== HighlightedBlockEnum.none.toLowerCase();\n const theme = hasHighlight\n ? ThemeEnum.light.toLowerCase()\n : Theme?.toLowerCase() || ThemeEnum.light.toLowerCase();\n const isEditing = sitecoreContext.pageEditing;\n\n useEffect(() => {\n setTableCellWidths();\n }, []);\n\n return (\n (TextInput?.value || isEditing) && (\n \n \n \n )\n );\n};\n\nconst RichTextSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(RichText)\n);\nexport const RichTextStorybook = forStorybookV2(RichTextSitecore);\n\nexport default RichTextSitecore;\n","import React from 'react';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport RichText from '../RichText/RichText.jsx';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\n\nconst ContextRichText = ({ params, fields, sitecoreContext, sectionTitle }) => {\n const { TemplateFieldName, TemplateFieldNameOverride } = fields;\n const contextFields = sitecoreContext?.route?.fields;\n const dataField = TemplateFieldNameOverride?.value || TemplateFieldName?.value;\n const TextInput = {\n value: contextFields[dataField]?.value || '',\n };\n return (\n <>\n {sitecoreContext?.pageEditing && (\n <>\n
    \n **This component is using page field {dataField} as datasource**\n
    \n
    **Section Title placeholder**
    \n \n )}\n {(sitecoreContext?.pageEditing || TextInput?.value) && (\n <>\n
    {sectionTitle}
    \n \n \n )}\n \n );\n};\n\nexport const ContextRichTextSitecore = withSitecoreContext()(\n withPlaceholder('sectionTitle')(ContextRichText)\n);\nexport const ContextRichTextStorybook = forStorybookV2(ContextRichTextSitecore);\nexport default withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n ContextRichTextSitecore\n);\n","import React from 'react';\nimport Text from '../Text/Text.jsx';\nimport { Button } from '../Button/Button.js';\nimport { CloseIcon } from '../../assets/common.js';\nimport { TagTypeEnum, LinkTargetEnum, SizeEnum, LinkVariantEnum } from '../../utils/enums.js';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport Link from '../Link/Link.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { mapTemplateTypeToDisplay } from '../../utils/searchHelpers.jsx';\nimport './tag.scss';\n\nexport const Tag = ({ fields }) => {\n const {\n Title,\n Identifier,\n as,\n onClose,\n SearchResultsPage,\n ApplyTemplateToSearch,\n templateName,\n HideInArticleTagList,\n } = fields;\n\n const tagQuery = `${\n SearchResultsPage?.url ? SearchResultsPage.url.split('?')[0] : `/search`\n }?tags=${encodeURIComponent(Identifier?.value)}`;\n const templateQuery = `${\n ApplyTemplateToSearch?.value && templateName\n ? `&contenttype=${mapTemplateTypeToDisplay([templateName])?.[0]}`\n : ''\n }`;\n const searchQuery = { value: tagQuery + templateQuery };\n\n return (\n !HideInArticleTagList?.value && (\n \n {as?.value === TagTypeEnum.button ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n \n )}\n \n )\n );\n};\n\nexport default withErrorBoundary([ErrorBoundaryConditions.fields])(Tag);\nexport const TagStorybook = forStorybook(Tag);\n","import React from 'react';\nimport { Tag } from '../Tag/Tag.jsx';\nimport Text from '../Text/Text.jsx';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport './tag-list.scss';\n\nconst tagListBlock = 'zn-tag-list';\nconst TagList = ({ fields, children, tagList, sitecoreContext }) => {\n const { Title, Tags, SearchResultsPage, ApplyTemplateToSearch } = fields;\n const isEditing = sitecoreContext?.pageEditing;\n const searchLinkedTags = Tags?.map((tag) => {\n if (tag.fields) {\n tag.fields.SearchResultsPage = SearchResultsPage;\n tag.fields.ApplyTemplateToSearch = ApplyTemplateToSearch;\n tag.fields.templateName = sitecoreContext?.route.templateName;\n }\n return tag;\n });\n const searchLinkedTagList = tagList?.map((tag) => {\n if (tag.fields) {\n tag.fields.SearchResultsPage = SearchResultsPage;\n tag.fields.ApplyTemplateToSearch = ApplyTemplateToSearch;\n tag.fields.templateName = sitecoreContext?.route.templateName;\n }\n return tag;\n });\n return (\n
    \n \n
      \n {Array.isArray(searchLinkedTags) &&\n searchLinkedTags.map(\n (tag, index) =>\n !tag?.fields?.HideInArticleTagList?.value && (\n
    • \n \n
    • \n )\n )}\n {!isEditing\n ? searchLinkedTagList?.map(\n (tag, index) =>\n !tag?.fields?.HideInArticleTagList?.value && (\n \n {tag}\n \n )\n )\n : searchLinkedTagList}\n {children}\n
    \n
    \n );\n};\n\nexport const BasicTagList = TagList;\n\nexport default withSitecoreContext()(\n withPlaceholder('tagList')(withErrorBoundary([ErrorBoundaryConditions.fields])(TagList))\n);\nexport const TagListStorybook = forStorybook(TagList);\n","import React from 'react';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { BasicTagList } from '../TagList/TagList.jsx';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\n\nconst ContextTagList = ({ fields, tagList, sitecoreContext, children }) => {\n const { Title, SearchResultsPage, ApplyTemplateToSearch } = fields;\n const contextFields = sitecoreContext?.route?.fields;\n const TagListItems = Array.isArray(contextFields?.Tags) ? contextFields?.Tags : [];\n return (\n <>\n {sitecoreContext?.pageEditing && (\n
    \n **This component is using page field Tags as datasource**\n
    \n )}\n {(sitecoreContext?.pageEditing || TagListItems.length > 0) && (\n \n )}\n \n );\n};\n\nexport default withSitecoreContext()(\n withPlaceholder(['tagList'])(\n withErrorBoundary([ErrorBoundaryConditions.fields])(ContextTagList)\n )\n);\nexport const ContextTagListStorybook = forStorybook(ContextTagList);\n","import React from 'react';\nimport classnames from 'classnames';\nimport { SelectedCheckbox, UnselectedCheckbox } from '../../assets/common.js';\nimport './checkbox.scss';\n\nconst Checkbox = ({ checked, change, id, pId, disabledState, setDisabledState, ...props }) => {\n return (\n \n {\n if (event.key === 'Enter') {\n change(id, pId);\n setDisabledState(true);\n }\n }}\n {...props}\n >\n \n {checked ? : }\n \n \n );\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport classnames from 'classnames';\nimport { Checkmark } from '../../assets/common.js';\nimport './checkbox.scss';\nimport Checkbox from './Checkbox.jsx';\n\nconst CheckboxWrapper = ({\n checked,\n label,\n change,\n id,\n highLevelId,\n pId,\n disabledState,\n setDisabledState,\n isDropdownFilter,\n onClick,\n notTabbable,\n}) => {\n return (\n {\n if (event.key === 'Enter') {\n if (isDropdownFilter) change(id, highLevelId, pId);\n else change(id, pId);\n if (onClick) onClick();\n }\n }}\n >\n \n \n );\n};\n\nexport default CheckboxWrapper;\n","/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport classnames from 'classnames';\nimport './search-bar-filter.scss';\nimport { ChevronDown, ChevronUp, ChevronLeft, ChevronRight } from '../../assets/LinkIcons.js';\nimport { Button } from '../Button/Button.js';\nimport CheckboxWrapper from '../Checkbox/CheckboxWrapper.jsx';\nimport { PeopleFiltersValues } from '../../utils/searchHelpers.jsx';\n\nconst SearchBarFilter = ({\n translation,\n fields,\n index,\n activeFilter,\n toggleFilter,\n checkBox,\n uncheckAllBoxes,\n onApplyFilters,\n disabledState,\n setDisabledState,\n}) => {\n const searchBarFilterBlock = 'zn-search-bar-filter';\n const { label, options, totalSelected, parentId } = fields;\n\n const selectableFilters = options.filter((item) => item.hasResults || item.checked).length;\n\n return (\n \n {\n if (!disabledState) toggleFilter(index);\n }}\n >\n \n {totalSelected > 0 ? `${label} (${totalSelected})` : label}\n \n \n {label}\n \n
    \n {index === activeFilter ? : }\n
    \n
    \n \n
    \n \n
    \n {totalSelected > 0 && totalSelected + ' ' + translation('FiltersSelected')}\n
    \n \n \n {label}\n \n\n {\n toggleFilter(null);\n }}\n >\n
    \n \n
    \n\n
    \n {label}\n
    \n \n
      \n {selectableFilters ? (\n options.map((option, index) => {\n if (option.label && (option.hasResults || option.checked)) {\n return (\n \n );\n }\n })\n ) : (\n
    • \n \n {translation('NoMatchingFiltersTitle')}\n \n \n {translation('NoMatchingFiltersDescription')}\n \n
    • \n )}\n
    \n
    \n {\n uncheckAllBoxes(parentId);\n }}\n >\n {translation('ClearFilter')}\n \n
    \n \n
    \n
    \n \n \n );\n};\n\nSearchBarFilter.propTypes = {};\n\nSearchBarFilter.defaultProps = {};\n\nexport default SearchBarFilter;\n","import React from 'react';\nimport classnames from 'classnames';\nimport './event-autofill-search-result.scss';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\nimport { MovieCameraIcon, InPersonEventIcon, StaticEventIcon } from '../../../assets/common.js';\n\nconst TypeToIconEmum = {\n Virtual: MovieCameraIcon,\n Event: StaticEventIcon,\n 'In-Person': InPersonEventIcon,\n};\n\nconst boldString = (str, query) => {\n const n = str.toUpperCase();\n const q = query.toUpperCase();\n const x = n.indexOf(q);\n if (!q || x === -1) {\n return str;\n }\n const l = q.length;\n return (\n str.substr(0, x) +\n '' +\n str.substr(x, l) +\n '' +\n str.substr(x + l)\n );\n};\n\nconst parseContentType = (template) => {\n let contentType;\n\n switch (template) {\n case 'Publication Page':\n contentType = 'Event';\n break;\n case 'Event':\n contentType = 'In-Person';\n break;\n case 'Webinar':\n contentType = 'Virtual';\n break;\n }\n\n return contentType;\n};\n\nconst EventAutofillSearchResult = ({ fields, searchValue }) => {\n const autofillSearchResultsBlock = 'zn-event-autofill-search-result';\n const { Title, LinkUrl, ResultType } = fields;\n const ContentTag = LinkUrl?.value ? 'a' : 'div';\n const ContentStyle = ResultType?.value ? parseContentType(ResultType?.value) : '';\n const IconTag = ContentStyle ? TypeToIconEmum[ContentStyle.replace(/\\s/g, '')] : '';\n let titleValue = boldString(Title?.value, searchValue);\n\n return (\n \n {!!IconTag && (\n \n \n \n )}\n \n \n );\n};\n\nexport default EventAutofillSearchResult;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { DayPicker } from 'react-day-picker';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { withTranslation } from 'react-i18next';\nimport {\n startOfWeek as getStartOfWeek,\n endOfWeek as getEndOfWeek,\n subWeeks as subtractWeeks,\n startOfMonth as getStartOfMonth,\n endOfMonth as getEndOfMonth,\n subMonths as subtractMonths,\n subDays as subtractDays,\n} from 'date-fns';\nimport 'react-day-picker/dist/style.css';\nimport './search-bar-range-datepicker.scss';\nimport { ChevronDown, ChevronUp, ChevronRight, ChevronLeft } from '../../assets/LinkIcons.js';\nimport classNames from 'classnames';\n\nimport { frCA, enCA } from 'date-fns/locale';\nconst now = new Date();\nconst searchBarBase = 'zn-search-bar-filter';\n\nconst RangeDatePicker = (props) => {\n const { date, onChange, disabled, t, sitecoreContext } = props;\n\n const language = sitecoreContext?.language;\n\n const locale = language === 'en' ? enCA : language === 'fr-CA' ? frCA : enCA;\n const formatDate = (date) => {\n return date.toLocaleDateString(language === 'fr-CA' ? 'fr-CA' : 'en-CA', {\n month: 'short',\n day: '2-digit',\n year: 'numeric',\n });\n };\n\n const [dateRange, setDateRange] = useState(date);\n const [isDatePickerOpen, setIsDatePickerOpen] = useState(false);\n const datePickerRef = useRef(null);\n\n useEffect(() => {\n setDateRange(date);\n }, [date]);\n\n useEffect(() => {\n const handleOutsideClick = (event) => {\n if (datePickerRef.current && !datePickerRef.current.contains(event.target)) {\n setIsDatePickerOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handleOutsideClick);\n\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, []);\n\n const isApplyDisabled = dateRange?.from === date?.from && dateRange?.to === date?.to;\n\n const handleApply = () => {\n onChange(dateRange);\n setIsDatePickerOpen(false);\n };\n\n const handleDateRangeChange = (range) => {\n setDateRange(range ? range : { from: null, to: null });\n };\n\n return (\n \n {\n if (!disabled) setIsDatePickerOpen(!isDatePickerOpen);\n }}\n className={classNames(`${searchBarBase}__button`, {\n [`${searchBarBase}__button--disabled`]: disabled,\n })}\n >\n \n {t('From')} {dateRange.from && ': ' + formatDate(dateRange.from)} - {t('To')}\n {dateRange.to && ': ' + formatDate(dateRange.to)}\n \n \n {t('From')} - {t('To')}\n \n\n
    \n {isDatePickerOpen ? : }\n
    \n
    \n \n
    \n \n
    \n {dateRange.from && formatDate(dateRange.from) + ' - '}\n {dateRange.to && formatDate(dateRange.to)}\n
    \n\n {isDatePickerOpen && (\n
    \n setIsDatePickerOpen(!isDatePickerOpen)}\n >\n
    \n \n
    \n\n
    \n {t('From')} - {t('To')}{' '}\n
    \n \n
    \n
    \n {dateRange.from && (\n
    {formatDate(dateRange.from)}
    \n )}\n {dateRange.to && (\n
    {formatDate(dateRange.to)}
    \n )}\n
    \n\n \n
    \n\n \n {\n handleDateRangeChange({ from: now, to: now });\n }}\n >\n {t('Today')}\n \n \n handleDateRangeChange({\n from: subtractDays(now, 1),\n to: subtractDays(now, 1),\n })\n }\n >\n {t('Yesterday')}\n \n\n \n handleDateRangeChange({\n from: getStartOfWeek(now),\n to: getEndOfWeek(now),\n })\n }\n >\n {t('ThisWeek')}\n \n {\n const lastWeek = subtractWeeks(now, 1);\n handleDateRangeChange({\n from: getStartOfWeek(lastWeek),\n to: getEndOfWeek(lastWeek),\n });\n }}\n >\n {t('LastWeek')}\n \n\n \n handleDateRangeChange({\n from: getStartOfMonth(now),\n to: getEndOfMonth(now),\n })\n }\n >\n {t('ThisMonth')}\n \n {\n const lastMonth = subtractMonths(now, 1);\n handleDateRangeChange({\n from: getStartOfMonth(lastMonth),\n to: getEndOfMonth(lastMonth),\n });\n }}\n >\n {t('LastMonth')}\n \n {\n handleDateRangeChange({ from: null, to: null });\n onChange({ from: null, to: null });\n }}\n >\n {t('Reset')}\n \n \n {t('Apply')}\n \n
    \n \n )}\n \n );\n};\n\nexport default withSitecoreContext()(withTranslation()(RangeDatePicker));\n","import { sortFilterValues, mapFacetTypeToDisplay } from '../../utils/searchHelpers.jsx';\n\nexport const getSearchConditions = (tagIdResults, filterValues) => {\n let searchConditions = [];\n // eslint-disable-next-line no-unused-vars\n for (const [key, value] of Object.entries(filterValues)) {\n if (\n !value?.length ||\n value[0] === '' ||\n key.substring(0, 3) == 'sc_' ||\n ['q', 'start', 'end', 'contenttype', 'school', 'yearofcall', 'person'].includes(key)\n )\n continue;\n\n // For query parameters that are to apply conditions\n let condition;\n if (key === 'eventformat') {\n condition = {\n group: value\n //For every item selected in the filter, find the associated tagId from the tag search results where the tag identifier matches the value in the search params url\n ?.map((item) => {\n if (item === 'Event_Virtual') {\n return [\n { name: '_templatename', value: 'Webinar', useor: true },\n {\n group: [\n { name: '_templatename', value: 'Event', useor: true },\n { name: 'HybridEvent', value: 'true', useor: false },\n ],\n useor: true,\n },\n ];\n } else {\n return { name: '_templatename', value: 'Event', useor: true };\n }\n })\n .flat(),\n };\n } else if (key === 'organizer') {\n condition = {\n group: value?.map((item) => ({\n name: 'IsExternal',\n value: item === 'Organizer_Torys' ? 'false' : 'true',\n useor: true,\n })),\n };\n } else if (key === 'city') {\n condition = {\n group: value\n ?.filter((item) =>\n tagIdResults?.results.find(\n (x) => x?.identifier === decodeURIComponent(item)\n )\n )\n .map((item) => ({\n name: 'EventCity',\n value: decodeURIComponent(item),\n useor: true,\n })),\n };\n } else if (key === 'people') {\n condition = {\n group: value\n ?.filter((el) => !!el)\n .map((item) => ({ name: 'relatedpeople', value: item, useor: true })),\n };\n } else if (key === 'daterange') {\n searchConditions.push({\n operation: 'DateBetween',\n name: 'TeaserDate',\n value: value[0],\n });\n } else {\n condition = {\n group: value\n //For every item selected in the filter, find the associated tagId from the tag search results where the tag identifier matches the value in the search params url\n ?.filter((item) =>\n tagIdResults?.results.find(\n (x) => x?.identifier === decodeURIComponent(item)\n )\n )\n // From the found ids, construct a condition so search for items that have tags equal to the ids\n .map((item) => ({\n name: 'tags',\n value: tagIdResults?.results\n .find((x) => x?.identifier === decodeURIComponent(item))\n ?.id.toLowerCase(),\n useor: true,\n })),\n };\n }\n\n //Add the filter group condition to overall search condition applying an AND relationship between filters\n condition?.group?.length > 0 && searchConditions.push(condition);\n }\n\n return searchConditions;\n};\n\nexport const tagIdConditions = (filterValues) => {\n let tagIds = [];\n // eslint-disable-next-line no-unused-vars\n for (const [key, value] of Object.entries(filterValues)) {\n value?.length > 0 &&\n !['q', 'start', 'end', 'people', 'eventformat', 'organizer'].includes(key) &&\n key.substring(0, 2) != 'sc_' &&\n tagIds.push(\n filterValues[key]\n ?.filter((item) => item !== '')\n .map((item) => ({ name: 'identifier', value: item, useor: true }))\n );\n }\n return tagIds;\n};\n\nexport const updatePeopleOptions = (filter, facettedResults, paramObj) => {\n const checkedOptions = filter.options?.filter((option) => option.checked);\n\n const newOptions = facettedResults['relatedpeople']?.reduce(\n (acc, curr) => {\n if (!checkedOptions.some((el) => el.identifier === curr.value)) {\n acc.push({\n id: curr.value,\n label: curr.name,\n identifier: curr.value,\n hasResults: true,\n checked: paramObj['people']?.includes(curr.value),\n });\n }\n\n return acc;\n },\n [...checkedOptions]\n );\n\n newOptions?.sort(filter.identifier !== 'Position-Category' ? sortFilterValues : () => {});\n\n return newOptions || [];\n};\n\nexport const flattenFilterOptions = (filter) => {\n let array = [];\n array.push({ title: filter.title?.value, identifier: filter.identifier?.value });\n if (Array.isArray(filter.children)) {\n filter.children.forEach(function (a) {\n array = array.concat(flattenFilterOptions(a));\n });\n }\n return array;\n};\n\nexport const formatFilter = (filter, defaultFilters) => {\n return {\n label: filter[0]?.title,\n identifier: filter[0]?.identifier,\n options: filter.slice(1).map((option) => ({\n label: option?.title,\n identifier: option?.identifier,\n defaultChecked: defaultFilters.includes(option.identifier),\n })),\n };\n};\n\nexport const setTotalSelected = (filter, paramObj) => {\n return filter.options?.filter(\n (option) =>\n option.defaultChecked ||\n paramObj['tags']?.includes(option.identifier) ||\n paramObj[filter.label.toLowerCase()]?.includes(option.identifier) ||\n paramObj['eventformat']?.includes(option.identifier)\n )?.length;\n};\n\nexport const updateClearOptions = (args) => {\n const { oldOptions } = args;\n\n return oldOptions?.map((option) => ({ ...option, checked: false })) || [];\n};\n\nexport const updateHasResults = (options, facettedResults, mappedFacetKey) => {\n let mappedFacetArray =\n mappedFacetKey === '_templatename'\n ? mapFacetTypeToDisplay(facettedResults[mappedFacetKey] || [])\n : facettedResults[mappedFacetKey] || [];\n\n if (mappedFacetKey === 'relatedpeople') {\n mappedFacetArray = mappedFacetArray.map((el) => el.value);\n }\n\n return (\n options?.map((option) => ({\n ...option,\n hasResults:\n mappedFacetArray?.includes(option.identifier) || mappedFacetKey === 'static',\n })) || []\n );\n};\n\nexport const showMobileFilters = () => {\n const scrollY = document.documentElement.style.getPropertyValue('--scroll-y');\n const body = document.body;\n body.style.position = 'fixed';\n body.style.top = `-${scrollY}`;\n};\n\nexport const hideMobileFilters = () => {\n const body = document.body;\n const scrollY = body.style.top;\n body.style.position = '';\n body.style.top = '';\n window.scrollTo(0, parseInt(scrollY || '0') * -1);\n};\n\nexport const formatFilterTitle = (filter) => {\n return filter.toLowerCase().replace(/\\s/g, '');\n};\n","import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport classnames from 'classnames';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport { SearchBarCalendarEnum } from '../../utils/enums.js';\nimport { CloseIcon, SearchBarIcon } from '../../assets/common.js';\nimport { ChevronDown, ChevronUp } from '../../assets/LinkIcons.js';\nimport { Button } from '../Button/Button.js';\nimport { withTranslation } from 'react-i18next';\nimport SearchBarFilter from '../SearchBarFilter/SearchBarFilter.jsx';\nimport EventAutofillSearchResult from './EventAutofillSearchResult/EventAutofillSearchResult.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { useLocation } from 'react-router-dom';\nimport 'url-search-params-polyfill';\nimport './event-search-bar.scss';\nimport '../SearchBarFilter/search-bar-filter.scss';\nimport { scoreSortBy } from '../../utils/constants';\nimport { fetchTagIds, fetchResults } from '../../actions';\nimport { sortFilterValues, decodeURIComponentSafe } from '../../utils/searchHelpers.jsx';\nimport DatePicker from '../../ui/RangeDataPicker/RangeDataPicker.jsx';\nimport {\n formatFilter,\n flattenFilterOptions,\n setTotalSelected,\n updateClearOptions,\n updatePeopleOptions,\n updateHasResults,\n formatFilterTitle,\n hideMobileFilters,\n getSearchConditions,\n tagIdConditions,\n showMobileFilters,\n} from './helpers.js';\n\nconst searchBarBlock = 'zn-event-search-bar';\n\nconst staticFilterIds = ['EventFormat', 'Organizer', 'City'];\n\nexport const templateTypeConditions = [\n {\n group: [\n { name: '_templatename', value: 'Event', useor: true },\n { name: '_templatename', value: 'Webinar', useor: true },\n {\n group: [\n { name: '_templatename', value: 'Publication Page', useor: true },\n { name: 'IsEvent', value: 'true', useor: false },\n ],\n useor: true,\n },\n ],\n },\n];\n\nconst EventSearchBar = ({ t, fields, sitecoreContext }) => {\n // Authored Fields\n const { data } = fields;\n const Filters = data?.datasource?.filters?.targetItems || [];\n const DefaultFilters =\n data?.datasource?.defaultFilters?.targetItems?.map((option) => option.identifier.value) ||\n [];\n const SearchPrompt = data?.datasource?.searchPrompt || '';\n const flattenedFilters = Filters.map((filter) =>\n formatFilter(flattenFilterOptions(filter), DefaultFilters)\n );\n\n // Query Parameters\n const queryParams = new URLSearchParams(useLocation()?.search);\n const SearchParam = queryParams.get('q');\n const itemID = queryParams.get('sc_itemid'); //Used to allow for editing/preview mode toggle of a Search Results with query params updating\n const language = queryParams.get('sc_lang'); //Include language in query params\n const queryParamsString = useLocation()?.search;\n const pathname = useLocation()?.pathname;\n\n const [isFilterApplied, setIsFilterApplied] = useState(false);\n const [searchParams, setSearchParams] = useState(\n SearchParam ? decodeURIComponentSafe(SearchParam) : ''\n );\n const [dateRange, setDateRange] = useState({ from: null, to: null });\n const [pageLoadingState, setPageLoadingState] = useState(0);\n const [firstFacetLoad, setFirstFacetLoad] = useState(true);\n const [disabledState, setDisabledState] = useState(false);\n const [allFilters, setAllFilters] = useState([]);\n\n const stateItemID = itemID ? itemID : sitecoreContext?.route?.itemId;\n\n // UI state elements\n const [contextFilterParams, setContextFilterParams] = useState({});\n const [setActiveFilterGroup, setActiveFilterGroupState] = useState(null);\n const [setMobileActive, setMobileActiveState] = useState(false);\n const [setMobilePublishMenuActive, setMobilePublishMenuActiveState] = useState(false);\n\n const autoloadSuggestionsRef = useRef(null);\n const prevActiveGroup = useRef();\n const filterList = useRef(null);\n const [pdfView, setPdfView] = useState(false);\n\n //Autofill results\n const [autofillResults, _setAutofillResults] = useState([]);\n const autofillResultsRef = useRef(autofillResults);\n const searchInputRef = useRef(null);\n\n //Parse incoming query parameters from url to populate filters on the search page\n let paramObj = decodeURI(useLocation().search)\n .replace('?', '')\n .split('&')\n .map((param) => {\n if (!param?.split('=')) return;\n else return param.split('=');\n })\n .reduce((values, [key, value]) => {\n values[key] = value?.split(',').map((item) => decodeURIComponentSafe(item));\n return values;\n }, {});\n\n const fromDate = dateRange.from\n ? `${\n dateRange.from.getMonth() + 1\n }/${dateRange.from.getDate()}/${dateRange.from.getFullYear()}`\n : '';\n const toDate = dateRange.to\n ? `${dateRange.to.getMonth() + 1}/${dateRange.to.getDate()}/${dateRange.to.getFullYear()}`\n : '';\n\n // Format chosen filters for UI filter lists\n const standardFilters =\n flattenedFilters?.map((filter) => ({\n label: filter.label,\n parentId: filter.label,\n totalSelected: setTotalSelected(filter, paramObj),\n peopleOnly: false,\n facetValue: staticFilterIds.includes(filter.identifier)\n ? 'static'\n : filter.identifier === 'People'\n ? 'relatedpeople'\n : 'tags',\n identifier: filter.identifier,\n options: filter.options\n ? filter.options\n .map((option, index) => ({\n id: index,\n label: option.label,\n identifier: option.identifier,\n hasResults: true,\n checked:\n option.defaultChecked ||\n paramObj['tags']?.includes(option.identifier) ||\n paramObj['static']?.includes(option.identifier) ||\n paramObj['people']?.includes(option.value) ||\n paramObj['eventformat']?.includes(option.identifier) ||\n paramObj[filter.label.toLowerCase()]?.includes(option.identifier)\n ? true\n : false,\n }))\n .sort(filter.identifier !== 'Position-Category' ? sortFilterValues : () => {})\n : [],\n })) || [];\n\n useEffect(() => {\n if (paramObj['daterange']?.length) {\n const [fromDateStr, toDateStr] = paramObj['daterange'][0].split('|');\n setDateRange({\n from: fromDateStr ? new Date(fromDateStr) : null,\n to: toDateStr ? new Date(toDateStr) : null,\n });\n }\n }, []);\n\n const onApplyFilters = () => {\n setActiveFilterGroupState(null);\n setMobilePublishMenuActiveState(false);\n setMobileActiveState(false);\n setAutofillResults([]);\n };\n\n const clearSingularFilter = useCallback((pId) => {\n setContextFilterParams({\n ...contextFilterParams,\n [formatFilterTitle(pId)]: null,\n });\n setAllFilters((current) =>\n current.map((item) => {\n if (item.parentId === pId) {\n let updatedOptions = updateClearOptions({ oldOptions: item.options });\n\n return { ...item, totalSelected: 0, options: updatedOptions };\n } else return item;\n })\n );\n setIsFilterApplied(true);\n setDisabledState(true);\n }, []);\n\n const clearAllFilters = () => {\n if (!disabledState) {\n setAllFilters((current) =>\n current.map((item) => {\n let updatedOptions = updateClearOptions({ oldOptions: item.options });\n return { ...item, totalSelected: 0, options: updatedOptions };\n })\n );\n\n setActiveFilterGroupState(null);\n setDateRange({ from: null, to: null });\n setIsFilterApplied(true);\n setDisabledState(true);\n }\n };\n\n const updateFacets = (facettedResults) => {\n setAllFilters((current) =>\n current.map((item) => {\n let mappedFacetKey = item?.facetValue;\n let options;\n if (mappedFacetKey === 'relatedpeople') {\n options = updatePeopleOptions(item, facettedResults, paramObj);\n } else {\n options = item.options;\n }\n let updatedOptions = updateHasResults(options, facettedResults, mappedFacetKey);\n\n return {\n ...item,\n totalSelected:\n !firstFacetLoad || mappedFacetKey === 'relatedpeople'\n ? changeTotalSelectedForFacets(updatedOptions)\n : item.totalSelected,\n options: updatedOptions,\n };\n })\n );\n\n if (!firstFacetLoad) {\n let params = '';\n if (searchParams) params += searchParams ? `q=${encodeURIComponent(searchParams)}` : '';\n\n let filteredValues = Object.assign(\n ...allFilters.map((filter) => ({\n [formatFilterTitle(filter.identifier)]: filterParams(\n formatFilterTitle(filter.identifier)\n ).flat(),\n }))\n );\n\n if (dateRange.from || dateRange.to) {\n filteredValues['daterange'] = [encodeURIComponent(`${fromDate}|${toDate}`)];\n }\n\n for (const [key, value] of Object.entries(filteredValues)) {\n if (!value?.length) continue;\n\n let mappedFacetKey = mapFilterFacetValue(key);\n\n let filtersWithResults = value.filter((item) => {\n if (['eventformat', 'organizer', 'city', 'daterange'].includes(key)) {\n return true;\n } else if (key === 'people') {\n return facettedResults[mappedFacetKey]?.some(\n (el) => el.value == decodeURIComponent(item)\n );\n } else {\n return facettedResults[mappedFacetKey]?.includes(decodeURIComponent(item));\n }\n });\n\n if (filtersWithResults.length) {\n params += `&${key}=${filtersWithResults}`;\n }\n }\n\n if (sitecoreContext.pageState == 'edit' || sitecoreContext.pageState === 'preview') {\n params += `&sc_itemid=${stateItemID}`;\n }\n if (language) params += `&sc_lang=${language}`;\n //update the query parameters of the url according to selected filters and selected keywords\n\n window.history.replaceState(\n {\n state: `${queryParamsString.replace(\n queryParamsString,\n `?${params.toString()}`\n )}`,\n },\n '',\n `${pathname}${queryParamsString.replace(\n queryParamsString,\n `?${params.toString()}`\n )}`\n );\n }\n\n setFirstFacetLoad(false);\n setDisabledState(false);\n };\n\n const updateCheckedOption = (args) => {\n const { oldOptions, newValue, currentId } = args;\n\n return (\n oldOptions?.map((option) =>\n option.id === currentId ? { ...option, checked: newValue } : option\n ) || []\n );\n };\n\n const changeTotalSelected = (item, updatedId) => {\n let newCount = item.totalSelected;\n if (item.totalSelected === 0 && !updatedId) {\n return 0;\n } else {\n if (updatedId) {\n newCount++;\n } else {\n newCount--;\n }\n return newCount;\n }\n };\n\n const changeTotalSelectedForFacets = (updatedOptions) => {\n return updatedOptions.filter((item) => item.checked && item.hasResults).length;\n };\n\n const checkSingularBox = useCallback((id, pId) => {\n setAllFilters((current) =>\n current.map((item) => {\n if (item.parentId === pId) {\n let updatedOptions = [];\n let updatedId;\n item.options.map((option) => {\n if (option.id === id) {\n updatedId = !option.checked;\n updatedOptions = updateCheckedOption({\n oldOptions: item.options,\n newValue: updatedId,\n currentId: id,\n });\n }\n });\n return {\n ...item,\n totalSelected: changeTotalSelected(item, updatedId, item.hasResults),\n options: updatedOptions,\n };\n } else return item;\n })\n );\n setIsFilterApplied(true);\n }, []);\n\n const toggleActiveFilterGroup = (index) => {\n if (!disabledState) {\n if (prevActiveGroup.current === index) {\n setActiveFilterGroupState(null);\n } else {\n setActiveFilterGroupState(index);\n }\n }\n };\n\n const setAutofillResults = (results) => {\n autofillResultsRef.current = results;\n _setAutofillResults(results);\n };\n\n const searchConditionsHandler = (searchConditions, mappedObject) => {\n let titleCondition = [\n {\n group: [\n { name: '_name', value: `${searchParams}`, useor: true },\n { name: '_displayname', value: `${searchParams}`, useor: true },\n ],\n },\n ];\n\n let queryConditions = [];\n\n if (!mappedObject['eventformat']?.length) {\n queryConditions = searchConditions.concat(templateTypeConditions, titleCondition);\n } else {\n queryConditions = searchConditions.concat(titleCondition);\n }\n\n let facets = []; //no facetting\n let page = '0'; // update the page value or reset if new search performed\n let orderBy = 'score'; //order by the selected option\n let sortDescending = true; //sort results in descending order\n let excludeIds = ['']; //no exluding ids\n let keyword = ''; //not matching on any keywords\n let includeBioPageOnlyExclusion = true; //include condition to exclude items that are listed as Bio Page Only\n\n fetchResults(\n queryConditions,\n facets,\n 4, //get max 4 items\n page,\n orderBy,\n sortDescending,\n excludeIds,\n keyword,\n includeBioPageOnlyExclusion\n )\n .then((x) => {\n setAutofillResults(x.results);\n })\n .catch(() => {\n setAutofillResults([]);\n });\n setFirstFacetLoad(false);\n };\n\n const facetSearchHandler = (searchConditions, mappedObject, facetValues) => {\n let queryConditions = [];\n\n if (!mappedObject['eventformat']?.length) {\n queryConditions = searchConditions.concat(templateTypeConditions);\n } else {\n queryConditions = searchConditions;\n }\n\n let facets = facetValues; //no facetting\n let page = '0'; // update the page value or reset if new search performed\n let orderBy = 'score'; //order by the selected option\n let sortDescending = true; //sort results in descending order\n let excludeIds = ['']; //no exluding ids\n let keyword = ''; //not matching on any keywords\n let includeBioPageOnlyExclusion = true; //include condition to exclude items that are listed as Bio Page Only\n\n if (!queryConditions.length) return;\n\n fetchResults(\n queryConditions,\n facets,\n 0, //no results needed, only facet values\n page,\n orderBy,\n sortDescending,\n excludeIds,\n keyword,\n includeBioPageOnlyExclusion\n )\n .then((x) => {\n let mappedFacettedResults = Object.assign(\n ...(x.facets.length\n ? x.facets.map((facet) => ({\n [facet?.name]: facet?.values?.map((option) => {\n if (facet?.name === 'tags')\n return option?.item?.identifier?.value;\n else if (facet?.name === 'relatedpeople')\n return { name: option?.item?.name, value: option?.value };\n else return option?.value;\n }),\n }))\n : [{}])\n );\n updateFacets(mappedFacettedResults);\n })\n .catch(() => {\n //setFacettedFilters({});\n });\n };\n\n const handleSearchParams = (e) => {\n setSearchParams(e.target.value);\n if (autoloadSuggestionsRef.current) autoloadSuggestionsRef.current.style.display = 'block';\n };\n\n // Function to map filter dropdown to associated facet value\n const mapFilterFacetValue = (label) => {\n if (label === 'eventformat') {\n return '_templatename';\n } else if (label === 'people') {\n return 'relatedpeople';\n }\n\n return 'tags';\n };\n\n const filterParams = (identifier) => {\n const filtered = allFilters.reduce(\n (array, filter) => (\n formatFilterTitle(filter.identifier) === identifier &&\n array.push(\n filter.options\n .filter(function (option) {\n return option.checked;\n })\n .map(function (option) {\n return encodeURIComponent(option.identifier);\n })\n ),\n array\n ),\n []\n );\n return filtered.flat();\n };\n\n const submitForm = (event) => {\n event?.preventDefault();\n\n onApplyFilters();\n if (setMobileActive) hideMobileFilters();\n if (allFilters.length > 0) {\n setContextFilterParams(\n Object.assign(\n ...allFilters.map((filter) => ({\n [formatFilterTitle(filter.identifier)]: filterParams(\n formatFilterTitle(filter.identifier)\n ).flat(),\n }))\n )\n );\n }\n setIsFilterApplied(true);\n };\n\n useEffect(() => {\n prevActiveGroup.current = setActiveFilterGroup;\n });\n\n function searchKeyBoard(event) {\n if (event.keyCode == 13) {\n event.target.blur();\n }\n }\n\n const setScrollY = () => {\n document.documentElement.style.setProperty('--scroll-y', `${window?.scrollY}px`);\n };\n\n useEffect(() => {\n function unsetActiveFilterGroup(event) {\n if (filterList.current && !filterList.current.contains(event.target)) {\n toggleActiveFilterGroup(null);\n }\n }\n document.addEventListener('mousedown', unsetActiveFilterGroup);\n return () => {\n document.removeEventListener('mousedown', unsetActiveFilterGroup);\n const body = document.body;\n body.style.position = '';\n body.style.top = '';\n };\n }, []);\n\n useEffect(() => {\n setAllFilters(standardFilters);\n\n document.addEventListener('click', (e) => {\n const suggestedResults = document.getElementsByClassName(\n 'zn-event-search-bar__suggested-results'\n )[0];\n const searchInputBar = document.getElementsByClassName(\n 'zn-event-search-bar__form-input'\n )[0];\n const searchBarFilters = Array.from(\n document.getElementsByClassName('zn-search-bar-filter')\n );\n const datePickerFilter = document.getElementsByClassName(\n 'zn-search-bar-filter-range-datepicker-wrapper'\n )?.[0];\n\n let targetElement = e.target;\n do {\n if (targetElement == suggestedResults || targetElement == searchInputBar) {\n if (autofillResultsRef?.current.length > 0) setActiveFilterGroupState(null);\n return;\n }\n if (\n searchBarFilters.find((e) => e === targetElement) &&\n !datePickerFilter?.contains(targetElement)\n ) {\n return;\n }\n targetElement = targetElement.parentNode;\n } while (targetElement);\n if (autoloadSuggestionsRef.current)\n autoloadSuggestionsRef.current.style.display = 'none';\n setActiveFilterGroupState(null);\n });\n }, []);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n useEffect(() => {\n if (pageLoadingState === 0) {\n setPageLoadingState(1); //on initial load all Filters have not been set yet\n } else {\n if (allFilters.length > 0) {\n //on all subsequent loads we want the context filter params (that go into the url updated based on allFilters)\n if (pageLoadingState === 1) {\n submitForm();\n setPageLoadingState(2);\n }\n }\n }\n }, [allFilters]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (searchParams !== '') {\n let mappedValues = allFilters.map((item) => ({\n [formatFilterTitle(item.identifier)]: item.options\n .filter((item) => item.checked)\n .map((item) => item.identifier),\n }));\n let mappedObject = Object.assign({}, ...mappedValues);\n let tagIdConditionsArray = tagIdConditions(mappedObject); //Returns array with the tag names formatted correctly for graphql search query to retrieve associated tag ids\n\n if (dateRange.from || dateRange.to || paramObj['daterange']?.length) {\n mappedObject['daterange'] =\n !dateRange.from && !dateRange.to\n ? paramObj['daterange']\n : [`${fromDate}|${toDate}`];\n }\n\n if (['city', 'services', 'industries'].every((key) => !mappedObject[key]?.length)) {\n searchConditionsHandler(\n getSearchConditions({ results: [] }, mappedObject), //Returns array with the selected tags formatted correctly for graphql search query\n mappedObject\n );\n return;\n }\n\n fetchTagIds(\n tagIdConditionsArray?.flat(),\n [], //no faceting\n 500, //The total amount of items to retrieve TODO UPDATE THIS IN THE OTHER SECTIONS\n '0', //retreive the first page\n scoreSortBy, //sort by score\n true, //sort descending order\n [''], //no ids to exclude\n '' //no keyword\n )\n .then((x) => {\n searchConditionsHandler(\n getSearchConditions(x, mappedObject), //Returns array with the selected tags formatted correctly for graphql search query\n mappedObject\n );\n })\n .catch(() => {\n setAutofillResults([]);\n });\n } else {\n setAutofillResults([]);\n }\n }, 400);\n return () => clearTimeout(timer);\n }, [searchParams]);\n\n useEffect(() => {\n searchInputRef?.current?.addEventListener('keypress', searchKeyBoard);\n window.addEventListener('scroll', setScrollY);\n return function cleanup() {\n searchInputRef?.current?.removeEventListener('keypress', searchKeyBoard);\n window.removeEventListener('scroll', setScrollY);\n };\n }, [fields?.data?.contextItem?.id]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (pageLoadingState !== 0 && isFilterApplied) {\n // on every search update perform facet search to update displayed filters\n let mappedValues = allFilters.map((item) => ({\n [formatFilterTitle(item.identifier)]: item.options\n .filter((item) => item.checked)\n .map((item) => item.identifier),\n }));\n let mappedObject = Object.assign({}, ...mappedValues);\n\n if (\n allFilters.find((el) => el.facetValue === 'relatedpeople')?.options?.length ===\n 0\n ) {\n mappedObject['people'] = paramObj['people'] || [];\n }\n\n if (dateRange.from || dateRange.to || paramObj['daterange']?.length) {\n mappedObject['daterange'] =\n !dateRange.from && !dateRange.to\n ? paramObj['daterange']\n : [`${fromDate}|${toDate}`];\n }\n\n let facetValues = ['tags', '_templatename', 'relatedpeople'];\n\n if (\n ['city', 'services', 'industries'].every(\n (key) => mappedObject[key] && mappedObject[key].length === 0\n )\n ) {\n facetSearchHandler(\n getSearchConditions({ results: [] }, mappedObject),\n mappedObject,\n facetValues\n );\n setIsFilterApplied(false);\n return;\n }\n\n let tagIdConditionsArray = tagIdConditions(mappedObject); //Returns array with the tag names formatted correctly for graphql search query to retrieve associated tag ids\n\n fetchTagIds(\n tagIdConditionsArray?.flat(),\n [], //facet on tags, template names, people values\n 500, //No search results needed, only facets\n '0', //retreive the first page\n scoreSortBy, //sort by score\n true, //sort descending order\n [''], //no ids to exclude\n '' //no keyword\n )\n .then((x) => {\n facetSearchHandler(\n getSearchConditions(x, mappedObject), //Returns array with the selected tags formatted correctly for graphql search query\n mappedObject,\n facetValues\n );\n })\n .catch(() => {});\n setIsFilterApplied(false);\n }\n }, 500);\n return () => clearTimeout(timer);\n }, [isFilterApplied]); //update every time a filter is applied/search keyword is set and run\n\n return (\n !pdfView && (\n
    \n
    \n
    \n {\n if (autoloadSuggestionsRef.current)\n autoloadSuggestionsRef.current.style.display = 'block';\n }}\n >\n \n \n \n \n \n {autofillResults?.length > 0 && (\n
      \n {autofillResults.map((result, index) => {\n if (result?.item) {\n result.fields = {\n Title:\n result?.templateName === 'Publication Page'\n ? { value: result.item.title?.value }\n : { value: result.item.teaserTitle?.value },\n Image: {},\n ResultType: { value: result.templateName },\n LinkUrl:\n result?.templateName === 'Publication Page'\n ? {}\n : { value: result.item.url },\n };\n return (\n \n \n \n );\n }\n })}\n
    \n )}\n
    \n
    \n
    \n {\n setMobileActiveState(!setMobileActive);\n showMobileFilters();\n }}\n >\n
    \n {t('Filters')}\n
    \n
    \n {setMobileActive ? : }\n
    \n \n
    \n \n {setMobileActive && (\n
    \n \n \n {setActiveFilterGroup === SearchBarCalendarEnum.start ||\n setActiveFilterGroup === SearchBarCalendarEnum.end\n ? t('SelectADate')\n : t('Filter')}\n
    \n \n {\n setMobileActiveState(false);\n hideMobileFilters();\n }}\n >\n \n \n \n \n \n \n )}\n \n \n {\n setDateRange(val);\n setDisabledState(true);\n setIsFilterApplied(true);\n }}\n disabled={disabledState}\n />\n {allFilters.map(\n (filter, index) =>\n !filter.peopleOnly &&\n filter.options && (\n \n )\n )}\n\n {allFilters?.length > 0 && (\n {\n clearAllFilters();\n }}\n >\n {t('ClearAll')}\n \n )}\n \n \n {setActiveFilterGroup === null && setMobileActive && (\n
    \n {allFilters?.length > 0 && (\n {\n clearAllFilters();\n }}\n >\n {t('ClearAll')}\n \n )}\n
    \n \n {t('ShowResults')}\n \n
    \n
    \n )}\n \n \n )\n );\n};\n\nconst SearchBarWithTranslation = withTranslation()(EventSearchBar);\n\nexport const SearchBarStorybook = forStorybookV2(SearchBarWithTranslation);\n\nexport default withSitecoreContext()(SearchBarWithTranslation);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Button } from '../Button/Button.js';\nimport { ChevronLeftCirlcle, ChevronRightCirlcle } from '../../assets/LinkIcons.js';\n\nimport './pagination.scss';\n\nconst paginationBase = 'zn-pagination';\nconst createPagination = (total, current, OnNumberClick) => {\n let leftmost = current - 2 > 0;\n let rightmost = current + 3 <= total;\n\n let start = leftmost ? current : 1;\n let end = rightmost ? current + 2 : total;\n\n const pagination = [];\n\n if (leftmost && rightmost) {\n end = current + 1;\n }\n\n if (!leftmost && current !== 1) {\n end = current + 1;\n }\n\n if (leftmost && !rightmost) {\n start = total - 2;\n }\n\n if (leftmost && !rightmost) {\n start = total - 2;\n }\n\n if (total <= 5) {\n leftmost = false;\n rightmost = false;\n start = 1;\n end = total;\n }\n\n if (leftmost) {\n pagination.push(\n <>\n {\n OnNumberClick(1);\n }}\n >\n {1}\n \n ...\n \n );\n }\n for (let index = start; index <= end; index++) {\n pagination.push(\n {\n OnNumberClick(index);\n }}\n >\n {index}\n \n );\n }\n\n if (rightmost) {\n pagination.push(\n <>\n ...\n {\n OnNumberClick(total);\n }}\n >\n {total}\n \n \n );\n }\n return pagination;\n};\n\nconst Pagination = ({ Total, Current, OnNext, OnPrevious, OnNumberClick }) => {\n return (\n
    \n {\n if (Current !== 1) {\n OnPrevious();\n }\n }}\n >\n \n \n {createPagination(Total, Current, OnNumberClick)}\n {\n if (Total !== Current) {\n OnNext();\n }\n }}\n >\n \n \n
    \n );\n};\n\nexport default Pagination;\n","/* eslint-disable no-unused-vars */\nimport React from 'react';\n// eslint-disable-next-line import/no-unresolved\nimport ButtonLink from '../../ButtonLink/ButtonLink.jsx';\nimport { ArrowRight } from '../../../assets/LinkIcons.js';\nimport { withTranslation } from 'react-i18next';\nimport { Image as Img, RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../../utils/withErrorBoundary.jsx';\nimport classnames from 'classnames';\nimport { forStorybookV2 } from '../../../utils/forStorybook.jsx';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { DateTime } from 'luxon';\nimport { IsEmptyDate } from '../../../utils/dateExtensions';\nimport './event-content-card.scss';\nimport {\n HighlightColorItemEnum,\n ContentCardColour,\n ContentCardType,\n ThemeEnum,\n ButtonVariantEnum,\n LinkTargetValueEnum,\n TimeZoneEnum,\n} from '../../../utils/enums.js';\nimport { MovieCameraIcon, InPersonEventIcon, StaticEventIcon } from '../../../assets/common.js';\n\nconst TypeToIconEmum = {\n Virtual: MovieCameraIcon,\n Event: StaticEventIcon,\n 'In-Person': InPersonEventIcon,\n};\n\nconst contentCardBlock = 'zn-event-content-card';\n\nconst parseContentType = (template) => {\n let contentType;\n\n switch (template) {\n case 'Publication Page':\n contentType = 'Event';\n break;\n case 'Event':\n contentType = 'In-Person';\n break;\n case 'Webinar':\n contentType = 'Virtual';\n break;\n }\n\n return contentType;\n};\n\nconst EventContentCard = ({ sitecoreContext, fields, params, t }) => {\n const { data } = fields;\n const { IncludeImage, ImageHighlightColor, DefaultCardColor, EnableAnimation } = params;\n const AltText = data?.datasource?.altText || '';\n const TitleOverride = data?.datasource?.titleOverride || '';\n const DescriptionOverride = data?.datasource?.descriptionOverride || '';\n const ImageOverride = data?.datasource?.imageOverride || '';\n const ExternalLink = data?.datasource?.externalLink || {};\n const ExternalLinkIcon = data?.datasource?.externalLinkIcon?.value || 'Insight';\n const PageLink = data?.datasource?.pageLink?.targetItem || '';\n const teaserTitle = PageLink?.teaserTitle;\n const teaserDescription = PageLink?.teaserDescription;\n const teaserTemplateTypeOverride = PageLink?.teaserTemplateTypeOverride;\n const teaserDate = PageLink?.teaserDate;\n const displayDate = PageLink?.displayDate;\n const hideDate = PageLink?.hideCardTeaserDate;\n const teaserImage = PageLink?.teaserImage;\n const notNavigatable = PageLink?.notNavigatable;\n const isEditing = sitecoreContext.pageEditing;\n\n const ContextTeaserDate =\n teaserDate?.value &&\n DateTime.fromISO(teaserDate?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n })\n .setZone(TimeZoneEnum.server)\n .toLocaleString(DateTime.DATE_MED);\n let useExternalLink =\n ExternalLink?.linkType === 'external' &&\n ExternalLink?.url &&\n (TitleOverride?.value || ExternalLink?.text);\n\n let externalLinkTitle = ExternalLink?.text\n ? { value: ExternalLink?.text }\n : TitleOverride?.value\n ? TitleOverride\n : '';\n\n //content card values\n //if external link use the link text or the title override, if page link use override or teaser title\n const title = useExternalLink\n ? externalLinkTitle\n : TitleOverride?.value\n ? TitleOverride\n : teaserTitle;\n const description = DescriptionOverride?.value ? DescriptionOverride : teaserDescription;\n\n let FinalDate = '';\n\n if (!hideDate?.value || hideDate?.value === '0') {\n FinalDate = displayDate?.value\n ? displayDate.value\n : teaserDate?.value && !IsEmptyDate(ContextTeaserDate)\n ? ContextTeaserDate\n : '';\n } else {\n FinalDate = '';\n }\n\n const image = ImageOverride?.src ? ImageOverride : teaserImage;\n let link = useExternalLink ? ExternalLink?.url : PageLink?.url;\n // Encode any special characters in link. Add / and : back in\n link = link ? encodeURIComponent(link)?.replace(/%2F/g, '/')?.replace(/%3A/g, ':') : '';\n\n let withImage = PageLink?.teaserImage?.src || ImageOverride?.src;\n let ContentStyle = useExternalLink\n ? ExternalLinkIcon\n ? parseContentType(ExternalLinkIcon)\n : parseContentType('Insight')\n : PageLink?.template?.name\n ? parseContentType(PageLink?.template?.name)\n : '';\n const IconTag = ContentStyle ? TypeToIconEmum[ContentStyle.replace(/\\s/g, '')] : '';\n let Type =\n ContentStyle === ContentCardType.contentSeries ||\n !ContentStyle ||\n notNavigatable?.value === '1'\n ? 'div'\n : 'a';\n return (\n (PageLink || isEditing || useExternalLink) &&\n (link?.startsWith('/') && notNavigatable?.value !== '1' ? (\n \n
    \n {withImage &&\n IncludeImage === '1' &&\n ContentStyle !== ContentCardType.contentSeries && (\n
    \n {ImageHighlightColor &&\n ImageHighlightColor !== HighlightColorItemEnum.none && (\n
    \n )}\n \n
    \n )}\n
    \n {(ContentStyle || teaserTemplateTypeOverride?.value) && (\n
    \n {IconTag && (\n \n \n
    \n )}\n
    \n {teaserTemplateTypeOverride?.value\n ? teaserTemplateTypeOverride?.value\n : ContentStyle\n ? t(ContentStyle?.replace(/\\s/g, ''))\n : ''}\n
    \n
    \n )}\n \n \n \n
    \n \n
    \n \n \n {ContentStyle === ContentCardType.contentSeries && notNavigatable?.value !== '1' ? (\n
    \n \n
    \n ) : (\n
    \n
    {FinalDate && FinalDate}
    \n {notNavigatable?.value !== '1' && (\n
    \n \n
    \n )}\n
    \n )}\n \n ) : (\n \n
    \n {withImage &&\n IncludeImage === '1' &&\n ContentStyle !== ContentCardType.contentSeries && (\n
    \n {ImageHighlightColor &&\n ImageHighlightColor !== HighlightColorItemEnum.none && (\n
    \n )}\n \n
    \n )}\n
    \n
    \n {IconTag && (\n \n \n
    \n )}\n {(isEditing || ContentStyle) && (\n
    \n {ContentStyle\n ? t(ContentStyle?.replace(/\\s/g, ''))\n : t('NoPageLinkSet')}\n
    \n )}\n
    \n \n \n \n
    \n \n
    \n \n \n {ContentStyle === ContentCardType.contentSeries && notNavigatable?.value !== '1' ? (\n
    \n \n
    \n ) : (\n
    \n
    {FinalDate && FinalDate}
    \n {notNavigatable?.value !== '1' && (\n
    \n \n
    \n )}\n
    \n )}\n \n ))\n );\n};\n\nconst ContentCardSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params])(EventContentCard)\n);\n\nexport default withTranslation()(ContentCardSitecore);\nexport const ContentCardStorybook = forStorybookV2(ContentCardSitecore);\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Lottie from 'react-lottie';\nimport classnames from 'classnames';\nimport animationData from '../../assets/bubbleLoading';\nimport Pagination from '../Pagination/Pagination.jsx';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { useLocation } from 'react-router-dom';\nimport SectionHeading from '../SectionHeading/SectionHeading.jsx';\nimport {\n ThemeEnum,\n SectionHeadingSizeEnum,\n HeadingLevelEnum,\n OverrideAlignmentEnum,\n} from '../../utils/enums.js';\nimport { withTranslation } from 'react-i18next';\nimport classNames from 'classnames';\nimport 'url-search-params-polyfill';\nimport './event-search-results.scss';\nimport { fetchTagIds, fetchResults as fetchSearchResults } from '../../actions/index.js';\nimport { decodeURIComponentSafe } from '../../utils/searchHelpers.jsx';\nimport { tagIdConditions, getSearchConditions } from '../EventSearchBar/helpers.js';\nimport { scoreSortBy } from '../../utils/constants.js';\nimport ContentCard from './EventContentCard';\nimport { templateTypeConditions } from '../EventSearchBar/EventSearchBar.jsx';\nimport { subDays as subtractDays } from 'date-fns';\n\nconst searchResults = 'zn-event-search-results';\n\nconst defaultAnimationOptions = {\n loop: true,\n autoplay: true,\n animationData: animationData,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n};\n\nconst SearchResults = ({ t, fields }) => {\n const { PastSessions, UpcomingSessions, UpcomingSessionsHeading, PastSessionsHeading } = fields;\n const queryParams = new URLSearchParams(useLocation().search);\n const [searchParam, setSearchParam] = useState(\n queryParams.get('q') ? decodeURIComponentSafe(queryParams.get('q')) : ''\n );\n\n let filterValuesInitial = decodeURI(useLocation().search)\n .replace('?', '')\n .split('&')\n .map((param) => {\n if (!param?.split('=')) return;\n else return param.split('=');\n })\n .reduce((values, [key, value]) => {\n values[key] = value?.split(',').map((item) => decodeURIComponentSafe(item));\n return values;\n }, {});\n\n const [historyFilters, setHistoryFilters] = useState(filterValuesInitial);\n const pastSessionItemsPerPage = parseInt(PastSessions?.value) || 6;\n const upcomingSessionItemsPerPage = parseInt(UpcomingSessions?.value) || 9;\n\n useEffect(() => {\n (function (history) {\n var replaceState = history.replaceState;\n history.replaceState = function (state) {\n if (typeof history.onreplacestate == 'function') {\n history.onreplacestate({\n state: state,\n });\n }\n return replaceState.apply(history, arguments);\n };\n })(window.history);\n window.onpopstate = history.onreplacestate = function (e) {\n let filters = decodeURI(e?.state?.state)\n .replace('?', '')\n .split('&')\n .map((param) => {\n if (!param?.split('=')) return;\n else return param.split('=');\n })\n .reduce((values, [key, value]) => {\n values[key] = value?.split(',').map((item) => decodeURIComponentSafe(item));\n return values;\n }, {});\n setSearchParam(filters['q'] ? filters['q'][0] : '');\n setHistoryFilters(filters);\n };\n }, [window.history]);\n\n return (\n <>\n \n \n \n );\n};\n\nSearchResults.propTypes = {\n LinkText: PropTypes.shape({ value: PropTypes.string }),\n PeopleOnlySearch: PropTypes.shape({ value: PropTypes.bool }),\n};\n\nconst Results = ({ t, itemsPerPage, heading, session, searchParam, selectedFilters }) => {\n const [results, setResults] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [paginationPressed, setPaginationPressed] = useState(false);\n const [page, setPage] = useState(1);\n const [resultCount, setResultCount] = useState();\n\n let searchResultsRef = useRef();\n\n const scrollToRef = (top) => window.scrollTo(0, top);\n\n const executeScroll = () => {\n scrollToRef(searchResultsRef.current.offsetParent.offsetTop);\n };\n\n //Fetch Search Results based off chosen tags\n const searchConditionsHandler = (searchConditions, mappedObject) => {\n let updatedSearchConditions = refineEventFormatCondition(\n searchConditions,\n mappedObject,\n session\n );\n\n const dateCond = updatedSearchConditions?.find((el) => el.name === 'TeaserDate');\n const newDateCond = getUpdatedDateCond(dateCond, session);\n\n if (!newDateCond) return;\n\n updatedSearchConditions = updatedSearchConditions.filter((el) => el.name !== 'TeaserDate');\n updatedSearchConditions.push(newDateCond);\n\n let facets = []; //no facetting\n let pageToFetch = paginationPressed ? ((page - 1) * itemsPerPage).toString() : '0'; // update the page value or reset if new search performed\n let orderByValue = 'teaserdate';\n let sortDescending = session === 'past'; //sort results\n let excludeIds = ['']; //no exluding ids\n let keyword = searchParam ? searchParam : ''; //keyword to search\n let includeBioPageOnlyExclusion = true; //include condition to exclude items that are listed as Bio Page Only\n fetchSearchResults(\n updatedSearchConditions,\n facets,\n itemsPerPage,\n pageToFetch,\n orderByValue,\n sortDescending,\n excludeIds,\n keyword,\n includeBioPageOnlyExclusion\n )\n .then((x) => {\n setResults(x.results);\n setPaginationPressed(false);\n setResultCount(x.totalCount);\n setIsLoading(false);\n setHasError(false);\n })\n .catch(() => {\n setIsLoading(false);\n setPaginationPressed(false);\n setHasError(true);\n });\n };\n\n //Fetch Search Results\n const fetchResults = () => {\n //Solr query to fetch tag ids associated to chosen filters\n let tagIdConditionsArray = tagIdConditions(selectedFilters); //Returns array with the tag names formatted correctly for graphql search query to retrieve associated tag ids\n\n if (['city', 'services', 'industries'].every((key) => !selectedFilters[key]?.length)) {\n searchConditionsHandler(\n getSearchConditions({ results: [] }, selectedFilters), //Returns array with the selected tags formatted correctly for graphql search query\n selectedFilters\n );\n return;\n }\n\n fetchTagIds(\n tagIdConditionsArray?.flat(),\n [], //no faceting\n 500,\n '0', //retrieve the first page\n scoreSortBy, //sort by score\n true, //sort descending order\n [''], //no ids to exclude\n '' //no keyword\n )\n .then((x) => {\n searchConditionsHandler(\n getSearchConditions(x, selectedFilters), //Returns array with the selected tags formatted correctly for graphql search query\n selectedFilters\n );\n //add the date filters\n })\n .catch(() => {\n setIsLoading(false);\n setHasError(true);\n });\n };\n\n useEffect(() => {\n if (Object.keys(selectedFilters)) {\n const timer = setTimeout(() => {\n setPage(1);\n fetchResults();\n }, 500);\n return () => clearTimeout(timer);\n }\n }, [selectedFilters]);\n\n useEffect(() => {\n if (!paginationPressed) return;\n else fetchResults();\n }, [paginationPressed]);\n\n return (\n
    \n \n\n
      \n {!hasError ? (\n !isLoading ? (\n
      \n {!hasError\n ? (Array.isArray(results) ? results : []).map((result, index) => (\n \n \n \n ))\n : false && (\n
      {t('Error')}
      \n )}\n
      \n ) : (\n
      \n \n
      \n )\n ) : (\n
      {t('Error')}
      \n )}\n
    \n {resultCount > 0 && resultCount > itemsPerPage && !isLoading && !hasError && (\n
    \n {\n setPage(page + 1);\n setPaginationPressed(true);\n executeScroll();\n }}\n OnPrevious={() => {\n setPage(page - 1);\n setPaginationPressed(true);\n executeScroll();\n }}\n OnNumberClick={(number) => {\n setPage(number);\n setPaginationPressed(true);\n executeScroll();\n }}\n />\n
    \n )}\n
    \n );\n};\n\nconst SearchResultsSitecore = withSitecoreContext()(SearchResults);\n\nexport const SearchResultsStorybook = forStorybook(SearchResults);\nexport default withTranslation()(SearchResultsSitecore);\n\nconst refineEventFormatCondition = (searchConditions, mappedObject, session) => {\n if (session === 'upcoming') {\n return !mappedObject['eventformat']?.length\n ? [...searchConditions, ...templateTypeConditions]\n : searchConditions;\n }\n\n return [\n ...searchConditions.filter((item) => {\n if (item.group) {\n return !item.group.some((groupItem) => groupItem.name === '_templatename');\n }\n return true;\n }),\n ...templateTypeConditions,\n ];\n};\n\nconst getUpdatedDateCond = (dateCond, session) => {\n let fromDateStr = '';\n let toDateStr = '';\n const newDateCond = { operation: 'DateBetween', name: 'TeaserDate', value: '' };\n\n if (dateCond) {\n [fromDateStr, toDateStr] = dateCond.value?.split('|');\n }\n const fromDateObj = fromDateStr ? new Date(fromDateStr) : null;\n const toDateObj = toDateStr ? new Date(toDateStr) : null;\n const today = new Date();\n\n // Set hours, minutes, seconds and milliseconds to 0\n if (fromDateObj) fromDateObj.setHours(0, 0, 0, 0);\n if (toDateObj) toDateObj.setHours(0, 0, 0, 0);\n today.setHours(0, 0, 0, 0);\n\n if (session === 'past') {\n const newToDateStr =\n toDateObj && toDateObj.getTime() < today.getTime()\n ? toDateStr\n : `${today.getMonth() + 1}/${subtractDays(\n today,\n 1\n ).getDate()}/${today.getFullYear()}`;\n newDateCond.value = `${fromDateStr || ''}|${newToDateStr}`;\n } else if (session === 'upcoming') {\n const newFromDateStr =\n fromDateObj && fromDateObj.getTime() > today.getTime()\n ? fromDateStr\n : `${today.getMonth() + 1}/${today.getDate()}/${today.getFullYear()}`;\n newDateCond.value = `${newFromDateStr}|${toDateStr || ''}`;\n }\n\n return newDateCond;\n};\n\nconst getContentCardFields = (resultItem) => {\n if (!resultItem) return {};\n\n const item = resultItem.item || {};\n const title =\n resultItem.templateName === 'Publication Page'\n ? item.title?.value\n : item.teaserTitle?.value;\n return {\n data: {\n datasource: {\n pageLink: {\n targetItem: {\n displayName: title,\n template: {\n name: resultItem.templateName,\n },\n url: item.url,\n\n teaserTitle: {\n value: title,\n },\n\n teaserDescription: {\n value: item.externalHost?.value,\n },\n\n teaserDate: {\n value: item.teaserDate?.value,\n },\n displayDate: {\n value: resultItem.teaserDisplayDate,\n },\n hideCardTeaserDate: {\n value: item.hideCardTeaserDate?.value,\n },\n\n teaserTemplateTypeOverride: {\n value: item.teaserTemplateTypeOverride?.value,\n },\n\n notNavigatable: {\n value: resultItem.templateName === 'Publication Page' ? '1' : '0',\n },\n },\n },\n },\n },\n };\n};\n","import React from 'react';\nimport { LinkTargetValueEnum } from '../../utils/enums';\nimport { withTranslation } from 'react-i18next';\nimport './FeaturedWorksPdfList.scss';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\n\nconst FeaturedWorksPdfList = ({ featuredResults, featuredItemsCount, t }) => {\n const classBase = 'zn-featured-list';\n return (\n
    \n {(featuredResults || []).map((result, index) => {\n if (result && index < featuredItemsCount) {\n const {\n featuredTeaserTitle,\n teaserTitle,\n displayName,\n url,\n featuredTeaserDescription,\n teaserDescription,\n notNavigatable,\n } = result.item ?? {};\n const Title = featuredTeaserTitle ?? teaserTitle ?? displayName;\n\n const ParagraphText = featuredTeaserDescription ??\n teaserDescription ?? { value: '' };\n\n const LinkURL =\n notNavigatable?.value === '1'\n ? { value: null }\n : {\n value: {\n href: url,\n text: t('ReadMore'),\n title: result?.name,\n target: LinkTargetValueEnum.self,\n },\n };\n return (\n
    \n
    \n \n
    \n
    \n \n
    \n\n {LinkURL?.value && (\n \n {LinkURL.value.text}\n \n )}\n
    \n );\n }\n })}\n
    \n );\n};\n\nexport default withTranslation()(FeaturedWorksPdfList);\n","/* eslint-disable no-unused-vars */\nimport React, { useState, useEffect } from 'react';\nimport classnames from 'classnames';\nimport { Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\nimport { relatedFeaturedPagesCondition, workItemTemplate } from '../../utils/constants.js';\nimport { fetchResults } from '../../actions';\nimport FeaturedList from '../FeaturedList/FeaturedList.jsx';\nimport FeaturedListItem from '../FeaturedListItem/FeaturedListItem.jsx';\nimport { withTranslation } from 'react-i18next';\nimport {\n FeaturedListLayoutEnum,\n LinkTargetValueEnum,\n HighlightColorItemEnum,\n} from '../../utils/enums';\nimport './expertise-featured-work-list.scss';\nimport FeaturedWorksPdfList from './FeaturedWorksPdfList.jsx';\nimport usePdfView from '../../utils/hooks/usePdfView.jsx';\nconst expertiseFeaturedWorkListBlock = 'zn-expertise-featured-work-list';\n\n/**\n * Expertise Featured Work List with GraphQL CustomSearch Query\n *\n * Once this component is authored on a Expertise page the featured work items are displayed\n *\n * The following steps are taken to display featured work items associated to the Expertise page.\n *\n * 1. Retrieve itemId from the page context\n * 2. Construct graphql custom search query conditions for featured work results:\n (_templatename = 'Work Page' AND RelatedFeaturedExpertise = 'Page Item Id')\n * 3. Fetch and set FeaturedItemsCount number of featured work results\n *\n */\nconst ExpertiseFeaturedWorkList = ({ sitecoreContext, fields, t }) => {\n const { ButtonText, SearchResultsPage, FeaturedItemsCount } = fields;\n // 1. Page Id\n const pageId = sitecoreContext?.route?.itemId;\n const serviceName = sitecoreContext?.route?.fields?.ServiceName?.value || '';\n const encodedServiceName = encodeURIComponent(serviceName);\n const isEditing = sitecoreContext?.pageEditing;\n const ButtonTag = isEditing ? 'div' : 'a';\n const [featuredResults, setFeaturedResults] = useState([]);\n const pdfView = usePdfView();\n // 2. GraphQL condition construction\n const conditions = [\n {\n name: relatedFeaturedPagesCondition,\n value: pageId.replace(/-/g, ''),\n },\n workItemTemplate,\n ];\n const featuredItemsCount = FeaturedItemsCount?.value\n ? parseInt(FeaturedItemsCount?.value, 10)\n : 4;\n\n const performSearch = (event) => {\n event.preventDefault();\n window.location.href = `${\n SearchResultsPage?.url.split('?')[0]\n }?contenttype=Work Page&tags=${encodedServiceName}`;\n };\n\n useEffect(() => {\n //3. Fetch results\n fetchResults(conditions, [], featuredItemsCount, '0', 'teaserdate', true, [''], '', true)\n .then((x) => {\n setFeaturedResults(x.results);\n })\n .catch(() => {});\n }, []);\n\n if (pdfView)\n return (\n \n );\n\n return (\n
    \n {(featuredResults.length > 0 || isEditing) && (\n \n {(featuredResults || []).map((result, index) => {\n if (result && index < featuredItemsCount) {\n let featuredTeaserTitle = result?.item?.featuredTeaserTitle?.value;\n let teaserTitle = result?.item?.teaserTitle?.value;\n let displayName = result?.item?.displayName;\n let featuredTeaserDescription =\n result?.item?.featuredTeaserDescription?.value;\n let teaserDescription = result?.item?.teaserDescription?.value;\n return (\n <>\n \n \n );\n }\n })}\n \n )}\n {((SearchResultsPage?.url && ButtonText?.value && featuredResults.length > 0) ||\n isEditing) && (\n
    \n \n \n \n
    \n )}\n
    \n );\n};\n\nconst ExpertiseFeaturedWorkListSitecore = withSitecoreContext()(ExpertiseFeaturedWorkList);\nexport default withTranslation()(ExpertiseFeaturedWorkListSitecore);\nexport const ExpertiseFeaturedWorkListStorybook = forStorybook(ExpertiseFeaturedWorkListSitecore);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport './general-hero.scss';\nimport classnames from 'classnames';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport HeadingAccent from '../HeadingAccent';\nimport { Image as Img, Text, RichText } from '@sitecore-jss/sitecore-jss-react';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport Lottie from 'react-lottie';\nimport {\n GeneralHeroColourTheme,\n ArticleHeroAccentColorEnum,\n LinkTargetEnum,\n ThemeEnum,\n ButtonVariantEnum,\n} from '../../utils/enums';\n\nconst generalHeroBlock = 'zn-general-hero';\n\nconst GeneralHero = ({ fields }) => {\n const {\n Title,\n Image,\n ColourTheme,\n AccentColor,\n Description,\n LinkURL,\n Eyebrow,\n PdfImage,\n LottieAnimationDesktop,\n LottieAnimationMobile,\n } = fields;\n\n const lottieDesktop = LottieAnimationDesktop?.value?.src;\n\n const lottieMobile = LottieAnimationMobile?.value?.src || lottieDesktop;\n\n const withImage = !!Image?.value?.src && Object.keys(Image?.value).length > 0;\n\n const colourTheme = (ColourTheme?.value || GeneralHeroColourTheme.blue).toLowerCase();\n const lightTheme = ColourTheme?.value === GeneralHeroColourTheme.white;\n const [responsiveLottie, setResponsiveLottie] = useState(lottieDesktop);\n\n useEffect(() => {\n const handleResize = () => {\n setResponsiveLottie(window.innerWidth <= 768 ? lottieMobile : lottieDesktop);\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return (\n
    \n
    \n \n
    \n {Eyebrow && (\n
    \n \n
    \n )}\n
    \n \n
    \n {AccentColor?.value && (\n \n )}\n \n \n
    \n {LinkURL?.value?.text && LinkURL?.value?.href && (\n
    \n \n
    \n )}\n
    \n
    \n\n \n \n \n\n {responsiveLottie ? (\n
    \n \n
    \n ) : (\n withImage && (\n
    \n \n
    \n )\n )}\n \n \n );\n};\n\nGeneralHero.propTypes = {\n fields: PropTypes.exact({\n Title: PropTypes.shape({\n value: PropTypes.string,\n }),\n Image: PropTypes.shape({\n value: PropTypes.object,\n }),\n PdfImage: PropTypes.shape({\n value: PropTypes.object,\n }),\n LottieAnimationDesktop: PropTypes.shape({\n value: PropTypes.object,\n }),\n LottieAnimationMobile: PropTypes.shape({\n value: PropTypes.object,\n }),\n\n ColourTheme: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(GeneralHeroColourTheme)).isRequired,\n }),\n AccentColor: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(ArticleHeroAccentColorEnum)).isRequired,\n }),\n Description: PropTypes.shape({\n value: PropTypes.string,\n }),\n Eyebrow: PropTypes.shape({\n value: PropTypes.string,\n }),\n LinkText: PropTypes.shape({\n value: PropTypes.string,\n }),\n LinkURL: PropTypes.shape({\n value: PropTypes.string,\n }),\n LinkTarget: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(LinkTargetEnum)).isRequired,\n }),\n LinkAltText: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n};\n\nexport default withErrorBoundary([ErrorBoundaryConditions.fields])(GeneralHero);\n\nexport const GeneralHeroStorybook = forStorybook(GeneralHero);\n","import React from 'react';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport GeneralHero from '../GeneralHero/GeneralHero.jsx';\n\nconst ExpertiseHero = ({ sitecoreContext, fields }) => {\n const { Name, Overview } = sitecoreContext?.route?.fields;\n return (\n
    \n \n
    \n );\n};\n\nconst ExpertiseHeroSitecore = withSitecoreContext()(ExpertiseHero);\nexport default ExpertiseHeroSitecore;\nexport const ExpertiseHeroStorybook = forStorybook(ExpertiseHeroSitecore);\n","import React, { useState, useRef } from 'react';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport { ChevronDown, ChevronUp } from '../../assets/LinkIcons.js';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\n\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\n\nimport './expertise-page-links.scss';\nimport { ButtonVariantEnum, ThemeEnum } from '../../utils/enums.js';\n\nconst ExpertisePageLinks = ({ sitecoreContext, fields, expertisePageLinks }) => {\n const [setActive, setActiveState] = useState(false);\n const [setHeight, setHeightState] = useState('0px');\n const dropdownContent = useRef(null);\n const toggleLinks = () => {\n setActiveState(!setActive ? true : false);\n setHeightState(setActive ? '0px' : `${dropdownContent.current.scrollHeight}px`);\n };\n\n const expPageLinks = 'zn-expertise-page-links';\n\n const { LinkURL, Description, ExpandText, CollapseText } = fields;\n return (\n
    \n
    \n \n
    \n
    \n \n
    \n {ExpandText?.value && (\n \n \n {setActive ? CollapseText?.value : ExpandText?.value}\n
    \n \n {setActive ? : }\n \n \n )}\n \n
      {expertisePageLinks}
    \n \n \n );\n};\n\nconst ExpertisePageLinksSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields])(ExpertisePageLinks)\n);\nexport const ExpertisePageLinksStorybook = forStorybookV2(ExpertisePageLinksSitecore);\nexport default withPlaceholder('expertisePageLinks')(ExpertisePageLinksSitecore);\n","import React from 'react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport './expertise-page-links-container.scss';\n\nconst expPageLinks = 'zn-expertise-page-links-container';\n\nconst LinksRow = ({ left, right }) => {\n return (\n
    \n {left}\n {right}\n
    \n );\n};\n\nconst ExpertisePageLinksContainer = ({ expertisePageLinksComponents, sitecoreContext }) => {\n const isEditing = sitecoreContext?.pageEditing;\n const mobileElements = [];\n const desktopElements = [];\n\n if (expertisePageLinksComponents) {\n for (let index in expertisePageLinksComponents) {\n const bgColor = index % 2 === 0 ? '__white' : '__gray';\n mobileElements.push(\n
    \n {expertisePageLinksComponents[index]}\n
    \n );\n }\n\n for (let index = 1; index < expertisePageLinksComponents.length; index += 2) {\n desktopElements.push(\n \n );\n desktopElements.push(\n
    \n
    \n
    \n
    \n );\n }\n\n if (expertisePageLinksComponents.length % 2 === 1) {\n desktopElements.push(\n }\n />\n );\n desktopElements.push(\n
    \n
    \n \n
    \n );\n }\n }\n\n return (\n
    \n {/* Only one of __desktop and __mobile will render, determined by CSS */}\n {!isEditing && (\n
    {desktopElements}
    \n )}\n\n {!isEditing && (\n
    {mobileElements}
    \n )}\n\n {isEditing && (\n
      \n {expertisePageLinksComponents}\n
    \n )}\n
    \n );\n};\n\nconst ExpertisePageLinksContainerSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields])(ExpertisePageLinksContainer)\n);\nexport const ExpertisePageLinksContainerStorybook = forStorybookV2(\n ExpertisePageLinksContainerSitecore\n);\nexport default withPlaceholder('expertisePageLinksComponents')(ExpertisePageLinksContainerSitecore);\n","/* eslint-disable prettier/prettier */\nimport React from 'react';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\n\nimport classnames from 'classnames';\n\nimport './expertise-page-links-item.scss';\nimport { ButtonVariantEnum, ThemeEnum } from '../../utils/enums.js';\n\nconst ExpertisePageLinksItem = ({ fields }) => {\n\n const expPageLinksItem = 'zn-expertise-page-links-item';\n\n const {\n LinkURL,\n } = fields;\n\n return (\n
    \n \n
    \n );\n};\n\nexport default ExpertisePageLinksItem;\n","import React, { useEffect } from 'react';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport { Image as Img, RichText } from '@sitecore-jss/sitecore-jss-react';\nimport { LinkTargetValueEnum, FeaturedContentImageDisplayEnum } from '../../utils/enums.js';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport { withTranslation } from 'react-i18next';\nimport './featured-content.scss';\nimport { setAnimationInterObserver } from '../../utils/observers.jsx';\n\nconst featuredContent = 'zn-featured-content';\n\nconst FeaturedContent = ({ sitecoreContext, fields, params, t }) => {\n const { data } = fields;\n const { ColorTheme, ImageDisplay, EnableAnimation } = params;\n const CTAText = data?.datasource?.cTAText || '';\n const CTAAltText = data?.datasource?.cTAAltText || '';\n const DescriptionOverride = data?.datasource?.descriptionOverride || '';\n const Image = data?.datasource?.imageOverride?.src\n ? data?.datasource?.imageOverride\n : data?.datasource?.contentURL?.targetItem?.teaserImage;\n const PageLink = data?.datasource?.contentURL?.targetItem || '';\n const teaserTitle = PageLink?.teaserTitle;\n const teaserDescription = PageLink?.teaserDescription;\n const Description = DescriptionOverride?.value ? DescriptionOverride : teaserDescription;\n const isEditing = sitecoreContext.pageEditing;\n const withImage =\n Image?.src && ImageDisplay !== FeaturedContentImageDisplayEnum.hideImage ? true : false;\n const animationEnabled = EnableAnimation && !isEditing;\n\n useEffect(() => {\n if (animationEnabled) {\n const selector = `.${featuredContent} .fadeIn`;\n const newClass = 'fadeInActive';\n // Adds the class that activates the animation whenever the components are in the view\n setAnimationInterObserver(selector, newClass);\n }\n }, []);\n\n return (\n (PageLink || isEditing) && (\n \n {withImage && (\n \n \n
    \n )}\n \n
    \n {data?.datasource?.titleOverride?.value && PageLink ? (\n \n ) : (\n \n )}\n {!PageLink && isEditing && t('NoPageLinkSet')}\n
    \n
    \n \n
    \n \n
    \n
    \n )\n );\n};\n\nconst FeaturedContentSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields, ErrorBoundaryConditions.params])(\n FeaturedContent\n )\n);\nexport const FeaturedContentStorybook = forStorybookV2(FeaturedContentSitecore);\nexport default withTranslation()(FeaturedContentSitecore);\n","import React from 'react';\nimport { Link, RichText } from '@sitecore-jss/sitecore-jss-react';\n\nconst FooterLinkList = ({ columnTitle, links }) => {\n return (\n
    \n \n
      \n {Array.isArray(links?.targetItems) &&\n links?.targetItems.map((link, index) => (\n
    • \n \n
    • \n ))}\n
    \n
    \n );\n};\n\nexport default FooterLinkList;\n","import React from 'react';\nimport { Link, RichText } from '@sitecore-jss/sitecore-jss-react';\nimport SocialMediaLinks from '../SocialMediaLinks/SocialMediaLinks.jsx';\nimport '../Footer/footer.scss';\n\nconst FooterContactBar = ({ legalText, legalLinks, socialMediaLinks, params }) => {\n return (\n
    \n
    \n
    \n
    \n
    \n \n
    \n
      \n {Array.isArray(legalLinks?.targetItems) &&\n legalLinks?.targetItems.map((link, index) => {\n return (\n
    • \n \n
    • \n );\n })}\n
    \n
    \n
    \n {socialMediaLinks && (\n \n )}\n
    \n
    \n
    \n );\n};\n\nexport default FooterContactBar;\n","import React from 'react';\nimport Text from '../Text';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport { ThemeEnum, ButtonVariantEnum } from '../../utils/enums.js';\nimport '../Footer/footer.scss';\n\nconst FooterTeaser = ({ title, description, buttonLink, pageEditing }) => {\n return (\n
    \n \n {(buttonLink?.value?.text || pageEditing) && (\n \n )}\n \n
    \n );\n};\n\nexport default FooterTeaser;\n","import React, { useEffect, useState } from 'react';\nimport { Link, Image, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport FooterLinkList from '../FooterLinkList/FooterLinkList.jsx';\nimport FooterContactBar from '../FooterContactBar/FooterContactBar.jsx';\nimport FooterTeaser from '../FooterTeaser/FooterTeaser.jsx';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport withErrorBoundary from '../../utils/withErrorBoundary.jsx';\nimport { ThemeEnum } from '../../utils/enums';\nimport './footer.scss';\n\nconst Footer = ({ sitecoreContext, fields, params }) => {\n const columns = fields?.data?.datasource?.columns?.targetItems;\n const footerContactBar = fields?.data?.datasource?.footerContactBar?.targetItem;\n const footerTeaser = fields?.data?.datasource?.footerTeaser?.targetItem;\n const pageEditing = sitecoreContext?.pageEditing;\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n return (\n !pdfView && (\n
    \n
    \n
    \n
    \n \n \n \n
    \n {Array.isArray(columns) &&\n columns.map((column, index) => (\n \n ))}\n \n
    \n \n
    \n
    \n )\n );\n};\n\nconst FooterSitecore = withSitecoreContext()(withErrorBoundary()(Footer));\nexport const FooterStorybook = forStorybookV2(FooterSitecore);\nexport default FooterSitecore;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { ChevronDown, ChevronUp } from '../../assets/LinkIcons.js';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport './footnotes.scss';\n\nconst Footnotes = ({ sitecoreContext, fields, footnotes }) => {\n const { FootnotesTitle } = fields;\n const [setActive, setActiveState] = useState(false);\n const [setHeight, setHeightState] = useState('0px');\n const content = useRef(null);\n const footnotesBlock = 'zn-footnotes';\n\n const toggleFootnotes = () => {\n setActiveState(!setActive ? true : false);\n setHeightState(setActive ? '0px' : `${content.current.scrollHeight}px`);\n };\n\n return (\n
    \n {sitecoreContext.pageEditing && (\n

    Footnotes Editor View

    \n )}\n \n \n
      {footnotes}
    \n
    \n \n );\n};\n\nPropTypes.propTypes = {\n fields: PropTypes.exact({\n FootnotesTitle: PropTypes.shape({\n value: PropTypes.string,\n }),\n Footnotes: PropTypes.array,\n }),\n};\n\nconst FootnotesWithContext = withSitecoreContext()(Footnotes);\n\nexport const FootnotesStorybook = forStorybook(FootnotesWithContext);\n\nexport default withPlaceholder('footnotes')(FootnotesWithContext);\n","import React from 'react';\nimport classnames from 'classnames';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\n\nimport '../Footnotes/footnotes.scss';\nimport './footnotes-item.scss';\nimport '../RichText/rich-text.scss';\n\nconst FootnotesItem = ({ fields }) => {\n const { ReferenceText, ReferenceID } = fields;\n const footnotesItemBlock = 'zn-footnotes-item';\n\n return (\n
  • \n {ReferenceID?.value ? (\n \n ) : (\n
    \n )}\n \n \n \n
  • \n );\n};\nexport const FootnotesItemStorybook = forStorybook(FootnotesItem);\n\nexport default FootnotesItem;\n","import React, { useState, useRef, useEffect } from 'react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport { SearchBarIcon } from '../../assets/common.js';\nimport { withTranslation } from 'react-i18next';\nimport { Button } from '../Button/Button.js';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { parsePageTitle } from '../../utils/pageTitleGenerator.js';\nimport AutofillSearchResult from '../AutofillSearchResult/AutofillSearchResult.jsx';\nimport { scoreSortBy } from '../../utils/constants.js';\nimport { fetchResults, fetchTagIds } from '../../actions';\nimport { SearchResultTypeEnum } from '../../utils/enums.js';\nimport '../SearchBar/search-bar.scss';\nimport { formatSearchParams, mapDisplayTypeToTemplate } from '../../utils/searchHelpers.jsx';\nimport {\n templateNameCondition,\n tagNameCondition,\n tagIdentifierCondition,\n} from '../../utils/constants';\nimport classNames from 'classnames';\n\nconst generalLandingSeachBarBlock = 'zn-search-bar';\n\nconst GeneralLandingSearchBar = ({ t, sitecoreContext, fields }) => {\n const { SearchResultsPage, ContentTypes, Tags, SearchPromptOverride } = fields;\n const pageName = sitecoreContext?.route?.displayName || '';\n const serviceName = sitecoreContext?.route?.fields?.ServiceName?.value || '';\n const encodedServiceName = encodeURIComponent(serviceName);\n const isEditing = sitecoreContext?.pageEditing;\n const [searchParams, setSearchParams] = useState('');\n const formattedPageName = parsePageTitle(pageName);\n const [autofillResults, setAutofillResults] = useState([]);\n const [tagConditions, setTagConditions] = useState([]);\n const [templateConditions, setTemplateConditions] = useState([]);\n\n const autoloadSuggestionsRef = useRef(null);\n const searchInputRef = useRef(null);\n\n let templates = ContentTypes ? ContentTypes?.map((item) => item.name).join() : [];\n let templatesArray = ContentTypes ? ContentTypes?.map((item) => item.name) : [];\n\n let tagsNames = Tags\n ? Tags?.map((tag) =>\n encodeURIComponent(\n tag?.fields?.Identifier?.value ? tag?.fields?.Identifier?.value : ''\n )\n )\n : [];\n let tagsNamesNonEncoded = Tags\n ? Tags?.map((tag) => (tag?.fields?.Identifier?.value ? tag?.fields?.Identifier?.value : ''))\n : [];\n const handleSearchParams = (e) => {\n setSearchParams(e.target.value);\n autoloadSuggestionsRef.current.style.display = 'block';\n };\n\n const submitForm = (event) => {\n event.preventDefault();\n let searchCondition = `q=${encodeURIComponent(searchParams)}`;\n if (encodedServiceName && tagsNames?.length > 0)\n searchCondition += `&tags=${encodedServiceName},${tagsNames.join()}`;\n else if (encodedServiceName) searchCondition += `&tags=${encodedServiceName}`;\n else if (tagsNames?.length > 0) searchCondition += `&tags=${tagsNames?.join()}`;\n\n if (templates) searchCondition += `&contenttype=${templates}`;\n\n window.location.href = `${SearchResultsPage?.url.split('?')[0]}?${searchCondition}`;\n };\n\n const performSearch = () => {\n let titleCondition = [\n {\n group: [\n { name: '_name', value: `${searchParams}`, useor: true },\n { name: '_displayname', value: `${searchParams}`, useor: true },\n ],\n },\n ];\n let queryConditions = tagConditions.concat(templateConditions, titleCondition);\n let facets = []; //no facetting\n let page = '0';\n let orderBy = 'score'; //order by relevancy\n let sortDescending = true; //sort results in descending order\n let excludeIds = ['']; //no exluding ids\n let keyword = ''; //not matching on any keywords\n let includeBioPageOnlyExclusion = true; //include condition to exclude items that are listed as Bio Page Only\n fetchResults(\n queryConditions,\n facets,\n 4, //get max 4 items\n page,\n orderBy,\n sortDescending,\n excludeIds,\n keyword,\n includeBioPageOnlyExclusion\n )\n .then((x) => {\n setAutofillResults(x.results);\n })\n .catch(() => {\n setAutofillResults([]);\n });\n };\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (searchParams !== '') {\n performSearch();\n } else {\n setAutofillResults([]);\n }\n }, 400);\n return () => clearTimeout(timer);\n }, [searchParams]);\n\n useEffect(() => {\n document.addEventListener('click', (e) => {\n const suggestedResults = document.getElementsByClassName(\n 'zn-search-bar__suggested-results'\n )[0];\n const searchInputBar = document.getElementsByClassName('zn-search-bar__form-input')[0];\n\n let targetElement = e.target;\n do {\n if (targetElement == suggestedResults || targetElement == searchInputBar) {\n return;\n }\n targetElement = targetElement.parentNode;\n } while (targetElement);\n if (autoloadSuggestionsRef.current)\n autoloadSuggestionsRef.current.style.display = 'none';\n });\n }, []);\n\n function searchKeyBoard(event) {\n if (event.keyCode == 13) {\n event.target.blur();\n }\n }\n\n useEffect(() => {\n searchInputRef?.current?.addEventListener('keypress', searchKeyBoard);\n return function cleanup() {\n searchInputRef?.current?.removeEventListener('keypress', searchKeyBoard);\n };\n }, []);\n\n useEffect(() => {\n const tagIdConditionsArray = tagsNamesNonEncoded\n .concat(serviceName)\n .map((item) => formatSearchParams(tagIdentifierCondition, item));\n fetchTagIds(tagIdConditionsArray?.flat(), [], 100, '0', scoreSortBy, true, [''], '')\n .then((x) => {\n //set the tag and template search conditions for the autofill search results to use\n const tagSearchConditions =\n x.results.length > 0\n ? [\n {\n group: x.results.map((item) =>\n formatSearchParams(tagNameCondition, item?.id?.toLowerCase())\n ),\n },\n ]\n : [];\n setTagConditions(tagSearchConditions);\n const templateTypesConditions =\n templatesArray?.length > 0\n ? [\n {\n group: mapDisplayTypeToTemplate(templatesArray).map((item) =>\n formatSearchParams(templateNameCondition, item)\n ),\n },\n ]\n : [];\n setTemplateConditions(templateTypesConditions);\n })\n .catch(() => {});\n }, []);\n\n const placeholderText = SearchPromptOverride?.value\n ? SearchPromptOverride?.value\n : `${t('Search')} ${formattedPageName}`;\n\n return (\n
    \n {(isEditing || SearchResultsPage?.url) && (\n
    \n
    \n {\n if (autoloadSuggestionsRef.current)\n autoloadSuggestionsRef.current.style.display = 'block';\n }}\n >\n \n \n \n \n \n {autofillResults?.length > 0 && (\n \n {autofillResults.map((result, index) => {\n if (result?.item) {\n result.fields = {\n Title:\n result?.templateName ===\n SearchResultTypeEnum.biopage\n ? {\n value: `${result?.item?.firstName?.value} ${result?.item?.middleName?.value} ${result?.item?.lastName?.value}`,\n }\n : { value: result?.item?.teaserTitle?.value },\n Image:\n result?.templateName ===\n SearchResultTypeEnum.biopage\n ? { value: result?.item?.profileImage }\n : {},\n ResultType: { value: result?.templateName },\n LinkUrl:\n result?.item?.notNavigatable?.value === '1'\n ? {}\n : { value: result?.item?.url },\n };\n return (\n \n \n \n );\n }\n })}\n \n )}\n
    \n
    \n )}\n {isEditing && !SearchResultsPage?.url && (\n
    \n No Search Results page chosen, please select search page to redirect to.\n
    \n )}\n \n );\n};\n\nconst GeneralLandingSearchBarWithTranslation = withTranslation()(GeneralLandingSearchBar);\n\nconst GeneralLandingSearchBarSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields])(GeneralLandingSearchBarWithTranslation)\n);\n\nexport const GeneralLandingSearchBarStorybook = forStorybookV2(GeneralLandingSearchBarSitecore);\n\nexport default GeneralLandingSearchBarSitecore;\n","import React from 'react';\nimport classnames from 'classnames';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport paramToBool from '../../utils/paramToBool.js';\nimport './grid.scss';\n\nconst Grid = ({ grid, params, style, sitecoreContext }) => {\n const { ReverseColumns } = params;\n //check all column grid children of grid - if their placeholders are empty do NOT show the grid\n let emptyColumns = grid.filter(\n (item) => item?.props?.rendering?.placeholders?.column?.length == 0\n );\n\n let emptyGrid = emptyColumns?.length == grid?.length; //if the grid only contains empty columns, do not show the component\n\n return (\n (sitecoreContext?.pageEditing || !emptyGrid) && (\n \n {grid}\n \n )\n );\n};\n\nexport const GridPlaceholder = withSitecoreContext()(withPlaceholder('grid')(Grid));\nexport const GridStorybook = forStorybook(Grid);\nexport default GridPlaceholder;\n","/* eslint-disable prettier/prettier */\nimport React, { useEffect } from 'react';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport { Image as Img, RichText } from '@sitecore-jss/sitecore-jss-react';\nimport Lottie from 'react-lottie';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport forStorybookV2 from '../../utils/forStorybook.jsx';\nimport { withTranslation } from 'react-i18next';\nimport classnames from 'classnames';\n\nimport './homepage-hero.scss';\nimport {\n ButtonVariantEnum,\n HomepageHeroAccentColorEnum,\n HomepageHeroBackgroundColorEnum,\n ThemeEnum,\n LinkTargetValueEnum,\n} from '../../utils/enums.js';\nimport { setAnimationInterObserver } from '../../utils/observers.jsx';\n\nconst homepageHero = 'zn-homepage-hero';\n\nconst HomepageHero = ({ t, fields, params, sitecoreContext }) => {\n const {\n PageURL,\n Title,\n EyebrowLeft,\n EyebrowRight,\n ImageDesktop,\n ImageMobile,\n Description,\n CTAText,\n CTAAltText,\n LottieAnimationDesktop,\n LottieAnimationMobile,\n } = fields;\n\n const {\n BackgroundColor,\n AccentColor,\n CustomBackground,\n CustomBackgroundLightness,\n EnableAnimation,\n } = params;\n\n const lottieDesktop = LottieAnimationDesktop?.value?.src;\n const lottieMobile = LottieAnimationMobile?.value?.src || lottieDesktop;\n const animationEnabled = EnableAnimation && !sitecoreContext?.pageEditing;\n\n useEffect(() => {\n if (animationEnabled) {\n // Scroll fade up reveal\n const fadeUpSelector = `.${homepageHero} .fadeIn`;\n const fadeUpClass = 'fadeInActive';\n // Scroll reveal\n const scrollSelector = `.${homepageHero} .expandDown`;\n const scrollClass = 'expandDownActive';\n // Heading reveal\n const headingRevealSelector = `.${homepageHero} .headingFadeIn`;\n const headingRevealClass = 'headingFadeInActive';\n // Headding accent\n const headingAccentSelector = `.${homepageHero} .expandRight`;\n const headingAccentClass = 'expandRightActive';\n // Adds the class that activates the animation whenever the components are in the view\n setAnimationInterObserver(fadeUpSelector, fadeUpClass);\n setAnimationInterObserver(scrollSelector, scrollClass);\n setAnimationInterObserver(headingRevealSelector, headingRevealClass);\n setAnimationInterObserver(headingAccentSelector, headingAccentClass);\n }\n }, []);\n\n return (\n \n
    \n {sitecoreContext.pageEditing &&

    Desktop Image

    }\n\n {lottieDesktop ? (\n \n \n
    \n ) : (\n \n )}\n\n {sitecoreContext.pageEditing &&

    Mobile Image

    }\n {lottieMobile ? (\n \n \n \n ) : (\n \n )}\n \n
    \n {EyebrowLeft?.value || EyebrowRight?.value ? (\n \n {EyebrowLeft?.value && }\n {EyebrowLeft?.value && EyebrowRight?.value && (\n
    \n )}\n {EyebrowRight?.value && }\n
    \n ) : null}\n \n \n \n \n \n \n \n
    \n \n
    \n \n \n \n {t('Scroll')}\n

    \n \n \n );\n};\n\nconst HomepageHeroSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields, ErrorBoundaryConditions.params])(\n HomepageHero\n )\n);\nexport const HomepageHeroStorybook = forStorybookV2(HomepageHeroSitecore);\nexport default withTranslation()(HomepageHeroSitecore);\n","import React, { useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { SocialShare } from '../../assets/LinkIcons.js';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { ThemeEnum } from '../../utils/enums';\nimport './icon-dropdown.scss';\nimport { withTranslation } from 'react-i18next';\n\nconst handleClick = (e) => {\n let popupElement = e.target.previousSibling;\n popupElement.focus();\n let compStyles = window.getComputedStyle(popupElement);\n let height = parseInt(compStyles.getPropertyValue('height'));\n let halfMax = height / 2;\n let vpOffset = e.target.getBoundingClientRect();\n let topOffset = vpOffset.top;\n let bottomOffset = window.innerHeight - vpOffset.bottom;\n\n if (topOffset < halfMax && bottomOffset > halfMax) {\n popupElement.style.top = `-${topOffset}px`;\n popupElement.style.bottom = '';\n } else if (topOffset > halfMax && bottomOffset < halfMax) {\n popupElement.style.bottom = `-${bottomOffset}px`;\n popupElement.style.top = '';\n } else {\n popupElement.style.top = `-${halfMax - vpOffset.height / 2}px`;\n }\n};\n\nconst IconDropdown = ({ sitecoreContext, fields, socialmedia, t }) => {\n const { Theme, DisplayRightOnMobile } = fields;\n const [socialOpen, setSocialOpen] = useState(false);\n const iconDropdownBlock = 'zn-icon-dropdown';\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n useEffect(() => {\n const escFunction = (event) => {\n if (event?.key === 'Escape') {\n setSocialOpen(false);\n }\n };\n\n window.addEventListener('keydown', escFunction);\n\n return () => {\n window.removeEventListener('keydown', escFunction);\n };\n }, []);\n\n return (\n !pdfView && (\n \n \n \n {socialmedia}\n \n \n {(socialOpen || sitecoreContext.pageEditing) && (\n \n )}\n {\n setSocialOpen(!socialOpen);\n handleClick(e);\n }}\n >\n
    \n {t('Share')}\n \n
    \n \n \n )\n );\n};\n\nconst IconDropdownWithContext = withTranslation()(withSitecoreContext()(IconDropdown));\n\nexport const IconDropdownStorybook = forStorybook(IconDropdownWithContext);\n\nexport default withPlaceholder('socialmedia')(IconDropdownWithContext);\n","import React from 'react';\nimport classnames from 'classnames';\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport paramToBool from '../../utils/paramToBool.js';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport './image.scss';\n\nconst Image = ({ fields, params, sitecoreContext }) => {\n const { Image, Caption, ShowInPdf } = fields;\n const { FillSpace, FieldNameImage, FieldNameCaption } = params;\n const contextFields = sitecoreContext?.route?.fields;\n\n const caption = FieldNameCaption ? contextFields?.[FieldNameCaption] : Caption;\n const image = FieldNameImage ? contextFields?.[FieldNameImage] : Image;\n const imageBlock = 'zn-image';\n const fillSpaceBool = paramToBool(FillSpace);\n const showInPDF = paramToBool(ShowInPdf?.value);\n\n return image?.value?.src || sitecoreContext?.pageEditing ? (\n \n {sitecoreContext?.pageEditing &&
    Image Editing Mode
    }\n \n {image?.value?.alt}\n \n {(caption?.value || sitecoreContext?.pageEditing) && (\n
    \n \n
    \n )}\n \n ) : (\n <>\n );\n};\n\nexport const ImageSitecore = withSitecoreContext()(Image);\nexport const ImageSitecoreStorybook = forStorybookV2(ImageSitecore);\nexport default withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n ImageSitecore\n);\n","import React, { useEffect } from 'react';\nimport classnames from 'classnames';\nimport './in-page-navigation-item.scss';\nimport Text from '../Text/Text.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nexport const InPageNavigationItem = ({\n changeTitle,\n changeDropdown,\n changeCurrent,\n fields,\n sectionIds,\n sitecoreContext,\n}) => {\n const inPageNavigationItemBlock = 'zn-in-page-navigation-item';\n const { SectionName, SectionID } = fields;\n const toggle = () => {\n changeTitle(SectionName?.value);\n changeDropdown();\n changeCurrent(SectionID?.value);\n };\n\n useEffect(() => {\n const section = document.getElementById(SectionID?.value);\n // Adds extra scroll margin for the stacking navs\n section?.classList.add('zn-section--in-page-nav-current');\n }, []);\n\n return (\n x.id === SectionID?.value && x.display !== 'none'\n ) || sitecoreContext?.pageEditing\n ? { display: 'inline-block' }\n : { display: 'none' }\n }\n >\n \n \n \n \n );\n};\n\nexport default withSitecoreContext()(InPageNavigationItem);\n","import React, { useEffect, useState, useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport './in-page-navigation.scss';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport InPageNavigationItem from '../InPageNavigationItem/InPageNavigationItem.jsx';\nimport { LinkTargetEnum, ThemeEnum } from '../../utils/enums';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { ChevronRightNav, ChevronLeftNav, ChevronDown, ChevronUp } from '../../assets/LinkIcons.js';\n\nexport const InPageNavigation = ({\n fields,\n sitecoreContext,\n dropdown,\n pageSections,\n rendering,\n}) => {\n const inPageNavigationBlock = 'zn-in-page-navigation';\n const { PageTitle, LinkURL } = fields;\n const [scrolledToEnd, setScrolledToEnd] = useState(false);\n const [scrolledToStart, setScrolledToStart] = useState(true);\n const [setActive, setActiveState] = useState(false);\n const [clickedSection, setClickedSection] = useState('');\n const [setMobileTitle, setMobileTitleState] = useState('');\n const [sectionIds, setSectionIds] = useState([]);\n const observerRef = useRef();\n const sectionRef = useRef(clickedSection);\n const navRef = useRef(null);\n const navListRef = useRef(null);\n const contentRef = useRef(null);\n const desktopContentRef = useRef(null);\n\n const toggleDropdown = () => {\n setActiveState(!setActive ? true : false);\n };\n\n const toggleTitle = (mobileTitle) => {\n setMobileTitleState(mobileTitle);\n };\n\n const toggleCurrentPressed = (currentSection) => {\n setClickedSection(currentSection);\n };\n\n const getContentWidth = () => {\n const { scrollWidth: listTotalWidth } = navListRef.current;\n const { offsetWidth: contentWidth } = contentRef.current;\n const { offsetWidth: titleWidth } = desktopContentRef.current;\n\n return {\n width: contentWidth - titleWidth,\n isOverflow: contentWidth - titleWidth < listTotalWidth,\n };\n };\n\n const scrollLeft = () => {\n navListRef.current.scrollLeft = 0;\n };\n\n const scrollRight = () => {\n navListRef.current.scrollLeft = 10000000;\n };\n\n const useCurrentWidth = () => {\n const [contentWidth, setContentWidth] = useState({});\n\n useEffect(() => {\n setTimeout(() => setContentWidth(getContentWidth()), 150);\n let timeoutId = null;\n const resizeListener = () => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => setContentWidth(getContentWidth()), 150);\n };\n window.addEventListener('resize', resizeListener);\n\n return () => {\n window.removeEventListener('resize', resizeListener);\n };\n }, [sitecoreContext?.itemId]);\n\n return contentWidth;\n };\n let widthArray = useCurrentWidth();\n\n const options = {\n rootMargin: '-30% 0px -70%',\n threshold: 0,\n };\n\n const callback = useCallback(\n (entries) => {\n let content = document.getElementsByClassName('zn-section');\n let viewportOffset = navRef.current?.getBoundingClientRect();\n\n if (!sitecoreContext.pageEditing) {\n entries.forEach((entry) => {\n const selectedId = entry.target.getAttribute('id');\n if (sectionRef.current === '' || selectedId === sectionRef.current) {\n if (entry.isIntersecting) {\n const title = document.querySelector(\n `nav ul li a[href=\"#${selectedId}\"]`\n );\n\n title?.parentElement.classList.add('current');\n\n if (title?.innerText) {\n setMobileTitleState(title?.innerText);\n } else {\n setMobileTitleState(PageTitle?.value);\n }\n\n Array.from(content).forEach((section) => {\n const id = section.id;\n if (id !== selectedId) {\n document\n .querySelector(`nav ul li a[href=\"#${id}\"]`)\n ?.parentElement.classList.remove('current');\n }\n });\n if (\n navListRef.current.scrollLeft +\n navListRef.current.clientWidth -\n 64 -\n (document.querySelector(`nav ul li a[href=\"#${selectedId}\"]`)\n ?.parentElement.offsetLeft +\n document.querySelector(`nav ul li a[href=\"#${selectedId}\"]`)\n ?.parentElement.offsetWidth) <\n 0 ||\n navListRef.current.scrollLeft +\n navListRef.current.clientWidth -\n document.querySelector(`nav ul li a[href=\"#${selectedId}\"]`)\n ?.parentElement.offsetLeft >\n navListRef.current.clientWidth\n )\n setTimeout(function () {\n navListRef.current.scrollLeft =\n document.querySelector(`nav ul li a[href=\"#${selectedId}\"]`)\n ?.parentElement.offsetLeft - 64;\n }, 500);\n } else {\n if (viewportOffset?.top === 0) {\n document\n .querySelector(`nav ul li a[href=\"#${selectedId}\"]`)\n ?.parentElement.classList.remove('current');\n }\n }\n setClickedSection('');\n }\n });\n }\n },\n [sitecoreContext?.itemId]\n );\n\n const scrollSetup = () => {\n let scrollLeft = navListRef.current.scrollLeft;\n let scrollWidth = navListRef.current.scrollWidth;\n let offsetWidth = navListRef.current.offsetWidth;\n let contentWidth = scrollWidth - offsetWidth;\n if (contentWidth - 2 <= scrollLeft) {\n setScrolledToEnd(true);\n } else if (scrollLeft === 0) {\n setScrolledToStart(true);\n } else {\n setScrolledToEnd(false);\n setScrolledToStart(false);\n }\n };\n\n useEffect(() => {\n const html = document.querySelector('html');\n html.classList.add('zn-scroll-padding');\n let content = document.getElementsByClassName('zn-section');\n let inPageNavItems = document.getElementsByClassName(`zn-in-page-navigation-item`);\n Array.from(inPageNavItems).forEach((inPageNavItem) => {\n inPageNavItem.classList.remove('current');\n });\n inPageNavItems[0].classList.add('current');\n observerRef.current = new IntersectionObserver(callback, options);\n\n Array.from(content).forEach((section) => {\n observerRef.current.observe(section);\n });\n\n navListRef.current.addEventListener('scroll', scrollSetup);\n setSectionIds(\n Array.from(content).map((section) => ({\n id: section.id,\n display: section.style.display,\n }))\n );\n setMobileTitleState(PageTitle?.value);\n\n return () => {\n document.querySelector('html').classList.remove('zn-scroll-padding');\n navListRef.current.removeEventListener('scroll', scrollSetup);\n Array.from(content).forEach((section) => {\n observerRef.current.unobserve(section);\n });\n };\n }, [sitecoreContext?.itemId]);\n\n useEffect(() => {\n sectionRef.current = clickedSection;\n }, [clickedSection]);\n\n useEffect(() => {\n if (!sitecoreContext?.pageEditing) {\n for (let j = 0; j < rendering?.placeholders?.pageSections?.length; j++) {\n if (\n sectionIds?.find(\n (x) =>\n x.id ===\n rendering?.placeholders?.pageSections[j]?.fields?.SectionID\n ?.value && x.display !== 'none'\n )\n ) {\n document\n .querySelector(\n `nav ul li a[href=\"#${rendering?.placeholders?.pageSections[j]?.fields?.SectionID?.value}\"]`\n )\n ?.parentElement.classList.add('current');\n break;\n }\n }\n }\n setClickedSection(sectionIds[0]?.id);\n }, [sectionIds]);\n\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, [sitecoreContext?.itemId]);\n\n return (\n !pdfView && (\n \n
    \n \n \n
    \n {PageTitle?.value}\n
    \n {widthArray.isOverflow && (\n \n {\n scrollLeft();\n }}\n style={{\n display: scrolledToStart ? `none` : 'block',\n }}\n >\n \n \n
    \n )}\n \n \n
    \n {setMobileTitle}\n
    \n\n
    \n {!setActive ? : }\n
    \n \n
    \n
    \n )}\n \n \n \n
    \n
    \n {widthArray.isOverflow && (\n \n {\n scrollRight();\n }}\n style={{\n display: scrolledToEnd ? `none` : 'block',\n }}\n >\n \n \n
    \n )}\n
    \n \n {dropdown}\n \n {LinkURL?.value?.text && LinkURL?.value?.href && (\n
    \n \n
    \n )}\n \n \n \n )\n );\n};\n\nInPageNavigation.propTypes = {\n fields: PropTypes.shape({\n PageTitle: PropTypes.shape({\n value: PropTypes.string,\n }),\n PageSections: PropTypes.array,\n LinkText: PropTypes.shape({\n value: PropTypes.string,\n }),\n LinkURL: PropTypes.shape({\n value: PropTypes.string,\n }),\n LinkTarget: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(LinkTargetEnum)).isRequired,\n }),\n LinkAltText: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n};\n\nconst InPageNavigationWithContext = withSitecoreContext()(InPageNavigation);\n\nexport const InPageNavigationStorybook = forStorybook(InPageNavigationWithContext);\n\nexport default withPlaceholder(['pageSections', 'dropdown'])(\n withErrorBoundary([ErrorBoundaryConditions.fields])(InPageNavigationWithContext)\n);\n","import React from 'react';\nimport classnames from 'classnames';\nimport { ArrowRight } from '../../assets/LinkIcons.js';\nimport '../ButtonLink/button-link.scss';\nimport './interactive-map-popup.scss';\n\nconst InteractiveMapPopup = ({\n icon,\n title,\n tags,\n ctaText,\n notNavigatable,\n disableMapCTA,\n url,\n}) => {\n const interMapPopupBlock = 'zn-interactive-map-popup';\n const nonNavigable = notNavigatable === 'True' || disableMapCTA === 'True';\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    {tags}
    \n {ctaText?.value && !nonNavigable && (\n
    \n \n {ctaText?.value}\n \n \n
    \n \n
    \n )}\n \n \n );\n};\n\nexport default InteractiveMapPopup;\n","import React from 'react';\nimport mapLayers from './mapLayerJson.json';\nimport ReactDOM from 'react-dom';\nimport InteractiveMapPopup from '../InteractiveMapPopup/InteractiveMapPopup.jsx';\nimport MapboxAccessibility from '../../lib/mapbox-gl-accessibility.js';\nimport { MAP_EASE_PADDING_CONST } from '../../utils/constants';\nimport * as turf from '@turf/turf';\n\n//data manipulation helper methods\nexport const getBoundingBoxCoordinates = (coordinatesArray) => {\n let maxVal = coordinatesArray.reduce(function (a, b) {\n return Math.max(a, b);\n }, coordinatesArray[0]);\n let minVal = coordinatesArray.reduce(function (a, b) {\n return Math.min(a, b);\n }, coordinatesArray[0]);\n\n return [maxVal, minVal];\n};\n\nexport const isBetween = (number, a, b, inclusive) => {\n var min = Math.min.apply(Math, [a, b]),\n max = Math.max.apply(Math, [a, b]);\n return inclusive ? number >= min && number <= max : number > min && number < max;\n};\n\nexport const getMapSvgPath = (tagId, mapTags) => {\n const tagIcon = mapTags.find((mapTag) => mapTag?.id === tagId)?.path;\n return tagIcon;\n};\n\nexport const getMarkerTag = (tagId, mapTags) => {\n const tagTitle = mapTags.find((mapTag) => mapTag?.id === tagId)?.title;\n return tagTitle;\n};\n\nexport const getMarkerTitle = (marker) => {\n const title = marker?.markertitle ? marker?.markertitle : marker?.teasertitle;\n return title;\n};\n\nexport const configureUrlFromPath = (path) => {\n const url = path?.split('/home')[1];\n return url;\n};\n\nexport const getSearchRadius = (map) => {\n const curMap = map.current;\n const bounds = curMap.getBounds();\n const center = curMap.getCenter();\n const sw = bounds._sw;\n const radius = turf.distance([sw.lng, sw.lat], [center.lng, center.lat], 'kilometers');\n return radius;\n};\n\n//map manipulation methods\nexport const loadMapSource = (map, isClustersOn, MaxClusterZoom) => {\n map.current.addSource('places', {\n type: 'geojson',\n cluster: isClustersOn,\n clusterMaxZoom: MaxClusterZoom?.value ? MaxClusterZoom?.value : 7,\n clusterRadius: 50,\n data: { type: 'FeatureCollection', features: [] },\n });\n};\n\nexport const loadMapLayers = (map) => {\n if (!map.current.getLayer(mapLayers.clusterLayer.id))\n map.current.addLayer(mapLayers.clusterLayer);\n if (!map.current.getLayer(mapLayers.clusterCountLayer.id))\n map.current.addLayer(mapLayers.clusterCountLayer);\n if (!map.current.getLayer(mapLayers.pointShadowLayer.id))\n map.current.addLayer(mapLayers.pointShadowLayer);\n if (!map.current.getLayer(mapLayers.pointLayer.id)) map.current.addLayer(mapLayers.pointLayer);\n};\n\nexport const loadMapAccessibilityLayer = (map) => {\n let accessibilityControl = new MapboxAccessibility({\n accessibleLabelProperty: 'name',\n layers: ['place'],\n });\n\n map.current.addControl(accessibilityControl);\n};\n\nexport const loadMapLanguage = (language, map) => {\n let languageLayers = [\n 'country-label',\n 'state-label',\n 'settlement-subdivision-label',\n 'airport-label',\n 'poi-label',\n 'water-point-label',\n 'water-line-label',\n 'natural-point-label',\n 'natural-line-label',\n 'waterway-label',\n ];\n if (language === 'fr-CA') {\n languageLayers.map((layerName) =>\n map.current.setLayoutProperty(layerName, 'text-field', ['get', `name_fr`])\n );\n }\n};\n\nexport const loadClusterClickFunctionality = (e, map) => {\n const features = map.current.queryRenderedFeatures(e.point, {\n layers: ['clusters'],\n });\n const clusterId = features[0].properties.cluster_id;\n map.current.getSource('places').getClusterExpansionZoom(clusterId, (err, zoom) => {\n if (err) return;\n\n map.current.easeTo({\n center: features[0].geometry.coordinates,\n zoom: zoom,\n });\n });\n};\n\nexport const formatGeoJsonData = (mapMarkerData, mapTags) => {\n let geojson = {\n type: 'FeatureCollection',\n features: [],\n };\n mapMarkerData?.data.map((marker) => {\n let markerTags = marker?.industries?.split('|');\n let mapSvgPath = getMapSvgPath(\n marker?.industries?.split('|')?.[markerTags?.length - 1],\n mapTags\n );\n let feature = {\n type: 'Feature',\n geometry: {\n type: 'Point',\n coordinates: [\n parseFloat(marker?.lng.replace(',', '.')),\n parseFloat(marker?.lat.replace(',', '.')),\n ],\n },\n properties: {\n name: getMarkerTitle(marker),\n circleIcon: `circle_${mapSvgPath}`,\n icon: `pin_${mapSvgPath}`,\n lowLevelTag: getMarkerTag(markerTags?.[markerTags?.length - 1], mapTags),\n notNavigatable: marker?.notNavigatable,\n disableMapCTA: marker?.disableMapCTA,\n url: configureUrlFromPath(marker?.path),\n },\n };\n geojson.features.push(feature);\n });\n return geojson;\n};\n\nexport const easeToMapPoints = (geojson, map) => {\n let longitudes = geojson.features.map((item) => parseFloat(item.geometry.coordinates[0]));\n let latitudes = geojson.features.map((item) => parseFloat(item.geometry.coordinates[1]));\n\n let latMaxMin = getBoundingBoxCoordinates(latitudes);\n let lngMaxMin = getBoundingBoxCoordinates(longitudes);\n\n let bbox = [lngMaxMin[1], latMaxMin[1], lngMaxMin[0], latMaxMin[0]];\n // if all values are finite then ease to the bounding box area of the points\n if (!bbox.filter((value) => !isFinite(value)).length)\n map.current.fitBounds(bbox, { padding: MAP_EASE_PADDING_CONST });\n};\n\nexport const renderMapPopup = (marker, spriteData, CTAText) => {\n const coordinates = marker.features[0].geometry.coordinates.slice();\n const mapCardNode = document.createElement('div');\n ReactDOM.render(\n ,\n mapCardNode\n );\n\n while (Math.abs(marker.lngLat.lng - coordinates[0]) > 180) {\n coordinates[0] += marker.lngLat.lng > coordinates[0] ? 360 : -360;\n }\n\n return { coordinates, mapCardNode };\n};\n\nexport const exportCanvasBlob = (blob, MapImageExportName) => {\n var fileURL = URL.createObjectURL(blob);\n window.open(fileURL);\n var downloadLink = document.createElement('a');\n downloadLink.download = MapImageExportName?.value ? MapImageExportName?.value : '';\n if (window.webkitURL != null) {\n downloadLink.href = window.webkitURL.createObjectURL(blob);\n } else {\n downloadLink.href = URL.createObjectURL(blob);\n downloadLink.onclick = document.body.removeChild(event.target);\n downloadLink.style.display = 'none';\n document.body.appendChild(downloadLink);\n }\n downloadLink.click();\n};\n\nexport const filterInBoundMapPoints = (withinRadiusPoints, mapBounds) => {\n let nePoint = mapBounds?._ne;\n let swPoint = mapBounds?._sw;\n let inBoundsPoints = withinRadiusPoints.filter(\n (point) =>\n isBetween(parseFloat(point.lng.replace(',', '.')), swPoint.lng, nePoint.lng, true) &&\n isBetween(parseFloat(point.lat.replace(',', '.')), swPoint.lat, nePoint.lat, true)\n );\n\n return inBoundsPoints;\n};\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport mapboxgl from 'mapbox-gl';\nimport Lottie from 'react-lottie';\nimport './interactive-map.scss';\nimport 'mapbox-gl/dist/mapbox-gl.css';\nimport classnames from 'classnames';\nimport { debounce } from 'throttle-debounce';\nimport animationData from '../../assets/bubbleLoading';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { fetchMapPoints } from '../../actions';\nimport { MAP_DEBOUNCE_CONST } from '../../utils/constants';\nimport { MapExport } from '../../assets/common.js';\nimport { withTranslation } from 'react-i18next';\nimport {\n loadMapSource,\n loadMapLayers,\n loadMapLanguage,\n loadMapAccessibilityLayer,\n getSearchRadius,\n easeToMapPoints,\n formatGeoJsonData,\n renderMapPopup,\n exportCanvasBlob,\n loadClusterClickFunctionality,\n filterInBoundMapPoints,\n} from './mapUtil.js';\n\nconst defaultAnimationOptions = {\n loop: true,\n autoplay: true,\n animationData: animationData,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n};\n\nexport const InteractiveMap = ({\n mapStyle,\n fields,\n lng,\n lat,\n zoom,\n mapMarkerData,\n mapTags,\n filterFacets,\n isLoading,\n searchConditions,\n searchInput,\n clearAll,\n setClearAll,\n spriteData,\n maxNumListResults,\n setLng,\n setLat,\n setZoom,\n setMapMarkerData,\n setListData,\n setIsListLoading,\n setIsLoading,\n updateFilterFacets,\n t,\n sitecoreContext,\n}) => {\n const {\n DefaultZoomLevel,\n MinZoomLevel,\n MaxZoomLevel,\n MaxClusterZoom,\n MapBoxAPIKey,\n CTAText,\n MapImageExportName,\n Latitude,\n Longitude,\n MapLegend,\n } = fields;\n\n const mapContainer = useRef(null);\n const map = useRef(null);\n mapboxgl.accessToken = MapBoxAPIKey?.value;\n\n const [firstPageLoad, setFirstPageLoad] = useState(true);\n const [isClustersOn, setIsClustersOn] = useState(true);\n const [sourceMapLoaded, setSourceMapLoaded] = useState(false);\n const [searchConditionInitial, setSearchConditionInitial] = useState(false);\n\n const updateMapPoints = useRef(\n debounce(MAP_DEBOUNCE_CONST, (searchConditions, searchInput, searchCondition) => {\n fetchMapPoints(searchConditions, null, filterFacets, null, searchInput)\n .then((x) => {\n updateFilterFacets(x.facets);\n setMapMarkerData(() => ({\n data: x.results,\n searchCondition: searchCondition,\n }));\n setIsLoading(false);\n })\n .catch(() => {});\n })\n );\n\n const updateListPoints = useRef(\n debounce(MAP_DEBOUNCE_CONST, (lat, lng, searchConditions, searchInput) => {\n const searchRadius = getSearchRadius(map);\n let withinRadiusCondition = {\n lat: lat,\n lng: lng,\n radius: searchRadius,\n };\n fetchMapPoints(\n searchConditions,\n withinRadiusCondition,\n [],\n maxNumListResults,\n searchInput\n )\n .then((x) => {\n let withinRadiusPoints = x?.results;\n let mapBounds = map.current.getBounds();\n let inBoundsPoints = filterInBoundMapPoints(withinRadiusPoints, mapBounds);\n setListData(inBoundsPoints);\n setIsListLoading(false);\n })\n .catch(() => {});\n })\n );\n\n useEffect(() => {\n if (map.current) return; // initialize map only once\n map.current = new mapboxgl.Map({\n container: mapContainer.current,\n style: mapStyle, //get this from the project container\n center: sitecoreContext?.pageEditing\n ? [\n Longitude?.value ? parseFloat(Longitude?.value) : 0,\n Latitude?.value ? parseFloat(Latitude?.value) : 0,\n ]\n : [lng ? lng : 0, lat ? lat : 0],\n zoom: sitecoreContext?.pageEditing ? DefaultZoomLevel?.value : zoom,\n minZoom: MinZoomLevel?.value ? MinZoomLevel?.value : 2,\n maxZoom: MaxZoomLevel?.value ? MaxZoomLevel?.value : 20,\n preserveDrawingBuffer: true,\n locale: {\n 'NavigationControl.ZoomIn': `${t('ZoomIn')}`,\n 'NavigationControl.ZoomOut': `${t('ZoomOut')}`,\n },\n });\n\n map.current.addControl(new mapboxgl.NavigationControl({ showCompass: false }));\n map.current.scrollZoom.disable();\n });\n\n //After the search is complete this function will run to frame the markers on the map.\n //If clear all is selected then we want to frame it to the default map box location.\n useEffect(() => {\n if (!map.current) return;\n if (!sitecoreContext?.pageEditing) {\n let geojson = formatGeoJsonData(mapMarkerData, mapTags);\n map.current.getSource('places')?.setData(geojson); //update data points on source layer\n if (clearAll) {\n map.current.easeTo({\n center: [\n Longitude?.value ? parseFloat(Longitude?.value) : 0,\n Latitude?.value ? parseFloat(Latitude?.value) : 0,\n ],\n zoom: DefaultZoomLevel.value,\n });\n setClearAll(false);\n } else if (mapMarkerData?.searchCondition) {\n easeToMapPoints(geojson, map);\n }\n setIsLoading(false);\n }\n }, [mapMarkerData]);\n\n useEffect(() => {\n if (!sitecoreContext?.pageEditing) {\n if (searchConditions.length) setSearchConditionInitial(true);\n if (searchConditions.length && !firstPageLoad) {\n updateMapPoints.current(searchConditions, searchInput, !firstPageLoad);\n updateListPoints.current(lat, lng, searchConditions, searchInput);\n }\n if (firstPageLoad && searchConditions.length) setFirstPageLoad(false);\n }\n }, [searchConditions]);\n\n useEffect(() => {\n //initial population of list and map points when map is fully loaded, and initial search conditions set\n if (sourceMapLoaded && searchConditionInitial) {\n updateMapPoints.current(searchConditions, searchInput, false);\n updateListPoints.current(lat, lng, searchConditions, searchInput);\n map.current.scrollZoom.enable();\n }\n }, [sourceMapLoaded, searchConditionInitial]);\n\n useEffect(() => {\n map.current.on('moveend', () => {\n updateListPoints.current(lat, lng, searchConditions, searchInput, true);\n });\n }, [searchConditions, lat, lng, zoom]);\n\n useEffect(() => {\n if (!sitecoreContext?.pageEditing) {\n if (!Object.keys(spriteData).length) return;\n map.current.on('click', 'place', (marker) => {\n let mapPopup = renderMapPopup(marker, spriteData, CTAText);\n\n new mapboxgl.Popup({ closeOnMove: true })\n .setLngLat(mapPopup.coordinates)\n .setDOMContent(mapPopup.mapCardNode)\n .addTo(map.current);\n });\n }\n }, [spriteData]);\n\n useEffect(() => {\n if (sourceMapLoaded) {\n updateMapPoints.current(searchConditions, searchInput, false);\n updateListPoints.current(lat, lng, searchConditions, searchInput);\n }\n }, [sourceMapLoaded]);\n\n useEffect(() => {\n if (!sitecoreContext?.pageEditing) {\n if (!map.current) return; // wait for map to initialize\n\n map.current.on('load', () => {\n loadMapSource(map, isClustersOn, MaxClusterZoom);\n loadMapLayers(map);\n loadMapAccessibilityLayer(map);\n\n map.current.on('mouseenter', 'place', () => {\n map.current.getCanvas().style.cursor = 'pointer';\n });\n map.current.on('mouseleave', 'place', () => {\n map.current.getCanvas().style.cursor = '';\n });\n map.current.on('mouseenter', 'clusters', () => {\n map.current.getCanvas().style.cursor = 'pointer';\n });\n map.current.on('mouseleave', 'clusters', () => {\n map.current.getCanvas().style.cursor = '';\n });\n });\n\n map.current.on('move', () => {\n setLng(map.current.getCenter().lng.toFixed(6));\n setLat(map.current.getCenter().lat.toFixed(6));\n setZoom(map.current.getZoom().toFixed(2));\n setIsListLoading(true);\n });\n\n map.current.on('click', 'clusters', (e) => {\n loadClusterClickFunctionality(e, map);\n });\n\n const sourceDataEventHandler = (e) => {\n if (e.dataType === 'source' && e.sourceId === 'places' && e.isSourceLoaded) {\n setSourceMapLoaded(true); //now safe to add data to map\n }\n };\n map.current.on('sourcedata', sourceDataEventHandler);\n\n const styleDataEventHandler = (e) => {\n if (e?.dataType === 'style' && map.current.isStyleLoaded()) {\n loadMapLanguage(sitecoreContext?.language, map);\n }\n };\n map.current.on('styledata', styleDataEventHandler);\n }\n }, []);\n\n const toggleClusters = () => {\n const style = map.current.getStyle();\n if (style?.sources?.places) style.sources.places.cluster = !isClustersOn;\n map.current.setStyle(style);\n setIsClustersOn(!isClustersOn);\n };\n\n const exportMap = () => {\n map.current.getCanvas().toBlob((blob) => {\n exportCanvasBlob(blob, MapImageExportName);\n }, 'image/png');\n };\n\n const openLegend = () => {\n if (MapLegend?.value?.src) window.open(MapLegend?.value?.src);\n };\n\n return (\n <>\n {isLoading && (\n <>\n
    \n
    \n \n
    \n \n )}\n
    \n {zoom < MaxClusterZoom?.value && (\n \n \n {isClustersOn ? t('ShowPlotPoints') : t('ShowClusters')}\n
    \n \n )}\n \n
    {t('Download')}
    \n \n \n {MapLegend?.value?.src && (\n \n
    {t('MapLegend')}
    \n \n \n )}\n \n\n {sitecoreContext?.pageEditing &&
    Project Map Editing View
    }\n
    \n \n );\n};\n\nInteractiveMap.propTypes = {\n fields: PropTypes.shape({}),\n};\n\nexport const BasicInteractiveMap = InteractiveMap;\nconst InteractiveMapWithContext = withSitecoreContext()(InteractiveMap);\nconst InteractiveMapWithTranslation = withTranslation()(InteractiveMapWithContext);\nexport default withPlaceholder([])(\n withErrorBoundary([ErrorBoundaryConditions.fields])(InteractiveMapWithTranslation)\n);\n","import React from 'react';\nimport { Image as Img } from '@sitecore-jss/sitecore-jss-react';\nimport classNames from 'classnames';\nimport Text from '../Text/Text.jsx';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\nimport ButtonLink from '../ButtonLink';\nimport { DateTime } from 'luxon';\nimport { IsEmptyDate } from '../../utils/dateExtensions';\nimport {\n DocumentIcon,\n MovieCameraIcon,\n HeadPhonesIcon,\n NewsPaperIcon,\n CalendarIcon,\n BookmarkIcon,\n BriefcaseIcon,\n PersonIcon,\n MailIcon,\n PhoneIcon,\n} from '../../assets/common.js';\nimport {\n LinkTargetValueEnum,\n ThemeEnum,\n ButtonVariantEnum,\n SearchResultTypeEnum,\n TimeZoneEnum,\n} from '../../utils/enums';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { parseContentType } from '../../utils/searchHelpers.jsx';\n\nimport './item-with-image.scss';\n\nconst TypeToIconEmum = {\n Podcast: HeadPhonesIcon,\n Insight: NewsPaperIcon,\n Event: CalendarIcon,\n Video: MovieCameraIcon,\n News: BriefcaseIcon,\n WorkItem: DocumentIcon,\n QuarterlyIssue: NewsPaperIcon,\n ContentSeries: BookmarkIcon,\n Webinar: MovieCameraIcon,\n BioPage: PersonIcon,\n};\n\nconst ItemWithImage = ({ fields, isPageEditing }) => {\n const {\n Image,\n Title,\n Eyebrow,\n EducationInformation,\n Description,\n Date,\n DisplayDate,\n Document,\n LinkText,\n LinkUrl,\n Email,\n Phone,\n ResultType,\n PeopleOnly,\n ItemLanguage,\n } = fields;\n\n const itemWithImageBlock = 'zn-item-with-image';\n const ContentStyle = ResultType?.value ? parseContentType(ResultType?.value) : '';\n const IconTag = ContentStyle ? TypeToIconEmum[ContentStyle.replace(/\\s/g, '')] : '';\n const ContentTag = LinkUrl?.value !== '' ? 'a' : 'span';\n let withImage =\n !Image?.value?.class &&\n Image?.value &&\n Object.keys(Image?.value).length > 0 &&\n Image?.value?.src;\n\n const ContextTeaserDate = Date?.value\n ? DateTime.fromISO(Date?.value, {\n locale: ItemLanguage,\n })\n .setZone(TimeZoneEnum.server)\n .toLocaleString(DateTime.DATE_FULL)\n : '';\n\n const date = DisplayDate?.value\n ? DisplayDate.value\n : Date?.value && !IsEmptyDate(DateTime.fromISO(Date?.value))\n ? ContextTeaserDate\n : '';\n\n return (\n \n \n \n {ResultType?.value !== SearchResultTypeEnum.biopage && !!IconTag && (\n \n \n \n )}\n\n {ResultType?.value !== SearchResultTypeEnum.biopage ? (\n \n ) : (\n \n )}\n\n {ResultType?.value === SearchResultTypeEnum.biopage && (\n \n {withImage && (\n \n \n
    \n )}\n \n \n {Eyebrow?.value && (\n \n )}\n \n \n )}\n\n {(Eyebrow?.value || isPageEditing) && (\n \n )}\n\n {(EducationInformation?.value || isPageEditing) && (\n \n \n \n )}\n {date &&
    {date}
    }\n {Description?.value && (\n \n \n \n )}\n \n {(Email?.value || Phone?.value || isPageEditing) &&\n ResultType?.value === SearchResultTypeEnum.biopage && (\n
    \n {(Email?.value || isPageEditing) && (\n \n \n \n \n )}\n {(Phone?.value || isPageEditing) && (\n \n \n \n \n )}\n
    \n )}\n\n {Document?.value && (\n \n \n \n \n )}\n\n {LinkUrl?.value && LinkText?.value && (\n
    \n \n
    \n )}\n \n {withImage && (\n \n \n \n )}\n \n );\n};\n\nexport default ItemWithImage;\nexport const ItemWithImageStorybook = forStorybook(ItemWithImage);\n","import React from 'react';\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\n// eslint-disable-next-line import/no-unresolved\nimport { DateTime } from 'luxon';\nimport { TimeZoneEnum } from '../../utils/enums.js';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport forStorybookV2 from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport './knowledge-hub-date.scss';\n\nconst knowledgeHubDate = 'zn-knowledge-hub-date';\n\nconst KnowledgeHubDate = ({ fields, sitecoreContext }) => {\n const { EventTitle, LinkURL, EventDate } = fields;\n const contextDate = DateTime.fromISO(EventDate?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n }).setZone(TimeZoneEnum.server);\n const monthString = `${contextDate?.monthShort}`;\n const dayString = `${contextDate?.day}`;\n return (\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n );\n};\n\nconst KnowledgeHubDateSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields])(KnowledgeHubDate)\n);\n\nexport const KnowledgeHubDateStorybook = forStorybookV2(KnowledgeHubDateSitecore);\nexport default KnowledgeHubDateSitecore;\n","import React from 'react';\n// eslint-disable-next-line import/no-unresolved\nimport { DateTime } from 'luxon';\nimport { IsEmptyDate } from '../../utils/dateExtensions';\nimport { TimeZoneEnum } from '../../utils/enums.js';\nimport { Image as Img, Text, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { ArrowRight } from '../../assets/LinkIcons.js';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport forStorybookV2 from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport './knowledge-hub-hero.scss';\nimport {\n DocumentIcon,\n MovieCameraIcon,\n HeadPhonesIcon,\n NewsPaperIcon,\n CalendarIcon,\n BookmarkIcon,\n BriefcaseIcon,\n QuarterlyIcon,\n PersonIcon,\n} from '../../assets/common.js';\nimport { LinkTargetValueEnum } from '../../utils/enums.js';\n\nconst TypeToIconEmum = {\n Podcast: HeadPhonesIcon,\n Insight: NewsPaperIcon,\n Event: CalendarIcon,\n Video: MovieCameraIcon,\n News: BriefcaseIcon,\n WorkPage: DocumentIcon,\n QuarterlyReportLanding: QuarterlyIcon,\n ContentSeries: BookmarkIcon,\n Webinar: MovieCameraIcon,\n People: PersonIcon,\n};\n\nconst knowledgeHubHero = 'zn-knowledge-hub-hero';\n\nconst KnowledgeHubHero = ({ dates1, dates2, fields, params, sitecoreContext }) => {\n const {\n Title,\n Subtitle,\n FeaturedPageImage,\n FeaturedContentStyle,\n FeaturedContentStyleTextOverride,\n FeaturedPageEyebrow,\n FeaturedPageDescriptionOverride,\n FeaturedPageDateOverride,\n FeaturedPage,\n DatedLinks1Title,\n DatedLinks2Title,\n DatedLinks1LandingURL,\n DatedLinks2LandingURL,\n } = fields;\n const { HighlightColor } = params;\n const teaserDescription = FeaturedPage?.fields?.TeaserDescription;\n const teaserDate = FeaturedPage?.fields?.TeaserDate;\n const FeaturedPageDescription = FeaturedPageDescriptionOverride?.value\n ? FeaturedPageDescriptionOverride\n : teaserDescription;\n const ArticleDate = FeaturedPageDateOverride?.value ? FeaturedPageDateOverride : teaserDate;\n const contextDate = DateTime.fromISO(ArticleDate?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n })\n .setZone(TimeZoneEnum.server)\n .toLocaleString(DateTime.DATE_MED);\n const FeaturedPageDate = !IsEmptyDate(contextDate)\n ? {\n value: contextDate,\n }\n : {\n value: '',\n };\n const IconTag = FeaturedContentStyle?.value\n ? TypeToIconEmum[FeaturedContentStyle?.value?.replace(/\\s/g, '')]\n : NewsPaperIcon;\n const ContentStyleText = FeaturedContentStyleTextOverride?.value\n ? FeaturedContentStyleTextOverride?.value\n : `Featured ${FeaturedContentStyle?.value}`;\n const linksTarget1 =\n DatedLinks1LandingURL?.value?.target === LinkTargetValueEnum.blank\n ? LinkTargetValueEnum.blank\n : LinkTargetValueEnum.self;\n const linksTarget2 =\n DatedLinks2LandingURL?.value?.target === LinkTargetValueEnum.blank\n ? LinkTargetValueEnum.blank\n : LinkTargetValueEnum.self;\n\n return (\n
    \n
    \n
    {Title?.value}
    \n\n \n\n
    \n \n
    \n\n
    \n
    \n {FeaturedPageImage?.value && (\n \n
    \n \n
    \n \n )}\n\n
    \n
    \n
    \n {IconTag && }\n
    \n \n
    \n\n \n \n \n \n
    \n\n \n \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n
    \n\n
    \n {DatedLinks1Title?.value && (\n
    \n \n \n \n {dates1}\n
    \n )}\n {DatedLinks2Title?.value && (\n
    \n \n \n \n {dates2}\n
    \n )}\n
    \n
    \n \n \n );\n};\n\nconst KnowledgeHubHeroSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields, ErrorBoundaryConditions.params])(\n KnowledgeHubHero\n )\n);\n\nconst KnowledgeHubHeroPlaceholder = withPlaceholder('dates1')(\n withPlaceholder('dates2')(KnowledgeHubHeroSitecore)\n);\nexport const KnowledgeHubHeroStorybook = forStorybookV2(KnowledgeHubHeroSitecore);\nexport default KnowledgeHubHeroPlaceholder;\n","import React from 'react';\n// eslint-disable-next-line import/no-unresolved\nimport { DateTime } from 'luxon';\nimport { IsEmptyDate } from '../../utils/dateExtensions';\nimport { Image as Img, RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport { ThemeEnum, LinkTargetValueEnum, TimeZoneEnum } from '../../utils/enums.js';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\nimport { withTranslation } from 'react-i18next';\n\nimport './news-card.scss';\n\nconst newsCard = 'zn-news-card';\n\nconst NewsCard = ({ fields, sitecoreContext, t }) => {\n const { data } = fields;\n const CTAText = data?.datasource?.cTAText || '';\n const CTAAltText = data?.datasource?.cTAAltText || '';\n const DescriptionOverride = data?.datasource?.descriptionOverride || '';\n const DateOverride = data?.datasource?.dateOverride || '';\n const Image = data?.datasource?.imageOverride?.src\n ? data?.datasource?.imageOverride\n : data?.datasource?.newsItemURL?.targetItem?.teaserImage;\n const PageLink = data?.datasource?.newsItemURL?.targetItem || '';\n const teaserTitle = PageLink?.teaserTitle;\n const teaserDescription = PageLink?.teaserDescription;\n const teaserDate = PageLink?.teaserDate;\n const Description = DescriptionOverride?.value ? DescriptionOverride : teaserDescription;\n const ContextDateOverride =\n DateOverride?.value &&\n DateTime.fromISO(DateOverride?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n })\n .setZone(TimeZoneEnum.server)\n .toLocaleString(DateTime.DATE_MED);\n const ContextTeaserDate =\n teaserDate?.value &&\n DateTime.fromISO(teaserDate?.value, {\n locale: sitecoreContext?.route?.itemLanguage,\n })\n .setZone(TimeZoneEnum.server)\n .toLocaleString(DateTime.DATE_MED);\n const FinalDate =\n DateOverride?.value && !IsEmptyDate(ContextDateOverride)\n ? ContextDateOverride\n : teaserDate?.value && !IsEmptyDate(ContextTeaserDate)\n ? ContextTeaserDate\n : '';\n const isEditing = sitecoreContext.pageEditing;\n\n const withImage = !!Image?.src;\n\n return (\n (PageLink || isEditing) && (\n
    \n {withImage && (\n \n \n \n )}\n {FinalDate &&
    {FinalDate}
    }\n \n
    \n {data?.datasource?.titleOverride?.value && PageLink ? (\n \n ) : (\n \n )}\n {!PageLink && isEditing && t('NoPageLinkSet')}\n
    \n
    \n {Description?.value &&\n (!withImage ? (\n
    \n \n
    \n ) : (\n isEditing &&

    Description will not be displayed if an image is present

    \n ))}\n {CTAText?.value && CTAAltText?.value && PageLink && (\n \n )}\n
    \n )\n );\n};\n\nconst NewsCardSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields])(NewsCard)\n);\nexport default withTranslation()(NewsCardSitecore);\nexport const NewsCardStorybook = forStorybookV2(NewsCardSitecore);\n","import React from 'react';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport './news-card-row.scss';\n\nconst NewsCardRow = ({ newsCards }) => {\n const contentCardRowBlock = 'zn-news-card-row';\n\n return
    {newsCards}
    ;\n};\n\nconst NewsCardRowSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params])(NewsCardRow)\n);\nexport default withPlaceholder('newsCards')(NewsCardRowSitecore);\nexport const NewsCardRowStorybook = forStorybook(NewsCardRow);\n","import React from 'react';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport { Image as Img, Text, RichText } from '@sitecore-jss/sitecore-jss-react';\n\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport forStorybookV2 from '../../utils/forStorybook.jsx';\nimport classnames from 'classnames';\n\nimport './office-card.scss';\nimport { ButtonVariantEnum, ThemeEnum } from '../../utils/enums';\n\nconst officeCard = 'zn-office-card';\n\nconst OfficeCard = ({ fields, params }) => {\n const { Title, Description, LinkURL, LocationInfo, Image } = fields;\n const { ColorTheme, AccentColor } = params;\n return (\n \n
    \n
    \n \n
    \n {\n \n }\n {Description && (\n
    \n \n
    \n )}\n {LinkURL?.value?.text && LinkURL?.value?.href && (\n
    \n \n
    \n )}\n
    \n \n
    \n
    \n
    \n \n
    \n \n );\n};\n\nconst OfficeCardSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields, ErrorBoundaryConditions.params])(OfficeCard)\n);\n\nexport const OfficeCardStorybook = forStorybookV2(OfficeCardSitecore);\nexport default OfficeCardSitecore;\n","import React from 'react';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nconst PartialContainer = ({\n 'content-pre': contentPre,\n 'content-main': contentMain,\n 'content-post': contentPost,\n sitecoreContext,\n}) => {\n return (\n <>\n {sitecoreContext?.pageEditing ? (\n <>\n
    {contentPre}
    \n
    {contentMain}
    \n
    {contentPost}
    \n \n ) : (\n <>\n {contentPre}\n {contentMain}\n {contentPost}\n \n )}\n \n );\n};\n\nexport default withSitecoreContext()(\n withPlaceholder(['content-pre', 'content-main', 'content-post'])(PartialContainer)\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport '../SocialMediaLinks/social-media-links.scss';\nimport {\n Image as Img,\n withSitecoreContext,\n withPlaceholder,\n} from '@sitecore-jss/sitecore-jss-react';\nimport { DownloadFile } from '../../assets/LinkIcons';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { getVCardUrl } from '../../utils/vcardUrl.jsx';\nimport './profile-hero.scss';\n\nconst ProfileHero = ({ socialmedia, dropdown, fields, sitecoreContext }) => {\n const {\n Image,\n Name,\n Position,\n Description,\n PrimaryPhoneLabel,\n PrimaryPhoneNumber,\n SecondaryPhoneLabel,\n SecondaryPhoneNumber,\n Email,\n } = fields;\n\n const profileHeroBlock = 'zn-profile-hero';\n let contactTitle = 'Contact';\n let withImage = !Image?.value?.class && Image?.value && Object.keys(Image?.value).length > 0;\n\n const contextFields = sitecoreContext?.route?.fields;\n\n let FirstName = contextFields?.FirstName;\n let MiddleName = contextFields?.MiddleName;\n let LastName = contextFields?.LastName;\n\n if (!(FirstName?.value || LastName?.value || MiddleName?.value)) {\n if (Name?.value) {\n const splitName = Name?.value.split(' ');\n FirstName = { value: splitName[0] };\n if (splitName?.length > 1) {\n LastName = { value: splitName[splitName.length - 1] };\n }\n if (splitName?.length > 2) {\n MiddleName = { value: splitName.slice(1, splitName?.length - 1).join(' ') };\n }\n }\n }\n\n const primaryNumber = PrimaryPhoneNumber?.value;\n const secondaryNumber = SecondaryPhoneNumber?.value;\n\n return (\n
    \n
    \n {withImage && (\n
    \n
    \n \n
    \n
    \n )}\n \n
    \n
    {dropdown}
    \n
    \n \n \n \n
    \n
    {socialmedia}
    \n
    \n
    {Name?.value}
    \n
    \n {Position?.value}\n
    \n
    \n \n {Description?.value}\n
    \n
    \n {(PrimaryPhoneLabel?.value ||\n primaryNumber ||\n SecondaryPhoneLabel?.value ||\n secondaryNumber ||\n Email?.value) && (\n \n
    \n {contactTitle}\n
    \n
    \n
      \n {((PrimaryPhoneLabel?.value && primaryNumber) ||\n primaryNumber) && (\n
    • \n {PrimaryPhoneLabel.value}\n \n {PrimaryPhoneNumber.value}\n \n
    • \n )}\n {((SecondaryPhoneLabel?.value && secondaryNumber) ||\n secondaryNumber) && (\n
    • \n {SecondaryPhoneLabel.value}\n \n {SecondaryPhoneNumber.value}\n \n
    • \n )}\n
    \n {Email?.value && (\n \n {Email.value}\n \n )}\n
    \n \n )}\n \n \n \n );\n};\n\nProfileHero.propTypes = {\n fields: PropTypes.exact({\n Image: PropTypes.shape({\n value: PropTypes.object,\n }),\n Name: PropTypes.shape({\n value: PropTypes.string,\n }),\n Position: PropTypes.shape({\n value: PropTypes.string,\n }),\n Description: PropTypes.shape({\n value: PropTypes.string,\n }),\n PrimaryPhoneLabel: PropTypes.shape({\n value: PropTypes.string,\n }),\n PrimaryPhoneNumber: PropTypes.shape({\n value: PropTypes.string,\n }),\n SecondaryPhoneLabel: PropTypes.shape({\n value: PropTypes.string,\n }),\n SecondaryPhoneNumber: PropTypes.shape({\n value: PropTypes.string,\n }),\n Email: PropTypes.shape({\n value: PropTypes.string,\n }),\n VCard: PropTypes.shape({\n value: PropTypes.object,\n }),\n }),\n socialmedia: PropTypes.object,\n dropdown: PropTypes.object,\n};\n\nconst ProfileHeroWithContext = withSitecoreContext()(ProfileHero);\n\nexport const ProfileHeroStorybook = forStorybook(ProfileHeroWithContext);\nexport default withPlaceholder(['socialmedia', 'dropdown'])(ProfileHeroWithContext);\n","import React from 'react';\nimport classnames from 'classnames';\nimport { ChevronRight, ArrowRight } from '../../assets/LinkIcons.js';\nimport '../ButtonLink/button-link.scss';\nimport './project-map-list-item.scss';\n\nconst ProjectMapListItem = ({\n icon,\n title,\n tags,\n notNavigatable,\n disableMapCTA,\n url,\n ctaText,\n isLoading,\n isListLoading,\n}) => {\n const projectMapListItemBlock = 'zn-project-map-list-item';\n const nonNavigable = notNavigatable === 'True' || disableMapCTA === 'True';\n const Type = nonNavigable || isListLoading || isLoading ? 'div' : 'a';\n\n return (\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
      \n {tags?.map((tag, index) => (\n \n {tag}\n \n ))}\n
    \n {ctaText?.value && !nonNavigable && (\n
    \n \n {ctaText?.value}\n \n \n
    \n \n \n )}\n \n \n {!nonNavigable && !isListLoading && !isLoading && (\n
    \n \n
    \n )}\n \n );\n};\n\nexport default ProjectMapListItem;\n","import React, { useEffect } from 'react';\nimport './project-map-list.scss';\nimport 'mapbox-gl/dist/mapbox-gl.css';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport ProjectMapListItem from '../ProjectMapListItem/ProjectMapListItem.jsx';\nimport classnames from 'classnames';\nimport { withTranslation } from 'react-i18next';\nimport { fetchMapPoints } from '../../actions';\n\nexport const ProjectMapList = ({\n t,\n fields,\n listData,\n mapTags,\n filterFacets,\n isLoading,\n isListLoading,\n spriteData,\n searchInput,\n setIsLoading,\n setIsListLoading,\n updateFilterFacets,\n setListData,\n searchConditions,\n clearAllFilters,\n setIsMobileListViewOpen,\n ctaText,\n includesProjectMap,\n}) => {\n const { NumberOfResults } = fields;\n const resultsLimit = NumberOfResults?.value ? NumberOfResults?.value : 50;\n const projectMapListBlock = 'zn-project-map-list';\n\n const getMapSvgPath = (tagId) => {\n const tagIcon = mapTags.find((mapTag) => mapTag?.id === tagId)?.path;\n return tagIcon;\n };\n\n const getMarkerTag = (tagId) => {\n const tagTitle = mapTags.find((mapTag) => mapTag?.id === tagId)?.title;\n return tagTitle;\n };\n\n const getMarkerTitle = (marker) => {\n const title = marker?.markertitle ? marker?.markertitle : marker?.teasertitle;\n return title;\n };\n\n const configureUrlFromPath = (path) => {\n const url = path?.split('/home')[1];\n return url;\n };\n\n useEffect(() => {\n if (!includesProjectMap) {\n fetchMapPoints(searchConditions, null, filterFacets, null, searchInput)\n .then((x) => {\n updateFilterFacets(x.facets);\n setListData(x.results);\n setIsLoading(false);\n setIsListLoading(false);\n })\n .catch(() => {});\n }\n }, [searchConditions]);\n\n useEffect(() => {\n const escFunction = (event) => {\n if (event?.key === 'Escape') {\n setIsMobileListViewOpen(false);\n }\n };\n\n window.addEventListener('keydown', escFunction);\n\n return () => {\n window.removeEventListener('keydown', escFunction);\n };\n }, []);\n\n return (\n
    \n
      \n {listData?.length > 0 || isLoading || isListLoading ? (\n listData?.map((item, index) => {\n if (item && index < resultsLimit) {\n let markerTags = item?.industries?.split('|');\n let svgPath = `circle_${getMapSvgPath(\n markerTags?.[markerTags?.length - 1]\n )}`;\n let highLevelTag = getMarkerTag(markerTags?.[0]);\n let lowLevelTag =\n markerTags?.length > 1\n ? getMarkerTag(markerTags?.[markerTags?.length - 1])\n : '';\n return (\n \n );\n }\n })\n ) : (\n
      \n
      \n {t('NoMapResultsTitle')}\n
      \n
      \n {t('NoMapResultsDescription')}\n
      \n \n {t('ClearFilters')}\n \n
      \n )}\n
    \n
    \n );\n};\n\nexport const BasicProjectMapList = ProjectMapList;\nconst ProjectMapListContext = withSitecoreContext()(ProjectMapList);\nconst ProjectMapListWithTranslation = withTranslation()(ProjectMapListContext);\nexport default ProjectMapListWithTranslation;\n","/* eslint-disable no-unused-vars */\nimport React, { useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport './checkbox.scss';\nimport CheckboxWrapper from '../Checkbox/CheckboxWrapper.jsx';\nimport { ChevronDown, ChevronUp } from '../../assets/LinkIcons.js';\n\nconst CheckboxWithDropdown = ({\n index,\n id,\n pId,\n label,\n checked,\n checkSingularBox,\n toggleHighLevelFilter,\n isLoading,\n setIsLoading,\n dropdownOptions,\n activeHighLevelFilterGroup,\n toggleActiveFilterGroup,\n setActiveHighLevelFilterGroup,\n searchInput,\n}) => {\n const checkboxWithDropdown = 'zn-checkbox-dropdown';\n const [hasChildren, setHasChildren] = useState(\n dropdownOptions.filter((dropdownOption) => dropdownOption?.hasResults).length\n );\n let parentIndex = index;\n\n useEffect(() => {\n setHasChildren(\n dropdownOptions.filter((dropdownOption) => dropdownOption?.hasResults).length\n );\n }, [dropdownOptions]);\n\n useEffect(() => {\n if (!searchInput) {\n setHasChildren(\n dropdownOptions.filter((dropdownOption) => dropdownOption?.hasResults).length\n );\n } else {\n let matchingChildren = dropdownOptions.filter(\n (dropdownOption) =>\n dropdownOption.title.toUpperCase().indexOf(searchInput) > -1 &&\n dropdownOption?.hasResults\n );\n let hasResultsChildren = dropdownOptions.filter(\n (dropdownOption) => dropdownOption?.hasResults\n );\n //if search term matches parent, and it has available children show it\n if (label.toUpperCase().indexOf(searchInput) > -1 && hasResultsChildren.length)\n setHasChildren(true);\n //else show if it has children matching search term\n else setHasChildren(matchingChildren.length ? true : false);\n }\n }, [searchInput]);\n\n return (\n \n
    \n {\n if (!isLoading) setActiveHighLevelFilterGroup(index);\n }}\n />\n {\n if (!isLoading) toggleActiveFilterGroup(index);\n }}\n >\n \n {label}\n
    \n {!searchInput && (\n \n {index === activeHighLevelFilterGroup ? : }\n \n )}\n \n \n \n \n );\n};\n\nexport default CheckboxWithDropdown;\n","import React, { useState, useEffect, useRef } from 'react';\nimport classnames from 'classnames';\nimport './project-map-search-bar-filter.scss';\nimport { ChevronDown, ChevronUp, ChevronRight } from '../../assets/LinkIcons.js';\nimport { Button } from '../Button/Button.js';\nimport { SearchBarIcon } from '../../assets/common.js';\nimport CheckboxWithDropdown from '../Checkbox/CheckboxWithDropdown.jsx';\n\nconst ProjectMapSearchBarFilter = ({\n t,\n fields,\n index,\n activeFilter,\n toggleFilter,\n checkLowLevelFilter,\n toggleHighLevelFilter,\n clearCategory,\n setIsLoading,\n isLoading,\n searchReset,\n dropdownPlaceholderText,\n}) => {\n const searchBarFilterBlock = 'zn-project-map-search-bar-filter';\n const { title, identifier, highLevelFilters } = fields;\n\n const [activeHighLevelFilterGroup, setActiveHighLevelFilterGroup] = useState(null);\n const [searchInput, setSearchInput] = useState('');\n\n const prevActiveHighLevelGroup = useRef();\n\n useEffect(() => {\n if (searchReset) setSearchInput('');\n }, [searchReset]);\n\n useEffect(() => {\n prevActiveHighLevelGroup.current = activeHighLevelFilterGroup;\n });\n\n const toggleActiveFilterGroup = (index) => {\n if (prevActiveHighLevelGroup.current === index) {\n setActiveHighLevelFilterGroup(null);\n } else {\n setActiveHighLevelFilterGroup(index);\n }\n };\n\n return (\n \n {\n if (!isLoading) toggleFilter(index);\n }}\n >\n \n {title}\n \n \n {title}\n \n
    \n {index === activeFilter ? : }\n
    \n
    \n \n
    \n \n \n \n
    \n \n \n \n setSearchInput(e.target.value)}\n value={searchInput}\n >\n \n \n
      \n {highLevelFilters?.map((highLevelFilter, index) => {\n return (\n \n );\n })}\n
    \n
    \n {\n clearCategory(identifier);\n setSearchInput('');\n }}\n >\n {t('ClearAll')}\n \n
    \n \n \n );\n};\n\nexport default ProjectMapSearchBarFilter;\n","import React, { useState, useEffect, useRef } from 'react';\nimport classnames from 'classnames';\nimport './project-map-search-bar-filter.scss';\nimport { ChevronLeft, ChevronRight } from '../../assets/LinkIcons.js';\nimport { Button } from '../Button/Button.js';\nimport CheckboxWrapper from '../Checkbox/CheckboxWrapper.jsx';\n\nconst ProjectMapSearchBarFilterMobile = ({\n t,\n fields,\n index,\n activeFilter,\n toggleFilter,\n checkLowLevelFilter,\n checkAdvancedFilter,\n checkHighLevelFilter,\n clearCategory,\n setIsLoading,\n isLoading,\n isMobileFilterViewOpen,\n setIsMobileFilterViewOpen,\n hideMobileFilters,\n toggleAdvancedFilter,\n isAdvancedFiltersMobileOpen,\n toggleAdvancedHighLevelFilter,\n}) => {\n const searchBarFilterBlock = 'zn-project-map-search-bar-filter';\n const searchBarFilterMobileBlock = 'zn-project-map-search-bar-filter-mobile';\n\n const { title, identifier, highLevelFilters, totalSelected, isAdFilter } = fields;\n\n const [activeHighLevelFilterGroup, setActiveHighLevelFilterGroup] = useState(null);\n const [activeHighLevelFilterGroupTitle, setActiveHighLevelFilterGroupTitle] = useState(null);\n\n const prevActiveHighLevelGroup = useRef();\n const prevActiveHighLevelGroupTitle = useRef();\n\n const includeHighLevelSelectAll =\n highLevelFilters?.filter((highLevelFilter) => !highLevelFilter?.lowLevelFilters.length)\n .length === highLevelFilters?.length;\n\n useEffect(() => {\n if (!isMobileFilterViewOpen) {\n setActiveHighLevelFilterGroup(null);\n setActiveHighLevelFilterGroupTitle(null);\n }\n }, [isMobileFilterViewOpen]);\n\n useEffect(() => {\n prevActiveHighLevelGroup.current = activeHighLevelFilterGroup;\n });\n\n const toggleActiveFilterGroup = (index) => {\n if (prevActiveHighLevelGroup.current === index) {\n setActiveHighLevelFilterGroup(null);\n } else {\n setActiveHighLevelFilterGroup(index);\n }\n };\n const toggleActiveFilterGroupTitle = (title) => {\n if (prevActiveHighLevelGroupTitle.current === title) {\n setActiveHighLevelFilterGroupTitle(null);\n } else {\n setActiveHighLevelFilterGroupTitle(title);\n }\n };\n\n return (\n \n {\n if (!isLoading) toggleFilter(index);\n }}\n >\n \n {title}\n \n \n \n \n \n {!isAdFilter && (\n \n {totalSelected > 0\n ? totalSelected + ' ' + t('FiltersSelected')\n : t('MapsNoFiltersSelected').replace('%0', title)}\n \n )}\n \n
    \n {\n if (!isLoading && activeHighLevelFilterGroup == null)\n toggleFilter(index);\n else if (!isLoading && activeHighLevelFilterGroup != null)\n toggleActiveFilterGroup(activeHighLevelFilterGroup);\n }}\n >\n \n \n
    \n \n {activeHighLevelFilterGroup == null\n ? title\n : activeHighLevelFilterGroupTitle}\n \n \n
    \n
    \n {includeHighLevelSelectAll && (\n \n {\n if (!isLoading) toggleAdvancedFilter(identifier, false);\n }}\n >\n {t('SelectAll')}\n \n
    \n
    \n )}\n \n {highLevelFilters?.map((highLevelFilter, index) => {\n if (\n !highLevelFilter?.lowLevelFilters.length &&\n highLevelFilter?.hasResults\n ) {\n return (\n \n );\n }\n if (\n !highLevelFilter?.lowLevelFilters.filter(\n (dropdownOption) => dropdownOption?.hasResults\n ).length\n )\n return;\n return (\n \n {\n if (!isLoading) {\n toggleActiveFilterGroup(index);\n toggleActiveFilterGroupTitle(highLevelFilter?.title);\n }\n }}\n >\n \n {highLevelFilter?.title}\n \n \n \n \n \n \n \n {\n if (!isLoading)\n isAdFilter\n ? toggleAdvancedHighLevelFilter(\n highLevelFilter?.identifier,\n identifier,\n false\n )\n : checkHighLevelFilter(\n highLevelFilter?.identifier,\n identifier,\n false\n );\n }}\n >\n {t('SelectAll')}\n \n
    \n
    \n
      \n {highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter, index) => {\n if (!lowLevelFilter.hasResults) return;\n\n return (\n \n );\n }\n )}\n
    \n {activeHighLevelFilterGroup === index && (\n \n {\n if (!isLoading)\n isAdFilter\n ? toggleAdvancedHighLevelFilter(\n highLevelFilter?.identifier,\n identifier,\n true\n )\n : checkHighLevelFilter(\n highLevelFilter?.identifier,\n identifier,\n true\n );\n }}\n >\n {t('ClearFilter')}\n \n \n {\n if (!isLoading) {\n setIsMobileFilterViewOpen(false);\n hideMobileFilters();\n }\n }}\n >\n {t('ShowResults')}\n \n \n \n )}\n \n \n );\n })}\n \n {activeFilter === index && activeHighLevelFilterGroup == null && (\n
    \n {\n if (!isLoading) {\n isAdFilter\n ? toggleAdvancedFilter(identifier, true)\n : clearCategory(identifier);\n }\n }}\n >\n {t('ClearFilter')}\n \n \n {\n if (!isLoading) {\n setIsMobileFilterViewOpen(false);\n hideMobileFilters();\n }\n }}\n >\n {t('ShowResults')}\n \n
    \n \n )}\n \n \n );\n};\n\nexport default ProjectMapSearchBarFilterMobile;\n","import React, { useState } from 'react';\nimport classnames from 'classnames';\nimport './advanced-filter.scss';\nimport CheckboxWrapper from '../Checkbox/CheckboxWrapper.jsx';\n\nconst AdvancedFilter = ({\n t,\n fields,\n index,\n activeFilter,\n checkAdvancedFilter,\n isLoading,\n setIsLoading,\n}) => {\n const advancedFilterBlock = 'zn-advanced-filter';\n const { title, identifier, highLevelFilters } = fields;\n const [showAllCheckboxes, setShowAllCheckboxes] = useState(false);\n\n const initialNumCheckboxes = 4;\n let visibleCheckboxes = 0;\n\n const showAdditionalControls =\n highLevelFilters?.filter((option) => option?.hasResults).length > initialNumCheckboxes ||\n highLevelFilters?.filter(\n (option) =>\n option?.lowLevelFilters?.length &&\n option?.lowLevelFilters?.filter((childOption) => childOption?.hasResults).length > 0\n ).length > 0;\n\n const hasAvailableFilters =\n highLevelFilters?.filter(\n (option) =>\n option.hasResults ||\n option?.lowLevelFilters.filter((childOption) => childOption?.hasResults).length > 0\n ).length > 0;\n\n return (\n \n
    {title}
    \n
    \n {hasAvailableFilters ? (\n highLevelFilters?.map((option, index) => {\n if (visibleCheckboxes >= initialNumCheckboxes && !showAllCheckboxes) return;\n if (\n !option.hasResults ||\n (!option.hasResults &&\n option?.lowLevelFilters.length &&\n option?.lowLevelFilters.filter(\n (childOption) => childOption?.hasResults\n ).length === 0)\n )\n return;\n visibleCheckboxes++;\n return (\n \n \n {showAllCheckboxes && (\n
    \n {option?.lowLevelFilters?.map((childOption, index) => {\n if (!childOption.hasResults) return;\n return (\n \n );\n })}\n
    \n )}\n
    \n );\n })\n ) : (\n
    {t('NoMatchingFiltersDescription')}
    \n )}\n \n {showAdditionalControls && hasAvailableFilters && (\n {\n setShowAllCheckboxes(\n !showAllCheckboxes && highLevelFilters?.length > initialNumCheckboxes\n );\n }}\n >\n {!showAllCheckboxes && highLevelFilters?.length > initialNumCheckboxes\n ? t('ViewMore')\n : t('ShowLess')}\n \n )}\n \n );\n};\n\nexport default AdvancedFilter;\n","import React, { useEffect } from 'react';\nimport { CloseIcon } from '../../assets/common.js';\nimport { Button } from '../Button/Button.js';\nimport classnames from 'classnames';\nimport AdvancedFilter from '../AdvancedFilter/AdvancedFilter.jsx';\nimport './advanced-filter-modal.scss';\n\nconst AdvancedFilterModal = ({\n t,\n modalRef,\n filters,\n checkAdvancedFilter,\n isLoading,\n setIsLoading,\n toggleAdvancedFilterModal,\n isAdvancedFiltersOpen,\n}) => {\n const advancedFilterModalBlock = 'zn-advanced-filter-modal';\n\n //close modal when any other part of the page is clicked\n useEffect(() => {\n function closeModal(event) {\n if (\n modalRef.current &&\n !modalRef.current.contains(event.target) &&\n isAdvancedFiltersOpen\n ) {\n toggleAdvancedFilterModal();\n }\n }\n document.addEventListener('mousedown', closeModal);\n return () => {\n document.removeEventListener('mousedown', closeModal);\n };\n }, []);\n\n return (\n
    \n
    \n
    \n
    \n {t('AdvancedFilters')}\n
    \n \n \n \n
    \n
    \n {filters?.advancedFilters?.map((filter, index) => {\n if (!filter) return;\n return (\n \n );\n })}\n
    \n
    \n
    \n \n {t('Cancel')}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default AdvancedFilterModal;\n","import { includeInMapCondition, mapMarkerInheritanceCondition } from '../../utils/constants';\nimport { sortFilterValues } from '../../utils/searchHelpers.jsx';\n\nconst updateTotalSelected = (categoryFilters) => {\n let totalSelected = 0;\n categoryFilters?.map((highLevelFilter) => {\n totalSelected += highLevelFilter?.lowLevelFilters?.filter(\n (lowLevelFilter) => lowLevelFilter?.checked && lowLevelFilter?.hasResults\n ).length;\n });\n return totalSelected;\n};\n\nexport const getAdFilTotalSelected = (advancedFilters) => {\n let totalSelected = 0;\n advancedFilters?.map((filter) => {\n filter?.highLevelFilters?.map((highLevelFilter) => {\n if (highLevelFilter?.checked && highLevelFilter?.hasResults) totalSelected += 1;\n totalSelected += highLevelFilter?.lowLevelFilters?.filter(\n (lowLevelFilter) => lowLevelFilter?.checked && lowLevelFilter?.hasResults\n ).length;\n });\n });\n return totalSelected;\n};\n\nconst flattenFilterOptions = (filter) => {\n let array = [];\n array.push({\n title: filter.title?.value,\n identifier: filter.identifier?.value,\n id: filter?.id,\n });\n if (Array.isArray(filter.children)) {\n filter.children.forEach(function (a) {\n array = array.concat(flattenFilterOptions(a));\n });\n }\n return array;\n};\n\nexport const updateLowLevelFilter = (lowLevelId, highLevelId, categoryId, filters) => {\n let updatedHighLevelFilters;\n let updatedLowLevelFilters;\n return {\n advancedFilters: filters?.advancedFilters,\n mapTagFilters: filters?.mapTagFilters?.map((category) => {\n if (category?.identifier === categoryId) {\n updatedHighLevelFilters = category?.highLevelFilters?.map((highLevelFilter) => {\n if (highLevelFilter?.identifier === highLevelId) {\n updatedLowLevelFilters = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n if (lowLevelFilter?.identifier === lowLevelId) {\n return {\n ...lowLevelFilter,\n checked: !lowLevelFilter.checked,\n };\n } else return lowLevelFilter;\n }\n );\n return {\n ...highLevelFilter,\n checked:\n updatedLowLevelFilters.filter((filter) => filter?.checked).length >\n 0,\n lowLevelFilters: updatedLowLevelFilters,\n };\n } else return highLevelFilter;\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFilters,\n totalSelected: updateTotalSelected(updatedHighLevelFilters),\n };\n } else return category;\n }),\n };\n};\n\nexport const updateAdvancedFilter = (id, pId, filters) => {\n let updatedLowLevelFilters; //will probably need later\n let updatedHighLevelFilters;\n return {\n mapTagFilters: filters?.mapTagFilters,\n advancedFilters: filters?.advancedFilters?.map((category) => {\n if (category?.identifier === pId) {\n updatedHighLevelFilters = category?.highLevelFilters?.map((highLevelFilter) => {\n let childOption = highLevelFilter?.lowLevelFilters.find(\n (item) => item?.identifier === id\n );\n if (highLevelFilter?.identifier === id) {\n return {\n ...highLevelFilter,\n checked: !highLevelFilter.checked,\n };\n } else if (childOption) {\n //it is contained in its children\n updatedLowLevelFilters = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n if (lowLevelFilter?.identifier === id) {\n return {\n ...lowLevelFilter,\n checked: !lowLevelFilter.checked,\n };\n } else return lowLevelFilter;\n }\n );\n return {\n ...highLevelFilter,\n lowLevelFilters: updatedLowLevelFilters,\n };\n } else return highLevelFilter;\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFilters,\n };\n } else return category;\n }),\n };\n};\n\nexport const updateHighLevelFilter = (highLevelId, categoryId, filters) => {\n let updatedHighLevelFilters;\n let updatedLowLevelFilters;\n return {\n advancedFilters: filters?.advancedFilters,\n mapTagFilters: filters?.mapTagFilters?.map((category) => {\n if (category?.identifier === categoryId) {\n updatedHighLevelFilters = category?.highLevelFilters?.map((highLevelFilter) => {\n if (highLevelFilter?.identifier === highLevelId) {\n updatedLowLevelFilters = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n checked: lowLevelFilter?.hasResults\n ? !highLevelFilter.checked\n : false,\n };\n }\n );\n return {\n ...highLevelFilter,\n checked: !highLevelFilter.checked,\n lowLevelFilters: updatedLowLevelFilters,\n };\n } else return highLevelFilter;\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFilters,\n totalSelected: updateTotalSelected(updatedHighLevelFilters),\n };\n } else return category;\n }),\n };\n};\n\nexport const clearHighLevelFilter = (highLevelId, categoryId, filters, isClear) => {\n let updatedHighLevelFilters;\n let updatedLowLevelFilters;\n return {\n advancedFilters: filters?.advancedFilters,\n mapTagFilters: filters?.mapTagFilters?.map((category) => {\n if (category?.identifier === categoryId) {\n updatedHighLevelFilters = category?.highLevelFilters?.map((highLevelFilter) => {\n if (highLevelFilter?.identifier === highLevelId) {\n updatedLowLevelFilters = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n checked: lowLevelFilter?.hasResults ? !isClear : false,\n };\n }\n );\n return {\n ...highLevelFilter,\n checked: !isClear,\n lowLevelFilters: updatedLowLevelFilters,\n };\n } else return highLevelFilter;\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFilters,\n totalSelected: updateTotalSelected(updatedHighLevelFilters),\n };\n } else return category;\n }),\n };\n};\n\nexport const updateAdvancedFilterSection = (categoryId, filters, isClear) => {\n let updatedHighLevelFilters;\n let updatedLowLevelFilters;\n return {\n mapTagFilters: filters?.mapTagFilters,\n advancedFilters: filters?.advancedFilters?.map((category) => {\n if (category?.identifier === categoryId) {\n updatedHighLevelFilters = category?.highLevelFilters?.map((highLevelFilter) => {\n updatedLowLevelFilters = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n checked: !isClear,\n };\n }\n );\n return {\n ...highLevelFilter,\n checked: !isClear,\n lowLevelFilters: updatedLowLevelFilters,\n };\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFilters,\n };\n } else return category;\n }),\n };\n};\n\nexport const updateAdvancedFilterHighLevelSection = (highLevelId, categoryId, filters, isClear) => {\n let updatedHighLevelFilters;\n let updatedLowLevelFilters;\n return {\n mapTagFilters: filters?.mapTagFilters,\n advancedFilters: filters?.advancedFilters?.map((category) => {\n if (category?.identifier === categoryId) {\n updatedHighLevelFilters = category?.highLevelFilters?.map((highLevelFilter) => {\n updatedLowLevelFilters = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n checked: !isClear,\n };\n }\n );\n return {\n ...highLevelFilter,\n checked: !isClear,\n lowLevelFilters: updatedLowLevelFilters,\n };\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFilters,\n };\n } else return category;\n }),\n };\n};\n\nexport const updateCategory = (categoryId, filters) => {\n let updatedHighLevelFilters;\n let updatedLowLevelFilters;\n return {\n advancedFilters: filters?.advancedFilters,\n mapTagFilters: filters?.mapTagFilters?.map((category) => {\n if (category?.identifier === categoryId) {\n updatedHighLevelFilters = category?.highLevelFilters?.map((highLevelFilter) => {\n updatedLowLevelFilters = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n checked: false,\n };\n }\n );\n return {\n ...highLevelFilter,\n checked: false,\n lowLevelFilters: updatedLowLevelFilters,\n };\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFilters,\n totalSelected: updateTotalSelected(updatedHighLevelFilters),\n };\n } else return category;\n }),\n };\n};\n\nexport const updateAllCategories = (filters) => {\n let updatedHighLevelFiltersMap;\n let updatedLowLevelFiltersMap;\n let updatedHighLevelFiltersAd;\n let updatedLowLevelFiltersAd;\n return {\n advancedFilters: filters?.advancedFilters?.map((category) => {\n updatedHighLevelFiltersAd = category?.highLevelFilters?.map((highLevelFilter) => {\n updatedLowLevelFiltersAd = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n checked: false,\n };\n }\n );\n return {\n ...highLevelFilter,\n checked: false,\n lowLevelFilters: updatedLowLevelFiltersAd,\n };\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFiltersAd,\n };\n }),\n mapTagFilters: filters?.mapTagFilters?.map((category) => {\n updatedHighLevelFiltersMap = category?.highLevelFilters?.map((highLevelFilter) => {\n updatedLowLevelFiltersMap = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n checked: false,\n };\n }\n );\n return {\n ...highLevelFilter,\n checked: false,\n lowLevelFilters: updatedLowLevelFiltersMap,\n };\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFiltersMap,\n totalSelected: updateTotalSelected(updatedHighLevelFiltersMap),\n };\n }),\n };\n};\n\nexport const clearAllAdvancedFilters = (filters) => {\n let updatedHighLevelFiltersAd;\n let updatedLowLevelFiltersAd;\n return {\n advancedFilters: filters?.advancedFilters?.map((category) => {\n updatedHighLevelFiltersAd = category?.highLevelFilters?.map((highLevelFilter) => {\n updatedLowLevelFiltersAd = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n checked: false,\n };\n }\n );\n return {\n ...highLevelFilter,\n checked: false,\n lowLevelFilters: updatedLowLevelFiltersAd,\n };\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFiltersAd,\n };\n }),\n mapTagFilters: filters?.mapTagFilters,\n };\n};\n\nexport const updateFacets = (flattenedFacets, current) => {\n let updatedHighLevelFiltersMap;\n let updatedLowLevelFiltersMap;\n let updatedHighLevelFiltersAd;\n let updatedLowLevelFiltersAd;\n return {\n advancedFilters: current?.advancedFilters?.map((category) => {\n let categoryFacet = flattenedFacets.find(\n (facet) => facet?.name === category?.fieldName\n );\n updatedHighLevelFiltersAd = category?.highLevelFilters?.map((highLevelFilter) => {\n updatedLowLevelFiltersAd = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n hasResults: categoryFacet?.values.includes(lowLevelFilter?.id),\n };\n }\n );\n return {\n ...highLevelFilter,\n hasResults: categoryFacet?.values.includes(highLevelFilter?.id),\n lowLevelFilters: updatedLowLevelFiltersAd,\n };\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFiltersAd,\n };\n }),\n mapTagFilters: current?.mapTagFilters?.map((category) => {\n let categoryFacet = flattenedFacets.find(\n (facet) => facet?.name === category?.fieldName\n );\n updatedHighLevelFiltersMap = category?.highLevelFilters?.map((highLevelFilter) => {\n updatedLowLevelFiltersMap = highLevelFilter?.lowLevelFilters?.map(\n (lowLevelFilter) => {\n return {\n ...lowLevelFilter,\n hasResults: categoryFacet?.values.includes(lowLevelFilter?.id),\n };\n }\n );\n return {\n ...highLevelFilter,\n hasResults: categoryFacet?.values.includes(highLevelFilter?.id),\n lowLevelFilters: updatedLowLevelFiltersMap,\n };\n });\n return {\n ...category,\n highLevelFilters: updatedHighLevelFiltersMap,\n totalSelected: updateTotalSelected(updatedHighLevelFiltersMap),\n };\n }),\n };\n};\n\nexport const formatProjectSearchBarFilters = (projectSearchBarFilters, urlFilters) => {\n return projectSearchBarFilters?.map((filter) => ({\n fieldName: filter?.name.toLowerCase(),\n title: filter?.title?.value,\n identifier: filter?.name,\n searchReset: false,\n totalSelected: 0,\n highLevelFilters: filter?.children?.map((highLevelFilter) => ({\n id: highLevelFilter?.id.toLowerCase(),\n title: highLevelFilter?.title?.value,\n identifier: highLevelFilter?.identifier?.value,\n hasResults: true,\n checked: urlFilters?.includes(highLevelFilter?.identifier?.value), //will change\n lowLevelFilters: highLevelFilter?.children\n .map((lowLevelFilter) => ({\n id: lowLevelFilter?.id.toLowerCase(),\n title: lowLevelFilter?.title?.value,\n label: lowLevelFilter?.title?.value,\n identifier: lowLevelFilter?.identifier?.value,\n hasResults: true,\n checked: urlFilters?.includes(lowLevelFilter?.identifier?.value),\n }))\n .sort(sortFilterValues),\n })),\n }));\n};\n\nexport const getTextFacetValues = (advancedFilters) => {\n return advancedFilters\n ? advancedFilters\n .filter((advancedFilter) => advancedFilter?.textValueProperty?.value)\n ?.map((advancedFilter) => ({\n title: advancedFilter?.title?.value,\n facetName: advancedFilter?.textValueProperty?.value,\n }))\n : [];\n};\n\nexport const formatAdvancedFilters = (advancedFilters, pinnedAdvancedFilters, urlTags, urlObj) => {\n return advancedFilters?.map((advancedFilter) => ({\n fieldName: advancedFilter?.isTextAdFilter\n ? advancedFilter?.textValueProperty?.value\n : 'tags',\n title: advancedFilter?.title?.value,\n identifier: advancedFilter?.title?.value,\n searchReset: false,\n totalSelected: 0,\n isTextAdFilter: advancedFilter?.isTextAdFilter,\n isAdFilter: true,\n highLevelFilters: advancedFilter?.isTextAdFilter\n ? advancedFilter?.values?.map((item) => {\n return {\n title: item?.value,\n hasResults: true,\n checked: urlObj[advancedFilter?.textValueProperty?.value]?.includes(\n item?.value\n ),\n id: item?.value,\n identifier: item?.value,\n lowLevelFilters: [],\n };\n })\n : advancedFilter?.filter?.tags[0]?.children.map((item) => {\n let optionValues = flattenFilterOptions(item);\n let titleOption = optionValues.shift();\n return {\n id: titleOption?.id?.toLowerCase(),\n title: titleOption?.title,\n identifier: titleOption?.identifier,\n hasResults: true,\n checked:\n urlTags?.includes(titleOption?.identifier) ||\n pinnedAdvancedFilters?.includes(item?.id),\n lowLevelFilters: optionValues.map((item) => ({\n id: item?.id?.toLowerCase(),\n title: item?.title,\n identifier: item?.identifier,\n hasResults: true,\n checked:\n urlTags?.includes(item?.identifier) ||\n pinnedAdvancedFilters?.includes(item?.id),\n })),\n };\n }),\n }));\n};\n\nexport const constructSearchConditions = (filtersObject) => {\n let searchConditions = [mapMarkerInheritanceCondition, includeInMapCondition];\n //each category is a group\n //need inheritance condition and include in map condition\n //the page tag condition\n filtersObject?.mapTagFilters?.map((category) => {\n let categoryConditions = [];\n category?.highLevelFilters?.map((highLevelFilter) => {\n //on map tag filters do not send the high level tag to search although applied visually\n highLevelFilter?.lowLevelFilters?.map((lowLevelFilter) => {\n if (lowLevelFilter?.checked)\n categoryConditions.push({\n name: category?.fieldName,\n value: lowLevelFilter?.id,\n useor: true,\n });\n });\n });\n categoryConditions.length &&\n searchConditions.push({\n group: categoryConditions,\n });\n });\n filtersObject?.advancedFilters?.map((category) => {\n let categoryConditions = [];\n if (category?.isTextAdFilter) {\n category?.highLevelFilters?.map((highLevelFilter) => {\n if (highLevelFilter?.checked)\n categoryConditions.push({\n name: category?.fieldName,\n value: highLevelFilter?.id,\n useor: true,\n });\n });\n } else {\n category?.highLevelFilters?.map((highLevelFilter) => {\n if (highLevelFilter?.checked)\n categoryConditions.push({\n name: 'tags',\n value: highLevelFilter?.id,\n useor: true,\n });\n highLevelFilter?.lowLevelFilters?.map((lowLevelFilter) => {\n if (lowLevelFilter?.checked)\n categoryConditions.push({\n name: 'tags',\n value: lowLevelFilter?.id,\n useor: true,\n });\n });\n });\n }\n categoryConditions.length &&\n searchConditions.push({\n group: categoryConditions,\n });\n });\n\n return searchConditions;\n};\n\nexport const formatFilterParams = (filters) => {\n let mapFilterKeyValuePairs = filters?.mapTagFilters?.map((category) => {\n let name = category?.fieldName;\n let value = [];\n category?.highLevelFilters?.map((highLevelFilter) => {\n if (highLevelFilter?.checked && highLevelFilter?.hasResults)\n value.push(highLevelFilter?.identifier);\n highLevelFilter?.lowLevelFilters?.map((lowLevelFilter) => {\n if (lowLevelFilter?.checked && lowLevelFilter?.hasResults)\n value.push(lowLevelFilter?.identifier);\n });\n });\n return { name: name, value: value.join() };\n });\n let adFilterKeyValuePairs = [];\n let adFilterKeyValues = filters?.advancedFilters\n ?.map((category) => {\n if (category?.isTextAdFilter) {\n let name = category?.fieldName;\n let value = [];\n category?.highLevelFilters?.map((highLevelFilter) => {\n if (highLevelFilter?.checked && highLevelFilter?.hasResults)\n value.push(highLevelFilter?.identifier);\n highLevelFilter?.lowLevelFilters?.map((lowLevelFilter) => {\n if (lowLevelFilter?.checked && lowLevelFilter?.hasResults)\n value.push(lowLevelFilter?.identifier);\n });\n });\n adFilterKeyValuePairs.push({ name: name, value: value.join() });\n } else {\n let value = [];\n category?.highLevelFilters?.map((highLevelFilter) => {\n if (highLevelFilter?.checked && highLevelFilter?.hasResults)\n value.push(highLevelFilter?.identifier); //need to encode the variables\n highLevelFilter?.lowLevelFilters?.map((lowLevelFilter) => {\n if (lowLevelFilter?.checked && lowLevelFilter?.hasResults)\n value.push(lowLevelFilter?.identifier);\n });\n });\n return value.join();\n }\n })\n .filter((item) => item);\n let tagKeyValuePairs = { name: 'tags', value: adFilterKeyValues.join() };\n return [mapFilterKeyValuePairs, adFilterKeyValuePairs, tagKeyValuePairs];\n};\n","import React, { useEffect, useState, useRef } from 'react';\nimport './project-map-search-bar.scss';\nimport 'mapbox-gl/dist/mapbox-gl.css';\nimport { withSitecoreContext, RichText } from '@sitecore-jss/sitecore-jss-react';\nimport ProjectMapSearchBarFilter from '../ProjectMapSearchBarFilter/ProjectMapSearchBarFilter.jsx';\nimport ProjectMapSearchBarFilterMobile from '../ProjectMapSearchBarFilter/ProjectMapSearchBarFilterMobile.jsx';\nimport AdvancedFilterModal from '../AdvancedFilterModal/AdvancedFilterModal.jsx';\nimport {\n SearchBarIcon,\n MapFilters,\n CloseIcon,\n MapAdvancedFilters as MapAdvancedFiltersIcon,\n} from '../../assets/common.js';\nimport { ChevronLeft, ChevronRight } from '../../assets/LinkIcons.js';\nimport { Button } from '../Button/Button.js';\nimport classnames from 'classnames';\nimport { withTranslation } from 'react-i18next';\nimport getScrollbarWidth from '../../utils/getScrollbarWidth.js';\nimport { getAdFilTotalSelected } from '../ProjectMapContainer/projectMapHelper.jsx';\n\nconst showMobileFilters = () => {\n const scrollY = document.documentElement.style.getPropertyValue('--scroll-y');\n const body = document.body;\n body.style.position = 'fixed';\n body.style.top = `-${scrollY}`;\n};\n\nconst searchBarFilterBlock = 'zn-project-map-search-bar-filter';\nconst searchBarFilterMobileBlock = 'zn-project-map-search-bar-filter-mobile';\n\nexport const ProjectMapSearchBar = ({\n t,\n fields,\n filters,\n activeFilterGroup,\n isLoading,\n searchInput,\n isMobileFilterViewOpen,\n toggleActiveFilterGroup,\n checkLowLevelFilter,\n checkAdvancedFilter,\n toggleHighLevelFilter,\n toggleAdvancedHighLevelFilter,\n checkHighLevelFilter,\n clearAllFilters,\n clearAllAdvancedFiltersFunc,\n clearCategory,\n toggleAdvancedFilter,\n setIsLoading,\n handleSearchInput,\n submitForm,\n toggleMobileFilterView,\n setIsMobileFilterViewOpen,\n sitecoreContext,\n}) => {\n const { data } = fields;\n const mapTitle = data?.datasource?.mapTitle?.value ? data?.datasource?.mapTitle : '';\n const mainSearchPlaceholderText = data?.datasource?.mainPlaceholderText?.value\n ? data?.datasource?.mainPlaceholderText?.value\n : '';\n const dropdownPlaceholderText = data?.datasource?.dropdownPlaceholderText?.value\n ? data?.datasource?.dropdownPlaceholderText?.value\n : '';\n\n const projectMapSearchBarBlock = 'zn-project-map-search-bar';\n const [searchReset, setSearchReset] = useState(false);\n const [scrollWidth, setScrollWidth] = useState(0);\n const [isAdvancedFiltersOpen, setIsAdvancedFiltersOpen] = useState(false);\n const [isAdvancedFiltersMobileOpen, setIsAdvancedFiltersMobileOpen] = useState(false);\n const filterContainer = useRef(null);\n const modalRef = useRef(null);\n const mobileFilterContainer = useRef(null);\n let mainContent;\n\n useEffect(() => {\n mainContent = document?.querySelector('body');\n }, []);\n const modalOpenClass = 'modal-open';\n\n const hideMobileFilters = () => {\n const body = document?.body;\n const scrollY = body.style.top;\n body.style.position = '';\n body.style.top = '';\n window.scrollTo(0, parseInt(scrollY || '0') * -1);\n toggleActiveFilterGroup(null);\n setIsAdvancedFiltersMobileOpen(false);\n };\n\n const focusModalElements = () => {\n const focusableElements =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'; //will need to be updated for custom checkboxes?\n\n if (modalRef.current) {\n const firstFocusableElement = modalRef.current.querySelectorAll(focusableElements)[0];\n const focusableContent = modalRef.current.querySelectorAll(focusableElements);\n const lastFocusableElement = focusableContent[focusableContent.length - 1];\n\n document.addEventListener('keydown', function (e) {\n let isTabPressed = e.key === 'Tab';\n\n if (!isTabPressed) {\n return;\n }\n\n if (e.shiftKey) {\n // if shift key pressed for shift + tab combination\n if (document.activeElement === firstFocusableElement) {\n lastFocusableElement.focus(); // add focus for the last focusable element\n e.preventDefault();\n }\n } else {\n // if tab key is pressed\n if (document.activeElement === lastFocusableElement) {\n // if focused has reached to last focusable element then focus first focusable element after pressing tab\n firstFocusableElement.focus(); // add focus for the first focusable element\n e.preventDefault();\n }\n }\n });\n firstFocusableElement.focus();\n }\n };\n\n const toggleAdvancedFilterModal = () => {\n const nav = document?.querySelector('.zn-main-nav');\n const map = document?.querySelector('.zn-projects-map-container');\n if (!isAdvancedFiltersOpen) {\n nav.style.paddingRight = `${scrollWidth}px`;\n map.style.paddingRight = `${scrollWidth}px`;\n mainContent?.classList?.add(modalOpenClass);\n toggleActiveFilterGroup(null);\n } else {\n nav.style.removeProperty('padding-right');\n map.style.removeProperty('padding-right');\n mainContent?.classList?.remove(modalOpenClass);\n }\n setIsAdvancedFiltersOpen(!isAdvancedFiltersOpen);\n };\n\n const toggleAdvancedFilterModalMobile = () => {\n setIsAdvancedFiltersMobileOpen(!isAdvancedFiltersMobileOpen);\n };\n\n useEffect(() => {\n if (isAdvancedFiltersOpen) focusModalElements();\n }, [isAdvancedFiltersOpen]);\n\n useEffect(() => {\n if (searchReset) setSearchReset(false);\n }, [searchReset]);\n\n //close filters when click on any other part of the page\n useEffect(() => {\n setScrollWidth(getScrollbarWidth());\n function unsetActiveFilterGroup(event) {\n if (\n mobileFilterContainer.current &&\n mobileFilterContainer.current.contains(event.target)\n )\n return;\n if (filterContainer.current && !filterContainer.current.contains(event.target)) {\n toggleActiveFilterGroup(null);\n }\n }\n if (!sitecoreContext?.pageEditing) {\n document.addEventListener('mousedown', unsetActiveFilterGroup);\n return () => {\n document.removeEventListener('mousedown', unsetActiveFilterGroup);\n const body = document.body;\n body.style.position = '';\n body.style.top = '';\n };\n }\n }, []);\n\n useEffect(() => {\n const escFunction = (event) => {\n const nav = document?.querySelector('.zn-main-nav');\n const map = document?.querySelector('.zn-projects-map-container');\n if (event?.key === 'Escape') {\n setIsMobileFilterViewOpen(false);\n hideMobileFilters();\n nav.style.removeProperty('padding-right');\n map.style.removeProperty('padding-right');\n mainContent?.classList?.remove(modalOpenClass);\n setIsAdvancedFiltersOpen(false);\n }\n };\n\n window.addEventListener('keydown', escFunction);\n\n return () => {\n window.removeEventListener('keydown', escFunction);\n };\n }, []);\n\n return (\n
    \n {isAdvancedFiltersOpen && (\n
    \n )}\n \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n {\n toggleMobileFilterView();\n showMobileFilters();\n }}\n >\n \n
    \n {t('Filters')}\n
    \n \n
    \n
    \n \n {filters?.mapTagFilters?.map((filter, index) => {\n if (!filter) return;\n return (\n \n );\n })}\n \n \n \n {isAdvancedFiltersOpen && (\n \n )}\n {\n clearAllFilters();\n setSearchReset(true);\n }}\n >\n {t('ClearAll')}\n \n
    \n
    \n \n
    \n
    \n
    \n {t('Filters')}\n
    \n \n {\n setIsMobileFilterViewOpen(false);\n hideMobileFilters();\n }}\n >\n \n \n \n
    \n {activeFilterGroup == null && !isAdvancedFiltersMobileOpen && (\n
    \n )}\n
    \n \n {!isAdvancedFiltersMobileOpen &&\n filters?.mapTagFilters?.map((filter, index) => {\n if (!filter) return;\n return (\n \n );\n })}\n {!isAdvancedFiltersMobileOpen ? (\n <>\n \n \n {t('AdvancedFilters')}\n
    \n \n \n \n \n \n {getAdFilTotalSelected(filters?.advancedFilters) +\n ' ' +\n t('FiltersSelected')}\n \n \n ) : (\n \n \n \n \n \n \n {t('AdvancedFilters')}\n \n \n
    \n
    \n )}\n {isAdvancedFiltersMobileOpen && (\n \n {filters?.advancedFilters?.map((filter, index) => {\n if (!filter) return;\n if (\n !filter?.highLevelFilters?.filter(\n (option) => option?.hasResults\n ).length\n )\n return;\n return (\n \n );\n })}\n \n )}\n \n {activeFilterGroup == null && (\n
    \n {\n if (isAdvancedFiltersMobileOpen) clearAllAdvancedFiltersFunc();\n else clearAllFilters();\n }}\n >\n {t('ClearAll')}\n \n
    \n {\n setIsMobileFilterViewOpen(false);\n hideMobileFilters();\n }}\n >\n {t('ShowResults')}\n \n
    \n
    \n )}\n \n \n );\n};\n\nexport const BasicProjectMapSearchBar = ProjectMapSearchBar;\nconst ProjectMapSearchBarContext = withSitecoreContext()(BasicProjectMapSearchBar);\nconst ProjectMapSearchBarWithTranslation = withTranslation()(ProjectMapSearchBarContext);\nexport default ProjectMapSearchBarWithTranslation;\n","import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport classnames from 'classnames';\nimport { debounce } from 'throttle-debounce';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { BasicInteractiveMap as ProjectsMap } from '../InteractiveMap/InteractiveMap.jsx';\nimport { BasicProjectMapList as ProjectsList } from '../ProjectMapList/ProjectMapList.jsx';\nimport { BasicProjectMapSearchBar as ProjectsSearchBar } from '../ProjectMapSearchBar/ProjectMapSearchBar.jsx';\nimport { fetchMapTags, fetchMapPropertiesFragment } from '../../actions';\nimport {\n mapTagCondition,\n includeInMapCondition,\n mapMarkerInheritanceCondition,\n MAP_DEBOUNCE_CONST,\n} from '../../utils/constants';\nimport { withTranslation } from 'react-i18next';\nimport { ListView, MapView } from '../../assets/common.js';\nimport { useLocation } from 'react-router-dom';\nimport {\n updateLowLevelFilter,\n updateAdvancedFilter,\n updateHighLevelFilter,\n clearHighLevelFilter,\n updateCategory,\n updateAllCategories,\n updateFacets,\n formatProjectSearchBarFilters,\n constructSearchConditions,\n formatFilterParams,\n formatAdvancedFilters,\n getTextFacetValues,\n updateAdvancedFilterSection,\n updateAdvancedFilterHighLevelSection,\n clearAllAdvancedFilters,\n} from './projectMapHelper.jsx';\n\nimport './project-map-container.scss';\n\nconst ProjectMapContainer = ({\n sitecoreContext,\n projectsMap,\n projectsList,\n projectsSearchBar,\n rendering,\n params,\n t,\n}) => {\n const projectsMapContainerBlock = 'zn-projects-map-container';\n const { MapBoxAPIKey, MapBoxStyleURL } = params;\n\n // map, list, search components of project map container\n let mapComponent = rendering?.placeholders?.projectsMap[0];\n let listComponent = rendering?.placeholders?.projectsList[0];\n let searchBarComponent = rendering?.placeholders?.projectsSearchBar[0];\n\n // selected/default filter folders\n const projectSearchBarFilters =\n searchBarComponent?.fields?.data?.datasource?.mapFilters?.targetItems;\n const defaultSelectedFilters =\n searchBarComponent?.fields?.data?.datasource?.defaultFilters?.targetItems?.map(\n (option) => option?.identifier?.value\n ) || [];\n\n //advanced filters\n let advancedFilters =\n searchBarComponent?.fields?.data?.datasource?.advancedFilters?.targetItems;\n const pinnedAdvancedFilters =\n searchBarComponent?.fields?.data?.datasource?.pinnedAdvancedFilters?.targetItems?.map(\n (option) => option?.id\n ) || [];\n\n // incoming query params\n const queryParams = new URLSearchParams(useLocation()?.search);\n const latParam = queryParams.get('lat');\n const lngParam = queryParams.get('lng');\n const zoomParam = queryParams.get('zoom');\n const keywordParam = queryParams.get('q');\n const regionsParam = queryParams.get('regions') ? queryParams.get('regions')?.split(',') : [];\n const industriesParam = queryParams.get('industries')\n ? queryParams.get('industries')?.split(',')\n : [];\n const tagsParam = queryParams.get('tags') ? queryParams.get('tags')?.split(',') : [];\n let paramObj = {};\n for (var value of queryParams.keys()) {\n paramObj[value] = queryParams.get(value);\n }\n // project map component state variables\n const [mapTags, setMapTags] = useState([]);\n const [spriteData, setSpriteData] = useState({});\n const [isLoading, setIsLoading] = useState(true);\n const [lng, setLng] = useState(\n lngParam\n ? lngParam\n : mapComponent?.fields?.Longitude?.value\n ? parseFloat(mapComponent?.fields?.Longitude?.value)\n : 0\n );\n const [lat, setLat] = useState(\n latParam\n ? latParam\n : mapComponent?.fields?.Latitude?.value\n ? parseFloat(mapComponent?.fields?.Latitude?.value)\n : 0\n );\n const [clearAll, setClearAll] = useState(false);\n const [zoom, setZoom] = useState(\n zoomParam ? zoomParam : mapComponent?.fields?.DefaultZoomLevel?.value\n );\n const [mapMarkerData, setMapMarkerData] = useState({\n data: [],\n searchCondition: false,\n });\n\n //search view component state variables\n const [searchInput, setSearchInput] = useState(keywordParam ? keywordParam : '');\n const [isMobileFilterViewOpen, setIsMobileFilterViewOpen] = useState(false);\n const [filterApplied, setFilterApplied] = useState(false);\n const [activeFilterGroup, setActiveFilterGroup] = useState(null);\n const [isAdvancedFiltersLoaded, setIsAdvancedFiltersLoaded] = useState(false);\n const filterFacets = ['industries', 'regions', 'tags'].concat(\n getTextFacetValues(advancedFilters).map((facet) => facet.facetName)\n );\n const [filters, setFilters] = useState({\n mapTagFilters: formatProjectSearchBarFilters(\n projectSearchBarFilters,\n regionsParam?.concat(industriesParam)?.concat(defaultSelectedFilters)\n ),\n advancedFilters: [],\n });\n const [searchConditions, setSearchConditions] = useState([]);\n const prevActiveGroup = useRef();\n\n useEffect(() => {\n prevActiveGroup.current = activeFilterGroup;\n });\n\n // list view component state variables\n const [listData, setListData] = useState([]);\n const [isListLoading, setIsListLoading] = useState(true);\n const [isMobileListViewOpen, setIsMobileListViewOpen] = useState(false);\n\n // search view filter UI update methods\n const toggleMobileFilterView = () => setIsMobileFilterViewOpen((prevValue) => !prevValue);\n const toggleMobileListView = () => setIsMobileListViewOpen((prevValue) => !prevValue);\n\n const toggleActiveFilterGroup = (index) => {\n if (prevActiveGroup.current === index) {\n setActiveFilterGroup(null);\n } else {\n setActiveFilterGroup(index);\n }\n };\n\n // search view filter data update methods\n const checkLowLevelFilter = useCallback((lowLevelId, highLevelId, categoryId) => {\n setFilters((current) => updateLowLevelFilter(lowLevelId, highLevelId, categoryId, current));\n setFilterApplied(true);\n }, []);\n\n const checkAdvancedFilter = useCallback((lowLevelId, highLevelId) => {\n setFilters((current) => updateAdvancedFilter(lowLevelId, highLevelId, current));\n setFilterApplied(true);\n }, []);\n\n const toggleHighLevelFilter = useCallback((highLevelId, categoryId) => {\n setFilters((current) => updateHighLevelFilter(highLevelId, categoryId, current));\n setFilterApplied(true);\n }, []);\n\n const toggleAdvancedHighLevelFilter = useCallback((highLevelId, categoryId, isClear) => {\n setFilters((current) =>\n updateAdvancedFilterHighLevelSection(highLevelId, categoryId, current, isClear)\n );\n setFilterApplied(true);\n }, []);\n\n const checkHighLevelFilter = useCallback((highLevelId, categoryId, isClear) => {\n setFilters((current) => clearHighLevelFilter(highLevelId, categoryId, current, isClear));\n setFilterApplied(true);\n }, []);\n\n const toggleAdvancedFilter = useCallback((categoryId, isClear) => {\n setFilters((current) => updateAdvancedFilterSection(categoryId, current, isClear));\n setFilterApplied(true);\n }, []);\n\n const clearCategory = useCallback((categoryId) => {\n setFilters((current) => updateCategory(categoryId, current));\n setFilterApplied(true);\n }, []);\n\n const clearAllFilters = () => {\n setActiveFilterGroup(null);\n setSearchInput('');\n setClearAll(true);\n setFilters((current) => updateAllCategories(current));\n setFilterApplied(true);\n };\n\n const clearAllAdvancedFiltersFunc = () => {\n setActiveFilterGroup(null);\n setSearchInput('');\n setFilters((current) => clearAllAdvancedFilters(current));\n setFilterApplied(true);\n };\n\n const updateFilterFacets = (facets) => {\n let flattenedFacets = facets.map((facet) => ({\n name: facet?.name,\n values: facet?.values?.map((item) => item?.value),\n }));\n setFilters((current) => updateFacets(flattenedFacets, current));\n };\n\n const handleSearchInput = (e) => {\n setSearchInput(e.target.value);\n };\n\n const submitForm = (event) => {\n event?.preventDefault();\n updateUrl.current(lat, lng, zoom, filters, searchInput);\n setFilterApplied(true);\n };\n\n useEffect(() => {\n if (filterApplied) {\n setIsLoading(true);\n setIsListLoading(true);\n setSearchConditions(constructSearchConditions(filters));\n setFilterApplied(false);\n }\n }, [filterApplied]);\n\n const updateUrl = useRef(\n debounce(MAP_DEBOUNCE_CONST, (lat, lng, zoom, filters, searchInput) => {\n const [\n mapFilterKeyValuePairs,\n adFilterKeyValuePairs,\n tagKeyValuePairs,\n ] = formatFilterParams(filters);\n const state = { lat, lng, zoom };\n const params = new URLSearchParams(state);\n params.append('q', searchInput);\n mapFilterKeyValuePairs.map((category) =>\n params.append(category?.name, category?.value)\n );\n adFilterKeyValuePairs.map((category) => params.append(category?.name, category?.value));\n params.append(tagKeyValuePairs?.name, tagKeyValuePairs?.value);\n const url = new URL(window.location);\n const newUrl = new URL(url.pathname + '?' + params.toString(), document.baseURI);\n history.replaceState(state, '', newUrl);\n })\n );\n\n useEffect(() => {\n if (!sitecoreContext?.pageEditing) updateUrl.current(lat, lng, zoom, filters, searchInput);\n }, [lat, lng, zoom, filters]);\n\n useEffect(() => {\n let textFacetValues = getTextFacetValues(advancedFilters).map((facet) => facet.facetName);\n let searchConditions = [includeInMapCondition, mapMarkerInheritanceCondition];\n if (textFacetValues.length) {\n fetchMapPropertiesFragment(searchConditions, textFacetValues)\n .then((x) => {\n let textFacets = x?.facets;\n textFacets.map((facet) => {\n advancedFilters = advancedFilters.map((filter) => {\n if (facet?.name === filter?.textValueProperty?.value) {\n return {\n ...filter,\n isTextAdFilter: true,\n values: facet?.values,\n };\n } else return filter;\n });\n });\n setFilters((current) => ({\n mapTagFilters: current.mapTagFilters,\n advancedFilters: formatAdvancedFilters(\n advancedFilters,\n pinnedAdvancedFilters,\n tagsParam,\n paramObj\n ),\n }));\n setIsAdvancedFiltersLoaded(true);\n })\n .catch(() => {});\n } else {\n setFilters((current) => ({\n mapTagFilters: current.mapTagFilters,\n advancedFilters: formatAdvancedFilters(\n advancedFilters,\n pinnedAdvancedFilters,\n tagsParam,\n paramObj\n ),\n }));\n setIsAdvancedFiltersLoaded(true);\n }\n }, []);\n\n useEffect(() => {\n if (isAdvancedFiltersLoaded) {\n setSearchConditions(constructSearchConditions(filters));\n }\n }, [isAdvancedFiltersLoaded]);\n\n // fetch all the map tags\n useEffect(() => {\n let searchCondition = [mapTagCondition];\n let styleURLkey = MapBoxStyleURL?.split('mapbox://styles/')?.[1];\n fetchMapTags(searchCondition)\n .then((x) => {\n const mapTagItems = x?.results;\n setMapTags(\n mapTagItems.map((tag) => ({\n id: tag?.id?.toLowerCase(),\n title: tag?.title,\n path: tag?.svgpath,\n }))\n );\n })\n .catch(() => {});\n\n async function getData(url) {\n const response = await fetch(url);\n const data = await response.json();\n const filteredData = Object.keys(data).filter((key) => key.startsWith('circle_'));\n const arrOfPromises = filteredData.map((item) =>\n fetch(\n `https://api.mapbox.com/styles/v1/${styleURLkey}/sprite/${[\n item,\n ]}?access_token=${MapBoxAPIKey}`\n )\n .then((response) => response.json())\n .then((data) => ({ [item]: data?.svg }))\n );\n return Promise.all(arrOfPromises);\n }\n\n //get circle icons\n if (!sitecoreContext?.pageEditing && MapBoxStyleURL && MapBoxAPIKey) {\n getData(\n `https://api.mapbox.com/styles/v1/${styleURLkey}/sprite?access_token=${MapBoxAPIKey}`\n ).then((data) => setSpriteData(Object.assign({}, ...data)));\n }\n }, []);\n\n return (\n
    \n \n
    \n {sitecoreContext.pageEditing &&
    {projectsSearchBar}
    }\n {!sitecoreContext.pageEditing && searchBarComponent && (\n \n )}\n
    \n \n {sitecoreContext.pageEditing &&
    {projectsList}
    }\n {!sitecoreContext.pageEditing && listComponent && (\n \n )}\n
    \n \n \n
    \n {sitecoreContext.pageEditing &&
    {projectsMap}
    }\n {!sitecoreContext.pageEditing && mapComponent && (\n \n )}\n
    \n \n {mapComponent && (\n
    \n \n {isMobileListViewOpen ? : }\n \n {isMobileListViewOpen ? t('MapView') : t('ListView')}\n
    \n \n \n )}\n \n );\n};\nconst ProjectMapContainerContext = withSitecoreContext()(ProjectMapContainer);\nconst ProjectMapContainerWithTranslation = withTranslation()(ProjectMapContainerContext);\nexport default withPlaceholder(['projectsMap', 'projectsList', 'projectsSearchBar'])(\n ProjectMapContainerWithTranslation\n);\n","import React from 'react';\nimport classnames from 'classnames';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport './project-map-work-article-table.scss';\n\nconst projectTableBlock = 'zn-project-map-work-article-table';\nconst ProjectMapWorkArticleTable = ({ rows, sitecoreContext, rendering }) => {\n const contextFields = sitecoreContext?.route?.fields;\n let selectedAttributes = rendering?.placeholders?.rows?.map(\n (rowItem) => rowItem?.fields?.ContextValueField?.value\n );\n let hasAttributes =\n selectedAttributes.filter((attr) => contextFields?.[attr]?.value).length > 0;\n\n return (\n (hasAttributes || sitecoreContext?.pageEditing) && (\n
    \n {sitecoreContext?.pageEditing ? (\n
    {rows}
    \n ) : (\n \n {rows}\n
    \n )}\n
    \n )\n );\n};\n\nexport const BasicProjectMapWorkArticleTable = ProjectMapWorkArticleTable;\n\nexport default withSitecoreContext()(withPlaceholder('rows')(ProjectMapWorkArticleTable));\n","import React from 'react';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nconst projectWorkTableRowBlock = 'zn-project-map-work-article-table-row';\n\nconst ProjectMapWorkArticleTableDivider = ({ sitecoreContext }) => {\n return !sitecoreContext?.pageEditing ? (\n <>\n \n \n
    \n \n \n \n \n
    \n \n \n \n ) : (\n
    Divider Placeholder
    \n );\n};\n\nexport default withSitecoreContext()(ProjectMapWorkArticleTableDivider);\n","import React from 'react';\nimport classnames from 'classnames';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport Text from '../Text/Text.jsx';\nimport { withTranslation } from 'react-i18next';\n\nconst projectWorkTableRowBlock = 'zn-project-map-work-article-table-row';\n\nconst ProjectMapWorkArticleTableRow = ({ fields, sitecoreContext, t }) => {\n const { Label, Value, ContextValueField } = fields;\n\n const contextValue = ContextValueField?.value\n ? ContextValueField?.value.replace(/\\s/g, '')\n : '';\n\n let tableLabel = Label?.value\n ? Label?.value\n : contextValue\n ? sitecoreContext?.route?.fields?.[contextValue]?.value ||\n (Array.isArray(sitecoreContext?.route?.fields?.[contextValue]) &&\n sitecoreContext?.route?.fields?.[contextValue].length)\n ? t(`${contextValue}`)\n : ''\n : '';\n let tableValue = Value?.value\n ? Value?.value\n : sitecoreContext?.route?.fields?.[contextValue]\n ? Array.isArray(sitecoreContext?.route?.fields?.[contextValue]) &&\n sitecoreContext?.route?.fields?.[contextValue].length\n ? sitecoreContext?.route?.fields?.[contextValue]\n .map((item) =>\n item?.fields?.Title?.value ? item?.fields?.Title?.value : item?.displayName\n )\n .join(', ')\n : sitecoreContext?.route?.fields?.[contextValue]?.value\n : '';\n\n if (ContextValueField?.value === 'Value') {\n let projectValue = sitecoreContext?.route?.fields['Value']?.value\n ? parseInt(sitecoreContext?.route?.fields?.['Value']?.value.replace(/,/g, ''))\n : '';\n let projectCurrency = sitecoreContext?.route?.fields?.['ValueCurrency']?.value\n ? sitecoreContext?.route?.fields?.['ValueCurrency']?.value\n : '';\n let language = sitecoreContext?.language;\n let localizedLanguage = language == 'en' ? 'en' : language == 'fr-CA' ? 'fr' : 'en'; //english fallback\n let langProjectValue = '';\n\n if (projectValue && projectCurrency)\n langProjectValue = new Intl.NumberFormat(localizedLanguage, {\n style: 'currency',\n currency: projectCurrency,\n currencyDisplay: 'narrowSymbol',\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(projectValue);\n\n if (langProjectValue) tableValue = langProjectValue + ' ' + projectCurrency;\n else tableValue = '';\n }\n return sitecoreContext?.pageEditing ? (\n \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n ) : tableValue && tableLabel ? (\n \n {tableLabel}\n {tableValue}\n \n ) : null;\n};\n\nexport default withTranslation()(\n withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields])(ProjectMapWorkArticleTableRow)\n )\n);\n","import React from 'react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport Text from '../Text/Text.jsx';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withTranslation } from 'react-i18next';\n\nimport './project-map-work-table.scss';\n\nconst ProjectMapWorkTable = ({ sitecoreContext, t }) => {\n const contextFields = sitecoreContext?.route?.fields;\n const projectMapBlock = 'zn-project-map-table';\n const hasLocationAttributes =\n contextFields?.Jurisdiction?.value ||\n contextFields?.Province?.value ||\n contextFields?.Country?.value;\n const hasLevelAttributes =\n contextFields?.ProcurementModel?.value || contextFields?.GovernmentLevel?.value;\n const hasClientAttributes =\n contextFields?.ClientName?.value ||\n contextFields?.ClientRole?.value ||\n contextFields?.Value?.value;\n return (\n
    \n {hasLocationAttributes && (\n \n \n {contextFields?.Jurisdiction?.value && (\n \n \n \n \n )}\n {contextFields?.Province?.value && (\n \n \n \n \n )}\n {contextFields?.Country?.value && (\n \n \n \n \n )}\n \n
    {t('Jurisdiction')}\n \n
    {t('Province')}\n \n
    {t('Country')}\n \n
    \n )}\n {hasLevelAttributes && (\n \n \n {contextFields?.ProcurementModel?.value && (\n \n \n \n \n )}\n {contextFields?.GovernmentLevel?.value && (\n \n \n \n \n )}\n \n
    \n {t('ProcurementModel')}\n \n \n
    \n {t('GovernmentLevel')}\n \n \n
    \n )}\n {hasClientAttributes && (\n \n \n {contextFields?.ClientName?.value && (\n \n \n \n \n )}\n {contextFields?.ClientRole?.value && (\n \n \n \n \n )}\n {contextFields?.Value?.value && (\n \n \n \n \n )}\n \n
    {t('Client')}\n \n
    {t('ClientRole')}\n \n
    {t('Value')}\n \n
    \n )}\n
    \n );\n};\n\nexport const ProjectMapWorkTableSitecore = withSitecoreContext()(\n withTranslation()(ProjectMapWorkTable)\n);\nexport const ProjectMapWorkTableStorybook = forStorybookV2(ProjectMapWorkTableSitecore);\nexport default withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n ProjectMapWorkTableSitecore\n);\n","/* eslint-disable no-unused-vars */\nimport React, { useEffect, useState, useCallback } from 'react';\nimport classnames from 'classnames';\nimport './quarterly-animation-section.scss';\nimport { withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { withSitecoreContext, Image as Img } from '@sitecore-jss/sitecore-jss-react';\nimport getScrollbarWidth from '../../utils/getScrollbarWidth.js';\n\nconst qLAnimationSectionBlock = 'zn-quarterly-animation-section';\n\nexport const QuarterlyAnimationSection = ({\n fields,\n quarterlyHero,\n quarterlyIntro,\n sitecoreContext,\n}) => {\n const { Image } = fields;\n const [qLIntro, setqLIntro] = useState(null);\n const [scrollWidth, setScrollWidth] = useState(0);\n const [touchStart, setStartTouch] = useState(null);\n\n const quarterlyAnimationClass = 'quarterly-animation';\n const mainContent = document?.querySelector('body');\n const htmlElement = document?.querySelector('html');\n const mainNavBar = document?.querySelector('.zn-main-nav');\n\n const isEditing = sitecoreContext?.pageEditing;\n\n const scrollAmountThreshold = 5;\n const downArrowKeyCode = '40';\n const upArrowKeyCode = '38';\n const scrollDelay = 1140;\n const bp_s = 768; //mobile breakpoint\n\n const scrollBarHandler = () => {\n htmlElement.style.overflow =\n htmlElement?.style && getWindowSize().innerWidth < bp_s ? 'hidden' : '';\n };\n\n const applyDownwardsScrollAnimation = (qLHero, qLIntro, mainNavBar) => {\n let isNavOpen = document?.querySelector('body').classList.contains('nav-open');\n if (qLHero?.style && qLIntro?.style && !isNavOpen) {\n qLHero?.classList?.remove('scroll-up-animation');\n qLHero?.classList?.add('scroll-down-animation');\n qLIntro?.classList?.remove('scroll-up-animation');\n qLIntro?.classList?.add('scroll-down-animation');\n //remove non scrolling class when animation is completed, delay calculated as\n // hero fade out duration + intro scroll up delay + intro scroll up duration\n setTimeout(function () {\n mainContent?.classList?.remove(quarterlyAnimationClass);\n if (htmlElement?.style) {\n htmlElement.style.overflow = '';\n }\n if (mainNavBar?.style) {\n mainNavBar.style.paddingRight = '';\n }\n }, scrollDelay);\n }\n };\n\n const applyUpwardsScrollAnimation = (qLHero, qLIntro, mainNavBar, scrollWidth) => {\n let isNavOpen = document?.querySelector('body').classList.contains('nav-open');\n if (qLHero?.style && qLIntro?.style && !isNavOpen) {\n mainContent?.classList?.add(quarterlyAnimationClass);\n setTimeout(function () {\n scrollBarHandler();\n }, scrollDelay);\n if (mainNavBar?.style) {\n mainNavBar.style.paddingRight = `${scrollWidth}px`;\n }\n qLHero?.classList?.add('scroll-up-animation');\n qLIntro?.classList?.add('scroll-up-animation');\n }\n };\n\n const handleScroll = useCallback((event, scrollWidth) => {\n let deltaY = event.deltaY;\n let mainNavBar = document?.querySelector('.zn-main-nav');\n let qLAnimationSection = document?.querySelector('.zn-quarterly-animation-section');\n let qLIntro = document?.querySelector('.zn-quarterly-introduction-animation');\n let qLHero = document?.querySelector('.zn-quarterly-landing-hero-animation');\n let sectionTop = qLAnimationSection?.getBoundingClientRect()?.top;\n\n if (sectionTop > 0) {\n if (deltaY > scrollAmountThreshold) {\n applyDownwardsScrollAnimation(qLHero, qLIntro, mainNavBar);\n } else if (deltaY < -scrollAmountThreshold) {\n applyUpwardsScrollAnimation(qLHero, qLIntro, mainNavBar, scrollWidth);\n }\n }\n }, []);\n\n const handleScrollBar = useCallback((event, scrollWidth) => {\n var lastScroll = window?.pageYOffset || document?.documentElement.scrollTop;\n let mainNavBar = document?.querySelector('.zn-main-nav');\n let qLAnimationSection = document?.querySelector('.zn-quarterly-animation-section');\n let qLIntro = document?.querySelector('.zn-quarterly-introduction-animation');\n let qLHero = document?.querySelector('.zn-quarterly-landing-hero-animation');\n let sectionTop = qLAnimationSection?.getBoundingClientRect()?.top;\n let currentScroll = document.documentElement.scrollTop || document.body.scrollTop;\n\n if (sectionTop > 0) {\n if (currentScroll > 0 && lastScroll <= currentScroll) {\n lastScroll = currentScroll;\n applyDownwardsScrollAnimation(qLHero, qLIntro, mainNavBar);\n } else {\n lastScroll = currentScroll;\n applyUpwardsScrollAnimation(qLHero, qLIntro, mainNavBar, scrollWidth);\n }\n }\n }, []);\n\n const handleKeyDown = useCallback((event, scrollWidth) => {\n let keyCode = event?.keyCode;\n let mainNavBar = document?.querySelector('.zn-main-nav');\n let qLAnimationSection = document?.querySelector('.zn-quarterly-animation-section');\n let qLIntro = document?.querySelector('.zn-quarterly-introduction-animation');\n let qLHero = document?.querySelector('.zn-quarterly-landing-hero-animation');\n let sectionTop = qLAnimationSection?.getBoundingClientRect()?.top;\n\n if (sectionTop > 0) {\n if (keyCode == downArrowKeyCode) {\n applyDownwardsScrollAnimation(qLHero, qLIntro, mainNavBar);\n } else if (keyCode == upArrowKeyCode) {\n applyUpwardsScrollAnimation(qLHero, qLIntro, mainNavBar, scrollWidth);\n }\n }\n }, []);\n\n const handleTouchEnd = useCallback((event, touchStart, scrollWidth) => {\n let end = event.changedTouches[0];\n let mainNavBar = document?.querySelector('.zn-main-nav');\n let qLAnimationSection = document?.querySelector('.zn-quarterly-animation-section');\n let qLIntro = document?.querySelector('.zn-quarterly-introduction-animation');\n let qLHero = document?.querySelector('.zn-quarterly-landing-hero-animation');\n let sectionTop = qLAnimationSection?.getBoundingClientRect()?.top;\n\n if (sectionTop > 0) {\n if (end?.screenY - touchStart?.screenY < -scrollAmountThreshold) {\n applyDownwardsScrollAnimation(qLHero, qLIntro, mainNavBar);\n } else if (end?.screenY - touchStart?.screenY > scrollAmountThreshold) {\n applyUpwardsScrollAnimation(qLHero, qLIntro, mainNavBar, scrollWidth);\n }\n }\n }, []);\n\n useEffect(() => {\n setqLIntro(document?.querySelector('.zn-quarterly-introduction-animation'));\n setScrollWidth(getScrollbarWidth());\n\n function scrollCallback(e) {\n handleScroll(e, scrollWidth);\n }\n\n function keyDownCallback(e) {\n handleKeyDown(e, scrollWidth);\n }\n\n function touchStartCallback(e) {\n setStartTouch(e?.changedTouches[0]);\n }\n\n function touchEndCallback(e) {\n handleTouchEnd(e, touchStart, scrollWidth);\n }\n function scrollBarCallback(e) {\n handleScrollBar(e, scrollWidth);\n }\n\n if (!isEditing) {\n window?.addEventListener('wheel', scrollCallback);\n window?.addEventListener('keydown', keyDownCallback);\n window.addEventListener('touchstart', touchStartCallback);\n window.addEventListener('touchmove', touchEndCallback);\n window.addEventListener('scroll', scrollBarCallback);\n }\n\n return () => {\n window?.removeEventListener('wheel', scrollCallback);\n window?.removeEventListener('keydown', keyDownCallback);\n window.removeEventListener('touchstart', touchStartCallback);\n window.removeEventListener('touchmove', touchEndCallback);\n window.removeEventListener('scroll', scrollBarCallback);\n };\n }, [handleScroll, touchStart, scrollWidth]);\n\n useEffect(() => {\n setScrollWidth(getScrollbarWidth());\n if (!isEditing) {\n mainContent?.classList?.add(quarterlyAnimationClass);\n scrollBarHandler();\n\n if (mainNavBar?.style) {\n mainNavBar.style.paddingRight = `${getScrollbarWidth()}px`;\n }\n }\n return () => {\n mainContent?.classList?.remove(quarterlyAnimationClass);\n if (htmlElement?.style) {\n htmlElement.style.overflow = '';\n }\n if (mainNavBar?.style) {\n mainNavBar.style.paddingRight = ``;\n }\n };\n }, [fields?.data?.contextItem?.id]);\n\n useEffect(() => {\n function handleWindowResize() {\n scrollBarHandler();\n }\n\n window.addEventListener('resize', handleWindowResize);\n\n return () => {\n window.removeEventListener('resize', handleWindowResize);\n };\n }, []);\n\n function getWindowSize() {\n const { innerWidth, innerHeight } = window;\n return { innerWidth, innerHeight };\n }\n\n return (\n \n \n {isEditing && }\n \n {quarterlyHero}\n {quarterlyIntro}\n \n );\n};\n\nexport default withSitecoreContext()(\n withPlaceholder(['quarterlyHero', 'quarterlyIntro'])(QuarterlyAnimationSection)\n);\n","import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport './quarterly-article-navigation-banner.scss';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { ArrowLeft, ArrowRight } from '../../assets/LinkIcons.js';\n\nexport const QuarterlyArticleNavigationBanner = ({ fields }) => {\n const {\n Title,\n PreviousArticleText,\n PreviousArticleAltText,\n PreviousArticleLink,\n NextArticleText,\n NextArticleAltText,\n NextArticleLink,\n } = fields;\n\n const quarArticleNavBannerBlock = 'zn-quarterly-article-navigation-banner';\n\n return (\n
    \n
    \n \n
    \n {Title?.value}\n
    \n
    \n
    \n \n \n \n
    \n \n {PreviousArticleText?.value}\n
    \n \n
    \n
    \n {Title?.value}\n
    \n
    \n \n \n {NextArticleText?.value}\n \n \n \n \n \n \n \n \n );\n};\n\nQuarterlyArticleNavigationBanner.propTypes = {\n fields: PropTypes.shape({\n Title: PropTypes.shape({\n value: PropTypes.string,\n }),\n PreviousArticleText: PropTypes.shape({\n value: PropTypes.string,\n }),\n PreviousArticleAltText: PropTypes.shape({\n value: PropTypes.string,\n }),\n PreviousArticleLink: PropTypes.shape({\n value: PropTypes.string,\n }),\n NextArticleText: PropTypes.shape({\n value: PropTypes.string,\n }),\n NextArticleAltText: PropTypes.shape({\n value: PropTypes.string,\n }),\n NextArticleLink: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n};\n\nexport const QuarterlyArticleNavigationBannerStorybook = forStorybook(\n QuarterlyArticleNavigationBanner\n);\n\nexport default QuarterlyArticleNavigationBanner;\n","import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport './quarterly-introduction.scss';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\n\nconst qLIntroBlock = 'zn-quarterly-introduction';\n\nexport const QuarterlyIntroduction = ({ fields, sectionLinks }) => {\n const { Image, IntroductionParagraph, SectionsLabel } = fields;\n return (\n
    \n
    \n
    \n
    \n {IntroductionParagraph?.value}\n
    \n
    \n
    \n {SectionsLabel?.value}\n
    \n
    \n
      {sectionLinks}
    \n
    \n
    \n \n );\n};\n\nQuarterlyIntroduction.propTypes = {\n fields: PropTypes.shape({\n Image: PropTypes.shape({\n value: PropTypes.object,\n }),\n IntroductionParagraph: PropTypes.shape({\n value: PropTypes.string,\n }),\n SectionsLabel: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n};\n\nexport const QuarterlyIntroductionStorybook = forStorybook(QuarterlyIntroduction);\n\nexport default withPlaceholder('sectionLinks')(QuarterlyIntroduction);\n","import React from 'react';\nimport classnames from 'classnames';\nimport './quarterly-introduction-animation.scss';\nimport '../QuarterlyIntroduction/quarterly-introduction.scss';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nconst qLIntroAnimationBlock = 'zn-quarterly-introduction-animation';\nconst qLIntroBlock = 'zn-quarterly-introduction';\n\nexport const QuarterlyIntroductionAnimation = ({ fields, sectionLinks, sitecoreContext }) => {\n const isEditing = sitecoreContext?.pageEditing;\n\n const { IntroductionParagraph, SectionsLabel } = fields;\n return (\n \n
    \n
    \n {IntroductionParagraph?.value}\n
    \n
    \n
    \n {SectionsLabel?.value}\n
    \n
    \n
      {sectionLinks}
    \n
    \n
    \n \n );\n};\nexport default withSitecoreContext()(\n withPlaceholder('sectionLinks')(QuarterlyIntroductionAnimation)\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Text from '../Text';\nimport { HighlightColorEnum } from '../../utils/enums';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { ArrowRight } from '../../assets/LinkIcons.js';\nimport './quarterly-introduction-list-item.scss';\n\nconst qlIntroItemBlock = 'zn-quarterly-introduction-list-item';\n\nconst QuarterlyIntroductionListItem = ({ fields }) => {\n const { SectionTitle, SectionHighlightColour, SectionID } = fields;\n const highlightColour = SectionHighlightColour?.value\n ? SectionHighlightColour.value.toLowerCase()\n : HighlightColorEnum.teal.toLowerCase();\n\n return (\n
  • \n \n \n
    \n \n
    \n \n
    \n
  • \n );\n};\n\nexport const QuarterlyIntroductionListItemStorybook = forStorybook(QuarterlyIntroductionListItem);\n\nexport default QuarterlyIntroductionListItem;\n\nQuarterlyIntroductionListItem.prototype = {\n fields: PropTypes.shape({\n SectionTitle: PropTypes.shape({\n value: PropTypes.string,\n }).isRequired,\n SectionHighlightColour: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(HighlightColorEnum)),\n }),\n SectionID: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n};\n","import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport './quarterly-landing-hero.scss';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { AccentColorEnum } from '../../utils/enums';\nimport HeadingAccent from '../HeadingAccent';\nimport Text from '../Text';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\nimport { withTranslation } from 'react-i18next';\n\nconst qLHeroBlock = 'zn-quarterly-landing-hero';\n\nexport const QuarterlyLandingHero = ({ t, fields }) => {\n const { Title, FeaturedImage, OverlayImage, Eyebrow, Description, AccentColor } = fields;\n return (\n
    \n
    \n
    \n \n \n \n \n
    \n
    \n \n \n
    \n

    {t('Scroll')}

    \n
    \n \n
    \n );\n};\n\nQuarterlyLandingHero.propTypes = {\n fields: PropTypes.shape({\n Title: PropTypes.shape({\n value: PropTypes.string,\n }),\n FeaturedImage: PropTypes.shape({\n value: PropTypes.object,\n }),\n OverlayImage: PropTypes.shape({\n value: PropTypes.object,\n }),\n AccentColor: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(AccentColorEnum)),\n }),\n Description: PropTypes.shape({\n value: PropTypes.string,\n }),\n Eyebrow: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n};\n\nexport const QuarterlyLandingHeroStorybook = forStorybook(QuarterlyLandingHero);\n\nexport default withTranslation()(QuarterlyLandingHero);\n","/* eslint-disable no-unused-vars */\nimport React, { useEffect, useRef } from 'react';\nimport classnames from 'classnames';\nimport './quarterly-landing-hero-animation.scss';\nimport '../QuarterlyLandingHero/quarterly-landing-hero.scss';\nimport Text from '../Text';\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { withTranslation } from 'react-i18next';\nimport { setAnimationInterObserver } from '../../utils/observers.jsx';\nimport { QuarterlyOverlayColor } from '../../utils/enums';\n\nconst qLHeroAnimationBlock = 'zn-quarterly-landing-hero-animation';\nconst qLHeroBlock = 'zn-quarterly-landing-hero';\n\nexport const QuarterlyLandingHeroAnimation = ({ fields, t, sitecoreContext }) => {\n const { Title, Eyebrow, Description, AccentColor, OverlayColor } = fields;\n const overlayColor = OverlayColor?.value\n ? OverlayColor?.value?.toLowerCase()\n : QuarterlyOverlayColor.white.toLowerCase();\n const isEditing = sitecoreContext?.pageEditing;\n\n const scrollContainerRef = useRef(null);\n const contentContainerRef = useRef(null);\n const minSpaceAboveScroll = 24;\n\n useEffect(() => {\n const selector = `.${qLHeroAnimationBlock}`;\n const newClass = `${qLHeroAnimationBlock}__animation-start`;\n\n // Scroll fade up reveal\n const fadeUpSelector = `.${qLHeroAnimationBlock} .fadeIn`;\n const fadeUpClass = 'fadeInActive';\n // Scroll reveal\n const scrollSelector = `.${qLHeroAnimationBlock} .expandDown`;\n const scrollClass = 'expandDownActive';\n // Heading reveal\n const headingRevealSelector = `.${qLHeroAnimationBlock} .headingFadeIn`;\n const headingRevealClass = 'headingFadeInActive';\n // // Headding accent\n const headingAccentSelector = `.${qLHeroAnimationBlock} .expandRight`;\n const headingAccentClass = 'expandRightActive';\n // Adds the class that activates the animation whenever the components are in the view\n setAnimationInterObserver(selector, newClass);\n setAnimationInterObserver(fadeUpSelector, fadeUpClass);\n setAnimationInterObserver(scrollSelector, scrollClass);\n setAnimationInterObserver(headingRevealSelector, headingRevealClass);\n setAnimationInterObserver(headingAccentSelector, headingAccentClass);\n\n const scrollContainerTop = scrollContainerRef?.current?.getBoundingClientRect()?.top;\n const contentContainerBottom = contentContainerRef?.current?.getBoundingClientRect()\n ?.bottom;\n\n if (scrollContainerTop - contentContainerBottom < minSpaceAboveScroll)\n scrollContainerRef.current.style.display = 'none';\n\n return () => {\n scrollContainerRef.current.style.display = '';\n };\n }, []);\n\n return (\n \n \n \n
    \n
    \n \n \n \n
    \n \n \n
    \n \n \n \n \n {t('Scroll')}\n

    \n \n \n );\n};\n\nexport default withSitecoreContext()(withTranslation()(QuarterlyLandingHeroAnimation));\n","import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport './quarterly-section-header.scss';\nimport forStorybookV2 from '../../utils/forStorybook.jsx';\nimport { AccentColorEnum } from '../../utils/enums';\nimport HeadingAccent from '../HeadingAccent';\nimport { Image, RichText } from '@sitecore-jss/sitecore-jss-react';\nimport { withTranslation } from 'react-i18next';\n\nconst qLSectionHeader = 'zn-quarterly-section-header';\n\nexport const QuarterlySectionHeader = ({ fields }) => {\n const { Title, FeaturedImage, Description, AccentColor } = fields;\n\n return (\n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n );\n};\n\nQuarterlySectionHeader.propTypes = {\n fields: PropTypes.shape({\n Title: PropTypes.shape({\n value: PropTypes.string,\n }),\n FeaturedImage: PropTypes.shape({\n value: PropTypes.object,\n }),\n AccentColor: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(AccentColorEnum)),\n }),\n Description: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n};\n\nexport const QuarterlySectionHeaderStorybook = forStorybookV2(QuarterlySectionHeader);\n\nexport default withTranslation()(QuarterlySectionHeader);\n","export default {\n SearchPrompt: 'Search',\n AddDateFilters: true,\n DefaultFilters: [],\n Filters: [\n {\n label: 'Industries',\n dropdown: true,\n primary: true,\n options: [\n {\n label: 'Corporate restructuring and advisory',\n href: 'google.com',\n defaultChecked: true,\n },\n {\n label: 'Corporate restructur',\n href: 'google.com',\n },\n {\n label: 'Emerging companies and VC',\n href: 'google.com',\n defaultChecked: true,\n },\n {\n label: 'Environmental',\n href: 'google.com',\n },\n {\n label: 'Managed assets',\n href: 'google.com',\n },\n {\n label: 'M&A',\n href: 'google.com',\n defaultChecked: true,\n },\n {\n label: 'Pensions and employment',\n href: 'google.com',\n },\n {\n label: 'Private equity',\n href: 'google.com',\n },\n {\n label: 'Real estate',\n href: 'google.com',\n defaultChecked: true,\n },\n {\n label: 'Pensions and employment',\n href: 'google.com',\n },\n {\n label: 'Private equity',\n href: 'google.com',\n },\n {\n label: 'Real estate',\n href: 'google.com',\n defaultChecked: true,\n },\n ],\n },\n {\n label: 'Regions',\n dropdown: true,\n primary: true,\n options: [\n { label: 'Corporate restructuring and advisory', href: 'google.com' },\n { label: 'Emerging companies and VC', href: 'google.com' },\n { label: 'Environmental', href: 'google.com' },\n { label: 'Managed assets', href: 'google.com' },\n { label: 'M&A', href: 'google.com' },\n { label: 'Pensions and employment', href: 'google.com' },\n { label: 'Private equity', href: 'google.com' },\n { label: 'Real estate', href: 'google.com', defaultChecked: true },\n ],\n },\n {\n label: 'Services',\n dropdown: true,\n primary: true,\n options: [\n { label: 'Corporate restructuring and advisory', href: 'google.com' },\n { label: 'Emerging companies and VC', href: 'google.com' },\n { label: 'Environmental', href: 'google.com' },\n { label: 'Managed assets', href: 'google.com' },\n { label: 'M&A', href: 'google.com' },\n { label: 'Pensions and employment', href: 'google.com' },\n { label: 'Private equity', href: 'google.com' },\n { label: 'Real estate', href: 'google.com', defaultChecked: true },\n { label: 'Corporate restructuring and advisory', href: 'google.com' },\n { label: 'Emerging companies and VC', href: 'google.com' },\n { label: 'Environmental', href: 'google.com' },\n { label: 'Managed assets', href: 'google.com' },\n { label: 'M&A', href: 'google.com' },\n { label: 'Pensions and employment', href: 'google.com' },\n { label: 'Private equity', href: 'google.com' },\n { label: 'Real estate', href: 'google.com', defaultChecked: true },\n { label: 'Corporate restructuring and advisory', href: 'google.com' },\n { label: 'Emerging companies and VC', href: 'google.com' },\n { label: 'Environmental', href: 'google.com' },\n { label: 'Managed assets', href: 'google.com' },\n { label: 'M&A', href: 'google.com' },\n { label: 'Pensions and employment', href: 'google.com' },\n { label: 'Private equity', href: 'google.com' },\n { label: 'Real estate', href: 'google.com', defaultChecked: true },\n ],\n },\n ],\n};\n","/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport classnames from 'classnames';\nimport repWorkData from '../../utils/mock/repWorkData';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { SizeEnum } from '../../utils/enums.js';\nimport { withTranslation } from 'react-i18next';\nimport { Button } from '../Button/Button.js';\nimport CheckboxWrapper from '../Checkbox/CheckboxWrapper.jsx';\nimport { ChevronDown, ChevronUp, ChevronLeft, ChevronRight } from '../../assets/LinkIcons.js';\nimport './representative-work-filter.scss';\n\nconst RepresentativeWorkFilter = ({\n translation,\n fields,\n index,\n activeFilter,\n toggleFilter,\n checkBox,\n uncheckAllBoxes,\n onApplyFilters,\n disabledState,\n setDisabledState,\n}) => {\n const representativeWorkFilterBlock = 'zn-representative-work-filter';\n const { label, options, totalSelected, parentId } = fields;\n\n const selectableFilters = options.filter((item) => item.hasResults).length;\n\n return (\n \n {\n if (!disabledState) toggleFilter(index);\n }}\n >\n \n {label}\n
    \n {totalSelected > 0 ? ` (${totalSelected})` : ''}\n
    \n \n \n {index === activeFilter ? (\n \n ) : (\n \n )}\n \n \n {index === activeFilter ? (\n \n ) : (\n \n )}\n \n \n \n \n {totalSelected > 0 && `${totalSelected} ${translation('FiltersSelected')}`}\n \n \n {selectableFilters ? (\n options.map((option, index) => {\n if (!option.hasResults) return; //if no facetted results do not show\n return (\n \n );\n })\n ) : (\n
  • \n \n {translation('NoMatchingFiltersTitle')}\n \n \n {translation('NoMatchingFiltersDescription')}\n \n
  • \n )}\n \n \n {\n uncheckAllBoxes(parentId);\n }}\n >\n {translation('ResetFilter')}\n \n
    \n \n
    \n \n
    \n \n );\n};\n\nRepresentativeWorkFilter.defaultProps = repWorkData;\n\nexport const RepresentativeWorkFilterStorybook = forStorybook(RepresentativeWorkFilter);\n\nconst RepresentativeWorkWithTranslation = withTranslation()(RepresentativeWorkFilter);\n\nexport default RepresentativeWorkWithTranslation;\n","import React, { useState, useRef, useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport classnames from 'classnames';\nimport Lottie from 'react-lottie';\nimport animationData from '../../assets/bubbleLoading';\nimport { SearchBarIcon, CloseIcon, CloseBubbleIcon } from '../../assets/common.js';\nimport { Button } from '../Button/Button.js';\nimport repWorkData from '../../utils/mock/repWorkData';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport FeaturedListItem from '../FeaturedListItem/FeaturedListItem.jsx';\nimport Pagination from '../Pagination/Pagination.jsx';\nimport { withTranslation } from 'react-i18next';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { HighlightColorItemEnum, LinkTargetValueEnum } from '../../utils/enums.js';\nimport { ChevronDown, ChevronUp } from '../../assets/LinkIcons.js';\nimport RepresentativeWorkFilter from '../RepresentativeWorkFilter/RepresentativeWorkFilter.jsx';\nimport '../SearchInput/search-input.scss';\nimport './representative-work.scss';\nimport 'url-search-params-polyfill';\nimport { fetchResults, fetchTagIds } from '../../actions';\nimport {\n formatSearchParams,\n sortFilterValues,\n decodeURIComponentSafe,\n} from '../../utils/searchHelpers.jsx';\nimport {\n tagNameCondition,\n teaserDateSortBy,\n workItemTemplate,\n subTagNameCondition,\n} from '../../utils/constants.js';\nimport usePdfView from '../../utils/hooks/usePdfView.jsx';\n\nconst defaultAnimationOptions = {\n loop: true,\n autoplay: true,\n animationData: animationData,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n};\n\nconst flattenFilterOptions = (filter) => {\n let array = [];\n array.push({ title: filter.title?.value, identifier: filter.identifier?.value, id: filter.id });\n if (Array.isArray(filter.children)) {\n filter.children.forEach(function (a) {\n array = array.concat(flattenFilterOptions(a));\n });\n }\n return array;\n};\n\nconst formatFilter = (filter, defaultFilters, pageTags) => {\n return {\n label: filter[0]?.title,\n options: filter.slice(1).map((option) => ({\n label: option?.title,\n tagId: option.id,\n identifier: option?.identifier,\n defaultChecked:\n defaultFilters.includes(option.identifier) || pageTags.includes(option.id),\n })),\n };\n};\n\nconst setTotalSelected = (filter) => {\n return filter.options?.filter((option) => option.defaultChecked).length;\n};\n\nconst countUpdatedOptions = (options) => {\n return options.filter((option) => option.checked).length;\n};\n\nconst showMobileFilters = () => {\n const scrollY = document.documentElement.style.getPropertyValue('--scroll-y');\n const body = document.body;\n body.style.position = 'fixed';\n body.style.top = `-${scrollY}`;\n};\n\nconst hideMobileFilters = () => {\n const body = document.body;\n const scrollY = body.style.top;\n body.style.position = '';\n body.style.top = '';\n window.scrollTo(0, parseInt(scrollY || '0') * -1);\n};\n\nconst formatFilterTitle = (filter) => {\n return filter?.toLowerCase().replace(/\\s/g, '');\n};\n\nconst RepresentativeWork = ({ t, fields, sitecoreContext }) => {\n const representativeWorkBlock = 'zn-representative-work';\n const pageTags = sitecoreContext?.route?.fields?.Tags;\n const serviceName = sitecoreContext?.route?.fields?.ServiceName?.value || '';\n const { data } = fields;\n const Filters = data?.datasource?.filters?.targetItems || [];\n const DefaultFilters =\n data?.datasource?.defaultFilters?.targetItems?.map((option) => option.identifier.value) ||\n [];\n const SearchPrompt = data?.datasource?.searchPrompt?.value || t('Keywords');\n const CTAText = data?.datasource?.cTAText?.value || t('LearnMore');\n const applyDefaultPageTags = data?.datasource?.applyDefaultPageTags?.value || '0';\n const applyRecommendedFilters = data?.datasource?.applyRecommendedFilters?.value || '0';\n const serviceNameOverride = data?.datasource?.serviceNameOverride?.value || '';\n const finalServiceName = serviceNameOverride ? serviceNameOverride : serviceName;\n\n const pageTagIds =\n applyDefaultPageTags === '1'\n ? pageTags.map((item) => item.id.replace(/-/g, '').toUpperCase())\n : [];\n\n const flattenedFilters = Filters.length\n ? Filters.map((filter) =>\n formatFilter(flattenFilterOptions(filter), DefaultFilters, pageTagIds)\n )\n : [];\n\n let incomingSearchParams = decodeURI(useLocation().search)\n .replace('?', '')\n .split('&')\n .map((param) => {\n if (!param?.split('=')) return;\n else return param.split('=');\n })\n .reduce((values, [key, value]) => {\n values[key] = value?.split(',').map((item) => decodeURIComponentSafe(item));\n return values;\n }, {});\n\n //search variables\n const queryParamsString = useLocation()?.search;\n const pathname = useLocation()?.pathname;\n const incomingSearchParam = incomingSearchParams['q'] || [];\n const incomingPageParam = incomingSearchParams['page'] || [];\n const pdfView = usePdfView();\n\n const itemsPerPage = pdfView ? 10 : 5;\n const [results, setResults] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [resultCount, setResultCount] = useState();\n const [searchParams, setSearchParams] = useState(\n incomingSearchParam[0] ? incomingSearchParam[0] : ''\n );\n const page = incomingPageParam[0] ? parseInt(incomingPageParam[0], 10) : 1;\n const [pageLoadingState, setPageLoadingState] = useState(0);\n const [pageTagCondition, setPageTagCondition] = useState({});\n const [filtersAppliedObject, setFiltersAppliedObject] = useState({\n page: page,\n isFilterApplied: false,\n });\n const [disabledState, setDisabledState] = useState(false);\n const [allFilters, setAllFilters] = useState([]);\n\n //UI state variables\n const [setActiveFilterGroup, setActiveFilterGroupState] = useState(null);\n const [setMobileActive, setMobileActiveState] = useState(false);\n const [pageTitle, setPageTitle] = useState('');\n const [firstFacetLoad, setFirstFacetLoad] = useState(true);\n const prevActiveGroup = useRef();\n const repWorkFilterRef = useRef(null);\n const searchInputRef = useRef(null);\n\n const onApplyFilters = () => {\n setActiveFilterGroupState(null);\n setMobileActiveState(false);\n };\n\n const updateClearOptions = (args) => {\n let newArray = [];\n const { oldOptions, defaultFilters } = args;\n\n for (let i = 0; i < oldOptions.length; i++) {\n newArray[i] = {\n ...oldOptions[i],\n checked:\n pageTagIds.includes(oldOptions[i].tagId) ||\n defaultFilters.includes(oldOptions[i].label)\n ? true\n : false,\n };\n }\n return newArray;\n };\n\n const clearSingularFilter = React.useCallback((pId) => {\n setAllFilters((current) =>\n current.map((item) => {\n if (item.parentId === pId) {\n let updatedOptions = updateClearOptions({\n oldOptions: item.options,\n defaultFilters: DefaultFilters,\n });\n\n return {\n ...item,\n totalSelected: countUpdatedOptions(updatedOptions),\n options: updatedOptions,\n };\n } else return item;\n })\n );\n setFiltersAppliedObject(() => ({\n page: 1,\n isFilterApplied: true,\n }));\n setDisabledState(true);\n }, []);\n\n const clearAllFilters = () => {\n if (!disabledState) {\n setAllFilters((current) =>\n current.map((item) => {\n let updatedOptions = updateClearOptions({\n oldOptions: item.options,\n defaultFilters: DefaultFilters,\n });\n return {\n ...item,\n totalSelected: countUpdatedOptions(updatedOptions),\n options: updatedOptions,\n };\n })\n );\n setActiveFilterGroupState(null);\n setSearchParams('');\n setFiltersAppliedObject(() => ({\n page: 1,\n isFilterApplied: true,\n }));\n setDisabledState(true);\n }\n };\n\n const updateCheckedOption = (args) => {\n let newArray = [];\n const { oldOptions, newValue, currentId } = args;\n\n for (let i = 0; i < oldOptions.length; i++) {\n if (oldOptions[i].id === currentId) {\n newArray[i] = { ...oldOptions[i], checked: newValue };\n } else {\n newArray[i] = oldOptions[i];\n }\n }\n return newArray;\n };\n\n const changeTotalSelected = (item, updatedId) => {\n let newCount = item.totalSelected;\n if (item.totalSelected === 0 && !updatedId) {\n return 0;\n } else {\n if (updatedId) {\n newCount++;\n } else {\n newCount--;\n }\n return newCount;\n }\n };\n\n const checkSingularBox = React.useCallback((id, pId) => {\n setAllFilters((current) =>\n current.map((item) => {\n if (item.parentId === pId) {\n let updatedOptions = [];\n let updatedId;\n item.options.map((option) => {\n if (option.id === id) {\n updatedId = !option.checked;\n updatedOptions = updateCheckedOption({\n oldOptions: item.options,\n newValue: updatedId,\n currentId: id,\n });\n }\n });\n return {\n ...item,\n totalSelected: changeTotalSelected(item, updatedId),\n options: updatedOptions,\n };\n } else return item;\n })\n );\n setFiltersAppliedObject(() => ({\n page: 1,\n isFilterApplied: true,\n }));\n setDisabledState(true);\n }, []);\n\n const toggleActiveFilterGroup = (index) => {\n if (!disabledState) {\n if (prevActiveGroup.current === index) {\n setActiveFilterGroupState(null);\n } else {\n setActiveFilterGroupState(index);\n }\n }\n };\n\n useEffect(() => {\n prevActiveGroup.current = setActiveFilterGroup;\n\n window.addEventListener('scroll', () => {\n document.documentElement.style.setProperty('--scroll-y', `${window.scrollY}px`);\n });\n });\n\n const handleSearchParams = (e) => {\n setSearchParams(e.target.value);\n };\n\n const filterParams = (label, byIdentifier) => {\n const filtered = allFilters.reduce(\n (array, filter) => (\n formatFilterTitle(filter.label) === label &&\n array.push(\n filter.options\n .filter(function (option) {\n return option.checked;\n })\n .map(function (option) {\n return byIdentifier ? option.identifier : option.tagId;\n })\n ),\n array\n ),\n []\n );\n return filtered.flat();\n };\n\n const formatAllFilters = (pageId) => {\n let allFilters = flattenedFilters.length\n ? applyRecommendedFilters === '1'\n ? flattenedFilters //if sub tag filter included do not include the filter dropdown that contains the tag of the expertise page we are on\n .filter(\n (filter) => !filter.options.map((option) => option.tagId).includes(pageId)\n )\n .map((filter) => ({\n label: filter.label,\n parentId: filter.label,\n totalSelected: setTotalSelected(filter),\n peopleOnly: false,\n options: filter.options\n ? filter.options\n .map((option, index) => ({\n id: index,\n tagId: option.tagId,\n label: option.label,\n identifier: option.identifier,\n hasResults: true,\n checked:\n option.defaultChecked ||\n incomingSearchParams['tags']?.includes(\n option.identifier\n ),\n }))\n .sort(sortFilterValues)\n : [],\n }))\n : flattenedFilters.map((filter) => ({\n label: filter.label,\n parentId: filter.label,\n totalSelected: setTotalSelected(filter),\n peopleOnly: false,\n options: filter.options\n ? filter.options\n .map((option, index) => ({\n id: index,\n tagId: option.tagId,\n label: option.label,\n identifier: option.identifier,\n hasResults: true,\n checked: option.defaultChecked ? true : false,\n }))\n .sort(sortFilterValues)\n : [],\n }))\n : [];\n return allFilters;\n };\n\n const constructSearchConditions = () => {\n let searchConditions = [];\n if (applyRecommendedFilters === '1' && Object.keys(pageTagCondition).length !== 0)\n searchConditions.push(pageTagCondition); //always apply tag associated to page if sub tag variant selected\n let selectedFilterOptions = Object.assign(\n ...allFilters.map((filter) => ({\n [formatFilterTitle(filter.label)]: filterParams(\n formatFilterTitle(filter.label)\n ).flat(),\n }))\n );\n // eslint-disable-next-line no-unused-vars\n for (const [key, value] of Object.entries(selectedFilterOptions)) {\n if (selectedFilterOptions[key]?.length > 0 && key !== formatFilterTitle(pageTitle)) {\n searchConditions.push({\n group: selectedFilterOptions[key]?.map((item) =>\n formatSearchParams(tagNameCondition, item.toLowerCase())\n ),\n });\n } else if (\n selectedFilterOptions[key]?.length > 0 &&\n key === formatFilterTitle(pageTitle)\n ) {\n //apply the subfilter association and the parent association!\n searchConditions.push({\n group: selectedFilterOptions[key]?.map((item) =>\n formatSearchParams(subTagNameCondition, item.toLowerCase())\n ),\n });\n }\n }\n return searchConditions;\n };\n\n const submitForm = (event) => {\n event?.preventDefault();\n setFiltersAppliedObject(() => ({\n page: 1,\n isFilterApplied: true,\n }));\n };\n\n const updateHasResults = (options, facettedResults, mappedFacetKey) => {\n let newArray = [];\n let mappedFacetArray = facettedResults[mappedFacetKey];\n\n for (let i = 0; i < options?.length; i++) {\n newArray[i] = {\n ...options[i],\n hasResults: mappedFacetArray?.includes(options[i].identifier),\n };\n }\n return newArray;\n };\n\n const changeTotalSelectedForFacets = (updatedOptions) => {\n return updatedOptions.filter((item) => item.hasResults && item.checked).length;\n };\n\n const updateFacets = (facettedResults, searchConditions) => {\n setAllFilters((current) =>\n current.map((item) => {\n let mappedFacetKey = item?.isSubfilterGroup ? 'subtags' : 'tags';\n let updatedOptions = updateHasResults(\n item.options,\n facettedResults,\n mappedFacetKey\n );\n return {\n ...item,\n totalSelected: changeTotalSelectedForFacets(updatedOptions),\n options: updatedOptions,\n };\n })\n );\n\n //Update search params of url with selected filters, page, and tags\n if (!firstFacetLoad) {\n let queryParam = '';\n let keywordParam = 'q=';\n let tagParam = 'tags=';\n let subTagParam = 'subtags=';\n let pageParam = 'page=';\n\n if (searchParams) keywordParam += `${encodeURIComponent(searchParams)}`;\n if (filtersAppliedObject?.page) pageParam += filtersAppliedObject?.page;\n let selectedFilterOptions = Object.assign(\n ...allFilters.map((filter) => ({\n [formatFilterTitle(filter.label)]: filterParams(\n formatFilterTitle(filter.label),\n true\n ).flat(),\n }))\n );\n\n for (const [key, value] of Object.entries(selectedFilterOptions)) {\n if (\n selectedFilterOptions[key]?.length > 0 &&\n key !== formatFilterTitle(pageTitle)\n ) {\n let selectedTags = value.map((filter) => encodeURIComponent(filter));\n tagParam += tagParam === 'tags=' ? selectedTags : `,${selectedTags}`;\n } else if (\n selectedFilterOptions[key]?.length > 0 &&\n key === formatFilterTitle(pageTitle)\n ) {\n let selectedSubTags = value.map((filter) => encodeURIComponent(filter));\n subTagParam += selectedSubTags;\n }\n }\n\n queryParam = [keywordParam, tagParam, subTagParam, pageParam].join('&');\n\n window.history.replaceState(\n {\n state: `${queryParamsString.replace(\n queryParamsString,\n `?${queryParam.toString()}`\n )}`,\n },\n '',\n `${pathname}${queryParamsString.replace(\n queryParamsString,\n `?${queryParam.toString()}`\n )}`\n );\n }\n setFirstFacetLoad(false);\n fetchResults(\n searchConditions,\n [],\n itemsPerPage,\n ((filtersAppliedObject.page - 1) * itemsPerPage).toString(),\n teaserDateSortBy,\n true,\n [''],\n searchParams,\n true\n )\n .then((x) => {\n setResults(x.results);\n setResultCount(x.totalCount);\n setIsLoading(false);\n setHasError(false);\n setDisabledState(false);\n })\n .catch(() => {\n setIsLoading(false);\n setHasError(true);\n });\n };\n\n useEffect(() => {\n if (pageLoadingState === 0) {\n setPageLoadingState(1); //on initial load all Filters have not been set yet\n } else {\n if (allFilters.length > 0) {\n if (pageLoadingState === 1) {\n setFiltersAppliedObject((current) => ({\n page: current.page,\n isFilterApplied: true,\n }));\n setPageLoadingState(2);\n }\n }\n }\n }, [allFilters]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (pageLoadingState !== 0 && filtersAppliedObject.isFilterApplied) {\n let searchConditions = constructSearchConditions();\n searchConditions.push(workItemTemplate);\n //run facet call on search conditions\n fetchResults(\n searchConditions,\n ['tags', 'subtags'],\n 0,\n '0',\n teaserDateSortBy,\n true,\n [''],\n '',\n true\n )\n .then((x) => {\n let mappedFacettedResults = Object.assign(\n ...x.facets.map((facet) => ({\n [facet?.name]: facet?.values?.map((option) => {\n return option?.item?.identifier?.value;\n }),\n }))\n );\n updateFacets(mappedFacettedResults, searchConditions);\n })\n .catch(() => {});\n setFiltersAppliedObject((current) => ({\n page: current.page,\n isFilterApplied: false,\n }));\n }\n }, 500);\n return () => clearTimeout(timer);\n }, [filtersAppliedObject]);\n\n useEffect(() => {\n let standardFiltersWithoutSubtags = formatAllFilters();\n //perform search query to find the tag that has the identifier equal to the service name of this page\n if (applyRecommendedFilters === '1') {\n fetchTagIds(\n [{ name: 'identifier', value: `${finalServiceName}` }], //fetch the tag data source that has a tag identifier equal to the page service name\n [], //no faceting\n 100, //fetch the first item and only item - to account for multiple same name tags\n '0', //fetch the first page\n 'score', //fetch by score\n true, // descending order\n [''], //do not exclude any ids\n '' //no keywords\n )\n .then((x) => {\n //Set the tag condition of the current expertise page to be used whenever a sub filter is applied, if the tag exists\n let pageTag = x.results.find((item) => item?.identifier === finalServiceName);\n pageTag?.id &&\n setPageTagCondition({\n group: [\n formatSearchParams(tagNameCondition, pageTag?.id.toLowerCase()),\n ],\n });\n pageTag?.title && setPageTitle(pageTag?.title);\n //format the filter dropdown for the page's associated subfilters\n let subFilters = pageTag?.item?.children[0]?.children || [];\n let pageId = pageTag?.id;\n let associatedSubFilter =\n subFilters.length > 0\n ? [\n {\n label: pageTag?.title,\n parentId: pageTag?.title,\n totalSelected: subFilters.filter((item) =>\n DefaultFilters.includes(item.identifier?.value)\n ).length,\n identifier: pageTag?.title,\n isSubfilterGroup: true,\n options: subFilters\n .map((option, index) => ({\n id: index,\n tagId: option?.id,\n label: option?.title?.value,\n identifier: option?.identifier?.value,\n hasResults: true,\n checked:\n DefaultFilters.includes(\n option.identifier?.value\n ) ||\n pageTags.includes(option?.id) ||\n incomingSearchParams['subtags']?.includes(\n option?.identifier?.value\n ),\n }))\n .sort(sortFilterValues),\n },\n ]\n : [];\n let standardFiltersWithSubTags = formatAllFilters(pageId);\n associatedSubFilter.length > 0\n ? setAllFilters(associatedSubFilter.concat(standardFiltersWithSubTags))\n : setAllFilters(standardFiltersWithSubTags);\n })\n .catch(() => {\n setAllFilters(standardFiltersWithoutSubtags);\n });\n } else {\n setAllFilters(standardFiltersWithoutSubtags);\n }\n }, []);\n\n useEffect(() => {\n const escFunction = (event) => {\n if (event?.key === 'Escape') {\n setMobileActiveState(false);\n hideMobileFilters();\n setActiveFilterGroupState(null);\n }\n };\n\n window.addEventListener('keydown', escFunction);\n\n return () => {\n window.removeEventListener('keydown', escFunction);\n const body = document.body;\n body.style.position = '';\n body.style.top = '';\n };\n }, []);\n\n function searchKeyBoard(event) {\n if (event.keyCode == 13) {\n event.target.blur();\n }\n }\n\n useEffect(() => {\n searchInputRef?.current?.addEventListener('keypress', searchKeyBoard);\n return function cleanup() {\n searchInputRef?.current?.removeEventListener('keypress', searchKeyBoard);\n };\n }, []);\n\n function closeBypass() {\n for (let el of document?.getElementsByClassName('zn-main-nav__bypass-button')) {\n if (el?.type === 'button') {\n el.click();\n }\n }\n }\n\n return (\n
    \n
    \n {allFilters.length > 0 && (\n
    \n {\n setMobileActiveState(!setMobileActive);\n showMobileFilters();\n closeBypass();\n }}\n >\n
    \n {t('Filters')}\n
    \n
    \n {setMobileActive ? : }\n
    \n \n \n
    \n \n \n {t('Filter')}\n
    \n \n {\n setMobileActiveState(false);\n hideMobileFilters();\n }}\n >\n \n \n \n
    \n
    \n
    \n
    \n \n {allFilters.map((filter, index) => (\n {\n onApplyFilters();\n hideMobileFilters();\n }}\n disabledState={disabledState}\n setDisabledState={setDisabledState}\n />\n ))}\n
    \n \n \n \n {t('Reset')}\n \n
    \n {\n onApplyFilters();\n hideMobileFilters();\n }}\n >\n {t('ShowResults')}\n \n
    \n \n \n \n )}\n
    \n
    \n \n \n \n \n \n
    \n \n
    \n
    \n {applyRecommendedFilters === '1' && pageTitle !== '' && (\n
    \n \n \n {pageTitle}\n
    \n
    \n
    \n )}\n {allFilters.map((filter) =>\n filter.options.map(\n (option, index) =>\n option.checked && (\n \n {\n checkSingularBox(option.id, filter.parentId);\n }}\n >\n \n {option.label}\n \n \n \n \n \n \n )\n )\n )}\n \n {t('Reset')}\n \n \n {!hasError ? (\n !isLoading ? (\n
    \n {resultCount === 0 && (\n
    \n {t('NoResults')}\n
    \n )}\n {resultCount > 0 && (\n
      \n {results.map((result, index) => (\n \n ))}\n
    \n )}\n {resultCount > 0 && resultCount > itemsPerPage && (\n
    \n {\n //setPage(page + 1);\n setFiltersAppliedObject((current) => ({\n page: current.page + 1,\n isFilterApplied: true,\n }));\n repWorkFilterRef.current.scrollIntoView();\n }}\n OnPrevious={() => {\n setFiltersAppliedObject((current) => ({\n page: current.page - 1,\n isFilterApplied: true,\n }));\n repWorkFilterRef.current.scrollIntoView();\n }}\n OnNumberClick={(number) => {\n //setPage(number);\n setFiltersAppliedObject(() => ({\n page: number,\n isFilterApplied: true,\n }));\n repWorkFilterRef.current.scrollIntoView();\n }}\n />\n
    \n )}\n
    \n ) : (\n
    \n \n
    \n )\n ) : (\n
    {t('Error')}
    \n )}\n \n \n );\n};\n\nRepresentativeWork.defaultProps = repWorkData;\n\nconst RepresentativeWorkStorybookContext = withSitecoreContext()(RepresentativeWork);\n\nexport const RepresentativeWorkStorybook = forStorybookV2(RepresentativeWorkStorybookContext);\n\nexport default withTranslation()(RepresentativeWorkStorybookContext);\n","import React, { useState, useEffect } from 'react';\nimport { ChevronLeft, ChevronRight, ChevronDown, ChevronUp } from '../../assets/LinkIcons.js';\nimport { CalendarSearchBarIcon } from '../../assets/common.js';\nimport { SearchBarCalendarEnum } from '../../utils/enums.js';\nimport { Button } from '../Button/Button.js';\nimport classnames from 'classnames';\nimport './month-picker.scss';\n\nconst monthMap = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\n\nconst date = new Date();\n\nconst MonthPicker = ({\n translation,\n monthYear,\n setMonthYear,\n activeFilter,\n toggleFilter,\n toggleMobilePublishMenu,\n type,\n onApplyFilters,\n}) => {\n const monthPickerBlock = 'zn-month-picker';\n\n const [currentYear, setYearState] = useState(null);\n\n let monthType =\n type === SearchBarCalendarEnum.start ? translation('StartDate') : translation('EndDate');\n\n const updateYear = (offset) => {\n const updatedYear = currentYear + offset;\n setYearState(updatedYear);\n };\n\n useEffect(() => {\n setYearState(date.getFullYear());\n }, []);\n\n return (\n \n {\n toggleFilter(type);\n }}\n >\n
    \n \n
    \n
    \n {monthYear.month !== null && monthYear.year !== null\n ? `${monthMap[monthYear.month]} ${String(monthYear.year).slice(-2)}'`\n : monthType}\n
    \n
    \n {type === activeFilter ? : }\n
    \n \n \n {\n toggleFilter(SearchBarCalendarEnum.publish);\n toggleMobilePublishMenu(true);\n }}\n >\n \n \n \n\n
    \n {translation('BackToPublishDate')}\n
    \n \n
    \n
    \n \n
    {currentYear}
    \n \n \n
    \n {monthMap.map((month, index) => (\n
    \n {\n setMonthYear(index, currentYear);\n }}\n >\n
    {month}
    \n \n
    \n ))}\n
    \n
    \n {\n setMonthYear(null, null);\n }}\n >\n {translation('ClearDate')}\n \n
    \n \n
    \n
    \n \n \n );\n};\n\nexport default MonthPicker;\n","import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport classnames from 'classnames';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport { SearchBarCalendarEnum, SearchResultTypeEnum } from '../../utils/enums.js';\nimport { CloseIcon, SearchBarIcon } from '../../assets/common.js';\nimport { ChevronDown, ChevronUp, ChevronRight, ChevronLeft } from '../../assets/LinkIcons.js';\nimport { Button } from '../Button/Button.js';\nimport { withTranslation } from 'react-i18next';\nimport SearchBarFilter from '../SearchBarFilter/SearchBarFilter.jsx';\nimport AutofillSearchResult from '../AutofillSearchResult/AutofillSearchResult.jsx';\nimport MonthPicker from '../MonthPicker/MonthPicker.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { useLocation } from 'react-router-dom';\nimport 'url-search-params-polyfill';\nimport './search-bar.scss';\nimport '../SearchBarFilter/search-bar-filter.scss';\nimport {\n bioPageTemplateCondition,\n displayedContentTypes,\n scoreSortBy,\n} from '../../utils/constants';\nimport {\n fetchPeopleFilters,\n fetchTagIds,\n fetchPersonInfo,\n fetchResults,\n fetchResultsTypeahead,\n} from '../../actions';\nimport {\n PeopleFiltersValues,\n mapTemplateTypeToDisplay,\n sortFilterValues,\n mapFacetTypeToDisplay,\n} from '../../utils/searchHelpers.jsx';\nimport {\n tagIdConditions,\n templateTypesConditions,\n tagSearchConditions,\n relatedPeopleConditions,\n decodeURIComponentSafe,\n} from '../../utils/searchHelpers.jsx';\n\nconst searchBarBlock = 'zn-search-bar';\n\nconst flattenFilterOptions = (filter) => {\n let array = [];\n array.push({ title: filter.title?.value, identifier: filter.identifier?.value });\n if (Array.isArray(filter.children)) {\n filter.children.forEach(function (a) {\n array = array.concat(flattenFilterOptions(a));\n });\n }\n return array;\n};\n\nconst formatFilter = (filter, defaultFilters) => {\n return {\n label: filter[0]?.title,\n identifier: filter[0]?.identifier,\n options: filter.slice(1).map((option) => ({\n label: option?.title,\n identifier: option?.identifier,\n defaultChecked: defaultFilters.includes(option.identifier),\n })),\n };\n};\n\nconst setTotalSelected = (filter, paramObj) => {\n return filter.options?.filter(\n (option) =>\n option.defaultChecked ||\n paramObj['tags']?.includes(option.identifier) ||\n paramObj[filter.label.toLowerCase()]?.includes(option.identifier)\n )?.length;\n};\n\nconst updateClearOptions = (args) => {\n let newArray = [];\n const { oldOptions } = args;\n\n for (let i = 0; i < oldOptions?.length; i++) {\n newArray[i] = { ...oldOptions[i], checked: false };\n }\n return newArray;\n};\n\nconst updateHasResults = (\n options,\n facettedResults,\n mappedFacetKey,\n personSearchFilters,\n personId\n) => {\n let newArray = [];\n\n let mappedFacetArray =\n mappedFacetKey === '_templatename'\n ? mapFacetTypeToDisplay(facettedResults[mappedFacetKey])\n : facettedResults[mappedFacetKey];\n for (let i = 0; i < options?.length; i++) {\n if (personId && mappedFacetKey === 'tags' && personSearchFilters.length > 0) {\n newArray[i] = {\n ...options[i],\n hasResults:\n mappedFacetArray?.includes(options[i].identifier) &&\n personSearchFilters?.includes(options[i].identifier),\n };\n } else {\n newArray[i] = {\n ...options[i],\n hasResults: mappedFacetArray?.includes(options[i].identifier),\n };\n }\n }\n return newArray;\n};\n\nconst showMobileFilters = () => {\n const scrollY = document.documentElement.style.getPropertyValue('--scroll-y');\n const body = document.body;\n body.style.position = 'fixed';\n body.style.top = `-${scrollY}`;\n};\n\nconst hideMobileFilters = () => {\n const body = document.body;\n const scrollY = body.style.top;\n body.style.position = '';\n body.style.top = '';\n window.scrollTo(0, parseInt(scrollY || '0') * -1);\n};\n\nconst formatFilterTitle = (filter) => {\n return filter.toLowerCase().replace(/\\s/g, '');\n};\n\nconst SearchBar = ({ t, fields, params, sitecoreContext }) => {\n // Authored Fields\n const { data } = fields;\n const Filters = data?.datasource?.filters?.targetItems || [];\n const DefaultFilters =\n data?.datasource?.defaultFilters?.targetItems?.map((option) => option.identifier.value) ||\n [];\n const SearchPrompt = data?.datasource?.searchPrompt || '';\n const includeContentTypes = data?.datasource?.includeContentTypes?.value || false;\n const defaultContentTypes =\n data?.datasource?.defaultContentTypes?.targetItems?.map((value) => value.name) || [];\n const { PeopleOnlySearch, AddDateFilters } = params;\n const flattenedFilters = Filters.map((filter) =>\n formatFilter(flattenFilterOptions(filter), DefaultFilters)\n );\n\n // Query Parameters\n const queryParams = new URLSearchParams(useLocation()?.search);\n const SearchParam = queryParams.get('q');\n const personId = queryParams.get('person'); //for people filtering from bio related article list\n const itemID = queryParams.get('sc_itemid'); //Used to allow for editing/preview mode toggle of a Search Results with query params updating\n const language = queryParams.get('sc_lang'); //Include language in query params\n const queryParamsString = useLocation()?.search;\n const pathname = useLocation()?.pathname;\n const [isFilterApplied, setIsFilterApplied] = useState(false);\n const [searchParams, setSearchParams] = useState(\n SearchParam ? decodeURIComponentSafe(SearchParam) : ''\n );\n const [pageLoadingState, setPageLoadingState] = useState(0);\n const [firstFacetLoad, setFirstFacetLoad] = useState(true);\n const [disabledState, setDisabledState] = useState(false);\n const [searchObject, setSearchObject] = useState({\n personSearchFilters: [],\n allFilters: [],\n });\n\n const stateItemID = itemID ? itemID : sitecoreContext?.route?.itemId;\n\n // UI state elements\n const [contextFilterParams, setContextFilterParams] = useState({});\n const [setActiveFilterGroup, setActiveFilterGroupState] = useState(null);\n const [setMobileActive, setMobileActiveState] = useState(false);\n const [setMobilePublishMenuActive, setMobilePublishMenuActiveState] = useState(false);\n const [startMonthYear, setStartMonthYear] = useState({ month: null, year: null });\n const [endMonthYear, setEndMonthYear] = useState({ month: null, year: null });\n const autoloadSuggestionsRef = useRef(null);\n const prevActiveGroup = useRef();\n const prevStartDate = useRef();\n const prevEndDate = useRef();\n const filterList = useRef(null);\n const [pdfView, setPdfView] = useState(false);\n\n //Autofill results\n const [autofillResults, _setAutofillResults] = useState([]);\n const autofillResultsRef = useRef(autofillResults);\n const searchInputRef = useRef(null);\n\n const [personFilterName, setPersonFilterName] = useState('');\n\n //Parse incoming query parameters from url to populate filters on the search page\n let paramObj = decodeURI(useLocation().search)\n .replace('?', '')\n .split('&')\n .map((param) => {\n if (!param?.split('=')) return;\n else return param.split('=');\n })\n .reduce((values, [key, value]) => {\n values[key] = value?.split(',').map((item) => decodeURIComponentSafe(item));\n return values;\n }, {});\n // Format chosen filters for UI filter lists\n const standardFilters = flattenedFilters\n ? flattenedFilters.map((filter) => ({\n label: filter.label,\n parentId: filter.label,\n totalSelected: setTotalSelected(filter, paramObj),\n peopleOnly: false,\n facetValue: 'tags',\n identifier: filter.identifier,\n options: filter.options\n ? filter.options\n .map((option, index) => ({\n id: index,\n label: option.label,\n identifier: option.identifier,\n hasResults: true,\n checked:\n option.defaultChecked ||\n paramObj['tags']?.includes(option.identifier) ||\n paramObj[filter.label.toLowerCase()]?.includes(option.identifier)\n ? true\n : false,\n }))\n .sort(\n filter.identifier !== 'Position-Category' ? sortFilterValues : () => {}\n )\n : [],\n }))\n : [];\n const contentFilter =\n includeContentTypes && PeopleOnlySearch !== '1'\n ? [\n {\n label: t('ContentType'),\n parentId: t('ContentType'),\n totalSelected: defaultContentTypes\n .concat(\n paramObj['contenttype']?.length\n ? mapTemplateTypeToDisplay(paramObj['contenttype'])\n : []\n )\n .filter((v, i, a) => a.indexOf(v) === i).length,\n\n peopleOnly: false,\n facetValue: '_templatename',\n options: displayedContentTypes.map((option, index) => ({\n id: index,\n label: t(`Filter${option}`),\n identifier: option,\n hasResults: true,\n checked:\n defaultContentTypes.includes(option) ||\n paramObj['contenttype']?.includes(option) ||\n (paramObj['contenttype']?.length\n ? mapTemplateTypeToDisplay(paramObj['contenttype'])?.includes(\n option\n )\n : false),\n })),\n },\n ]\n : [];\n\n const onApplyFilters = () => {\n setActiveFilterGroupState(null);\n setMobilePublishMenuActiveState(false);\n setMobileActiveState(false);\n setAutofillResults([]);\n };\n\n const clearSingularFilter = useCallback((pId) => {\n setContextFilterParams({\n ...contextFilterParams,\n [formatFilterTitle(pId)]: null,\n });\n setSearchObject((current) => ({\n personSearchFilters: current.personSearchFilters,\n allFilters: current.allFilters.map((item) => {\n if (item.parentId === pId) {\n let updatedOptions = updateClearOptions({ oldOptions: item.options });\n\n return { ...item, totalSelected: 0, options: updatedOptions };\n } else return item;\n }),\n }));\n setIsFilterApplied(true);\n setDisabledState(true);\n }, []);\n\n const clearAllFilters = () => {\n if (!disabledState) {\n setSearchObject((current) => ({\n personSearchFilters: current.personSearchFilters,\n allFilters: current.allFilters.map((item) => {\n let updatedOptions = updateClearOptions({ oldOptions: item.options });\n return { ...item, totalSelected: 0, options: updatedOptions };\n }),\n }));\n\n toggleStartMonthYear(null, null);\n toggleEndMonthYear(null, null);\n setActiveFilterGroupState(null);\n setIsFilterApplied(true);\n setDisabledState(true);\n }\n };\n\n const updateFacets = (facettedResults) => {\n // Need to cross reference all facet values with the options of all values in the filter dropdowns\n // The faccetted values for the contentType filter are lower case - this will be an if case (checks value)\n // For people filter - check if the label is equal to any of the three values in the dictionary (checks value)\n // All other will be tags - these will be crossreferencing the identifier of the tag\n\n setSearchObject((current) => ({\n personSearchFilters: current.personSearchFilters,\n allFilters: current.allFilters.map((item) => {\n let mappedFacetKey = item?.facetValue;\n let updatedOptions = updateHasResults(\n item.options,\n facettedResults,\n mappedFacetKey,\n searchObject.personSearchFilters,\n personId\n );\n\n return {\n ...item,\n totalSelected: !firstFacetLoad\n ? changeTotalSelectedForFacets(updatedOptions)\n : item.totalSelected,\n options: updatedOptions,\n };\n }),\n }));\n\n if (!firstFacetLoad) {\n let params = '';\n if (searchParams) params += searchParams ? `q=${encodeURIComponent(searchParams)}` : '';\n if (personId) params += `&person=${personId}`;\n let filteredValues = Object.assign(\n ...searchObject.allFilters.map((filter) => ({\n [formatFilterTitle(filter.label)]: filterParams(\n formatFilterTitle(filter.label)\n ).flat(),\n }))\n );\n\n for (const [key, value] of Object.entries(filteredValues)) {\n if (filteredValues[key]?.length > 0 && key != formatFilterTitle(t('ContentType'))) {\n let mappedFacetKey = mapFilterFacetValue(key);\n let filtersWithResults = value.filter((item) =>\n facettedResults[mappedFacetKey].includes(decodeURIComponent(item))\n );\n params += `&${key}=${filtersWithResults}`;\n } else if (\n filteredValues[key]?.length > 0 &&\n key === formatFilterTitle(t('ContentType'))\n ) {\n params += `&contenttype=${value}`;\n }\n }\n\n if (sitecoreContext.pageState == 'edit' || sitecoreContext.pageState === 'preview') {\n params += `&sc_itemid=${stateItemID}`;\n }\n if (language) params += `&sc_lang=${language}`;\n //update the query parameters of the url according to selected filters and selected keywords\n window.history.replaceState(\n {\n state: `${queryParamsString.replace(\n queryParamsString,\n `?${params.toString()}`\n )}`,\n },\n '',\n `${pathname}${queryParamsString.replace(\n queryParamsString,\n `?${params.toString()}`\n )}`\n );\n }\n setFirstFacetLoad(false);\n setDisabledState(false);\n };\n\n const updateCheckedOption = (args) => {\n let newArray = [];\n const { oldOptions, newValue, currentId } = args;\n\n for (let i = 0; i < oldOptions?.length; i++) {\n if (oldOptions[i].id === currentId) {\n newArray[i] = { ...oldOptions[i], checked: newValue };\n } else {\n newArray[i] = oldOptions[i];\n }\n }\n return newArray;\n };\n\n const changeTotalSelected = (item, updatedId) => {\n let newCount = item.totalSelected;\n if (item.totalSelected === 0 && !updatedId) {\n return 0;\n } else {\n if (updatedId) {\n newCount++;\n } else {\n newCount--;\n }\n return newCount;\n }\n };\n\n const changeTotalSelectedForFacets = (updatedOptions) => {\n return updatedOptions.filter((item) => item.hasResults && item.checked).length;\n };\n\n const checkSingularBox = useCallback((id, pId) => {\n setSearchObject((current) => ({\n personSearchFilters: current.personSearchFilters,\n allFilters: current.allFilters.map((item) => {\n if (item.parentId === pId) {\n let updatedOptions = [];\n let updatedId;\n item.options.map((option) => {\n if (option.id === id) {\n updatedId = !option.checked;\n updatedOptions = updateCheckedOption({\n oldOptions: item.options,\n newValue: updatedId,\n currentId: id,\n });\n }\n });\n return {\n ...item,\n totalSelected: changeTotalSelected(item, updatedId, item.hasResults),\n options: updatedOptions,\n };\n } else return item;\n }),\n }));\n setIsFilterApplied(true);\n }, []);\n\n const toggleActiveFilterGroup = (index) => {\n if (!disabledState) {\n if (prevActiveGroup.current === index) {\n setActiveFilterGroupState(null);\n } else {\n setActiveFilterGroupState(index);\n }\n }\n };\n\n const setAutofillResults = (results) => {\n autofillResultsRef.current = results;\n _setAutofillResults(results);\n };\n\n const toggleMobilePublishMenuOpen = (value) => {\n setMobilePublishMenuActiveState(value);\n };\n\n const toggleStartMonthYear = (startMonth, startYear) => {\n if (\n prevStartDate.current.month === startMonth &&\n prevStartDate.current.year === startYear\n ) {\n setStartMonthYear({ month: null, year: null });\n } else {\n setStartMonthYear({ month: startMonth, year: startYear });\n }\n };\n\n const toggleEndMonthYear = (endMonth, endYear) => {\n if (prevEndDate.current.month === endMonth && prevEndDate.current.year === endYear) {\n setEndMonthYear({ month: null, year: null });\n } else {\n setEndMonthYear({ month: endMonth, year: endYear });\n }\n };\n\n const searchConditionsHandler = (\n searchConditions,\n templateTypes,\n peopleConditions,\n targetValue\n ) => {\n let titleCondition = [\n {\n group: [\n { name: '_name', value: `${searchParams}`, useor: true },\n { name: '_displayname', value: `${searchParams}`, useor: true },\n ],\n },\n ];\n //if only people search use the typeahead not title condition\n let queryConditions =\n PeopleOnlySearch === '1'\n ? searchConditions.concat(bioPageTemplateCondition)\n : searchConditions.concat(templateTypes, peopleConditions, titleCondition);\n let facets = []; //no facetting\n let page = '0'; // update the page value or reset if new search performed\n let orderBy = 'score'; //order by the selected option\n let sortDescending = true; //sort results in descending order\n let excludeIds = ['']; //no exluding ids\n let keyword = ''; //not matching on any keywords\n let includeBioPageOnlyExclusion = personId ? false : true; //include condition to exclude items that are listed as Bio Page Only\n let typeAhead = `${targetValue}`;\n if (PeopleOnlySearch !== '1')\n fetchResults(\n queryConditions,\n facets,\n 4, //get max 4 items\n page,\n orderBy,\n sortDescending,\n excludeIds,\n keyword,\n includeBioPageOnlyExclusion\n )\n .then((x) => {\n setAutofillResults(x.results);\n })\n .catch(() => {\n setAutofillResults([]);\n });\n else\n fetchResultsTypeahead(\n queryConditions,\n facets,\n 4, //get max 4 items\n page,\n orderBy,\n sortDescending,\n excludeIds,\n keyword,\n typeAhead,\n includeBioPageOnlyExclusion\n )\n .then((x) => {\n setAutofillResults(x.results);\n })\n .catch(() => {\n setAutofillResults([]);\n });\n };\n useEffect(() => {\n function unsetActiveFilterGroup(event) {\n if (filterList.current && !filterList.current.contains(event.target)) {\n toggleActiveFilterGroup(null);\n }\n }\n document.addEventListener('mousedown', unsetActiveFilterGroup);\n return () => {\n document.removeEventListener('mousedown', unsetActiveFilterGroup);\n const body = document.body;\n body.style.position = '';\n body.style.top = '';\n };\n }, []);\n\n const facetSearchHandler = (searchConditions, templateTypes, peopleConditions, facetValues) => {\n let queryConditions =\n PeopleOnlySearch === '1'\n ? searchConditions.concat(bioPageTemplateCondition)\n : searchConditions.concat(templateTypes, peopleConditions);\n let facets = facetValues; //no facetting\n let page = '0'; // update the page value or reset if new search performed\n let orderBy = 'score'; //order by the selected option\n let sortDescending = PeopleOnlySearch === '1' ? false : true; //sort results in descending order\n let excludeIds = ['']; //no exluding ids\n let keyword = ''; //not matching on any keywords\n let includeBioPageOnlyExclusion = personId ? false : true; //include condition to exclude items that are listed as Bio Page Only\n fetchResults(\n queryConditions,\n facets,\n 0, //no results needed, only facet values\n page,\n orderBy,\n sortDescending,\n excludeIds,\n keyword,\n includeBioPageOnlyExclusion\n )\n .then((x) => {\n let mappedFacettedResults = Object.assign(\n ...x.facets.map((facet) => ({\n [facet?.name]: facet?.values?.map((option) => {\n if (facet?.name === 'tags') return option?.item?.identifier?.value;\n else return option?.value;\n }),\n }))\n );\n updateFacets(mappedFacettedResults);\n })\n .catch(() => {\n //setFacettedFilters({});\n });\n };\n\n const handleSearchParams = (e) => {\n setSearchParams(e.target.value);\n if (autoloadSuggestionsRef.current) autoloadSuggestionsRef.current.style.display = 'block';\n };\n\n // Function to map filter dropdown to associated facet value\n const mapFilterFacetValue = (label) => {\n let mappedFacetValue = '';\n if (label === t('ContentType')) {\n mappedFacetValue = '_templatename';\n } else if (label.toLowerCase() === t('School').toLowerCase().replace(/\\s/g, '')) {\n mappedFacetValue = 'education';\n } else if (label.toLowerCase() === t('YearOfCall').toLowerCase().replace(/\\s/g, '')) {\n mappedFacetValue = 'yearofcall';\n } else {\n mappedFacetValue = 'tags';\n }\n return mappedFacetValue;\n };\n\n const filterParams = (label) => {\n const filtered = searchObject.allFilters.reduce(\n (array, filter) => (\n formatFilterTitle(filter.label) === label &&\n array.push(\n filter.options\n .filter(function (option) {\n return option.checked;\n })\n .map(function (option) {\n return encodeURIComponent(option.identifier);\n })\n ),\n array\n ),\n []\n );\n return filtered.flat();\n };\n\n const submitForm = (event) => {\n event?.preventDefault();\n //TODO: People Landing template\n if (\n sitecoreContext?.route?.templateName === 'Search Results' ||\n sitecoreContext?.route?.templateName === 'People Landing'\n ) {\n //if on Search Results or People Landing page on search submit update query parameters, do not refresh page\n onApplyFilters();\n if (setMobileActive) hideMobileFilters();\n if (searchObject.allFilters.length > 0) {\n setContextFilterParams(\n Object.assign(\n ...searchObject.allFilters.map((filter) => ({\n [formatFilterTitle(filter.label)]: filterParams(\n formatFilterTitle(filter.label)\n ).flat(),\n }))\n )\n );\n }\n setIsFilterApplied(true);\n }\n };\n\n const peopleFacetHandler = (filter) => {\n //Map the field name for the facet to the display name to show up on the search bar filter dropdown\n let mappedObject = PeopleFiltersValues.find((item) => item.fieldValue === filter.name);\n //Get the dictionary value for the mapped filter title\n let translatedFilterLabel = t(`${mappedObject.label.replace(/\\s/g, '')}`);\n //Get the url formatted title for the mapped filter title\n let urlFormattedFilterTitle = formatFilterTitle(mappedObject.label);\n\n //return the filter mapped to the filter structure\n return {\n label: translatedFilterLabel,\n parentId: translatedFilterLabel,\n totalSelected: filter.values?.filter((option) =>\n paramObj[urlFormattedFilterTitle]?.includes(option.value)\n )?.length,\n identifier: translatedFilterLabel,\n peopleOnly: true,\n facetValue: mappedObject.fieldValue,\n options: filter.values\n ? filter.values\n .map((option, index) => ({\n id: index,\n label: option.value,\n identifier: option.value,\n hasResults: true,\n checked: paramObj[urlFormattedFilterTitle]?.includes(option.value),\n }))\n .sort(sortFilterValues)\n : [],\n };\n };\n\n useEffect(() => {\n let peopleFilters = [];\n if (PeopleOnlySearch === '1') {\n fetchPeopleFilters([bioPageTemplateCondition], ['education', 'yearofcall'])\n .then((x) => {\n peopleFilters = x.facets\n ? x.facets.map((filter) => peopleFacetHandler(filter))\n : [];\n //Set the filters state to all tag filters, people specific filters, and content type filter\n setSearchObject({\n personSearchFilters: [],\n allFilters: standardFilters.concat(peopleFilters).concat(contentFilter),\n });\n })\n .catch(() => {\n //Set the filters state to all tag filters and content type filter\n setSearchObject({\n personSearchFilters: [],\n allFilters: standardFilters.concat(contentFilter),\n });\n });\n } else {\n //Set the filters state to all tag filters, content type filter\n if (personId) {\n fetchPersonInfo(\n [{ name: '_group', value: `${personId}` }], //condition to fetch person\n [], // no facetting\n 1, // one result\n '0', //first page\n 'name', //sort\n true, //sort descending\n [''], //no excluded ids\n '', //no keywords\n false // no exclude bios\n )\n .then((x) => {\n let personInfo = x?.results[0];\n if (personInfo) {\n setPersonFilterName(\n `${personInfo?.item?.firstName?.value} ${personInfo?.item?.middleName?.value} ${personInfo?.item?.lastName?.value}`\n );\n }\n setSearchObject({\n personSearchFilters: personInfo?.item?.searchTags?.targetItems?.map(\n (item) => item?.identifier?.value\n ),\n allFilters: standardFilters.concat(contentFilter),\n });\n })\n .catch(() => {});\n } else {\n setSearchObject({\n personSearchFilters: [],\n allFilters: standardFilters.concat(contentFilter),\n });\n }\n }\n document.addEventListener('click', (e) => {\n const suggestedResults = document.getElementsByClassName(\n 'zn-search-bar__suggested-results'\n )[0];\n const searchInputBar = document.getElementsByClassName('zn-search-bar__form-input')[0];\n const searchBarFilters = Array.from(\n document.getElementsByClassName('zn-search-bar-filter')\n );\n\n let targetElement = e.target;\n do {\n if (targetElement == suggestedResults || targetElement == searchInputBar) {\n if (autofillResultsRef?.current.length > 0) setActiveFilterGroupState(null);\n return;\n }\n if (searchBarFilters.find((e) => e === targetElement)) {\n return;\n }\n targetElement = targetElement.parentNode;\n } while (targetElement);\n if (autoloadSuggestionsRef.current)\n autoloadSuggestionsRef.current.style.display = 'none';\n setActiveFilterGroupState(null);\n });\n }, []);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n useEffect(() => {\n if (pageLoadingState === 0) {\n setPageLoadingState(1); //on initial load all Filters have not been set yet\n } else {\n if (searchObject.allFilters.length > 0) {\n //on all subsequent loads we want the context filter params (that go into the url updated based on allFilters)\n if (pageLoadingState === 1) {\n submitForm();\n setPageLoadingState(2);\n }\n }\n }\n }, [searchObject]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (searchParams !== '') {\n let mappedValues = searchObject.allFilters.map((item) => ({\n [formatFilterTitle(item.label)]: item.options\n .filter((item) => item.checked)\n .map((item) => item.identifier),\n }));\n let mappedObject = Object.assign({}, ...mappedValues);\n let tagIdConditionsArray = tagIdConditions(mappedObject); //Returns array with the tag names formatted correctly for graphql search query to retrieve associated tag ids\n let peopleFilterKeys = [\n t('YearOfCall').toLowerCase().replace(/\\s/g, ''),\n t('School').toLowerCase().replace(/\\s/g, ''),\n ];\n fetchTagIds(\n tagIdConditionsArray?.flat(),\n [], //no faceting\n 500, //The total amount of items to retrieve TODO UPDATE THIS IN THE OTHER SECTIONS\n '0', //retreive the first page\n scoreSortBy, //sort by score\n true, //sort descending order\n [''], //no ids to exclude\n '' //no keyword\n )\n .then((x) => {\n searchConditionsHandler(\n tagSearchConditions(x, mappedObject, peopleFilterKeys, t), //Returns array with the selected tags formatted correctly for graphql search query\n templateTypesConditions(mappedObject), //Returns array with the selected content types formatted correctly for graphql search query\n relatedPeopleConditions(personId), //Returns array with the four people relations with the person id defined in the search params\n searchParams\n );\n })\n .catch(() => {\n setAutofillResults([]);\n });\n } else {\n setAutofillResults([]);\n }\n }, 400);\n return () => clearTimeout(timer);\n }, [searchParams]);\n\n useEffect(() => {\n prevStartDate.current = startMonthYear;\n prevEndDate.current = endMonthYear;\n prevActiveGroup.current = setActiveFilterGroup;\n });\n\n function searchKeyBoard(event) {\n if (event.keyCode == 13) {\n event.target.blur();\n }\n }\n\n const setScrollY = () => {\n document.documentElement.style.setProperty('--scroll-y', `${window?.scrollY}px`);\n };\n\n useEffect(() => {\n searchInputRef?.current?.addEventListener('keypress', searchKeyBoard);\n window.addEventListener('scroll', setScrollY);\n return function cleanup() {\n searchInputRef?.current?.removeEventListener('keypress', searchKeyBoard);\n window.removeEventListener('scroll', setScrollY);\n };\n }, [fields?.data?.contextItem?.id]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (pageLoadingState !== 0 && isFilterApplied) {\n // on every search update perform facet search to update displayed filters\n let mappedValues = searchObject.allFilters.map((item) => ({\n [formatFilterTitle(item.label)]: item.options\n .filter((item) => item.checked)\n .map((item) => item.identifier),\n }));\n let mappedObject = Object.assign({}, ...mappedValues);\n let tagIdConditionsArray = tagIdConditions(mappedObject); //Returns array with the tag names formatted correctly for graphql search query to retrieve associated tag ids\n let facetValues = ['tags', '_templatename'];\n PeopleOnlySearch === '1' && facetValues.push('education', 'yearofcall');\n let peopleFilterKeys = [\n t('YearOfCall').toLowerCase().replace(/\\s/g, ''),\n t('School').toLowerCase().replace(/\\s/g, ''),\n ];\n fetchTagIds(\n tagIdConditionsArray?.flat(),\n [], //facet on tags, template names, people values\n 500, //No search results needed, only facets\n '0', //retreive the first page\n scoreSortBy, //sort by score\n true, //sort descending order\n [''], //no ids to exclude\n '' //no keyword\n )\n .then((x) => {\n facetSearchHandler(\n tagSearchConditions(x, mappedObject, peopleFilterKeys, t), //Returns array with the selected tags formatted correctly for graphql search query\n templateTypesConditions(mappedObject), //Returns array with the selected content types formatted correctly for graphql search query\n relatedPeopleConditions(personId), //Returns array with the four people relations with the person id defined in the search params\n facetValues\n );\n })\n .catch(() => {});\n setIsFilterApplied(false);\n }\n }, 500);\n return () => clearTimeout(timer);\n }, [isFilterApplied]); //update every time a filter is applied/search keyword is set and run\n\n return (\n !pdfView && (\n
    \n
    \n
    \n {\n if (autoloadSuggestionsRef.current)\n autoloadSuggestionsRef.current.style.display = 'block';\n }}\n >\n \n \n \n \n \n {autofillResults?.length > 0 && (\n
      \n {autofillResults.map((result, index) => {\n if (result?.item) {\n let bioTitle = `${result?.item?.prefix?.value} ${result?.item?.firstName?.value} ${result?.item?.middleName?.value} ${result?.item?.lastName?.value}`;\n result.fields = {\n Title:\n result?.templateName ===\n SearchResultTypeEnum.biopage\n ? {\n value: `${bioTitle}${\n result?.item?.suffix?.value\n ? `, ${result?.item?.suffix?.value}`\n : ''\n }`,\n }\n : { value: result?.item?.teaserTitle?.value },\n Image:\n result?.templateName ===\n SearchResultTypeEnum.biopage\n ? { value: result?.item?.profileImage }\n : {},\n ResultType: { value: result?.templateName },\n LinkUrl:\n result?.item?.notNavigatable?.value === '1'\n ? {}\n : { value: result?.item?.url },\n };\n return (\n \n \n \n );\n }\n })}\n
    \n )}\n
    \n
    \n
    \n {\n setMobileActiveState(!setMobileActive);\n showMobileFilters();\n }}\n >\n
    \n {t('Filters')}\n
    \n
    \n {setMobileActive ? : }\n
    \n \n {personFilterName && (\n \n
    \n {personFilterName}\n
    \n
    \n )}\n \n \n {setMobileActive && (\n
    \n \n \n {setActiveFilterGroup === SearchBarCalendarEnum.start ||\n setActiveFilterGroup === SearchBarCalendarEnum.end\n ? t('SelectADate')\n : t('Filter')}\n
    \n \n {\n setMobileActiveState(false);\n hideMobileFilters();\n }}\n >\n \n \n \n \n \n \n )}\n \n \n {searchObject.allFilters.map(\n (filter, index) =>\n ((PeopleOnlySearch === '1' && filter.peopleOnly) ||\n !filter.peopleOnly) &&\n filter.options?.length > 0 && (\n \n )\n )}\n {personFilterName && (\n \n \n \n {personFilterName}\n \n \n \n )}\n {setMobileActive && AddDateFilters === '1' && (\n \n {\n setMobilePublishMenuActiveState(true);\n toggleActiveFilterGroup(SearchBarCalendarEnum.publish);\n }}\n >\n \n {t('Published')}\n \n \n \n \n \n \n {startMonthYear.month !== null &&\n startMonthYear.year !== null\n ? ('0' + (startMonthYear.month + 1)).slice(-2) +\n '/' +\n startMonthYear.year +\n ` - `\n : 'MM/YYYY - '}\n {endMonthYear.month !== null && endMonthYear.year !== null\n ? ('0' + (endMonthYear.month + 1)).slice(-2) +\n '/' +\n endMonthYear.year\n : 'MM/YYYY'}\n \n \n )}\n {AddDateFilters === '1' && (\n \n {\n toggleActiveFilterGroup(null);\n setMobilePublishMenuActiveState(false);\n }}\n >\n \n \n \n\n \n {t('PublishDate')}\n \n \n \n \n {t('StartDate')}\n \n \n \n {t('EndDate')}\n \n\n \n \n \n {\n toggleStartMonthYear(null, null);\n toggleEndMonthYear(null, null);\n }}\n >\n {t('ClearFilter')}\n \n \n \n \n \n \n )}\n {searchObject.allFilters?.length > 0 && (\n {\n clearAllFilters();\n }}\n >\n {t('ClearAll')}\n \n )}\n \n \n {setActiveFilterGroup === null && setMobileActive && (\n
    \n {searchObject.allFilters?.length > 0 && (\n {\n clearAllFilters();\n }}\n >\n {t('ClearAll')}\n \n )}\n
    \n \n {t('ShowResults')}\n \n
    \n
    \n )}\n \n \n )\n );\n};\n\nconst SearchBarWithTranslation = withTranslation()(SearchBar);\n\nexport const SearchBarStorybook = forStorybookV2(SearchBarWithTranslation);\n\nexport default withSitecoreContext()(SearchBarWithTranslation);\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Lottie from 'react-lottie';\nimport animationData from '../../assets/bubbleLoading';\nimport SearchResult from '../ItemWithImage/ItemWithImage.jsx';\nimport { ChevronDown } from '../../assets/LinkIcons.js';\nimport { Button } from '../Button/Button.js';\nimport Text from '../Text/Text.jsx';\nimport Pagination from '../Pagination/Pagination.jsx';\nimport { forStorybookV2 as forStorybook } from '../../utils/forStorybook.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { useLocation } from 'react-router-dom';\nimport {\n SearchResultTypeEnum,\n ThemeEnum,\n SearchSortingOrderEnum,\n ContentTypeEnum,\n} from '../../utils/enums';\nimport { withTranslation } from 'react-i18next';\nimport classNames from 'classnames';\nimport 'url-search-params-polyfill';\nimport './search-results.scss';\nimport { fetchTagIds, fetchResults as fetchSearchResults } from '../../actions';\nimport {\n tagIdConditions,\n templateTypesConditions,\n tagSearchConditions,\n relatedPeopleConditions,\n decodeURIComponentSafe,\n} from '../../utils/searchHelpers.jsx';\nimport parse from 'html-dom-parser';\nimport { getChildren } from '../../utils/pageTitleGenerator.js';\nimport { bioPageTemplateCondition, scoreSortBy } from '../../utils/constants';\n\nconst searchResults = 'zn-search-results';\nconst paragraphRegex = /<\\/?p>/g;\n\nconst defaultAnimationOptions = {\n loop: true,\n autoplay: true,\n animationData: animationData,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n};\n\nconst SearchResults = ({ t, fields, sitecoreContext }) => {\n const { LinkText, PeopleOnlySearch, ItemsPerPage, DefaultSortingOrder } = fields;\n const ItemsPerPageValue = parseInt(ItemsPerPage?.value) || 10;\n const queryParams = new URLSearchParams(useLocation().search);\n const personId = queryParams.get('person'); //for people filtering from bio related article list\n const sortDefault = DefaultSortingOrder?.value\n ? DefaultSortingOrder?.value\n : SearchSortingOrderEnum.relevancy;\n const orderByOptions = [\n {\n label: t('Relevancy'),\n filter: 'score',\n },\n {\n label: t('MostRecent'),\n filter: 'teaserdate',\n },\n ];\n\n let filterValuesInitial = decodeURI(useLocation().search)\n .replace('?', '')\n .split('&')\n .map((param) => {\n if (!param?.split('=')) return;\n else return param.split('=');\n })\n .reduce((values, [key, value]) => {\n values[key] = value?.split(',').map((item) => decodeURIComponentSafe(item));\n return values;\n }, {});\n\n const [results, setResults] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [isDropdownActive, setIsDropdownActive] = useState(false);\n const [hasError, setHasError] = useState(false);\n const [paginationPressed, setPaginationPressed] = useState(false);\n const [page, setPage] = useState(1);\n const [resultCount, setResultCount] = useState();\n const [historyFilters, setHistoryFilters] = useState(filterValuesInitial);\n const [orderBy, setOrderBy] = PeopleOnlySearch?.value\n ? useState({ label: 'Alphabetical', filter: 'sortablelastname' })\n : sortDefault === SearchSortingOrderEnum.relevancy && !personId\n ? useState(orderByOptions[0])\n : useState(orderByOptions[1]); //set sorting order to default\n const [searchParam, setSearchParam] = useState(\n queryParams.get('q') ? decodeURIComponentSafe(queryParams.get('q')) : ''\n );\n let searchResultsRef = useRef();\n\n const updateOrderBy = (order) => {\n setOrderBy(order);\n };\n\n const scrollToRef = (top) => window.scrollTo(0, top);\n\n const executeScroll = () => {\n scrollToRef(searchResultsRef.current.offsetParent.offsetTop);\n };\n\n //Fetch Search Results based off chosen tags and content types\n const searchConditionsHandler = (searchConditions, templateTypes, peopleConditions) => {\n let peopleSearchOrder = PeopleOnlySearch?.value\n ? searchParam\n ? 'score'\n : orderBy.filter\n : '';\n let queryConditions = PeopleOnlySearch?.value\n ? searchConditions.concat(bioPageTemplateCondition) //if people search include only bio pages as templates, with tag conditions\n : searchConditions.concat(templateTypes, peopleConditions); //include template types in search query with tag conditions\n let facets = []; //no facetting\n let pageToFetch = paginationPressed ? ((page - 1) * ItemsPerPageValue).toString() : '0'; // update the page value or reset if new search performed\n let orderByValue = PeopleOnlySearch?.value ? peopleSearchOrder : orderBy.filter; //If on people page and have a search query - sort by score else by last name, if not people order by selected value\n let sortDescending =\n PeopleOnlySearch?.value && peopleSearchOrder !== 'score' ? false : true; //sort results in descending order\n let excludeIds = ['']; //no exluding ids\n let keyword = searchParam ? searchParam : ''; //keyword to search\n let includeBioPageOnlyExclusion = personId ? false : true; //include condition to exclude items that are listed as Bio Page Only\n fetchSearchResults(\n queryConditions,\n facets,\n ItemsPerPageValue,\n pageToFetch,\n orderByValue,\n sortDescending,\n excludeIds,\n keyword,\n includeBioPageOnlyExclusion\n )\n .then((x) => {\n setResults(x.results);\n setPaginationPressed(false);\n setResultCount(x.totalCount);\n setIsLoading(false);\n setHasError(false);\n })\n .catch(() => {\n setIsLoading(false);\n setPaginationPressed(false);\n setHasError(true);\n });\n };\n const getDescription = (result) => {\n const isStatic = result?.item?.url.includes(\n '/our-latest-thinking/publications/publication-lawyer-bios'\n );\n\n if (isStatic) {\n return result?.item?.source?.value;\n } else if (result?.templateName === SearchResultTypeEnum.biopage) {\n return result?.item?.leadParagraph?.value;\n } else {\n return result?.item?.teaserDescription?.value;\n }\n };\n //Fetch Search Results\n const fetchResults = () => {\n //Solr query to fetch tag ids associated to chosen filters\n let tagIdConditionsArray = tagIdConditions(historyFilters); //Returns array with the tag names formatted correctly for graphql search query to retrieve associated tag ids\n let peopleFilterKeys = [\n t('YearOfCall').toLowerCase().replace(/\\s/g, ''),\n t('School').toLowerCase().replace(/\\s/g, ''),\n ];\n fetchTagIds(\n tagIdConditionsArray?.flat(),\n [], //no faceting\n 500,\n '0', //retrieve the first page\n scoreSortBy, //sort by score\n true, //sort descending order\n [''], //no ids to exclude\n '' //no keyword\n )\n .then((x) => {\n searchConditionsHandler(\n tagSearchConditions(x, historyFilters, peopleFilterKeys, t), //Returns array with the selected tags formatted correctly for graphql search query\n templateTypesConditions(historyFilters), //Returns array with the selected content types formatted correctly for graphql search query\n relatedPeopleConditions(personId) //Returns array with the four people relations with the person id defined in the search params\n );\n //add the date filters\n })\n .catch(() => {\n setIsLoading(false);\n setHasError(true);\n });\n };\n\n useEffect(() => {\n if (Object.keys(historyFilters)) {\n const timer = setTimeout(() => {\n setPage(1);\n fetchResults();\n }, 500);\n return () => clearTimeout(timer);\n }\n }, [historyFilters]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setPage(1);\n fetchResults();\n }, 500);\n return () => clearTimeout(timer);\n }, [orderBy]);\n\n useEffect(() => {\n (function (history) {\n var replaceState = history.replaceState;\n history.replaceState = function (state) {\n if (typeof history.onreplacestate == 'function') {\n history.onreplacestate({\n state: state,\n });\n }\n return replaceState.apply(history, arguments);\n };\n })(window.history);\n window.onpopstate = history.onreplacestate = function (e) {\n setPage(1);\n let filters = decodeURI(e?.state?.state)\n .replace('?', '')\n .split('&')\n .map((param) => {\n if (!param?.split('=')) return;\n else return param.split('=');\n })\n .reduce((values, [key, value]) => {\n values[key] = value?.split(',').map((item) => decodeURIComponentSafe(item));\n return values;\n }, {});\n setSearchParam(filters['q'] ? filters['q'][0] : '');\n setHistoryFilters(filters);\n };\n }, [window.history]);\n\n useEffect(() => {\n if (!paginationPressed) return;\n else fetchResults();\n }, [paginationPressed]);\n\n return (\n
    \n \n
    \n {!PeopleOnlySearch?.value && (\n \n {t('SortBy')}\n \n )}\n {!PeopleOnlySearch?.value && (\n \n {\n setIsDropdownActive(!isDropdownActive);\n }}\n >\n \n \n \n \n \n {isDropdownActive && (\n
    \n {orderByOptions.map((result, index) => {\n return (\n
  • \n {\n updateOrderBy(orderByOptions[index]);\n setIsDropdownActive(false);\n }}\n >\n {result.label}\n \n
  • \n );\n })}\n
    \n )}\n \n )}\n
    \n\n
    \n {searchParam && !personId && !PeopleOnlySearch?.value && (\n {`${t('SearchResultsLabel')} “${\n searchParam || ''\n }”`}\n )}\n {!isLoading &&\n !hasError &&\n (!personId || (personId && resultCount === 0)) &&\n (!PeopleOnlySearch?.value ||\n (PeopleOnlySearch?.value && resultCount === 0)) && (\n {`${resultCount || 'No'} ${\n resultCount !== 1 ? t('Results') : t('Result')\n }`}\n )}\n
    \n \n\n
      \n {!hasError ? (\n !isLoading ? (\n resultCount > 0 &&\n results.map((result, index) => {\n if (result?.item) {\n let bioTitle = `${result?.item?.prefix?.value} ${result?.item?.firstName?.value} ${result?.item?.middleName?.value} ${result?.item?.lastName?.value}`;\n result.fields = {\n Title:\n result?.templateName === SearchResultTypeEnum.biopage\n ? {\n value: `${bioTitle}${\n result?.item?.suffix?.value\n ? `, ${result?.item?.suffix?.value}`\n : ''\n }`,\n }\n : result?.item?.teaserTitle?.value\n ? {\n value: `${(result?.item?.teaserTitle?.value).replace(\n paragraphRegex,\n ''\n )}`,\n }\n : {\n value: getChildren(\n parse(result?.item?.displayName)[0]\n ),\n },\n Image:\n result?.templateName === SearchResultTypeEnum.biopage\n ? { value: result?.item?.profileImage }\n : { value: result?.item?.teaserImage },\n Eyebrow: { value: result?.item?.role?.value },\n Description: { value: getDescription(result) },\n Date:\n result?.templateName !== ContentTypeEnum.work &&\n result?.templateName !== ContentTypeEnum.projectMapWork\n ? { value: result?.item?.teaserDate?.value }\n : {},\n DisplayDate:\n result?.templateName !== ContentTypeEnum.work &&\n result?.templateName !== ContentTypeEnum.projectMapWork\n ? { value: result?.teaserDisplayDate }\n : {},\n Email: { value: result?.item?.businessEmail?.value },\n Phone: { value: result?.item?.businessPhone?.value },\n ResultType: { value: result?.templateName },\n LinkUrl:\n result?.item?.notNavigatable?.value === '1'\n ? {}\n : { value: result?.item?.url },\n LinkText: LinkText?.value ? LinkText : t('ReadMore'),\n PeopleOnly: PeopleOnlySearch,\n ItemLanguage: sitecoreContext?.route?.itemLanguage,\n };\n return (\n \n \n \n );\n }\n })\n ) : (\n
      \n \n
      \n )\n ) : (\n
      {t('Error')}
      \n )}\n
    \n {resultCount > 0 && resultCount > ItemsPerPageValue && !isLoading && !hasError && (\n
    \n {\n setPage(page + 1);\n setPaginationPressed(true);\n executeScroll();\n }}\n OnPrevious={() => {\n setPage(page - 1);\n setPaginationPressed(true);\n executeScroll();\n }}\n OnNumberClick={(number) => {\n setPage(number);\n setPaginationPressed(true);\n executeScroll();\n }}\n />\n
    \n )}\n
    \n );\n};\n\nSearchResults.propTypes = {\n LinkText: PropTypes.shape({ value: PropTypes.string }),\n PeopleOnlySearch: PropTypes.shape({ value: PropTypes.bool }),\n};\n\nconst SearchResultsSitecore = withSitecoreContext()(SearchResults);\n\nexport const SearchResultsStorybook = forStorybook(SearchResults);\nexport default withTranslation()(SearchResultsSitecore);\n","/* eslint-disable no-unused-vars */\nimport React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport './section.scss';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport {\n BackgroundColorEnum,\n HighlightColorEnum,\n HorizontalAlignmentEnum,\n SizeEnum,\n} from '../../utils/enums';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport paramToBool from '../../utils/paramToBool';\n\nconst sectionBlock = 'zn-section';\n\nexport const Section = ({ params, section, sitecoreContext }) => {\n const {\n BackgroundCustomColor,\n BackgroundColor,\n FullWidth,\n FullHeight,\n Highlight,\n HighlightColor,\n HighlightCustomColor,\n HighlightIndent,\n ID,\n HorizontalAlignment,\n PaddingTop,\n PaddingBottom,\n HideEmpty,\n HideInPdf,\n } = params;\n\n const sectionStyles = {\n backgroundColor: BackgroundCustomColor,\n };\n\n const [isHideSection, setIsHideSection] = useState(true);\n\n const hideSection = !sitecoreContext?.pageEditing && paramToBool(HideEmpty);\n\n if (hideSection) {\n sectionStyles.display = 'none';\n }\n useEffect(() => {\n setIsHideSection(hideSection);\n }, [sitecoreContext?.itemId]);\n\n const checkSectionContent = () => {\n const hasMedia = sectionRef?.current?.querySelector('video,img,object');\n const contentSection = sectionRef?.current?.getElementsByClassName('zn-section__content');\n let childList = Array.from(contentSection[0].children); //all children items of the section content\n //get all non peripheral items in the section - if the section contains any, then apply normal hiding logic\n // if section content only contains peripheral components then do not show the section even with text entered\n const nonPeripheralItems = childList.filter((item) => !item.dataset.isPeripheral);\n\n const hasInnerText = nonPeripheralItems.some((p) => p.innerText !== '');\n\n const showSection =\n (sitecoreContext?.pageEditing || hasInnerText || hasMedia) &&\n (nonPeripheralItems.length > 0 || sitecoreContext?.pageEditing);\n\n setIsHideSection(!showSection);\n\n return showSection;\n };\n\n const displaySection = () => {\n const navItem = document.querySelector(`#nav-${ID}`);\n if (sectionRef?.current?.style?.removeProperty) {\n navItem?.style?.removeProperty('display');\n sectionRef?.current?.style?.removeProperty('display');\n } else {\n navItem?.style?.removeAttribute('display');\n sectionRef?.current?.style?.removeAttribute('display');\n }\n };\n\n const sectionRef = useRef(null);\n\n useEffect(() => {\n if (paramToBool(HideEmpty)) {\n if (checkSectionContent()) {\n displaySection();\n }\n const observer = new MutationObserver(function checkChildren() {\n if (checkSectionContent()) {\n displaySection();\n observer.disconnect();\n } else {\n if (sectionRef?.current?.style) {\n sectionRef.current.style.display = 'none';\n }\n }\n });\n\n observer.observe(sectionRef.current, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n }\n }, [sitecoreContext?.itemId]);\n\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n return (\n !(pdfView && paramToBool(HideInPdf)) && (\n \n {paramToBool(Highlight) && (\n \n )}\n \n {section}\n \n \n )\n );\n};\n\nSection.propTypes = {\n params: PropTypes.shape({\n BackgroundColor: PropTypes.oneOf(Object.values(BackgroundColorEnum)),\n BackgroundCustomColor: PropTypes.string,\n FullWidth: PropTypes.bool,\n FullHeight: PropTypes.bool,\n HighlightColor: PropTypes.oneOf(Object.values(HighlightColorEnum)),\n HighlightCustomColor: PropTypes.string,\n Highlight: PropTypes.bool,\n HighlightIndent: PropTypes.bool,\n ID: PropTypes.string,\n HorizontalAlignment: PropTypes.oneOf(Object.values(HorizontalAlignmentEnum)),\n PaddingTop: PropTypes.oneOf(Object.values(SizeEnum)),\n PaddingBottom: PropTypes.oneOf(Object.values(SizeEnum)),\n }),\n};\n\nconst SectionWithPlaceholder = withSitecoreContext()(withPlaceholder('section')(Section));\n\nexport const SectionStorybook = forStorybookV2(Section);\n\nexport default SectionWithPlaceholder;\n","import React from 'react';\nimport classnames from 'classnames';\nimport './side-navigation-item.scss';\nimport { SideNavigationTypeEnum } from '../../utils/enums';\nimport Text from '../Text/Text.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nexport const SideNavigationItem = ({\n changeTitle,\n changeDropdown,\n fields,\n NavigationType,\n pageTitle,\n sectionIds,\n sitecoreContext,\n}) => {\n const sideNavigationItemBlock = 'zn-side-navigation-item';\n const { Label, SectionID, LinkURL } = fields;\n\n const toggle = () => {\n changeTitle(Label?.value);\n changeDropdown();\n };\n\n const target =\n NavigationType?.value === SideNavigationTypeEnum.betweenPage ? { target: '_blank' } : {};\n\n return (\n x.id === SectionID?.value && x.display !== 'none'\n ) || sitecoreContext?.pageEditing\n ? { display: 'block' }\n : { display: 'none' }\n }\n >\n \n \n \n \n );\n};\n\nexport default withSitecoreContext()(SideNavigationItem);\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport './side-navigation.scss';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { SideNavigationTypeEnum } from '../../utils/enums';\nimport SocialMediaLink from '../SocialMediaLinks/SocialMediaLink.jsx';\nimport SideNavigationItem from '../SideNavigationItem/SideNavigationItem.jsx';\nimport { withSitecoreContext, withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { PdfIconComponent } from '../SocialMediaLinks/SocialMediaIcons.jsx';\nimport { ThemeEnum, SizeEnum } from '../../utils/enums';\nimport { withTranslation } from 'react-i18next';\nimport { ChevronDown, ChevronUp } from '../../assets/LinkIcons.js';\n\nconst options = {\n rootMargin: '-10% 0px -90%',\n threshold: 0,\n};\n\nexport const SideNavigation = ({\n sitecoreContext,\n fields,\n sideNavigationBottom,\n rendering,\n sideNavigation,\n t,\n}) => {\n const sideNavigationBlock = 'zn-side-navigation';\n\n const sideNavigationItems =\n rendering?.placeholders?.sideNavigation?.filter(\n (item) => item && item.fields && item.fields.Label\n ) || [];\n\n const pageTitle = sitecoreContext?.route?.displayName;\n const { NavigationTitleOverride, NavigationType, AddPDFDownloadLink } = fields;\n const [sectionIds, setSectionIds] = useState([]);\n const [setActive, setActiveState] = useState(false);\n const [mobileTitle, setMobileTitleState] = useState(\n sideNavigationItems[0]?.fields?.Label?.value || ''\n );\n const navRef = useRef(null);\n\n const SocialMediaLinkArgs = {\n theme: ThemeEnum.light,\n include: true,\n link: {\n value: '#',\n },\n alt: {\n value: 'alt',\n },\n IconComponent: PdfIconComponent,\n label: {\n value: t('ExportAsPDF'),\n },\n showLabel: true,\n labelsMarginSize: SizeEnum.small,\n };\n\n const toggleDropdown = () => {\n setActiveState(!setActive ? true : false);\n };\n\n const toggleTitle = (mobileTitle) => {\n setMobileTitleState(mobileTitle);\n };\n\n const setInteractionObserver = (NavigationType, sitecoreContext) => {\n let content = document.getElementsByClassName('zn-sticky-side-section__content');\n let sections = content[0].children;\n let viewportOffset = navRef.current?.getBoundingClientRect();\n\n if (\n NavigationType?.value === SideNavigationTypeEnum.inPage &&\n !sitecoreContext.pageEditing\n ) {\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n const currentId = entry.target.getAttribute('id');\n if (entry.isIntersecting) {\n document\n .querySelector(`nav ul li a[href=\"#${currentId}\"]`)\n ?.parentElement.classList.add('current');\n\n Array.from(sections).forEach((section) => {\n const id = section.id;\n if (id !== currentId) {\n document\n .querySelector(`nav ul li a[href=\"#${id}\"]`)\n ?.parentElement.classList.remove('current');\n }\n });\n } else {\n if (viewportOffset.top === 0) {\n document\n .querySelector(`nav ul li a[href=\"#${currentId}\"]`)\n ?.parentElement.classList.remove('current');\n }\n }\n });\n }, options);\n\n Array.from(sections).forEach((section) => {\n observer.observe(section);\n });\n }\n };\n\n useEffect(() => {\n setInteractionObserver(NavigationType, sitecoreContext);\n let content = document.getElementsByClassName('zn-sticky-side-section__content');\n let sections = content[0].children;\n\n if (NavigationType?.value === SideNavigationTypeEnum.inPage) {\n setSectionIds(\n Array.from(sections).map((section) => ({\n id: section.id,\n display: section.style.display,\n }))\n );\n }\n }, []);\n\n useEffect(() => {\n if (!sitecoreContext?.pageEditing) {\n for (let j = 0; j < rendering?.placeholders?.sideNavigation?.length; j++) {\n if (\n sectionIds?.find(\n (x) =>\n x.id ===\n rendering?.placeholders?.sideNavigation[j]?.fields?.SectionID?.value\n )\n ) {\n document\n .querySelector(\n `nav ul li a[href=\"#${rendering?.placeholders?.sideNavigation[j]?.fields?.SectionID?.value}\"]`\n )\n ?.parentElement.classList.add('current');\n setMobileTitleState(\n rendering?.placeholders?.sideNavigation[j]?.fields?.Label?.value\n );\n break;\n }\n }\n }\n }, [sectionIds]);\n\n const contactCardInclude = sideNavigationBottom?.length > 0;\n\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n return (\n !pdfView && (\n
    \n \n
    \n {NavigationTitleOverride?.value || mobileTitle}\n
    \n\n
    \n {!setActive ? : }\n
    \n \n
    \n
    \n )}\n \n
    \n \n )\n );\n};\n\nSideNavigation.propTypes = {\n fields: PropTypes.shape({\n NavigationType: PropTypes.shape({\n value: PropTypes.oneOf(Object.values(SideNavigationTypeEnum)),\n }),\n NavigationItems: PropTypes.array,\n AddPDFDownloadLink: PropTypes.shape({\n value: PropTypes.bool,\n }),\n }),\n};\n\nconst SideNavigationWithContext = withSitecoreContext()(SideNavigation);\n\nconst SideNavigationWithTranslation = withTranslation()(SideNavigationWithContext);\n\nexport const SideNavigationStorybook = forStorybook(SideNavigationWithContext);\n\nexport default withPlaceholder(['sideNavigationBottom', 'sideNavigation'])(\n SideNavigationWithTranslation\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport './simple-hero.scss';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport Text from '../Text';\n\nconst SimpleHero = ({ fields }) => {\n const block = 'zn-simple-hero';\n const { BackgroundColor, Color, HeroTitle, LineColor, HeroDescription } = fields;\n\n return (\n \n
    \n \n \n \n\n {/*TODO: Render as inputs when editable*/}\n {/*{!!BackgroundColor.editable && }*/}\n {/*{!!LineColor.editable && }*/}\n {/*{!!Color.editable && }*/}\n
    \n \n );\n};\n\nSimpleHero.propTypes = {\n fields: PropTypes.shape({\n BackgroundColor: PropTypes.object,\n Color: PropTypes.object,\n HeroTitle: PropTypes.object,\n LineColor: PropTypes.object,\n HeroDescription: PropTypes.object,\n }),\n};\n\nexport default SimpleHero;\n\nexport const SimpleHeroStorybook = forStorybook(SimpleHero);\n","import React from 'react';\nimport { Placeholder, isExperienceEditorActive } from '@sitecore-jss/sitecore-jss-react';\n\nconst SnippetComponent = ({ rendering, fields }) => {\n if (!fields) {\n if (isExperienceEditorActive()) {\n return

    Datasource is not set.

    ;\n }\n return

    Data is not provided. Contact administrators, please.

    ;\n }\n\n return (\n
    \n \n
    \n );\n};\nexport default SnippetComponent;\n","import React, { useEffect } from 'react';\nimport classnames from 'classnames';\nimport ButtonLink from '../ButtonLink/ButtonLink.jsx';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport './statistics.scss';\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\nimport { withSitecoreContext, RichText, Text } from '@sitecore-jss/sitecore-jss-react';\nimport { ThemeEnum, ButtonVariantEnum } from '../../utils/enums.js';\n\nconst options = {\n threshold: 0.4,\n};\n\nconst setInteractionObserver = () => {\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n entry.target.classList.add('fadeIn');\n }\n });\n }, options);\n\n let content = document.getElementsByClassName('zn-statistics__right-col');\n let sections = content;\n Array.from(sections).forEach((section) => {\n observer.observe(section);\n });\n};\n\nconst Statistics = ({ fields, params, sitecoreContext }) => {\n const {\n SectionTitle,\n Subtitle1,\n Paragraph1,\n CTAURL1,\n Subtitle2,\n Paragraph2,\n CTAURL2,\n Statistic1,\n StatisticSubtitle1,\n Statistic2,\n StatisticSubtitle2,\n Statistic3,\n StatisticSubtitle3,\n } = fields;\n const { EnableAnimation } = params;\n const statBlock = 'zn-statistics';\n\n const isEditing = sitecoreContext.pageEditing;\n const animationEnabled = EnableAnimation === '1';\n\n useEffect(() => {\n if (animationEnabled && !isEditing) {\n setInteractionObserver();\n }\n }, []);\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n {((Subtitle1?.value && Paragraph1?.value) || isEditing) && (\n
    \n
    \n \n
    \n
    \n \n
    \n {CTAURL1?.value?.text && (\n
    \n \n
    \n )}\n
    \n )}\n {((Subtitle2?.value && Paragraph2?.value) || isEditing) && (\n
    \n
    \n \n
    \n
    \n \n
    \n {CTAURL2?.value?.text && (\n
    \n \n
    \n )}\n
    \n )}\n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n \n \n
    \n
    \n {(Statistic2?.value || Statistic3?.value || isEditing) && (\n
    \n {(Statistic2?.value || isEditing) && (\n \n \n \n
    \n \n \n \n \n )}\n {((Statistic3?.value && Statistic2?.value) || isEditing) && (\n \n )}\n {(Statistic3?.value || isEditing) && (\n \n \n \n \n \n \n \n \n )}\n \n )}\n {((Statistic3?.value && !Statistic2?.value) ||\n (!Statistic3?.value && Statistic2?.value)) && (\n \n )}\n \n \n \n );\n};\n\nconst StatisticsSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.fields, ErrorBoundaryConditions.params])(Statistics)\n);\n\nexport const StatisticsStorybook = forStorybookV2(StatisticsSitecore);\n\nexport default StatisticsSitecore;\n","import React, { useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport './sticky-side-banner.scss';\nimport PropTypes from 'prop-types';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nconst stickySideBannerBlock = 'zn-sticky-side-banner';\n\nconst StickySideBanner = ({\n stickySideBanner,\n stickySideBannerContent,\n sitecoreContext,\n fields,\n}) => {\n const { BackgroundCustomColor } = fields;\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n return (\n
    \n
    \n {stickySideBannerContent}\n
    \n {!pdfView && (\n \n \n \n {stickySideBanner}\n
    \n \n \n )}\n \n );\n};\n\nStickySideBanner.propTypes = {\n fields: PropTypes.shape({\n BackgroundCustomColor: PropTypes.shape({\n value: PropTypes.string,\n }),\n }),\n};\n\nconst StickySideBannerWithContext = withSitecoreContext()(StickySideBanner);\n\nexport const StickySideBannerStorybook = forStorybook(StickySideBannerWithContext);\n\nexport default withPlaceholder(['stickySideBanner', 'stickySideBannerContent'])(\n StickySideBannerWithContext\n);\n","import React from 'react';\nimport classnames from 'classnames';\nimport './sticky-side-section.scss';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nconst stickySideSectionBlock = 'zn-sticky-side-section';\n\nexport const StickySideSection = ({ leftStickyContent, rightContent, sitecoreContext, params }) => {\n const { AlternateColorsOverride } = params;\n\n return (\n \n \n \n {leftStickyContent}\n \n \n \n {rightContent}\n \n \n );\n};\n\nconst StickySideSectionWithPlaceholder = withPlaceholder(['leftStickyContent', 'rightContent'])(\n StickySideSection\n);\n\nexport const StickySideSectionStorybook = forStorybookV2(StickySideSection);\n\nexport default withSitecoreContext()(StickySideSectionWithPlaceholder);\n","import React from 'react';\nimport ItemWithImage from '../ItemWithImage/ItemWithImage.jsx';\nimport { SearchResultTypeEnum } from '../../utils/enums';\nimport forStorybook from '../../utils/forStorybook.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nimport './student-profile.scss';\n\nconst StudentProfile = ({ fields, sitecoreContext }) => {\n const {\n Image,\n Name,\n School,\n EducationInformation,\n PhoneNumber,\n EmailAddress,\n Description,\n } = fields;\n return (\n
    \n \n
    \n );\n};\n\nconst StudentProfileWithContext = withSitecoreContext()(StudentProfile);\nexport const StudentProfileStorybook = forStorybook(StudentProfileWithContext);\nexport default StudentProfileWithContext;\n","import React, { useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport './two-col-sticky-side-banner.scss';\nimport { withPlaceholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\n\nconst twoColStickySideBannerBlock = 'zn-two-col-sticky-side-banner';\n\nconst TwoColStickySideBanner = ({\n stickySideBanner,\n leftColumnContent,\n rightColumnContent,\n sitecoreContext,\n fields,\n}) => {\n const { BackgroundCustomColor } = fields;\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n return (\n \n \n
    \n {sitecoreContext?.pageEditing &&
    Left Container Content
    }\n {leftColumnContent}\n
    \n
    \n {sitecoreContext?.pageEditing &&
    Right Container Content
    }\n {rightColumnContent}\n
    \n \n {!pdfView && (\n \n \n \n {stickySideBanner}\n \n \n \n )}\n \n );\n};\n\nconst TwoColStickySideBannerWithContext = withSitecoreContext()(TwoColStickySideBanner);\n\nexport default withPlaceholder(['stickySideBanner', 'rightColumnContent', 'leftColumnContent'])(\n TwoColStickySideBannerWithContext\n);\n","import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { TwoColumnLayoutEnum } from '../../utils/enums';\nimport { withPlaceholder } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport './two-column-profile-list.scss';\n\nexport const TwoColumnProfileList = ({ params, twoColumnListItems }) => {\n const { Layout } = params;\n const twoColumnProfileListBlock = 'zn-two-column-profile-list';\n\n return (\n \n
      {twoColumnListItems}
    \n \n );\n};\n\nTwoColumnProfileList.propTypes = {\n params: PropTypes.shape({\n Layout: PropTypes.oneOf(Object.values(TwoColumnLayoutEnum)),\n }),\n};\n\nconst TwoColumnProfileListSitecore = TwoColumnProfileList;\n\nexport const TwoColumnProfileListStorybook = forStorybookV2(TwoColumnProfileListSitecore);\n\nexport default withPlaceholder('twoColumnListItems')(TwoColumnProfileListSitecore);\n","import React from 'react';\nimport classnames from 'classnames';\nimport { TwoColumnLayoutEnum } from '../../utils/enums';\nimport { RichText as RichTextJss } from '@sitecore-jss/sitecore-jss-react';\nimport '../TwoColumnProfileList/two-column-profile-list.scss';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\n\nconst TwoColumnProfileListItem = ({ params, fields }) => {\n const { Layout } = params;\n const { Label, Description } = fields;\n const twoColumnProfileListItemBlock = 'zn-two-column-profile-list-item';\n return (\n \n \n {Label?.value && (\n \n {Layout === TwoColumnLayoutEnum.bulletPoint}\n \n \n )}\n {Description?.value && (\n \n \n \n )}\n \n {Layout === TwoColumnLayoutEnum.paragraph && (\n
    \n )}\n \n );\n};\n\nexport const TwoColumnProfileListItemStorybook = forStorybookV2(TwoColumnProfileListItem);\n\nexport default TwoColumnProfileListItem;\n","import React, { useState, useEffect } from 'react';\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\nimport classnames from 'classnames';\nimport { ThemeEnum } from '../../utils/enums';\nimport './video.scss';\n\nconst Video = ({ fields, params }) => {\n const { VideoURL, Caption, AltText } = fields;\n const { Theme } = params;\n const [playerURL, setPlayerURL] = useState('');\n const oEmbedURL = 'https://vimeo.com/api/oembed.json?url=';\n const videoBlock = 'zn-video';\n\n useEffect(() => {\n const activeGroups = window?.OnetrustActiveGroups?.split(',').filter(Boolean);\n const videoId = VideoURL?.value;\n\n if (!videoId) {\n setPlayerURL('');\n return;\n }\n const fetchPlayerURL = async () => {\n try {\n let dnt = '';\n if (!['C0004', 'C0003'].every((group) => activeGroups?.includes(group))) {\n dnt += '?dnt=1';\n }\n const response = await fetch(`${oEmbedURL}${videoId}${dnt}`);\n const result = await response.json();\n let url = `https://player.vimeo.com/video/${result?.video_id}${dnt}`;\n\n setPlayerURL(url);\n } catch (error) {\n setPlayerURL('');\n }\n };\n\n fetchPlayerURL();\n }, [VideoURL]);\n\n return (\n \n
    \n \n
    \n
    \n \n
    \n \n );\n};\n\nexport default Video;\n","/* eslint-disable */\n// Do not edit this file, it is auto-generated at build time!\n// See scripts/generate-component-factory.js to modify the generation of this file.\nimport Accordion from '../components/Accordion';\nimport ArticleHeading from '../components/ArticleHeading';\nimport ArticleHero from '../components/ArticleHero';\nimport AutoloadContentRow from '../components/AutoloadContentRow';\nimport BioEducation from '../components/BioEducation';\nimport BioProfessionalInvolvement from '../components/BioProfessionalInvolvement';\nimport BioProfileHero from '../components/BioProfileHero';\nimport BioQuote from '../components/BioQuote';\nimport BioRelatedArticleList from '../components/BioRelatedArticleList';\nimport Button from '../components/Button';\nimport ButtonLink from '../components/ButtonLink';\nimport Carousel from '../components/Carousel';\nimport ColumnGrid from '../components/ColumnGrid';\nimport ContactCard from '../components/ContactCard';\nimport ContactCardManual from '../components/ContactCardManual';\nimport ContactCards from '../components/ContactCards';\nimport ContentCard from '../components/ContentCard';\nimport ContentCardRow from '../components/ContentCardRow';\nimport ContextContactCards from '../components/ContextContactCards';\nimport ContextFeatureList from '../components/ContextFeatureList';\nimport ContextLinkList from '../components/ContextLinkList';\nimport ContextRichText from '../components/ContextRichText';\nimport ContextTagList from '../components/ContextTagList';\nimport Dropdown from '../components/Dropdown';\nimport EventSearchBar from '../components/EventSearchBar';\nimport EventSearchResults from '../components/EventSearchResults';\nimport ExpertiseFeaturedWorkList from '../components/ExpertiseFeaturedWorkList';\nimport ExpertiseHero from '../components/ExpertiseHero';\nimport ExpertisePageLinks from '../components/ExpertisePageLinks';\nimport ExpertisePageLinksContainer from '../components/ExpertisePageLinksContainer';\nimport ExpertisePageLinksItem from '../components/ExpertisePageLinksItem';\nimport FeaturedContent from '../components/FeaturedContent';\nimport FeaturedList from '../components/FeaturedList';\nimport FeaturedListItem from '../components/FeaturedListItem';\nimport Footer from '../components/Footer';\nimport FooterContactBar from '../components/FooterContactBar';\nimport FooterLinkList from '../components/FooterLinkList';\nimport FooterTeaser from '../components/FooterTeaser';\nimport Footnotes from '../components/Footnotes';\nimport FootnotesItem from '../components/FootnotesItem';\nimport GeneralHero from '../components/GeneralHero';\nimport GeneralLandingSearchBar from '../components/GeneralLandingSearchBar';\nimport Grid from '../components/Grid';\nimport HeadingAccent from '../components/HeadingAccent';\nimport HomepageHero from '../components/HomepageHero';\nimport HorizontalRule from '../components/HorizontalRule';\nimport IconDropdown from '../components/IconDropdown';\nimport Image from '../components/Image';\nimport InPageNavigation from '../components/InPageNavigation';\nimport InPageNavigationItem from '../components/InPageNavigationItem';\nimport InteractiveMap from '../components/InteractiveMap';\nimport ItemWithIcon from '../components/ItemWithIcon';\nimport ItemWithImage from '../components/ItemWithImage';\nimport KnowledgeHubDate from '../components/KnowledgeHubDate';\nimport KnowledgeHubHero from '../components/KnowledgeHubHero';\nimport Link from '../components/Link';\nimport LinkList from '../components/LinkList';\nimport LinkListItem from '../components/LinkListItem';\nimport MegaNavHeader from '../components/MegaNavHeader';\nimport MegaNavHome from '../components/MegaNavHome';\nimport MegaNavPrimary from '../components/MegaNavPrimary';\nimport MegaNavSecondary from '../components/MegaNavSecondary';\nimport MegaNavTertiary from '../components/MegaNavTertiary';\nimport NavBarMain from '../components/NavBarMain';\nimport Navigation from '../components/Navigation';\nimport NewsCard from '../components/NewsCard';\nimport NewsCardRow from '../components/NewsCardRow';\nimport OfficeCard from '../components/OfficeCard';\nimport PartialContainer from '../components/PartialContainer';\nimport ProfileHero from '../components/ProfileHero';\nimport ProjectMapContainer from '../components/ProjectMapContainer';\nimport ProjectMapList from '../components/ProjectMapList';\nimport ProjectMapSearchBar from '../components/ProjectMapSearchBar';\nimport ProjectMapWorkArticleTable from '../components/ProjectMapWorkArticleTable';\nimport ProjectMapWorkArticleTableDivider from '../components/ProjectMapWorkArticleTableDivider';\nimport ProjectMapWorkArticleTableRow from '../components/ProjectMapWorkArticleTableRow';\nimport ProjectMapWorkTable from '../components/ProjectMapWorkTable';\nimport QuarterlyAnimationSection from '../components/QuarterlyAnimationSection';\nimport QuarterlyArticleNavigationBanner from '../components/QuarterlyArticleNavigationBanner';\nimport QuarterlyIntroduction from '../components/QuarterlyIntroduction';\nimport QuarterlyIntroductionAnimation from '../components/QuarterlyIntroductionAnimation';\nimport QuarterlyIntroductionListItem from '../components/QuarterlyIntroductionListItem';\nimport QuarterlyLandingHero from '../components/QuarterlyLandingHero';\nimport QuarterlyLandingHeroAnimation from '../components/QuarterlyLandingHeroAnimation';\nimport QuarterlyNavigation from '../components/QuarterlyNavigation';\nimport QuarterlySectionHeader from '../components/QuarterlySectionHeader';\nimport Quote from '../components/Quote';\nimport RepresentativeWork from '../components/RepresentativeWork';\nimport RepresentativeWorkFilter from '../components/RepresentativeWorkFilter';\nimport RichText from '../components/RichText';\nimport SearchBar from '../components/SearchBar';\nimport SearchBarFilter from '../components/SearchBarFilter';\nimport SearchInput from '../components/SearchInput';\nimport SearchResults from '../components/SearchResults';\nimport Section from '../components/Section';\nimport SectionHeading from '../components/SectionHeading';\nimport SideNavigation from '../components/SideNavigation';\nimport SideNavigationItem from '../components/SideNavigationItem';\nimport SimpleHero from '../components/SimpleHero';\nimport SnippetComponent from '../components/SnippetComponent';\nimport SocialMediaLinks from '../components/SocialMediaLinks';\nimport Statistics from '../components/Statistics';\nimport StickySideBanner from '../components/StickySideBanner';\nimport StickySideSection from '../components/StickySideSection';\nimport StudentProfile from '../components/StudentProfile';\nimport Tag from '../components/Tag';\nimport TagList from '../components/TagList';\nimport Text from '../components/Text';\nimport TwoColStickySideBanner from '../components/TwoColStickySideBanner';\nimport TwoColumnProfileList from '../components/TwoColumnProfileList';\nimport TwoColumnProfileListItem from '../components/TwoColumnProfileListItem';\nimport Video from '../components/Video';\n\nconst components = new Map();\ncomponents.set('Accordion', Accordion);\ncomponents.set('ArticleHeading', ArticleHeading);\ncomponents.set('ArticleHero', ArticleHero);\ncomponents.set('AutoloadContentRow', AutoloadContentRow);\ncomponents.set('BioEducation', BioEducation);\ncomponents.set('BioProfessionalInvolvement', BioProfessionalInvolvement);\ncomponents.set('BioProfileHero', BioProfileHero);\ncomponents.set('BioQuote', BioQuote);\ncomponents.set('BioRelatedArticleList', BioRelatedArticleList);\ncomponents.set('Button', Button);\ncomponents.set('ButtonLink', ButtonLink);\ncomponents.set('Carousel', Carousel);\ncomponents.set('ColumnGrid', ColumnGrid);\ncomponents.set('ContactCard', ContactCard);\ncomponents.set('ContactCardManual', ContactCardManual);\ncomponents.set('ContactCards', ContactCards);\ncomponents.set('ContentCard', ContentCard);\ncomponents.set('ContentCardRow', ContentCardRow);\ncomponents.set('ContextContactCards', ContextContactCards);\ncomponents.set('ContextFeatureList', ContextFeatureList);\ncomponents.set('ContextLinkList', ContextLinkList);\ncomponents.set('ContextRichText', ContextRichText);\ncomponents.set('ContextTagList', ContextTagList);\ncomponents.set('Dropdown', Dropdown);\ncomponents.set('EventSearchBar', EventSearchBar);\ncomponents.set('EventSearchResults', EventSearchResults);\ncomponents.set('ExpertiseFeaturedWorkList', ExpertiseFeaturedWorkList);\ncomponents.set('ExpertiseHero', ExpertiseHero);\ncomponents.set('ExpertisePageLinks', ExpertisePageLinks);\ncomponents.set('ExpertisePageLinksContainer', ExpertisePageLinksContainer);\ncomponents.set('ExpertisePageLinksItem', ExpertisePageLinksItem);\ncomponents.set('FeaturedContent', FeaturedContent);\ncomponents.set('FeaturedList', FeaturedList);\ncomponents.set('FeaturedListItem', FeaturedListItem);\ncomponents.set('Footer', Footer);\ncomponents.set('FooterContactBar', FooterContactBar);\ncomponents.set('FooterLinkList', FooterLinkList);\ncomponents.set('FooterTeaser', FooterTeaser);\ncomponents.set('Footnotes', Footnotes);\ncomponents.set('FootnotesItem', FootnotesItem);\ncomponents.set('GeneralHero', GeneralHero);\ncomponents.set('GeneralLandingSearchBar', GeneralLandingSearchBar);\ncomponents.set('Grid', Grid);\ncomponents.set('HeadingAccent', HeadingAccent);\ncomponents.set('HomepageHero', HomepageHero);\ncomponents.set('HorizontalRule', HorizontalRule);\ncomponents.set('IconDropdown', IconDropdown);\ncomponents.set('Image', Image);\ncomponents.set('InPageNavigation', InPageNavigation);\ncomponents.set('InPageNavigationItem', InPageNavigationItem);\ncomponents.set('InteractiveMap', InteractiveMap);\ncomponents.set('ItemWithIcon', ItemWithIcon);\ncomponents.set('ItemWithImage', ItemWithImage);\ncomponents.set('KnowledgeHubDate', KnowledgeHubDate);\ncomponents.set('KnowledgeHubHero', KnowledgeHubHero);\ncomponents.set('Link', Link);\ncomponents.set('LinkList', LinkList);\ncomponents.set('LinkListItem', LinkListItem);\ncomponents.set('MegaNavHeader', MegaNavHeader);\ncomponents.set('MegaNavHome', MegaNavHome);\ncomponents.set('MegaNavPrimary', MegaNavPrimary);\ncomponents.set('MegaNavSecondary', MegaNavSecondary);\ncomponents.set('MegaNavTertiary', MegaNavTertiary);\ncomponents.set('NavBarMain', NavBarMain);\ncomponents.set('Navigation', Navigation);\ncomponents.set('NewsCard', NewsCard);\ncomponents.set('NewsCardRow', NewsCardRow);\ncomponents.set('OfficeCard', OfficeCard);\ncomponents.set('PartialContainer', PartialContainer);\ncomponents.set('ProfileHero', ProfileHero);\ncomponents.set('ProjectMapContainer', ProjectMapContainer);\ncomponents.set('ProjectMapList', ProjectMapList);\ncomponents.set('ProjectMapSearchBar', ProjectMapSearchBar);\ncomponents.set('ProjectMapWorkArticleTable', ProjectMapWorkArticleTable);\ncomponents.set('ProjectMapWorkArticleTableDivider', ProjectMapWorkArticleTableDivider);\ncomponents.set('ProjectMapWorkArticleTableRow', ProjectMapWorkArticleTableRow);\ncomponents.set('ProjectMapWorkTable', ProjectMapWorkTable);\ncomponents.set('QuarterlyAnimationSection', QuarterlyAnimationSection);\ncomponents.set('QuarterlyArticleNavigationBanner', QuarterlyArticleNavigationBanner);\ncomponents.set('QuarterlyIntroduction', QuarterlyIntroduction);\ncomponents.set('QuarterlyIntroductionAnimation', QuarterlyIntroductionAnimation);\ncomponents.set('QuarterlyIntroductionListItem', QuarterlyIntroductionListItem);\ncomponents.set('QuarterlyLandingHero', QuarterlyLandingHero);\ncomponents.set('QuarterlyLandingHeroAnimation', QuarterlyLandingHeroAnimation);\ncomponents.set('QuarterlyNavigation', QuarterlyNavigation);\ncomponents.set('QuarterlySectionHeader', QuarterlySectionHeader);\ncomponents.set('Quote', Quote);\ncomponents.set('RepresentativeWork', RepresentativeWork);\ncomponents.set('RepresentativeWorkFilter', RepresentativeWorkFilter);\ncomponents.set('RichText', RichText);\ncomponents.set('SearchBar', SearchBar);\ncomponents.set('SearchBarFilter', SearchBarFilter);\ncomponents.set('SearchInput', SearchInput);\ncomponents.set('SearchResults', SearchResults);\ncomponents.set('Section', Section);\ncomponents.set('SectionHeading', SectionHeading);\ncomponents.set('SideNavigation', SideNavigation);\ncomponents.set('SideNavigationItem', SideNavigationItem);\ncomponents.set('SimpleHero', SimpleHero);\ncomponents.set('SnippetComponent', SnippetComponent);\ncomponents.set('SocialMediaLinks', SocialMediaLinks);\ncomponents.set('Statistics', Statistics);\ncomponents.set('StickySideBanner', StickySideBanner);\ncomponents.set('StickySideSection', StickySideSection);\ncomponents.set('StudentProfile', StudentProfile);\ncomponents.set('Tag', Tag);\ncomponents.set('TagList', TagList);\ncomponents.set('Text', Text);\ncomponents.set('TwoColStickySideBanner', TwoColStickySideBanner);\ncomponents.set('TwoColumnProfileList', TwoColumnProfileList);\ncomponents.set('TwoColumnProfileListItem', TwoColumnProfileListItem);\ncomponents.set('Video', Video);\n\nexport default function componentFactory(componentName) {\n return components.get(componentName);\n};\n","import axios from 'axios';\n\n/**\n * Implements a data fetcher using Axios - replace with your favorite\n * SSR-capable HTTP or fetch library if you like. See HttpJsonFetcher type\n * in sitecore-jss library for implementation details/notes.\n * @param {string} url The URL to request; may include query string\n * @param {any} data Optional data to POST with the request.\n */\nexport function dataFetcher(url, data) {\n return axios({\n url,\n method: data ? 'POST' : 'GET',\n data,\n // note: axios needs to use `withCredentials: true` in order for Sitecore cookies to be included in CORS requests\n // which is necessary for analytics and such\n withCredentials: true,\n });\n}\n","import React from 'react';\n\n// Renders a route-not-found message when no route is available from Sitecore\n// The JSS equivalent of a 404 Not Found page.\n\n// This is invoked from RouteHandler when Sitecore returns no valid route data.\n// The NotFound component receives the Layout Service Context data, but no route data.\n// This can be used to power parts of your site, such as navigation, from LS context additions\n// without losing the ability to render them on your 404 pages :)\n\nconst NotFound = ({ context = { site: { name: '' }, language: '' } }) => (\n \n

    Page not found

    \n

    This page does not exist.

    \n

    \n Site: {context.site && context.site.name}\n
    \n Language: {context.language}\n

    \n
    \n);\n\nexport default NotFound;\n","import React from 'react';\nimport i18n from 'i18next';\nimport Helmet from 'react-helmet';\nimport {\n isExperienceEditorActive,\n dataApi,\n withSitecoreContext,\n} from '@sitecore-jss/sitecore-jss-react';\nimport { dataFetcher } from './dataFetcher';\nimport { getHostname } from './util';\nimport config from './temp/config';\nimport Layout from './Layout';\nimport NotFound from './NotFound';\nimport nprogress from 'nprogress';\nimport 'nprogress/nprogress.css';\n\n/* eslint-disable no-console */\n\n// Dynamic route handler for Sitecore items.\n// Because JSS app routes are defined in Sitecore, traditional static React routing isn't enough -\n// we need to be able to load dynamic route data from Sitecore after the client side route changes.\n// So react-router delegates all route rendering to this handler, which attempts to get the right\n// route data from Sitecore - and if none exists, renders the not found component.\n\nclass RouteHandler extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n notFound: true,\n defaultLanguage: config.defaultLanguage,\n };\n\n const routeData = this.extractRouteData();\n\n // route data from react-router - if route was resolved, it's not a 404\n if (props.route !== null) {\n this.state.notFound = false;\n }\n\n // if we have an initial SSR state, and that state doesn't have a valid route data,\n // then this is a 404 route.\n if (routeData && (!routeData.sitecore || !routeData.sitecore.route)) {\n this.state.notFound = true;\n }\n\n // if we have an SSR state, and that state has language data, set the current language\n // (this makes the language of content follow the Sitecore context language cookie)\n // note that a route-based language (i.e. /de-DE) will override this default; this is for home.\n if (\n routeData &&\n routeData.sitecore &&\n routeData.sitecore.context &&\n routeData.sitecore.context.language\n ) {\n this.state.defaultLanguage = routeData.sitecore.context.language;\n }\n\n // tell i18next to sync its current language with the route language\n this.updateLanguage();\n\n this.myRef = React.createRef();\n }\n\n componentDidMount() {\n nprogress.start();\n const routeData = this.extractRouteData();\n\n // if no existing routeData is present (from SSR), get Layout Service fetching the route data or ssr render complete\n if (!routeData || this.props.ssrRenderComplete) {\n this.updateRouteData();\n } else {\n nprogress.done();\n }\n }\n\n extractRouteData = () => {\n if (!this.props.sitecoreContext) return null;\n\n const { route, ...context } = this.props.sitecoreContext;\n\n return {\n sitecore: {\n route,\n context,\n },\n };\n };\n\n /**\n * Loads route data from Sitecore Layout Service into state.routeData\n */\n updateRouteData() {\n nprogress.start();\n let sitecoreRoutePath = this.props.route.match.params.sitecoreRoute || '/';\n if (!sitecoreRoutePath.startsWith('/')) {\n sitecoreRoutePath = `/${sitecoreRoutePath}`;\n }\n\n const language = this.props.route.match.params.lang || this.state.defaultLanguage;\n\n // get the route data for the new route\n getRouteData(sitecoreRoutePath, language).then((routeData) => {\n if (routeData !== null && routeData.sitecore && routeData.sitecore.route) {\n // set the sitecore context data and push the new route\n this.props.updateSitecoreContext({\n route: routeData.sitecore.route,\n itemId: routeData.sitecore.route.itemId,\n ...routeData.sitecore.context,\n });\n this.setState({ notFound: false });\n nprogress.done();\n } else {\n this.setState({ notFound: true }, () =>\n this.props.updateSitecoreContext(routeData.sitecore.context)\n );\n }\n });\n }\n\n /**\n * Updates the current app language to match the route data.\n */\n updateLanguage() {\n const newLanguage = this.props.route.match.params.lang || this.state.defaultLanguage;\n\n if (i18n.language !== newLanguage) {\n i18n.changeLanguage(newLanguage);\n }\n }\n\n componentDidUpdate(previousProps) {\n const existingRoute = previousProps.route.match.url;\n const newRoute = this.props.route.match.url;\n\n // don't change state (refetch route data) if the route has not changed\n if (existingRoute === newRoute) {\n return;\n }\n\n // if in experience editor - force reload instead of route data update\n // avoids confusing Sitecore's editing JS\n if (isExperienceEditorActive()) {\n window.location.assign(newRoute);\n return;\n }\n\n this.updateLanguage();\n this.updateRouteData();\n }\n\n render() {\n const { notFound } = this.state;\n const routeData = this.extractRouteData();\n\n // no route data for the current route in Sitecore - show not found component.\n // Note: this is client-side only 404 handling. Server-side 404 handling is the responsibility\n // of the server being used (i.e. node-headless-ssr-proxy and Sitecore intergrated rendering know how to send 404 status codes).\n if (notFound && routeData) {\n location.reload();\n\n return (\n
    \n \n {i18n.t('Page not found')}\n \n \n
    \n );\n }\n\n // Don't render anything if the route data or dictionary data is not fully loaded yet.\n // This is a good place for a \"Loading\" component, if one is needed.\n if (!routeData) {\n return null;\n }\n\n // Render the app's root structural layout\n return (\n \n );\n }\n}\n\n/**\n * Gets route data from Sitecore. This data is used to construct the component layout for a JSS route.\n * @param {string} route Route path to get data for (e.g. /about)\n * @param {string} language Language to get route data in (content language, e.g. 'en')\n */\nfunction getRouteData(route, language) {\n const fetchOptions = {\n layoutServiceConfig: { host: getHostname() },\n querystringParams: { sc_lang: language, sc_apikey: config.sitecoreApiKey },\n fetcher: dataFetcher,\n };\n\n return dataApi.fetchRouteData(route, fetchOptions).catch((error) => {\n if (error.response && error.response.status === 404 && error.response.data) {\n return error.response.data;\n }\n\n console.error('Route data fetch error', error, error.response);\n\n return null;\n });\n}\n\nexport default withSitecoreContext({ updatable: true })(RouteHandler);\n","import React from 'react';\nimport { SitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { Route, Switch } from 'react-router-dom';\nimport { ApolloProvider } from 'react-apollo';\nimport componentFactory from './temp/componentFactory';\nimport RouteHandler from './RouteHandler';\nimport nprogress from 'nprogress';\nimport 'nprogress/nprogress.css';\n\n// This is the main JSX entry point of the app invoked by the renderer (server or client rendering).\n// By default the app's normal rendering is delegated to that handles the loading of JSS route data.\n\n// support languages in the URL prefix\n// e.g. /da-DK/path, or /en/path, or /path\nexport const routePatterns = [\n '/:lang([a-z]{2}-[A-Z]{2})/:sitecoreRoute*',\n '/:lang([a-z]{2})/:sitecoreRoute*',\n '/:sitecoreRoute*',\n];\n\n// wrap the app with:\n// ApolloProvider: provides an instance of Apollo GraphQL client to the app to make Connected GraphQL queries.\n// Not needed if not using connected GraphQL.\n// SitecoreContext: provides component resolution and context services via withSitecoreContext\n// Router: provides a basic routing setup that will resolve Sitecore item routes and allow for language URL prefixes.\nclass AppRoot extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n ssrRenderComplete: false,\n };\n\n if (props.ssrState) {\n this.sitecoreContext =\n props.ssrState.sitecore && props.ssrState.sitecore.route\n ? {\n route: props.ssrState.sitecore.route,\n itemId: props.ssrState.sitecore.route.itemId,\n ...props.ssrState.sitecore.context,\n }\n : props.ssrState.sitecore.context;\n } else {\n this.sitecoreContext = null;\n }\n }\n\n setSsrRenderComplete = (ssrRenderComplete) => {\n this.setState({\n ssrRenderComplete,\n });\n nprogress.done();\n };\n\n componentDidMount() {\n this.setSsrRenderComplete(true);\n }\n\n render() {\n const { path, Router, graphQLClient } = this.props;\n\n return (\n \n \n \n \n {routePatterns.map((routePattern) => (\n (\n \n )}\n />\n ))}\n \n \n \n \n );\n }\n}\n\nexport default AppRoot;\n","import 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport AppRoot from './AppRoot';\nimport GraphQLClientFactory from './lib/GraphQLClientFactory';\nimport config from './temp/config';\nimport i18ninit from './i18n';\n\n/* eslint-disable no-underscore-dangle */\n\nlet renderFunction = ReactDOM.render;\n\nlet initLanguage = config.defaultLanguage;\n\n/*\n SSR Data\n If we're running in a server-side rendering scenario,\n the server will provide JSON in the #__JSS_STATE__ element\n for us to acquire the initial state to run with on the client.\n\n This enables us to skip a network request to load up the layout data.\n We are emitting a quiescent script with JSON so that we can take advantage\n of JSON.parse()'s speed advantage over parsing full JS, and enable\n working without needing `unsafe-inline` in Content Security Policies.\n\n SSR is initiated from /server/server.js.\n*/\nlet __JSS_STATE__ = null;\nconst ssrRawJson = document.getElementById('__JSS_STATE__');\nif (ssrRawJson) {\n __JSS_STATE__ = JSON.parse(ssrRawJson.innerHTML);\n}\nif (__JSS_STATE__) {\n // when React initializes from a SSR-based initial state, you need to render with `hydrate` instead of `render`\n renderFunction = ReactDOM.hydrate;\n\n // set i18n language SSR state language instead of static config default language\n initLanguage = __JSS_STATE__.sitecore.context.language;\n}\n\n/*\n GraphQL Data\n The Apollo Client needs to be initialized to make GraphQL available to the JSS app.\n Not using GraphQL? Remove this, and the ApolloContext from `AppRoot`.\n*/\n// Apollo supports SSR of GraphQL queries, so like JSS SSR, it has an object we can pre-hydrate the client cache from\n// to avoid needing to re-run GraphQL queries after the SSR page loads\nconst initialGraphQLState =\n __JSS_STATE__ && __JSS_STATE__.APOLLO_STATE ? __JSS_STATE__.APOLLO_STATE : null;\n\nconst graphQLClient = GraphQLClientFactory(config.graphQLEndpoint, false, initialGraphQLState);\n\n/*\n App Rendering\n*/\n// initialize the dictionary, then render the app\n// note: if not making a multlingual app, the dictionary init can be removed.\ni18ninit(initLanguage).then(() => {\n // HTML element to place the app into\n const rootElement = document.getElementById('root');\n\n renderFunction(\n ,\n rootElement\n );\n});\n","import i18n from 'i18next';\nimport fetchBackend from 'i18next-fetch-backend';\nimport { initReactI18next } from 'react-i18next';\nimport config from './temp/config';\nimport { getHostname } from './util';\n\n/**\n * Initializes the i18next library to provide a translation dictionary to the app.\n * If your app is not multilingual, this file and references to it can be removed.\n * Elsewhere in the app to use the dictionary `import { t } from 'i18next'; ... t('key')`\n * @param {string} language Optional, the initial language. Only used for SSR; otherwise language set in RouteHandler.\n * @param {*} dictionary Optional, the dictionary to load. Only used for SSR; otherwise, the dictionary is loaded via JSS dictionary service.\n */\nexport default function i18nInit(language, dictionary) {\n return new Promise((resolve, reject) => {\n const options = {\n debug: false,\n lng: language,\n fallbackLng: false, // fallback to keys\n load: 'currentOnly', // e.g. don't load 'es' when requesting 'es-MX' -- Sitecore config should handle this\n useCookie: false, // using URLs and Sitecore to store language context, don't need a cookie\n\n interpolation: {\n escapeValue: false, // not needed for react\n },\n };\n\n if (dictionary) {\n // if we got dictionary passed, that means we're in a SSR context with a server-provided dictionary\n // so we do not want a backend, because we already know all possible keys\n\n if (!i18n.isInitialized) {\n i18n.use(initReactI18next).init(options, (error) => {\n if (error) reject(error);\n\n i18n.addResourceBundle(language, 'translation', dictionary, true, true);\n\n resolve();\n });\n } else {\n i18n.changeLanguage(language).then(() => {\n i18n.addResourceBundle(language, 'translation', dictionary, true, true);\n\n resolve();\n });\n }\n } else {\n // We're running client-side, so we get translation data from the Sitecore dictionary API using fetch backend\n // For higher performance (but less simplicity), consider adding the i18n chained backend to a local cache option like the local storage backend.\n\n // eslint-disable-next-line\n const dictionaryServicePath = `${getHostname()}/sitecore/api/jss/dictionary/${\n config.jssAppName\n }/{{lng}}?sc_apikey=${config.sitecoreApiKey}`;\n\n options.backend = {\n loadPath: dictionaryServicePath,\n parse: (data) => {\n const parsedData = JSON.parse(data);\n if (parsedData.phrases) {\n return parsedData.phrases;\n }\n return parsedData;\n },\n };\n\n i18n.use(fetchBackend)\n .use(initReactI18next)\n .init(options, (error) => {\n if (error) reject(error);\n\n resolve();\n });\n }\n });\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport './social-media-links.scss';\nimport Text from '../Text';\nimport classnames from 'classnames';\nimport { LinkIconComponent } from './SocialMediaIcons.jsx';\nimport { ThemeEnum, SizeEnum } from '../../utils/enums';\nimport SocialMediaLink from './SocialMediaLink.jsx';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { withTranslation } from 'react-i18next';\n\nconst socialMediaLinkBlock = 'zn-social-media-link';\n\nconst copyToClipboard = (text) => navigator.clipboard.writeText(text);\n\nconst CopyToClipboardButton = ({\n contentToCopy,\n showLabel,\n label,\n theme,\n alt,\n labelsMarginSize,\n t,\n}) => (\n copyToClipboard(contentToCopy)}\n onKeyDown={({ key }) => {\n if (['Enter', 'Space'].includes(key)) {\n copyToClipboard(contentToCopy);\n }\n }}\n className={classnames(socialMediaLinkBlock, {\n [`${socialMediaLinkBlock}--dark`]: theme === ThemeEnum.dark,\n })}\n >\n \n \n {t('OpensInANewWindow')}\n \n);\n\nCopyToClipboardButton.propTypes = {\n theme: SocialMediaLink.propTypes.theme,\n alt: SocialMediaLink.propTypes.alt,\n showLabel: SocialMediaLink.propTypes.showLabel,\n label: SocialMediaLink.propTypes.label,\n labelsMarginSize: SocialMediaLink.propTypes.labelsMarginSize,\n contentToCopy: PropTypes.string,\n};\n\nexport default withTranslation()(withSitecoreContext()(CopyToClipboardButton));\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport './social-media-links.scss';\nimport classnames from 'classnames';\nimport {\n FacebookIconComponent,\n TwitterIconComponent,\n LinkedinIconComponent,\n PdfIconComponent,\n MailIconComponent,\n} from './SocialMediaIcons.jsx';\nimport { useLocation } from 'react-router-dom';\nimport { getHostname } from '../../util';\nimport { ThemeEnum, DisplayStyleEnum, LinkTypeEnum, SizeEnum } from '../../utils/enums';\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\nimport { forStorybookV2 } from '../../utils/forStorybook.jsx';\nimport SocialMediaLink from './SocialMediaLink.jsx';\nimport CopyToClipboardButton from './CopyToClipboardButton.jsx';\n\nimport withErrorBoundary, { ErrorBoundaryConditions } from '../../utils/withErrorBoundary.jsx';\n\nconst socialMediaLinksBlock = 'zn-social-media-links';\n\nconst getLinkType = (linkType, pageLink, shareLink) =>\n linkType === LinkTypeEnum.shareLink ? { value: shareLink } : pageLink;\n\nconst SocialMediaLinks = ({ fields, params, sitecoreContext }) => {\n const { language } = sitecoreContext;\n\n const {\n Theme,\n DisplayStyle,\n ShowLabels,\n LabelsMarginSize,\n FacebookInclude,\n FacebookLinkType,\n TwitterInclude,\n TwitterLinkType,\n LinkedInInclude,\n LinkedInLinkType,\n EmailInclude,\n PDFInclude,\n CopyUrlInclude,\n } = params;\n\n const {\n FacebookLabel,\n FacebookPageLink,\n FacebookIconAltText,\n TwitterLabel,\n TwitterPageLink,\n TwitterIconAltText,\n LinkedInLabel,\n LinkedInPageLink,\n LinkedInIconAltText,\n EmailLabel,\n EmailLink,\n EmailIconAltText,\n PDFLabel,\n PDFLink,\n PDFServiceURL,\n PDFIconAltText,\n CopyUrlLabel,\n CopyUrlIconAltText,\n } = fields;\n\n const { pathname, search, hash } = useLocation();\n const locationString = `${getHostname()}${pathname}${search}${hash}`;\n const title = `${sitecoreContext.route.displayName}`;\n\n const [pdfURL, setPdfURL] = useState('');\n\n useEffect(() => {\n if (PDFLink?.value) {\n setPdfURL(PDFLink);\n } else if (PDFServiceURL?.value) {\n setPdfURL({\n value: PDFServiceURL?.value + pathname + `?sc_lang=${language ?? 'en'}`,\n });\n } else {\n setPdfURL({\n value: '',\n });\n }\n }, [PDFLink, PDFServiceURL, pathname, language]);\n\n const [pdfView, setPdfView] = useState(false);\n\n useEffect(() => {\n if (\n window?.location?.href?.includes('pdf_view=1') ||\n window?.location?.href?.includes('pdf_view%3D1')\n ) {\n setPdfView(true);\n }\n }, []);\n\n return (\n !pdfView && (\n \n \n \n \n \n \n {CopyUrlInclude === '1' && (\n \n )}\n \n )\n );\n};\n\nSocialMediaLinks.propTypes = {\n fields: PropTypes.exact({\n FacebookPageLink: SocialMediaLink.propTypes.link,\n FacebookLabel: SocialMediaLink.propTypes.label,\n FacebookIconAltText: SocialMediaLink.propTypes.alt,\n TwitterLabel: SocialMediaLink.propTypes.label,\n TwitterPageLink: SocialMediaLink.propTypes.link,\n TwitterIconAltText: SocialMediaLink.propTypes.alt,\n LinkedInLabel: SocialMediaLink.propTypes.label,\n LinkedInPageLink: SocialMediaLink.propTypes.link,\n LinkedInIconAltText: SocialMediaLink.propTypes.alt,\n EmailLabel: SocialMediaLink.propTypes.label,\n EmailLink: SocialMediaLink.propTypes.link,\n EmailIconAltText: SocialMediaLink.propTypes.alt,\n PDFLabel: SocialMediaLink.propTypes.label,\n PDFLink: SocialMediaLink.propTypes.link,\n PDFIconAltText: SocialMediaLink.propTypes.alt,\n CopyUrlIconAltText: SocialMediaLink.propTypes.alt,\n CopyUrlLabel: SocialMediaLink.propTypes.label,\n }),\n params: PropTypes.exact({\n Theme: SocialMediaLink.propTypes.theme,\n DisplayStyle: PropTypes.oneOf(Object.values(DisplayStyleEnum)).isRequired,\n ShowLabels: SocialMediaLink.propTypes.showLabel,\n LabelsMarginSize: PropTypes.oneOf(Object.values(SizeEnum)).isRequired,\n FacebookInclude: SocialMediaLink.propTypes.include,\n FacebookLinkType: PropTypes.oneOf(Object.values(LinkTypeEnum)).isRequired,\n TwitterInclude: SocialMediaLink.propTypes.include,\n TwitterLinkType: PropTypes.oneOf(Object.values(LinkTypeEnum)).isRequired,\n LinkedInInclude: SocialMediaLink.propTypes.include,\n LinkedInLinkType: PropTypes.oneOf(Object.values(LinkTypeEnum)).isRequired,\n EmailInclude: SocialMediaLink.propTypes.include,\n PDFInclude: SocialMediaLink.propTypes.include,\n CopyUrlInclude: SocialMediaLink.propTypes.include,\n }),\n};\n\nconst SocialMediaLinksSitecore = withSitecoreContext()(\n withErrorBoundary([ErrorBoundaryConditions.params, ErrorBoundaryConditions.fields])(\n SocialMediaLinks\n )\n);\n\nexport const SocialMediaLinksStorybook = forStorybookV2(SocialMediaLinksSitecore);\n\nexport default SocialMediaLinksSitecore;\n"],"sourceRoot":""}