{"version":3,"file":"static/js/708.20ef1d0b.chunk.js","mappings":"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","sources":["components/@shared/lazySection/index.tsx","components/advisor/model/advisor.model.ts","utils/window.utils.js","components/advisor/constants/selectors.ts","components/advisor/components/loadAdvisor.tsx","components/advisor/index.tsx","lib/shared-models/card.model.ts","utils/seo.utils.ts","components/blogNews/models/blognews.model.ts","hooks/useSitecoreContext.ts","hooks/useEEActive.ts","enums/CTA.enums.ts","utils/linkUtils.ts","components/@shared/routableNotEditableLink/index.tsx","constants/icon.constants.ts","components/@shared/icon/index.tsx","components/@shared/cta/components/LinkWithField/arrowRight.tsx","components/@shared/customExternalAnchor/index.tsx","components/@shared/routableSitecoreLink/index.tsx","components/@shared/cta/components/LinkWithField/linkChildrenAndIcon.tsx","components/@shared/cta/components/LinkWithField/validHrefAndNotEditing.tsx","components/@shared/cta/components/LinkWithField/index.tsx","components/@shared/cta/index.tsx","components/@shared/customText/index.tsx","components/@shared/dictionaryTerm/index.tsx","components/@shared/TextComponentDecider/index.tsx","components/@shared/heading/model/heading.model.ts","utils/targetDskLink.ts","lib/custom-hooks/useMediaQuery.ts","constants/breakpoints.constants.ts","constants/locale.constants.ts","hooks/useFormatDate.ts","utils/analytics.ts","utils/getTextType.utils.ts","components/@shared/heading/index.tsx","components/@shared/carouselArrow/index.tsx","utils/macOs.utils.ts","utils/youtubeUtils.ts","components/@shared/picture/components/contentHubImage/index.tsx","components/@shared/picture/components/editorialImage/index.tsx","components/@shared/picture/index.tsx","components/blogNews/components/storiesCard/components/card.tsx","components/blogNews/components/storiesCard/index.tsx","utils/checkEmptyResponse.ts","hooks/useAnalyticsActionOnScroll.ts","components/@shared/analyticsVisibleEvent/index.tsx","components/@shared/unreleasedComponent/index.tsx","components/blogNews/index.tsx","components/@shared/navigationBarItem/components/navigationItem.tsx","components/@shared/navigationBarItem/index.tsx","components/@shared/sharedBreadcrumbBar/models/breadcrumbBar.model.ts","utils/appendRootToRichTextInternalLinks.utils.ts","utils/appendRootToInternalLink.utils.ts","components/productHeroBannerSeriesDetail/models/productHeroBannerSeriesDetail.model.ts","components/productHeroBanner/models/productHeroBanner.model.ts","utils/checkEmptyObject.ts","components/ProductSpecialOffersDetailHeroBanner/models/ProductSpecialOffersDetailHeroBanner.model.ts","components/smallHero/models/heroBanner.model.ts","hooks/useHeroBanner.ts","components/@shared/sharedBreadcrumbBar/index.tsx","components/breadcrumbBar/index.tsx","components/@shared/sharedExternalComponent/models/externalComponent.model.ts","components/@shared/sharedExternalComponent/index.tsx","components/buildAndPriceExternalLink/index.tsx","components/@shared/customCarouselDots/index.tsx","components/@shared/customCarouselDots/appendDots.tsx","components/@shared/ctaButton/index.tsx","utils/modal.utils.ts","components/@shared/modalDialog/components/closeButton.tsx","components/@shared/modalDialog/index.tsx","components/@shared/overlayCarouselPopup/components/carouselArrow/index.tsx","enums/carousel.enums.ts","components/@shared/carouselTransparentNavSection/index.tsx","components/@shared/overlayCarouselPopup/components/carouselArrowAndNavSection/index.tsx","components/@shared/videoPlayer/index.tsx","components/@shared/overlayCarouselPopup/components/carouselCard/index.tsx","components/@shared/overlayCarouselPopup/components/carouselNavDeck/index.tsx","components/@shared/overlayCarouselPopup/components/textFieldGuard.tsx","components/@shared/overlayCarouselPopup/index.tsx","constants/fields.const.ts","utils/getImageFields.ts","components/cardCarousel/components/carouselSlide/index.tsx","constants/background-color.constants.ts","components/cardCarousel/models/cardCarousel.model.ts","components/@shared/carouselDots/index.tsx","components/cardCarousel/index.tsx","components/cardColumnLayout/models/cardColumnLayout.model.ts","components/cardColumnLayout/components/card/models/card.models.ts","components/cardColumnLayout/components/card/buttons.tsx","components/cardColumnLayout/types/cardColumnLayout.types.ts","components/cardColumnLayout/components/card/image.tsx","components/cardColumnLayout/components/card/text.tsx","components/@shared/mediaCarousel/components/carouselArrow/index.tsx","components/@shared/mediaCarousel/components/mediaCard/index.tsx","components/@shared/mediaCarousel/index.tsx","components/splitModule/components/mediaAsset.tsx","components/splitModule/models/splitModule.model.ts","components/splitModule/index.tsx","components/cardColumnLayout/components/card/index.tsx","components/cardColumnLayout/index.tsx","components/cardGrid/models/cardGrid.model.ts","components/cardGrid/components/cardGridCard/gridCard.tsx","components/cardGrid/components/cardGridCard/index.tsx","components/cardGrid/index.tsx","components/customHtml/models/customHtmlComponentModel.model.ts","components/@shared/dangerouslySetHtmlAndJS/index.tsx","components/customHtml/index.tsx","components/dealerLocatorBreadcrumbBar/index.tsx","components/dealerLocatorDetail/types/dealerLocatorDetail.types.ts","components/dealerLocatorDetail/models/dealerLocatorDetail.model.ts","components/@shared/socialMediaBar/models/socialMediaBar.model.ts","components/@shared/editFrame/index.tsx","components/@shared/socialMediaBar/components/eeLink.tsx","components/@shared/socialMediaBar/components/regularLink.tsx","components/@shared/socialMediaBar/components/socialLinks.tsx","constants/addToAny.constants.ts","utils/addToAnyScript.utils.ts","components/@shared/socialMediaBar/components/socialMediaDropdown/index.tsx","components/@shared/socialMediaBar/index.tsx","components/dealerLocatorDetail/components/dealerContactsSection/dealerContactAttribute/index.tsx","constants/map.constatnts.ts","assets/pin-dealer-detail.svg","components/dealerLocatorDetail/components/dealerContactsSection/index.tsx","components/dealerLocatorDetail/components/businessHoursAndCertificationsSection/index.tsx","utils/string.utils.ts","components/dealerLocatorDetail/components/dealerEquipmentsServices/index.tsx","components/dealerLocatorDetail/index.tsx","components/dealerLocatorLanding/types/dealerLocatorLanding.types.ts","constants/dealerLocator.constants.ts","components/dealerLocatorLanding/models/dealerLocatorLanding.model.ts","components/@shared/spinner/index.tsx","components/dealerLocatorLanding/dealerLocator.utils.ts","assets/dealer-pin.svg","assets/dealer-pin-active.svg","assets/user-location.svg","components/dealerLocatorLanding/components/dealerLocatorFirebaseContextProvider/index.tsx","components/dealerLocatorLanding/components/dealerLocatorMap/hooks/useFirebase.effect.ts","components/dealerLocatorLanding/components/dealerLocatorMap/hooks/useCountryBordersCoords.effect.ts","utils/debounceHandler.utils.ts","components/dealerLocatorLanding/components/dealerLocatorMap/components/AreaPolygonLabel/index.tsx","components/dealerLocatorLanding/components/dealerLocatorMap/components/AreaPolygon/index.tsx","components/dealerLocatorLanding/components/dealerLocatorMap/hooks/useRegionBorderCoords.effect.ts","constants/analytics.constants.ts","components/dealerLocatorLanding/components/dealerLocatorGeoLocationToastMessage/index.tsx","components/dealerLocatorLanding/components/dealerLocatorMap/index.tsx","utils/regex.utils.ts","components/@shared/highlightedOption/index.tsx","components/dealerLocatorLanding/components/dealerLocatorSearch/components/dropdown/index.tsx","components/dealerLocatorLanding/components/dealerLocatorSearch/components/textSearch/hooks/useSuggestions.effect.ts","assets/dealer-landing-search.svg","components/dealerLocatorLanding/hooks/useSearchText.effect.ts","components/dealerLocatorLanding/components/dealerLocatorSearch/components/textSearch/hooks/useSelectedDealer.effect.ts","components/dealerLocatorLanding/components/dealerLocatorSearch/components/textSearch/hooks/useSelectedPlace.effect.ts","components/dealerLocatorLanding/components/dealerLocatorSearch/components/textSearch/index.tsx","components/dealerLocatorLanding/components/dealerLocatorSearch/components/searchTypeSwitch/index.tsx","components/dealerLocatorLanding/components/dealerLocatorSearch/index.tsx","hooks/useUnMountOnAnimationEnd.ts","components/dealerLocatorLanding/components/dealerResultsListing/components/dealerResultsListItem/index.tsx","components/dealerLocatorLanding/components/dealerResultsListing/index.tsx","components/dealerLocatorLanding/components/dealerLocatorDesktopFilters/components/droplist/index.tsx","components/dealerLocatorLanding/components/dealerLocatorDesktopFilters/index.tsx","components/dealerLocatorLanding/components/dealerLocatorMobileFilters/components/accordion/index.tsx","components/dealerLocatorLanding/components/dealerLocatorMobileFilters/index.tsx","components/dealerLocatorLanding/hooks/useCountry.effect.ts","components/dealerLocatorLanding/hooks/useRegion.effect.ts","hooks/useQueryParams.effect.ts","components/dealerLocatorLanding/hooks/useSelectedFiltersState.effect.ts","components/dealerLocatorLanding/hooks/useUserLocationState.effect.ts","components/dealerLocatorLanding/index.tsx","components/downloadBrochures/components/brochureCard/index.tsx","components/downloadBrochures/models/downloadBrochures.model.ts","components/downloadBrochures/index.tsx","components/@shared/eventDetailContainer/components/media.tsx","utils/eventsListings.utils.ts","components/@shared/eventDetailContainer/models/eventDetail.model.ts","constants/eventsFairs.constants.ts","components/@shared/saveCalendarEvent/types/saveEvent.types.ts","components/@shared/saveCalendarEvent/index.tsx","components/@shared/eventDetailContainer/index.tsx","components/eventDetail/index.tsx","components/@shared/filters/components/noMatch/index.tsx","components/@shared/pagination/index.tsx","components/@shared/filters/components/dropdown/index.tsx","components/eventsListing/components/desktopFilter/index.tsx","components/eventsListing/models/eventsListing.model.ts","components/eventsListing/components/media/index.tsx","utils/getTargetLink.ts","components/eventsListing/components/eventCard/index.tsx","components/eventsListing/components/eventCardList/index.tsx","components/@shared/filters/components/accordion/index.tsx","components/eventsListing/components/mobileFilter/index.tsx","components/eventsListing/index.tsx","components/externalComponent/index.tsx","utils/component.utils.ts","components/fairHero/models/fairHero.model.ts","components/@shared/fadeDownEffect/index.tsx","components/fairHero/index.tsx","components/findDealer/models/findDealer.model.ts","components/findDealer/components/locatorForm.tsx","components/findDealer/index.tsx","lib/shared-models/FooterLink.model.ts","components/footer/components/dealerLogin/index.tsx","components/footer/components/marketSelector/index.tsx","components/footer/components/languageSelector/index.tsx","components/footer/components/actionSection/models/actionSection.model.ts","components/footer/components/actionSection/index.tsx","components/footer/components/backToTop/index.tsx","components/footer/components/linksAccordion/index.tsx","components/footer/components/navigation/index.tsx","components/footer/components/socialMedia/models/index.model.ts","components/footer/components/socialMedia/index.tsx","components/footer/models/footer.model.ts","components/footer/index.tsx","components/formPageNavigation/models/formPageNavigation.model.ts","components/formPageNavigation/components/step/index.tsx","constants/multiStep.constants.ts","enums/event.enum.ts","components/formPageNavigation/index.tsx","components/fullScreenMediaGallery/models/galleryCarousel.model.ts","components/fullScreenMediaGallery/components/galleryCarouselArrow.tsx","components/fullScreenMediaGallery/components/galleryCarouselIndicator.tsx","components/fullScreenMediaGallery/components/galleryCarouselSlide.tsx","components/fullScreenMediaGallery/components/galleryCarousel.tsx","components/fullScreenMediaGallery/index.tsx","components/@shared/sharedGenericPopUp/types/genericPopUp.types.ts","components/@shared/genericPopUpContextProvider/index.tsx","components/@shared/sharedGenericPopUp/index.tsx","components/genericPopUp/index.tsx","components/header/menuContext/index.tsx","components/header/components/navigationItemMenuStructure.tsx","components/header/components/menuTriggerContentWithIcon.tsx","constants/query-params.constants.ts","constants/api.constants.ts","components/searchResults/components/suggestions/index.tsx","components/header/components/searchInput/index.tsx","components/header/components/search.tsx","utils/getInitials.ts","components/header/components/menuTriggerContentWithCircle.tsx","components/header/components/login/components/quickAccessOrOther/index.tsx","components/header/components/login/components/desktopLogin/index.tsx","components/header/components/login/components/mobileLogin/index.tsx","components/@shared/layoutContextProvider/index.tsx","components/header/components/login/index.tsx","components/header/components/findADealer.tsx","components/header/components/menuOverlay.tsx","components/header/components/navigationItem/models/navigationItem.model.ts","components/header/components/menuLink/primaryLink.tsx","components/header/components/menuLink/secondaryLink.tsx","components/header/components/menuLink/secondaryLinkWithBold.tsx","components/header/components/menuLink/imageLink.tsx","components/header/components/menuLink/menuLink.tsx","hooks/useScrollWithShadow.ts","components/header/components/navigationItemMenu.tsx","components/header/components/navigationItemLink.tsx","components/header/components/navigationItem/index.tsx","components/header/models/header.model.ts","constants/templates.constants.ts","components/header/components/logo.tsx","components/header/components/navigationAccordionItem.tsx","components/header/components/navigationAccordionLinkItem.tsx","components/header/components/mobileMenu.tsx","hooks/useStickyWrapper.tsx","components/header/components/highLevelAlertMessage/index.tsx","components/header/index.tsx","hooks/useBreadcrumbBarAsFirstComponent.ts","components/heroBanner/components/heroCarouselSlide.tsx","components/heroBanner/components/carousel/CarouselForEE.tsx","components/heroBanner/components/carouselCut/index.tsx","components/heroBanner/components/heroCarouselIndicator.tsx","components/heroBanner/components/heroCarouselArrow.tsx","components/heroBanner/components/heroCarouselScrollSymbol/index.tsx","components/heroBanner/components/carousel/Carousel.tsx","utils/network.utils.ts","components/heroBanner/components/heroCarouselDesktop.tsx","components/heroBanner/index.tsx","components/interactiveImage/models/interactiveImage.model.ts","components/interactiveImage/components/interactiveSplitModule/index.tsx","components/interactiveImage/components/interactiveImageHotspot/index.tsx","components/interactiveImage/components/interactiveImageText/index.tsx","components/interactiveImage/index.tsx","components/latestNews/models/latestNews.model.ts","components/latestNews/components/newsCard/models/newsCard.model.ts","components/latestNews/components/media/index.tsx","components/latestNews/components/newsCard/index.tsx","components/latestNews/index.tsx","components/lightFooter/components/navigation/index.tsx","components/lightFooter/models/lightFooter.model.ts","components/lightFooter/models/socialMedia.model.ts","components/lightFooter/components/socialMedia/index.tsx","components/lightFooter/index.tsx","components/lightHeader/models/lightHeader.model.ts","components/lightHeader/components/languageSelector/index.tsx","components/lightHeader/components/logo/index.tsx","components/lightHeader/index.tsx","components/liveEventDetail/index.tsx","components/mediaGallery/models/mediaGallery.model.ts","components/mediaGallery/index.tsx","components/mockedComponentMessage/index.tsx","components/modelsListing/models/modelsListing.model.ts","components/modelsListing/components/modelsListItem.tsx","components/modelsListing/index.tsx","utils/detectScrollDirectionForNavigationBar.utils.ts","components/@shared/navigationSection/models/navigationBar.model.ts","constants/navigationBar.constants.ts","enums/Event.enums.ts","components/@shared/navigationSection/components/navigationBarDropdownDesktop.tsx","components/@shared/navigationSection/components/navigationBarTabsDesktop.tsx","components/@shared/navigationSection/components/navigationBarMSRPDesktop.tsx","hooks/useGetBuildAndPriceLink.ts","components/@shared/navigationSection/components/navigationBarCtaDesktop.tsx","components/@shared/navigationSection/components/navigationBoxMobile.tsx","components/@shared/navigationSection/components/navigationTabsMobile.tsx","utils/scroll.utils.ts","components/@shared/navigationSection/index.tsx","components/navigationBar/index.tsx","components/@shared/experienceEditorComponentPlaceholder/index.tsx","components/NavigationBarAnchorComponent/index.tsx","components/newsDetail/components/media.tsx","components/newsDetail/components/newsDetailMediaListItem.tsx","components/newsDetail/models/newsDetail.model.ts","components/newsDetail/index.tsx","components/newsFiles/models/newsFiles.model.ts","components/newsFiles/components/newsFilesDownloadCard/index.tsx","components/newsFiles/index.tsx","components/newsLetterSubscription/types/newsLetterSubscription.types.ts","components/newsLetterSubscription/models/newsLetterSubscription.model.ts","components/newsLetterSubscription/index.tsx","components/newsListing/models/newsListing.model.ts","constants/newsListnig.constatnts.ts","components/newsListing/components/desktopFilter/index.tsx","components/newsListing/components/mobileFilter/index.tsx","components/newsListing/components/media/index.tsx","components/newsListing/components/newsListingContext.ts","components/newsListing/components/newsCard/index.tsx","components/newsListing/components/newsCardList/index.tsx","components/newsListing/index.tsx","components/nextSteps/models/nextSteps.model.ts","components/nextSteps/index.tsx","components/productBreadcrumbBar/models/productBreadcrumbBar.model.ts","components/@shared/emptyApiDataMessage/index.tsx","hooks/useExperiencerEditorPlaceholder.ts","components/productBreadcrumbBar/index.tsx","components/productBuildAndPriceLink/models/buildAndPriceLink.model.ts","components/productBuildAndPriceLink/index.tsx","components/productCompatibleLoaderListing/models/productCompatibleLoaderListing.model.ts","components/productCompatibleLoaderListing/components/compatibleLoadersTabs/index.tsx","components/productCompatibleLoaderListing/components/compatibleLoaders/index.tsx","constants/dictionary.constants.ts","components/productCompatibleLoaderListing/index.tsx","components/productDownloadBrochureListing/hooks/useDateValidate.ts","components/productDownloadBrochureListing/components/brochureCard/index.tsx","components/@shared/filters/components/searchBox/index.tsx","components/productDownloadBrochureListing/components/search/index.tsx","components/productDownloadBrochureListing/components/desktopFilter/index.tsx","components/productDownloadBrochureListing/models/downloadBrochureListing.model.ts","components/productDownloadBrochureListing/components/mobileFilter/index.tsx","components/productDownloadBrochureListing/index.tsx","components/productHeroBanner/index.tsx","components/productHeroBannerSeriesDetail/index.tsx","components/productLinesListing/components/lineItem.tsx","components/productLinesListing/model/productLinesListing.model.ts","components/productLinesListing/index.tsx","components/productSpecialOffers/carouselSlide.tsx","constants/special-offers-page.constants.ts","components/productSpecialOffers/models/specialOffers.model.ts","components/productSpecialOffers/index.tsx","components/productLineSpecialOffers/index.tsx","components/productModelCompatibleAttachmentListing/index.tsx","components/productModelConfigurations/models/productModelConfigurations.model.ts","components/@shared/configurationCardMediaElement/index.tsx","components/productModelConfigurations/models/productModelConfigurationCard.model.ts","components/productModelConfigurations/components/modelConfigurationCard/index.tsx","components/productModelConfigurations/index.tsx","components/productModelDetailCompatibleLoaders/index.tsx","components/productModelDetailHeroSection/models/heroSectionText.model.ts","components/@shared/infoToolTip/components/tooltipPortal.tsx","components/@shared/infoToolTip/components/portalComponent.tsx","components/@shared/infoToolTip/index.tsx","components/productModelDetailHeroSection/components/heroSectionText/index.tsx","components/productModelDetailHeroSection/components/heroSectionCarousel/heroSectionCarouselArrow.tsx","components/productModelDetailHeroSection/components/heroSectionCarousel/HeroSectionCarouselIndicator.tsx","components/productModelDetailHeroSection/models/heroSectionCarousel.model.ts","components/productModelDetailHeroSection/components/heroSectionCarousel/index.tsx","components/productModelDetailHeroSection/index.tsx","components/productModelNavigation/models/productModelNavigation.model.ts","components/@shared/iconOrImage/index.tsx","components/productModelNavigation/index.tsx","components/productModelsListing/components/productCard/summarySpecs.tsx","components/productModelsListing/components/productCard/index.tsx","components/productModelsListing/models/modelsListing.model.ts","components/productModelsListing/index.tsx","components/productModelSpecifications/models/index.model.ts","constants/table.constants.ts","components/productModelSpecifications/components/specificationTable/header/inputBox.tsx","components/productModelSpecifications/components/specificationTable/header/index.tsx","components/productModelSpecifications/components/specificationTable/printTable.js","components/productModelSpecifications/components/specificationTable/printContent.tsx","components/productModelSpecifications/components/specificationTable/printTableStyles.js","components/productModelSpecifications/components/specificationTable/columnHeading/dropdown.tsx","components/productModelSpecifications/components/specificationTable/columnHeading/dropdownChoice.tsx","components/productModelSpecifications/components/specificationTable/columnHeading/columnHeadingElement.tsx","components/productModelSpecifications/components/specificationTable/columnHeading/columnHeadings.tsx","components/productModelSpecifications/components/specificationTable/columnHeading/fixedColHeading.tsx","components/productModelSpecifications/components/specificationTable/row/formatText.tsx","components/productModelSpecifications/components/specificationTable/row/specCell.tsx","components/productModelSpecifications/components/specificationTable/row/subValueRow.tsx","components/productModelSpecifications/components/specificationTable/row/index.tsx","components/productModelSpecifications/components/specificationTable/row/msrpRow.tsx","components/productModelSpecifications/components/specificationTable/table.tsx","components/productModelSpecifications/components/specificationTable/index.tsx","components/productModelSpecifications/index.tsx","components/productSelector/models/productSelector.model.ts","components/productSelector/index.tsx","components/productSeoTags/models/productSeoTags.model.ts","components/@shared/seoTags/components/genericTags.tsx","components/@shared/seoTags/components/ogMetaTags.tsx","components/@shared/seoTags/components/twitterMetaTags.tsx","components/@shared/seoTags/index.tsx","components/productSeoTags/index.tsx","components/productSeriesCompatibleAttachmentListing/index.tsx","components/productSeriesDetailConfigurationsOverview/models/productSeriesConfigurationCard.model.ts","components/productSeriesDetailConfigurationsOverview/components/configurationCard/index.tsx","components/productSeriesDetailConfigurationsOverview/models/productSeriesDetailConfigurationsOverview.model.ts","components/productSeriesDetailConfigurationsOverview/index.tsx","components/productSeriesDetailDownloadBrochures/models/productSeriesDetailDownloadBrochures.model.ts","components/productSeriesDetailDownloadBrochures/components/brochureCard/index.tsx","components/productSeriesDetailDownloadBrochures/index.tsx","components/productSeriesDetailFeature/types/productSeriesDetailFeature.types.ts","components/@shared/ctaWithArrow/index.tsx","components/productSeriesDetailFeature/components/componentDetails/banner.tsx","components/productSeriesDetailFeature/components/innerSplitModules/innerSplitModule.tsx","components/productSeriesDetailFeature/components/innerSplitModules/index.tsx","components/productSeriesDetailFeature/models/innerCard.model.ts","components/productSeriesDetailFeature/components/innerCards/innerCard.tsx","components/productSeriesDetailFeature/components/innerCards/index.tsx","components/productSeriesDetailFeature/components/componentDetails/index.tsx","components/productSeriesDetailFeature/models/productSeriesDetailFeature.model.ts","components/productSeriesDetailFeature/components/featureHeader.tsx","hooks/useShowProductComponentTitle.ts","components/productSeriesDetailFeature/components/mobileSeriesDetails.tsx","components/productSeriesDetailFeature/components/desktopSeriesDetails.tsx","components/productSeriesDetailFeature/index.tsx","components/productSeriesDetailModelSpecifications/index.tsx","components/productSeriesDetailNavigationOverview/models/productSeriesDetailNavigationOverviewSection.model.ts","components/productSeriesDetailNavigationOverview/index.tsx","components/productSeriesDetailSpecialOffers/index.tsx","components/productSeriesDetailTestimonial/components/buttons.tsx","components/productSeriesDetailTestimonial/components/media.tsx","components/productSeriesDetailTestimonial/models/productSeriesDetailTestimonial.model.ts","components/productSeriesDetailTestimonial/index.tsx","components/productSeriesListing/components/productCard/summarySpecs.tsx","components/productSeriesListing/components/productCard/index.tsx","components/productSeriesListing/models/seriesListing.model.ts","components/productSeriesListing/index.tsx","components/productSeriesListingFilters/models/seriesListing.model.ts","components/productSeriesListingFilters/components/firstFilter.tsx","components/productSeriesListingFilters/components/secondFilter.tsx","components/productSeriesListingFilters/index.tsx","components/productSeriesNavigationBar/index.tsx","components/productSeriesOverview/models/overviewText.model.ts","components/productSeriesOverview/components/overviewText/index.tsx","components/productSeriesOverview/models/overviewCarousel.model.ts","components/productSeriesOverview/components/heroCard/index.tsx","components/productSeriesOverview/components/overviewCarousel/overviewCarouselArrow.tsx","components/productSeriesOverview/components/overviewCarousel/overviewCarouselIndicators.tsx","components/productSeriesOverview/components/overviewCarousel/index.tsx","components/productSeriesOverview/index.tsx","components/productSpecialOfferDetail/models/productSpecialOfferDetail.model.ts","components/productSpecialOfferDetail/index.tsx","components/ProductSpecialOffersDetailDownloadBrochures/components/brochureCard/index.tsx","components/ProductSpecialOffersDetailDownloadBrochures/models/productSpecialOffersDetailDownloadBrochures.model.ts","components/ProductSpecialOffersDetailDownloadBrochures/index.tsx","components/ProductSpecialOffersDetailHeroBanner/index.tsx","constants/specialOffersFilters.constants.ts","components/productSpecialOffersListing/models/productSpecialOffersListing.model.ts","components/productSpecialOffersListing/fiilterContext.ts","components/productSpecialOffersListing/components/sortCTA/index.tsx","components/productSpecialOffersListing/components/desktopFilter/index.tsx","components/productSpecialOffersListing/components/mobileFilter/index.tsx","components/productSpecialOffersListing/components/media/index.tsx","components/productSpecialOffersListing/components/specialOffersCard/index.tsx","components/productSpecialOffersListing/index.tsx","constants/header.constants.ts","components/relatedNews/models/relatedNews.model.ts","components/relatedNews/components/media/index.tsx","components/relatedNews/components/relatedNewsCard/models/relatedNewsCard.model.ts","components/relatedNews/components/relatedNewsCard/index.tsx","components/relatedNews/index.tsx","components/remoteBuildAndPrice/models/remoteBuildAndPrice.model.ts","components/@shared/mockRetailConfigurator/index.tsx","components/remoteBuildAndPrice/index.tsx","components/searchResults/components/filterControl/index.tsx","components/searchResults/components/filter/index.tsx","components/searchResults/models/searchApiModels.ts","components/searchResults/index.tsx","components/sitecoreJssForm/components/fieldValidationError/index.tsx","components/sitecoreJssForm/types/field.types.ts","components/sitecoreJssForm/components/pageTitleField/index.tsx","components/sitecoreJssForm/components/pageUrlField/index.tsx","components/sitecoreJssForm/components/fieldWrapper/index.tsx","components/sitecoreJssForm/components/customFormContextProvider/index.tsx","components/sitecoreJssForm/hooks/useFirstUserActionState/index.tsx","components/sitecoreJssForm/components/@shared/customTextLabel/index.tsx","components/sitecoreJssForm/components/baseTextField/index.tsx","components/sitecoreJssForm/components/textField/index.tsx","components/sitecoreJssForm/components/emailField/index.tsx","components/sitecoreJssForm/components/numberField/index.tsx","components/sitecoreJssForm/components/telephoneField/index.tsx","components/sitecoreJssForm/components/passwordField/index.tsx","components/sitecoreJssForm/components/multipleLineTextField/index.tsx","components/sitecoreJssForm/components/checkboxField/index.tsx","components/sitecoreJssForm/components/checkboxList/index.tsx","hooks/useDidUpdate.effect.ts","components/sitecoreJssForm/components/dropdownList/index.tsx","components/sitecoreJssForm/components/fileUploadField/index.tsx","components/sitecoreJssForm/components/radioGroup/index.tsx","components/sitecoreJssForm/components/singleLineText/index.tsx","components/sitecoreJssForm/components/dateField/index.tsx","components/sitecoreJssForm/components/zipCodeField/index.tsx","components/sitecoreJssForm/components/gdprConsentField/components/gdprConsentCheckbox.tsx","components/sitecoreJssForm/components/gdprConsentField/components/checkbox.tsx","components/sitecoreJssForm/components/gdprConsentField/components/popup/checkboxSection.tsx","components/sitecoreJssForm/components/gdprConsentField/components/popup/radioSection.tsx","components/sitecoreJssForm/components/gdprConsentField/components/popup/contactSection.tsx","components/sitecoreJssForm/components/gdprConsentField/components/popup/modal.tsx","components/sitecoreJssForm/components/gdprConsentField/components/popup/index.tsx","components/sitecoreJssForm/components/gdprConsentField/components/gdprInlineConsent/components/gdprPolicyConsent/contactSection.tsx","components/sitecoreJssForm/components/gdprConsentField/components/gdprInlineConsent/components/gdprPolicyConsent/checkboxSection.tsx","components/sitecoreJssForm/components/gdprConsentField/components/gdprInlineConsent/components/gdprPolicyConsent/radioSection.tsx","components/sitecoreJssForm/components/gdprConsentField/components/gdprInlineConsent/components/gdprPolicyConsent/index.tsx","components/sitecoreJssForm/components/gdprConsentField/components/gdprInlineConsent/index.tsx","components/sitecoreJssForm/components/gdprConsentField/index.tsx","constants/gdpr.constants.ts","components/sitecoreJssForm/components/reCaptchaField/index.tsx","components/sitecoreJssForm/components/productSelector/dropdownContext.ts","constants/seriesFilter.constants.ts","components/sitecoreJssForm/components/productSelector/components/productSelectorDropdowns/dropdown.tsx","components/sitecoreJssForm/components/productSelector/components/productSelectorDropdowns/index.tsx","components/sitecoreJssForm/components/productSelector/hooks/useCreateProductSelectorList.ts","components/sitecoreJssForm/components/productSelector/hooks/useDefaultSelectedProduct.ts","components/sitecoreJssForm/components/productSelector/index.tsx","constants/countryStateFilter.constants.ts","components/sitecoreJssForm/components/countryStateField/components/countryStateDropDowns/dropDown.tsx","components/sitecoreJssForm/components/countryStateField/components/countryStateDropDowns/index.tsx","components/sitecoreJssForm/hooks/useDidCountryUpdate/index.tsx","components/sitecoreJssForm/components/countryStateField/index.tsx","components/sitecoreJssForm/components/dealerLocator/components/dealerLocatorSearch/components/itemList.tsx","components/sitecoreJssForm/components/dealerLocator/components/dealerLocatorSearch/components/dropdown.tsx","components/sitecoreJssForm/components/dealerLocator/components/dealerLocatorSearch/components/textSearch/hooks/useSuggestions.effect.ts","components/sitecoreJssForm/components/dealerLocator/components/dealerLocatorSearch/components/textSearch/index.tsx","components/sitecoreJssForm/components/dealerLocator/dealerLocator.utils.ts","components/sitecoreJssForm/components/dealerLocator/components/dealerLocatorSearch/index.tsx","components/sitecoreJssForm/components/dealerLocator/components/cardCarousel/card.tsx","components/sitecoreJssForm/components/dealerLocator/components/cardCarousel/index.tsx","constants/dealerLocatorForm.constants.ts","components/sitecoreJssForm/components/dealerLocator/index.tsx","components/sitecoreJssForm/components/customNumberField/index.tsx","components/sitecoreJssForm/components/formPageIdentifierField/index.tsx","components/sitecoreJssForm/components/button/index.tsx","components/sitecoreJssForm/components/timeField/components/meridiemSelectors/meridiemRadioGroups.tsx","components/sitecoreJssForm/components/timeField/components/hoursMinuteDropdowns/index.tsx","components/sitecoreJssForm/components/timeField/hooks/useTimeListGenerator.tsx","components/sitecoreJssForm/components/timeField/hooks/useHoursMinutesListGenerator.tsx","components/sitecoreJssForm/components/timeField/components/hoursMinuteDropdowns/timeDropdownSelector.tsx","components/sitecoreJssForm/components/timeField/components/index.tsx","components/sitecoreJssForm/components/timeField/index.tsx","components/sitecoreJssForm/components/marketingConsentField/component/checkbox.tsx","components/sitecoreJssForm/components/marketingConsentField/index.tsx","components/sitecoreJssForm/components/@shared/dynamicDropDown/components/dropdown/index.tsx","components/sitecoreJssForm/components/@shared/dynamicDropDown/index.tsx","components/sitecoreJssForm/components/dynamicProductSelector/index.tsx","components/sitecoreJssForm/components/leadDocument/index.tsx","components/sitecoreJssForm/fieldFactory.ts","components/sitecoreJssForm/components/thankYou/index.tsx","components/sitecoreJssForm/index.tsx","components/smallHero/index.tsx","components/specCheck/components/pluginContainer.tsx","components/specCheck/models/specCheck.model.ts","components/specCheck/index.tsx","components/subscriptionBox/models/subscriptionBox.model.ts","components/subscriptionBox/index.tsx","components/table/models/index.model.ts","utils/counterArray.utils.tsx","components/table/components/table/columnHeadingElement.tsx","components/table/components/table/fixedColHeading.tsx","components/table/components/table/header/inputBox.tsx","components/table/components/table/header/index.tsx","components/table/components/table/row/formatText.tsx","components/table/components/table/row/leftMostCell.tsx","components/table/components/table/row/cellText.tsx","components/table/components/table/row/cellIcon.tsx","components/table/components/table/row/specCell.tsx","components/table/components/table/row/subValueRow.tsx","components/table/components/table/row/groupRow.tsx","components/table/components/table/row/normalRow.tsx","components/table/components/table/row/index.tsx","components/table/components/table/printTable.js","components/table/components/table/printContent.tsx","components/table/components/table/printTableStyles.js","components/table/components/table/index.tsx","components/table/index.tsx","components/@shared/textModuleContainer/models/textModuleContainer.model.ts","components/@shared/textModuleContainer/index.tsx","components/textModule/index.tsx","components/thankYou/index.tsx","temp/componentFactory.tsx","lib/layout-service-factory.ts","hooks/usePageView.effect.ts","components/@shared/consentCookie/index.tsx","components/@shared/layoutSeoTags/model/layoutSeoTags.model.ts","components/@shared/layoutSeoTags/index.tsx","utils/removeEmptyFields.ts","components/@shared/JSONLDSeoTags/model/jsonldSeoTags.models.ts","components/@shared/JSONLDSeoTags/index.tsx","components/@shared/stickyTopWrapper/index.tsx","utils/gtm.utils.ts","Layout.js","NotFound.js","RouteHandler.js","components/@shared/loader/index.tsx","AppRoot.tsx","lib/dictionary-service-factory.js","main.js","lib/GraphQLClientFactory.js","i18n.js","temp/config.js"],"sourcesContent":["import React from 'react';\r\nimport LazyLoad from 'react-lazyload';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nconst LazySection = ({ height = 300, offset = -100, children, sitecoreContext, scrollContainer = undefined, overflow = false }) => {\r\n return (\r\n
\r\n {sitecoreContext?.pageEditing ? (\r\n children\r\n ) : (\r\n \r\n {children}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(LazySection);\r\n","import { TAdvisorFields, TAdvisorProps } from '../types/advisor.types';\r\n\r\nexport class AdvisorModel {\r\n private readonly fields?: TAdvisorFields;\r\n constructor(props: TAdvisorProps) {\r\n this.fields = props?.fields || null;\r\n }\r\n\r\n get featuredImage() {\r\n return this.fields?.image;\r\n }\r\n\r\n get proceedButtonText() {\r\n return this.fields?.proceedButtonText;\r\n }\r\n\r\n get scriptUrl() {\r\n return this.fields?.scriptUrl;\r\n }\r\n}\r\n","export const localstorageService = () =>\r\n typeof localStorage !== 'undefined'\r\n ? localStorage\r\n : {\r\n clear: () => undefined,\r\n getItem: () => undefined,\r\n key: () => null,\r\n removeItem: () => undefined,\r\n setItem: () => undefined,\r\n };\r\n\r\nexport const sessionStorageService = () =>\r\n typeof sessionStorage !== 'undefined'\r\n ? sessionStorage\r\n : {\r\n clear: () => undefined,\r\n getItem: () => undefined,\r\n key: () => null,\r\n removeItem: () => undefined,\r\n setItem: () => undefined,\r\n };\r\n\r\nexport const windowService = () => (typeof window !== 'undefined' ? window : {});\r\nexport const documentService = () => (typeof document !== 'undefined' ? document : {});\r\n","const selectors = {\r\n advisorId: 'xc_application',\r\n advisorScriptId: 'advisor-sript',\r\n paginationBarId: 'advisor-pagination-bar',\r\n paginationCurrentSlideId: 'advisor-pagination-counter',\r\n paginationBackButtonId: 'advisor-pagination-back-button',\r\n loadingCircle: '#xc_application .sk-fading-circle',\r\n radioButtons: '#xc_wizard_container_1 .xc_tile__footer-wrapper',\r\n whatAreYouLookingForRadio:\r\n '#xc_wizard_container_1 > div.ycc1e3-0.hdbgso.xc_sized-wrapper > div.sc-13bvdeq-0.lmyPrR.xc_wizard-body > section.xc_slide-container.xc_slide-container--current > div > div.xc_stage-wrapper__body > div.xc_stage-wrapper__children > div.xc_question-wrapper > div.xc_question-body-wrapper > div > div',\r\n wrapper: '#xc_wizard_container_1 > div.ycc1e3-0.hdbgso.xc_sized-wrapper',\r\n slides: '#xc_wizard_container_1 > div.ycc1e3-0.hdbgso.xc_sized-wrapper > .xc_wizard-body .xc_slide-container',\r\n backButton: '#xc_wizard_container_1 .xc_nav-button.xc_previous-button',\r\n nextButton: '#xc_wizard_container_1 .xc_nav-button.xc_next-button',\r\n powerRangeYesButton:\r\n '#xc_wizard_container_1 > div.ycc1e3-0.hdbgso.xc_sized-wrapper > div.sc-13bvdeq-0.lmyPrR.xc_wizard-body > section.xc_slide-container.xc_slide-container--current > div > div.xc_stage-wrapper__body > div.xc_stage-wrapper__children > div:nth-child(1) > div.xc_question-body-wrapper > div:nth-child(1) > div',\r\n powerRangeNewOptionsButton:\r\n '#xc_wizard_container_1 > div.ycc1e3-0.hdbgso.xc_sized-wrapper > div.sc-13bvdeq-0.lmyPrR.xc_wizard-body > section.xc_slide-container.xc_slide-container--current > div > div.xc_stage-wrapper__body > div.xc_stage-wrapper__children > div.xc_question-wrapper > div.xc_question-body-wrapper > div:nth-child(2) > div',\r\n powerRangeRadioButtons:\r\n '#xc_wizard_container_1 > div.ycc1e3-0.hdbgso.xc_sized-wrapper > div.sc-13bvdeq-0.lmyPrR.xc_wizard-body > section.xc_slide-container.xc_slide-container--current > div > div.xc_stage-wrapper__body > div.xc_stage-wrapper__children > div:nth-child(2) > div.xc_question-body-wrapper > div',\r\n powerRangeRadioButtonsWrapper: \"#xc_wizard_container_1 [data-id='xcAjaxClient.wizard.power_range.facet_51.pwr_range']\",\r\n restartButton: '#xc_wizard-header > div > div.gjo8co-0.d2goba-0.igaRF.xc_header-button.xc_restart-button',\r\n restartButtonId: 'advisor-restart',\r\n lastSlide:\r\n '#xc_wizard_container_1 > div.ycc1e3-0.hdbgso.xc_sized-wrapper > div.sc-13bvdeq-0.RInbK.xc_wizard-body > div.xc_stage-wrapper.xc_endgame-flex-container__wrapper.xc_stage-wrapper--no-padding > div',\r\n sliderWrapper: '#xc_wizard_container_1 > div.ycc1e3-0.hdbgso.xc_sized-wrapper > div.sc-13bvdeq-0.RInbK.xc_wizard-body',\r\n};\r\n\r\nexport default selectors;\r\n","import React, { useEffect, FC } from 'react';\r\n\r\nimport { documentService } from '../../../utils/window.utils';\r\nimport selectors from '../constants/selectors';\r\nimport { TLoadAdvisorProps } from '../types/advisor.types';\r\n\r\nconst LoadAdvisor: FC = (props) => {\r\n const { scriptUrl } = props;\r\n\r\n useEffect(() => {\r\n const loadScript = (src: string) =>\r\n new Promise((resolve, reject) => {\r\n const tag = documentService().createElement('script');\r\n tag.async = false;\r\n tag.id = selectors.advisorScriptId;\r\n tag.src = src;\r\n tag.onload = resolve;\r\n tag.onerror = reject;\r\n documentService().getElementsByTagName('body')[0].appendChild(tag);\r\n });\r\n\r\n const loadAdvisor = async () => {\r\n if (!scriptUrl?.value) return;\r\n await loadScript(scriptUrl?.value);\r\n };\r\n loadAdvisor();\r\n }, [scriptUrl]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LoadAdvisor;\r\n","import React, { FC } from 'react';\r\nimport { TAdvisorProps } from './types/advisor.types';\r\nimport LazySection from '../@shared/lazySection';\r\nimport { AdvisorModel } from './model/advisor.model';\r\nimport { documentService } from '../../utils/window.utils';\r\nimport selectors from './constants/selectors';\r\nimport LoadAdvisor from './components/loadAdvisor';\r\n\r\nconst Advisor: FC = (props) => {\r\n const model = new AdvisorModel(props);\r\n\r\n let currentSlide = 0;\r\n let radioButtons: NodeList | undefined = undefined;\r\n\r\n const getCurrentSlideNumber = () => {\r\n let number = 0; //last slide is not in slider\r\n const slides = documentService().querySelectorAll(selectors.slides);\r\n slides.forEach((slide, index) => {\r\n if (slide.classList.contains('xc_slide-container--current')) {\r\n number = index + 1;\r\n }\r\n });\r\n return slides.length > 0 ? number : 6;\r\n };\r\n\r\n const getCurrentSlide = (): HTMLElement => {\r\n let currentSlideItem;\r\n const slides = documentService().querySelectorAll(selectors.slides);\r\n slides.forEach((slide) => {\r\n if (slide.classList.contains('xc_slide-container--current')) {\r\n currentSlideItem = slide;\r\n }\r\n });\r\n return slides.length > 0 ? currentSlideItem : documentService().querySelector(selectors.lastSlide);\r\n };\r\n\r\n const waitSliderToUpdate = (): Promise =>\r\n new Promise((resolve) => {\r\n const lastSlide = getCurrentSlide();\r\n const slidesObserver = new MutationObserver(() => {\r\n if (getCurrentSlide() !== lastSlide) resolve();\r\n if (documentService().querySelectorAll(selectors.slides).length < 1) resolve();\r\n });\r\n const config = { attributes: true, childList: true, subtree: true };\r\n slidesObserver.observe(documentService().querySelector(selectors.slides).parentElement, config);\r\n });\r\n\r\n const waitPowerRangeSlideToUpdate = (): Promise =>\r\n new Promise((resolve) => {\r\n const slideObserver = new MutationObserver(() => {\r\n if (documentService().querySelector(selectors.powerRangeRadioButtonsWrapper)) resolve();\r\n });\r\n const config = { attributes: true, childList: true, subtree: true };\r\n slideObserver.observe(getCurrentSlide(), config);\r\n });\r\n\r\n // TO DO: Not used! Check if this function is needed.\r\n // const appendPagination = () => {\r\n // currentSlide = getCurrentSlideNumber();\r\n // let pagination: HTMLElement = document.createElement('div');\r\n // pagination.className = 'xc_pagination';\r\n // pagination.innerHTML = `\r\n //
\r\n // \r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // ${currentSlide}/${slideCount}\r\n //
\r\n // `;\r\n // const wrapper: HTMLElement = document.querySelector(selectors.wrapper);\r\n // wrapper?.appendChild(pagination);\r\n // }\r\n // check log for: const appendPagination = () => {\r\n\r\n const removePagination = (): void => {\r\n documentService().getElementById(selectors.paginationBarId)?.parentElement?.parentElement?.remove();\r\n };\r\n\r\n const addResetButton = (): void => {\r\n if (!documentService().getElementById(selectors.restartButtonId)) {\r\n const restartButtonCopy: HTMLElement = documentService().querySelector(selectors.restartButton);\r\n const restartButton: HTMLElement = documentService().createElement('button');\r\n restartButton.className = 'xc_restart-button';\r\n restartButton.innerHTML = ' Restart';\r\n const currentSlideContainer = documentService().querySelector(selectors.sliderWrapper);\r\n currentSlideContainer && currentSlideContainer.appendChild(restartButton);\r\n restartButton.addEventListener('click', () => {\r\n restartButtonCopy.click();\r\n });\r\n }\r\n };\r\n\r\n const updatePagination = (): void => {\r\n currentSlide = getCurrentSlideNumber();\r\n documentService().getElementById(selectors.paginationBackButtonId).className = `xc_pagination-back-button ${\r\n currentSlide < 2 ? 'xc_pagination-back-button--hidden' : ''\r\n }`;\r\n documentService().getElementById(selectors.paginationBarId).className = `xc_pagination-bar-line xc_pagination-bar-line-${currentSlide}`;\r\n documentService().getElementById(selectors.paginationCurrentSlideId).innerHTML = currentSlide.toString();\r\n };\r\n\r\n const appendImage = (): void => {\r\n const image: HTMLElement = documentService().createElement('div');\r\n image.className = 'xc_featured-image-wrapper';\r\n image.innerHTML = `\"${model.featuredImage?.value?.alt}\"/`;\r\n const currentSlideContainer = getCurrentSlide()?.firstChild?.firstChild;\r\n if (!currentSlideContainer) return;\r\n currentSlideContainer.insertBefore(image, currentSlideContainer.firstChild);\r\n };\r\n const updateSlideAfterClick = async () => {\r\n await waitSliderToUpdate();\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n updateSlide();\r\n };\r\n const nextButtonClick = (): void => {\r\n const nextButton: HTMLElement = documentService().querySelector(selectors.nextButton);\r\n nextButton.click();\r\n updateSlideAfterClick();\r\n };\r\n\r\n const radioButtonClick = (radioButtonsValue): void => {\r\n if (!radioButtonsValue?.length) return;\r\n radioButtonsValue.forEach((button) => {\r\n button.addEventListener('click', () => {\r\n nextButtonClick();\r\n });\r\n });\r\n };\r\n const bindClickOnRadioButtons = (): void => {\r\n radioButtons = documentService().querySelectorAll(selectors.radioButtons);\r\n radioButtonClick(radioButtons);\r\n };\r\n\r\n const bindClickOnWhatAreYouLookingRadioButtons = (): void => {\r\n radioButtons = documentService().querySelectorAll(selectors.whatAreYouLookingForRadio);\r\n radioButtonClick(radioButtons);\r\n };\r\n\r\n const bindClickOnPowerRangeRadioButtons = (): void => {\r\n radioButtons = documentService().querySelectorAll(selectors.powerRangeRadioButtons);\r\n if (!radioButtons?.length) return;\r\n radioButtons.forEach((button) => {\r\n button.firstChild?.addEventListener('click', () => {\r\n nextButtonClick();\r\n });\r\n });\r\n };\r\n\r\n const appendProceedButton = (): void => {\r\n const proceedButton: HTMLElement = documentService().createElement('button');\r\n proceedButton.className = 'xc_proceed-button';\r\n proceedButton.innerHTML = `${model?.proceedButtonText?.value}`;\r\n const currentSlideContainer = getCurrentSlide()?.firstChild?.firstChild?.lastChild;\r\n currentSlideContainer?.appendChild(proceedButton);\r\n proceedButton.addEventListener('click', () => {\r\n nextButtonClick();\r\n });\r\n };\r\n\r\n const bindYesButton = (): void => {\r\n const yesButton = documentService().querySelector(selectors.powerRangeYesButton);\r\n yesButton.addEventListener('click', async () => {\r\n await waitPowerRangeSlideToUpdate();\r\n bindClickOnPowerRangeRadioButtons();\r\n });\r\n };\r\n\r\n const bindNewOptionsButton = (): void => {\r\n documentService()\r\n .querySelector(selectors.powerRangeNewOptionsButton)\r\n .addEventListener('click', () => {\r\n nextButtonClick();\r\n });\r\n };\r\n const updateSlide = (): void => {\r\n const slideNumber = getCurrentSlideNumber();\r\n if (slideNumber < 6) {\r\n updatePagination();\r\n appendImage();\r\n }\r\n if (slideNumber === 1 || slideNumber === 2) {\r\n bindClickOnRadioButtons();\r\n }\r\n if (slideNumber === 3) {\r\n appendProceedButton();\r\n }\r\n if (slideNumber === 4) {\r\n bindYesButton();\r\n bindNewOptionsButton();\r\n if (documentService().querySelector(selectors.powerRangeRadioButtonsWrapper)) {\r\n bindClickOnPowerRangeRadioButtons();\r\n }\r\n }\r\n if (slideNumber === 5) {\r\n bindClickOnWhatAreYouLookingRadioButtons();\r\n }\r\n if (slideNumber === 6) {\r\n removePagination();\r\n addResetButton();\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Advisor;\r\n","import { ImageField, imageMobileField, LinkField, StringField, CardFields, CardProps } from '../../types/types';\r\n\r\nexport class CardModel {\r\n private readonly fields?: CardFields;\r\n constructor(props: CardProps) {\r\n this.fields = props.fields;\r\n }\r\n\r\n get all(): CardProps {\r\n return {\r\n fields: {\r\n title: this.title,\r\n subtitle: this.subtitle,\r\n image: this.image,\r\n mobileImage: this.mobileImage,\r\n link: this.link,\r\n },\r\n };\r\n }\r\n\r\n get title(): StringField {\r\n return this.fields?.title || {};\r\n }\r\n\r\n get subtitle(): StringField {\r\n return this.fields?.subtitle || {};\r\n }\r\n\r\n get image(): ImageField {\r\n return this.fields?.image || {};\r\n }\r\n\r\n get mobileImage(): imageMobileField {\r\n return this.fields?.mobileImage || {};\r\n }\r\n\r\n get link(): LinkField {\r\n return this.fields?.link as LinkField;\r\n }\r\n}\r\n","import { THeadingTag } from '../types/types';\r\n\r\n/**\r\n * Returns following tag in H-tags hierarchy.\r\n * If H1 is passed to function in currentPage property than H2 is returned.\r\n * In case currentTag is H6 then DIV tag is returned.\r\n * */\r\nexport const getFollowingHTag = (currentTag: THeadingTag): THeadingTag => {\r\n const tags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div'] as Array;\r\n\r\n if (typeof currentTag === 'string') {\r\n const indexOfCurrentTag = tags.indexOf(currentTag);\r\n\r\n if (indexOfCurrentTag >= 0 && indexOfCurrentTag < 6) {\r\n return tags[indexOfCurrentTag + 1];\r\n }\r\n }\r\n\r\n return 'div';\r\n};\r\n","import { TComponentParamsGeneral, THeadingTag, CardProps, LinkField, StringField } from '../../../types/types';\r\nimport { CardModel } from '../../../lib/shared-models/card.model';\r\nimport { TBlogNewsFields, TBlogNewsProps } from '../types/blogNews.types';\r\nimport { getFollowingHTag } from '../../../utils/seo.utils';\r\n\r\nexport class BlogNewsModel {\r\n private readonly fields?: TBlogNewsFields;\r\n private readonly params?: TComponentParamsGeneral;\r\n\r\n constructor(props: TBlogNewsProps) {\r\n this.fields = props?.fields;\r\n this.params = props?.params;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get content(): StringField | undefined {\r\n return this.fields?.subtitle;\r\n }\r\n\r\n get cards(): CardProps[] {\r\n const cardList = this.fields?.items ?? [];\r\n return cardList.map((el) => new CardModel(el).all);\r\n }\r\n\r\n get eyebrow(): StringField | undefined {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get link(): LinkField | undefined {\r\n return this.fields?.link;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get textColor(): string | undefined {\r\n return this.params?.textColor?.toLowerCase() || 'black';\r\n }\r\n\r\n get isGradientDisabled(): boolean | undefined {\r\n return this.params?.disableGradient === '1';\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h3';\r\n }\r\n\r\n get cardHeadingTitleTag(): THeadingTag {\r\n return getFollowingHTag(this.headingTag);\r\n }\r\n}\r\n","import { useContext } from 'react';\r\nimport { LayoutServiceData, SitecoreContextReactContext, SitecoreContextValue } from '@sitecore-jss/sitecore-jss-react';\r\nimport { WithSitecoreContextOptions } from '@sitecore-jss/sitecore-jss-react/types/enhancers/withSitecoreContext';\r\nimport { TSitecoreContext } from '../types/types';\r\n\r\ntype TSitecoreContextType = {\r\n sitecoreContext: TSitecoreContext;\r\n updateSitecoreContext?: (value: SitecoreContextValue | LayoutServiceData) => void\r\n}\r\n\r\nexport default function useSitecoreContext(options?: WithSitecoreContextOptions): TSitecoreContextType {\r\n const reactContext = useContext(SitecoreContextReactContext);\r\n const updatable = options?.updatable;\r\n\r\n return {\r\n sitecoreContext: reactContext.context as TSitecoreContext,\r\n updateSitecoreContext: updatable ? reactContext.setContext : undefined,\r\n };\r\n}\r\n","import useSitecoreContext from './useSitecoreContext';\r\n\r\n// returns true in Experience editor edit mode\r\n// more reliable than isExperienceEditor function\r\nexport default function useEEActive(previewIncluded = false): boolean {\r\n const {sitecoreContext} = useSitecoreContext();\r\n let isEEActive = sitecoreContext?.pageEditing;\r\n if (previewIncluded) {\r\n isEEActive = isEEActive || sitecoreContext?.pageState === 'preview';\r\n }\r\n\r\n return !!isEEActive;\r\n}\r\n","enum ctaTypes {\r\n primaryRed = 'p-red',\r\n primaryWhite = 'p-white',\r\n primaryBlack = 'p-black',\r\n secondaryRed = 's-red',\r\n secondaryWhite = 's-white',\r\n baseButton = 'cta',\r\n secondaryBaseButton = 'button',\r\n smallButton = 'cta--small',\r\n}\r\n\r\nexport default ctaTypes;\r\n","import { TBaseObj } from '../types/types';\r\n\r\n/**\r\n *\r\n * @param {String} url\r\n * @return {boolean}\r\n */\r\nfunction isInternalUrl(url: string | undefined): boolean {\r\n if (url) return url.startsWith('/') || url.startsWith('#');\r\n return false;\r\n}\r\n\r\nexport const getExternalLinkRelAttribute = (url = ''): TBaseObj => {\r\n return isInternalUrl(url) ? {} : { rel: 'nofollow' };\r\n};\r\n\r\nfunction appendToUrlPath(url: string, add: string): string {\r\n const appendSlash = (newurl: string): string => (newurl.endsWith('/') ? newurl : `${newurl}/`);\r\n const appendString = add || '';\r\n\r\n if (!url) {\r\n return '';\r\n } else if (url.includes('?')) {\r\n const urlArray = url.split('?');\r\n\r\n return `${appendSlash(urlArray[0])}${appendString}?${urlArray[1]}`;\r\n } else if (url.includes('#')) {\r\n const urlArray = url.split('#');\r\n\r\n return `${appendSlash(urlArray[0])}${appendString}#${urlArray[1]}`;\r\n } else {\r\n return `${appendSlash(url)}${appendString}`;\r\n }\r\n}\r\n\r\nfunction removeTrailingSlashFromPath(path: string): string {\r\n return path.endsWith('/') ? path.slice(0, -1) : path;\r\n}\r\n\r\nexport { isInternalUrl, appendToUrlPath, removeTrailingSlashFromPath };\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { isInternalUrl } from '../../../utils';\r\n\r\nconst RoutableNotEditableLink = ({ href, target = '', ...otherProps }) => {\r\n if (href && isInternalUrl(href)) {\r\n return ;\r\n }\r\n //eslint-disable-next-line\r\n return ;\r\n};\r\n\r\nRoutableNotEditableLink.propTypes = {\r\n href: PropTypes.string.isRequired,\r\n target: PropTypes?.string,\r\n};\r\n\r\nexport default RoutableNotEditableLink;\r\n","\r\n//eslint-disable-next-line\r\n\r\nconst iconSize = {\r\n xxs: 12,\r\n sm: 16,\r\n md: 18,\r\n mbl: 20,\r\n mldsk: 22,\r\n dsk: 24,\r\n lg: 30,\r\n xlg: 32,\r\n};\r\n\r\nexport { iconSize };\r\n","import React from 'react';\r\nimport { TIconField, TIconFromRenderingParams } from '../../../types/types';\r\nimport iconData from './caseih.json';\r\n\r\nexport type TIconProps = {\r\n iconName?: string;\r\n iconField?: TIconField | TIconFromRenderingParams;\r\n color?: 'primary' | 'complement' | 'white' | 'error' | 'gray' | 'light-black' | 'success' | 'medium-gray' | 'warning';\r\n size?: number;\r\n extraClassName?: string;\r\n onClick?: () => void;\r\n};\r\n\r\ntype TIconData = {\r\n webkitMaskUrl: string | null;\r\n alt: string | undefined;\r\n};\r\n\r\nconst getIconDataFromKey: (iconName: string) => TIconData = (iconName) => {\r\n const icon = iconData?.items.find((iconItem) => iconName === iconItem?.title);\r\n\r\n if (icon) {\r\n return {\r\n webkitMaskUrl: typeof icon?.full === 'string' ? icon.full : null,\r\n alt: icon?.alt,\r\n };\r\n }\r\n\r\n return { webkitMaskUrl: null, alt: undefined };\r\n};\r\n\r\nconst getIconDataromField: (iconField: TIconField | TIconFromRenderingParams | undefined) => TIconData = (iconField) => {\r\n const iconReferenceField = iconField as TIconField;\r\n const iconFromRenderingParams = iconField as TIconFromRenderingParams;\r\n\r\n if (iconReferenceField?.fields?.iconUrl?.value) {\r\n return { webkitMaskUrl: iconReferenceField.fields.iconUrl.value, alt: iconReferenceField.fields.iconAlt?.value };\r\n }\r\n\r\n if (iconFromRenderingParams?.iconUrl) {\r\n return { webkitMaskUrl: iconFromRenderingParams.iconUrl, alt: iconFromRenderingParams?.iconUrl };\r\n }\r\n\r\n return { webkitMaskUrl: null, alt: undefined };\r\n};\r\n\r\nconst Icon = React.forwardRef(function InnerIcon(\r\n { iconName, iconField, onClick, color = '', size, extraClassName = '' },\r\n ref\r\n) {\r\n const { webkitMaskUrl, alt } = iconName ? getIconDataFromKey(iconName) : getIconDataromField(iconField);\r\n\r\n if (!webkitMaskUrl) {\r\n return null;\r\n }\r\n\r\n const iconStyles: React.CSSProperties = {\r\n WebkitMaskImage: `url(${webkitMaskUrl})`,\r\n WebkitMaskSize: 'cover',\r\n height: `${size || 16}px`,\r\n width: `${size || 16}px`,\r\n };\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nexport default React.memo(Icon);\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport ctaTypes from '../../../../../enums/CTA.enums';\r\nimport Icon from '../../../icon';\r\nimport { TArrowRight } from '../../types/cta.types';\r\n\r\nconst ArrowRight: FC = (props) => {\r\n const { type } = props;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ArrowRight;\r\n","import React, { FC, memo } from 'react';\r\nimport { Link as SitecoreLink } from '@sitecore-jss/sitecore-jss-react';\r\nimport useEEActive from '../../../hooks/useEEActive';\r\nimport { TRoutableSiteCoreLinkField, TBaseObj } from '../../../types/types';\r\n\r\nconst buildLinkAttributes = (props: TRoutableSiteCoreLinkField): TBaseObj => {\r\n const { field } = props;\r\n if (!field?.value) return { className: props?.className || '' };\r\n\r\n let linkAttributes = {};\r\n const value = field?.value;\r\n linkAttributes = {\r\n href: value?.href,\r\n className: props?.className ?? value?.class,\r\n title: value?.title,\r\n onClick: props.onClick,\r\n target: props?.target ?? value?.target,\r\n };\r\n\r\n if (!value?.removenofollow) {\r\n linkAttributes['rel'] = 'nofollow';\r\n }\r\n\r\n return linkAttributes;\r\n};\r\n\r\nconst CustomExternalAnchor: FC = (props) => {\r\n const isEE = useEEActive();\r\n\r\n if (isEE) {\r\n return ;\r\n }\r\n\r\n const { children, field } = props;\r\n\r\n const linkAttributes = buildLinkAttributes(props);\r\n\r\n return
{children || field?.value?.text || field?.value?.href};\r\n};\r\n\r\nexport default memo(CustomExternalAnchor);\r\n","import React, { FC } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { isInternalUrl } from '../../../utils';\r\nimport CustomExternalAnchor from '../customExternalAnchor';\r\nimport { TRoutableSiteCoreLinkField } from '../../../types/types';\r\n\r\n/** React component that turns Sitecore link values that start are internal into react-router route links */\r\nconst RoutableSitecoreLink: FC = (props) => {\r\n const { field, editable = true, children } = props;\r\n const hasValidHref = field?.value?.href;\r\n const isEditing = editable && field?.editable;\r\n\r\n // only want to apply the routing link if not editing (if editing, need to render editable link value)\r\n if (hasValidHref && !isEditing) {\r\n const value = field.value;\r\n\r\n // determine if a link is a route or not. This logic may not be appropriate for all usages.\r\n if (isInternalUrl(value.href)) {\r\n return (\r\n \r\n {children || value.text || value.href}\r\n \r\n );\r\n }\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default RoutableSitecoreLink;\r\n","import React, { FC } from 'react';\r\nimport CustomExternalAnchor from '../../../customExternalAnchor';\r\nimport RoutableSitecoreLink from '../../../routableSitecoreLink';\r\nimport { TLinkChildrenAndIcon } from '../../types/cta.types';\r\nimport ArrowRight from './arrowRight';\r\n\r\nconst LinkChildrenAndIcon: FC = (props) => {\r\n const { isEditing, onClick, field, ctaClassName, children, hasArrowRight, type, target } = props;\r\n if (isEditing) {\r\n return (\r\n \r\n \r\n {children}\r\n {hasArrowRight && }\r\n \r\n );\r\n } else if (children) {\r\n return (\r\n \r\n {children}\r\n {hasArrowRight && }\r\n \r\n );\r\n } else if (hasArrowRight) {\r\n return (\r\n \r\n {field.value.text || field.value.href}\r\n {}\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport default LinkChildrenAndIcon;\r\n","import React, { FC } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { isInternalUrl } from '../../../../../utils';\r\nimport { TLinkWithField } from '../../types/cta.types';\r\nimport ArrowRight from './arrowRight';\r\n\r\nconst ValidHrefAndNotEditing: FC = ({ field, type, children, hasArrowRight, ctaClassName, onClick }) => {\r\n const value = field.value;\r\n\r\n // determine if a link is a route or not. This logic may not be appropriate for all usages.\r\n if (value.href && isInternalUrl(value.href)) {\r\n return (\r\n \r\n {children || value.text || value.href}\r\n {hasArrowRight && }\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport default ValidHrefAndNotEditing;\r\n","import { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { isInternalUrl } from '../../../../../utils';\r\nimport CustomExternalAnchor from '../../../customExternalAnchor';\r\nimport RoutableSitecoreLink from '../../../routableSitecoreLink';\r\nimport { TLinkWithField } from '../../types/cta.types';\r\nimport LinkChildrenAndIcon from './linkChildrenAndIcon';\r\nimport ValidHrefAndNotEditing from './validHrefAndNotEditing';\r\n\r\nconst LinkWithField: FC = (props) => {\r\n const { field, hasArrowRight, ctaClassName, onClick, target, children, type } = props;\r\n\r\n const hasValidHref = field.value && field.value.href;\r\n const isEditing = (field as unknown as { editable: any }).editable;\r\n\r\n // only want to apply the routing link if not editing (if editing, need to render editable link value)\r\n if (hasValidHref && !isEditing && isInternalUrl(field.value.href)) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n\r\n if (children || hasArrowRight) {\r\n // if it has children or the arrow, the sitecore link component gets duplicated on EE\r\n // return ;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n if (!hasArrowRight) {\r\n // Primary CTA with no children\r\n return \r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default LinkWithField;\r\n","import React, { FC } from 'react';\r\nimport ctaTypes from '../../../enums/CTA.enums';\r\nimport { getExternalLinkRelAttribute } from '../../../utils';\r\nimport RoutableNotEditableLink from '../routableNotEditableLink';\r\nimport ArrowRight from './components/LinkWithField/arrowRight';\r\nimport LinkWithField from './components/LinkWithField';\r\nimport { TCtaProps } from './types/cta.types';\r\n\r\nconst CTA: FC = ({ type, href, onClick, children, field, extraClassName, target, isArrowShown = true }) => {\r\n const ctaClassName = [ctaTypes['baseButton'], type, extraClassName].join(' ');\r\n\r\n const hasArrowRight = isArrowShown && (type === ctaTypes.secondaryRed || type === ctaTypes.secondaryWhite);\r\n\r\n if (field) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {children}\r\n {hasArrowRight && }\r\n \r\n );\r\n }\r\n};\r\n\r\nexport { ctaTypes };\r\nexport default React.memo(CTA);\r\n","import React, { ReactElement, FunctionComponent } from 'react';\r\nimport PropTypes, {Validator} from 'prop-types';\r\nimport { ICustomTextField, ICustomTextProps, TSuperScriptTags } from './types/customText.types';\r\nimport useSitecoreContext from '../../../hooks/useSitecoreContext';\r\n\r\nexport const CustomText: FunctionComponent = ({ field, tag, editable, encode, ...otherProps }): JSX.Element | null => {\r\n if (!field || (!field.editable && (field.value === undefined || field.value === ''))) {\r\n return null;\r\n }\r\n\r\n const {sitecoreContext} = useSitecoreContext();\r\n const language: string = sitecoreContext?.language?.toLowerCase() || '';\r\n const isEnglish = language?.startsWith('en');\r\n // can't use editable value if we want to output unencoded\r\n if (!encode) {\r\n editable = false;\r\n }\r\n\r\n const isEditable = field.editable && editable;\r\n\r\n let output: string | number | (ReactElement | string)[];\r\n if (isEditable) {\r\n output = field.editable || '';\r\n } else {\r\n output = field.value === undefined ? '' : field.value;\r\n }\r\n\r\n function replaceSuperScriptTags(str: string, formatted: (ReactElement | string)[], isEnglish = true) {\r\n // u00A9 -> © , u00AE -> ®, u002A -> * , u2122 -> ™\r\n let regex = /(\\d)(?:st|nd|rd|th)|(\\u00A9)|(\\u00AE)|(\\u002A)|(\\u2122)/g;\r\n if (!isEnglish) {\r\n regex = /(\\u00A9)|(\\u00AE)|(\\u002A)|(\\u2122)/g;\r\n }\r\n const superScriptTags: TSuperScriptTags[] = [];\r\n let cursor = 0;\r\n let matchedScriptChar = regex.exec(str);\r\n while (matchedScriptChar !== null) {\r\n let matchedChars: string;\r\n if (matchedScriptChar[1] && isEnglish) {\r\n superScriptTags.push([cursor, matchedScriptChar.index + 1]);\r\n matchedChars = matchedScriptChar[0].slice(matchedScriptChar[1].length);\r\n } else {\r\n superScriptTags.push([cursor, matchedScriptChar.index]);\r\n matchedChars = matchedScriptChar[0];\r\n }\r\n superScriptTags.push(matchedChars);\r\n cursor = matchedScriptChar.index + matchedScriptChar[0].length;\r\n matchedScriptChar = regex.exec(str);\r\n }\r\n superScriptTags.push([cursor, str.length]);\r\n superScriptTags.forEach((val) => {\r\n if (typeof val === 'string') {\r\n formatted.push({val});\r\n }\r\n if (Array.isArray(val)) {\r\n const [startIndex, endIndex] = val;\r\n formatted.push(str.slice(startIndex, endIndex));\r\n }\r\n });\r\n }\r\n\r\n // when string value isn't formatted, we should format line breaks\r\n if (!field.editable && typeof output === 'string') {\r\n const splitted = String(output).split('\\n');\r\n\r\n if (splitted.length) {\r\n const formatted: (ReactElement | string)[] = [];\r\n\r\n splitted.forEach((str, i) => {\r\n replaceSuperScriptTags(str, formatted, isEnglish);\r\n\r\n const isLast = i === splitted.length - 1;\r\n\r\n if (!isLast) {\r\n formatted.push(
);\r\n }\r\n });\r\n\r\n output = formatted;\r\n }\r\n }\r\n\r\n const setDangerously = isEditable || !encode;\r\n\r\n let children: string | number | (string | JSX.Element)[] | null = null;\r\n const htmlProps: {\r\n [htmlAttributes: string]: unknown;\r\n children?: React.ReactNode;\r\n } = {\r\n ...otherProps,\r\n };\r\n\r\n if (setDangerously) {\r\n htmlProps.dangerouslySetInnerHTML = {\r\n __html: output,\r\n };\r\n } else {\r\n children = output;\r\n }\r\n\r\n if (tag || setDangerously) {\r\n return React.createElement(tag || 'span', htmlProps, children);\r\n } else {\r\n return {children};\r\n }\r\n};\r\n\r\nCustomText.propTypes = {\r\n field: PropTypes.shape({\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n editable: PropTypes.string,\r\n }) as Validator,\r\n tag: PropTypes.string,\r\n editable: PropTypes.bool,\r\n encode: PropTypes.bool,\r\n};\r\n\r\nCustomText.defaultProps = {\r\n editable: true,\r\n encode: true,\r\n};\r\n\r\nCustomText.displayName = 'CustomText';\r\n","import React, { FC } from 'react';\r\nimport { WithTranslation, withTranslation } from 'react-i18next';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport useSitecoreContext from '../../../hooks/useSitecoreContext';\r\n\r\nexport type TDictionaryTermProps = WithTranslation & {\r\n t: WithTranslation['t'];\r\n keyword: string;\r\n isCustomText?: boolean;\r\n customTextClass?: string;\r\n customTextTag?: string;\r\n};\r\n\r\nconst DictionaryTerm: FC = ({ t, keyword, isCustomText = false, customTextClass = '', customTextTag = 'div' }) => {\r\n const {sitecoreContext} = useSitecoreContext();\r\n const pageEditing = sitecoreContext?.pageState === 'edit';\r\n\r\n if (!keyword) return null;\r\n if (!t) return <>{keyword};\r\n\r\n if (isCustomText) {\r\n const value = t(keyword, { defaultValue: '' })?.trim();\r\n if (!pageEditing) {\r\n return value && value !== keyword ? (\r\n \r\n ) : null;\r\n }\r\n return ;\r\n }\r\n\r\n return <>{t(keyword)};\r\n};\r\n\r\nexport default withTranslation()(DictionaryTerm);\r\n","import React, { FC } from 'react';\r\nimport { RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { CustomText } from '../customText';\r\nimport { TextComponentDeciderProps } from './types/textComponentDecider.types';\r\nimport DictionaryTerm from '../dictionaryTerm';\r\n\r\nconst TextComponentDecider: FC = (props) => {\r\n const { type, onClick, ...restOfProps } = props;\r\n\r\n if (type === 'CustomText') {\r\n return ;\r\n } else if (type === 'RichText') {\r\n return ;\r\n } else if (type === 'DictionaryTerm') {\r\n if (props?.dictionaryKey) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n return ;\r\n};\r\n\r\nexport default TextComponentDecider;\r\n","import { THeadingProps } from '../types/heading.types';\r\nimport { StringField, TLinkField } from '../../../../types/types';\r\n\r\nexport class HeadingModel {\r\n private readonly props: THeadingProps;\r\n private readonly isEE: boolean;\r\n\r\n constructor(props: THeadingProps, isEE: boolean) {\r\n this.props = props || null;\r\n this.isEE = isEE;\r\n }\r\n\r\n get title(): StringField {\r\n if (typeof this.props?.title === 'string') return { value: this.props.title } as StringField;\r\n return this.props?.title as StringField;\r\n }\r\n\r\n get eyebrow(): StringField {\r\n if (typeof this.props.eyebrow === 'string') return { value: this.props.eyebrow } as StringField;\r\n return this.props?.eyebrow as StringField;\r\n }\r\n\r\n get subtitle(): StringField {\r\n if (typeof this.props.subtitle === 'string') return { value: this.props.subtitle } as StringField;\r\n return this.props?.subtitle as StringField;\r\n }\r\n\r\n get link(): TLinkField | undefined {\r\n return this.props.link;\r\n }\r\n get isLinkExistsOrIsEE(): boolean {\r\n return !!(this.props.link?.value?.href || this.isEE);\r\n }\r\n\r\n get editable(): boolean {\r\n return !!this.props.editable;\r\n }\r\n\r\n get eyebrowExistsOrIsEE(): boolean {\r\n return !!(this.eyebrow?.value || this.isEE);\r\n }\r\n\r\n get titleExistsOrIsEE(): boolean {\r\n return !!(this.title?.value || this.isEE);\r\n }\r\n\r\n get subtitleExistsOrIsEE(): boolean {\r\n return !!(this.subtitle?.value || this.isEE);\r\n }\r\n}\r\n","import { TLinkField } from '../types/types';\r\n\r\nexport function targetLinkdsk(link: TLinkField | undefined, isDesktop?: boolean): string {\r\n if (isDesktop && link?.value?.target) {\r\n return link?.value?.target;\r\n } else if (!isDesktop && link?.value?.target) {\r\n return '_self';\r\n } else return '';\r\n}\r\n","import { useState, useEffect } from 'react';\r\nimport { windowService } from '../../utils/window.utils';\r\n\r\nconst useMediaQuery = (\r\n query: string,\r\n initialState = false,\r\n //eslint-disable-next-line\r\n callbackOnChange = (mediaMatches: boolean) => {\r\n // This is intentional\r\n }\r\n) => {\r\n const [matches, setMatches] = useState(initialState);\r\n\r\n useEffect(() => {\r\n const media = windowService().matchMedia(query);\r\n if (media.matches !== matches) {\r\n setMatches(media.matches);\r\n callbackOnChange(media.matches);\r\n }\r\n const listener = () => setMatches(media.matches);\r\n media.addListener(listener);\r\n return () => media.removeListener(listener);\r\n }, [matches, query]); //eslint-disable-line\r\n\r\n return matches;\r\n};\r\n\r\nexport default useMediaQuery;\r\n","export const Breakpoints: { [key: string]: number } = {\r\n xs: 0,\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1600,\r\n};\r\n\r\nexport const BreakpointsInPx: { [key: string]: string } = {\r\n xs: `${Breakpoints.xs}px`,\r\n sm: `${Breakpoints.sm}px`,\r\n md: `${Breakpoints.md}px`,\r\n lg: `${Breakpoints.lg}px`,\r\n xl: `${Breakpoints.xl}px`,\r\n xxl: `${Breakpoints.xxl}px`,\r\n};\r\n","import { bg, cs, da, deAT, de, enAU, enCA, enGB, enIE, enUS, es, fr, frCA, hu, id, it, nl, nlBE, pl, pt, ptBR, ro, ru, sr, sv, th, tr, uk } from 'date-fns/locale';\r\n\r\nexport default { bg, cs, da, deAT, de, enAU, enCA, enGB, enIE, enUS, es, fr, frCA, hu, id, it, nl, nlBE, pl, pt, ptBR, ro, ru, sr, sv, th, tr, uk };\r\n","import { Locale, format } from 'date-fns';\r\nimport allLocales from '../constants/locale.constants';\r\nimport useSitecoreContext from './useSitecoreContext';\r\n\r\nexport const getUTCDate = (dateString: string): Date => {\r\n const date = new Date(dateString);\r\n return new Date(date.getTime() + date.getTimezoneOffset() * 60000);\r\n};\r\n\r\nexport const getFormattedDate = (date: Date, dateFormat: string, locale?: Locale) => {\r\n return format(date, dateFormat, locale && { locale });\r\n};\r\n\r\nexport default function useFormatDate(dateString?: string): string | undefined {\r\n\r\n if (!dateString) return dateString;\r\n\r\n const {sitecoreContext} = useSitecoreContext();\r\n const defaultDateFormat = 'dd MMMM yyyy';\r\n const { dateFormat = defaultDateFormat, dateLocal } = sitecoreContext?.regionalSettings || {};\r\n const utcDate = getUTCDate(dateString);\r\n const locale = allLocales[dateLocal];\r\n let formattedDate: string;\r\n\r\n try {\r\n formattedDate = getFormattedDate(new Date(utcDate), dateFormat, locale);\r\n } catch (error) {\r\n formattedDate = getFormattedDate(new Date(utcDate), defaultDateFormat, locale);\r\n }\r\n\r\n return formattedDate;\r\n}\r\n","import { getFormattedDate, getUTCDate } from '../hooks/useFormatDate';\r\nimport { windowService } from './window.utils';\r\n\r\nconst addLeadingZeros = (num: number, totalLength: number): string => String(num).padStart(totalLength, '0');\r\nconst formatComponentNumber = (num: number): string => addLeadingZeros(num, 2);\r\nexport const getDLMFormatDate = (dateString: string) => {\r\n const utcDate = getUTCDate(dateString);\r\n const DLM_DATE_FORMAT = 'yyyyMMdd';\r\n return getFormattedDate(utcDate, DLM_DATE_FORMAT);\r\n};\r\n\r\nfunction googleDataLayerPush(dataLayerData: any): void {\r\n windowService().dataLayer = windowService()?.dataLayer || [];\r\n\r\n if (!windowService().dataLayer) {\r\n return;\r\n }\r\n\r\n windowService().dataLayer.push(dataLayerData);\r\n}\r\n\r\nfunction googleClickEvent(\r\n type: string,\r\n category: string,\r\n action: string | undefined,\r\n label: string | undefined,\r\n elementNumber?: number | undefined,\r\n news_type?: string | undefined,\r\n date?: string | undefined,\r\n event_type?: string | undefined,\r\n event_status?: string | undefined\r\n): void {\r\n action = action ?? '';\r\n label = label ?? '';\r\n\r\n const dataLayerData = {\r\n event: 'click',\r\n _clear: true,\r\n 'data-tag-meta': {\r\n type,\r\n category,\r\n action,\r\n label,\r\n ...(news_type && { news_type }),\r\n ...(date && { date }),\r\n ...(event_type && { event_type }),\r\n ...(event_status && { event_status }),\r\n },\r\n };\r\n\r\n if (typeof elementNumber !== 'undefined') {\r\n dataLayerData['data-tag-meta']['elementNo'] = formatComponentNumber(elementNumber);\r\n }\r\n\r\n googleDataLayerPush(dataLayerData);\r\n}\r\n\r\nfunction googleFormSubmitEvent(formName: string | undefined, fileUploaded: boolean | undefined): void {\r\n const dataLayerData = {\r\n event: 'click',\r\n 'data-tag-meta': {\r\n type: 'form',\r\n category: 'Form Submit',\r\n action: 'Success',\r\n label: formName,\r\n fileUpload: fileUploaded ? 'Yes' : 'No',\r\n },\r\n };\r\n\r\n googleDataLayerPush(dataLayerData);\r\n}\r\n\r\nfunction googleClickCtaEvent(\r\n category: 'Button' | 'Link' | 'Hero' | 'Page Nav' | 'Global Nav' | 'Global Footer' | 'Brochure' | 'Convert to Excel' | 'Print' | 'News Files',\r\n action: string | undefined,\r\n label: string | undefined,\r\n elementNumber?: number | undefined\r\n) {\r\n googleClickEvent('cta', category, action, label, elementNumber);\r\n}\r\n\r\nfunction googleClickNewsCtaEvent(label: string | undefined, elementNumber?: number, news_type?: string, date?: string) {\r\n googleClickEvent('cta', 'Button', 'News Click', label, elementNumber, news_type, date);\r\n}\r\n\r\nfunction googleClickEventsCtaEvent(\r\n label: string | undefined,\r\n elementNumber?: number,\r\n event_type?: string,\r\n date?: string,\r\n event_status?: string\r\n) {\r\n googleClickEvent('cta', 'Button', 'Events Click', label, elementNumber, undefined, date, event_type, event_status);\r\n}\r\n\r\nfunction googleClickNavEvent(\r\n category: 'Page Nav' | 'Page Sub Nav' | 'Global Footer' | 'Global Nav',\r\n action: string | undefined,\r\n label: string | undefined,\r\n elementNumber?: number | undefined\r\n) {\r\n googleClickEvent('nav', category, action, label, elementNumber);\r\n}\r\n\r\nfunction googleClickSubNavigationEvent(action: string | undefined, label: string | undefined, elementNumber?: number | undefined): void {\r\n googleClickEvent('nav', 'Page Sub Nav', action, label, elementNumber);\r\n}\r\n\r\nfunction googleClickSlideEvent(action: string | undefined, label: string | undefined, elementNumber?: number | undefined): void {\r\n googleClickEvent('slide', 'Carousel', action, label, elementNumber);\r\n}\r\n\r\nfunction googleClickOpenVideoEvent(label: string | undefined, elementNumber?: number | undefined): void {\r\n googleClickEvent('video', 'Video', 'Open', label, elementNumber);\r\n}\r\n\r\nfunction googleClickAccordionEvent(action: string | undefined, label: string | undefined, elementNumber?: number | undefined): void {\r\n googleClickEvent('accordion', 'Accordion', action, label, elementNumber);\r\n}\r\n\r\nfunction googleClickCardEvent(label: string | undefined, elementNumber?: number | undefined): void {\r\n googleClickEvent('card', 'Card', 'Click', label, elementNumber);\r\n}\r\n\r\nfunction googleSeeMoreCardEvent(label: string | undefined, elementNumber?: number | undefined): void {\r\n googleClickEvent('card', 'Link', 'See More', label, elementNumber);\r\n}\r\n\r\nfunction googleClickBreadcrumbEvent(label: string | undefined): void {\r\n googleClickEvent('breadcrumb', 'Breadcrumb', 'Click', label);\r\n}\r\n\r\nfunction googleClickDropdownEvent(action: string | undefined, label: string | undefined, elementNumber?: number | undefined): void {\r\n googleClickEvent('dropdown', 'Dropdown', action, label, elementNumber);\r\n}\r\n\r\nfunction googleClickTabEvent(action: 'Open' | 'Select', label: string | undefined, elementNumber?: number | undefined): void {\r\n googleClickEvent('tab', 'Tab', action, label, elementNumber);\r\n}\r\n\r\nfunction googleSocialEvent(label: string | undefined, elementNumber?: number | undefined): void {\r\n googleClickEvent('social', 'Social', 'Share', label, elementNumber);\r\n}\r\n\r\nfunction googleClickSearchEvent(action: string | undefined, label: string | undefined): void {\r\n googleClickEvent('search', 'Search Result', action, label);\r\n}\r\n\r\nfunction googleClickRichTextEvent(event: any, label: string | undefined, elementNumber?: number | undefined): void {\r\n const anchorElement = event?.target;\r\n\r\n if (!anchorElement || anchorElement.nodeName !== 'A') {\r\n return;\r\n }\r\n\r\n const anchorText = anchorElement.text;\r\n googleClickCtaEvent('Link', anchorText, label, elementNumber);\r\n}\r\n\r\nfunction googleClickDealerLocatorResults(\r\n event: string,\r\n dealerLocatorCountry: any | undefined,\r\n dealerLocatorSearch: string | undefined,\r\n dealerLocatorEquipment: string | undefined,\r\n dealerLocatorServices: string | undefined,\r\n dealerLocatorType: string | undefined,\r\n dealerLocatorState: string | undefined\r\n): void {\r\n const dataLayerData = {\r\n event,\r\n dealerLocatorCountry,\r\n dealerLocatorSearch,\r\n dealerLocatorEquipment,\r\n dealerLocatorServices,\r\n dealerLocatorType,\r\n dealerLocatorState,\r\n };\r\n\r\n googleDataLayerPush(dataLayerData);\r\n}\r\n\r\nfunction googleGeolocationClick(\r\n event: string,\r\n region: string | undefined,\r\n language: string | undefined,\r\n market: string | undefined,\r\n dealerLocatorType: string | undefined\r\n): void {\r\n const dataLayerData = {\r\n event,\r\n region,\r\n language,\r\n market,\r\n dealerLocatorType,\r\n };\r\n\r\n googleDataLayerPush(dataLayerData);\r\n}\r\n\r\nfunction googleClickDealerLocatorGetDetals(\r\n event: string,\r\n dealerLocatorCountry: string | undefined,\r\n dealerLocatorSearch: string | undefined,\r\n dealerName: string | undefined,\r\n certifiedDealer: string | undefined,\r\n dealerLocatorType: string | undefined\r\n): void {\r\n const dataLayerData = {\r\n event,\r\n dealerLocatorCountry,\r\n dealerLocatorSearch,\r\n dealerName,\r\n certifiedDealer,\r\n dealerLocatorType,\r\n };\r\n\r\n googleDataLayerPush(dataLayerData);\r\n}\r\n\r\nfunction googleDealerLocatorContactClick(\r\n event: string,\r\n type: string | undefined,\r\n dealerName: string | undefined,\r\n dealerLocatorType: string | undefined\r\n): void {\r\n const dataLayerData = {\r\n event,\r\n type,\r\n dealerName,\r\n dealerLocatorType,\r\n };\r\n\r\n googleDataLayerPush(dataLayerData);\r\n}\r\n\r\nfunction googleFormProgress(form_name, form_step: string, form_step_name: string | undefined) {\r\n const dataLayerData = {\r\n event: 'form_progress',\r\n form_name,\r\n form_step,\r\n form_step_name,\r\n };\r\n googleDataLayerPush(dataLayerData);\r\n}\r\n\r\nfunction googleDownloadBrochureListingEvent(\r\n event: string,\r\n productLine?: string,\r\n productSeries?: string,\r\n productCategory?: string,\r\n search_term?: string\r\n) {\r\n const dataLayerData = {\r\n event,\r\n productLine,\r\n productSeries,\r\n productCategory,\r\n search_term,\r\n };\r\n googleDataLayerPush(dataLayerData);\r\n}\r\n\r\nexport {\r\n formatComponentNumber,\r\n googleDataLayerPush,\r\n googleFormSubmitEvent,\r\n googleClickCtaEvent,\r\n googleClickNewsCtaEvent,\r\n googleClickSlideEvent,\r\n googleClickOpenVideoEvent,\r\n googleClickAccordionEvent,\r\n googleClickCardEvent,\r\n googleSeeMoreCardEvent,\r\n googleClickBreadcrumbEvent,\r\n googleClickDropdownEvent,\r\n googleClickNavEvent,\r\n googleClickSubNavigationEvent,\r\n googleClickTabEvent,\r\n googleSocialEvent,\r\n googleClickSearchEvent,\r\n googleClickRichTextEvent,\r\n googleClickEvent,\r\n googleClickDealerLocatorResults,\r\n googleGeolocationClick,\r\n googleClickDealerLocatorGetDetals,\r\n googleDealerLocatorContactClick,\r\n googleClickEventsCtaEvent,\r\n googleFormProgress,\r\n googleDownloadBrochureListingEvent,\r\n};\r\n","export const getTextType = (textType, isFallbackToDictionaryTerm = false) => {\r\n if (isFallbackToDictionaryTerm) {\r\n return 'DictionaryTerm';\r\n } else {\r\n return textType;\r\n }\r\n};\r\n","import React, { FC, useMemo } from 'react';\r\nimport useEEActive from '../../../hooks/useEEActive';\r\nimport ctaTypes from '../../../enums/CTA.enums';\r\nimport CTA from '../cta';\r\nimport TextComponentDecider from '../TextComponentDecider';\r\nimport { HeadingModel } from './model/heading.model';\r\nimport { THeadingProps } from './types/heading.types';\r\nimport { targetLinkdsk } from '../../../utils/targetDskLink';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../constants/breakpoints.constants';\r\nimport { googleClickCtaEvent, googleClickRichTextEvent } from '../../../utils/analytics';\r\nimport { getTextType } from '../../../utils/getTextType.utils';\r\n\r\nconst Heading: FC = (props) => {\r\n const isEE = useEEActive();\r\n const memoDependencires = props?.modelDependencies || [];\r\n const model = useMemo(() => new HeadingModel(props, isEE), [...memoDependencires, props, isEE]); // eslint-disable-line\r\n const {\r\n extraClassNameLink = '',\r\n children,\r\n customTextTitle = false,\r\n customTextSubtitle = false,\r\n tag = 'h2',\r\n useDictionaryFallback = false,\r\n titleDictionaryKey,\r\n eyebrowDictionaryKey,\r\n descriptionDictionaryKey,\r\n } = props;\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n\r\n return (\r\n
\r\n {(model.eyebrowExistsOrIsEE || useDictionaryFallback) && (\r\n \r\n )}\r\n\r\n {(model.titleExistsOrIsEE || useDictionaryFallback) && (\r\n \r\n )}\r\n {(model.subtitleExistsOrIsEE || useDictionaryFallback) && (\r\n {\r\n if (props.useAnalytics) {\r\n googleClickRichTextEvent(event, model.title?.value);\r\n }\r\n }}\r\n dictionaryKey={descriptionDictionaryKey}\r\n />\r\n )}\r\n {!props.hideSecondaryLink && model.isLinkExistsOrIsEE && (\r\n \r\n {\r\n if (props.useAnalytics) {\r\n googleClickCtaEvent('Link', model?.link?.value.text ?? model?.link?.value.title, model.title?.value);\r\n }\r\n }}\r\n />\r\n \r\n )}\r\n {(Boolean(children) || isEE) && {children}}\r\n
\r\n );\r\n};\r\nexport default React.memo(Heading);\r\n","import React, { FC } from 'react';\r\nimport Icon from '../icon';\r\nimport { TCarouselArrowProps } from './types/carouselArrow.types';\r\n\r\nconst CarouselArrow: FC = ({ direction, onClick, onClickSecondary, className, additionalCssClass = '' }: TCarouselArrowProps) => {\r\n const icon = `arrow-chevron-${direction === 'previous' ? 'left' : 'right'}` as 'arrow-chevron-left' | 'arrow-chevron-right';\r\n return (\r\n {\r\n onClick && onClick();\r\n onClickSecondary && onClickSecondary();\r\n }}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CarouselArrow;\r\n","const triggerCTRLCmdAndClick = (event, cb) => {\r\n if (event.ctrlKey || event.metaKey) {\r\n event?.stopPropagation();\r\n event?.preventDefault();\r\n cb();\r\n }\r\n };\r\n \r\n export { triggerCTRLCmdAndClick };","export function getYoutubeVideoId(link: string): string | undefined {\r\n if (!link) return;\r\n const trimmedLink = link.trim();\r\n let videoId = '';\r\n if (trimmedLink.includes('youtube')) {\r\n if (trimmedLink.includes('watch')) {\r\n videoId = trimmedLink.split('v=')[1];\r\n const ampPos = videoId.indexOf('&');\r\n if (ampPos !== -1) {\r\n videoId = videoId.substring(0, ampPos);\r\n }\r\n } else if (trimmedLink.includes('embed')) {\r\n videoId = trimmedLink.split('embed/')[1];\r\n const quesPos = videoId.indexOf('?');\r\n if (quesPos !== -1) {\r\n videoId = videoId.substring(0, quesPos);\r\n }\r\n }\r\n } else if (trimmedLink.includes('youtu.be')) {\r\n videoId = trimmedLink.split('youtu.be/')[1];\r\n }\r\n if (videoId) {\r\n return videoId;\r\n }\r\n}\r\n\r\nconst ThumbnailResolutionOptions = ['maxresdefault', 'hqdefault', 'mqdefault', 'sddefault', 'default'] as const;\r\n\r\ntype TThumbnailResolution = typeof ThumbnailResolutionOptions[number];\r\n\r\nexport function getYoutubeThumbNail(videoId: string, resolution: TThumbnailResolution = 'maxresdefault'): string {\r\n return `https://img.youtube.com/vi/${videoId}/${resolution}.jpg`;\r\n}\r\n\r\ntype TThumbnailprops = {\r\n showThumbnail: boolean;\r\n thumbnailImgSrc: string | undefined;\r\n};\r\n\r\nexport function getThumbnailProps(link: string, resolution?: TThumbnailResolution): TThumbnailprops {\r\n const videoID = getYoutubeVideoId(link);\r\n if (!videoID) {\r\n return { showThumbnail: false, thumbnailImgSrc: undefined };\r\n }\r\n return { showThumbnail: true, thumbnailImgSrc: getYoutubeThumbNail(videoID, resolution) };\r\n}\r\n\r\nfunction checkAndhandleSrcSet(imgElement: HTMLImageElement, currentres, replaceres) {\r\n if (imgElement.parentElement?.tagName === 'PICTURE') {\r\n const pictureChildrens = Array.from(imgElement.parentElement.children);\r\n for (const element of pictureChildrens) {\r\n if (element.tagName === 'SOURCE' && (element as HTMLSourceElement).srcset.indexOf(currentres) > 0) {\r\n (element as HTMLSourceElement).srcset = (element as HTMLSourceElement).srcset.replace(currentres, replaceres);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function handleThumbnailImage(event, isVideo = false, imgElement: HTMLImageElement | null = null): void {\r\n if (!isVideo) return;\r\n\r\n const img = imgElement || event?.target;\r\n const imgUrl = img.src;\r\n\r\n if (img.naturalWidth === 120 && img.naturalHeight === 90) {\r\n for (let i = 0, len = ThumbnailResolutionOptions.length - 1; i < len; i++) {\r\n if (img.currentSrc.indexOf(ThumbnailResolutionOptions[i]) > 0) {\r\n img.src = imgUrl.replace(ThumbnailResolutionOptions[i], ThumbnailResolutionOptions[i + 1]);\r\n checkAndhandleSrcSet(img, ThumbnailResolutionOptions[i], ThumbnailResolutionOptions[i + 1]);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import React, { useEffect, useRef, useState, FC } from 'react';\r\nimport Helmet from 'react-helmet';\r\n\r\nimport { BreakpointsInPx } from '../../../../../constants/breakpoints.constants';\r\nimport { handleThumbnailImage } from '../../../../../utils/youtubeUtils';\r\nimport { TContentHubImageProps } from '../../types/contentHubImage.types';\r\n\r\nconst ContentHubImage: FC = ({\r\n desktopRendition,\r\n desktopSDRendition,\r\n tabletLandscapeRendition,\r\n tabletRendition,\r\n mobileRendition,\r\n alt,\r\n imageClassName,\r\n pictureClassName,\r\n imageStyle,\r\n pictureStyle,\r\n disableLazyLoad,\r\n prioritize,\r\n onClick,\r\n onTouchStart,\r\n onTouchEnd,\r\n onLoad,\r\n isVideoThumbnail,\r\n}) => {\r\n const [imageLoaded, setImageLoaded] = useState(false);\r\n const imageRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (imageLoaded || !imageRef.current || !isVideoThumbnail) return;\r\n handleThumbnailImage(null, isVideoThumbnail, imageRef.current);\r\n setImageLoaded(() => true);\r\n }, [isVideoThumbnail, imageRef, isVideoThumbnail]);\r\n\r\n const getDefaultRenditionsAndBreakpoint = () => {\r\n let defaultRenditions = '';\r\n let defaultBreakpoint = '';\r\n\r\n if (desktopRendition?.url) {\r\n defaultRenditions = desktopRendition.url;\r\n defaultBreakpoint = BreakpointsInPx.xxl;\r\n } else if (desktopSDRendition?.url) {\r\n defaultRenditions = desktopSDRendition.url;\r\n defaultBreakpoint = BreakpointsInPx.xl;\r\n } else if (tabletRendition?.url) {\r\n defaultRenditions = tabletRendition.url;\r\n defaultBreakpoint = BreakpointsInPx.lg;\r\n } else if (tabletLandscapeRendition?.url) {\r\n defaultRenditions = tabletLandscapeRendition.url;\r\n defaultBreakpoint = BreakpointsInPx.md;\r\n } else if (mobileRendition?.url) {\r\n defaultRenditions = mobileRendition.url;\r\n defaultBreakpoint = BreakpointsInPx.sm;\r\n }\r\n return [defaultRenditions, defaultBreakpoint];\r\n };\r\n\r\n const [defaultRenditions, defaultBreakpoint] = getDefaultRenditionsAndBreakpoint();\r\n\r\n if (!defaultRenditions) {\r\n return null;\r\n }\r\n\r\n const handleOnLoad = (event) => {\r\n onLoad?.(event);\r\n handleThumbnailImage(event, isVideoThumbnail);\r\n setImageLoaded(() => true);\r\n };\r\n\r\n return (\r\n <>\r\n {prioritize && (\r\n \r\n {mobileRendition?.url && (\r\n \r\n )}\r\n {tabletRendition?.url && (\r\n \r\n )}\r\n {tabletLandscapeRendition?.url && (\r\n \r\n )}\r\n {desktopSDRendition?.url && (\r\n \r\n )}\r\n {desktopRendition?.url && }\r\n \r\n )}\r\n \r\n {mobileRendition?.url && (\r\n \r\n )}\r\n {tabletRendition?.url && (\r\n \r\n )}\r\n {tabletLandscapeRendition?.url && (\r\n \r\n )}\r\n {desktopSDRendition?.url && (\r\n \r\n )}\r\n {desktopRendition?.url && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContentHubImage;\r\n","import { Image as SitecoreImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { useEffect, useRef, useState, FC } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport useEEActive from '../../../../../hooks/useEEActive';\r\nimport { TImageField } from '../../../../../types/types';\r\nimport { triggerCTRLCmdAndClick } from '../../../../../utils/macOs.utils';\r\nimport { documentService } from '../../../../../utils/window.utils';\r\nimport Icon from '../../../icon';\r\nimport { TEditorialImageProps, TImageFieldOrString, TTransformations } from '../../types/editorialImage.types';\r\nimport ContentHubImage from '../contentHubImage';\r\nimport useSitecoreContext from '../../../../../hooks/useSitecoreContext';\r\n\r\nconst Image: FC = (props: TEditorialImageProps) => {\r\n const {\r\n mobileImage,\r\n tabletImage,\r\n desktopImage,\r\n mobileTransformation,\r\n tabletTransformation,\r\n desktopTransformation,\r\n disableLazyLoad,\r\n alt,\r\n cssClassPictureEl = '',\r\n cssClassImageEl = '',\r\n style,\r\n prioritize = false,\r\n onClick,\r\n onTouchStart,\r\n onTouchEnd,\r\n onLoad,\r\n isVideoThumbnail,\r\n } = props;\r\n\r\n const getUrl = (image: TImageFieldOrString): string => {\r\n if (typeof image === 'object' && image?.value?.src) return image?.value?.src;\r\n if (typeof image === 'string') return image;\r\n\r\n return '';\r\n };\r\n\r\n const desktopFallbackImageUrl = getUrl(tabletImage) || getUrl(mobileImage);\r\n const tabletFallbackImageUrl = getUrl(desktopImage) || getUrl(mobileImage);\r\n const mobileFallbackImageUrl = getUrl(tabletImage) || getUrl(desktopImage);\r\n\r\n const getSrcImage = (image: TImageFieldOrString, fallbackImageUrl: string, transformation?: TTransformations): string => {\r\n let url = getUrl(image);\r\n\r\n if (!transformation) {\r\n return url;\r\n }\r\n\r\n if (!url) {\r\n url = fallbackImageUrl;\r\n }\r\n\r\n if (url) {\r\n url = url.includes('?') ? `${url}&t=${transformation}` : `${url}?t=${transformation}`;\r\n }\r\n\r\n return url;\r\n };\r\n\r\n const getImageDimensions = (image: string | TImageFieldOrString | null): { width; height } => {\r\n if (typeof image === 'string') return { width: null, height: null };\r\n return {\r\n width: image?.value?.width || null,\r\n height: image?.value?.height || null,\r\n };\r\n };\r\n\r\n const getAlt = (image: TImageFieldOrString): string => {\r\n if (typeof image === 'string') return '';\r\n return image?.value?.alt as string || '';\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst EditImageEE: FC = ({ image, mobileImage }) => {\r\n const getImage = (picture): TImageField => {\r\n let img: TImageField;\r\n\r\n if (typeof picture === 'string') {\r\n img = {\r\n value: {\r\n src: picture,\r\n },\r\n };\r\n } else {\r\n img = picture;\r\n }\r\n\r\n return img;\r\n };\r\n\r\n return (\r\n <>\r\n {image && (\r\n
\r\n

Edit Desktop image

\r\n \r\n
\r\n )}\r\n {mobileImage && (\r\n
\r\n

Edit Mobile image

\r\n \r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst EditorialImage: FC = (props: TEditorialImageProps) => {\r\n const {sitecoreContext} = useSitecoreContext();\r\n const isEEActive = useEEActive();\r\n const [isOpenEditImageModal, setIsOpenEditImageModal] = useState(false);\r\n const popUpClassName = 'generic-modal-dialog';\r\n const modalDialogConatinerClass = 'modal-dialog__overlay';\r\n const modalDialogContentlass = 'modal-dialog';\r\n const modalDialogCloseBtnClass = 'modal-dialog__close-button';\r\n const editorRef = useRef(null);\r\n const ctaCloseTriggerRef = useRef(null);\r\n const ctaOpenTriggerRef = useRef(null);\r\n const [modalContainer, setModalContainerEl] = useState(documentService()?.getElementById?.('modal-EE-section'));\r\n\r\n useEffect(() => {\r\n if (!isEEActive) return;\r\n\r\n setModalContainerEl(documentService()?.getElementById?.('modal-EE-section'));\r\n\r\n const startStopBodyScroll = (isScrollable: boolean): void => {\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n return isScrollable ? docElement.body.classList.remove('body--with-pop-up') : docElement.body.classList.add('body--with-pop-up');\r\n };\r\n\r\n const openCTA = (event): void => {\r\n triggerCTRLCmdAndClick(event, () => {\r\n editorRef.current?.classList.add('editor_popup--visible');\r\n startStopBodyScroll(false);\r\n setIsOpenEditImageModal(true);\r\n });\r\n };\r\n\r\n const closeCTA = (event): void => {\r\n triggerCTRLCmdAndClick(event, () => {\r\n editorRef.current?.classList.remove('editor_popup--visible');\r\n startStopBodyScroll(true);\r\n setIsOpenEditImageModal(false);\r\n });\r\n };\r\n\r\n ctaOpenTriggerRef.current?.addEventListener('click', openCTA);\r\n ctaCloseTriggerRef.current?.addEventListener('click', closeCTA);\r\n\r\n return (): void => {\r\n ctaOpenTriggerRef.current?.removeEventListener('click', openCTA); /* eslint-disable-line */\r\n ctaCloseTriggerRef.current?.removeEventListener('click', closeCTA); /* eslint-disable-line */\r\n };\r\n }, [isOpenEditImageModal, isEEActive]);\r\n\r\n if (isEEActive && sitecoreContext)\r\n return (\r\n <>\r\n
\r\n \r\n \r\n {modalContainer &&\r\n ReactDOM.createPortal(\r\n
\r\n \r\n
\r\n \r\n
\r\n
,\r\n modalContainer\r\n )}\r\n
\r\n \r\n );\r\n\r\n return ;\r\n};\r\n\r\nexport default React.memo(EditorialImage);\r\n","import React, { FC } from 'react';\r\n\r\nimport EditorialImage from './components/editorialImage';\r\nimport { default as ProductImage } from './components/contentHubImage';\r\nimport { TImageComponentProps } from './types/picture.types';\r\n\r\nconst Picture: FC = ({ productImageProps, editorialImageProps }) => {\r\n if (editorialImageProps) {\r\n return ;\r\n }\r\n\r\n if (productImageProps) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default Picture;\r\n","import React, { FC } from 'react';\r\nimport CustomExternalAnchor from '../../../../@shared/customExternalAnchor';\r\nimport { CustomText } from '../../../../@shared/customText';\r\nimport Picture from '../../../../@shared/picture';\r\nimport { TSingleCard } from '../../../types/blogNews.types';\r\n\r\nconst Card: FC = (props): JSX.Element => {\r\n const { isEE, image, mobileImage, title, link, isGradientDisabled, textColor, cardHeadingTag } = props;\r\n return (\r\n <>\r\n \r\n
\r\n \r\n {isEE ? (\r\n \r\n ) : (\r\n link?.value?.text && {link?.value?.text}\r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Card;\r\n","import React, { memo } from 'react';\r\nimport { CardModel } from '../../../../lib/shared-models/card.model';\r\nimport { CardProps } from '../../../../types/types';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport Card from './components/card';\r\n\r\nconst StoriesCard = (props: CardProps & { onClick; cardHeadingTag; isGradientDisabled; textColor }): JSX.Element => {\r\n const isEE = props.sitecoreContext?.pageEditing;\r\n const model = new CardModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n\r\n const disable = model.link?.value?.href ? '' : 'stories-card--disable';\r\n return (\r\n <>\r\n {isEE ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default memo(StoriesCard);\r\n","function isEmptyResponse(props) {\r\n const hasError = !!(props?.fields?.error || props?.fields?.apiData?.error);\r\n if (hasError) {\r\n return false;\r\n }\r\n const data = props?.fields?.apiData;\r\n // if the component has hidden = true we do not have to show the component\r\n if (!data || Object.keys(data).length === 0) return false;\r\n if (!(data && data.constructor === Object && Object.keys(data).length === 0)) return !(data && 'hidden' in data && data.hidden);\r\n return false;\r\n}\r\n\r\nexport { isEmptyResponse };\r\n","import { useCallback, useEffect } from 'react';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { isEmptyResponse } from '../utils/checkEmptyResponse';\r\nimport { formatComponentNumber, googleDataLayerPush } from '../utils/analytics';\r\nimport useSitecoreContext from './useSitecoreContext';\r\n\r\nconst exceptComponentNames = [\r\n 'BreadcrumbBar',\r\n 'GenericPopUp',\r\n 'NavigationBarAnchorComponent',\r\n 'ProductBreadcrumbBar',\r\n 'ProductSeoTags',\r\n 'ProductSeriesNavigationBar',\r\n 'ProductSeriesDetailNavigationOverview',\r\n 'QuickLinks',\r\n 'ProductModelNavigation',\r\n];\r\n\r\nconst useAnalyticsActionOnScroll = (\r\n rendering: ComponentRendering,\r\n refElement: React.MutableRefObject,\r\n title: string,\r\n template: string\r\n): void => {\r\n let isActionExecuted = false;\r\n const {sitecoreContext} = useSitecoreContext();\r\n\r\n const isEditorialEmptyResponse = (component: any, excludeComponentNames: string[]) => {\r\n const fields = component?.fields;\r\n if (Object.keys(fields).length > 0 && !excludeComponentNames.includes(component?.componentName)) {\r\n return (\r\n component?.fields?.items?.length > 0 ||\r\n component?.fields?.apiData?.items?.length > 0 ||\r\n component?.fields?.innerComponents?.length > 0\r\n );\r\n }\r\n return Object.keys(fields).length > 0;\r\n };\r\n\r\n const isProductEmptyResponse = (component: any, excludeComponentNames: string[]): boolean => {\r\n if (isEmptyResponse(component) && !excludeComponentNames.includes(component?.componentName)) {\r\n const apiDataLength =\r\n component?.fields?.apiData?.items?.length > 0 ||\r\n component?.fields?.apiData?.innerComponents?.length > 0 ||\r\n component?.fields?.apiData?.models?.length > 0 ||\r\n component?.fields?.apiData?.brochures?.length > 0 ||\r\n component?.fields?.apiData?.lines?.items?.length > 0 ||\r\n component?.fields?.apiData?.series?.items?.length > 0;\r\n const isChildrenPopulated = component?.componentName?.toLowerCase()?.includes('compatible')\r\n ? component?.fields?.apiData?.items?.some((e) => e?.items?.length > 0)\r\n : true;\r\n return apiDataLength && isChildrenPopulated;\r\n }\r\n return isEmptyResponse(component);\r\n };\r\n\r\n const isEmptyResponseValue = (component: any): boolean => {\r\n //components which doesn't have items array\r\n const excludeComponentNames = [\r\n 'EventsListing', // has items array but will be visible even if items are empty\r\n 'EventDetail',\r\n 'LiveEventDetail',\r\n 'NewsListing', // has items array but will be visible even if items are empty\r\n 'NewsDetail',\r\n 'ProductHeroBanner',\r\n 'ProductHeroBannerSeriesDetail',\r\n 'ProductModelDetailHeroSection',\r\n 'ProductSeriesDetailTestimonial',\r\n 'ProductSeriesOverview',\r\n 'SmallHero',\r\n 'SplitModule',\r\n 'TextModule',\r\n 'Footer',\r\n ];\r\n if (component?.componentName.startsWith('Product')) {\r\n return isProductEmptyResponse(component, excludeComponentNames);\r\n } else {\r\n return isEditorialEmptyResponse(component, excludeComponentNames);\r\n }\r\n };\r\n\r\n const isComponentsValid = (component: any) => !!component.uid && isEmptyResponseValue(component);\r\n const isComponentInTheList = (component: any, componentList: Array) => componentList.indexOf(component.componentName) >= 0;\r\n\r\n const getComponentsFromGenericPopUp = (component: any) => {\r\n if (isComponentInTheList(component, ['GenericPopUp'])) {\r\n return component.placeholders?.['jss-popup'];\r\n }\r\n\r\n if (component?.placeholders?.['jss-generic-popup']?.length <= 0) {\r\n return [];\r\n }\r\n\r\n return (\r\n component?.placeholders?.['jss-generic-popup']\r\n ?.map((genericPopUpComponent) => genericPopUpComponent.placeholders?.['jss-popup'])\r\n .filter((newcomponent) => newcomponent)\r\n .flat(1) ?? []\r\n );\r\n };\r\n\r\n const isInOverlay = (newSitecoreContext) => {\r\n if (!rendering) {\r\n return true;\r\n }\r\n\r\n const componentList = newSitecoreContext?.route.placeholders['jss-main'];\r\n\r\n const genericPopUpsComponentIds = componentList\r\n .map((component) => getComponentsFromGenericPopUp(component))\r\n .flat(1)\r\n .map((component) => component.uid);\r\n\r\n const genericPopUpsComponentsIndex = genericPopUpsComponentIds.indexOf(rendering.uid);\r\n\r\n return genericPopUpsComponentsIndex >= 0;\r\n };\r\n\r\n const getComponentNumber = (sitecoreContext, inOverlayValue) => {\r\n if (inOverlayValue) {\r\n return '00-overlay';\r\n }\r\n const jssMain = sitecoreContext?.route?.placeholders['jss-main'];\r\n const jssFooter = sitecoreContext?.route.placeholders['jss-footer'];\r\n const componentList = [...jssMain, ...jssFooter];\r\n\r\n const validComponentIds = componentList\r\n .filter((component) => isComponentsValid(component))\r\n .filter((component) => !isComponentInTheList(component, exceptComponentNames))\r\n .map((component) => component.uid);\r\n\r\n const componentIndex = validComponentIds.indexOf(rendering.uid);\r\n\r\n return formatComponentNumber(componentIndex + 1);\r\n };\r\n\r\n const inOverlay = isInOverlay(sitecoreContext);\r\n const elementNumber = getComponentNumber(sitecoreContext, inOverlay);\r\n\r\n const callAnalyticsAction = () => {\r\n if (isActionExecuted) {\r\n return;\r\n }\r\n\r\n isActionExecuted = true;\r\n\r\n const dataLayerTemplate = inOverlay ? `Overlay ${template}` : template;\r\n\r\n const dataLayerData = {\r\n event: 'visible',\r\n _clear: true,\r\n 'data-tag-meta': {\r\n type: 'component',\r\n title: title || dataLayerTemplate,\r\n template: dataLayerTemplate,\r\n componentNo: elementNumber,\r\n },\r\n };\r\n\r\n googleDataLayerPush(dataLayerData);\r\n };\r\n\r\n const handleIfIsIntersectedElement = (element) => {\r\n if (!element) return;\r\n\r\n if (element.isIntersecting) {\r\n callAnalyticsAction();\r\n }\r\n };\r\n\r\n const handleIntersector = (entries) => {\r\n entries.forEach((element) => handleIfIsIntersectedElement(element));\r\n };\r\n\r\n const analyticsActionCallback = useCallback(handleIntersector, []);\r\n\r\n useEffect(() => {\r\n if (!refElement?.current) return;\r\n const observer = new IntersectionObserver(analyticsActionCallback, { threshold: 0.01 });\r\n observer.observe(refElement?.current);\r\n\r\n return (): void => observer.disconnect();\r\n }, [analyticsActionCallback, refElement]);\r\n};\r\n\r\nexport default useAnalyticsActionOnScroll;\r\n","import React, { useRef } from 'react';\r\nimport useAnalyticsActionOnScroll from '../../../hooks/useAnalyticsActionOnScroll';\r\n\r\ntype TAnalyticsVisibleEvent = {\r\n children: any;\r\n rendering: any;\r\n title: any;\r\n template: any;\r\n className?: string;\r\n styles?: any;\r\n};\r\n\r\nconst AnalyticsVisibleEvent = (props: TAnalyticsVisibleEvent) => {\r\n const { children, rendering, title, template, className, styles } = props;\r\n const elementRef = useRef(null);\r\n\r\n useAnalyticsActionOnScroll(rendering, elementRef, title, template);\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport default AnalyticsVisibleEvent;\r\n","import React, { FC } from 'react';\r\nimport useEEActive from '../../../hooks/useEEActive';\r\n\r\nconst UnreleasedComponent: FC = () => {\r\n const isEEActive = useEEActive();\r\n\r\n if (isEEActive) {\r\n return (\r\n
\r\n

This component was unreleased so will be not visible in the page until will be enabled by admin/developer team.

\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default UnreleasedComponent;\r\n","import React, { useCallback, useEffect, useRef, useState, FC } from 'react';\r\nimport Slider from 'react-slick';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { documentService } from '../../utils/window.utils';\r\nimport { BlogNewsModel } from './models/blognews.model';\r\nimport { TBlogNewsProps } from './types/blogNews.types';\r\nimport Heading from '../@shared/heading';\r\nimport CarouselArrow from '../@shared/carouselArrow';\r\nimport StoriesCard from './components/storiesCard';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport { googleClickCtaEvent } from '../../utils/analytics';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\ntype TArrowDomObj = {\r\n leftArrow: HTMLButtonElement | null;\r\n rightArrow: HTMLButtonElement | null;\r\n};\r\n\r\nconst BlogNews: FC = (props) => {\r\n const model = new BlogNewsModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`, true);\r\n const [arrowDomObj, setArrowDomObj] = useState({ leftArrow: null, rightArrow: null });\r\n const cardWidthRef = useRef(null);\r\n\r\n const findSlidesToShow = useCallback((): number => {\r\n const DESKTOP_CARD_WIDTH = 200;\r\n const DESKTOP_CARD_MARGIN = 16;\r\n const MOBILE_CARD_WIDTH = 163;\r\n const MOBILE_CARD_MARGIN = 8;\r\n const cardContainerWidth = cardWidthRef?.current?.clientWidth || 1680;\r\n const cardWidth = isDesktop ? DESKTOP_CARD_WIDTH : MOBILE_CARD_WIDTH;\r\n const cardMargin = isDesktop ? DESKTOP_CARD_MARGIN : MOBILE_CARD_MARGIN;\r\n const slidesCanBeShown = Math.floor(cardContainerWidth / (cardWidth + cardMargin));\r\n\r\n return model.cards.length > slidesCanBeShown ? slidesCanBeShown || 7 : model.cards.length;\r\n }, [isDesktop, model.cards.length]);\r\n\r\n const storiesMapper = useCallback(\r\n (blogModel: BlogNewsModel) => {\r\n return blogModel.cards.map((item) => (\r\n
\r\n \r\n googleClickCtaEvent(\r\n 'Link',\r\n item.fields?.link?.value?.text ?? item.fields?.link?.value?.title,\r\n item.fields?.title?.value || ''\r\n )\r\n }\r\n cardHeadingTag={model?.cardHeadingTitleTag}\r\n isGradientDisabled={model?.isGradientDisabled}\r\n textColor={model?.textColor}\r\n />\r\n
\r\n ));\r\n },\r\n [model, props.sitecoreContext] //eslint-disable-line\r\n );\r\n\r\n const [slidesToShow, setSlidesToShow] = useState(4.5);\r\n useEffect(() => setSlidesToShow(findSlidesToShow()), [cardWidthRef, findSlidesToShow]);\r\n\r\n const settings = {\r\n slidesToShow: slidesToShow,\r\n arrows: true,\r\n infinite: false,\r\n variableWidth: true,\r\n slidesToScroll: 1,\r\n nextArrow: ,\r\n prevArrow: ,\r\n afterChange: (index): void => {\r\n if (arrowDomObj.leftArrow?.style) {\r\n arrowDomObj.leftArrow.style.visibility = index === 0 ? 'hidden' : 'visible';\r\n }\r\n if (arrowDomObj.rightArrow?.style) {\r\n arrowDomObj.rightArrow.style.visibility = index === model.cards.length - slidesToShow ? 'hidden' : 'visible';\r\n }\r\n },\r\n };\r\n\r\n useEffect(() => {\r\n const leftArrow: HTMLButtonElement = documentService().querySelector('.blog-news .carousel-arrow--left');\r\n const rightArrow: HTMLButtonElement = documentService().querySelector('.blog-news .carousel-arrow--right');\r\n setArrowDomObj({ leftArrow, rightArrow });\r\n\r\n // hiding left arrow on load\r\n if (leftArrow?.style) {\r\n leftArrow.style.visibility = 'hidden';\r\n }\r\n }, []);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {storiesMapper(model)}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(BlogNews);\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport Icon from '../../icon';\r\nimport RoutableNotEditableLink from '../../routableNotEditableLink';\r\nimport { TNavigationBarItemProps } from '../types/navigationBarItem.types';\r\n\r\nconst NavigationItems: FC = (props) => {\r\n const { isLast, item, isNotClickable, onClick } = props;\r\n\r\n const chevronRightIcon = ;\r\n\r\n if (isLast) {\r\n return <>{item.text};\r\n } else if (isNotClickable) {\r\n return (\r\n <>\r\n {item.text}\r\n {chevronRightIcon}\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n \r\n {item.text}\r\n \r\n {chevronRightIcon}\r\n \r\n );\r\n }\r\n};\r\n\r\nexport default NavigationItems;\r\n","import React, { FC } from 'react';\r\nimport NavigationItems from './components/navigationItem';\r\nimport { TNavigationBarItemProps } from './types/navigationBarItem.types';\r\n\r\nconst NavigationBarItem: FC = ({ item, isLast = false, extraClassName, onClick }) => {\r\n const isNotClickable = item?.url?.trim().length === 0;\r\n\r\n return (\r\n <>\r\n {item.text && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NavigationBarItem;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BreadcrumbList } from 'schema-dts';\r\nimport { helmetJsonLdProp } from 'react-schemaorg';\r\nimport { TNavigationBarBreadcrumbItem } from '../../navigationBarItem/types/navigationBarItem.types';\r\nimport { Params, TNavigationBarFields, TNavigationBarProps, } from '../types/breadcrumbBar.types';\r\nimport { windowService } from '../../../../utils/window.utils';\r\nimport { TJsonLDObj } from '../../../../types/types';\r\n\r\nexport class NavigationBarModel {\r\n private readonly fields?: TNavigationBarFields | null;\r\n private readonly params?: Params;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TNavigationBarProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params || null;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get breadcrumbItems(): Array {\r\n return this.fields?.itemData?.fields?.breadcrumbs || [];\r\n }\r\n\r\n get productsPageLabel(): string | undefined {\r\n return this.fields?.itemData?.fields?.productsPageTitle;\r\n }\r\n\r\n get productsPageUrl(): string | undefined {\r\n return this.fields?.itemData?.fields?.productsPageLink;\r\n }\r\n\r\n get backButtonLabel(): string | undefined {\r\n return this.fields?.itemData?.fields?.backButtonText;\r\n }\r\n\r\n get backButtonUrl(): string | undefined {\r\n return this.fields?.itemData?.fields?.backButtonUrl;\r\n }\r\n\r\n get isPlm(): boolean {\r\n return this.params?.isPLM === '1';\r\n }\r\n\r\n get breadcrumbJSONLD(): TJsonLDObj {\r\n const origin = windowService()?.location?.origin;\r\n return helmetJsonLdProp({\r\n '@context': 'https://schema.org',\r\n '@type': 'BreadcrumbList',\r\n itemListElement: this.breadcrumbItems.map((item, index) => ({\r\n '@type': 'ListItem',\r\n position: index + 1,\r\n name: item.text,\r\n item: `${origin}${item.url}`,\r\n })),\r\n });\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import { documentService } from './window.utils';\r\nimport useSitecoreContext from '../hooks/useSitecoreContext';\r\n\r\nfunction parseHTML(html) {\r\n const divElement = documentService()?.createElement?.('div');\r\n if (!divElement) return;\r\n divElement.innerHTML = html;\r\n return divElement;\r\n}\r\n\r\nfunction serializeHTML(element) {\r\n const container = documentService()?.createElement?.('div');\r\n if (!container) return;\r\n container.appendChild(element.cloneNode(true));\r\n return container?.innerHTML;\r\n}\r\n\r\nfunction useAppendRootToRichTextInternalLinks(richText?: string) {\r\n const {sitecoreContext} = useSitecoreContext();\r\n const hostAppRoot: string | undefined = sitecoreContext?.hostAppRoot;\r\n if (!richText || !hostAppRoot) return richText;\r\n\r\n const baseUrl: string = hostAppRoot.endsWith('/') ? hostAppRoot.slice(0, -1) : hostAppRoot;\r\n const parsedHTML = parseHTML(richText);\r\n const anchorTagArr = parsedHTML?.getElementsByTagName?.('a') as HTMLCollectionOf;\r\n if (!anchorTagArr) return richText;\r\n\r\n const anchorTags = Array.from(anchorTagArr);\r\n\r\n for (const anchorTag of anchorTags) {\r\n const href = anchorTag?.getAttribute?.('href');\r\n if (href?.startsWith('/')) {\r\n anchorTag?.setAttribute?.('href', `${baseUrl}${href}`);\r\n }\r\n }\r\n\r\n const serializedHTML = serializeHTML(parsedHTML);\r\n return serializedHTML;\r\n}\r\n\r\nexport { useAppendRootToRichTextInternalLinks as appendRootToRichTextInternalLinks };\r\n","import useSitecoreContext from '../hooks/useSitecoreContext';\r\n\r\nfunction useAppendRootToInternalLink(link?: string) {\r\n const {sitecoreContext } = useSitecoreContext();\r\n const hostAppRoot: string | undefined = (sitecoreContext)?.hostAppRoot;\r\n if (!link || !hostAppRoot || !link.startsWith('/')) return link;\r\n\r\n const baseUrl: string = hostAppRoot.endsWith('/') ? hostAppRoot.slice(0, -1) : hostAppRoot;\r\n return `${baseUrl}${link}`;\r\n}\r\n\r\nexport { useAppendRootToInternalLink as appendRootToInternalLink };\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n TContentHubHeroBannerSeriesDetailFields,\r\n TContentHubHeroBannerSeriesDetailModelSummarySpecs,\r\n TContentHubHeroBannerSeriesDetailProps,\r\n} from '../types/productHeroBannerSeriesDetail.types';\r\nimport { TContentHubButton, TRendition } from '../../../types/types';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../utils/appendRootToInternalLink.utils';\r\n\r\nexport class ContentHubHeroBannerSeriesDetailModel {\r\n private readonly fields?: TContentHubHeroBannerSeriesDetailFields;\r\n private readonly params?: ComponentParamsGeneral;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TContentHubHeroBannerSeriesDetailProps) {\r\n this.fields = props?.fields;\r\n this.params = props?.params;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get textColor(): string {\r\n return this.params?.textColor;\r\n }\r\n\r\n get quickSpecsColor(): string {\r\n return this.params?.quickSpecsColor;\r\n }\r\n\r\n get title(): string | undefined {\r\n return this.fields?.apiData?.title;\r\n }\r\n\r\n get description(): string | undefined {\r\n return appendRootToRichTextInternalLinks(this.fields?.apiData?.description);\r\n }\r\n\r\n get eyebrow(): string | undefined {\r\n return this.fields?.apiData?.eyebrow;\r\n }\r\n\r\n get desktopImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_desktop_size1900;\r\n }\r\n\r\n get desktopSDImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_desktop_size1200;\r\n }\r\n\r\n get tabletLandscapeImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_tablet_size1000;\r\n }\r\n\r\n get tabletImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_tablet_size1200;\r\n }\r\n\r\n get mobileImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_mobile_size1100;\r\n }\r\n\r\n get imageAlt(): string {\r\n return this.fields?.apiData?.assets?.[0]?.alt || '';\r\n }\r\n\r\n get primaryLink(): TContentHubButton | undefined {\r\n return this.fields?.apiData?.button1;\r\n }\r\n\r\n get primaryLinkUrl(): string | undefined {\r\n return appendRootToInternalLink(this.primaryLink?.url);\r\n }\r\n\r\n get secondaryLink(): TContentHubButton | undefined {\r\n return this.fields?.apiData?.button2;\r\n }\r\n\r\n get secondaryLinkUrl(): string | undefined {\r\n return appendRootToInternalLink(this.secondaryLink?.url);\r\n }\r\n\r\n get summarySpecs(): Array {\r\n return this.fields?.apiData?.summarySpecs || [];\r\n }\r\n\r\n get labelCost(): string | undefined {\r\n return this.fields?.apiData?.optionalLabel1;\r\n }\r\n\r\n get price(): string | undefined {\r\n return this.fields?.apiData?.msrp;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get isGradientDisabled(): boolean | undefined {\r\n return this.params?.disableGradient === '1';\r\n }\r\n\r\n get enableBuildPriceCTA(): boolean | undefined {\r\n return this.params?.enableBuildPriceCTA === '1';\r\n }\r\n}\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TContentHubHeroBannerFields, TContentHubHeroBannerProps } from '../types/productHeroBanner.types';\r\nimport { TContentHubButton, TRendition } from '../../../types/types';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../utils/appendRootToInternalLink.utils';\r\n\r\nexport class ProductHeroBannerModel {\r\n private readonly fields?: TContentHubHeroBannerFields;\r\n private readonly params?: ComponentParamsGeneral;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TContentHubHeroBannerProps) {\r\n this.fields = props?.fields;\r\n this.params = props?.params;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get textColor(): string {\r\n return this.params?.textColor;\r\n }\r\n\r\n get title(): string | undefined {\r\n return this.fields?.apiData?.title;\r\n }\r\n\r\n get description(): string | undefined {\r\n return appendRootToRichTextInternalLinks(this.fields?.apiData?.description);\r\n }\r\n\r\n get eyebrow(): string | undefined {\r\n return this.fields?.apiData?.eyebrow;\r\n }\r\n\r\n get desktopImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_desktop_size1900;\r\n }\r\n\r\n get desktopSDImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_desktop_size1300;\r\n }\r\n\r\n get tabletImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_tablet_size1300;\r\n }\r\n\r\n get tabletLandscapeImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_tablet_size1000;\r\n }\r\n\r\n get mobileImage(): TRendition | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.rendition_mobile_size1100;\r\n }\r\n\r\n get primaryLink(): TContentHubButton | undefined {\r\n return this.fields?.apiData?.button1;\r\n }\r\n\r\n get primaryLinkUrl(): string | undefined {\r\n return appendRootToInternalLink(this.primaryLink?.url);\r\n }\r\n\r\n get secondaryLink(): TContentHubButton | undefined {\r\n return this.fields?.apiData?.button2;\r\n }\r\n\r\n get secondaryLinkUrl(): string | undefined {\r\n return appendRootToInternalLink(this.secondaryLink?.url);\r\n }\r\n\r\n get labelCost(): string | undefined {\r\n return this.fields?.apiData?.optionalLabel1;\r\n }\r\n\r\n get price(): string | undefined {\r\n return this.fields?.apiData?.msrp;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get isGradientDisabled(): boolean | undefined {\r\n return this.params?.disableGradient === '1';\r\n }\r\n\r\n get enableBuildPriceCTA(): boolean | undefined {\r\n return this.params?.enableBuildPriceCTA === '1';\r\n }\r\n}\r\n","export const isEmptyObject = (obj: object | undefined): boolean => {\r\n return Object.keys(obj || {}).length === 0;\r\n};\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n TComponentParamsGeneral,\r\n THeadingTag,\r\n TLinkField,\r\n TRendition,\r\n TSitecoreContext,\r\n TStringField,\r\n} from '../../../types/types';\r\nimport { isEmptyObject } from '../../../utils/checkEmptyObject';\r\nimport { TSocialMediaBarProps } from '../../@shared/socialMediaBar/types/socialMediaBar.types';\r\nimport {\r\n ProductSpecialOffersDetailHeroBannerFields,\r\n ProductSpecialOffersDetailHeroBannerProps,\r\n} from '../types/ProductSpecialOffersDetailHeroBanner.types';\r\nimport { TProductImageProps } from '../../@shared/picture/types/picture.types';\r\n\r\nexport class ProductSpecialOffersDetailHeroBannerModel {\r\n private readonly fields?: ProductSpecialOffersDetailHeroBannerFields;\r\n private readonly params?: TComponentParamsGeneral;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly _id?: string;\r\n private readonly context?: TSitecoreContext;\r\n\r\n constructor(props: ProductSpecialOffersDetailHeroBannerProps, sitecoreContext: TSitecoreContext) {\r\n this.fields = props?.fields;\r\n this.params = props?.params;\r\n this.rendering = props?.rendering || undefined;\r\n this._id = props.id;\r\n this.context = sitecoreContext;\r\n }\r\n\r\n get id(): string {\r\n return this._id ?? (this.dataSource as string);\r\n }\r\n\r\n get description(): string | undefined {\r\n return this.fields?.apiData?.shortDescription;\r\n }\r\n\r\n get eyebrow(): string | undefined {\r\n return this.fields?.apiData?.eyebrow;\r\n }\r\n\r\n get desktopImage(): TRendition | undefined {\r\n const asset = this.fields?.apiData?.assets?.[0];\r\n return asset?.rendition_desktop_size1900;\r\n }\r\n\r\n get mobileImage(): TRendition | undefined {\r\n const asset = this.fields?.apiData?.assets?.[0];\r\n return asset?.rendition_mobile_size1000;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get primaryLink(): TLinkField | undefined {\r\n const button = this.fields?.apiData?.buttonHero1;\r\n if (!button?.url || !button?.label) return undefined;\r\n return {\r\n value: {\r\n href: button.url,\r\n title: button.label,\r\n target: button.target,\r\n },\r\n };\r\n }\r\n\r\n get secondaryLink(): TLinkField | undefined {\r\n const button = this.fields?.apiData?.buttonHero2;\r\n if (!button?.url || !button?.label) return undefined;\r\n return {\r\n value: {\r\n href: button.url,\r\n title: button.label,\r\n target: button.target,\r\n },\r\n };\r\n }\r\n\r\n get title(): string | undefined {\r\n return this.fields?.apiData?.title;\r\n }\r\n\r\n get textColor(): TStringField | undefined {\r\n return this.fields?.['textColor']?.fields?.Key;\r\n }\r\n\r\n get dataSource(): string | undefined {\r\n return this.rendering?.dataSource;\r\n }\r\n\r\n get isGradientDisabled(): boolean | undefined {\r\n return this.params?.disableGradient === '1';\r\n }\r\n\r\n get socialMediaBarProps(): TSocialMediaBarProps | undefined {\r\n return isEmptyObject(this.fields?.socialMediaBar) ? undefined : this.fields?.socialMediaBar;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h3';\r\n }\r\n\r\n get defaultDesktopImage(): string | undefined {\r\n return this.context?.defaultBackgroundImageParameters?.desktopImageData?.specialOfferDetailHeroBannerCardImage;\r\n }\r\n\r\n get defaultMobileImage(): string | undefined {\r\n return this.context?.defaultBackgroundImageParameters?.mobileImageData?.specialOfferDetailHeroBannerCardImage;\r\n }\r\n\r\n get productImageProps(): TProductImageProps {\r\n return {\r\n mobileRendition: this.mobileImage,\r\n desktopRendition: this.desktopImage,\r\n };\r\n }\r\n}\r\n","import { ImageField, LinkField, StringField, THeadingTag } from '../../../types/types';\r\nimport { HeroBannerFields, HeroBannerProps } from '../types/heroBanner.types';\r\n\r\nexport class HeroBannerModel {\r\n private readonly fields?: HeroBannerFields;\r\n private readonly params?: ComponentParamsGeneral;\r\n\r\n constructor(props: HeroBannerProps) {\r\n this.fields = props?.fields;\r\n this.params = props?.params;\r\n }\r\n\r\n get description(): StringField | undefined {\r\n return this.fields?.description;\r\n }\r\n\r\n get eyebrow(): StringField | undefined {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get image(): ImageField | undefined {\r\n return this.fields?.image;\r\n }\r\n\r\n get mobileImage(): ImageField | undefined {\r\n return this.fields?.mobileImage;\r\n }\r\n\r\n get primaryLink(): LinkField | undefined {\r\n return this.fields?.link1;\r\n }\r\n\r\n get secondaryLink(): LinkField | undefined {\r\n return this.fields?.link2;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get textColor(): 'Black' | 'White' {\r\n return this.fields?.textColor?.fields?.Key?.value || 'White';\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get isGradientDisabled(): boolean | undefined {\r\n return this.params?.disableGradient === '1';\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h1';\r\n }\r\n}\r\n","import { useContext } from 'react';\r\nimport { ComponentRendering, SitecoreContextReactContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { ContentHubHeroBannerSeriesDetailModel } from '../components/productHeroBannerSeriesDetail/models/productHeroBannerSeriesDetail.model';\r\nimport { TContentHubHeroBannerSeriesDetailProps } from '../components/productHeroBannerSeriesDetail/types/productHeroBannerSeriesDetail.types';\r\nimport { ProductHeroBannerModel } from '../components/productHeroBanner/models/productHeroBanner.model';\r\nimport { TContentHubHeroBannerProps } from '../components/productHeroBanner/types/productHeroBanner.types';\r\nimport { ProductSpecialOffersDetailHeroBannerModel } from '../components/ProductSpecialOffersDetailHeroBanner/models/ProductSpecialOffersDetailHeroBanner.model'\r\nimport { ProductSpecialOffersDetailHeroBannerProps } from '../components/ProductSpecialOffersDetailHeroBanner/types/ProductSpecialOffersDetailHeroBanner.types'\r\nimport { HeroBannerModel } from '../components/smallHero/models/heroBanner.model';\r\nimport useSitecoreContext from './useSitecoreContext';\r\n\r\nconst useHeroBanner = (): { isHeroBannerPresent: boolean; textColor: string } => {\r\n const sitecoreContextFactory = useContext(SitecoreContextReactContext);\r\n const excludedComponentNames = ['ProductSeoTags', 'ProductBreadcrumbBar', 'NavigationBarAnchorComponent', 'BreadcrumbBar'];\r\n const {sitecoreContext} = useSitecoreContext();\r\n const componentList = (sitecoreContext?.route?.placeholders['jss-main'] || []) as ComponentRendering[];\r\n const filteredComponentsList = componentList.filter((component) => !excludedComponentNames.includes(component.componentName));\r\n const heroBannerCompIndex = filteredComponentsList?.findIndex(\r\n (item) =>\r\n item.componentName === 'ProductHeroBannerSeriesDetail' ||\r\n item.componentName === 'ProductHeroBanner' ||\r\n item.componentName === 'SmallHero' ||\r\n item.componentName === 'HeroBanner'||\r\n item.componentName === 'FairHero' ||\r\n item.componentName === 'ProductSpecialOffersDetailHeroBanner'\r\n );\r\n const heroBannerData = filteredComponentsList?.[heroBannerCompIndex] as ComponentRendering;\r\n\r\n if (heroBannerData?.componentName === 'ProductHeroBannerSeriesDetail') {\r\n const sdHeroBannerModel = new ContentHubHeroBannerSeriesDetailModel(\r\n filteredComponentsList[heroBannerCompIndex] as any\r\n // TContentHubHeroBannerSeriesDetailProps -- original type to be referred later\r\n );\r\n\r\n const isHeroBannerPresent = !!(\r\n sdHeroBannerModel?.desktopImage?.url ||\r\n sdHeroBannerModel?.desktopSDImage?.url ||\r\n sdHeroBannerModel?.tabletImage?.url ||\r\n sdHeroBannerModel?.tabletLandscapeImage?.url ||\r\n sdHeroBannerModel?.mobileImage?.url\r\n );\r\n\r\n return {\r\n isHeroBannerPresent,\r\n textColor: sdHeroBannerModel?.textColor,\r\n };\r\n }\r\n\r\n if (heroBannerData?.componentName === 'ProductHeroBanner') {\r\n const pHeroBannerModel = new ProductHeroBannerModel(filteredComponentsList[heroBannerCompIndex] as TContentHubHeroBannerProps);\r\n\r\n const isHeroBannerPresent = !!(\r\n pHeroBannerModel?.desktopImage?.url ||\r\n pHeroBannerModel?.desktopSDImage?.url ||\r\n pHeroBannerModel?.tabletImage?.url ||\r\n pHeroBannerModel?.tabletLandscapeImage?.url ||\r\n pHeroBannerModel?.mobileImage?.url\r\n );\r\n\r\n return { isHeroBannerPresent, textColor: pHeroBannerModel.textColor };\r\n }\r\n\r\n if (heroBannerData?.componentName === 'SmallHero') {\r\n const smallHeroBannerModel = new HeroBannerModel(filteredComponentsList[heroBannerCompIndex] as any);\r\n\r\n const isHeroBannerPresent =\r\n !!(smallHeroBannerModel?.image?.value?.src || smallHeroBannerModel?.mobileImage?.value?.src) && heroBannerCompIndex === 0;\r\n\r\n return { isHeroBannerPresent, textColor: smallHeroBannerModel.textColor };\r\n }\r\n\r\n if (heroBannerData?.componentName === 'HeroBanner') {\r\n return { isHeroBannerPresent: heroBannerCompIndex === 0, textColor: '' };\r\n }\r\n\r\n if (heroBannerData?.componentName === 'ProductSpecialOffersDetailHeroBanner') {\r\n const soHeroBannerModel = new ProductSpecialOffersDetailHeroBannerModel(\r\n filteredComponentsList[heroBannerCompIndex] as ProductSpecialOffersDetailHeroBannerProps,\r\n sitecoreContext\r\n );\r\n\r\n const isHeroBannerPresent = !!(soHeroBannerModel?.desktopImage?.url || soHeroBannerModel?.mobileImage?.url);\r\n\r\n return { isHeroBannerPresent, textColor: soHeroBannerModel?.textColor as string };\r\n }\r\n\r\n return { isHeroBannerPresent: heroBannerCompIndex > -1, textColor: '' };\r\n};\r\n\r\nexport default useHeroBanner;\r\n","import React, { FC } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport Helmet from 'react-helmet';\r\nimport Icon from '../icon';\r\nimport NavigationBarItem from '../navigationBarItem';\r\nimport { NavigationBarModel } from './models/breadcrumbBar.model';\r\nimport { TNavigationBarProps } from './types/breadcrumbBar.types';\r\nimport RoutableNotEditableLink from '../routableNotEditableLink';\r\nimport UnreleasedComponent from '../unreleasedComponent';\r\nimport DictionaryTerm from '../dictionaryTerm';\r\nimport { TNavigationBarBreadcrumbItem } from '../navigationBarItem/types/navigationBarItem.types';\r\nimport useHeroBanner from '../../../hooks/useHeroBanner';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\n\r\nconst SharedBreadcrumbBar: FC = (props: TNavigationBarProps & WithTranslation) => {\r\n const model = new NavigationBarModel(props);\r\n const breadcrumbItems = model?.breadcrumbItems || [];\r\n const { isHeroBannerPresent, textColor } = useHeroBanner();\r\n\r\n const isEditOrPreview = props?.sitecoreContext?.pageState === 'edit' || props?.sitecoreContext?.pageState === 'preview';\r\n const cssClass =\r\n (isHeroBannerPresent ? 'breadcrumb-bar breadcrumb-bar__hero-banner' : 'breadcrumb-bar breadcrumb-bar__no-hero-banner') +\r\n (isEditOrPreview ? ' EE-active' : '');\r\n\r\n const getItemWithModifiedUrl = (item: TNavigationBarBreadcrumbItem): TNavigationBarBreadcrumbItem => {\r\n if (props?.appendQueryParams) {\r\n return {\r\n ...item,\r\n url: props.appendQueryParams(item.url),\r\n };\r\n }\r\n\r\n return item;\r\n };\r\n\r\n const getModifiedBackButtonUrl = (url: string) => {\r\n if (props?.appendQueryParams) {\r\n return props.appendQueryParams(url);\r\n }\r\n return url;\r\n };\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withTranslation()(withSitecoreContext()(SharedBreadcrumbBar));\r\n","import React, { FC } from 'react';\r\nimport { TNavigationBarProps } from '../@shared/sharedBreadcrumbBar/types/breadcrumbBar.types';\r\nimport SharedBreadcrumbBar from '../@shared/sharedBreadcrumbBar';\r\n\r\nconst BreadcrumbBar: FC = (props: TNavigationBarProps) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default BreadcrumbBar;\r\n","import { TExternalComponentFields, TExternalComponentProps } from '../types/externalComponent.types';\r\n\r\nexport class ExternalComponentModel {\r\n private readonly fields: null | TExternalComponentFields;\r\n\r\n constructor(props: TExternalComponentProps) {\r\n this.fields = props?.fields || null;\r\n }\r\n\r\n get url(): string {\r\n return this.fields?.link?.value?.url as string;\r\n }\r\n\r\n get height(): number {\r\n const _height = Number.parseInt(this.fields?.height?.value || '');\r\n\r\n return Number.isNaN(_height) ? 1000 : _height;\r\n }\r\n\r\n get visibilityDelay(): number {\r\n const _visibilityDelay = Number.parseInt(this.fields?.visibilityDelay?.value || '');\r\n\r\n return Number.isNaN(_visibilityDelay) ? 0 : _visibilityDelay;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { ExternalComponentModel } from './models/externalComponent.model';\r\nimport LazySection from '../lazySection';\r\nimport { TExternalComponentProps } from './types/externalComponent.types';\r\nimport { windowService } from '../../../utils/window.utils.js';\r\nimport UnreleasedComponent from '../unreleasedComponent';\r\nimport { googleFormSubmitEvent } from '../../../utils/analytics';\r\n\r\nconst SharedExternalComponent = (props: TExternalComponentProps) => {\r\n const model = new ExternalComponentModel(props);\r\n const { url, height, visibilityDelay } = model;\r\n const [iFrameHeight, setiFrameHeight] = useState(height.toString());\r\n const [isVisible, setIsVisible] = useState(false);\r\n const timer = useRef | null>(null);\r\n\r\n useEffect(() => {\r\n function messageListener(event: MessageEvent) {\r\n if (\r\n event.origin === new URL(url).origin &&\r\n event.data &&\r\n typeof event.data === 'string' &&\r\n event.data.includes('iframeHeightChange')\r\n ) {\r\n const iframeHeight = event.data.replace('iframeHeightChange#=###=###=#', '');\r\n iframeHeight && setiFrameHeight(iframeHeight);\r\n }\r\n }\r\n\r\n windowService().addEventListener('message', messageListener);\r\n\r\n return () => {\r\n windowService().removeEventListener('message', messageListener);\r\n clearTimeout(timer?.current as ReturnType);\r\n };\r\n }, [url]);\r\n\r\n useEffect(() => {\r\n function messageListener(event: MessageEvent): void {\r\n const messageName = 'iframe FormResponse#=###=###=#';\r\n const delimiter = ',';\r\n\r\n if (event.origin === new URL(url).origin && event.data && typeof event.data === 'string' && event.data.includes(messageName)) {\r\n const formSubmitData = event.data.replace(messageName, '');\r\n const dataParts = formSubmitData.split(delimiter);\r\n const statusCode = dataParts[0];\r\n\r\n if (statusCode === '200') {\r\n const hasAttachment = dataParts[1] === '1';\r\n const formName = dataParts[2];\r\n\r\n googleFormSubmitEvent(formName, hasAttachment);\r\n }\r\n }\r\n }\r\n\r\n windowService().addEventListener('message', messageListener);\r\n\r\n return (): void => {\r\n windowService().removeEventListener('message', messageListener);\r\n };\r\n }, []);\r\n\r\n const onLoadHandler = (): void => {\r\n timer.current = setTimeout(() => setIsVisible(true), visibilityDelay);\r\n };\r\n\r\n const iframeStyle = {\r\n height: `${iFrameHeight || height}px`,\r\n opacity: isVisible ? 1 : 0,\r\n };\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
\r\n {/* eslint-disable-next-line */}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SharedExternalComponent;\r\n","import React from 'react';\r\nimport { TExternalComponentProps } from '../@shared/sharedExternalComponent/types/externalComponent.types';\r\nimport SharedExternalComponent from '../@shared/sharedExternalComponent';\r\n\r\nconst BuildAndPriceExternalLink = (props: TExternalComponentProps) => {\r\n return \r\n};\r\n\r\nexport default BuildAndPriceExternalLink;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nconst Dots = (props: { class: string }): JSX.Element => {\r\n return ;\r\n};\r\n\r\nconst CustomCarouselDots = (props: {\r\n cardsCount: number;\r\n activeCard: number;\r\n hasAnimation?: boolean;\r\n isDarkMode?: boolean;\r\n}): JSX.Element => {\r\n const dotsArray: JSX.Element[] = [];\r\n const [min, updateMin] = useState(0);\r\n const [max, updateMax] = useState(5); // min 5 cards to be shown\r\n const [changes, updateChanges] = useState(0);\r\n\r\n useEffect(() => {\r\n let initialMax = max;\r\n let initialMin = min;\r\n\r\n if (props.activeCard < initialMin) {\r\n initialMin = props.activeCard;\r\n initialMax = initialMin + 4;\r\n if (initialMax > changes + 1) {\r\n initialMax = changes + 1;\r\n }\r\n }\r\n if (props.activeCard > initialMax) {\r\n initialMax = props.activeCard;\r\n initialMin = initialMax - 4;\r\n if (initialMin < 0) {\r\n initialMin = 0;\r\n }\r\n }\r\n updateMax(initialMax);\r\n updateMin(initialMin);\r\n updateChanges(changes + 1);\r\n }, [props.activeCard, max, min]); // eslint-disable-line\r\n\r\n const getIndicatorClass = (ref: number): string => {\r\n if (ref === props.activeCard) {\r\n return 'active';\r\n }\r\n if (ref >= min && ref <= max) {\r\n return 'std';\r\n }\r\n if (ref === min - 1 || ref === max + 1) {\r\n return 'small';\r\n }\r\n return 'hidden';\r\n };\r\n\r\n for (let i = 1; i <= props.cardsCount; i++) {\r\n dotsArray.push();\r\n }\r\n return (\r\n \r\n {dotsArray}\r\n \r\n );\r\n};\r\n\r\nexport default CustomCarouselDots;\r\n","import React from 'react';\r\nimport CustomCarouselDots from '../../@shared/customCarouselDots';\r\n\r\nconst appendDots = (props: { dots: JSX.Element[]; cardsCount: number; activeCardIndex: number; showCustomDots: boolean }): JSX.Element => {\r\n const { dots, cardsCount, activeCardIndex, showCustomDots } = props;\r\n if (showCustomDots) {\r\n return ;\r\n }\r\n return
    {dots}
;\r\n};\r\n\r\nexport default appendDots;\r\n","import React, { FC, Children } from 'react';\r\nimport ctaEnums from '../../../enums/CTA.enums';\r\n\r\nconst ctaModifierClasses = {\r\n [ctaEnums.primaryRed]: 'cta-button--red',\r\n [ctaEnums.primaryWhite]: 'cta-button--white',\r\n [ctaEnums.primaryBlack]: 'cta-button--black',\r\n [ctaEnums.secondaryRed]: 'cta-button--sec-red',\r\n [ctaEnums.secondaryWhite]: 'cta-button--sec-white',\r\n};\r\n\r\nconst CTAButton: FC<{ type: ctaEnums, children?: any }> = (props) => {\r\n const child = Children.only(props.children);\r\n\r\n if (React.isValidElement(child)) {\r\n const childClassName = (child?.props as any)?.className;\r\n const ctaClassName = `cta cta-button ${ctaModifierClasses?.[props.type] || ''}`;\r\n const newProps = {\r\n className: childClassName ? `${ctaClassName} ${childClassName}` : ctaClassName,\r\n };\r\n return React.cloneElement(child, { ...newProps });\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport { ctaEnums };\r\nexport default CTAButton;\r\n","import { isServer } from '@sitecore-jss/sitecore-jss/utils';\r\nimport { documentService, windowService } from './window.utils';\r\n\r\nexport const adjustModalPositionBasedOnContent = (): void => {\r\n if (isServer()) return;\r\n\r\n const element = documentService()?.querySelector('.ReactModal__Content.ReactModal__Content--after-open.modal-dialog');\r\n if (!element) return;\r\n\r\n const windowHeight = windowService()?.innerHeight;\r\n const scrollHeight = element.scrollHeight;\r\n const diffInGap = windowHeight - scrollHeight;\r\n const noGap = diffInGap > 0 && diffInGap < 160;\r\n const thresholdHeight = windowHeight * 0.8;\r\n\r\n if (scrollHeight > thresholdHeight || noGap) {\r\n element.classList.add('top-aligned-modal');\r\n element.classList.remove('center-aligned-modal');\r\n } else {\r\n element.classList.add('center-aligned-modal');\r\n element.classList.remove('top-aligned-modal');\r\n }\r\n};\r\n","import React from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport Icon from '../../icon';\r\n\r\nconst CloseButton = (props): JSX.Element => {\r\n const { closeModal, isEEActiveOrPreview } = props;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CloseButton;\r\n","import React, { useState, useEffect, FC, useCallback } from 'react';\r\nimport Modal from 'react-modal';\r\nimport useEEActive from '../../../hooks/useEEActive';\r\nimport { ModalProps } from '../../../types/types';\r\nimport { adjustModalPositionBasedOnContent } from '../../../utils/modal.utils';\r\nimport { documentService, windowService } from '../../../utils/window.utils';\r\nimport CloseButton from './components/closeButton';\r\n\r\nconst ModalDialog: FC = ({\r\n isOpen = false,\r\n close,\r\n children,\r\n shouldCloseOnOverlayClick = true,\r\n className,\r\n overlayClassName = className,\r\n hasMaxHeightRestricted = false,\r\n onAfterOpen = undefined,\r\n hideCloseButton = false,\r\n skipModalPositionAdjustment = false,\r\n}: ModalProps) => {\r\n const [contentEleNode, setContentEleNode] = useState(null);\r\n const isEEActiveOrPreview = useEEActive(true);\r\n\r\n const adjustToToolbarHeight = (element: HTMLIFrameElement): void => {\r\n const height = element.clientHeight;\r\n if (!height) return;\r\n documentService().documentElement?.style?.setProperty('--ee-toolbar-offset', `${height}px`);\r\n };\r\n\r\n useEffect(() => {\r\n const resize = (): void => {\r\n adjustModalPositionBasedOnContent();\r\n };\r\n windowService().addEventListener('resize', resize);\r\n return (): void => {\r\n windowService().removeEventListener('resize', resize);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isOpen && isEEActiveOrPreview && document) {\r\n const EEToolbar = documentService().getElementById('scWebEditRibbon') as HTMLIFrameElement;\r\n if (!EEToolbar) return;\r\n\r\n if (!('MutationObserver' in window)) return;\r\n\r\n adjustToToolbarHeight(EEToolbar);\r\n\r\n const mutationCallback = (mutationsList: MutationRecord[]): void => {\r\n for (const mutation of mutationsList) {\r\n if ((mutation?.target as HTMLIFrameElement)?.id !== 'scWebEditRibbon') return;\r\n adjustToToolbarHeight(mutation?.target as HTMLIFrameElement);\r\n }\r\n };\r\n\r\n const observer = new MutationObserver(mutationCallback);\r\n\r\n const config = { attributes: true, childList: false, subtree: false };\r\n\r\n observer.observe(EEToolbar, config);\r\n\r\n return (): void => {\r\n observer.disconnect();\r\n };\r\n }\r\n }, [isOpen, isEEActiveOrPreview]); // eslint-disable-line\r\n\r\n useEffect(() => {\r\n if (!contentEleNode || !isOpen || skipModalPositionAdjustment) return;\r\n if (!('MutationObserver' in window)) return;\r\n let modalHeight = contentEleNode?.getBoundingClientRect()?.height || 0;\r\n const observer = new MutationObserver(() => {\r\n const newModalHeight = contentEleNode?.getBoundingClientRect()?.height;\r\n if (newModalHeight !== modalHeight) {\r\n modalHeight = newModalHeight;\r\n adjustModalPositionBasedOnContent();\r\n }\r\n });\r\n const config = { attributes: false, childList: true, subtree: true };\r\n observer.observe(contentEleNode, config);\r\n return (): void => {\r\n observer?.disconnect();\r\n };\r\n }, [contentEleNode, isOpen, skipModalPositionAdjustment]);\r\n\r\n const closeModal = (): void => {\r\n close && close(false);\r\n };\r\n\r\n const onAfterOpenCallback = useCallback((): void => {\r\n !skipModalPositionAdjustment && adjustModalPositionBasedOnContent();\r\n if (onAfterOpen) {\r\n onAfterOpen();\r\n }\r\n }, [adjustModalPositionBasedOnContent, onAfterOpen]);\r\n\r\n const overlayElementCallback = useCallback(\r\n (\r\n props: JSX.IntrinsicAttributes & React.ClassAttributes & React.HTMLAttributes,\r\n contentElement: JSX.Element\r\n ): JSX.Element => {\r\n return (\r\n
\r\n {!hideCloseButton ? : null}\r\n <>{contentElement}\r\n
\r\n );\r\n },\r\n [closeModal, isEEActiveOrPreview, hideCloseButton]\r\n );\r\n\r\n return (\r\n documentService().querySelector('#root')}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n className={`modal-dialog ${className}\r\n ${isEEActiveOrPreview ? 'modal-dialog__overlay--ee-active' : ''}\r\n ${hasMaxHeightRestricted ? 'modal-dialog--has-max-height' : ''}`}\r\n overlayClassName={`modal-dialog__overlay ${overlayClassName} ${\r\n hasMaxHeightRestricted ? 'modal-dialog__overlay--has-max-height' : ''\r\n }`}\r\n overlayElement={overlayElementCallback}\r\n appElement={typeof document !== 'undefined' ? documentService()?.querySelector('#root') : null}\r\n contentRef={setContentEleNode}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\nexport default ModalDialog;\r\n","import React, { FC } from 'react';\r\nimport { TExpandableOverlayCarouselPopUpArrow } from '../../types/overlayCarouselPopup.types';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport Icon from '../../../icon';\r\n\r\nconst OverlayCarouselArrow: FC = ({ direction, onClick, customClass = '' }) => {\r\n const icon = (direction === 'previous' ? 'arrow-chevron-left' : 'arrow-chevron-right');\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default OverlayCarouselArrow;\r\n","export enum CarouselNavPositionEnum {\r\n LEFT = 'left',\r\n RIGHT = 'right',\r\n}\r\n","import React, { FC } from 'react';\r\nimport { TCustomCarouselNavPositionProps } from './types/carouselTransparentNavSection.types';\r\n\r\nconst CarouselTransparentNavSection: FC = ({\r\n position,\r\n handleTouchStart,\r\n extraClassName = '',\r\n children = null,\r\n}: TCustomCarouselNavPositionProps) => {\r\n const localHandleStart = (event) => {\r\n if (event) {\r\n event.stopPropagation();\r\n event.nativeEvent.stopImmediatePropagation();\r\n }\r\n if (handleTouchStart) {\r\n handleTouchStart();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default CarouselTransparentNavSection;\r\n","import React, { FC } from 'react';\r\nimport { CarouselNavPositionEnum } from '../../../../../enums/carousel.enums';\r\nimport CarouselTransparentNavSection from '../../../carouselTransparentNavSection';\r\nimport { TCarouselArrowAndNavSection } from '../../types/overlayCarouselPopup.types';\r\nimport OverlayCarouselArrow from '../carouselArrow';\r\n\r\nconst CarouselArrowAndNavSection: FC = (props) => {\r\n const { isWide, slides, currentCardIndex, videoPlaying, videoPaused, moveLeft, moveRight } = props;\r\n\r\n if (!isWide && slides?.length > 1) {\r\n return (\r\n <>\r\n {currentCardIndex === 0 ? null : (\r\n \r\n )}\r\n \r\n {currentCardIndex + 1 === slides.length ? null : (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default CarouselArrowAndNavSection;\r\n","import React, { useEffect, useRef, useState, FC } from 'react';\r\nimport ReactPlayer from 'react-player';\r\nimport { Breakpoints } from '../../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { googleClickOpenVideoEvent } from '../../../utils/analytics';\r\nimport Icon from '../icon';\r\nimport Picture from '../picture';\r\nimport { VideoPlayerProps } from './types/videoPlayer.types';\r\nimport LazyLoad from 'react-lazyload';\r\n\r\nconst VideoPlayer: FC = ({\r\n link,\r\n playIconClickCallback,\r\n playCallback,\r\n pauseCallback,\r\n endCallback,\r\n controls = true,\r\n autoPlay = false,\r\n muted = false,\r\n width = '100%',\r\n height = '100%',\r\n showThumbnail = false,\r\n extraClassName = '',\r\n iconWrapperClassName = '',\r\n videoPlayerWrapperClassName = '',\r\n mediaTitle = '',\r\n useAnalytics = false,\r\n mobilePlayIconSize = iconSize.xxs,\r\n desktopPlayIconSize = iconSize.xlg,\r\n editorialImageProps,\r\n productImageProps,\r\n activeCard = true,\r\n loop = false,\r\n playsInline,\r\n}) => {\r\n const isDesktop = useMediaQuery(`(min-width: ${Breakpoints['tbl-p']}px)`);\r\n const [hideThumbnail, setHideThumbnail] = useState(false);\r\n const [playing, setPlaying] = useState(autoPlay ? true : false);\r\n\r\n const [onScreen, setOnScreen] = useState(false);\r\n const [runOnReady, setRunOnReady] = useState(false);\r\n const videoPlayerWrapperRef = useRef(null);\r\n const videoPlayerRef = useRef(null);\r\n const loadedSecondsRef = useRef(0);\r\n\r\n useEffect(() => {\r\n const options = {\r\n rootMargin: '10px',\r\n threshold: 0.01,\r\n };\r\n\r\n const observerCallback = (entries) => {\r\n entries.forEach((entry) => {\r\n if (!entry) return;\r\n setOnScreen(entry.isIntersecting);\r\n });\r\n };\r\n\r\n const observer = new IntersectionObserver(observerCallback, options);\r\n\r\n if (videoPlayerWrapperRef?.current) {\r\n observer.observe(videoPlayerWrapperRef?.current);\r\n }\r\n\r\n return () => {\r\n if (videoPlayerWrapperRef?.current) {\r\n observer.unobserve(videoPlayerWrapperRef?.current);\r\n }\r\n };\r\n }, [videoPlayerWrapperRef, setOnScreen]);\r\n\r\n useEffect(() => {\r\n setOnScreen(activeCard);\r\n }, [activeCard]);\r\n\r\n useEffect(() => {\r\n if (link) {\r\n setHideThumbnail(false);\r\n }\r\n }, [link]);\r\n\r\n useEffect(() => {\r\n if (!onScreen) {\r\n setRunOnReady(true);\r\n }\r\n }, [onScreen]);\r\n\r\n const localPlayCallback = (): void => {\r\n setPlaying(true);\r\n if (playCallback) {\r\n playCallback();\r\n }\r\n useAnalytics && !playing && googleClickOpenVideoEvent(mediaTitle || editorialImageProps?.alt || productImageProps?.alt);\r\n };\r\n\r\n const localPauseCallback = (): void => {\r\n setPlaying(false);\r\n if (pauseCallback) {\r\n pauseCallback();\r\n }\r\n };\r\n\r\n const localEndCallback = (): void => {\r\n setPlaying(false);\r\n if (endCallback) {\r\n endCallback();\r\n }\r\n };\r\n\r\n const handlePlayButton = () => {\r\n playIconClickCallback?.();\r\n useAnalytics && playing && googleClickOpenVideoEvent(mediaTitle || editorialImageProps?.alt || productImageProps?.alt);\r\n setHideThumbnail(true);\r\n };\r\n\r\n const loadLastLoadedSecond = () => {\r\n if (!runOnReady) return;\r\n videoPlayerRef?.current?.seekTo(loadedSecondsRef.current, 'seconds');\r\n setRunOnReady(false);\r\n };\r\n\r\n const playIconSize = isDesktop ? desktopPlayIconSize : mobilePlayIconSize;\r\n\r\n const localEditorialImageProps = editorialImageProps\r\n ? {\r\n ...editorialImageProps,\r\n isVideoThumbnail: true,\r\n cssClassImageEl: (editorialImageProps?.cssClassImageEl || '') + 'video-player',\r\n }\r\n : undefined;\r\n\r\n const localProductImageProps = productImageProps\r\n ? {\r\n ...productImageProps,\r\n isVideoThumbnail: true,\r\n imageClassName: (productImageProps?.imageClassName || '') + 'video-player',\r\n }\r\n : undefined;\r\n\r\n const reactPlayerConfig = {\r\n file: {\r\n attributes: {\r\n preload: 'metadata',\r\n },\r\n },\r\n youtube: {\r\n playerVars: { autoplay: autoPlay ? 1 : 0 },\r\n },\r\n };\r\n\r\n return (\r\n
\r\n {showThumbnail && !hideThumbnail ? (\r\n
\r\n
\r\n \r\n
\r\n {(localEditorialImageProps || localProductImageProps) && (\r\n \r\n )}\r\n
\r\n ) : (\r\n \r\n {onScreen ? (\r\n {\r\n loadedSecondsRef.current = played.playedSeconds;\r\n }}\r\n playsinline={playsInline}\r\n width={width}\r\n height={height}\r\n muted={muted}\r\n loop={loop}\r\n className={`video-player ${extraClassName}`}\r\n playing={onScreen && playing}\r\n ref={videoPlayerRef}\r\n config={reactPlayerConfig}\r\n />\r\n ) : (\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\nexport default React.memo(VideoPlayer);\r\n","import React, { FC, useState, useEffect } from 'react';\r\nimport { BreakpointsInPx } from '../../../../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport useMediaQuery from '../../../../../lib/custom-hooks/useMediaQuery';\r\nimport { THeroCardProps } from '../../types/overlayCarouselPopup.types';\r\nimport VideoPlayer from '../../../videoPlayer';\r\nimport Picture from '../../../picture';\r\nimport { TImageComponentProps } from '../../../picture/types/picture.types';\r\nimport TextComponentDecider from '../../../TextComponentDecider';\r\nimport { googleClickOpenVideoEvent } from '../../../../../utils/analytics';\r\n\r\nconst HeroCard: FC = ({\r\n id,\r\n showOverlayTitleAndDescription = false,\r\n customTextTitle = false,\r\n customTextDescription = false,\r\n editorial,\r\n desktopRendition,\r\n tabletRendition,\r\n mobileRendition,\r\n desktopImage,\r\n mobileImage,\r\n desktopAlt,\r\n title,\r\n description,\r\n isVideo,\r\n videoUrl,\r\n activeCard,\r\n index,\r\n playCallback,\r\n pauseCallback,\r\n endCallback,\r\n moveLeft,\r\n moveRight,\r\n onClickPlayButton,\r\n richTextTitle = false,\r\n richTextDescription = false,\r\n}) => {\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const [swipeStart, setSwipeStart] = useState(0);\r\n const [videoVisible, setVideoVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n setSwipeStart(0);\r\n }, [activeCard, index]);\r\n\r\n const handleClickVideoPlay = (): void => {\r\n if (!isWide) return;\r\n\r\n onClickPlayButton && onClickPlayButton(index);\r\n\r\n googleClickOpenVideoEvent(title?.value, (index || 0) + 1);\r\n };\r\n\r\n const handleTouchStartVideoPlay = (event): void => {\r\n if (isWide) return;\r\n const value = event?.changedTouches?.[0]?.pageX;\r\n if (!value) return;\r\n setSwipeStart(value);\r\n };\r\n\r\n const handleTouchEndVideoPlay = (event): void => {\r\n if (isWide) return;\r\n const value = event?.changedTouches?.[0]?.pageX;\r\n if (!value) {\r\n setSwipeStart(0);\r\n return;\r\n }\r\n\r\n if (value < swipeStart && swipeStart - value > 20) {\r\n if (moveRight) moveRight();\r\n } else if (value > swipeStart && value - swipeStart > 20) {\r\n if (moveLeft) moveLeft();\r\n }\r\n setSwipeStart(0);\r\n };\r\n\r\n const handleTouchStart = (event): void => {\r\n const value = event?.changedTouches?.[0]?.pageX;\r\n if (!value) return;\r\n setSwipeStart(value);\r\n };\r\n\r\n const handleTouchEnd = (event): void => {\r\n const value = event?.changedTouches?.[0]?.pageX;\r\n if (!value) {\r\n setSwipeStart(0);\r\n return;\r\n }\r\n\r\n if (value < swipeStart && swipeStart - value > 20) {\r\n if (moveRight) moveRight();\r\n } else if (value > swipeStart && value - swipeStart > 20) {\r\n if (moveLeft) moveLeft();\r\n } else {\r\n setSwipeStart(0);\r\n }\r\n };\r\n\r\n const getPictureProps = (): TImageComponentProps => {\r\n if (editorial) {\r\n return {\r\n editorialImageProps: {\r\n id: id,\r\n desktopImage: desktopImage,\r\n mobileImage: mobileImage,\r\n desktopTransformation: 'Size1100',\r\n mobileTransformation: 'Size500',\r\n alt: desktopAlt,\r\n cssClassPictureEl: 'overlay-carousel-popup__picture',\r\n onClick: handleClickVideoPlay,\r\n onTouchStart: isVideo ? handleTouchStartVideoPlay : handleTouchStart,\r\n onTouchEnd: isVideo ? handleTouchEndVideoPlay : handleTouchEnd,\r\n },\r\n };\r\n } else {\r\n return {\r\n productImageProps: {\r\n desktopRendition: desktopRendition,\r\n tabletRendition: tabletRendition,\r\n mobileRendition: mobileRendition,\r\n alt: desktopAlt,\r\n pictureClassName: 'overlay-carousel-popup__picture',\r\n onClick: handleClickVideoPlay,\r\n onTouchStart: isVideo ? handleTouchStartVideoPlay : handleTouchStart,\r\n onTouchEnd: isVideo ? handleTouchEndVideoPlay : handleTouchEnd,\r\n },\r\n };\r\n }\r\n };\r\n\r\n const isRichTextTitle = richTextTitle ? 'RichText' : 'Text';\r\n const isRichTextDescription = richTextDescription ? 'RichText' : 'Text';\r\n\r\n return (\r\n <>\r\n {!videoVisible && showOverlayTitleAndDescription && isWide && (\r\n
\r\n
\r\n {title && }\r\n
\r\n
\r\n {description && (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n {isVideo ? (\r\n {\r\n setVideoVisible(true);\r\n }}\r\n iconWrapperClassName=\"overlay-carousel-popup__slide-video-play-button\"\r\n desktopPlayIconSize={iconSize.xlg}\r\n mobilePlayIconSize={iconSize.dsk}\r\n {...getPictureProps()}\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(HeroCard);\r\n","import React, { FC } from 'react';\r\nimport { BreakpointsInPx } from '../../../../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport useMediaQuery from '../../../../../lib/custom-hooks/useMediaQuery';\r\nimport { handleThumbnailImage } from '../../../../../utils/youtubeUtils';\r\nimport Icon from '../../../icon';\r\nimport { TCarouselNavDeckCardProps } from './types/carouselNavDeck.types';\r\nimport Picture from '../../../picture';\r\nimport { TImageComponentProps } from '../../../picture/types/picture.types';\r\n\r\nconst CarouselNavDeckCard: FC = ({ slide, currentCardIndex, goToCard, index, isEE, editorial }) => {\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n\r\n const getPictureProps = (): TImageComponentProps => {\r\n if (editorial) {\r\n return {\r\n editorialImageProps: {\r\n id: slide.id,\r\n desktopImage: slide.desktopImage,\r\n mobileImage: slide.mobileImage,\r\n alt: slide.desktopAlt,\r\n isVideoThumbnail: slide.isVideo,\r\n cssClassPictureEl: 'overlay-carousel-popup__slide-image--fixed-aspect-ratio',\r\n },\r\n };\r\n } else {\r\n return {\r\n productImageProps: {\r\n desktopRendition: slide.desktopRendition,\r\n mobileRendition: slide.mobileRendition,\r\n isVideoThumbnail: slide.isVideo,\r\n pictureClassName: 'overlay-carousel-popup__slide-image--fixed-aspect-ratio',\r\n onLoad: (e) => {\r\n handleThumbnailImage(e, slide?.isVideo);\r\n },\r\n },\r\n };\r\n }\r\n };\r\n\r\n return (\r\n goToCard(index)}\r\n >\r\n {!isEE && (\r\n \r\n )}\r\n {!isEE &&
}\r\n {slide.isVideo && !isEE && (\r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(CarouselNavDeckCard);\r\n","import React, { FC } from 'react';\r\nimport TextComponentDecider from '../../TextComponentDecider';\r\nimport { TTextFieldGuard } from '../types/overlayCarouselPopup.types';\r\n\r\nconst TextFieldGuard: FC = ({ field, richText }) => {\r\n if (!field) return null;\r\n return ;\r\n};\r\n\r\nexport default TextFieldGuard;\r\n","import React, { FC, useState, useEffect, useRef, useCallback } from 'react';\r\nimport { BreakpointsInPx } from '../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { googleClickSlideEvent, googleClickOpenVideoEvent, formatComponentNumber } from '../../../utils/analytics';\r\nimport { windowService } from '../../../utils/window.utils';\r\nimport AnalyticsVisibleEvent from '../analyticsVisibleEvent';\r\nimport OverlayCarouselArrow from './components/carouselArrow';\r\nimport CarouselArrowAndNavSection from './components/carouselArrowAndNavSection';\r\nimport HeroCard from './components/carouselCard';\r\nimport CarouselNavDeckCard from './components/carouselNavDeck';\r\nimport TextFieldGuard from './components/textFieldGuard';\r\nimport { TOverlayCarouselPopup } from './types/overlayCarouselPopup.types';\r\n\r\nconst OverlayCarouselPopup: FC = ({\r\n slides,\r\n showNavDeck = false,\r\n showOverlayTitleAndDescription = false,\r\n isEE = false,\r\n editorial = false,\r\n customTextTitle = false,\r\n customTextDescription = false,\r\n analyticsMainTitle = '',\r\n useAnalytics = false,\r\n richTextTitle = false,\r\n richTextDescription = false,\r\n useAnalyticsVisibleEvent = true,\r\n}) => {\r\n const [currentCardIndex, setCurrentCardIndex] = useState(0);\r\n const SlideSectionRef = useRef(null);\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const [videoPlaying, setVideoPlaying] = useState(false);\r\n const [videoPaused, setVideoPaused] = useState(false);\r\n\r\n useEffect(() => {\r\n function resizeHandler(): void {\r\n if (SlideSectionRef && SlideSectionRef.current) {\r\n const slideSectionEle = SlideSectionRef.current as HTMLElement | null;\r\n if (!slideSectionEle) return;\r\n const slideSectionDim = slideSectionEle.getBoundingClientRect();\r\n const deckCardWidth = isWide ? 176 : 92;\r\n slideSectionEle.style.justifyContent = slideSectionDim.width - slides.length * deckCardWidth > 0 ? 'center' : 'start';\r\n }\r\n }\r\n\r\n resizeHandler();\r\n windowService().addEventListener('resize', resizeHandler);\r\n return (): void => windowService().removeEventListener('resize', resizeHandler);\r\n }, [SlideSectionRef, slides, isWide]);\r\n\r\n useEffect(() => {\r\n const slideSectionEle = SlideSectionRef?.current;\r\n if (!slideSectionEle) return;\r\n if (isWide) {\r\n const slideSectionDim = (slideSectionEle as HTMLElement).getBoundingClientRect();\r\n if (slideSectionDim.width - slides.length * 176 > 0) {\r\n return;\r\n }\r\n const maxNoofCards = Math.floor(slideSectionDim.width / 176);\r\n let moveBy = (currentCardIndex + 1 - maxNoofCards) * 176;\r\n\r\n if (currentCardIndex + 1 === slides.length) {\r\n const totalWidth = 176 * slides.length - 8;\r\n moveBy = totalWidth - slideSectionDim.width;\r\n }\r\n\r\n (slideSectionEle as HTMLElement).style.setProperty('--expanded-overlay-slide-move-by', `-${moveBy > 0 ? moveBy : 0}px`);\r\n }\r\n // for bringing the navigation thumbnail into view on mobile layout\r\n if (!isWide) {\r\n const currentSelectedEle = (slideSectionEle as HTMLElement).querySelector(\r\n `#overlay-carousel-popup__slide-image-wrapper-${currentCardIndex}`\r\n );\r\n if (!currentSelectedEle) return;\r\n const eleDim = currentSelectedEle.getBoundingClientRect();\r\n currentSelectedEle?.parentElement?.scroll({\r\n left: (currentSelectedEle?.parentElement?.scrollLeft || 0) + eleDim.left - 16, // 16 is padding left of parent element\r\n behavior: 'smooth',\r\n });\r\n }\r\n }, [currentCardIndex, SlideSectionRef]); // eslint-disable-line\r\n\r\n const playCallback = useCallback(() => {\r\n setVideoPlaying(true);\r\n setVideoPaused(false);\r\n\r\n if (useAnalytics && slides?.length > 1) {\r\n const slideTitle = slides[currentCardIndex]?.title?.value;\r\n googleClickOpenVideoEvent(slideTitle);\r\n }\r\n }, [setVideoPlaying, setVideoPaused]);\r\n\r\n const pauseCallback = useCallback(() => {\r\n setVideoPlaying(false);\r\n setVideoPaused(true);\r\n }, [setVideoPlaying, setVideoPaused]);\r\n\r\n const endCallback = useCallback(() => {\r\n setVideoPlaying(false);\r\n setVideoPaused(false);\r\n }, [setVideoPlaying, setVideoPaused]);\r\n\r\n const moveLeft = (): void => {\r\n endCallback();\r\n const newIndex = currentCardIndex > 0 ? currentCardIndex - 1 : currentCardIndex;\r\n useAnalytics && googleClickSlideEvent(`Slide ${formatComponentNumber(newIndex + 1)}`, slides[newIndex]?.title?.value);\r\n setCurrentCardIndex(newIndex);\r\n };\r\n\r\n const moveRight = (): void => {\r\n endCallback();\r\n const newIndex = currentCardIndex + 1 < slides.length ? currentCardIndex + 1 : currentCardIndex;\r\n useAnalytics && googleClickSlideEvent(`Slide ${formatComponentNumber(newIndex + 1)}`, slides[newIndex]?.title?.value);\r\n setCurrentCardIndex(newIndex);\r\n };\r\n\r\n const goToCard = (index: number): void => {\r\n endCallback();\r\n useAnalytics && googleClickSlideEvent(`Slide ${formatComponentNumber(index + 1)}`, slides[index]?.title?.value);\r\n setCurrentCardIndex(index);\r\n };\r\n\r\n const carouselPopUp = (\r\n
\r\n
\r\n \r\n {isWide && slides?.length > 1 && }\r\n
\r\n
\r\n {slides?.map((slide, index, arr) => {\r\n return (\r\n \r\n \r\n
\r\n );\r\n })}\r\n \r\n
\r\n \r\n {isWide && slides?.length > 1 && }\r\n \r\n \r\n {(showNavDeck || showOverlayTitleAndDescription) && (\r\n
\r\n
1 ? 'overlay-carousel-popup__slide-section' : ''} ref={SlideSectionRef}>\r\n {showNavDeck &&\r\n slides?.length > 1 &&\r\n slides?.map((slide, index) => (\r\n \r\n ))}\r\n
\r\n {showOverlayTitleAndDescription && !isWide && (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n )}\r\n \r\n );\r\n\r\n return useAnalyticsVisibleEvent ? (\r\n \r\n {carouselPopUp}\r\n \r\n ) : (\r\n carouselPopUp\r\n );\r\n};\r\n\r\nexport default OverlayCarouselPopup;\r\n","const fields = {\r\n icon: '{861EF6C6-8458-4065-B901-8D1BFFEEA850}',\r\n isMobile: '{9D5649C1-CC99-473E-AF6F-12BCAC560493}',\r\n};\r\n\r\nconst socialMediaBarFields = {\r\n socialMedia: '{954B5A22-1F67-447F-8B6E-2A773520DFB3}',\r\n postText: '{F3DC7E48-B908-4EA4-A91A-8D3AD3A207DA}',\r\n};\r\n\r\nconst imagefields = {\r\n mobileImage: '{FDCA82BE-9277-47E0-8137-FC3D0DD365DA}',\r\n image: '{4E9D2DE7-3ABB-4AB0-B276-8EA3D8E15AD2}',\r\n};\r\n\r\nconst EE_EMPTY_IMAGE_FALLBACK_CLASS_NAME = 'scEmptyImage';\r\n\r\nconst EE_EMPTY_DATE_FALLBACK_VALUE = '0001-01-01T00:00:00';\r\n\r\nexport { imagefields, EE_EMPTY_IMAGE_FALLBACK_CLASS_NAME, EE_EMPTY_DATE_FALLBACK_VALUE, socialMediaBarFields };\r\n\r\nexport default fields;\r\n","import { EE_EMPTY_IMAGE_FALLBACK_CLASS_NAME } from '../constants/fields.const';\r\nimport useEEActive from '../hooks/useEEActive';\r\nimport { TImageField } from '../types/types';\r\n\r\nfunction useGetImageField(imageField: TImageField | undefined, thumbnailImgSrc?: string, useVideo?: boolean): TImageField | undefined {\r\n const isEEActive = useEEActive();\r\n if (useVideo) {\r\n // Displaying thumbnail in EE instead of sitecore fallbcack image\r\n // Note: Sitecore provides default image if no image is set in EE mode\r\n if (isEEActive && imageField?.value?.class === EE_EMPTY_IMAGE_FALLBACK_CLASS_NAME && thumbnailImgSrc) {\r\n return { ...imageField, value: { src: thumbnailImgSrc } };\r\n }\r\n\r\n return { value: { src: thumbnailImgSrc }, ...(imageField?.value?.src ? imageField : {}) };\r\n }\r\n return imageField;\r\n}\r\n\r\nexport { useGetImageField as getImageField };\r\n","import React, { FunctionComponent, useCallback, useState } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport CTAButton, { ctaEnums } from '../../../@shared/ctaButton';\r\nimport CustomExternalAnchor from '../../../@shared/customExternalAnchor';\r\nimport { CustomText } from '../../../@shared/customText';\r\nimport Picture from '../../../@shared/picture';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\nimport { SpecialOffersSlideModel } from '../../models/cardCarousel.model';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../.././constants/breakpoints.constants';\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\nimport { StringField } from '../../../../types/types';\r\nimport Icon from '../../../@shared/icon';\r\nimport ModalDialog from '../../../@shared/modalDialog';\r\nimport OverlayCarouselPopup from '../../../@shared/overlayCarouselPopup';\r\nimport { getImageField } from '../../../../utils/getImageFields';\r\nimport { getThumbnailProps } from '../../../../utils/youtubeUtils';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\n\r\nconst CarouselSlide: FunctionComponent<{\r\n slideIndex: number;\r\n model: SpecialOffersSlideModel;\r\n fallbackAnalyticsTitle: string | undefined;\r\n isEE: boolean;\r\n cardHeadingTag;\r\n}> = ({ slideIndex, model, fallbackAnalyticsTitle, isEE, cardHeadingTag }) => {\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const [showOverlay, setShowOverlay] = useState(false);\r\n\r\n const { thumbnailImgSrc } = getThumbnailProps(model.video?.value?.href || '');\r\n const imageOrThumbnail = getImageField(model.image, thumbnailImgSrc || '', model.useVideo);\r\n const mobileImageOrThumbnail = getImageField(model.mobileImage, thumbnailImgSrc || '', model.useVideo);\r\n \r\n const closeOverlayModal = (): void => setShowOverlay(false);\r\n\r\n const showOverlayVideo = (): void => {\r\n if (!model.useVideo) return;\r\n setShowOverlay(true);\r\n };\r\n\r\n const getOverlayProps = useCallback(() => {\r\n return [\r\n {\r\n desktopImage: imageOrThumbnail,\r\n mobileImage: mobileImageOrThumbnail,\r\n fullImage: imageOrThumbnail,\r\n desktopAlt: model.image?.value?.alt as string,\r\n mobileAlt: model.mobileImage?.value?.alt as string,\r\n isVideo: model.useVideo,\r\n videoUrl: model.video?.value?.href,\r\n },\r\n ];\r\n }, [model, thumbnailImgSrc]);\r\n\r\n return (\r\n <>\r\n {model?.badgeLink?.value?.href && model?.badgeLink?.value?.text && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n {model.useVideo && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {(isEE || (model?.buttonPrimary?.value?.text && model?.buttonPrimary?.value?.href)) && (\r\n \r\n \r\n googleClickCtaEvent(\r\n 'Button',\r\n model?.buttonPrimary?.value?.text,\r\n model.title?.value || fallbackAnalyticsTitle,\r\n slideIndex + 1\r\n )\r\n }\r\n />\r\n \r\n )}\r\n {((model?.type?.value !== 'offerCardWide' && !(model?.buttonPrimary?.value?.text && model?.buttonPrimary?.value?.href)) ||\r\n model?.type?.value === 'offerCardWide') &&\r\n (isEE || (model?.buttonSecondary?.value?.text && model?.buttonSecondary?.value?.href)) && (\r\n \r\n \r\n googleClickCtaEvent(\r\n 'Button',\r\n model?.buttonSecondary?.value?.text,\r\n model.title?.value || fallbackAnalyticsTitle,\r\n slideIndex + 1\r\n )\r\n }\r\n />\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n {model.video && model.useVideo && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CarouselSlide;\r\n","export const BACKGROUND_COLOR_MAP = new Map([\r\n ['Light Grey', '#F4F4F4'],\r\n ['White', '#FFFFFF'],\r\n]);\r\n\r\nexport const BACKGROUND_COLOR_CLASS_MAP = new Map([\r\n ['Light Grey', 'light-grey'],\r\n ['White', 'white'],\r\n]);\r\n","import { ImageField, LinkField, StringField, THeadingTag, VideoSitecoreField, TLinkField } from '../../../types/types';\r\nimport {\r\n TSpecialOffersFields,\r\n TSpecialOffersParams,\r\n TSpecialOffersProps,\r\n TSpecialOffersSlideFields,\r\n TSpecialOffersSlideProps,\r\n} from '../types/cardCarousel.types';\r\nimport { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\nimport { getFollowingHTag } from '../../../utils/seo.utils';\r\n\r\nexport class SpecialOffersSlideModel {\r\n private readonly fields: null | TSpecialOffersSlideFields;\r\n private readonly _id?: string;\r\n\r\n constructor(props: TSpecialOffersSlideProps) {\r\n this.fields = props?.fields || null;\r\n this._id = props.id ?? props.dataSource;\r\n }\r\n\r\n get id(): string {\r\n return this._id as string;\r\n }\r\n\r\n get type(): StringField | null {\r\n return this.fields?.cardType?.fields?.Key || null;\r\n }\r\n\r\n get title(): StringField | null {\r\n return this.fields?.title || null;\r\n }\r\n\r\n get subtitle(): StringField | null {\r\n return this.fields?.subtitle || null;\r\n }\r\n\r\n get label(): StringField | null {\r\n return this.fields?.label || null;\r\n }\r\n\r\n get badgeLink(): LinkField | null {\r\n return this.fields?.badgeLink || null;\r\n }\r\n\r\n get image(): ImageField | undefined {\r\n return this.fields?.image;\r\n }\r\n\r\n get mobileImage(): ImageField | undefined {\r\n return this.fields?.mobileImage;\r\n }\r\n\r\n get buttonPrimary(): LinkField | undefined {\r\n return this.fields?.buttonPrimary;\r\n }\r\n\r\n get buttonSecondary(): LinkField | undefined {\r\n return this.fields?.buttonSecondary;\r\n }\r\n\r\n get isWideCard(): boolean {\r\n return this.type?.value === 'offerCardWide';\r\n }\r\n\r\n get useVideo(): boolean {\r\n return this.fields?.useVideo?.value || false;\r\n }\r\n\r\n get video(): VideoSitecoreField | undefined {\r\n return this.fields?.video;\r\n }\r\n}\r\n\r\nexport class SpecialOffersModel {\r\n private readonly fields: null | TSpecialOffersFields;\r\n private readonly params: null | TSpecialOffersParams;\r\n\r\n constructor(props: TSpecialOffersProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params || null;\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get eyebrow(): StringField | undefined {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get link(): TLinkField | undefined {\r\n return this.fields?.link;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get subtitle(): StringField | undefined {\r\n return this.fields?.subtitle;\r\n }\r\n\r\n get items(): SpecialOffersSlideModel[] {\r\n if (this.fields && this.fields?.items) {\r\n return this.fields?.items.map((Card: TSpecialOffersSlideProps) => {\r\n return new SpecialOffersSlideModel(Card);\r\n });\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h2';\r\n }\r\n\r\n get cardHeadingTitleTag(): THeadingTag {\r\n return getFollowingHTag(this.headingTag);\r\n }\r\n}\r\n","import React from 'react';\r\n\r\n/**\r\n * retaining the class name as there might few styles to be applied from the carousel lib.\r\n * that might create other issues\r\n */\r\nconst CarouselDots = () => {\r\n return
;\r\n};\r\n\r\nexport function getCustomPaging(): JSX.Element {\r\n return ;\r\n}\r\n\r\nexport default CarouselDots;\r\n","import React, { useEffect, useState } from 'react';\r\nimport Slider from 'react-slick';\r\nimport { withSitecoreContext, Placeholder, ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { windowService } from '../../utils/window.utils';\r\nimport { TLinkField } from '../../types/types';\r\nimport CarouselArrow from '../@shared/carouselArrow';\r\nimport appendDots from '../@shared/customCarouselDots/appendDots';\r\nimport Heading from '../@shared/heading';\r\nimport CarouselSlide from './components/carouselSlide';\r\nimport { TSpecialOffersProps } from './types/cardCarousel.types';\r\nimport { SpecialOffersModel, SpecialOffersSlideModel } from './models/cardCarousel.model';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { googleClickSlideEvent, formatComponentNumber } from '../../utils/analytics';\r\nimport { getCustomPaging } from '../@shared/carouselDots';\r\n\r\nconst CardCarousel = (props: TSpecialOffersProps): JSX.Element => {\r\n const isEE = props?.sitecoreContext?.pageEditing;\r\n const model = new SpecialOffersModel(props);\r\n const cardsCount = (model?.items || []).length;\r\n const isDesktop = useMediaQuery('(min-width: 768px)');\r\n const [screenWidth, setScreenWidth] = useState(1680);\r\n const [activeCardIndex, updateActiveIndex] = useState(0);\r\n const [isClickedOnArrow, setIsClickedOnArrow] = useState(false);\r\n const containerPaddingLeft = 32;\r\n const largeImageWidth = isDesktop ? 664 : 300;\r\n const smallImageWidth = isDesktop ? 392 : 300;\r\n\r\n const totalElementsWidth =\r\n model?.items?.reduce((sumWidths: number, curr: SpecialOffersSlideModel) => {\r\n if (curr?.type?.value === 'offerCardWide') {\r\n sumWidths += largeImageWidth;\r\n } else {\r\n sumWidths += smallImageWidth;\r\n }\r\n\r\n return sumWidths;\r\n }, 0) + containerPaddingLeft;\r\n const shouldInstanceCarousel = totalElementsWidth > screenWidth;\r\n\r\n const arrowButtonClick = (): void => {\r\n setIsClickedOnArrow(true);\r\n };\r\n\r\n const settings = {\r\n infinite: shouldInstanceCarousel,\r\n dots: shouldInstanceCarousel,\r\n arrows: !isEE && shouldInstanceCarousel,\r\n variableWidth: true,\r\n speed: 500,\r\n slidesToScroll: 1,\r\n nextArrow: ,\r\n prevArrow: ,\r\n customPaging: getCustomPaging,\r\n afterChange: (index): void => {\r\n updateActiveIndex(index);\r\n },\r\n appendDots: (dots) => appendDots({ dots, cardsCount, activeCardIndex, showCustomDots: cardsCount > 5 }),\r\n dotsClass: `${cardsCount <= 5 ? 'slick-dots' : ''}`,\r\n };\r\n\r\n useEffect(() => {\r\n setScreenWidth(Math.min(windowService()?.innerWidth, 1680));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isClickedOnArrow) {\r\n return;\r\n }\r\n\r\n setIsClickedOnArrow(false);\r\n\r\n googleClickSlideEvent(\r\n `Slide ${formatComponentNumber(activeCardIndex + 1)}`,\r\n model.items[activeCardIndex]?.title?.value || model.eyebrow?.value,\r\n activeCardIndex + 1\r\n );\r\n }, [activeCardIndex]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {model?.items?.map((item, index) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(CardCarousel);\r\n","import {\r\n ColumnLayoutEnum,\r\n TCardColumnLayoutFields,\r\n TCardColumnLayoutParams,\r\n TCardColumnLayoutProps,\r\n TCardFields,\r\n} from '../types/cardColumnLayout.types';\r\nimport { LinkField, StringField, THeadingTag } from '../../../types/types';\r\nimport { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\nimport { getFollowingHTag } from '../../../utils/seo.utils';\r\n\r\nexport class CardColumnLayoutModel {\r\n private readonly fields?: TCardColumnLayoutFields;\r\n private readonly params?: TCardColumnLayoutParams;\r\n\r\n constructor(props: TCardColumnLayoutProps) {\r\n this.fields = props?.fields || undefined;\r\n this.params = props?.params || undefined;\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get layout(): string | ColumnLayoutEnum {\r\n return this.fields?.columnLayout?.fields?.Key?.value || '';\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.sectionHeading;\r\n }\r\n\r\n get eyebrow(): StringField | undefined {\r\n return this.fields?.sectionEyebrow;\r\n }\r\n\r\n get subtitle(): StringField | undefined {\r\n return this.fields?.sectionSubheading;\r\n }\r\n\r\n get link(): LinkField | undefined {\r\n return this.fields?.sectionCtaTextLink;\r\n }\r\n\r\n get cards(): TCardFields[] {\r\n return this.fields?.items || [];\r\n }\r\n\r\n get whitetriangle(): StringField | undefined {\r\n return this.fields?.uiWhiteTriangle;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h3';\r\n }\r\n\r\n get cardHeadingTitleTag(): THeadingTag {\r\n return getFollowingHTag(this.headingTag);\r\n }\r\n}\r\n","import { TCard } from '../../../types/cardColumnLayout.types';\r\nimport { ImageField, StringField, LinkField, VideoSitecoreField, TIconField } from '../../../../../types/types';\r\n\r\nexport class CardModel {\r\n private readonly card?: TCard;\r\n\r\n constructor(props: TCard) {\r\n this.card = props || undefined;\r\n }\r\n get iconField(): TIconField {\r\n return this.card?.icon as TIconField;\r\n }\r\n\r\n get iconName(): string {\r\n return this.card?.icon?.fields?.iconKey?.value || '';\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.card?.cardHeading;\r\n }\r\n\r\n get subheading(): StringField | undefined {\r\n return this.card?.cardSubheading;\r\n }\r\n\r\n get image(): ImageField | undefined {\r\n return this.card?.image;\r\n }\r\n\r\n get mobileImage(): ImageField | undefined {\r\n return this.card?.mobileImage;\r\n }\r\n\r\n get cta1(): LinkField | undefined {\r\n return this.card?.cardCtaButton;\r\n }\r\n\r\n get cta2(): LinkField | undefined {\r\n return this.card?.cardCtaTextLink;\r\n }\r\n get video(): VideoSitecoreField | undefined {\r\n return this.card?.video;\r\n }\r\n\r\n get useVideo(): boolean {\r\n return this.card?.useVideo?.value || false;\r\n }\r\n\r\n get items(): any {\r\n return this.card?.items;\r\n }\r\n\r\n get showPopupWithSplitModule(): boolean {\r\n return (\r\n (!this.cta1 || (!this.cta1?.value?.url && !this.cta1?.value?.href)) &&\r\n !!this.card?.items?.[0].fields?.items?.[0] &&\r\n !!this.splitModuleLabel\r\n );\r\n }\r\n\r\n get splitModules(): any {\r\n return this.card?.items?.[0]?.fields?.items;\r\n }\r\n\r\n get splitModuleLabel(): string | undefined {\r\n return this.card?.items?.[0]?.fields?.popUpLabel?.value;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport CTA from '../../../@shared/cta';\r\nimport Icon from '../../../@shared/icon';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\nimport { TCardButtons } from '../../types/cardColumnLayout.types';\r\n\r\nconst CardButtons: FC = ({\r\n isEE,\r\n cta1,\r\n cta2,\r\n title,\r\n cardIndex,\r\n isWide,\r\n showPopupWithSplitModule,\r\n splitModuleLabel,\r\n handleSplitModuleModal,\r\n}) => (\r\n
\r\n {showPopupWithSplitModule && (\r\n
\r\n {\r\n handleSplitModuleModal(true);\r\n googleClickCtaEvent('Button', '#', splitModuleLabel);\r\n }}\r\n >\r\n {splitModuleLabel}\r\n \r\n
\r\n )}\r\n {(isEE || (cta1?.value?.text && cta1?.value?.href)) && (\r\n
\r\n googleClickCtaEvent('Button', cta1?.value.text ?? cta1?.value.title, title?.value || '', cardIndex + 1)}\r\n />\r\n
\r\n )}\r\n {(isEE || (cta2?.value?.text && cta2?.value?.href)) && (\r\n
\r\n googleClickCtaEvent('Button', cta2?.value.text ?? cta2?.value.title, title?.value || '', cardIndex + 1)}\r\n />\r\n \r\n
\r\n )}\r\n
\r\n);\r\n\r\nexport default CardButtons;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n ImageField,\r\n StringField,\r\n LinkField,\r\n VideoSitecoreField,\r\n TField,\r\n TStringField,\r\n THeadingTag,\r\n TImageField,\r\n} from '../../../types/types';\r\nimport { WithSitecoreContextProps } from '@sitecore-jss/sitecore-jss-react/types/enhancers/withSitecoreContext';\r\nimport { SplitModuleProps } from '../../splitModule/types/splitModule.types';\r\n\r\nexport enum ColumnLayoutEnum {\r\n TwoColumnLayout = '2ColumnLayout',\r\n ThreeColumnLayout = '3ColumnLayout',\r\n FourColumnLayout = '4ColumnLayout',\r\n}\r\n\r\nexport type TColumnLayout = {\r\n name: string;\r\n fields: {\r\n Key: {\r\n value: string | ColumnLayoutEnum;\r\n };\r\n };\r\n};\r\nexport type TCardProps = {\r\n id?: string;\r\n cardIndex: number;\r\n card: TCard;\r\n layout: string | ColumnLayoutEnum;\r\n isEE: boolean;\r\n triangle?: StringField;\r\n cardHeadingTag?: THeadingTag;\r\n};\r\n\r\nexport type TIconProps = {\r\n fields?: {\r\n iconKey?: TStringField;\r\n };\r\n};\r\n\r\nexport type TCard = {\r\n cardCtaTextLink?: LinkField;\r\n cardSubheading?: StringField;\r\n cardHeading?: StringField;\r\n cardCtaButton?: LinkField;\r\n image?: ImageField;\r\n mobileImage?: ImageField;\r\n icon?: TIconProps;\r\n video?: VideoSitecoreField;\r\n useVideo?: TField;\r\n items: Array;\r\n};\r\n\r\nexport type TSplitModulePopup = {\r\n fields: {\r\n popUpLabel: {\r\n value: string;\r\n };\r\n items: Array;\r\n };\r\n};\r\n\r\nexport type TCardFields = {\r\n fields: TCard;\r\n id?: string;\r\n dataSource?: string;\r\n};\r\n\r\nexport type TCardColumnLayoutFields = {\r\n sectionEyebrow?: StringField;\r\n sectionHeading?: StringField;\r\n sectionSubheading?: StringField;\r\n sectionCtaTextLink?: LinkField;\r\n columnLayout?: TColumnLayout;\r\n items?: TCardFields[];\r\n uiWhiteTriangle?: StringField;\r\n isComponentUnreleased?: boolean;\r\n};\r\n\r\nexport type TCardColumnLayoutParams = {\r\n backgroundColor?: string;\r\n headingTag?: string;\r\n};\r\nexport type TCardColumnLayoutProps = WithSitecoreContextProps & {\r\n fields?: TCardColumnLayoutFields;\r\n rendering?: ComponentRendering;\r\n params?: TCardColumnLayoutParams;\r\n};\r\n\r\nexport type TCardImage = {\r\n imageOrThumbnail?: TImageField;\r\n mobileImageOrThumbnail?: TImageField;\r\n isEE?: boolean;\r\n useVideo?: boolean;\r\n showOverlayVideo: () => void;\r\n id?: string;\r\n layout: string | ColumnLayoutEnum;\r\n isWide: boolean;\r\n triangle?: StringField;\r\n};\r\n\r\nexport type TCardText = {\r\n title?: TStringField;\r\n subheading?: TStringField;\r\n cardHeadingTag?: THeadingTag;\r\n};\r\n\r\nexport type TCardButtons = {\r\n isEE: boolean;\r\n cta1?: LinkField;\r\n cta2?: LinkField;\r\n title?: TStringField;\r\n cardIndex: number;\r\n isWide: boolean;\r\n handleSplitModuleModal: (state: boolean) => void;\r\n showPopupWithSplitModule: boolean;\r\n splitModuleLabel: string;\r\n};\r\n","import React, { FC } from 'react';\r\nimport Icon from '../../../@shared/icon';\r\nimport Picture from '../../../@shared/picture';\r\nimport { ColumnLayoutEnum, TCardImage } from '../../types/cardColumnLayout.types';\r\n\r\nconst CardImage: FC = (props) => {\r\n const { imageOrThumbnail, mobileImageOrThumbnail, isEE, useVideo, showOverlayVideo, id, layout, isWide, triangle } = props;\r\n if (imageOrThumbnail?.value?.src || mobileImageOrThumbnail?.value?.src || useVideo) {\r\n return (\r\n \r\n {triangle?.value &&
}\r\n {!!useVideo && (\r\n
\r\n \r\n
\r\n )}\r\n {(!!imageOrThumbnail?.value?.src || !!mobileImageOrThumbnail?.value?.src) && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport default CardImage;\r\n","import { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { CustomText } from '../../../@shared/customText';\r\nimport { TCardText } from '../../types/cardColumnLayout.types';\r\n\r\nconst CardText: FC = ({ title, subheading, cardHeadingTag }) => (\r\n <>\r\n {title && }\r\n {subheading && }\r\n \r\n);\r\n\r\nexport default CardText;\r\n","import React, { FC } from 'react';\r\nimport { TMediaCarouselArrowProps } from './types/carouselArrow.types';\r\nimport Icon from '../../../icon';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\n\r\nconst MediaCarouselArrow: FC = ({ direction, onClick, customClass = '' }) => {\r\n const icon = ('arrow-chevron-' + (direction === 'previous' ? 'left' : 'right')) as 'arrow-chevron-left' | 'arrow-chevron-right';\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MediaCarouselArrow;\r\n","import React, { FC, useState, useEffect } from 'react';\r\nimport { Breakpoints } from '../../../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../../../lib/custom-hooks/useMediaQuery';\r\nimport { googleClickOpenVideoEvent } from '../../../../../utils/analytics';\r\nimport Picture from '../../../picture';\r\nimport { TContentHubImageProps } from '../../../picture/types/contentHubImage.types';\r\nimport { TEditorialImageProps } from '../../../picture/types/editorialImage.types';\r\nimport VideoPlayer from '../../../videoPlayer';\r\nimport { TMediaCardProps } from './types/mediaCard.types';\r\n\r\nconst MediaCard: FC = ({\r\n slide,\r\n playCallback,\r\n pauseCallback,\r\n endCallback,\r\n activeCard,\r\n moveLeft,\r\n moveRight,\r\n index,\r\n hasFixedAspectRatio,\r\n mediaHeightClassName,\r\n label,\r\n}) => {\r\n const isWide = useMediaQuery(`(min-width: ${Breakpoints['md']}px)`);\r\n const [swipeStart, setSwipeStart] = useState(0);\r\n\r\n useEffect(() => {\r\n setSwipeStart(0);\r\n }, [activeCard, index]);\r\n\r\n const handleClickVideoPlay = (): void => {\r\n if (!isWide) return;\r\n googleClickOpenVideoEvent(label);\r\n };\r\n\r\n const handleTouchStartVideoPlay = (event): void => {\r\n if (isWide) return;\r\n const value = event?.changedTouches?.[0]?.pageX;\r\n if (!value) return;\r\n setSwipeStart(value);\r\n };\r\n\r\n const handleTouchEndVideoPlay = (event): void => {\r\n if (isWide) return;\r\n const value = event?.changedTouches?.[0]?.pageX;\r\n if (!value) {\r\n setSwipeStart(0);\r\n return;\r\n }\r\n\r\n if (value < swipeStart && swipeStart - value > 20) {\r\n if (moveRight) moveRight();\r\n } else if (value > swipeStart && value - swipeStart > 20) {\r\n if (moveLeft) moveLeft();\r\n }\r\n setSwipeStart(0);\r\n };\r\n\r\n const handleImage = (event): void => {\r\n if (!slide.isVideo) return;\r\n const img = event?.target;\r\n if (img.naturalWidth < 150 && img.src.includes('maxres')) {\r\n img.src = img.src.replace('maxres', 'hq');\r\n }\r\n };\r\n\r\n const productImageProps: TContentHubImageProps | undefined = slide?.productImageProps\r\n ? {\r\n onTouchStart: handleTouchStartVideoPlay,\r\n onTouchEnd: handleTouchEndVideoPlay,\r\n ...(slide.productImageProps || {}),\r\n onLoad: handleImage,\r\n pictureClassName: `media-carousel-card__picture ${hasFixedAspectRatio ? 'media-carousel-card__picture--16-9' : ''} ${\r\n slide.productImageProps?.pictureClassName ?? ''\r\n }`,\r\n }\r\n : undefined;\r\n\r\n const editorialImageProps: TEditorialImageProps | undefined = slide?.editorialImageProps\r\n ? {\r\n onTouchStart: handleTouchStartVideoPlay,\r\n onTouchEnd: handleTouchEndVideoPlay,\r\n desktopTransformation: 'Size1100',\r\n mobileTransformation: 'Size500',\r\n ...(slide.editorialImageProps || {}),\r\n cssClassPictureEl: `media-carousel-card__picture ${hasFixedAspectRatio ? 'media-carousel-card__picture--16-9' : ''} ${\r\n slide.editorialImageProps?.cssClassPictureEl ?? ''\r\n }`,\r\n }\r\n : undefined;\r\n\r\n return (\r\n <>\r\n
\r\n {slide.isVideo ? (\r\n
\r\n {slide.isVideo && (\r\n \r\n )}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(MediaCard);\r\n","import React, { FC, useState, useEffect, useCallback, useRef } from 'react';\r\nimport Slider from 'react-slick';\r\nimport MediaCarouselArrow from './components/carouselArrow';\r\nimport { CarouselNavPositionEnum } from '../../../enums/carousel.enums';\r\nimport useEEActive from '../../../hooks/useEEActive';\r\nimport { googleClickSlideEvent, formatComponentNumber } from '../../../utils/analytics';\r\nimport CarouselTransparentNavSection from '../carouselTransparentNavSection';\r\nimport CustomCarouselDots from '../customCarouselDots';\r\nimport MediaCard from './components/mediaCard';\r\nimport { TMediaCarouselProps } from './types/mediaCarousel.types';\r\n\r\nconst MediaCarousel: FC = ({\r\n slides,\r\n carouselSettings = {},\r\n hasFixedAspectRatio = false,\r\n mediaHeightClassName = '',\r\n extraClassName = '',\r\n useAnalytics = false,\r\n label,\r\n}) => {\r\n const isEEActive = useEEActive();\r\n const [currentSlide, _setCurrentSlide] = useState(0);\r\n const hasMultipleSlides = slides?.length > 1;\r\n const [videoPlaying, setVideoPlaying] = useState(false);\r\n const [videoPaused, setVideoPaused] = useState(false);\r\n const sliderRef = useRef(null);\r\n\r\n const cardsCount = slides.length;\r\n\r\n useEffect(() => {\r\n setVideoPlaying(false);\r\n }, [currentSlide]);\r\n\r\n const setCurrentSlide = (index: number): void => {\r\n if (hasMultipleSlides) {\r\n if (currentSlide !== index) {\r\n _setCurrentSlide(index);\r\n }\r\n }\r\n };\r\n\r\n const goToPreviousSlide = (): void => {\r\n const prevSlideNo = currentSlide === 0 ? slides.length - 1 : currentSlide - 1;\r\n if (!sliderRef.current) return;\r\n sliderRef.current.slickGoTo(prevSlideNo);\r\n setVideoPlaying(false);\r\n setVideoPaused(false);\r\n useAnalytics && googleClickSlideEvent(`Slide ${formatComponentNumber(prevSlideNo + 1)}`, label);\r\n };\r\n\r\n const goToNextSlide = (): void => {\r\n const nextSlideNo = currentSlide === slides.length - 1 ? 0 : currentSlide + 1;\r\n if (!sliderRef.current) return;\r\n sliderRef.current.slickGoTo(nextSlideNo);\r\n setVideoPlaying(false);\r\n setVideoPaused(false);\r\n useAnalytics && googleClickSlideEvent(`Slide ${formatComponentNumber(nextSlideNo + 1)}`, label);\r\n };\r\n\r\n const playCallback = useCallback(() => {\r\n setVideoPlaying(true);\r\n setVideoPaused(false);\r\n }, [setVideoPlaying, setVideoPaused]);\r\n\r\n const pauseCallback = useCallback(() => {\r\n setVideoPlaying(false);\r\n setVideoPaused(true);\r\n }, [setVideoPlaying, setVideoPaused]);\r\n\r\n const endCallback = useCallback(() => {\r\n setVideoPlaying(false);\r\n setVideoPaused(false);\r\n }, [setVideoPlaying, setVideoPaused]);\r\n\r\n const deafultSettings = {\r\n infinite: !isEEActive,\r\n dots: false,\r\n arrows: false,\r\n variableWidth: false,\r\n slidesToScroll: 1,\r\n afterChange: (index): void => {\r\n setCurrentSlide(index);\r\n },\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n {slides?.map((slide, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n {hasMultipleSlides && (\r\n <>\r\n \r\n \r\n
    \r\n \r\n
\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MediaCarousel;\r\n","import React, { FC, useState } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { TMediaAssetType } from '../types/splitModule.types';\r\nimport { BreakpointsInPx } from '../../../constants/breakpoints.constants';\r\nimport VideoPlayer from '../../@shared/videoPlayer';\r\nimport Picture from '../../@shared/picture';\r\nimport { getThumbnailProps } from '../../../utils/youtubeUtils';\r\nimport { getImageField } from '../../../utils/getImageFields';\r\nimport { TEditorialImageProps } from '../../@shared/picture/types/editorialImage.types';\r\nimport MediaCarousel from '../../@shared/mediaCarousel';\r\n\r\nconst MediaAsset: FC = (props) => {\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const [videoPlaying, setVideoPlaying] = useState(false);\r\n\r\n const playCallback = (): void => {\r\n setVideoPlaying(true);\r\n };\r\n\r\n const endCallback = (): void => {\r\n setVideoPlaying(false);\r\n };\r\n\r\n const { thumbnailImgSrc } = getThumbnailProps(props?.video?.value?.href || '');\r\n const desktopImage = getImageField(props.image, thumbnailImgSrc || '', props.useVideo);\r\n const mobileImage = getImageField(props.mobileImage, thumbnailImgSrc || '', props.useVideo);\r\n\r\n const editorialImageProps: TEditorialImageProps = {\r\n id: props.id,\r\n desktopImage: props.useVideo ? desktopImage : props.image,\r\n mobileImage: props.useVideo ? mobileImage : props.mobileImage,\r\n desktopTransformation: 'Size1000',\r\n mobileTransformation: 'Size500',\r\n cssClassImageEl: 'split-module__image',\r\n cssClassPictureEl: 'split-module__fixed-aspect-ratio',\r\n };\r\n\r\n if (props.carouselSlide.length > 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (props.useVideo) {\r\n return (\r\n
\r\n \r\n {isWide && !videoPlaying && (\r\n
\r\n {props.videoHeading && }\r\n {props.videoSubHeading && (\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n } else {\r\n return ;\r\n }\r\n};\r\n\r\nexport default MediaAsset;\r\n","import { SplitModuleFields, TCarouselItemProps, TSplitModuleProps } from '../types/splitModule.types';\r\nimport { ImageField, LinkField, StringField, THeadingTag, VideoSitecoreField } from '../../../types/types';\r\nimport { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\nimport { getThumbnailProps } from '../../../utils/youtubeUtils';\r\nimport { getImageField } from '../../../utils/getImageFields';\r\nimport { TMediaCarouselSlide } from '../../@shared/mediaCarousel/types/mediaCarousel.types';\r\n\r\nexport class SplitModuleModel {\r\n private readonly fields?: SplitModuleFields;\r\n private readonly params?: ComponentParamsGeneral;\r\n private readonly _id: string;\r\n\r\n constructor(props: TSplitModuleProps) {\r\n this.fields = props?.fields;\r\n this.params = props?.params;\r\n this._id = props?.id ?? props?.dataSource ?? '';\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n get bodyText(): StringField | undefined {\r\n return this.fields?.bodyText;\r\n }\r\n\r\n get eyebrow(): StringField | undefined {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get link1(): LinkField | undefined {\r\n return this.fields?.link1;\r\n }\r\n\r\n get link2(): LinkField | undefined {\r\n return this.fields?.link2;\r\n }\r\n\r\n get image(): ImageField | undefined {\r\n return this.fields?.image;\r\n }\r\n\r\n get videoHeading(): StringField | undefined {\r\n return this.fields?.videoHeading;\r\n }\r\n\r\n get videoSubheading(): StringField | undefined {\r\n return this.fields?.videoSubHeading;\r\n }\r\n\r\n get mobileImage(): ImageField | undefined {\r\n return this.fields?.mobileImage;\r\n }\r\n\r\n get video(): VideoSitecoreField | undefined {\r\n return this.fields?.video;\r\n }\r\n\r\n get useVideo(): boolean {\r\n return this.fields?.useVideo?.value || false;\r\n }\r\n\r\n get imagePosition(): 'left' | 'right' {\r\n return this.params?.imagePosition;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h3';\r\n }\r\n\r\n get carouselSlide(): TCarouselItemProps[] {\r\n return this.fields?.items || [];\r\n }\r\n\r\n get slides(): TMediaCarouselSlide[] {\r\n return this.carouselSlide?.map(({ fields }) => {\r\n const { thumbnailImgSrc } = getThumbnailProps(fields?.video?.value?.href || '');\r\n const desktopImage = getImageField(fields?.image, thumbnailImgSrc || '', fields?.useVideo?.value);\r\n const mobileImage = getImageField(fields?.mobileImage, thumbnailImgSrc || '', fields?.useVideo?.value);\r\n const desktopTransformation = 'Size1000';\r\n const mobileTransformation = 'Size500';\r\n\r\n return {\r\n isVideo: fields?.useVideo?.value,\r\n videoUrl: fields?.video,\r\n editorialImageProps: {\r\n desktopImage: desktopImage,\r\n mobileImage: mobileImage,\r\n mobileTransformation: mobileTransformation,\r\n desktopTransformation: desktopTransformation,\r\n },\r\n };\r\n });\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { ComponentRendering, Placeholder, RichText, Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport MediaAsset from './components/mediaAsset';\r\nimport { SplitModuleModel } from './models/splitModule.model';\r\nimport { TSplitModuleProps } from './types/splitModule.types';\r\nimport CTAButton, { ctaEnums } from '../@shared/ctaButton';\r\nimport { CustomText } from '../@shared/customText';\r\nimport RoutableSitecoreLink from '../@shared/routableSitecoreLink';\r\nimport Icon from '../@shared/icon';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport { googleClickCtaEvent, googleClickRichTextEvent } from '../../utils/analytics';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst SplitModule: FC = (props) => {\r\n const isEE = props.sitecoreContext?.pageEditing;\r\n const model = new SplitModuleModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {model.eyebrow && }\r\n \r\n {model.bodyText && (\r\n googleClickRichTextEvent(event, model.title?.value ?? model.eyebrow?.value)}\r\n />\r\n )}\r\n
\r\n {(isEE || (model.link1?.value?.text && model.link1?.value?.href)) && (\r\n \r\n googleClickCtaEvent('Button', model?.link1?.value.text, model.title?.value ?? model.eyebrow?.value)}\r\n />\r\n \r\n )}\r\n {(isEE || (model.link2?.value?.text && model.link2?.value?.href)) && (\r\n
\r\n googleClickCtaEvent('Button', model?.link2?.value.text, model.title?.value ?? model.eyebrow?.value)}\r\n />\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(SplitModule);\r\n","import React, { FC, useCallback, useState } from 'react';\r\nimport { getThumbnailProps } from '../../../../utils/youtubeUtils';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport ModalDialog from '../../../@shared/modalDialog';\r\nimport OverlayCarouselPopup from '../../../@shared/overlayCarouselPopup';\r\nimport { TCardProps } from '../../types/cardColumnLayout.types';\r\nimport { CardModel } from './models/card.models';\r\nimport { getImageField } from '../../../../utils/getImageFields';\r\nimport { googleClickOpenVideoEvent } from '../../../../utils/analytics';\r\nimport CardButtons from './buttons';\r\nimport CardImage from './image';\r\nimport CardText from './text';\r\nimport SplitModule from '../../../splitModule';\r\n\r\nconst Card: FC = ({ id, cardIndex, card, layout, isEE, triangle, cardHeadingTag }) => {\r\n const model = new CardModel(card);\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const [showOverlay, setShowOverlay] = useState(false);\r\n const { thumbnailImgSrc } = getThumbnailProps(model.video?.value?.href || '');\r\n const closeOverlayModal = (): void => setShowOverlay(false);\r\n const [showSplitModule, setShowSplitModule] = useState(false);\r\n const handleSplitModuleModal = (state: boolean): void => setShowSplitModule(state);\r\n\r\n const showOverlayVideo = (): void => {\r\n if (!model.useVideo) return;\r\n setShowOverlay(true);\r\n };\r\n\r\n const imageOrThumbnail = getImageField(model.image, thumbnailImgSrc || '', model.useVideo);\r\n const mobileImageOrThumbnail = getImageField(model.mobileImage, thumbnailImgSrc || '', model.useVideo);\r\n\r\n const getOverlayProps = useCallback(() => {\r\n return [\r\n {\r\n id: id,\r\n desktopImage: imageOrThumbnail,\r\n mobileImage: mobileImageOrThumbnail,\r\n fullImage: imageOrThumbnail,\r\n desktopAlt: imageOrThumbnail?.value?.alt as string,\r\n mobileAlt: mobileImageOrThumbnail?.value?.alt as string,\r\n isVideo: model?.useVideo,\r\n videoUrl: model?.video?.value?.href,\r\n autoplay: true,\r\n },\r\n ];\r\n }, [id, imageOrThumbnail, mobileImageOrThumbnail, model]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n {model?.video && model?.useVideo && (\r\n googleClickOpenVideoEvent(model.title?.value || '', cardIndex + 1)}\r\n >\r\n \r\n \r\n )}\r\n {model?.showPopupWithSplitModule && model?.splitModules && (\r\n handleSplitModuleModal(false)} className=\"split-module-modal\">\r\n {model.splitModules.map((splitModule, index) => (\r\n \r\n ))}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Card;\r\n","import React, { FC } from 'react';\r\nimport { TCardColumnLayoutProps, TCardFields } from './types/cardColumnLayout.types';\r\nimport { CardColumnLayoutModel } from './models/cardColumnLayout.model';\r\nimport { withSitecoreContext, Placeholder, ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport Card from './components/card';\r\nimport Heading from '../@shared/heading';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst CardColumnLayout: FC = (props: TCardColumnLayoutProps) => {\r\n const model = new CardColumnLayoutModel(props);\r\n const isEE = !!props?.sitecoreContext?.pageEditing;\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n {model.cards &&\r\n model.cards.map((card: TCardFields, index: number) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(CardColumnLayout);\r\n","import { TCardGridFields, TCardGridProps } from '../types/cardGrid.types';\r\nimport { CardProps, StringField, TComponentParamsGeneral, THeadingTag } from '../../../types/types';\r\nimport { getFollowingHTag } from '../../../utils/seo.utils';\r\n\r\nexport class CardGridModel {\r\n private readonly fields?: TCardGridFields;\r\n private readonly params?: TComponentParamsGeneral;\r\n\r\n constructor(props: TCardGridProps) {\r\n this.fields = props?.fields;\r\n this.params = props?.params;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get subtitle(): StringField | undefined {\r\n return this.fields?.subtitle;\r\n }\r\n\r\n get cards(): Array {\r\n return this.fields?.items || [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h3';\r\n }\r\n\r\n get cardHeadingTitleTag(): THeadingTag {\r\n return getFollowingHTag(this.headingTag);\r\n }\r\n}\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport useEEActive from '../../../../hooks/useEEActive';\r\nimport CTAButton, { ctaEnums } from '../../../@shared/ctaButton';\r\nimport CustomExternalAnchor from '../../../@shared/customExternalAnchor';\r\nimport Picture from '../../../@shared/picture';\r\nimport { TGridCardProps } from '../../types/cardGrid.types';\r\n\r\nconst GridCard: FC = ({ id, dataSource, image, mobileImage, cardHeadingTag, title, subtitle, link }) => {\r\n const isEE = useEEActive();\r\n return (\r\n <>\r\n
\r\n \r\n {!isEE &&
}\r\n
\r\n \r\n \r\n {(isEE || (link?.value?.text && link?.value?.href)) && (\r\n
\r\n \r\n {isEE ? : {link?.value?.text}}\r\n \r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default GridCard;\r\n","import React from 'react';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport useEEActive from '../../../../hooks/useEEActive';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { CardModel } from '../../../../lib/shared-models/card.model';\r\nimport { CardProps, THeadingTag } from '../../../../types/types';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\nimport GridCard from './gridCard';\r\n\r\nconst GridCardWrapper = (props: CardProps & { cardHeadingTag: THeadingTag }): JSX.Element => {\r\n const model = new CardModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const isEE = useEEActive();\r\n\r\n return (\r\n <>\r\n {isEE ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default GridCardWrapper;\r\n","import React, { useRef, useState, FC } from 'react';\r\nimport Slider from 'react-slick';\r\nimport LazySection from '../@shared/lazySection';\r\nimport { windowService } from '../../utils/window.utils';\r\nimport { getCustomPaging } from '../@shared/carouselDots';\r\nimport { TCardGridProps } from './types/cardGrid.types';\r\nimport { CardGridModel } from './models/cardGrid.model';\r\nimport Heading from '../@shared/heading';\r\nimport CardGridCard from './components/cardGridCard';\r\nimport CarouselArrow from '../@shared/carouselArrow';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport appendDots from '../@shared/customCarouselDots/appendDots';\r\n\r\n// use only in useEffect / functions that runs only client-side\r\nconst getSlidesToShow = (): number => {\r\n const breakpointMd = windowService().matchMedia('(min-width: 450px)').matches;\r\n if (breakpointMd) {\r\n const breakpointLg = windowService().matchMedia('(min-width: 1000px)').matches;\r\n if (breakpointLg) {\r\n return 4;\r\n }\r\n return 2;\r\n }\r\n return 1.2;\r\n};\r\n\r\nconst CardGrid: FC = (props) => {\r\n const model = new CardGridModel(props);\r\n const cardsCount = model?.cards?.length;\r\n const generateCards = model?.cards?.map((item) => );\r\n const [activeCardIndex, updateActiveCardIndex] = useState(0);\r\n\r\n const cardGridWrapperRef = useRef(null);\r\n\r\n const settings = {\r\n arrows: true,\r\n dots: true,\r\n slidesToScroll: 1,\r\n slidesToShow: 4,\r\n nextArrow: ,\r\n prevArrow: ,\r\n customPaging: getCustomPaging,\r\n infinite: false,\r\n responsive: [\r\n { breakpoint: 1000, settings: { slidesToShow: 2 } },\r\n { breakpoint: 450, settings: { slidesToShow: 1.2 } },\r\n ],\r\n appendDots: (dots) => appendDots({ dots, cardsCount, activeCardIndex, showCustomDots: cardsCount > 5 }),\r\n };\r\n\r\n const activeClass = 'slick-active';\r\n\r\n const isLastDecimalSlide = (currentSlide): boolean => {\r\n const slidesToShow = getSlidesToShow();\r\n const slideTotal = model.cards.length;\r\n return +currentSlide.toFixed(2) === +(slideTotal - slidesToShow).toFixed(2);\r\n };\r\n\r\n const beforeChange = function (_, nextSlide): void {\r\n updateActiveCardIndex(nextSlide);\r\n if (cardGridWrapperRef.current) {\r\n const lastPaginationEl = (cardGridWrapperRef.current as HTMLElement).querySelector('.slick-dots li:last-child');\r\n if (lastPaginationEl && isLastDecimalSlide(nextSlide)) {\r\n lastPaginationEl?.classList.add(activeClass);\r\n } else {\r\n lastPaginationEl?.classList.remove(activeClass);\r\n }\r\n }\r\n };\r\n\r\n const afterChange = function (currentSlide: number): void {\r\n if (cardGridWrapperRef.current) {\r\n const lastPaginationEl = (cardGridWrapperRef.current as HTMLElement).querySelector('.slick-dots li:last-child');\r\n if (lastPaginationEl && isLastDecimalSlide(currentSlide)) {\r\n lastPaginationEl?.classList.add(activeClass);\r\n } else {\r\n lastPaginationEl?.classList.remove(activeClass);\r\n }\r\n }\r\n };\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {generateCards}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CardGrid;\r\n","import { StringField } from '../../../types/types';\r\n\r\nimport { TCustomHtmlComponentProps, TCustomHtmlComponentFields } from '../types/customHtmlComponent.types';\r\n\r\nexport class CustomHtmlComponentModel {\r\n private readonly fields: null | TCustomHtmlComponentFields;\r\n\r\n constructor(props: TCustomHtmlComponentProps) {\r\n this.fields = props?.fields || null;\r\n }\r\n\r\n get getInnerHtml(): StringField | undefined {\r\n return this.fields?.customHtml;\r\n }\r\n}\r\n","import React, { FC, useEffect, useRef } from 'react';\r\nimport { documentService } from '../../../utils/window.utils.js';\r\nimport { TDangerouslySetHtmlAndJSProps } from './types/dangerouslySetHtmlAndJS.props.js';\r\n\r\nconst DangerouslySetHtmlAndJS: FC = ({ html, ...rest }) => {\r\n const divRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (!html || !divRef.current) {\r\n return;\r\n }\r\n\r\n const htmlSlot = documentService().createRange().createContextualFragment(html);\r\n divRef.current.innerHTML = '';\r\n divRef.current.appendChild(htmlSlot);\r\n }, [html, divRef]);\r\n\r\n // eslint-disable-next-line react/react-in-jsx-scope\r\n return
;\r\n};\r\n\r\nexport default DangerouslySetHtmlAndJS;\r\n","import React, { FC } from 'react';\r\nimport { TCustomHtmlComponentProps } from './types/customHtmlComponent.types';\r\nimport { CustomHtmlComponentModel } from './models/customHtmlComponentModel.model';\r\nimport DangerouslySetHtmlAndJS from '../@shared/dangerouslySetHtmlAndJS';\r\n\r\nconst CustomHtml: FC = (props) => {\r\n const model = new CustomHtmlComponentModel(props);\r\n const html = model.getInnerHtml?.value || '';\r\n\r\n return ;\r\n};\r\nexport default CustomHtml;\r\n","import React, { FC } from 'react';\r\nimport { TNavigationBarProps } from '../@shared/sharedBreadcrumbBar/types/breadcrumbBar.types';\r\nimport SharedBreadcrumbBar from '../@shared/sharedBreadcrumbBar';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nconst DealerLocatorBreadcrumbBar: FC = (props: TNavigationBarProps) => {\r\n const location = useLocation();\r\n\r\n const appendQueryParams = (url: string): string => {\r\n if (!location?.pathname || !location?.search) {\r\n return url;\r\n }\r\n\r\n // Dealer detail page URL pattern: .../dealer-landing-page/dealer-name/dealer-number\r\n // Remove last two segments from URL to get Dealer Landing page and append query string\r\n const dealerLandingUrlSegments = location?.pathname?.split('/');\r\n const dealerLandingUrl = dealerLandingUrlSegments?.slice(0, dealerLandingUrlSegments.length - 2)?.join('/');\r\n\r\n if (decodeURI(dealerLandingUrl) === url) {\r\n return `${url}${location.search}`;\r\n }\r\n\r\n return url;\r\n };\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\nexport default DealerLocatorBreadcrumbBar;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { WithSitecoreContextProps } from '../../../types/types';\r\nimport { TSocialMediaBarProps } from '../../@shared/socialMediaBar/types/socialMediaBar.types';\r\n\r\nexport enum Weekdays {\r\n monday = 'monday',\r\n tuesday = 'tuesday',\r\n wednesday = 'wednesday',\r\n thursday = 'thursday',\r\n friday = 'friday',\r\n saturday = 'saturday',\r\n sunday = 'sunday',\r\n}\r\n\r\nexport type TBusinessHours = {\r\n [key: string]: string;\r\n};\r\n\r\nexport type TBusinessHoursMappedValue = {\r\n [key: string]: string[];\r\n};\r\n\r\nexport type TBusinessHoursModelValue = {\r\n hours: TBusinessHoursMappedValue;\r\n hasMorningHours: boolean;\r\n hasEveningHours: boolean;\r\n};\r\n\r\nexport type TAwardProps = Partial<{\r\n brand: string;\r\n designationName: string;\r\n imageUrl: string;\r\n landingImageUrl: string;\r\n}>;\r\n\r\nexport type TDealershipAttributes = Partial<{\r\n website: string;\r\n logoImage: string;\r\n photoImage: string;\r\n message: string;\r\n promo: string;\r\n awardDesignations: TAwardProps[];\r\n sundayAMStart: string;\r\n sundayAMEnd: string;\r\n sundayPMStart: string;\r\n sundayPMEnd: string;\r\n mondayAMStart: string;\r\n mondayAMEnd: string;\r\n mondayPMStart: string;\r\n mondayPMEnd: string;\r\n tuesdayAMStart: string;\r\n tuesdayAMEnd: string;\r\n tuesdayPMStart: string;\r\n tuesdayPMEnd: string;\r\n wednesdayAMStart: string;\r\n wednesdayAMEnd: string;\r\n wednesdayPMStart: string;\r\n wednesdayPMEnd: string;\r\n thursdayAMStart: string;\r\n thursdayAMEnd: string;\r\n thursdayPMStart: string;\r\n thursdayPMEnd: string;\r\n fridayAMStart: string;\r\n fridayAMEnd: string;\r\n fridayPMStart: string;\r\n fridayPMEnd: string;\r\n saturdayAMStart: string;\r\n saturdayAMEnd: string;\r\n saturdayPMStart: string;\r\n saturdayPMEnd: string;\r\n}>;\r\n\r\nexport type TDealerDetailProps = Partial<{\r\n dealerName: string;\r\n shippingAddress: string;\r\n shippingAddress1: string;\r\n shippingCity: string;\r\n shippingZip: string;\r\n shippingPhone: string;\r\n dealerWebsite: string;\r\n shippingFax: string;\r\n dealerEmail: string;\r\n latitude: string;\r\n longitude: string;\r\n BusinessHour: TBusinessHours;\r\n dealershipAttributes: TDealershipAttributes;\r\n shippingStateProv:string;\r\n}>;\r\n\r\nexport type TDealerLocatorDetailFilterDetails = Partial<{\r\n Title: string;\r\n Code: string;\r\n Icon: string;\r\n}>;\r\n\r\nexport type TDealerLocatorDetailFilters = Partial<{\r\n Equipments: Array;\r\n Services: Array;\r\n}>;\r\n\r\nexport type TDealerLocatorDetailItemData = Partial<{\r\n fields: {\r\n settings: {\r\n dealerLocatorGoogleMapsAPIKey: string;\r\n };\r\n filters: TDealerLocatorDetailFilters;\r\n };\r\n}>;\r\n\r\nexport type TDealerLocatorDetailApiData = {\r\n dealerDetail: TDealerDetailProps;\r\n};\r\n\r\nexport type TDealerLocatorPropsFields = {\r\n apiData: TDealerLocatorDetailApiData;\r\n itemData: TDealerLocatorDetailItemData;\r\n isComponentUnreleased?: boolean;\r\n socialMediaBar?: TSocialMediaBarProps;\r\n};\r\n\r\nexport type TDealerLocatorDetailProps = WithSitecoreContextProps & {\r\n componentName?: string;\r\n fields: TDealerLocatorPropsFields;\r\n rendering?: ComponentRendering;\r\n params?: any;\r\n};\r\n\r\nexport type TDealerContactsProps = {\r\n apiKey: string;\r\n latitude: string;\r\n longitude: string;\r\n addressDetails: TAddressDetails;\r\n};\r\n\r\nexport type TAddressDetails = Partial<{\r\n fax: string;\r\n phone: string;\r\n email: string;\r\n website: string;\r\n address: string;\r\n}>;\r\n\r\nexport type TBusinessHoursProps = {\r\n businessHours: TBusinessHoursModelValue;\r\n hasBusinessHours: boolean;\r\n certifications: TAwardProps[];\r\n hasCertifications: boolean;\r\n};\r\n","import { THeadingTag, TStringField } from '../../../types/types';\r\nimport { isEmptyObject } from '../../../utils/checkEmptyObject';\r\nimport { TSocialMediaBarProps } from '../../@shared/socialMediaBar/types/socialMediaBar.types';\r\nimport {\r\n TAddressDetails,\r\n TAwardProps,\r\n TBusinessHoursMappedValue,\r\n TBusinessHoursModelValue,\r\n TDealerDetailProps,\r\n TDealerLocatorDetailFilterDetails,\r\n TDealerLocatorDetailItemData,\r\n TDealerLocatorDetailProps,\r\n TDealerLocatorPropsFields,\r\n Weekdays,\r\n} from '../types/dealerLocatorDetail.types';\r\n\r\nexport class DealerLocatorModel {\r\n private readonly fields?: TDealerLocatorPropsFields;\r\n private readonly context?: any;\r\n private readonly itemData?: TDealerLocatorDetailItemData;\r\n private readonly params?: any;\r\n private readonly dealerDetails?: TDealerDetailProps;\r\n\r\n constructor(props: TDealerLocatorDetailProps) {\r\n this.fields = props.fields || undefined;\r\n this.dealerDetails = this.fields?.apiData?.dealerDetail;\r\n this.params = props.params;\r\n this.context = props?.sitecoreContext;\r\n this.itemData = props?.fields?.itemData;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h2';\r\n }\r\n\r\n get dealerLocatorGoogleMapsAPIKey(): string {\r\n return this?.itemData?.fields?.settings?.dealerLocatorGoogleMapsAPIKey ?? '';\r\n }\r\n\r\n get latitude(): string {\r\n return this.dealerDetails?.latitude ?? '';\r\n }\r\n\r\n get longitude(): string {\r\n return this.dealerDetails?.longitude ?? '';\r\n }\r\n\r\n get addressDetails(): TAddressDetails {\r\n return {\r\n fax: this.dealerDetails?.shippingFax,\r\n phone: this.dealerDetails?.shippingPhone,\r\n email: this.dealerDetails?.dealerEmail,\r\n website: this.dealerDetails?.dealershipAttributes?.website,\r\n address: `${this.dealerDetails?.shippingAddress1}, ${this.dealerDetails?.shippingCity}, ${this.dealerDetails?.shippingStateProv || ''} ${this.dealerDetails?.shippingZip}`,\r\n };\r\n }\r\n get businessHours(): TBusinessHoursModelValue {\r\n const dealerAttributes = this.dealerDetails?.dealershipAttributes;\r\n const hoursInDay = ['AMStart', 'AMEnd', 'PMStart', 'PMEnd'];\r\n const hours: TBusinessHoursMappedValue = {};\r\n let hasMorningHours = false;\r\n let hasEveningHours = false;\r\n\r\n if (dealerAttributes) {\r\n for (const day in Weekdays) {\r\n let morningHour = '';\r\n if (dealerAttributes[day + hoursInDay[0]]) {\r\n morningHour = morningHour + dealerAttributes[day + hoursInDay[0]];\r\n }\r\n morningHour = morningHour + ' - ';\r\n if (dealerAttributes[day + hoursInDay[1]]) {\r\n morningHour = morningHour + dealerAttributes[day + hoursInDay[1]];\r\n }\r\n\r\n let eveningHour = '';\r\n if (dealerAttributes[day + hoursInDay[2]]) {\r\n eveningHour = eveningHour + dealerAttributes[day + hoursInDay[2]];\r\n }\r\n eveningHour = eveningHour + ' - ';\r\n if (dealerAttributes[day + hoursInDay[3]]) {\r\n eveningHour = eveningHour + dealerAttributes[day + hoursInDay[3]];\r\n }\r\n\r\n if (morningHour.trim() !== '-') {\r\n hasMorningHours = true;\r\n }\r\n\r\n if (eveningHour.trim() !== '-') {\r\n hasEveningHours = true;\r\n }\r\n\r\n hours[day] = [morningHour.trim(), eveningHour.trim()];\r\n }\r\n }\r\n return {\r\n hours: hours,\r\n hasMorningHours: hasMorningHours,\r\n hasEveningHours: hasEveningHours,\r\n };\r\n }\r\n\r\n get hasBusinessHours(): boolean {\r\n return this.businessHours.hasMorningHours || this.businessHours.hasEveningHours;\r\n }\r\n\r\n get siteLanguage(): string {\r\n return this.context?.language || '';\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get dealerExists(): boolean {\r\n return !!this.dealerDetails?.dealerName;\r\n }\r\n\r\n get dealerName(): TStringField {\r\n return { value: this.dealerDetails?.dealerName };\r\n }\r\n\r\n get descriptionExists(): boolean {\r\n return !!this.dealerDetails?.dealershipAttributes?.message;\r\n }\r\n\r\n get description(): TStringField {\r\n const dealerAttributes = this.dealerDetails?.dealershipAttributes;\r\n return { value: dealerAttributes?.message };\r\n }\r\n\r\n get socialMediaBarProps(): TSocialMediaBarProps | undefined {\r\n return isEmptyObject(this.fields?.socialMediaBar) ? undefined : this.fields?.socialMediaBar;\r\n }\r\n\r\n get dealerImage(): string | undefined {\r\n const dealerAttributes = this.dealerDetails?.dealershipAttributes;\r\n const photoImage = dealerAttributes?.photoImage;\r\n return photoImage;\r\n }\r\n\r\n get logoImage(): string | undefined {\r\n const dealerAttributes = this.dealerDetails?.dealershipAttributes;\r\n const logoImage = dealerAttributes?.logoImage;\r\n return logoImage;\r\n }\r\n\r\n get mediaExists(): boolean {\r\n return !!(this.dealerImage ?? this.logoImage);\r\n }\r\n\r\n get promotionsExist(): boolean {\r\n return !!this.dealerDetails?.dealershipAttributes?.promo;\r\n }\r\n\r\n get promotions(): TStringField {\r\n const dealerAttributes = this.dealerDetails?.dealershipAttributes;\r\n return { value: dealerAttributes?.promo };\r\n }\r\n\r\n get certifications(): TAwardProps[] {\r\n const dealerAttributes = this.dealerDetails?.dealershipAttributes;\r\n const awardDesignations = dealerAttributes?.awardDesignations;\r\n return awardDesignations ?? [];\r\n }\r\n\r\n get hasCertifications(): boolean {\r\n return this.certifications.length > 0;\r\n }\r\n\r\n get businessHoursAndCertificationsSectionExists(): boolean {\r\n return this.hasBusinessHours || this.hasCertifications;\r\n }\r\n\r\n get equipments(): TDealerLocatorDetailFilterDetails[] {\r\n return this.itemData?.fields?.filters?.Equipments ?? [];\r\n }\r\n\r\n get services(): TDealerLocatorDetailFilterDetails[] {\r\n return this.itemData?.fields?.filters?.Services ?? [];\r\n }\r\n}\r\n","import { TStringField } from '../../../../types/types';\r\nimport { TSocialLink, TSocialMediaBarProps } from '../types/socialMediaBar.types';\r\n\r\nexport class SocialMediaBarModel {\r\n private readonly items: TSocialMediaBarProps['items'];\r\n private readonly title: TSocialMediaBarProps['title'];\r\n\r\n constructor(props: TSocialMediaBarProps) {\r\n this.items = props.items;\r\n this.title = props.title;\r\n }\r\n\r\n get socialText(): TStringField | undefined {\r\n return this.title;\r\n }\r\n\r\n get socialLinksItems(): TSocialLink[] | undefined {\r\n return this.items?.slice(0, 4);\r\n }\r\n}\r\n","import { ComponentConsumerProps, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport React from 'react';\r\nimport { TEditFrameProps } from './types/editFrame.types';\r\n\r\nexport const EditFrameWrapper: React.FC = ({\r\n itemId,\r\n fields,\r\n header,\r\n icon,\r\n disabledIcon,\r\n tooltip,\r\n command,\r\n commandDisplayName,\r\n databaseName,\r\n language,\r\n children,\r\n}) => {\r\n // ensure fields and itemId are configured\r\n if (!itemId || !fields) {\r\n return null;\r\n }\r\n\r\n // item uri for edit frame target\r\n const contextItemUri = `sitecore://${databaseName}/${itemId}?lang=${language}`;\r\n\r\n // click action for edit frame command\r\n const clickCommandAction = `webedit:fieldeditor(command=${command},fields=${fields.join('|')},id=${itemId})`;\r\n\r\n // click for command for the edit frame\r\n const clickCommand = {\r\n click: `javascript:Sitecore.PageModes.PageEditor.postRequest('${clickCommandAction}',null,false)`,\r\n header: header,\r\n icon: icon,\r\n disabledIcon: disabledIcon,\r\n isDivider: false,\r\n tooltip: tooltip || `Edit the following fields: ${fields.join(', ')}`,\r\n type: null,\r\n };\r\n\r\n // command data that is serialized for the edit frame\r\n const commandData = {\r\n commands: [clickCommand],\r\n contextItemUri: contextItemUri,\r\n custom: {},\r\n displayName: commandDisplayName || 'Edit Properties',\r\n expandedDisplayName: '',\r\n };\r\n\r\n // edit frame attributes\r\n const divAttrs = {\r\n sc_item: contextItemUri,\r\n 'sc-part-of': 'editframe',\r\n };\r\n\r\n return (\r\n
\r\n {JSON.stringify(commandData)}\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport const EditFrameComponent: React.FC = ({\r\n sitecoreContext,\r\n children,\r\n itemId,\r\n fields,\r\n hideIfNotPageEditing,\r\n databaseName,\r\n language,\r\n ...otherProps\r\n}) => {\r\n // check if we're in experience editor and configured properly\r\n const shouldRender = sitecoreContext?.pageEditing && itemId && fields && fields.length;\r\n\r\n // hide if not in page editing mode and prop is passed telling us to hide\r\n if (!shouldRender && hideIfNotPageEditing) {\r\n return null;\r\n }\r\n\r\n // if we're configured properly, wrap in edit frame.\r\n const WrapperComponent = shouldRender ? EditFrameWrapper : React.Fragment;\r\n\r\n // build the props for our edit frame\r\n const WrapperProps = {\r\n itemId,\r\n fields,\r\n databaseName: databaseName || sitecoreContext?.route?.databaseName,\r\n language: language || sitecoreContext?.language,\r\n sitecoreContext,\r\n ...otherProps,\r\n };\r\n\r\n return {children};\r\n};\r\n\r\nEditFrameComponent.defaultProps = {\r\n itemId: '',\r\n fields: [],\r\n header: 'Edit Fields',\r\n icon: '/~/icon/people/16x16/cubes_blue.png',\r\n disabledIcon: '/temp/cubes_blue_disabled16x16.png',\r\n command: '{70C4EED5-D4CD-4D7D-9763-80C42504F5E7}',\r\n};\r\n\r\nexport const EditFrame = withSitecoreContext()(EditFrameComponent);\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport Icon from '../../icon';\r\nimport { TEELink } from '../types/socialMediaBar.types';\r\nimport fields, { socialMediaBarFields } from '../../../../constants/fields.const';\r\nimport { EditFrameComponent } from '../../editFrame';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\n\r\nconst EELink: FC = (props) => {\r\n const { item } = props;\r\n const {sitecoreContext} = useSitecoreContext();\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EELink;\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport Icon from '../../icon';\r\nimport RoutableNotEditableLink from '../../routableNotEditableLink';\r\nimport { TRegularLink } from '../types/socialMediaBar.types';\r\nimport { googleSocialEvent } from '../../../../utils/analytics';\r\n\r\nconst RegularLink: FC = (props) => {\r\n const { item, socialMediaButtonName, useAnalytics } = props;\r\n\r\n return (\r\n useAnalytics && googleSocialEvent(item.fields.socialMedia.displayName)}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default RegularLink;\r\n","import React, { FC } from 'react';\r\nimport { TSocialLink, TSocialLinks } from '../types/socialMediaBar.types';\r\nimport EELink from './eeLink';\r\nimport RegularLink from './regularLink';\r\n\r\nconst SocialLinks: FC = (props) => {\r\n const { isEEactive, socialLinksItems, useAnalytics } = props;\r\n return (\r\n <>\r\n {socialLinksItems\r\n ?.filter((item) => !!(isEEactive || (item?.fields?.icon?.fields?.iconKey?.value && item?.fields?.icon?.fields?.iconUrl?.value)))\r\n ?.map((item: TSocialLink) => {\r\n return isEEactive ? (\r\n \r\n ) : (\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default SocialLinks;\r\n","export const ADD_TO_ANY_SHARE_SCRIPT_STATIC_URL = \"https://static.addtoany.com/menu/page.js\";","import { ADD_TO_ANY_SHARE_SCRIPT_STATIC_URL } from '../constants/addToAny.constants';\r\nimport { documentService, windowService } from './window.utils';\r\n\r\nexport const addToAnyScript = () => {\r\n const addthisScript = documentService()?.createElement?.('script');\r\n addthisScript.setAttribute('src', ADD_TO_ANY_SHARE_SCRIPT_STATIC_URL);\r\n const shareContentScript = documentService()?.querySelector?.(`[src=\"${ADD_TO_ANY_SHARE_SCRIPT_STATIC_URL}\"]`);\r\n if (documentService()?.body && !shareContentScript) documentService()?.body?.appendChild?.(addthisScript);\r\n else windowService()?.a2a?.init_all?.();\r\n};\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC, useEffect, useRef, useState } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport { googleSocialEvent } from '../../../../../utils/analytics';\r\nimport { documentService, windowService } from '../../../../../utils/window.utils';\r\nimport Icon from '../../../icon';\r\nimport RoutableNotEditableLink from '../../../routableNotEditableLink';\r\nimport { TSocialLink, TSocialMediaDropdownProps } from '../../types/socialMediaBar.types';\r\n\r\nconst SocialMediaDropdown: FC = (props) => {\r\n const { isEEactive, socialLinksItems, useAnalytics, socialText, shareURL } = props;\r\n const [shouldShowDropdownList, setShouldShowDropdownList] = useState(false);\r\n const dropdownElmRef = useRef(null);\r\n\r\n const handleClickOutside = (e) => {\r\n if (dropdownElmRef?.current?.contains(e?.target)) return;\r\n setShouldShowDropdownList(false);\r\n };\r\n\r\n useEffect(() => {\r\n const doc = documentService() as Document;\r\n doc.addEventListener('click', handleClickOutside, false);\r\n\r\n return () => doc.removeEventListener('click', handleClickOutside, false);\r\n }, [socialLinksItems]);\r\n\r\n useEffect(() => {\r\n if (shouldShowDropdownList) windowService()?.a2a?.init_all?.();\r\n }, [shouldShowDropdownList])\r\n\r\n return (\r\n
\r\n setShouldShowDropdownList(!shouldShowDropdownList)}\r\n ref={dropdownElmRef}\r\n >\r\n {socialText && }\r\n \r\n \r\n {shouldShowDropdownList && (\r\n
    \r\n {socialLinksItems\r\n ?.filter((item) => !!(isEEactive || (item?.fields?.icon?.fields?.iconKey?.value && item?.fields?.icon?.fields?.iconUrl?.value)))\r\n ?.map((item: TSocialLink) => {\r\n return (\r\n
  • \r\n !isEEactive && useAnalytics && googleSocialEvent(item?.fields?.socialMedia?.displayName)}\r\n >\r\n

    \r\n {item?.fields?.socialMedia?.displayName}\r\n

    \r\n \r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default SocialMediaDropdown;\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC, useEffect, useMemo } from 'react';\r\nimport { BreakpointsInPx } from '../../../constants/breakpoints.constants';\r\nimport useEEActive from '../../../hooks/useEEActive';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { SocialMediaBarModel } from './models/socialMediaBar.model';\r\nimport { TSocialMediaBarProps } from './types/socialMediaBar.types';\r\nimport SocialLinks from './components/socialLinks';\r\nimport { windowService } from '../../../utils/window.utils';\r\nimport { addToAnyScript } from '../../../utils/addToAnyScript.utils';\r\nimport SocialMediaDropdown from './components/socialMediaDropdown';\r\n\r\nconst SocialMediaBar: FC = (props) => {\r\n const model = new SocialMediaBarModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const isEEactive = useEEActive();\r\n const { listType = 'bar', shareURL } = props;\r\n\r\n useEffect(() => {\r\n const a2a_config = windowService().a2a_config || {};\r\n a2a_config.templates = a2a_config.templates || {};\r\n\r\n function my_addtoany_onshare(data) {\r\n return {\r\n title: data.node.getAttribute('data-title') || '',\r\n url: data.node.getAttribute('data-is-page-url') ? windowService().location.href : '',\r\n };\r\n }\r\n\r\n a2a_config.callbacks = [];\r\n a2a_config.callbacks.push({\r\n share: my_addtoany_onshare,\r\n });\r\n\r\n windowService().a2a_config = a2a_config;\r\n }, []);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n addToAnyScript();\r\n });\r\n }, []);\r\n\r\n const countValidSocialLinks = useMemo(() => {\r\n return (\r\n model.socialLinksItems?.filter(\r\n (item) => !!(isEEactive || (item?.fields?.icon?.fields?.iconKey?.value && item?.fields?.icon?.fields?.iconUrl?.value))\r\n ).length || 0\r\n );\r\n }, [model.socialLinksItems]);\r\n\r\n if ((!isDesktop && !props.showInMobile) || countValidSocialLinks === 0) return null;\r\n\r\n if (listType === 'dropdown') {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {model?.socialText && }\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SocialMediaBar;\r\n","import React, { FC } from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport Icon from '../../../../@shared/icon';\r\nimport RoutableNotEditableLink from '../../../../@shared/routableNotEditableLink';\r\n\r\nconst DealerLocatorAttribute: FC<{ iconName: string; attribute: string; href: string; hasUnderline: boolean; openInNewTab?: boolean }> = (props) => {\r\n const { iconName, attribute, href, hasUnderline, openInNewTab=false } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DealerLocatorAttribute;\r\n","const maxZoomSize = 21;\r\nconst minZoomSize = 0;\r\nconst staticMapInitialZoom = 11;\r\nconst gooleMapUrl = 'https://www.google.com/maps/search/?api=1&query=';\r\nconst googleStaticMapUrl = 'https://maps.googleapis.com/maps/api/staticmap';\r\nexport { maxZoomSize, minZoomSize, gooleMapUrl, googleStaticMapUrl, staticMapInitialZoom };\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPinDealerDetail(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 40,\n viewBox: \"0 0 32 40\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 0c8.774 0 15.912 7.066 16 15.84C32 26.8 18 39 17.3 39.52a2 2 0 0 1-2.6 0c-.157-.136-1.232-1.066-2.736-2.562l-.384-.386C7.257 32.203 0 23.702 0 15.84.088 7.066 7.226 0 16 0zm8.012 30H8.052c4.48 5.076 6.792 7.657 6.937 7.743.588.343 1.453.343 2.04 0 .171-.086 2.499-2.667 6.983-7.743zM16 21a6 6 0 1 0 0-12 6 6 0 0 0 0 12z\",\n fill: \"#A71930\",\n fillRule: \"evenodd\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPinDealerDetail);\nexport default __webpack_public_path__ + \"static/media/pin-dealer-detail.02df16f999ad4f3fae01c204a30c0b57.svg\";\nexport { ForwardRef as ReactComponent };","import React, { FC, useState, useRef, useEffect } from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { TDealerContactsProps } from '../../types/dealerLocatorDetail.types';\r\nimport DealerLocatorAttribute from './dealerContactAttribute';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { googleStaticMapUrl, gooleMapUrl, maxZoomSize, staticMapInitialZoom } from '../../../../constants/map.constatnts';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport dealerPinSvg from '../../../../assets/pin-dealer-detail.svg';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { windowService } from '../../../../utils/window.utils';\r\n\r\nconst DealerLocatorContacts: FC = ({ addressDetails, apiKey, latitude, longitude }) => {\r\n const { t } = useTranslation();\r\n const mapContainerRef = useRef(null);\r\n const [zoom, setZoom] = useState(staticMapInitialZoom);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const [mapWidth, setMapWidth] = useState(392);\r\n const [mapVisisble, setMapVisibility] = useState(false);\r\n const mapHeight = isDesktop ? 392 : 343;\r\n\r\n const updateMapWidth = () => {\r\n if (!isDesktop && mapContainerRef?.current) {\r\n setMapWidth(mapContainerRef?.current?.clientWidth);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n updateMapWidth();\r\n if (!mapVisisble) {\r\n setMapVisibility(true);\r\n }\r\n }, [mapContainerRef]);\r\n\r\n useEffect(() => {\r\n windowService()?.addEventListener('resize', updateMapWidth);\r\n return () => {\r\n windowService()?.removeEventListener('resize', updateMapWidth);\r\n };\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {addressDetails?.address && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n {addressDetails?.fax && (\r\n \r\n )}\r\n {addressDetails?.phone && (\r\n \r\n )}\r\n {addressDetails?.email && (\r\n \r\n )}\r\n {addressDetails?.website && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n \"\"\r\n \r\n zoom < maxZoomSize && setZoom(zoom + 1)}\r\n >\r\n \r\n
\r\n zoom > 1 && setZoom(zoom - 1)}\r\n >\r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default DealerLocatorContacts;\r\n","import React, { FC } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { TBusinessHoursProps } from '../../types/dealerLocatorDetail.types';\r\nimport Picture from '../../../@shared/picture';\r\n\r\nconst BusinessHoursAndCertificationsSection: FC = (props) => {\r\n const { t } = useTranslation();\r\n const { hasBusinessHours, businessHours, hasCertifications, certifications } = props;\r\n const tableRecords: JSX.Element[] = Object.keys(businessHours.hours).map((day) => {\r\n return (\r\n \r\n {t(day)}\r\n {businessHours.hasMorningHours && {businessHours.hours[day][0]}}\r\n {businessHours.hasEveningHours && {businessHours.hours[day][1]}}\r\n \r\n );\r\n });\r\n return (\r\n
\r\n {hasBusinessHours && (\r\n
\r\n
{t('cnhi-dealerLocatorBusinessHours')}
\r\n
{tableRecords}
\r\n
\r\n )}\r\n {hasCertifications && (\r\n
\r\n
{t('cnhi-dealerLocatorCertifications')}
\r\n
\r\n {certifications.map((cert) => (\r\n \r\n ))}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default BusinessHoursAndCertificationsSection;\r\n","export const replaceSubStrings = (actualString: string, subString: string, replaceWith = ''): string => {\r\n return actualString.replace(new RegExp(subString, 'g'), replaceWith);\r\n};\r\n","import React, { FC } from 'react';\r\nimport './styles.scss';\r\nimport { TDealerLocatorDetailFilterDetails } from '../../types/dealerLocatorDetail.types';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Picture from '../../../@shared/picture';\r\n\r\nconst DealerEquipmentsServices: FC<{ filterDetails: TDealerLocatorDetailFilterDetails[]; titeDictonaryKey: string }> = ({\r\n filterDetails,\r\n titeDictonaryKey,\r\n}) => {\r\n if (filterDetails.length === 0) return null;\r\n\r\n return (\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n {filterDetails.map(\r\n ({ Title, Icon }) =>\r\n (Title || Icon) && (\r\n
\r\n \r\n {Title &&

{Title}

}\r\n
\r\n )\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DealerEquipmentsServices;\r\n","import React, { FC } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Text, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { DealerLocatorModel } from './models/dealerLocatorDetail.model';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport SocialMediaBar from '../@shared/socialMediaBar';\r\nimport Picture from '../@shared/picture';\r\nimport DealerLocatorContacts from './components/dealerContactsSection';\r\nimport { TDealerLocatorDetailProps } from './types/dealerLocatorDetail.types';\r\nimport BusinessHoursAndCertificationsSection from './components/businessHoursAndCertificationsSection';\r\nimport { replaceSubStrings } from '../../utils/string.utils';\r\nimport DealerEquipmentsServices from './components/dealerEquipmentsServices';\r\nimport './styles.scss';\r\n\r\nconst DealerLocatorDetail: FC = (props) => {\r\n const { t } = useTranslation();\r\n const model = new DealerLocatorModel(props);\r\n\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {model.socialMediaBarProps && (\r\n \r\n )}\r\n
\r\n {model.mediaExists && (\r\n
\r\n {model.logoImage && (\r\n \r\n )}\r\n {model.dealerImage && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n {model.descriptionExists && (\r\n \r\n )}\r\n \r\n {model.businessHoursAndCertificationsSectionExists && (\r\n \r\n )}\r\n {model?.promotionsExist && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(DealerLocatorDetail);\r\n","import { TSitecoreContext, TStringField } from '../../../types/types';\r\nimport { DealerLocatorLandingModel } from '../models/dealerLocatorLanding.model';\r\n\r\nexport type TPlaceCoordinates = {\r\n lat: number;\r\n lng: number;\r\n};\r\n\r\nexport type TResultViewMode = 'list' | 'map';\r\n\r\nexport type TDealerResultListItemProps = {\r\n dealer: TDealershipSuggestion;\r\n clickedDealerNumber: string | null;\r\n dealerIdForPinWithHover: string | null;\r\n markerNumber: number;\r\n model: DealerLocatorLandingModel;\r\n setDealerIdForPinWithHover: React.Dispatch>;\r\n setClickedDealerNumber: React.Dispatch>;\r\n country: TCountry | null;\r\n region: TState | null;\r\n setDealerIdPinHovered: React.Dispatch>;\r\n resultsViewModeInTablet: TResultViewMode;\r\n};\r\n\r\nexport type TDealerResultsListingProps = {\r\n dealers: TDealershipSuggestion | TDealershipSuggestion[];\r\n dealerIdForPinWithHover: string | null;\r\n model: DealerLocatorLandingModel;\r\n clickedDealerNumber: string | null;\r\n isLoadingDealers: boolean;\r\n setDealerIdForPinWithHover: React.Dispatch>;\r\n setClickedDealerNumber: React.Dispatch>;\r\n country: TCountry | null;\r\n region: TState | null;\r\n setDealerIdPinHovered: React.Dispatch>;\r\n resultsViewModeInTablet: TResultViewMode;\r\n};\r\n\r\nexport type TUseSuggestionsParams = {\r\n pageId: string;\r\n language: string;\r\n countryIsoCode: string | string[];\r\n resultsLimit: number;\r\n};\r\n\r\nexport type TGooglePlaceSuggestion = {\r\n description?: string;\r\n place_id: string;\r\n};\r\n\r\nexport type TDealership = {\r\n brand: string;\r\n cnhOwnershipGroupSAPNumber: string;\r\n cnhPrimarySAPNumber: string;\r\n cnhZ3SAPNumber: string;\r\n country: string;\r\n countryCode: string;\r\n dealerName: string;\r\n dealerNumber: string;\r\n dealerEmail?: string;\r\n dealerWebsite?: string;\r\n dealershipAttributes: {\r\n website: string;\r\n awardDesignations?: Array<{\r\n designationName: string;\r\n imageUrl: string;\r\n }>;\r\n isContractOverride: boolean;\r\n contractDetails: Array<{\r\n codeId: string;\r\n codeName: string;\r\n longDescription: string;\r\n shortDescription: string;\r\n }>;\r\n };\r\n hasInternalDetails: string;\r\n latitude: string;\r\n longitude: string;\r\n region: string;\r\n shippingAddress1: string;\r\n shippingCity: string;\r\n shippingFax?: string;\r\n shippingPhone?: string;\r\n shippingStateProv: string;\r\n shippingZip: string;\r\n superRegion: string;\r\n};\r\nexport type TDealershipResult = {\r\n dealership: TDealership;\r\n distance?: string;\r\n};\r\n\r\nexport type TDealershipSuggestion = TDealershipResult & {\r\n place?: {\r\n lat: string;\r\n lng: string;\r\n };\r\n};\r\n\r\nexport type TSuggestions = {\r\n googlePlacesPredictions: TGooglePlaceSuggestion[];\r\n dealershipResults: TDealershipSuggestion[];\r\n} | null;\r\n\r\nexport type TFilteredDealerResults = {\r\n dealerLocatorEquipmentsResults: string;\r\n dealerLocatorServicesResults: string;\r\n};\r\n\r\nexport type TDealerLocatorSearchProps = {\r\n model: DealerLocatorLandingModel;\r\n onDealerResults: (props: onDealerResultsProps) => void;\r\n country: TCountry | null;\r\n setCountry: React.Dispatch>;\r\n region: TState | null;\r\n setRegion: React.Dispatch>;\r\n autocompleteService: google.maps.places.AutocompleteService;\r\n placesService: google.maps.places.PlacesService;\r\n setUserLocation: React.Dispatch>;\r\n setIsLoadingDealers: React.Dispatch>;\r\n filteredDealerResults: TFilteredDealerResults;\r\n sitecoreContext?: TSitecoreContext;\r\n};\r\n\r\nexport type TSearchSwithOptionsProps = {\r\n typeName: SearchType;\r\n children?: any;\r\n};\r\n\r\nexport type TSearchSwitchProps = {\r\n type: SearchType;\r\n children: JSX.Element | JSX.Element[];\r\n};\r\n\r\nexport type TTextSearchProps = {\r\n model: DealerLocatorLandingModel;\r\n country: TCountry | null;\r\n countryIsoCode: string;\r\n label: string;\r\n onDealerSelect: (dealer: any) => void;\r\n onGooglePlaceSelect: (googlePlace: any, placeId: string, placeDescription: string, updateUrl: boolean) => void;\r\n autocompleteService: google.maps.places.AutocompleteService;\r\n placesService: google.maps.places.PlacesService;\r\n filteredDealerResults: TFilteredDealerResults;\r\n};\r\n\r\nexport enum SearchType {\r\n NoSearch = 'NoSearch',\r\n SearchByCountryAndRegion = 'SearchByCountryAndRegion',\r\n SearchByCountryAndLocationOrDealer = 'SearchByCountryAndLocationOrDealer',\r\n SearchByLocationOrDealer = 'SearchByLocationOrDealer',\r\n SearchByCountry = 'SearchByCountry',\r\n}\r\n\r\nexport type TState = {\r\n name: string;\r\n gmiCode: string;\r\n};\r\n\r\nexport type TCountry = {\r\n Country: string;\r\n IsoCode: string;\r\n Regions?: Array;\r\n states: Array;\r\n fipsCode: string;\r\n latitude: string;\r\n longitude: string;\r\n zoom: string;\r\n};\r\n\r\nexport type TMapSettings = {\r\n lat: number;\r\n lng: number;\r\n zoom: number;\r\n};\r\n\r\nexport type onDealerResultsProps = {\r\n results: TDealershipSuggestion | TDealershipSuggestion[];\r\n place?: TPlaceCoordinates;\r\n queryText?: string;\r\n userLocation?: TPlaceCoordinates;\r\n selectedDealerId?: string;\r\n placeId?: string;\r\n updateUrl?: boolean;\r\n};\r\n\r\nexport type TDealerLocatorMapProps = {\r\n model: DealerLocatorLandingModel;\r\n onDealerResults: (onDealerResultsProps) => void;\r\n country: TCountry | null;\r\n region: TState | null;\r\n place?: TPlaceCoordinates;\r\n setAutocompleteService: React.Dispatch>;\r\n setPlacesService: React.Dispatch>;\r\n dealers: TDealershipSuggestion | TDealershipSuggestion[];\r\n dealerIdForPinWithHover: string | null;\r\n setDealerIdForPinWithHover: React.Dispatch>;\r\n setClickedDealerNumber: React.Dispatch>;\r\n setCountry: React.Dispatch>;\r\n setRegion: React.Dispatch>;\r\n setUserLocation: React.Dispatch>;\r\n mapSettings: TMapSettings;\r\n sitecoreContext: TSitecoreContext;\r\n dealerIdPinHovered: boolean;\r\n resultsViewModeInTablet: TResultViewMode;\r\n};\r\n\r\nexport type TDealerLocatorLandingSettings = {\r\n initialLatitude: number;\r\n initialLongitude: number;\r\n initialZoom: number;\r\n dealerLocatorCountryState: Array;\r\n dealerLocatorDefaultCountry: string;\r\n dealerLocatorGoogleMapsAPIKey: string;\r\n dealerLocatorSearchType: SearchType;\r\n showPreselectCountry: boolean;\r\n maxZoomForSingleResult: number;\r\n searchRadius: string;\r\n dealerSearchResult: {\r\n dealershipResults: TDealershipResult[];\r\n };\r\n maxResultsCount?: number;\r\n enableInteractiveMap: boolean;\r\n firebaseConfiguration?: TFirebaseConfig;\r\n};\r\n\r\nexport type TDealerLocatorLandingFilterDetails = Partial<{\r\n Title: string;\r\n Code: string;\r\n TitleUrl: string;\r\n codeList: Array;\r\n}>;\r\n\r\nexport type TDealerLocatorLandingFilters = Partial<{\r\n Equipments: Array;\r\n Services: Array;\r\n}>;\r\n\r\nexport type TDealerLocatorLandingFields = Partial<{\r\n title: TStringField;\r\n description: TStringField;\r\n settings: TDealerLocatorLandingSettings;\r\n pageId: string;\r\n filters: TDealerLocatorLandingFilters;\r\n isComponentUnreleased: boolean;\r\n}>;\r\n\r\nexport type TDealerLocatorLandingProps = Partial<{\r\n fields: TDealerLocatorLandingFields;\r\n}>;\r\n\r\n// -- components props types\r\nexport type TSelectedFilterOptions = { [key: string]: Array };\r\n\r\nexport type TDealerSelectedFiltersState = {\r\n equipmentSelectedOptions: TSelectedFilterOptions;\r\n serviceSelectedOptions: TSelectedFilterOptions;\r\n};\r\n\r\nexport type TDealerSelectedFilterKeyName = 'equipmentSelectedOptions' | 'serviceSelectedOptions';\r\n\r\nexport type TDealerFilterComponentProps = {\r\n filters: TDealerLocatorLandingFilters;\r\n selectedFilters: TDealerSelectedFiltersState;\r\n updateFilters: (TDealerSelectedFiltersState) => void;\r\n};\r\n\r\nexport type TCountriesFirebaseCollectionResponse = Array;\r\n\r\nexport type TCountriesFirebaseCollectionDocResponse = {\r\n name: string;\r\n iso_a2: string;\r\n kml_4326: string;\r\n};\r\n\r\nexport type TCountriesFirebaseCollection = Array;\r\n\r\nexport type TCountriesFirebaseCollectionDoc = Omit & {\r\n kml_4326: TGeometryData;\r\n};\r\n\r\nexport type TStatesFirebaseCollectionResponse = Array;\r\n\r\nexport type TStatesFirebaseCollectionDocResponse = {\r\n geometry: string;\r\n CNTRY_NAME: string;\r\n FIPS_CNTRY: string;\r\n GMI_ADMIN: string;\r\n};\r\n\r\nexport type TStatesFirebaseCollection = Array;\r\n\r\nexport type TStatesFirebaseCollectionDoc = Omit & {\r\n geometry: TGeometryData;\r\n};\r\n\r\nexport type TGeometry = {\r\n type: 'Polygon';\r\n coordinates: [Array<[number, number, number]>];\r\n};\r\n\r\nexport type TGeometryCollection = {\r\n type: 'GeometryCollection';\r\n geometries: Array;\r\n};\r\n\r\nexport type TGeometryDoc = { geometry: TGeometry };\r\n\r\nexport type TGeometryData = TGeometryCollection | TGeometryDoc;\r\n\r\nexport type TUseContryBordersCoordsProps = {\r\n model: DealerLocatorLandingModel;\r\n};\r\n\r\nexport type TUseRegionBordersCoordsProps = {\r\n model: DealerLocatorLandingModel;\r\n country: TCountry | null;\r\n};\r\n\r\nexport type TAreaPolygonData = {\r\n kml: TGeometryData;\r\n name: string;\r\n code: string;\r\n key?: string;\r\n};\r\n\r\nexport type TFirebaseConfig = {\r\n [keys: string]: string;\r\n};\r\n\r\nexport type TDropDownItem = TCountry | TState | null;\r\n\r\nexport type TUpdateUrlQueryStringParamsProps = {\r\n country?: TCountry | null;\r\n region?: TState | null;\r\n queryText?: string;\r\n userLocation?: TPlaceCoordinates;\r\n selectedDealerId?: string;\r\n placeId?: string;\r\n updateUrl?: boolean;\r\n};\r\n\r\nexport type TDealerLocatorGeoLocationToastmessage = {\r\n extraClassName?: string;\r\n showGeoLocationErrorMessage: boolean;\r\n updateShowGeoLocationErrorMessage: React.Dispatch>;\r\n};\r\n","const MAX_ZOOM_FOR_SINGLE_RESULT = 15;\r\nconst MAX_AVAILABLE_ZOOM_LEVEL = 21;\r\nconst MAP_LABEL_DEBOUNCE_DELAY = 10;\r\nconst MAP_LABEL_MOUSE_POINTER_X_OFFSET = 0;\r\nconst MAP_LABEL_MOUSE_POINTER_Y_OFFSET = -15;\r\nconst MAP_POLYGON_COLOR_DEFAULT = '#1e1e1d';\r\nconst MAP_POLYGON_COLOR_ACTIVE = '#1e1e1d';\r\nconst MAP_POLYGON_OPACITY_DEFAULT = 0.3;\r\nconst MAP_POLYGON_OPACITY_ACTIVE = 0.5;\r\nconst DL_BY_GEO_CODE_API_URL = '/apirequest/dealer-locator/get-dealer-by-geo-code';\r\nconst DL_BY_GEO_FILTER_API_URL = '/apirequest/dealer-locator/get-dealer-by-geographic-filter';\r\nconst DL_BY_DEALER_NUMBER_API_URL = '/apirequest/dealer-locator/get-dealer-by-dealer-number';\r\nconst DL_BY_DEALER_COUNTRY_API_URL = '/apirequest/dealer-locator/get-dealer-by-country';\r\nconst COUNTRIES_COLLECTION_NAME = 'countries';\r\nconst STATES_COLLECTION_NAME = 'states';\r\nconst USER_ABORTED_REQUEST_CODE = 20;\r\n\r\nconst DL_QUERY_STRINGS = {\r\n SEARCH_QUERY: 'query',\r\n USER_LATITUDE: 'ulat',\r\n USER_LONGITUDE: 'ulng',\r\n COUNTRY: 'country',\r\n REGION: 'region',\r\n EQUIPMENT_FILTERS: 'equipmentFilters',\r\n SERVICES_FILTERS: 'serviceFilters',\r\n SELECTED_DEALER: 'dealerId',\r\n PLACE_ID: 'placeId',\r\n};\r\n\r\nexport {\r\n MAX_ZOOM_FOR_SINGLE_RESULT,\r\n MAX_AVAILABLE_ZOOM_LEVEL,\r\n MAP_LABEL_DEBOUNCE_DELAY,\r\n MAP_LABEL_MOUSE_POINTER_X_OFFSET,\r\n MAP_LABEL_MOUSE_POINTER_Y_OFFSET,\r\n MAP_POLYGON_COLOR_DEFAULT,\r\n MAP_POLYGON_COLOR_ACTIVE,\r\n MAP_POLYGON_OPACITY_DEFAULT,\r\n MAP_POLYGON_OPACITY_ACTIVE,\r\n DL_BY_GEO_CODE_API_URL,\r\n DL_BY_GEO_FILTER_API_URL,\r\n DL_BY_DEALER_NUMBER_API_URL,\r\n DL_BY_DEALER_COUNTRY_API_URL,\r\n COUNTRIES_COLLECTION_NAME,\r\n STATES_COLLECTION_NAME,\r\n USER_ABORTED_REQUEST_CODE,\r\n DL_QUERY_STRINGS,\r\n};\r\n","import { MAX_AVAILABLE_ZOOM_LEVEL, MAX_ZOOM_FOR_SINGLE_RESULT } from '../../../constants/dealerLocator.constants';\r\nimport { maxZoomSize, minZoomSize } from '../../../constants/map.constatnts';\r\nimport { TSitecoreContext, TStringField } from '../../../types/types';\r\nimport {\r\n TDealerLocatorLandingFields,\r\n TDealerLocatorLandingProps,\r\n SearchType,\r\n TCountry,\r\n TDealershipResult,\r\n TFirebaseConfig,\r\n TDealerLocatorLandingFilters,\r\n} from '../types/dealerLocatorLanding.types';\r\n\r\nexport class DealerLocatorLandingModel {\r\n private readonly fields?: TDealerLocatorLandingFields;\r\n private readonly sitecoreContext?: TSitecoreContext;\r\n filters: TDealerLocatorLandingFilters;\r\n\r\n constructor(props: TDealerLocatorLandingProps, sitecoreContext: TSitecoreContext) {\r\n this.fields = props.fields || undefined;\r\n this.sitecoreContext = sitecoreContext || undefined;\r\n this.filters = this.fields?.filters\r\n ? {\r\n Equipments: this.fields?.filters?.Equipments?.map((_) => ({ ..._, codeList: _.Code?.split(',') || [] })) ?? [],\r\n Services: this.fields?.filters?.Services?.map((_) => ({ ..._, codeList: _.Code?.split(',') || [] })) ?? [],\r\n }\r\n : { Equipments: [], Services: [] };\r\n }\r\n\r\n get title(): TStringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get description(): TStringField | undefined {\r\n return this.fields?.description;\r\n }\r\n\r\n get googlaMapApiKey(): string {\r\n return this.fields?.settings?.dealerLocatorGoogleMapsAPIKey || '';\r\n }\r\n\r\n get initialLatitude(): number {\r\n return this.fields?.settings?.initialLatitude || 0.0;\r\n }\r\n\r\n get initialLongitude(): number {\r\n return this.fields?.settings?.initialLongitude || 0.0;\r\n }\r\n\r\n get initialZoom(): number {\r\n const zoom = this.fields?.settings?.initialZoom || 0;\r\n if (zoom < minZoomSize) return minZoomSize;\r\n if (zoom > maxZoomSize) return maxZoomSize;\r\n return zoom;\r\n }\r\n\r\n get pageId(): string {\r\n return this.fields?.pageId || '';\r\n }\r\n\r\n get siteLanguage(): string {\r\n return this.sitecoreContext?.language || '';\r\n }\r\n\r\n get brand(): string {\r\n return this.sitecoreContext?.brand || '';\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get searchType(): SearchType {\r\n return this.fields?.settings?.dealerLocatorSearchType || SearchType.NoSearch;\r\n }\r\n\r\n get countries(): Array {\r\n return this.fields?.settings?.dealerLocatorCountryState ?? [];\r\n }\r\n\r\n get defaultCountry(): string | null {\r\n return this.fields?.settings?.dealerLocatorDefaultCountry || null;\r\n }\r\n\r\n get hasDefaultCountryPreselected(): boolean {\r\n return this.fields?.settings?.showPreselectCountry === true;\r\n }\r\n\r\n get searchByUserLocationEnabled(): boolean {\r\n return this.searchType !== SearchType.NoSearch && this.searchType !== SearchType.SearchByCountryAndRegion;\r\n }\r\n\r\n get searchRadius(): string | null {\r\n return this.fields?.settings?.searchRadius ?? null;\r\n }\r\n\r\n get distanceUnits(): 'km' | 'mi' | '' {\r\n if (this.searchRadius?.includes('km')) {\r\n return 'km';\r\n }\r\n\r\n if (this.searchRadius?.includes('mi')) {\r\n return 'mi';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n get maxMapZoomForSingleResult(): number {\r\n const zoomLevel = this.fields?.settings?.maxZoomForSingleResult ?? MAX_ZOOM_FOR_SINGLE_RESULT;\r\n return zoomLevel > 0 && zoomLevel <= MAX_AVAILABLE_ZOOM_LEVEL ? zoomLevel : MAX_ZOOM_FOR_SINGLE_RESULT;\r\n }\r\n\r\n get noSearchDealerResults(): TDealershipResult[] {\r\n if (this.searchType !== SearchType.NoSearch) {\r\n return [];\r\n }\r\n\r\n return this.fields?.settings?.dealerSearchResult?.dealershipResults ?? [];\r\n }\r\n\r\n get currentPagePath(): string {\r\n const contextUrl = this.sitecoreContext?.currentPageUrl ?? '';\r\n\r\n if (contextUrl) {\r\n const contextUrlObj = new URL(contextUrl);\r\n return contextUrlObj.pathname;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n get maxResultsCount(): number | null {\r\n return this.fields?.settings?.maxResultsCount ?? null;\r\n }\r\n\r\n get areFiltersNotEmpty(): boolean {\r\n // Todo: Replace this code with line no. 141 for Services Ref US-446445\r\n // return Number(this.filters?.Equipments?.length) > 0 || Number(this.filters?.Services?.length) > 0;\r\n // End Code comments US-446445\r\n return Number(this.filters?.Equipments?.length) > 0;\r\n }\r\n\r\n get firebaseConfig(): TFirebaseConfig | null {\r\n return this.fields?.settings?.firebaseConfiguration ?? null;\r\n }\r\n\r\n get hasInteractiveMap(): boolean {\r\n return (\r\n !!this.firebaseConfig &&\r\n !!this.fields?.settings?.enableInteractiveMap &&\r\n (this.searchType === SearchType.SearchByCountryAndRegion || this.searchType === SearchType.SearchByCountryAndLocationOrDealer)\r\n );\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport './styles.scss';\r\n\r\nconst Spinner: FC<{ extraClassName?: string }> = ({ extraClassName = '' }) => (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n);\r\n\r\nexport default Spinner;\r\n","import { DL_BY_GEO_FILTER_API_URL, DL_BY_GEO_CODE_API_URL, DL_BY_DEALER_COUNTRY_API_URL } from '../../constants/dealerLocator.constants';\r\nimport { DealerLocatorLandingModel } from './models/dealerLocatorLanding.model';\r\nimport { SearchType, TCountry, TFirebaseConfig, TGeometryData, TGeometryDoc, TMapSettings, TState } from './types/dealerLocatorLanding.types';\r\n\r\nexport const fetchDealersByGeoCode = ({ lat, lng, pageId, language, countryIsoCode }, controllerRef) => {\r\n if (controllerRef.current) {\r\n controllerRef.current.abort();\r\n }\r\n\r\n const controller = new AbortController();\r\n controllerRef.current = controller;\r\n\r\n const queryUrlParams = new URLSearchParams({\r\n latitude: lat,\r\n longitude: lng,\r\n pageId: pageId,\r\n language: language,\r\n country: countryIsoCode,\r\n });\r\n const queyrUrl = `${DL_BY_GEO_CODE_API_URL}?${queryUrlParams}`;\r\n\r\n return fetch(queyrUrl, { signal: controllerRef.current?.signal }).then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n console.error(`${res.status} : Failed to fetch dealers from DL API.`);\r\n }\r\n });\r\n};\r\n\r\nexport const fetchCountryDealersByGeoFilter = ({ pageId, language, countryIsoCode, country }, controllerRef) => {\r\n if (controllerRef.current) {\r\n controllerRef.current.abort();\r\n }\r\n\r\n const controller = new AbortController();\r\n controllerRef.current = controller;\r\n\r\n const queryUrlParams = new URLSearchParams({\r\n pageId: pageId,\r\n language: language,\r\n country: countryIsoCode,\r\n countryName: country,\r\n });\r\n const queyrUrl = `${DL_BY_DEALER_COUNTRY_API_URL}?${queryUrlParams}`;\r\n\r\n return fetch(queyrUrl, { signal: controllerRef.current?.signal }).then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n console.error(`${res.status} : Failed to fetch dealers from DL API.`);\r\n }\r\n });\r\n};\r\n\r\nexport const fetchDealersByGeoFilter = ({ region, pageId, language, countryIsoCode }, controllerRef) => {\r\n if (controllerRef.current) {\r\n controllerRef.current.abort();\r\n }\r\n\r\n const controller = new AbortController();\r\n controllerRef.current = controller;\r\n\r\n const queryUrlParams = new URLSearchParams({\r\n state: region,\r\n pageId: pageId,\r\n language: language,\r\n country: countryIsoCode,\r\n });\r\n const queyrUrl = `${DL_BY_GEO_FILTER_API_URL}?${queryUrlParams}`;\r\n\r\n return fetch(queyrUrl, { signal: controllerRef.current?.signal }).then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n console.error(`${res.status} : Failed to fetch dealers from DL API.`);\r\n }\r\n });\r\n};\r\n\r\nexport const fetchDataFromFirebaseDB = async ({ app, firebase, collectionName, queryParams }) => {\r\n if (!app || !collectionName) {\r\n return null;\r\n }\r\n\r\n const colSnap = await firebase\r\n .firestore(app)\r\n .collection(collectionName)\r\n .where(queryParams.fieldPath, queryParams.opStr, queryParams.value)\r\n .get();\r\n\r\n if (!colSnap.empty) {\r\n const cordsData = colSnap.docs.map((doc) => doc.data());\r\n\r\n return cordsData;\r\n } else {\r\n console.error('No such document found!');\r\n return null;\r\n }\r\n};\r\n\r\nexport const initFirebaseService = async (firebaseConfig: TFirebaseConfig) => {\r\n // Lazy load Firebase Scripts and initialize firebase App. Avoid direct imports of Firebase scripts.\r\n // Firebase scripts in 8.10.0 version causing Errors during SSR due to side effects in Firebase.\r\n const firebaseModule = await import('firebase/app');\r\n await import('firebase/firestore');\r\n const firebase = await firebaseModule.default;\r\n \r\n if(firebase?.apps?.length){\r\n return { firebase, app: firebase?.apps?.[0] };\r\n }\r\n\r\n return { firebase, app: firebase.initializeApp(firebaseConfig) };\r\n};\r\n\r\nexport const isStateType = (obj: TCountry | TState): obj is TState => {\r\n return Object.hasOwnProperty.call(obj, 'gmiCode');\r\n};\r\n\r\nexport const isGeometryDocType = (obj: TGeometryData): obj is TGeometryDoc => {\r\n return Object.hasOwnProperty.call(obj, 'geometry');\r\n};\r\n\r\nexport const getMapSettingsFromCountry = (country: TCountry | undefined, model: DealerLocatorLandingModel): TMapSettings => {\r\n if(!country?.latitude || !country?.longitude) {\r\n return {\r\n lat: model.initialLatitude,\r\n lng: model.initialLongitude, \r\n zoom: country?.zoom ? Number.parseInt(country?.zoom) : model.initialZoom,\r\n }\r\n }\r\n\r\n return {\r\n lat: Number.parseFloat(country?.latitude),\r\n lng: Number.parseFloat(country?.longitude), \r\n zoom:Number.parseInt(country?.zoom) ?? model.initialZoom,\r\n }\r\n}\r\n\r\nexport const getInitialMapSettings = (country: TCountry | null, model: DealerLocatorLandingModel): TMapSettings => {\r\n const hasSupportedSearchType = model.searchType === SearchType.SearchByCountryAndRegion || model.searchType === SearchType.SearchByCountryAndLocationOrDealer;\r\n\r\n if(country){\r\n return getMapSettingsFromCountry(country, model);\r\n }\r\n\r\n if(model.hasDefaultCountryPreselected && !model.hasInteractiveMap && hasSupportedSearchType){\r\n const selectedCountry = model.countries.find(country => country.IsoCode === model.defaultCountry);\r\n\r\n return getMapSettingsFromCountry(selectedCountry, model);\r\n }\r\n\r\n return {\r\n lat: model.initialLatitude,\r\n lng: model.initialLongitude, \r\n zoom: model.initialZoom,\r\n }\r\n}","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDealerPin(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 40,\n viewBox: \"0 0 32 40\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 0c8.774 0 15.912 7.066 16 15.84C32 26.8 18 39 17.3 39.52a2 2 0 0 1-2.6 0c-.157-.136-1.232-1.066-2.736-2.562l-.384-.386C7.257 32.203 0 23.702 0 15.84.088 7.066 7.226 0 16 0zm8.012 30H8.052c4.48 5.076 6.792 7.657 6.937 7.743.588.343 1.453.343 2.04 0 .171-.086 2.499-2.667 6.983-7.743z\",\n fill: \"#1e1e1d\",\n fillRule: \"evenodd\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDealerPin);\nexport default __webpack_public_path__ + \"static/media/dealer-pin.c40891a116ec3b5078fbb3ebaefd7357.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDealerPinActive(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 40,\n viewBox: \"0 0 32 40\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 0c8.774 0 15.912 7.066 16 15.84C32 26.8 18 39 17.3 39.52a2 2 0 0 1-2.6 0c-.157-.136-1.232-1.066-2.736-2.562l-.384-.386C7.257 32.203 0 23.702 0 15.84.088 7.066 7.226 0 16 0zm8.012 30H8.052c4.48 5.076 6.792 7.657 6.937 7.743.588.343 1.453.343 2.04 0 .171-.086 2.499-2.667 6.983-7.743z\",\n fill: \"#a71930\",\n fillRule: \"evenodd\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDealerPinActive);\nexport default __webpack_public_path__ + \"static/media/dealer-pin-active.260fe9ac5c93c0a3ec38a655769d4fd6.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgUserLocation(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 40 40\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"action-precision\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 20,\n cy: 20,\n r: 20,\n fill: \"#a71930\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(8.000000, 8.000000)\",\n id: \"00_Design-Styleguides\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"00_Case-IH_Icons\",\n transform: \"translate(-220.000000, -230.000000)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Instances\",\n transform: \"translate(60.000000, 150.000000)\",\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vector-Copy\",\n transform: \"translate(160.000000, 80.000000)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.896078,2.00611164 C12.039836,1.99026591 12.1853189,2.00531879 12.3227885,2.0502614 C12.4602409,2.09519836 12.5865076,2.16897968 12.6931442,2.26666358 C12.7997582,2.36432681 12.8842917,2.48363061 12.9410971,2.6165929 C12.9836944,2.71629917 13.0099643,2.82196457 13.0191816,2.9241998 L13.022688,3.02494388 L13.0229411,3.92352936 L13.0327159,3.92515508 C16.638197,4.38106993 19.5148432,7.20509696 20.0530166,10.7864209 L20.0805882,10.9858823 L20.9701695,10.9859485 C21.037466,10.9849971 21.104521,10.990742 21.170363,11.0030018 L21.268095,11.0262553 L21.3632791,11.0591455 C21.4881517,11.1093563 21.6017961,11.1838931 21.6976089,11.2784188 C21.7934029,11.3729258 21.8694609,11.4855287 21.9213704,11.6096828 C21.9732725,11.7338191 22,11.8670318 22,12.0015841 C22,12.1361363 21.9732725,12.2693491 21.9213704,12.3934853 C21.8694609,12.5176394 21.7934029,12.6302424 21.6976089,12.7247494 C21.6017961,12.8192751 21.4881517,12.8938119 21.3632791,12.9440227 C21.2696117,12.9816859 21.1710299,13.0050979 21.0743196,13.013672 L20.9784844,13.0172784 L20.0805882,13.0170587 L20.0791735,13.0275651 C19.6235467,16.6349597 16.8012057,19.5133274 13.2217957,20.0518386 L13.0229411,20.0788234 L13.0226293,20.9699184 C13.0235792,21.0371874 13.0178434,21.1042161 13.0056022,21.1700346 L12.9823837,21.2677336 L12.9495422,21.3628901 C12.8993912,21.4877645 12.8249303,21.6014299 12.7304818,21.6972799 C12.6360141,21.7931494 12.5234351,21.869283 12.3992857,21.9212531 C12.2751188,21.9732305 12.1418578,21.9999999 12.0072511,21.9999999 C11.8726444,21.9999999 11.7393833,21.9732305 11.6152164,21.9212531 C11.491067,21.869283 11.378488,21.7931494 11.2840203,21.6972799 C11.1895718,21.6014299 11.1151109,21.4877645 11.0649599,21.3628901 C11.0273519,21.2692474 11.0039758,21.1706998 10.995415,21.0740241 L10.9918141,20.9782233 L10.9923529,20.0788234 L10.9817867,20.078012 C7.37630808,19.6220969 4.49965842,16.7980648 3.9614844,13.2167461 L3.93470586,13.0170587 L3.06369395,13.0166269 C2.99703137,13.019767 2.93038656,13.0163218 2.86471137,13.0064348 L2.76704479,12.9867911 L2.67154652,12.9575925 C2.54599428,12.9123448 2.43058877,12.8427989 2.33192053,12.7529306 C2.23327188,12.66308 2.15328663,12.5546758 2.09652784,12.4339115 C2.03977769,12.3131655 2.0073569,12.182425 2.0011135,12.049152 C1.99487021,11.9158816 2.0149254,11.7826843 2.06013599,11.6571626 C2.10535228,11.5316251 2.17484598,11.4162202 2.26465362,11.3175394 C2.35447897,11.2188391 2.46286685,11.1388028 2.583629,11.0820062 C2.67421455,11.0394021 2.77043002,11.0105014 2.8690614,10.9960898 L2.99621785,10.9856891 L3.93470586,10.9858823 L3.93532734,10.9756023 C4.39095369,7.36820242 7.21329288,4.48983928 10.7927057,3.95132853 L10.9923529,3.92352936 L10.99195,3.03758769 C10.9878574,2.84722706 11.0373272,2.66088543 11.1329072,2.4990671 L11.1845052,2.42029647 L11.2435812,2.34618262 C11.3900384,2.1790694 11.586621,2.06527467 11.8025818,2.02084314 L11.896078,2.00611164 Z M12.0072511,5.89073437 C8.63099639,5.89073437 5.90043543,8.62293909 5.90043543,12.0015841 C5.90043543,15.3802153 8.63100377,18.1124328 12.0072511,18.1124328 C15.3834981,18.1124328 18.1140655,15.3802155 18.1140655,12.0015841 C18.1140655,8.62293883 15.3835055,5.89073437 12.0072511,5.89073437 Z M12.0040677,8.83933981 C12.1120765,8.83900533 12.2196862,8.85589918 12.3227885,8.88960616 C12.460241,8.93454316 12.5865077,9.00832484 12.6931442,9.10600865 C12.7997582,9.20367185 12.8842917,9.32297553 12.9410971,9.45593785 C12.9978936,9.58887955 13.0256633,9.73241525 13.022688,9.86428883 L13.022688,9.86428883 L13.0229411,10.9858823 L14.1349442,10.9859485 C14.2358891,10.9845215 14.3362903,10.9981608 14.4328698,11.0262553 L14.4328698,11.0262553 L14.5280539,11.0591455 C14.6529265,11.1093563 14.7665709,11.1838931 14.8623837,11.2784188 C14.9581774,11.3729256 15.0342364,11.4855284 15.086146,11.6096828 C15.1380482,11.7338195 15.1647747,11.8670322 15.1647747,12.0015841 C15.1647747,12.1361359 15.1380482,12.2693487 15.086146,12.3934853 C15.0342364,12.5176397 14.9581774,12.6302426 14.8623837,12.7247494 C14.7665709,12.8192751 14.6529265,12.8938119 14.5280539,12.9440227 C14.4031641,12.9942404 14.2695374,13.0191224 14.1432592,13.0172784 L14.1432592,13.0172784 L13.0229411,13.0170587 L13.0226293,14.1305744 C13.0240541,14.2314779 13.0104362,14.3318407 12.9823837,14.4283897 L12.9823837,14.4283897 L12.9495422,14.5235461 C12.8993912,14.6484205 12.8249303,14.7620859 12.7304818,14.8579359 C12.6360144,14.9538052 12.5234354,15.0299397 12.3992857,15.0819099 C12.2751184,15.1338875 12.1418573,15.1606559 12.0072511,15.1606559 C11.8726448,15.1606559 11.7393837,15.1338875 11.6152164,15.0819099 C11.4910667,15.0299397 11.3784877,14.9538052 11.2840203,14.8579359 C11.1895718,14.7620859 11.1151109,14.6484205 11.0649599,14.5235461 C11.0148159,14.3986891 10.9899731,14.2651124 10.9918141,14.1388793 L10.9918141,14.1388793 L10.9923529,13.0170587 L9.79905877,13.016416 C9.7326519,13.0130067 9.66673872,13.0030838 9.60227109,12.9867911 L9.60227109,12.9867911 L9.50677279,12.9575925 C9.38122057,12.9123448 9.26581497,12.8427989 9.16714672,12.7529306 C9.06849803,12.66308 8.98851289,12.5546757 8.93175413,12.4339115 C8.87500398,12.3131655 8.84258319,12.182425 8.83633978,12.049152 C8.83009649,11.9158817 8.85015157,11.7826843 8.89536218,11.6571626 C8.9405785,11.531625 9.01007243,11.4162201 9.09988001,11.3175394 C9.1897054,11.2188391 9.29809349,11.1388028 9.41885558,11.0820062 C9.53963629,11.0252008 9.67042557,10.9927568 9.80360541,10.986537 L9.80360541,10.986537 L10.9923529,10.9858823 L10.99195,9.87693265 C10.9871753,9.65484525 11.055305,9.43822808 11.1845052,9.25964134 L11.1845052,9.25964134 L11.2435812,9.18552749 C11.4109608,8.99454092 11.6438105,8.87319499 11.8962332,8.84543952 L11.8962332,8.84543952 Z\"\n }))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Slices\",\n transform: \"translate(60.000000, 150.000000)\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Text\",\n transform: \"translate(32.000000, 82.000000)\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUserLocation);\nexport default __webpack_public_path__ + \"static/media/user-location.a51f9a15f9ae8e62521a0a46fd83cebe.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState, createContext, useMemo } from 'react';\r\nimport useMedia from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport { initFirebaseService } from '../../dealerLocator.utils';\r\n\r\nexport const FirebaseContext = createContext<{ app: any; firebase: any }>({ app: null, firebase: null });\r\n\r\nconst FirebaseContextProvider = ({ children, model }) => {\r\n const [loadingFirebase, setLoadingFirebase] = useState(false);\r\n const [app, setApp] = useState(null);\r\n const [firebase, setFirebase] = useState(null);\r\n const ctx = useMemo(() => ({ app, firebase }), [app, firebase]);\r\n const isWide = useMedia(`(min-width: ${BreakpointsInPx['lg']})`);\r\n\r\n useEffect(() => {\r\n if (firebase || !model.firebaseConfig || loadingFirebase || !isWide) {\r\n return;\r\n }\r\n\r\n // Lazy Load Firebase package to avoid SSR errors caused by Firebase side effects durring SSR.\r\n initFirebaseService(model.firebaseConfig)\r\n .then(({ firebase, app }) => {\r\n setApp(app);\r\n setFirebase(firebase);\r\n })\r\n .catch((err) => {\r\n console.error('Error: Failed to initialize Firebase: ', err);\r\n setApp(null);\r\n setFirebase(null);\r\n });\r\n setLoadingFirebase(true);\r\n }, [model.firebaseConfig, isWide]);\r\n\r\n return {children};\r\n};\r\n\r\nexport default FirebaseContextProvider;\r\n","import { useContext } from 'react';\r\nimport { FirebaseContext } from '../../dealerLocatorFirebaseContextProvider';\r\n\r\nconst useFirebase = () => {\r\n const ctx = useContext(FirebaseContext);\r\n\r\n if (ctx === undefined) {\r\n throw new Error('useFirebase must be used inside FirebaseContextProvider');\r\n }\r\n\r\n return ctx;\r\n};\r\n\r\nexport default useFirebase;\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { COUNTRIES_COLLECTION_NAME } from '../../../../../constants/dealerLocator.constants';\r\nimport { fetchDataFromFirebaseDB } from '../../../dealerLocator.utils';\r\n\r\nimport {\r\n TAreaPolygonData,\r\n TCountriesFirebaseCollectionResponse,\r\n TCountry,\r\n TUseContryBordersCoordsProps,\r\n} from '../../../types/dealerLocatorLanding.types';\r\nimport useFirebase from './useFirebase.effect';\r\n\r\nconst useContryBordersCoords = ({ model }: TUseContryBordersCoordsProps): Array => {\r\n const [countriesPolygonData, setCountriesPolygonData] = useState>([]);\r\n const [countryDataLoaded, setCountryDataLoaded] = useState(false);\r\n const { app, firebase } = useFirebase();\r\n\r\n const processResponseData = useCallback(\r\n (data: TCountriesFirebaseCollectionResponse): Array => {\r\n const countryNamesMap = new Map(model.countries?.map((country) => [country.IsoCode, country.Country]));\r\n const countryPolygons = data?.map((c) => {\r\n const polygonData: TAreaPolygonData = {\r\n kml: JSON.parse(c?.kml_4326),\r\n name: countryNamesMap.get(c?.iso_a2) ?? c?.iso_a2,\r\n code: c?.iso_a2,\r\n };\r\n\r\n return polygonData;\r\n });\r\n\r\n return countryPolygons;\r\n },\r\n [model.countries]\r\n );\r\n\r\n useEffect(() => {\r\n if (!app || !firebase || !model.hasInteractiveMap || countryDataLoaded) {\r\n return;\r\n }\r\n\r\n const countryGroups = model.countries.reduce((acc: [[TCountry]], _item: TCountry, index: number, arr: [TCountry]) => {\r\n const itemsTakeCount = 10; // Firebase can handle UP to 10 items in value for 'in' query operator\r\n const takeStartIndex = index * itemsTakeCount;\r\n const takeEndIndex = takeStartIndex + itemsTakeCount;\r\n if (takeStartIndex < arr.length) {\r\n return [...acc, arr.slice(takeStartIndex, takeEndIndex)];\r\n }\r\n return acc;\r\n }, []);\r\n\r\n const contryPromises = countryGroups.map((group) => {\r\n const queryParams = {\r\n fieldPath: 'iso_a2',\r\n opStr: 'in',\r\n // Firebase can handle UP to 10 items in value for 'in' query operator\r\n value: group.map((_country) => _country.IsoCode),\r\n };\r\n \r\n return fetchDataFromFirebaseDB({ app, firebase, collectionName: COUNTRIES_COLLECTION_NAME, queryParams });\r\n });\r\n\r\n Promise.all(contryPromises)\r\n .then((data: [TCountriesFirebaseCollectionResponse]) => {\r\n setCountryDataLoaded(true);\r\n setCountriesPolygonData(processResponseData(data.flat()));\r\n })\r\n .catch((err) => {\r\n console.error('Error: Unable to fetch Country borders data', err);\r\n setCountryDataLoaded(true);\r\n setCountriesPolygonData([]);\r\n });\r\n }, [app, firebase, model.hasInteractiveMap, model.countries]);\r\n\r\n return countriesPolygonData;\r\n};\r\n\r\nexport default useContryBordersCoords;\r\n","import { MutableRefObject } from 'react';\r\nexport const debounceHandler = (\r\n callback: () => void,\r\n timmerRef: MutableRefObject | undefined>,\r\n delay: number\r\n) => {\r\n clearTimeout(timmerRef.current);\r\n timmerRef.current = setTimeout(callback, delay);\r\n};\r\n","import React, { useRef, useState, useCallback, useEffect } from 'react';\r\nimport {\r\n MAP_LABEL_DEBOUNCE_DELAY,\r\n MAP_LABEL_MOUSE_POINTER_X_OFFSET,\r\n MAP_LABEL_MOUSE_POINTER_Y_OFFSET,\r\n} from '../../../../../../constants/dealerLocator.constants';\r\nimport { debounceHandler } from '../../../../../../utils/debounceHandler.utils';\r\n\r\nconst AreaPolygonLabel = ({ label, containerRef }) => {\r\n const [pos, setPos] = useState<{ x: number; y: number } | null>(null);\r\n\r\n const timmerRef = useRef>();\r\n\r\n const getOffset = (e: MouseEvent, axis: 'x' | 'y') => {\r\n const targetElm = e.target as HTMLElement | null;\r\n if(axis === 'x'){\r\n if(e.offsetX){\r\n return e.offsetX;\r\n }\r\n const left = targetElm?.getBoundingClientRect()?.left ?? 0;\r\n\r\n return e.clientX - left;\r\n }\r\n\r\n if(e.offsetY){\r\n return e.offsetY;\r\n }\r\n const top = targetElm?.getBoundingClientRect()?.top ?? 0;\r\n \r\n return e.clientY - top;\r\n }\r\n\r\n const handleMouseMove = useCallback((e: MouseEvent) => {\r\n debounceHandler(() => setPos({ x: getOffset(e, 'x'), y: getOffset(e, 'y') }), timmerRef, MAP_LABEL_DEBOUNCE_DELAY);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!containerRef?.current) {\r\n return;\r\n }\r\n\r\n containerRef?.current?.addEventListener('mousemove', handleMouseMove);\r\n\r\n return () => {\r\n containerRef?.current?.removeEventListener('mousemove', handleMouseMove);\r\n };\r\n }, [handleMouseMove, containerRef]);\r\n\r\n return (\r\n <>\r\n {pos && label && (\r\n \r\n {label}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AreaPolygonLabel;\r\n","import React, { useMemo, useRef, useState } from 'react';\r\nimport { Polygon } from '@react-google-maps/api';\r\nimport { DealerLocatorLandingModel } from '../../../../models/dealerLocatorLanding.model';\r\nimport { TAreaPolygonData, TCountry, TGeometry, TState } from '../../../../types/dealerLocatorLanding.types';\r\nimport { isGeometryDocType } from '../../../../dealerLocator.utils';\r\nimport { debounceHandler } from '../../../../../../utils/debounceHandler.utils';\r\nimport {\r\n MAP_POLYGON_COLOR_ACTIVE,\r\n MAP_POLYGON_COLOR_DEFAULT,\r\n MAP_POLYGON_OPACITY_ACTIVE,\r\n MAP_POLYGON_OPACITY_DEFAULT,\r\n} from '../../../../../../constants/dealerLocator.constants';\r\n\r\ntype TAreaPolygonProps = {\r\n data: TAreaPolygonData;\r\n country?: TCountry | null;\r\n setLabel: React.Dispatch>;\r\n setCountry?: (country: TCountry | null) => void;\r\n setRegion?: (region: TState | null) => void;\r\n model: DealerLocatorLandingModel;\r\n};\r\n\r\nconst AreaPolygon = ({ data, country, setLabel, setCountry, setRegion, model }: TAreaPolygonProps) => {\r\n const timmerRef = useRef>();\r\n const getGeometryWithLatLng = (geometry: TGeometry) => {\r\n return geometry?.coordinates?.[0]?.map((point) => new google.maps.LatLng(point[1], point[0]));\r\n };\r\n\r\n const polygonsWithLatLng = useMemo(() => {\r\n if (isGeometryDocType(data?.kml)) {\r\n return [\r\n {\r\n code: data.code,\r\n name: data.name,\r\n coordinates: getGeometryWithLatLng(data?.kml.geometry),\r\n key: `${data.code}-0`,\r\n },\r\n ];\r\n } else {\r\n return data?.kml.geometries.map((geometry, i) => ({\r\n code: data.code,\r\n name: data.name,\r\n coordinates: getGeometryWithLatLng(geometry),\r\n key: `${data.code}-${i}`,\r\n }));\r\n }\r\n }, [data]);\r\n\r\n const hasPolygons = polygonsWithLatLng.length > 0;\r\n const [active, setActive] = useState(false);\r\n\r\n const regionPolygonOptions = {\r\n fillColor: MAP_POLYGON_COLOR_DEFAULT,\r\n fillOpacity: MAP_POLYGON_OPACITY_DEFAULT,\r\n strokeColor: 'transparent',\r\n };\r\n\r\n const activeRegionPolygonOptions = {\r\n fillColor: MAP_POLYGON_COLOR_ACTIVE,\r\n fillOpacity: MAP_POLYGON_OPACITY_ACTIVE,\r\n strokeColor: 'transparent',\r\n };\r\n\r\n return (\r\n <>\r\n {hasPolygons &&\r\n polygonsWithLatLng?.map((polygon) => (\r\n {\r\n debounceHandler(\r\n () => {\r\n setLabel(polygon.name);\r\n setActive(true);\r\n },\r\n timmerRef,\r\n 50\r\n );\r\n }}\r\n onMouseOut={() => {\r\n debounceHandler(\r\n () => {\r\n setLabel(null);\r\n setActive(false);\r\n },\r\n timmerRef,\r\n 50\r\n );\r\n }}\r\n onClick={() => {\r\n setLabel(null);\r\n if (setCountry) {\r\n setCountry(model.countries.find((c) => c.IsoCode === polygon.code) ?? null);\r\n } else if (setRegion) {\r\n const state = country?.states.find((state) => state.gmiCode === polygon.code) ?? null;\r\n setRegion(state);\r\n }\r\n }}\r\n options={active ? activeRegionPolygonOptions : regionPolygonOptions}\r\n path={polygon?.coordinates}\r\n key={polygon.key}\r\n />\r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default AreaPolygon;\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { STATES_COLLECTION_NAME } from '../../../../../constants/dealerLocator.constants';\r\nimport { fetchDataFromFirebaseDB } from '../../../dealerLocator.utils';\r\nimport {\r\n SearchType,\r\n TAreaPolygonData,\r\n TStatesFirebaseCollectionResponse,\r\n TUseRegionBordersCoordsProps,\r\n} from '../../../types/dealerLocatorLanding.types';\r\nimport useFirebase from './useFirebase.effect';\r\n\r\nconst useRegionBordersCoords = ({ model, country }: TUseRegionBordersCoordsProps): Array => {\r\n const [countriesPolygonData, setCountriesPolygonData] = useState>([]);\r\n const { app, firebase } = useFirebase();\r\n\r\n const processResponseData = useCallback(\r\n (data: TStatesFirebaseCollectionResponse): Array => {\r\n const allowedStatesCodes = new Set(country?.states?.map((state) => state.gmiCode));\r\n const filteredData = data.filter((state) => allowedStatesCodes.has(state.GMI_ADMIN));\r\n const regionsNamesMap = new Map(country?.states?.map((state) => [state.gmiCode, state.name]));\r\n const regionPolygons = filteredData?.map((c) => {\r\n const polygonData: TAreaPolygonData = {\r\n kml: JSON.parse(c?.geometry),\r\n name: regionsNamesMap.get(c?.GMI_ADMIN) ?? '',\r\n code: c?.GMI_ADMIN,\r\n };\r\n\r\n return polygonData;\r\n });\r\n\r\n return regionPolygons;\r\n },\r\n [country, model]\r\n );\r\n\r\n useEffect(() => {\r\n if (!app || !firebase || !model.hasInteractiveMap || !country || model.searchType !== SearchType.SearchByCountryAndRegion) {\r\n return;\r\n }\r\n\r\n const queryParams = {\r\n fieldPath: 'FIPS_CNTRY',\r\n opStr: '==',\r\n value: country.fipsCode,\r\n };\r\n\r\n fetchDataFromFirebaseDB({ app, firebase, collectionName: STATES_COLLECTION_NAME, queryParams })\r\n .then((data) => {\r\n setCountriesPolygonData(processResponseData(data));\r\n })\r\n .catch((err) => {\r\n console.error('Error: Unable to fetch Country borders data', err);\r\n setCountriesPolygonData([]);\r\n });\r\n }, [app, firebase, !model.hasInteractiveMap, country]);\r\n\r\n return countriesPolygonData;\r\n};\r\n\r\nexport default useRegionBordersCoords;\r\n","// Events\r\nexport const dealerLocatorResultsOpen = 'dealer_locator_results_open';\r\nexport const dealerLocatorGeolocationClick = 'dealer_locator_geolocation_click';\r\nexport const dealerLocatorGetDirections = 'dealer_locator_get_directions';\r\nexport const dealerLocatorDetailView = 'dealer_locator_detail_view';\r\nexport const dealerLocatorContactClick = 'dealer_locator_contact_click';\r\nexport const brochuresResultsOpen = 'brochures_results_open';\r\n","import React, { FC } from 'react';\r\nimport { TDealerLocatorGeoLocationToastmessage } from '../../types/dealerLocatorLanding.types';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport './styles.scss';\r\n\r\nconst DealerLocatorGeoLocatorToastMessage: FC = (props: TDealerLocatorGeoLocationToastmessage) => {\r\n const {showGeoLocationErrorMessage, updateShowGeoLocationErrorMessage, extraClassName=''} = props;\r\n return (\r\n < div className={`dealer-locator-landing-toast-msg ${showGeoLocationErrorMessage ? 'dealer-locator-landing-toast-msg--show' : 'dealer-locator-landing-toast-msg--hide'} ${extraClassName}`\r\n }>\r\n { updateShowGeoLocationErrorMessage(false) }} />\r\n

\r\n

\r\n \r\n );\r\n\r\n}\r\n\r\nexport default DealerLocatorGeoLocatorToastMessage;\r\n","import React, { FC, useCallback, useEffect, useState, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GoogleMap, LoadScript, Marker, LoadScriptProps } from '@react-google-maps/api';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { windowService } from '../../../../utils/window.utils.js';\r\nimport Spinner from '../../../@shared/spinner';\r\nimport { isGeometryDocType } from '../../dealerLocator.utils';\r\nimport { SearchType, TDealerLocatorMapProps } from '../../types/dealerLocatorLanding.types';\r\nimport dealerPinSvg from '../../../../assets/dealer-pin.svg';\r\nimport dealerPinActiveSvg from '../../../../assets/dealer-pin-active.svg';\r\nimport userLocationSvg from '../../../../assets/user-location.svg';\r\nimport useContryBordersCoords from './hooks/useCountryBordersCoords.effect';\r\nimport AreaPolygonLabel from './components/AreaPolygonLabel';\r\nimport AreaPolygon from './components/AreaPolygon';\r\nimport useRegionBordersCoords from './hooks/useRegionBorderCoords.effect';\r\nimport { googleGeolocationClick } from '../../../../utils/analytics';\r\nimport { dealerLocatorGeolocationClick } from '../../../../constants/analytics.constants';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport DealerLocatorGeoLocatorToastMessage from '../dealerLocatorGeoLocationToastMessage';\r\n\r\nconst googleMapsLibraries: LoadScriptProps['libraries'] = ['places'];\r\n\r\nconst DealerLocatorMap: FC = ({\r\n model,\r\n country,\r\n region,\r\n dealers,\r\n place,\r\n dealerIdForPinWithHover,\r\n setPlacesService,\r\n setAutocompleteService,\r\n setDealerIdForPinWithHover,\r\n setClickedDealerNumber,\r\n setCountry,\r\n setRegion,\r\n setUserLocation,\r\n mapSettings,\r\n sitecoreContext,\r\n dealerIdPinHovered,\r\n resultsViewModeInTablet,\r\n}) => {\r\n const { t } = useTranslation();\r\n const [map, setMap] = useState();\r\n const [maxZindex, setMaxZindex] = useState(undefined);\r\n const [label, setLabel] = useState(null);\r\n const mapContainerRef = useRef(null);\r\n const [showGeoLocationErrorMessage, updateShowGeoLocationErrorMessage] = useState(false);\r\n const [enteredDisabledStateOnce, updateEnteredDisabledStateOnce] = useState(false);\r\n const countryIsoCodeWithFallback =\r\n model.searchType === SearchType.SearchByLocationOrDealer ? model.defaultCountry : country?.IsoCode || model.defaultCountry;\r\n const hasDealers = Array.isArray(dealers) ? dealers.length > 0 : !!dealers?.dealership;\r\n const dealersArray = (() => {\r\n if (hasDealers && Array.isArray(dealers)) {\r\n return dealers;\r\n } else if (hasDealers && !Array.isArray(dealers)) {\r\n return [dealers];\r\n }\r\n\r\n return [];\r\n })();\r\n\r\n const countriesPolygonData = useContryBordersCoords({ model });\r\n const regionsPolygonData = useRegionBordersCoords({ model, country });\r\n const hasVisibleCountryPolygon = countriesPolygonData?.length > 0 && !country;\r\n const hasVisibleRegionPolygon = regionsPolygonData?.length > 0 && !region;\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.lg})`);\r\n\r\n const mapOptions = {\r\n disableDefaultUI: true,\r\n };\r\n\r\n useEffect(() => {\r\n if (map) {\r\n map?.setCenter({ lat: mapSettings.lat, lng: mapSettings.lng });\r\n map?.setZoom(mapSettings.zoom);\r\n }\r\n\r\n if (map && windowService()?.google) {\r\n setPlacesService(new google.maps.places.PlacesService(map));\r\n setAutocompleteService(new google.maps.places.AutocompleteService());\r\n setMaxZindex(google?.maps?.Marker?.MAX_ZINDEX);\r\n }\r\n }, [map, mapSettings]);\r\n\r\n const showUserLocation = useCallback(() => {\r\n const success = (position) => {\r\n setUserLocation({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n });\r\n };\r\n const error = (_) => {\r\n windowService()?.navigator.permissions.query({ name: \"geolocation\" }).then((permission) => {\r\n const permissionState = permission?.state;\r\n if (enteredDisabledStateOnce || permissionState === 'denied') {\r\n updateShowGeoLocationErrorMessage(true);\r\n } else {\r\n updateEnteredDisabledStateOnce(true);\r\n }\r\n });\r\n }\r\n windowService()?.navigator?.geolocation?.getCurrentPosition(success, error);\r\n googleGeolocationClick(\r\n dealerLocatorGeolocationClick,\r\n sitecoreContext?.analytics?.['region'],\r\n sitecoreContext?.analytics?.['language'],\r\n sitecoreContext?.analytics?.['market'],\r\n model?.searchType\r\n );\r\n }, [map, enteredDisabledStateOnce]);\r\n\r\n useEffect(() => {\r\n if (!map || model.searchType === SearchType.NoSearch) {\r\n return;\r\n }\r\n\r\n const hasDealers = Array.isArray(dealers) ? dealers.length > 0 : !!dealers?.dealership;\r\n\r\n if ((!hasDealers && !place) || !windowService()?.google) {\r\n return;\r\n }\r\n\r\n const bounds = new google.maps.LatLngBounds();\r\n const dealersArray = (() => {\r\n if (hasDealers && Array.isArray(dealers)) {\r\n return dealers;\r\n } else if (hasDealers && !Array.isArray(dealers)) {\r\n return [dealers];\r\n }\r\n\r\n return [];\r\n })();\r\n\r\n dealersArray.forEach((dealer) => {\r\n if (dealer?.dealership?.latitude && dealer?.dealership?.longitude) {\r\n const position = {\r\n lat: Number.parseFloat(dealer.dealership.latitude),\r\n lng: Number.parseFloat(dealer.dealership.longitude),\r\n };\r\n bounds.extend(position);\r\n }\r\n });\r\n\r\n if (place) {\r\n bounds.extend(place);\r\n }\r\n\r\n const hasOnlySingleMarker = (dealersArray.length === 1 && !place) || (place && dealersArray.length === 0);\r\n\r\n // Restrict MAX ZOOM for fitBounds\r\n if (model.maxMapZoomForSingleResult && hasOnlySingleMarker) {\r\n google.maps.event.addListenerOnce(map, 'bounds_changed', function () {\r\n map.setZoom(Math.min(map.getZoom() || 0, model.maxMapZoomForSingleResult));\r\n });\r\n }\r\n\r\n map?.fitBounds(bounds);\r\n }, [dealers, map, place, dealerIdPinHovered]);\r\n\r\n useEffect(() => {\r\n // ZOOM and PAN map to fit all States/Regions into map viewport\r\n if (!map || !hasVisibleRegionPolygon || !country) {\r\n return;\r\n }\r\n\r\n const selectedCountryPolygonData = countriesPolygonData.find((countryPolygonData) => countryPolygonData.code === country?.IsoCode);\r\n\r\n if (!selectedCountryPolygonData) {\r\n return;\r\n }\r\n\r\n let coordinates;\r\n if (isGeometryDocType(selectedCountryPolygonData?.kml)) {\r\n const kml = selectedCountryPolygonData?.kml;\r\n coordinates = kml?.geometry?.coordinates[0]?.map((pos) => ({ lat: pos[1], lng: pos[0] }));\r\n } else {\r\n const kml = selectedCountryPolygonData?.kml;\r\n coordinates = kml?.geometries?.flatMap((geometry) => geometry.coordinates[0]?.map((pos) => ({ lat: pos[1], lng: pos[0] })));\r\n }\r\n\r\n if (coordinates && coordinates.length > 0) {\r\n const bounds = new google.maps.LatLngBounds();\r\n coordinates.forEach((coord) => bounds.extend(coord));\r\n map?.fitBounds(bounds);\r\n }\r\n }, [map, hasVisibleRegionPolygon, countriesPolygonData, country]);\r\n\r\n const getMarkerLabel = (text: string) => {\r\n return {\r\n color: '#fff',\r\n text: text,\r\n className: 'dealer-locator-landing__map-dealer-pin-label',\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n } libraries={googleMapsLibraries}>\r\n setMap(map)}>\r\n <>\r\n {place && }\r\n {hasDealers &&\r\n dealersArray.map((dealer, i) => (\r\n isWide && setDealerIdForPinWithHover(dealer.dealership.dealerNumber)}\r\n onMouseOut={() => isWide && setDealerIdForPinWithHover(null)}\r\n onClick={() => {\r\n // Highlighting marker on click since mobile has no hover event listeners\r\n // Note: setState in this event handler is synchronous resulting in 2 times re-rendering. Order of setState to be preserved\r\n !isWide && setDealerIdForPinWithHover(dealer.dealership.dealerNumber);\r\n setClickedDealerNumber(dealer.dealership.dealerNumber);\r\n }}\r\n zIndex={dealerIdForPinWithHover !== dealer?.dealership?.dealerNumber ? undefined : maxZindex}\r\n />\r\n ))}\r\n {hasVisibleCountryPolygon &&\r\n countriesPolygonData?.map((country) => (\r\n \r\n ))}\r\n {hasVisibleRegionPolygon &&\r\n regionsPolygonData?.map((region) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n {model.searchByUserLocationEnabled && countryIsoCodeWithFallback && (\r\n
\r\n \r\n
\r\n )}\r\n map?.setZoom((map?.getZoom() || 0) + 1)}\r\n >\r\n \r\n \r\n map?.setZoom((map?.getZoom() || 1) - 1)}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DealerLocatorMap;\r\n","export const sanitizeText = (str: string): string => {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n};\r\n\r\nexport const textContains = (text: string, searchFor: string): boolean => {\r\n const sanitizedText = sanitizeText(searchFor);\r\n const checkExp = new RegExp(sanitizedText, 'gi');\r\n return checkExp.test(text);\r\n};\r\n\r\nexport const seperateSplitsAndMatched = (text: string, matchText: string): { splits: string[]; matched: Array } => {\r\n const sanitizedText = sanitizeText(matchText);\r\n const checkExp = new RegExp(sanitizedText, 'gi');\r\n const splits = text.split(checkExp);\r\n let matched: Array = [];\r\n const allMatched = text.match(checkExp);\r\n if (allMatched?.length) {\r\n matched = allMatched;\r\n }\r\n return { splits, matched };\r\n};\r\n\r\n// used to show component Name in placeholder as text fallback\r\nexport const upperCaseWordSplitAndSpace = (text: string): string => {\r\n if (!text) return '';\r\n return text.split(/(?=[A-Z])/).join(' ');\r\n};\r\n","import React from 'react';\r\nimport { sanitizeText } from '../../../utils/regex.utils';\r\n\r\nconst HiglightedOption = (newprops: { keyword: string; optionText?: string }): JSX.Element => {\r\n const { keyword, optionText } = newprops;\r\n const pattern = new RegExp(`(${sanitizeText(keyword)})`, 'gi');\r\n const parts = optionText?.split(pattern);\r\n\r\n return <>{keyword === '' ? optionText : parts?.map((part, i) => <>{i % 2 ? {part} : <>{part}})};\r\n};\r\n\r\nexport default HiglightedOption;\r\n","import React, { FC, useState, useRef, useEffect } from 'react';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { documentService } from '../../../../../../utils/window.utils';\r\nimport HiglightedOption from '../../../../../@shared/highlightedOption';\r\nimport { TCountry, TDropDownItem, TState } from '../../../../types/dealerLocatorLanding.types';\r\nimport { isStateType } from '../../../../dealerLocator.utils';\r\n\r\nenum arrowIcons {\r\n up = 'arrow-chevron-up',\r\n down = 'arrow-chevron-down'\r\n}\r\n\r\nconst Dropdown: FC<{\r\n items: Array;\r\n preSelectedItem?: TDropDownItem;\r\n label?: string;\r\n onSelect: (country: TCountry | TState) => void;\r\n}> = ({ items, preSelectedItem, label, onSelect }) => {\r\n const [selectedItem, setSelectedItem] = useState(preSelectedItem ?? null);\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n const defaultSearchText = (() => {\r\n if (!preSelectedItem) {\r\n return '';\r\n }\r\n\r\n if (isStateType(preSelectedItem)) {\r\n return preSelectedItem.name ?? '';\r\n } else {\r\n return preSelectedItem?.Country ?? '';\r\n }\r\n })();\r\n const [searchText, setSearchText] = useState(defaultSearchText);\r\n const [searchTextChanged, setSearchTextChanged] = useState(false);\r\n const [highligtedItemIndex, setHighligtedItemIndex] = useState(null);\r\n const [dropdownHover, setDropdownHover] = useState(false);\r\n const arrowIcon = dropdownOpen ? arrowIcons.up : arrowIcons.down;\r\n const searchInputElmRef = useRef(null);\r\n const dropdownElmRef = useRef(null);\r\n const filteredItems = items?.filter((item) => {\r\n if (isStateType(item)) {\r\n return item.name.toLocaleLowerCase().includes(searchText?.toLocaleLowerCase());\r\n }\r\n\r\n return item.Country.toLocaleLowerCase().includes(searchText?.toLocaleLowerCase());\r\n });\r\n const visibleItems = searchTextChanged && searchText !== '' ? filteredItems : items;\r\n\r\n const closeDropdown = () => {\r\n setDropdownOpen(false);\r\n setSearchTextChanged(false);\r\n setHighligtedItemIndex(null);\r\n };\r\n const handleListItemSelection = (item: TCountry | TState) => {\r\n setSelectedItem(item);\r\n setSearchText(isStateType(item) ? item.name : item.Country);\r\n onSelect(item);\r\n closeDropdown();\r\n };\r\n\r\n const handleInputClick = () => {\r\n setDropdownOpen(!dropdownOpen);\r\n };\r\n\r\n const handleInputChange = (e: React.ChangeEvent) => {\r\n setSearchText(e?.target?.value);\r\n setSearchTextChanged(true);\r\n\r\n if (!dropdownHover) {\r\n setHighligtedItemIndex(null);\r\n }\r\n };\r\n\r\n const handleClickOutside = (e) => {\r\n if (dropdownElmRef?.current?.contains(e?.target)) {\r\n return;\r\n }\r\n\r\n closeDropdown();\r\n };\r\n\r\n const keyDownHandler = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && visibleItems.length > 0) {\r\n if (searchText !== '' && highligtedItemIndex === null) {\r\n handleListItemSelection(visibleItems[0]);\r\n } else if (Number.isInteger(highligtedItemIndex)) {\r\n handleListItemSelection(visibleItems[highligtedItemIndex as number]);\r\n }\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n const index = highligtedItemIndex !== null && highligtedItemIndex < visibleItems.length - 1 ? highligtedItemIndex + 1 : 0;\r\n setHighligtedItemIndex(index);\r\n }\r\n\r\n if (e.key === 'ArrowUp') {\r\n e.preventDefault();\r\n const index = highligtedItemIndex !== null && highligtedItemIndex > 0 ? highligtedItemIndex - 1 : visibleItems.length - 1;\r\n setHighligtedItemIndex(index);\r\n }\r\n };\r\n const getOptionText: (item: TDropDownItem) => string = (item) => {\r\n if (!item) {\r\n return '';\r\n }\r\n\r\n if (isStateType(item)) {\r\n return item.name;\r\n }\r\n\r\n return item.Country;\r\n };\r\n\r\n const getOptionKey: (item: TCountry | TState) => string = (item) => {\r\n if (isStateType(item)) {\r\n return item.name.replace('', '-');\r\n }\r\n\r\n return item.Country;\r\n };\r\n\r\n useEffect(() => {\r\n if (dropdownOpen) {\r\n searchInputElmRef.current?.focus();\r\n }\r\n }, [dropdownOpen]);\r\n\r\n useEffect(() => {\r\n const doc = documentService() as Document;\r\n\r\n if (dropdownOpen) {\r\n doc.addEventListener('click', handleClickOutside, false);\r\n }\r\n\r\n return (): void => {\r\n doc.removeEventListener('click', handleClickOutside, false);\r\n };\r\n }, [documentService, dropdownOpen]);\r\n\r\n useEffect(() => {\r\n setSelectedItem(preSelectedItem ?? null);\r\n setSearchText(defaultSearchText);\r\n setSearchTextChanged(false);\r\n }, [items]);\r\n\r\n useEffect(() => {\r\n if (!preSelectedItem) {\r\n return;\r\n }\r\n setSelectedItem(preSelectedItem);\r\n setSearchText(isStateType(preSelectedItem) ? preSelectedItem.name ?? '' : preSelectedItem.Country ?? '');\r\n }, [preSelectedItem]);\r\n\r\n return (\r\n
\r\n handleInputClick()}\r\n >\r\n \r\n {label}\r\n \r\n {dropdownOpen ? (\r\n \r\n ) : (\r\n {getOptionText(selectedItem)}\r\n )}\r\n \r\n
\r\n {dropdownOpen && (\r\n {\r\n setHighligtedItemIndex(null);\r\n setDropdownHover(false);\r\n }}\r\n >\r\n {visibleItems?.map((item, i) => (\r\n {\r\n setHighligtedItemIndex(i);\r\n setDropdownHover(true);\r\n }}\r\n onClick={() => handleListItemSelection(item)}\r\n key={getOptionKey(item)}\r\n >\r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Dropdown;\r\n","import { useRef, useState, useEffect } from 'react';\r\nimport { TSuggestions, TUseSuggestionsParams } from '../../../../../types/dealerLocatorLanding.types';\r\n\r\nconst DL_BY_DEALER_NAME_API_URL = '/apirequest/dealer-locator/get-dealer-by-dealer-name';\r\nconst DEBOUNCE_DELAY = 500;\r\nconst MIN_SEARCH_TERM_LENGHT = 3;\r\n\r\nconst useSuggestions = (\r\n query: string,\r\n inputText: string,\r\n autocompleteService: google.maps.places.AutocompleteService,\r\n { pageId, language, countryIsoCode, resultsLimit }: TUseSuggestionsParams\r\n): [TSuggestions] => {\r\n const [suggestions, setSuggestions] = useState(null);\r\n const controllerRef = useRef();\r\n const timerRef = useRef>();\r\n\r\n const debounceFn = (callback) => {\r\n clearTimeout(timerRef.current);\r\n timerRef.current = setTimeout(callback, DEBOUNCE_DELAY);\r\n };\r\n\r\n const getComponnentsParam = (): { country: Array } | undefined => {\r\n if (!countryIsoCode) {\r\n return;\r\n }\r\n\r\n return {\r\n country: Array.isArray(countryIsoCode) ? countryIsoCode : [countryIsoCode],\r\n };\r\n };\r\n\r\n const fetchPlacesFromGoogle = () => {\r\n const req = {\r\n input: query,\r\n types: ['geocode'],\r\n componentRestrictions: getComponnentsParam(),\r\n };\r\n\r\n return new Promise((resolve, reject) => {\r\n autocompleteService.getPlacePredictions(req, (results, status) => {\r\n if (status === google.maps.places.PlacesServiceStatus.OK) {\r\n resolve(results);\r\n } else {\r\n reject('Failed to fetch place detail from Google Places API');\r\n }\r\n });\r\n });\r\n };\r\n\r\n const fetchDalersFromDealerPortal = () => {\r\n const queryUrlParams = new URLSearchParams({\r\n pageId: pageId,\r\n language: language,\r\n dealerName: query,\r\n country: Array.isArray(countryIsoCode) ? `${countryIsoCode.join('|')}` : countryIsoCode,\r\n });\r\n\r\n const queyrUrl = `${DL_BY_DEALER_NAME_API_URL}?${queryUrlParams}`;\r\n\r\n return fetch(queyrUrl, { signal: controllerRef.current?.signal }).then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n console.error(`${res.status} : Failed to fetch dealers results.`);\r\n }\r\n });\r\n };\r\n\r\n const fetchSuggestions = (): void => {\r\n if (controllerRef.current) {\r\n controllerRef.current.abort();\r\n }\r\n\r\n const controller = new AbortController();\r\n controllerRef.current = controller;\r\n\r\n if (query?.length < MIN_SEARCH_TERM_LENGHT) {\r\n setSuggestions(null);\r\n return;\r\n }\r\n\r\n Promise.allSettled([fetchPlacesFromGoogle(), fetchDalersFromDealerPortal()]).then((promiseResults) => {\r\n const [googlePlacesResuls, dealersResult] = promiseResults;\r\n const data: TSuggestions = { googlePlacesPredictions: [], dealershipResults: [] };\r\n let predictionsResults: google.maps.places.AutocompletePrediction[] = [];\r\n let dealershipResults = [];\r\n\r\n if (googlePlacesResuls?.status === 'fulfilled') {\r\n predictionsResults = googlePlacesResuls?.value || [];\r\n }\r\n\r\n if (dealersResult?.status === 'fulfilled') {\r\n dealershipResults = dealersResult?.value?.dealershipResults;\r\n }\r\n\r\n const groupLimit = resultsLimit / 2;\r\n const dealershipResultsCount = dealershipResults?.length || 0;\r\n const predictionsResultsCount = predictionsResults?.length || 0;\r\n const predictionsResultsLimit = dealershipResultsCount < groupLimit ? resultsLimit - dealershipResultsCount : groupLimit;\r\n const dealershipResultsLimit = predictionsResultsCount < groupLimit ? resultsLimit - predictionsResultsCount : groupLimit;\r\n\r\n data['googlePlacesPredictions'] = predictionsResults?.slice(0, predictionsResultsLimit) || [];\r\n data['dealershipResults'] = dealershipResults?.slice(0, dealershipResultsLimit) || [];\r\n\r\n setSuggestions(data);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n try {\r\n if (inputText !== query) {\r\n setSuggestions(null);\r\n return;\r\n }\r\n\r\n debounceFn(() => fetchSuggestions());\r\n } catch (e) {\r\n setSuggestions(null);\r\n }\r\n }, [query, inputText]);\r\n\r\n return [suggestions];\r\n};\r\n\r\nexport default useSuggestions;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDealerLandingSearch(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.997 3a7.997 7.997 0 0 1 7.998 7.997l-.007.333a7.918 7.918 0 0 1-1.683 4.566l3.4 3.389c.394.398.391 1.03 0 1.42a1.001 1.001 0 0 1-1.42 0l-3.39-3.4a7.917 7.917 0 0 1-4.898 1.69l-.249-.004A7.998 7.998 0 0 1 10.998 3zm0 2a5.998 5.998 0 1 0 0 11.996l.225-.005A5.998 5.998 0 0 0 10.998 5z\",\n fill: \"#4C4C4E\",\n fillRule: \"evenodd\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDealerLandingSearch);\nexport default __webpack_public_path__ + \"static/media/dealer-landing-search.96af9b91db9460c5712baa390be9f98e.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect, useState } from 'react';\r\nimport { DL_QUERY_STRINGS } from '../../../constants/dealerLocator.constants';\r\nimport { windowService } from '../../../utils/window.utils.js';\r\n\r\nconst useSearchText = (defaultValue): [string, React.Dispatch>] => {\r\n const getQuery = (key: string) => new URLSearchParams(windowService().location?.search).get(key);\r\n const query = getQuery(DL_QUERY_STRINGS.SEARCH_QUERY);\r\n const [queryText, setQueryText] = useState(query || defaultValue);\r\n const [urlQueryText, setUrlQueryText] = useState(queryText);\r\n\r\n useEffect(() => {\r\n if (!query || query === urlQueryText) {\r\n return;\r\n }\r\n\r\n setQueryText(query);\r\n }, [query, urlQueryText]);\r\n\r\n useEffect(() => {\r\n setUrlQueryText(query ?? '');\r\n }, [query]);\r\n\r\n return [queryText, setQueryText];\r\n};\r\n\r\nexport default useSearchText;\r\n","import { useEffect, useRef, useState } from 'react';\r\nimport { DL_BY_DEALER_NUMBER_API_URL, DL_QUERY_STRINGS } from '../../../../../../../constants/dealerLocator.constants';\r\nimport { windowService } from '../../../../../../../utils/window.utils.js';\r\n\r\nconst useSelectedDealer = (pageId, language): [any, string, (dealerNumber: string) => void] => {\r\n const getQuery = (key: string) => new URLSearchParams(windowService().location?.search).get(key);\r\n const query = getQuery(DL_QUERY_STRINGS.SELECTED_DEALER);\r\n const [selectedDealerNumber, setSelectedDealerNumber] = useState('');\r\n const controllerRef = useRef();\r\n const [selectedDealer, setSelectedDealer] = useState(null);\r\n\r\n const fetchDalerFromDealerPortal = (dealerNumber: string) => {\r\n if (controllerRef.current) {\r\n controllerRef.current.abort();\r\n }\r\n\r\n const controller = new AbortController();\r\n controllerRef.current = controller;\r\n\r\n const queryUrlParams = new URLSearchParams({\r\n pageId: pageId,\r\n language: language,\r\n dealerNumber: dealerNumber,\r\n });\r\n\r\n const queyrUrl = `${DL_BY_DEALER_NUMBER_API_URL}?${queryUrlParams}`;\r\n\r\n return fetch(queyrUrl, { signal: controllerRef.current?.signal }).then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n console.error(`${res.status} : Failed to fetch dealers results.`);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!query || query === selectedDealerNumber) {\r\n if (!query) {\r\n setSelectedDealerNumber('');\r\n setSelectedDealer(null);\r\n }\r\n return;\r\n }\r\n\r\n fetchDalerFromDealerPortal(query)\r\n .then((data) => {\r\n setSelectedDealer(data?.dealershipResults?.[0] ?? null);\r\n setSelectedDealerNumber(data?.dealershipResults?.[0].dealerNumber);\r\n })\r\n .catch((error) => {\r\n setSelectedDealer(null);\r\n setSelectedDealerNumber('');\r\n console.error(error);\r\n });\r\n }, [selectedDealerNumber, query]);\r\n\r\n return [selectedDealer, selectedDealerNumber, setSelectedDealerNumber];\r\n};\r\n\r\nexport default useSelectedDealer;\r\n","import { useEffect, useState } from 'react';\r\nimport { DL_QUERY_STRINGS } from '../../../../../../../constants/dealerLocator.constants';\r\nimport { windowService } from '../../../../../../../utils/window.utils.js';\r\n\r\nconst useSelectedPlace = (): [string, (placeId: string) => void] => {\r\n const getQuery = (key: string) => new URLSearchParams(windowService().location?.search).get(key);\r\n const query = getQuery(DL_QUERY_STRINGS.PLACE_ID);\r\n const [selectedPlaceId, setSelectedPlaceId] = useState(query ?? '');\r\n const [urlQueryText, setUrlQueryText] = useState(selectedPlaceId);\r\n\r\n useEffect(() => {\r\n if (!query || query === urlQueryText) {\r\n if (!query) {\r\n setSelectedPlaceId('');\r\n }\r\n return;\r\n }\r\n\r\n setSelectedPlaceId(query);\r\n }, [query, urlQueryText]);\r\n\r\n useEffect(() => {\r\n setUrlQueryText(query ?? '');\r\n }, [query]);\r\n\r\n return [selectedPlaceId, setSelectedPlaceId];\r\n};\r\n\r\nexport default useSelectedPlace;\r\n","import React, { useRef, useState, useEffect, FC, useCallback } from 'react';\r\nimport HiglightedOption from '../../../../../@shared/highlightedOption';\r\nimport { documentService } from '../../../../../../utils/window.utils';\r\nimport useSuggestions from './hooks/useSuggestions.effect';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { TTextSearchProps } from '../../../../types/dealerLocatorLanding.types';\r\nimport DictionaryTerm from '../../../../../@shared/dictionaryTerm';\r\nimport googleLogo from '../../../../../../assets/powered-by-google-on-white.png';\r\nimport dealerLocatorSearchSvg from '../../../../../../assets/dealer-landing-search.svg';\r\nimport useSearchText from '../../../../hooks/useSearchText.effect';\r\nimport useSelectedDealer from './hooks/useSelectedDealer.effect';\r\nimport useSelectedPlace from './hooks/useSelectedPlace.effect';\r\nimport { googleClickDealerLocatorResults } from '../../../../../../utils/analytics';\r\nimport { dealerLocatorResultsOpen } from '../../../../../../constants/analytics.constants';\r\n\r\nconst RESULTS_LENGTH_LIMIT = 8;\r\n\r\nexport const TextSearch: FC = ({\r\n model,\r\n countryIsoCode,\r\n label,\r\n onDealerSelect,\r\n onGooglePlaceSelect,\r\n autocompleteService,\r\n placesService,\r\n filteredDealerResults,\r\n country,\r\n}) => {\r\n const [searchInputValue, setSearchInputValue] = useSearchText('');\r\n const [searchText, setSearchText] = useState('');\r\n const [usersInput, setUsersInput] = useState(false);\r\n const suggestionSettings = {\r\n pageId: model.pageId,\r\n language: model.siteLanguage,\r\n countryIsoCode,\r\n resultsLimit: RESULTS_LENGTH_LIMIT,\r\n };\r\n const [suggestions] = useSuggestions(searchText, searchInputValue, autocompleteService, suggestionSettings);\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n const [higlightedSuggestionIndex, setHiglightedSuggestionIndex] = useState(null);\r\n const [selectedResult, setSelectedResult] = useState(null);\r\n const textSearchElmRef = useRef(null);\r\n const texInputElmRef = useRef(null);\r\n const dealerSuggestionsIndexOffset = suggestions?.googlePlacesPredictions?.length ?? 0;\r\n const [selectedDealer, selectedDealerNumber, setSelectedDealerNumber] = useSelectedDealer(model.pageId, model.siteLanguage);\r\n const [selectedPlaceId, setSelectedPlaceId] = useSelectedPlace();\r\n const [shouldUpdateUrl, setShouldUpdateUrl] = useState(false);\r\n\r\n const fetchPlaceDetail = useCallback((placeId: string) => {\r\n if (!placeId) {\r\n return;\r\n }\r\n\r\n const placeRequest = {\r\n placeId: placeId,\r\n fields: ['geometry'],\r\n };\r\n\r\n return new Promise((resolve, reject) => {\r\n placesService.getDetails(placeRequest, (result, status) => {\r\n if (status === google.maps.places.PlacesServiceStatus.OK) {\r\n resolve(result);\r\n } else {\r\n reject('Failed to fetch place detail from Google Places API');\r\n }\r\n });\r\n });\r\n }, []);\r\n\r\n const closeDropdown = (): void => {\r\n setDropdownOpen(false);\r\n };\r\n\r\n const getDisplayNameFromResult = (result: any): string => {\r\n if (result?.dealership) {\r\n return result?.dealership?.dealerName || '';\r\n }\r\n\r\n return result?.description || '';\r\n };\r\n\r\n const textChangeHandler = (e: React.ChangeEvent): void => {\r\n const newSearchText = e.target?.value || '';\r\n setUsersInput(true);\r\n setSearchInputValue(newSearchText);\r\n };\r\n\r\n const inputClickHandler = (): void => {\r\n setDropdownOpen(true);\r\n texInputElmRef?.current?.focus();\r\n };\r\n\r\n const handleSuggestionMouseEnter = (index: number): void => {\r\n setHiglightedSuggestionIndex(index);\r\n };\r\n\r\n const getCountryName = (isoCode, countries) => countries?.find((country) => country?.IsoCode === isoCode)?.Country;\r\n\r\n const determineSelectedCountry = (model, isoCode) =>\r\n model?.searchType === 'SearchByLocationOrDealer' ? getCountryName(isoCode, model?.countries) || isoCode : country?.Country;\r\n const selectedCountry = determineSelectedCountry(model, countryIsoCode);\r\n\r\n const getSelectedDealerRegionSearch = (result) => {\r\n return result?.description || result?.dealership?.dealerName || '';\r\n };\r\n\r\n const { dealerLocatorEquipmentsResults, dealerLocatorServicesResults } = filteredDealerResults || {};\r\n\r\n const handleSuggestionSelect = (result: any): void => {\r\n if (!result?.dealership) {\r\n setSelectedPlaceId(result?.place_id);\r\n setSelectedDealerNumber('');\r\n } else {\r\n setSelectedDealerNumber(result?.dealership?.dealerNumber);\r\n setSelectedPlaceId('');\r\n }\r\n setShouldUpdateUrl(true);\r\n setSelectedResult(result);\r\n setUsersInput(false);\r\n texInputElmRef?.current?.blur();\r\n\r\n if ((country?.Country || countryIsoCode) && result) {\r\n googleClickDealerLocatorResults(\r\n dealerLocatorResultsOpen,\r\n selectedCountry,\r\n getSelectedDealerRegionSearch(result),\r\n dealerLocatorEquipmentsResults,\r\n dealerLocatorServicesResults,\r\n model?.searchType,\r\n undefined\r\n );\r\n }\r\n };\r\n\r\n const handleClickOutside = (e) => {\r\n if (textSearchElmRef?.current?.contains(e?.target)) {\r\n return;\r\n }\r\n\r\n setUsersInput(false);\r\n closeDropdown();\r\n };\r\n\r\n const textInputFocusHandler = () => {\r\n setDropdownOpen(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (usersInput) {\r\n setSearchText(searchInputValue);\r\n setHiglightedSuggestionIndex(null);\r\n }\r\n }, [searchInputValue, usersInput]);\r\n\r\n useEffect(() => {\r\n const text = getDisplayNameFromResult(selectedResult);\r\n\r\n if (text) {\r\n setSearchInputValue(text);\r\n }\r\n }, [dropdownOpen, selectedResult]);\r\n\r\n useEffect(() => {\r\n const doc = documentService() as Document;\r\n\r\n if (dropdownOpen) {\r\n doc.addEventListener('click', handleClickOutside, false);\r\n }\r\n\r\n return (): void => {\r\n doc.removeEventListener('click', handleClickOutside, false);\r\n };\r\n }, [dropdownOpen]);\r\n\r\n useEffect(() => {\r\n if (selectedResult) {\r\n setUsersInput(false);\r\n closeDropdown();\r\n\r\n if (selectedResult.dealership) {\r\n onDealerSelect({\r\n results: selectedResult,\r\n queryText: selectedResult?.dealership?.dealerName ?? '',\r\n selectedDealerId: selectedResult?.dealership?.dealerNumber ?? '',\r\n updateUrl: shouldUpdateUrl,\r\n });\r\n setShouldUpdateUrl(false);\r\n } else {\r\n fetchPlaceDetail(selectedResult.place_id)\r\n ?.then((result) => {\r\n onGooglePlaceSelect(result, selectedResult?.place_id ?? '', selectedResult?.description ?? '', shouldUpdateUrl);\r\n setShouldUpdateUrl(false);\r\n })\r\n .catch((error) => {\r\n console.error(error, 'Error while fetching Place Detail');\r\n });\r\n }\r\n }\r\n }, [selectedResult, fetchPlaceDetail]);\r\n\r\n useEffect(() => {\r\n setUsersInput(false);\r\n setSelectedResult(null);\r\n setSelectedPlaceId('');\r\n setSelectedDealerNumber('');\r\n }, [countryIsoCode]);\r\n\r\n useEffect(() => {\r\n if (searchInputValue === searchText) {\r\n return;\r\n }\r\n\r\n setSearchInputValue(searchText);\r\n }, [searchText]);\r\n\r\n useEffect(() => {\r\n if (selectedPlaceId && selectedPlaceId !== selectedResult?.place_id) {\r\n setSelectedResult({ place_id: selectedPlaceId, description: searchInputValue ?? '' });\r\n }\r\n\r\n if (selectedDealer && selectedDealerNumber !== selectedResult?.dealership?.dealerNumber) {\r\n setSelectedResult(selectedDealer);\r\n }\r\n }, [selectedPlaceId, selectedDealer, selectedResult]);\r\n\r\n const handleEnter = () => {\r\n if (!suggestions) {\r\n return;\r\n }\r\n if (higlightedSuggestionIndex === null) {\r\n if (suggestions?.googlePlacesPredictions?.length > 0) {\r\n handleSuggestionSelect(suggestions?.googlePlacesPredictions[0]);\r\n } else if (suggestions?.dealershipResults?.length > 0) {\r\n handleSuggestionSelect(suggestions?.dealershipResults[0]);\r\n }\r\n } else {\r\n const predictionsCount = suggestions?.googlePlacesPredictions?.length || 0;\r\n\r\n if (higlightedSuggestionIndex <= predictionsCount - 1) {\r\n handleSuggestionSelect(suggestions?.googlePlacesPredictions[higlightedSuggestionIndex]);\r\n } else {\r\n handleSuggestionSelect(suggestions?.dealershipResults[higlightedSuggestionIndex - predictionsCount]);\r\n }\r\n }\r\n };\r\n\r\n const handleArrowUp = (e: React.KeyboardEvent): void => {\r\n if (!suggestions) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n const resultsLength = suggestions?.dealershipResults.length + suggestions?.googlePlacesPredictions.length;\r\n const index = higlightedSuggestionIndex !== null && higlightedSuggestionIndex > 0 ? higlightedSuggestionIndex - 1 : resultsLength - 1;\r\n setHiglightedSuggestionIndex(index);\r\n };\r\n\r\n const handleArrowDown = (e: React.KeyboardEvent): void => {\r\n if (!suggestions) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n const resultsLength = suggestions?.dealershipResults.length + suggestions?.googlePlacesPredictions.length;\r\n const index = higlightedSuggestionIndex !== null && higlightedSuggestionIndex < resultsLength - 1 ? higlightedSuggestionIndex + 1 : 0;\r\n setHiglightedSuggestionIndex(index);\r\n };\r\n\r\n const keyDownHandler = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n handleEnter();\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n handleArrowDown(e);\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowUp') {\r\n handleArrowUp(e);\r\n }\r\n };\r\n\r\n const clearSearch = () => {\r\n setSearchInputValue('');\r\n setUsersInput(false);\r\n setSelectedResult(null);\r\n texInputElmRef?.current?.blur();\r\n };\r\n\r\n const dealerLocatorResultsClickHandler = useCallback(() => {\r\n const isSelectedResults = getSelectedDealerRegionSearch(selectedResult);\r\n if ((country?.Country || countryIsoCode) && isSelectedResults) {\r\n googleClickDealerLocatorResults(\r\n dealerLocatorResultsOpen,\r\n selectedCountry,\r\n isSelectedResults,\r\n dealerLocatorEquipmentsResults,\r\n dealerLocatorServicesResults,\r\n model?.searchType,\r\n undefined\r\n );\r\n }\r\n }, [filteredDealerResults]);\r\n\r\n useEffect(() => {\r\n dealerLocatorResultsClickHandler();\r\n }, [dealerLocatorResultsClickHandler]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {label}\r\n \r\n \r\n {searchInputValue && (\r\n \r\n )}\r\n
\r\n {dropdownOpen && suggestions && (\r\n
\r\n {suggestions?.googlePlacesPredictions?.length > 0 && (\r\n

\r\n \r\n

\r\n )}\r\n
    \r\n {suggestions?.googlePlacesPredictions?.map((result, i) => (\r\n handleSuggestionMouseEnter(i)}\r\n onClick={() => handleSuggestionSelect(result)}\r\n key={result.place_id}\r\n >\r\n \r\n \r\n ))}\r\n
\r\n {suggestions?.dealershipResults?.length > 0 && (\r\n

\r\n \r\n

\r\n )}\r\n
    \r\n {suggestions?.dealershipResults?.map((result, i) => (\r\n handleSuggestionMouseEnter(dealerSuggestionsIndexOffset + i)}\r\n onClick={() => handleSuggestionSelect(result)}\r\n key={`${i + dealerSuggestionsIndexOffset}-${result.dealership.dealerNumber}`}\r\n >\r\n \r\n \r\n {result?.dealership?.shippingAddress1}, {result?.dealership?.shippingCity}, {result?.dealership?.shippingZip}\r\n \r\n \r\n ))}\r\n
\r\n \"powered\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default TextSearch;\r\n","import React, { FC } from 'react';\r\nimport { TSearchSwitchProps, TSearchSwithOptionsProps } from '../../../../types/dealerLocatorLanding.types';\r\n\r\nexport const SwitchOption: FC = ({ children }) => <>{children};\r\n\r\nconst SearchTypeSwitch: FC = ({ type, children }) => {\r\n if (Array.isArray(children)) {\r\n return <>{children.filter((child) => child?.props && child?.props?.typeName === type)};\r\n }\r\n\r\n if (children && children?.props?.typeName === type) {\r\n return <>{children};\r\n }\r\n\r\n return <>;\r\n};\r\n\r\nexport default SearchTypeSwitch;\r\n","import React, { FC, useRef, useEffect, useCallback, useState } from 'react';\r\nimport Dropdown from './components/dropdown';\r\nimport TextSearch from './components/textSearch';\r\nimport { TCountry, TDealerLocatorSearchProps, SearchType, TState } from '../../types/dealerLocatorLanding.types';\r\nimport SearchTypeSwitch, { SwitchOption } from './components/searchTypeSwitch';\r\nimport { fetchCountryDealersByGeoFilter, fetchDealersByGeoCode, fetchDealersByGeoFilter } from '../../dealerLocator.utils';\r\nimport { windowService } from '../../../../utils/window.utils.js';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport Icon from '../../../@shared/icon';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { USER_ABORTED_REQUEST_CODE } from '../../../../constants/dealerLocator.constants';\r\nimport { googleClickDealerLocatorResults, googleGeolocationClick } from '../../../../utils/analytics';\r\nimport { dealerLocatorGeolocationClick, dealerLocatorResultsOpen } from '../../../../constants/analytics.constants';\r\nimport DealerLocatorGeoLocatorToastMessage from '../dealerLocatorGeoLocationToastMessage';\r\n\r\nconst DealerLocatorSearch: FC = ({\r\n model,\r\n onDealerResults,\r\n country,\r\n setCountry,\r\n region,\r\n setRegion,\r\n autocompleteService,\r\n placesService,\r\n setUserLocation,\r\n setIsLoadingDealers,\r\n filteredDealerResults,\r\n sitecoreContext,\r\n}) => {\r\n const { t } = useTranslation();\r\n const controllerRef = useRef();\r\n const countryIsoCodeWithFallback =\r\n model.searchType === SearchType.SearchByLocationOrDealer ? model.defaultCountry : country?.IsoCode || model.defaultCountry;\r\n const isCountryChangedAfterPageLoad = useRef(false)\r\n\r\n const onCountrySelect = (country: TCountry) => {\r\n setCountry(country);\r\n setRegion(null);\r\n isCountryChangedAfterPageLoad.current = true\r\n };\r\n\r\n const onRegionSelect = (_region: TState) => {\r\n if (_region?.gmiCode !== region?.gmiCode) {\r\n setRegion(_region);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const { Country } = country || {};\r\n const { name } = region || {};\r\n const { dealerLocatorEquipmentsResults, dealerLocatorServicesResults } = filteredDealerResults || {};\r\n\r\n if (model?.searchType === 'SearchByCountryAndRegion' && Country && name) {\r\n googleClickDealerLocatorResults(\r\n dealerLocatorResultsOpen,\r\n Country,\r\n undefined,\r\n dealerLocatorEquipmentsResults,\r\n dealerLocatorServicesResults,\r\n model.searchType,\r\n name\r\n );\r\n } else if (model?.searchType === 'NoSearch') {\r\n googleClickDealerLocatorResults(\r\n dealerLocatorResultsOpen,\r\n Country ?? countryIsoCodeWithFallback,\r\n undefined,\r\n dealerLocatorEquipmentsResults,\r\n dealerLocatorServicesResults,\r\n model.searchType,\r\n undefined\r\n );\r\n }\r\n }, [region, filteredDealerResults]);\r\n\r\n const onGooglePlaceSelect = (place: any, placeId: string, placeDesc: string, updateUrl: boolean) => {\r\n const lat = place.geometry?.location?.lat() || '';\r\n const lng = place.geometry?.location?.lng() || '';\r\n\r\n if (lat && lng) {\r\n const apiCallParams = {\r\n lat: lat,\r\n lng: lng,\r\n pageId: model.pageId,\r\n language: model.siteLanguage,\r\n countryIsoCode: countryIsoCodeWithFallback,\r\n };\r\n\r\n setIsLoadingDealers(true);\r\n fetchDealersByGeoCode(apiCallParams, controllerRef)\r\n .then((data) => {\r\n const dealershipResults = data?.dealershipResults;\r\n const _place = {\r\n lat: Number.parseFloat(lat),\r\n lng: Number.parseFloat(lng),\r\n };\r\n onDealerResults({\r\n results: dealershipResults || [],\r\n place: _place,\r\n placeId: placeId,\r\n queryText: placeDesc,\r\n updateUrl: updateUrl,\r\n });\r\n })\r\n .catch((error) => {\r\n const _place = {\r\n lat: Number.parseFloat(lat),\r\n lng: Number.parseFloat(lng),\r\n };\r\n onDealerResults({\r\n results: [],\r\n place: _place,\r\n placeId: placeId,\r\n });\r\n console.error(error, 'Error while fetching Dealers');\r\n });\r\n }\r\n };\r\n\r\n const [showGeoLocationErrorMessage, updateShowGeoLocationErrorMessage] = useState(false);\r\n const [enteredDisabledStateOnce, updateEnteredDisabledStateOnce] = useState(false);\r\n\r\n const showUserLocation = useCallback(() => {\r\n const success = (position) => {\r\n setUserLocation({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n });\r\n };\r\n\r\n const error = (_) => {\r\n windowService()\r\n ?.navigator.permissions.query({ name: 'geolocation' })\r\n .then((permission) => {\r\n const permissionState = permission?.state;\r\n if (enteredDisabledStateOnce || permissionState === 'denied') {\r\n updateShowGeoLocationErrorMessage(true);\r\n } else {\r\n updateEnteredDisabledStateOnce(true);\r\n }\r\n });\r\n };\r\n windowService()?.navigator?.geolocation?.getCurrentPosition(success, error);\r\n googleGeolocationClick(\r\n dealerLocatorGeolocationClick,\r\n sitecoreContext?.analytics?.['region'],\r\n sitecoreContext?.analytics?.['language'],\r\n sitecoreContext?.analytics?.['market'],\r\n model?.searchType\r\n );\r\n }, [enteredDisabledStateOnce]);\r\n\r\n useEffect(() => {\r\n if (model.searchType !== SearchType.SearchByCountry || !isCountryChangedAfterPageLoad.current) {\r\n return;\r\n }\r\n\r\n const apiCallParams = {\r\n pageId: model.pageId,\r\n language: model.siteLanguage,\r\n countryIsoCode: countryIsoCodeWithFallback,\r\n country: country?.Country,\r\n };\r\n\r\n setIsLoadingDealers(true);\r\n fetchCountryDealersByGeoFilter(apiCallParams, controllerRef)\r\n .then((data) => {\r\n onDealerResults({\r\n results: data?.dealershipResults || [],\r\n updateUrl: true,\r\n });\r\n })\r\n .catch((error) => {\r\n if (error?.code !== USER_ABORTED_REQUEST_CODE) {\r\n onDealerResults({\r\n results: [],\r\n });\r\n console.error(error, 'Error while fetching Dealers', error.code);\r\n }\r\n });\r\n }, [country]);\r\n\r\n useEffect(() => {\r\n if (!region) {\r\n return;\r\n }\r\n\r\n const apiCallParams = {\r\n region: region.name,\r\n pageId: model.pageId,\r\n language: model.siteLanguage,\r\n countryIsoCode: countryIsoCodeWithFallback,\r\n };\r\n\r\n setIsLoadingDealers(true);\r\n fetchDealersByGeoFilter(apiCallParams, controllerRef)\r\n .then((data) => {\r\n onDealerResults({\r\n results: data?.dealershipResults || [],\r\n updateUrl: true,\r\n });\r\n })\r\n .catch((error) => {\r\n if (error?.code !== USER_ABORTED_REQUEST_CODE) {\r\n onDealerResults({\r\n results: [],\r\n });\r\n console.error(error, 'Error while fetching Dealers', error.code);\r\n }\r\n });\r\n }, [region]);\r\n\r\n return (\r\n <>\r\n {model.searchType !== SearchType.NoSearch && (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {country?.Regions && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n
\r\n {countryIsoCodeWithFallback && (\r\n <>\r\n \r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n {countryIsoCodeWithFallback && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {country && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DealerLocatorSearch;\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\nconst useAnimationEnd = (isMounted: boolean, delayTime: number) => {\r\n const [canShowDOM, setCanShowDOM] = useState(false);\r\n const timeoutRef = useRef | null>(null);\r\n\r\n useEffect(() => {\r\n timeoutRef.current && clearTimeout(timeoutRef.current);\r\n if (isMounted) {\r\n setCanShowDOM(true);\r\n } else {\r\n // showing content till animation is completed\r\n timeoutRef.current = setTimeout(() => setCanShowDOM(isMounted), delayTime);\r\n }\r\n return () => {\r\n timeoutRef.current && clearTimeout(timeoutRef.current);\r\n };\r\n }, [isMounted, delayTime]);\r\n\r\n return canShowDOM;\r\n};\r\nexport default useAnimationEnd;\r\n","import React, { FC } from 'react';\r\nimport { SearchType, TDealerResultListItemProps } from '../../../../types/dealerLocatorLanding.types';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport dealerPinSvg from '../../../../../../assets/dealer-pin.svg';\r\nimport dealerPinActiveSvg from '../../../../../../assets/dealer-pin-active.svg';\r\nimport DictionaryTerm from '../../../../../@shared/dictionaryTerm';\r\nimport RoutableNotEditableLink from '../../../../../@shared/routableNotEditableLink';\r\nimport { appendToUrlPath } from '../../../../../../utils/linkUtils';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { googleClickDealerLocatorGetDetals, googleDealerLocatorContactClick } from '../../../../../../utils/analytics';\r\nimport {\r\n dealerLocatorContactClick,\r\n dealerLocatorDetailView,\r\n dealerLocatorGetDirections,\r\n} from '../../../../../../constants/analytics.constants';\r\nimport useAnimationEnd from '../../../../../../hooks/useUnMountOnAnimationEnd';\r\nimport { BreakpointsInPx } from '../../../../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../../../../lib/custom-hooks/useMediaQuery';\r\n\r\nconst GOOGLE_DIRECTIONS_URL = 'https://www.google.com/maps/search/?api=1&query=';\r\n\r\nconst DealerResultsListItem: FC = ({\r\n model,\r\n dealer,\r\n markerNumber,\r\n clickedDealerNumber,\r\n dealerIdForPinWithHover,\r\n setClickedDealerNumber,\r\n setDealerIdForPinWithHover,\r\n country,\r\n region,\r\n setDealerIdPinHovered,\r\n}) => {\r\n const dealership = dealer.dealership;\r\n const expanded = useAnimationEnd(clickedDealerNumber === dealership.dealerNumber, 300);\r\n const arrowIcon = 'arrow-chevron-down';\r\n const hasHoverActive = dealerIdForPinWithHover === dealership.dealerNumber;\r\n const pinIcon = hasHoverActive ? dealerPinActiveSvg : dealerPinSvg;\r\n const distance = Number.parseFloat(dealer?.distance ?? '');\r\n const distanceText = !Number.isNaN(distance) ? `${(Math.round(distance * 100) / 100).toFixed(2)} ${model.distanceUnits}` : '';\r\n const isCertified = !!dealership?.dealershipAttributes?.awardDesignations?.length;\r\n const location = useLocation();\r\n const dealerNameForUrl =\r\n (dealership?.dealerName ?? '')\r\n .split(/[^a-zA-Z0-9]+/) // Split by non-alphanumeric characters\r\n .filter(Boolean) // Remove empty segments\r\n .join('-')\r\n .toLocaleLowerCase() ?? '';\r\n\r\n const dealerDetailPagePath = appendToUrlPath(\r\n model.currentPagePath,\r\n `${encodeURIComponent(dealerNameForUrl || '-')}/${encodeURIComponent(dealership.dealerNumber)}${location?.search ?? ''}`\r\n );\r\n\r\n const getDirectionsUrl = (): string => {\r\n return `${GOOGLE_DIRECTIONS_URL}${dealership?.latitude},${dealership?.longitude}`;\r\n };\r\n\r\n // GTM Event Handling Logic\r\n const countryIsoCodeWithFallbackForGtm =\r\n model.searchType === SearchType?.SearchByLocationOrDealer || SearchType?.NoSearch\r\n ? model.defaultCountry\r\n : country?.IsoCode || model.defaultCountry;\r\n\r\n const getCountryName = (isoCode, countries) => countries?.find((country) => country?.IsoCode === isoCode)?.Country;\r\n\r\n const determineSelectedCountry = (model, isoCode) =>\r\n model?.searchType === SearchType?.SearchByLocationOrDealer ? getCountryName(isoCode, model?.countries) || isoCode : country?.Country;\r\n const selectedCountry = determineSelectedCountry(model, countryIsoCodeWithFallbackForGtm);\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.lg})`);\r\n\r\n const handleGetDetailsClick = (dealerClickEvent) => {\r\n return googleClickDealerLocatorGetDetals(\r\n dealerClickEvent,\r\n country?.Country ?? selectedCountry,\r\n region?.name ?? '',\r\n dealership?.dealerName,\r\n isCertified ? 'Yes' : 'No',\r\n model?.searchType\r\n );\r\n };\r\n const handleContactClick = (contactMethod) => {\r\n return googleDealerLocatorContactClick(dealerLocatorContactClick, contactMethod, dealership?.dealerName, model?.searchType);\r\n };\r\n\r\n return (\r\n {\r\n if (isWide) {\r\n setDealerIdForPinWithHover(dealership.dealerNumber);\r\n setDealerIdPinHovered(true);\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n if (isWide) {\r\n setDealerIdForPinWithHover(null);\r\n setDealerIdPinHovered(null);\r\n }\r\n }}\r\n >\r\n
\r\n
\r\n {isCertified && (\r\n

\r\n \r\n

\r\n )}\r\n
{dealership.dealerName}
\r\n
\r\n {dealership.shippingAddress1}, {dealership.shippingCity}, {dealership.shippingStateProv || ''} {dealership.shippingZip}\r\n
\r\n
\r\n
\r\n \r\n {markerNumber}\r\n \"\"\r\n \r\n

{distanceText}

\r\n
\r\n
\r\n
\r\n {\r\n handleGetDetailsClick(dealerLocatorGetDirections);\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n {dealership.shippingPhone && (\r\n

\r\n \r\n {\r\n handleContactClick('Phone');\r\n }}\r\n >\r\n {dealership.shippingPhone}\r\n \r\n

\r\n )}\r\n {dealership.dealerEmail && (\r\n

\r\n \r\n {\r\n handleContactClick('Email');\r\n }}\r\n >\r\n {dealership.dealerEmail}\r\n \r\n

\r\n )}\r\n {dealership.dealershipAttributes?.website && (\r\n

\r\n \r\n {\r\n handleContactClick('Website');\r\n }}\r\n >\r\n {dealership.dealershipAttributes?.website}\r\n \r\n

\r\n )}\r\n
\r\n
\r\n {dealership?.dealershipAttributes?.awardDesignations?.map((award) => (\r\n \r\n ))}\r\n
\r\n \r\n\r\n {dealership?.hasInternalDetails === 'true' && (\r\n {\r\n handleGetDetailsClick(dealerLocatorDetailView);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n\r\n {\r\n setClickedDealerNumber(expanded ? null : dealership.dealerNumber);\r\n // Highlighting marker of expanded card for mobile\r\n if (!isWide) {\r\n setDealerIdForPinWithHover(expanded ? null : dealer.dealership.dealerNumber);\r\n setDealerIdPinHovered(expanded ? null : true);\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DealerResultsListItem;\r\n","import React, { FC, useState, useEffect, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport DealerResultsListItem from './components/dealerResultsListItem';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport Icon from '../../../@shared/icon';\r\nimport { TDealerResultsListingProps } from '../../types/dealerLocatorLanding.types';\r\nimport Spinner from '../../../@shared/spinner';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\n\r\nconst DealerResultsListing: FC = ({\r\n model,\r\n dealers,\r\n dealerIdForPinWithHover,\r\n clickedDealerNumber,\r\n isLoadingDealers,\r\n setDealerIdForPinWithHover,\r\n setClickedDealerNumber,\r\n country,\r\n region,\r\n setDealerIdPinHovered,\r\n resultsViewModeInTablet,\r\n}) => {\r\n const { t } = useTranslation();\r\n const [showShadowBottom, setShowShadowBottom] = useState(false);\r\n const hasDealers = Array.isArray(dealers) ? dealers.length > 0 : !!dealers.dealership;\r\n const dealersArray = (() => {\r\n if (hasDealers && Array.isArray(dealers)) {\r\n return dealers;\r\n } else if (hasDealers && !Array.isArray(dealers)) {\r\n return [dealers];\r\n }\r\n\r\n return [];\r\n })();\r\n const listRef = useRef(null);\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.lg})`);\r\n // hiding cards till pin click for map mode in mobile\r\n const canShowCardsInTablet =\r\n !isWide && resultsViewModeInTablet === 'map'\r\n ? !!dealerIdForPinWithHover && dealersArray.find((dealer) => dealer.dealership.dealerNumber === dealerIdForPinWithHover)\r\n : true;\r\n const scrollEndTimeOutRef = useRef | undefined>();\r\n\r\n useEffect(() => {\r\n if (clickedDealerNumber === null || !listRef?.current) {\r\n return;\r\n }\r\n\r\n const listItemIndex = dealersArray.findIndex((dealer) => dealer.dealership.dealerNumber === dealerIdForPinWithHover);\r\n const listItem = listRef.current?.querySelectorAll('li')[listItemIndex];\r\n const list = listRef.current;\r\n const listItemRect = listItem?.getBoundingClientRect();\r\n const listRect = list?.getBoundingClientRect();\r\n\r\n // auto scroll for mobile screen in list & map mode\r\n if (!isWide) {\r\n if (!listItem) return;\r\n if (resultsViewModeInTablet === 'map') {\r\n const dealersList = listRef.current?.querySelector('ul');\r\n if (dealersList) dealersList.scrollLeft = listItem.offsetLeft;\r\n } else {\r\n listItem.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }\r\n return;\r\n }\r\n\r\n if (listItemRect?.bottom > listRect?.bottom) {\r\n list.scrollTo({\r\n top: listItem.offsetTop + listItem.clientHeight - list.clientHeight,\r\n behavior: 'smooth',\r\n });\r\n } else if (listItemRect?.top < listRect?.top) {\r\n list.scrollTo({\r\n top: listItem.offsetTop,\r\n behavior: 'smooth',\r\n });\r\n }\r\n }, [clickedDealerNumber, resultsViewModeInTablet, dealers]);\r\n\r\n const getBoxShadow = (clientHeight: number, scrollTop: number, scrollHeight: number) => {\r\n const scrolledBy = scrollHeight - Math.round(scrollTop);\r\n const visibleBottomShadow = scrollHeight > clientHeight && clientHeight < scrolledBy;\r\n setShowShadowBottom(visibleBottomShadow);\r\n };\r\n\r\n const onScrollHandler = () => {\r\n if (!listRef?.current) return;\r\n getBoxShadow(listRef?.current?.clientHeight, listRef?.current?.scrollTop, listRef?.current?.scrollHeight);\r\n };\r\n\r\n const highlightVisibleCard = () => {\r\n const dealersList = listRef.current?.querySelector('ul');\r\n if (!dealersList) return;\r\n const visibleCardIndex = Math.round((dealersList.scrollLeft + 8) / (dealersList.clientWidth - 36));\r\n\r\n setDealerIdForPinWithHover(dealersArray[visibleCardIndex].dealership.dealerNumber);\r\n setClickedDealerNumber(dealersArray[visibleCardIndex].dealership.dealerNumber);\r\n setDealerIdPinHovered(true);\r\n };\r\n\r\n const handleUserScroll = () => {\r\n if (isWide || resultsViewModeInTablet === 'list') return;\r\n if (scrollEndTimeOutRef.current) clearTimeout(scrollEndTimeOutRef.current);\r\n scrollEndTimeOutRef.current = setTimeout(highlightVisibleCard, 50);\r\n };\r\n\r\n useEffect(() => {\r\n const resetRefSizes = (ref: any) => {\r\n if (!ref?.current) return;\r\n getBoxShadow(ref.current.clientHeight as number, ref.current.scrollTop, ref.current.scrollHeight);\r\n };\r\n resetRefSizes(listRef);\r\n }, [listRef?.current?.clientHeight]);\r\n\r\n return (\r\n \r\n {isLoadingDealers && }\r\n {hasDealers ? (\r\n canShowCardsInTablet && (\r\n <>\r\n
\r\n {t('cnhi-dealerLocatorResults')}: {dealersArray.length}\r\n
\r\n
    \r\n {dealersArray.map((dealer, i) => (\r\n \r\n ))}\r\n
\r\n \r\n )\r\n ) : (\r\n
\r\n \r\n
{t('cnhi-dealerLocatorNoDealersFound')}
\r\n

\r\n {t('cnhi-dealerLocatorNoDealersFoundDescription')}\r\n

\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DealerResultsListing;\r\n","import React, { useCallback, useEffect, useRef, useState, FC } from 'react';\r\nimport { documentService, windowService } from '../../../../../../utils/window.utils';\r\nimport { Breakpoints } from '../../../../../../constants/breakpoints.constants';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport ctaTypes from '../../../../../../enums/CTA.enums';\r\nimport DictionaryTerm from '../../../../../@shared/dictionaryTerm';\r\nimport useAnimationEnd from '../../../../../../hooks/useUnMountOnAnimationEnd';\r\nimport {\r\n TDealerFilterComponentProps,\r\n TDealerSelectedFilterKeyName,\r\n TSelectedFilterOptions,\r\n} from '../../../../types/dealerLocatorLanding.types';\r\nimport './styles.scss';\r\n\r\nexport type TDroplistProps = Partial<{\r\n droplistOptions: {\r\n Code?: string;\r\n Title?: JSX.Element | string;\r\n TitleUrl?: string;\r\n codeList?: Array;\r\n }[];\r\n droplistTitle: string | JSX.Element;\r\n extraClassName: string;\r\n optionColumnCount: number;\r\n}> & {\r\n filterKeyName: TDealerSelectedFilterKeyName;\r\n selectedFilters: TDealerFilterComponentProps['selectedFilters'];\r\n updateFilters: TDealerFilterComponentProps['updateFilters'];\r\n};\r\n\r\nconst Droplist: FC = ({\r\n droplistOptions = [],\r\n droplistTitle,\r\n extraClassName = '',\r\n optionColumnCount = 1,\r\n filterKeyName,\r\n selectedFilters,\r\n updateFilters,\r\n}) => {\r\n const [shouldShowDroplist, setShouldShowDroplist] = useState(false);\r\n const [shouldAlignRight, setShouldAlignRight] = useState(false);\r\n const droplistElmRef = useRef(null);\r\n const canShowDOM = useAnimationEnd(shouldShowDroplist, 300);\r\n const [localSelectedFilter, setLocalSelectedFilter] = useState({});\r\n const showDisabledResetCTA = Object.keys(localSelectedFilter)?.length === 0;\r\n\r\n useEffect(() => {\r\n setLocalSelectedFilter({ ...selectedFilters[filterKeyName] });\r\n }, [shouldShowDroplist]);\r\n\r\n useEffect(() => {\r\n function closeDroplistOnOutsideClick(event): void {\r\n if (windowService()?.innerWidth < Breakpoints['lg']) return;\r\n if (!droplistElmRef?.current?.contains(event?.target)) {\r\n setShouldShowDroplist(false);\r\n }\r\n }\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n docElement.addEventListener('click', closeDroplistOnOutsideClick, false);\r\n return (): void => docElement.removeEventListener('click', closeDroplistOnOutsideClick, false);\r\n }, []);\r\n\r\n // Auto align if droplist overflows outside browser\r\n useEffect(() => {\r\n if (!droplistElmRef?.current) return;\r\n const { right } = droplistElmRef?.current?.getElementsByClassName('dealer-droplist-filter__panel')[0]?.getBoundingClientRect() || {};\r\n if (right && right > documentService().documentElement?.clientWidth) {\r\n setShouldAlignRight(true);\r\n } else {\r\n setShouldAlignRight(false);\r\n }\r\n }, [canShowDOM]);\r\n\r\n const applyFilter = useCallback(\r\n (event: React.MouseEvent) => {\r\n event?.stopPropagation();\r\n const newFilters = { ...selectedFilters };\r\n newFilters[filterKeyName] = { ...localSelectedFilter };\r\n updateFilters({ ...newFilters });\r\n setShouldShowDroplist(false);\r\n },\r\n [localSelectedFilter]\r\n );\r\n\r\n const resetFilter = useCallback(\r\n (event: React.MouseEvent) => {\r\n event?.stopPropagation();\r\n if (showDisabledResetCTA) return;\r\n const newFilters = { ...selectedFilters };\r\n newFilters[filterKeyName] = {};\r\n updateFilters({ ...newFilters });\r\n setLocalSelectedFilter({});\r\n },\r\n [localSelectedFilter]\r\n );\r\n\r\n const saveLocalSelectedFilter = (TitleUrl: string, codeList: Array, isChecked) => {\r\n const localSelectedFilterCopy = localSelectedFilter;\r\n if (isChecked) {\r\n delete localSelectedFilterCopy[TitleUrl];\r\n } else {\r\n localSelectedFilterCopy[TitleUrl] = codeList;\r\n }\r\n setLocalSelectedFilter({ ...localSelectedFilterCopy });\r\n };\r\n\r\n if (!droplistOptions.length) return <>;\r\n\r\n const panelStyles = {\r\n '--option-column-count': optionColumnCount,\r\n } as React.CSSProperties;\r\n\r\n return (\r\n {\r\n event.stopPropagation();\r\n setShouldShowDroplist(!shouldShowDroplist);\r\n }}\r\n >\r\n {droplistTitle}\r\n \r\n {canShowDOM && (\r\n \r\n
    \r\n {droplistOptions?.map(({ TitleUrl = '', Title = '', codeList }) => {\r\n const isChecked = localSelectedFilter[TitleUrl];\r\n\r\n return (\r\n {\r\n event.stopPropagation();\r\n codeList && saveLocalSelectedFilter(TitleUrl, codeList, isChecked);\r\n }}\r\n >\r\n \r\n {Title}\r\n \r\n );\r\n })}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Droplist;\r\n","import React, { FC, useCallback } from 'react';\r\nimport Droplist from './components/droplist';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport { TDealerFilterComponentProps } from '../../types/dealerLocatorLanding.types';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport './styles.scss';\r\n\r\nconst DealerLocatorDesktopFilters: FC = ({ filters, selectedFilters, updateFilters }) => {\r\n // Todo: Replace this code with line no. 14 and 15 for Services Ref US-446445 \r\n /* const { Equipments, Services } = filters;\r\n const { equipmentSelectedOptions, serviceSelectedOptions } = selectedFilters; */\r\n // End Code comments US-446445 \r\n const { Equipments } = filters;\r\n const { equipmentSelectedOptions } = selectedFilters;\r\n const getColumnCount = useCallback(\r\n (filterList: any[] = []): number => {\r\n const columnCount = Math.round(filterList?.length / 8) || 1;\r\n return Math.min(columnCount, 3);\r\n },\r\n [filters]\r\n );\r\n\r\n const getTotalFiltersSelected = useCallback(\r\n (filtersObj = {}): string => {\r\n const count = Object.values(filtersObj)?.length || 0;\r\n if (count) {\r\n return ` (${count})`;\r\n } else {\r\n return '';\r\n }\r\n },\r\n [filters]\r\n );\r\n\r\n const resetAllFilter = useCallback(() => {\r\n updateFilters({\r\n equipmentSelectedOptions: {},\r\n // Todo: Uncomment this code for Services against US-446445\r\n // serviceSelectedOptions: {},\r\n // End Code comments US-446445\r\n });\r\n }, [filters]);\r\n\r\n const equipmentSelectedFiltersCount = getTotalFiltersSelected(equipmentSelectedOptions);\r\n // Todo: Uncomment this code for Services against US-446445\r\n // const seriesSelectedFiltersCount = getTotalFiltersSelected(serviceSelectedOptions);\r\n // End Code comments US-446445\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {equipmentSelectedFiltersCount}\r\n \r\n }\r\n droplistOptions={Equipments}\r\n filterKeyName=\"equipmentSelectedOptions\"\r\n selectedFilters={selectedFilters}\r\n updateFilters={updateFilters}\r\n />\r\n {/* Todo: Uncomment this code for Services against US-446445\r\n \r\n \r\n {seriesSelectedFiltersCount}\r\n \r\n }\r\n droplistOptions={Services}\r\n filterKeyName=\"serviceSelectedOptions\"\r\n selectedFilters={selectedFilters}\r\n updateFilters={updateFilters}\r\n />\r\n End Code comments US-446445 */}\r\n
\r\n {/* Todo: Replace this code with line no. 85 for Services Ref US-446445 \r\n (equipmentSelectedFiltersCount || seriesSelectedFiltersCount)\r\n End Code comments US-446445 */}\r\n {equipmentSelectedFiltersCount && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default DealerLocatorDesktopFilters;\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport './styles.scss';\r\nimport useAnimationEnd from '../../../../../../hooks/useUnMountOnAnimationEnd';\r\nimport { TSelectedFilterOptions } from '../../../../types/dealerLocatorLanding.types';\r\n\r\nexport type TAccordionProps = {\r\n accordionTitle?: JSX.Element;\r\n accordionOptions?: Partial<{\r\n Code?: string;\r\n Title?: JSX.Element | string;\r\n TitleUrl?: string;\r\n codeList?: Array;\r\n }>[];\r\n canShowAccordionContent: boolean;\r\n handleSwitchClick: () => void;\r\n handleCheckBoxClick: () => void;\r\n localSelectedFilter: TSelectedFilterOptions;\r\n setLocalSelectedFilter: React.Dispatch>;\r\n};\r\n\r\nconst Accordion: FC = ({\r\n accordionTitle: title = '',\r\n accordionOptions = [],\r\n localSelectedFilter = {},\r\n setLocalSelectedFilter,\r\n canShowAccordionContent = false,\r\n handleSwitchClick,\r\n handleCheckBoxClick,\r\n}) => {\r\n const canShowDOM = useAnimationEnd(canShowAccordionContent, 290);\r\n\r\n const saveLocalSelectedFilter = (TitleUrl: string, codeList: Array, isChecked) => {\r\n const localSelectedFilterCopy = localSelectedFilter;\r\n if (isChecked) {\r\n delete localSelectedFilterCopy[TitleUrl];\r\n } else {\r\n localSelectedFilterCopy[TitleUrl] = codeList;\r\n }\r\n setLocalSelectedFilter({ ...localSelectedFilterCopy });\r\n };\r\n\r\n if (!accordionOptions.length) return <>;\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n \r\n
\r\n {canShowDOM && (\r\n
\r\n {accordionOptions?.map(({ TitleUrl = '', Title = '', codeList }) => {\r\n const isChecked = localSelectedFilter[TitleUrl];\r\n\r\n return (\r\n {\r\n codeList && saveLocalSelectedFilter(TitleUrl, codeList, isChecked);\r\n handleCheckBoxClick();\r\n }}\r\n >\r\n \r\n {Title}\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Accordion;\r\n","import React, { useCallback, useEffect, useState, FC } from 'react';\r\nimport { documentService } from '../../../../utils/window.utils';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport { TDealerFilterComponentProps, TSelectedFilterOptions } from '../../types/dealerLocatorLanding.types';\r\nimport './styles.scss';\r\nimport Accordion from './components/accordion';\r\n\r\nconst MobileFilter: FC = ({ filters, selectedFilters, updateFilters }) => {\r\n const [shouldOpenFilterModal, setShouldOpenFilterModal] = useState(false);\r\n // Todo: Replace this code with line no. 16 for Services Ref US-446445\r\n // const { Equipments, Services } = filters;\r\n // End Code comments US-446445\r\n const { Equipments } = filters;\r\n const { equipmentSelectedOptions, serviceSelectedOptions } = selectedFilters;\r\n const [localSelectedEquipment, setLocalSelectedEquipment] = useState(equipmentSelectedOptions);\r\n const [localSelectedServices, setLocalSelectedServices] = useState(serviceSelectedOptions);\r\n const [selectedAccordion, setSelectedAccordion] = useState<'Equipment' | 'Services' | undefined>();\r\n const isNoCheckboxSelected = Object.keys(localSelectedEquipment).length + Object.keys(localSelectedServices).length === 0;\r\n const [canShowCTAs, setCanShowCTAs] = useState(false);\r\n\r\n const toggleModal = (shouldOpenModal: boolean) => {\r\n if (!shouldOpenModal) setSelectedAccordion(undefined);\r\n shouldOpenModal && setCanShowCTAs(!isNoCheckboxSelected); // show CTA's on modal open if any checkbox selected\r\n setShouldOpenFilterModal(shouldOpenModal);\r\n };\r\n\r\n const getFiltersSelectedCount = (): string => {\r\n const count = Object.values({ ...equipmentSelectedOptions, ...serviceSelectedOptions })?.length || 0;\r\n if (count) {\r\n return ` (${count})`;\r\n } else {\r\n return '';\r\n }\r\n };\r\n\r\n const revertToOldFilters = () => {\r\n setLocalSelectedEquipment({ ...equipmentSelectedOptions });\r\n setLocalSelectedServices({ ...serviceSelectedOptions });\r\n };\r\n\r\n const resetFilter = () => {\r\n if (isNoCheckboxSelected) return;\r\n updateFilters({\r\n equipmentSelectedOptions: {},\r\n serviceSelectedOptions: {},\r\n });\r\n };\r\n\r\n const applyFilter = () => {\r\n updateFilters({\r\n equipmentSelectedOptions: { ...localSelectedEquipment },\r\n serviceSelectedOptions: { ...localSelectedServices },\r\n });\r\n toggleModal(false);\r\n };\r\n\r\n const handleCheckBoxClick = () => {\r\n !canShowCTAs && setCanShowCTAs(true);\r\n };\r\n\r\n // 1. update localselected values wiht real selected values on filters reset & if user shifts from dsk to < tablet layout\r\n useEffect(() => {\r\n setLocalSelectedEquipment({ ...equipmentSelectedOptions });\r\n setLocalSelectedServices({ ...serviceSelectedOptions });\r\n }, [equipmentSelectedOptions, serviceSelectedOptions]);\r\n\r\n useEffect(() => {\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n\r\n if (shouldOpenFilterModal) docElement.body.classList.add('body--with-dealer-filter-model');\r\n else docElement.body.classList.remove('body--with-dealer-filter-model');\r\n }, [shouldOpenFilterModal]);\r\n\r\n const toggleAccordion = (accordionName: typeof selectedAccordion) => {\r\n if (accordionName === selectedAccordion) setSelectedAccordion(undefined);\r\n else {\r\n setSelectedAccordion(accordionName);\r\n }\r\n };\r\n\r\n const getTotalFiltersSelected = useCallback(\r\n (filtersObj = {}): string => {\r\n const count = Object.values(filtersObj)?.length || 0;\r\n if (count) {\r\n return ` (${count})`;\r\n } else {\r\n return '';\r\n }\r\n },\r\n [filters]\r\n );\r\n\r\n const equipmentSelectedFiltersCount = getTotalFiltersSelected(localSelectedEquipment);\r\n // Todo: Uncomment this code for Services against US-446445\r\n // const seriesSelectedFiltersCount = getTotalFiltersSelected(localSelectedServices);\r\n // End Code comments US-446445\r\n return (\r\n <>\r\n
\r\n {\r\n toggleModal(true);\r\n }}\r\n >\r\n {getFiltersSelectedCount()}\r\n \r\n
\r\n {shouldOpenFilterModal && (\r\n
\r\n
\r\n \r\n \r\n \r\n {\r\n revertToOldFilters();\r\n toggleModal(false);\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n {equipmentSelectedFiltersCount}\r\n \r\n }\r\n localSelectedFilter={localSelectedEquipment}\r\n setLocalSelectedFilter={setLocalSelectedEquipment}\r\n canShowAccordionContent={selectedAccordion === 'Equipment'}\r\n handleSwitchClick={() => toggleAccordion('Equipment')}\r\n handleCheckBoxClick={handleCheckBoxClick}\r\n />\r\n {/* Todo: Uncomment this code for Services against US-446445\r\n \r\n \r\n {seriesSelectedFiltersCount}\r\n \r\n }\r\n localSelectedFilter={localSelectedServices}\r\n setLocalSelectedFilter={setLocalSelectedServices}\r\n canShowAccordionContent={selectedAccordion === 'Services'}\r\n handleSwitchClick={() => toggleAccordion('Services')}\r\n handleCheckBoxClick={handleCheckBoxClick}\r\n />\r\n End Code comments US-446445 */}\r\n
\r\n {canShowCTAs && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MobileFilter;\r\n","import { useEffect, useState } from 'react';\r\nimport { DL_QUERY_STRINGS } from '../../../constants/dealerLocator.constants';\r\nimport { TCountry } from '../types/dealerLocatorLanding.types';\r\nimport { windowService } from '../../../utils/window.utils.js';\r\n\r\nconst useCountry = (defaultValue, model): [TCountry | null, React.Dispatch>] => {\r\n const getQuery = (key: string) => new URLSearchParams(windowService().location?.search).get(key);\r\n const query = getQuery(DL_QUERY_STRINGS.COUNTRY);\r\n const countryFromQuery = model.countries.find((country) => country.IsoCode === query) ?? null;\r\n const [country, setCountry] = useState(countryFromQuery || defaultValue);\r\n const [countryIsoCode, setCountryIsoCode] = useState('');\r\n\r\n useEffect(() => {\r\n if (!query || !countryFromQuery || query === countryIsoCode) {\r\n return;\r\n }\r\n\r\n setCountry(countryFromQuery);\r\n }, [query, countryFromQuery, country]);\r\n\r\n useEffect(() => {\r\n setCountryIsoCode(country?.IsoCode ?? '');\r\n }, [country]);\r\n\r\n return [country, setCountry];\r\n};\r\n\r\nexport default useCountry;\r\n","import { useEffect, useState } from 'react';\r\nimport { DL_QUERY_STRINGS } from '../../../constants/dealerLocator.constants';\r\nimport { TState } from '../types/dealerLocatorLanding.types';\r\nimport { windowService } from '../../../utils/window.utils.js';\r\n\r\nconst useRegion = (defaultValue, country): [TState | null, React.Dispatch>] => {\r\n const getQuery = (key: string) => new URLSearchParams(windowService().location?.search).get(key);\r\n const query = getQuery(DL_QUERY_STRINGS.REGION);\r\n const regionFromQuery = country?.states?.find((state) => state.gmiCode === query) ?? null;\r\n const [region, setRegion] = useState(regionFromQuery || defaultValue);\r\n const [regionGmiCode, setRegionGmiCode] = useState('');\r\n\r\n useEffect(() => {\r\n if (!query || !regionFromQuery || query === regionGmiCode) {\r\n return;\r\n }\r\n\r\n setRegion(regionFromQuery);\r\n }, [query, regionFromQuery, country]);\r\n\r\n useEffect(() => {\r\n setRegionGmiCode(region?.gmiCode ?? '');\r\n }, [region]);\r\n\r\n return [region, setRegion];\r\n};\r\n\r\nexport default useRegion;\r\n","import { useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { TBaseObj } from '../types/types';\r\nimport { windowService } from '../utils/window.utils';\r\n\r\nconst getQuery = () => new URLSearchParams(windowService().location?.search);\r\n\r\nconst getQueryStringVal = (key: string): string | null => getQuery().get(key);\r\n\r\nconst useQueryParams = (key: string, defaultVal: string): [string, (val: string) => void] => {\r\n const navigate = useNavigate();\r\n const [query, setQuery] = useState(getQueryStringVal(key) || defaultVal);\r\n\r\n const updateUrl = (newVal: string) => {\r\n setQuery(newVal);\r\n\r\n const queries = getQuery();\r\n\r\n if (newVal.trim() !== '') {\r\n queries.set(key, newVal);\r\n } else {\r\n queries.delete(key);\r\n }\r\n\r\n navigate(`?${queries.toString()}`);\r\n };\r\n\r\n return [query, updateUrl];\r\n};\r\n\r\nexport const setBulkQueryParamsAndRedirect = (obj: TBaseObj, url = '') => {\r\n if (!obj) return;\r\n const queries = getQuery();\r\n Object.keys(obj).forEach((key) => {\r\n const value = obj[key];\r\n if (value.trim() !== '') {\r\n queries.set(key, value);\r\n } else {\r\n queries.delete(key);\r\n }\r\n });\r\n\r\n // reload the page with updated search params\r\n const anchorElement = document.createElement('a');\r\n const baseUrl = url.split('?')?.[0] || '';\r\n anchorElement.href = baseUrl + '?' + (queries.toString() || '');\r\n anchorElement.click();\r\n};\r\n\r\nexport const updateSearchResults = (navigate: any, obj: TBaseObj, url = '') => {\r\n if (!obj || !navigate) return;\r\n const queries = getQuery();\r\n Object.keys(obj).forEach((key) => {\r\n const value = obj[key];\r\n if (value.trim() !== '') {\r\n queries.set(key, value);\r\n } else {\r\n queries.delete(key);\r\n }\r\n });\r\n\r\n // reload the page with updated search params\r\n const baseUrl = url.split('?')?.[0] || '';\r\n const searchUrl = baseUrl + '?' + (queries.toString() || '');\r\n navigate(searchUrl);\r\n};\r\n\r\nexport default useQueryParams;\r\n","import { DL_QUERY_STRINGS } from '../../../constants/dealerLocator.constants';\r\nimport useQueryParams from '../../../hooks/useQueryParams.effect';\r\nimport { TDealerSelectedFiltersState, TSelectedFilterOptions } from '../types/dealerLocatorLanding.types';\r\n\r\nconst useSelectedFiltersState = (\r\n initialState: TDealerSelectedFiltersState\r\n): [TDealerSelectedFiltersState, (TDealerSelectedFiltersState) => void] => {\r\n const encodeFiltersData = (filterData: TSelectedFilterOptions): string => {\r\n const keys = Object.keys(filterData);\r\n const queryString = keys.map((key) => key + ':' + filterData[key]?.join(','))?.join(';');\r\n\r\n return queryString ?? '';\r\n };\r\n\r\n const [eqFilters, setEqFilters] = useQueryParams(\r\n DL_QUERY_STRINGS.EQUIPMENT_FILTERS,\r\n encodeFiltersData(initialState.equipmentSelectedOptions)\r\n );\r\n // const [seFilters, setSeFilters] = useQueryParams(\r\n const [, setSeFilters] = useQueryParams(DL_QUERY_STRINGS.SERVICES_FILTERS, encodeFiltersData(initialState.serviceSelectedOptions));\r\n\r\n const parseFiltersData = (queryString: string): TSelectedFilterOptions => {\r\n const propsArray = queryString?.split(';').map((prop) => prop?.split(':'));\r\n const filterObj = {};\r\n\r\n propsArray.forEach((prop) => {\r\n if (!prop[0] || prop[0] === '' || typeof prop[0] === 'undefined') {\r\n return;\r\n }\r\n filterObj[prop[0]] = prop[1]?.split(',');\r\n });\r\n\r\n return filterObj;\r\n };\r\n\r\n const setSelectedFilters = ({ equipmentSelectedOptions, serviceSelectedOptions }) => {\r\n setEqFilters(encodeFiltersData(equipmentSelectedOptions));\r\n setSeFilters(encodeFiltersData(serviceSelectedOptions));\r\n };\r\n\r\n const equipmentSelectedOptions = parseFiltersData(eqFilters);\r\n // Todo: Replace this code with line no. 47 for Services Ref US-446445\r\n // const serviceSelectedOptions = parseFiltersData(seFilters);\r\n // End Code comments US-446445\r\n const serviceSelectedOptions = parseFiltersData('');\r\n const selectedFilters = { equipmentSelectedOptions, serviceSelectedOptions };\r\n return [selectedFilters, setSelectedFilters];\r\n};\r\n\r\nexport default useSelectedFiltersState;\r\n","import { useEffect, useState } from 'react';\r\nimport { DL_QUERY_STRINGS } from '../../../constants/dealerLocator.constants';\r\nimport { windowService } from '../../../utils/window.utils.js';\r\n\r\nconst useUserLocationState = (): [\r\n { lat: string; lng: string } | null,\r\n boolean,\r\n React.Dispatch>\r\n] => {\r\n const [userLatLng, setUserLatLng] = useState<{ lat: string; lng: string } | null>(null);\r\n const [valueIsFromQuery, setValueIsFromQuery] = useState(false);\r\n const getQuery = (key: string) => new URLSearchParams(windowService().location?.search).get(key);\r\n const queryLat = getQuery(DL_QUERY_STRINGS.USER_LATITUDE);\r\n const queryLng = getQuery(DL_QUERY_STRINGS.USER_LONGITUDE);\r\n\r\n const updateLatLng = (value) => {\r\n setValueIsFromQuery(false);\r\n setUserLatLng(value);\r\n };\r\n\r\n useEffect(() => {\r\n if (!queryLat || !queryLng) {\r\n return;\r\n }\r\n setUserLatLng({ lat: queryLat ?? '', lng: queryLng ?? '' });\r\n setValueIsFromQuery(true);\r\n }, [queryLat, queryLng]);\r\n\r\n return [userLatLng, valueIsFromQuery, updateLatLng];\r\n};\r\n\r\nexport default useUserLocationState;\r\n","import React, { FC, useCallback, useMemo, useState, useEffect, useRef } from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n SearchType,\r\n TDealerLocatorLandingProps,\r\n TDealershipSuggestion,\r\n TPlaceCoordinates,\r\n TDealershipResult,\r\n onDealerResultsProps,\r\n TCountry,\r\n TUpdateUrlQueryStringParamsProps,\r\n TMapSettings,\r\n TResultViewMode,\r\n} from './types/dealerLocatorLanding.types';\r\nimport { DealerLocatorLandingModel } from './models/dealerLocatorLanding.model';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport DealerLocatorMap from './components/dealerLocatorMap';\r\nimport DealerLocatorSearch from './components/dealerLocatorSearch';\r\nimport DealerResultsListing from './components/dealerResultsListing';\r\nimport DealerLocatorDesktopFilters from './components/dealerLocatorDesktopFilters';\r\nimport DealerLocatorMobileFilters from './components/dealerLocatorMobileFilters';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport FirebaseContextProvider from './components/dealerLocatorFirebaseContextProvider';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { windowService } from '../../utils/window.utils.js';\r\nimport { DL_QUERY_STRINGS } from '../../constants/dealerLocator.constants';\r\nimport useCountry from './hooks/useCountry.effect';\r\nimport useRegion from './hooks/useRegion.effect';\r\nimport useSelectedFiltersState from './hooks/useSelectedFiltersState.effect';\r\nimport { fetchDealersByGeoCode, getInitialMapSettings, getMapSettingsFromCountry } from './dealerLocator.utils';\r\nimport useUserLocationState from './hooks/useUserLocationState.effect';\r\nimport DictionaryTerm from '../@shared/dictionaryTerm';\r\nimport Icon from '../@shared/icon';\r\nimport { iconSize } from '../../constants/icon.constants';\r\nimport useSitecoreContext from '../../hooks/useSitecoreContext';\r\n\r\nconst DealerLocatorLanding: FC = (props) => {\r\n const {sitecoreContext} = useSitecoreContext();\r\n const model = useMemo(() => new DealerLocatorLandingModel(props, sitecoreContext), [props, sitecoreContext]);\r\n const defaultCountry = model.countries.find((country) => country.IsoCode === model.defaultCountry) ?? null;\r\n const preselectedCountry = model.hasDefaultCountryPreselected ? defaultCountry : null;\r\n const defaultForResulsShown = model.searchType === SearchType.NoSearch;\r\n const [country, setCountry] = useCountry(preselectedCountry, model);\r\n const [region, setRegion] = useRegion(null, country);\r\n const [autocompleteService, setAutocompleteService] = useState();\r\n const [placesService, setPlacesService] = useState();\r\n const [dealers, setDealers] = useState(model.noSearchDealerResults ?? []);\r\n const [dealerIdForPinWithHover, setDealerIdForPinWithHover] = useState(null);\r\n const [place, setPlace] = useState();\r\n const [resultAndFilterShown, setResultAndFilterShown] = useState(defaultForResulsShown);\r\n const [clickedDealerNumber, setClickedDealerNumber] = useState(null);\r\n const [mapSettings, setMapSettings] = useState(getInitialMapSettings(country, model));\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.lg})`);\r\n const [isLoadingDealers, setIsLoadingDealers] = useState(false);\r\n const [dealerIdPinHovered, setDealerIdPinHovered] = useState(false);\r\n const [selectedFilters, setSelectedFilters] = useSelectedFiltersState({\r\n equipmentSelectedOptions: {},\r\n serviceSelectedOptions: {},\r\n });\r\n const navigate = useNavigate();\r\n const [userLocation, valueIsFromQuery, setUserLocation] = useUserLocationState();\r\n const controllerRef = useRef();\r\n const countryIsoCodeWithFallback =\r\n model.searchType === SearchType.SearchByLocationOrDealer ? model.defaultCountry : country?.IsoCode || model.defaultCountry;\r\n\r\n const [filteredDealerResults, setFilteredDealerResults] = useState({\r\n dealerLocatorEquipmentsResults: '',\r\n dealerLocatorServicesResults: '',\r\n });\r\n const [resultsViewModeInTablet, setResultsViewModeInTablet] = useState('map');\r\n\r\n const updateFilters = useCallback((newFilters = {}) => {\r\n setSelectedFilters({ ...selectedFilters, ...newFilters });\r\n }, []);\r\n\r\n useEffect(() => {\r\n const updatedFilters = { ...selectedFilters };\r\n const equipmentsResults = Object.values(updatedFilters?.equipmentSelectedOptions).flat();\r\n const servicesResults = Object.values(updatedFilters?.serviceSelectedOptions).flat();\r\n const dealerLocatorEquipmentsResults = equipmentsResults\r\n ?.map((infoIndex) => {\r\n return model?.filters?.Equipments?.[infoIndex]?.Title;\r\n })\r\n .join();\r\n const dealerLocatorServicesResults = servicesResults\r\n ?.map((infoIndex) => {\r\n return model?.filters?.Services?.[infoIndex]?.Title;\r\n })\r\n .join();\r\n\r\n setFilteredDealerResults({\r\n dealerLocatorEquipmentsResults,\r\n dealerLocatorServicesResults,\r\n });\r\n }, [JSON.stringify(selectedFilters)]);\r\n\r\n const sortDealersByDistance = (dealers: TDealershipSuggestion[]): TDealershipSuggestion[] => {\r\n return dealers.sort((a, b) => Number.parseFloat(a?.distance ?? '') - Number.parseFloat(b?.distance ?? ''));\r\n };\r\n\r\n const getVisibleDealers = (dealers: TDealershipSuggestion[]): TDealershipSuggestion[] => {\r\n const sortedDealers = sortDealersByDistance(dealers);\r\n\r\n if (model.maxResultsCount) {\r\n return sortedDealers.slice(0, model.maxResultsCount);\r\n }\r\n\r\n return sortedDealers;\r\n };\r\n\r\n const filterDealer = (eachDealer: TDealershipResult, selectedFilterCodes: string[] = []): boolean => {\r\n const contractDetails = eachDealer?.dealership?.dealershipAttributes?.contractDetails;\r\n if (selectedFilterCodes.length === 0) return true;\r\n\r\n if (contractDetails?.length) {\r\n const dealerContractDetailsCodesObj = {};\r\n contractDetails.forEach((eachContract) => (dealerContractDetailsCodesObj[eachContract.shortDescription] = 1));\r\n const shouldShowDealer = selectedFilterCodes.find((eachCode) => !!dealerContractDetailsCodesObj[eachCode]);\r\n return !!shouldShowDealer;\r\n }\r\n return false;\r\n };\r\n\r\n const updateUrlQueryStringParams = ({\r\n country,\r\n region,\r\n queryText,\r\n userLocation,\r\n selectedDealerId,\r\n placeId,\r\n updateUrl,\r\n }: TUpdateUrlQueryStringParamsProps): void => {\r\n const getQuery = () => new URLSearchParams(windowService().location?.search);\r\n const queries = getQuery();\r\n\r\n const updateUrlParams = (key, newVal: string) => {\r\n if (newVal.trim() !== '') {\r\n queries.set(key, newVal);\r\n } else {\r\n queries.delete(key);\r\n }\r\n };\r\n\r\n if (!updateUrl) {\r\n return;\r\n }\r\n\r\n updateUrlParams(DL_QUERY_STRINGS.COUNTRY, country?.IsoCode ?? '');\r\n updateUrlParams(DL_QUERY_STRINGS.REGION, region?.gmiCode ?? '');\r\n updateUrlParams(DL_QUERY_STRINGS.USER_LATITUDE, userLocation?.lat?.toString() ?? '');\r\n updateUrlParams(DL_QUERY_STRINGS.USER_LONGITUDE, userLocation?.lng?.toString() ?? '');\r\n updateUrlParams(DL_QUERY_STRINGS.SEARCH_QUERY, queryText ?? '');\r\n updateUrlParams(DL_QUERY_STRINGS.SELECTED_DEALER, selectedDealerId ?? '');\r\n updateUrlParams(DL_QUERY_STRINGS.PLACE_ID, placeId ?? '');\r\n\r\n navigate(`?${queries.toString()}`);\r\n };\r\n\r\n const onDealerResults = ({\r\n results,\r\n place,\r\n queryText,\r\n userLocation,\r\n selectedDealerId,\r\n placeId,\r\n updateUrl,\r\n }: onDealerResultsProps): void => {\r\n setIsLoadingDealers(false);\r\n setDealers(results);\r\n setPlace(place);\r\n setResultAndFilterShown(true);\r\n updateUrlQueryStringParams({ country, region, queryText, userLocation, selectedDealerId, placeId, updateUrl });\r\n };\r\n\r\n const filteredDealers = useMemo(() => {\r\n const selectedFilterCodes = Object.values({\r\n ...selectedFilters.equipmentSelectedOptions,\r\n ...selectedFilters.serviceSelectedOptions,\r\n }).flat(1);\r\n if (Array.isArray(dealers)) {\r\n return getVisibleDealers(dealers.filter((eachDealer) => filterDealer(eachDealer, selectedFilterCodes)));\r\n } else {\r\n const canShowDealer = !!dealers?.dealership && filterDealer(dealers, selectedFilterCodes);\r\n return canShowDealer ? dealers : [];\r\n }\r\n }, [dealers, JSON.stringify(selectedFilters)]);\r\n\r\n useEffect(() => {\r\n if (!userLocation?.lat || !userLocation?.lng || !countryIsoCodeWithFallback) {\r\n return;\r\n }\r\n\r\n const apiCallParams = {\r\n lat: userLocation?.lat,\r\n lng: userLocation?.lng,\r\n brand: model.brand,\r\n pageId: model.pageId,\r\n language: model.siteLanguage,\r\n countryIsoCode: countryIsoCodeWithFallback,\r\n };\r\n\r\n const place = {\r\n lat: Number(userLocation.lat),\r\n lng: Number(userLocation.lng),\r\n };\r\n\r\n setIsLoadingDealers(true);\r\n fetchDealersByGeoCode(apiCallParams, controllerRef)\r\n .then((data) => {\r\n const dealershipResults = data?.dealershipResults || [];\r\n\r\n onDealerResults({\r\n results: dealershipResults,\r\n place: place,\r\n userLocation: place,\r\n updateUrl: !valueIsFromQuery,\r\n });\r\n })\r\n .catch((error) => {\r\n console.error('Error: Fetch dealers by Geo Code failed.', error);\r\n onDealerResults({\r\n results: [],\r\n userLocation: place,\r\n updateUrl: !valueIsFromQuery,\r\n });\r\n });\r\n }, [userLocation, countryIsoCodeWithFallback]);\r\n\r\n const updateMapSettings = (country: TCountry): void => {\r\n const hasSupportedSearchType =\r\n model.searchType === SearchType.SearchByCountryAndRegion || model.searchType === SearchType.SearchByCountryAndLocationOrDealer;\r\n\r\n if (!model.hasInteractiveMap && hasSupportedSearchType && country) {\r\n setMapSettings(getMapSettingsFromCountry(country, model));\r\n }\r\n };\r\n\r\n const updateCountry = (country: TCountry) => {\r\n updateUrlQueryStringParams({ updateUrl: true });\r\n setCountry(country);\r\n setDealers([]);\r\n setResultAndFilterShown(defaultForResulsShown);\r\n setPlace(undefined);\r\n updateMapSettings(country);\r\n };\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n const setDealerIdPinFocused = (hovered) => {\r\n setDealerIdPinHovered(hovered);\r\n };\r\n return (\r\n \r\n
\r\n \r\n {(model.title?.value || model.description?.value) && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n {autocompleteService && placesService && (\r\n \r\n )}\r\n
\r\n setResultsViewModeInTablet(() => (resultsViewModeInTablet === 'list' ? 'map' : 'list'))}\r\n >\r\n \r\n \r\n \r\n {/* TODO: Uncomment below when AllDealers functionality is implemented */}\r\n {/* */}\r\n
\r\n
\r\n {resultAndFilterShown &&\r\n model.areFiltersNotEmpty &&\r\n (isWide ? (\r\n \r\n ) : (\r\n \r\n ))}\r\n
\r\n {resultAndFilterShown && (\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default DealerLocatorLanding;\r\n","import React, { FC } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport Picture from '../../../@shared/picture';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport Icon from '../../../@shared/icon';\r\nimport { TBrochureCardProps } from '../../types/downloadBrochures.types';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport '../../../../styles/@shared/product-card.scss';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport '../../../../styles/@shared/downloadBrochures/brochureCard/styles.scss';\r\n\r\nconst BrochureCard: FC = (props) => {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n const { title,alternateImageUrl, alternateText, digitalBrochureURL, filesize, publicLinks, downloadIcon, shareIcon, viewIcon } = props;\r\n const { t } = props;\r\n\r\n const productImageProps = alternateImageUrl\r\n ? {\r\n mobileRendition: { url: `${alternateImageUrl}&t=Size500` },\r\n desktopRendition: { url: `${alternateImageUrl}&t=Size500` },\r\n pictureClassName: 'brochure-card-article__picture brochure-card-article__picture--fixed-aspect-ratio',\r\n alt: alternateText,\r\n }\r\n : {\r\n mobileRendition: { url: `${publicLinks?.bigthumbnail}}&t=Size500` },\r\n desktopRendition: { url: `${publicLinks?.bigthumbnail}&t=Size500` },\r\n pictureClassName: 'download-brochure_card__article__picture--fixed-aspect-ratio',\r\n alt: alternateText,\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n {title ?

{title}

: null}\r\n {filesize ? {filesize}MB : null}\r\n
\r\n
\r\n {digitalBrochureURL ? (\r\n \r\n \r\n \r\n \r\n {viewIcon && }\r\n \r\n ) : (\r\n
\r\n \r\n \r\n {t('cnhi-share')}\r\n \r\n {shareIcon && }\r\n \r\n
\r\n )}\r\n \r\n {t('cnhi-download')}\r\n {downloadIcon && }\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withTranslation()(BrochureCard);\r\n","\r\nimport { TIconField, TLinkField, TSitecoreContext, TStringField } from '../../../types/types';\r\nimport { TDownloadBrochuresProps, TDownloadBrochureFields, TBrochureCardField } from '../types/downloadBrochures.types';\r\n\r\nexport class ProductDownloadBrochureModel {\r\n private readonly fields: TDownloadBrochureFields;\r\n private readonly context: TSitecoreContext;\r\n\r\n constructor(props: TDownloadBrochuresProps) {\r\n this.context = props.sitecoreContext;\r\n this.fields = props?.fields || null;\r\n }\r\n\r\n get title(): TStringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get eyebrow(): TStringField | undefined {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get subHeading(): TStringField | undefined {\r\n return this.fields?.subHeading;\r\n }\r\n\r\n get ctaLink(): TLinkField | undefined {\r\n return this.fields?.ctaLink;\r\n }\r\n\r\n get shareIcon(): TIconField | undefined {\r\n return this.fields?.shareIcon;\r\n }\r\n\r\n get downloadIcon(): TIconField | undefined {\r\n return this.fields?.downloadIcon;\r\n }\r\n\r\n get viewIcon(): TIconField | undefined {\r\n return this.fields?.viewIcon;\r\n }\r\n\r\n get brochureCards(): TBrochureCardField[] {\r\n return this.fields?.items || [];\r\n }\r\n\r\n get currentPageUrl(): string {\r\n return this.context?.currentPageUrl ?? '';\r\n }\r\n\r\n}\r\n","import React, { FC, useEffect } from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { documentService, windowService } from '../../utils/window.utils';\r\nimport Heading from '../@shared/heading';\r\nimport BrochureCard from './components/brochureCard';\r\nimport { ProductDownloadBrochureModel } from './models/downloadBrochures.model';\r\nimport { TDownloadBrochuresProps } from './types/downloadBrochures.types';\r\nimport '../../styles/@shared/downloadBrochures/styles.scss';\r\n\r\nconst ProductDownloadBrochures: FC = (props) => {\r\n const model = new ProductDownloadBrochureModel(props);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n const shareScript = 'https://static.addtoany.com/menu/page.js';\r\n const addthisScript = documentService()?.createElement?.('script');\r\n addthisScript.setAttribute('src', shareScript);\r\n const shareContentScript = documentService()?.querySelector?.(`[src=\"${shareScript}\"]`);\r\n if (documentService()?.body && !shareContentScript) documentService()?.body?.appendChild?.(addthisScript);\r\n else windowService()?.a2a?.init_all?.();\r\n });\r\n }, [model.currentPageUrl]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {model?.brochureCards.map((card) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductDownloadBrochures);\r\n","import React, { FC } from 'react';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { getImageField } from '../../../../utils/getImageFields';\r\nimport { getThumbnailProps } from '../../../../utils/youtubeUtils';\r\nimport Picture from '../../../@shared/picture';\r\nimport VideoPlayer from '../../../@shared/videoPlayer';\r\nimport { TEventDetailMediaProps } from '../types/eventDetail.types';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\n\r\nconst EventDetailMedia: FC = ({\r\n showVideo,\r\n desktopImage,\r\n mobileImage,\r\n video,\r\n isMediaExists,\r\n}) => {\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-p']}px)`);\r\n const videoUrl = video?.value?.href;\r\n\r\n if (!isMediaExists) {\r\n return null;\r\n }\r\n\r\n if (showVideo) {\r\n const { thumbnailImgSrc } = getThumbnailProps(videoUrl || '');\r\n const desktopImageOrThumbnail = getImageField(desktopImage, thumbnailImgSrc ?? '', showVideo);\r\n const mobileImageOrThumbnail = getImageField(mobileImage, thumbnailImgSrc ?? '', showVideo);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default EventDetailMedia;\r\n","import { EVENT_TIMELINE_QUERY_VALUE_MAP } from '../constants/eventsFairs.constants';\r\nimport { EE_EMPTY_DATE_FALLBACK_VALUE } from '../constants/fields.const';\r\nimport { getUTCDate } from '../hooks/useFormatDate';\r\nimport { TEventsListingItem } from '../components/eventsListing/types/eventsListing.types';\r\n\r\nconst canShowEventCard = (eventItem: TEventsListingItem) => {\r\n // Events cards with past unPublish date needs to be hidden\r\n const { unPublishOn } = eventItem;\r\n let isTodayBeforeUnPublishOn = false;\r\n const todayDate = new Date();\r\n if (!unPublishOn || unPublishOn?.includes(EE_EMPTY_DATE_FALLBACK_VALUE) || todayDate <= getUTCDate(unPublishOn)) {\r\n isTodayBeforeUnPublishOn = true;\r\n }\r\n\r\n return isTodayBeforeUnPublishOn;\r\n};\r\n\r\nconst getTimeline = (startDate: Date, endDate?: Date): keyof typeof EVENT_TIMELINE_QUERY_VALUE_MAP | '' => {\r\n const todayDate = new Date();\r\n if (startDate && todayDate < startDate) return 'UPCOMING';\r\n if (startDate && todayDate >= startDate) {\r\n if (endDate && todayDate <= endDate) return 'ONGOING';\r\n if (endDate && todayDate > endDate) return 'PAST';\r\n }\r\n return '';\r\n};\r\n\r\nconst getEndOfDate = (date: string) => {\r\n const endOfStartDate = new Date(getUTCDate(date || ''));\r\n endOfStartDate.setHours(23);\r\n endOfStartDate.setMinutes(59);\r\n endOfStartDate.setSeconds(59);\r\n endOfStartDate.setMilliseconds(999);\r\n return endOfStartDate;\r\n};\r\n\r\nconst getCanUseDate = (date?: string): boolean => {\r\n return !!(date && !date.startsWith(EE_EMPTY_DATE_FALLBACK_VALUE));\r\n};\r\n\r\nexport { canShowEventCard, getTimeline, getEndOfDate, getCanUseDate };\r\n","import { TDateField, TImageField, TLinkField, TStringField, VideoSitecoreField } from '../../../../types/types';\r\nimport { isEmptyObject } from '../../../../utils/checkEmptyObject';\r\nimport { getCanUseDate } from '../../../../utils/eventsListings.utils';\r\nimport { TSocialMediaBarProps } from '../../../@shared/socialMediaBar/types/socialMediaBar.types';\r\nimport { TSaveCalendarEventProps } from '../../saveCalendarEvent/types/saveEvent.types';\r\nimport { TEventDetailFields, TEventDetailProps } from '../types/eventDetail.types';\r\n\r\nexport class EventDetailModel {\r\n private readonly fields?: TEventDetailFields;\r\n\r\n constructor(props: TEventDetailProps) {\r\n this.fields = props.fields;\r\n }\r\n\r\n get title(): TStringField | undefined {\r\n return this.fields?.title;\r\n } \r\n \r\n get time(): TStringField | undefined {\r\n return this.fields?.time;\r\n }\r\n\r\n get location(): TStringField | undefined {\r\n return this.fields?.location;\r\n }\r\n\r\n get startDate(): TDateField {\r\n return this.fields?.startDate || {};\r\n }\r\n\r\n get canShowStartDate(): boolean {\r\n return getCanUseDate(this.fields?.startDate?.value);\r\n }\r\n\r\n get endDate(): TDateField {\r\n return this.fields?.endDate || {};\r\n }\r\n\r\n get canShowEndDate(): boolean {\r\n return getCanUseDate(this.fields?.endDate?.value);\r\n }\r\n\r\n get calendarDetails(): TSaveCalendarEventProps['calendarDetails'] {\r\n return this.fields?.calendarDetails || [];\r\n }\r\n\r\n get desktopImage(): TImageField | undefined {\r\n return this.fields?.image;\r\n }\r\n\r\n get mobileImage(): TImageField | undefined {\r\n return this.fields?.mobileImage;\r\n }\r\n\r\n get showVideo(): boolean {\r\n return !!this.fields?.useVideo?.value && !!this.fields?.video?.value?.href;\r\n }\r\n\r\n get video(): VideoSitecoreField {\r\n return this.fields?.video ?? { value: {} };\r\n }\r\n\r\n get mediaExists(): boolean {\r\n return !!(this.showVideo || this.fields?.image?.value?.src || this.fields?.mobileImage?.value?.src);\r\n }\r\n\r\n get detailedDescription(): TStringField | undefined {\r\n return this.fields?.detailedDescription;\r\n }\r\n\r\n get primaryCta(): TLinkField | undefined {\r\n return this.fields?.primaryCta;\r\n }\r\n\r\n get showPrimaryCta(): boolean {\r\n return !!(this.primaryCta?.value?.text && this.primaryCta?.value?.href);\r\n }\r\n\r\n get secondaryCta(): TLinkField | undefined {\r\n return this.fields?.secondaryCta;\r\n }\r\n\r\n get showSecondaryCta(): boolean {\r\n return !!(this.secondaryCta?.value?.text && this.secondaryCta?.value?.href);\r\n }\r\n\r\n get showCtaWrapper(): boolean {\r\n return this.showPrimaryCta || this.showSecondaryCta;\r\n }\r\n\r\n get socialMediaBarProps(): TSocialMediaBarProps | undefined {\r\n return isEmptyObject(this.fields?.socialMediaBar) ? undefined : this.fields?.socialMediaBar;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n}\r\n","enum EVENTS_TEMPLATE_ID {\r\n EVENT = 'bf268cb0-dcaa-4e1a-9076-50d3bccc3bb7',\r\n FAIR = '64830a10-1b23-4bbb-94ec-53200c06b7a0',\r\n LIVE_EVENT = '6c2dd8ab-27c0-4cd8-9ef0-eb79607217f4',\r\n}\r\n\r\nconst EVENT_TEMPLATE_ID_TYPE_QUERY_VALUE_MAP = {\r\n [EVENTS_TEMPLATE_ID.EVENT]: 'event',\r\n [EVENTS_TEMPLATE_ID.FAIR]: 'fair',\r\n [EVENTS_TEMPLATE_ID.LIVE_EVENT]: 'live-event',\r\n};\r\n\r\nconst EVENT_TIMELINE_QUERY_VALUE_MAP = {\r\n UPCOMING: 'latest',\r\n ONGOING: 'latest',\r\n PAST: 'past',\r\n};\r\n\r\nenum EVENT_TITLE_DICTIONARY_KEY {\r\n EVENT = 'cnhi-events-type-event',\r\n FAIR = 'cnhi-events-type-fair',\r\n LIVE_EVENT = 'cnhi-events-type-live-event',\r\n}\r\n\r\nconst EVENT_QUERY_STRINGS = {\r\n EVENT_TIMELINE: 'event-timeline',\r\n EVENT_TYPE: 'event-type',\r\n EVENT_PAGE: 'event-page',\r\n};\r\n\r\nconst EVENTS_DATA_API_URL = '/apirequest/event-listing/get-events';\r\n\r\nexport {\r\n EVENTS_TEMPLATE_ID,\r\n EVENT_TITLE_DICTIONARY_KEY,\r\n EVENT_QUERY_STRINGS,\r\n EVENTS_DATA_API_URL,\r\n EVENT_TEMPLATE_ID_TYPE_QUERY_VALUE_MAP,\r\n EVENT_TIMELINE_QUERY_VALUE_MAP,\r\n};\r\n","import { TIconFromRenderingParams } from '../../../../types/types';\r\n\r\nexport type TCalenderEvent = {\r\n calendarUrl: string;\r\n calendarIcon: TIconFromRenderingParams;\r\n calendarTitle: string;\r\n calendarDownload: boolean;\r\n};\r\n\r\nexport enum TSaveCalendarEventButtonType {\r\n SECONDARYBLACK = 'secondary-black',\r\n PRIMARY = 'primary-btn',\r\n SMALL = 'small-btn',\r\n PRIMARYWHITE = 'primary-white'\r\n}\r\n\r\nexport type TSaveCalendarEventProps = {\r\n calendarDetails: TCalenderEvent[];\r\n buttonType: TSaveCalendarEventButtonType;\r\n startDate?: string;\r\n endDate?: string;\r\n extraClassName?: string;\r\n};\r\n","import React, { FC, useEffect, useRef, useState } from 'react';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\nimport { getUTCDate } from '../../../hooks/useFormatDate';\r\nimport { getCanUseDate, getEndOfDate, getTimeline } from '../../../utils/eventsListings.utils';\r\nimport { documentService } from '../../../utils/window.utils';\r\nimport { ctaTypes } from '../cta';\r\nimport DictionaryTerm from '../dictionaryTerm';\r\nimport Icon from '../icon';\r\nimport RoutableNotEditableLink from '../routableNotEditableLink';\r\nimport { TCalenderEvent, TSaveCalendarEventButtonType, TSaveCalendarEventProps } from './types/saveEvent.types';\r\n\r\nconst SaveEventOptionWrapper: FC & { children: React.ReactNode}> = ({ calendarDownload = false, calendarUrl, children }) => {\r\n return calendarDownload ? (\r\n // special case to not use RoutableNotEditableLink\r\n // ignored to allow download\r\n \r\n {children}\r\n \r\n ) : (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nconst SaveCalendarEvent: FC> = ({\r\n calendarDetails = [],\r\n buttonType = TSaveCalendarEventButtonType.SECONDARYBLACK,\r\n startDate,\r\n endDate,\r\n extraClassName = '',\r\n}) => {\r\n const canUseStartDate = getCanUseDate(startDate);\r\n const canUseEndDate = getCanUseDate(endDate);\r\n const eventTimeline =\r\n startDate && canUseStartDate\r\n ? getTimeline(getUTCDate(startDate), endDate && canUseEndDate ? getUTCDate(endDate) : getEndOfDate(startDate))\r\n : '';\r\n const [shouldShowDropdownList, setShouldShowDropdownList] = useState(false);\r\n const dropdownElmRef = useRef(null);\r\n const baseButtonClass = 'save-event__button';\r\n const buttonTypeClassMap = {\r\n [TSaveCalendarEventButtonType['SECONDARYBLACK']]: baseButtonClass,\r\n [TSaveCalendarEventButtonType['SMALL']]: `${baseButtonClass}--${buttonType}`,\r\n [TSaveCalendarEventButtonType[\r\n 'PRIMARY'\r\n ]]: `${ctaTypes['secondaryBaseButton']} ${ctaTypes['secondaryBaseButton']}--${ctaTypes.primaryRed} ${baseButtonClass}--${buttonType}`,\r\n [TSaveCalendarEventButtonType[\r\n 'PRIMARYWHITE'\r\n ]]: `${baseButtonClass}--${ctaTypes.primaryWhite}`,\r\n };\r\n\r\n const handleClickOutside = (e) => {\r\n if (dropdownElmRef?.current?.contains(e?.target)) return;\r\n setShouldShowDropdownList(false);\r\n };\r\n\r\n useEffect(() => {\r\n const doc = documentService() as Document;\r\n doc.addEventListener('click', handleClickOutside, false);\r\n\r\n return () => doc.removeEventListener('click', handleClickOutside, false);\r\n }, [calendarDetails]);\r\n\r\n if (!calendarDetails?.length || !eventTimeline || eventTimeline === 'PAST') return null;\r\n\r\n return (\r\n
\r\n setShouldShowDropdownList(!shouldShowDropdownList)}\r\n ref={dropdownElmRef}\r\n >\r\n

\r\n \r\n

\r\n \r\n \r\n {shouldShowDropdownList && (\r\n
    \r\n {calendarDetails.map(({ calendarDownload, calendarUrl, calendarIcon, calendarTitle }, index) => {\r\n return (\r\n // eslint-disable-next-line react/jsx-key\r\n
  • \r\n \r\n \r\n

    \r\n
    \r\n
  • \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default SaveCalendarEvent;\r\n","import React, { FC } from 'react';\r\nimport { DateField, RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BreakpointsInPx } from '../../../constants/breakpoints.constants';\r\nimport DictionaryTerm from '../../@shared/dictionaryTerm';\r\nimport SocialMediaBar from '../../@shared/socialMediaBar';\r\nimport EventDetailMedia from './components/media';\r\nimport { EventDetailModel } from './models/eventDetail.model';\r\nimport { TEventDetailProps } from './types/eventDetail.types';\r\nimport useEEActive from '../../../hooks/useEEActive';\r\nimport useFormatDate from '../../../hooks/useFormatDate';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport CTA, { ctaTypes } from '../cta';\r\nimport { EVENT_TITLE_DICTIONARY_KEY, EVENTS_TEMPLATE_ID } from '../../../constants/eventsFairs.constants';\r\nimport { targetLinkdsk } from '../../../utils/targetDskLink';\r\nimport useSitecoreContext from '../../../hooks/useSitecoreContext';\r\nimport SaveCalendarEvent from '../saveCalendarEvent';\r\n\r\nconst EventDetailContainer: FC = (props) => {\r\n const model = new EventDetailModel(props);\r\n const isEE = useEEActive();\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-p']})`);\r\n const formattedStartDate = useFormatDate(model.startDate?.value);\r\n const formattedEndDate = useFormatDate(model.endDate?.value);\r\n const context = useSitecoreContext();\r\n const templateId = context?.sitecoreContext?.route?.templateId;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n {model?.title && }\r\n
\r\n {(model.canShowStartDate || isEE) && (\r\n formattedStartDate} />\r\n )}\r\n {((model.canShowStartDate && model.canShowEndDate) || isEE) && (\r\n <>\r\n

 - 

\r\n formattedEndDate} />\r\n \r\n )}\r\n {model?.time?.value &&

 | 

}\r\n {model?.time && }\r\n {model.location?.value &&

 | 

}\r\n {model?.location && }\r\n
\r\n
\r\n {model.socialMediaBarProps && }\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n {model.detailedDescription && (\r\n \r\n )}\r\n\r\n {(isEE || model.showCtaWrapper) && (\r\n
\r\n {(isEE || model.showPrimaryCta) && (\r\n \r\n )}\r\n {(isEE || model.showSecondaryCta) && (\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EventDetailContainer;\r\n","import React, { FC } from 'react';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport EventDetailContainer from '../@shared/eventDetailContainer';\r\nimport { TEventDetailProps } from '../@shared/eventDetailContainer/types/eventDetail.types';\r\n\r\nconst EventDetail: FC = (props) => {\r\n // Component is unreleased\r\n if (props.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default EventDetail;\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport DictionaryTerm from '../../../dictionaryTerm';\r\nimport Icon from '../../../icon';\r\n\r\nexport type TNoMatchProps = Partial<{\r\n extraClassName: string;\r\n titleDictionaryKey: string;\r\n descriptionDictionaryKey: string;\r\n}>;\r\n\r\nconst NoMatch: FC = ({ extraClassName = '', titleDictionaryKey = '', descriptionDictionaryKey = '' }) => {\r\n return (\r\n
\r\n \r\n {titleDictionaryKey && (\r\n

\r\n \r\n

\r\n )}\r\n

\r\n \r\n

\r\n
\r\n );\r\n};\r\n\r\nexport default NoMatch;\r\n","import React, { useMemo } from 'react';\r\nimport { TPaginationProps } from './types/pagination.types';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../constants/breakpoints.constants';\r\nimport Icon from '../icon';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\n\r\nconst Pagination = ({ currentPage, goToPage, pages }: TPaginationProps): JSX.Element => {\r\n const EMPTY_BUTTON_LABEL = '...';\r\n const FIRST_PAGE = 1;\r\n const pagesArr = useMemo(() => new Array(pages).fill(null).map((_, i: number) => i + 1), [pages]);\r\n const isMobile = useMediaQuery(`(max-width: ${BreakpointsInPx.md})`);\r\n\r\n const handlePageClick = (page: number): void => {\r\n if (page === currentPage) {\r\n return;\r\n }\r\n goToPage(page);\r\n };\r\n\r\n const filterMobileInRangePage = (pageToCheck: number): boolean => {\r\n if (currentPage + 5 >= pages) {\r\n return pageToCheck <= pages && pageToCheck > pages - 6;\r\n } else {\r\n return pageToCheck >= currentPage && pageToCheck < currentPage + 6;\r\n }\r\n };\r\n\r\n const filterDesktopInRangePage = (pageToCheck: number): boolean => {\r\n const adjacentPageToShow = 2;\r\n\r\n if (pages < 10) return true;\r\n\r\n if (pageToCheck === FIRST_PAGE || pageToCheck === pages) return true;\r\n\r\n if (currentPage === pageToCheck) return true;\r\n\r\n if (currentPage >= 1 && currentPage <= 7) return pageToCheck >= 1 && pageToCheck <= 7;\r\n\r\n if (currentPage >= pages - 6 && currentPage <= pages) return pageToCheck >= pages - 6 && pageToCheck <= pages;\r\n\r\n if (currentPage < pageToCheck && currentPage + adjacentPageToShow >= pageToCheck) return true;\r\n\r\n if (currentPage > pageToCheck && currentPage - adjacentPageToShow <= pageToCheck) return true;\r\n\r\n return false;\r\n };\r\n\r\n const filterInRangePage = (pageToCheck: number): boolean => {\r\n if (isMobile) {\r\n return filterMobileInRangePage(pageToCheck);\r\n } else {\r\n return filterDesktopInRangePage(pageToCheck);\r\n }\r\n };\r\n\r\n const addEmptyButton = (acc: (number | string)[], curr: number): (number | string)[] => {\r\n if (isMobile) {\r\n return [...acc, curr];\r\n }\r\n\r\n if (curr === FIRST_PAGE) {\r\n return [...acc, curr];\r\n }\r\n\r\n if (pages < 10) {\r\n return [...acc, curr];\r\n }\r\n\r\n const lastEl = acc[acc.length - 1];\r\n if (lastEl === FIRST_PAGE && curr - 1 > FIRST_PAGE) {\r\n acc.push(EMPTY_BUTTON_LABEL);\r\n }\r\n if (curr === pages && lastEl !== pages - 1) {\r\n acc.push(EMPTY_BUTTON_LABEL);\r\n }\r\n return [...acc, curr];\r\n };\r\n\r\n return (\r\n <>\r\n {pages > 1 && (\r\n
\r\n
\r\n handlePageClick(currentPage - 1)}\r\n >\r\n {pages <= 1 ? (\r\n ''\r\n ) : (\r\n \r\n )}\r\n \r\n {pagesArr\r\n .filter(filterInRangePage)\r\n .reduce(addEmptyButton, [])\r\n .map((page: number | string, i: number) => {\r\n const currentPageBtnClassName = page === currentPage ? ' pagination__button--active' : '';\r\n return typeof page === 'string' ? (\r\n \r\n ) : (\r\n handlePageClick(page)}\r\n >\r\n {page}\r\n \r\n );\r\n })}\r\n handlePageClick(currentPage + 1)}\r\n >\r\n {pages <= 1 ? (\r\n ''\r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Pagination;\r\n","import React, { useEffect, useState, FC } from 'react';\r\nimport { documentService, windowService } from '../../../../../utils/window.utils';\r\nimport { BreakpointsInPx } from '../../../../../constants/breakpoints.constants';\r\nimport Icon from '../../../icon';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\n\r\nexport type TDropdownProps = Partial<{\r\n dropdownOptions?: {\r\n id?: string;\r\n title?: JSX.Element | string;\r\n }[];\r\n id?: string;\r\n handleOptionClick?: (selectedOptionInd) => void;\r\n selectedOptionInd?: number;\r\n className?: string;\r\n}>;\r\n\r\nconst Dropdown: FC = ({ dropdownOptions = [], id, handleOptionClick, selectedOptionInd: checkedOptInd = 0 }) => {\r\n const [shouldShowDropdown, setShouldShowDropdown] = useState(false);\r\n\r\n useEffect(() => {\r\n function closeDropDownOnOutsideClick(event): void {\r\n if (windowService()?.innerWidth < `${BreakpointsInPx['tbl-p']}`) return;\r\n if (event?.target?.getAttribute('data-is-filter-dropdown-switch') !== id) {\r\n setShouldShowDropdown(false);\r\n }\r\n }\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n docElement.addEventListener('click', closeDropDownOnOutsideClick, false);\r\n return (): void => docElement.removeEventListener('click', closeDropDownOnOutsideClick, false);\r\n }, []);\r\n\r\n if (!dropdownOptions.length) return <>;\r\n\r\n return (\r\n
setShouldShowDropdown(!shouldShowDropdown)}>\r\n {dropdownOptions[checkedOptInd]?.title}\r\n \r\n {shouldShowDropdown && (\r\n
\r\n {dropdownOptions?.map((eachDropdownItem, index) => (\r\n
handleOptionClick?.(index)}>\r\n {eachDropdownItem.title}\r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Dropdown;\r\n","import React, { FC } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport { EVENT_QUERY_STRINGS } from '../../../../constants/eventsFairs.constants';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Dropdown, { TDropdownProps } from '../../../@shared/filters/components/dropdown';\r\nimport Icon from '../../../@shared/icon';\r\nimport { EventsListingModel } from '../../models/eventsListing.model';\r\nimport { TSelectedEventsFilters } from '../../types/eventsListing.types';\r\nimport { googleClickDropdownEvent } from '../../../../utils/analytics';\r\n\r\nconst DesktopFilter: FC<{\r\n model: EventsListingModel;\r\n selectedFilters: TSelectedEventsFilters;\r\n typeFilterDropdownOptions: TDropdownProps['dropdownOptions'];\r\n timelineFilterDropdownOptions: TDropdownProps['dropdownOptions'];\r\n}> = ({ model, selectedFilters, typeFilterDropdownOptions, timelineFilterDropdownOptions }) => {\r\n const navigate = useNavigate();\r\n const { EVENT_TYPE, EVENT_TIMELINE } = EVENT_QUERY_STRINGS;\r\n\r\n const dropDownsProps = [\r\n {\r\n options: timelineFilterDropdownOptions,\r\n queryKey: EVENT_TIMELINE,\r\n id: 'timeline-dropdown',\r\n },\r\n {\r\n options: typeFilterDropdownOptions,\r\n queryKey: EVENT_TYPE,\r\n id: 'type-dropdown',\r\n },\r\n ];\r\n\r\n const shouldShowResetFilter = selectedFilters[EVENT_TYPE] !== '' || selectedFilters[EVENT_TIMELINE] !== '';\r\n\r\n const resetFilterCTA = shouldShowResetFilter && (\r\n model.resetFilter(navigate)}>\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {dropDownsProps?.map(({ queryKey, id, options }) => {\r\n if (!options?.length) return null;\r\n return (\r\n {\r\n model.updateQueryByKey(navigate, queryKey, ind === 0 ? '' : (options?.[ind].id as string));\r\n googleClickDropdownEvent(id, options[ind].title as string);\r\n }}\r\n selectedOptionInd={\r\n selectedFilters[queryKey] ? options?.findIndex((_) => _.id?.toString() === selectedFilters[queryKey]) : 0\r\n }\r\n />\r\n );\r\n })}\r\n
\r\n {resetFilterCTA}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DesktopFilter;\r\n","import { EVENTS_TEMPLATE_ID, EVENT_QUERY_STRINGS, EVENT_TITLE_DICTIONARY_KEY } from '../../../constants/eventsFairs.constants';\r\nimport { updateSearchResults } from '../../../hooks/useQueryParams.effect';\r\nimport { getCanUseDate } from '../../../utils/eventsListings.utils';\r\nimport { TBaseObj, TIconField, TImageField, TLinkField } from '../../../types/types';\r\nimport { appendToUrlPath } from '../../../utils/linkUtils';\r\nimport { windowService } from '../../../utils/window.utils';\r\nimport {\r\n TEventCardProps,\r\n TEventsListingFields,\r\n TEventsListingItem,\r\n TEventsListingItemData,\r\n TEventsListingProps,\r\n} from '../types/eventsListing.types';\r\nimport { TSaveCalendarEventProps } from '../../@shared/saveCalendarEvent/types/saveEvent.types';\r\n\r\nexport class EventsListingItemModel {\r\n private readonly eventItem?: TEventsListingItem;\r\n readonly itemData?: TEventsListingItemData;\r\n\r\n constructor(props: TEventCardProps) {\r\n this.eventItem = props;\r\n this.itemData = props.itemData || {};\r\n }\r\n\r\n get desktopImage(): TImageField | undefined {\r\n return this.eventItem?.Image;\r\n }\r\n\r\n get mobileImage(): TImageField | undefined {\r\n return this.eventItem?.MobileImage;\r\n }\r\n\r\n get eventTimeline(): TEventsListingItem['eventTimeline'] {\r\n return this.eventItem?.eventTimeline;\r\n }\r\n\r\n get eventStatusDictionaryKey(): string | undefined {\r\n if (this.eventTimeline === 'UPCOMING') return 'cnhi-event-upcoming';\r\n if (this.eventTimeline === 'ONGOING') return 'cnhi-event-ongoing';\r\n if (this.eventTimeline === 'PAST') return 'cnhi-event-past';\r\n\r\n return undefined;\r\n }\r\n\r\n get templateId(): EVENTS_TEMPLATE_ID | undefined {\r\n return this.eventItem?.templateId || undefined;\r\n }\r\n\r\n get templateName(){\r\n return this.eventItem?.templateName;\r\n }\r\n\r\n get eventTypeDetails(): { eventTypeDictionary: string; eventIconField?: TIconField } | undefined {\r\n if (this.templateId === EVENTS_TEMPLATE_ID.EVENT)\r\n return { eventTypeDictionary: EVENT_TITLE_DICTIONARY_KEY.EVENT, eventIconField: this.itemData?.fields?.eventIcon };\r\n if (this.templateId === EVENTS_TEMPLATE_ID.FAIR)\r\n return { eventTypeDictionary: EVENT_TITLE_DICTIONARY_KEY.FAIR, eventIconField: this.itemData?.fields?.fairIcon };\r\n if (this.templateId === EVENTS_TEMPLATE_ID.LIVE_EVENT)\r\n return { eventTypeDictionary: EVENT_TITLE_DICTIONARY_KEY.LIVE_EVENT, eventIconField: this.itemData?.fields?.liveEventIcon };\r\n return undefined;\r\n }\r\n\r\n get eventStartDate(): string | undefined {\r\n return this.eventItem?.startDate;\r\n }\r\n\r\n get canShowStartDate(): boolean {\r\n return getCanUseDate(this.eventItem?.startDate);\r\n }\r\n\r\n get eventEndDate(): string | undefined {\r\n return this.eventItem?.endDate;\r\n }\r\n\r\n get canShowEndDate(): boolean {\r\n return getCanUseDate(this.eventItem?.endDate);\r\n }\r\n\r\n get calendarDetails(): TSaveCalendarEventProps['calendarDetails'] {\r\n return this.eventItem?.calendarDetails || [];\r\n }\r\n\r\n get time(): string | undefined {\r\n return this.eventItem?.time;\r\n }\r\n\r\n get location(): string | undefined {\r\n return this.eventItem?.location;\r\n }\r\n\r\n get title(): string | undefined {\r\n return this.eventItem?.title;\r\n }\r\n\r\n get shortDescription(): string | undefined {\r\n return this.eventItem?.shortDescription;\r\n }\r\n\r\n get showDetails(): boolean {\r\n return !!this.eventItem?.showDetails;\r\n }\r\n\r\n get ctaLink(): string | undefined {\r\n return this.eventItem?.link;\r\n }\r\n\r\n get primaryCTA(): TLinkField | undefined {\r\n return this.eventItem?.PrimaryCTA;\r\n }\r\n\r\n get canShowPrimaryCTA(): boolean {\r\n return !!(this.primaryCTA?.value?.href && this.primaryCTA?.value?.text);\r\n }\r\n\r\n get shareLink(): string | undefined {\r\n const origin = windowService()?.location?.origin;\r\n return origin ? appendToUrlPath(origin, this.ctaLink || '') : '';\r\n }\r\n}\r\n\r\nexport class EventsListingModel {\r\n private readonly fields?: TEventsListingFields;\r\n\r\n constructor(props: TEventsListingProps) {\r\n this.fields = props.fields;\r\n }\r\n\r\n get items(): TEventsListingItem[] {\r\n return this.fields?.apiData?.items || [];\r\n }\r\n\r\n get itemData(): TEventsListingItemData {\r\n return this.fields?.itemData || {};\r\n }\r\n\r\n resetFilter(navigate) {\r\n updateSearchResults(navigate, {\r\n [EVENT_QUERY_STRINGS.EVENT_PAGE]: '',\r\n [EVENT_QUERY_STRINGS.EVENT_TIMELINE]: '',\r\n [EVENT_QUERY_STRINGS.EVENT_TYPE]: '',\r\n });\r\n }\r\n\r\n updateQueryByKey(navigate, key, val) {\r\n const resetPage = key != EVENT_QUERY_STRINGS.EVENT_PAGE;\r\n\r\n const keyValues = resetPage\r\n ? {\r\n [EVENT_QUERY_STRINGS.EVENT_PAGE]: '',\r\n [key]: val || '',\r\n }\r\n : {\r\n [key]: val || '',\r\n };\r\n\r\n updateSearchResults(navigate, keyValues);\r\n }\r\n\r\n updateQueryByBulkKeys(navigate, obj: TBaseObj) {\r\n updateSearchResults(navigate, obj);\r\n }\r\n\r\n get counter(): number {\r\n return this.fields?.apiData?.totalSearchResults || 0;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n return this.fields?.itemData?.contextItemUrl || '';\r\n }\r\n\r\n get isUnreleased(): boolean | undefined {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\nimport Picture from '../../../@shared/picture';\r\nimport { TEditorialImageProps } from '../../../@shared/picture/types/editorialImage.types';\r\nimport { TEventsListingMedia } from '../../types/eventsListing.types';\r\n\r\nconst Media: FC = (props) => {\r\n const { desktopImage, mobileImage, isDesktop } = props;\r\n const { sitecoreContext = {} } = useSitecoreContext();\r\n const desktopDefaultImageUrl = sitecoreContext?.defaultBackgroundImageParameters?.desktopImageData?.eventsListingCardImage;\r\n const mobileDefaultImageUrl = sitecoreContext?.defaultBackgroundImageParameters?.mobileImageData?.eventsListingCardImage;\r\n\r\n const shouldShowDefaultImage = !desktopImage?.value?.src && !mobileImage?.value?.src;\r\n\r\n const editorialProps: TEditorialImageProps = {\r\n mobileImage: mobileImage,\r\n desktopImage: desktopImage,\r\n mobileTransformation: 'Size500',\r\n desktopTransformation: 'Size1000',\r\n alt: (isDesktop ? desktopImage?.value?.alt : mobileImage?.value?.alt) as string,\r\n };\r\n\r\n if (shouldShowDefaultImage) {\r\n editorialProps['mobileImage'] = mobileDefaultImageUrl ? { value: { src: mobileDefaultImageUrl } } : undefined;\r\n editorialProps['desktopImage'] = desktopDefaultImageUrl ? { value: { src: desktopDefaultImageUrl } } : undefined;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default Media;\r\n","import { TLinkField } from '../types/types';\r\n\r\nexport function getTargetLink(link: TLinkField | undefined, isDesktop?: boolean): string {\r\n if (isDesktop && link?.value?.target) {\r\n return link?.value?.target;\r\n } else if (!isDesktop && link?.value?.target) {\r\n return '_self';\r\n } else return '';\r\n}\r\n","import React, { FC, useEffect, useRef } from 'react';\r\nimport { DateField, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport useFormatDate from '../../../../hooks/useFormatDate';\r\nimport CTA, { ctaTypes } from '../../../@shared/cta';\r\nimport { CustomText } from '../../../@shared/customText';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Icon from '../../../@shared/icon';\r\nimport SaveCalendarEvent from '../../../@shared/saveCalendarEvent';\r\nimport { TSaveCalendarEventButtonType } from '../../../@shared/saveCalendarEvent/types/saveEvent.types';\r\nimport { EventsListingItemModel } from '../../models/eventsListing.model';\r\nimport { TEventCardProps } from '../../types/eventsListing.types';\r\nimport Media from '../media';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { getTargetLink } from '../../../../utils/getTargetLink';\r\nimport { getDLMFormatDate, googleClickEventsCtaEvent } from '../../../../utils/analytics';\r\n\r\nconst EventCard: FC = (props) => {\r\n const { t } = useTranslation();\r\n const model = new EventsListingItemModel(props);\r\n const isTablet = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['lg']})`);\r\n const formattedStartDate = useFormatDate(model.eventStartDate);\r\n const formattedEndDate = useFormatDate(model.eventEndDate);\r\n const eventTypeDetails = model.eventTypeDetails;\r\n const { eventTypeDictionary = '', eventIconField } = eventTypeDetails || {};\r\n const linkWrapperRef = useRef(null);\r\n const a2aKitRef = useRef(null);\r\n const formattedDLMDate = model.eventStartDate ? getDLMFormatDate(model.eventStartDate) : '';\r\n\r\n useEffect(() => {\r\n const handleClick = (e: MouseEvent) => {\r\n if (a2aKitRef.current && (e.target === a2aKitRef.current || a2aKitRef.current.contains(e.target as Node))) {\r\n googleClickEventsCtaEvent(a2aKitRef.current.textContent as string || '', props.index + 1, model.templateName, formattedDLMDate, model.eventTimeline);\r\n }\r\n };\r\n linkWrapperRef?.current?.addEventListener('click', handleClick, true);\r\n\r\n return () => {\r\n linkWrapperRef?.current?.removeEventListener('click', handleClick, true);\r\n };\r\n }, [model.shareLink, linkWrapperRef, a2aKitRef]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {model.eventStatusDictionaryKey && (\r\n

\r\n \r\n

\r\n )}\r\n\r\n
\r\n
\r\n {model.eventTypeDetails && (\r\n
\r\n {eventIconField?.fields?.iconUrl?.value && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {model.canShowStartDate && (\r\n formattedStartDate}\r\n />\r\n )}\r\n {model.canShowStartDate && model.canShowEndDate && (\r\n <>\r\n

 - 

\r\n formattedEndDate}\r\n />\r\n \r\n )}\r\n {model.time && (\r\n <>\r\n

 | 

\r\n

{model.time}

\r\n \r\n )}\r\n
\r\n {model.location &&

{model.location}

}\r\n
\r\n\r\n
\r\n \r\n {model.showDetails && model.shareLink && (\r\n \r\n )}\r\n
\r\n
\r\n {model.title && (\r\n \r\n )}\r\n {model.shortDescription && (\r\n \r\n )}\r\n {model.showDetails && model?.ctaLink && (\r\n
\r\n {\r\n googleClickEventsCtaEvent(model.title || '', props.index + 1, model.templateName, formattedDLMDate, model.eventTimeline);\r\n }}\r\n >\r\n {t('cnhi-event-readMore')}\r\n \r\n
\r\n )}\r\n {!model.showDetails && model?.canShowPrimaryCTA && (\r\n
\r\n {\r\n googleClickEventsCtaEvent(model.title || '', props.index + 1, model.templateName, formattedDLMDate, model.eventTimeline);\r\n }}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EventCard;\r\n","import React, { FC } from 'react';\r\nimport { TEventsListingItem, TEventsListingItemData } from '../../types/eventsListing.types';\r\nimport EventCard from '../eventCard';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport AnalyticsVisibleEvent from '../../../@shared/analyticsVisibleEvent';\r\n\r\nconst EventCardList: FC<{ items: TEventsListingItem[]; itemData: TEventsListingItemData; rendering?: ComponentRendering }> = (props) => {\r\n if (props.items.length === 0) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n {props.items.map((item,index) => {\r\n return (\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport default EventCardList;\r\n","import React, { FC, useState } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport Icon from '../../../icon';\r\n\r\nexport type TAccordionProps = {\r\n accordionTitle?: JSX.Element;\r\n accordionOptions?: Partial<{\r\n id?: string;\r\n title?: JSX.Element | string;\r\n }>[];\r\n handleOptionClick?: (selectedOptionInd, event: React.MouseEvent) => void;\r\n selectedOptionInd?: number;\r\n canShowAccordionContent?: boolean;\r\n handleSwitchClick?: () => void;\r\n isToggleIndependent?: boolean;\r\n};\r\n\r\nconst Accordion: FC = ({\r\n accordionTitle: title = '',\r\n accordionOptions = [],\r\n handleOptionClick,\r\n selectedOptionInd: checkedOptInd = 0,\r\n canShowAccordionContent = false,\r\n handleSwitchClick,\r\n isToggleIndependent = true,\r\n}) => {\r\n const [shouldShowAccordion, setShouldShowAccordion] = useState(false);\r\n const isAccordionOpen = isToggleIndependent ? shouldShowAccordion : canShowAccordionContent;\r\n\r\n return (\r\n
\r\n setShouldShowAccordion(!shouldShowAccordion) : handleSwitchClick}\r\n >\r\n {title}\r\n \r\n
\r\n {isAccordionOpen && (\r\n
\r\n {accordionOptions?.map((eachDropdownItem, index) => (\r\n handleOptionClick?.(index, event)}\r\n >\r\n \r\n \r\n {eachDropdownItem.title}\r\n \r\n ))}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Accordion;\r\n","import React, { FC, useEffect, useState } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport { EVENT_QUERY_STRINGS } from '../../../../constants/eventsFairs.constants';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { documentService } from '../../../../utils/window.utils';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Accordion, { TAccordionProps } from '../../../@shared/filters/components/accordion';\r\nimport Icon from '../../../@shared/icon';\r\nimport { EventsListingModel } from '../../models/eventsListing.model';\r\nimport { TSelectedEventsFilters } from '../../types/eventsListing.types';\r\nimport { ctaTypes } from '../../../@shared/cta';\r\nimport { googleClickDropdownEvent } from '../../../../utils/analytics';\r\n\r\nconst MobileFilter: FC<{\r\n model: EventsListingModel;\r\n selectedFilters: TSelectedEventsFilters;\r\n typeFilterDropdownOptions: TAccordionProps['accordionOptions'];\r\n timelineFilterDropdownOptions: TAccordionProps['accordionOptions'];\r\n}> = ({ model, selectedFilters, typeFilterDropdownOptions, timelineFilterDropdownOptions }) => {\r\n const [shouldOpenFilterModal, setShouldOpenFilterModal] = useState(false);\r\n const [selectedFiltersCopy, setSelectedFiltersCopy] = useState(selectedFilters);\r\n const [selectedAccordionId, setSelectedAccordionId] = useState();\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n\r\n if (shouldOpenFilterModal) docElement.body.classList.add('body--with-filter-model');\r\n else docElement.body.classList.remove('body--with-filter-model');\r\n }, [shouldOpenFilterModal]);\r\n\r\n const { EVENT_TYPE, EVENT_TIMELINE } = EVENT_QUERY_STRINGS;\r\n // show the action CTA's if any option is selectd or change in selected option\r\n const shouldShowFilterWrapper =\r\n !(\r\n selectedFiltersCopy[EVENT_TIMELINE] === selectedFilters[EVENT_TIMELINE] &&\r\n selectedFiltersCopy[EVENT_TYPE] === selectedFilters[EVENT_TYPE]\r\n ) ||\r\n selectedFiltersCopy[EVENT_TIMELINE] !== '' ||\r\n selectedFiltersCopy[EVENT_TYPE] !== '';\r\n\r\n const accordionsProps = [\r\n {\r\n options: timelineFilterDropdownOptions,\r\n queryKey: EVENT_TIMELINE,\r\n id: 'timeline-accordion',\r\n accordionTitle: ,\r\n },\r\n {\r\n options: typeFilterDropdownOptions,\r\n queryKey: EVENT_TYPE,\r\n id: 'type-accordion',\r\n accordionTitle: ,\r\n },\r\n ];\r\n\r\n const revertToOldFilters = () => model.updateQueryByBulkKeys(navigate, selectedFiltersCopy);\r\n const toggleModal = () => {\r\n if (!shouldOpenFilterModal) setSelectedAccordionId(undefined);\r\n setShouldOpenFilterModal(!shouldOpenFilterModal);\r\n };\r\n\r\n const toggleAccordion = (accordionId: typeof selectedAccordionId) => {\r\n if (accordionId === selectedAccordionId) setSelectedAccordionId(undefined);\r\n else setSelectedAccordionId(accordionId);\r\n };\r\n\r\n return (\r\n
\r\n {\r\n toggleModal();\r\n revertToOldFilters();\r\n }}\r\n >\r\n \r\n \r\n
\r\n {shouldOpenFilterModal && (\r\n
\r\n
\r\n \r\n \r\n \r\n {\r\n setShouldOpenFilterModal(false);\r\n revertToOldFilters();\r\n }}\r\n />\r\n
\r\n
\r\n {accordionsProps?.map(({ id, accordionTitle, queryKey, options }) => {\r\n if (!options?.length) return null;\r\n return (\r\n toggleAccordion(id)}\r\n handleOptionClick={(ind) => {\r\n model.updateQueryByKey(navigate, queryKey, ind === 0 ? '' : (options?.[ind].id as string));\r\n googleClickDropdownEvent(id, options[ind].title as string);\r\n }}\r\n selectedOptionInd={\r\n selectedFilters[queryKey] ? options?.findIndex((_) => _.id?.toString() === selectedFilters[queryKey]) : 0\r\n }\r\n />\r\n );\r\n })}\r\n
\r\n {shouldShowFilterWrapper && (\r\n
\r\n {\r\n model.resetFilter(navigate);\r\n setSelectedFiltersCopy({\r\n [EVENT_QUERY_STRINGS.EVENT_PAGE]: '',\r\n [EVENT_QUERY_STRINGS.EVENT_TIMELINE]: '',\r\n [EVENT_QUERY_STRINGS.EVENT_TYPE]: '',\r\n });\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n {\r\n setSelectedFiltersCopy(selectedFilters);\r\n toggleModal();\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MobileFilter;\r\n","import React, { FC, useEffect, useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useLocation, useNavigate } from 'react-router';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport {\r\n EVENT_QUERY_STRINGS,\r\n EVENT_TEMPLATE_ID_TYPE_QUERY_VALUE_MAP,\r\n EVENT_TIMELINE_QUERY_VALUE_MAP,\r\n} from '../../constants/eventsFairs.constants';\r\nimport { getUTCDate } from '../../hooks/useFormatDate';\r\nimport { updateSearchResults } from '../../hooks/useQueryParams.effect';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { addToAnyScript } from '../../utils/addToAnyScript.utils';\r\nimport NoMatch from '../@shared/filters/components/noMatch';\r\nimport Pagination from '../@shared/pagination';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport DesktopFilter from './components/desktopFilter';\r\nimport EventCardList from './components/eventCardList';\r\nimport MobileFilter from './components/mobileFilter';\r\nimport { canShowEventCard, getCanUseDate, getEndOfDate, getTimeline } from '../../utils/eventsListings.utils';\r\nimport { EventsListingModel } from './models/eventsListing.model';\r\nimport { TEventsListingProps, TSelectedEventsFilters } from './types/eventsListing.types';\r\n\r\nconst EventsListing: FC = (props) => {\r\n const model = new EventsListingModel(props);\r\n const { t } = useTranslation();\r\n const navigate = useNavigate();\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx['lg']})`);\r\n const location = useLocation();\r\n const filterQueryString = location?.search;\r\n const filterParams = useMemo(() => new URLSearchParams(location?.search), [filterQueryString]);\r\n const selectedTimeline = filterParams.get(EVENT_QUERY_STRINGS.EVENT_TIMELINE) || '';\r\n const selectedType = filterParams.get(EVENT_QUERY_STRINGS.EVENT_TYPE) || '';\r\n const selectedPage = filterParams.get(EVENT_QUERY_STRINGS.EVENT_PAGE) || '1';\r\n const selectedPageNo = parseInt(selectedPage);\r\n const noOfCardsPerPage = 6;\r\n const startIndex = (selectedPageNo - 1) * noOfCardsPerPage;\r\n const endIndex = selectedPageNo * noOfCardsPerPage;\r\n\r\n const { EVENT_TYPE, EVENT_TIMELINE } = EVENT_QUERY_STRINGS;\r\n const selectedFilters: TSelectedEventsFilters = {\r\n [EVENT_TIMELINE]: selectedTimeline,\r\n [EVENT_TYPE]: selectedType,\r\n };\r\n\r\n const isTypeFilterPresent: { [key in 'event' | 'live-event' | 'fair']: boolean } = { event: false, fair: false, 'live-event': false };\r\n const isTimeLineFilterPresent: { [key in keyof typeof EVENT_TIMELINE_QUERY_VALUE_MAP]: boolean } = {\r\n ONGOING: false,\r\n UPCOMING: false,\r\n PAST: false,\r\n };\r\n const typeFilterList: [{ id: string; title: string }] = [{ id: 'type', title: t('cnhi-events-all-types') }];\r\n const timelineFilterList: [{ id: string; title: string }] = [{ id: 'timeline', title: t('cnhi-events-all-timelines') }];\r\n\r\n const filteredEvents = useMemo(\r\n () =>\r\n model.items?.filter?.((eachItem) => {\r\n const { templateId, startDate, endDate } = eachItem;\r\n const canUseStartDate = getCanUseDate(startDate);\r\n const canUseEndDate = getCanUseDate(endDate);\r\n const eventTimeline =\r\n startDate && canUseStartDate\r\n ? getTimeline(getUTCDate(startDate), endDate && canUseEndDate ? getUTCDate(endDate) : getEndOfDate(startDate))\r\n : '';\r\n\r\n if (!canShowEventCard(eachItem)) return false;\r\n\r\n let isTypeMatching = false;\r\n let isTimelineMatching = false;\r\n eventTimeline && (eachItem.eventTimeline = eventTimeline);\r\n\r\n let isCardMatchingFilters = false;\r\n\r\n if (!selectedType && !selectedTimeline) {\r\n isCardMatchingFilters = true;\r\n } else {\r\n if (!selectedType) isTypeMatching = true;\r\n else if (!templateId) isTypeMatching = false;\r\n else isTypeMatching = EVENT_TEMPLATE_ID_TYPE_QUERY_VALUE_MAP[templateId] === selectedType;\r\n\r\n if (!selectedTimeline) isTimelineMatching = true;\r\n else if (!startDate) isTimelineMatching = false;\r\n else {\r\n isTimelineMatching = EVENT_TIMELINE_QUERY_VALUE_MAP[eventTimeline] === selectedTimeline;\r\n }\r\n isCardMatchingFilters = isTypeMatching && isTimelineMatching;\r\n }\r\n\r\n if (isCardMatchingFilters) {\r\n templateId && (isTypeFilterPresent[EVENT_TEMPLATE_ID_TYPE_QUERY_VALUE_MAP[templateId]] = true);\r\n isTimeLineFilterPresent[eventTimeline] = true;\r\n }\r\n\r\n return isCardMatchingFilters;\r\n }),\r\n [selectedType, selectedTimeline, selectedPageNo, props]\r\n );\r\n\r\n const filteredEventsToShow = filteredEvents?.slice?.(startIndex, endIndex) || [];\r\n\r\n useMemo(() => {\r\n if (isTypeFilterPresent.event) typeFilterList.push({ id: 'event', title: t('cnhi-event-filter-title') });\r\n if (isTypeFilterPresent['live-event']) typeFilterList.push({ id: 'live-event', title: t('cnhi-live-event-filter-title') });\r\n if (isTypeFilterPresent.fair) typeFilterList.push({ id: 'fair', title: t('cnhi-fair-filter-title') });\r\n\r\n if (isTimeLineFilterPresent.ONGOING || isTimeLineFilterPresent.UPCOMING)\r\n timelineFilterList.push({ id: 'latest', title: t('cnhi-latest-filter-title') });\r\n if (isTimeLineFilterPresent.PAST) timelineFilterList.push({ id: 'past', title: t('cnhi-past-filter-title') });\r\n }, [selectedType, selectedTimeline, selectedPageNo, props]);\r\n\r\n const totalPageCount = Math.ceil(filteredEvents.length / noOfCardsPerPage);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n addToAnyScript();\r\n });\r\n }, [props]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n const onPaginationChange = (selectedPage: number): void =>\r\n updateSearchResults(navigate, { [EVENT_QUERY_STRINGS.EVENT_PAGE]: selectedPage.toString() });\r\n\r\n return (\r\n
\r\n {isWide ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {filteredEventsToShow?.length === 0 ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default EventsListing;\r\n","import React from 'react';\r\nimport { TExternalComponentProps } from '../@shared/sharedExternalComponent/types/externalComponent.types';\r\nimport SharedExternalComponent from '../@shared/sharedExternalComponent';\r\n\r\nconst ExternalComponent = (props: TExternalComponentProps) => {\r\n return \r\n};\r\n\r\nexport default ExternalComponent;\r\n","import { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nexport const shouldPioritizeComponentResources = (\r\n sitecorePlaceholderData: Array,\r\n componentName: string\r\n): boolean => {\r\n const excludedComponentNames = [\r\n 'BreadcrumbBar',\r\n 'ProductSeoTags',\r\n 'NextSteps',\r\n 'ProductBreadcrumbBar',\r\n 'NavigationBarAnchorComponent',\r\n 'ProductModelNavigation',\r\n ];\r\n\r\n const onlyComponents = sitecorePlaceholderData.filter((obj) => 'componentName' in obj) as Array;\r\n const filteredComponentsList = onlyComponents.filter((component) => !excludedComponentNames.includes(component.componentName));\r\n\r\n // First biggest component in browser viewport affecting LCP metric\r\n const isFirstComponent = filteredComponentsList.findIndex((component) => component.componentName === componentName) === 0;\r\n\r\n return isFirstComponent;\r\n};\r\n","import { TImageField, TStringField, TDateField } from '../../../types/types';\r\nimport { isEmptyObject } from '../../../utils/checkEmptyObject';\r\nimport { TSocialMediaBarProps } from '../../@shared/socialMediaBar/types/socialMediaBar.types';\r\nimport { TFairHeroFields, TFairHeroProps } from '../types/fairHero.types';\r\nimport { TSaveCalendarEventProps } from '../../@shared/saveCalendarEvent/types/saveEvent.types';\r\n\r\nexport class FairHeroModel {\r\n private readonly fields?: TFairHeroFields;\r\n\r\n constructor(props: TFairHeroProps) {\r\n this.fields = props?.fields;\r\n }\r\n\r\n get socialMediaBarProps(): TSocialMediaBarProps | undefined {\r\n return isEmptyObject(this.fields?.socialMediaBar) ? undefined : this.fields?.socialMediaBar;\r\n }\r\n\r\n get title(): TStringField {\r\n return this.fields?.title as TStringField;\r\n }\r\n\r\n get shortDescription(): TStringField {\r\n return this.fields?.shortDescription as TStringField;\r\n }\r\n\r\n get image(): TImageField {\r\n return this.fields?.heroBannerImage as TImageField;\r\n }\r\n\r\n get mobileImage(): TImageField {\r\n return this.fields?.mobileHeroBannerImage as TImageField;\r\n }\r\n get startDate(): TDateField {\r\n return this.fields?.startDate || {};\r\n }\r\n\r\n get endDate(): TDateField {\r\n return this.fields?.endDate || {};\r\n }\r\n\r\n get calendarDetails(): TSaveCalendarEventProps['calendarDetails'] {\r\n return this.fields?.calendarDetails || [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { TFadeProps } from './types/fade.type';\r\n\r\nconst FadeDownEffect: FC = ({ children, delay }) => {\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport default FadeDownEffect;\r\n","import React, { useMemo } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { EVENT_TITLE_DICTIONARY_KEY } from '../../constants/eventsFairs.constants';\r\nimport { shouldPioritizeComponentResources } from '../../utils/component.utils';\r\nimport { CustomText } from '../@shared/customText';\r\nimport DictionaryTerm from '../@shared/dictionaryTerm';\r\nimport Picture from '../@shared/picture';\r\nimport SocialMediaBar from '../@shared/socialMediaBar';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport SaveCalendarEvent from '../@shared/saveCalendarEvent';\r\nimport { TSaveCalendarEventButtonType } from '../@shared/saveCalendarEvent/types/saveEvent.types';\r\nimport { FairHeroModel } from './models/fairHero.model';\r\nimport { TFairHeroProps } from './types/fairHero.types';\r\nimport FadeDownEffect from '../@shared/fadeDownEffect';\r\nimport useSitecoreContext from '../../hooks/useSitecoreContext';\r\n\r\nconst FairHero = (props: TFairHeroProps): JSX.Element => {\r\n const model = useMemo(() => new FairHeroModel(props), [props]);\r\n const {sitecoreContext} = useSitecoreContext();\r\n const placeholderData = sitecoreContext?.route?.placeholders['jss-main'] || [];\r\n const shouldPioritize = useMemo(() => shouldPioritizeComponentResources(placeholderData, 'FairHero'), [placeholderData]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n {model.socialMediaBarProps && }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

\r\n \r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!model.calendarDetails?.length && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default FairHero;\r\n","import { FindADealerProps, IFindADealerFields } from '../types/findDealer.types';\r\nimport { ImageField, LinkField, StringField, TComponentParamsGeneral, THeadingTag } from '../../../types/types';\r\n\r\nexport class FindADealerModel {\r\n private readonly fields: null | IFindADealerFields;\r\n private readonly _props: null | FindADealerProps;\r\n private readonly params?: TComponentParamsGeneral;\r\n\r\n constructor(props: FindADealerProps) {\r\n this._props = props || null;\r\n this.fields = props?.fields || null;\r\n this.params = props?.params;\r\n }\r\n\r\n get id(): string | undefined {\r\n return this._props?.rendering?.dataSource;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get content(): StringField | undefined {\r\n return this.fields?.description;\r\n }\r\n\r\n get inputPlaceholder(): StringField | undefined {\r\n return this.fields?.searchPlaceholderText;\r\n }\r\n\r\n get inputPlaceholderText(): string {\r\n return this.inputPlaceholder?.value || '';\r\n }\r\n\r\n get searchButton(): LinkField | undefined {\r\n return this.fields?.link;\r\n }\r\n\r\n get backgroundImage(): ImageField | undefined {\r\n return this.fields?.image;\r\n }\r\n\r\n get mobileBackgroundImage(): ImageField | undefined {\r\n return this.fields?.mobileImage;\r\n }\r\n\r\n get locateMeButton(): StringField | undefined {\r\n return this.fields?.locationButtonText;\r\n }\r\n\r\n get searchButtonText(): string {\r\n return this.searchButton?.value?.text ?? '';\r\n }\r\n\r\n get searchUrl(): string {\r\n return this.searchButton?.value?.href ?? '#';\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h2';\r\n }\r\n}\r\n","import React, { FunctionComponent } from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { FindADealerModel } from '../models/findDealer.model';\r\nimport CTAButton, { ctaEnums } from '../../@shared/ctaButton';\r\nimport Icon from '../../@shared/icon';\r\n\r\nconst LocatorForm: FunctionComponent<{ model: FindADealerModel }> = ({ model }) => (\r\n <>\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default LocatorForm;\r\n","import React from 'react';\r\nimport { RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { FindADealerProps } from './types/findDealer.types';\r\nimport { FindADealerModel } from './models/findDealer.model';\r\nimport LocatorForm from './components/locatorForm';\r\nimport LazySection from '../@shared/lazySection';\r\nimport Picture from '../@shared/picture';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport useEEActive from '../../hooks/useEEActive';\r\nimport CTAButton, { ctaEnums } from '../@shared/ctaButton';\r\nimport RoutableSitecoreLink from '../@shared/routableSitecoreLink';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst FindDealer = (props: FindADealerProps): JSX.Element => {\r\n const model = new FindADealerModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const isEE = useEEActive();\r\n const hasLocatorFunctionality = false;\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {model.title && (\r\n \r\n )}\r\n {model.content && }\r\n {hasLocatorFunctionality ? (\r\n \r\n ) : (\r\n (isEE || (model.searchButtonText && model.searchUrl)) && (\r\n \r\n \r\n \r\n )\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default FindDealer;\r\n","import { StringField, LinkField, DropdownSelect, FooterLink, FooterLinkFields } from '../../types/types';\r\n\r\nexport class FooterLinkModel {\r\n private readonly fields?: FooterLinkFields;\r\n constructor(props: FooterLink) {\r\n this.fields = props.fields;\r\n }\r\n\r\n get link(): LinkField | undefined {\r\n return this.fields?.link;\r\n }\r\n\r\n get linkUrl(): string {\r\n return this.link?.value?.href || '';\r\n }\r\n\r\n get hasLink(): boolean {\r\n return !(!this.linkUrl || (this.linkUrl === 'http://' && this.linkText));\r\n }\r\n\r\n get linkText(): string {\r\n return this.link?.value?.text || '';\r\n }\r\n\r\n get list(): FooterLink[] {\r\n return this.fields?.list && Array.isArray(this.fields?.list) ? this.fields.list : [];\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get type(): DropdownSelect | undefined {\r\n return this.fields?.type;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { FooterLink } from '../../../../types/types';\r\nimport { FooterLinkModel } from '../../../../lib/shared-models/FooterLink.model';\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\nimport CTAButton, { ctaEnums } from '../../../@shared/ctaButton';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\n\r\nconst DealerLogin: FC = (props) => {\r\n const model = new FooterLinkModel(props);\r\n return (\r\n
\r\n {model.title && }\r\n {model.list?.length > 0 && (\r\n \r\n {\r\n googleClickCtaEvent(\r\n 'Global Footer',\r\n model.list[0]?.fields?.link?.value?.title ?? model.list[0]?.fields?.link?.value?.text,\r\n model.list[0]?.fields?.link?.value?.title\r\n );\r\n }}\r\n />\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default DealerLogin;\r\n","import React, { FC } from 'react';\r\nimport { FooterLink } from '../../../../types/types';\r\nimport { FooterLinkModel } from '../../../../lib/shared-models/FooterLink.model';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport Icon from '../../../@shared/icon';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\n\r\nconst MarketSelector: FC = (props) => {\r\n const model = new FooterLinkModel(props);\r\n return (\r\n
\r\n \r\n \r\n {model.title?.value}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default MarketSelector;\r\n","import React, { ChangeEvent, FC } from 'react';\r\nimport { FooterLink } from '../../../../types/types';\r\nimport { FooterLinkModel } from '../../../../lib/shared-models/FooterLink.model';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { windowService } from '../../../../utils/window.utils';\r\n\r\nconst LanguageSelector: FC = (props) => {\r\n const model = new FooterLinkModel(props);\r\n\r\n const redirectToTargetUrl = (url): void => {\r\n const urlIsValid = !!model?.list?.find((item) => item?.fields?.link?.value?.href === url);\r\n\r\n if (urlIsValid) {\r\n windowService().location.assign(url);\r\n }\r\n };\r\n\r\n const onChange = (evt: ChangeEvent): void => redirectToTargetUrl(evt?.target?.value);\r\n const options = Array.isArray(model?.list)\r\n ? model.list?.map((item) => (\r\n \r\n ))\r\n : null;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LanguageSelector;\r\n","import { FooterLink, FooterLinkFields, FooterSectionFields } from '../../../../../types/types';\r\nimport { ActionSectionProps } from '../types/actionSection.types';\r\n\r\nexport class ActionSectionModel {\r\n private readonly fields?: FooterSectionFields;\r\n\r\n constructor(props: ActionSectionProps) {\r\n this.fields = props.field || null;\r\n }\r\n\r\n get dealerLink(): FooterLinkFields | undefined {\r\n const find = (list: FooterLink[] | undefined): FooterLink | undefined =>\r\n list?.find((item) => item?.fields?.type?.fields?.Key?.value === 'dealerLinkType');\r\n return find(this.fields?.footerLinks)?.fields;\r\n }\r\n\r\n get marketSelector(): FooterLinkFields | undefined {\r\n const marketSelectorContainer = this.fields?.footerLinks?.find(\r\n (link: FooterLink) => link?.fields?.type?.fields?.Key?.value === 'MarketSelectorType'\r\n );\r\n if (marketSelectorContainer) {\r\n return marketSelectorContainer?.fields?.list?.[1]?.fields;\r\n }\r\n return undefined;\r\n }\r\n\r\n get languageSelector(): FooterLinkFields | undefined {\r\n // eslint-disable-line\r\n const marketSelectorContainer = this.fields?.footerLinks?.find(\r\n (link) => link?.fields?.type?.fields?.Key?.value === 'MarketSelectorType'\r\n );\r\n if (marketSelectorContainer) {\r\n return marketSelectorContainer?.fields?.list?.[0]?.fields;\r\n }\r\n return undefined;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport DealerLogin from '../dealerLogin';\r\nimport MarketSelector from '../marketSelector';\r\nimport LanguageSelector from '../languageSelector';\r\nimport { ActionSectionModel } from './models/actionSection.model';\r\nimport { ActionSectionProps } from './types/actionSection.types';\r\n\r\nconst ActionSection: FC = (props) => {\r\n const model = new ActionSectionModel(props);\r\n\r\n return (\r\n
\r\n \r\n {model?.languageSelector?.list && model?.languageSelector?.list?.length > 1 && }\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ActionSection;\r\n","import React, { FC } from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BackToTopProps } from './types/backToTop.types';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { windowService } from '../../../../utils/window.utils';\r\nimport Icon from '../../../@shared/icon';\r\n\r\nconst BackToTop: FC = ({ field }) => {\r\n const scrollToTop = (): void => windowService().scrollTo({ top: 0, behavior: 'smooth' });\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default BackToTop;\r\n","import React, { FC, useState } from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { FooterLink } from '../../../../types/types';\r\nimport { FooterLinkModel } from '../../../../lib/shared-models/FooterLink.model';\r\nimport { LinksAccordionProps } from './types/linksAccordion.types';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { windowService } from '../../../../utils/window.utils';\r\nimport { googleClickNavEvent } from '../../../../utils/analytics';\r\nimport Icon from '../../../@shared/icon';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\n\r\nconst LinksAccordion: FC = ({ fields, sitecoreContext }) => {\r\n const [isCollapsed, setIsCollapsed] = useState(true);\r\n const mobileBreakpoint = 768;\r\n const isEEActive = sitecoreContext.pageEditing;\r\n const onAccordionClick = (): void => {\r\n if (windowService().innerWidth <= mobileBreakpoint) {\r\n setIsCollapsed(!isCollapsed);\r\n }\r\n };\r\n\r\n const accordions = fields?.map((item: FooterLink) => {\r\n const model = new FooterLinkModel(item);\r\n const links = model.list?.map((linkItem: FooterLink) => (\r\n
  • \r\n {\r\n googleClickNavEvent(\r\n 'Global Footer',\r\n model?.link?.value?.title ?? model?.link?.value?.text,\r\n linkItem?.fields?.link?.value?.title ?? linkItem?.fields?.link?.value?.text\r\n );\r\n }}\r\n />\r\n
  • \r\n ));\r\n\r\n return (\r\n
    \r\n \r\n {links?.length > 0 && (\r\n \r\n )}\r\n
    \r\n {isEEActive || model.hasLink ? : {model.linkText}}\r\n
    \r\n \r\n
      {links}
    \r\n
    \r\n );\r\n });\r\n\r\n return
    {accordions}
    ;\r\n};\r\n\r\nexport default withSitecoreContext()(LinksAccordion);\r\n","import React, { FC } from 'react';\r\nimport { FooterLink } from '../../../../types/types';\r\nimport { FooterLinkModel } from '../../../../lib/shared-models/FooterLink.model';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\n\r\nconst Navigation: FC = (props) => {\r\n const model = new FooterLinkModel(props);\r\n const items = model.list?.map((item: FooterLink) => {\r\n return (\r\n
  • \r\n {item?.fields?.isModalPopup?.value ? (\r\n // external consent cookie notice button\r\n \r\n ) : (\r\n \r\n )}\r\n
  • \r\n );\r\n });\r\n return
      {items}
    ;\r\n};\r\n\r\nexport default Navigation;\r\n","import { TSocialLinkProps, TSocialMediaFields } from '../../../../../types/types';\r\nimport { TSocialMediaProps } from '../types/index.types';\r\n\r\nexport class SocialMediaModel {\r\n private readonly fields?: TSocialMediaFields;\r\n\r\n constructor(props: TSocialMediaProps) {\r\n this.fields = props.fields;\r\n }\r\n\r\n get socialLinks(): TSocialLinkProps[] {\r\n if (this.fields?.items && this.fields?.items?.length > 6) {\r\n return this.fields?.items?.slice(0, 6) || [];\r\n }\r\n return this.fields?.items || [];\r\n }\r\n}\r\n","import React from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport fields from '../../../../constants/fields.const';\r\nimport { SocialMediaModel } from './models/index.model';\r\nimport { TSocialMediaProps } from './types/index.types';\r\nimport { googleSocialEvent } from '../../../../utils/analytics';\r\nimport Icon from '../../../@shared/icon';\r\nimport { EditFrameComponent } from '../../../@shared/editFrame';\r\nimport CustomExternalAnchor from '../../../@shared/customExternalAnchor';\r\n\r\nconst SocialMedia = (props: TSocialMediaProps): JSX.Element => {\r\n const model = new SocialMediaModel(props);\r\n const isEEactive = props?.sitecoreContext?.pageEditing;\r\n\r\n return (\r\n
    \r\n {model.socialLinks?.map((item) => {\r\n return (\r\n
    \r\n {isEEactive ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n googleSocialEvent(item?.displayName)}\r\n >\r\n \r\n \r\n )}\r\n
    \r\n );\r\n })}\r\n
    \r\n );\r\n};\r\n\r\nexport default SocialMedia;\r\n","import {\r\n FooterLinkFields,\r\n FooterSection,\r\n FooterSectionFields,\r\n TCheckboxField,\r\n TImageField,\r\n TSocialMediaFields,\r\n TStringField,\r\n} from '../../../types/types';\r\nimport { FooterFields, FooterParams, FooterProps } from '../types/footer.types';\r\n\r\nexport class FooterModel {\r\n private readonly fields?: FooterFields;\r\n private readonly params?: FooterParams;\r\n\r\n constructor(props: FooterProps) {\r\n this.fields = props?.fields;\r\n this.params = props?.params;\r\n }\r\n\r\n private filterSectionByType(list: FooterSection[], type: string): FooterSection[] {\r\n return list?.filter((item) => item.fields?.sectionType?.fields?.Key?.value === type);\r\n }\r\n\r\n get footerSections(): FooterSection[] | undefined {\r\n if (!this.fields?.footerSections) return undefined;\r\n return this.filterSectionByType(this.fields?.footerSections, 'groupSectionType');\r\n }\r\n\r\n get navigationSection(): FooterLinkFields | undefined {\r\n if (!this.fields?.footerSections) return undefined;\r\n return this.filterSectionByType(this.fields?.footerSections, 'navigationSectionType')?.[0]?.fields?.footerLinks?.[0]?.fields;\r\n }\r\n\r\n get actionSection(): FooterSectionFields | undefined {\r\n if (!this.fields?.footerSections) return undefined;\r\n return this.filterSectionByType(this.fields?.footerSections, 'actionSectionType')?.[0]?.fields;\r\n }\r\n\r\n get copyrightText(): TStringField | undefined {\r\n return this.fields?.copyrightText;\r\n }\r\n\r\n get logoImage(): TImageField | undefined {\r\n return this.fields?.logoImage;\r\n }\r\n\r\n get mobileLogoImage(): TImageField | undefined {\r\n return this.fields?.mobileLogoImage;\r\n }\r\n\r\n get backToTopText(): TStringField | undefined {\r\n return this.fields?.backToTopText;\r\n }\r\n\r\n get hideSocialMedia(): TCheckboxField | undefined {\r\n return this.params?.hideSocialMedia;\r\n }\r\n\r\n get socialLinks(): TSocialMediaFields | undefined {\r\n return this.fields?.socialLinks;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { ComponentRendering, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport ActionSection from './components/actionSection';\r\nimport BackToTop from './components/backToTop';\r\nimport LinksAccordion from './components/linksAccordion';\r\nimport Navigation from './components/navigation';\r\nimport SocialMedia from './components/socialMedia';\r\nimport { FooterModel } from './models/footer.model';\r\nimport { FooterProps } from './types/footer.types';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport Picture from '../@shared/picture';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst Footer: FC = (props) => {\r\n const model = new FooterModel(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {!model.hideSocialMedia && model.socialLinks && }\r\n
    \r\n
    \r\n
    \r\n {model.actionSection && }\r\n {model.footerSections?.map((item) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n {model.copyrightText && }\r\n
    \r\n \r\n
    \r\n {model.backToTopText && }\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import {\r\n TFormHeadingData,\r\n TFormNavigationFieldType,\r\n TFormNavigationItemDataFieldType,\r\n TFormNavigationStepType,\r\n TFormPageNavigationProps,\r\n} from '../types/formPageNavigation.types';\r\n\r\nexport class FormPageNavigationModel {\r\n private readonly fields?: TFormNavigationFieldType;\r\n private readonly ItemDatafields?: TFormNavigationItemDataFieldType;\r\n private readonly formHeadingData?: TFormHeadingData;\r\n\r\n constructor(props: TFormPageNavigationProps) {\r\n this.fields = props?.fields;\r\n this.ItemDatafields = this.fields?.itemData?.fields || null;\r\n this.formHeadingData = this.ItemDatafields?.FormHeadingData;\r\n }\r\n\r\n get formName(): string | undefined {\r\n return this.ItemDatafields?.FormName;\r\n }\r\n\r\n get steps(): TFormNavigationStepType[] {\r\n return this.ItemDatafields?.FormPageNavigation || [];\r\n }\r\n\r\n get hasSteps(): boolean {\r\n return !!this.steps.length;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get title(): string {\r\n return this.formHeadingData?.title || '';\r\n }\r\n\r\n get eyebrow(): string {\r\n return this.formHeadingData?.eyebrow || '';\r\n }\r\n\r\n get subtitle(): string {\r\n return this.formHeadingData?.subtitle || '';\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport { TStepType } from '../../types/formPageNavigation.types';\r\n\r\nconst Step: FC = (props: TStepType) => {\r\n const {activeStepkey, formSubmitted, stepKey, stepRef, stepNumber, stepText, activeStepNumber, updateActiveStepNumber} = props;\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n\r\n let className = '';\r\n\r\n if (activeStepkey === stepKey) {\r\n className = 'form-page-navigation__step--active';\r\n updateActiveStepNumber(stepNumber);\r\n }\r\n\r\n if ((stepNumber < activeStepNumber) || formSubmitted) {\r\n className = 'form-page-navigation__step--passed';\r\n }\r\n\r\n const addRef = (el) => {\r\n if (stepRef && stepRef?.current) {\r\n stepRef.current[stepNumber - 1] = el;\r\n }\r\n }\r\n return (\r\n
  • \r\n \r\n {isDesktop && {stepNumber}}\r\n {isDesktop && {stepText}}\r\n
  • \r\n );\r\n}\r\n\r\nexport default Step;\r\n","export const formPageIdentifierClass = 'sitecore-jss-form__page-identifier-field'; \r\nexport const sitecoreFormIdentifier = '.sitecore-jss-form form';","export enum EventEnum {\r\n ADD_LOADER_QUEUE_ITEM = 'addLoaderQueueItem',\r\n REMOVE_LOADER_QUEUE_ITEM = 'removeLoaderQueueItem',\r\n}\r\n\r\n// Custom Form Events\r\nexport enum FormEventEnum {\r\n FORM_SUBMITTED = 'formSubmitted',\r\n}\r\n\r\nexport interface IFormEventEnumMap {\r\n [FormEventEnum.FORM_SUBMITTED]: { formDatasource: string };\r\n}\r\n","import React, { FC, useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { documentService, windowService } from '../../utils/window.utils.js';\r\nimport { TFormPageNavigationProps } from './types/formPageNavigation.types';\r\nimport { FormPageNavigationModel } from './models/formPageNavigation.model';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport Heading from '../@shared/heading';\r\nimport Step from './components/step';\r\nimport { debounceHandler } from '../../utils/debounceHandler.utils';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport { formPageIdentifierClass, sitecoreFormIdentifier } from '../../constants/multiStep.constants';\r\nimport { FormEventEnum, IFormEventEnumMap } from '../../enums/event.enum';\r\nimport { googleFormProgress } from '../../utils/analytics';\r\n\r\nconst FormPageNavigation: FC = (props: TFormPageNavigationProps) => {\r\n const model = new FormPageNavigationModel(props);\r\n const stepsCount = model.steps.length;\r\n const stepListRef = useRef(null);\r\n const stepRef = useRef([]);\r\n const timmerRef = useRef>();\r\n const [stepKey, updateStepKey] = useState('');\r\n const stepKeyRef = useRef(stepKey);\r\n const [activeStepNumber, updateActiveStepNumber] = useState(1);\r\n const highestStepReached = useRef(0);\r\n const [formSubmitted, updateFormSubmitted] = useState(false);\r\n const progressBarWidthRef = useRef(0);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const displayMobileStepInfo = !isDesktop && !formSubmitted;\r\n const { t } = useTranslation();\r\n const stepNameDictionaryVal = t('cnhi-form-step');\r\n\r\n const setProgressBarStepWidth = () => {\r\n const stepListWidth = stepListRef?.current?.clientWidth || 0;\r\n const firstStepWidth = (stepRef?.current?.[0]?.clientWidth || 0) / 2;\r\n const lastStepWidth = (stepRef?.current?.[stepsCount - 1]?.clientWidth || 0) / 2;\r\n const stepProgressBarWidth = stepListWidth - (firstStepWidth + lastStepWidth);\r\n documentService().documentElement?.style?.setProperty('--form-progress-bar-step-width', `${stepProgressBarWidth}px`);\r\n documentService().documentElement?.style?.setProperty('--form-progress-bar-first-step-width', `${firstStepWidth}px`);\r\n progressBarWidthRef.current = stepProgressBarWidth;\r\n };\r\n\r\n const calculateProgress = () => {\r\n let distance = 0;\r\n if (activeStepNumber > 1) {\r\n const activeStepCenter = stepRef.current[activeStepNumber - 1].offsetLeft + stepRef.current[activeStepNumber - 1].offsetWidth / 2;\r\n const firstStepCenter = stepRef.current[0].offsetLeft + stepRef.current[0].offsetWidth / 2;\r\n distance = activeStepCenter - firstStepCenter;\r\n }\r\n return `${distance}px`;\r\n };\r\n\r\n const updateStepInfo = (key: string) => {\r\n updateStepKey(key);\r\n };\r\n\r\n useEffect(() => {\r\n stepKeyRef.current = stepKey;\r\n }, [stepKey]);\r\n\r\n useEffect(() => {\r\n const handlerFormSubmitEvent = (customEventData: CustomEventInit) => {\r\n if (props.rendering.dataSource && customEventData.detail?.formDatasource === props.rendering.dataSource) {\r\n highestStepReached.current = 0;\r\n }\r\n };\r\n\r\n windowService().addEventListener?.(FormEventEnum.FORM_SUBMITTED, handlerFormSubmitEvent);\r\n\r\n return () => windowService().removeEventListener(FormEventEnum.FORM_SUBMITTED, handlerFormSubmitEvent);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setProgressBarStepWidth();\r\n const formIdentifierElement = documentService()?.querySelector(`.${formPageIdentifierClass}`);\r\n const currentStepKey = formIdentifierElement?.value;\r\n currentStepKey && updateStepKey(currentStepKey);\r\n const observer = new ResizeObserver(() => {\r\n debounceHandler(() => setProgressBarStepWidth(), timmerRef, 10);\r\n });\r\n\r\n if (stepListRef?.current) {\r\n observer.observe(stepListRef.current);\r\n }\r\n\r\n const mutationCallback = () => {\r\n const formIdentifierElement = documentService()?.querySelector(`.${formPageIdentifierClass}`);\r\n const currentStepKey = formIdentifierElement.value;\r\n if (stepKeyRef.current !== currentStepKey) {\r\n // Triggered once the first page loads after form Submission\r\n if (currentStepKey === model.steps[0].Key && highestStepReached.current === 0) {\r\n googleFormProgress(model.formName, `${stepNameDictionaryVal} 1`, model.steps[0].text);\r\n }\r\n\r\n const newStepInd = model.steps.findIndex((_) => _.Key === currentStepKey);\r\n\r\n if (newStepInd > highestStepReached.current) {\r\n googleFormProgress(model.formName, `${stepNameDictionaryVal} ${newStepInd + 1}`, model.steps[newStepInd]?.text);\r\n highestStepReached.current = newStepInd;\r\n }\r\n updateStepInfo(currentStepKey);\r\n }\r\n };\r\n\r\n const mutationObserver = new MutationObserver(mutationCallback);\r\n setTimeout(() => {\r\n const formEle = documentService()?.querySelector(sitecoreFormIdentifier);\r\n const config = { attributes: true, childList: true, subtree: true };\r\n if (formEle) {\r\n // Since mutationCallback isn't triggered on load\r\n if (currentStepKey === model.steps[0].Key && highestStepReached.current === 0) {\r\n googleFormProgress(model.formName, `${stepNameDictionaryVal} 1`, model.steps[0].text);\r\n }\r\n mutationObserver.observe(formEle, config);\r\n } else {\r\n updateFormSubmitted(true);\r\n }\r\n }, 100);\r\n\r\n return () => {\r\n const formEle = documentService()?.querySelector(sitecoreFormIdentifier);\r\n stepListRef.current && observer.unobserve(stepListRef.current);\r\n formEle && mutationObserver.disconnect();\r\n };\r\n }, []);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n if (!model.hasSteps) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
      \r\n {model.steps.map((step, index) => {\r\n return (\r\n // eslint-disable-next-line react/jsx-key\r\n \r\n );\r\n })}\r\n
    \r\n\r\n {displayMobileStepInfo && (\r\n
    \r\n \r\n {stepNameDictionaryVal} {activeStepNumber}\r\n \r\n {model.steps[activeStepNumber - 1].text}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default FormPageNavigation;\r\n","import { GalleryCarouselProps, TCarouselFields, TFullscreenCarouselFields } from '../types/gallerycarousel.types';\r\n\r\nexport class GalleryCarouselModel {\r\n private readonly fields?: TFullscreenCarouselFields | null;\r\n\r\n constructor(props: GalleryCarouselProps) {\r\n this.fields = props?.fields || null;\r\n }\r\n\r\n get carouselSlide(): Array | undefined {\r\n return this.fields?.items;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FunctionComponent } from 'react';\r\nimport Icon from '../../@shared/icon';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\n\r\ntype THeroCarouselArrowProps = {\r\n direction: 'previous' | 'next' | 'download';\r\n onClick: () => void;\r\n};\r\n\r\nconst GalleryCarouselArrow: FunctionComponent = ({ direction, onClick }) => {\r\n const nextDirection = direction === 'next' ? 'arrow-chevron-right' : 'action-download';\r\n const icon = direction === 'previous' ? 'arrow-chevron-left' : nextDirection;\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default GalleryCarouselArrow;\r\n","import React, {FunctionComponent} from 'react';\r\nimport {TGalleryCarouselIndicatorProps} from '../types/gallerycarousel.types';\r\n\r\nconst GalleryCarouselIndicator: FunctionComponent = ({\r\n isSelected = false,\r\n index,\r\n baseClassName = 'controls__dots__item',\r\n goSelected,\r\n }) => {\r\n const className = isSelected ? baseClassName + ' ' + baseClassName + '--selected' : baseClassName;\r\n\r\n return
  • goSelected(index)}/>;\r\n};\r\n\r\nexport default GalleryCarouselIndicator;\r\n","import React, { FunctionComponent} from 'react';\r\nimport { isEditorActive, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TGalleryCarouselItemProps } from '../types/gallerycarousel.types';\r\nimport VideoPlayer from '../../@shared/videoPlayer';\r\nimport Picture from '../../@shared/picture';\r\n\r\nconst GalleryCarouselSlide: FunctionComponent = ({ fields, id }) => {\r\n\r\n return (\r\n
    \r\n {fields.useVideo?.value ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default GalleryCarouselSlide;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport { Carousel as ReactResponsiveCarousel } from 'react-responsive-carousel';\r\nimport 'react-responsive-carousel/lib/styles/carousel.min.css';\r\nimport { formatComponentNumber, googleClickSlideEvent } from '../../../utils/analytics';\r\nimport { documentService, windowService } from '../../../utils/window.utils';\r\nimport { getYoutubeVideoId } from '../../../utils/youtubeUtils';\r\nimport AnalyticsVisibleEvent from '../../@shared/analyticsVisibleEvent';\r\nimport CarouselTransparentNavSection from '../../@shared/carouselTransparentNavSection';\r\nimport CustomCarouselDots from '../../@shared/customCarouselDots';\r\nimport { CarouselNavPositionEnum } from '../../../enums/carousel.enums';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport GalleryCarouselArrow from '../components/galleryCarouselArrow';\r\nimport GalleryCarouselIndicator from '../components/galleryCarouselIndicator';\r\nimport GalleryCarouselSlide from '../components/galleryCarouselSlide';\r\nimport { GalleryCarouselModel } from '../models/galleryCarousel.model';\r\n\r\nfunction GalleryCarousel(props: { model: GalleryCarouselModel; rendering: ComponentRendering }): JSX.Element {\r\n const model = props.model;\r\n const isDesktop = useMediaQuery('(min-width: 768px)');\r\n\r\n useEffect(() => {\r\n const height = windowService().innerHeight;\r\n documentService().documentElement.style.setProperty('--vh-100', `${height}px`);\r\n const resize = (): void => {\r\n const vh = windowService().innerHeight;\r\n documentService().documentElement.style.setProperty('--vh-100', `${vh}px`);\r\n };\r\n windowService().addEventListener('resize', resize);\r\n return (): void => {\r\n windowService().removeEventListener('resize', resize);\r\n };\r\n }, []);\r\n\r\n const interval = 10000; // when you change this change also the $interval variable in GalleryCarousel > style.scss\r\n\r\n const hasMultipleSlides = model.carouselSlide ? model.carouselSlide.length > 1 : false;\r\n\r\n const [currentSlide, _setCurrentSlide] = useState(0);\r\n\r\n const slidePos = model.carouselSlide ? model.carouselSlide[currentSlide] : null;\r\n\r\n const setCurrentSlide = hasMultipleSlides\r\n ? (index: number): void => {\r\n if (currentSlide !== index) {\r\n _setCurrentSlide(index);\r\n }\r\n }\r\n : (): void => {\r\n // This is intentional\r\n };\r\n\r\n const normalizeSlideNumber = (slide: number) => {\r\n if (!model?.carouselSlide?.length) {\r\n return slide;\r\n }\r\n\r\n return (slide + model?.carouselSlide.length) % model?.carouselSlide.length;\r\n };\r\n\r\n const goNext = (): void => {\r\n const slide = normalizeSlideNumber(currentSlide + 1);\r\n setCurrentSlide(slide);\r\n googleClickSlideEvent(`Slide ${formatComponentNumber(slide + 1)}`, '');\r\n };\r\n\r\n const goPrevious = (): void => {\r\n const slide = normalizeSlideNumber(currentSlide - 1);\r\n setCurrentSlide(slide);\r\n googleClickSlideEvent(`Slide ${formatComponentNumber(slide - 1)}`, '');\r\n };\r\n\r\n const carouselRef = useRef(null);\r\n\r\n const findLoadedImgSrc = (): string | undefined => {\r\n const currentSlideDOM: HTMLDListElement = carouselRef?.current?.itemsRef?.[currentSlide];\r\n const image = currentSlideDOM?.querySelector?.('img');\r\n return image?.currentSrc;\r\n };\r\n\r\n const MediaDownload = (): void => {\r\n const title = '';\r\n const isVideo = slidePos?.fields?.useVideo?.value;\r\n const videoUrl = slidePos?.fields?.video?.value?.href;\r\n const url = (isVideo ? videoUrl : findLoadedImgSrc()) || '';\r\n\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function (): void {\r\n const urlCreator = windowService().URL || windowService().webkitURL;\r\n const imageUrlValue = urlCreator.createObjectURL(this.response);\r\n const tag = documentService().createElement('a');\r\n tag.href = imageUrlValue;\r\n tag.download = title;\r\n documentService().body.appendChild(tag);\r\n tag.click();\r\n documentService().body.removeChild(tag);\r\n };\r\n xhr.send();\r\n };\r\n const isYouTubeUrl = getYoutubeVideoId(slidePos?.fields?.video?.value?.href || '');\r\n const isImageUrl = slidePos?.fields?.image?.value?.src || slidePos?.fields?.mobileImage?.value?.src;\r\n const showDownloadIcon = slidePos?.fields?.useVideo?.value ? !isYouTubeUrl : isImageUrl;\r\n return (\r\n \r\n {model && (\r\n <>\r\n
    \r\n \r\n {model?.carouselSlide?.map((itemFields, index) => {\r\n const slideInfo = { currentSlide, index };\r\n return (\r\n \r\n );\r\n })}\r\n \r\n {showDownloadIcon && }\r\n {hasMultipleSlides && (\r\n
    \r\n \r\n \r\n\r\n {\r\n
      \r\n {(model?.carouselSlide || []).length > 5 ? (\r\n \r\n ) : (\r\n model?.carouselSlide?.map((slide, index) => (\r\n {\r\n // This is intentional\r\n }}\r\n />\r\n ))\r\n )}\r\n
    \r\n }\r\n \r\n\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default GalleryCarousel;\r\n","import React from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { GalleryCarouselModel } from './models/galleryCarousel.model';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport GalleryCarousel from './components/galleryCarousel';\r\n\r\nconst FullScreenMediaGallery = (props) => {\r\n const model = new GalleryCarouselModel(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(FullScreenMediaGallery);\r\n","import { ComponentProps, TSitecoreContext } from '../../../../types/types';\r\nimport { ctaTypes } from '../../cta';\r\n\r\nexport const CtaStylesCtaTypeObj = {\r\n 'Primary Red': ctaTypes['primaryRed'],\r\n 'Primary White': ctaTypes['primaryWhite'],\r\n 'Primary Black': ctaTypes['primaryBlack'],\r\n 'Secondary Red With Icon': ctaTypes['secondaryRed'],\r\n 'Secondary White With Icon': ctaTypes['secondaryWhite'],\r\n};\r\n\r\nexport type TGenericPopUpParams = Partial<{\r\n ctaText: string;\r\n ctaStyles: keyof typeof CtaStylesCtaTypeObj;\r\n}>;\r\n\r\nexport type TGenericPopUpProps = ComponentProps<{ isComponentUnreleased?: boolean }, TGenericPopUpParams> & {\r\n sitecoreContext?: TSitecoreContext;\r\n extraClassName?: string;\r\n children?: any;\r\n};\r\n","import React from 'react';\r\n\r\ntype TGenericPopUpContext = {\r\n isGenericPopUp: boolean;\r\n};\r\n\r\nexport const GenericPopUpContext = React.createContext({isGenericPopUp: false});\r\n\r\n","import React, { FC, useEffect, useRef, useState } from 'react';\r\nimport { Placeholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { CtaStylesCtaTypeObj, TGenericPopUpProps } from './types/genericPopUp.types';\r\nimport { documentService } from '../../../utils/window.utils.js';\r\nimport { PropsFromGenericPopup } from '../../../types/types';\r\nimport UnreleasedComponent from '../unreleasedComponent';\r\nimport CTA from '../cta';\r\nimport Icon from '../icon';\r\nimport ModalDialog from '../modalDialog';\r\nimport { adjustModalPositionBasedOnContent } from '../../../utils/modal.utils';\r\nimport { GenericPopUpContext } from '../genericPopUpContextProvider';\r\n\r\nconst SharedGenericPopUp: FC = (props) => {\r\n //There is an issue in Sitecore because of which the params isn't loaded on load. So hardcoded for now but will remove later\r\n const { children, extraClassName = '' } = props;\r\n const ctaText = props?.params?.ctaText || 'Generic Pop Up';\r\n const isEEActive = props?.sitecoreContext?.pageEditing;\r\n const [isPopUpShown, setIsPopUpShown] = useState(false);\r\n const editorRef = useRef(null);\r\n const ctaOpenTriggerRef = useRef(null);\r\n const ctaCloseTriggerRef = useRef(null);\r\n const popUpClassName = 'generic-modal-dialog';\r\n const modalDialogConatinerClass = 'modal-dialog__overlay';\r\n const modalDialogContentlass = 'modal-dialog';\r\n const modalDialogCloseBtnClass = 'modal-dialog__close-button';\r\n\r\n useEffect(() => {\r\n if (isEEActive) {\r\n const startStopBodyScroll = (isScrollable: boolean): void => {\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n return isScrollable ? docElement.body.classList.remove('body--with-pop-up') : docElement.body.classList.add('body--with-pop-up');\r\n };\r\n\r\n const openCTA = (event): void => {\r\n if (event.ctrlKey || event.metaKey) {\r\n event?.stopPropagation();\r\n event?.preventDefault();\r\n editorRef.current?.classList.add('editor_popup--visible');\r\n startStopBodyScroll(false);\r\n }\r\n };\r\n const closeCTA = (event): void => {\r\n if (event.ctrlKey || event.metaKey) {\r\n event?.stopPropagation();\r\n event?.preventDefault();\r\n editorRef.current?.classList.remove('editor_popup--visible');\r\n startStopBodyScroll(true);\r\n }\r\n };\r\n ctaOpenTriggerRef.current?.addEventListener('click', openCTA);\r\n ctaCloseTriggerRef.current?.addEventListener('click', closeCTA);\r\n\r\n return () => {\r\n ctaOpenTriggerRef.current?.removeEventListener('click', openCTA); // eslint-disable-line\r\n ctaCloseTriggerRef.current?.removeEventListener('click', closeCTA); // eslint-disable-line\r\n };\r\n }\r\n }, []); // eslint-disable-line\r\n\r\n const propsToInnerComp: PropsFromGenericPopup = {\r\n isInGenericPopup: true,\r\n };\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n
    setIsPopUpShown(true)}>\r\n {children ? children :\r\n {ctaText}\r\n }\r\n
    \r\n\r\n {/* Pop up UI for Editor */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {props.rendering && }\r\n
    \r\n
    \r\n\r\n {props.rendering && (\r\n setIsPopUpShown(false)}\r\n onAfterOpen={adjustModalPositionBasedOnContent}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(SharedGenericPopUp);\r\n","import React, { FC } from 'react';\r\nimport SharedGenericPopUp from '../@shared/sharedGenericPopUp';\r\nimport { TGenericPopUpProps } from '../@shared/sharedGenericPopUp/types/genericPopUp.types';\r\n\r\nconst GenericPopUp: FC = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default GenericPopUp;\r\n","import React, { createContext, Dispatch, MutableRefObject, Reducer, useContext, useEffect, useReducer, useRef } from 'react';\r\n\r\nexport const MenuContext = createContext<[TMenuState, Dispatch] | null>(null);\r\nMenuContext.displayName = 'MenuContext';\r\n\r\nconst initialIsOpen = false; // needs to start as false to prevent multiple elements being opened at the same time\r\n\r\ntype emptyFn = () => void;\r\n\r\nexport function useMenuContext(): [TMenuState, Dispatch | emptyFn] {\r\n const value = useContext(MenuContext);\r\n if (value) {\r\n return value;\r\n }\r\n console.warn('Missing MenuContext provider');\r\n // this is necessary to prevent errors when using this outside of the context\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n return [\r\n [],\r\n (): void => {\r\n // This is intentional\r\n },\r\n ];\r\n}\r\n\r\nexport function useMenuDispatcher() {\r\n return useMenuContext()[1];\r\n}\r\n\r\nexport function useMenuState() {\r\n return useMenuContext()[0];\r\n}\r\n\r\nexport function useMenuItem(menuState: TMenuState, menuDispatcher: Dispatch): [boolean, TSetOpen] {\r\n const elementRef = useRef(null); // value that never changes in different renderings\r\n const isOpen = menuState.find((element) => element.ref === elementRef)?.isOpen ?? initialIsOpen;\r\n\r\n const setOpen = (newIsOpen = true) => {\r\n menuDispatcher({ type: newIsOpen ? 'openElement' : 'closeElement', ref: elementRef });\r\n };\r\n\r\n useEffect(() => {\r\n menuDispatcher({ type: 'addElement', ref: elementRef, initialIsOpen });\r\n return () => {\r\n menuDispatcher({ type: 'removeElement', ref: elementRef });\r\n };\r\n }, []); // eslint-disable-line\r\n\r\n return [isOpen, setOpen];\r\n}\r\n\r\nexport type TSetOpen = (newIsOpen: boolean) => void;\r\n\r\nexport function useMenuItemWithContext(): [boolean, TSetOpen] {\r\n const [menuState, menuDispatcher] = useMenuContext();\r\n return useMenuItem(menuState, menuDispatcher);\r\n}\r\n\r\nexport type TMenuState = { ref: MutableRefObject; isOpen: boolean }[];\r\nexport type TMenuAction =\r\n | {\r\n type: 'addElement';\r\n initialIsOpen: boolean;\r\n ref: MutableRefObject;\r\n }\r\n | {\r\n type: 'openElement' | 'removeElement' | 'closeElement';\r\n ref: MutableRefObject;\r\n }\r\n | {\r\n type: 'closeAll';\r\n };\r\ntype TMenuReducer = Reducer;\r\n\r\nconst initialState: TMenuState = [];\r\n\r\nconst menuReducer: TMenuReducer = (state, action) => {\r\n switch (action.type) {\r\n case 'addElement':\r\n return [...state, { ref: action.ref, isOpen: action.initialIsOpen }];\r\n case 'openElement':\r\n return state.map((element) => {\r\n element.isOpen = element.ref === action.ref;\r\n return element;\r\n });\r\n case 'removeElement':\r\n return state.filter((element) => element.ref !== action.ref);\r\n case 'closeElement': // same as closeAll, there should never be more than one open\r\n case 'closeAll':\r\n return state.map((element) => {\r\n element.isOpen = false;\r\n return element;\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport function useMenuReducer() {\r\n return useReducer(menuReducer, initialState);\r\n}\r\n\r\nexport function MenuProvider(props: any) {\r\n const [menuState, menuDispatch] = useMenuReducer();\r\n\r\n return ;\r\n}\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { googleClickCtaEvent } from '../../../utils/analytics';\r\nimport { useMenuItemWithContext } from '../menuContext';\r\nimport { TNavigationItemMenuField } from './navigationItem/types/navigationItem.types';\r\nimport { documentService, windowService } from '../../../utils/window.utils';\r\n\r\nconst NavigationItemMenuStructure = ({\r\n triggerContent,\r\n actionTitle,\r\n children,\r\n extraClassName,\r\n fullWidth = false,\r\n}: TNavigationItemMenuField): JSX.Element => {\r\n const [isOpen, setOpen] = useMenuItemWithContext();\r\n const NavTrayRef = useRef(null);\r\n\r\n const handleClick = (): void => {\r\n setOpen(!isOpen);\r\n };\r\n const baseElementClassName = `navigation__menu-item ${extraClassName}`;\r\n const elementClassName = baseElementClassName + (isOpen ? ' ' + baseElementClassName + '--open' : '');\r\n\r\n useEffect(() => {\r\n if (!fullWidth) {\r\n const navTrayDim = NavTrayRef?.current?.getBoundingClientRect();\r\n NavTrayRef?.current?.classList.remove('navigation__menu-item__tray--right'); // restting to original position before performing below calculation\r\n\r\n if (navTrayDim && isOpen) {\r\n const isInViewport =\r\n navTrayDim?.top >= 0 &&\r\n navTrayDim?.left >= 0 &&\r\n Math.floor(navTrayDim?.bottom) <= (windowService().innerHeight || documentService().documentElement.clientHeight) &&\r\n navTrayDim?.right <= (windowService().innerWidth || documentService().documentElement.clientWidth);\r\n if (!isInViewport) {\r\n NavTrayRef?.current?.classList.add('navigation__menu-item__tray--right');\r\n }\r\n }\r\n }\r\n }, [isOpen, NavTrayRef]);\r\n\r\n return (\r\n
  • \r\n {\r\n handleClick();\r\n actionTitle && googleClickCtaEvent('Global Nav', actionTitle, actionTitle);\r\n }}\r\n >\r\n {triggerContent}\r\n \r\n \r\n {isOpen && children}\r\n \r\n
  • \r\n );\r\n};\r\n\r\nexport default NavigationItemMenuStructure;\r\n","import React from 'react';\r\nimport Icon from '../../@shared/icon';\r\n\r\nconst MenuTriggerContentWithIcon = ({ iconField, textValue }) => {\r\n return (\r\n \r\n \r\n {textValue}\r\n \r\n );\r\n};\r\n\r\nexport default MenuTriggerContentWithIcon;\r\n","export const QueryParamsConst = {\r\n ORDER: 'order',\r\n PAGE: 'page',\r\n PER_PAGE: 'take',\r\n QUERY: 'q',\r\n FILTERS: 'filters',\r\n // news filter\r\n YEAR: 'year',\r\n LINE: 'line',\r\n TYPE: 'type',\r\n FILTER1: 'filter1',\r\n // build and price filters\r\n SERIES: 'series',\r\n MODEL: 'model',\r\n // Download Brochure Filters\r\n CATEGORIES: 'categories',\r\n SEARCH_BROCHURE: 'searchbrochure',\r\n SEARCH_BROCHURE_ID: 'searchid',\r\n};\r\n","export const APIPrefix = 'apirequest';\r\n","import React, { FC, useState, useEffect } from 'react';\r\nimport { APIPrefix } from '../../../../constants/api.constants';\r\nimport { TSuggestionsProps } from '../../types/suggestions.types';\r\n\r\nconst Suggestions: FC = ({ suggestionQuery, contextId, language, minimalLength, onUpdateQuery, className }) => {\r\n const [suggestions, setSuggestions] = useState([]);\r\n\r\n const updateSuggestions = (): void => {\r\n if (!suggestionQuery || suggestionQuery.length < minimalLength) {\r\n setSuggestions([]);\r\n return;\r\n }\r\n\r\n const suggestionApiUrl = `/${APIPrefix}/search-suggestions/get-suggestions?searchterm=${suggestionQuery}&contextId=${contextId}&language=${language}`;\r\n fetch(suggestionApiUrl)\r\n .then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n throw Error(`${res.status} : Failed to fetch search suggestions.`);\r\n }\r\n })\r\n .then((result) => {\r\n if (result?.length) {\r\n setSuggestions(result);\r\n } else {\r\n setSuggestions([]);\r\n }\r\n })\r\n .catch(() => {\r\n setSuggestions([]);\r\n });\r\n };\r\n\r\n useEffect(() => updateSuggestions(), [suggestionQuery]); // eslint-disable-line\r\n\r\n if (!suggestions) {\r\n return null;\r\n }\r\n\r\n return (\r\n suggestions && (\r\n
      \r\n {suggestions.map((suggestion) => (\r\n
    • \r\n {/* not a link with href */}\r\n onUpdateQuery(suggestion)}>\r\n {suggestion}\r\n \r\n
    • \r\n ))}\r\n
    \r\n )\r\n );\r\n};\r\n\r\nexport default Suggestions;\r\n","import React from 'react';\r\n\r\nconst SearchInput = React.forwardRef>(function Search(props, ref) {\r\n const { className, ...inputProps } = props;\r\n const inputClassName = className ? `search-input__elm ${className}` : 'search-input__elm';\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n});\r\n\r\nexport default SearchInput;\r\n","import React, { FormEvent, useRef, useEffect, useState } from 'react';\r\nimport NavigationItemMenuStructure from './navigationItemMenuStructure';\r\nimport MenuTriggerContentWithIcon from './menuTriggerContentWithIcon';\r\nimport { windowService, documentService } from '../../../utils/window.utils';\r\nimport { QueryParamsConst } from '../../../constants/query-params.constants';\r\nimport useQueryParams from '../../../hooks/useQueryParams.effect';\r\nimport Suggestions from '../../searchResults/components/suggestions';\r\nimport { WithSitecoreContextProps } from '@sitecore-jss/sitecore-jss-react/types/enhancers/withSitecoreContext';\r\nimport CTAButton, { ctaEnums } from '../../@shared/ctaButton';\r\nimport Icon from '../../@shared/icon';\r\nimport SearchInput from './searchInput';\r\nimport { IComponentFieldsGeneral } from '../../../types/types';\r\n\r\nconst SearchMenu = ({ fields, sitecoreContext }: WithSitecoreContextProps & { fields: IComponentFieldsGeneral }): JSX.Element => {\r\n const [page] = useQueryParams(QueryParamsConst.PAGE, '1');\r\n const [perPage] = useQueryParams(QueryParamsConst.PER_PAGE, '10');\r\n const queryKey = QueryParamsConst.QUERY;\r\n const pfeInputRef = useRef(null);\r\n const formRef = useRef(null);\r\n\r\n const [, setSuggestionQuery] = useState('');\r\n const [isSuggestionsComponentVisible, setIsSuggestionsComponentVisible] = useState(false);\r\n\r\n const SUGGESTIONS_MIN_CHAR_LIMIT = 3;\r\n\r\n let submitUrl: URL;\r\n try {\r\n const href = fields.search?.search?.value?.href;\r\n const origin = windowService()?.location?.origin;\r\n\r\n submitUrl = href.startsWith('/') ? new URL(href, origin) : new URL(href);\r\n } catch (e) {\r\n console.warn(e);\r\n }\r\n\r\n const onSubmit: (e: FormEvent) => void = (e) => {\r\n e.preventDefault();\r\n if (submitUrl && pfeInputRef.current && !submitUrl.searchParams.has(queryKey)) {\r\n submitUrl.searchParams.append(queryKey, pfeInputRef.current.value);\r\n submitUrl.searchParams.append(QueryParamsConst.PAGE, page);\r\n submitUrl.searchParams.append(QueryParamsConst.PER_PAGE, perPage);\r\n windowService().location.href = submitUrl.toString();\r\n }\r\n };\r\n\r\n const updateSuggestionsQuery = (event): void => {\r\n setSuggestionQuery(event?.target?.value);\r\n };\r\n\r\n const onKeyUp: (e) => void = (e) => {\r\n if (e?.key === 'Enter') {\r\n onSubmit(e);\r\n return;\r\n }\r\n\r\n updateSuggestionsQuery(e); //debounce(updateSuggestionsQuery, SUGGESTIONS_DEBOUNCE_TIME_IN_MS)\r\n };\r\n\r\n const onUpdateQueryFromSuggestions = (q: string): void => {\r\n pfeInputRef.current.value = q;\r\n setIsSuggestionsComponentVisible(false);\r\n formRef.current.dispatchEvent(new Event('submit', {cancelable: true, bubbles: true}));\r\n };\r\n\r\n const handleClickOutside = (event): void => {\r\n if (formRef?.current?.contains(event?.target)) {\r\n return;\r\n }\r\n\r\n setIsSuggestionsComponentVisible(false);\r\n };\r\n\r\n useEffect(() => {\r\n documentService().addEventListener('mouseup', handleClickOutside);\r\n return (): void => {\r\n documentService().removeEventListener('mouseup', handleClickOutside);\r\n };\r\n }, []);\r\n\r\n return (\r\n }\r\n actionTitle={fields.search?.link?.value?.text}\r\n fullWidth={true}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n setIsSuggestionsComponentVisible(true)}\r\n autoComplete=\"off\"\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n {isSuggestionsComponentVisible && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nconst Search = ({ fields, sitecoreContext }: WithSitecoreContextProps & ComponentProps): JSX.Element => {\r\n return ;\r\n};\r\n\r\nexport default Search;\r\n","const getInitials = (fullName: string): string => {\r\n const allNames = fullName.trim().split(' ');\r\n\r\n return allNames.reduce((acc, curr, index) => {\r\n if (index === 0 || index === allNames.length - 1) {\r\n acc = `${acc}${curr.charAt(0).toUpperCase()}`;\r\n }\r\n\r\n return acc;\r\n }, '');\r\n};\r\n\r\nexport default getInitials;\r\n","import React from 'react';\r\n\r\nconst MenuTriggerContentWithCircle = ({ textValue }) => {\r\n return (\r\n \r\n {textValue}\r\n \r\n );\r\n};\r\n\r\nexport default MenuTriggerContentWithCircle;\r\n","import React, { FC } from 'react';\r\nimport Icon, { TIconProps } from '../../../../../@shared/icon';\r\nimport RoutableNotEditableLink from '../../../../../@shared/routableNotEditableLink';\r\nimport { TSingleSignOnOrOtherLinks } from '../../types/login.types';\r\n\r\ntype TQuickAcessOrOther = TSingleSignOnOrOtherLinks & {\r\n extraClasName?: string;\r\n iconLeft?: TIconProps['iconName'];\r\n iconRight?: TIconProps['iconName'];\r\n};\r\n\r\nconst QuickAcessOrOther: FC = ({ title, links, extraClasName = '', iconLeft, iconRight }) => {\r\n return (\r\n
    \r\n

    {title}

    \r\n
    \r\n {links?.map(({ label, href }) => {\r\n return (\r\n \r\n {iconLeft && }\r\n {label}\r\n {iconRight && }\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default QuickAcessOrOther;\r\n","import React, { FC, useCallback } from 'react';\r\nimport getInitials from '../../../../../../utils/getInitials';\r\nimport { documentService } from '../../../../../../utils/window.utils';\r\nimport RoutableNotEditableLink from '../../../../../@shared/routableNotEditableLink';\r\nimport MenuTriggerContentWithCircle from '../../../menuTriggerContentWithCircle';\r\nimport MenuTriggerContentWithIcon from '../../../menuTriggerContentWithIcon';\r\nimport NavigationItemMenuStructure from '../../../navigationItemMenuStructure';\r\nimport { THeaderInfo } from '../../types/login.types';\r\nimport QuickAcessOrOther from '../quickAccessOrOther';\r\nimport { googleClickCtaEvent } from '../../../../../../utils/analytics';\r\n\r\nconst DesktopLogin: FC<{ fields: any; headerInfoData: THeaderInfo; setLoginStarted }> = ({ fields, headerInfoData, setLoginStarted }) => {\r\n const handleClick = useCallback(\r\n (url: string): void => {\r\n setLoginStarted(true);\r\n const form = documentService().createElement('form');\r\n form.target = '_blank';\r\n form.method = 'POST';\r\n form.action = url;\r\n documentService().body.appendChild(form);\r\n form.submit();\r\n },\r\n [setLoginStarted]\r\n );\r\n\r\n if (!headerInfoData.logged) {\r\n return (\r\n
  • \r\n {\r\n handleClick(fields?.login?.link?.value?.href);\r\n googleClickCtaEvent(\r\n 'Global Nav',\r\n fields?.login?.link?.value?.text,\r\n fields?.login?.link?.value?.text\r\n );\r\n }}\r\n className=\"navigation__menu-item__trigger\"\r\n >\r\n \r\n \r\n
  • \r\n );\r\n } else {\r\n return (\r\n \r\n }\r\n >\r\n
    \r\n
    \r\n
    \r\n

    {headerInfoData?.info?.name}

    \r\n

    {headerInfoData?.info?.company}

    \r\n
    \r\n
      \r\n {headerInfoData?.userLinks?.map(({ label, href }) => (\r\n
    • \r\n {label}\r\n
    • \r\n ))}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default DesktopLogin;\r\n","import React, { FC, useState } from 'react';\r\nimport { googleClickCtaEvent } from '../../../../../../utils/analytics';\r\nimport getInitials from '../../../../../../utils/getInitials';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport RoutableSitecoreLink from '../../../../../@shared/routableSitecoreLink';\r\nimport RoutableNotEditableLink from '../../../../../@shared/routableNotEditableLink';\r\nimport MenuTriggerContentWithCircle from '../../../menuTriggerContentWithCircle';\r\nimport { THeaderInfo } from '../../types/login.types';\r\nimport QuickAcessOrOther from '../quickAccessOrOther';\r\n\r\nconst MobileLogin: FC<{ fields: any; headerInfoData: THeaderInfo; setLoginStarted }> = ({ fields, headerInfoData, setLoginStarted }) => {\r\n const [isTabOpen, setIsTabOpen] = useState(false);\r\n\r\n if (!headerInfoData.logged) {\r\n return (\r\n
  • \r\n {\r\n setLoginStarted(true);\r\n googleClickCtaEvent('Global Nav', fields?.login?.link?.value?.text, fields?.login?.link?.value?.text);\r\n }}\r\n className=\"navigation__utility__link\"\r\n >\r\n \r\n {fields?.login?.link?.value?.text}\r\n \r\n
  • \r\n );\r\n } else {\r\n return (\r\n
    \r\n
    setIsTabOpen(!isTabOpen)}>\r\n \r\n
    \r\n

    {headerInfoData?.info?.name}

    \r\n

    {headerInfoData?.info?.company}

    \r\n
    \r\n \r\n
    \r\n {isTabOpen && (\r\n
    \r\n
      \r\n {headerInfoData?.userLinks?.map(({ label, href }) => (\r\n
    • \r\n {label}\r\n
    • \r\n ))}\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n }\r\n};\r\n\r\nexport default MobileLogin;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { THeaderInfo } from '../../header/components/login/types/login.types';\r\nimport useSitecoreContext from '../../../hooks/useSitecoreContext';\r\n\r\ntype TLayoutContext = {\r\n userLoginStatus: {\r\n headerInfo: THeaderInfo;\r\n callGetHeaderInfo: () => void;\r\n };\r\n};\r\n\r\nconst notLoggedJSON =\r\n '{\"OtherApps\": null,\"SingleSignOnApps\": null,\"UserLinks\": null,\"HomePageUrl\": null,\"LogoImageUrl\": null,\"LogoImageAlt\": null,\"MyAccountUrl\": null,\"LoginUrl\": null,\"UserName\": null,\"UserNameAbbreviation\": null,\"CompanyName\": null,\"HideDealerAccess\": false,\"VehicleManagementUrl\": null,\"ProfileManagementUrl\": null,\"MyCompanyAndUserManagementUrl\": null,\"SettingsUrl\": null,\"DealerAccessUrl\": null,\"UserIsAdmin\": false,\"logged\": false}';\r\nexport const LayoutContext = React.createContext({\r\n userLoginStatus: {\r\n headerInfo: JSON.parse(notLoggedJSON),\r\n callGetHeaderInfo: () => {},\r\n },\r\n});\r\n\r\nconst LayoutContextProvider = ({ children }) => {\r\n const [headerInfo, setHeaderInfo] = useState({ ...JSON.parse(notLoggedJSON), logged: undefined });\r\n const { sitecoreContext } = useSitecoreContext();\r\n\r\n const getHeaderInfo = useCallback((): void => {\r\n const url = sitecoreContext?.settings?.myBrandAPIUrl;\r\n if (url) {\r\n fetch(url, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n referrer: '',\r\n referrerPolicy: 'no-referrer-when-downgrade',\r\n mode: 'cors',\r\n })\r\n .then((response) => {\r\n if (!response.ok) {\r\n return;\r\n }\r\n\r\n return response.json();\r\n })\r\n .then((data) => {\r\n setHeaderInfo(data);\r\n })\r\n .catch(function (error) {\r\n console.error(error);\r\n });\r\n }\r\n }, [sitecoreContext]);\r\n\r\n useEffect(() => {\r\n getHeaderInfo();\r\n }, []);\r\n\r\n const layoutContextFactory = () => {\r\n return {\r\n userLoginStatus: { \r\n headerInfo, \r\n callGetHeaderInfo: getHeaderInfo,\r\n },\r\n };\r\n };\r\n return {children};\r\n};\r\n\r\nexport default LayoutContextProvider;\r\n","import React, { FC, useState, useEffect, useContext, useRef } from 'react';\r\nimport { windowService } from './../../../../utils/window.utils';\r\nimport DesktopLogin from './components/desktopLogin';\r\nimport MobileLogin from './components/mobileLogin';\r\nimport { LayoutContext } from '../../../@shared/layoutContextProvider';\r\n\r\nconst Login: FC<{ view: 'mobile' | 'desktop'; fields: any; sitecoreContext: any }> = ({ view, fields, sitecoreContext }) => {\r\n const layoutContext = useContext(LayoutContext);\r\n const isLoggedIn = layoutContext?.userLoginStatus?.headerInfo?.logged;\r\n const timeoutRef = useRef | null>(null);\r\n const headerInfoData = layoutContext?.userLoginStatus?.headerInfo;\r\n const [loginStarted, setLoginStarted] = useState(false);\r\n\r\n useEffect(() => {\r\n windowService().clearInterval(timeoutRef.current);\r\n if (!isLoggedIn && loginStarted) {\r\n timeoutRef.current = windowService().setInterval(() => {\r\n layoutContext?.userLoginStatus?.callGetHeaderInfo();\r\n }, 3000);\r\n }\r\n return (): void => {\r\n windowService().clearInterval(timeoutRef.current);\r\n };\r\n }, [loginStarted, isLoggedIn]);\r\n\r\n if (view === 'desktop') return ;\r\n if (view === 'mobile') return ;\r\n return <>;\r\n};\r\n\r\nexport default Login;\r\n","import React from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport Icon from '../../@shared/icon';\r\nimport { useMenuDispatcher } from '../menuContext';\r\nimport RoutableSitecoreLink from '../../@shared/routableSitecoreLink';\r\nimport { googleClickCtaEvent } from '../../../utils/analytics';\r\n\r\nconst FindADealer = ({ fields }: { fields: ComponentFieldsGeneral }): JSX.Element => {\r\n const dispatchToProvider = useMenuDispatcher();\r\n const handleClick = (): void => {\r\n dispatchToProvider({ type: 'closeAll' });\r\n };\r\n\r\n return (\r\n
  • \r\n {\r\n handleClick();\r\n googleClickCtaEvent('Global Nav', fields?.findDealer?.link?.value?.text, fields?.findDealer?.link?.value?.text);\r\n }}\r\n className=\"navigation__menu-item__trigger\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n );\r\n};\r\n\r\nexport default FindADealer;\r\n","import React from 'react';\r\nimport { useMenuContext } from '../menuContext';\r\n\r\nconst MenuOverlay = () => {\r\n const [state, dispatch] = useMenuContext();\r\n const isAnyOpen = state.some(({ isOpen }) => isOpen);\r\n const handleClick = () => {\r\n dispatch({ type: 'closeAll' });\r\n };\r\n return \r\n )}\r\n \r\n {model.columns.map((columnModel, index) => {\r\n const isColumnGray = model.isLastColumnGray && index === 3;\r\n return (\r\n
    \r\n {columnModel.elements.map((elementModel) => (\r\n \r\n ))}\r\n
    \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\n// Code flow of Primary links tray in Header(upto 1200px) -> NavigationItem -> NavigaionItemMenu\r\nconst NavigationItemMenu = ({ model }: { model: NavigationItemMenuModel }): JSX.Element => {\r\n return (\r\n }\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default NavigationItemMenu;\r\n","import React from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { useMenuDispatcher } from '../menuContext';\r\nimport { NavigationItemLinkModel } from './navigationItem/models/navigationItem.model';\r\nimport RoutableSitecoreLink from '../../@shared/routableSitecoreLink';\r\nimport { googleClickNavEvent } from '../../../utils/analytics';\r\n\r\nconst NavigationItemLink = ({ model }: { model: NavigationItemLinkModel }) => {\r\n const linkField = model.link;\r\n const textField = model.menuTitle;\r\n\r\n const dispatchToProvider = useMenuDispatcher();\r\n const handleClick = () => {\r\n dispatchToProvider({ type: 'closeAll' });\r\n googleClickNavEvent('Global Nav', model?.displayName, model?.displayName);\r\n };\r\n return (\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n );\r\n};\r\n\r\nexport default NavigationItemLink;\r\n","import React from 'react';\r\nimport { NavigationItemMenuModel, TNavigationItemModel } from './models/navigationItem.model';\r\nimport NavigationItemMenu from '../navigationItemMenu';\r\nimport NavigationItemLink from '../navigationItemLink';\r\n\r\nconst NavigationItem = ({ model }: { model: TNavigationItemModel }) => {\r\n if (model instanceof NavigationItemMenuModel) {\r\n return ;\r\n }\r\n return ;\r\n};\r\n\r\nexport default NavigationItem;\r\n","import { HeaderFields, HeaderProps } from '../components/navigationItem/types/navigationItem.types';\r\nimport { newNavigationItemModel, TNavigationItemModel } from '../components/navigationItem/models/navigationItem.model';\r\nimport { StringField } from '../../../types/types';\r\n\r\nexport class HeaderModel {\r\n public readonly fields: HeaderFields;\r\n public readonly navigationItemModelsArr: TNavigationItemModel[];\r\n public readonly mobileTitle: StringField;\r\n public readonly mobileTitleOpen: StringField;\r\n\r\n constructor(props: HeaderProps) {\r\n this.fields = props?.fields as HeaderFields;\r\n\r\n if (this.fields?.primaryHeaderMenuLinks && Array.isArray(this.fields?.primaryHeaderMenuLinks)) {\r\n this.navigationItemModelsArr = this.fields?.primaryHeaderMenuLinks\r\n .filter((menuLinks) => {\r\n const fields = menuLinks.fields;\r\n const linkType = fields?.linkType;\r\n const keyPhrase = linkType?.fields?.Key?.value || linkType?.fields?.Phrase?.value;\r\n if (keyPhrase === 'headerMenuDropdownLink') {\r\n // check if all 4 sections are not defined or empty\r\n const isEmpty =\r\n (!fields?.section1 || fields?.section1.length === 0) &&\r\n (!fields?.section2 || fields?.section2.length === 0) &&\r\n (!fields?.section3 || fields?.section3.length === 0) &&\r\n (!fields?.section4 || fields?.section4.length === 0);\r\n return !isEmpty;\r\n }\r\n return true;\r\n })\r\n .map((navigationItemData) => {\r\n return newNavigationItemModel(navigationItemData.fields, navigationItemData?.id, navigationItemData.displayName);\r\n });\r\n }\r\n this.mobileTitle = this.fields?.mobileTitle || { value: 'Menu' };\r\n this.mobileTitleOpen = this.fields?.mobileTitleOpen || { value: 'Close' };\r\n }\r\n}\r\n","export default {\r\n productSuperseries: 'f39229d6-b84d-4e41-bb53-e1f705e7585c',\r\n homeTestSiteTemplateId: '0e34416d-6021-4c1a-bd17-a667cd3b0e6e',\r\n homeTemplateId: '78bd8dbe-3df5-4358-b464-6a8671f9dd96',\r\n interactiveImage: {\r\n dskHotspotId: '{092A8ED5-615E-4099-A1E4-36E54C1FA233}',\r\n mblHotspotId: '{987BCC8F-E6D3-464D-8709-52AFBB97F75B}',\r\n },\r\n};\r\n","import React from 'react';\r\nimport templateIds from '../../../constants/templates.constants';\r\nimport useSitecoreContext from '../../../hooks/useSitecoreContext';\r\nimport Picture from '../../@shared/picture';\r\nimport RoutableSitecoreLink from '../../@shared/routableSitecoreLink';\r\nimport { useMenuDispatcher } from '../menuContext';\r\n\r\nconst Logo = ({ fields }): JSX.Element => {\r\n const context = useSitecoreContext();\r\n\r\n const dispatch = useMenuDispatcher();\r\n const handleClick = (): void => {\r\n dispatch({ type: 'closeAll' });\r\n };\r\n\r\n const isHomePage = context?.sitecoreContext?.route?.templateId === templateIds.homeTemplateId;\r\n\r\n const LogoTag = isHomePage ? 'h1' : 'span';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Logo;\r\n","import React from 'react';\r\nimport { NavigationItemMenuModel } from './navigationItem/models/navigationItem.model';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { useMenuItemWithContext } from '../menuContext';\r\nimport { NavigationItemTray } from './navigationItemMenu';\r\nimport Icon from '../../@shared/icon';\r\n\r\nconst NavigationAccordionItem = (props: { model: NavigationItemMenuModel; closeMainNavigation: () => void }) => {\r\n const [isOpen, setOpen] = useMenuItemWithContext();\r\n const handleClick = () => {\r\n setOpen(!isOpen);\r\n };\r\n const { model, closeMainNavigation } = props;\r\n const icon = isOpen ? 'arrow-chevron-up' : 'arrow-chevron-down';\r\n return (\r\n
  • \r\n \r\n
    \r\n {isOpen && }\r\n
    \r\n
  • \r\n );\r\n};\r\n\r\nexport default NavigationAccordionItem;\r\n","import React from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { NavigationItemLinkModel } from './navigationItem/models/navigationItem.model';\r\nimport RoutableSitecoreLink from '../../@shared/routableSitecoreLink';\r\n\r\nconst NavigationAccordionLinkItem = (props: { model: NavigationItemLinkModel; closeMainNavigation: () => void }) => {\r\n const { model, closeMainNavigation } = props;\r\n return (\r\n
  • \r\n {/* @todo check if this causes problems in EE*/}\r\n \r\n \r\n \r\n
  • \r\n );\r\n};\r\n\r\nexport default NavigationAccordionLinkItem;\r\n","import { RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { MenuProvider, useMenuDispatcher, useMenuItemWithContext } from '../menuContext';\r\nimport { NavigationItemMenuModel } from './navigationItem/models/navigationItem.model';\r\nimport NavigationAccordionItem from './navigationAccordionItem';\r\nimport NavigationAccordionLinkItem from './navigationAccordionLinkItem';\r\nimport React, { useCallback } from 'react';\r\nimport { HeaderModel } from '../models/header.model';\r\nimport Icon from '../../@shared/icon';\r\nimport RoutableSitecoreLink from '../../@shared/routableSitecoreLink';\r\nimport Login from './login';\r\nimport { TSitecoreContext } from '../../../types/types';\r\nimport { documentService } from '../../../utils/window.utils';\r\nimport { googleClickCtaEvent } from '../../../utils/analytics';\r\n\r\nconst MobileMenu = ({\r\n model,\r\n fields,\r\n sitecoreContext,\r\n breakpointLg,\r\n}: {\r\n model: HeaderModel;\r\n fields: ComponentFieldsGeneral;\r\n sitecoreContext: TSitecoreContext;\r\n breakpointLg: boolean;\r\n}): JSX.Element => {\r\n // this is a custom NavigationItemMenuStructure\r\n const [isOpen, setOpen] = useMenuItemWithContext();\r\n const docElement = documentService();\r\n const handleClick = () => {\r\n setOpen(!isOpen);\r\n return !isOpen ? docElement?.body.classList.add('body--with-header-open') : docElement?.body.classList.remove('body--with-header-open');\r\n };\r\n const menuDispatcher = useMenuDispatcher();\r\n const closeMainNavigation = useCallback(() => {\r\n menuDispatcher({ type: 'closeAll' });\r\n docElement?.body?.classList.remove('body--with-header-open');\r\n }, [menuDispatcher, docElement]);\r\n const baseElementClassName = 'navigation__menu-item';\r\n const elementClassList = [baseElementClassName, baseElementClassName + '--mobile-menu'];\r\n if (isOpen) {\r\n elementClassList.push(baseElementClassName + '--open');\r\n }\r\n const elementClassName = elementClassList.join(' ');\r\n const icon = isOpen ? 'action-close' : 'set-nav-services-nav-menu';\r\n return (\r\n
  • \r\n \r\n
    \r\n {isOpen && (\r\n
    \r\n \r\n {/* menu provider for accordion, using related custom hooks in components inside here will relate to this */}\r\n
      \r\n {model.navigationItemModelsArr.map((navigationItemModel) =>\r\n navigationItemModel instanceof NavigationItemMenuModel ? (\r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n
    \r\n
    \r\n\r\n {!breakpointLg && (\r\n
      \r\n {/* findADealer mobile*/}\r\n {fields?.findDealer && (\r\n
    • \r\n \r\n googleClickCtaEvent('Global Nav', fields?.findDealer?.title?.value, fields?.findDealer?.title?.value)\r\n }\r\n >\r\n \r\n \r\n \r\n
    • \r\n )}\r\n {/* search mobile*/}\r\n {fields?.search && (\r\n
    • \r\n \r\n googleClickCtaEvent('Global Nav', fields?.search?.search?.value?.text, fields?.search?.search?.value?.text)\r\n }\r\n >\r\n \r\n {fields?.search?.search?.value?.text}\r\n \r\n
    • \r\n )}\r\n\r\n {/* Login */}\r\n {fields?.login && }\r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
  • \r\n );\r\n};\r\n\r\nexport default MobileMenu;\r\n","import { useEffect, useState } from 'react';\r\nimport { documentService } from '../utils/window.utils';\r\n\r\nconst useStickyWrapper = (): HTMLElement | null => {\r\n const [stickyWrapperEle, setStickyWrapperEle] = useState(null);\r\n\r\n useEffect(() => {\r\n setStickyWrapperEle(documentService().getElementById('sticky-top-wrapper'));\r\n }, []);\r\n\r\n return stickyWrapperEle;\r\n};\r\n\r\nexport default useStickyWrapper;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\nimport { documentService } from '../../../../utils/window.utils';\r\n\r\nconst HighLevelAlertMessage = () => {\r\n const ALERT_MESSAGE_COOKIE_MAX_AGE = 60 * 60 * 24 * 1; //1 day\r\n const ALERT_MESSAGE_COOKIE_NAME = 'caseih';\r\n const ALERT_MESSAGE_COOKIE_VALUE = 'alert_message';\r\n\r\n const context = useSitecoreContext();\r\n const hostAppRoot = context?.sitecoreContext?.hostAppRoot || '';\r\n const cookiePath = hostAppRoot.endsWith('/') ? hostAppRoot.slice(0, -1) : hostAppRoot;\r\n const [canShowAlert, setCanShowAlert] = useState(() => {\r\n if (!documentService().body) return null;\r\n const isCookiePresent = documentService().cookie?.split(`${ALERT_MESSAGE_COOKIE_NAME}=${ALERT_MESSAGE_COOKIE_VALUE}`).length > 1;\r\n return !isCookiePresent;\r\n });\r\n const refWrapper = useRef(null);\r\n const msgheight = refWrapper.current?.clientHeight || 0;\r\n const messageTitle = context?.sitecoreContext?.severitySettings?.title;\r\n const messageDescription = context?.sitecoreContext?.severitySettings?.description;\r\n\r\n const onCloseIconClick = () => {\r\n setCanShowAlert(false);\r\n documentService().body.style.removeProperty('--navigation-custom-height');\r\n documentService().cookie = `${ALERT_MESSAGE_COOKIE_NAME}=${ALERT_MESSAGE_COOKIE_VALUE}; max-age=${ALERT_MESSAGE_COOKIE_MAX_AGE}; path=${cookiePath};`;\r\n };\r\n\r\n useEffect(() => {\r\n documentService().body.style.setProperty('--navigation-custom-height', `${msgheight}px`);\r\n return (): void => {\r\n documentService().body.style.removeProperty('--navigation-custom-height');\r\n };\r\n }, [msgheight]);\r\n\r\n if (!canShowAlert) return null;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {messageDescription && }\r\n
    \r\n \r\n
    \r\n );\r\n};\r\nexport default HighLevelAlertMessage;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport Search from './components/search';\r\nimport Login from './components/login';\r\nimport FindADealer from './components/findADealer';\r\nimport MenuOverlay from './components/menuOverlay';\r\nimport NavigationItem from './components/navigationItem';\r\nimport { HeaderModel } from './models/header.model';\r\nimport { MenuContext, useMenuReducer } from './menuContext';\r\nimport Logo from './components/logo';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport MobileMenu from './components/mobileMenu';\r\nimport useStickyWrapper from '../../hooks/useStickyWrapper';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { documentService } from '../../utils/window.utils';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport HighLevelAlertMessage from './components/highLevelAlertMessage';\r\nimport useSitecoreContext from '../../hooks/useSitecoreContext';\r\n\r\nconst Header = (props): JSX.Element => {\r\n const isEEActive = props?.sitecoreContext?.pageEditing;\r\n const isPreview = props.sitecoreContext.pageState === 'preview';\r\n const isSticky = !(isEEActive || isPreview);\r\n const context = useSitecoreContext();\r\n const isHighAlertMessage = context?.sitecoreContext?.severitySettings?.showSeverityMessage;\r\n\r\n const [navigationVisibility, setNavigationVisibility] = useState(false);\r\n\r\n useEffect(() => {\r\n // set height as css property so that content can be shifted below\r\n if (isSticky) {\r\n documentService().body.style.setProperty('--pfe-navigation--Height--actual', '85px');\r\n }\r\n setNavigationVisibility(true);\r\n const loadingDiv = documentService().getElementById('loading');\r\n if (loadingDiv) {\r\n loadingDiv.remove();\r\n const rootElement = documentService().getElementById('loading');\r\n if (rootElement) rootElement.style.display = 'none';\r\n }\r\n return (): void => {\r\n documentService().body.style.removeProperty('--pfe-navigation--Height--actual');\r\n };\r\n }, [isSticky]);\r\n\r\n const breakpointXL = useMediaQuery('(min-width: 1200px)', false);\r\n const breakpointLg = useMediaQuery('(min-width: 992px)');\r\n const model = new HeaderModel(props);\r\n\r\n const fields = model.fields;\r\n\r\n const [menuState, menuDispatcher] = useMenuReducer();\r\n\r\n const baseClassName = 'navigation';\r\n const wrapperClassName =\r\n baseClassName + (isEEActive ? ' ' + baseClassName + '--EE-active' : '') + (isPreview ? ' ' + baseClassName + '--preview' : '');\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {/* menu provider for main menu elements, not for mobile accordion*/}\r\n \r\n {isHighAlertMessage && }\r\n \r\n );\r\n};\r\n\r\nconst HeaderWrapper = (props): JSX.Element | null => {\r\n const isEEActive = props?.sitecoreContext?.pageEditing;\r\n const isPreview = props?.sitecoreContext?.pageState === 'preview';\r\n const isEE = isEEActive || isPreview;\r\n\r\n const stickyWrapperEle = useStickyWrapper();\r\n\r\n if (isEE) return
    ;\r\n\r\n if (!stickyWrapperEle) return null;\r\n\r\n return createPortal(
    , stickyWrapperEle);\r\n};\r\n\r\nexport default withSitecoreContext()(HeaderWrapper);\r\n","import useSitecoreContext from './useSitecoreContext';\r\n\r\nconst isComponentsValid = (component: any) => !!component.uid;\r\n\r\nconst isComponentInTheList = (component: any, exceptComponentNames: Array) =>\r\n exceptComponentNames.indexOf(component.componentName) >= 0;\r\n\r\nconst useBreadcrumbBarAsFirstComponent = (exceptComponentNames: Array) => {\r\n const {sitecoreContext} = useSitecoreContext();\r\n const componentList = (sitecoreContext?.route?.placeholders['jss-main'] || []) as any;\r\n\r\n return (\r\n componentList\r\n .filter((component) => isComponentsValid(component))\r\n .filter((component) => !isComponentInTheList(component, exceptComponentNames))\r\n .findIndex((rendering) => rendering.componentName === 'BreadcrumbBar') === 0\r\n );\r\n};\r\n\r\nexport default useBreadcrumbBarAsFirstComponent;\r\n","import React, { FunctionComponent, useEffect, useMemo, useState } from 'react';\r\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { StringField, ImageField, LinkField, CheckboxField, VideoSitecoreField, TSitecoreContext, THeadingTag } from '../../../types/types';\r\nimport { TextColorField } from '../types/herobanner.types';\r\nimport { CustomText } from '../../@shared/customText';\r\nimport CTAButton, { ctaEnums } from '../../@shared/ctaButton';\r\nimport CustomExternalAnchor from '../../@shared/customExternalAnchor';\r\nimport Picture from '../../@shared/picture';\r\nimport FadeDownEffect from '../../@shared/fadeDownEffect';\r\nimport { googleClickCtaEvent } from '../../../utils/analytics';\r\nimport { shouldPioritizeComponentResources } from '../../../utils/component.utils';\r\nimport VideoPlayer from '../../@shared/videoPlayer';\r\n\r\n// eslint-disable-next-line @typescript-eslint/interface-name-prefix\r\nexport interface HeroCarouselItemFields {\r\n id: string;\r\n image: ImageField;\r\n mobileImage: ImageField;\r\n title: StringField;\r\n content: StringField;\r\n link: LinkField;\r\n textColor: TextColorField;\r\n video: VideoSitecoreField;\r\n useVideo: CheckboxField;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/interface-name-prefix\r\ninterface HeroCarouselItemProps {\r\n slideInfo?: {\r\n currentSlide: number;\r\n index: number;\r\n networkSpeed: number;\r\n };\r\n fields?: HeroCarouselItemFields;\r\n id?: string;\r\n headingTag?: THeadingTag;\r\n sitecoreContext: TSitecoreContext;\r\n}\r\n\r\nconst HeroCarouselSlide: FunctionComponent = ({ id, slideInfo, fields, sitecoreContext, headingTag }) => {\r\n const [mediaVisible, setMediaVisible] = useState({ video: false, image: !fields?.useVideo?.value });\r\n const textColor = fields?.textColor?.value || 'Black';\r\n const isEE = sitecoreContext?.pageEditing;\r\n useEffect(() => {\r\n // eslint-disable-line\r\n if (fields?.useVideo?.value && slideInfo?.currentSlide === slideInfo?.index && !mediaVisible.video) {\r\n setMediaVisible((prevState) => ({ ...prevState, video: true }));\r\n }\r\n\r\n if (slideInfo?.currentSlide === slideInfo?.index && !mediaVisible.image) {\r\n setMediaVisible((prevState) => ({ ...prevState, image: true }));\r\n }\r\n }, [fields, slideInfo, mediaVisible.video, mediaVisible.image]);\r\n\r\n const placeholderData = sitecoreContext?.route?.placeholders['jss-main'] || [];\r\n const shouldPioritize = useMemo(() => shouldPioritizeComponentResources(placeholderData, 'HeroBanner'), [placeholderData]);\r\n\r\n return (\r\n
    \r\n {fields?.useVideo?.value && (sitecoreContext.pageEditing || (slideInfo && slideInfo.networkSpeed >= 15))\r\n ? mediaVisible.video && (\r\n \r\n )\r\n : mediaVisible.image && (\r\n \r\n )}\r\n
    \r\n {sitecoreContext.pageEditing ? (\r\n <>\r\n \r\n {fields?.content && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n {fields?.content && (\r\n \r\n \r\n \r\n )}\r\n \r\n {fields?.link?.value?.href && (\r\n \r\n \r\n googleClickCtaEvent('Button', fields?.link?.value?.text ?? fields?.link?.value?.title, fields?.title?.value)\r\n }\r\n />\r\n \r\n )}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(HeroCarouselSlide);\r\n","import React, { FC } from 'react';\r\nimport Slider from 'react-slick';\r\nimport { TCarouselForEE } from '../../types/herobanner.types';\r\nimport HeroCarouselSlide from '../heroCarouselSlide';\r\n\r\nconst CarouselForEE: FC = ({ items }) => {\r\n const settings = {\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n };\r\n\r\n return (\r\n \r\n {items.map((itemFields) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default CarouselForEE;\r\n","import React, { FC } from 'react';\r\n\r\nconst CarouselCut: FC = () => {\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nconst CutSvg = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default CarouselCut;\r\n","import React, { FunctionComponent } from 'react';\r\n\r\ninterface IHeroCarouselIndicatorProps {\r\n clickHandler?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n isSelected?: boolean;\r\n index: number;\r\n baseClassName?: string;\r\n}\r\n\r\nconst HeroCarouselIndicator: FunctionComponent = ({\r\n isSelected = false,\r\n index,\r\n baseClassName = 'controls__dots__item',\r\n}) => {\r\n const className = isSelected ? baseClassName + ' ' + baseClassName + '--selected' : baseClassName;\r\n\r\n return
  • ;\r\n};\r\n\r\nexport default HeroCarouselIndicator;\r\n","import React, { FunctionComponent } from 'react';\r\nimport Icon from '../../@shared/icon';\r\n\r\ninterface IHeroCarouselArrowProps {\r\n direction: 'previous' | 'next';\r\n onClick: () => void;\r\n}\r\n\r\nconst HeroCarouselArrow: FunctionComponent = ({ direction, onClick }) => {\r\n const icon = 'arrow-chevron-' + (direction === 'previous' ? 'left' : 'right');\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default HeroCarouselArrow;\r\n","import React, { FunctionComponent } from 'react';\r\n\r\nconst HeroCarouselScrollSymbol: FunctionComponent<{}> = () => {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default HeroCarouselScrollSymbol;\r\n","import React, { Fragment, useEffect, useState, FC } from 'react';\r\nimport { Carousel as ReactResponsiveCarousel } from 'react-responsive-carousel';\r\nimport 'react-responsive-carousel/lib/styles/carousel.min.css';\r\nimport { getNetworkDownloadSpeed } from '../../../../utils/network.utils';\r\nimport { googleClickSlideEvent, formatComponentNumber } from '../../../../utils/analytics';\r\nimport CustomCarouselDots from '../../../@shared/customCarouselDots';\r\nimport { TCarousel } from '../../types/herobanner.types';\r\nimport CarouselCut from '../carouselCut';\r\nimport HeroCarouselIndicator from '../heroCarouselIndicator';\r\nimport HeroCarouselArrow from '../heroCarouselArrow';\r\nimport HeroCarouselSlide from '../heroCarouselSlide';\r\nimport HeroCarouselScrollSymbol from '../heroCarouselScrollSymbol';\r\n\r\nconst Carousel: FC = ({ items, headingTag, showCarouselOverlay, isPreview }) => {\r\n // when you change this change also the $interval variable in HeroCarousel > style.scss\r\n const interval = 10000;\r\n const hasMultipleSlides = items.length > 1;\r\n const [currentSlide, _setCurrentSlide] = useState(0);\r\n\r\n const setCurrentSlide = hasMultipleSlides\r\n ? (index: number): void => {\r\n if (currentSlide !== index) {\r\n _setCurrentSlide(index);\r\n }\r\n }\r\n : // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n (): void => {\r\n // This is intentional\r\n };\r\n\r\n const normalizeSlideNumber = (slide) => {\r\n if (!items?.length) {\r\n return slide;\r\n }\r\n\r\n return (slide + items?.length) % items?.length;\r\n };\r\n\r\n const goNext = (): void => {\r\n const slide = normalizeSlideNumber(currentSlide + 1);\r\n setCurrentSlide(slide);\r\n googleClickSlideEvent(`Slide ${formatComponentNumber(slide + 1)}`, items[slide]?.title?.value);\r\n };\r\n\r\n const goPrevious = (): void => {\r\n const slide = normalizeSlideNumber(currentSlide - 1);\r\n setCurrentSlide(slide);\r\n googleClickSlideEvent(`Slide ${formatComponentNumber(slide + 1)}`, items[slide]?.title?.value);\r\n };\r\n\r\n const [networkSpeed, setNetworkSpeed] = useState(0);\r\n\r\n const videoIsPresent = items.some((item) => item.useVideo.value);\r\n\r\n useEffect(() => {\r\n if (videoIsPresent) {\r\n getNetworkDownloadSpeed().then((response) => {\r\n setNetworkSpeed(parseInt(response));\r\n });\r\n }\r\n }, []); // eslint-disable-line\r\n\r\n const carouselIndicators = (\r\n
    \r\n \r\n {(items || []).length > 5 ? (\r\n \r\n ) : (\r\n
      \r\n {items.map((itemFields, index) => (\r\n \r\n ))}\r\n
    \r\n )}\r\n \r\n
    \r\n );\r\n return (\r\n \r\n
    \r\n \r\n {items.map((itemFields, index) => {\r\n const slideInfo = { currentSlide, index, networkSpeed };\r\n return (\r\n \r\n );\r\n })}\r\n \r\n {hasMultipleSlides ? carouselIndicators : null}\r\n {showCarouselOverlay?.value && }\r\n
    \r\n {!isPreview && }\r\n
    \r\n );\r\n};\r\n\r\nexport default Carousel;\r\n","import NetworkSpeed from 'network-speed'; // ES5\r\n\r\nexport async function getNetworkDownloadSpeed(): Promise {\r\n const testNetworkSpeed = new NetworkSpeed();\r\n const baseUrl = '/-/media/Default Website/cover.ashx';\r\n const fileSizeInBytes = 119719;\r\n const speed = await testNetworkSpeed.checkDownloadSpeed(baseUrl, fileSizeInBytes);\r\n return speed.mbps;\r\n}\r\n","import React, { FC } from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport useBreadcrumbBarAsFirstComponent from '../../../hooks/useBreadcrumbBarAsFirstComponent';\r\nimport { THeroCarouselDesktopProps } from '../types/herobanner.types';\r\nimport CarouselForEE from './carousel/CarouselForEE';\r\nimport Carousel from './carousel/Carousel';\r\n\r\nconst HeroCarouselDesktop: FC = ({ items, showCarouselOverlay, sitecoreContext, headingTag }) => {\r\n const isEEActive = sitecoreContext?.pageEditing;\r\n const isPreview = sitecoreContext?.pageState === 'preview';\r\n const isBreadcrumbShown = useBreadcrumbBarAsFirstComponent([]);\r\n\r\n const carousel = isEEActive ? (\r\n \r\n ) : (\r\n \r\n );\r\n\r\n return (\r\n
    {carousel}
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(HeroCarouselDesktop);\r\n","import React, { FC } from 'react';\r\nimport HeroCarouselDesktop from './components/heroCarouselDesktop';\r\nimport { CheckboxField, PropsFromGenericPopup } from '../../types/types';\r\nimport { HeroCarouselFields, HeroCarouselProps, TextColorField, TextColorSitecoreField } from './types/herobanner.types';\r\nimport { ComponentRendering, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst colorMapper: (sitecoreColor: TextColorSitecoreField) => TextColorField = (sitecoreColor) => sitecoreColor?.fields?.Key;\r\n\r\nconst fieldMapper: (sitecoreFields: HeroCarouselFields) => { items: any[]; showCarouselOverlay: CheckboxField } = (sitecoreFields) => {\r\n const sitecoreItems = sitecoreFields?.items;\r\n const showCarouselOverlay = sitecoreFields?.showCarouselOverlay;\r\n const items = sitecoreItems?.map(({ fields, id }) => {\r\n return {\r\n id: id,\r\n image: fields?.image,\r\n mobileImage: fields?.mobileImage,\r\n title: fields?.title,\r\n content: fields?.content,\r\n link: fields?.link,\r\n textColor: fields?.textColor ? colorMapper(fields.textColor) : '',\r\n video: fields?.video,\r\n useVideo: fields?.useVideo,\r\n };\r\n });\r\n\r\n return {\r\n items: items ?? [],\r\n showCarouselOverlay,\r\n };\r\n};\r\n\r\n// HeroBanner will recieve PropsFromGenericPopup if this component is inside GenericPopUp\r\nconst HeroBanner: FC = (props) => {\r\n let fields: HeroCarouselFields;\r\n\r\n if (!props?.fields || !Object.keys(props?.fields).length) {\r\n return null;\r\n } else {\r\n fields = props?.fields;\r\n }\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n const mappedFields = fieldMapper(fields);\r\n const { items, showCarouselOverlay } = mappedFields;\r\n const params: any = props?.params;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(HeroBanner);\r\n","import templateIds from '../../../constants/templates.constants';\r\nimport { TLinkField, TStringField } from '../../../types/types';\r\nimport { TInteractiveImageFields, TInteractiveImageMblDeskItemField, TInteractiveImageProps } from '../types/interactiveImage.types';\r\n\r\nexport class InteractiveImageModel {\r\n private readonly fields: TInteractiveImageFields | undefined;\r\n\r\n constructor(props: TInteractiveImageProps) {\r\n this.fields = props?.fields || {};\r\n }\r\n\r\n get eyebrow(): TStringField | undefined {\r\n return this.fields?.optionalEyebrow;\r\n }\r\n\r\n get title(): TStringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get description(): TStringField | undefined {\r\n return this.fields?.description;\r\n }\r\n\r\n get primaryLink(): TLinkField | undefined {\r\n return this.fields?.hotspotLink;\r\n }\r\n\r\n get isPrimaryLinkExists(): boolean {\r\n return !!(this.primaryLink?.value?.href && this.primaryLink?.value?.text);\r\n }\r\n\r\n mblDeskItem(isWide: boolean): TInteractiveImageMblDeskItemField {\r\n const templateIdOfField = isWide ? templateIds['interactiveImage']['dskHotspotId'] : templateIds['interactiveImage']['mblHotspotId'];\r\n return this.fields?.items?.find((_) => _.fields?.templateId === templateIdOfField)?.fields || {};\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { CustomText } from '../../../@shared/customText';\r\nimport Picture from '../../../@shared/picture';\r\nimport { TInteractiveImageMblDeskItemFieldItemField } from '../../types/interactiveImage.types';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport CTA, { ctaTypes } from '../../../@shared/cta';\r\n\r\nconst InteractiveSplitModule: FC = (props) => {\r\n return (\r\n
    \r\n \r\n
    \r\n {props.title && }\r\n {props.description && (\r\n \r\n )}\r\n
    \r\n {props.link1?.value?.text && props.link1?.value?.href && (\r\n \r\n )}\r\n {props.link2?.value?.text && props.link2?.value?.href && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default InteractiveSplitModule;\r\n","import React, { FC, RefObject, useEffect, useRef, useState } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { windowService } from '../../../../utils/window.utils';\r\nimport Icon from '../../../@shared/icon';\r\nimport ModalDialog from '../../../@shared/modalDialog';\r\nimport Picture from '../../../@shared/picture';\r\nimport { InteractiveImageModel } from '../../models/interactiveImage.model';\r\nimport { TInteractiveImageMblDeskItemFieldItemField, TInteractiveImageProps } from '../../types/interactiveImage.types';\r\nimport InteractiveSplitModule from '../interactiveSplitModule';\r\n\r\nconst InteractiveImageHotspot: FC }> = (\r\n props\r\n) => {\r\n const model = new InteractiveImageModel(props);\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const { hotspotImage, items: hotspotData } = model.mblDeskItem(isWide);\r\n const [isPopUpOpen, setIsPopUpOpen] = useState(false);\r\n const [selectedHotspotIndex, setSelectedHotspotIndex] = useState(undefined);\r\n const selectedPopUpData: TInteractiveImageMblDeskItemFieldItemField =\r\n selectedHotspotIndex !== undefined ? hotspotData?.[selectedHotspotIndex]?.fields || {} : {};\r\n const [popUpStyles, setPopUpStyles] = useState({});\r\n\r\n const hotspotContainerRef = useRef(null);\r\n const popUpRef = useRef(null);\r\n\r\n const closePopup = (): void => {\r\n setIsPopUpOpen(false);\r\n setSelectedHotspotIndex(undefined);\r\n };\r\n\r\n const handleHotspotClick = (hotspotIndex: typeof selectedHotspotIndex): void => {\r\n setSelectedHotspotIndex(hotspotIndex);\r\n setIsPopUpOpen(true);\r\n };\r\n\r\n useEffect(() => {\r\n const updatePopUpPosition = () => {\r\n if (selectedHotspotIndex === undefined || !isWide) return;\r\n\r\n const hotspotContainerDim = hotspotContainerRef.current?.getBoundingClientRect();\r\n const selectedHotspotDim = hotspotContainerRef.current?.children.item(selectedHotspotIndex + 1)?.getBoundingClientRect();\r\n const popUpDim = popUpRef.current?.getBoundingClientRect();\r\n\r\n if (!hotspotContainerDim || !selectedHotspotDim || !popUpDim) return;\r\n\r\n const SPACE_BETWEEN_POPUP_ELEMENT = 32;\r\n const spaceLeft = selectedHotspotDim.left - hotspotContainerDim.left;\r\n const spaceRight = hotspotContainerDim.right - selectedHotspotDim.right;\r\n const spaceTop = selectedHotspotDim.top - hotspotContainerDim.top;\r\n const spaceBottom = hotspotContainerDim.bottom - selectedHotspotDim.bottom;\r\n\r\n const spaceX = Math.max(spaceLeft, spaceRight) - popUpDim.width;\r\n const spaceY = Math.max(spaceTop, spaceBottom) - popUpDim.height;\r\n\r\n let popUpTop, popUpLeft;\r\n\r\n if (spaceX > spaceY) {\r\n popUpLeft =\r\n spaceLeft > spaceRight\r\n ? selectedHotspotDim.left - hotspotContainerDim.left - popUpDim.width - SPACE_BETWEEN_POPUP_ELEMENT\r\n : selectedHotspotDim.right - hotspotContainerDim.left + SPACE_BETWEEN_POPUP_ELEMENT;\r\n\r\n popUpTop = Math.min(\r\n Math.max(16, selectedHotspotDim.top - hotspotContainerDim.top + (selectedHotspotDim.height - popUpDim.height) / 2),\r\n hotspotContainerDim.height - popUpDim.height\r\n );\r\n } else {\r\n popUpTop =\r\n spaceTop > spaceBottom\r\n ? selectedHotspotDim.top - hotspotContainerDim.top - popUpDim.height - SPACE_BETWEEN_POPUP_ELEMENT\r\n : selectedHotspotDim.bottom - hotspotContainerDim.top + SPACE_BETWEEN_POPUP_ELEMENT;\r\n\r\n popUpLeft = Math.min(\r\n Math.max(16, selectedHotspotDim.left - hotspotContainerDim.left + (selectedHotspotDim.width - popUpDim.width) / 2),\r\n hotspotContainerDim.width - popUpDim.width\r\n );\r\n }\r\n\r\n setPopUpStyles({\r\n left: `${hotspotContainerRef.current?.offsetLeft + popUpLeft}px`,\r\n top: `${hotspotContainerRef.current?.offsetTop + popUpTop}px`,\r\n width: `${popUpDim.width}px`,\r\n });\r\n };\r\n updatePopUpPosition();\r\n windowService()?.addEventListener?.('resize', updatePopUpPosition);\r\n return () => windowService()?.removeEventListener?.('resize', updatePopUpPosition);\r\n }, [selectedHotspotIndex, hotspotContainerRef]);\r\n\r\n return (\r\n
    \r\n \r\n {hotspotData?.map(({ fields }, index) => {\r\n const { coordinates } = fields || {};\r\n const [top, left] = coordinates?.value?.split(',').map((_) => _ + '%') || [];\r\n return (\r\n handleHotspotClick(index)}\r\n className=\"interactive-image__hotspot-item\"\r\n >
    \r\n );\r\n })}\r\n\r\n {isWide &&\r\n isPopUpOpen &&\r\n props.splitModuleContainerRef?.current &&\r\n createPortal(\r\n
    \r\n \r\n \r\n
    ,\r\n props.splitModuleContainerRef.current\r\n )}\r\n\r\n {!isWide && selectedPopUpData !== undefined && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default InteractiveImageHotspot;\r\n","import React, { FC } from 'react';\r\nimport { ComponentRendering, Placeholder, RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport CTA from '../../../@shared/cta';\r\nimport { InteractiveImageModel } from '../../models/interactiveImage.model';\r\nimport { TInteractiveImageProps } from '../../types/interactiveImage.types';\r\n\r\nconst InteractiveImageText: FC = (props) => {\r\n const model = new InteractiveImageModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-p']})`);\r\n\r\n return (\r\n
    \r\n
    \r\n {model.eyebrow && }\r\n {model.title && }\r\n {model.description && }\r\n
    \r\n {(props.isEE || model.isPrimaryLinkExists) && (\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default InteractiveImageText;\r\n","import React, { FC, useRef } from 'react';\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport InteractiveImageHotspot from './components/interactiveImageHotspot';\r\nimport InteractiveImageText from './components/interactiveImageText';\r\nimport { TInteractiveImageProps } from './types/interactiveImage.types';\r\n\r\nconst InteractiveImage: FC = (props) => {\r\n const isEE = isEditorActive();\r\n const splitModuleContainerRef = useRef(null);\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default InteractiveImage;\r\n","import { THeadingTag, TImageField, TLinkField, TStringField } from '../../../types/types';\r\nimport { isEmptyObject } from '../../../utils/checkEmptyObject';\r\nimport { getFollowingHTag } from '../../../utils/seo.utils';\r\nimport { TSocialMediaBarProps } from '../../@shared/socialMediaBar/types/socialMediaBar.types';\r\nimport {\r\n TLatestNewsCardItemProps,\r\n TLatestNewsParams,\r\n TLatestNewsProps,\r\n TLatestNewsPropsFields,\r\n TLatestNewsPropsItemData,\r\n} from '../types/latestNews.types';\r\n\r\nexport class LatestNewsModel {\r\n private readonly fields?: TLatestNewsPropsFields;\r\n private readonly itemData?: TLatestNewsPropsItemData;\r\n private readonly params?: TLatestNewsParams | null;\r\n\r\n constructor(props: TLatestNewsProps) {\r\n this.fields = props?.fields || null;\r\n this.itemData = props?.fields?.itemData;\r\n this.params = props?.params || null;\r\n }\r\n\r\n get title(): TStringField | undefined {\r\n return this.itemData?.fields?.title;\r\n }\r\n\r\n get eyebrow(): TStringField | undefined {\r\n return this.itemData?.fields?.eyebrow;\r\n }\r\n\r\n get baseUrl(): string {\r\n return this.itemData?.contextItemUrl || '';\r\n }\r\n\r\n get defaultCardImageNarrow(): TImageField | undefined {\r\n return this.fields?.itemData?.fields?.defaultCardImageNarrow;\r\n }\r\n\r\n get link(): TLinkField | undefined {\r\n return {\r\n value: {\r\n href: this.fields?.itemData?.fields?.newsMainPageLink?.value || '',\r\n },\r\n };\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h2';\r\n }\r\n\r\n get cardHeadingTitleTag(): THeadingTag {\r\n return getFollowingHTag(this.headingTag);\r\n }\r\n\r\n get items(): TLatestNewsCardItemProps[] {\r\n return this.fields?.apiData?.items || [];\r\n }\r\n\r\n get socialMediaBarProps(): TSocialMediaBarProps | undefined {\r\n return isEmptyObject(this.fields?.socialMediaBar) ? undefined : this.fields?.socialMediaBar;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import { TDateField, TImageField, TSitecoreContext, TStringField } from '../../../../../types/types';\r\nimport { TLatestNewsCardItemProps } from '../../../types/latestNews.types';\r\n\r\nexport class NewsCardModel {\r\n private readonly item?: TLatestNewsCardItemProps;\r\n private readonly context?: TSitecoreContext;\r\n\r\n constructor(props: TLatestNewsCardItemProps, context: TSitecoreContext) {\r\n this.item = props;\r\n this.context = context;\r\n }\r\n\r\n get title(): TStringField | undefined {\r\n return {\r\n value: this.item?.title,\r\n };\r\n }\r\n\r\n get shortDescription(): TStringField | undefined {\r\n return {\r\n value: this.item?.shortDescription,\r\n };\r\n }\r\n\r\n get newsDate(): TDateField | undefined {\r\n return { value: this.item?.newsDate };\r\n }\r\n\r\n get contextLanguage(): string {\r\n return this.context?.language || 'en-GB';\r\n }\r\n\r\n get tag(): TStringField | undefined {\r\n if (this.item?.tagCategories?.length) {\r\n return {\r\n value: this.item?.tagCategories?.[0]?.name,\r\n };\r\n }\r\n return { value: '' };\r\n }\r\n\r\n get ctaLink(): string | undefined {\r\n return this.item?.link;\r\n }\r\n\r\n get showVideo(): boolean | undefined {\r\n return this.item?.useVideo === '1';\r\n }\r\n\r\n get image(): TImageField | undefined {\r\n return this.item?.Image;\r\n }\r\n\r\n get mobileImage(): TImageField | undefined {\r\n return this.item?.MobileImage;\r\n }\r\n\r\n get video(): string | undefined {\r\n return this.item?.video;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { getImageField } from '../../../../utils/getImageFields';\r\nimport Picture from '../../../@shared/picture';\r\nimport { TEditorialImageProps } from '../../../@shared/picture/types/editorialImage.types';\r\nimport VideoPlayer from '../../../@shared/videoPlayer';\r\nimport { TLatestNewsMedia } from '../../types/latestNews.types';\r\nimport { getThumbnailProps } from '../../../../utils/youtubeUtils';\r\n\r\nconst Media: FC = (props) => {\r\n const { desktopImage, mobileImage, defaultImage, useVideo, videoUrl, isDesktop } = props;\r\n if (useVideo && videoUrl) {\r\n const { thumbnailImgSrc } = getThumbnailProps(videoUrl);\r\n const desktopImageOrThumbnail = getImageField(desktopImage, thumbnailImgSrc || '', useVideo);\r\n const mobileImageOrThumbnail = getImageField(mobileImage, thumbnailImgSrc || '', useVideo);\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n const shouldShowDefaultImage = !desktopImage?.value?.src && !mobileImage?.value?.src;\r\n const editorialProps: TEditorialImageProps = {\r\n mobileImage: mobileImage,\r\n desktopImage: desktopImage,\r\n mobileTransformation: 'Size1000',\r\n desktopTransformation: 'Size1000',\r\n cssClassPictureEl: 'latest-news-card__image',\r\n alt: (isDesktop ? desktopImage?.value?.alt : mobileImage?.value?.alt) as string,\r\n };\r\n if (shouldShowDefaultImage && defaultImage) {\r\n editorialProps['mobileImage'] = undefined;\r\n editorialProps['desktopImage'] = defaultImage;\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Media;\r\n","import React, { FC } from 'react';\r\nimport { DateField, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { THeadingTag, TImageField, TSitecoreContext } from '../../../../types/types';\r\nimport { TLatestNewsCardItemProps } from '../../types/latestNews.types';\r\nimport { NewsCardModel } from './models/newsCard.model';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport Media from '../media';\r\nimport useFormatDate from '../../../../hooks/useFormatDate';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport CTA from '../../../@shared/cta';\r\nimport { getDLMFormatDate, googleClickNewsCtaEvent } from '../../../../utils/analytics';\r\nimport { TSocialMediaBarProps } from '../../../@shared/socialMediaBar/types/socialMediaBar.types';\r\nimport SocialMediaBar from '../../../@shared/socialMediaBar';\r\n\r\nconst NewsCard: FC<{\r\n item: TLatestNewsCardItemProps;\r\n cardHeadingTitleTag: THeadingTag;\r\n sitecoreContext: TSitecoreContext;\r\n defaultCardImage?: TImageField;\r\n readMoreKey: string;\r\n index: number;\r\n socialMediaBarProps?: TSocialMediaBarProps;\r\n}> = ({ item, cardHeadingTitleTag, sitecoreContext, defaultCardImage, readMoreKey, index, socialMediaBarProps }): JSX.Element => {\r\n const model = new NewsCardModel(item, sitecoreContext);\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-l']})`);\r\n const formattedDate = useFormatDate(model.newsDate?.value);\r\n const formattedDLMDate = model.newsDate?.value ? getDLMFormatDate(model.newsDate.value) : '';\r\n const shareURL = new URL(model.ctaLink || '', sitecoreContext?.currentPageUrl as string || '').href;\r\n\r\n return (\r\n
    \r\n {model?.tag?.value && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n {model?.newsDate && (\r\n formattedDate}\r\n editable={false}\r\n />\r\n )}\r\n {socialMediaBarProps && (\r\n \r\n )}\r\n
    \r\n {model?.title && (\r\n \r\n )}\r\n {model?.shortDescription && (\r\n \r\n )}\r\n
    \r\n\r\n
    \r\n {model?.ctaLink && (\r\n googleClickNewsCtaEvent(model.title?.value || '', index + 1, model.tag?.value, formattedDLMDate)}\r\n >\r\n {readMoreKey}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default NewsCard;\r\n","import React, { FC } from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TLatestNewsCardItemProps, TLatestNewsProps } from './types/latestNews.types';\r\nimport { LatestNewsModel } from './models/latestNews.model';\r\nimport NewsCard from './components/newsCard/index';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport RoutableSitecoreLink from '../@shared/routableSitecoreLink';\r\nimport DictionaryTerm from '../@shared/dictionaryTerm';\r\nimport Icon from '../@shared/icon';\r\nimport { iconSize } from '../../constants/icon.constants';\r\nimport { WithTranslation, withTranslation } from 'react-i18next';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst LatestNews: FC = (props) => {\r\n const model = new LatestNewsModel(props);\r\n const { t } = props;\r\n const latestNewsHeadingTitle = t('cnhi-news-latest-title');\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    {latestNewsHeadingTitle}
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n {model?.items?.map((item: TLatestNewsCardItemProps, index) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withTranslation()(withSitecoreContext()(LatestNews));\r\n","import React, { FC } from 'react';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\nimport { TLightFooterLink } from '../../types/lightFooter.types';\r\n\r\nconst Navigation: FC = (props) => {\r\n const items = props?.fields?.map((item: TLightFooterLink) => {\r\n return (\r\n
  • \r\n {item?.fields?.isModalPopup?.value ? (\r\n // external consent cookie notice button\r\n \r\n ) : (\r\n \r\n )}\r\n
  • \r\n );\r\n });\r\n return
      {items}
    ;\r\n}\r\n\r\nexport default Navigation;","import { TImageField, TLinkField, TSocialMediaFields, TStringField } from \"../../../types/types\";\r\nimport { TLightFooterFields, TLightFooterProps } from \"../types/lightFooter.types\";\r\n\r\nexport class LightFooterModel {\r\n private readonly fields?: TLightFooterFields;\r\n\r\n constructor(props: TLightFooterProps) {\r\n this.fields = props?.fields;\r\n }\r\n\r\n get list() {\r\n return Array.isArray(this.fields?.links) ? (this.fields?.links) : [];\r\n }\r\n\r\n get copyrightText(): TStringField | undefined {\r\n return this.fields?.copyrightText;\r\n }\r\n\r\n get link(): TLinkField | undefined {\r\n return this.fields?.logoLink;\r\n }\r\n\r\n get logoImage(): TImageField | undefined {\r\n return this.fields?.logoImage;\r\n }\r\n\r\n get mobileLogoImage(): TImageField | undefined {\r\n return this.fields?.mobileLogoImage;\r\n }\r\n\r\n get slogan(): TStringField | undefined {\r\n return this.fields?.slogan;\r\n }\r\n\r\n get socialLinks(): TSocialMediaFields | undefined {\r\n return this.fields?.socialLinks;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}","import { TSocialLinkProps, TSocialMediaFields } from \"../../../types/types\";\r\nimport { TSocialMediaProps } from \"../types/socialMedia.types\";\r\n\r\n\r\nexport class SocialMediaModel {\r\n private readonly fields?: TSocialMediaFields;\r\n\r\n constructor(props: TSocialMediaProps) {\r\n this.fields = props.fields;\r\n }\r\n\r\n get socialLinks(): TSocialLinkProps[] {\r\n if (this.fields?.items && this.fields?.items?.length > 6) {\r\n return this.fields?.items?.slice(0, 6) || [];\r\n }\r\n return this.fields?.items ?? [];\r\n }\r\n}\r\n","import React from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport fields from '../../../../constants/fields.const';\r\nimport Icon from '../../../@shared/icon';\r\nimport CustomExternalAnchor from '../../../@shared/customExternalAnchor';\r\nimport { EditFrameComponent } from '../../../@shared/editFrame';\r\nimport { TSocialMediaProps } from '../../types/socialMedia.types';\r\nimport { SocialMediaModel } from '../../models/socialMedia.model';\r\nimport { TSitecoreContext } from '../../../../types/types';\r\n\r\nconst SocialMedia = (props: TSocialMediaProps): JSX.Element => {\r\n const model = new SocialMediaModel(props);\r\n const isEEactive = props?.sitecoreContext?.pageEditing;\r\n\r\n return (\r\n
    \r\n {model.socialLinks?.map((item) => {\r\n return (\r\n
    \r\n {isEEactive ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
    \r\n );\r\n })}\r\n
    \r\n );\r\n};\r\n\r\nexport default SocialMedia;\r\n","import React, { FC } from 'react';\r\nimport Navigation from './components/navigation';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport Picture from '../@shared/picture';\r\nimport { TLightFooterProps } from './types/lightFooter.types';\r\nimport { LightFooterModel } from './models/lightFooter.model';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport SocialMedia from './components/socialMedia';\r\nimport useSitecoreContext from '../../hooks/useSitecoreContext';\r\n\r\nconst LightFooter: FC = (props) => {\r\n const model = new LightFooterModel(props);\r\n const {sitecoreContext} = useSitecoreContext();\r\n const isLogoAvailable = model.logoImage?.value?.src || model.mobileLogoImage?.value?.src;\r\n const isSocialMediaAvailable = model.socialLinks?.items;\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n <>\r\n {model.socialLinks && }\r\n
    \r\n
    \r\n
    \r\n \r\n {model.copyrightText && }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default LightFooter;","import { TImageField, TLinkField } from '../../../types/types';\r\nimport { THeaderFields, THeaderProps, TLanguageOption } from '../types/lightHeader.types';\r\n\r\nexport class LightHeaderModel {\r\n public readonly fields: THeaderFields;\r\n\r\n constructor(props: THeaderProps) {\r\n this.fields = props?.fields;\r\n }\r\n\r\n get logoImage(): TImageField | undefined {\r\n return this.fields?.logoImage;\r\n }\r\n\r\n get mobileLogoImage(): TImageField | undefined {\r\n return this.fields?.mobileLogoImage;\r\n }\r\n\r\n get logoLink(): TLinkField | undefined {\r\n return this.fields?.logolink;\r\n }\r\n\r\n get items(): TLanguageOption[] {\r\n return this.fields?.items && Array.isArray(this.fields?.items) ? this.fields.items : [];\r\n }\r\n}\r\n","import React, { ChangeEvent, FC } from 'react';\r\nimport { windowService } from '../../../../utils/window.utils.js';\r\nimport { TLanguagesProps } from '../../types/lightHeader.types';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\n\r\nconst LanguageSelector: FC = ({ items }) => {\r\n const redirectToTargetUrl = (url): void => {\r\n const urlIsValid = !!items?.find((item) => item?.fields?.url?.value?.href === url);\r\n\r\n if (urlIsValid) {\r\n windowService()?.location.assign(url);\r\n }\r\n };\r\n\r\n const onChange = (evt: ChangeEvent): void => redirectToTargetUrl(evt?.target?.value);\r\n const options = items?.map((item) => (\r\n \r\n ));\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default LanguageSelector;\r\n","import React, { FC } from 'react';\r\nimport templateIds from '../../../../constants/templates.constants';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\nimport Picture from '../../../@shared/picture';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\nimport { TLogoProps } from '../../types/lightHeader.types';\r\n\r\nconst Logo: FC = (props): JSX.Element => {\r\n const { logoImage, mobileLogoImage, logoLink } = props;\r\n const context = useSitecoreContext();\r\n const isHomePage = context?.sitecoreContext?.route?.templateId === templateIds.homeTemplateId;\r\n const LogoTag = isHomePage ? 'h1' : 'span';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Logo;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { LightHeaderModel } from './models/lightHeader.model';\r\nimport useStickyWrapper from '../../hooks/useStickyWrapper';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { documentService } from '../../utils/window.utils';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport LanguageSelector from './components/languageSelector';\r\nimport Logo from './components/logo';\r\n\r\nconst LightHeaderWrapper = (props): any => {\r\n const model = new LightHeaderModel(props);\r\n const isEEActive = props?.sitecoreContext?.pageEditing;\r\n const isPreview = props.sitecoreContext.pageState === 'preview';\r\n const isSticky = !(isEEActive || isPreview);\r\n\r\n const [navigationVisibility, setNavigationVisibility] = useState(false);\r\n\r\n useEffect(() => {\r\n // set height as css property so that content can be shifted below\r\n if (isSticky) {\r\n documentService()?.body.style.setProperty('--pfe-navigation--Height--actual', '85px');\r\n }\r\n setNavigationVisibility(true);\r\n const loadingDiv = documentService()?.getElementById('loading');\r\n if (loadingDiv) {\r\n loadingDiv.remove();\r\n const rootElement = documentService()?.getElementById('loading');\r\n if (rootElement) rootElement.style.display = 'none';\r\n }\r\n return (): void => {\r\n documentService()?.body.style.removeProperty('--pfe-navigation--Height--actual');\r\n };\r\n }, [isSticky]);\r\n\r\n const baseClassName = 'lightheader-navigation';\r\n const wrapperClassName =\r\n baseClassName + (isEEActive ? ' ' + baseClassName + '--EE-active' : '') + (isPreview ? ' ' + baseClassName + '--preview' : '');\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst LightHeader = (props): JSX.Element | null => {\r\n const isEEActive = props?.sitecoreContext?.pageEditing;\r\n const isPreview = props?.sitecoreContext?.pageState === 'preview';\r\n const isEE = isEEActive || isPreview;\r\n\r\n const stickyWrapperEle = useStickyWrapper();\r\n\r\n if (isEE) return ;\r\n\r\n if (!stickyWrapperEle) return null;\r\n\r\n return createPortal(, stickyWrapperEle);\r\n};\r\n\r\nexport default withSitecoreContext()(LightHeader);\r\n","import React, { FC } from 'react';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport EventDetailContainer from '../@shared/eventDetailContainer';\r\nimport { TEventDetailProps } from '../@shared/eventDetailContainer/types/eventDetail.types';\r\n\r\nconst LiveEventDetail: FC = (props) => {\r\n // Component is unreleased\r\n if (props.fields.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default LiveEventDetail;\r\n","import { StringField, THeadingTag } from '../../../types/types';\r\nimport { TMediaGalleryProps } from '../types/mediaGallery.types';\r\nimport { getImageField } from '../../../utils/getImageFields';\r\nimport { getThumbnailProps } from '../../../utils/youtubeUtils';\r\nimport { TGalleryItem } from '../../@shared/overlayCarouselPopup/types/overlayCarouselPopup.types';\r\n\r\nexport class MediaGalleryModel {\r\n private readonly fields?;\r\n private readonly params?;\r\n\r\n constructor(props: TMediaGalleryProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params || null;\r\n }\r\n\r\n get slides(): Array {\r\n if (this.fields?.items?.length > 0) {\r\n return this.fields?.items?.map((item) => {\r\n const { thumbnailImgSrc } = getThumbnailProps(item?.fields?.video?.value?.href || '');\r\n const desktopImage = getImageField(item?.fields?.image, thumbnailImgSrc || '', item?.fields?.useVideo?.value);\r\n const mobileImage = getImageField(item?.fields?.mobileImage, thumbnailImgSrc || '', item?.fields?.useVideo?.value);\r\n\r\n return {\r\n id: item.id,\r\n full: desktopImage,\r\n desktopImage: desktopImage,\r\n mobileImage: mobileImage,\r\n alt: desktopImage?.value?.alt,\r\n title: item.fields?.videoHeading,\r\n description: item.fields?.videoSubheading,\r\n isVideo: !!item.fields?.useVideo?.value,\r\n videoUrl: item.fields?.video?.value?.href,\r\n };\r\n });\r\n }\r\n return [];\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get title(): StringField {\r\n return this.fields?.title;\r\n }\r\n\r\n get description(): StringField {\r\n return this.fields?.description;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h2';\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport OverlayCarouselPopup from '../@shared/overlayCarouselPopup';\r\nimport { MediaGalleryModel } from './models/mediaGallery.model';\r\nimport { TMediaGalleryProps } from './types/mediaGallery.types';\r\nimport Heading from '../@shared/heading';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst MediaGallery: FC = (props) => {\r\n const isEE = props?.sitecoreContext?.pageEditing;\r\n const model = new MediaGalleryModel(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {model.slides && (\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(MediaGallery);\r\n","import React from 'react';\r\nimport LazySection from '../@shared/lazySection';\r\n\r\nconst MockedComponentMessage = () => {\r\n return (\r\n \r\n
    \r\n

    The component does not have the datasource selected

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MockedComponentMessage;\r\n","import { TModelsData, TModelsListingFields, TModelsListingProps } from '../types/modelsListing.types';\r\n\r\nexport class ModelsListingModel {\r\n private readonly fields: null | TModelsListingFields;\r\n\r\n constructor(props: TModelsListingProps) {\r\n this.fields = props?.fields || null;\r\n }\r\n\r\n get modelsListData(): TModelsData | undefined {\r\n return this.fields?.apiData;\r\n }\r\n\r\n get url(): string | undefined {\r\n return this.fields?.itemData?.contextItemUrl;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { getExternalLinkRelAttribute } from '../../../utils/linkUtils';\r\nimport RoutableNotEditableLink from '../../@shared/routableNotEditableLink';\r\nimport { TModelsListingItemProps } from '../types/modelsListing.types';\r\n\r\nconst ModelsListItem: FC = ({ url, item }) => {\r\n return (\r\n // RoutableNotEditableLink is used, because the link is not editable\r\n \r\n {item.bigthumbnailAlt\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n // = (props) => {\r\n const model = new ModelsListingModel(props);\r\n const modelsItems = model?.modelsListData?.items || [];\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n if (!modelsItems && isEditorActive()) {\r\n return ;\r\n }\r\n if (!modelsItems && !isEditorActive()) {\r\n return <>;\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {modelsItems.map((modelsItem) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ModelsListing);\r\n","import { documentService, windowService } from './window.utils';\r\n\r\nconst handleScrollUp = (elementDim: DOMRect, elementSticky: HTMLElement, stickyWrapperHeight: number, header: HTMLElement) => {\r\n if (elementDim.top > stickyWrapperHeight - elementDim.height) {\r\n if (elementDim.top < 1) return;\r\n elementSticky?.classList.add('sticky-element--hide');\r\n header?.classList.remove('sticky-element--hide');\r\n } else {\r\n if (documentService().querySelector('body').classList.contains('scrolling')) {\r\n header?.classList.add('sticky-element--hide');\r\n }\r\n }\r\n};\r\n\r\nconst handleScrollDown = (elementDim: DOMRect, elementSticky: HTMLElement, stickyWrapperHeight: number, header: HTMLElement) => {\r\n let elementStickyVisible = false;\r\n if (elementSticky) {\r\n elementStickyVisible = !elementSticky.classList.contains('sticky-element--hide');\r\n }\r\n let thresholdTop = stickyWrapperHeight;\r\n if (elementStickyVisible) {\r\n thresholdTop -= elementDim.height;\r\n }\r\n if (elementDim.top > thresholdTop) {\r\n elementSticky?.classList.add('sticky-element--hide');\r\n header?.classList.remove('sticky-element--hide');\r\n if (windowService().scrollY < 1) return;\r\n header?.classList.add('navigation--hide');\r\n } else {\r\n if (elementDim.bottom < thresholdTop) {\r\n header?.classList.add('sticky-element--hide');\r\n }\r\n if (elementDim.top <= thresholdTop) {\r\n elementSticky?.classList.remove('sticky-element--hide');\r\n } else {\r\n elementSticky?.classList.add('sticky-element--hide');\r\n }\r\n }\r\n};\r\n\r\nconst detectScrollDirectionForNavigationBar = (stickyWrapperEle: HTMLElement | null, scrollPosition: number) => {\r\n const header = documentService().querySelector('#root > header > .header > #sticky-top-wrapper > .navigation') as HTMLElement;\r\n const bodyScrollPosition = documentService().body.getBoundingClientRect().top;\r\n const element =\r\n (documentService().querySelector('#root > main > .navigation-bar-mobile') as HTMLElement) ||\r\n (documentService().querySelector('#root > main > .navigation-bar') as HTMLElement);\r\n if (element) {\r\n const elementDim = element.getBoundingClientRect();\r\n const elementSticky =\r\n (documentService().querySelector('#root > header > .header > #sticky-top-wrapper > .navigation-bar-mobile') as HTMLElement) ||\r\n (documentService().querySelector('#root > header > .header > #sticky-top-wrapper > .navigation-bar') as HTMLElement);\r\n const stickyWrapperHeight = stickyWrapperEle?.getBoundingClientRect().height || 0;\r\n\r\n // scrolling up\r\n if (bodyScrollPosition > scrollPosition) {\r\n handleScrollUp(elementDim, elementSticky, stickyWrapperHeight, header);\r\n } else {\r\n handleScrollDown(elementDim, elementSticky, stickyWrapperHeight, header);\r\n }\r\n }\r\n\r\n scrollPosition = bodyScrollPosition;\r\n return scrollPosition;\r\n};\r\n\r\nexport { detectScrollDirectionForNavigationBar };\r\n","import {\r\n ContentHubSeriesNavigationBarFields,\r\n TNavigationBarFields,\r\n TNavigationBarProps,\r\n TSeriesTitle,\r\n TNavigationBarParams,\r\n} from '../types/navigationBar.types';\r\nimport { TContentHubButton, TLinkField, TStringField } from '../../../../types/types';\r\n\r\nexport class NavigationBarModel {\r\n private readonly fields: TNavigationBarFields | ContentHubSeriesNavigationBarFields;\r\n private readonly params: TNavigationBarParams;\r\n private readonly isEditorial: boolean;\r\n\r\n constructor(props: TNavigationBarProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params || null;\r\n this.isEditorial = !!props.isEditorial;\r\n }\r\n\r\n get editorialTitle(): TStringField | undefined {\r\n return (this.fields as TNavigationBarFields)?.title;\r\n }\r\n\r\n get editorialCTA(): TLinkField | undefined {\r\n return (this.fields as TNavigationBarFields)?.primarycta;\r\n }\r\n\r\n get tabs(): string[] {\r\n if (this.isEditorial && !this.fields) return [];\r\n\r\n if (this.isEditorial && 'items' in this.fields) {\r\n return this.fields?.items\r\n ?.map((param) => {\r\n return param?.fields?.ctalabel;\r\n })\r\n .filter((tab) => !!tab) as string[];\r\n }\r\n\r\n if (!this.isEditorial) {\r\n const regex = new RegExp('navigationSection[0-9]');\r\n return Object.keys(this.params)\r\n ?.sort((a, b) => a?.localeCompare?.(b))\r\n .map((param: string) => {\r\n if (regex.test(param)) return this.params[param];\r\n })\r\n .filter((tab) => !!tab) as string[];\r\n }\r\n\r\n return [];\r\n }\r\n\r\n get showDropdown(): boolean {\r\n return true;\r\n }\r\n\r\n get showLabel(): boolean {\r\n return true;\r\n }\r\n\r\n get seriesList(): TSeriesTitle[] | undefined {\r\n // eslint-disable-line\r\n if (this.fields && 'apiData' in this.fields) return this.fields?.apiData?.seriesList;\r\n return undefined;\r\n }\r\n\r\n get isUnderSuperSerie(): boolean | undefined {\r\n if (this.fields && 'apiData' in this.fields) return this.fields?.apiData?.isUnderSuperSerie;\r\n return undefined;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n if (this.fields && 'itemData' in this.fields) return this.fields?.itemData?.contextItemUrl || '';\r\n return '';\r\n }\r\n\r\n get title(): string | undefined {\r\n if (this.fields && 'apiData' in this.fields) return this.fields?.apiData?.seriesDetails?.title;\r\n return undefined;\r\n }\r\n\r\n get optionalLabel2(): string | undefined {\r\n if (this.fields && 'apiData' in this.fields) return this.fields?.apiData?.seriesDetails?.optionalLabel2;\r\n return undefined;\r\n }\r\n\r\n get optionalLabel1(): string | undefined {\r\n if (this.fields && 'apiData' in this.fields) return this.fields?.apiData?.seriesDetails?.optionalLabel1;\r\n return undefined;\r\n }\r\n\r\n get msrp(): string | undefined {\r\n if (this.fields && 'apiData' in this.fields) return this.fields?.apiData?.seriesDetails?.msrp;\r\n return undefined;\r\n }\r\n\r\n get button1(): TContentHubButton | undefined {\r\n if (this.fields && 'apiData' in this.fields) return this.fields?.apiData?.seriesDetails?.button1;\r\n return undefined;\r\n }\r\n\r\n get enableBuildPriceCTA(): boolean | undefined {\r\n return this.params?.enableBuildPriceCTA === '1';\r\n }\r\n}\r\n","export const NAVIGATION_BAR_ANCHOR_CLASS = 'navigation-bar-anchor-component';\r\n\r\nexport const ANCHOR_COMPONENT = 'NavigationBarAnchorComponent';\r\n\r\nexport const NAVIGATION_BAR_LABEL = 'Series Detail Nav Bar';\r\n","enum eventTypes {\r\n navEvent = 'nav',\r\n ctaEvent = 'cta',\r\n}\r\n\r\nexport default eventTypes;\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport eventTypes from '../../../../enums/Event.enums';\r\nimport Icon from '../../../@shared/icon';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport { TNavigationBarDropdownDesktopProps } from '../types/navigationBar.types';\r\n\r\nconst NavigationBarDropdownDesktop: FC = (props) => {\r\n const {\r\n handleClick,\r\n title,\r\n dropDownSeriesData,\r\n dropdownIsOpen,\r\n contextItemUrl,\r\n isUnderSuperSerie,\r\n handleCloseDropdown,\r\n formTitleUrl,\r\n clickPageNavEvent,\r\n } = props;\r\n\r\n const hasDropDownSeriesData = dropDownSeriesData && dropDownSeriesData?.length > 1;\r\n\r\n return (\r\n
    \r\n {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n handleClick();\r\n }\r\n }>\r\n \r\n {title}\r\n \r\n {hasDropDownSeriesData && (\r\n \r\n )}\r\n \r\n {dropdownIsOpen && (\r\n
      \r\n {dropDownSeriesData?.map((dropDownData, index) => {\r\n const redirectUrl = formTitleUrl(contextItemUrl || '', dropDownData?.titleUrl || '', !!isUnderSuperSerie);\r\n return dropDownData.title !== null && dropDownData.title !== '' ? (\r\n
    • \r\n clickPageNavEvent(eventTypes.navEvent, dropDownData?.title, index + 1)}\r\n >\r\n {dropDownData?.title}\r\n \r\n
    • \r\n ) : null;\r\n })}\r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default NavigationBarDropdownDesktop;\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport eventTypes from '../../../../enums/Event.enums';\r\nimport { TStringField } from '../../../../types/types';\r\nimport { TNavigationBarTabsDesktopProps } from '../types/navigationBar.types';\r\n\r\nconst NavigationBarTabsDesktop: FC = (props) => {\r\n const { tabs, scrollToPlaceholder, clickPageNavEvent, activeTab, isEditorial } = props;\r\n\r\n return (\r\n
      \r\n {tabs?.map((tab, index) => (\r\n {\r\n scrollToPlaceholder(index);\r\n clickPageNavEvent(eventTypes.navEvent, isEditorial ? (tab?.label as TStringField)?.value : (tab?.label as string), index + 1);\r\n }}\r\n >\r\n \r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default NavigationBarTabsDesktop;\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { TNavigationBarMSRPDesktopProps } from '../types/navigationBar.types';\r\n\r\nconst NavigationBarMSRPDesktop: FC = (props) => {\r\n const { optionalLabel1, optionalLabel2, msrp } = props;\r\n return (\r\n
    \r\n \r\n \r\n \r\n  \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default NavigationBarMSRPDesktop;\r\n","import { TProductBuildAndPriceLinkProps } from '../components/productBuildAndPriceLink/types/buildAndPriceLink.types';\r\nimport useSitecoreContext from './useSitecoreContext';\r\n\r\ntype TProductPageType = 'line' | 'series' | 'model';\r\n\r\nconst useGetBuildAndPriceLink = (productPageType: TProductPageType): string => {\r\n const {sitecoreContext} = useSitecoreContext();\r\n const componentList = (sitecoreContext?.route?.placeholders['jss-main'] || []) as any[];\r\n const buildAndPriceLinkComponent = componentList.find((component) => component.componentName === 'ProductBuildAndPriceLink');\r\n\r\n if (!buildAndPriceLinkComponent) {\r\n return '';\r\n }\r\n\r\n const apiData = (buildAndPriceLinkComponent as TProductBuildAndPriceLinkProps)?.fields?.apiData;\r\n const lineData = apiData;\r\n const seriesData = lineData?.series;\r\n const modelData = seriesData?.model;\r\n\r\n switch (productPageType) {\r\n case 'line': \r\n return lineData?.buildAndPriceUrlForLine || '';\r\n case 'series':\r\n if (seriesData?.directLinktoBuildAndPrice) {\r\n return seriesData?.buildAndPriceUrlForSerie || '';\r\n }\r\n return lineData?.buildAndPriceUrlForLine || '';\r\n case 'model':\r\n if (modelData?.directLinktoBuildAndPrice) {\r\n return modelData?.buildAndPriceUrlForModel || '';\r\n }\r\n return seriesData?.buildAndPriceUrlForSerie || '';\r\n default: \r\n return '';\r\n }\r\n};\r\n\r\nexport default useGetBuildAndPriceLink;\r\n","import React, { FC } from 'react';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport CTA from '../../../@shared/cta';\r\nimport eventTypes from '../../../../enums/Event.enums';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport { TNavigationBarCtaDesktopProps } from '../types/navigationBar.types';\r\nimport useGetBuildAndPriceLink from '../../../../hooks/useGetBuildAndPriceLink';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\n\r\nconst NavigationBarCtaDesktop: FC = (props) => {\r\n const { isEditorial, editorialCTA, button1, isMobile, clickPageNavEvent, enableBuildPriceCTA } = props;\r\n const buildAndPriceUrl = useGetBuildAndPriceLink('series');\r\n const hasButtons = !!(button1?.url && button1?.label) || (enableBuildPriceCTA && buildAndPriceUrl);\r\n if (isEditorial) {\r\n return (\r\n <>\r\n {!!(editorialCTA?.value?.href && editorialCTA?.value?.text) && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n {hasButtons && (\r\n
    \r\n {\r\n (enableBuildPriceCTA && buildAndPriceUrl) && (\r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n !!(button1?.url && button1?.label) && (\r\n clickPageNavEvent(eventTypes.ctaEvent, button1?.label)}\r\n >\r\n {button1?.label}\r\n \r\n )\r\n }\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n};\r\n\r\nexport default NavigationBarCtaDesktop;\r\n","import React, { FC } from 'react';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport eventTypes from '../../../../enums/Event.enums';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\nimport Icon from '../../../@shared/icon';\r\nimport { TNavigationBoxMobileProps } from '../types/navigationBar.types';\r\nimport useGetBuildAndPriceLink from '../../../../hooks/useGetBuildAndPriceLink';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\n\r\nconst NavigationBoxMobile: FC = (props) => {\r\n const {\r\n title,\r\n sticky,\r\n button1,\r\n clickPageNavEvent,\r\n handleClick,\r\n dropdownIsOpen,\r\n handleCloseDropdown,\r\n dropDownSeriesData,\r\n formTitleUrl,\r\n contextItemUrl,\r\n isUnderSuperSerie,\r\n enableBuildPriceCTA,\r\n } = props;\r\n const icon = dropdownIsOpen ? 'arrow-chevron-up' : 'arrow-chevron-down';\r\n const buildAndPriceUrl = useGetBuildAndPriceLink('series');\r\n const hasButtons = (button1?.label && button1?.url) || (enableBuildPriceCTA && buildAndPriceUrl);\r\n const hasDropDownSeriesData = dropDownSeriesData && dropDownSeriesData?.length > 1;\r\n\r\n return (\r\n \r\n \r\n

    {title}

    \r\n {hasDropDownSeriesData && (\r\n \r\n )}\r\n
    \r\n {hasButtons && (\r\n
    \r\n {enableBuildPriceCTA && buildAndPriceUrl && \r\n clickPageNavEvent(eventTypes.ctaEvent, button1?.label)}\r\n >\r\n \r\n \r\n }\r\n {button1?.label && button1?.url && clickPageNavEvent(eventTypes.ctaEvent, button1?.label)}\r\n >\r\n {button1?.label}\r\n }\r\n
    \r\n )}\r\n {dropdownIsOpen && (\r\n
      \r\n \r\n {dropDownSeriesData?.map((dropDownData, index) => {\r\n const redirectUrl = formTitleUrl(contextItemUrl, dropDownData?.titleUrl, !!isUnderSuperSerie);\r\n return dropDownData.title !== null && dropDownData.title !== '' ? (\r\n
    • \r\n clickPageNavEvent(eventTypes.navEvent, dropDownData?.title, index + 1)}\r\n >\r\n {dropDownData.title}\r\n \r\n
    • \r\n ) : null;\r\n })}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NavigationBoxMobile;\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport eventTypes from '../../../../enums/Event.enums';\r\nimport { TStringField } from '../../../../types/types';\r\nimport { TNavigationTabsMobileProps } from '../types/navigationBar.types';\r\n\r\nconst NavigationTabsMobile: FC = (props) => {\r\n const { sticky, activeTab, isEditorial, tabs, scrollToPlaceholder, clickPageNavEvent } = props;\r\n return (\r\n
    \r\n {tabs?.map((tab, index) => (\r\n {\r\n scrollToPlaceholder(index);\r\n clickPageNavEvent(eventTypes.navEvent, isEditorial ? (tab?.label as TStringField)?.value : (tab?.label as string), index + 1);\r\n }}\r\n >\r\n \r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default NavigationTabsMobile;\r\n","import { windowService, documentService } from './window.utils';\r\n\r\n// left: 37, up: 38, right: 39, down: 40,\r\n// spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36\r\nconst keys = { 37: 1, 38: 1, 39: 1, 40: 1 };\r\n\r\nfunction preventDefault(e) {\r\n e.preventDefault();\r\n}\r\n\r\nfunction preventDefaultForScrollKeys(e) {\r\n if (keys[e.keyCode]) {\r\n preventDefault(e);\r\n return false;\r\n }\r\n}\r\n\r\n// modern Chrome requires { passive: false } when adding event\r\nlet supportsPassive = false;\r\ntry {\r\n windowService()?.addEventListener?.(\r\n 'test',\r\n null,\r\n Object.defineProperty({}, 'passive', {\r\n get: function () {\r\n supportsPassive = true;\r\n return supportsPassive;\r\n },\r\n })\r\n );\r\n} catch (e) {\r\n throw new Error(e as string);\r\n}\r\n\r\nconst wheelOpt = supportsPassive ? { passive: false } : false;\r\nconst divToCheckOnWheel = documentService()?.createElement?.('div');\r\nlet wheelEvent = 'mousewheel';\r\nif (divToCheckOnWheel && 'onwheel' in divToCheckOnWheel) {\r\n wheelEvent = 'wheel';\r\n}\r\n\r\n// call this to Disable\r\nfunction disableScroll() {\r\n windowService()?.addEventListener?.('DOMMouseScroll', preventDefault, false); // older FF\r\n windowService()?.addEventListener?.(wheelEvent, preventDefault, wheelOpt); // modern desktop\r\n windowService()?.addEventListener?.('touchmove', preventDefault, wheelOpt); // mobile\r\n windowService()?.addEventListener?.('keydown', preventDefaultForScrollKeys, false);\r\n documentService()?.querySelector?.('body').classList.add('scrolling');\r\n}\r\n\r\n// call this to Enable\r\nfunction enableScroll() {\r\n windowService()?.removeEventListener?.('DOMMouseScroll', preventDefault, false);\r\n windowService()?.removeEventListener?.(wheelEvent, preventDefault, wheelOpt);\r\n windowService()?.removeEventListener?.('touchmove', preventDefault, wheelOpt);\r\n windowService()?.removeEventListener?.('keydown', preventDefaultForScrollKeys, false);\r\n setTimeout(() => {\r\n documentService()?.querySelector?.('body')?.classList?.remove('scrolling');\r\n }, 100);\r\n}\r\n\r\nfunction isScrolling(): boolean {\r\n return !!documentService()?.querySelector?.('body')?.classList?.contains('scrolling');\r\n}\r\n\r\nexport { disableScroll, enableScroll, isScrolling };\r\n","import React, { useState, FC, useEffect, useMemo, useCallback } from 'react';\r\nimport { ComponentRendering, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { isEmptyResponse } from '../../../utils/checkEmptyResponse';\r\nimport { WithTranslation } from 'react-i18next';\r\nimport { TClickPageNavEvent, TFormTitleUrl, TNavigationBarProps, TTabsNavigationBar } from './types/navigationBar.types';\r\nimport { NavigationBarModel } from './models/navigationBar.model';\r\nimport { documentService, windowService } from '../../../utils/window.utils';\r\nimport { ANCHOR_COMPONENT, NAVIGATION_BAR_ANCHOR_CLASS } from '../../../constants/navigationBar.constants';\r\nimport { BreakpointsInPx } from '../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { googleClickEvent } from '../../../utils/analytics';\r\nimport NavigationBarDropdownDesktop from './components/navigationBarDropdownDesktop';\r\nimport NavigationBarTabsDesktop from './components/navigationBarTabsDesktop';\r\nimport NavigationBarMSRPDesktop from './components/navigationBarMSRPDesktop';\r\nimport NavigationBarCtaDesktop from './components/navigationBarCtaDesktop';\r\nimport NavigationBoxMobile from './components/navigationBoxMobile';\r\nimport NavigationTabsMobile from './components/navigationTabsMobile';\r\nimport { disableScroll, enableScroll, isScrolling } from '../../../utils/scroll.utils';\r\n\r\nconst hiddenTabsBasedOnContentAvailability = (tabs, componentsJssMain, anchorComponents, isEditorial) => {\r\n return tabs?.map((tab, index) => {\r\n const tempTab = { ...tab };\r\n\r\n for (let i = 0; i < componentsJssMain.length; i++) {\r\n // try to find a ProductSeriesNavigationBarAnchorComponent\r\n if (componentsJssMain[i].componentName === ANCHOR_COMPONENT) {\r\n // if in the anchorComponent with index === current tab there is an uid === componentsJssMain.uid that means im in the right position\r\n if (anchorComponents[index].uid === componentsJssMain[i].uid) {\r\n // if i find one anchor component and then the next is another anchor component it means that i dont have any components to show between the anchor components so the tab must be hidden\r\n if (componentsJssMain[i].componentName === ANCHOR_COMPONENT && componentsJssMain[i + 1]?.componentName === ANCHOR_COMPONENT) {\r\n tempTab.isVisible = false;\r\n break;\r\n } else {\r\n // find next anchor component\r\n const indexNextAnchorComponents = componentsJssMain.findIndex(\r\n (component) => component.uid === anchorComponents[index + 1]?.uid\r\n );\r\n // if there are no others anchor component, then check the components until the end of length for componentJssMain\r\n const checknComponentsBetween = isEditorial\r\n ? indexNextAnchorComponents > index && indexNextAnchorComponents !== -1\r\n : indexNextAnchorComponents !== -1;\r\n const nComponentsBetween = checknComponentsBetween ? indexNextAnchorComponents - i - 1 : componentsJssMain.length - i - 1;\r\n tempTab.isVisible = false;\r\n for (let j = i + 1; j <= i + nComponentsBetween; j++) {\r\n // if true there is at least one component to show, and so exit from the loop\r\n const checkComponent = isEditorial ? componentsJssMain[j].componentName : isEmptyResponse(componentsJssMain[j]);\r\n if (checkComponent) {\r\n tempTab.isVisible = true;\r\n break;\r\n }\r\n }\r\n if (tempTab.isVisible) break;\r\n }\r\n }\r\n }\r\n }\r\n return tempTab;\r\n });\r\n};\r\nconst NavigationSection: FC = (props) => {\r\n const { sticky, isEditorial, dropdownIsOpen, setshowPanel } = props;\r\n const model = useMemo(() => new NavigationBarModel(props), [props]);\r\n const componentsJssMain = props.sitecoreContext?.route?.placeholders['jss-main'];\r\n const isMobile = useMediaQuery(`(max-width: ${BreakpointsInPx.md})`);\r\n const showDropdown = model?.showDropdown;\r\n const showLabel = model?.showLabel;\r\n const dropDownSeriesData = model?.seriesList;\r\n const [tabs, setTabs] = useState(null);\r\n const [anchorComponents, setAnchorComponents] = useState();\r\n const [activeTab, setActiveTab] = useState(0);\r\n\r\n const handleClick = useCallback((): void => {\r\n dropDownSeriesData && dropDownSeriesData?.length > 1 && setshowPanel(!dropdownIsOpen);\r\n }, [setshowPanel, dropdownIsOpen]);\r\n\r\n const handleCloseDropdown = useCallback((): void => {\r\n setshowPanel(false);\r\n }, [setshowPanel]);\r\n\r\n const scrollToPlaceholder = (index): void => {\r\n if (isScrolling()) return;\r\n\r\n const offsetCorrection = isMobile ? 44 : 74;\r\n const topOffset = anchorComponents?.item(index)?.offsetTop - offsetCorrection;\r\n\r\n if (topOffset) {\r\n disableScroll();\r\n windowService().scroll({\r\n top: topOffset,\r\n behavior: 'smooth',\r\n });\r\n }\r\n enableScroll();\r\n };\r\n\r\n const detectActiveTab = useCallback(() => {\r\n if (!anchorComponents) return;\r\n const sectionHighlightTabHeight = windowService().innerHeight / 4;\r\n\r\n // if at least the first element is not in the highlighted section set the active tab to first\r\n if (anchorComponents.item(0)?.getBoundingClientRect()?.top > sectionHighlightTabHeight) {\r\n setActiveTab(0);\r\n return;\r\n }\r\n\r\n let activeTabDetect = 0;\r\n for (let i = 0; i < anchorComponents.length; i++) {\r\n if (anchorComponents?.item(i)?.getBoundingClientRect().top < sectionHighlightTabHeight) {\r\n activeTabDetect = i;\r\n } else {\r\n break;\r\n }\r\n }\r\n setActiveTab(activeTabDetect);\r\n }, [anchorComponents]);\r\n\r\n const clickPageNavEvent: TClickPageNavEvent = (type: string, action: string | undefined, elementNumber?: number | undefined) => {\r\n googleClickEvent(type, 'Page Nav', action, model.title, elementNumber);\r\n };\r\n\r\n // detect active tab\r\n useEffect(() => {\r\n try {\r\n windowService().addEventListener('scroll', detectActiveTab, { passive: true });\r\n } catch (e) {\r\n windowService().addEventListener('scroll', detectActiveTab);\r\n }\r\n return (): void => {\r\n windowService().removeEventListener('scroll', detectActiveTab);\r\n };\r\n }, [anchorComponents, detectActiveTab]);\r\n\r\n // show only the tab for the anchor component in page -> 3 anchor component = 3 tab\r\n useEffect(() => {\r\n if (model?.tabs?.length === 0) return;\r\n const anchorComponentsTab = (componentsJssMain as ComponentRendering[] ).filter((component) => component.componentName === ANCHOR_COMPONENT);\r\n if (anchorComponentsTab) {\r\n const anchorTabs = model?.tabs\r\n .filter((_, index) => index < anchorComponentsTab.length)\r\n .map((item) => {\r\n return {\r\n label: item,\r\n isVisible: true,\r\n };\r\n });\r\n\r\n const visibleTabs = hiddenTabsBasedOnContentAvailability(anchorTabs, componentsJssMain, anchorComponentsTab, isEditorial);\r\n setTabs(visibleTabs);\r\n }\r\n }, [componentsJssMain, isEditorial, model]);\r\n //retrieve the anchor components\r\n useEffect(() => {\r\n if (model?.tabs?.length === 0) return;\r\n if (!tabs) return;\r\n const components = documentService().querySelectorAll(`.${NAVIGATION_BAR_ANCHOR_CLASS}`);\r\n setAnchorComponents(components);\r\n }, [tabs, model]);\r\n\r\n useEffect(() => {\r\n const arr = documentService().getElementsByTagName('header');\r\n if (arr?.length) {\r\n const header = arr[0];\r\n const height = '85px';\r\n header.style.setProperty('--navigation--Height--actual', height);\r\n }\r\n }, [isMobile]);\r\n\r\n const formTitleUrl: TFormTitleUrl = (baseUrl: string, titleUrl: string, skipSeries = false) => {\r\n const urlArr = baseUrl.split('/');\r\n urlArr.pop();\r\n if (skipSeries) {\r\n urlArr.pop();\r\n }\r\n urlArr.push(titleUrl);\r\n return urlArr.join('/');\r\n };\r\n\r\n useEffect(() => {\r\n const handleClose = () => {\r\n setshowPanel(false);\r\n };\r\n if (dropdownIsOpen && !isMobile) {\r\n documentService()?.addEventListener('click', handleClose);\r\n }\r\n return () => {\r\n documentService()?.removeEventListener('click', handleClose);\r\n };\r\n }, [dropdownIsOpen]);\r\n\r\n if (isMobile) {\r\n return (\r\n <>\r\n {!sticky && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {!isEditorial && showDropdown && (\r\n \r\n )}\r\n {!!(isEditorial && model.editorialTitle) && (\r\n \r\n )}\r\n \r\n {!isEditorial && showLabel && (\r\n \r\n )}\r\n {\r\n \r\n }\r\n
    \r\n );\r\n};\r\n\r\nexport default React.memo(NavigationSection);\r\n","import React, { FC, useEffect } from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { createPortal } from 'react-dom';\r\nimport { WithTranslation, withTranslation } from 'react-i18next';\r\nimport useStickyWrapper from '../../hooks/useStickyWrapper';\r\nimport { detectScrollDirectionForNavigationBar } from '../../utils/detectScrollDirectionForNavigationBar.utils';\r\nimport { windowService } from '../../utils/window.utils';\r\nimport NavigationSection from '../@shared/navigationSection';\r\nimport { TNavigationBarProps } from '../@shared/navigationSection/types/navigationBar.types';\r\n\r\nconst NavigationBar: FC = (props) => {\r\n let scrollPosition = 0;\r\n const stickyWrapperEle = useStickyWrapper();\r\n\r\n const detectScrollDirection = () => {\r\n scrollPosition = detectScrollDirectionForNavigationBar(stickyWrapperEle, scrollPosition);\r\n };\r\n\r\n useEffect(() => {\r\n windowService().addEventListener('scroll', detectScrollDirection, false);\r\n return () => {\r\n windowService().removeEventListener('scroll', detectScrollDirection);\r\n };\r\n }, [stickyWrapperEle]); // eslint-disable-line\r\n\r\n return (\r\n <>\r\n \r\n {stickyWrapperEle &&\r\n createPortal(\r\n ,\r\n stickyWrapperEle\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withTranslation()(withSitecoreContext()(NavigationBar));\r\n","import React from 'react';\r\nimport { upperCaseWordSplitAndSpace } from '../../../utils/regex.utils';\r\n\r\nconst ExperienceEditorComponentPlaceholder = ({ componentName = '', image = '' }) => {\r\n const formattedName = upperCaseWordSplitAndSpace(componentName);\r\n\r\n if (image) {\r\n return {formattedName};\r\n }\r\n return
    {formattedName} - Component Placeholder
    ;\r\n};\r\n\r\nexport default ExperienceEditorComponentPlaceholder;\r\n","import React from 'react';\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport { TProductSeriesNavigationBarAnchorComponent } from './types/seriesNavigationBarAnchor.types';\r\nimport { NAVIGATION_BAR_ANCHOR_CLASS } from '../../constants/navigationBar.constants';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst NavigationBarAnchorComponent = (props: TProductSeriesNavigationBarAnchorComponent) => {\r\n const isPlaceholderShown = isEditorActive();\r\n const placeholderShown = isPlaceholderShown ? `${NAVIGATION_BAR_ANCHOR_CLASS}--is-EE` : '';\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n {isPlaceholderShown ? (\r\n \r\n ) : null}\r\n
    \r\n );\r\n};\r\n\r\nexport default NavigationBarAnchorComponent;\r\n","import React, { FC } from 'react';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport Picture from '../../@shared/picture';\r\nimport VideoPlayer from '../../@shared/videoPlayer';\r\nimport { Breakpoints } from '../../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\nimport { getThumbnailProps } from '../../../utils/youtubeUtils';\r\nimport { getImageField } from '../../../utils/getImageFields';\r\nimport { TNewsDetailMediaProps } from '../types/newsDetail.types';\r\n\r\nconst NewsDetailMedia: FC = ({ showVideo, desktopImage, mobileImage, video, isMediaExists }) => {\r\n const isDesktop = useMediaQuery(`(min-width: ${Breakpoints['md']}px)`);\r\n const videoUrl = video?.value?.href;\r\n\r\n if (!isMediaExists) {\r\n return null;\r\n }\r\n\r\n if (showVideo) {\r\n const { thumbnailImgSrc } = getThumbnailProps(videoUrl || '');\r\n const desktopImageOrThumbnail = getImageField(desktopImage, thumbnailImgSrc ?? '', showVideo);\r\n const mobileImageOrThumbnail = getImageField(mobileImage, thumbnailImgSrc ?? '', showVideo);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default NewsDetailMedia;\r\n","import React, { FC } from 'react';\r\nimport { TNewsDetailMediaListItem } from '../types/newsDetail.types';\r\nimport { RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { getThumbnailProps } from '../../../utils/youtubeUtils';\r\nimport { getImageField } from '../../../utils/getImageFields';\r\nimport { TEditorialImageProps } from '../../@shared/picture/types/editorialImage.types';\r\nimport VideoPlayer from '../../@shared/videoPlayer';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { Breakpoints } from '../../../constants/breakpoints.constants';\r\nimport Picture from '../../@shared/picture';\r\n\r\nconst NewsDetailMediaListItem: FC<{ mediaItem: Partial }> = ({ mediaItem }) => {\r\n const isDesktop = useMediaQuery(`(min-width: ${Breakpoints['md']}px)`);\r\n const { image, mobileImage, mediaCaption, mediaDescription, useVideo, video } = mediaItem?.fields || {};\r\n const canShowVideo = !!(useVideo?.value && video?.value?.href);\r\n const isMediaExists = !!(canShowVideo || image?.value?.src || mobileImage?.value?.src);\r\n const { thumbnailImgSrc } = getThumbnailProps(video?.value?.href || '');\r\n const desktopImageOrThumbnail = getImageField(image, thumbnailImgSrc ?? '', canShowVideo);\r\n const mobileImageOrThumbnail = getImageField(mobileImage, thumbnailImgSrc ?? '', canShowVideo);\r\n const editorialImageProps: TEditorialImageProps = {\r\n desktopImage: desktopImageOrThumbnail,\r\n mobileImage: mobileImageOrThumbnail,\r\n desktopTransformation: 'Size1000',\r\n mobileTransformation: 'Size1000',\r\n alt: (isDesktop ? desktopImageOrThumbnail?.value?.alt : mobileImageOrThumbnail?.value?.alt) as string | undefined,\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n {isMediaExists && (\r\n
    \r\n {canShowVideo ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n {mediaCaption && }\r\n
    \r\n\r\n {mediaDescription && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NewsDetailMediaListItem;\r\n","import { TDateField, THeadingTag, TImageField, TLinkField, TSitecoreContext, TStringField, VideoSitecoreField } from '../../../types/types';\r\nimport { isEmptyObject } from '../../../utils/checkEmptyObject';\r\nimport { TSocialMediaBarProps } from '../../@shared/socialMediaBar/types/socialMediaBar.types';\r\nimport {\r\n TCategory,\r\n TNewsDetailContext,\r\n TNewsDetailFields,\r\n TNewsDetailMediaListItem,\r\n TNewsDetailParams,\r\n TNewsDetailProps,\r\n} from '../types/newsDetail.types';\r\n\r\nexport class NewsDetailModel {\r\n private readonly fields?: TNewsDetailFields;\r\n private readonly params?: TNewsDetailParams;\r\n private readonly context?: TNewsDetailContext;\r\n\r\n constructor(props: TNewsDetailProps) {\r\n this.fields = props.fields;\r\n this.params = props.params;\r\n this.context = props?.sitecoreContext as any || null;\r\n }\r\n\r\n get title(): TStringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h1';\r\n }\r\n\r\n get eyebrow(): TStringField | undefined {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get newsDate(): TDateField | undefined {\r\n return this.fields?.newsDate;\r\n }\r\n\r\n get desktopImage(): TImageField | undefined {\r\n return this.fields?.image;\r\n }\r\n\r\n get mobileImage(): TImageField | undefined {\r\n return this.fields?.mobileImage;\r\n }\r\n\r\n get showVideo(): boolean {\r\n return !!this.fields?.useVideo?.value && !!this.fields?.video?.value?.href;\r\n }\r\n\r\n get video(): VideoSitecoreField {\r\n return this.fields?.video ?? { value: {} };\r\n }\r\n\r\n get tags(): TStringField | undefined {\r\n return this.fields?.tags;\r\n }\r\n\r\n get categories(): Array {\r\n if (this?.fields?.tagCategories?.length) {\r\n return this.fields?.tagCategories?.map((category) => {\r\n const redirectUrl = (this.fields?.newsMainPageLink?.value ?? '') + '/?' + category?.parent + '=' + category?.id;\r\n return {\r\n name: category?.name,\r\n href: encodeURI(redirectUrl),\r\n };\r\n });\r\n }\r\n return [];\r\n }\r\n\r\n get mediaExists(): boolean {\r\n return !!(this.showVideo || this.fields?.image?.value?.src || this.fields?.mobileImage?.value?.src);\r\n }\r\n\r\n get detailedDescription(): TStringField | undefined {\r\n return this.fields?.detailedDescription;\r\n }\r\n\r\n get mediaList(): TNewsDetailMediaListItem[] {\r\n return this.fields?.mediaList || [];\r\n }\r\n\r\n get primaryCta(): TLinkField | undefined {\r\n return this.fields?.primaryCta;\r\n }\r\n\r\n get showPrimaryCta(): boolean {\r\n return !!(this.primaryCta?.value?.text && this.primaryCta?.value?.href);\r\n }\r\n\r\n get secondaryCta(): TLinkField | undefined {\r\n return this.fields?.secondaryCta;\r\n }\r\n\r\n get showSecondaryCta(): boolean {\r\n return !!(this.secondaryCta?.value?.text && this.secondaryCta?.value?.href);\r\n }\r\n\r\n get showCtaWrapper(): boolean {\r\n return this.showPrimaryCta || this.showSecondaryCta;\r\n }\r\n\r\n get socialMediaBarProps(): TSocialMediaBarProps | undefined {\r\n return isEmptyObject(this.fields?.socialMediaBar) ? undefined : this.fields?.socialMediaBar;\r\n }\r\n\r\n get contextLanguage(): string {\r\n return this.context?.language || 'en-GB';\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import { Text, DateField, RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport ctaTypes from '../../enums/CTA.enums';\r\nimport useEEActive from '../../hooks/useEEActive';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport CTA from '../@shared/cta';\r\nimport DictionaryTerm from '../@shared/dictionaryTerm';\r\nimport RoutableNotEditableLink from '../@shared/routableNotEditableLink';\r\nimport SocialMediaBar from '../@shared/socialMediaBar';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport NewsDetailMedia from './components/media';\r\nimport NewsDetailMediaListItem from './components/newsDetailMediaListItem';\r\nimport { TNewsDetailProps } from './types/newsDetail.types';\r\nimport { NewsDetailModel } from './models/newsDetail.model';\r\nimport useFormatDate from '../../hooks/useFormatDate';\r\n\r\nconst NewsDetail: FC = (props) => {\r\n const model = new NewsDetailModel(props);\r\n const isEE = useEEActive();\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-p']})`);\r\n const formattedDate = useFormatDate(model.newsDate?.value);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {model?.eyebrow && }\r\n {model?.title && }\r\n {model?.newsDate && formattedDate} />}\r\n\r\n {model.socialMediaBarProps && (\r\n \r\n )}\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n {model.categories?.length > 0 && (\r\n
    \r\n \r\n \r\n \r\n
    \r\n {model?.categories?.map((category) => (\r\n \r\n {category?.name}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n\r\n {model.detailedDescription && (\r\n \r\n )}\r\n\r\n {model.mediaList.map((mediaItem) => (\r\n \r\n ))}\r\n\r\n {(isEE || model.showCtaWrapper) && (\r\n
    \r\n {(isEE || model.showPrimaryCta) && (\r\n \r\n )}\r\n {(isEE || model.showSecondaryCta) && (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(NewsDetail);\r\n","import { LinkField, TStringField } from '../../../types/types';\r\nimport { TNewsFilesFields, TNewsFilesProps, TNewsItemsData } from '../types/newsFiles.types';\r\n\r\nexport class NewsFilesModel {\r\n private readonly fields: TNewsFilesFields;\r\n\r\n constructor(props: TNewsFilesProps) {\r\n this.fields = props.fields;\r\n }\r\n\r\n get title(): TStringField {\r\n return this.fields?.title;\r\n }\r\n\r\n get eyebrow(): TStringField {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get downloadNewsFilesCard(): TNewsItemsData[] {\r\n return (this.fields.items || []).map((item, index) => ({\r\n fileName: item?.fields?.fileName,\r\n fileSize: item?.fields?.fileSize,\r\n thumbnailLink: item?.fields?.thumbnailLink,\r\n fileLink: item?.fields?.fileLink,\r\n id: item?.fields?.id,\r\n active: item?.fields?.active,\r\n componentNumber: index + 1,\r\n }));\r\n }\r\n\r\n get downloadFileCardLength(): number {\r\n return this.downloadNewsFilesCard.length;\r\n }\r\n\r\n get optionalCTA(): LinkField | undefined {\r\n return this.fields?.primaryLink;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC, useEffect, useRef } from 'react';\r\nimport Picture from '../../../@shared/picture';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Icon from '../../../@shared/icon';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TNewsItemsData } from '../../types/newsFiles.types';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\n\r\nconst NewsFilesDownloadCard: FC = (props: TNewsItemsData) => {\r\n const { fileName, fileSize, thumbnailLink, fileLink, active, componentNumber } = props;\r\n const linkWrapperRef = useRef(null);\r\n const a2aKitRef = useRef(null);\r\n\r\n useEffect(() => {\r\n const handleClick = (e: MouseEvent) => {\r\n if (a2aKitRef.current && (e.target === a2aKitRef.current || a2aKitRef.current.contains(e.target as Node))) {\r\n googleClickCtaEvent('News Files', 'Share', fileName.value, componentNumber);\r\n }\r\n };\r\n linkWrapperRef?.current?.addEventListener('click', handleClick, true);\r\n\r\n return () => {\r\n linkWrapperRef?.current?.removeEventListener('click', handleClick, true);\r\n };\r\n }, [fileName.value, componentNumber, linkWrapperRef, a2aKitRef]);\r\n\r\n return (\r\n <>\r\n {active && (\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n googleClickCtaEvent('News Files', 'Download', fileName.value, componentNumber)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NewsFilesDownloadCard;\r\n","import React, { FC, useEffect } from 'react';\r\nimport { Text, isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport { NewsFilesModel } from './models/newsFiles.model';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { TNewsFilesProps } from './types/newsFiles.types';\r\nimport NewsFilesDownloadCard from './components/newsFilesDownloadCard';\r\nimport CTA, { ctaTypes } from '../@shared/cta';\r\nimport { addToAnyScript } from '../../utils/addToAnyScript.utils';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst NewsFiles: FC = (props) => {\r\n const model = new NewsFilesModel(props);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n addToAnyScript();\r\n });\r\n }, []);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n if (model.downloadFileCardLength === 0 && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {model?.downloadNewsFilesCard.map((card) => (\r\n \r\n ))}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default NewsFiles;\r\n","\r\nimport {\r\n TImageField,\r\n TLinkField,\r\n TSitecoreProps,\r\n TStringField,\r\n WithSitecoreContextProps\r\n } from \"../../../types/types\";\r\n\r\n\r\nexport type TNewsLetterSubscriptionFields = {\r\n image?: TImageField;\r\n title?: TStringField;\r\n description?: TStringField;\r\n newsSubscriptionTitle?: TStringField;\r\n link?: TLinkField;\r\n isComponentUnreleased?: boolean;\r\n backgroundTheme: {\r\n fields: {\r\n Key: {\r\n value: string;\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport enum backgroundTheme {\r\n red = 'red',\r\n black = 'black'\r\n};\r\n\r\nexport type TNewsLetterSubscriptionProps = WithSitecoreContextProps & TSitecoreProps;\r\n","import { TNewsLetterSubscriptionFields, TNewsLetterSubscriptionProps, backgroundTheme } from '../types/newsLetterSubscription.types';\r\nimport { TImageField, TLinkField, TStringField } from '../../../types/types';\r\n\r\nexport class NewsLetterPopUpModel {\r\n private readonly fields?: TNewsLetterSubscriptionFields;\r\n\r\n constructor(props: TNewsLetterSubscriptionProps) {\r\n this.fields = props?.fields;\r\n }\r\n\r\n get title(): TStringField {\r\n return this.fields?.title as TStringField;\r\n }\r\n\r\n get image(): TImageField {\r\n return this.fields?.image as TImageField;\r\n }\r\n\r\n get description(): TStringField {\r\n return this.fields?.description as TStringField;\r\n }\r\n\r\n get link(): TLinkField {\r\n return this.fields?.link as TLinkField;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get newsSubscriptionTitle(): TStringField {\r\n return this.fields?.newsSubscriptionTitle as TStringField;\r\n }\r\n\r\n get backgroundtheme(): backgroundTheme {\r\n return this.fields?.backgroundTheme.fields.Key.value as backgroundTheme;\r\n }\r\n}\r\n","import React, { FC, useState, useRef, useEffect } from 'react';\r\nimport { Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TNewsLetterSubscriptionProps, backgroundTheme } from './types/newsLetterSubscription.types';\r\nimport { NewsLetterPopUpModel } from './models/newsLetterSubscription.model';\r\nimport { windowService } from '../../utils/window.utils';\r\nimport CTA from '../@shared/cta';\r\nimport ctaTypes from '../../enums/CTA.enums';\r\nimport Icon from '../@shared/icon';\r\nimport Picture from '../@shared/picture';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { iconSize } from '../../constants/icon.constants';\r\nimport './styles.scss';\r\n\r\nconst NewsLetterSubscription: FC = (props: TNewsLetterSubscriptionProps) => {\r\n const [isOpen, setIsOpen] = useState(true);\r\n const [isHidden, setIsHidden] = useState(true);\r\n const newsLetterBarRef = useRef(null);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n const oneTrust = windowService()?.OneTrust;\r\n if (oneTrust) {\r\n const oneTrustAlertBoxInterval = setInterval(() => {\r\n if (oneTrust.IsAlertBoxClosed()) {\r\n clearInterval(oneTrustAlertBoxInterval);\r\n setTimeout(() => setIsHidden(false), 8000);\r\n }\r\n }, 100);\r\n } else {\r\n setTimeout(() => setIsHidden(false), 8000);\r\n }\r\n });\r\n }, []);\r\n\r\n const closePromoBanner = () => {\r\n setIsOpen(false);\r\n setTimeout(() => {\r\n newsLetterBarRef?.current?.classList?.add('news-letter-subscription__bar--show');\r\n }, 500);\r\n };\r\n\r\n const hideNewsLetterBar = () => newsLetterBarRef?.current?.classList?.remove('news-letter-subscription__bar--show');\r\n\r\n const model = new NewsLetterPopUpModel(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n\r\n return (\r\n <>\r\n {\r\n isHidden ? null :\r\n <>\r\n {\r\n setIsOpen(true);\r\n hideNewsLetterBar();\r\n }}\r\n >\r\n {\r\n e.stopPropagation();\r\n hideNewsLetterBar();\r\n }}\r\n >\r\n \r\n \r\n {`${model.newsSubscriptionTitle?.value}`}\r\n \r\n\r\n \r\n {\r\n closePromoBanner();\r\n }\r\n }\r\n >\r\n \r\n \r\n
    \r\n {model.image?.value?.src &&
    \r\n \r\n
    }\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n }\r\n \r\n\r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(NewsLetterSubscription);\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { QueryParamsConst } from '../../../constants/query-params.constants';\r\nimport { updateSearchResults } from '../../../hooks/useQueryParams.effect';\r\nimport {\r\n TNewsListingFields,\r\n TNewsListingFilter,\r\n TNewsListingItem,\r\n TNewsListingProps,\r\n} from '../types/newsListing.types';\r\nimport { TBaseObj, TImageField } from '../../../types/types';\r\nimport { isEmptyObject } from '../../../utils/checkEmptyObject';\r\nimport { TSocialMediaBarProps } from '../../@shared/socialMediaBar/types/socialMediaBar.types';\r\n\r\nexport class NewsListingItemModel {\r\n private readonly newsItem?: TNewsListingItem;\r\n\r\n constructor(props: TNewsListingItem) {\r\n this.newsItem = props;\r\n }\r\n\r\n get desktopImage(): TImageField | undefined {\r\n return this.newsItem?.Image;\r\n }\r\n\r\n get mobileImage(): TImageField | undefined {\r\n return this.newsItem?.MobileImage;\r\n }\r\n\r\n get tag(): string | undefined {\r\n return this.newsItem?.tagCategories?.[0]?.name;\r\n }\r\n\r\n get newsDate(): string | undefined {\r\n return this.newsItem?.newsDate;\r\n }\r\n\r\n get title(): string | undefined {\r\n return this.newsItem?.title;\r\n }\r\n\r\n get shortDescription(): string | undefined {\r\n return this.newsItem?.shortDescription;\r\n }\r\n\r\n get useVideo(): boolean {\r\n return this.newsItem?.useVideo === '1';\r\n }\r\n\r\n get video(): string | undefined {\r\n return this.newsItem?.video;\r\n }\r\n\r\n get ctaLink(): string | undefined {\r\n return this.newsItem?.link;\r\n }\r\n}\r\n\r\nexport class NewsListingModel {\r\n private readonly fields?: TNewsListingFields;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TNewsListingProps) {\r\n this.fields = props.fields;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get filters(): TNewsListingFilter[] {\r\n return this.fields?.apiData?.filters || [];\r\n }\r\n\r\n get items(): TNewsListingItem[] {\r\n return this.fields?.apiData?.items || [];\r\n }\r\n\r\n findFilterByName(filterName: TNewsListingFilter['value']): TNewsListingFilter {\r\n return this?.filters.find((filter) => filter.value === filterName) || {};\r\n }\r\n\r\n resetFilter(navigate) {\r\n updateSearchResults(navigate, {\r\n [QueryParamsConst.PAGE]: '',\r\n [QueryParamsConst.YEAR]: '',\r\n [QueryParamsConst.LINE]: '',\r\n [QueryParamsConst.TYPE]: '',\r\n [QueryParamsConst.FILTER1]: '',\r\n });\r\n }\r\n\r\n updateQueryByKey(navigate, key, val) {\r\n const resetPage = key != QueryParamsConst.PAGE;\r\n\r\n const keyValues = resetPage\r\n ? {\r\n [QueryParamsConst.PAGE]: '',\r\n [key]: val || '',\r\n }\r\n : {\r\n [key]: val || '',\r\n };\r\n\r\n updateSearchResults(navigate, keyValues);\r\n }\r\n\r\n updateQueryByBulkKeys(navigate, obj: TBaseObj) {\r\n updateSearchResults(navigate, obj);\r\n }\r\n\r\n get counter(): number {\r\n return this.fields?.apiData?.totalSearchResults || 0;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n return this.fields?.itemData?.contextItemUrl || '';\r\n }\r\n\r\n get socialMediaBarProps(): TSocialMediaBarProps | undefined {\r\n return isEmptyObject(this.fields?.socialMediaBar) ? undefined : this.fields?.socialMediaBar;\r\n }\r\n\r\n get isUnreleased(): boolean | undefined {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get defaultCardImage(): TImageField | undefined {\r\n return this.fields?.itemData?.fields?.defaultCardImage;\r\n }\r\n\r\n get placeholderImageSrc(): string | undefined {\r\n return this.fields?.itemData?.thumbnail;\r\n }\r\n}\r\n","const NEWS_YEAR_FILTER_TITLE_DICTIONARY_TERM = 'cnhi-news-year-filter-title';\r\nconst NEWS_LINE_FILTER_TITLE_DICTIONARY_TERM = 'cnhi-news-line-filter-title';\r\nconst NEWS_TYPE_FILTER_TITLE_DICTIONARY_TERM = 'cnhi-news-type-filter-title';\r\nconst NEWS_FILTER1_FILTER_TITLE_DICTIONARY_TERM = 'cnhi-news-filter1-filter-title';\r\n\r\nexport {\r\n NEWS_YEAR_FILTER_TITLE_DICTIONARY_TERM,\r\n NEWS_LINE_FILTER_TITLE_DICTIONARY_TERM,\r\n NEWS_TYPE_FILTER_TITLE_DICTIONARY_TERM,\r\n NEWS_FILTER1_FILTER_TITLE_DICTIONARY_TERM,\r\n};\r\n","import React, { FC } from 'react';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Dropdown, { TDropdownProps } from '../../../@shared/filters/components/dropdown';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { NewsListingModel } from '../../models/newsListing.model';\r\nimport { useNavigate } from 'react-router';\r\nimport { QueryParamsConst } from '../../../../constants/query-params.constants';\r\nimport { TNewsListingFilter, TSelectedNewsFilters } from '../../types/newsListing.types';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { googleClickDropdownEvent } from '../../../../utils/analytics';\r\nimport {\r\n NEWS_FILTER1_FILTER_TITLE_DICTIONARY_TERM,\r\n NEWS_LINE_FILTER_TITLE_DICTIONARY_TERM,\r\n NEWS_TYPE_FILTER_TITLE_DICTIONARY_TERM,\r\n NEWS_YEAR_FILTER_TITLE_DICTIONARY_TERM,\r\n} from '../../../../constants/newsListnig.constatnts';\r\n\r\nconst DesktopFilter: FC<{ model: NewsListingModel; selectedFilters: TSelectedNewsFilters }> = ({ model, selectedFilters }) => {\r\n const navigate = useNavigate();\r\n const { t } = useTranslation();\r\n const { YEAR, TYPE, LINE, FILTER1 } = QueryParamsConst;\r\n\r\n const getDropdownOptions = (filter?: TNewsListingFilter, titleDictionaryKey?: string): TDropdownProps['dropdownOptions'] => {\r\n if (!filter) return [];\r\n return [\r\n { id: filter.value, title: t(titleDictionaryKey || '') },\r\n ...(filter?.tags?.map((tag) => ({ id: tag.id?.toString(), title: tag.value })) || []),\r\n ];\r\n };\r\n\r\n const dropDownsProps = [\r\n {\r\n filter: model.findFilterByName('year'),\r\n queryKey: YEAR,\r\n titleDictionaryKey: 'cnhi-news-all-years',\r\n id: 'year-dropdown',\r\n dataLayerTitle: NEWS_YEAR_FILTER_TITLE_DICTIONARY_TERM,\r\n },\r\n {\r\n filter: model.findFilterByName('line'),\r\n queryKey: LINE,\r\n titleDictionaryKey: 'cnhi-news-all-lines',\r\n id: 'line-dropdown',\r\n dataLayerTitle: NEWS_LINE_FILTER_TITLE_DICTIONARY_TERM,\r\n },\r\n {\r\n filter: model.findFilterByName('type'),\r\n queryKey: TYPE,\r\n titleDictionaryKey: 'cnhi-news-all-types',\r\n id: 'type-dropdown',\r\n dataLayerTitle: NEWS_TYPE_FILTER_TITLE_DICTIONARY_TERM,\r\n },\r\n {\r\n filter: model.findFilterByName('filter1'),\r\n queryKey: FILTER1,\r\n titleDictionaryKey: 'cnhi-news-all-filter1',\r\n id: 'filter1-dropdown',\r\n dataLayerTitle: NEWS_FILTER1_FILTER_TITLE_DICTIONARY_TERM,\r\n },\r\n ];\r\n\r\n const shouldShowResetFilter =\r\n selectedFilters[YEAR] !== '' || selectedFilters[LINE] !== '' || selectedFilters[TYPE] !== '' || selectedFilters[FILTER1] !== '';\r\n const resetFilterCTA = shouldShowResetFilter && (\r\n model.resetFilter(navigate)}>\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {dropDownsProps.map(({ filter, queryKey, id, titleDictionaryKey, dataLayerTitle }) => {\r\n const options = getDropdownOptions(filter, titleDictionaryKey);\r\n if (!options?.length || filter.hidden) return null;\r\n return (\r\n {\r\n model.updateQueryByKey(navigate, queryKey, ind === 0 ? '' : (options?.[ind].id as string));\r\n googleClickDropdownEvent(t(dataLayerTitle), options[ind].title as string);\r\n }}\r\n selectedOptionInd={(filter?.tags?.findIndex((_) => _.id?.toString() === selectedFilters[queryKey]) ?? -1) + 1}\r\n />\r\n );\r\n })}\r\n
    \r\n {resetFilterCTA}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default DesktopFilter;\r\n","import React, { useEffect, useState, FC } from 'react';\r\nimport { documentService } from '../../../../utils/window.utils';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport Accordion, { TAccordionProps } from '../../../@shared/filters/components/accordion';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport { NewsListingModel } from '../../models/newsListing.model';\r\nimport { TNewsListingFilter, TSelectedNewsFilters } from '../../types/newsListing.types';\r\nimport { useNavigate } from 'react-router';\r\nimport { QueryParamsConst } from '../../../../constants/query-params.constants';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n NEWS_FILTER1_FILTER_TITLE_DICTIONARY_TERM,\r\n NEWS_LINE_FILTER_TITLE_DICTIONARY_TERM,\r\n NEWS_TYPE_FILTER_TITLE_DICTIONARY_TERM,\r\n NEWS_YEAR_FILTER_TITLE_DICTIONARY_TERM,\r\n} from '../../../../constants/newsListnig.constatnts';\r\nimport { googleClickDropdownEvent } from '../../../../utils/analytics';\r\n\r\nconst MobileFilter: FC<{ model: NewsListingModel; selectedFilters: TSelectedNewsFilters }> = ({ model, selectedFilters }) => {\r\n const [shouldOpenFilterModal, setShouldOpenFilterModal] = useState(false);\r\n const [selectedFiltersCopy, setSelectedFiltersCopy] = useState(selectedFilters);\r\n const [selectedAccordionId, setSelectedAccordionId] = useState();\r\n const navigate = useNavigate();\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n\r\n if (shouldOpenFilterModal) docElement.body.classList.add('body--with-filter-model');\r\n else docElement.body.classList.remove('body--with-filter-model');\r\n }, [shouldOpenFilterModal]);\r\n\r\n const { YEAR, TYPE, LINE, FILTER1 } = QueryParamsConst;\r\n // show the action CTA's if any option is selectd or change in selected option\r\n const shouldShowFilterWrapper =\r\n !(\r\n selectedFiltersCopy[YEAR] === selectedFilters[YEAR] &&\r\n selectedFiltersCopy[LINE] == selectedFilters[LINE] &&\r\n selectedFiltersCopy[TYPE] === selectedFilters[TYPE] &&\r\n selectedFiltersCopy[FILTER1] === selectedFilters[FILTER1]\r\n ) ||\r\n selectedFiltersCopy[YEAR] !== '' ||\r\n selectedFiltersCopy[LINE] !== '' ||\r\n selectedFiltersCopy[TYPE] !== '' ||\r\n selectedFiltersCopy[FILTER1] !== '';\r\n\r\n const getAccordionOptionsByInd = (filter?: TNewsListingFilter, titleDictionaryKey?: string): TAccordionProps['accordionOptions'] => {\r\n if (!filter) return [];\r\n return [\r\n { id: filter.value, title: t(titleDictionaryKey || '') },\r\n ...(filter?.tags?.map((tag) => ({ id: tag.id?.toString(), title: tag.value })) || []),\r\n ];\r\n };\r\n\r\n const accordionsProps = [\r\n {\r\n filter: model.findFilterByName('year'),\r\n queryKey: YEAR,\r\n id: 'year-accordion',\r\n titleDictionaryKey: 'cnhi-news-all-years',\r\n accordionTitle: ,\r\n dataLayerTitle: NEWS_YEAR_FILTER_TITLE_DICTIONARY_TERM,\r\n },\r\n {\r\n filter: model.findFilterByName('line'),\r\n queryKey: LINE,\r\n id: 'line-accordion',\r\n titleDictionaryKey: 'cnhi-news-all-lines',\r\n accordionTitle: ,\r\n dataLayerTitle: NEWS_LINE_FILTER_TITLE_DICTIONARY_TERM,\r\n },\r\n {\r\n filter: model.findFilterByName('type'),\r\n queryKey: TYPE,\r\n id: 'type-accordion',\r\n titleDictionaryKey: 'cnhi-news-all-types',\r\n accordionTitle: ,\r\n dataLayerTitle: NEWS_TYPE_FILTER_TITLE_DICTIONARY_TERM,\r\n },\r\n {\r\n filter: model.findFilterByName('filter1'),\r\n queryKey: FILTER1,\r\n id: 'filter1-accordion',\r\n titleDictionaryKey: 'cnhi-news-all-filter1',\r\n accordionTitle: ,\r\n dataLayerTitle: NEWS_FILTER1_FILTER_TITLE_DICTIONARY_TERM,\r\n },\r\n ];\r\n\r\n const revertToOldFilters = () => model.updateQueryByBulkKeys(navigate, selectedFiltersCopy);\r\n const toggleModal = () => {\r\n if (!shouldOpenFilterModal) setSelectedAccordionId(undefined);\r\n setShouldOpenFilterModal(!shouldOpenFilterModal);\r\n };\r\n\r\n const toggleAccordion = (accordionId: typeof selectedAccordionId) => {\r\n if (accordionId === selectedAccordionId) setSelectedAccordionId(undefined);\r\n else setSelectedAccordionId(accordionId);\r\n };\r\n\r\n return (\r\n
    \r\n {\r\n toggleModal();\r\n revertToOldFilters();\r\n }}\r\n >\r\n \r\n \r\n
    \r\n {shouldOpenFilterModal && (\r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n setShouldOpenFilterModal(false);\r\n revertToOldFilters();\r\n }}\r\n />\r\n
    \r\n
    \r\n {accordionsProps.map(({ filter, id, accordionTitle, queryKey, titleDictionaryKey, dataLayerTitle }) => {\r\n const options = getAccordionOptionsByInd(filter, titleDictionaryKey);\r\n if (!options?.length || filter.hidden) return null;\r\n return (\r\n toggleAccordion(id)}\r\n handleOptionClick={(ind, event) => {\r\n event?.preventDefault(); // to stop the twice trigger of event\r\n model.updateQueryByKey(navigate, queryKey, ind === 0 ? '' : (options?.[ind].id as string));\r\n googleClickDropdownEvent(t(dataLayerTitle), options[ind].title as string);\r\n }}\r\n selectedOptionInd={(filter?.tags?.findIndex((_) => _.id?.toString() === selectedFilters[queryKey]) ?? -1) + 1}\r\n />\r\n );\r\n })}\r\n
    \r\n {\r\n // retaining as it might be used at a later time\r\n shouldShowFilterWrapper && (\r\n
    \r\n {\r\n model.resetFilter(navigate);\r\n setSelectedFiltersCopy({\r\n [QueryParamsConst.PAGE]: '',\r\n [QueryParamsConst.YEAR]: '',\r\n [QueryParamsConst.LINE]: '',\r\n [QueryParamsConst.TYPE]: '',\r\n [QueryParamsConst.FILTER1]: '',\r\n });\r\n }}\r\n >\r\n \r\n \r\n {\r\n setSelectedFiltersCopy(selectedFilters);\r\n toggleModal();\r\n }}\r\n >\r\n \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MobileFilter;\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { getImageField } from '../../../../utils/getImageFields';\r\nimport Picture from '../../../@shared/picture';\r\nimport { TEditorialImageProps } from '../../../@shared/picture/types/editorialImage.types';\r\nimport VideoPlayer from '../../../@shared/videoPlayer';\r\nimport { TNewsListingMedia } from '../../types/newsListing.types';\r\nimport { getThumbnailProps } from '../../../../utils/youtubeUtils';\r\n\r\nconst Media: FC = (props) => {\r\n const { desktopImage, mobileImage, defaultImage, useVideo, videoUrl, isDesktop } = props;\r\n if (useVideo && videoUrl) {\r\n const { thumbnailImgSrc } = getThumbnailProps(videoUrl);\r\n const desktopImageOrThumbnail = getImageField(desktopImage, thumbnailImgSrc || '', useVideo);\r\n const mobileImageOrThumbnail = getImageField(mobileImage, thumbnailImgSrc || '', useVideo);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n const shouldShowDefaultImage = !desktopImage?.value?.src && !mobileImage?.value?.src;\r\n const editorialProps: TEditorialImageProps = {\r\n mobileImage: mobileImage,\r\n desktopImage: desktopImage,\r\n mobileTransformation: 'Size300',\r\n desktopTransformation: 'Size1000',\r\n cssClassPictureEl: 'news-listing-card__image',\r\n alt: (isDesktop ? desktopImage?.value?.alt : mobileImage?.value?.alt) as string,\r\n };\r\n if (shouldShowDefaultImage && defaultImage) {\r\n editorialProps['mobileImage'] = undefined;\r\n editorialProps['desktopImage'] = defaultImage;\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Media;\r\n","import { createContext } from 'react';\r\nimport { TImageField } from '../../../types/types';\r\n\r\nexport const NewsListingPlaceholderImgContext = createContext(undefined);\r\n","import React, { FC, useContext } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Text, DateField } from '@sitecore-jss/sitecore-jss-react';\r\nimport { CustomText } from '../../../@shared/customText';\r\nimport { NewsListingItemModel } from '../../models/newsListing.model';\r\nimport { TNewsListingItem } from '../../types/newsListing.types';\r\nimport { WithSitecoreContextProps } from '@sitecore-jss/sitecore-jss-react/types/enhancers/withSitecoreContext';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport RoutableSitecoreLink from '../../../@shared/routableSitecoreLink';\r\nimport Media from '../media';\r\nimport { NewsListingPlaceholderImgContext } from '../newsListingContext';\r\nimport useFormatDate from '../../../../hooks/useFormatDate';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport CTA from '../../../@shared/cta';\r\nimport { getDLMFormatDate, googleClickNewsCtaEvent } from '../../../../utils/analytics';\r\nimport SocialMediaBar from '../../../@shared/socialMediaBar';\r\nimport { TSocialMediaBarProps } from '../../../@shared/socialMediaBar/types/socialMediaBar.types';\r\n\r\nconst NewsCard: FC = (props) => {\r\n const { t } = props;\r\n const placeholderImage = useContext(NewsListingPlaceholderImgContext);\r\n const model = new NewsListingItemModel(props);\r\n const isEE = props.sitecoreContext?.pageEditing;\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-p']})`);\r\n const formattedDate = useFormatDate(model.newsDate);\r\n const formattedDLMDate = model.newsDate ? getDLMFormatDate(model.newsDate) : '';\r\n const shareURL = new URL(model.ctaLink || '', props?.sitecoreContext?.currentPageUrl as string || '').href;\r\n\r\n return (\r\n
    \r\n {model.tag ? (\r\n
    \r\n \r\n
    \r\n ) : null}\r\n \r\n
    \r\n
    \r\n {model?.newsDate && (\r\n formattedDate}\r\n />\r\n )}\r\n {props.socialMediaBarProps && (\r\n \r\n )}\r\n
    \r\n {model.title && (\r\n \r\n )}\r\n {model.shortDescription && (\r\n \r\n )}\r\n
    \r\n {isEE ? (\r\n \r\n ) : (\r\n model?.ctaLink && (\r\n googleClickNewsCtaEvent(model.title || '', props.index + 1, model.tag, formattedDLMDate)}\r\n >\r\n {t('cnhi-readMore')}\r\n \r\n )\r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(withTranslation()(NewsCard));\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { TNewsListingItem } from '../../types/newsListing.types';\r\nimport NewsCard from '../newsCard';\r\nimport AnalyticsVisibleEvent from '../../../@shared/analyticsVisibleEvent';\r\nimport { TSocialMediaBarProps } from '../../../@shared/socialMediaBar/types/socialMediaBar.types';\r\n\r\nconst NewsCardList: FC<{ items: TNewsListingItem[]; rendering?: ComponentRendering; socialMediaBarProps?: TSocialMediaBarProps; }> = (props) => {\r\n if (props.items.length === 0) {\r\n return null;\r\n }\r\n return (\r\n
      \r\n {props.items.map((item, index) => {\r\n return (\r\n
    • \r\n \r\n \r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n );\r\n};\r\n\r\nexport default NewsCardList;\r\n","import React, { useMemo, FC } from 'react';\r\nimport { TNewsListingProps, TSelectedNewsFilters } from './types/newsListing.types';\r\nimport { NewsListingModel } from './models/newsListing.model';\r\nimport DesktopFilter from './components/desktopFilter';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport MobileFilter from './components/mobileFilter';\r\nimport { useLocation, useNavigate } from 'react-router';\r\nimport { QueryParamsConst } from '../../constants/query-params.constants';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { updateSearchResults } from '../../hooks/useQueryParams.effect';\r\nimport NewsCardList from './components/newsCardList';\r\nimport NoMatch from '../@shared/filters/components/noMatch';\r\nimport useMedia from '../../lib/custom-hooks/useMediaQuery';\r\nimport { NewsListingPlaceholderImgContext } from './components/newsListingContext';\r\nimport Pagination from '../@shared/pagination';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst NewsListing: FC = (props) => {\r\n const model = new NewsListingModel(props);\r\n const isWide = useMedia(`(min-width: ${BreakpointsInPx['lg']})`);\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n const filterQueryString = location?.search;\r\n const filterParams = useMemo(() => new URLSearchParams(location?.search), [filterQueryString]);\r\n const year = filterParams.get(QueryParamsConst.YEAR) || '';\r\n const line = model.findFilterByName('line')?.hidden ? '' : filterParams.get(QueryParamsConst.LINE) || '';\r\n const type = model.findFilterByName('type')?.hidden ? '' : filterParams.get(QueryParamsConst.TYPE) || '';\r\n const filter1 = model.findFilterByName('filter1')?.hidden ? '' : filterParams.get(QueryParamsConst.FILTER1) || '';\r\n const pageNo = filterParams.get(QueryParamsConst.PAGE) || '1';\r\n const noOfCardsPerPage = 6;\r\n const totalPageCount = Math.ceil(model.counter / noOfCardsPerPage);\r\n\r\n const { YEAR, LINE, TYPE, FILTER1 } = QueryParamsConst;\r\n const selectedFilters: TSelectedNewsFilters = {\r\n [YEAR]: year,\r\n [LINE]: line,\r\n [TYPE]: type,\r\n [FILTER1]: filter1,\r\n };\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n const onPaginationChange = (selectedPage: number): void =>\r\n updateSearchResults(navigate, { [QueryParamsConst.PAGE]: selectedPage.toString() });\r\n\r\n return (\r\n \r\n
    \r\n \r\n {isWide ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {model?.items?.length === 0 ? (\r\n \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default NewsListing;\r\n","import { TNextStepsFields, TNextStepsFieldsCard, TNextStepsProps } from '../types/nextSteps.types';\r\nimport { StringField } from '../../../types/types';\r\nimport { ComponentParams } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\n\r\nexport class NextStepsModel {\r\n private readonly fields: TNextStepsFields;\r\n private readonly params: ComponentParams;\r\n\r\n constructor(props: TNextStepsProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params || null;\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get title(): StringField {\r\n return this.fields?.title || { value: '' };\r\n }\r\n\r\n get cards(): TNextStepsFieldsCard[] {\r\n return this.fields?.items || [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport Icon from '../@shared/icon';\r\nimport { TNextStepsFieldsCard, TNextStepsProps } from './types/nextSteps.types';\r\nimport { NextStepsModel } from './models/nextSteps.model';\r\nimport { EditFrameComponent } from '../@shared/editFrame';\r\nimport fields from '../../constants/fields.const';\r\nimport { iconSize } from '../../constants/icon.constants';\r\nimport RoutableSitecoreLink from '../@shared/routableSitecoreLink';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { googleClickCtaEvent } from '../../utils/analytics';\r\n\r\nconst NextSteps = (props: TNextStepsProps) => {\r\n const isEEactive = props?.sitecoreContext?.pageEditing;\r\n\r\n if (!isEEactive && !props?.rendering?.dataSource) {\r\n return null;\r\n }\r\n\r\n const model = new NextStepsModel(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
      \r\n {model.title?.value && (\r\n \r\n )}\r\n {model.cards.map((item: TNextStepsFieldsCard) => (\r\n
    • \r\n {isEEactive ? (\r\n googleClickCtaEvent('Link', item?.fields?.url?.value?.text, model.title?.value)}\r\n >\r\n
      \r\n \r\n \r\n \r\n
      \r\n

      {item?.fields?.url?.value?.text}

      \r\n \r\n ) : (\r\n googleClickCtaEvent('Link', item?.fields?.url?.value?.text, model.title?.value)}\r\n >\r\n
      \r\n \r\n
      \r\n

      {item?.fields?.url?.value?.text}

      \r\n \r\n )}\r\n
    • \r\n ))}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(NextSteps);\r\n","import { BreadcrumbList } from 'schema-dts';\r\nimport { helmetJsonLdProp } from 'react-schemaorg';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TJsonLDObj, TSitecoreContext } from '../../../types/types';\r\nimport {\r\n TNavigationBarBreadcrumbItem,\r\n TNavigationBarFields,\r\n TNavigationBarParams,\r\n TNavigationBarProps,\r\n} from '../types/productBreadcrumbBar.types';\r\n\r\nconst getBreadCrumbAbsoluteUrls = (origin = '', itemUrl = ''): string => {\r\n // function to remove the virtual folder name from origin as it is also appearing in breadcrumb relative url\r\n // and form an absolute url\r\n const itemSubRouteNames = itemUrl.split('/');\r\n const removeStrings: string[] = [];\r\n origin\r\n .replace('https://', '')\r\n .split(/\\//)\r\n .forEach((value) => value && itemSubRouteNames.includes(value) && removeStrings.push(value));\r\n const filteredOrigin = removeStrings.reduce((acc, value) => acc.replace('/' + value, ''), origin);\r\n return filteredOrigin + itemUrl;\r\n};\r\n\r\nexport class NavigationBarModel {\r\n private readonly fields?: TNavigationBarFields;\r\n private readonly context?: TSitecoreContext;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly params?: TNavigationBarParams;\r\n\r\n constructor(props: TNavigationBarProps) {\r\n this.fields = props?.fields || null;\r\n this.context = props?.sitecoreContext || null;\r\n this.rendering = props?.rendering;\r\n this.params = props?.params;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get breadcrumbItems(): Array {\r\n const productItem: TNavigationBarBreadcrumbItem = {\r\n text: this.productsPageLabel || '',\r\n url: this.productsPageUrl || '',\r\n };\r\n\r\n const apiBreadcrumbItems = this.fields?.apiData?.breadcrumbs || [];\r\n\r\n return [productItem, ...apiBreadcrumbItems];\r\n }\r\n\r\n get productsPageLabel(): string | undefined {\r\n return this.fields?.itemData?.fields?.productsPageTitle;\r\n }\r\n\r\n get productsPageUrl(): string | undefined {\r\n return this.fields?.itemData?.fields?.productsPageLink;\r\n }\r\n\r\n get backButtonLabel(): string | undefined {\r\n return this.fields?.itemData?.fields?.backButtonText;\r\n }\r\n\r\n get backButtonUrl(): string | undefined {\r\n return this.fields?.itemData?.fields?.backButtonUrl;\r\n }\r\n\r\n get originUrl(): string {\r\n return this.context?.hostVirtualFolder || '';\r\n }\r\n\r\n get textColor(): string {\r\n return this.params?.textColor || 'White';\r\n }\r\n\r\n get breadcrumbJSONLD(): TJsonLDObj {\r\n return helmetJsonLdProp({\r\n '@context': 'https://schema.org',\r\n '@type': 'BreadcrumbList',\r\n itemListElement: this.breadcrumbItems.map((item, index) => ({\r\n '@type': 'ListItem',\r\n position: index + 1,\r\n name: item.text,\r\n item: getBreadCrumbAbsoluteUrls(this.originUrl, item.url),\r\n })),\r\n });\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { upperCaseWordSplitAndSpace } from '../../../utils/regex.utils';\r\n\r\nconst EmptyApiDataMessage = ({ componentName = '' }) => {\r\n const formattedName = upperCaseWordSplitAndSpace(componentName);\r\n\r\n return (\r\n
    \r\n

    {formattedName} data missing

    \r\n
    \r\n );\r\n};\r\n\r\nexport default EmptyApiDataMessage;\r\n","import {useEffect, useState} from 'react';\r\nimport {windowService} from '../utils/window.utils';\r\nimport useSitecoreContext from './useSitecoreContext';\r\n\r\nconst useExperiencerEditorPlaceholder = (props: any) => {\r\n const {sitecoreContext} = useSitecoreContext();\r\n const isEEActive = sitecoreContext?.pageEditing;\r\n const isPreview = sitecoreContext?.pageState === 'preview';\r\n const hasError = !!(props?.fields?.['error'] || props?.fields?.apiData?.['error']);\r\n const [visitingItemDirectly, setVisitingItemDirectly] = useState(sitecoreContext?.route?.name === '*');\r\n const isPlaceholderShown = (isEEActive || isPreview) && (visitingItemDirectly && hasError);\r\n\r\n useEffect(() => {\r\n const urlSearchParams = new URLSearchParams(windowService().location?.search);\r\n const hasItemId = urlSearchParams.get('sc_itemid') !== null;\r\n setVisitingItemDirectly(hasItemId);\r\n }, []); // eslint-disable-line\r\n\r\n return isPlaceholderShown;\r\n};\r\n\r\nexport default useExperiencerEditorPlaceholder;","import React, { FC } from 'react';\r\nimport Helmet from 'react-helmet';\r\nimport NavigationBarItem from '../@shared/navigationBarItem';\r\nimport { NavigationBarModel } from './models/productBreadcrumbBar.model';\r\nimport { TNavigationBarProps } from './types/productBreadcrumbBar.types';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport useHeroBanner from '../../hooks/useHeroBanner';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport RoutableNotEditableLink from '../@shared/routableNotEditableLink';\r\nimport Icon from '../@shared/icon';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { googleClickBreadcrumbEvent } from '../../utils/analytics';\r\n\r\nconst ProductBreadcrumbBar: FC = (props) => {\r\n const apiResponse = isEmptyResponse(props);\r\n const model = new NavigationBarModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const { isHeroBannerPresent, textColor: heroBannerTextColor } = useHeroBanner();\r\n const isMobile = useMediaQuery(`(max-width: ${BreakpointsInPx['md']})`);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductBreadcrumbBar);\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TProductBuildAndPriceLinkFields, TProductBuildAndPriceLinkProps } from '../types/buildAndPriceLink.types';\r\n\r\nexport class BuildAndPriceLinkModel {\r\n private readonly fields?: TProductBuildAndPriceLinkFields;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TProductBuildAndPriceLinkProps) {\r\n this.fields = props?.fields;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { TProductBuildAndPriceLinkProps } from './types/buildAndPriceLink.types';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { BuildAndPriceLinkModel } from './models/buildAndPriceLink.model';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\n\r\nconst ProductBuildAndPriceLink = (props: TProductBuildAndPriceLinkProps) => {\r\n const model = new BuildAndPriceLinkModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport default ProductBuildAndPriceLink;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n TCHCompatibleLoadersFields,\r\n TCHCompatibleLoadersProps,\r\n TCHCompatibleLoadersTab,\r\n} from '../types/productCompatibleLoaderListing.types';\r\nimport { StringField } from '../../../types/types';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\n\r\nexport class ProductCompatibleLoaderListingModel {\r\n private readonly fields: TCHCompatibleLoadersFields;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TCHCompatibleLoadersProps) {\r\n this.fields = props?.fields;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.fields?.apiData?.title };\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return { value: this.fields?.apiData?.eyebrow };\r\n }\r\n\r\n get description(): StringField {\r\n return { value: appendRootToRichTextInternalLinks(this.fields?.apiData?.description) };\r\n }\r\n\r\n get tabs(): TCHCompatibleLoadersTab[] {\r\n return this.fields?.apiData?.items || [];\r\n }\r\n\r\n get expandLabel(): string {\r\n return this.fields?.apiData?.['expand-label'];\r\n }\r\n\r\n get baseUrl(): string {\r\n return this.fields?.itemData?.fields?.productsItemUrl ?? '';\r\n }\r\n\r\n get templateName(): string {\r\n if (this.rendering?.componentName?.toLowerCase().includes('attachment')) {\r\n return 'Compatible Attachments';\r\n } else {\r\n return 'Compatible Loaders';\r\n }\r\n }\r\n}\r\n","import React, { useRef, useState, useEffect } from 'react';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { googleClickTabEvent } from '../../../../utils/analytics';\r\nimport { windowService } from '../../../../utils/window.utils';\r\nimport CarouselArrow from '../../../@shared/carouselArrow';\r\n\r\nconst CompatibleLoadersTabs = ({ tabs, selectedTab, onSelect }): JSX.Element => {\r\n const tabContainerEl = useRef(null);\r\n const [hideArrows, setHideArrows] = useState(false);\r\n const [showLeftArrow, setShowLeftArrow] = useState(false);\r\n const [showRightArrow, setShowRightArrow] = useState(true);\r\n const isMobile = useMediaQuery('(max-width: 768px)');\r\n\r\n useEffect(() => {\r\n function resizeHandler(): void {\r\n onSelect(0);\r\n }\r\n\r\n resizeHandler();\r\n\r\n windowService().addEventListener('resize', resizeHandler);\r\n return (): void => windowService().removeEventListener('resize', resizeHandler);\r\n }, [tabContainerEl, windowService]); // eslint-disable-line\r\n\r\n useEffect(() => {\r\n if (tabContainerEl?.current) {\r\n const tabContainerDim = tabContainerEl.current.getBoundingClientRect();\r\n const tabChildrens = tabContainerEl.current.children;\r\n if (tabChildrens?.length) {\r\n const lastChild = tabChildrens[tabChildrens.length - 1];\r\n if (lastChild) {\r\n const lastChildDim = lastChild.getBoundingClientRect();\r\n if (tabContainerDim.left > 0 && lastChildDim.right - tabContainerDim.right < 0) {\r\n tabContainerEl.current.style.justifyContent = 'flex-start';\r\n setHideArrows(true);\r\n }\r\n }\r\n }\r\n }\r\n }, [tabContainerEl, selectedTab, tabs]);\r\n\r\n const scrollTab = (direction: string): void => {\r\n if (tabContainerEl?.current) {\r\n const tabChildren = tabContainerEl.current.children[0];\r\n const tabDimension = tabChildren.getBoundingClientRect().width;\r\n\r\n if (direction === 'right') {\r\n tabContainerEl.current.style.right = `${+tabContainerEl.current.style.right.split('p')[0] + tabDimension}px`;\r\n setShowLeftArrow(true);\r\n if (+tabContainerEl.current.style.right.split('p')[0] > tabContainerEl.current.scrollWidth - tabContainerEl.current.offsetWidth) {\r\n tabContainerEl.current.style.right = `${tabContainerEl.current.scrollWidth - tabContainerEl.current.offsetWidth}px`;\r\n setShowRightArrow(false);\r\n }\r\n } else {\r\n tabContainerEl.current.style.right = `${+tabContainerEl.current.style.right.split('p')[0] - tabDimension}px`;\r\n setShowRightArrow(true);\r\n if (+tabContainerEl.current.style.right.split('p')[0] < 0) {\r\n tabContainerEl.current.style.right = '0px';\r\n setShowLeftArrow(false);\r\n }\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (isMobile || hideArrows) return;\r\n }, [tabContainerEl, selectedTab, tabs, isMobile]); // eslint-disable-line\r\n\r\n const goToPreviousSlide = (): void => {\r\n scrollTab('left');\r\n };\r\n\r\n const goToNextSlide = (): void => {\r\n scrollTab('right');\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {tabs.map((tab, index: number) => (\r\n {\r\n onSelect(index);\r\n googleClickTabEvent('Select', tab?.title, index + 1);\r\n }}\r\n className={`product-compatible-loaders-listing__tab ${\r\n index === selectedTab ? 'product-compatible-loaders-listing__tab--selected' : ''\r\n }`}\r\n >\r\n {tab.title}\r\n \r\n ))}\r\n
    \r\n {tabs && tabs.length > 9 && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CompatibleLoadersTabs;\r\n","import React, { useState, useEffect, useMemo, FC } from 'react';\r\nimport { ComponentRendering, isEditorActive, RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { ProductCompatibleLoaderListingModel } from '../../models/productCompatibleLoaderListing.model';\r\nimport { TCHCompatibleLoadersProps } from '../../types/productCompatibleLoaderListing.types';\r\nimport useExperiencerEditorPlaceholder from '../../../../hooks/useExperiencerEditorPlaceholder';\r\nimport { googleClickCardEvent, googleClickRichTextEvent, googleSeeMoreCardEvent } from '../../../../utils/analytics';\r\nimport { isEmptyResponse } from '../../../../utils/checkEmptyResponse';\r\nimport { appendToUrlPath } from '../../../../utils';\r\nimport { windowService, documentService } from '../../../../utils/window.utils';\r\nimport { appendRootToRichTextInternalLinks } from '../../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport CompatibleLoadersTabs from '../compatibleLoadersTabs';\r\nimport AnalyticsVisibleEvent from '../../../@shared/analyticsVisibleEvent';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport ExperienceEditorComponentPlaceholder from '../../../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../../../@shared/emptyApiDataMessage';\r\nimport Picture from '../../../@shared/picture';\r\nimport Icon from '../../../@shared/icon';\r\nimport TextComponentDecider from '../../../@shared/TextComponentDecider';\r\nimport { getTextType } from '../../../../utils/getTextType.utils';\r\nimport '../../styles.scss';\r\n\r\nconst ContentHubCompatibleLoaders: FC = (props: TCHCompatibleLoadersProps) => {\r\n const model = useMemo(() => new ProductCompatibleLoaderListingModel(props), [props]);\r\n const apiResponse = isEmptyResponse(props);\r\n const apiDataLength = props?.fields?.apiData?.items?.length > 0;\r\n const isChildrenPopulated = props?.fields?.apiData?.items?.some((e) => e?.items?.length > 0);\r\n // check with BA about this condition\r\n const headingPopulated = model.eyebrow || model.title || model.description;\r\n const checkEmptiness = apiResponse && apiDataLength && isChildrenPopulated;\r\n const { t } = useTranslation();\r\n const [selectedTab, setSelectedTab] = useState(0);\r\n const [showMoreLoaders, setShowMoreLoader] = useState(false);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n useEffect(() => setShowMoreLoader(false), [selectedTab]);\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!checkEmptiness && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!checkEmptiness && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n const selectedTabItems = model?.tabs?.find((_, index: number) => index === selectedTab)?.items;\r\n\r\n const selectTabEvent = (tabIndex) => {\r\n setSelectedTab(tabIndex);\r\n };\r\n\r\n const showMoreLoaderEvent = (showMoreLoaders) => {\r\n setShowMoreLoader(showMoreLoaders);\r\n if (!showMoreLoaders) {\r\n const element = documentService().getElementById(props.id);\r\n const headerOffset = 85;\r\n const elementPosition = element?.getBoundingClientRect().top;\r\n const offsetPosition = elementPosition ? elementPosition + windowService().pageYOffset - headerOffset : 0;\r\n\r\n windowService().scrollTo({\r\n top: offsetPosition,\r\n behavior: 'smooth',\r\n });\r\n }\r\n googleSeeMoreCardEvent(model?.tabs?.[selectedTab]?.title, selectedTab + 1);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {headingPopulated && (\r\n
    \r\n \r\n\r\n \r\n\r\n \r\n
    \r\n )}\r\n\r\n {model.tabs?.length > 1 && }\r\n\r\n
    \r\n
    \r\n {model?.tabs\r\n .find((_, index: number) => index === selectedTab)\r\n ?.items?.filter((_, index) => (!showMoreLoaders && index < 4) || showMoreLoaders)\r\n .map((loader, itemIndex) => (\r\n {\r\n loader?.url && googleClickCardEvent(model?.tabs?.[selectedTab]?.items?.[itemIndex]?.title, itemIndex + 1);\r\n }}\r\n className={'product-compatible-loaders-listing__link'}\r\n >\r\n \r\n\r\n \r\n {loader?.title}\r\n \r\n\r\n {\r\n e.stopPropagation();\r\n googleClickRichTextEvent(e, model?.tabs?.[selectedTab]?.items?.[itemIndex]?.title, selectedTab + 1);\r\n }}\r\n className={'product-compatible-loaders-listing__card-text rich-text'}\r\n field={{ value: appendRootToRichTextInternalLinks(loader?.description) }}\r\n />\r\n \r\n ))}\r\n
    \r\n {selectedTabItems && selectedTabItems?.length > 4 && (\r\n
    \r\n showMoreLoaderEvent(!showMoreLoaders)}\r\n >\r\n {!showMoreLoaders ? t(props.seeMoreKey) : t(props.seeLessKey)}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ContentHubCompatibleLoaders);\r\n","// Lines dictionary Keyword\r\nexport const eyebrowKeyLineSpeicalOffers = 'cnhi-lineSpecialOffersEyebrow';\r\nexport const titleKeyLineSpeicalOffers = 'cnhi-lineSpecialOffersTitle';\r\nexport const descriptionKeyLineSpeicalOffers = 'cnhi-lineSpecialOffersDescription';\r\n\r\n// Series dictionary keyword\r\n\r\nexport const titleKeySeriesFeature = 'cnhi-seriesFeaturesTitle';\r\n\r\nexport const titleKeyModelListing = 'cnhi-seriesModelsTitle';\r\nexport const eyebrowKeyModelListing = 'cnhi-seriesModelsEyebrow';\r\nexport const descriptionKeyModelListing = 'cnhi-seriesModelsDescription';\r\n\r\nexport const eyebrowKeySeriesSpeicalOffers = 'cnhi-seriesSpecialOffersEyebrow';\r\nexport const titleKeySeriesSpeicalOffers = 'cnhi-seriesSpecialOffersTitle';\r\nexport const descriptionKeySeriesSpeicalOffers = 'cnhi-seriesSpecialOffersDescription';\r\n\r\nexport const eyebrowKeySeriesCompatibleLoaders = 'cnhi-seriesCompatibleLoadersEyebrow';\r\nexport const titleKeySeriesCompatibleLoaders = 'cnhi-seriesCompatibleLoadersTitle';\r\nexport const descriptionKeySeriesCompatibleLoaders = 'cnhi-seriesCompatibleLoadersDescription';\r\n\r\nexport const eyebrowKeySeriesCompatibleAttachments = 'cnhi-seriesCompatibleAttachmentsEyebrow';\r\nexport const titleKeySeriesCompatibleAttachments = 'cnhi-seriesCompatibleAttachmentsTitle';\r\nexport const descriptionKeySeriesCompatibleAttachments = 'cnhi-seriesCompatibleAttachmentsDescription';\r\n\r\nexport const eyebrowKeySeriesBrochure = 'cnhi-seriesBrochureEyebrow';\r\nexport const titleKeySeriesBrochure = 'cnhi-seriesBrochureTitle';\r\nexport const descriptionKeySeriesBrochure = 'cnhi-seriesBrochureDescription';\r\n\r\nexport const eyebrowKeySeriesSpecifications = 'cnhi-seriesSpecificationsEyebrow';\r\nexport const titleKeySeriesSpecifications = 'cnhi-seriesSpecificationsTitle';\r\nexport const notesKeySeriesSpecifications = 'cnhi-seriesSpecificationsNotes';\r\n\r\nexport const eyebrowKeySeriesTestimonials = 'cnhi-seriesTestimonialsEyebrow';\r\nexport const titleKeySeriesTestimonials = 'cnhi-seriesTestimonialsTitle';\r\nexport const descriptionKeySeriesTestimonials = 'cnhi-seriesTestimonialsDescription';\r\n\r\n// Models dictionary keyword\r\n\r\nexport const eyebrowKeyModelCompatibleLoaders = 'cnhi-modelCompatibleLoadersEyebrow';\r\nexport const titleKeyModelCompatibleLoaders = 'cnhi-modelCompatibleLoadersTitle';\r\nexport const descriptionKeyModelCompatibleLoaders = 'cnhi-modelCompatibleLoadersDescription';\r\n\r\nexport const eyebrowKeyModelCompatibleAttachments = 'cnhi-modelCompatibleAttachmentsEyebrow';\r\nexport const titleKeyModelCompatibleAttachments = 'cnhi-modelCompatibleAttachmentsTitle';\r\nexport const descriptionKeyModelCompatibleAttachments = 'cnhi-modelCompatibleAttachmentsDescription';\r\n","import React from 'react';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport CompatibleLoaders from './components/compatibleLoaders';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport {\r\n descriptionKeyModelCompatibleLoaders,\r\n descriptionKeySeriesCompatibleLoaders,\r\n eyebrowKeyModelCompatibleLoaders,\r\n eyebrowKeySeriesCompatibleLoaders,\r\n titleKeyModelCompatibleLoaders,\r\n titleKeySeriesCompatibleLoaders,\r\n} from '../../constants/dictionary.constants';\r\n\r\nconst ProductCompatibleLoaderListing = (props) => {\r\n const apiResponse = isEmptyResponse(props) && props?.fields?.apiData?.items?.length > 0;\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n const getDictionaryKey = (seriesLoadersListingKey, modelLoadersListingKey) => {\r\n if (props?.isModelLoders) {\r\n return modelLoadersListingKey;\r\n }\r\n return seriesLoadersListingKey;\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ProductCompatibleLoaderListing;\r\n","import { useState, useEffect } from 'react';\r\n\r\nconst useDateValidate = (inputDate) => {\r\n const [isWithinMonths, setIsWithinMonths] = useState(false);\r\n\r\n useEffect(() => {\r\n const checkDate = () => {\r\n const currentDate = new Date();\r\n const previousDate = new Date();\r\n previousDate.setMonth(currentDate.getMonth() - 3);\r\n\r\n const selectedDate = new Date(inputDate);\r\n\r\n setIsWithinMonths(selectedDate > previousDate);\r\n };\r\n\r\n if (inputDate) {\r\n checkDate();\r\n }\r\n }, [inputDate]);\r\n\r\n return isWithinMonths;\r\n};\r\n\r\nexport default useDateValidate;\r\n","import React, { FC, useEffect, useRef } from 'react';\r\nimport { WithTranslation, withTranslation } from 'react-i18next';\r\nimport Picture from '../../../@shared/picture';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport Icon from '../../../@shared/icon';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport { TBrochureCardProps } from '../../types/downloadBrochures.types';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport useDateValidate from '../../hooks/useDateValidate';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport '../../../../styles/@shared/downloadBrochures/brochureCard/styles.scss';\r\nimport useFormatDate from '../../../../hooks/useFormatDate';\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\n\r\nconst BrochureCard: FC = (props) => {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n const { title, alt, size, full, icon, alternateImageUrl, thumbnail, digitalBrochureUrl, parsedBrochureDate, componentNumber } = props;\r\n\r\n const desktopRendition = alternateImageUrl ? { url: `${alternateImageUrl}&t=Size500` } : { url: `${thumbnail}&t=Size500` };\r\n const mobileRendition = alternateImageUrl ? { url: `${alternateImageUrl}&t=Size500` } : { url: `${thumbnail}&t=Size300` };\r\n const isNewCard = useDateValidate(parsedBrochureDate);\r\n const cardDate = useFormatDate(parsedBrochureDate);\r\n const { t } = props;\r\n\r\n const linkWrapperRef = useRef(null);\r\n const a2aKitRef = useRef(null);\r\n\r\n useEffect(() => {\r\n const handleClick = (e: MouseEvent) => {\r\n if (a2aKitRef.current && (e.target === a2aKitRef.current || a2aKitRef.current.contains(e.target as Node))) {\r\n googleClickCtaEvent('Brochure', t('cnhi-share'), title, componentNumber);\r\n }\r\n };\r\n linkWrapperRef?.current?.addEventListener('click', handleClick, true);\r\n\r\n return () => {\r\n linkWrapperRef?.current?.removeEventListener('click', handleClick, true);\r\n };\r\n }, [componentNumber, linkWrapperRef, a2aKitRef]);\r\n\r\n return (\r\n
    \r\n
    \r\n {isNewCard ? (\r\n
    \r\n \r\n
    \r\n ) : null}\r\n \r\n
    \r\n\r\n
    \r\n {title ?

    {title}

    : null}\r\n {size ? {size}MB : null}\r\n {cardDate && size &&

     | 

    }\r\n {cardDate && }\r\n
    \r\n
    \r\n {digitalBrochureUrl ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n googleClickCtaEvent('Brochure', t('cnhi-download'), title, componentNumber)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withTranslation()(BrochureCard);\r\n","/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport ctaTypes from '../../../../../enums/CTA.enums';\r\nimport DictionaryTerm from '../../../dictionaryTerm';\r\nimport Icon from '../../../icon';\r\n\r\nexport type TSearchBoxProps = Partial<{\r\n handleSearchSubmit: React.DOMAttributes['onSubmit'];\r\n handleChange: React.InputHTMLAttributes['onChange'];\r\n searchedTerm: string;\r\n filterdCards: {\r\n id?: number | string;\r\n title?: string;\r\n }[];\r\n handleSuggestionClick: (title?: string, id?: string | number) => void;\r\n handleClearSearch: () => void;\r\n titleDictionaryTerm: string;\r\n ctaDictionaryTerm: string;\r\n extraClassName: string;\r\n}>;\r\n\r\nconst SearchBox: FC = ({\r\n searchedTerm = '',\r\n filterdCards = [],\r\n handleSearchSubmit = () => {},\r\n handleChange = () => {},\r\n handleSuggestionClick = () => {},\r\n handleClearSearch,\r\n titleDictionaryTerm = '',\r\n ctaDictionaryTerm = '',\r\n extraClassName = '',\r\n}) => {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {handleClearSearch && (\r\n \r\n )}\r\n {filterdCards?.length > 0 && (\r\n
    \r\n {filterdCards?.map(({ title, id }) => (\r\n
    handleSuggestionClick(title)}>\r\n {title}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SearchBox;\r\n","import React, { useEffect, useState, FC, useRef } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport SearchBox from '../../../@shared/filters/components/searchBox';\r\nimport { DownloadBrochureListingModel } from '../../models/downloadBrochureListing.model';\r\nimport { QueryParamsConst } from '../../../../constants/query-params.constants';\r\nimport { debounceHandler } from '../../../../utils/debounceHandler.utils';\r\nimport { APIPrefix } from '../../../../constants/api.constants';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\nimport { TDownloadBrochureListingFilters } from '../../types/downloadBrochures.types';\r\nimport { googleDownloadBrochureListingEvent } from '../../../../utils/analytics';\r\nimport { brochuresResultsOpen } from '../../../../constants/analytics.constants';\r\n\r\nconst Search: FC<{\r\n model: DownloadBrochureListingModel;\r\n selectedFilters: TDownloadBrochureListingFilters;\r\n}> = ({ model, selectedFilters }) => {\r\n const timerRef = useRef>();\r\n const navigate = useNavigate();\r\n const { SEARCH_BROCHURE, SEARCH_BROCHURE_ID } = QueryParamsConst;\r\n const prevSearchedTerm = selectedFilters[SEARCH_BROCHURE];\r\n\r\n const [searchedTerm, setSearchedTerm] = useState(prevSearchedTerm || '');\r\n const [filteredCards, setFilteredCards] = useState([]);\r\n const context = useSitecoreContext();\r\n const itemID = context?.sitecoreContext?.route?.itemId;\r\n const siteLanguage = context?.sitecoreContext?.language;\r\n\r\n useEffect(() => {\r\n setSearchedTerm(prevSearchedTerm);\r\n }, [prevSearchedTerm]);\r\n\r\n const getSearchSuggestions = () => {\r\n const getApiURL = `/${APIPrefix}/download-brochure/searchbrochuredata?pageid=${itemID}&language=${siteLanguage}&searchbrochure=${searchedTerm}`;\r\n fetch(getApiURL)\r\n .then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n throw Error(`${res.status} : Failed to fetch data`);\r\n }\r\n })\r\n .then((result) => {\r\n setFilteredCards(result);\r\n })\r\n .catch((error) => {\r\n throw Error(`${error} occurred while fetching data`);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n searchedTerm?.length >= 3\r\n ? debounceHandler(getSearchSuggestions, timerRef, 500)\r\n : setFilteredCards([]);\r\n }, [searchedTerm]);\r\n\r\n const updateSearchedTextFilter = (searchedTerm: string, id?) => {\r\n model.resetFilter(navigate);\r\n setSearchedTerm(searchedTerm);\r\n model.updateQueryByKey(navigate, SEARCH_BROCHURE, searchedTerm);\r\n model.updateQueryByKey(navigate, SEARCH_BROCHURE_ID, id);\r\n searchedTerm.length > 0 &&\r\n googleDownloadBrochureListingEvent(brochuresResultsOpen, '', '', '', searchedTerm);\r\n };\r\n\r\n const handleSearchSubmit = (event) => {\r\n event.preventDefault();\r\n searchedTerm.length > 0 && updateSearchedTextFilter(searchedTerm);\r\n };\r\n\r\n return (\r\n setSearchedTerm(target?.value || '')}\r\n handleSuggestionClick={(title, id) => updateSearchedTextFilter(title || '', id)}\r\n handleClearSearch={() => updateSearchedTextFilter('', '')}\r\n titleDictionaryTerm=\"cnhi-filter-search-title\"\r\n ctaDictionaryTerm=\"cnhi-download-brochure-listing-filter-search-cta\"\r\n extraClassName=\"download-brochure-listing-search\"\r\n />\r\n );\r\n};\r\n\r\nexport default Search;\r\n","import React, { FC } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { QueryParamsConst } from '../../../../constants/query-params.constants';\r\nimport Dropdown, { TDropdownProps } from '../../../@shared/filters/components/dropdown';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Icon from '../../../@shared/icon';\r\nimport Search from '../search';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { DownloadBrochureListingModel } from '../../models/downloadBrochureListing.model';\r\nimport { TDownloadBrochureFilter, TDownloadBrochureListingFilters } from '../../types/downloadBrochures.types';\r\nimport { googleDownloadBrochureListingEvent } from '../../../../utils/analytics';\r\nimport { brochuresResultsOpen } from '../../../../constants/analytics.constants';\r\n\r\nconst DesktopFilter: FC<{\r\n model: DownloadBrochureListingModel;\r\n selectedFilters: TDownloadBrochureListingFilters;\r\n}> = ({ model, selectedFilters }) => {\r\n const navigate = useNavigate();\r\n const { t } = useTranslation();\r\n const { CATEGORIES, LINE, SERIES } = QueryParamsConst;\r\n\r\n const getDropdownOptions = (\r\n filter?: TDownloadBrochureFilter,\r\n titleDictionaryKey?: string\r\n ): TDropdownProps['dropdownOptions'] => {\r\n if (!filter) return [];\r\n return [\r\n { id: filter.filterType, title: t(titleDictionaryKey || '') },\r\n ...(filter?.value?.map((value) => ({ id: value, title: value })) || []),\r\n ];\r\n };\r\n\r\n const handleOptionClick = (\r\n ind: number,\r\n queryKey: string,\r\n options: TDropdownProps['dropdownOptions']\r\n ) => {\r\n const filterValue = ind === 0 ? '' : (options?.[ind].id as string);\r\n const query =\r\n queryKey == CATEGORIES\r\n ? { categories: filterValue, line: '', series: '' }\r\n : queryKey == LINE\r\n ? { categories: '', line: filterValue, series: '' }\r\n : { series: filterValue };\r\n model.updateQueryByBulkKeys(navigate, query);\r\n model.resetSearch(navigate);\r\n googleDownloadBrochureListingEvent(brochuresResultsOpen, query.line, query.series, query.categories);\r\n };\r\n\r\n const dropDownsProps = [\r\n {\r\n filter: model.findFilterByName('categories'),\r\n queryKey: CATEGORIES,\r\n titleDictionaryKey: 'cnhi-download-brochure-listing-all-categories',\r\n id: 'categories-dropdown',\r\n hidden: false,\r\n },\r\n {\r\n filter: model.findFilterByName('line'),\r\n queryKey: LINE,\r\n titleDictionaryKey: 'cnhi-download-brochure-listing-all-lines',\r\n id: 'line-dropdown',\r\n hidden: false,\r\n },\r\n {\r\n filter: model.findFilterByName('series'),\r\n queryKey: SERIES,\r\n titleDictionaryKey: 'cnhi-download-brochure-listing-all-series',\r\n id: 'series-dropdown',\r\n hidden: !selectedFilters[LINE],\r\n },\r\n ];\r\n\r\n const shouldShowResetFilter =\r\n selectedFilters[CATEGORIES] !== '' ||\r\n selectedFilters[LINE] !== '' ||\r\n selectedFilters[SERIES] !== '';\r\n const resetFilterCTA = shouldShowResetFilter && (\r\n model.resetFilter(navigate)}\r\n >\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n {resetFilterCTA}\r\n
    \r\n
    \r\n
    \r\n {dropDownsProps.map(({ filter, queryKey, id, titleDictionaryKey, hidden }) => {\r\n const options = getDropdownOptions(filter, titleDictionaryKey);\r\n if (!options?.length || hidden) return null;\r\n return (\r\n handleOptionClick(ind, queryKey, options)}\r\n selectedOptionInd={\r\n (filter?.value?.findIndex((val) => val === selectedFilters[queryKey]) ?? -1) + 1\r\n }\r\n />\r\n );\r\n })}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default DesktopFilter;\r\n","import { QueryParamsConst } from '../../../constants/query-params.constants';\r\nimport { updateSearchResults } from '../../../hooks/useQueryParams.effect';\r\nimport { TBaseObj, TIconFromRenderingParams } from '../../../types/types';\r\nimport { TBrochureCardField, TDownloadBrochureFields, TDownloadBrochuresProps } from '../types/downloadBrochures.types';\r\n\r\nexport class DownloadBrochureListingModel {\r\n private readonly fields: TDownloadBrochureFields;\r\n\r\n constructor(props: TDownloadBrochuresProps) {\r\n this.fields = props.fields;\r\n }\r\n\r\n get isUnreleased(): boolean | undefined {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n return this.fields?.itemData?.contextItemUrl || '';\r\n }\r\n\r\n get icon(): TIconFromRenderingParams[] {\r\n return this.fields?.itemData?.iconsList || [];\r\n }\r\n\r\n get brochureCards(): TBrochureCardField[] {\r\n return this.fields?.apiData?.items || [];\r\n }\r\n\r\n get filters() {\r\n return this.fields?.apiData?.filters || [];\r\n }\r\n\r\n get totalNumberOfCards(): number {\r\n return this.fields?.apiData?.totalSearchResults || 0;\r\n }\r\n\r\n findFilterByName(filterName) {\r\n return this?.filters.find((filter) => filter.filterType === filterName) || {};\r\n }\r\n\r\n resetFilter(navigate) {\r\n updateSearchResults(navigate, {\r\n [QueryParamsConst.PAGE]: '',\r\n [QueryParamsConst.CATEGORIES]: '',\r\n [QueryParamsConst.LINE]: '',\r\n [QueryParamsConst.SERIES]: '',\r\n });\r\n }\r\n\r\n resetSearch(navigate) {\r\n updateSearchResults(navigate, {\r\n [QueryParamsConst.PAGE]: '',\r\n [QueryParamsConst.SEARCH_BROCHURE]: '',\r\n [QueryParamsConst.SEARCH_BROCHURE_ID]: '',\r\n });\r\n }\r\n\r\n updateQueryByKey(navigate, key, val) {\r\n const resetPage = key != QueryParamsConst.PAGE;\r\n\r\n const keyValues = resetPage\r\n ? {\r\n [QueryParamsConst.PAGE]: '',\r\n [key]: val || '',\r\n }\r\n : {\r\n [key]: val || '',\r\n };\r\n\r\n updateSearchResults(navigate, keyValues);\r\n }\r\n\r\n updateQueryByBulkKeys(navigate, obj: TBaseObj) {\r\n updateSearchResults(navigate, obj);\r\n }\r\n}\r\n","import React, { useEffect, useState, FC } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useNavigate } from 'react-router';\r\nimport { documentService } from '../../../../utils/window.utils';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport Accordion, { TAccordionProps } from '../../../@shared/filters/components/accordion';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Search from '../search';\r\nimport { QueryParamsConst } from '../../../../constants/query-params.constants';\r\nimport { DownloadBrochureListingModel } from '../../models/downloadBrochureListing.model';\r\nimport {\r\n TDownloadBrochureFilter,\r\n TDownloadBrochureListingFilters,\r\n} from '../../types/downloadBrochures.types';\r\nimport { TDropdownProps } from '../../../@shared/filters/components/dropdown';\r\nimport { googleDownloadBrochureListingEvent } from '../../../../utils/analytics';\r\nimport { brochuresResultsOpen } from '../../../../constants/analytics.constants';\r\n\r\nconst MobileFilter: FC<{\r\n model: DownloadBrochureListingModel;\r\n selectedFilters: TDownloadBrochureListingFilters;\r\n}> = ({ model, selectedFilters }) => {\r\n const [shouldOpenFilterModal, setShouldOpenFilterModal] = useState(false);\r\n const [selectedFiltersCopy, setSelectedFiltersCopy] = useState(selectedFilters);\r\n const navigate = useNavigate();\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n\r\n if (shouldOpenFilterModal) docElement.body.classList.add('body--with-filter-model');\r\n else docElement.body.classList.remove('body--with-filter-model');\r\n }, [shouldOpenFilterModal]);\r\n\r\n const { CATEGORIES, LINE, SERIES, PAGE } = QueryParamsConst;\r\n\r\n const getAccordionOptionsByInd = (\r\n filter?: TDownloadBrochureFilter,\r\n titleDictionaryKey?: string\r\n ): TAccordionProps['accordionOptions'] => {\r\n if (!filter) return [];\r\n return [\r\n { id: filter.filterType, title: t(titleDictionaryKey || '') },\r\n ...(filter?.value?.map((value) => ({ id: value, title: value })) || []),\r\n ];\r\n };\r\n\r\n const accordionsProps = [\r\n {\r\n filter: model.findFilterByName('categories'),\r\n queryKey: CATEGORIES,\r\n titleDictionaryKey: 'cnhi-download-brochure-listing-all-categories',\r\n id: 'categories-accordion',\r\n hidden: false,\r\n accordionTitle: (\r\n \r\n ),\r\n },\r\n {\r\n filter: model.findFilterByName('line'),\r\n queryKey: LINE,\r\n titleDictionaryKey: 'cnhi-download-brochure-listing-all-lines',\r\n id: 'line-accordion',\r\n hidden: false,\r\n accordionTitle: ,\r\n },\r\n {\r\n filter: model.findFilterByName('series'),\r\n queryKey: SERIES,\r\n titleDictionaryKey: 'cnhi-download-brochure-listing-all-series',\r\n id: 'series-accordion',\r\n hidden: !selectedFilters[LINE],\r\n accordionTitle: (\r\n \r\n ),\r\n },\r\n ];\r\n\r\n const handleOptionClick = (\r\n ind: number,\r\n queryKey: string,\r\n options: TDropdownProps['dropdownOptions']\r\n ) => {\r\n const filterValue = ind === 0 ? '' : (options?.[ind].id as string);\r\n const query =\r\n queryKey == CATEGORIES\r\n ? { categories: filterValue, line: '', series: '' }\r\n : queryKey == LINE\r\n ? { categories: '', line: filterValue, series: '' }\r\n : { series: filterValue };\r\n model.updateQueryByBulkKeys(navigate, query);\r\n model.resetSearch(navigate);\r\n googleDownloadBrochureListingEvent(brochuresResultsOpen, query.line, query.series, query.categories);\r\n };\r\n\r\n const revertToOldFilters = () => {\r\n if (!selectedFilters['SEARCH_BROCHURE'])\r\n model.updateQueryByBulkKeys(navigate, selectedFiltersCopy);\r\n };\r\n const toggleModal = () => setShouldOpenFilterModal(!shouldOpenFilterModal);\r\n\r\n return (\r\n
    \r\n {\r\n toggleModal();\r\n revertToOldFilters();\r\n }}\r\n >\r\n \r\n \r\n
    \r\n {shouldOpenFilterModal && (\r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n setShouldOpenFilterModal(false);\r\n revertToOldFilters();\r\n }}\r\n />\r\n
    \r\n
    \r\n {accordionsProps.map(\r\n ({ filter, id, accordionTitle, queryKey, titleDictionaryKey, hidden }) => {\r\n const options = getAccordionOptionsByInd(filter, titleDictionaryKey);\r\n if (!options?.length || hidden) return null;\r\n return (\r\n handleOptionClick(ind, queryKey, options)}\r\n selectedOptionInd={\r\n (filter?.value?.findIndex((val) => val === selectedFilters[queryKey]) ?? -1) +\r\n 1\r\n }\r\n />\r\n );\r\n }\r\n )}\r\n
    \r\n
    \r\n {\r\n model.resetFilter(navigate);\r\n setSelectedFiltersCopy({\r\n [PAGE]: '',\r\n [LINE]: '',\r\n [SERIES]: '',\r\n [CATEGORIES]: '',\r\n });\r\n }}\r\n >\r\n \r\n \r\n {\r\n setSelectedFiltersCopy(selectedFilters);\r\n toggleModal();\r\n }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default MobileFilter;\r\n","import React, { FC, useEffect, useMemo } from 'react';\r\nimport BrochureCard from './components/brochureCard';\r\nimport { useLocation, useNavigate } from 'react-router';\r\nimport { updateSearchResults } from '../../hooks/useQueryParams.effect';\r\nimport { QueryParamsConst } from '../../constants/query-params.constants';\r\nimport Pagination from '../@shared/pagination';\r\nimport DesktopFilter from './components/desktopFilter';\r\nimport { DownloadBrochureListingModel } from './models/downloadBrochureListing.model';\r\nimport MobileFilter from './components/mobileFilter';\r\nimport DictionaryTerm from '../@shared/dictionaryTerm';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport { documentService, windowService } from '../../utils/window.utils';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport {\r\n TDownloadBrochureListingFilters,\r\n TDownloadBrochuresProps,\r\n} from './types/downloadBrochures.types';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\n\r\nconst ProductDownloadBrochureListing: FC = (props) => {\r\n const model = new DownloadBrochureListingModel(props);\r\n\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const filterQueryString = location?.search;\r\n const filterParams = useMemo(\r\n () => new URLSearchParams(location?.search),\r\n [filterQueryString]\r\n );\r\n const categories = filterParams.get(QueryParamsConst.CATEGORIES) || '';\r\n const line = filterParams.get(QueryParamsConst.LINE) || '';\r\n const series = filterParams.get(QueryParamsConst.SERIES) || '';\r\n const searchText = filterParams.get(QueryParamsConst.SEARCH_BROCHURE) || '';\r\n const selectedPage = filterParams.get(QueryParamsConst.PAGE) || '1';\r\n const selectedPageNo = parseInt(selectedPage);\r\n const noOfCardsPerPage = 12;\r\n const { CATEGORIES, LINE, SERIES, SEARCH_BROCHURE } = QueryParamsConst;\r\n const selectedFilters: TDownloadBrochureListingFilters = {\r\n [CATEGORIES]: categories,\r\n [LINE]: line,\r\n [SERIES]: series,\r\n [SEARCH_BROCHURE]: searchText,\r\n };\r\n\r\n const totalPageCount = Math.ceil(model.totalNumberOfCards / noOfCardsPerPage);\r\n\r\n const apiResponse = isEmptyResponse(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n const shareScript = 'https://static.addtoany.com/menu/page.js';\r\n const addthisScript = documentService()?.createElement?.('script');\r\n addthisScript.setAttribute('src', shareScript);\r\n const shareContentScript = documentService()?.querySelector?.(`[src=\"${shareScript}\"]`);\r\n if (documentService()?.body && !shareContentScript)\r\n documentService()?.body?.appendChild?.(addthisScript);\r\n else windowService()?.a2a?.init_all?.();\r\n });\r\n }, [model.contextItemUrl, selectedFilters, selectedPage]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n const onPaginationChange = (selectedPage: number): void => {\r\n updateSearchResults(navigate, { [QueryParamsConst.PAGE]: selectedPage.toString() });\r\n };\r\n\r\n return (\r\n
    \r\n \r\n {isDesktop ? (\r\n <>\r\n
    \r\n \r\n (\r\n {model.totalNumberOfCards})\r\n \r\n
    \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n {model.brochureCards.map((card, index) => (\r\n \r\n ))}\r\n
    \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ProductDownloadBrochureListing;\r\n","import React, { FC } from 'react';\r\nimport { TContentHubHeroBannerProps } from './types/productHeroBanner.types';\r\nimport { ComponentRendering, isEditorActive, RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { ProductHeroBannerModel } from './models/productHeroBanner.model';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport CTAButton, { ctaEnums } from '../@shared/ctaButton';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport RoutableNotEditableLink from '../@shared/routableNotEditableLink';\r\nimport FadeDownEffect from '../@shared/fadeDownEffect';\r\nimport Picture from '../@shared/picture';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport { googleClickCtaEvent } from '../../utils/analytics';\r\nimport useGetBuildAndPriceLink from '../../hooks/useGetBuildAndPriceLink';\r\nimport { appendRootToInternalLink } from '../../utils/appendRootToInternalLink.utils';\r\nimport DictionaryTerm from '../@shared/dictionaryTerm';\r\n\r\nconst ProductHeroBanner: FC = (props) => {\r\n const model = new ProductHeroBannerModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const apiResponse = isEmptyResponse(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const buildAndPriceUrl = useGetBuildAndPriceLink('line');\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {/* Need to update useHeroBanner hook if the images sent to Picture component are changed */}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n model?.enableBuildPriceCTA && buildAndPriceUrl && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n {model?.primaryLink?.label && model?.primaryLink?.url && (\r\n \r\n \r\n \r\n googleClickCtaEvent('Hero', model?.primaryLink?.label, model?.title ?? model?.eyebrow)}\r\n >\r\n {model.primaryLink.label}\r\n \r\n \r\n \r\n \r\n )}\r\n {model?.secondaryLink?.label && model?.secondaryLink?.url && (\r\n \r\n \r\n \r\n googleClickCtaEvent('Hero', model?.secondaryLink?.label, model?.title ?? model?.eyebrow)}\r\n >\r\n {model.secondaryLink.label}\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProductHeroBanner;\r\n","import React, { FC } from 'react';\r\nimport { TContentHubHeroBannerSeriesDetailProps } from './types/productHeroBannerSeriesDetail.types';\r\nimport { isEditorActive, RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { ContentHubHeroBannerSeriesDetailModel } from './models/productHeroBannerSeriesDetail.model';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport CTAButton, { ctaEnums } from '../@shared/ctaButton';\r\nimport RoutableNotEditableLink from '../@shared/routableNotEditableLink';\r\nimport Picture from '../@shared/picture';\r\nimport FadeDownEffect from '../@shared/fadeDownEffect';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport { googleClickCtaEvent } from '../../utils/analytics';\r\nimport useGetBuildAndPriceLink from '../../hooks/useGetBuildAndPriceLink';\r\nimport DictionaryTerm from '../@shared/dictionaryTerm';\r\nimport { appendRootToInternalLink } from '../../utils/appendRootToInternalLink.utils';\r\n\r\nconst ProductHeroBannerSeriesDetail: FC = (props) => {\r\n const model = new ContentHubHeroBannerSeriesDetailModel(props);\r\n const apiResponse = isEmptyResponse(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const isMobile = useMediaQuery(`(max-width: ${BreakpointsInPx['md']})`);\r\n const buildAndPriceUrl = useGetBuildAndPriceLink('series');\r\n\r\n const clickHeroCtaEvent = (label: string | undefined) => {\r\n googleClickCtaEvent('Hero', label, model.title);\r\n };\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {model.labelCost && model.price && (\r\n \r\n <>\r\n \r\n \r\n \r\n )}\r\n {\r\n \r\n \r\n \r\n }\r\n {!isMobile ? (\r\n \r\n <>\r\n {model?.enableBuildPriceCTA && buildAndPriceUrl && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {model?.primaryLink?.label && model?.primaryLink?.url && (\r\n \r\n clickHeroCtaEvent(model?.primaryLink?.label)}\r\n >\r\n {model.primaryLink.label}\r\n \r\n \r\n )}\r\n {model?.secondaryLink?.label && model?.secondaryLink?.url && (\r\n \r\n clickHeroCtaEvent(model?.secondaryLink?.label)}\r\n >\r\n {model.secondaryLink.label}\r\n \r\n \r\n )}\r\n \r\n \r\n ) : null}\r\n
    \r\n {/* Need to update useHeroBanner hook if the images sent to Picture component are changed */}\r\n \r\n \r\n
    \r\n
    \r\n {model.summarySpecs?.map((item) => (\r\n
    \r\n \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n {isMobile ? (\r\n
    \r\n {model?.enableBuildPriceCTA && buildAndPriceUrl && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {model?.primaryLink?.label && model?.primaryLink?.url && (\r\n \r\n clickHeroCtaEvent(model?.primaryLink?.label)}\r\n >\r\n {model.primaryLink.label}\r\n \r\n \r\n )}\r\n {model?.secondaryLink?.label && model?.secondaryLink?.url && (\r\n \r\n clickHeroCtaEvent(model?.secondaryLink?.label)}\r\n >\r\n {model.secondaryLink.label}\r\n \r\n \r\n )}\r\n
    \r\n ) : null}\r\n
    \r\n );\r\n};\r\n\r\nexport default ProductHeroBannerSeriesDetail;\r\n","import React, { FC } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TLineItemProps } from '../types/productLinesListing.types';\r\nimport RoutableSitecoreLink from '../../@shared/routableSitecoreLink';\r\nimport Picture from '../../@shared/picture';\r\nimport { googleClickCardEvent } from '../../../utils/analytics';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\n\r\nconst LineItem: FC = ({ url, lineItem, componentNumber }) => (\r\n googleClickCardEvent(lineItem?.title, componentNumber)}\r\n >\r\n
    \r\n \r\n
    \r\n

    {lineItem?.title}

    \r\n \r\n \r\n);\r\n\r\nexport default LineItem;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TProductLinesData, TProductLinesFields, TProductLinesListingProps } from '../types/productLinesListing.types';\r\nimport { StringField } from '../../../types/types';\r\n\r\nexport class ProductLinesListingModel {\r\n private readonly fields: null | TProductLinesFields;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TProductLinesListingProps) {\r\n this.fields = props?.fields || null;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.itemData?.fields?.lineListingTitle;\r\n }\r\n\r\n get productListData(): TProductLinesData | undefined {\r\n return this.fields?.apiData;\r\n }\r\n\r\n get url(): string | undefined {\r\n return this.fields?.itemData?.contextItemUrl;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { ComponentRendering, isEditorActive, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport LineItem from './components/lineItem';\r\nimport { appendToUrlPath } from '../../utils';\r\nimport { ProductLinesListingModel } from './model/productLinesListing.model';\r\nimport { TProductLinesListingProps } from './types/productLinesListing.types';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst ProductLinesListing: FC = (props) => {\r\n const model = new ProductLinesListingModel(props);\r\n const apiResponse = isEmptyResponse(props);\r\n const lineItems = model?.productListData?.items || [];\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // placeholder thumbnail is not required as the component is in products page and always loaded with component data\r\n\r\n // data missing\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n {model.title && }\r\n
    \r\n {lineItems.map((lineItem, i) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ProductLinesListing;\r\n","import React, { FunctionComponent, useState } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { RichText, DateField, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport CTAButton, { ctaEnums } from '../@shared/ctaButton';\r\nimport ModalDialog from '../@shared/modalDialog';\r\nimport Picture from '../@shared/picture';\r\nimport RoutableSitecoreLink from '../@shared/routableSitecoreLink';\r\nimport { ContentHubSpecialOffersSlideModel } from './models/specialOffers.model';\r\nimport { googleClickCtaEvent } from '../../utils/analytics';\r\nimport { appendRootToRichTextInternalLinks } from '../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../utils/appendRootToInternalLink.utils';\r\nimport useFormatDate from '../../hooks/useFormatDate';\r\n\r\nconst CarouselSlide: FunctionComponent<\r\n WithTranslation & { model: ContentHubSpecialOffersSlideModel; isDesktop: boolean; cardIndex: number }\r\n> = ({ model, isDesktop, cardIndex, t }) => {\r\n const [modalIsOpen, setIsOpen] = useState(false);\r\n const formattedDate = useFormatDate(model?.expiration?.value);\r\n const { buttonPrimary, buttonSecondary } = model || {};\r\n const secondaryLinkWithRootAppended = appendRootToInternalLink(buttonSecondary?.value?.href);\r\n\r\n if (buttonSecondary?.value?.href) {\r\n buttonSecondary.value.href = secondaryLinkWithRootAppended;\r\n }\r\n\r\n const openModal = (): void => {\r\n setIsOpen(true);\r\n };\r\n\r\n const closeModal = (): void => {\r\n setIsOpen(false);\r\n };\r\n\r\n return (\r\n <>\r\n {model.disclaimer && (\r\n \r\n \r\n \r\n )}\r\n {model.badge ? (\r\n
    \r\n \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n {model?.asset?.rendition_desktop_size1000?.url ? (\r\n \r\n ) : (\r\n
    \r\n )}\r\n\r\n
    \r\n
    \r\n
    \r\n {model.title && (\r\n \r\n )}\r\n
    \r\n {model.disclaimer && (\r\n \r\n )}\r\n
    \r\n : \r\n formattedDate} />\r\n
    \r\n
    \r\n
    \r\n {buttonPrimary?.value?.href && buttonPrimary?.value?.title && (\r\n \r\n googleClickCtaEvent('Button', buttonPrimary?.value.title, model?.title?.value, cardIndex)}\r\n >\r\n {buttonPrimary.value.title}\r\n \r\n \r\n )}\r\n {model?.secondaryButtonExistsOrIsEE && (!isDesktop || model.hasWideCardStyle) && (\r\n \r\n googleClickCtaEvent('Button', buttonSecondary?.value.title, model?.title?.value, cardIndex)}\r\n >\r\n {buttonSecondary.value.title}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withTranslation()(CarouselSlide);\r\n","export const SP_QUERY_STRINGS = {\r\n PAGE: 'sp_page',\r\n CATEGORY: 'sp_category',\r\n LINE: 'sp_line',\r\n SERIES: 'sp_series',\r\n MODEL: 'sp_model',\r\n};\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TFunction } from 'i18next';\r\nimport {\r\n ContentHubSpecialOffersProps,\r\n ContentHubSpecialOffersRendererFields,\r\n ContentHubSpecialOffersRendererParams,\r\n IContentHubSpecialOffersSlideFields,\r\n TAsset,\r\n} from '../types/specialOffers.types';\r\nimport { ImageField, LinkField, StringField, TLinkField, TRendition } from '../../../types/types';\r\nimport { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { SP_QUERY_STRINGS } from '../../../constants/special-offers-page.constants';\r\n\r\nexport class ContentHubSpecialOffersSlideModel {\r\n private readonly card: IContentHubSpecialOffersSlideFields;\r\n private readonly fields: null | ContentHubSpecialOffersRendererFields;\r\n private readonly itemIndex: number;\r\n private readonly isEE: boolean;\r\n private readonly t?: TFunction;\r\n private readonly specialOfferMainPageLink: string;\r\n\r\n constructor(Card: IContentHubSpecialOffersSlideFields, index, isEE, t?: TFunction, specialOfferMainPageLink?: string) {\r\n this.card = Card || null;\r\n this.itemIndex = index;\r\n this.isEE = isEE;\r\n this.t = t;\r\n this.specialOfferMainPageLink = specialOfferMainPageLink || '';\r\n }\r\n\r\n get id(): string {\r\n return this.card?.id ?? '';\r\n }\r\n\r\n get titleUrl(): string {\r\n return this.card?.titleUrl || '';\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.card?.formattedTitle };\r\n }\r\n\r\n get description(): StringField {\r\n return { value: this.card?.description };\r\n }\r\n\r\n get type(): StringField {\r\n const defaultValue = { value: 'offerCardRegular' };\r\n if (this.itemIndex === 0) defaultValue.value = 'offerCardWide';\r\n return defaultValue;\r\n }\r\n\r\n get disclaimer(): string {\r\n return this.card?.disclaimer;\r\n }\r\n\r\n get expiration(): StringField {\r\n return { value: this.card?.expiration };\r\n }\r\n\r\n get badge(): string {\r\n return this.card?.badge;\r\n }\r\n\r\n get expirationLabel(): StringField {\r\n return { value: this.card?.expirationLabel };\r\n }\r\n\r\n get image(): ImageField {\r\n return {\r\n value: {\r\n src: this.card?.assets?.[0]?.full,\r\n alt: this.card?.assets?.[0]?.alt,\r\n },\r\n };\r\n }\r\n\r\n get asset(): TAsset | undefined {\r\n return this.card?.assets?.[0];\r\n }\r\n\r\n get buttonPrimary(): LinkField {\r\n if (!this.titleUrl || !this.specialOfferMainPageLink) return { value: { href: '', title: '' } };\r\n const title = this.t?.('cnhi-special-offer-learn-more');\r\n return {\r\n value: {\r\n href: `${this.specialOfferMainPageLink}/${this.titleUrl}`,\r\n title,\r\n text: title,\r\n },\r\n };\r\n }\r\n\r\n get buttonSecondary(): LinkField {\r\n return {\r\n value: {\r\n href: this.card?.button2?.url,\r\n title: this.card?.button2?.label,\r\n },\r\n };\r\n }\r\n\r\n get hasWideCardStyle(): boolean {\r\n return this.card?.cardStyles === 'Wide';\r\n }\r\n\r\n get desktopRendition(): TRendition | undefined {\r\n return this.hasWideCardStyle ? this.asset?.rendition_desktop_size1000 : this.asset?.rendition_desktop_size500;\r\n }\r\n\r\n get mobileRendition(): TRendition | undefined {\r\n return this.asset?.rendition_mobile_size300;\r\n }\r\n\r\n get secondaryButtonExistsOrIsEE(): boolean {\r\n return !!((this.card?.button2?.url && this.card?.button2?.label) || this.isEE);\r\n }\r\n}\r\n\r\nexport class ContentHubSpecialOffersModel {\r\n private readonly params: null | ContentHubSpecialOffersRendererParams;\r\n private readonly fields: null | ContentHubSpecialOffersRendererFields;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly isEE: boolean;\r\n private readonly t?: TFunction;\r\n private readonly specialOfferMainPageLink: string;\r\n\r\n constructor(props: ContentHubSpecialOffersProps, isEE: boolean, t?: TFunction, specialOfferMainPageLink?: string) {\r\n this.params = props?.params || null;\r\n this.fields = props?.fields || null;\r\n this.rendering = props?.rendering;\r\n this.isEE = isEE;\r\n this.t = t;\r\n this.specialOfferMainPageLink = specialOfferMainPageLink || '';\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return { value: this.fields?.apiData?.eyebrow };\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.fields?.apiData?.title };\r\n }\r\n\r\n get description(): StringField {\r\n return { value: appendRootToRichTextInternalLinks(this.fields?.apiData?.description) };\r\n }\r\n\r\n getLink(lineId: string): TLinkField | undefined {\r\n if (!lineId || !this.specialOfferMainPageLink) return;\r\n const title = this.t?.('cnhi-special-offer-read-more') || '';\r\n return {\r\n value: {\r\n href: `${this.specialOfferMainPageLink}?${SP_QUERY_STRINGS.LINE}=${lineId}`,\r\n title,\r\n text: title,\r\n },\r\n };\r\n }\r\n\r\n get items() {\r\n const todayDate = new Date();\r\n const items: IContentHubSpecialOffersSlideFields[] = this.fields?.apiData?.items || [];\r\n const cardStyles = (this.params?.cardStyles && this.params?.cardStyles.split('|')) || [];\r\n const validSpecialOffers = items.filter((offer, index) => {\r\n offer['cardStyles'] = cardStyles[index];\r\n const expiryDate = new Date(offer.expiration || '');\r\n return expiryDate.setHours(0, 0, 0, 0) >= todayDate.setHours(0, 0, 0, 0);\r\n });\r\n const defaultValue =\r\n validSpecialOffers &&\r\n validSpecialOffers.map((Card, index) => {\r\n return new ContentHubSpecialOffersSlideModel(Card, index, this.isEE, this.t, this.specialOfferMainPageLink);\r\n });\r\n if (this.fields && this.fields['Cards']) {\r\n return this.fields['Cards'].map((Card, index) => {\r\n return new ContentHubSpecialOffersSlideModel(Card, index, this.isEE, this.t, this.specialOfferMainPageLink);\r\n });\r\n }\r\n return defaultValue;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n return this.fields?.itemData?.contextItemUrl || '';\r\n }\r\n\r\n get modelDependencies(): string[] {\r\n return this.contextItemUrl ? [this.contextItemUrl] : [];\r\n }\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport Slider from 'react-slick';\r\nimport {\r\n ComponentRendering,\r\n isEditorActive,\r\n withSitecoreContext,\r\n} from '@sitecore-jss/sitecore-jss-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport CarouselSlide from './carouselSlide';\r\nimport {\r\n ContentHubSpecialOffersModel,\r\n ContentHubSpecialOffersSlideModel,\r\n} from './models/specialOffers.model';\r\nimport { ContentHubSpecialOffersProps } from './types/specialOffers.types';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { windowService } from '../../utils/window.utils';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport { getCustomPaging } from '../@shared/carouselDots';\r\nimport Heading from '../@shared/heading';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport { formatComponentNumber, googleClickSlideEvent } from '../../utils/analytics';\r\nimport CarouselArrow from '../@shared/carouselArrow';\r\nimport appendDots from '../@shared/customCarouselDots/appendDots';\r\nimport useSitecoreContext from '../../hooks/useSitecoreContext';\r\n\r\nconst ProductSpecialOffers = (props: ContentHubSpecialOffersProps) => {\r\n const { sitecoreContext } = useSitecoreContext();\r\n const specialOfferMainPageLink: string = sitecoreContext?.specialOfferPageUrl || '';\r\n const lineFromPageContext: string = sitecoreContext.analytics?.productLine || '';\r\n const lineFromParams = props.params?.lineId || '';\r\n const lineId =\r\n props.params?.enableProductParameters === '1' ? lineFromParams : lineFromPageContext;\r\n const { t } = useTranslation();\r\n\r\n const apiResponse = isEmptyResponse(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const isEE = isEditorActive();\r\n const model = new ContentHubSpecialOffersModel(props, isEE, t, specialOfferMainPageLink);\r\n const cardsCount = (model?.items || []).length;\r\n const isDesktop = useMediaQuery('(min-width: 768px)');\r\n const [screenWidth, setScreenWidth] = useState(1680);\r\n const [activeCardIndex, updateActiveCardIndex] = useState(0);\r\n const [isClickedOnArrow, setIsClickedOnArrow] = useState(false);\r\n\r\n useEffect(() => {\r\n setScreenWidth(Math.min(windowService()?.innerWidth, 1680));\r\n }, [model]);\r\n\r\n useEffect(() => {\r\n if (!isClickedOnArrow) {\r\n return;\r\n }\r\n setIsClickedOnArrow(false);\r\n googleClickSlideEvent(\r\n `Slide ${formatComponentNumber(activeCardIndex + 1)}`,\r\n model.items[activeCardIndex]?.title?.value,\r\n activeCardIndex + 1\r\n );\r\n }, [activeCardIndex, isClickedOnArrow, model.items]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n const containerPaddingLeft = 32;\r\n const largeImageWidth = isDesktop ? 664 : 300;\r\n const smallImageWidth = isDesktop ? 392 : 300;\r\n\r\n const totalElementsWidth =\r\n model.items.reduce((sumWidths: number, curr: ContentHubSpecialOffersSlideModel) => {\r\n if (curr.hasWideCardStyle) {\r\n sumWidths += largeImageWidth;\r\n } else {\r\n sumWidths += smallImageWidth;\r\n }\r\n return sumWidths;\r\n }, 0) + containerPaddingLeft;\r\n const shouldInstanceCarousel = totalElementsWidth > screenWidth;\r\n\r\n const arrowButtonClick = (): void => {\r\n setIsClickedOnArrow(true);\r\n };\r\n\r\n const settings = {\r\n infinite: shouldInstanceCarousel,\r\n dots: shouldInstanceCarousel,\r\n arrows: !isEditorActive() && shouldInstanceCarousel,\r\n variableWidth: true,\r\n speed: 500,\r\n slidesToScroll: 1,\r\n nextArrow: ,\r\n prevArrow: ,\r\n customPaging: getCustomPaging,\r\n dotsClass: `${cardsCount <= 5 ? 'slick-dots' : ''}`,\r\n beforeChange: (_, index: number) => {\r\n updateActiveCardIndex(index);\r\n },\r\n appendDots: (dots) =>\r\n appendDots({ dots, cardsCount, activeCardIndex, showCustomDots: cardsCount > 5 }),\r\n };\r\n\r\n if (!model.items?.length) return null;\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n {model.items?.map((item, index) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductSpecialOffers);\r\n","import React from 'react';\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport ProductSpecialOffers from '../productSpecialOffers';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport {\r\n descriptionKeyLineSpeicalOffers,\r\n eyebrowKeyLineSpeicalOffers,\r\n titleKeyLineSpeicalOffers,\r\n} from '../../constants/dictionary.constants';\r\n\r\nconst ProductLineSpecialOffers = (props) => {\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const apiResponse = isEmptyResponse(props);\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ProductLineSpecialOffers;\r\n","import React from 'react';\r\nimport ContentHubCompatibleLoaders from '../productCompatibleLoaderListing/components/compatibleLoaders';\r\nimport { TCHCompatibleLoadersProps } from '../productCompatibleLoaderListing/types/productCompatibleLoaderListing.types';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport {\r\n descriptionKeyModelCompatibleAttachments,\r\n eyebrowKeyModelCompatibleAttachments,\r\n titleKeyModelCompatibleAttachments,\r\n} from '../../constants/dictionary.constants';\r\n\r\nconst ProductModelCompatibleAttachmentListing = (props: TCHCompatibleLoadersProps): JSX.Element => {\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ProductModelCompatibleAttachmentListing;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n TCHModelConfigurationButtonMod,\r\n TCHModelConfigurationFields,\r\n TCHModelConfigurationInnerComponent,\r\n TCHModelConfigurationParams,\r\n TCHModelConfigurationProps,\r\n} from '../types/productModelConfigurations.types';\r\n\r\nimport { StringField } from '../../../types/types';\r\nimport { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\n\r\nexport class CHModelConfigurationModel {\r\n private readonly fields: TCHModelConfigurationFields;\r\n private readonly params?: TCHModelConfigurationParams;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TCHModelConfigurationProps) {\r\n this.fields = props?.fields || null;\r\n this.rendering = props?.rendering;\r\n this.params = props?.params;\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.fields?.apiData?.title };\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return { value: this.fields?.apiData?.eyebrow };\r\n }\r\n\r\n get description(): StringField {\r\n return { value: appendRootToRichTextInternalLinks(this.fields?.apiData?.description) };\r\n }\r\n\r\n get button1(): TCHModelConfigurationButtonMod {\r\n const { url: href, label, target } = this.fields?.apiData?.button1 ?? { href: '', label: '', target: '' };\r\n return { href, label, target };\r\n }\r\n\r\n get button2(): TCHModelConfigurationButtonMod {\r\n const { url: href, label, target } = this.fields?.apiData?.button2 ?? { href: '', label: '', target: '' };\r\n return { href, label, target };\r\n }\r\n\r\n get innerComponents(): TCHModelConfigurationInnerComponent[] {\r\n return this.fields?.apiData?.innerComponents || [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { ConfigurationCardModel as ModelConfigurationCardModel } from '../../productModelConfigurations/models/productModelConfigurationCard.model';\r\nimport { ConfigurationCardModel as SeriesConfigurtionCardModel } from '../../productSeriesDetailConfigurationsOverview/models/productSeriesConfigurationCard.model';\r\nimport Picture from '../picture';\r\n\r\nconst MediaElement = ({\r\n model,\r\n pictureClassName = '',\r\n}: {\r\n model: ModelConfigurationCardModel | SeriesConfigurtionCardModel;\r\n pictureClassName: string;\r\n}): JSX.Element => {\r\n const externalThumbnail = {\r\n url: model.getExternalThumbnail,\r\n height: 720,\r\n width: 1280,\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default MediaElement;\r\n","import { getThumbnailProps } from '../../../utils/youtubeUtils';\r\nimport { TCHModelConfigurationInnerComponent } from '../types/productModelConfigurations.types';\r\n\r\nexport class ConfigurationCardModel {\r\n private readonly fields: TCHModelConfigurationInnerComponent;\r\n constructor(props: TCHModelConfigurationInnerComponent) {\r\n this.fields = props;\r\n }\r\n\r\n get assets() {\r\n return this.fields.assets;\r\n }\r\n\r\n get button1() {\r\n return this.fields.button1;\r\n }\r\n\r\n get button2() {\r\n return this.fields.button2;\r\n }\r\n\r\n get description() {\r\n return this.fields.description;\r\n }\r\n\r\n get title() {\r\n return this.fields.title;\r\n }\r\n\r\n get firstAsset() {\r\n return this.assets?.[0];\r\n }\r\n\r\n get isVideo(): boolean {\r\n return this.firstAsset?.role === 'video' || this.firstAsset?.role === 'extvideo';\r\n }\r\n\r\n get getVideoUrl() {\r\n if (this.isVideo) {\r\n return this.firstAsset?.full;\r\n }\r\n return '';\r\n }\r\n\r\n get getExternalThumbnail(): string {\r\n if (this.firstAsset?.role === 'extvideo') {\r\n const { showThumbnail, thumbnailImgSrc } = getThumbnailProps(this.firstAsset?.full, 'hqdefault');\r\n if (showThumbnail) return thumbnailImgSrc || '';\r\n }\r\n return '';\r\n }\r\n}\r\n","import React, { FC, useState, useCallback } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport MediaElement from '../../../@shared/configurationCardMediaElement';\r\nimport Icon from '../../../@shared/icon';\r\nimport ModalDialog from '../../../@shared/modalDialog';\r\nimport OverlayCarouselPopup from '../../../@shared/overlayCarouselPopup';\r\nimport { TGalleryItem } from '../../../@shared/overlayCarouselPopup/types/overlayCarouselPopup.types';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport { ConfigurationCardModel } from '../../models/productModelConfigurationCard.model';\r\nimport { TCHModelConfigurationInnerComponent } from '../../types/productModelConfigurations.types';\r\nimport { appendRootToRichTextInternalLinks } from '../../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\n\r\nconst ModelConfigurationCard: FC = (props) => {\r\n const model = new ConfigurationCardModel(props);\r\n\r\n const [showOverlay, setShowOverlay] = useState(false);\r\n\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const closeOverlayModal = (): void => setShowOverlay(false);\r\n\r\n const showOverlayVideo = (): void => {\r\n if (!model.isVideo) return;\r\n setShowOverlay(true);\r\n };\r\n\r\n const getOverlayProps: () => TGalleryItem[] = useCallback(() => {\r\n const externalThumbnailUrl = model.getExternalThumbnail;\r\n return [\r\n {\r\n desktopRendition: externalThumbnailUrl ? { url: externalThumbnailUrl } : model.firstAsset?.rendition_desktop_size500,\r\n mobileRendition: externalThumbnailUrl ? { url: externalThumbnailUrl } : model.firstAsset?.rendition_mobile_size500,\r\n desktopAlt: model.firstAsset?.alt,\r\n mobileAlt: model.firstAsset?.alt,\r\n isVideo: model.isVideo,\r\n videoUrl: model.getVideoUrl,\r\n },\r\n ];\r\n }, [model.assets]); // eslint-disable-line\r\n\r\n return (\r\n
    \r\n
    \r\n {model.assets?.length > 0 && (\r\n \r\n \r\n {model.getVideoUrl && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n \r\n\r\n {((model.button1 && model.button1.url) || (model.button2 && model.button2.url)) && (\r\n
    \r\n {model.button1 && model.button1.url && (\r\n \r\n {model.button1.label}\r\n \r\n )}\r\n {model.button2 && model.button2.url && (\r\n \r\n \r\n {model.button2.label}\r\n \r\n \r\n \r\n )}\r\n
    \r\n )}\r\n {model.getVideoUrl && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default ModelConfigurationCard;\r\n","import React from 'react';\r\nimport { isEditorActive, RichText, Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { CHModelConfigurationModel } from './models/productModelConfigurations.model';\r\nimport { TCHModelConfigurationInnerComponent, TCHModelConfigurationProps } from './types/productModelConfigurations.types';\r\nimport ModelConfigurationCard from './components/modelConfigurationCard';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst ProductModelConfigurations = (props: TCHModelConfigurationProps): JSX.Element | null => {\r\n const apiResponse = isEmptyResponse(props);\r\n const model = new CHModelConfigurationModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {model?.innerComponents?.map((innerComp: TCHModelConfigurationInnerComponent) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductModelConfigurations);\r\n","import React from 'react';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport ProductCompatibleLoaders from '../productCompatibleLoaderListing';\r\nimport { TCHCompatibleLoadersProps } from '../productCompatibleLoaderListing/types/productCompatibleLoaderListing.types';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst ProductModelDetailCompatibleLoaders = (props: TCHCompatibleLoadersProps) => {\r\n const apiResponse = isEmptyResponse(props) && props?.fields?.apiData?.items?.length > 0;\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n return ;\r\n};\r\nexport default ProductModelDetailCompatibleLoaders;\r\n","import { TContentHubButton, StringField } from '../../../types/types';\r\nimport { TSummarySpecUpdated, TContentHubProductModelDetailHeroSectionFields } from '../types/productModelDetailHeroSection.types';\r\nimport { THeroSectionTextProps } from '../types/heroSectionText.types';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../utils/appendRootToInternalLink.utils';\r\n\r\nexport class HeroSectionTextModel {\r\n private readonly fields?: TContentHubProductModelDetailHeroSectionFields;\r\n private readonly params?: ComponentParamsGeneral;\r\n\r\n constructor(props: THeroSectionTextProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params;\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return { value: this.fields?.apiData?.eyebrow };\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.fields?.apiData?.title };\r\n }\r\n\r\n get description(): StringField {\r\n return {\r\n value: appendRootToRichTextInternalLinks(this.fields?.apiData?.description),\r\n };\r\n }\r\n\r\n get primaryLink(): TContentHubButton | undefined {\r\n return this.fields?.apiData?.button1;\r\n }\r\n\r\n get primaryLinkUrl(): string | undefined {\r\n return appendRootToInternalLink(this.primaryLink?.url);\r\n }\r\n\r\n get secondaryLink(): TContentHubButton | undefined {\r\n return this.fields?.apiData?.button2;\r\n }\r\n\r\n get secondaryLinkUrl(): string | undefined {\r\n return appendRootToInternalLink(this.secondaryLink?.url);\r\n }\r\n\r\n get summarySpecs(): Array {\r\n return (\r\n this.fields?.apiData?.summarySpecs\r\n ?.filter((spec) => spec.active)\r\n .map((spec) => {\r\n return { key: { value: spec.key }, value: { value: spec.value } };\r\n }) || []\r\n );\r\n }\r\n\r\n get optionalLabel(): StringField {\r\n return { value: this.fields?.apiData?.optionalLabel };\r\n }\r\n\r\n get msrp(): StringField {\r\n return { value: this.fields?.apiData?.msrp };\r\n }\r\n\r\n get showInfoTooltip(): boolean {\r\n return !!(this.fields?.apiData?.msrpTitle || this.fields?.apiData?.msrpDescription);\r\n }\r\n\r\n get infoTooltipTitle(): StringField {\r\n return { value: this.fields?.apiData?.msrpTitle };\r\n }\r\n\r\n get infoTooltipDescription(): StringField {\r\n return { value: this.fields?.apiData?.msrpDescription };\r\n }\r\n\r\n get enableBuildPriceCTA(): boolean | undefined {\r\n return this.params?.enableBuildPriceCTA === '1';\r\n }\r\n}\r\n","import React, { FC, useRef, useEffect, useState } from 'react';\r\nimport { TooltipPortalProps } from '../types/infoToolTip.types';\r\nimport { documentService, windowService } from '../../../../utils/window.utils.js';\r\n\r\nconst TooltipPortal: FC = ({ getTooltipIconDimensions, width, children, tooltipVisibility }) => {\r\n const TooltipRef = useRef(null);\r\n\r\n const [stylesArrow, setStylesArrow] = useState({});\r\n const [stylesBox, setStylesBox] = useState({});\r\n\r\n useEffect(() => {\r\n function reposition(): void {\r\n if (tooltipVisibility && TooltipRef && TooltipRef.current) {\r\n const eleDim = getTooltipIconDimensions();\r\n TooltipRef.current.style.top = eleDim.top + eleDim.height + 'px';\r\n TooltipRef.current.style.left = eleDim.left + eleDim.width / 2 + 'px';\r\n }\r\n }\r\n\r\n reposition();\r\n\r\n windowService().addEventListener('scroll', reposition);\r\n return (): void => windowService().removeEventListener('scroll', reposition);\r\n }, [TooltipRef, tooltipVisibility]); // eslint-disable-line\r\n\r\n useEffect(() => {\r\n function positionToolTip(ToolTipIconEl: DOMRect, width: number) {\r\n const spaceLeft = ToolTipIconEl?.left;\r\n const customDocument = documentService();\r\n const clientWidth = customDocument?.documentElement.clientWidth;\r\n const spaceRight = clientWidth - ToolTipIconEl?.right;\r\n let halfWidth = width / 2;\r\n let availableWidth = width;\r\n if (width > clientWidth) {\r\n availableWidth = clientWidth - 20;\r\n halfWidth = availableWidth / 2;\r\n }\r\n if (spaceLeft < halfWidth && spaceRight < halfWidth) {\r\n setStylesArrow({\r\n left: '50%',\r\n });\r\n setStylesBox({\r\n width: 'auto',\r\n });\r\n } else if (spaceLeft < halfWidth) {\r\n const availableSpace = halfWidth - spaceLeft;\r\n setStylesArrow({\r\n left: `calc(50% - ${availableSpace}px)`,\r\n });\r\n setStylesBox({\r\n width: `${availableWidth}px`,\r\n left: `${availableSpace}px`,\r\n transform: 'translate(calc(-50%, 100%)',\r\n });\r\n } else if (spaceRight < halfWidth) {\r\n const availableSpace = spaceRight - halfWidth;\r\n setStylesArrow({\r\n left: `calc(50% - ${availableSpace}px)`,\r\n });\r\n setStylesBox({\r\n width: `${availableWidth}px`,\r\n left: `${availableSpace}px`,\r\n transform: 'translate(calc(-50%, 100%)',\r\n });\r\n } else {\r\n setStylesArrow({\r\n left: '50%',\r\n });\r\n setStylesBox({ width: `${availableWidth}px` });\r\n }\r\n }\r\n function handleTooltipPosition(): void {\r\n if (width && TooltipRef && TooltipRef.current) {\r\n const ToolTipIconEl = getTooltipIconDimensions();\r\n if (!ToolTipIconEl) return;\r\n positionToolTip(ToolTipIconEl, width);\r\n }\r\n }\r\n\r\n handleTooltipPosition();\r\n windowService().addEventListener('resize', handleTooltipPosition);\r\n return (): void => windowService().removeEventListener('resize', handleTooltipPosition);\r\n }, [width]); // eslint-disable-line\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {children}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TooltipPortal;\r\n","import React, { FC } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport TooltipPortal from './tooltipPortal';\r\nimport { TPortalComopnent } from '../types/infoToolTip.types';\r\n\r\nconst PortalComponent: FC = (props) => {\r\n const { tooltipDiv, children, getTooltipIconDimensions, width, tooltipVisibility } = props;\r\n\r\n const isReactDOMPresent = typeof ReactDOM !== 'undefined' ? ReactDOM : null;\r\n\r\n if (!isReactDOMPresent || !tooltipDiv) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {ReactDOM &&\r\n ReactDOM?.createPortal(\r\n \r\n {children}\r\n ,\r\n tooltipDiv\r\n )}\r\n \r\n );\r\n};\r\nexport default PortalComponent;\r\n","import React, { FC, useState, useEffect, useRef, MouseEvent } from 'react';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { documentService } from '../../../utils/window.utils';\r\nimport Icon from '../icon';\r\nimport PortalComponent from './components/portalComponent';\r\nimport { TooltipProps } from './types/infoToolTip.types';\r\n\r\nconst InfoToolTip: FC = ({\r\n children,\r\n showIcon,\r\n clickPreventDefault = false,\r\n width = 300,\r\n color = 'complement',\r\n className = '',\r\n}) => {\r\n const TooltipIconRef = useRef(null);\r\n const [tooltipVisibility, setTooltipVisibility] = useState(false);\r\n const isMobile = useMediaQuery('(max-width: 768px)');\r\n const customDocument = documentService();\r\n let tooltipDiv;\r\n if (customDocument && customDocument?.createElement) {\r\n tooltipDiv = customDocument?.createElement('div');\r\n }\r\n\r\n useEffect(() => {\r\n customDocument?.body.appendChild(tooltipDiv);\r\n return (): void => {\r\n customDocument?.body.removeChild(tooltipDiv);\r\n };\r\n }, [tooltipDiv]); //eslint-disable-line\r\n\r\n useEffect(() => {\r\n function handleClickEvent(e): void {\r\n if (isMobile && TooltipIconRef && TooltipIconRef.current && !TooltipIconRef.current.contains(e?.target)) {\r\n setTooltipVisibility(false);\r\n }\r\n }\r\n\r\n customDocument?.addEventListener('click', handleClickEvent);\r\n return (): void => customDocument?.removeEventListener('click', handleClickEvent);\r\n }, [isMobile, TooltipIconRef, customDocument]); //eslint-disable-line\r\n\r\n const showTooltip = (): void => {\r\n setTooltipVisibility(true);\r\n };\r\n\r\n const hideTooltip = (): void => {\r\n setTooltipVisibility(false);\r\n };\r\n\r\n const handleMouseOver = (): void => {\r\n if (!isMobile) {\r\n showTooltip();\r\n }\r\n };\r\n\r\n const handleMouseOut = (): void => {\r\n if (!isMobile) {\r\n hideTooltip();\r\n }\r\n };\r\n\r\n const handleClick = (e: MouseEvent): void => {\r\n if (isMobile) {\r\n showTooltip();\r\n }\r\n if (clickPreventDefault) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n const handleBlur = (): void => {\r\n if (isMobile) {\r\n hideTooltip();\r\n }\r\n };\r\n\r\n const getTooltipIconDimensions = (): DOMRect | null => {\r\n if (TooltipIconRef && TooltipIconRef.current) {\r\n return TooltipIconRef.current.getBoundingClientRect();\r\n }\r\n return null;\r\n };\r\n\r\n if (!showIcon) return null;\r\n\r\n return (\r\n
    \r\n \r\n {showIcon && }\r\n
    \r\n \r\n {children}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default InfoToolTip;\r\n","import React, { FC } from 'react';\r\nimport { Text, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { THeroSectionTextProps } from '../../types/heroSectionText.types';\r\nimport { HeroSectionTextModel } from '../../models/heroSectionText.model';\r\nimport CTAButton, { ctaEnums } from '../../../@shared/ctaButton';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport InfoToolTip from '../../../@shared/infoToolTip';\r\nimport Icon from '../../../@shared/icon';\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\nimport useGetBuildAndPriceLink from '../../../../hooks/useGetBuildAndPriceLink';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\n\r\nconst HeroSectionText: FC = (props) => {\r\n const model = new HeroSectionTextModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const buildAndPriceUrl = useGetBuildAndPriceLink('model');\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {\r\n model.enableBuildPriceCTA && buildAndPriceUrl && (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n {model?.primaryLink?.label && model?.primaryLink?.url && (\r\n \r\n googleClickCtaEvent('Hero', model?.primaryLink?.label, model?.title?.value ?? model?.eyebrow?.value)}\r\n >\r\n {model.primaryLink.label}\r\n \r\n \r\n )}\r\n {model?.secondaryLink?.label && model?.secondaryLink?.url && (\r\n \r\n googleClickCtaEvent('Hero', model?.secondaryLink?.label, model?.title?.value ?? model?.eyebrow?.value)}\r\n >\r\n {model.secondaryLink.label}\r\n \r\n \r\n \r\n )}\r\n
    \r\n {model?.summarySpecs &&\r\n model?.summarySpecs?.map((spec) => (\r\n
    \r\n \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default HeroSectionText;\r\n","import React, { FC } from 'react';\r\nimport Icon from '../../../@shared/icon';\r\nimport { THeroSectionCarouselArrowProps } from './index.types';\r\n\r\nconst HeroSectionCarouselArrow: FC = ({ direction, onClick }) => {\r\n const icon = 'arrow-chevron-' + (direction === 'previous' ? 'left' : 'right');\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HeroSectionCarouselArrow;\r\n","import React, { FunctionComponent } from 'react';\r\nimport { THeroSectionCarouselIndicatorProps } from './index.types';\r\n\r\nconst HeroSectionCarouselIndicator: FunctionComponent = ({\r\n isSelected = false,\r\n index,\r\n baseClassName = 'controls__dots__item',\r\n}) => {\r\n const className = isSelected ? baseClassName + ' ' + baseClassName + '--selected' : baseClassName;\r\n\r\n return
  • ;\r\n};\r\n\r\nexport default HeroSectionCarouselIndicator;\r\n","import { TAssets, TContentHubProductModelDetailHeroSectionFields } from '../types/productModelDetailHeroSection.types';\r\nimport { THeroSectionCarouselProps } from '../types/heroSectionCarousel.types';\r\n\r\nexport class HeroSectionCarouselModel {\r\n private readonly fields?: TContentHubProductModelDetailHeroSectionFields;\r\n\r\n constructor(props: THeroSectionCarouselProps) {\r\n this.fields = props?.fields || null;\r\n }\r\n\r\n get slides(): Array {\r\n return this.fields?.apiData?.assets || [];\r\n }\r\n}\r\n","import React, { FC, useState, useEffect } from 'react';\r\nimport { Carousel as ReactResponsiveCarousel } from 'react-responsive-carousel';\r\nimport HeroSectionCarouselArrow from './heroSectionCarouselArrow';\r\nimport HeroSectionCarouselIndicator from './HeroSectionCarouselIndicator';\r\nimport { HeroSectionCarouselModel } from '../../models/heroSectionCarousel.model';\r\nimport { THeroSectionTextProps } from '../../types/heroSectionText.types';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport CustomCarouselDots from '../../../@shared/customCarouselDots';\r\nimport Picture from '../../../@shared/picture';\r\nimport { formatComponentNumber, googleClickSlideEvent } from '../../../../utils/analytics';\r\n\r\nconst HeroSectionCarousel: FC = (props) => {\r\n const interval = 10000;\r\n const model = new HeroSectionCarouselModel(props);\r\n const [currentSlide, _setCurrentSlide] = useState(0);\r\n const hasMultipleSlides = model.slides?.length > 1;\r\n const isDesktop = useMediaQuery('(min-width: 768px)');\r\n const setCurrentSlide = hasMultipleSlides\r\n ? (index: number) => {\r\n if (currentSlide !== index) {\r\n _setCurrentSlide(index);\r\n }\r\n }\r\n : () => {\r\n // Do nothing\r\n };\r\n\r\n const goToPreviousSlide = () => setCurrentSlide(currentSlide - 1);\r\n const goToNextSlide = () => setCurrentSlide(currentSlide + 1);\r\n const [isClickedOnArrow, setIsClickedOnArrow] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!isClickedOnArrow) {\r\n return;\r\n }\r\n setIsClickedOnArrow(false);\r\n googleClickSlideEvent(`Slide ${formatComponentNumber(currentSlide + 1)}`, props?.fields?.apiData?.title, currentSlide + 1);\r\n }, [currentSlide, isClickedOnArrow, props]);\r\n\r\n return (\r\n
    \r\n \r\n {model.slides?.map((slide, index) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n })}\r\n \r\n {hasMultipleSlides && (\r\n <>\r\n {\r\n goToPreviousSlide();\r\n setIsClickedOnArrow(true);\r\n }}\r\n />\r\n
      \r\n {(model.slides || []).length > 5 ? (\r\n \r\n ) : (\r\n model.slides?.map((_, index) => (\r\n \r\n ))\r\n )}\r\n
    \r\n {\r\n goToNextSlide();\r\n setIsClickedOnArrow(true);\r\n }}\r\n />\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default HeroSectionCarousel;\r\n","import React, { FC } from 'react';\r\nimport { ComponentRendering, isEditorActive, Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\nimport HeroSectionText from './components/heroSectionText';\r\nimport HeroSectionCarousel from './components/heroSectionCarousel';\r\nimport { TContentHubProductModelDetailHeroSectionProps } from './types/productModelDetailHeroSection.types';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport useSitecoreContext from '../../hooks/useSitecoreContext';\r\n\r\nconst ProductModelDetailHeroSection: FC = (props) => {\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const apiResponse = isEmptyResponse(props);\r\n const {sitecoreContext} = useSitecoreContext();\r\n const isEEActive = sitecoreContext?.pageEditing;\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n {(isEEActive ||\r\n (props.rendering?.placeholders?.['jss-breadcrumb'] && props.rendering?.placeholders?.['jss-breadcrumb']?.length > 0)) && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ProductModelDetailHeroSection;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TIconFromRenderingParams } from '../../../types/types';\r\nimport {\r\n TCHModelDetailNavigationSectionFields,\r\n TCHModelDetailNavigationSectionInnerComponents,\r\n TCHModelDetailNavigationSectionProps,\r\n} from '../types/productModelNavigation.types';\r\n\r\nexport class CHModelDetailNavigationSectionModel {\r\n private readonly fields: TCHModelDetailNavigationSectionFields;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TCHModelDetailNavigationSectionProps) {\r\n this.fields = props?.fields || null;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get innerComponents(): TCHModelDetailNavigationSectionInnerComponents[] {\r\n const innerComp = this.fields?.apiData?.innerComponents;\r\n innerComp && innerComp.splice(4);\r\n return innerComp && innerComp?.length ? innerComp : [];\r\n }\r\n\r\n get iconsList(): Array {\r\n return this.fields?.itemData?.iconsList || [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\nimport Icon from '../icon';\r\n\r\nconst IconOrImage = ({ assets }) => {\r\n const { Size200, full, alt } = assets?.[0] || {};\r\n if (!Size200 && !full) return null;\r\n return Size200 ? (\r\n {alt}\r\n ) : (\r\n \r\n );\r\n};\r\n\r\nexport default IconOrImage;\r\n","import React, { FC } from 'react';\r\nimport { isEditorActive, Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TCHModelDetailNavigationSectionProps } from './types/productModelNavigation.types';\r\nimport { CHModelDetailNavigationSectionModel } from './models/productModelNavigation.model';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport { NAVIGATION_BAR_LABEL } from '../../constants/navigationBar.constants';\r\nimport RoutableNotEditableLink from '../@shared/routableNotEditableLink';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { googleClickSubNavigationEvent } from '../../utils/analytics';\r\nimport IconOrImage from '../@shared/iconOrImage';\r\nimport { appendRootToInternalLink } from '../../utils/appendRootToInternalLink.utils';\r\n\r\nconst ProductModelNavigation: FC = (props) => {\r\n const apiResponse = isEmptyResponse(props);\r\n const model = new CHModelDetailNavigationSectionModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if ((!apiResponse && !isPlaceholderShown && !isEditorActive()) || model?.innerComponents?.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {model.innerComponents.map(\r\n ({ button, assets }, index) =>\r\n button &&\r\n button?.label &&\r\n button.url && (\r\n
    \r\n googleClickSubNavigationEvent(button?.label, NAVIGATION_BAR_LABEL)}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n )\r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductModelNavigation);\r\n","import { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { useState, useEffect, FC } from 'react';\r\nimport { TSummarySpec, TSummarySpecsProps } from '../../types/modelsListing.types';\r\n\r\nconst SummarySpecs: FC = ({ summarySpecs }) => {\r\n const [localSummarySpecs, setLocalSummarySpecs] = useState([]);\r\n\r\n useEffect(() => {\r\n if (summarySpecs?.length > 0) {\r\n const specs = summarySpecs.slice(0, 4);\r\n setLocalSummarySpecs(specs);\r\n }\r\n }, [summarySpecs]);\r\n\r\n return (\r\n
      \r\n {localSummarySpecs.map((spec, index) => (\r\n \r\n {spec?.key && spec?.value && (\r\n
    • \r\n \r\n \r\n
    • \r\n )}\r\n
      \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default SummarySpecs;\r\n","import React, { FC } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { Text, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { appendToUrlPath } from '../../../../utils';\r\nimport InfoToolTip from '../../../@shared/infoToolTip';\r\nimport Picture from '../../../@shared/picture';\r\nimport { TProductCard } from '../../types/modelsListing.types';\r\nimport SummarySpecs from './summarySpecs';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport { appendRootToRichTextInternalLinks } from '../../../../utils/appendRootToRichTextInternalLinks.utils';\r\n\r\nconst ProductCard: FC = (props) => {\r\n const { title, msrp, description, summarySpecs, assets, msrpDescription, msrpTitle, baseUrl, titleUrl, showModelUrl, onClick, t } = props;\r\n const asset = assets && assets[0];\r\n const onClickRedirectionDisabled = !titleUrl || showModelUrl === false;\r\n\r\n return (\r\n
    \r\n {\r\n onClickRedirectionDisabled && e.preventDefault();\r\n onClick();\r\n }}\r\n >\r\n {asset && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {title ?

    {title}

    : null}\r\n {msrp ? (\r\n <>\r\n
    \r\n {t('cnhi-startingFrom')}\r\n {` ${msrp}`}\r\n {(msrpTitle || msrpDescription) && (\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n ) : null}\r\n {description ? (\r\n
    \r\n \r\n
    \r\n ) : null}\r\n {summarySpecs?.length ? : null}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default withTranslation()(ProductCard);\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TModelsListing, TModelsListingItemData, TModelsListingProps, TProductCard } from '../types/modelsListing.types';\r\nimport { StringField } from '../../../types/types';\r\nimport { LinkField } from '@sitecore-jss/sitecore-jss-react/types/components/Link';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../utils/appendRootToInternalLink.utils';\r\n\r\nexport class ModelsListingModel {\r\n private readonly data?: TModelsListing;\r\n private readonly itemData?: TModelsListingItemData;\r\n private readonly params?: ComponentParamsGeneral;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly isComponentUnreleased?: boolean;\r\n\r\n constructor(props: TModelsListingProps) {\r\n this.data = props?.fields?.apiData;\r\n this.itemData = props?.fields?.itemData;\r\n this.rendering = props?.rendering;\r\n this.params = props?.params;\r\n this.isComponentUnreleased = props?.fields?.isComponentUnreleased;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get items(): TProductCard[] {\r\n return (this.data?.items || []).filter((item) => !item.hideInModelsListing);\r\n }\r\n\r\n get total(): number | undefined {\r\n return this.data?.total;\r\n }\r\n\r\n get button1(): LinkField {\r\n return {\r\n value: {\r\n href: appendRootToInternalLink(this.data?.button1?.url),\r\n text: this.data?.button1?.label,\r\n target: this.data?.button1?.target,\r\n },\r\n };\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return { value: this.data?.eyebrow };\r\n }\r\n\r\n get description(): StringField {\r\n return { value: appendRootToRichTextInternalLinks(this.data?.description) };\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.data?.title };\r\n }\r\n\r\n get subtitle(): string | undefined {\r\n return this.data?.subtitle;\r\n }\r\n\r\n get baseUrl(): string {\r\n let baseUrl = this.itemData?.contextItemUrl || '';\r\n if (baseUrl && this.params?.enableProductParameters === '1') {\r\n const lineId = this.params?.lineId;\r\n const serieId = this.params?.serieId;\r\n baseUrl = lineId ? `${baseUrl}/${lineId}` : baseUrl;\r\n baseUrl = serieId ? `${baseUrl}/${serieId}` : baseUrl;\r\n }\r\n return baseUrl;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.isComponentUnreleased;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { ComponentRendering, isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { Element } from 'react-scroll';\r\nimport ProductCard from './components/productCard';\r\nimport { TModelsListingProps } from './types/modelsListing.types';\r\nimport { ModelsListingModel } from './models/modelsListing.model';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport { googleClickCardEvent, googleClickCtaEvent } from '../../utils/analytics';\r\nimport { getTextType } from '../../utils/getTextType.utils';\r\nimport { descriptionKeyModelListing, eyebrowKeyModelListing, titleKeyModelListing } from '../../constants/dictionary.constants';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport RoutableSitecoreLink from '../@shared/routableSitecoreLink';\r\nimport Icon from '../@shared/icon';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport TextComponentDecider from '../@shared/TextComponentDecider';\r\n\r\nconst ProductModelsListing = (props: TModelsListingProps): JSX.Element | null => {\r\n const apiResponse = isEmptyResponse(props);\r\n const model = new ModelsListingModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const headerButton = model.button1;\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (((!apiResponse && !isPlaceholderShown) || model?.items?.length === 0) && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n \r\n\r\n {headerButton?.value?.href && headerButton?.value?.text && (\r\n
    \r\n \r\n googleClickCtaEvent('Link', headerButton.value.text, model?.title?.value)}\r\n />\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n {model?.items &&\r\n model?.items?.map((productCard, index) => (\r\n googleClickCardEvent(productCard.title, index + 1)}\r\n />\r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductModelsListing);\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n TContentHubModel,\r\n TContentHubModelDetailSpecificationsTableFields,\r\n TContentHubModelDetailSpecificationsTableProps,\r\n TExportData,\r\n TMRPRow,\r\n TSpecGroup,\r\n TTableData,\r\n} from '../types/index.types';\r\nimport { StringField, TContentHubButton, TIconFromRenderingParams } from '../../../types/types';\r\nimport { ComponentParams } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BACKGROUND_COLOR_MAP, BACKGROUND_COLOR_CLASS_MAP } from '../../../constants/background-color.constants';\r\nimport { APIPrefix } from '../../../constants/api.constants';\r\n\r\nconst createSpecsObj = (models?: TContentHubModel[]): TTableData => {\r\n const specs: TTableData = {};\r\n models?.forEach((model) => {\r\n model.specs.forEach((spec) => {\r\n if (spec.group && spec.items) {\r\n if (!specs[spec.group]) {\r\n specs[spec.group] = {\r\n group: '',\r\n tempItems: {},\r\n items: [],\r\n };\r\n }\r\n specs[spec.group].group = spec.group;\r\n if (!specs[spec.group].tempItems) {\r\n specs[spec.group].tempItems = {};\r\n }\r\n spec.items.forEach((item) => {\r\n if (specs?.[spec.group]?.tempItems && !specs?.[spec.group]?.tempItems?.[item.id]) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n specs[spec.group].tempItems![item.id] = {\r\n id: item.id,\r\n key: item.key,\r\n specs: [],\r\n };\r\n }\r\n specs[spec.group]?.tempItems?.[item.id].specs.push(item);\r\n });\r\n }\r\n });\r\n });\r\n return specs;\r\n};\r\n\r\nexport class ContentHubModelDetailSpecificationsTableModel {\r\n private readonly fields?: TContentHubModelDetailSpecificationsTableFields;\r\n private readonly params?: ComponentParams;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly seriesDetail: boolean;\r\n\r\n constructor(props: TContentHubModelDetailSpecificationsTableProps) {\r\n this.fields = props?.fields || null;\r\n this.rendering = props?.rendering;\r\n this.params = props?.params || undefined;\r\n this.seriesDetail = props?.seriesDetail || false;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n return this.fields?.itemData?.contextItemUrl || '';\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get backgroundColorClass(): string {\r\n return BACKGROUND_COLOR_CLASS_MAP.get(this.params?.backgroundColor || '') || '';\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.fields?.apiData?.title || '' };\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return { value: this.fields?.apiData?.eyebrow || '' };\r\n }\r\n\r\n get description(): StringField {\r\n return { value: this.fields?.apiData?.description || '' };\r\n }\r\n\r\n get button1(): TContentHubButton | undefined {\r\n return this.fields?.apiData?.button1;\r\n }\r\n\r\n get colHeadings(): Array {\r\n return this.fields?.apiData?.models?.map((model) => model.title || '') || [];\r\n }\r\n\r\n get mrpTitle(): StringField {\r\n return { value: this.fields?.apiData?.msrpTitle || '' };\r\n }\r\n\r\n get mrpDescription(): StringField {\r\n return { value: this.fields?.apiData?.msrpDescription || '' };\r\n }\r\n\r\n get showTooltip(): boolean {\r\n return Boolean(this.fields?.apiData?.msrpTitle || this.fields?.apiData?.msrpDescription);\r\n }\r\n\r\n get mrpRow(): TMRPRow {\r\n return {\r\n label: this.fields?.apiData?.msrpLabel || '',\r\n showTooltip: this.showTooltip,\r\n title: this.mrpTitle,\r\n description: this.mrpDescription,\r\n prices: this.fields?.apiData?.models?.map((model) => `${model.optionalLabel || ''} ${model.msrp || ''}`) || [],\r\n hideRow: false,\r\n };\r\n }\r\n\r\n get categoryRows(): Array {\r\n const specs: TTableData = createSpecsObj(this.fields?.apiData?.models);\r\n\r\n if (this.fields?.apiData?.models?.length) {\r\n const newValues: Array = [];\r\n const firstModelSpecs = this.fields?.apiData?.models[0].specs.map((spec) => {\r\n const items = spec.items.map((item) => ({ id: item.id }));\r\n return { group: spec.group, items };\r\n });\r\n\r\n firstModelSpecs.forEach(({ group, items }) => {\r\n const insertGroup = specs[group];\r\n insertGroup.items = [];\r\n items.forEach(({ id }) => {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n insertGroup.items.push(insertGroup.tempItems![id]);\r\n });\r\n newValues.push(insertGroup);\r\n });\r\n return newValues;\r\n }\r\n return [];\r\n }\r\n\r\n get exportData(): TExportData | undefined {\r\n return this.fields?.exportData;\r\n }\r\n\r\n get iconsList(): Array {\r\n return this.fields?.itemData?.iconsList || [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get convertToExcelLink(): string {\r\n const specificationUrlParametersArray = [\r\n this.exportData?.id,\r\n this.exportData?.language,\r\n this.exportData?.lineId,\r\n this.exportData?.serieId,\r\n ];\r\n\r\n if (this.seriesDetail) {\r\n const specificationUrlParameters = specificationUrlParametersArray.join('/');\r\n return `/${APIPrefix}/download/serie-specifications/${specificationUrlParameters}`;\r\n }\r\n\r\n specificationUrlParametersArray.push(this.exportData?.modelId);\r\n const specificationUrlParameters = specificationUrlParametersArray.join('/');\r\n return `/${APIPrefix}/download/model-specifications/${specificationUrlParameters}`;\r\n }\r\n}\r\n","export const TGridCSSVariables = {\r\n gridColumns: '--grid-columns',\r\n gridScrollBy: '--grid-scroll-by',\r\n gridLeftCellsMoveBy: '--grid-left-cells-move-by',\r\n gridFixedColHeadsMoveBy: '--grid-fixed-col-heads-move-by',\r\n gridFirstColumnWidth: '--grid-first-column-width',\r\n gridColumnWidth: '--grid-column-width',\r\n gridOutsideSpaceHalved: '--grid-outside-space-halved',\r\n };\r\n\r\nexport const DesktopRowHeaderCellWidth = 424;\r\nexport const MobileRowHeaderCellWidth = 180;\r\nexport const DesktopSpecCellWidth = 272;\r\nexport const MobileSpecCellWidth = 120;\r\nexport const TableMaxWidth = 1680;\r\n","import React, { useEffect, useRef, useState, FC } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport { googleClickSearchEvent } from '../../../../../utils/analytics';\r\nimport Icon from '../../../../@shared/icon';\r\nimport { TInputBox } from '../../../types/index.types';\r\n\r\nconst InputBox: FC = (props) => {\r\n const { searchTerm, setSearchTerm, t, searchResultCount } = props;\r\n const [isClickedonSearch, setIsClickedOnSearch] = useState(false);\r\n const timer = useRef(null);\r\n\r\n const handleKeyUp = (event) => {\r\n setSearchTerm(event?.currentTarget?.value);\r\n clearTimeout(timer?.current);\r\n\r\n if (event.key === 'Enter') {\r\n setIsClickedOnSearch(true);\r\n } else {\r\n timer.current = setTimeout(() => {\r\n if (searchTerm) {\r\n setIsClickedOnSearch(true);\r\n }\r\n }, 2000);\r\n }\r\n };\r\n\r\n useEffect((): void => {\r\n if (!isClickedonSearch) {\r\n return;\r\n }\r\n setIsClickedOnSearch(false);\r\n googleClickSearchEvent(searchTerm, searchResultCount && searchResultCount());\r\n }, [isClickedonSearch, searchResultCount, searchTerm]);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {searchTerm && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nexport default InputBox;\r\n","import React, { FC } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport { googleClickCtaEvent } from '../../../../../utils/analytics';\r\nimport { appendRootToInternalLink } from '../../../../../utils/appendRootToInternalLink.utils';\r\nimport Icon from '../../../../@shared/icon';\r\nimport RoutableNotEditableLink from '../../../../@shared/routableNotEditableLink';\r\nimport { THeaderProps } from '../../../types/index.types';\r\nimport InputBox from './inputBox';\r\nimport TextComponentDecider from '../../../../@shared/TextComponentDecider';\r\nimport { getTextType } from '../../../../../utils/getTextType.utils';\r\nimport { eyebrowKeySeriesSpecifications, titleKeySeriesSpecifications } from '../../../../../constants/dictionary.constants';\r\n\r\nconst Header: FC = (props) => {\r\n const { t } = useTranslation();\r\n const {\r\n backgroundColor,\r\n eyebrow,\r\n title,\r\n button1,\r\n convertToExcelLink,\r\n isDesktop,\r\n iconsList,\r\n toggleAllRows,\r\n categoryRows,\r\n expandedRows,\r\n searchTerm,\r\n setSearchTerm,\r\n getSearchResultCount,\r\n printTable,\r\n hideArrowButton,\r\n moveGridLeft,\r\n moveGridRight,\r\n } = props;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {button1?.label && button1?.url && (\r\n
    \r\n {\r\n googleClickCtaEvent('Link', button1?.label, title?.value);\r\n }}\r\n >\r\n {button1.label}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n {isDesktop && (\r\n // special case to not use RoutableNotEditableLink\r\n // ignored to allow download\r\n googleClickCtaEvent('Convert to Excel', t('cnhi-excelExport'), title?.value)}\r\n >\r\n {t('cnhi-excelExport')}\r\n \r\n \r\n )}\r\n {isDesktop && (\r\n {\r\n printTable();\r\n googleClickCtaEvent('Print', t('cnhi-print'), title?.value);\r\n }}\r\n >\r\n {t('cnhi-print')}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {isDesktop && }\r\n
    \r\n {!isDesktop && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!hideArrowButton && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n {!isDesktop && }\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React, { useContext } from 'react';\r\nimport { SitecoreContextReactContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport Picture from '../../../@shared/picture';\r\n\r\nfunction PrintTable({ colHeadings, mrpRow, categoryRows }) {\r\n const sitecoreContextFactory = useContext(SitecoreContextReactContext);\r\n const brandLogoImageData = sitecoreContextFactory?.context?.defaultBackgroundImageParameters;\r\n return (\r\n
    \r\n
    \r\n { !!brandLogoImageData && ( \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {colHeadings?.map((val) => (\r\n
    {val}
    \r\n ))}\r\n {mrpRow.label && (\r\n \r\n
    \r\n
    {mrpRow.label}
    \r\n
    \r\n
    \r\n )}\r\n {mrpRow.prices.map((spec, specIndex) => (\r\n \r\n {spec}\r\n
    \r\n ))}\r\n {categoryRows.map((obj) => (\r\n <>\r\n
    \r\n
    \r\n
    {obj.group}
    \r\n
    \r\n
    \r\n
    \r\n {obj.items &&\r\n obj.items.map((subObj, accIndex, subArr) => (\r\n <>\r\n {subObj.key && (\r\n \r\n \r\n
    {subObj.key}
    \r\n \r\n \r\n )}\r\n {subObj.specs?.map((spec, specIndex) => (\r\n \r\n {spec.value}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PrintTable;\r\n","import React, { useEffect, useRef, FC } from 'react';\r\nimport { windowService, documentService } from '../../../../utils/window.utils';\r\nimport { TPrintTableContent } from '../../types/index.types';\r\nimport PrintTable from './printTable';\r\nimport PrintTableCSS from './printTableStyles';\r\n\r\nconst PrintTableContent: FC = (props) => {\r\n const printWrapperRef = useRef(null);\r\n\r\n useEffect(() => {\r\n const cleanupFunction = () => props.cleanupFunction();\r\n if (props.printActive) {\r\n const clearTableStylesTag = (): void => {\r\n const styledTag = documentService().getElementById('model-details-specification-table-styles');\r\n if (styledTag) {\r\n styledTag.parentElement.removeChild(styledTag);\r\n }\r\n };\r\n clearTableStylesTag();\r\n const style = documentService().createElement('style');\r\n style.setAttribute('id', 'model-details-specification-table-styles');\r\n style.setAttribute('rel', 'stylesheet');\r\n style.setAttribute('type', 'text/css');\r\n style.setAttribute('media', 'print');\r\n\r\n style.appendChild(documentService().createTextNode(PrintTableCSS(props.colHeadings.length + 1)));\r\n documentService().head.appendChild(style);\r\n // Note: For some crazy reason window.print is not a blocking command when the page freshly load without cache\r\n // As a temporary fix adding eventListeners for after print\r\n /** afterprint event is replaced with focus event as afterprint is triggered even before the print operation\r\n * is started in some mobile devices \r\n */\r\n windowService().addEventListener('focus', clearTableStylesTag, { once: true });\r\n windowService().addEventListener('focus', cleanupFunction, { once: true });\r\n if (windowService().print) {\r\n windowService().print();\r\n }\r\n }\r\n }, [props.printActive, printWrapperRef]);\r\n\r\n if (!props.printActive) {\r\n return null;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default React.memo(PrintTableContent);\r\n","export default function printTableStyles(colLength) {\r\n return `\r\n #root > * {\r\n display: none;\r\n }\r\n #root > main {\r\n display: block;\r\n }\r\n #root > header > *, #root > main > * , #root > footer > *, svg {\r\n display: none;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper {\r\n display: block;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper > * {\r\n display: none;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper {\r\n display: block;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper > .model-details-specification-table-header,\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper > .model-detail-specification-table,\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper > .model-detail-specification-table__search-no-match {\r\n display: none;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper > .model-detail-specification-table-print {\r\n display: block;\r\n overflow: hidden;\r\n width: 100%;\r\n }\r\n .model-detail-specification-table-print {\r\n width: 100%;\r\n background-color: #ffffff;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table-print__grid {\r\n display: grid;\r\n position: relative;\r\n grid-template-columns: repeat(${colLength}, auto);\r\n align-items: center;\r\n background-color: #ffffff;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table-print-wrapper .print-navigation-logo-image{\r\n margin: 20px;\r\n display: block;\r\n width: auto;\r\n max-height: 40px;\r\n height: 40px\r\n }\r\n .model-detail-specification-table-print__image {\r\n grid-column: 1 / -1;\r\n }\r\n .model-detail-specification-table__fixed-col-heading {\r\n display: none;\r\n }\r\n .model-detail-specification-table-print__col-heading {\r\n color: #a71930;\r\n font-weight: 700;\r\n position: relative;\r\n font-size: 12px;\r\n line-height: 20px;\r\n background-color: #ffffff;\r\n -webkit-print-color-adjust: exact;\r\n padding: 8px 0 4px 16px;\r\n }\r\n .model-detail-specification-table-print__spec {\r\n color: #1e1e1d;\r\n font-size: 12px;\r\n line-height: 20px;\r\n border-bottom: 1px solid #d1d2d4;\r\n display: flex;\r\n height: 100%;\r\n align-items: center;\r\n padding: 16px;\r\n }\r\n .model-detail-specification-table-print__spec--even {\r\n background-color: #ffffff;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table-print__spec--odd {\r\n background-color: #fbfbfb;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table-print__spec--last-row {\r\n border: 0;\r\n }\r\n .model-detail-specification-table-print__spec-category-row {\r\n color: #1e1e1d;\r\n font-weight: 700;\r\n background-color: #f4f4f4;\r\n -webkit-print-color-adjust: exact;\r\n display: flex;\r\n grid-column: 1/-1;\r\n cursor: pointer;\r\n }\r\n .model-detail-specification-table-print__spec-category-row__empty-row {\r\n flex-grow: 1;\r\n }\r\n .model-detail-specification-table-print__spec-category-row__inner-box-wrapper {\r\n z-index: 2;\r\n background-color: #f4f4f4;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table-print__spec-category-row__border-collapsed {\r\n border-bottom: 1px solid #d1d2d4;\r\n }\r\n .model-detail-specification-table-print__spec-category-row__inner-box {\r\n margin-left: 32px;\r\n padding: 16px 0;\r\n }\r\n .model-detail-specification-table-print__left-side-accordion-spec-title {\r\n font-size: 12px;\r\n line-height: 20px;\r\n background-color: #fbfbfb;\r\n -webkit-print-color-adjust: exact;\r\n font-weight: 600;\r\n display: flex;\r\n height: 100%;\r\n z-index: 2;\r\n }\r\n .model-detail-specification-table-print__left-side-accordion-spec-title__inner-box {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n border-bottom: 1px solid #d1d2d4;\r\n margin-left: 32px;\r\n padding: 16px 16px 16px 0;\r\n }\r\n .model-detail-specification-table-print__left-side-accordion-spec-title__inner-box--last-row {\r\n border: 0;\r\n }\r\n .model-detail-specification-table-print__spec-row-child {\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n opacity: 1;\r\n }\r\n `;\r\n}\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport { googleClickDropdownEvent } from '../../../../../utils/analytics';\r\nimport Icon from '../../../../@shared/icon';\r\nimport { TColumnDropdown } from '../../../types/index.types';\r\n\r\nconst DropdownMenu: FC = (props) => {\r\n const { colHeadings, colOrdInIndex, columnIndex, setColOrdInIndex, setDropdownAtColumnIndex, fixedDropdown } = props;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n {colHeadings?.[colOrdInIndex[columnIndex]]}\r\n
    \r\n
    setDropdownAtColumnIndex(null)}>\r\n \r\n
    \r\n
    \r\n {colHeadings?.map((eachColName, dropdownInd) => (\r\n {\r\n googleClickDropdownEvent('Select', eachColName);\r\n setColOrdInIndex((data) => {\r\n data[columnIndex] = dropdownInd;\r\n setDropdownAtColumnIndex(null);\r\n return [...data];\r\n });\r\n }}\r\n className=\"model-detail-specification-table__col-dropdown-item-wrapper\"\r\n >\r\n
    {eachColName}
    \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(DropdownMenu);\r\n","import React, { FC } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { TDropdownChoice } from '../../../types/index.types';\r\nimport DropdownMenu from './dropdown';\r\n\r\nconst DropdownChoice: FC = (props): JSX.Element | null => {\r\n const { fixedColumn, colHeadings, colOrdInIndex, columnIndex, setColOrdInIndex, setDropdownAtColumnIndex, dropdownPlaceholder } = props;\r\n if (fixedColumn) {\r\n return (\r\n \r\n );\r\n }\r\n if (dropdownPlaceholder) {\r\n return createPortal(\r\n ,\r\n dropdownPlaceholder\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport default DropdownChoice;\r\n","import React, { useEffect, useRef, FC } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport { windowService } from '../../../../../utils/window.utils';\r\nimport Icon from '../../../../@shared/icon';\r\nimport { TColumnHeadingElement } from '../../../types/index.types';\r\nimport DropdownChoice from './dropdownChoice';\r\n\r\nconst ColumnHeadingElement: FC = (props) => {\r\n const {\r\n columnValue,\r\n handleDropdownClick,\r\n columnIndex,\r\n dropdownAtColumnIndex,\r\n colHeadings,\r\n colOrdInIndex,\r\n setColOrdInIndex,\r\n setDropdownAtColumnIndex,\r\n dropdownPlaceholder,\r\n fixedColumn,\r\n } = props;\r\n\r\n const ColSubWrapperRef = useRef(null);\r\n\r\n useEffect(() => {\r\n function repositionHeightOnScroll() {\r\n if (!ColSubWrapperRef?.current || !dropdownPlaceholder) return;\r\n if (dropdownAtColumnIndex === columnIndex) {\r\n const subWrapperDimensions = ColSubWrapperRef.current.getBoundingClientRect();\r\n dropdownPlaceholder.style.setProperty('--table-dropdown-left', (subWrapperDimensions.left || 0) + 'px');\r\n dropdownPlaceholder.style.setProperty(\r\n '--table-dropdown-top',\r\n (subWrapperDimensions.top || 0) + (subWrapperDimensions.height || 0) + 'px'\r\n );\r\n dropdownPlaceholder.style.setProperty('--table-dropdown-width', (subWrapperDimensions.width || 0) + 'px');\r\n }\r\n }\r\n repositionHeightOnScroll();\r\n windowService().addEventListener('scroll', repositionHeightOnScroll);\r\n return () => windowService().removeEventListener('scroll', repositionHeightOnScroll);\r\n }, [ColSubWrapperRef, dropdownAtColumnIndex, columnIndex, dropdownPlaceholder, colHeadings]);\r\n\r\n return (\r\n \r\n handleDropdownClick(event, columnIndex === dropdownAtColumnIndex ? null : columnIndex)}\r\n ref={ColSubWrapperRef}\r\n >\r\n \r\n {colHeadings?.[colOrdInIndex[columnIndex]]}\r\n \r\n \r\n \r\n {dropdownAtColumnIndex === columnIndex && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(ColumnHeadingElement);\r\n","import React, { useEffect, useRef, FC } from 'react';\r\nimport { documentService } from '../../../../../utils/window.utils';\r\nimport { TColumnHeadings } from '../../../types/index.types';\r\nimport ColumnHeadingElement from './columnHeadingElement';\r\n\r\nconst ColumnHeadings: FC = (props) => {\r\n const {\r\n colHeadings,\r\n setDropdownAtColumnIndex,\r\n setColOrdInIndex,\r\n dropdownAtColumnIndex,\r\n colOrdInIndex,\r\n fixedColumn,\r\n showHiddenRightCells,\r\n } = props;\r\n const DropdownPlaceholderRef = useRef(null);\r\n\r\n const handleDropdownClick = (event: React.MouseEvent, val: number | null) => {\r\n event.stopPropagation();\r\n event.nativeEvent.stopImmediatePropagation();\r\n setDropdownAtColumnIndex(val);\r\n };\r\n\r\n useEffect(() => {\r\n if (DropdownPlaceholderRef?.current) return;\r\n const newDiv = documentService()?.createElement('div');\r\n if (!newDiv) return;\r\n documentService()?.body?.appendChild(newDiv);\r\n DropdownPlaceholderRef.current = newDiv;\r\n return () => {\r\n documentService()?.body.removeChild(newDiv);\r\n };\r\n }, []);\r\n\r\n return (\r\n <>\r\n {colHeadings\r\n ?.filter((_, columnIndex) => {\r\n if (!showHiddenRightCells) return columnIndex <= 5;\r\n return true;\r\n })\r\n .map((columnValue, columnIndex) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(ColumnHeadings);\r\n","import React, { useRef, useEffect, useState, forwardRef, useImperativeHandle, ReactNode } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { TGridCSSVariables } from '../../../../../constants/table.constants';\r\nimport useStickyWrapper from '../../../../../hooks/useStickyWrapper';\r\nimport { TFixedColHeadingProps } from '../../../types/index.types';\r\n\r\nconst FixedColHeading = (props: TFixedColHeadingProps & { children: ReactNode }, ref) => {\r\n const {\r\n showFixedColumnHeading,\r\n children,\r\n gridColumns,\r\n gridFixedColHeadsMoveBy,\r\n gridColumnWidth,\r\n gridOutsideSpaceHalved,\r\n gridLeftCellsMoveBy,\r\n backgroundColorClass,\r\n } = props;\r\n\r\n const FixedColHeadingRef = useRef(null);\r\n\r\n useImperativeHandle(ref, () => ({\r\n get FixedColHeadingRef() {\r\n return FixedColHeadingRef;\r\n },\r\n }));\r\n\r\n const [variableInserted, setVariablesInserted] = useState(showFixedColumnHeading);\r\n const stickyWrapperEle = useStickyWrapper();\r\n\r\n useEffect(() => {\r\n if (!showFixedColumnHeading) {\r\n setVariablesInserted(() => false);\r\n return;\r\n }\r\n const fixedColHeadingEl = FixedColHeadingRef.current as HTMLElement | null;\r\n if (!fixedColHeadingEl) return;\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridColumns, gridColumns);\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridColumnWidth, gridColumnWidth);\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridOutsideSpaceHalved, gridOutsideSpaceHalved);\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridLeftCellsMoveBy, gridLeftCellsMoveBy);\r\n setVariablesInserted(() => true);\r\n }, [\r\n showFixedColumnHeading,\r\n FixedColHeadingRef,\r\n gridColumns,\r\n gridFixedColHeadsMoveBy,\r\n gridColumnWidth,\r\n gridOutsideSpaceHalved,\r\n gridLeftCellsMoveBy,\r\n ]);\r\n\r\n if (!stickyWrapperEle || !showFixedColumnHeading) return null;\r\n\r\n return createPortal(\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n
    ,\r\n stickyWrapperEle\r\n );\r\n};\r\n\r\nexport default React.memo(forwardRef(FixedColHeading));\r\n","import React from 'react';\r\nimport { seperateSplitsAndMatched } from '../../../../../utils/regex.utils';\r\n\r\nconst highlightText = (splits: Array, matched: Array): JSX.Element[] => {\r\n return splits.map((split, idx) => (\r\n <>\r\n {split}\r\n {matched[idx]}\r\n \r\n ));\r\n};\r\n\r\nconst formatText = (str: string, searchTerm: string, addWrapperDiv = false): JSX.Element => {\r\n if (searchTerm) {\r\n const { splits, matched } = seperateSplitsAndMatched(str, searchTerm);\r\n const result = splits.length === matched.length + 1 ? highlightText(splits, matched) : str;\r\n if (addWrapperDiv) return
    {result}
    ;\r\n else return <>{result};\r\n }\r\n return <>{str};\r\n};\r\n\r\nexport default formatText;\r\n","import React, { FC } from 'react';\r\nimport { TSpecCell } from '../../../types/index.types';\r\n\r\nconst SpecCell: FC = (props) => {\r\n const { specIndex, subArr, subObj, accIndex, showHiddenRightCells, hide, fadeIn, colOrdInIndex } = props;\r\n if (!showHiddenRightCells && specIndex > 5) return null;\r\n\r\n return (\r\n \r\n \r\n {subObj.specs?.[colOrdInIndex[specIndex]]?.value}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(SpecCell);\r\n","import React, { useEffect, useRef, useState, FC } from 'react';\r\nimport { TSubValueRow } from '../../../types/index.types';\r\nimport formatText from './formatText';\r\nimport SpecCell from './specCell';\r\n\r\nconst FADE_TIME = 600;\r\n\r\nconst SubValueRow: FC = ({ subObj, subArr, accIndex, searchTerm, hide, colOrdInIndex, showHiddenRightCells }) => {\r\n const [hideRow, setHideRow] = useState(hide);\r\n const [fadeIn, setFadeIn] = useState(false);\r\n const prevHideRef = useRef(false);\r\n const timerRef = useRef | null>(null);\r\n\r\n useEffect(() => {\r\n const prevHide = prevHideRef.current;\r\n\r\n prevHideRef.current = hide;\r\n\r\n if (!prevHide && hide) {\r\n timerRef.current = setTimeout(() => {\r\n setHideRow(() => hide);\r\n }, FADE_TIME);\r\n }\r\n\r\n if (prevHide && !hide) {\r\n setHideRow(() => hide);\r\n setFadeIn(() => true);\r\n setTimeout(() => {\r\n setFadeIn(() => false);\r\n }, FADE_TIME);\r\n }\r\n\r\n return () => {\r\n if (timerRef.current) {\r\n clearTimeout(timerRef.current);\r\n }\r\n };\r\n }, [hide, setHideRow]);\r\n\r\n if (hideRow) return null;\r\n\r\n return (\r\n \r\n {subObj.key && (\r\n \r\n \r\n {formatText(subObj.key, searchTerm, true)}\r\n \r\n \r\n )}\r\n {subObj.specs?.map((spec, specIndex) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(SubValueRow);\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport { googleClickAccordionEvent } from '../../../../../utils/analytics';\r\nimport Icon from '../../../../@shared/icon';\r\nimport { TRowItemProps } from '../../../types/index.types';\r\nimport formatText from './formatText';\r\nimport SubValueRow from './subValueRow';\r\n\r\nconst RowItems: FC = (props) => {\r\n const {\r\n obj,\r\n backgroundColor,\r\n toggleRow,\r\n index,\r\n title,\r\n eyebrow,\r\n searchTerm,\r\n colHeadings,\r\n expandedRows,\r\n colOrdInIndex,\r\n showHiddenRightCells,\r\n } = props;\r\n\r\n return (\r\n <>\r\n {\r\n toggleRow(index);\r\n googleClickAccordionEvent(obj.group, title?.value ?? eyebrow?.value, index + 1);\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n {formatText(obj.group, searchTerm)}\r\n \r\n \r\n \r\n {obj.items &&\r\n obj.items.map((subObj, accIndex, subArr) => ( \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(RowItems);\r\n","import React, { FC } from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport InfoToolTip from '../../../../@shared/infoToolTip';\r\nimport { TMSRPRow } from '../../../types/index.types';\r\nimport formatText from './formatText';\r\n\r\nconst MSRPRow: FC = (props) => {\r\n const { mrpRow, searchTerm, colOrdInIndex, showHiddenRightCells } = props;\r\n return (\r\n \r\n {!mrpRow.hideRow && (\r\n <>\r\n \r\n \r\n <>{mrpRow.label && {formatText(mrpRow.label, searchTerm)}}\r\n\r\n \r\n
    \r\n {mrpRow.title && (\r\n \r\n )}\r\n {mrpRow.description && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n {mrpRow.prices\r\n ?.filter((_, columnIndex) => {\r\n if (!showHiddenRightCells) return columnIndex <= 5;\r\n return true;\r\n })\r\n .map((spec, specIndex) => (\r\n \r\n
    \r\n {mrpRow.prices[colOrdInIndex[specIndex]]}\r\n
    \r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(MSRPRow);\r\n","import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\r\nimport { TGridCSSVariables } from '../../../../constants/table.constants';\r\nimport { FixedColumnRefType, TMainTable } from '../../types/index.types';\r\nimport ColumnHeadingElement from './columnHeading/columnHeadings';\r\nimport FixedColHeading from './columnHeading/fixedColHeading';\r\nimport RowItems from './row';\r\nimport MSRPRow from './row/msrpRow';\r\n\r\nconst MainTable = (props: TMainTable, ref) => {\r\n const GridRef = useRef(null);\r\n const TableWrapperRef = useRef(null);\r\n const fixedColumnRef = useRef(null);\r\n\r\n useImperativeHandle(ref, () => ({\r\n get GridRef() {\r\n return GridRef;\r\n },\r\n get TableWrapperRef() {\r\n return TableWrapperRef;\r\n },\r\n }));\r\n\r\n const {\r\n backgroundColorClass,\r\n fixedColumnHeading,\r\n searchTerm,\r\n mrpRow,\r\n categoryRows,\r\n gridColumns,\r\n gridFixedColHeadsMoveBy,\r\n gridColumnWidth,\r\n gridOutsideSpaceHalved,\r\n gridLeftCellsMoveBy,\r\n colHeadings,\r\n setDropdownAtColumnIndex,\r\n setColOrdInIndex,\r\n dropdownAtColumnIndex,\r\n colOrdInIndex,\r\n backgroundColor,\r\n toggleRow,\r\n title,\r\n eyebrow,\r\n expandedRows,\r\n showHiddenRightCells,\r\n setShowHiddenRightCells,\r\n } = props;\r\n\r\n useEffect(() => {\r\n if (GridRef.current && fixedColumnHeading) {\r\n const tableWrapperEl = TableWrapperRef.current as HTMLElement;\r\n const tableEl = tableWrapperEl.getElementsByTagName('table')?.[0];\r\n const fixedColHeadingEl = fixedColumnRef?.current?.FixedColHeadingRef?.current as HTMLDivElement | null;\r\n if (!tableEl || !fixedColHeadingEl) return;\r\n\r\n const leftValue = tableEl.getBoundingClientRect().left;\r\n if (!leftValue) return;\r\n\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridFixedColHeadsMoveBy, `${leftValue || 0}px`);\r\n }\r\n }, [fixedColumnHeading, TableWrapperRef]);\r\n\r\n const handleScroll = (event) => {\r\n const leftValue = event.target.scrollLeft;\r\n\r\n const fixedColHeadingEl = fixedColumnRef?.current?.FixedColHeadingRef?.current as HTMLDivElement | null;\r\n if (fixedColHeadingEl && leftValue >= 0) {\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridFixedColHeadsMoveBy, `-${leftValue}px`);\r\n }\r\n if (!showHiddenRightCells) setShowHiddenRightCells(true);\r\n };\r\n return (\r\n \r\n \r\n 0) : true))\r\n }\r\n gridColumns={gridColumns}\r\n gridFixedColHeadsMoveBy={gridFixedColHeadsMoveBy}\r\n gridColumnWidth={gridColumnWidth}\r\n gridOutsideSpaceHalved={gridOutsideSpaceHalved}\r\n gridLeftCellsMoveBy={gridLeftCellsMoveBy}\r\n backgroundColorClass={backgroundColorClass}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {(searchTerm ? !mrpRow.hideRow || (categoryRows && categoryRows.length > 0) : true) && (\r\n \r\n )}\r\n \r\n \r\n {categoryRows?.map((obj, index) => (\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(forwardRef(MainTable));\r\n","import React, { FC, useRef, useEffect, useState, useCallback } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { BreakpointsInPx, Breakpoints } from '../../../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport {\r\n TGridCSSVariables,\r\n DesktopRowHeaderCellWidth,\r\n DesktopSpecCellWidth,\r\n TableMaxWidth,\r\n MobileSpecCellWidth,\r\n MobileRowHeaderCellWidth,\r\n} from '../../../../constants/table.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport useStickyWrapper from '../../../../hooks/useStickyWrapper';\r\nimport { windowService, documentService } from '../../../../utils/window.utils';\r\nimport Icon from '../../../@shared/icon';\r\nimport { TableRefType, TContentHubModelDetailSpecificationTableSectionProps } from '../../types/index.types';\r\nimport TableHeader from './header';\r\nimport PrintTableContent from './printContent';\r\nimport MainTable from './table';\r\nimport TextComponentDecider from '../../../@shared/TextComponentDecider';\r\nimport { getTextType } from '../../../../utils/getTextType.utils';\r\nimport { notesKeySeriesSpecifications } from '../../../../constants/dictionary.constants';\r\n\r\nconst SpecificationTable: FC = (props) => {\r\n const {\r\n colHeadings,\r\n mrpRow,\r\n originalMrpRow,\r\n categoryRows,\r\n originalCategoryRows,\r\n eyebrow,\r\n title,\r\n button1,\r\n contextItemUrl,\r\n searchTerm,\r\n setSearchTerm,\r\n convertToExcelLink,\r\n iconsList,\r\n t,\r\n notes,\r\n backgroundColor,\r\n backgroundColorClass,\r\n } = props;\r\n\r\n const tableRef = useRef(null);\r\n const [showHiddenRightCells, setShowHiddenRightCells] = useState(false);\r\n const [leftMostVisibleColumn, setLeftMostVisibleColumn] = useState(0);\r\n const [fixedColumnHeading, setFixedColumnHeading] = useState(false);\r\n const [expandedRows, setExpandedRows] = useState([0]);\r\n const [hideArrowButton, setHideArrowButton] = useState(false);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const stickyWrapperEle = useStickyWrapper();\r\n\r\n const [dropdownAtColumnIndex, setDropdownAtColumnIndex] = useState(null);\r\n const [colOrdInIndex, setColOrdInIndex] = useState>([]);\r\n const [printActive, setPrintActive] = useState(false);\r\n\r\n let previousViewWidth;\r\n\r\n useEffect(() => {\r\n setColOrdInIndex(colHeadings.map((_, i) => i));\r\n }, [contextItemUrl]);\r\n\r\n useEffect(() => {\r\n const GridRef = tableRef.current?.GridRef;\r\n if (GridRef && GridRef.current && colHeadings.length) {\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n if (!gridEl) return;\r\n\r\n gridEl.style.setProperty(TGridCSSVariables.gridColumns, colHeadings.length.toString());\r\n }\r\n }, [tableRef, colHeadings]);\r\n\r\n const showOrHideFixedColumn = (\r\n gridElDim: DOMRect,\r\n stickyWrapperEle: HTMLElement | null,\r\n topMostEmptyColHeadingDim: DOMRect,\r\n previousTop: number,\r\n fixedColShowing: boolean,\r\n setFixedColumnHeading: React.Dispatch>\r\n ) => {\r\n let visibleTopLimit = stickyWrapperEle?.getBoundingClientRect().height || 0;\r\n let visibleBottomLimit = visibleTopLimit;\r\n\r\n // handling scroll down and removing the sticky row height if it is visible\r\n if (visibleTopLimit > 0 && gridElDim.top > previousTop && fixedColShowing) {\r\n visibleTopLimit -= topMostEmptyColHeadingDim.height;\r\n visibleBottomLimit -= topMostEmptyColHeadingDim.height;\r\n }\r\n\r\n // handling scroll up and adding buffer space of sticky row height if it is hidden\r\n if (gridElDim.top < previousTop && !fixedColShowing) {\r\n visibleBottomLimit += topMostEmptyColHeadingDim.height;\r\n }\r\n\r\n // check if table is visible and table top is above visible point and bottom is within view\r\n if (gridElDim.top < visibleTopLimit && gridElDim.bottom > visibleBottomLimit) {\r\n setFixedColumnHeading(() => true);\r\n return true;\r\n } else {\r\n setFixedColumnHeading(() => false);\r\n return false;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let fixedColShowing = false;\r\n let previousTop = 0;\r\n\r\n function scrollHandler(): void {\r\n const GridRef = tableRef.current?.GridRef;\r\n if (GridRef && GridRef.current) {\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n if (!gridEl) return;\r\n const gridElDim = gridEl.getBoundingClientRect();\r\n\r\n const topMostEmptyColHeadingDim = gridEl\r\n .getElementsByClassName('model-detail-specification-table__col-heading-dropdown__wrapper')?.[0]\r\n ?.getBoundingClientRect();\r\n\r\n if (!topMostEmptyColHeadingDim) return;\r\n\r\n fixedColShowing = showOrHideFixedColumn(\r\n gridElDim,\r\n stickyWrapperEle,\r\n topMostEmptyColHeadingDim,\r\n previousTop,\r\n fixedColShowing,\r\n setFixedColumnHeading\r\n );\r\n\r\n previousTop = gridElDim.top;\r\n }\r\n }\r\n\r\n documentService().addEventListener('scroll', scrollHandler);\r\n return (): void => documentService().removeEventListener('scroll', scrollHandler);\r\n }, [tableRef, stickyWrapperEle]);\r\n\r\n const handleGridOutsideSpace = (clientWidth: number, TableMaxWidth: number) => {\r\n const gridEl = tableRef.current?.GridRef?.current;\r\n if (!gridEl) return;\r\n if (clientWidth && clientWidth > TableMaxWidth) {\r\n const remainingWidth = clientWidth - TableMaxWidth;\r\n gridEl.style.setProperty(TGridCSSVariables.gridOutsideSpaceHalved, `${remainingWidth / 2}px`);\r\n } else {\r\n gridEl.style.setProperty(TGridCSSVariables.gridOutsideSpaceHalved, '0px');\r\n }\r\n };\r\n\r\n const handleShowOrHideArrows = (maxGridWidth: number, cellWidth: number): string => {\r\n const headerCellWidth = windowService().innerWidth >= Breakpoints.md ? DesktopRowHeaderCellWidth : MobileRowHeaderCellWidth;\r\n let columnWidth = cellWidth + 'px';\r\n if (maxGridWidth - colHeadings.length * cellWidth > headerCellWidth) {\r\n columnWidth = (maxGridWidth - headerCellWidth) / colHeadings.length + 'px';\r\n setHideArrowButton(true);\r\n return columnWidth;\r\n } else {\r\n setHideArrowButton(false);\r\n return columnWidth;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n //eslint-disable-next-line\r\n if (!previousViewWidth) previousViewWidth = windowService()?.innerWidth;\r\n function resizeHandler(): void {\r\n const GridRef = tableRef.current?.GridRef;\r\n if (GridRef && GridRef.current) {\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n if (!gridEl) return;\r\n\r\n gridEl.style.setProperty(TGridCSSVariables.gridScrollBy, '0');\r\n gridEl.style.setProperty(TGridCSSVariables.gridLeftCellsMoveBy, '0');\r\n setLeftMostVisibleColumn(0);\r\n if (previousViewWidth !== windowService()?.innerWidth) {\r\n setExpandedRows([0]); // do this only on horizontal resize\r\n previousViewWidth = windowService()?.innerWidth;\r\n }\r\n\r\n const clientWidth = documentService().documentElement.clientWidth;\r\n const maxGridWidth = Math.min(clientWidth, TableMaxWidth);\r\n const cellWidth = windowService().innerWidth >= Breakpoints.md ? DesktopSpecCellWidth : MobileSpecCellWidth;\r\n\r\n const columnWidth = handleShowOrHideArrows(maxGridWidth, cellWidth);\r\n\r\n gridEl.style.setProperty(TGridCSSVariables.gridColumnWidth, columnWidth);\r\n handleGridOutsideSpace(clientWidth, TableMaxWidth);\r\n }\r\n }\r\n\r\n resizeHandler();\r\n windowService().addEventListener('resize', resizeHandler);\r\n return (): void => windowService().removeEventListener('resize', resizeHandler);\r\n }, [tableRef, contextItemUrl, colHeadings]); // eslint-disable-line\r\n\r\n useEffect(() => {\r\n const GridRef = tableRef.current?.GridRef;\r\n if (isDesktop && leftMostVisibleColumn > -1 && GridRef && GridRef.current && colHeadings.length > 0) {\r\n let newGridScrollBy = DesktopSpecCellWidth * leftMostVisibleColumn;\r\n const clientWidth = Math.min(documentService().documentElement.clientWidth, TableMaxWidth);\r\n const maxMove = DesktopRowHeaderCellWidth + DesktopSpecCellWidth * colHeadings.length - clientWidth;\r\n if (newGridScrollBy > maxMove && maxMove > 0) {\r\n newGridScrollBy = maxMove;\r\n }\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n if (!gridEl) return;\r\n gridEl.style.setProperty(TGridCSSVariables.gridScrollBy, `-${newGridScrollBy}px`);\r\n gridEl.style.setProperty(TGridCSSVariables.gridLeftCellsMoveBy, `${newGridScrollBy}px`);\r\n gridEl.style.setProperty(TGridCSSVariables.gridFixedColHeadsMoveBy, `-${newGridScrollBy}px`);\r\n }\r\n }, [leftMostVisibleColumn, tableRef, colHeadings, isDesktop]);\r\n\r\n useEffect(() => {\r\n // Closing dropdown if clicked anywhere else\r\n function handleClick(event): void {\r\n if (!isDesktop) return;\r\n if (!event?.target?.getAttribute('data-is-dropdown-switch')) {\r\n setDropdownAtColumnIndex(null);\r\n }\r\n }\r\n\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n\r\n docElement.addEventListener('click', handleClick, false);\r\n return (): void => docElement.removeEventListener('click', handleClick, false);\r\n }, [isDesktop]);\r\n\r\n useEffect(() => {\r\n // prevent background body scrolling when model is opened in mobile view\r\n if (!isDesktop) {\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n\r\n if (dropdownAtColumnIndex !== null) docElement.body.classList.add('body--with-spec-model');\r\n else docElement.body.classList.remove('body--with-spec-model');\r\n }\r\n }, [dropdownAtColumnIndex, isDesktop]);\r\n\r\n useEffect(() => {\r\n if (!categoryRows) return;\r\n if (!searchTerm) {\r\n setExpandedRows([0]);\r\n return;\r\n }\r\n setExpandedRows(categoryRows.map((_, i) => i));\r\n }, [searchTerm]); // eslint-disable-line\r\n\r\n const moveGridLeft = (): void => {\r\n const GridRef = tableRef.current?.GridRef;\r\n if (GridRef && GridRef.current) {\r\n setLeftMostVisibleColumn((cardNo) => (cardNo > 0 ? cardNo - 1 : 0));\r\n }\r\n };\r\n\r\n const moveGridRight = (): void => {\r\n const TableWrapperRef = tableRef.current?.TableWrapperRef;\r\n if (TableWrapperRef && TableWrapperRef.current && colHeadings) {\r\n const tableWrapperEl = TableWrapperRef.current as HTMLElement | null;\r\n if (!tableWrapperEl) return;\r\n const availableWidth = tableWrapperEl.clientWidth - DesktopRowHeaderCellWidth;\r\n const visibleColumns = Math.floor(availableWidth / DesktopSpecCellWidth);\r\n const maxMove = colHeadings.length - 1 - visibleColumns;\r\n\r\n if (!showHiddenRightCells) setShowHiddenRightCells(true);\r\n\r\n setLeftMostVisibleColumn((cardNo) => (cardNo <= maxMove ? cardNo + 1 : cardNo));\r\n }\r\n };\r\n\r\n const toggleAllRows = (): void => {\r\n if (!categoryRows) return;\r\n if (expandedRows.length === categoryRows.length) {\r\n setExpandedRows([]);\r\n } else {\r\n setExpandedRows(categoryRows.map((_, i) => i));\r\n }\r\n };\r\n\r\n // function has a parameter, cannot use usecallback.\r\n const toggleRow = (index: number): void => {\r\n const GridRef = tableRef.current?.GridRef;\r\n\r\n if (GridRef && GridRef.current) {\r\n const arrIndex = expandedRows.findIndex((val) => val === index);\r\n if (arrIndex > -1) {\r\n setExpandedRows((expandedRow) => expandedRow.filter((val) => val !== index));\r\n } else {\r\n setExpandedRows((expandedRow) => [...expandedRow, index]);\r\n }\r\n }\r\n };\r\n\r\n const printStart = useCallback(() => {\r\n setPrintActive(() => true);\r\n }, [setPrintActive]);\r\n\r\n const printEnd = useCallback(() => {\r\n setPrintActive(() => {\r\n return false;\r\n });\r\n }, [setPrintActive]);\r\n\r\n const getSearchResultCount = () => {\r\n const initialValue = categoryRows?.length;\r\n return categoryRows\r\n ?.map((item) => item.items?.length)\r\n ?.reduce((previousValue: number, currentValue: number) => previousValue + currentValue, initialValue)\r\n ?.toString();\r\n };\r\n\r\n const GridRef = tableRef.current?.GridRef;\r\n let gridFixedColHeadsMoveBy = '';\r\n let gridColumnWidth = '';\r\n let gridOutsideSpaceHalved = '';\r\n let gridLeftCellsMoveBy = '';\r\n\r\n if (GridRef) {\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n gridFixedColHeadsMoveBy = gridEl?.style.getPropertyValue(TGridCSSVariables.gridFixedColHeadsMoveBy) || '';\r\n gridColumnWidth = gridEl?.style.getPropertyValue(TGridCSSVariables.gridColumnWidth) || '';\r\n gridOutsideSpaceHalved = gridEl?.style.getPropertyValue(TGridCSSVariables.gridOutsideSpaceHalved) || '';\r\n gridLeftCellsMoveBy = gridEl?.style.getPropertyValue(TGridCSSVariables.gridLeftCellsMoveBy) || '';\r\n }\r\n\r\n const mainTableProps = {\r\n backgroundColorClass,\r\n backgroundColor,\r\n fixedColumnHeading,\r\n searchTerm,\r\n mrpRow,\r\n categoryRows,\r\n gridColumns: colHeadings.length.toString(),\r\n gridFixedColHeadsMoveBy,\r\n gridColumnWidth,\r\n gridOutsideSpaceHalved,\r\n gridLeftCellsMoveBy,\r\n colHeadings,\r\n setDropdownAtColumnIndex,\r\n setColOrdInIndex,\r\n dropdownAtColumnIndex,\r\n colOrdInIndex,\r\n expandedRows,\r\n toggleRow,\r\n showHiddenRightCells,\r\n title,\r\n eyebrow,\r\n setShowHiddenRightCells,\r\n };\r\n\r\n return (\r\n \r\n \r\n {searchTerm && mrpRow.hideRow && !categoryRows?.length && (\r\n
    \r\n \r\n

    {t('cnhi-noMatchesFoundTitle')}

    \r\n

    {t('cnhi-noMatchesFoundDescription')}

    \r\n
    \r\n )}\r\n \r\n {(!searchTerm || (searchTerm && (categoryRows?.length || !mrpRow.hideRow))) && }\r\n \r\n \r\n );\r\n};\r\n\r\nexport default withTranslation()(SpecificationTable);\r\n","import React, { useState } from 'react';\r\nimport { withSitecoreContext, isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TContentHubModelDetailSpecificationsTableProps, TSpecGroup } from './types/index.types';\r\nimport { ContentHubModelDetailSpecificationsTableModel } from './models/index.model';\r\nimport SpecificationTable from './components/specificationTable/index';\r\nimport { textContains } from '../../utils/regex.utils';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst ProductModelSpecifications = (props: TContentHubModelDetailSpecificationsTableProps): JSX.Element | null => {\r\n const apiResponse = isEmptyResponse(props);\r\n const model = new ContentHubModelDetailSpecificationsTableModel(props);\r\n const [searchTerm, setSearchTerm] = useState('');\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n const getCategoryRows = (): Array => {\r\n if (searchTerm) {\r\n const newCategoryRows: Array = [];\r\n\r\n model.categoryRows.forEach((category) => {\r\n const newCategory: TSpecGroup = {\r\n group: '',\r\n items: [],\r\n };\r\n if (textContains(category.group, searchTerm)) {\r\n newCategory.group = category.group;\r\n }\r\n const items = category.items.filter((item) => textContains(item.key, searchTerm));\r\n if (items.length) {\r\n newCategory.group = category.group;\r\n newCategory.items = items;\r\n }\r\n if (newCategory.group) {\r\n newCategoryRows.push(newCategory);\r\n }\r\n });\r\n return newCategoryRows;\r\n }\r\n return model.categoryRows;\r\n };\r\n\r\n const getMrpRows = () => {\r\n if (searchTerm && !textContains(model.mrpRow?.label || '', searchTerm)) {\r\n return { ...model.mrpRow, hideRow: true };\r\n }\r\n return model.mrpRow;\r\n };\r\n\r\n const passProps = {\r\n colHeadings: model.colHeadings,\r\n originalMrpRow: model.mrpRow,\r\n originalCategoryRows: model.categoryRows,\r\n mrpRow: getMrpRows(),\r\n eyebrow: model.eyebrow,\r\n title: model.title,\r\n button1: model.button1,\r\n contextItemUrl: model.contextItemUrl,\r\n categoryRows: getCategoryRows(),\r\n searchTerm: searchTerm,\r\n setSearchTerm: setSearchTerm,\r\n convertToExcelLink: model.convertToExcelLink,\r\n iconsList: model.iconsList,\r\n backgroundColor: model.backgroundColor,\r\n backgroundColorClass: model.backgroundColorClass,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductModelSpecifications);\r\n","import { ComponentParams } from '@sitecore-jss/sitecore-jss-react';\r\nimport { ProductSelectorProps } from '../types/productSelector.types';\r\n\r\nexport class ProductSelectorModel {\r\n private readonly params?: ComponentParams;\r\n\r\n constructor(props: ProductSelectorProps) {\r\n this.params = props?.params;\r\n }\r\n\r\n get src(): string | undefined {\r\n return this.params?.src;\r\n }\r\n}\r\n","import React, { useEffect, FC } from 'react';\r\nimport { ProductSelectorProps } from './types/productSelector.types';\r\nimport { ProductSelectorModel } from './models/productSelector.model';\r\nimport { documentService } from '../../utils/window.utils';\r\n\r\nconst ProductSelector: FC = (props) => {\r\n const model = new ProductSelectorModel(props);\r\n\r\n useEffect(() => {\r\n const addScript = documentService().createElement('script');\r\n addScript.setAttribute('src', model?.src);\r\n if (documentService()?.body) {\r\n documentService()?.body.appendChild(addScript);\r\n }\r\n }, []); /* eslint-disable-line */\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ProductSelector;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { ISeoModel } from '../../../types/seo.types';\r\n\r\nimport { THrefLangItem, TSitecoreContext } from '../../../types/types';\r\nimport { TProductSeoTagsFields, TProductSeoTagsProps, TRouteData } from '../types/productSeoTags.types';\r\nimport { windowService } from '../../../utils/window.utils.js';\r\n\r\nexport class ProductSeoTagsModel implements ISeoModel {\r\n private readonly fields?: TProductSeoTagsFields;\r\n private readonly context: TSitecoreContext;\r\n private readonly route: TRouteData;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TProductSeoTagsProps) {\r\n this.fields = props?.fields;\r\n this.context = props?.sitecoreContext;\r\n this.route = props?.sitecoreContext?.route as any || null;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get title(): string {\r\n const pageTitle = this.fields?.apiData?.seo?.title ? this.fields?.apiData?.seo?.title : this.route?.fields?.metaTitle?.value;\r\n const brandName = this.context?.metaData?.brandName;\r\n const pageTitleSuffix = this.context?.metaData?.browserTitleSuffix;\r\n const brandNameWithSuffix = brandName && pageTitleSuffix ? `${brandName} ${pageTitleSuffix}` : brandName;\r\n\r\n if (pageTitle && brandName) {\r\n return `${pageTitle} | ${brandNameWithSuffix}`;\r\n }\r\n\r\n return pageTitle || brandNameWithSuffix || '';\r\n }\r\n\r\n get description(): string {\r\n return this.fields?.apiData?.seo?.description || this.route?.fields?.metaDescription?.value || '';\r\n }\r\n\r\n get keywords(): string {\r\n return this.fields?.apiData?.seo?.keywords || this.route?.fields?.MetaKeywords?.value || '';\r\n }\r\n\r\n get robots(): string {\r\n return this.fields?.apiData?.seo?.metaRobots || this.route?.fields?.RobotsContent?.value || '';\r\n }\r\n\r\n get canonicalUrl(): string {\r\n const canonicalurl =\r\n this.fields?.apiData?.seo?.canonicalUrl ||\r\n this.route?.fields?.canonicalLink?.value?.href ||\r\n this.route?.fields?.metaUrl?.value ||\r\n this.context?.metaData?.fullCanonicalLink;\r\n\r\n if (canonicalurl && !canonicalurl.includes('/layout/render')) {\r\n return canonicalurl;\r\n }\r\n return windowService()?.location?.href;\r\n }\r\n\r\n get alternateLinks(): Array {\r\n return this.context?.ContextExtensions?.hrefLanguageList || [];\r\n }\r\n\r\n get language(): string {\r\n return this.context?.language || '';\r\n }\r\n\r\n get ogTitle(): string {\r\n return this.title;\r\n }\r\n\r\n get ogSiteName(): string {\r\n return this.title;\r\n }\r\n\r\n get currentPageUrl(): string {\r\n return this.context?.currentPageUrl ?? '';\r\n }\r\n\r\n get ogUrl(): string {\r\n return this.fields?.apiData?.seo?.ogUrl || this.route?.fields?.metaUrl?.value || this.currentPageUrl;\r\n }\r\n\r\n get ogImage(): string {\r\n let image = this.fields?.apiData?.seo?.ogImage;\r\n if (!image && this.fields?.apiData?.assets) {\r\n image = this.fields?.apiData?.assets[0]?.Size1200;\r\n }\r\n return image || this.route?.fields?.metaImage?.value?.src || '';\r\n }\r\n\r\n get ogType(): string {\r\n return this.fields?.apiData?.seo?.ogType || this.route?.fields?.metaType?.value || 'website';\r\n }\r\n\r\n get ogDescription(): string {\r\n return this.fields?.apiData?.seo?.ogDescription || this.description;\r\n }\r\n\r\n get ogLocale(): string {\r\n return this.context?.language || '';\r\n }\r\n\r\n get ogLocaleAlternate(): string[] {\r\n return (\r\n this.context?.ContextExtensions?.hrefLanguageList\r\n ?.filter((langItem) => langItem?.langCode !== this.context?.language)\r\n .map((langItem) => langItem.langCode || '') || []\r\n );\r\n }\r\n\r\n get priceAmountFromApi(): string {\r\n let price = '';\r\n if (this.fields?.apiData?.msrp?.length) {\r\n this.fields.apiData.msrp.split('').forEach((char) => {\r\n if (/\\d|[.]/.test(char)) {\r\n price += char;\r\n }\r\n });\r\n }\r\n return price;\r\n }\r\n\r\n get ogPriceAmount(): string {\r\n return this.priceAmountFromApi || this.route?.fields?.priceAmount?.value || '';\r\n }\r\n\r\n get ogPriceCurrency(): string {\r\n return this.route?.fields?.priceCurrency?.value || '';\r\n }\r\n\r\n get twitterCard(): string {\r\n return this.fields?.apiData?.seo?.seoTwitterCard || 'summary';\r\n }\r\n\r\n get twitterSite(): string {\r\n return this.fields?.apiData?.seo?.seoTwitterSite || this.route?.fields.metaSite?.value || '';\r\n }\r\n\r\n get twitterTitle(): string {\r\n return this.fields?.apiData?.seo?.title || this.route?.fields.metaTitle?.value || '';\r\n }\r\n\r\n get twitterDescription(): string {\r\n return this.description;\r\n }\r\n\r\n get twitterImage(): string {\r\n return this.fields?.apiData?.seo?.ogImage || this.route?.fields?.metaImage?.value?.src || '';\r\n }\r\n\r\n get gscVerificationCodes(): Array {\r\n let values: Array = [];\r\n const extMetaGSVC: Array =\r\n typeof this.context?.metaData?.googleSiteVerificationCode === 'object'\r\n ? Object.values(this.context?.metaData?.googleSiteVerificationCode)\r\n : [];\r\n const regularGSVC: Array = this.route?.fields?.googleSiteVerificationCode?.value?.map((link) => link.Value || '') || [];\r\n if (extMetaGSVC) {\r\n values = values.concat(extMetaGSVC);\r\n }\r\n if (regularGSVC) {\r\n values = values.concat(regularGSVC);\r\n }\r\n return values;\r\n }\r\n\r\n get favIconUrl(): string {\r\n return this.route?.fields?.Favicon?.value?.src || this.context?.metaData?.favicon?.src || '';\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { TSeoTagsProps } from '../types/seoTags.types';\r\n\r\nconst distPathFavicon = '/dist/caseih/favicon.ico'; // favicon path fall back\r\n\r\nconst GeneralHeadOrMetaTags: FC = ({ model }) => (\r\n \r\n \r\n {model.title}\r\n\r\n {model.keywords && }\r\n {model.description && }\r\n {model.robots && }\r\n\r\n {model.gscVerificationCodes?.map((value) => (\r\n \r\n ))}\r\n\r\n \r\n \r\n\r\n {model.alternateLinks.map((item) => (\r\n \r\n ))}\r\n\r\n {model.language && }\r\n \r\n);\r\n\r\nexport default GeneralHeadOrMetaTags;\r\n","import React, { FC } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { TSeoTagsProps } from '../types/seoTags.types';\r\n\r\nconst OgMetaTags: FC = ({ model }) => (\r\n \r\n {model.ogTitle && }\r\n {model.ogSiteName && }\r\n {model.ogUrl && }\r\n {model.ogImage && }\r\n {model.ogType && }\r\n {model.ogDescription && }\r\n {model.ogLocale && }\r\n {model.ogLocaleAlternate.map((lang) => (\r\n <>{!!lang && }\r\n ))}\r\n\r\n {model.ogPriceAmount && }\r\n {model.ogPriceCurrency && }\r\n \r\n);\r\n\r\nexport default OgMetaTags;\r\n","import React, { FC } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { TSeoTagsProps } from '../types/seoTags.types';\r\n\r\nconst TwitterMetaTags: FC = ({ model }) => (\r\n \r\n {model.twitterCard && }\r\n {model.twitterSite && }\r\n {model.twitterTitle && }\r\n {model.twitterDescription && }\r\n {model.twitterImage && }\r\n \r\n);\r\n\r\nexport default TwitterMetaTags;\r\n","import React, { FC } from 'react';\r\nimport GeneralHeadOrMetaTags from './components/genericTags';\r\nimport OgMetaTags from './components/ogMetaTags';\r\nimport TwitterMetaTags from './components/twitterMetaTags';\r\n\r\nimport { TSeoTagsProps } from './types/seoTags.types';\r\n\r\nconst SeoTags: FC = ({ model }) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SeoTags;\r\n","import React, { FC } from 'react';\r\nimport { TProductSeoTagsProps } from './types/productSeoTags.types';\r\nimport { ProductSeoTagsModel } from './models/productSeoTags.model';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport SeoTags from '../@shared/seoTags';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst ProductSeoTags: FC = (props) => {\r\n const apiResponse = isEmptyResponse(props);\r\n const model = new ProductSeoTagsModel(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n // since all are meta tags in header the placeholder doesn't serve a purpose, not a presentational component\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default withSitecoreContext()(ProductSeoTags);\r\n","import React from 'react';\r\nimport ContentHubCompatibleLoaders from '../productCompatibleLoaderListing/components/compatibleLoaders';\r\nimport { TCHCompatibleLoadersProps } from '../productCompatibleLoaderListing/types/productCompatibleLoaderListing.types';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport {\r\n descriptionKeySeriesCompatibleAttachments,\r\n eyebrowKeySeriesCompatibleAttachments,\r\n titleKeySeriesCompatibleAttachments,\r\n} from '../../constants/dictionary.constants';\r\n\r\nconst ProductSeriesCompatibleAttachmentListing = (props: TCHCompatibleLoadersProps): JSX.Element => {\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ProductSeriesCompatibleAttachmentListing;\r\n","import { getThumbnailProps } from '../../../utils/youtubeUtils';\r\nimport { TConfigurationsOverviewCard } from '../types/productSeriesDetailConfigurationsOverview.types';\r\n\r\nexport class ConfigurationCardModel {\r\n private readonly fields: TConfigurationsOverviewCard;\r\n constructor(props: TConfigurationsOverviewCard) {\r\n this.fields = props;\r\n }\r\n\r\n get assets() {\r\n return this.fields.assets;\r\n }\r\n\r\n get button1() {\r\n return this.fields.button1;\r\n }\r\n\r\n get button2() {\r\n return this.fields.button2;\r\n }\r\n\r\n get description() {\r\n return this.fields.description;\r\n }\r\n\r\n get title() {\r\n return this.fields.title;\r\n }\r\n\r\n get componentNumber() {\r\n return this.fields.componentNumber;\r\n }\r\n\r\n get firstAsset() {\r\n return this.assets?.[0];\r\n }\r\n\r\n get isVideo(): boolean {\r\n return this.firstAsset?.role === 'video' || this.firstAsset?.role === 'extvideo';\r\n }\r\n\r\n get getVideoUrl() {\r\n if (this.isVideo) {\r\n return this.firstAsset?.full;\r\n }\r\n return '';\r\n }\r\n\r\n get getExternalThumbnail(): string {\r\n if (this.firstAsset?.role === 'extvideo') {\r\n const { showThumbnail, thumbnailImgSrc } = getThumbnailProps(this.firstAsset?.full, 'hqdefault');\r\n if (showThumbnail) return thumbnailImgSrc || '';\r\n }\r\n return '';\r\n }\r\n}\r\n","import React, { FC, useState, useCallback } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { TRendition } from '../../../../types/types';\r\nimport { googleClickCtaEvent, googleClickOpenVideoEvent } from '../../../../utils/analytics';\r\nimport { getThumbnailProps } from '../../../../utils/youtubeUtils';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport MediaElement from '../../../@shared/configurationCardMediaElement';\r\nimport Icon from '../../../@shared/icon';\r\nimport ModalDialog from '../../../@shared/modalDialog';\r\nimport OverlayCarouselPopup from '../../../@shared/overlayCarouselPopup';\r\nimport { TGalleryItem } from '../../../@shared/overlayCarouselPopup/types/overlayCarouselPopup.types';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport { ConfigurationCardModel } from '../../models/productSeriesConfigurationCard.model';\r\nimport { TConfigurationsOverviewCard } from '../../types/productSeriesDetailConfigurationsOverview.types';\r\nimport { appendRootToRichTextInternalLinks } from '../../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\n\r\nconst ConfigurationCard: FC = (props) => {\r\n const model = new ConfigurationCardModel(props);\r\n\r\n const [showOverlay, setShowOverlay] = useState(false);\r\n\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const closeOverlayModal = (): void => setShowOverlay(false);\r\n\r\n const showOverlayVideo = (): void => {\r\n if (!model.isVideo) return;\r\n setShowOverlay(true);\r\n googleClickOpenVideoEvent(model.firstAsset.description, model.componentNumber);\r\n };\r\n\r\n const getOverlayProps: () => TGalleryItem[] = useCallback(() => {\r\n let externalThumbnail: TRendition | null = null;\r\n\r\n if (model.isVideo) {\r\n const { showThumbnail, thumbnailImgSrc } = getThumbnailProps(model.firstAsset?.full);\r\n\r\n if (showThumbnail) {\r\n externalThumbnail = {\r\n url: thumbnailImgSrc || '',\r\n height: 720,\r\n width: 1280,\r\n };\r\n }\r\n }\r\n\r\n return [\r\n {\r\n desktopRendition: externalThumbnail?.url ? externalThumbnail : model.firstAsset?.rendition_desktop_size500,\r\n mobileRendition: externalThumbnail?.url ? externalThumbnail : model.firstAsset?.rendition_mobile_size500,\r\n desktopAlt: model.firstAsset.alt,\r\n mobileAlt: model.firstAsset?.alt,\r\n isVideo: model.isVideo,\r\n videoUrl: model.getVideoUrl,\r\n },\r\n ];\r\n }, [model.assets]); // eslint-disable-line\r\n\r\n return (\r\n
    \r\n {model.assets?.length > 0 && (\r\n
    \r\n \r\n \r\n {model.getVideoUrl && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n
    \r\n {model.title ? : null}\r\n {model.description ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n {model.button1?.label && model.button1?.url && (\r\n googleClickCtaEvent('Button', model.button1?.label, model.title, model.componentNumber)}\r\n >\r\n {model.button1.label}\r\n \r\n )}\r\n {model.button2?.label && model.button2?.url && (\r\n \r\n googleClickCtaEvent('Button', model.button2?.label, model.title, model.componentNumber)}\r\n >\r\n {model.button2.label}\r\n \r\n \r\n \r\n )}\r\n
    \r\n {model.getVideoUrl && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default ConfigurationCard;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport {\r\n TConfigurationsOverviewCard,\r\n TContentHubSeriesDetailConfigurationsOverviewFields,\r\n TContentHubSeriesDetailConfigurationsOverviewParams,\r\n TContentHubSeriesDetailConfigurationsOverviewProps,\r\n} from '../types/productSeriesDetailConfigurationsOverview.types';\r\n\r\nexport class ProductSeriesDetailConfigurationsOverviewModel {\r\n private readonly fields?: TContentHubSeriesDetailConfigurationsOverviewFields;\r\n private readonly params?: TContentHubSeriesDetailConfigurationsOverviewParams;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TContentHubSeriesDetailConfigurationsOverviewProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params || undefined;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get title(): string | undefined {\r\n return this.fields?.apiData?.title;\r\n }\r\n\r\n get eyebrow(): string | undefined {\r\n return this.fields?.apiData?.eyebrow;\r\n }\r\n\r\n get description(): string | undefined {\r\n return appendRootToRichTextInternalLinks(this.fields?.apiData?.description);\r\n }\r\n\r\n get configurationsOverviewCard(): TConfigurationsOverviewCard[] {\r\n return this.fields?.apiData?.innerComponents || [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport ConfigurationCard from './components/configurationCard';\r\nimport { ComponentRendering, isEditorActive, RichText, Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { ProductSeriesDetailConfigurationsOverviewModel } from './models/productSeriesDetailConfigurationsOverview.model';\r\nimport { TContentHubSeriesDetailConfigurationsOverviewProps } from './types/productSeriesDetailConfigurationsOverview.types';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst ProductSeriesDetailConfigurationsOverview: FC = (props) => {\r\n const apiResponse = isEmptyResponse(props);\r\n const model = new ProductSeriesDetailConfigurationsOverviewModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n {model.configurationsOverviewCard?.map((card, index) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nexport default withSitecoreContext()(ProductSeriesDetailConfigurationsOverview);\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n TCHSeriesDetailDownloadBrochuresDataAssets,\r\n TCHSeriesDetailDownloadBrochuresInnerComponent,\r\n TCHSeriesDetailDownloadBrochuresParams,\r\n TCHSeriesDetailDownloadBrochuresProps,\r\n} from '../types/productSeriesDetailDownloadBrochures.types';\r\nimport { StringField } from '../../../types/types';\r\nimport { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\n\r\nexport class CHSeriesDetailDownloadBrochureModel {\r\n private readonly fields: any;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly params?: TCHSeriesDetailDownloadBrochuresParams;\r\n\r\n constructor(props: TCHSeriesDetailDownloadBrochuresProps) {\r\n this.fields = props?.fields || null;\r\n this.rendering = props?.rendering;\r\n this.params = props?.params;\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.fields?.apiData?.brochures?.title || null };\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return { value: this.fields?.apiData?.brochures?.eyebrow || null };\r\n }\r\n\r\n get description(): StringField {\r\n return { value: appendRootToRichTextInternalLinks(this.fields?.apiData?.brochures?.description || null) };\r\n }\r\n\r\n get assets(): TCHSeriesDetailDownloadBrochuresInnerComponent[] {\r\n return this.fields?.apiData?.brochures || [];\r\n }\r\n\r\n get downloadBrochureCard(): TCHSeriesDetailDownloadBrochuresDataAssets[] {\r\n return this.fields?.apiData?.brochures?.assets.map((item) => {\r\n return {\r\n ...item,\r\n icon: this.fields?.itemData?.iconsList || [],\r\n };\r\n });\r\n }\r\n\r\n get thumbnail(): string {\r\n return this.fields?.apiData?.assets?.[0]?.thumbnail;\r\n }\r\n\r\n get canShowComponent(): boolean {\r\n return Boolean(\r\n this.fields?.apiData?.brochures?.title ||\r\n this.fields?.apiData?.brochures?.description ||\r\n this.fields?.apiData?.brochures?.eyebrow ||\r\n this.fields?.apiData?.brochures?.assets?.length > 0\r\n );\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n return this.fields?.itemData?.contextItemUrl || '';\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { TCHSeriesDetailDownloadBrochuresDataAssets } from '../../types/productSeriesDetailDownloadBrochures.types';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport Icon from '../../../@shared/icon';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport Picture from '../../../@shared/picture';\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\n\r\nconst BrochureCard: FC = (props) => {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n const { rendition_desktop_size500, rendition_mobile_size500, alt, size, full, icon, componentNumber, digitalBrochureUrl } = props;\r\n const { t } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default withTranslation()(BrochureCard);\r\n","import React, { FC, useEffect, useRef } from 'react';\r\nimport { ComponentRendering, isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TCHSeriesDetailDownloadBrochuresProps } from './types/productSeriesDetailDownloadBrochures.types';\r\nimport { CHSeriesDetailDownloadBrochureModel } from './models/productSeriesDetailDownloadBrochures.model';\r\nimport BrochureCard from './components/brochureCard';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport TextComponentDecider from '../@shared/TextComponentDecider';\r\nimport { getTextType } from '../../utils/getTextType.utils';\r\nimport { descriptionKeySeriesBrochure, eyebrowKeySeriesBrochure, titleKeySeriesBrochure } from '../../constants/dictionary.constants';\r\nimport { addToAnyScript } from '../../utils/addToAnyScript.utils';\r\n\r\nconst ProductSeriesDetailDownloadBrochures: FC = (props) => {\r\n const model = new CHSeriesDetailDownloadBrochureModel(props);\r\n const apiResponse = isEmptyResponse(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const elementRef = useRef(null);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n addToAnyScript();\r\n });\r\n }, [model.contextItemUrl]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n if ((!apiResponse || !model.canShowComponent) && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n if ((!apiResponse && !isPlaceholderShown && !isEditorActive()) || !model.canShowComponent) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n {model.downloadBrochureCard.map((card, index) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductSeriesDetailDownloadBrochures);\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { WithSitecoreContextProps } from '@sitecore-jss/sitecore-jss-react/types/enhancers/withSitecoreContext';\r\nimport { TRendition, TThumbnailPreviewEE } from '../../../types/types';\r\n\r\nexport type TContentHubSeriesDetailsProps = WithSitecoreContextProps & {\r\n fields: TContentHubSeriesDetailsFields;\r\n rendering?: ComponentRendering;\r\n params?: TContentHubSeriesDetailsParams;\r\n};\r\n\r\nexport enum InnerComponentTypes {\r\n Split = 'split',\r\n Card = 'card',\r\n}\r\n\r\nexport type TSeriesDetailFeatureItemData = TThumbnailPreviewEE & {\r\n contextItemUrl?: string;\r\n};\r\n\r\nexport type TContentHubSeriesDetailsFields = {\r\n apiData: TSeriesDetailsData;\r\n itemData?: TSeriesDetailFeatureItemData;\r\n isComponentUnreleased?: boolean;\r\n};\r\n\r\nexport type TContentHubSeriesDetailsParams = {\r\n backgroundColorOverlaySplit?: string;\r\n backgroundColorOverlayCardColumn?: string;\r\n};\r\n\r\nexport type TBreadcrumb = {\r\n titleUrl: string;\r\n title: string;\r\n};\r\nexport type TButton = {\r\n label: string;\r\n url: string;\r\n target?: string;\r\n};\r\n\r\nexport type TSummarySpec = {\r\n key: string;\r\n value: string;\r\n active?: string;\r\n position?: string;\r\n status?: string;\r\n};\r\n\r\nexport type TComponentTab = {\r\n key: string;\r\n value: string;\r\n};\r\n\r\nexport type TFeatureRenditions = {\r\n rendition_desktop_size1200?: TRendition;\r\n rendition_desktop_size1000?: TRendition;\r\n rendition_desktop_size500?: TRendition;\r\n rendition_mobile_size500?: TRendition;\r\n};\r\n\r\nexport type TAsset = TFeatureRenditions & {\r\n role: 'main' | 'video' | 'extvideo';\r\n position: number;\r\n alt: string;\r\n bigthumbnail: string;\r\n thumbnail: string;\r\n full: string;\r\n};\r\n\r\nexport type TSeo = {\r\n title: string;\r\n description: string;\r\n keywords: string;\r\n ogTitle: string;\r\n ogType: string;\r\n ogImage: string;\r\n ogUrl: string;\r\n ogDescription: string;\r\n ogSiteName: string;\r\n jsonLdSchema: string;\r\n canonicalUrl: string;\r\n};\r\n\r\nexport type TImage = {\r\n image?: string;\r\n imageAlt?: string;\r\n mobileImage?: string;\r\n imageAltMobile?: string;\r\n};\r\n\r\nexport type TSeriesDetailsData = {\r\n id: number;\r\n titleUrl?: string;\r\n title?: string;\r\n formattedTitle?: string;\r\n eyebrow?: string;\r\n innerComponents: TComponentDetails[];\r\n description?: string;\r\n msrp?: string;\r\n optionalLabel1?: string;\r\n optionalLabel2?: string;\r\n breadcrumb?: TBreadcrumb[];\r\n button1?: TButton;\r\n button2?: TButton;\r\n button3?: TButton;\r\n summarySpecs?: TSummarySpec[];\r\n components?: TComponentTab[];\r\n active?: boolean;\r\n showInNavigation?: boolean;\r\n assets?: TAsset[];\r\n seo?: TSeo;\r\n};\r\n\r\nexport type TComponentDetails = {\r\n id: number;\r\n componentType?: InnerComponentTypes;\r\n title?: string;\r\n layoutType?: string;\r\n eyebrow?: string;\r\n description?: string;\r\n button1?: TButton;\r\n button2?: TButton;\r\n image?: string;\r\n imageAlt?: string;\r\n assets?: TAsset[];\r\n innerComponents: TComponentDetails[];\r\n button?: TButton;\r\n};\r\n\r\nexport type TComponentDetailsProps = {\r\n className?: string;\r\n component: TComponentDetails;\r\n backgroundColor?: TContentHubSeriesDetailsParams;\r\n};\r\n\r\nexport type TBannerProps = {\r\n mediaCarouselClassName?: string;\r\n component: TComponentDetails;\r\n mediaHeightClassName?: string;\r\n shouldShowOnlyFirstItem?: boolean;\r\n mobileRenditionKey?: keyof TFeatureRenditions;\r\n desktopRenditionKey?: keyof TFeatureRenditions;\r\n};\r\n\r\nexport type TGalleryProps = {\r\n assets?: TAsset[];\r\n mediaHeightClassName?: string;\r\n};\r\n\r\nexport type TModalComponentsListProps = {\r\n components: Array;\r\n backgroundColor?: string;\r\n};\r\n\r\nexport type TModalComponentsItemProps = {\r\n component: TComponentDetails;\r\n backgroundColor?: string;\r\n};\r\n\r\nexport type TInnerCardProps = TModalComponentsItemProps & { cardsCount: number };\r\n\r\nexport type TFeatureHeaderProps = {\r\n title?: string;\r\n titleKeySeriesFeature?: string;\r\n};\r\n","import React, { FC } from 'react';\r\nimport Icon from '../icon';\r\nimport RoutableNotEditableLink from '../routableNotEditableLink';\r\nimport { TCTAWithArrow } from './types/ctaWithArrow.types';\r\n\r\nconst CTAWithArrow: FC = ({ href, target = '', text, onClick }) => (\r\n
    \r\n \r\n {text}\r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nexport default CTAWithArrow;\r\n","import React from 'react';\r\nimport { TBannerProps } from '../../types/productSeriesDetailFeature.types';\r\nimport { getThumbnailProps } from '../../../../utils/youtubeUtils';\r\nimport MediaCarousel from '../../../@shared/mediaCarousel';\r\nimport { TMediaCarouselSlide } from '../../../@shared/mediaCarousel/types/mediaCarousel.types';\r\n\r\nconst Banner = (props: TBannerProps): JSX.Element => {\r\n const {\r\n component: model,\r\n mediaCarouselClassName,\r\n mediaHeightClassName,\r\n mobileRenditionKey,\r\n desktopRenditionKey,\r\n shouldShowOnlyFirstItem,\r\n } = props;\r\n\r\n const mediaCarouselSlides: TMediaCarouselSlide[] = [];\r\n\r\n model.assets?.forEach((asset) => {\r\n mediaCarouselSlides.push({\r\n isVideo: (asset.role === 'video' || asset.role === 'extvideo') && !!asset.full,\r\n videoUrl: { value: { href: asset.full } },\r\n productImageProps: {\r\n mobileRendition: asset?.[mobileRenditionKey || 'rendition_mobile_size500'],\r\n desktopRendition: asset?.[desktopRenditionKey || 'rendition_desktop_size1200'],\r\n ...(asset.role === 'extvideo' && { mobileRendition: { url: getThumbnailProps(asset.full)?.thumbnailImgSrc || '' } }),\r\n alt: asset.alt,\r\n },\r\n });\r\n });\r\n\r\n return (\r\n = 1 ? [mediaCarouselSlides[0]] : mediaCarouselSlides}\r\n mediaHeightClassName={mediaHeightClassName}\r\n extraClassName={mediaCarouselClassName}\r\n label={props?.component?.eyebrow}\r\n useAnalytics\r\n />\r\n );\r\n};\r\n\r\nexport default Banner;\r\n","import React, { FC } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { TModalComponentsItemProps } from '../../types/productSeriesDetailFeature.types';\r\nimport Banner from '../componentDetails/banner';\r\nimport CTAButton, { ctaEnums } from '../../../@shared/ctaButton';\r\nimport CTAWithArrow from '../../../@shared/ctaWithArrow';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport { appendRootToRichTextInternalLinks } from '../../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\n\r\nconst InnerSplitModule: FC = (props) => {\r\n const model = props.component;\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {model?.eyebrow}

    \r\n \r\n \r\n
    \r\n {(model?.button1?.url || model?.button1?.label) && (\r\n \r\n \r\n {model?.button1?.label}\r\n \r\n \r\n )}\r\n {(model?.button2?.url || model?.button2?.label) && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default InnerSplitModule;\r\n","import React, { FC } from 'react';\r\n\r\nimport { TModalComponentsListProps } from '../../types/productSeriesDetailFeature.types';\r\nimport InnerSplitModule from './innerSplitModule';\r\nimport './styles.scss';\r\n\r\nconst InnerSplitModules: FC = (props) => {\r\n const model = props.components;\r\n\r\n return (\r\n
    \r\n {model?.map((component) => (\r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default InnerSplitModules;\r\n","import { getThumbnailProps } from '../../../utils/youtubeUtils';\r\nimport { TProductImageProps } from '../../@shared/picture/types/picture.types';\r\nimport { TInnerCardProps } from '../types/productSeriesDetailFeature.types';\r\n\r\nexport class InnerCardModel {\r\n public readonly fields?: TInnerCardProps;\r\n constructor(props) {\r\n this.fields = props;\r\n }\r\n\r\n get component() {\r\n return this.fields?.component;\r\n }\r\n\r\n get assets() {\r\n return this.component?.assets;\r\n }\r\n\r\n get title() {\r\n return this.component?.title;\r\n }\r\n\r\n get description() {\r\n return this.component?.description;\r\n }\r\n\r\n get button1() {\r\n return this.component?.button1;\r\n }\r\n\r\n get button2() {\r\n return this.component?.button2;\r\n }\r\n\r\n get firstAsset() {\r\n return this.assets?.[0];\r\n }\r\n\r\n get pictureProps(): TProductImageProps {\r\n switch (this.fields?.cardsCount) {\r\n case 1:\r\n case 2:\r\n return {\r\n desktopRendition: this.firstAsset?.rendition_desktop_size1200,\r\n mobileRendition: this.firstAsset?.rendition_mobile_size500,\r\n };\r\n case 3:\r\n return {\r\n desktopRendition: this.firstAsset?.rendition_desktop_size1000,\r\n mobileRendition: this.firstAsset?.rendition_mobile_size500,\r\n };\r\n default:\r\n return {\r\n desktopRendition: this.firstAsset?.rendition_desktop_size500,\r\n mobileRendition: this.firstAsset?.rendition_mobile_size500,\r\n };\r\n }\r\n }\r\n\r\n get bannerType(): 'video' | 'image' {\r\n if (this.firstAsset?.role === 'video' || this.firstAsset?.role === 'extvideo') {\r\n return 'video';\r\n }\r\n return 'image';\r\n }\r\n\r\n get videoUrl() {\r\n if (this.firstAsset?.role === 'video' || this.firstAsset?.role === 'extvideo') {\r\n return this.firstAsset.full || '';\r\n }\r\n return '';\r\n }\r\n\r\n get videoThumbnail() {\r\n if (this.firstAsset?.role === 'extvideo') {\r\n const { showThumbnail, thumbnailImgSrc } = getThumbnailProps(this.firstAsset?.full);\r\n return {\r\n showThumbnail,\r\n editorialImageProps: {\r\n desktopImage: thumbnailImgSrc,\r\n mobileImage: thumbnailImgSrc,\r\n alt: this.description || '',\r\n },\r\n };\r\n }\r\n if (this.firstAsset?.role === 'video') {\r\n return {\r\n showThumbnail: !!this.firstAsset?.bigthumbnail,\r\n editorialImageProps: {\r\n desktopImage: this.firstAsset?.bigthumbnail,\r\n mobileImage: this.firstAsset?.bigthumbnail,\r\n alt: this.firstAsset?.alt || '',\r\n },\r\n };\r\n }\r\n return {\r\n showThumbnail: false,\r\n editorialImageProps: undefined,\r\n };\r\n }\r\n\r\n get showThumbnail() {\r\n return this.videoThumbnail.showThumbnail;\r\n }\r\n\r\n get editorialImageProps() {\r\n return this.videoThumbnail.editorialImageProps;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TInnerCardProps } from '../../types/productSeriesDetailFeature.types';\r\nimport CTAButton, { ctaEnums } from '../../../@shared/ctaButton';\r\nimport CTAWithArrow from '../../../@shared/ctaWithArrow';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport Picture from '../../../@shared/picture';\r\nimport VideoPlayer from '../../../@shared/videoPlayer';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport { InnerCardModel } from '../../models/innerCard.model';\r\nimport { appendRootToRichTextInternalLinks } from '../../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\n\r\nconst InnerCard: FC = (props) => {\r\n const model = new InnerCardModel(props);\r\n\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n\r\n return (\r\n
    \r\n {model.bannerType === 'video' && model.videoUrl ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n model.firstAsset && (\r\n \r\n )\r\n )}\r\n\r\n {model?.title && }\r\n {model?.description && (\r\n \r\n )}\r\n
    \r\n {(model?.button1?.url || model?.button1?.label) && (\r\n \r\n \r\n {model?.button1?.label}\r\n \r\n \r\n )}\r\n {(model?.button2?.url || model?.button2?.label) && (\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default InnerCard;\r\n","import React, { FC } from 'react';\r\nimport { TModalComponentsListProps } from '../../types/productSeriesDetailFeature.types';\r\nimport InnerCard from './innerCard';\r\nimport './styles.scss';\r\n\r\nconst InnerCards: FC = (props) => {\r\n const innerComponents = props.components;\r\n const cardsCount = innerComponents?.length || 0;\r\n\r\n return (\r\n
    \r\n {innerComponents?.map((component) => (\r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default InnerCards;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { TComponentDetailsProps, InnerComponentTypes } from '../../types/productSeriesDetailFeature.types';\r\nimport { adjustModalPositionBasedOnContent } from '../../../../utils/modal.utils';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport CTAButton, { ctaEnums } from '../../../@shared/ctaButton';\r\nimport CTAWithArrow from '../../../@shared/ctaWithArrow';\r\nimport ModalDialog from '../../../@shared/modalDialog';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport InnerSplitModules from '../innerSplitModules';\r\nimport InnerCards from '../innerCards';\r\nimport Banner from './banner';\r\nimport { windowService } from '../../../../utils/window.utils'\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\nimport { appendRootToRichTextInternalLinks } from '../../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\nimport useScrollWithShadow from '../../../../hooks/useScrollWithShadow';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\n\r\nconst ContentHubSeriesDetails = (props: WithTranslation & TComponentDetailsProps): JSX.Element => {\r\n const model = props.component;\r\n const { t, backgroundColor } = props;\r\n const [modalIsOpen, setModalIsOpen] = useState(false);\r\n const hasInnerComponents = !!(model?.innerComponents && model?.innerComponents.length);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const { showShadowBottom, scrollElementRef, onScrollHandler } = useScrollWithShadow({ bottomBuffer: 2 });\r\n const [shadowWidth, setShadowWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n function handleResize() {\r\n const newShadowWidth = scrollElementRef?.current?.clientWidth || 0;\r\n setShadowWidth(newShadowWidth);\r\n }\r\n\r\n handleResize();\r\n windowService().addEventListener('resize', handleResize);\r\n return (): void => windowService().removeEventListener('resize', handleResize);\r\n }, [scrollElementRef]);\r\n\r\n\r\n const showModal = (): void => {\r\n setModalIsOpen(true);\r\n };\r\n\r\n const closeModal = (): void => {\r\n setModalIsOpen(false);\r\n };\r\n\r\n const scrollDownOnClick = () => {\r\n scrollElementRef.current.scrollBy({\r\n top: 50,\r\n left: 0,\r\n behavior: 'smooth',\r\n });\r\n };\r\n\r\n return (\r\n
    \r\n {isDesktop && showShadowBottom && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {hasInnerComponents && (\r\n \r\n {model?.layoutType?.toLowerCase() === InnerComponentTypes.Split ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n
    \r\n

    {model?.title}

    \r\n \r\n
    \r\n {hasInnerComponents && (\r\n \r\n {\r\n showModal();\r\n googleClickCtaEvent('Button', model?.button?.label ?? t('cnhi-discoverMore'), model?.eyebrow);\r\n }}\r\n >\r\n {model?.button?.label || t('cnhi-discoverMore')}\r\n \r\n \r\n )}\r\n {model?.button1?.label ? (\r\n \r\n googleClickCtaEvent('Button', model?.button1?.label, model?.eyebrow)}\r\n >\r\n {model?.button1?.label}\r\n \r\n \r\n ) : null}\r\n {model?.button2?.label ? (\r\n {\r\n googleClickCtaEvent('Button', model?.button2?.label ?? '', model?.eyebrow ?? '');\r\n }}\r\n />\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withTranslation()(ContentHubSeriesDetails);\r\n","import { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\nimport {\r\n TComponentDetails,\r\n TContentHubSeriesDetailsParams,\r\n TContentHubSeriesDetailsProps,\r\n TSeriesDetailFeatureItemData,\r\n TSeriesDetailsData,\r\n} from '../types/productSeriesDetailFeature.types';\r\n\r\nexport class SeriesDetailsModel {\r\n public readonly data?: TSeriesDetailsData;\r\n public readonly params?: TContentHubSeriesDetailsParams;\r\n public readonly itemData?: TSeriesDetailFeatureItemData;\r\n\r\n constructor(props: TContentHubSeriesDetailsProps) {\r\n this.data = props?.fields?.apiData || null;\r\n this.params = props?.params || undefined;\r\n this.itemData = props.fields.itemData;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n return this.itemData?.contextItemUrl || '';\r\n }\r\n\r\n get backgroundColor(): TContentHubSeriesDetailsParams {\r\n return {\r\n backgroundColorOverlaySplit: BACKGROUND_COLOR_MAP.get(this.params?.backgroundColorOverlaySplit || ''),\r\n backgroundColorOverlayCardColumn: BACKGROUND_COLOR_MAP.get(this.params?.backgroundColorOverlayCardColumn || ''),\r\n };\r\n }\r\n\r\n get innerComponents(): TComponentDetails[] {\r\n return this.data?.innerComponents || [];\r\n }\r\n\r\n get eyebrow(): string | undefined {\r\n return this.data?.eyebrow;\r\n }\r\n\r\n get title(): string | undefined {\r\n return this.data?.title;\r\n }\r\n\r\n get description(): string | undefined {\r\n return this.data?.description;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { TFeatureHeaderProps } from '../types/productSeriesDetailFeature.types';\r\nimport TextComponentDecider from '../../@shared/TextComponentDecider';\r\nimport { getTextType } from '../../../utils/getTextType.utils';\r\n\r\nconst FeatureHeader: FC = (props) => {\r\n const { title, titleKeySeriesFeature } = props;\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default FeatureHeader;\r\n","import { useTranslation } from 'react-i18next';\r\nimport useSitecoreContext from './useSitecoreContext';\r\n\r\n// use this hook for checking if we have to display the dictionary fallback\r\nexport default function useShowProductComponentTitle(hasProductTitle: boolean, dictionaryTerms: string[]): boolean {\r\n const {t} = useTranslation();\r\n const {sitecoreContext} = useSitecoreContext();\r\n const isPageInEditState = sitecoreContext?.pageState === 'edit';\r\n const hasDictionaryFallback = !!dictionaryTerms.find(x => {\r\n const dictionaryValue = t(x, {defaultValue: ''})?.trim();\r\n /**\r\n * in content editor if dictionary key is defined and value is not defined\r\n * then value returned from sitecore will be the key itself\r\n **/ \r\n return dictionaryValue && dictionaryValue !== x;\r\n }\r\n );\r\n return hasProductTitle || hasDictionaryFallback || isPageInEditState;\r\n}","import React, { useState } from 'react';\r\nimport { TContentHubSeriesDetailsProps } from '../types/productSeriesDetailFeature.types';\r\nimport ComponentDetails from './componentDetails';\r\nimport { SeriesDetailsModel } from '../models/productSeriesDetailFeature.model';\r\nimport { Element } from 'react-scroll';\r\nimport Icon from '../../@shared/icon';\r\nimport { googleClickTabEvent } from '../../../utils/analytics';\r\nimport FeatureHeader from './featureHeader';\r\nimport { titleKeySeriesFeature } from '../../../constants/dictionary.constants';\r\nimport useShowProductComponentTitle from '../../../hooks/useShowProductComponentTitle';\r\n\r\nconst MobileSeriesDetails = (props: TContentHubSeriesDetailsProps): JSX.Element => {\r\n const model = new SeriesDetailsModel(props);\r\n const hasTitile = !!model?.title;\r\n const showTitle = useShowProductComponentTitle(hasTitile, [titleKeySeriesFeature]);\r\n\r\n const [collapsedTabs, setCollapsedTabs] = useState(model.innerComponents?.map(({ id }) => id));\r\n\r\n const toggleTab = (tabId: number): void => {\r\n if (collapsedTabs.includes(tabId)) {\r\n setCollapsedTabs(collapsedTabs.filter((tab) => tab !== tabId));\r\n } else {\r\n setCollapsedTabs([...collapsedTabs, tabId]);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n {showTitle && }\r\n\r\n
      \r\n {model?.innerComponents?.map((component, index) => {\r\n const isCollapsed = collapsedTabs.includes(component.id);\r\n return (\r\n
    • \r\n {\r\n toggleTab(component.id);\r\n googleClickTabEvent('Open', component?.eyebrow, index + 1);\r\n }}\r\n >\r\n {component?.eyebrow}\r\n \r\n \r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MobileSeriesDetails;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { TContentHubSeriesDetailsProps } from '../types/productSeriesDetailFeature.types';\r\nimport ComponentDetails from './componentDetails';\r\nimport { SeriesDetailsModel } from '../models/productSeriesDetailFeature.model';\r\nimport { Element } from 'react-scroll';\r\nimport Slide from 'react-reveal/Slide';\r\nimport { googleClickTabEvent } from '../../../utils/analytics';\r\nimport { windowService } from '../../../utils/window.utils';\r\nimport { TComponentDetails } from '../types/productSeriesDetailFeature.types';\r\nimport { titleKeySeriesFeature } from '../../../constants/dictionary.constants';\r\nimport FeatureHeader from './featureHeader';\r\nimport useScrollWithShadow from '../../../hooks/useScrollWithShadow';\r\nimport useShowProductComponentTitle from '../../../hooks/useShowProductComponentTitle';\r\nimport Icon from '../../@shared/icon';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\n\r\nconst DesktopSeriesDetails = (props: TContentHubSeriesDetailsProps): JSX.Element => {\r\n const model = new SeriesDetailsModel(props);\r\n const [componentArr, setComponentArr] = useState([]);\r\n const { showShadowTop, showShadowBottom, scrollElementRef, onScrollHandler } = useScrollWithShadow();\r\n const [shadowWidth, setShadowWidth] = useState(0);\r\n const sectionRef = useRef(null);\r\n const hasTitile = !!model?.title;\r\n const showTitle = useShowProductComponentTitle(hasTitile, [titleKeySeriesFeature]);\r\n\r\n useEffect(() => {\r\n function handleResize() {\r\n const newShadowWidth = scrollElementRef?.current?.clientWidth || 0;\r\n setShadowWidth(newShadowWidth);\r\n }\r\n\r\n handleResize();\r\n windowService().addEventListener('resize', handleResize);\r\n return (): void => windowService().removeEventListener('resize', handleResize);\r\n }, [scrollElementRef]);\r\n\r\n const setImageWidth = () => {\r\n if (sectionRef?.current) {\r\n sectionRef?.current?.style.setProperty('--pfe-feature-image-Width', `${sectionRef?.current?.clientWidth}px`);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (model?.innerComponents?.length && model?.innerComponents[0]) {\r\n setComponentArr([model?.innerComponents[0]]);\r\n }\r\n }, [model.contextItemUrl]);\r\n\r\n useEffect(() => {\r\n setImageWidth();\r\n }, [sectionRef]);\r\n\r\n useEffect(() => {\r\n windowService()?.addEventListener('resize', setImageWidth);\r\n return () => {\r\n windowService()?.removeEventListener('resize', setImageWidth);\r\n };\r\n }, []);\r\n const automaticScrollTop = (event): void => {\r\n event.target?.parentElement?.scrollBy({\r\n top: -50,\r\n left: 0,\r\n behavior: 'smooth',\r\n });\r\n };\r\n\r\n const scrollDownOnClick = () => {\r\n scrollElementRef.current.scrollBy({\r\n top: 50,\r\n left: 0,\r\n behavior: 'smooth',\r\n });\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {showShadowTop && (\r\n
    \r\n )}\r\n {showShadowBottom && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {showTitle && }\r\n
      \r\n {model?.innerComponents?.map((component, index) => (\r\n
    • \r\n {\r\n setComponentArr((data) => {\r\n if (component.id !== data[data.length - 1]?.id) {\r\n data.push(component);\r\n }\r\n if (data.length >= 3) {\r\n return [...data.slice(1)];\r\n }\r\n return [...data];\r\n });\r\n googleClickTabEvent('Open', component?.eyebrow, index + 1);\r\n }}\r\n >\r\n

      {component.eyebrow}

      \r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n
    \r\n {componentArr.length > 0 &&\r\n componentArr.map(\r\n (_) =>\r\n _ && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default DesktopSeriesDetails;\r\n","import React from 'react';\r\nimport { isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport MobileSeriesDetails from './components/mobileSeriesDetails';\r\nimport DesktopSeriesDetails from './components/desktopSeriesDetails';\r\nimport { TContentHubSeriesDetailsProps } from './types/productSeriesDetailFeature.types';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst ProductSeriesDetailFeature = (props: TContentHubSeriesDetailsProps): JSX.Element | null => {\r\n const apiResponse =\r\n isEmptyResponse(props) && props?.fields?.apiData?.innerComponents && props?.fields?.apiData?.innerComponents?.length > 0;\r\n const isDesktop = useMediaQuery('(min-width: 768px)');\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {isDesktop ? : }\r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductSeriesDetailFeature);\r\n","import React from 'react';\r\nimport ProductModelSpecifications from '../productModelSpecifications';\r\n\r\nconst ProductSeriesDetailModelSpecifications = (props): JSX.Element | null => {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProductSeriesDetailModelSpecifications;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { ComponentParams } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BACKGROUND_COLOR_MAP } from '../../../constants/background-color.constants';\r\nimport {\r\n TCHSeriesDetailNavigationSectionFields,\r\n TCHSeriesDetailNavigationSectionInnerComponents,\r\n TCHSeriesDetailNavigationSectionProps,\r\n} from '../types/productSeriesDetailNavigationOverviewSection.types';\r\n\r\nexport class CHSeriesDetailNavigationSectionModel {\r\n private readonly fields: TCHSeriesDetailNavigationSectionFields;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly params: ComponentParams;\r\n\r\n constructor(props: TCHSeriesDetailNavigationSectionProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params || null;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get innerComponents(): TCHSeriesDetailNavigationSectionInnerComponents[] {\r\n const innerComp = this.fields?.apiData?.innerComponents;\r\n innerComp && innerComp.splice(4);\r\n return innerComp && innerComp?.length ? innerComp : [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { isEditorActive, Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TCHSeriesDetailNavigationSectionProps } from './types/productSeriesDetailNavigationOverviewSection.types';\r\nimport { CHSeriesDetailNavigationSectionModel } from './models/productSeriesDetailNavigationOverviewSection.model';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport RoutableNotEditableLink from '../@shared/routableNotEditableLink';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { googleClickNavEvent } from '../../utils/analytics';\r\nimport IconOrImage from '../@shared/iconOrImage';\r\nimport { appendRootToInternalLink } from '../../utils/appendRootToInternalLink.utils';\r\n\r\nconst ProductSeriesDetailNavigationOverview: FC = (props) => {\r\n const apiResponse =\r\n isEmptyResponse(props) && props?.fields?.apiData?.innerComponents && props?.fields?.apiData?.innerComponents?.length > 0;\r\n const model = new CHSeriesDetailNavigationSectionModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {model.innerComponents.map(\r\n ({ button, assets }, index) =>\r\n button &&\r\n button?.label &&\r\n button.url && (\r\n
    \r\n googleClickNavEvent('Page Sub Nav', button?.label, 'Series Overview Nav Bar')}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n )\r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductSeriesDetailNavigationOverview);\r\n","import React from 'react';\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport ProductSpecialOffers from '../productSpecialOffers';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport {\r\n descriptionKeySeriesSpeicalOffers,\r\n eyebrowKeySeriesSpeicalOffers,\r\n titleKeySeriesSpeicalOffers,\r\n} from '../../constants/dictionary.constants';\r\n\r\nconst ProductSeriesDetailSpecialOffers = (props) => {\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const apiResponse = isEmptyResponse(props);\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n};\r\nexport default ProductSeriesDetailSpecialOffers;\r\n","import React from 'react';\r\nimport { BreakpointsInPx } from '../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { googleClickCtaEvent } from '../../../utils/analytics';\r\nimport { targetLinkdsk } from '../../../utils/targetDskLink';\r\nimport CTAButton, { ctaEnums } from '../../@shared/ctaButton';\r\nimport Icon from '../../@shared/icon';\r\nimport RoutableNotEditableLink from '../../@shared/routableNotEditableLink';\r\nimport { ProductSeriesDetailTestimonialModel } from '../models/productSeriesDetailTestimonial.model';\r\n\r\nconst TestimonialButtons = ({ model }: { model: ProductSeriesDetailTestimonialModel }) => {\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n\r\n const clickCTAEvent = (action: string | undefined) => {\r\n googleClickCtaEvent('Button', action, model?.title?.value ?? model?.eyebrow?.value ?? '');\r\n };\r\n\r\n return (\r\n
    \r\n {model.button1 && model.button1?.label && (\r\n \r\n clickCTAEvent(model?.button1?.label)}\r\n >\r\n {model.button1.label}\r\n \r\n \r\n )}\r\n {model.button2 && model.button2?.label && (\r\n \r\n clickCTAEvent(model?.button2?.label)}\r\n >\r\n {model.button2.label}\r\n \r\n \r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default TestimonialButtons;\r\n","import React from 'react';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\nimport { getThumbnailProps } from '../../../utils/youtubeUtils';\r\nimport Picture from '../../@shared/picture';\r\nimport { TContentHubImageProps } from '../../@shared/picture/types/contentHubImage.types';\r\nimport VideoPlayer from '../../@shared/videoPlayer';\r\nimport { ProductSeriesDetailTestimonialModel } from '../models/productSeriesDetailTestimonial.model';\r\n\r\nconst TestimonialMedia = ({ model }: { model: ProductSeriesDetailTestimonialModel }) => {\r\n if (model.asset && model.mediaData.type === 'image') {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (model.asset && (model.mediaData.type === 'video' || model.mediaData.type === 'extvideo')) {\r\n const { thumbnailImgSrc } = getThumbnailProps(model.mediaData.link || '');\r\n\r\n const videoThumbnail: TContentHubImageProps =\r\n model.mediaData.type === 'extvideo'\r\n ? { desktopRendition: { url: thumbnailImgSrc } }\r\n : {\r\n mobileRendition: { url: model.asset.bigthumbnail },\r\n alt: model.asset?.alt,\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default TestimonialMedia;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n TProductSeriesDetailTestimonialAsset,\r\n TProductSeriesDetailTestimonialButton,\r\n TProductSeriesDetailTestimonialFields,\r\n TProductSeriesDetailTestimonialProps,\r\n TProductSeriesDetailTestimoniaMediaData,\r\n} from '../types/productSeriesDetailTestimonial.types';\r\nimport { StringField } from '../../../types/types';\r\nimport { appendRootToInternalLink } from '../../../utils/appendRootToInternalLink.utils';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\n\r\nexport class ProductSeriesDetailTestimonialModel {\r\n private readonly fields: TProductSeriesDetailTestimonialFields;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TProductSeriesDetailTestimonialProps) {\r\n this.fields = props?.fields || null;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.fields?.apiData?.title };\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return { value: this.fields?.apiData?.eyebrow };\r\n }\r\n\r\n get description(): StringField {\r\n return { value: appendRootToRichTextInternalLinks(this.fields?.apiData?.description) };\r\n }\r\n\r\n get button1(): TProductSeriesDetailTestimonialButton {\r\n return this.fields?.apiData?.button1;\r\n }\r\n\r\n get button1Link(): string | undefined {\r\n return appendRootToInternalLink(this.button1.url);\r\n }\r\n\r\n get button2(): TProductSeriesDetailTestimonialButton {\r\n return this.fields?.apiData?.button2;\r\n }\r\n\r\n get button2Link(): string | undefined {\r\n return appendRootToInternalLink(this.button2.url);\r\n }\r\n\r\n get assets(): TProductSeriesDetailTestimonialAsset[] {\r\n return this.fields?.apiData?.assets || [];\r\n }\r\n\r\n get thumbnail(): string {\r\n return this.fields?.apiData?.assets?.[0]?.thumbnail;\r\n }\r\n\r\n get bigThumbnail(): string {\r\n return this.fields?.apiData?.assets?.[0]?.bigthumbnail;\r\n }\r\n\r\n get full(): string {\r\n return this.fields?.apiData?.assets?.[0]?.full;\r\n }\r\n\r\n get mediaTitle(): string | undefined {\r\n return this.fields?.apiData?.assets?.[0]?.title;\r\n }\r\n\r\n get alt(): string {\r\n return this.fields?.apiData?.assets?.[0]?.alt;\r\n }\r\n\r\n get mediaData(): TProductSeriesDetailTestimoniaMediaData {\r\n let link, type, isInternal;\r\n const firstAsset = this.fields?.apiData?.assets?.[0];\r\n if (firstAsset && (firstAsset?.role === 'video' || firstAsset?.role === 'extvideo')) {\r\n link = firstAsset.full?.replace('sitecore/media-library', '-/media');\r\n isInternal = firstAsset.role == 'video';\r\n type = firstAsset.role;\r\n } else {\r\n type = 'image';\r\n }\r\n return { link, type, isInternal };\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get asset() {\r\n return this?.assets?.length ? this?.assets?.[0] : null;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { ComponentRendering, isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport TestimonialButtons from './components/buttons';\r\nimport TestimonialMedia from './components/media';\r\nimport { ProductSeriesDetailTestimonialModel } from './models/productSeriesDetailTestimonial.model';\r\nimport { TProductSeriesDetailTestimonialProps } from './types/productSeriesDetailTestimonial.types';\r\nimport TextComponentDecider from '../@shared/TextComponentDecider';\r\nimport { getTextType } from '../../utils/getTextType.utils';\r\nimport {\r\n descriptionKeySeriesTestimonials,\r\n eyebrowKeySeriesTestimonials,\r\n titleKeySeriesTestimonials,\r\n} from '../../constants/dictionary.constants';\r\n\r\nconst ProductSeriesDetailTestimonial: FC = (props) => {\r\n const isFieldsEmpty = props?.fields && Object.keys(props?.fields).length === 0;\r\n const apiResponse = !isFieldsEmpty && isEmptyResponse(props);\r\n const model = new ProductSeriesDetailTestimonialModel(props);\r\n const imagePosition = props?.params?.imagePosition;\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductSeriesDetailTestimonial);\r\n","import { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { TSummarySpecsProps } from '../../types/seriesListing.types';\r\n\r\nconst SummarySpecs: FC = ({ summarySpecs }) => {\r\n return (\r\n
      \r\n {summarySpecs.map(({ key, value }, index) => (\r\n
    • \r\n \r\n \r\n
    • \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default SummarySpecs;\r\n","import React from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport { appendToUrlPath } from '../../../../utils/linkUtils';\r\nimport CTAButton, { ctaEnums } from '../../../@shared/ctaButton';\r\nimport CTAWithArrow from '../../../@shared/ctaWithArrow';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport Picture from '../../../@shared/picture';\r\nimport { TProductCard } from '../../types/seriesListing.types';\r\nimport SummarySpecs from './summarySpecs';\r\nimport { appendRootToRichTextInternalLinks } from '../../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\n\r\nconst ProductCard = (props: TProductCard & { bodyTextVisibility: 'show' | 'hide' }): JSX.Element => {\r\n const {\r\n titleUrl,\r\n title,\r\n type,\r\n description,\r\n summarySpecs,\r\n button1,\r\n button2,\r\n assets,\r\n baseUrl,\r\n bodyTextVisibility,\r\n componentNumber,\r\n } = props;\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n return (\r\n
    \r\n googleClickCtaEvent('Link', type, title, componentNumber)}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n {type ?

    {type}

    : null}\r\n {title ?

    {title}

    : null}\r\n {bodyTextVisibility === 'show' && description && (\r\n \r\n )}\r\n {summarySpecs?.length ? : null}\r\n
    \r\n {button1?.url ? (\r\n \r\n {\r\n event.stopPropagation();\r\n googleClickCtaEvent('Button', button1?.label, title, componentNumber);\r\n }}\r\n >\r\n {button1?.label}\r\n \r\n \r\n ) : null}\r\n {button2?.url ? (\r\n {\r\n event.stopPropagation();\r\n googleClickCtaEvent('Button', button2?.label, title, componentNumber);\r\n }}\r\n />\r\n ) : null}\r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ProductCard;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TProductCard, TSeriesListing, TSeriesListingItemData, TSeriesListingProps } from '../types/seriesListing.types';\r\n\r\nexport class SeriesListingModel {\r\n private readonly data?: TSeriesListing;\r\n private readonly itemData?: TSeriesListingItemData;\r\n private readonly params?: ComponentParamsGeneral;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly isComponentUnreleased?: boolean;\r\n\r\n constructor(props: TSeriesListingProps) {\r\n this.data = props?.fields?.apiData;\r\n this.itemData = props?.fields?.itemData;\r\n this.params = props?.params;\r\n this.rendering = props?.rendering;\r\n this.isComponentUnreleased = props?.fields?.isComponentUnreleased;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get items(): TProductCard[] {\r\n return this.data?.items || [];\r\n }\r\n\r\n get total(): number | undefined {\r\n return this.data?.total;\r\n }\r\n\r\n get baseUrl(): string {\r\n let baseUrl = this.itemData?.contextItemUrl || '';\r\n if (baseUrl && this.params?.enableProductParameters === '1') {\r\n baseUrl = this.params?.lineId ? `${baseUrl}/${this.params?.lineId}` : baseUrl;\r\n }\r\n return baseUrl;\r\n }\r\n\r\n get bodyTextVisibility(): 'show' | 'hide' {\r\n return this.params?.bodyTextVisibility;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { useEffect, useState, FC } from 'react';\r\nimport { ComponentRendering, isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TProductCard, TSeriesListingProps } from './types/seriesListing.types';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport ProductCard from './components/productCard';\r\nimport { SeriesListingModel } from './models/seriesListing.model';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst ProductSeriesListing: FC = (props) => {\r\n let model = new SeriesListingModel(props);\r\n const apiResponse = isEmptyResponse(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n const [items, setItems] = useState(null);\r\n\r\n useEffect(() => {\r\n model = new SeriesListingModel(props); // eslint-disable-line\r\n setItems(model.items);\r\n }, [props]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {items?.map((productCard, i) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ProductSeriesListing;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport template from '../../../constants/templates.constants';\r\nimport { TSitecoreContext } from '../../../types/types';\r\nimport {\r\n ContentHubSeriesListingFiltersFields,\r\n ContentHubSeriesListingFiltersProps,\r\n TLinesData,\r\n TLinesSeriesData,\r\n TSeriesData,\r\n} from '../types/seriesListing.types';\r\n\r\nexport class SeriesListingModel {\r\n private readonly fields?: ContentHubSeriesListingFiltersFields;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly context?: TSitecoreContext;\r\n\r\n constructor(props: ContentHubSeriesListingFiltersProps) {\r\n this.fields = props?.fields || null;\r\n this.rendering = props?.rendering;\r\n this.context = props?.sitecoreContext;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get lines(): TLinesData[] {\r\n return this.fields?.apiData?.lines?.items || [];\r\n }\r\n\r\n get linesSeries(): TLinesSeriesData[] {\r\n return this.fields?.apiData?.linesseries?.items || [];\r\n }\r\n \r\n get series(): TSeriesData[] {\r\n return this.fields?.apiData?.series?.items || [];\r\n }\r\n\r\n get currentLineTitle(): string {\r\n return this.fields?.apiData?.series?.parentTitle || '';\r\n }\r\n\r\n get isSuperSerie(): boolean {\r\n return this.context?.route?.templateId === template.productSuperseries;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { useState, useRef, useEffect, FC } from 'react';\r\nimport { removeTrailingSlashFromPath } from '../../../utils';\r\nimport { googleClickDropdownEvent } from '../../../utils/analytics';\r\nimport { documentService, windowService } from '../../../utils/window.utils';\r\nimport Icon from '../../@shared/icon';\r\nimport RoutableNotEditableLink from '../../@shared/routableNotEditableLink';\r\nimport { TFirstFilterProps } from '../types/seriesListing.types';\r\n\r\nconst FirstFilter: FC = (props) => {\r\n const dropdownLineRef = useRef(null);\r\n const dropdownLineInputRef = useRef(null);\r\n const {\r\n showDropdown,\r\n setShowDropdown,\r\n showPopup,\r\n setShowPopup,\r\n setDropdownTypeText,\r\n applyFilter,\r\n handleClickOutside,\r\n isMobile,\r\n currentLineTitle,\r\n isSuperSerie,\r\n lines,\r\n linesSeries,\r\n ALLTYPES,\r\n iconType,\r\n } = props;\r\n\r\n const [dropdownLineText, setDropdownLineText] = useState(currentLineTitle);\r\n\r\n useEffect(() => {\r\n const mouseDownHandler = (event) => {\r\n handleClickOutside(event, dropdownLineRef, dropdownLineInputRef, setShowDropdown);\r\n };\r\n if (documentService()) {\r\n documentService().addEventListener?.('mousedown', mouseDownHandler);\r\n }\r\n return () => {\r\n documentService()?.removeEventListener?.('mousedown', mouseDownHandler);\r\n };\r\n }, [dropdownLineRef]);\r\n\r\n const getLinkLine = (line: string) => {\r\n const paths = removeTrailingSlashFromPath(windowService().location.pathname).split('/');\r\n\r\n if (isSuperSerie) {\r\n paths.splice(-1);\r\n } else {\r\n paths.pop();\r\n }\r\n\r\n paths.push(line);\r\n return paths.join('/');\r\n };\r\n\r\n const data = isSuperSerie && linesSeries.length > 0 ? linesSeries : lines;\r\n \r\n return (\r\n
  • \r\n {\r\n setShowDropdown(!showDropdown);\r\n isMobile && setShowPopup(!showPopup);\r\n }}\r\n ref={dropdownLineInputRef}\r\n >\r\n {showDropdown && }\r\n {dropdownLineText}\r\n \r\n \r\n {showDropdown && (\r\n \r\n {data.map((line, filterIndex) => (\r\n
  • \r\n {\r\n setDropdownLineText(line.title);\r\n setDropdownTypeText(ALLTYPES);\r\n applyFilter(ALLTYPES);\r\n setShowDropdown(false);\r\n isMobile && setShowPopup(!showPopup);\r\n googleClickDropdownEvent(dropdownLineText, line.title, filterIndex + 1);\r\n }}\r\n >\r\n {line.title}\r\n \r\n
  • \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default FirstFilter;\r\n","import React, { useEffect, useRef, useState, FC } from 'react';\r\nimport { googleClickDropdownEvent } from '../../../utils/analytics';\r\nimport { documentService } from '../../../utils/window.utils';\r\nimport Icon from '../../@shared/icon';\r\nimport { TSecondFilterProps } from '../types/seriesListing.types';\r\n\r\nconst SecondFilter: FC = (props) => {\r\n const dropdownTypeRef = useRef(null);\r\n const dropdownTypeInputRef = useRef(null);\r\n const [secondFilterData, setSecondFilterData] = useState([]);\r\n\r\n const {\r\n showPopup,\r\n setShowPopup,\r\n dropdownTypeText,\r\n showDropdownType,\r\n setShowDropdownType,\r\n applyFilter,\r\n handleClickOutside,\r\n isMobile,\r\n iconType,\r\n ALLTYPES,\r\n OTHER,\r\n series,\r\n } = props;\r\n\r\n useEffect(() => {\r\n const typesFilteredArr = (): string[] => {\r\n const typeArr = [ALLTYPES];\r\n series?.filter((tractor) => tractor.type && tractor.type !== '').map((tractor) => typeArr.push(tractor.type));\r\n typeArr.push(OTHER);\r\n return typeArr.filter(function (v, i, a) {\r\n return i === a.indexOf(v);\r\n });\r\n };\r\n setSecondFilterData(typesFilteredArr);\r\n }, [ALLTYPES, series]);\r\n\r\n useEffect(() => {\r\n const mouseDownHandler = (event) => handleClickOutside(event, dropdownTypeRef, dropdownTypeInputRef, setShowDropdownType);\r\n\r\n if (documentService()) {\r\n documentService().addEventListener('mousedown', mouseDownHandler);\r\n }\r\n return () => {\r\n documentService()?.removeEventListener('mousedown', mouseDownHandler);\r\n };\r\n }, [dropdownTypeRef]);\r\n\r\n return (\r\n
  • \r\n {\r\n setShowDropdownType(!showDropdownType);\r\n isMobile && setShowPopup(!showPopup);\r\n }}\r\n ref={dropdownTypeInputRef}\r\n >\r\n {showDropdownType && }\r\n {dropdownTypeText}\r\n \r\n \r\n {showDropdownType && (\r\n \r\n {secondFilterData.map((tractor, secondFilterIndex) => (\r\n
  • \r\n {\r\n applyFilter(tractor);\r\n isMobile && setShowPopup(!showPopup);\r\n googleClickDropdownEvent(dropdownTypeText, tractor, secondFilterIndex + 1);\r\n }}\r\n >\r\n {tractor}\r\n \r\n
  • \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default SecondFilter;\r\n","import React, { useEffect, useState, FC } from 'react';\r\nimport { ContentHubSeriesListingFiltersProps } from './types/seriesListing.types';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport { SeriesListingModel } from './models/seriesListing.model';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { ComponentRendering, isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { documentService } from '../../utils/window.utils';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport FirstFilter from './components/firstFilter';\r\nimport SecondFilter from './components/secondFilter';\r\n\r\nconst ProductSeriesListingFilters: FC = (props) => {\r\n const apiResponse = isEmptyResponse(props);\r\n const { t } = props;\r\n let model = new SeriesListingModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n const ALLTYPES = t('cnhi-allTypes');\r\n const OTHER = t('cnhi-other');\r\n\r\n const isMobile = useMediaQuery(`(max-width: ${BreakpointsInPx.md})`);\r\n\r\n const [showDropdown, setShowDropdown] = useState(false);\r\n const [showDropdownType, setShowDropdownType] = useState(false);\r\n const [dropdownTypeText, setDropdownTypeText] = useState(ALLTYPES);\r\n const [showPopup, setShowPopup] = useState(false);\r\n\r\n useEffect(() => {\r\n if (documentService()) {\r\n const matches = documentService().getElementsByClassName('product-card__wrapper');\r\n for (const match of matches) {\r\n match.classList.remove('hidden');\r\n }\r\n }\r\n }, []); // eslint-disable-line\r\n\r\n useEffect(() => {\r\n model = new SeriesListingModel(props); // eslint-disable-line\r\n }, [props]);\r\n\r\n const handleClickOutside = (event, ref, refDropdown, cb) => {\r\n if (ref.current && !ref.current.contains(event?.target) && refDropdown.current && !refDropdown.current.contains(event?.target)) {\r\n cb(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (showPopup) {\r\n documentService()?.body?.classList?.add('body--with-popup-open');\r\n } else {\r\n documentService()?.body?.classList?.remove('body--with-popup-open');\r\n }\r\n }, [showPopup]);\r\n\r\n const applyFilter = (tractor) => {\r\n if (documentService()) {\r\n const cards = documentService().querySelectorAll('.product-card__wrapper');\r\n cards?.forEach((el) => el.classList.add('hidden'));\r\n if (tractor === ALLTYPES) {\r\n cards?.forEach((el) => el.classList.remove('hidden'));\r\n }\r\n\r\n if (tractor === OTHER) {\r\n const matches: Array = [];\r\n cards.forEach((el) => {\r\n if (el.querySelector('.product-card__eyebrow')) return;\r\n matches.push(el);\r\n });\r\n matches.forEach((el) => el?.classList.remove('hidden'));\r\n }\r\n\r\n if (tractor !== ALLTYPES && tractor !== OTHER) {\r\n const matches = documentService().getElementsByClassName(encodeURI(tractor));\r\n for (const match of matches) {\r\n match.classList.remove('hidden');\r\n }\r\n }\r\n }\r\n\r\n setDropdownTypeText(tractor);\r\n setShowDropdownType(false);\r\n };\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n const iconType = isMobile ? 'action-close' : 'arrow-chevron-up';\r\n\r\n return (\r\n \r\n
      \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(withTranslation()(ProductSeriesListingFilters));\r\n","import React, { FC, useEffect, useState } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { WithTranslation, withTranslation } from 'react-i18next';\r\nimport { isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport useStickyWrapper from '../../hooks/useStickyWrapper';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { windowService } from '../../utils/window.utils';\r\nimport { detectScrollDirectionForNavigationBar } from '../../utils/detectScrollDirectionForNavigationBar.utils';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport NavigationSection from '../@shared/navigationSection';\r\nimport { ContentHubSeriesNavigationBarFields, TNavigationBarProps } from '../@shared/navigationSection/types/navigationBar.types';\r\n\r\nconst ProductSeriesNavigationBarWrapper: FC = (props) => {\r\n const fields = props?.fields as ContentHubSeriesNavigationBarFields;\r\n const apiParams = typeof props?.params === 'object' && Object.keys(props?.params).length > 0;\r\n const apiResponse = isEmptyResponse(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n let scrollPosition = 0;\r\n const stickyWrapperEle = useStickyWrapper();\r\n const [dropdownIsOpen, setshowPanel] = useState(false);\r\n\r\n const detectScrollDirection = (): void => {\r\n scrollPosition = detectScrollDirectionForNavigationBar(stickyWrapperEle, scrollPosition);\r\n };\r\n\r\n useEffect(() => {\r\n windowService().addEventListener('scroll', detectScrollDirection, false);\r\n return (): void => {\r\n windowService().removeEventListener('scroll', detectScrollDirection);\r\n };\r\n }, [stickyWrapperEle]); // eslint-disable-line\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive() && !apiParams) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {stickyWrapperEle &&\r\n createPortal(\r\n ,\r\n stickyWrapperEle\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withTranslation()(withSitecoreContext()(ProductSeriesNavigationBarWrapper));\r\n","import { TContentHubButton, StringField } from '../../../types/types';\r\nimport { appendRootToInternalLink } from '../../../utils/appendRootToInternalLink.utils';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport { TContentHubSeriesOverviewProps } from '../types/productSeriesOverview.types';\r\n\r\nexport class OverviewTextModel {\r\n private readonly fields?;\r\n private readonly params?: ComponentParamsGeneral;\r\n\r\n constructor(props: TContentHubSeriesOverviewProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params;\r\n }\r\n\r\n get eyebrow(): StringField {\r\n return { value: this.fields?.apiData?.eyebrow };\r\n }\r\n\r\n get title(): StringField {\r\n return { value: this.fields?.apiData?.title };\r\n }\r\n\r\n get description(): StringField {\r\n return {\r\n value: appendRootToRichTextInternalLinks(this.fields?.apiData?.description),\r\n };\r\n }\r\n\r\n get primaryLink(): TContentHubButton {\r\n return this.fields?.apiData?.button1;\r\n }\r\n\r\n get primaryLinkUrl(): string | undefined {\r\n return appendRootToInternalLink(this.primaryLink.url);\r\n }\r\n\r\n get secondaryLink(): TContentHubButton {\r\n return this.fields?.apiData?.button2;\r\n }\r\n\r\n get secondaryLinkUrl(): string | undefined {\r\n return appendRootToInternalLink(this.secondaryLink.url);\r\n }\r\n\r\n get enableBuildPriceCTA(): boolean | undefined {\r\n return this.params?.enableBuildPriceCTA === '1';\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { Text, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TOverviewTextProps } from '../../types/overviewText.types';\r\nimport { OverviewTextModel } from '../../models/overviewText.model';\r\nimport CTAButton, { ctaEnums } from '../../../@shared/ctaButton';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport Icon from '../../../@shared/icon';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport { googleClickCtaEvent } from '../../../../utils/analytics';\r\nimport useGetBuildAndPriceLink from '../../../../hooks/useGetBuildAndPriceLink';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport { appendRootToInternalLink } from '../../../../utils/appendRootToInternalLink.utils';\r\n\r\nconst OverviewText: FC = (props) => {\r\n const model = new OverviewTextModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const buildAndPriceUrl = useGetBuildAndPriceLink('series');\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n\r\n {((model?.primaryLink?.label && model?.primaryLink?.url) || (model?.secondaryLink?.label && model?.secondaryLink?.url) || (model?.enableBuildPriceCTA && buildAndPriceUrl)) && (\r\n <>\r\n
    \r\n {model?.enableBuildPriceCTA && buildAndPriceUrl && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {model?.primaryLink?.label && model?.primaryLink?.url && (\r\n \r\n \r\n googleClickCtaEvent('Button', model?.primaryLink?.label, model.title?.value)}\r\n >\r\n {model.primaryLink.label}\r\n \r\n \r\n \r\n )}\r\n {model?.secondaryLink?.label && model?.secondaryLink?.url && (\r\n \r\n googleClickCtaEvent('Button', model?.secondaryLink?.label, model.title?.value)}\r\n >\r\n {model.secondaryLink.label}\r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default OverviewText;\r\n","import {\r\n TContentHubSeriesOverviewProps,\r\n TGalleryItem,\r\n} from '../types/productSeriesOverview.types';\r\n\r\nexport class OverviewCarouselModel {\r\n private readonly fields?;\r\n\r\n constructor(props: TContentHubSeriesOverviewProps) {\r\n this.fields = props?.fields || null;\r\n }\r\n\r\n get slides(): Array {\r\n return this.fields?.apiData?.assets;\r\n }\r\n}\r\n","import React, { FC, useState, useEffect } from 'react';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport VideoPlayer from '../../../@shared/videoPlayer';\r\nimport Picture from '../../../@shared/picture';\r\nimport { THeroCardProps } from '../../types/heroCard.types';\r\nimport { TContentHubImageProps } from '../../../@shared/picture/types/contentHubImage.types';\r\n\r\n// This component has different purpose than the carouselCard in overlaycarosuelpopup shared component\r\nconst HeroCard: FC = ({ slide, playCallback, pauseCallback, endCallback, activeCard, moveLeft, moveRight, index }) => {\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const [swipeStart, setSwipeStart] = useState(0);\r\n\r\n useEffect(() => {\r\n setSwipeStart(0);\r\n }, [activeCard, index]);\r\n\r\n const handleTouchStartVideoPlay = (event): void => {\r\n if (isWide) return;\r\n const value = event?.changedTouches?.[0]?.pageX;\r\n if (!value) return;\r\n setSwipeStart(value);\r\n };\r\n\r\n const handleTouchEndVideoPlay = (event): void => {\r\n if (isWide) return;\r\n const value = event?.changedTouches?.[0]?.pageX;\r\n if (!value) {\r\n setSwipeStart(0);\r\n return;\r\n }\r\n\r\n if (value < swipeStart && swipeStart - value > 20) {\r\n if (moveRight) moveRight();\r\n } else if (value > swipeStart && value - swipeStart > 20) {\r\n if (moveLeft) moveLeft();\r\n }\r\n setSwipeStart(0);\r\n };\r\n\r\n const productImageProps: TContentHubImageProps = {\r\n desktopRendition: slide.rendition_desktop_size1200,\r\n mobileRendition: slide.rendition_mobile_size500,\r\n alt: slide.alt,\r\n onTouchStart: handleTouchStartVideoPlay,\r\n onTouchEnd: handleTouchEndVideoPlay,\r\n isVideoThumbnail: slide.isVideo,\r\n pictureClassName: 'series-overview-hero-card__picture',\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n {slide.isVideo ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(HeroCard);\r\n","import React, { FC } from 'react';\r\nimport Icon from '../../../@shared/icon';\r\n\r\ntype TOverviewCarouselArrowProps = {\r\n direction: 'previous' | 'next';\r\n onClick: () => void;\r\n customClass?: string;\r\n};\r\n\r\nconst OverviewCarouselArrow: FC = ({ direction, onClick, customClass = '' }) => {\r\n const icon = direction === 'previous' ? 'arrow-chevron-left' : 'arrow-chevron-right';\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default OverviewCarouselArrow;\r\n","import React, { FC } from 'react';\r\nimport { TOverviewCarouselIndicatorsProps } from '../../types/overviewCarousel.types';\r\n\r\nconst OverviewCarouselIndicators: FC = ({\r\n numOfSlides,\r\n currentSlideIndex,\r\n customClass = '',\r\n onClick,\r\n}) => {\r\n const items: Array = Array(numOfSlides).fill(null);\r\n\r\n return (\r\n
      \r\n {items.map((_, index) => (\r\n onClick?.(index)}\r\n className={`series-overview-carousel__indicators__item${\r\n index === currentSlideIndex ? ' series-overview-carousel__indicators__item--active' : ''\r\n } ${customClass}`}\r\n key={`overview-slider-indicators-item-${index}`}\r\n >\r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default OverviewCarouselIndicators;\r\n","import React, { FC, useState, useEffect, useCallback, useRef } from 'react';\r\nimport Slider from 'react-slick';\r\nimport { CarouselNavPositionEnum } from '../../../../enums/carousel.enums';\r\nimport { getThumbnailProps } from '../../../../utils/youtubeUtils';\r\nimport Icon from '../../../@shared/icon';\r\nimport ModalDialog from '../../../@shared/modalDialog';\r\nimport OverlayCarouselPopup from '../../../@shared/overlayCarouselPopup';\r\nimport { TGalleryItem as TSharedGaleryItem } from '../../../@shared/overlayCarouselPopup/types/overlayCarouselPopup.types';\r\nimport CarouselTransparentNavSection from '../../../@shared/carouselTransparentNavSection';\r\nimport { TGalleryItem } from '../../types/productSeriesOverview.types';\r\nimport { OverviewCarouselModel } from '../../models/overviewCarousel.model';\r\nimport { TOverviewCarouselProps } from '../../types/overviewCarousel.types';\r\nimport HeroCard from '../heroCard';\r\nimport OveriewCarouselArrow from './overviewCarouselArrow';\r\nimport OverviewCarouselIndicators from './overviewCarouselIndicators';\r\nimport { formatComponentNumber, googleClickOpenVideoEvent, googleClickSlideEvent } from '../../../../utils/analytics';\r\n\r\nconst OverviewCarousel: FC = (props) => {\r\n const model = new OverviewCarouselModel(props);\r\n const [currentSlide, _setCurrentSlide] = useState(0);\r\n const [showOverlay, setShowOverlay] = useState(false);\r\n const [videoPlaying, setVideoPlaying] = useState(false);\r\n const [videoPaused, setVideoPaused] = useState(false);\r\n const [localSlides, setLocalSlides] = useState>([]);\r\n const sliderRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (model.slides) {\r\n const newSlides = model.slides?.map((eachSlide) => {\r\n const youTubeThumnail =\r\n eachSlide.role === 'extvideo'\r\n ? {\r\n rendition_desktop_size1200: { url: getThumbnailProps(eachSlide.full || '')?.thumbnailImgSrc || '' },\r\n }\r\n : {};\r\n return {\r\n ...eachSlide,\r\n isVideo: eachSlide.role === 'extvideo' || eachSlide.role == 'video',\r\n ...youTubeThumnail,\r\n };\r\n });\r\n setLocalSlides(newSlides);\r\n }\r\n }, [model.slides]); // eslint-disable-line\r\n\r\n useEffect(() => {\r\n setVideoPlaying(false);\r\n }, [currentSlide]);\r\n\r\n const setCurrentSlide = (index): void => {\r\n if (localSlides.length > 1) {\r\n if (currentSlide !== index) {\r\n _setCurrentSlide(index);\r\n }\r\n }\r\n };\r\n\r\n const goToPreviousSlide = (): void => {\r\n const prevSlideNo = currentSlide === 0 ? localSlides.length - 1 : currentSlide - 1;\r\n sliderRef.current?.slickGoTo(prevSlideNo);\r\n setVideoPlaying(false);\r\n setVideoPaused(false);\r\n\r\n googleClickSlideEvent(`Slide ${formatComponentNumber(prevSlideNo + 1)}`, localSlides[prevSlideNo]?.title);\r\n };\r\n\r\n const goToNextSlide = (): void => {\r\n const nextSlideNo = currentSlide === localSlides.length - 1 ? 0 : currentSlide + 1;\r\n sliderRef.current?.slickGoTo(nextSlideNo);\r\n setVideoPlaying(false);\r\n setVideoPaused(false);\r\n\r\n googleClickSlideEvent(`Slide ${formatComponentNumber(nextSlideNo + 1)}`, localSlides[nextSlideNo]?.title);\r\n };\r\n\r\n const openOverlayModal = (): void => setShowOverlay(true);\r\n const closeOverlayModal = (): void => setShowOverlay(false);\r\n\r\n const playCallback = useCallback(\r\n (title: string | undefined) => {\r\n setVideoPlaying(true);\r\n setVideoPaused(false);\r\n googleClickOpenVideoEvent(title);\r\n },\r\n [setVideoPlaying, setVideoPaused]\r\n );\r\n\r\n const pauseCallback = useCallback(() => {\r\n setVideoPlaying(false);\r\n setVideoPaused(true);\r\n }, [setVideoPlaying, setVideoPaused]);\r\n\r\n const endCallback = useCallback(() => {\r\n setVideoPlaying(false);\r\n setVideoPaused(false);\r\n }, [setVideoPlaying, setVideoPaused]);\r\n\r\n const settings = {\r\n infinite: true,\r\n dots: false,\r\n arrows: false,\r\n variableWidth: false,\r\n speed: 500,\r\n slidesToScroll: 1,\r\n nextArrow: false,\r\n prevArrow: false,\r\n afterChange: (index): void => setCurrentSlide(index),\r\n };\r\n\r\n const getOverlayProps = useCallback((): TSharedGaleryItem[] => {\r\n return localSlides.map((slideData) => {\r\n const title =\r\n typeof slideData?.title === 'string'\r\n ? {\r\n value: slideData?.title,\r\n }\r\n : slideData?.title;\r\n\r\n const description =\r\n typeof slideData?.description === 'string'\r\n ? {\r\n value: slideData?.description,\r\n }\r\n : slideData?.description;\r\n\r\n return {\r\n ...slideData,\r\n desktopAlt: slideData.alt,\r\n mobileAlt: slideData.alt,\r\n isVideo: slideData.role === 'extvideo' || slideData.role === 'video',\r\n videoUrl: slideData.full,\r\n title: title,\r\n description: description,\r\n desktopRendition: slideData.rendition_desktop_size1200,\r\n mobileRendition: slideData.rendition_mobile_size500,\r\n };\r\n });\r\n }, [localSlides]);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {localSlides?.map((slide, index) => {\r\n return (\r\n playCallback(slide?.title)}\r\n pauseCallback={pauseCallback}\r\n endCallback={endCallback}\r\n activeCard={index === currentSlide}\r\n />\r\n );\r\n })}\r\n \r\n \r\n \r\n
    \r\n {localSlides?.length > 1 && (\r\n <>\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {localSlides?.length > 0 && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default OverviewCarousel;\r\n","import React, { FC } from 'react';\r\nimport OverviewText from './components/overviewText';\r\nimport OverviewCarousel from './components/overviewCarousel';\r\nimport { TContentHubSeriesOverviewProps } from './types/productSeriesOverview.types';\r\nimport { Element } from 'react-scroll';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport { isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\n\r\nconst ProductSeriesOverview: FC = (props) => {\r\n const apiResponse = isEmptyResponse(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n // Component is unreleased\r\n if (props?.fields?.isComponentUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductSeriesOverview);\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TDateField, TLinkField, TStringField } from '../../../types/types';\r\nimport { appendRootToRichTextInternalLinks } from '../../../utils/appendRootToRichTextInternalLinks.utils';\r\nimport {\r\n TProductSpecialOfferCategoryWithLink,\r\n TProductSpecialOfferDetailFields,\r\n TProductSpecialOfferDetailProps,\r\n} from '../types/productSpecialOfferDetail.types';\r\nimport { SP_QUERY_STRINGS } from '../../../constants/special-offers-page.constants';\r\n\r\nexport class ProductSpecialOfferDetailModel {\r\n private readonly fields?: TProductSpecialOfferDetailFields;\r\n private readonly rendering?: ComponentRendering;\r\n private readonly specialOfferPageUrl?: string;\r\n\r\n constructor(props: TProductSpecialOfferDetailProps, specialOfferPageUrl?: string) {\r\n this.fields = props.fields || undefined;\r\n this.rendering = props?.rendering || undefined;\r\n this.specialOfferPageUrl = specialOfferPageUrl || '';\r\n }\r\n\r\n get title(): TStringField {\r\n return { value: this.fields?.apiData?.formattedTitle };\r\n }\r\n\r\n get categories(): TProductSpecialOfferCategoryWithLink[] {\r\n const mainCategory = this.fields?.apiData?.mainCategory;\r\n const otherCategories = this.fields?.apiData?.otherCategories || [];\r\n const allCategories = mainCategory ? [mainCategory, ...otherCategories] : otherCategories;\r\n return allCategories.map((eachCategory) => {\r\n const redirectUrl = encodeURI(this.specialOfferPageUrl + '?' + SP_QUERY_STRINGS.CATEGORY + '=' + eachCategory.titleUrl);\r\n return { ...eachCategory, redirectUrl };\r\n });\r\n }\r\n\r\n get description(): TStringField {\r\n return { value: appendRootToRichTextInternalLinks(this.fields?.apiData?.description) };\r\n }\r\n\r\n get disclaimer(): TStringField {\r\n return { value: appendRootToRichTextInternalLinks(this.fields?.apiData?.disclaimer) };\r\n }\r\n\r\n get expiration(): TDateField {\r\n return { value: this.fields?.apiData?.expiration };\r\n }\r\n\r\n get primaryLink(): TLinkField | undefined {\r\n const button = this.fields?.apiData?.buttonDetails1;\r\n if (!button?.url || !button?.label) return undefined;\r\n return ({\r\n value: {\r\n href: button.url,\r\n title: button.label,\r\n target: button.target\r\n }\r\n })\r\n }\r\n\r\n get secondaryLink(): TLinkField | undefined {\r\n const button = this.fields?.apiData?.buttonDetails2;\r\n if (!button?.url || !button?.label) return undefined;\r\n return ({\r\n value: {\r\n href: button.url,\r\n title: button.label,\r\n target: button.target\r\n }\r\n })\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC, useState } from 'react';\r\nimport {\r\n DateField,\r\n RichText,\r\n isEditorActive,\r\n} from '@sitecore-jss/sitecore-jss-react';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport useFormatDate from '../../hooks/useFormatDate';\r\nimport { appendRootToInternalLink } from '../../utils/appendRootToInternalLink.utils';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport DictionaryTerm from '../@shared/dictionaryTerm';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport ModalDialog from '../@shared/modalDialog';\r\nimport RoutableNotEditableLink from '../@shared/routableNotEditableLink';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { ProductSpecialOfferDetailModel } from './models/productSpecialOfferDetail.model';\r\nimport { TProductSpecialOfferDetailProps } from './types/productSpecialOfferDetail.types';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport CTAButton, { ctaEnums } from '../@shared/ctaButton';\r\nimport RoutableSitecoreLink from '../@shared/routableSitecoreLink';\r\nimport useSitecoreContext from '../../hooks/useSitecoreContext';\r\nimport './styles.scss';\r\n\r\nconst ProductSpecialOfferDetail: FC = (props) => {\r\n const apiResponse = isEmptyResponse(props);\r\n const { sitecoreContext } = useSitecoreContext();\r\n const specialOfferPageUrl: string | undefined = sitecoreContext?.specialOfferPageUrl;\r\n const model = new ProductSpecialOfferDetailModel(props, specialOfferPageUrl);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const formattedDate = useFormatDate(model.expiration.value);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-p']})`);\r\n const [isModelOpen, setIsModelOpen] = useState(false);\r\n const primaryCTAHref = appendRootToInternalLink(model.primaryLink?.value?.href);\r\n const secondaryCTAHref = appendRootToInternalLink(model.secondaryLink?.value?.href);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {model.disclaimer.value && (\r\n setIsModelOpen(false)}\r\n className=\"special-offer-detail-modal\"\r\n >\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n {model.categories.length > 0 && (\r\n
    \r\n \r\n :\r\n \r\n {model.categories.map((eachCategory, index) => {\r\n return (\r\n <>\r\n {index !== 0 && ', '}\r\n \r\n {eachCategory.name}\r\n \r\n \r\n );\r\n })}\r\n
    \r\n )}\r\n \r\n {model.disclaimer.value && (\r\n setIsModelOpen(true)}\r\n className=\"special-offer-detail__disclaimer\"\r\n >\r\n \r\n \r\n )}\r\n {model.expiration.value && (\r\n

    \r\n \r\n : \r\n formattedDate}\r\n />\r\n

    \r\n )}\r\n {(model.primaryLink || model.secondaryLink) && (\r\n
    \r\n {model.primaryLink && (\r\n \r\n \r\n {model.primaryLink.value.title}\r\n \r\n \r\n )}\r\n {model.secondaryLink && (\r\n \r\n \r\n {model.secondaryLink.value.title}\r\n \r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ProductSpecialOfferDetail;\r\n","import React, { FC } from 'react';\r\nimport '../../../../styles/@shared/product-card.scss';\r\nimport { TCHSpecialOffersDownloadBrochuresDataAssets } from '../../types/productSpecialOffersDownloadBrochures.types';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport RoutableNotEditableLink from '../../../@shared/routableNotEditableLink';\r\nimport Icon from '../../../@shared/icon';\r\nimport Picture from '../../../@shared/picture';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport './styles.scss';\r\n\r\nconst BrochureCard: FC = (props) => {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n const { title, alt, size, full, icon, rendition_desktop_size500, rendition_mobile_size500, digitalBrochureUrl, alternateImageUrl } = props;\r\n\r\n const desktopRendition = alternateImageUrl ? { url: `${alternateImageUrl}&t=Size500` } : rendition_desktop_size500;\r\n const mobileRendition = alternateImageUrl ? { url: `${alternateImageUrl}&t=Size500` } : rendition_mobile_size500;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {title ?

    {title}

    : null}\r\n {size ? {size}MB : null}\r\n
    \r\n
    \r\n {digitalBrochureUrl ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default BrochureCard;\r\n","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n TCHSpecialOffersDownloadBrochuresDataAssets,\r\n TCHSpecialOffersDownloadBrochuresFields,\r\n TCHSpecialOffersDownloadBrochuresProps,\r\n} from '../types/productSpecialOffersDownloadBrochures.types';\r\n\r\nexport class CHSpecialOffersDownloadBrochureModel {\r\n private readonly fields: TCHSpecialOffersDownloadBrochuresFields;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TCHSpecialOffersDownloadBrochuresProps) {\r\n this.fields = props?.fields || null;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get downloadBrochureCard(): TCHSpecialOffersDownloadBrochuresDataAssets[] {\r\n return (this.fields?.apiData?.items || []).map((item) => {\r\n return {\r\n ...item,\r\n icon: this.fields?.itemData?.iconsList || [],\r\n };\r\n });\r\n }\r\n\r\n get canShowComponent(): boolean {\r\n return this.fields?.apiData?.items?.length > 0;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n return this.fields?.itemData?.contextItemUrl || '';\r\n }\r\n}\r\n","import React, { FC, useEffect } from 'react';\r\nimport { isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport BrochureCard from './components/brochureCard';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport Heading from '../@shared/heading';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { documentService, windowService } from '../../utils/window.utils';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { TCHSpecialOffersDownloadBrochuresProps } from './types/productSpecialOffersDownloadBrochures.types';\r\nimport { CHSpecialOffersDownloadBrochureModel } from './models/productSpecialOffersDetailDownloadBrochures.model';\r\nimport './styles.scss';\r\n\r\nconst ProductSpecialOffersDetailDownloadBrochures: FC = (props) => {\r\n const model = new CHSpecialOffersDownloadBrochureModel(props);\r\n const apiResponse = isEmptyResponse(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n const shareScript = 'https://static.addtoany.com/menu/page.js';\r\n const addthisScript = documentService()?.createElement?.('script');\r\n addthisScript.setAttribute('src', shareScript);\r\n const shareContentScript = documentService()?.querySelector?.(`[src=\"${shareScript}\"]`);\r\n if (documentService()?.body && !shareContentScript) documentService()?.body?.appendChild?.(addthisScript);\r\n else windowService()?.a2a?.init_all?.();\r\n });\r\n }, [model.contextItemUrl]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n if ((!apiResponse || !model.canShowComponent) && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n if ((!apiResponse && !isPlaceholderShown && !isEditorActive()) || !model.canShowComponent) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {model?.downloadBrochureCard.map((card) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ProductSpecialOffersDetailDownloadBrochures);\r\n","import { RichText, Text, isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport useEEActive from '../../hooks/useEEActive';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport { CustomText } from '../@shared/customText';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport Picture from '../@shared/picture';\r\nimport SocialMediaBar from '../@shared/socialMediaBar';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { ProductSpecialOffersDetailHeroBannerModel } from './models/ProductSpecialOffersDetailHeroBanner.model';\r\nimport { ProductSpecialOffersDetailHeroBannerProps } from './types/ProductSpecialOffersDetailHeroBanner.types';\r\nimport { appendRootToInternalLink } from '../../utils/appendRootToInternalLink.utils';\r\nimport useSitecoreContext from '../../hooks/useSitecoreContext';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport RoutableSitecoreLink from '../@shared/routableSitecoreLink';\r\nimport CTAButton, { ctaEnums } from '../@shared/ctaButton';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport './styles.scss';\r\n\r\nconst ProductSpecialOffersDetailHeroBanner = (props: ProductSpecialOffersDetailHeroBannerProps) => {\r\n const isEE = useEEActive();\r\n const context = useSitecoreContext();\r\n const model = new ProductSpecialOffersDetailHeroBannerModel(props, context?.sitecoreContext);\r\n const smallHeroRef = useRef(null);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const apiResponse = isEmptyResponse(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const primaryCTAHref = appendRootToInternalLink(model.primaryLink?.value?.href);\r\n const secondaryCTAHref = appendRootToInternalLink(model.secondaryLink?.value?.href);\r\n\r\n const shouldShowDefaultImage = !model?.desktopImage?.url && !model?.mobileImage?.url;\r\n\r\n const productImage = {\r\n ...model.productImageProps,\r\n pictureClassName: 'special-hero-banner__image-wrapper',\r\n imageClassName: 'special-hero-banner__image',\r\n };\r\n\r\n if ((shouldShowDefaultImage && model?.defaultDesktopImage) || model?.defaultMobileImage) {\r\n productImage['mobileRendition'] = { url: model?.defaultMobileImage };\r\n productImage['desktopRendition'] = { url: model?.defaultDesktopImage };\r\n }\r\n\r\n useEffect(() => {\r\n if (isEE) return;\r\n if (smallHeroRef) {\r\n const smallHeroContentEl = smallHeroRef?.current?.querySelector('.special-hero-banner__content') as HTMLDivElement;\r\n if (!smallHeroContentEl) return;\r\n smallHeroContentEl.style.minHeight = `${\r\n isDesktop ? model?.desktopImage?.height : (model.mobileImage?.height || model?.desktopImage?.height) ?? 0\r\n }px`;\r\n }\r\n }, [smallHeroRef, isEE, isDesktop]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {model.socialMediaBarProps && (\r\n \r\n )}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n {model?.primaryLink && (\r\n \r\n \r\n {model.primaryLink.value.title}\r\n \r\n \r\n )}\r\n {model.secondaryLink && (\r\n \r\n \r\n {model.secondaryLink.value.title}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ProductSpecialOffersDetailHeroBanner;\r\n","export const ALL_SP_CATEGORIES = 'allSPCategories';\r\nexport const ALL_SP_MODELS = 'allSPModels';\r\nexport const ALL_SP_SERIES = 'allSPSeries';\r\nexport const ALL_SP_LINES = 'allSPLines';\r\nexport const MIN_CARDS_FOR_SORT_OPTION = 3;\r\n","import { TFunction } from 'i18next';\r\nimport { WithTranslation } from 'react-i18next';\r\nimport { SP_QUERY_STRINGS } from '../../../constants/special-offers-page.constants';\r\nimport { ALL_SP_CATEGORIES, ALL_SP_LINES, ALL_SP_MODELS, ALL_SP_SERIES } from '../../../constants/specialOffersFilters.constants';\r\nimport { updateSearchResults } from '../../../hooks/useQueryParams.effect';\r\nimport { TLinkField, TRendition, TSitecoreContext } from '../../../types/types';\r\nimport { appendRootToInternalLink } from '../../../utils/appendRootToInternalLink.utils';\r\nimport { TFilterContextData } from '../fiilterContext';\r\nimport {\r\n TProductSpecialOffersListingCard,\r\n TProductSpecialOffersListingCardID,\r\n TProductSpecialOffersListingCategoryFilter,\r\n TProductSpecialOffersListingFields,\r\n TProductSpecialOffersListingFilters,\r\n TProductSpecialOffersListingLineFilter,\r\n TProductSpecialOffersListingProps,\r\n TSpecialOfferDefaultImage,\r\n} from '../types/productSpecialOffersListing.types';\r\n\r\nexport class ProductSpecialOffersListingItemModel {\r\n private readonly specialOfferCard: TProductSpecialOffersListingCard;\r\n private readonly t?: TFunction;\r\n private readonly specialOfferMainPageLink: string;\r\n\r\n constructor(props: TProductSpecialOffersListingCard & WithTranslation, specialOfferMainPageLink?: string) {\r\n this.specialOfferCard = props;\r\n this.t = props.t;\r\n this.specialOfferMainPageLink = specialOfferMainPageLink || '';\r\n }\r\n\r\n get desktopImage(): TRendition | undefined {\r\n const asset = this.specialOfferCard?.assets?.[0];\r\n return asset?.rendition_desktop_size1000;\r\n }\r\n\r\n get mobileImage(): TRendition | undefined {\r\n const asset = this.specialOfferCard?.assets?.[0];\r\n return asset?.rendition_mobile_size300;\r\n }\r\n\r\n get imageAlt(): string {\r\n const asset = this.specialOfferCard?.assets?.[0];\r\n return asset?.alt ?? '';\r\n }\r\n\r\n get tag(): string | undefined {\r\n return this.specialOfferCard?.badge;\r\n }\r\n\r\n get expirationDate(): string | undefined {\r\n return this.specialOfferCard?.expiration;\r\n }\r\n\r\n get titleUrl(): string {\r\n return this.specialOfferCard?.titleUrl || '';\r\n }\r\n\r\n get title(): string | undefined {\r\n return this.specialOfferCard?.formattedTitle;\r\n }\r\n\r\n get shortDescription(): string | undefined {\r\n return this.specialOfferCard?.shortDescription;\r\n }\r\n\r\n get disclaimer(): string | undefined {\r\n return this.specialOfferCard?.disclaimer;\r\n }\r\n\r\n get button1(): TLinkField | undefined {\r\n if (!this.titleUrl || !this.specialOfferMainPageLink || this.specialOfferCard.hideSpecialOfferButtonFromCard) return undefined;\r\n const title = this.t?.('cnhi-special-offer-listing-details');\r\n return {\r\n value: {\r\n href: `${this.specialOfferMainPageLink}/${this.titleUrl}`,\r\n title,\r\n text: title,\r\n },\r\n };\r\n }\r\n\r\n get button2(): TLinkField | undefined {\r\n const button2 = this.specialOfferCard?.button2;\r\n if (button2?.url && button2?.label) {\r\n return {\r\n value: {\r\n href: appendRootToInternalLink(this.specialOfferCard?.button2?.url),\r\n title: this.specialOfferCard?.button2?.label,\r\n target: this.specialOfferCard?.button2?.target,\r\n },\r\n };\r\n }\r\n return undefined;\r\n }\r\n}\r\n\r\nexport class ProductSpecialOffersListingModel {\r\n private readonly fields?: TProductSpecialOffersListingFields;\r\n readonly cardsObj: { [id: string]: TProductSpecialOffersListingCard };\r\n private readonly context?: TSitecoreContext;\r\n\r\n constructor(props: TProductSpecialOffersListingProps, sitecoreContext?: TSitecoreContext) {\r\n this.fields = props.fields;\r\n this.cardsObj = {};\r\n props.fields?.apiData?.cards?.forEach((eachCard) => {\r\n eachCard['id'] && (this.cardsObj[eachCard['id']] = eachCard);\r\n });\r\n this.context = sitecoreContext;\r\n }\r\n\r\n get isUnreleased(): boolean | undefined {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get filters(): TProductSpecialOffersListingFilters {\r\n return this.fields?.apiData?.filters || {};\r\n }\r\n\r\n get lines(): TProductSpecialOffersListingLineFilter[] {\r\n return this.fields?.apiData?.filters?.lines || [];\r\n }\r\n\r\n get categories(): TProductSpecialOffersListingCategoryFilter[] {\r\n return this.fields?.apiData?.filters?.categories || [];\r\n }\r\n\r\n get specialOfferCards(): TProductSpecialOffersListingCard[] {\r\n return this.fields?.apiData?.cards || [];\r\n }\r\n\r\n get defaultCardDesktopImage(): string | undefined {\r\n return this.context?.defaultBackgroundImageParameters?.desktopImageData?.specialOfferListingCardImage;\r\n }\r\n\r\n get defaultCardMobileImage(): string | undefined {\r\n return this.context?.defaultBackgroundImageParameters?.mobileImageData?.specialOfferListingCardImage;\r\n }\r\n\r\n get defaultCardImage(): TSpecialOfferDefaultImage | undefined {\r\n if (this.defaultCardDesktopImage || this.defaultCardMobileImage) {\r\n return { defaultDesktopImage: this.defaultCardDesktopImage, defaultMobileImage: this.defaultCardMobileImage };\r\n }\r\n return undefined;\r\n }\r\n\r\n get cards(): TProductSpecialOffersListingCard[] {\r\n return this.fields?.apiData?.cards || [];\r\n }\r\n\r\n getCategoryTitleUrl(categorySelectedInd?: TFilterContextData['categorySelectedInd']): string {\r\n if (categorySelectedInd === undefined || categorySelectedInd === ALL_SP_CATEGORIES) return '';\r\n return this.categories[categorySelectedInd]?.titleUrl || '';\r\n }\r\n\r\n getLineTitleUrl(lineSelectedInd?: TFilterContextData['lineSelectedInd']): string {\r\n if (lineSelectedInd === undefined || lineSelectedInd === ALL_SP_LINES) return '';\r\n return this.lines[lineSelectedInd]?.titleUrl || '';\r\n }\r\n\r\n getSeriesTitleUrl(\r\n lineSelectedInd?: TFilterContextData['lineSelectedInd'],\r\n seriesSelectedInd?: TFilterContextData['seriesSelectedInd']\r\n ): string {\r\n if (\r\n lineSelectedInd === undefined ||\r\n lineSelectedInd === ALL_SP_LINES ||\r\n seriesSelectedInd === undefined ||\r\n seriesSelectedInd === ALL_SP_SERIES\r\n )\r\n return '';\r\n return this.lines?.[lineSelectedInd]?.series?.[seriesSelectedInd]?.titleUrl || '';\r\n }\r\n\r\n getModelTitleUrl(\r\n lineSelectedInd?: TFilterContextData['lineSelectedInd'],\r\n seriesSelectedInd?: TFilterContextData['seriesSelectedInd'],\r\n modelSelectedInd?: TFilterContextData['modelSelectedInd']\r\n ): string {\r\n if (\r\n lineSelectedInd === undefined ||\r\n lineSelectedInd === ALL_SP_LINES ||\r\n seriesSelectedInd === undefined ||\r\n seriesSelectedInd === ALL_SP_SERIES ||\r\n modelSelectedInd === undefined ||\r\n modelSelectedInd === ALL_SP_MODELS\r\n )\r\n return '';\r\n return this.lines?.[lineSelectedInd]?.series?.[seriesSelectedInd]?.models?.[modelSelectedInd]?.titleUrl || '';\r\n }\r\n\r\n updateQueryParams(navigate, filters: Partial = {}): void {\r\n const { categorySelectedInd, lineSelectedInd, seriesSelectedInd, modelSelectedInd } = filters;\r\n const { CATEGORY, LINE, SERIES, MODEL } = SP_QUERY_STRINGS;\r\n const queryObj = {};\r\n queryObj[CATEGORY] = this.getCategoryTitleUrl(categorySelectedInd);\r\n queryObj[LINE] = this.getLineTitleUrl(lineSelectedInd);\r\n queryObj[SERIES] = this.getSeriesTitleUrl(lineSelectedInd, seriesSelectedInd);\r\n queryObj[MODEL] = this.getModelTitleUrl(lineSelectedInd, seriesSelectedInd, modelSelectedInd);\r\n updateSearchResults(navigate, queryObj);\r\n }\r\n\r\n updatePageQueryParams(navigate, pageNo): void {\r\n updateSearchResults(navigate, { [SP_QUERY_STRINGS.PAGE]: pageNo.toString() });\r\n }\r\n\r\n resetAllQueryParams(navigate) {\r\n const { CATEGORY, LINE, SERIES, MODEL, PAGE } = SP_QUERY_STRINGS;\r\n updateSearchResults(navigate, {\r\n [CATEGORY]: '',\r\n [LINE]: '',\r\n [SERIES]: '',\r\n [MODEL]: '',\r\n [PAGE]: '',\r\n });\r\n }\r\n\r\n getDefaultContextData(search = ''): {\r\n categorySelectedInd: TFilterContextData['categorySelectedInd'];\r\n lineSelectedInd: TFilterContextData['lineSelectedInd'];\r\n seriesSelectedInd: TFilterContextData['seriesSelectedInd'];\r\n modelSelectedInd: TFilterContextData['modelSelectedInd'];\r\n } {\r\n const searchParam = new URLSearchParams(search);\r\n const { CATEGORY, LINE, SERIES, MODEL } = SP_QUERY_STRINGS;\r\n const categoryFromQuery = searchParam.get(CATEGORY) || '';\r\n const lineFromQuery = searchParam.get(LINE) || '';\r\n const seriesFromQuery = searchParam.get(SERIES) || '';\r\n const modelFromQuery = searchParam.get(MODEL) || '';\r\n const defaultCategoryInd = this.categories.findIndex((eachCategory) => eachCategory.titleUrl === categoryFromQuery);\r\n const deafultLineInd = defaultCategoryInd === -1 ? this.lines.findIndex((eachLine) => eachLine.titleUrl === lineFromQuery) : -1;\r\n const deafultSeriesInd =\r\n deafultLineInd !== -1\r\n ? this.lines[deafultLineInd]?.series?.findIndex((eachSeries) => eachSeries.titleUrl === seriesFromQuery) ?? -1\r\n : -1;\r\n\r\n const series = deafultSeriesInd !== -1 ? this.lines[deafultLineInd].series : [];\r\n const defaultModelInd =\r\n deafultLineInd !== -1 && deafultSeriesInd !== -1 && series\r\n ? series[deafultSeriesInd]?.models?.findIndex((eachModel) => eachModel.titleUrl === modelFromQuery) ?? -1\r\n : -1;\r\n return {\r\n categorySelectedInd: defaultCategoryInd === -1 ? ALL_SP_CATEGORIES : defaultCategoryInd,\r\n lineSelectedInd: deafultLineInd === -1 ? ALL_SP_LINES : deafultLineInd,\r\n seriesSelectedInd: deafultSeriesInd === -1 ? ALL_SP_SERIES : deafultSeriesInd,\r\n modelSelectedInd: defaultModelInd === -1 ? ALL_SP_MODELS : defaultModelInd,\r\n };\r\n }\r\n\r\n getSortedCards(\r\n cardsToSort: TProductSpecialOffersListingCard[],\r\n sortBy: TFilterContextData['sortBy']\r\n ): TProductSpecialOffersListingCard[] {\r\n if (sortBy === 'desc')\r\n return cardsToSort.sort(\r\n ({ expiration: expirationA = '' }, { expiration: expirationB = '' }) =>\r\n new Date(expirationB).getTime() - new Date(expirationA).getTime()\r\n );\r\n return cardsToSort.sort(\r\n ({ expiration: expirationA = '' }, { expiration: expirationB = '' }) =>\r\n new Date(expirationA).getTime() - new Date(expirationB).getTime()\r\n );\r\n }\r\n\r\n filterCards = (selectedFilters: TFilterContextData): TProductSpecialOffersListingCard[] => {\r\n const { lineSelectedInd, seriesSelectedInd, modelSelectedInd, categorySelectedInd, sortBy } = selectedFilters;\r\n let filteredCardIds: TProductSpecialOffersListingCardID[] = [];\r\n const allCards = this.fields?.apiData?.cards || [];\r\n\r\n if (lineSelectedInd === ALL_SP_LINES && categorySelectedInd === ALL_SP_CATEGORIES) return this.getSortedCards(allCards, sortBy);\r\n\r\n if (categorySelectedInd !== ALL_SP_CATEGORIES) filteredCardIds = this.categories[categorySelectedInd]?.cards || [];\r\n else {\r\n if (lineSelectedInd !== ALL_SP_LINES && seriesSelectedInd === ALL_SP_SERIES)\r\n filteredCardIds = this.lines[lineSelectedInd]?.cards || [];\r\n if (lineSelectedInd !== ALL_SP_LINES && seriesSelectedInd !== ALL_SP_SERIES && modelSelectedInd === ALL_SP_MODELS)\r\n filteredCardIds = this.lines[lineSelectedInd]?.series?.[seriesSelectedInd]?.cards || [];\r\n else if (lineSelectedInd !== ALL_SP_LINES && seriesSelectedInd !== ALL_SP_SERIES && modelSelectedInd !== ALL_SP_MODELS)\r\n filteredCardIds = this.lines[lineSelectedInd]?.series?.[seriesSelectedInd]?.models?.[modelSelectedInd]?.cards || [];\r\n }\r\n\r\n const filteredCards = filteredCardIds?.map((eachCardID) => this.cardsObj[eachCardID])?.filter((_) => _);\r\n return this.getSortedCards(filteredCards, sortBy);\r\n };\r\n}\r\n","import { createContext } from 'react';\r\nimport { ALL_SP_CATEGORIES, ALL_SP_LINES, ALL_SP_MODELS, ALL_SP_SERIES } from '../../constants/specialOffersFilters.constants';\r\nimport { ProductSpecialOffersListingModel } from './models/productSpecialOffersListing.model';\r\n\r\nexport type TFilterContextData = {\r\n categorySelectedInd: number | typeof ALL_SP_CATEGORIES;\r\n modelSelectedInd: number | typeof ALL_SP_MODELS;\r\n seriesSelectedInd: number | typeof ALL_SP_SERIES;\r\n lineSelectedInd: number | typeof ALL_SP_LINES;\r\n model: ProductSpecialOffersListingModel;\r\n sortBy: 'asc' | 'desc';\r\n};\r\n\r\nconst FilterContext = createContext<\r\n TFilterContextData & { updateFilters: (newFilters: Partial) => any; resetFilters: () => any }\r\n>({\r\n categorySelectedInd: ALL_SP_CATEGORIES,\r\n modelSelectedInd: ALL_SP_MODELS,\r\n seriesSelectedInd: ALL_SP_SERIES,\r\n lineSelectedInd: ALL_SP_LINES,\r\n model: new ProductSpecialOffersListingModel({}),\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n updateFilters: () => {},\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n resetFilters: () => {},\r\n sortBy: 'asc',\r\n});\r\n\r\nexport { FilterContext };\r\n","import React, { FC, useContext } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { MIN_CARDS_FOR_SORT_OPTION } from '../../../../constants/specialOffersFilters.constants';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Icon from '../../../@shared/icon';\r\nimport { FilterContext } from '../../fiilterContext';\r\nimport './styles.scss';\r\n\r\nconst SortCTA: FC<{ className?: string }> = ({ className = '' }) => {\r\n const { model, updateFilters, sortBy } = useContext(FilterContext);\r\n\r\n if (model.cards.length < MIN_CARDS_FOR_SORT_OPTION) return null;\r\n\r\n return (\r\n updateFilters({ sortBy: sortBy === 'asc' ? 'desc' : 'asc' })}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SortCTA;\r\n","import React, { FC, useContext } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { ALL_SP_CATEGORIES, ALL_SP_LINES, ALL_SP_MODELS, ALL_SP_SERIES } from '../../../../constants/specialOffersFilters.constants';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Dropdown from '../../../@shared/filters/components/dropdown';\r\nimport Icon from '../../../@shared/icon';\r\nimport { FilterContext } from '../../fiilterContext';\r\nimport {\r\n TProductSpecialOffersListingCategoryFilter,\r\n TProductSpecialOffersListingLineFilter,\r\n TProductSpecialOffersListingModelFilter,\r\n TProductSpecialOffersListingSeriesFilter,\r\n} from '../../types/productSpecialOffersListing.types';\r\nimport SortCTA from '../sortCTA';\r\nimport './styles.scss';\r\n\r\nconst DesktopFilter: FC<{}> = () => {\r\n const { model, lineSelectedInd, seriesSelectedInd, modelSelectedInd, categorySelectedInd, updateFilters, resetFilters } =\r\n useContext(FilterContext);\r\n\r\n const categoryOptions: TProductSpecialOffersListingCategoryFilter[] = [\r\n { id: ALL_SP_CATEGORIES, title: },\r\n ...model.categories,\r\n ];\r\n\r\n const lineOptions: TProductSpecialOffersListingLineFilter[] = [\r\n { id: ALL_SP_LINES, title: },\r\n ...model.lines,\r\n ];\r\n\r\n const seriesOptions: TProductSpecialOffersListingSeriesFilter[] =\r\n lineSelectedInd === ALL_SP_LINES\r\n ? []\r\n : [\r\n { id: ALL_SP_SERIES, title: },\r\n ...(model.lines?.[lineSelectedInd]?.series || []),\r\n ];\r\n\r\n const modelOptions: TProductSpecialOffersListingModelFilter[] =\r\n seriesSelectedInd === ALL_SP_SERIES\r\n ? []\r\n : [\r\n { id: ALL_SP_MODELS, title: },\r\n ...(model.lines?.[lineSelectedInd]?.series[seriesSelectedInd]?.models || []),\r\n ];\r\n\r\n const handleCategoryOptionClick = (newCategorySelectedInd) => {\r\n updateFilters({\r\n categorySelectedInd: newCategorySelectedInd === 0 ? ALL_SP_CATEGORIES : newCategorySelectedInd - 1,\r\n lineSelectedInd: ALL_SP_LINES,\r\n seriesSelectedInd: ALL_SP_SERIES,\r\n modelSelectedInd: ALL_SP_MODELS,\r\n });\r\n };\r\n\r\n const handleLineOptionClick = (newLineSelectedInd) => {\r\n updateFilters({\r\n lineSelectedInd: newLineSelectedInd === 0 ? ALL_SP_LINES : newLineSelectedInd - 1,\r\n seriesSelectedInd: ALL_SP_SERIES,\r\n modelSelectedInd: ALL_SP_MODELS,\r\n categorySelectedInd: ALL_SP_CATEGORIES,\r\n });\r\n };\r\n\r\n const handleSeriesOptionClick = (newSeriesSelectedInd) => {\r\n updateFilters({\r\n seriesSelectedInd: newSeriesSelectedInd === 0 ? ALL_SP_SERIES : newSeriesSelectedInd - 1,\r\n modelSelectedInd: ALL_SP_MODELS,\r\n categorySelectedInd: ALL_SP_CATEGORIES,\r\n });\r\n };\r\n\r\n const handleModelOptionClick = (newModelSelectedInd) => {\r\n updateFilters({\r\n modelSelectedInd: newModelSelectedInd === 0 ? ALL_SP_MODELS : newModelSelectedInd - 1,\r\n categorySelectedInd: ALL_SP_CATEGORIES,\r\n });\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n {(lineSelectedInd !== ALL_SP_LINES || categorySelectedInd !== ALL_SP_CATEGORIES) && (\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {String(seriesSelectedInd) && lineSelectedInd !== ALL_SP_LINES && (\r\n \r\n )}\r\n {String(modelSelectedInd) && seriesSelectedInd !== ALL_SP_SERIES && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default DesktopFilter;\r\n","import React, { FC, useContext, useEffect, useState } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { ALL_SP_CATEGORIES, ALL_SP_LINES, ALL_SP_MODELS, ALL_SP_SERIES } from '../../../../constants/specialOffersFilters.constants';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport { documentService } from '../../../../utils/window.utils';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Accordion from '../../../@shared/filters/components/accordion';\r\nimport Icon from '../../../@shared/icon';\r\nimport { FilterContext } from '../../fiilterContext';\r\nimport {\r\n TProductSpecialOffersListingCategoryFilter,\r\n TProductSpecialOffersListingLineFilter,\r\n TProductSpecialOffersListingModelFilter,\r\n TProductSpecialOffersListingSeriesFilter,\r\n} from '../../types/productSpecialOffersListing.types';\r\nimport SortCTA from '../sortCTA';\r\nimport './styles.scss';\r\n\r\nconst MobileFilter: FC<{}> = () => {\r\n const filters = useContext(FilterContext);\r\n const { model, lineSelectedInd, seriesSelectedInd, modelSelectedInd, categorySelectedInd, updateFilters, resetFilters } = filters;\r\n const [filtersCopy, setFiltersCopy] = useState({\r\n lineSelectedIndCopy: lineSelectedInd,\r\n seriesSelectedIndCopy: seriesSelectedInd,\r\n modelSelectedIndCopy: modelSelectedInd,\r\n categorySelectedIndCopy: categorySelectedInd,\r\n });\r\n const { lineSelectedIndCopy, seriesSelectedIndCopy, modelSelectedIndCopy, categorySelectedIndCopy } = filtersCopy;\r\n const [shouldOpenFilterModal, setShouldOpenFilterModal] = useState(false);\r\n const [selectedAccordion, setSelectedAccordion] = useState<'Category' | 'Line' | 'Series' | 'Model' | undefined>();\r\n\r\n const shouldShowCTAWrapper =\r\n !(\r\n lineSelectedIndCopy === lineSelectedInd &&\r\n seriesSelectedIndCopy == seriesSelectedInd &&\r\n modelSelectedIndCopy == modelSelectedInd &&\r\n categorySelectedIndCopy === categorySelectedInd\r\n ) ||\r\n categorySelectedInd !== ALL_SP_CATEGORIES ||\r\n lineSelectedIndCopy !== ALL_SP_LINES ||\r\n seriesSelectedIndCopy !== ALL_SP_SERIES ||\r\n modelSelectedIndCopy !== ALL_SP_MODELS;\r\n\r\n useEffect(() => {\r\n setFiltersCopy({\r\n lineSelectedIndCopy: lineSelectedInd,\r\n seriesSelectedIndCopy: seriesSelectedInd,\r\n modelSelectedIndCopy: modelSelectedInd,\r\n categorySelectedIndCopy: categorySelectedInd,\r\n });\r\n }, [filters]);\r\n\r\n useEffect(() => {\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n\r\n if (shouldOpenFilterModal) docElement.body.classList.add('body--with-filter-model');\r\n else docElement.body.classList.remove('body--with-filter-model');\r\n }, [shouldOpenFilterModal]);\r\n\r\n const categoryOptions: TProductSpecialOffersListingCategoryFilter[] = [\r\n { id: ALL_SP_CATEGORIES, title: },\r\n ...model.categories,\r\n ];\r\n\r\n const lineOptions: TProductSpecialOffersListingLineFilter[] = [\r\n { id: ALL_SP_LINES, title: },\r\n ...model.lines,\r\n ];\r\n\r\n const seriesOptions: TProductSpecialOffersListingSeriesFilter[] =\r\n lineSelectedIndCopy === ALL_SP_LINES\r\n ? []\r\n : [\r\n { id: ALL_SP_SERIES, title: },\r\n ...(model.lines?.[lineSelectedIndCopy]?.series || []),\r\n ];\r\n\r\n const modelOptions: TProductSpecialOffersListingModelFilter[] =\r\n seriesSelectedIndCopy === ALL_SP_SERIES\r\n ? []\r\n : [\r\n { id: ALL_SP_MODELS, title: },\r\n ...(model.lines?.[lineSelectedIndCopy]?.series[seriesSelectedIndCopy]?.models || []),\r\n ];\r\n\r\n const handleCategoryOptionClick = (newcategorySelectedInd) => {\r\n setFiltersCopy({\r\n ...filtersCopy,\r\n categorySelectedIndCopy: newcategorySelectedInd === 0 ? ALL_SP_CATEGORIES : newcategorySelectedInd - 1,\r\n lineSelectedIndCopy: ALL_SP_LINES,\r\n seriesSelectedIndCopy: ALL_SP_SERIES,\r\n modelSelectedIndCopy: ALL_SP_MODELS,\r\n });\r\n };\r\n\r\n const handleLineOptionClick = (newLineSelectedInd) => {\r\n setFiltersCopy({\r\n lineSelectedIndCopy: newLineSelectedInd === 0 ? ALL_SP_LINES : newLineSelectedInd - 1,\r\n seriesSelectedIndCopy: ALL_SP_SERIES,\r\n modelSelectedIndCopy: ALL_SP_MODELS,\r\n categorySelectedIndCopy: ALL_SP_CATEGORIES,\r\n });\r\n };\r\n\r\n const handleSeriesOptionClick = (newSeriesSelectedInd) => {\r\n setFiltersCopy({\r\n ...filtersCopy,\r\n seriesSelectedIndCopy: newSeriesSelectedInd === 0 ? ALL_SP_SERIES : newSeriesSelectedInd - 1,\r\n modelSelectedIndCopy: ALL_SP_MODELS,\r\n categorySelectedIndCopy: ALL_SP_CATEGORIES,\r\n });\r\n };\r\n\r\n const handleModelOptionClick = (newModelSelectedInd) => {\r\n setFiltersCopy({\r\n ...filtersCopy,\r\n modelSelectedIndCopy: newModelSelectedInd === 0 ? ALL_SP_MODELS : newModelSelectedInd - 1,\r\n categorySelectedIndCopy: ALL_SP_CATEGORIES,\r\n });\r\n };\r\n\r\n const toggleModal = () => setShouldOpenFilterModal(!shouldOpenFilterModal);\r\n\r\n const revertToOldFilters = () => {\r\n setFiltersCopy({\r\n lineSelectedIndCopy: lineSelectedInd,\r\n seriesSelectedIndCopy: seriesSelectedInd,\r\n modelSelectedIndCopy: modelSelectedInd,\r\n categorySelectedIndCopy: categorySelectedInd,\r\n });\r\n };\r\n\r\n const applyNewFilters = () => {\r\n updateFilters({\r\n lineSelectedInd: lineSelectedIndCopy,\r\n seriesSelectedInd: seriesSelectedIndCopy,\r\n modelSelectedInd: modelSelectedIndCopy,\r\n categorySelectedInd: categorySelectedIndCopy,\r\n });\r\n };\r\n\r\n const toggleAccordion = (accordionName: typeof selectedAccordion) => {\r\n if (accordionName === selectedAccordion) setSelectedAccordion(undefined);\r\n else {\r\n setSelectedAccordion(accordionName);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {shouldOpenFilterModal && (\r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n setSelectedAccordion(undefined);\r\n setShouldOpenFilterModal(false);\r\n revertToOldFilters();\r\n }}\r\n />\r\n
    \r\n
    \r\n }\r\n accordionOptions={categoryOptions}\r\n handleOptionClick={handleCategoryOptionClick}\r\n selectedOptionInd={categorySelectedIndCopy === ALL_SP_CATEGORIES ? 0 : categorySelectedIndCopy + 1}\r\n canShowAccordionContent={selectedAccordion === 'Category'}\r\n handleSwitchClick={() => toggleAccordion('Category')}\r\n isToggleIndependent={false}\r\n />\r\n }\r\n accordionOptions={lineOptions}\r\n handleOptionClick={handleLineOptionClick}\r\n selectedOptionInd={lineSelectedIndCopy === ALL_SP_LINES ? 0 : lineSelectedIndCopy + 1}\r\n canShowAccordionContent={selectedAccordion === 'Line'}\r\n handleSwitchClick={() => toggleAccordion('Line')}\r\n isToggleIndependent={false}\r\n />\r\n {String(seriesSelectedIndCopy) && lineSelectedIndCopy !== ALL_SP_LINES && (\r\n }\r\n accordionOptions={seriesOptions}\r\n handleOptionClick={handleSeriesOptionClick}\r\n selectedOptionInd={seriesSelectedIndCopy === ALL_SP_SERIES ? 0 : seriesSelectedIndCopy + 1}\r\n canShowAccordionContent={selectedAccordion === 'Series'}\r\n handleSwitchClick={() => toggleAccordion('Series')}\r\n isToggleIndependent={false}\r\n />\r\n )}\r\n {String(modelSelectedIndCopy) && seriesSelectedIndCopy !== ALL_SP_SERIES && (\r\n }\r\n accordionOptions={modelOptions}\r\n handleOptionClick={handleModelOptionClick}\r\n selectedOptionInd={modelSelectedIndCopy === ALL_SP_MODELS ? 0 : modelSelectedIndCopy + 1}\r\n canShowAccordionContent={selectedAccordion === 'Model'}\r\n handleSwitchClick={() => toggleAccordion('Model')}\r\n isToggleIndependent={false}\r\n />\r\n )}\r\n
    \r\n {shouldShowCTAWrapper && (\r\n
    \r\n {\r\n setSelectedAccordion(undefined);\r\n resetFilters();\r\n }}\r\n >\r\n \r\n \r\n {\r\n setSelectedAccordion(undefined);\r\n applyNewFilters();\r\n toggleModal();\r\n }}\r\n >\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MobileFilter;\r\n","import React, { FC } from 'react';\r\nimport Picture from '../../../@shared/picture';\r\nimport { TProductImageProps } from '../../../@shared/picture/types/picture.types';\r\nimport { TProductSpecialOffersListingMedia } from '../../types/productSpecialOffersListing.types';\r\n\r\nconst Media: FC = (props) => {\r\n const { desktopImage, mobileImage, defaultImage, imageAlt } = props;\r\n\r\n const shouldShowDefaultImage = !desktopImage?.url && !mobileImage?.url;\r\n const prodcutImageProps: TProductImageProps = {\r\n mobileRendition: mobileImage,\r\n desktopRendition: desktopImage,\r\n pictureClassName: 'special-offers-listing-card__image',\r\n alt: imageAlt,\r\n };\r\n\r\n if (shouldShowDefaultImage && defaultImage) {\r\n prodcutImageProps['mobileRendition'] = { url: defaultImage.defaultMobileImage };\r\n prodcutImageProps['desktopRendition'] = { url: defaultImage.defaultDesktopImage };\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Media;\r\n","import React, { FC, useState } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, DateField, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport useFormatDate from '../../../../hooks/useFormatDate';\r\nimport { ProductSpecialOffersListingItemModel } from '../../models/productSpecialOffersListing.model';\r\nimport { TSpecialOfferCardProps } from '../../types/productSpecialOffersListing.types';\r\nimport { WithSitecoreContextProps } from '@sitecore-jss/sitecore-jss-react/types/enhancers/withSitecoreContext';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport CTA from '../../../@shared/cta';\r\nimport Media from '../media';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport ModalDialog from '../../../@shared/modalDialog';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\nimport './styles.scss';\r\n\r\nconst SpecialOffersCard: FC = (props) => {\r\n const { placeholderImage } = props;\r\n const {sitecoreContext} = useSitecoreContext();\r\n const specialOfferMainPageLink: string = sitecoreContext?.specialOfferPageUrl || '';\r\n const model = new ProductSpecialOffersListingItemModel(props, specialOfferMainPageLink);\r\n const formattedDate = useFormatDate(model.expirationDate);\r\n const [modalIsOpen, setIsOpen] = useState(false);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-p']})`);\r\n\r\n const openModal = () => {\r\n setIsOpen(true);\r\n };\r\n\r\n const closeModal = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n return (\r\n <>\r\n {model.disclaimer && (\r\n \r\n {}\r\n \r\n )}\r\n
    \r\n {model.tag && (\r\n
    \r\n

    {model.tag}

    \r\n
    \r\n )}\r\n \r\n
    \r\n {model.title && (\r\n \r\n )}\r\n {model.shortDescription && (\r\n \r\n )}\r\n {model.disclaimer && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n \r\n : \r\n formattedDate} />\r\n
    \r\n\r\n
    \r\n {model?.button1 && (\r\n \r\n {model.button1.value.title}\r\n \r\n )}\r\n {model?.button2 && (\r\n \r\n {model.button2.value.title}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(withTranslation()(SpecialOffersCard));\r\n","import React, { FC, useMemo, useRef, useState } from 'react';\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport { useLocation, useNavigate } from 'react-router';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport { headerHeight } from '../../constants/header.constants';\r\nimport { SP_QUERY_STRINGS } from '../../constants/special-offers-page.constants';\r\nimport { ALL_SP_CATEGORIES, ALL_SP_LINES, ALL_SP_SERIES } from '../../constants/specialOffersFilters.constants';\r\nimport useExperienceEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { isEmptyResponse } from '../../utils/checkEmptyResponse';\r\nimport { windowService } from '../../utils/window.utils';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport NoMatch from '../@shared/filters/components/noMatch';\r\nimport Pagination from '../@shared/pagination';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport DesktopFilter from './components/desktopFilter';\r\nimport MobileFilter from './components/mobileFilter';\r\nimport SpecialOffersCard from './components/specialOffersCard';\r\nimport { FilterContext, TFilterContextData } from './fiilterContext';\r\nimport { ProductSpecialOffersListingModel } from './models/productSpecialOffersListing.model';\r\nimport { TProductSpecialOffersListingProps } from './types/productSpecialOffersListing.types';\r\nimport useSitecoreContext from '../../hooks/useSitecoreContext';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport './styles.scss';\r\n\r\nconst ProductSpecialOffersListing: FC = (props) => {\r\n const apiResponse = isEmptyResponse(props) && Number(props?.fields?.apiData?.cards?.length) > 0;\r\n const isPlaceholderShown = useExperienceEditorPlaceholder(props);\r\n const context = useSitecoreContext();\r\n const model = useMemo(() => new ProductSpecialOffersListingModel(props, context?.sitecoreContext), [props, context]);\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx['lg']})`);\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n const filterQueryString = location?.search;\r\n\r\n const [selectedFilters, setSelectedFilters] = useState(() => ({\r\n // model will not be re-intialized when state data is returned from function\r\n ...model.getDefaultContextData(filterQueryString),\r\n model,\r\n sortBy: 'asc',\r\n }));\r\n const cardContainerRef = useRef(null);\r\n const noOfCardsPerPage = 6;\r\n const filteredCards = model.filterCards(selectedFilters);\r\n const totalPageCount = Math.ceil(filteredCards.length / noOfCardsPerPage);\r\n const filterParams = useMemo(() => new URLSearchParams(location?.search), [filterQueryString]);\r\n const pageParam = parseInt(filterParams.get(SP_QUERY_STRINGS.PAGE) || '1');\r\n const [pageNo, setPageNo] = useState(pageParam <= totalPageCount ? pageParam : 1);\r\n const startIndex = (pageNo - 1) * noOfCardsPerPage;\r\n const endIndex = pageNo * noOfCardsPerPage;\r\n\r\n const onPaginationChange = (selectedPage: number): void => {\r\n setPageNo(selectedPage);\r\n model.updatePageQueryParams(navigate, selectedPage);\r\n windowService()?.scroll({\r\n top: (cardContainerRef?.current?.offsetTop ?? 0) - headerHeight,\r\n left: 0,\r\n behavior: 'smooth',\r\n });\r\n };\r\n\r\n const updateFilters = (newFilters: Partial = {}) => {\r\n const newSetSelectedFilters = { ...selectedFilters, ...newFilters };\r\n setSelectedFilters(newSetSelectedFilters);\r\n model.updateQueryParams(navigate, newSetSelectedFilters);\r\n setPageNo(1);\r\n model.updatePageQueryParams(navigate, '');\r\n };\r\n\r\n const resetFilters = () => {\r\n updateFilters({ lineSelectedInd: ALL_SP_LINES, seriesSelectedInd: ALL_SP_SERIES, categorySelectedInd: ALL_SP_CATEGORIES });\r\n setPageNo(1);\r\n model.resetAllQueryParams(navigate);\r\n };\r\n\r\n const filterContextValue = useMemo(\r\n () => ({ ...selectedFilters, updateFilters, resetFilters }),\r\n [selectedFilters, updateFilters, resetFilters]\r\n );\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // not opened from star node\r\n // data missing when navigating via from products node\r\n if (!apiResponse && isEditorActive()) {\r\n return ;\r\n }\r\n\r\n // No data and not in EE\r\n if (!apiResponse && !isPlaceholderShown && !isEditorActive()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n {isWide ? : }\r\n
    \r\n
    \r\n {filteredCards.length > 0 && (\r\n
      \r\n {filteredCards.slice(startIndex, endIndex).map((item) => {\r\n return (\r\n
    • \r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n )}\r\n
    \r\n {filteredCards?.length === 0 && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ProductSpecialOffersListing;\r\n","export const headerHeight = 85;","import { THeadingTag, TImageField, TLinkField, TStringField } from '../../../types/types';\r\nimport { isEmptyObject } from '../../../utils/checkEmptyObject';\r\nimport { getFollowingHTag } from '../../../utils/seo.utils';\r\nimport { TSocialMediaBarProps } from '../../@shared/socialMediaBar/types/socialMediaBar.types';\r\nimport { TLatestNewsCardItemProps } from '../../latestNews/types/latestNews.types';\r\nimport { TRelatedNewsParams, TRelatedNewsProps, TRelatedNewsPropsFields, TRelatedNewsPropsItemData } from '../types/relatedNews.types';\r\n\r\nexport class RelatedNewsModel {\r\n private readonly fields?: TRelatedNewsPropsFields;\r\n private readonly itemData?: TRelatedNewsPropsItemData;\r\n private readonly params?: TRelatedNewsParams | null;\r\n\r\n constructor(props: TRelatedNewsProps) {\r\n this.fields = props?.fields || null;\r\n this.itemData = props?.fields?.itemData;\r\n this.params = props?.params || null;\r\n }\r\n\r\n get title(): TStringField | undefined {\r\n return this.itemData?.fields?.title;\r\n }\r\n\r\n get eyebrow(): TStringField | undefined {\r\n return this.itemData?.fields?.eyebrow;\r\n }\r\n\r\n get baseUrl(): string {\r\n return this.itemData?.contextItemUrl || '';\r\n }\r\n\r\n get defaultCardImageNarrow(): TImageField | undefined {\r\n return this.fields?.itemData?.fields?.defaultCardImageNarrow;\r\n }\r\n\r\n get link(): TLinkField | undefined {\r\n return {\r\n value: {\r\n href: this.fields?.itemData?.fields?.newsMainPageLink?.value || '',\r\n },\r\n };\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h2';\r\n }\r\n\r\n get cardHeadingTitleTag(): THeadingTag {\r\n return getFollowingHTag(this.headingTag);\r\n }\r\n\r\n get items(): TLatestNewsCardItemProps[] {\r\n return this.fields?.apiData?.items || [];\r\n }\r\n\r\n get socialMediaBarProps(): TSocialMediaBarProps | undefined {\r\n return isEmptyObject(this.fields?.socialMediaBar) ? undefined : this.fields?.socialMediaBar;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { getImageField } from '../../../../utils/getImageFields';\r\nimport Picture from '../../../@shared/picture';\r\nimport { TEditorialImageProps } from '../../../@shared/picture/types/editorialImage.types';\r\nimport VideoPlayer from '../../../@shared/videoPlayer';\r\nimport { getThumbnailProps } from '../../../../utils/youtubeUtils';\r\nimport { TRelatedNewsMedia } from '../../types/relatedNews.types';\r\n\r\nconst Media: FC = (props) => {\r\n const { desktopImage, mobileImage, defaultImage, useVideo, videoUrl, isDesktop } = props;\r\n if (useVideo && videoUrl) {\r\n const { thumbnailImgSrc } = getThumbnailProps(videoUrl);\r\n const desktopImageOrThumbnail = getImageField(desktopImage, thumbnailImgSrc || '', useVideo);\r\n const mobileImageOrThumbnail = getImageField(mobileImage, thumbnailImgSrc || '', useVideo);\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n const shouldShowDefaultImage = !desktopImage?.value?.src && !mobileImage?.value?.src;\r\n const editorialProps: TEditorialImageProps = {\r\n mobileImage: mobileImage,\r\n desktopImage: desktopImage,\r\n mobileTransformation: 'Size1000',\r\n desktopTransformation: 'Size1000',\r\n cssClassPictureEl: 'related-news-card__image',\r\n alt: (isDesktop ? desktopImage?.value?.alt : mobileImage?.value?.alt) as string,\r\n };\r\n if (shouldShowDefaultImage && defaultImage) {\r\n editorialProps['mobileImage'] = undefined;\r\n editorialProps['desktopImage'] = defaultImage;\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Media;\r\n","import { TDateField, TImageField, TSitecoreContext, TStringField } from '../../../../../types/types';\r\nimport { TRelatedNewsCardItemProps } from '../../../types/relatedNews.types';\r\n\r\nexport class RelatedNewsCardModel {\r\n private readonly item?: TRelatedNewsCardItemProps;\r\n private readonly context?: TSitecoreContext;\r\n\r\n constructor(props: TRelatedNewsCardItemProps, context: TSitecoreContext) {\r\n this.item = props;\r\n this.context = context;\r\n }\r\n\r\n get title(): TStringField | undefined {\r\n return {\r\n value: this.item?.title,\r\n };\r\n }\r\n\r\n get shortDescription(): TStringField | undefined {\r\n return {\r\n value: this.item?.shortDescription,\r\n };\r\n }\r\n\r\n get newsDate(): TDateField | undefined {\r\n return { value: this.item?.newsDate };\r\n }\r\n\r\n get contextLanguage(): string {\r\n return this.context?.language || 'en-GB';\r\n }\r\n\r\n get tag(): TStringField | undefined {\r\n if (this.item?.tagCategories?.length) {\r\n const relatedTag = this.item?.tagCategories.find((tag) => tag.id === this.item?.tags);\r\n if (relatedTag) {\r\n return { value: relatedTag.name };\r\n }\r\n }\r\n return { value: '' };\r\n }\r\n\r\n get ctaLink(): string | undefined {\r\n return this.item?.link;\r\n }\r\n\r\n get showVideo(): boolean | undefined {\r\n return this.item?.useVideo === '1';\r\n }\r\n\r\n get image(): TImageField | undefined {\r\n return this.item?.Image;\r\n }\r\n\r\n get mobileImage(): TImageField | undefined {\r\n return this.item?.MobileImage;\r\n }\r\n\r\n get video(): string | undefined {\r\n return this.item?.video;\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { DateField, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport useFormatDate from '../../../../hooks/useFormatDate';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport CTA from '../../../@shared/cta';\r\nimport Media from '../media';\r\nimport { TRelatedNewsCardsProps } from '../../types/relatedNews.types';\r\nimport { RelatedNewsCardModel } from './models/relatedNewsCard.model';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport SocialMediaBar from '../../../@shared/socialMediaBar';\r\n\r\nconst RelatedNewsCard: FC = ({ item, cardHeadingTitleTag, sitecoreContext, defaultCardImage, socialMediaBarProps }): JSX.Element => {\r\n const model = new RelatedNewsCardModel(item, sitecoreContext);\r\n const isWide = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-l']})`);\r\n const formattedDate = useFormatDate(model.newsDate?.value);\r\n const shareURL = new URL(model.ctaLink || '', sitecoreContext?.currentPageUrl as string || '').href;\r\n\r\n return (\r\n
    \r\n {model?.tag?.value && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n {model?.newsDate && (\r\n formattedDate}\r\n editable={false}\r\n />\r\n )}\r\n {socialMediaBarProps && (\r\n \r\n )}\r\n
    \r\n {model?.title && (\r\n \r\n )}\r\n {model?.shortDescription && (\r\n \r\n )}\r\n
    \r\n {model?.ctaLink && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default RelatedNewsCard;\r\n","import React, { FC, useEffect, useState } from \"react\";\r\nimport UnreleasedComponent from \"../@shared/unreleasedComponent\";\r\nimport DictionaryTerm from \"../@shared/dictionaryTerm\";\r\nimport RoutableSitecoreLink from \"../@shared/routableSitecoreLink\";\r\nimport Icon from \"../@shared/icon\";\r\nimport { iconSize } from \"../../constants/icon.constants\";\r\nimport { RelatedNewsModel } from \"./models/relatedNews.model\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { withSitecoreContext } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport CarouselArrow from \"../@shared/carouselArrow\";\r\nimport Slider from 'react-slick';\r\nimport { getCustomPaging } from \"../@shared/carouselDots\";\r\nimport appendDots from \"../@shared/customCarouselDots/appendDots\";\r\nimport { TRelatedNewsCardItemProps, TRelatedNewsProps } from \"./types/relatedNews.types\";\r\nimport RelatedNewsCard from \"./components/relatedNewsCard\";\r\n\r\nconst RelatedNews: FC = (props: TRelatedNewsProps) => {\r\n\r\n const model = new RelatedNewsModel(props);\r\n const [activeCardIndex, setActiveIndex] = useState(0);\r\n const [isClickedOnArrow, setIsClickedOnArrow] = useState(false);\r\n const cardsLength = model?.items?.length;\r\n\r\n const arrowButtonClick = (): void => {\r\n setIsClickedOnArrow(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (!isClickedOnArrow) {\r\n return;\r\n }\r\n setIsClickedOnArrow(false);\r\n }, [activeCardIndex]);\r\n\r\n const settings = {\r\n dots: true,\r\n arrows: true,\r\n infinite: true,\r\n variableWidth: true,\r\n slidesToScroll: 1,\r\n nextArrow: ,\r\n prevArrow: ,\r\n customPaging: getCustomPaging,\r\n afterChange: (index: number): void => {\r\n setActiveIndex(index);\r\n },\r\n appendDots: (dots: JSX.Element[]) => appendDots({ dots, cardsCount: cardsLength, activeCardIndex, showCustomDots: cardsLength > 5 }),\r\n dotsClass: `${cardsLength <= 5 ? 'related-news__carousel-dots' : ''}`,\r\n };\r\n\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n const cardsMapper = (): JSX.Element[] => {\r\n const cardsArray = model?.items?.map((item: TRelatedNewsCardItemProps, index) => (\r\n \r\n ));\r\n\r\n return cardsArray;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {cardsMapper()}\r\n
    \r\n );\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(RelatedNews));","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n TRemoteBuildAndPriceFields,\r\n TRemoteBuildAndPriceProps,\r\n} from '../types/remoteBuildAndPrice.types';\r\nimport buildAndPriceLinkEnvMap from '../../../constants/buildAndPriceLinkEnvMap.constants.json';\r\n\r\nexport class BuildAndPriceLinkModel {\r\n readonly fields?: TRemoteBuildAndPriceFields;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: TRemoteBuildAndPriceProps) {\r\n this.fields = props?.fields;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get thumbnailEE(): string {\r\n return this.fields?.itemData?.thumbnail || '';\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get basePath(): string {\r\n return (\r\n buildAndPriceLinkEnvMap[process.env.REACT_APP_BUILD_AND_PRICE_ENV || ''] ||\r\n buildAndPriceLinkEnvMap['PROD']\r\n );\r\n }\r\n\r\n get division(): string {\r\n return this.fields?.division?.value || '';\r\n }\r\n\r\n get locale(): string | undefined {\r\n return this.fields?.locale?.value || undefined;\r\n }\r\n\r\n get language(): string | undefined {\r\n return this.fields?.language?.value || undefined;\r\n }\r\n\r\n get sapNumber(): number | undefined {\r\n return this.fields?.sapNumber?.value || undefined;\r\n }\r\n\r\n get vhsar(): string {\r\n return this.fields?.vhsar?.value || '';\r\n }\r\n\r\n get vkorg(): string | undefined {\r\n return this.fields?.vkorg?.value || undefined;\r\n }\r\n\r\n get geographicArea(): string {\r\n return this.fields?.geographicArea?.value || '';\r\n }\r\n\r\n get disableDLM(): boolean{\r\n return !!this.fields?.disableDLM?.value;\r\n }\r\n\r\n}\r\n","import React from 'react';\r\nimport Spinner from '../spinner';\r\nimport './styles.scss'\r\n\r\nconst MockRetailConfigurator = () => {\r\n // Since server.webpack.config.js is having errors on using ModuleFederationPlugin during SSR, this MockRetailConfigurator is loaded\r\n return (\r\n \r\n )\r\n}\r\nexport default MockRetailConfigurator;\r\n","import React, { FC, lazy, Suspense, useMemo } from 'react';\r\nimport { IRetailAppProps } from '@ctl/cool-remote';\r\nimport { TRemoteBuildAndPriceProps } from './types/remoteBuildAndPrice.types';\r\nimport { BuildAndPriceLinkModel } from './models/remoteBuildAndPrice.model';\r\nimport MockRetailConfigurator from '../@shared/mockRetailConfigurator';\r\nimport useExperiencerEditorPlaceholder from '../../hooks/useExperiencerEditorPlaceholder';\r\nimport { googleDataLayerPush } from '../../utils/analytics';\r\nimport { windowService } from '../../utils/window.utils';\r\nimport ExperienceEditorComponentPlaceholder from '../@shared/experienceEditorComponentPlaceholder';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport '@googlemaps/react-wrapper';\r\nimport 'react-dom/client';\r\nimport 'react-redux';\r\nimport './styles.scss';\r\n\r\n/* react-dom/client, @googlemaps/react-wrapper, react-redux should be imported along with ReatilConfigurator even if they are not used, \r\n since they are shared dependencies of @ctl/cool-remote/app/RetailConfigurator. Refer config-overide for list of shared dependencies \r\n Note: To check is the required dependencies are shared, try running the command __federation_shared__ in the browser console where the RetailConfigurator is loading\r\n*/\r\n\r\nconst RemoteBuildAndPrice: FC = (props: TRemoteBuildAndPriceProps) => {\r\n const model = new BuildAndPriceLinkModel(props);\r\n const isPlaceholderShown = useExperiencerEditorPlaceholder(props);\r\n const RetailConfigurator: FC = lazy(() => import('@ctl/cool-remote/app/RetailConfigurator'));\r\n const pageQueryUrl = windowService().location?.search;\r\n\r\n const { preSelectedLine, preSelectedSeries, preSelectedModel } = useMemo(() => {\r\n let preSelectedLine = '';\r\n let preSelectedSeries = '';\r\n let preSelectedModel = '';\r\n if (pageQueryUrl) {\r\n const searchParams = new URLSearchParams(pageQueryUrl);\r\n preSelectedLine = searchParams.get('line') || '';\r\n preSelectedSeries = searchParams.get('series') || '';\r\n preSelectedModel = searchParams.get('model') || '';\r\n }\r\n return { preSelectedLine, preSelectedSeries, preSelectedModel };\r\n\r\n }, [pageQueryUrl, props])\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n // star node opened directly in EE\r\n if (isPlaceholderShown) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n {/* RetailConfigurator is a remote component imported by config-override.js using ModuleFederationPlugin */}\r\n {/* During SSR the component value is mocked with @shared MockRetailConfigurator through server.webpack.config.js */}\r\n }>\r\n
    Custom Error Message
    } // overrides the default error message i.e. \"\".\r\n trackFn={(event, data) => !model.disableDLM && googleDataLayerPush({ event, ...data })}\r\n />\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default RemoteBuildAndPrice;\r\n","import React, { FC } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport { TFilterControlProps } from '../../types/filterControl.types';\r\n\r\nconst FilterControl: FC = ({ filter, isActive, onChange, t }) => (\r\n
  • \r\n \r\n \r\n
  • \r\n);\r\n\r\nexport default withTranslation()(FilterControl);\r\n","import React, { FC } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { TFilterProps } from '../../types/filter.types';\r\nimport FilterControl from '../filterControl';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\n\r\nconst Filter: FC = ({ filters, activeFilters, onFiltersChange, t }) => {\r\n const handleChange: (e: React.ChangeEvent) => void = (e) => {\r\n let updatedActiveFilters;\r\n const filterValue: string = e?.target?.value || '';\r\n\r\n if (activeFilters.includes(filterValue)) {\r\n updatedActiveFilters = activeFilters.filter((value) => filterValue !== value);\r\n } else {\r\n updatedActiveFilters = [...activeFilters, filterValue];\r\n }\r\n\r\n onFiltersChange(updatedActiveFilters);\r\n };\r\n\r\n const handleReset = (): void => {\r\n onFiltersChange([]);\r\n };\r\n\r\n const resetBtn = (\r\n \r\n );\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {t('cnhi-filterBy')}

    \r\n {resetBtn}\r\n
    \r\n

    {t('cnhi-filterType')}

    \r\n
    \r\n
    \r\n

    {t('cnhi-filterBy')}

    \r\n
    \r\n

    {t('cnhi-filterType')}

    \r\n {resetBtn}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {filters?.map((filter) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withTranslation()(Filter);\r\n","import { TFilter, TSearchItem, TSearchProps, TSearchPropsFields, TSearchPropsItemData, TSearchPropsItem } from '../types/search.types';\r\n\r\nexport class SearchApiModel {\r\n private readonly fields?: TSearchPropsFields;\r\n private readonly itemData?: TSearchPropsItemData;\r\n\r\n constructor(props: TSearchProps) {\r\n this.fields = props?.fields || null;\r\n this.itemData = props?.fields?.itemData;\r\n }\r\n\r\n get counter(): number {\r\n return this.fields?.apiData?.totalSearchResults || 0;\r\n }\r\n\r\n get results(): TSearchItem[] {\r\n return (\r\n this.fields?.apiData?.items?.map(({ title, description, link, highlight }: TSearchPropsItem) => ({\r\n title,\r\n description,\r\n link,\r\n highlight,\r\n })) || []\r\n );\r\n }\r\n\r\n get filters(): TFilter[] {\r\n return this.fields?.apiData?.filters || [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get contextItemUrl(): string {\r\n return this.itemData?.contextItemUrl || '';\r\n }\r\n}\r\n","import React, { FormEvent, useEffect, useRef, useState, FC, useMemo } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../constants/icon.constants';\r\nimport { QueryParamsConst } from '../../constants/query-params.constants';\r\nimport { updateSearchResults } from '../../hooks/useQueryParams.effect';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { documentService } from '../../utils/window.utils';\r\nimport Icon from '../@shared/icon';\r\nimport RoutableNotEditableLink from '../@shared/routableNotEditableLink';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport Filter from './components/filter';\r\nimport Pagination from '../@shared/pagination';\r\nimport Suggestions from './components/suggestions';\r\nimport { SearchApiModel } from './models/searchApiModels';\r\nimport { TSearchItem, TSearchProps } from './types/search.types';\r\n\r\nconst SearchResults: FC = (props) => {\r\n const { sitecoreContext, t } = props;\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const searchQueryString = location?.search;\r\n const searchParams = useMemo(() => new URLSearchParams(location?.search), [searchQueryString]);\r\n const page = searchParams.get(QueryParamsConst.PAGE) || '1';\r\n const query = searchParams.get(QueryParamsConst.QUERY) || '';\r\n const perPage = searchParams.get(QueryParamsConst.PER_PAGE) || '10';\r\n const filters = searchParams.get(QueryParamsConst.FILTERS) || '';\r\n const [inputValue, setInputValue] = useState(query);\r\n const isMobile = useMediaQuery(`(max-width: ${BreakpointsInPx.md})`);\r\n const [, setSuggestionQuery] = useState('');\r\n const [isSuggestionsComponentVisible, setIsSuggestionsComponentVisible] = useState(false);\r\n const SUGGESTIONS_MIN_CHAR_LIMIT = 3;\r\n const SEPARATOR_CHAR = ',';\r\n const model = new SearchApiModel(props);\r\n const formRef = useRef(null);\r\n const pages = Math.ceil(model.counter / parseInt(perPage, 10));\r\n const activeFilters = filters.length ? filters.split(SEPARATOR_CHAR) : [];\r\n const [isCollapsed, setIsCollapsed] = useState(false);\r\n \r\n /**\r\n * searchResultsRef is created to check and retain the results view,\r\n * if the results view is displayed atleast once in the page\r\n * navigating to other pages refer bug: 415822\r\n */\r\n const searchResultsRef = useRef(null);\r\n\r\n const onSubmit: (e: FormEvent) => void = (e: FormEvent) => {\r\n e?.preventDefault();\r\n if (!inputValue) return;\r\n updateSearchResults(\r\n navigate,\r\n {\r\n [QueryParamsConst.QUERY]: inputValue || '',\r\n [QueryParamsConst.FILTERS]: '',\r\n [QueryParamsConst.PAGE]: '1',\r\n [QueryParamsConst.PER_PAGE]: '10',\r\n },\r\n model.contextItemUrl\r\n );\r\n };\r\n\r\n const onPaginationChange = (selectedPage: number): void => {\r\n updateSearchResults(navigate, { [QueryParamsConst.PAGE]: selectedPage.toString() }, model.contextItemUrl);\r\n };\r\n const onFiltersChange = (filterValue: string[]): void => {\r\n updateSearchResults(\r\n navigate,\r\n {\r\n [QueryParamsConst.FILTERS]: filterValue.join(SEPARATOR_CHAR),\r\n [QueryParamsConst.PAGE]: '1',\r\n },\r\n model.contextItemUrl\r\n );\r\n };\r\n const updateSuggestionsQuery = (event): void => {\r\n setSuggestionQuery(event?.target?.value);\r\n };\r\n const onKeyUp: (e: React.KeyboardEvent) => void = (e) => {\r\n if (e?.key === 'Enter') {\r\n formRef.current?.dispatchEvent(new Event('submit', {bubbles: true}));\r\n return;\r\n }\r\n\r\n updateSuggestionsQuery(e);\r\n };\r\n\r\n const onUpdateQueryFromSuggestions = (q: string): void => {\r\n if (!inputValue) {\r\n return;\r\n }\r\n setInputValue(q);\r\n setIsSuggestionsComponentVisible(false);\r\n updateSearchResults(\r\n navigate,\r\n {\r\n [QueryParamsConst.QUERY]: q,\r\n [QueryParamsConst.FILTERS]: '',\r\n [QueryParamsConst.PAGE]: '1',\r\n },\r\n model.contextItemUrl\r\n );\r\n };\r\n\r\n const handleClickOutside = (event): void => {\r\n if (formRef.current?.contains(event?.target) || !isSuggestionsComponentVisible) {\r\n return;\r\n }\r\n\r\n setIsSuggestionsComponentVisible(false);\r\n };\r\n\r\n useEffect(() => {\r\n documentService().addEventListener('mouseup', handleClickOutside);\r\n return (): void => {\r\n documentService().removeEventListener('mouseup', handleClickOutside);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n setInputValue(query);\r\n }, [query]);\r\n\r\n const toggleCollapsed = (): void => {\r\n setIsCollapsed(!isCollapsed);\r\n };\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n const arrowIcon = isCollapsed ? 'arrow-chevron-down' : 'arrow-chevron-up';\r\n const searchFilters = isMobile ? (\r\n
    \r\n {\r\n toggleCollapsed();\r\n }}\r\n >\r\n

    {t('cnhi-filters')}

    \r\n \r\n \r\n {!isCollapsed && }\r\n
    \r\n ) : (\r\n \r\n );\r\n\r\n const searchResultsList = model?.results?.length ? (\r\n
    \r\n {model?.results?.map((result: TSearchItem) => (\r\n
    \r\n
    \r\n \r\n

    {result?.title}

    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n ) : (\r\n
    \r\n \r\n

    {t('cnhi-noMatchesFoundTitle')}

    \r\n

    {t('cnhi-noMatchesFoundDescription')}

    \r\n
    \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n

    {t('cnhi-searchTitle')}

    \r\n
    \r\n {query && (\r\n <>\r\n

    \r\n {t('cnhi-searchTerm')}: {`\"${query}\"`}\r\n

    \r\n

    \r\n {t('cnhi-totalResults')}: {model?.counter}\r\n

    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {isSuggestionsComponentVisible && (\r\n \r\n )}\r\n
    \r\n {inputValue && }\r\n setInputValue(e?.target?.value)}\r\n onFocus={(): void => setIsSuggestionsComponentVisible(true)}\r\n autoComplete=\"off\"\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {(query || searchResultsRef?.current) ? (\r\n
    \r\n {searchFilters}\r\n {searchResultsList}\r\n
    \r\n ) : (\r\n
    \r\n \r\n

    {t('cnhi-initialSearchTitle')}

    \r\n

    {t('cnhi-initialSearchDescription')}

    \r\n
    \r\n )}\r\n\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default withTranslation()(withSitecoreContext()(SearchResults));\r\n","import React, { FC } from 'react';\r\n\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport Icon from '../../../@shared/icon';\r\n\r\nconst FieldValidationError: FC = (props) => {\r\n const hasAnyError = !!props.errors?.length;\r\n return (\r\n <>\r\n {hasAnyError && (\r\n
    \r\n {props.errors.map((error, index) => (\r\n

    \r\n \r\n {error}\r\n

    \r\n ))}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default FieldValidationError;\r\n","import { FieldTypes } from '@sitecore-jss/sitecore-jss-react-forms';\r\n\r\nexport const customFieldTypes = {\r\n firstNameFieldTypeItemId: '{75A14E0D-B1FD-467C-9CD7-9C9509AAAB66}' as FieldTypes,\r\n lastNameFieldTypeItemId: '{C6F06C22-B216-46FC-961A-87059BCE3A6F}' as FieldTypes,\r\n companyNameFieldTypeItemId: '{F0D1AB3D-8BFD-4E96-B5E9-44989227AF7F}' as FieldTypes,\r\n emailFieldTypeItemId: '{818E6205-B366-4D89-929A-2DAEA9EA97D8}' as FieldTypes,\r\n zipCodeFieldTypeItemId: '{DDD9EF10-0F4C-44B9-ABEF-07A95151EB54}' as FieldTypes,\r\n addressFieldTypeItemId: '{8ADCCA7E-054B-4E4B-9095-1A341A9279D0}' as FieldTypes,\r\n cityFieldTypeItemId: '{8B7DBBAF-D6EC-4B4A-B685-45C598658CA7}' as FieldTypes,\r\n phoneNumberFieldTypeItemId: '{91777568-5C07-44BE-98CF-5A6C66A4CED6}' as FieldTypes,\r\n mobileNumberFieldTypeItemId: '{4FF02169-0658-4275-B4F7-D8CAFD321F59}' as FieldTypes,\r\n gdprConsentFieldTypeItemId: '{4C3C280A-EEC9-49B1-A788-8DE5FDB67816}' as FieldTypes,\r\n productSelectorFieldTypeItemId: '{86A0843F-2D69-435F-A865-75B723538DAB}' as FieldTypes,\r\n preferredCommunicationFieldTypeItemId: '{586BFC0B-8C64-4DA3-9DAE-E9C10700AD32}' as FieldTypes,\r\n countryStateDropdownFieldTypeItemId: '{F3E14317-2A3F-4490-B6A4-91D399C24430}' as FieldTypes,\r\n pageTitleFieldTypeItemId: '{97EF31FF-02DD-47F2-96BC-FD1918303808}' as FieldTypes,\r\n pageUrlFieldTypeItemId: '{C0200425-2688-4964-B1A6-507D33515859}' as FieldTypes,\r\n decisionRoleFieldTypeItemId: '{D5308E4D-9BB7-49CA-B0DC-9747DA189693}' as FieldTypes,\r\n purchaseTimingFieldTypeItemId: '{0146A0BF-2866-42FA-B423-62C5E353C455}' as FieldTypes,\r\n recaptchaFieldTypeItemId: '{64D1EA12-D725-43B1-AF08-8BCA520975E6}' as FieldTypes,\r\n purchaseIntentionFieldTypeItemId: '{020CAE16-D056-4218-94A9-6643A4E0A96D}' as FieldTypes,\r\n contactReasonFieldTypeItemId: '{BEAC4B57-610A-4CB4-975E-36116FF6BF6E}' as FieldTypes,\r\n notes1FieldTypeItemId: '{AC2CA90A-B694-44F3-A12D-E445DD37E68E}' as FieldTypes,\r\n codePromotionFieldTypeItemId: '{19C23A4E-D0AB-46B3-9498-16B074BD9FEF}' as FieldTypes,\r\n initiativeSourceReportFieldTypeItemId: '{4A27B7AC-BCD0-4625-AED6-A7949ED14EBE}' as FieldTypes,\r\n initiativeSourceReportDetailFieldTypeItemId: '{FC886FBB-FCA9-4485-82F4-DF01D4E76D10}' as FieldTypes,\r\n productOfInterestFieldTypeItemId: '{8DAEFFE1-C993-4C3E-BAEE-A2DA32675E8E}' as FieldTypes,\r\n customProductOfInterestFieldTypeItemId: '{703CEF0F-CD95-4B85-994E-670B6AF979D0}' as FieldTypes,\r\n dealerNotesFieldTypeItemId: '{3F6DE8EA-7948-4E94-B18B-61D63912052B}' as FieldTypes,\r\n address2FieldTypeItemId: '{47144AC0-7373-430C-ABA9-AF79CF7E1F16}' as FieldTypes,\r\n jobTitleFieldTypeItemId: '{E4D1659A-E91F-429F-AD7B-B450AABCE37E}' as FieldTypes,\r\n leadManagementCampaignFieldTypeItemId: '{5ADCD535-A6FB-467F-858E-D30E5B6CF6E9}' as FieldTypes,\r\n provinceFieldTypeItemId: '{46FC0640-3807-4634-8830-0A370C46BD4B}' as FieldTypes,\r\n delaerLocatorFieldTypeItemId: '{B8D5DE42-2EC0-485B-A4ED-B506CA45C6AB}' as FieldTypes,\r\n customNumberFieldTypeItemId: '{76B7D120-B053-4551-B317-5E749B67BA72}' as FieldTypes,\r\n BusinessSegmentFieldTypeItemId: `{0AE6072C-5346-45D6-9E8E-226704D041C0}` as FieldTypes,\r\n formPageIdentifierFieldTypeItemId: '{2F8E0B1E-4CC7-4C28-A3C1-EF0165274BE5}' as FieldTypes,\r\n timeFieldTypeItemId: '{0DBDBF59-CD6A-4808-BB53-2E97EEAC9424}' as FieldTypes,\r\n dealerNotesDropdownListFieldTypeItemId: '{3F888D60-8ABB-4537-93CA-FE86E657CB3B}' as FieldTypes,\r\n dealerNotesCheckboxListFieldTypeItemId: '{7F443BA0-E3B7-4E2F-9D7F-5C84920D5161}' as FieldTypes,\r\n dealerNotesRadioGroupFieldTypeItemId: '{9A3D9FBD-CC94-4DAC-B17C-AC8B08E78E91}' as FieldTypes,\r\n marketingConsentTypeItemId: '{360E6123-3717-46FA-BCC3-23BC3483799B}' as FieldTypes,\r\n dynamicProductSelector: '{B46514C3-1ADA-4F3D-80D4-FE37D459F295}' as FieldTypes,\r\n leadDocumentId: '{6E9505D6-61DA-45F2-A91C-C0C173952730}' as FieldTypes,\r\n};\r\n\r\nexport default customFieldTypes;\r\n","import React, { useEffect, useState, FC } from 'react';\r\n\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\n\r\nimport { documentService, windowService } from '../../../../utils/window.utils';\r\n\r\nconst PageTitleField: FC = (props) => {\r\n const { field } = props;\r\n const hasAnyError = !!props.errors?.length;\r\n const [value, setValue] = useState(props.value);\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n\r\n useEffect(() => {\r\n const title = windowService()?.btoa(encodeURIComponent(documentService().title));\r\n\r\n setValue(title);\r\n props.onChange(field.valueField.name, title, props.isValid, []);\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default PageTitleField;\r\n","import React, { useEffect, useState, FC } from 'react';\r\n\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\n\r\nimport { documentService, windowService } from '../../../../utils/window.utils';\r\n\r\nconst PageUrlField: FC = (props) => {\r\n const { field } = props;\r\n const [value, setValue] = useState(props.value);\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n\r\n useEffect(() => {\r\n const url = windowService()?.btoa(encodeURIComponent(documentService().URL));\r\n\r\n setValue(url);\r\n props.onChange(field.valueField.name, url, props.isValid, []);\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default PageUrlField;\r\n","import { FieldTypes } from '@sitecore-jss/sitecore-jss-react-forms';\r\nimport React, { FC } from 'react';\r\nimport { TFieldWrapperProps } from '../../types/fieldWrapper.types';\r\nimport customFieldTypes from '../../types/field.types';\r\nimport PageTitle from '../pageTitleField';\r\nimport PageUrl from '../pageUrlField';\r\n\r\nconst FieldWrapper: FC = (props) => {\r\n const fieldWidthClassName = props?.field?.model?.cssClass || 'width-1';\r\n\r\n const fieldClassName = {\r\n [customFieldTypes.gdprConsentFieldTypeItemId]: ' sitecore-jss-form__field-wrapper--gdpr',\r\n [customFieldTypes.recaptchaFieldTypeItemId]: ' sitecore-jss-form__field-wrapper--recaptcha',\r\n [customFieldTypes.preferredCommunicationFieldTypeItemId]: ' sitecore-jss-form__field-wrapper--radio-btn',\r\n [FieldTypes.RadioButtonList]: ' sitecore-jss-form__field-wrapper--radio-btn',\r\n };\r\n\r\n const pageTitleComponent = [customFieldTypes.pageTitleFieldTypeItemId, PageTitle];\r\n const pageUrlComponent = [customFieldTypes.pageUrlFieldTypeItemId, PageUrl];\r\n const hasPageTitleOrPageUrl = [...pageTitleComponent, ...pageUrlComponent]?.includes(props?.field?.model?.fieldTypeItemId as FieldTypes);\r\n\r\n const fieldWrapperClassName = `sitecore-jss-form__field-wrapper ${fieldWidthClassName} ${hasPageTitleOrPageUrl ? 'hidden' : ''} ${\r\n fieldClassName[props.field.model.fieldTypeItemId] ?? ''\r\n }`;\r\n\r\n return
    {props.children}
    ;\r\n};\r\n\r\nexport default FieldWrapper;\r\n","import { SitecoreForm } from '@sitecore-jss/sitecore-jss-forms';\r\nimport React, { FC, useState } from 'react';\r\nimport { TParamsField } from '../../types/sitecoreJssForm.types';\r\nimport { TDropdownAnalyticsSendData } from '../productSelector/dropdownContext';\r\n\r\ntype TCustomFormContext = {\r\n analytics: {\r\n firstUserActionState: [boolean, React.Dispatch>];\r\n formName: string;\r\n };\r\n params: TParamsField;\r\n selectedCountry: [string, React.Dispatch>];\r\n setProductSelector: React.Dispatch>;\r\n setSelectedDealerName: (dealerName: string) => void;\r\n};\r\n\r\nexport const CustomFormContext = React.createContext(undefined);\r\n\r\nconst CustomFormContextProvider: FC<{\r\n sitecoreForm: SitecoreForm;\r\n params: TParamsField;\r\n children?: JSX.Element\r\n setProductSelector: React.Dispatch>;\r\n setSelectedDealerName: (dealerName: string) => void;\r\n}> = ({ children, sitecoreForm, params, setProductSelector, setSelectedDealerName }) => {\r\n const _firstUserActionState = useState(false);\r\n const _selectedCountry = useState('');\r\n \r\n const customFormContextFactory = (): TCustomFormContext => {\r\n return {\r\n analytics: {\r\n firstUserActionState: _firstUserActionState,\r\n formName: sitecoreForm?.metadata?.name ?? '',\r\n },\r\n params,\r\n selectedCountry: _selectedCountry,\r\n setProductSelector,\r\n setSelectedDealerName,\r\n };\r\n };\r\n\r\n return {children};\r\n};\r\n\r\nexport default CustomFormContextProvider;\r\n","import { useContext } from 'react';\r\nimport { googleDataLayerPush } from '../../../../utils/analytics';\r\nimport { CustomFormContext } from '../../components/customFormContextProvider';\r\n\r\nconst useFirstUserAction = () => {\r\n const customFormContext = useContext(CustomFormContext);\r\n const [firstUserAction, setFirstUserAction] = customFormContext?.analytics?.firstUserActionState ?? [];\r\n\r\n const triggerFirstInteractionGTMEvent = () => {\r\n if(firstUserAction === false && setFirstUserAction){\r\n googleDataLayerPush({\r\n event: 'form_start',\r\n form_name: customFormContext?.analytics?.formName\r\n });\r\n\r\n setFirstUserAction(true)\r\n }\r\n }\r\n\r\n return triggerFirstInteractionGTMEvent\r\n}\r\n\r\nexport default useFirstUserAction;","import React, { FC } from 'react';\r\nimport { TField } from '../../../../../types/types';\r\nimport { CustomText } from '../../../../@shared/customText';\r\nimport { TCustomLabelProps } from './types';\r\n\r\nconst CustomLabel: FC = (props) => {\r\n const field: TField = {\r\n value: props.label,\r\n editable: '',\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default CustomLabel;\r\n","import React, { useState, FC, FocusEvent, ChangeEvent } from 'react';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport { TBaseTextField } from '../../types/baseTextField.types';\r\nimport CustomTextLabel from '../@shared/customTextLabel';\r\n\r\nconst BaseTextField: FC = (props) => {\r\n const { field, type, tracker, inputAttributes = {} } = props;\r\n const [hasFocus, setHasFocus] = useState(false);\r\n const [value, setValue] = useState(props.value);\r\n const hasValueOrFocus = hasFocus || value !== '';\r\n const hasAnyError = !!props.errors?.length;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const label = field?.model?.title;\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n const placeholder = field?.model?.placeholderText;\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, e?.target?.value);\r\n setHasFocus(true);\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, e?.target?.value);\r\n setHasFocus(false);\r\n };\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n setValue(e?.target?.value);\r\n props.onChange(field?.valueField?.name, e?.target?.value, props?.isValid, []);\r\n\r\n triggerFirstInteractionGTMEvent();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default BaseTextField;\r\n","import React, { FC } from 'react';\r\n\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport { StringInputViewModel } from '@sitecore-jss/sitecore-jss-forms';\r\nimport BaseTextField from '../baseTextField';\r\n\r\nconst TextField: FC> = (props) => ;\r\n\r\nexport default TextField;\r\n","import React, { FC } from 'react';\r\n\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport { StringInputViewModel } from '@sitecore-jss/sitecore-jss-forms';\r\nimport BaseTextField from '../baseTextField';\r\n\r\nconst EmailField: FC> = (props) => ;\r\n\r\nexport default EmailField;\r\n","import React, { FC } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport { NumberInputViewModel } from '@sitecore-jss/sitecore-jss-forms';\r\nimport BaseTextField from '../baseTextField';\r\n\r\nconst NumberField: FC> = (props) => {\r\n const numberValidation = {\r\n step: props?.field?.model?.step,\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default NumberField;\r\n","import React, { useState, FC } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport PhoneInput from 'react-phone-input-2';\r\nimport 'react-phone-input-2/lib/style.css';\r\nimport IPhoneInputViewModel from '../../models/phoneInputView.model';\r\nimport './styles.scss';\r\nimport { useTranslation } from 'react-i18next';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\n\r\nconst TelephoneField: FC> = (props) => {\r\n const { field, tracker } = props;\r\n const [value, setValue] = useState(props.value);\r\n const hasAnyError = !!props.errors?.length;\r\n const { t } = useTranslation();\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const placeholder = field?.model?.placeholderText;\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n const onFocus = (): void => {\r\n tracker.onFocusField(field, value);\r\n };\r\n\r\n const onBlur = (): void => {\r\n tracker.onBlurField(field, value);\r\n };\r\n\r\n const onChange = (value: string): void => {\r\n setValue(value);\r\n props.onChange(field?.valueField?.name, `+${value}`, props?.isValid, []);\r\n triggerFirstInteractionGTMEvent();\r\n };\r\n\r\n return (\r\n \r\n \r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default TelephoneField;\r\n\r\n","import React, { useState, FC, FocusEvent, ChangeEvent } from 'react';\r\n\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport { StringInputViewModel } from '@sitecore-jss/sitecore-jss-forms';\r\nimport Icon from '../../../@shared/icon';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport CustomTextLabel from '../@shared/customTextLabel';\r\n\r\nconst PasswordField: FC> = (props) => {\r\n const { field, tracker } = props;\r\n const [hasFocus, setHasFocus] = useState(false);\r\n const [hasVisiblePassword, setHasVisiblePassword] = useState(false);\r\n const [value, setValue] = useState(props.value);\r\n const hasValueOrFocus = hasFocus || value !== '';\r\n const hasAnyError = !!props.errors?.length;\r\n const id = field.valueField.id;\r\n const label = field.model.title;\r\n const name = field.valueField.name;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, e?.target?.value);\r\n setHasFocus(true);\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, e?.target?.value);\r\n setHasFocus(false);\r\n };\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n setValue(e?.target?.value);\r\n props.onChange(field.valueField.name, e?.target?.value, props.isValid, []);\r\n triggerFirstInteractionGTMEvent();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n setHasVisiblePassword(!hasVisiblePassword)}\r\n >\r\n \r\n \r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default PasswordField;\r\n","import React, { useState, FC, FocusEvent, ChangeEvent } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport { MultiLineStringInputViewModel } from '@sitecore-jss/sitecore-jss-forms';\r\nimport Icon from '../../../@shared/icon';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport CustomTextLabel from '../@shared/customTextLabel';\r\n\r\nconst MultipleLineTextField: FC> = (props) => {\r\n const { field, tracker } = props;\r\n const [hasFocus, setHasFocus] = useState(false);\r\n const hasValueOrFocus = hasFocus || props?.value !== '';\r\n const hasAnyError = !!props?.errors?.length;\r\n const label = field?.model?.title;\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n const rows = field?.model?.rows;\r\n const FieldValidationErrors = props?.fieldValidationErrorsComponent;\r\n const placeholder = hasFocus ? field?.model?.placeholderText : '';\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, e?.target?.value);\r\n setHasFocus(true);\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, e?.target?.value);\r\n setHasFocus(false);\r\n };\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n props.onChange(field?.valueField?.name, e?.target?.value, props.isValid, []);\r\n triggerFirstInteractionGTMEvent();\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default MultipleLineTextField;\r\n","import React, { FC, FocusEvent, ChangeEvent } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport CustomTextLabel from '../@shared/customTextLabel';\r\n\r\nconst CheckboxField: FC = (props) => {\r\n const { field, tracker } = props;\r\n const hasAnyError = !!props.errors?.length;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const label = field.model.title;\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, e?.target?.value);\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, e?.target?.value);\r\n };\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n props.onChange(field.valueField.name, e?.target?.checked as any, props.isValid, []);\r\n triggerFirstInteractionGTMEvent();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckboxField;\r\n","import React, { FC, FocusEvent, ChangeEvent } from 'react';\r\nimport { ListFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport CustomTextLabel from '../@shared/customTextLabel';\r\n\r\nconst CheckboxList: FC = (props) => {\r\n const { field, tracker } = props;\r\n const hasAnyError = !!props.errors?.length;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const label = field.model.title;\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n const getNewValue = (currentValue: string[], targetValue: string): string[] =>\r\n currentValue.includes(targetValue) ? currentValue.filter((str) => str !== targetValue) : [...currentValue, targetValue];\r\n\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, getNewValue(props.value, e?.target?.value));\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, getNewValue(props.value, e?.target?.value));\r\n };\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n props.onChange(field.valueField.name, getNewValue(props.value, e?.target?.value), props.isValid, []);\r\n triggerFirstInteractionGTMEvent();\r\n };\r\n const errorColor = hasAnyError ? 'error' : undefined;\r\n return (\r\n \r\n \r\n {field?.model?.items?.map((item) => (\r\n \r\n \r\n \r\n ))}\r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckboxList;\r\n","import {useRef, useEffect} from 'react';\r\n\r\nconst useDidUpdate = (fn, inputs) => {\r\n const didMountRef = useRef(false);\r\n\r\n useEffect(() => {\r\n if (didMountRef.current) return fn();\r\n else didMountRef.current = true;\r\n }, inputs); // eslint-disable-line\r\n // TODO check why deps not in an array\r\n};\r\n\r\nexport default useDidUpdate;\r\n","import React, { FC, useState, useEffect, useRef, ChangeEvent } from 'react';\r\nimport useDidUpdate from '../../../../hooks/useDidUpdate.effect';\r\nimport { documentService } from '../../../../utils/window.utils';\r\nimport Icon from '../../../@shared/icon';\r\nimport HiglightedOption from '../../../@shared/highlightedOption';\r\nimport { TDropdownListField } from '../../types/sitecoreJssForm.types';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport CustomTextLabel from '../@shared/customTextLabel';\r\n\r\nconst DropdownList: FC = (props) => {\r\n const { field, tracker, value } = props;\r\n const hasAnyError = !!props.errors?.length;\r\n const label = field.model.title;\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const emptyAtTopList = field?.model?.showEmptyItem;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [hasFocus, setHasFocus] = useState(false);\r\n const [hasTextInputFocus, setHasTextInputFocus] = useState(false);\r\n const useFirstItemAsEmptyItem = field?.model?.useFirstItemAsEmptyItem;\r\n\r\n let dropDownListItems;\r\n\r\n if (useFirstItemAsEmptyItem) {\r\n const firstItem = field?.model?.items?.[0];\r\n dropDownListItems = firstItem ? [{ ...firstItem, text: '' }, ...field.model.items.slice(1)] : [];\r\n } else {\r\n dropDownListItems = field?.model?.items ?? [];\r\n }\r\n\r\n const defaultListItem = dropDownListItems?.find((item) => item?.selected);\r\n const [initialTextValue, setInitialTextValue] = useState(defaultListItem?.text || '');\r\n const [textValue, setTextValue] = useState(defaultListItem?.text || '');\r\n const [dropdownValue, setDropdownValue] = useState(defaultListItem?.value || '');\r\n const [initialDropdownValue, setInitialDropdownValue] = useState(defaultListItem?.value || '');\r\n const dropdownRef: React.MutableRefObject = useRef(null);\r\n const inputRef: React.MutableRefObject = useRef(null);\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n useEffect(() => {\r\n if (!value?.length || (value?.length && value[0] !== dropdownValue)) {\r\n const defaultListItem = dropDownListItems?.find((item) => item?.selected);\r\n setInitialTextValue(defaultListItem?.text || '');\r\n setTextValue(defaultListItem?.text || '');\r\n setDropdownValue(defaultListItem?.value || '');\r\n setInitialDropdownValue(defaultListItem?.value || '');\r\n }\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n if (useFirstItemAsEmptyItem) {\r\n const sendValueForNoSelection = field?.model?.items?.[0]?.value ?? 0;\r\n props.onChange(field.valueField.name, [sendValueForNoSelection], props.isValid, []);\r\n }\r\n }, []);\r\n\r\n const onDropdownFocus = (): void => {\r\n setHasFocus(true);\r\n setHasTextInputFocus(true);\r\n };\r\n\r\n const onTextInputBlur = (): void => {\r\n setHasTextInputFocus(false);\r\n };\r\n\r\n const onDropdownClik = (): void => {\r\n setIsVisible(!isVisible);\r\n\r\n if (!isVisible) {\r\n inputRef?.current?.focus();\r\n } else {\r\n inputRef?.current?.blur();\r\n }\r\n };\r\n\r\n const onSelectOption = (value: string, text: string): void => {\r\n setDropdownValue(value);\r\n setTextValue(text);\r\n setInitialDropdownValue(value);\r\n setInitialTextValue(text);\r\n setIsVisible(false);\r\n };\r\n\r\n const onInputUpdate = (e: ChangeEvent): void => {\r\n setTextValue(e?.target?.value);\r\n };\r\n\r\n const filteredOptions =\r\n textValue === ''\r\n ? dropDownListItems\r\n : dropDownListItems?.filter((option) => option.text && option.text.toLowerCase().indexOf(textValue.toLocaleLowerCase()) > -1);\r\n\r\n const handleClickOutside = (event): void => {\r\n if (dropdownRef?.current?.contains(event?.target)) {\r\n return;\r\n }\r\n\r\n setIsVisible(false);\r\n\r\n if (textValue === '') {\r\n setTextValue('');\r\n } else {\r\n const hasMatch = dropDownListItems?.some((opt) => opt.text === textValue);\r\n\r\n if (!hasMatch) {\r\n setDropdownValue(initialDropdownValue);\r\n setTextValue(initialTextValue);\r\n } else if (textValue !== initialTextValue) {\r\n const currentItem = dropDownListItems?.filter((item) => item.text === textValue);\r\n setDropdownValue(currentItem?.length ? currentItem[0].value : '');\r\n }\r\n }\r\n\r\n setHasFocus(false);\r\n };\r\n\r\n useEffect(() => {\r\n documentService().addEventListener('mouseup', handleClickOutside);\r\n return (): void => {\r\n documentService().removeEventListener('mouseup', handleClickOutside);\r\n };\r\n }, [initialTextValue, textValue]); //eslint-disable-line\r\n\r\n useDidUpdate(() => {\r\n if (hasFocus) {\r\n tracker.onFocusField(field, textValue);\r\n } else {\r\n tracker.onBlurField(field, textValue);\r\n }\r\n }, [hasFocus]);\r\n\r\n useDidUpdate(() => {\r\n const newValue = dropdownValue ? [dropdownValue] : [];\r\n props.onChange(field.valueField.name, newValue, props.isValid, []);\r\n triggerFirstInteractionGTMEvent();\r\n }, [dropdownValue]);\r\n\r\n return (\r\n
    \r\n
      \r\n
    • \r\n \r\n \r\n \r\n \r\n \r\n
    • \r\n
    • \r\n
        \r\n {emptyAtTopList && !useFirstItemAsEmptyItem && (\r\n onSelectOption('', '')}\r\n >\r\n )}\r\n {initialTextValue !== textValue ? (\r\n <>\r\n {filteredOptions.map((item) => (\r\n onSelectOption(item.value, item.text || '')}\r\n key={item?.itemId}\r\n >\r\n \r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n {dropDownListItems?.map((item) => (\r\n onSelectOption(item.value, item.text || '')}\r\n key={`${item.value}-${item.text}`}\r\n >\r\n \r\n \r\n ))}\r\n \r\n )}\r\n
      \r\n
    • \r\n
    \r\n {FieldValidationErrors && }\r\n
    \r\n );\r\n};\r\n\r\nexport default DropdownList;\r\n","import React, { FC, FocusEvent, useRef } from 'react';\r\n\r\nimport { ValueFieldProps, ValidationDataModels } from '@sitecore-jss/sitecore-jss-react-forms';\r\nimport { FileInputViewModel, ValidationDataModel, ValueFormField } from '@sitecore-jss/sitecore-jss-forms';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport Icon from '../../../@shared/icon';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport CustomTextLabel from '../@shared/customTextLabel';\r\n\r\nconst SIZE_UNITS: { [key: string]: string } = {\r\n '1': 'Bytes',\r\n '1024': 'KB',\r\n '1048576': 'MB',\r\n '1073741824': 'GB',\r\n};\r\n\r\nconst FileUploadField: FC & WithTranslation> = (props) => {\r\n const { field, tracker, t } = props;\r\n const hasAnyError = !!props.errors?.length;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const label = field.model.title;\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const inputRef = useRef(null);\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n const getEnabledValidation = (validatorItemId: string): ValidationDataModel | undefined =>\r\n field.model.validationDataModels.find((validation) => {\r\n return validation.itemId === validatorItemId;\r\n });\r\n\r\n const getFileSizeUnitName = (value: string): string => {\r\n return SIZE_UNITS[value];\r\n };\r\n const fileTypeValidator = getEnabledValidation(ValidationDataModels.FileTypeValidator);\r\n\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, e?.target?.value);\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, e?.target?.value, []);\r\n };\r\n\r\n const onChange = (files: FileList | null, newfield: ValueFormField): void => {\r\n const fileSizeValidator = getEnabledValidation(ValidationDataModels.FileSizeValidator);\r\n const fileCountValidator = getEnabledValidation(ValidationDataModels.FileCountValidator);\r\n const list: Array = [];\r\n const errorMessages: Array = [];\r\n let valid = true;\r\n\r\n if (files) {\r\n Array(files.length)\r\n .fill(null)\r\n .forEach(function (_, idx) {\r\n const fileSize = files[idx].size / newfield.model.fileSizeUnit;\r\n if (valid && fileSizeValidator && fileSize > newfield.model.maxFileSize) {\r\n const msg = fileSizeValidator.message\r\n .replace('{0}', newfield.model.maxFileSize.toString())\r\n .replace('{1}', getFileSizeUnitName(newfield.model.fileSizeUnit.toString()));\r\n errorMessages.push(msg);\r\n valid = false;\r\n }\r\n list.push(files[idx]);\r\n });\r\n }\r\n if (fileTypeValidator) {\r\n list.some(function (file) {\r\n const ext = file.name.split('.').pop() || '';\r\n if (newfield.model.allowedContentTypes.indexOf(ext) !== -1) {\r\n return false;\r\n }\r\n const msg = fileTypeValidator.message.replace('{0}', newfield.model.allowedContentTypes);\r\n errorMessages.push(msg);\r\n return true;\r\n });\r\n }\r\n if (fileCountValidator && list.length > newfield.model.maxFileCount) {\r\n const msg = fileCountValidator.message.replace('{0}', newfield.model.maxFileCount.toString()).replace('{1}', newfield.model.title);\r\n errorMessages.push(msg);\r\n valid = false;\r\n }\r\n if (newfield.model.required && !list.length) {\r\n valid = false;\r\n errorMessages.push(newfield.model.title + ' is required');\r\n }\r\n props.onChange(newfield.valueField.name, list, valid, errorMessages);\r\n triggerFirstInteractionGTMEvent();\r\n };\r\n\r\n const onUploadClick = (): void => {\r\n inputRef?.current?.click();\r\n };\r\n\r\n const onClearClick = (): void => {\r\n if (inputRef.current) {\r\n inputRef.current.value = '';\r\n onChange(inputRef.current.files, field);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n onChange(e?.target?.files, field)}\r\n ref={inputRef}\r\n accept={fileTypeValidator ? field.model?.allowedContentTypes : undefined}\r\n multiple={field.model.isMultiple}\r\n className={`sitecore-jss-form__file-input ${!props?.value?.length ? 'sitecore-jss-form__file-input--is-empty' : ''}`}\r\n />\r\n \r\n
    \r\n \r\n\r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default withTranslation()(FileUploadField);\r\n","import React, { FC, FocusEvent, ChangeEvent } from 'react';\r\nimport { ListFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\n\r\nimport Icon from '../../../@shared/icon';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport CustomTextLabel from '../@shared/customTextLabel';\r\n\r\nconst RadioGroup: FC = (props) => {\r\n const { field, tracker } = props;\r\n const hasAnyError = !!props.errors?.length;\r\n const label = field.model.title;\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n const getNewValue = (targetValue: string): string[] => [targetValue];\r\n\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, getNewValue(e.target?.value));\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, getNewValue(e.target?.value));\r\n };\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n props.onChange(field.valueField.name, getNewValue(e.target?.value), props.isValid, []);\r\n triggerFirstInteractionGTMEvent();\r\n };\r\n\r\n const errorColor = hasAnyError ? 'error' : undefined;\r\n\r\n return (\r\n \r\n \r\n
      \r\n {(field?.model?.items || []).map((item) => {\r\n return (\r\n
    • \r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default RadioGroup;\r\n","import React, { FC } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport { StringInputViewModel } from '@sitecore-jss/sitecore-jss-forms';\r\nimport BaseTextField from '../baseTextField';\r\n\r\nconst SingleLineText: FC> = (props) => ;\r\n\r\nexport default SingleLineText;\r\n","import React, { useState, FC, FocusEvent, ChangeEvent, useRef } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms';\r\nimport { DateInputViewModel } from '@sitecore-jss/sitecore-jss-forms';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport CustomTextLabel from '../@shared/customTextLabel';\r\n\r\nconst DateField: FC> = (props) => {\r\n const { field, tracker } = props;\r\n const [hasFocus, setHasFocus] = useState(false);\r\n const [value, setValue] = useState(props.value);\r\n const inputRef = useRef(null);\r\n const model = field?.model;\r\n const hasValueOrFocus = hasFocus || value !== '';\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const label = field?.model?.title;\r\n const hasAnyError = !!props.errors?.length;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const maxDate = model?.max?.split('T')[0];\r\n const minDate = model?.min?.split('T')[0];\r\n const errorColor = hasAnyError ? 'error' : undefined;\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n\r\n const onClick = (): void => {\r\n inputRef?.current?.showPicker();\r\n inputRef?.current?.focus();\r\n };\r\n\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, e?.target?.value);\r\n setHasFocus(true);\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, e?.target?.value);\r\n setHasFocus(false);\r\n };\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n setValue(e?.target?.value);\r\n props.onChange(field?.valueField?.name, e?.target?.value, props?.isValid, []);\r\n setHasFocus(false);\r\n triggerFirstInteractionGTMEvent();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n\r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default DateField;\r\n","import React, { FC } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport { StringInputViewModel } from '@sitecore-jss/sitecore-jss-forms';\r\nimport BaseTextField from '../baseTextField';\r\n\r\nconst ZipCodeField: FC> = (props) => ;\r\n\r\nexport default ZipCodeField;\r\n","import React, { FocusEvent } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport Icon from '../../../../@shared/icon';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\n\r\nconst GdprConsentCheckbox = (props) => {\r\n const { field, tracker, label, value, hasAnyError, id } = props;\r\n\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, e?.target?.value);\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, e?.target?.value);\r\n };\r\n\r\n const onChange = (): void => {\r\n props.onChange(!value);\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default GdprConsentCheckbox;\r\n","import React, { FC, useEffect, useState } from 'react';\r\nimport { InputViewModel } from '@sitecore-jss/sitecore-jss-forms';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport GdprConsentCheckbox from './gdprConsentCheckbox';\r\nimport IGdprConsentFieldCheckbox from '../../../types/gdprConsentField.types';\r\nimport { windowService } from '../../../../../utils/window.utils';\r\n\r\ntype CheckboxId = 1 | 2 | 3;\r\n\r\nconst GdprConsentField: FC> = (props) => {\r\n const { field, tracker } = props;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const labels = [field?.model?.title, field?.model?.titleSecond, field?.model?.titleThird];\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const [value, setValue] = useState(props.value);\r\n const [encodedValue, setEncodedValue] = useState('');\r\n\r\n const encodeValue = (rawValue: string): string => windowService()?.btoa(rawValue);\r\n\r\n const handleCheckboxChange = (checkboxId: CheckboxId, isChecked: boolean): void => {\r\n const values = value.split('|');\r\n values[checkboxId - 1] = `${isChecked}`;\r\n const newValue = values.join('|');\r\n setValue(newValue);\r\n };\r\n\r\n const getLabel = (checkboxId: CheckboxId) => labels[checkboxId - 1];\r\n\r\n const getValue = (checkboxId: CheckboxId) => (value.split('|')?.[checkboxId - 1] === 'true' ? true : false);\r\n\r\n const getPropsWithErrors = (checkboxId: CheckboxId): ValueFieldProps => {\r\n const { errors } = props;\r\n\r\n if (!errors?.[0]) {\r\n return props;\r\n }\r\n const error = errors[0].split('|')?.[checkboxId - 1];\r\n return {\r\n ...props,\r\n errors: error ? [error] : [],\r\n };\r\n };\r\n\r\n const hasAnyError = (checkboxId: CheckboxId) => !!getPropsWithErrors(checkboxId).errors?.length;\r\n\r\n const renderCheckbox = (checkboxId: CheckboxId): JSX.Element => {\r\n const label = getLabel(checkboxId);\r\n\r\n return (\r\n <>\r\n {label && (\r\n handleCheckboxChange(checkboxId, isChecked)}\r\n />\r\n )}\r\n\r\n {FieldValidationErrors && }\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n const encValue = encodeValue(value);\r\n setEncodedValue(encValue);\r\n props.onChange(field.valueField.name, encValue, props.isValid, []);\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n if (props.value !== encodedValue) {\r\n setValue(props.value);\r\n props.onChange(field.valueField.name, encodeValue(value), props.isValid, []);\r\n }\r\n }, [props.value]);\r\n\r\n return (\r\n
    \r\n \r\n\r\n {[1, 2, 3].map(renderCheckbox)}\r\n
    \r\n );\r\n};\r\n\r\nexport default GdprConsentField;\r\n","import { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { TGDPRPopupCheckboxSection } from '../../../../types/gdprConsentField.types';\r\n\r\nconst CheckboxSection: FC = ({ policy, updateData, checked }) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CheckboxSection;\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { TGDPRPopupRadioSection } from '../../../../types/gdprConsentField.types';\r\n\r\nconst RadioButtonIcons = ({ checked }): JSX.Element => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst RadioSection: FC = ({ policy, updateData, accepted }) => {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    {policy.title}
    \r\n
    {policy.description}
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default RadioSection;\r\n","import React, { FC } from 'react';\r\nimport { TContactSection } from '../../../../types/gdprConsentField.types';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\n\r\nconst ContactSection: FC = ({ contactChecboxes, updateData, textContent, data, disabled = false }) => {\r\n if (contactChecboxes.length === 0) return null;\r\n\r\n return (\r\n
    \r\n
    \r\n {contactChecboxes?.map((policy) => {\r\n const isChecked = !!(!disabled && data?.find((item) => item.id === policy.id)?.accepted);\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n {textContent && (\r\n
    \r\n
    {textContent.title}
    \r\n
    {textContent.description}
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default ContactSection;\r\n","import React, { Fragment, useEffect, useMemo, useState, FC } from 'react';\r\nimport ModalDialog from '../../../../../@shared/modalDialog';\r\nimport { TGDPRPolicy, TGDPRPopupModal, TGDPRPopupModalPolicyFieldState } from '../../../../types/gdprConsentField.types';\r\nimport CheckboxSection from './checkboxSection';\r\nimport RadioSection from './radioSection';\r\nimport ContactSection from './contactSection';\r\nimport './styles.scss';\r\n\r\nconst GDPRPopupModal: FC = (props) => {\r\n const { handlePopupSubmit, gdprPolicies, hidePopup } = props;\r\n\r\n const [enableSubmit, setEnableSubmit] = useState(false);\r\n const [data, setData] = useState(() =>\r\n gdprPolicies.policies?.map((policy) => ({ id: policy.id, accepted: undefined, required: policy.required, type: policy.type }))\r\n );\r\n const contactChecboxes = useMemo(() => gdprPolicies.policies.filter((policy) => policy.type === 'checkbox_contacts'), [props]);\r\n\r\n const contactConsentDescriptionIndex = useMemo(\r\n () =>\r\n contactChecboxes.length > 0\r\n ? gdprPolicies.policies?.findIndex(\r\n (policy, i) => policy.type === 'checkbox' && gdprPolicies.policies[i + 1]?.type === 'checkbox_contacts'\r\n )\r\n : undefined,\r\n [props]\r\n );\r\n\r\n const isAllRadioDisagreed = !!data.every((item) =>\r\n item.type === 'radio' ? item.accepted === false || item.accepted === undefined : true\r\n );\r\n\r\n const isAnyRadioButtonNotAccepted = !!data.find((item) => item.type === 'radio' && item.accepted === undefined);\r\n\r\n const isAnyContactChecked = !!data.find((item) => item.type === 'checkbox_contacts' && item.accepted === true);\r\n\r\n useEffect(() => {\r\n setEnableSubmit(() => {\r\n const otherFiledsCheckStatus = data?.every((item, ind) => {\r\n if (item.type == 'checkbox_contacts' || ind == contactConsentDescriptionIndex) {\r\n return true;\r\n } else return item.required ? item.accepted : true;\r\n });\r\n // if atleast one accept radio is selected, checking alteast one Contact checboxes is selected\r\n return (\r\n otherFiledsCheckStatus &&\r\n (contactChecboxes?.length == 0 || isAllRadioDisagreed ? true : isAnyContactChecked) &&\r\n !isAnyRadioButtonNotAccepted\r\n );\r\n });\r\n }, [data]);\r\n\r\n const handleSubmit = () => {\r\n handlePopupSubmit(\r\n JSON.stringify({\r\n isFormOverlay: false,\r\n version: gdprPolicies.version,\r\n policies: data?.map(({ id, accepted, type }) =>\r\n type === 'checkbox_contacts' && isAllRadioDisagreed ? { id, accepted: false } : { id, accepted: accepted || false }\r\n ),\r\n })\r\n );\r\n };\r\n\r\n const updateData = (id: number, value: boolean) => {\r\n setData((data) =>\r\n data?.map((item) => {\r\n if (item.id === id) return { ...item, id, accepted: value };\r\n return item;\r\n })\r\n );\r\n };\r\n\r\n return (\r\n undefined}\r\n hideCloseButton={true}\r\n className=\"gdpr-popup-modal__content\"\r\n overlayClassName=\"gdpr-popup-modal__overlay\"\r\n skipModalPositionAdjustment={true}\r\n >\r\n
    \r\n {gdprPolicies.policies?.map((policy: TGDPRPolicy, index: number) => (\r\n \r\n {policy.type === 'checkbox' && index !== contactConsentDescriptionIndex && (\r\n item.id === policy.id)?.accepted || false}\r\n />\r\n )}\r\n {policy.type === 'radio' && (\r\n item.id === policy.id)?.accepted} />\r\n )}\r\n \r\n ))}\r\n \r\n
    \r\n \r\n \r\n {gdprPolicies.submitButtonLabel}\r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default GDPRPopupModal;\r\n","import React, { FC, ChangeEvent, useEffect, useState, useRef } from 'react';\r\nimport { windowService, documentService } from '../../../../../../utils/window.utils';\r\nimport { TGDPRConsentField } from '../../../../types/gdprConsentField.types';\r\nimport GDPRPopupModal from './modal';\r\n\r\nconst GdprConsentFieldPopup: FC = (props) => {\r\n const { field, errors } = props;\r\n const initialValue = '{isFormOverlay: false}';\r\n const hasAnyError = !!props.errors?.length;\r\n const id = field.valueField.id;\r\n const inputRef = useRef(null);\r\n const name = field.valueField.name;\r\n const [showPopup, setShowPopup] = useState(false);\r\n const [value, setValue] = useState(initialValue);\r\n const [submitCounter, setSubmitCounter] = useState(0);\r\n\r\n const encodeValue = (rawValue: string): string => windowService()?.btoa(rawValue);\r\n\r\n useEffect(() => {\r\n if (!props?.value) {\r\n props.onChange(field.valueField.name, initialValue, props.isValid, []);\r\n } else {\r\n props.onChange(field.valueField.name, encodeValue(props.value), props.isValid, []);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const otherValidationErrors = documentService()?.querySelectorAll?.('.sitecore-jss-form__error-list')?.length > 0;\r\n setShowPopup(!otherValidationErrors && !!errors?.length);\r\n }, [errors, setShowPopup]);\r\n\r\n useEffect(() => {\r\n if (value === initialValue) return;\r\n const formtag = inputRef.current?.closest('form');\r\n (formtag?.querySelector(\"button[type='submit']\") as HTMLButtonElement)?.click?.();\r\n }, [value, submitCounter]);\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n props.onChange(field.valueField.name, e?.target?.value, props.isValid, []);\r\n };\r\n\r\n const handlePopupSubmit = (data: string): void => {\r\n props.onChange(field.valueField.name, encodeValue(data), props.isValid, []);\r\n setShowPopup(false);\r\n setValue(data);\r\n setSubmitCounter((value) => value + 1);\r\n };\r\n\r\n return (\r\n \r\n \r\n {errors?.length > 0 && showPopup && field.model.gdprPolicies && (\r\n setShowPopup(false)}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default GdprConsentFieldPopup;\r\n","import React, { FC } from 'react';\r\nimport { TContactSection } from '../../../../../../types/gdprConsentField.types';\r\nimport Icon from '../../../../../../../@shared/icon';\r\nimport { iconSize } from '../../../../../../../../constants/icon.constants';\r\n\r\nconst ContactSection: FC = ({ contactChecboxes, updateData, textContent, data, disabled = false }) => {\r\n if (contactChecboxes.length === 0) return null;\r\n\r\n return (\r\n
    \r\n
    \r\n {contactChecboxes?.map((policy) => {\r\n const isChecked = !!(!disabled && data?.find((item) => item.id === policy.id)?.accepted);\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n {textContent && (\r\n
    \r\n
    {textContent.title}
    \r\n
    {textContent.description}
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default ContactSection;\r\n","import { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../../../../constants/icon.constants';\r\nimport Icon from '../../../../../../../@shared/icon';\r\nimport { TGDPRPopupCheckboxSection } from '../../../../../../types/gdprConsentField.types';\r\n\r\nconst CheckboxSection: FC = ({ policy, updateData, checked }) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CheckboxSection;\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../../../../constants/icon.constants';\r\nimport Icon from '../../../../../../../@shared/icon';\r\nimport { TGDPRPopupRadioSection } from '../../../../../../types/gdprConsentField.types';\r\n\r\nconst RadioButtonIcons = ({ checked }): JSX.Element => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst RadioSection: FC = ({ policy, updateData, accepted }) => {\r\n return (\r\n
    \r\n
    {policy.title}
    \r\n
    \r\n \r\n \r\n
    \r\n
    {policy.description}
    \r\n
    \r\n );\r\n};\r\n\r\nexport default RadioSection;\r\n","import React, { FC, Fragment } from 'react';\r\nimport ContactSection from './contactSection';\r\nimport CheckboxSection from './checkboxSection';\r\nimport RadioSection from './radioSection';\r\nimport { TGDPRInlineProps, TGDPRPolicy } from '../../../../../../types/gdprConsentField.types';\r\nimport './styles.scss';\r\n\r\nconst GdprPolicyConsent: FC = (props) => {\r\n const { gdprPolicies, updateData, data, contactChecboxes, contactConsentDescriptionIndex } = props;\r\n\r\n const isAllRadioDisagreed = !!data.every((item) =>\r\n item.type === 'radio' ? item.accepted === false || item.accepted === undefined : true\r\n );\r\n\r\n return (\r\n
    \r\n {gdprPolicies.policies?.map((policy: TGDPRPolicy, index: number) => (\r\n \r\n {policy.type === 'checkbox' && index !== contactConsentDescriptionIndex && (\r\n item.id === policy.id)?.accepted || false}\r\n />\r\n )}\r\n {policy.type === 'radio' && (\r\n item.id === policy.id)?.accepted} />\r\n )}\r\n \r\n ))}\r\n \r\n
    \r\n\r\n )\r\n}\r\n\r\nexport default GdprPolicyConsent;","import React, { FC, useState, useEffect, useMemo, useRef } from 'react';\r\nimport { TGDPRConsentField, TGDPRPopupModalPolicyFieldState } from '../../../../types/gdprConsentField.types';\r\nimport { windowService } from '../../../../../../utils/window.utils';\r\nimport GdprPolicyConsent from './components/gdprPolicyConsent';\r\n\r\nconst GdprInlineConsent: FC = (props) => {\r\n const { field, errors } = props;\r\n const hasAnyError = !!errors?.length;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const gdprPolicies = field?.model?.gdprPolicies;\r\n const initialValue = JSON.stringify({isFormOverlay: true, validationPassed: false});\r\n const [value, setValue] = useState(initialValue);\r\n const initialPolicies = useRef(\r\n gdprPolicies\r\n ? gdprPolicies.policies?.map((policy) => ({\r\n id: policy.id,\r\n accepted: undefined,\r\n required: policy.required,\r\n type: policy.type,\r\n }))\r\n : undefined\r\n );\r\n\r\n const [data, setData] = useState(initialPolicies.current);\r\n const isAllRadioDisagreed = !!data?.every((item) =>\r\n item.type === 'radio' ? item.accepted === false || item.accepted === undefined : true\r\n );\r\n const contactChecboxes = useMemo(() => (gdprPolicies?.policies.filter((policy) => policy.type === 'checkbox_contacts') || []), [props]);\r\n const contactConsentDescriptionIndex = useMemo(\r\n () =>\r\n contactChecboxes.length\r\n ? gdprPolicies?.policies?.findIndex(\r\n (policy, i) => policy.type === 'checkbox' && gdprPolicies.policies[i + 1]?.type === 'checkbox_contacts'\r\n )\r\n : undefined,\r\n [props]\r\n );\r\n\r\n const encodeValue = (rawValue: string): string => windowService()?.btoa(rawValue);\r\n\r\n useEffect(() => {\r\n if (value == initialValue || !props?.value) {\r\n // resting values after submission\r\n if (!props.value && value != initialValue) {\r\n setData(initialPolicies.current);\r\n setValue(initialValue);\r\n }\r\n props.onChange(field.valueField.name, encodeValue(initialValue), props.isValid, []);\r\n } else {\r\n props.onChange(field.valueField.name, encodeValue(value), props.isValid, []);\r\n }\r\n }, [value, props?.value]);\r\n\r\n const updateData = (id: number, value: boolean) => {\r\n const updatedData = data?.map((item) => {\r\n if (item.id === id) return { ...item, id, accepted: value };\r\n return item;\r\n });\r\n setData(updatedData);\r\n\r\n // check for validation passed or failed\r\n const isAnyRadioButtonNotAccepted = !!updatedData?.find((item) => item.type === 'radio' && item.accepted === undefined);\r\n const isAnyContactChecked = !!updatedData?.find((item) => item.type === 'checkbox_contacts' && item.accepted === true);\r\n const otherFiledsCheckStatus = updatedData?.every((item, ind) => {\r\n if (item.type == 'checkbox_contacts' || ind == contactConsentDescriptionIndex) {\r\n return true;\r\n } else return item.required ? item.accepted : true;\r\n });\r\n const validationPassed = otherFiledsCheckStatus &&\r\n (contactChecboxes?.length == 0 || isAllRadioDisagreed ? true : isAnyContactChecked) &&\r\n !isAnyRadioButtonNotAccepted;\r\n setValue(JSON.stringify({\r\n isFormOverlay: true,\r\n validationPassed,\r\n version: gdprPolicies?.version,\r\n policies: updatedData?.map(({ id, accepted, type }) =>\r\n type === 'checkbox_contacts' && isAllRadioDisagreed ? { id, accepted: false } : { id, accepted: accepted || false }\r\n ),\r\n }))\r\n };\r\n\r\n return (\r\n <>\r\n {(gdprPolicies && data) &&
    \r\n \r\n \r\n
    }\r\n {FieldValidationErrors && }\r\n \r\n )\r\n}\r\n\r\nexport default GdprInlineConsent;\r\n","import React, { useContext, FC } from 'react';\r\nimport { TGDPRConsentField } from '../../types/gdprConsentField.types';\r\nimport GDPRCheckbox from './components/checkbox';\r\nimport GDPRPopup from './components/popup';\r\nimport { GDPR, NO_GDPR } from '../../../../constants/gdpr.constants';\r\nimport { GenericPopUpContext } from '../../../@shared/genericPopUpContextProvider';\r\nimport GdprInlineConsent from './components/gdprInlineConsent';\r\n\r\nconst GdprConsentField: FC = (props) => {\r\n const consentType = props?.field?.model?.stringifiedConsentType;\r\n const context = useContext(GenericPopUpContext);\r\n\r\n if (props.field.model.gdprPolicies && consentType === GDPR) {\r\n if (context?.isGenericPopUp) {\r\n return ;\r\n }\r\n return ;\r\n } else if (consentType === NO_GDPR) {\r\n return ;\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nexport default GdprConsentField;\r\n","export const GDPR = 'gdpr';\r\nexport const NO_GDPR = 'nogdpr';\r\n","import React, { FC, useEffect, useRef, useState } from 'react';\r\nimport { ReCaptchaFieldType } from '../../types/reCaptcha.types';\r\nimport { documentService, windowService } from '../../../../utils/window.utils';\r\n\r\nconst ReCaptchaField: FC = (props) => {\r\n const { field } = props;\r\n const [value, setValue] = useState('');\r\n const inputRef = useRef(null);\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n const placeholder = field?.model?.placeholderText;\r\n\r\n useEffect(() => {\r\n if (!field?.model.disableRecaptcha) {\r\n const addthisScript = documentService().createElement('script');\r\n addthisScript.setAttribute('src', `${field?.model?.endpointUrl}`);\r\n if (documentService().body) documentService().body.appendChild(addthisScript);\r\n }\r\n\r\n return () => {\r\n if (documentService()) {\r\n const reCaptchaScript = documentService()?.querySelector(`[src=\"${field?.model?.endpointUrl}\"]`);\r\n if (reCaptchaScript) {\r\n reCaptchaScript?.remove();\r\n }\r\n\r\n const reCaptchaElement = documentService()?.querySelector('.grecaptcha-badge');\r\n if (reCaptchaElement) {\r\n reCaptchaElement?.remove();\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (windowService().grecaptcha && props.errors.length > 0) {\r\n windowService().grecaptcha.enterprise.ready(async () => {\r\n const token = await windowService().grecaptcha.enterprise.execute(field?.model?.siteKey, {\r\n action: `${field?.model?.expectedAction}`,\r\n });\r\n\r\n const stringifiedToken = windowService()?.btoa(encodeURIComponent(token));\r\n\r\n setValue(stringifiedToken);\r\n props.onChange(field.valueField.name, stringifiedToken, props.isValid, []);\r\n const formtag = inputRef.current?.closest('form');\r\n const hasGDPR = formtag?.querySelector('.sitecore-jss-form__field--gdpr');\r\n if (!hasGDPR) {\r\n (formtag?.querySelector(\"button[type='submit']\") as HTMLButtonElement)?.click?.();\r\n }\r\n });\r\n } \r\n }, [props.errors]);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ReCaptchaField;\r\n","import { createContext } from 'react';\r\n\r\nexport type TDropdownAnalyticsSendData = { lineTitle?: string; seriesTitle?: string; modelsTitle?: string; modelsId?: string };\r\n\r\nexport type TDropdownContextSendData = TDropdownAnalyticsSendData & {\r\n id: number;\r\n line?: string;\r\n series?: string;\r\n models?: string;\r\n};\r\n\r\nexport type TMultipleDropdownContextSendData = {\r\n value: TDropdownContextSendData[];\r\n};\r\n\r\nexport type TContextData = TMultipleDropdownContextSendData & {\r\n updateSendData: (index: number, newSendData: Partial) => any;\r\n isLineHidden?: boolean;\r\n isSeriesHidden?: boolean;\r\n};\r\n\r\nconst MultiDropdownSendData = createContext({\r\n value: [],\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n updateSendData: () => {},\r\n});\r\n\r\nexport { MultiDropdownSendData };\r\n","export const ALL = 'all';\r\nexport const ALL_MODELS = 'allModels';\r\nexport const ALL_SERIES = 'allSeries';\r\nexport const ALL_LINES = 'allLines';\r\n","import React, { FC, useState, useEffect, useRef, ChangeEvent } from 'react';\r\nimport useDidUpdate from '../../../../../../hooks/useDidUpdate.effect';\r\nimport { documentService } from '../../../../../../utils/window.utils.js';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport HiglightedOption from '../../../../../@shared/highlightedOption';\r\nimport DictionaryTerm from '../../../../../@shared/dictionaryTerm';\r\nimport { TProductSelectorDropdown } from '../../../../types/productSelector.types';\r\nimport '../../styles.scss';\r\n\r\nconst ProductSelectorDropdown: FC = ({\r\n dropdownOptions = [],\r\n id,\r\n handleOptionClick,\r\n selectedOptionInd: checkedOptInd = 0,\r\n fields,\r\n label,\r\n isEnabled,\r\n preSelectedOption = '',\r\n isValidationErrors,\r\n}) => {\r\n const { field, tracker } = fields;\r\n\r\n const hasAnyError = !!fields?.errors?.length;\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [hasFocus, setHasFocus] = useState(false);\r\n const [hasTextInputFocus, setHasTextInputFocus] = useState(false);\r\n const [initialTextValue, setInitialTextValue] = useState('');\r\n const [textValue, setTextValue] = useState('');\r\n const [onSearch, setOnSearch] = useState(false);\r\n const dropdownRef: React.MutableRefObject = useRef(null);\r\n const inputRef: React.MutableRefObject = useRef(null);\r\n const dropdownValue = preSelectedOption ? preSelectedOption : dropdownOptions?.[checkedOptInd]?.title || '';\r\n\r\n useEffect(() => {\r\n if (!fields.value && !isValidationErrors) {\r\n setTextValue('');\r\n setInitialTextValue('');\r\n setOnSearch(false);\r\n }\r\n }, [fields.value]);\r\n\r\n const onDropdownFocus = (): void => {\r\n setHasFocus(true);\r\n setHasTextInputFocus(true);\r\n };\r\n\r\n const onTextInputBlur = (): void => {\r\n setHasTextInputFocus(false);\r\n setOnSearch(false);\r\n };\r\n\r\n const onDropdownClik = (): void => {\r\n setIsVisible(!isVisible);\r\n\r\n if (!isVisible) {\r\n inputRef?.current?.focus();\r\n } else {\r\n inputRef?.current?.blur();\r\n }\r\n };\r\n\r\n const onSelectOption = (value, text): void => {\r\n setTextValue(text);\r\n setInitialTextValue(value);\r\n setIsVisible(false);\r\n };\r\n\r\n const onInputUpdate = (e: ChangeEvent): void => {\r\n setTextValue(e?.target?.value);\r\n setOnSearch(true);\r\n };\r\n\r\n const handleClickOutside = (event): void => {\r\n if (dropdownRef?.current?.contains(event?.target)) {\r\n return;\r\n }\r\n\r\n setIsVisible(false);\r\n\r\n if (textValue === '') {\r\n setTextValue('');\r\n } else {\r\n const hasMatch = dropdownOptions.some((opt) => opt.title === textValue);\r\n\r\n if (!hasMatch) {\r\n setTextValue(initialTextValue);\r\n }\r\n }\r\n\r\n setHasFocus(false);\r\n };\r\n\r\n useEffect(() => {\r\n documentService()?.addEventListener('mouseup', handleClickOutside);\r\n return (): void => {\r\n documentService()?.removeEventListener('mouseup', handleClickOutside);\r\n };\r\n }, [initialTextValue, textValue]); // eslint-disable-line\r\n\r\n useDidUpdate(() => {\r\n if (hasFocus) {\r\n tracker?.onFocusField(field, textValue);\r\n } else {\r\n tracker?.onBlurField(field, textValue);\r\n }\r\n }, [hasFocus]);\r\n\r\n return (\r\n <>\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n {isEnabled && (\r\n \r\n )}\r\n \r\n\r\n
    • \r\n
        \r\n <>\r\n {dropdownOptions.map((item, index) => (\r\n {\r\n onSelectOption(item.title || '', item?.title || '');\r\n handleOptionClick?.(index);\r\n }}\r\n key={item.id}\r\n >\r\n \r\n \r\n ))}\r\n \r\n
      \r\n
    • \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ProductSelectorDropdown;\r\n","import React, { FC, useState, useContext, useEffect } from 'react';\r\nimport { ALL_LINES, ALL_MODELS, ALL_SERIES } from '../../../../../../constants/seriesFilter.constants';\r\nimport {\r\n TProductSelectorDropdowns,\r\n TProductSelectorLinesDropdown,\r\n TProductSelectorModelsDropdown,\r\n TProductSelectorSeriesDropdown,\r\n} from '../../../../types/productSelector.types';\r\nimport { MultiDropdownSendData } from '../../dropdownContext';\r\nimport ProductSelectorDropdown from './dropdown';\r\nimport { windowService } from '../../../../../../utils/window.utils';\r\n\r\nconst ProductSelectorDropdowns: FC = ({\r\n id,\r\n fields,\r\n optionsList = [],\r\n isValidationErrors,\r\n defaultSelectedLine,\r\n defaultSelectedSeries,\r\n defaultSelectedModel,\r\n}) => {\r\n const [lineIndex, setLineIndex] = useState(ALL_LINES);\r\n const [seriesIndex, setSeriesIndex] = useState(ALL_SERIES);\r\n const [modelsIndex, setModelsIndex] = useState(ALL_MODELS);\r\n\r\n const { updateSendData, isLineHidden, isSeriesHidden } = useContext(MultiDropdownSendData);\r\n\r\n const setProductIndex = (selectedLine, selectedSeries, selectedModel) => {\r\n const findIndex = (array, callBackFn, fallbackValue) => {\r\n if (!array?.length) return fallbackValue;\r\n const index = array.findIndex(callBackFn);\r\n return index !== -1 ? index : fallbackValue;\r\n };\r\n const newLineSelectedInd: typeof lineIndex = findIndex(optionsList, ({ titleUrl }) => titleUrl === selectedLine, ALL_LINES);\r\n const newSeriesSelectedInd = findIndex(\r\n optionsList[newLineSelectedInd]?.series,\r\n ({ titleUrl }) => titleUrl === selectedSeries,\r\n ALL_SERIES\r\n );\r\n const newModelSelectedInd = findIndex(\r\n optionsList[newLineSelectedInd]?.series?.[newSeriesSelectedInd]?.models,\r\n ({ titleUrl }) => titleUrl === selectedModel,\r\n ALL_MODELS\r\n );\r\n setLineIndex(newLineSelectedInd);\r\n setSeriesIndex(newSeriesSelectedInd);\r\n setModelsIndex(newModelSelectedInd);\r\n updateSendData(id, {\r\n line: optionsList?.[newLineSelectedInd]?.titleUrl,\r\n series: optionsList?.[newLineSelectedInd]?.series?.[newSeriesSelectedInd]?.titleUrl || '',\r\n models: optionsList?.[newLineSelectedInd]?.series?.[newSeriesSelectedInd]?.models?.[newModelSelectedInd]?.titleUrl || '',\r\n lineTitle: optionsList?.[newLineSelectedInd]?.title,\r\n seriesTitle: optionsList?.[newLineSelectedInd]?.series?.[newSeriesSelectedInd]?.title || '',\r\n modelsTitle: optionsList?.[newLineSelectedInd]?.series?.[newSeriesSelectedInd]?.models?.[newModelSelectedInd]?.title || '',\r\n modelsId: optionsList?.[newLineSelectedInd]?.series?.[newSeriesSelectedInd]?.models?.[newModelSelectedInd]?.id || '',\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (optionsList.length > 0 && defaultSelectedLine) {\r\n setProductIndex(defaultSelectedLine, defaultSelectedSeries, defaultSelectedModel);\r\n }\r\n }, [defaultSelectedLine, defaultSelectedSeries, defaultSelectedModel, optionsList]);\r\n\r\n useEffect(() => {\r\n if (!fields.value && !isValidationErrors) {\r\n if (optionsList.length > 0 && defaultSelectedLine) {\r\n setProductIndex(defaultSelectedLine, defaultSelectedSeries, defaultSelectedModel);\r\n } else {\r\n setLineIndex(ALL_LINES);\r\n setSeriesIndex(ALL_SERIES);\r\n setModelsIndex(ALL_MODELS);\r\n }\r\n }\r\n }, [fields.value, defaultSelectedLine, defaultSelectedSeries, defaultSelectedModel, optionsList]);\r\n\r\n useEffect(() => {\r\n if (fields.value && optionsList.length > 0) {\r\n const decodeValue = windowService()?.atob(fields.value)?.split(',');\r\n const findDropdownIndex = decodeValue?.findIndex((item) => item.split('|')?.[0] == id);\r\n if (findDropdownIndex > -1) {\r\n const [, selectedLine, selectedSeries, selectedModel] = decodeValue[findDropdownIndex]?.split('|') || [];\r\n setProductIndex(selectedLine, selectedSeries, selectedModel);\r\n }\r\n }\r\n }, [optionsList]);\r\n\r\n const lineOptions: TProductSelectorLinesDropdown[] = [{ id: ALL_LINES, title: '' }, ...optionsList];\r\n\r\n const seriesOptions: TProductSelectorSeriesDropdown[] =\r\n lineIndex === ALL_LINES\r\n ? []\r\n : [\r\n {\r\n id: ALL_SERIES,\r\n title: '',\r\n },\r\n ...(optionsList?.[lineIndex]?.series || []),\r\n ];\r\n\r\n const modelOptions: TProductSelectorModelsDropdown[] =\r\n seriesIndex === ALL_SERIES\r\n ? []\r\n : [\r\n {\r\n id: ALL_MODELS,\r\n title: '',\r\n },\r\n ...(optionsList?.[lineIndex]?.series?.[seriesIndex]?.models || []),\r\n ];\r\n\r\n const handleLineOptionClick = (newLineSelectedInd) => {\r\n setLineIndex(newLineSelectedInd == 0 ? ALL_LINES : newLineSelectedInd - 1);\r\n setSeriesIndex(ALL_SERIES);\r\n setModelsIndex(ALL_MODELS);\r\n updateSendData(id, {\r\n line: optionsList[newLineSelectedInd == 0 ? ALL_LINES : newLineSelectedInd - 1]?.titleUrl || '',\r\n series: '',\r\n models: '',\r\n lineTitle: optionsList[newLineSelectedInd == 0 ? ALL_LINES : newLineSelectedInd - 1]?.title || '',\r\n seriesTitle: '',\r\n modelsTitle: '',\r\n modelsId: '',\r\n });\r\n };\r\n\r\n const handleSeriesOptionClick = (newSeriesSelectedInd) => {\r\n setSeriesIndex(newSeriesSelectedInd === 0 ? ALL_SERIES : newSeriesSelectedInd - 1);\r\n setModelsIndex(ALL_MODELS);\r\n updateSendData(id, {\r\n series: optionsList?.[lineIndex]?.series?.[newSeriesSelectedInd === 0 ? ALL_SERIES : newSeriesSelectedInd - 1]?.titleUrl,\r\n models: '',\r\n seriesTitle: optionsList?.[lineIndex]?.series?.[newSeriesSelectedInd === 0 ? ALL_SERIES : newSeriesSelectedInd - 1]?.title,\r\n modelsTitle: '',\r\n modelsId: '',\r\n });\r\n };\r\n\r\n const handleModelOptionClick = (newModelSelectedInd) => {\r\n setModelsIndex(newModelSelectedInd === 0 ? ALL_MODELS : newModelSelectedInd - 1);\r\n updateSendData(id, {\r\n models:\r\n optionsList?.[lineIndex]?.series?.[seriesIndex]?.models?.[newModelSelectedInd === 0 ? ALL_MODELS : newModelSelectedInd - 1]\r\n ?.titleUrl,\r\n modelsTitle:\r\n optionsList?.[lineIndex]?.series?.[seriesIndex]?.models?.[newModelSelectedInd === 0 ? ALL_MODELS : newModelSelectedInd - 1]?.title,\r\n modelsId:\r\n optionsList?.[lineIndex]?.series?.[seriesIndex]?.models?.[newModelSelectedInd === 0 ? ALL_MODELS : newModelSelectedInd - 1]?.id,\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {!isLineHidden && (\r\n \r\n )}\r\n\r\n {!isSeriesHidden && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProductSelectorDropdowns;\r\n","import { useContext, useMemo } from 'react';\r\nimport { CustomFormContext } from '../../customFormContextProvider';\r\n\r\nconst mergeProductArrays = (editorialProducts, chProducts) => {\r\n const findMatchingItem = (arr, titleUrl) => {\r\n return arr.find((item) => item.titleUrl === titleUrl);\r\n };\r\n\r\n return editorialProducts.map((productItem) => {\r\n const matchingChProductItem = findMatchingItem(chProducts, productItem.titleUrl);\r\n\r\n // If matching chProduct item is found\r\n if (matchingChProductItem) {\r\n productItem.title = matchingChProductItem.title;\r\n\r\n // If product item series is null, take it from chProduct\r\n if (!productItem.series) {\r\n productItem.series = matchingChProductItem.series;\r\n } else {\r\n // Iterate through series in product item\r\n productItem.series = productItem.series.map((productSeries) => {\r\n const matchingChProductSeries = findMatchingItem(matchingChProductItem.series, productSeries.titleUrl);\r\n\r\n // If matching series in chProduct is found\r\n if (matchingChProductSeries) {\r\n productSeries.title = matchingChProductSeries.title;\r\n\r\n // If product series models is null, take models from chProduct\r\n if (!productSeries.models) {\r\n productSeries.models = matchingChProductSeries.models;\r\n } else {\r\n // Iterate through models in original series\r\n productSeries.models = productSeries.models.map((productModel) => {\r\n const matchingChProductModel = findMatchingItem(matchingChProductSeries.models, productModel.titleUrl);\r\n\r\n // If matching model in chProduct is found\r\n if (matchingChProductModel) {\r\n productModel.title = matchingChProductModel.title;\r\n productModel.id = matchingChProductModel.id;\r\n }\r\n\r\n return productModel;\r\n });\r\n }\r\n }\r\n\r\n return productSeries;\r\n });\r\n }\r\n }\r\n\r\n return productItem;\r\n });\r\n};\r\n\r\nconst useCreateProductSelectorList = (chProductList, editorProductList) => {\r\n const customFormContext = useContext(CustomFormContext);\r\n const isEnablePreSelection = customFormContext?.params?.enablePreselection === '1';\r\n\r\n const productList = useMemo(() => {\r\n if (isEnablePreSelection && editorProductList && editorProductList.length && chProductList?.length) {\r\n return mergeProductArrays(editorProductList, chProductList);\r\n } else {\r\n return chProductList;\r\n }\r\n }, [chProductList, editorProductList]);\r\n return productList;\r\n};\r\n\r\nexport default useCreateProductSelectorList;\r\n","import { useContext, useMemo } from 'react';\r\nimport { TProductSelectorSelectedData } from '../../../types/productSelector.types';\r\nimport { CustomFormContext } from '../../customFormContextProvider';\r\n\r\nconst findPreselectedSeriesAndModels = (productList, isShowHideOtherFields): TProductSelectorSelectedData => {\r\n const line = productList[0];\r\n const series = line?.series?.length === 1 ? line.series[0] : null;\r\n const models = series && series?.models?.length === 1 ? series.models[0] : null;\r\n\r\n const isLineHidden = isShowHideOtherFields && line;\r\n const isSeriesHidden = isShowHideOtherFields && series;\r\n\r\n return {\r\n defaultSelectedLine: line?.titleUrl,\r\n defaultSelectedSeries: series?.titleUrl,\r\n defaultSelectedModel: models?.titleUrl,\r\n isLineHidden,\r\n isSeriesHidden,\r\n };\r\n};\r\n\r\nconst useDefaultSelectedProduct = (editorProductList) => {\r\n const customFormContext = useContext(CustomFormContext);\r\n\r\n const defaultSelectedData = useMemo(() => {\r\n const isEnablePreSelection = customFormContext?.params?.enablePreselection === '1';\r\n const isShowHideOtherFields = customFormContext?.params?.showHideOtherFields === '1';\r\n const isDefaultLine = editorProductList && editorProductList.length === 1;\r\n if (isEnablePreSelection && isDefaultLine) {\r\n const preselectedResult = findPreselectedSeriesAndModels(editorProductList, isShowHideOtherFields);\r\n return preselectedResult;\r\n }\r\n\r\n return null;\r\n }, [editorProductList]);\r\n return defaultSelectedData;\r\n};\r\n\r\nexport default useDefaultSelectedProduct;\r\n","import React, { FC, useState, useContext, useEffect, useMemo, useRef } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport { MultiDropdownSendData, TDropdownContextSendData, TMultipleDropdownContextSendData } from './dropdownContext';\r\nimport ProductSelectorDropdowns from './components/productSelectorDropdowns';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport Icon from '../../../@shared/icon';\r\nimport { APIPrefix } from '../../../../constants/api.constants';\r\nimport { TPreProductSelectorResults, TProductSelector, TProductSelectorSelectedData } from '../../types/productSelector.types';\r\nimport useDidUpdate from '../../../../hooks/useDidUpdate.effect';\r\nimport { windowService } from '../../../../utils/window.utils';\r\nimport useFirstUserAction from '../../hooks/useFirstUserActionState';\r\nimport { CustomFormContext } from '../customFormContextProvider';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\nimport useCreateProductSelectorList from './hooks/useCreateProductSelectorList';\r\nimport useDefaultSelectedProduct from './hooks/useDefaultSelectedProduct';\r\nimport './styles.scss';\r\n\r\nconst defaultSendData = {\r\n value: [\r\n {\r\n id: 0,\r\n line: '',\r\n series: '',\r\n models: '',\r\n },\r\n ],\r\n};\r\n\r\nconst ProductSelector: FC = (props) => {\r\n const { field } = props;\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n const FieldValidationErrors = props?.fieldValidationErrorsComponent;\r\n const isRequired = field?.model?.required;\r\n const [fetchedData, setFetchedData] = useState([]);\r\n const [preSelectedResults, setPreSelectedResults] = useState([]);\r\n const [dropdowns, setDropdowns] = useState([{ id: 0, showDelete: false }]);\r\n const [value, setValue] = useState('');\r\n const countRef = useRef(0);\r\n const [validationErrors, setValidationErrors] = useState(false);\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n const productSectorList = useCreateProductSelectorList(fetchedData, preSelectedResults);\r\n const preSelectedProductData: TProductSelectorSelectedData | null = useDefaultSelectedProduct(preSelectedResults);\r\n const customFormContext = useContext(CustomFormContext);\r\n\r\n const generateUniqueId = () => {\r\n countRef.current += 1;\r\n return countRef.current;\r\n };\r\n\r\n const {sitecoreContext} = useSitecoreContext();\r\n\r\n const isEnabledPreSelection = customFormContext?.params?.enablePreselection === '1';\r\n const defaultSelectedLine =\r\n (!isEnabledPreSelection && sitecoreContext.analytics?.productLine) || preSelectedProductData?.defaultSelectedLine;\r\n const defaultSelectedSeries =\r\n (!isEnabledPreSelection && sitecoreContext.analytics?.productSeries) || preSelectedProductData?.defaultSelectedSeries;\r\n const defaultSelectedModel =\r\n (!isEnabledPreSelection && sitecoreContext.analytics?.productModel) || preSelectedProductData?.defaultSelectedModel;\r\n\r\n const preSelectionId = customFormContext?.params?.preSelection;\r\n\r\n const itemID = sitecoreContext?.route?.itemId;\r\n const siteLanguage = sitecoreContext?.language;\r\n\r\n const fetchData = (): void => {\r\n const getApiURL = `/${APIPrefix}/product/list/${itemID}/${siteLanguage}`;\r\n fetch(getApiURL)\r\n .then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n throw Error(`${res.status} : Failed to fetch data`);\r\n }\r\n })\r\n .then((result) => {\r\n setFetchedData(result?.lines);\r\n })\r\n .catch((error) => {\r\n console.error(`${error} occurred while fetching data`);\r\n });\r\n };\r\n\r\n const fetchProductPreselectedData = (): void => {\r\n const getApiURL = `/${APIPrefix}/productselector/list/${preSelectionId}/${siteLanguage}`;\r\n fetch(getApiURL)\r\n .then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n throw Error(`${res.status} : Failed to fetch product preselected list`);\r\n }\r\n })\r\n .then((result) => {\r\n setPreSelectedResults(result?.lines);\r\n })\r\n .catch((error) => {\r\n console.error(`${error} occurred while fetching data`);\r\n });\r\n };\r\n\r\n const [sendData, setSendData] = useState(() => defaultSendData);\r\n const decodeValue = (rawValue: string): string => windowService()?.atob(rawValue);\r\n\r\n useEffect(() => {\r\n if (!props.value && !validationErrors) {\r\n setDropdowns([{ id: 0, showDelete: false }]);\r\n if (defaultSelectedLine) {\r\n setSendData({\r\n value: [\r\n {\r\n id: 0,\r\n line: defaultSelectedLine,\r\n series: defaultSelectedSeries,\r\n models: defaultSelectedModel,\r\n },\r\n ],\r\n });\r\n } else {\r\n setSendData(defaultSendData);\r\n }\r\n } else if (props.value && !value) {\r\n const decodedValue = decodeValue(props.value);\r\n const itemValues = decodedValue.split(',');\r\n const dropdownValues = itemValues.map((value, index) => {\r\n const [id] = value.split('|');\r\n countRef.current = parseInt(id) || index;\r\n return { id: parseInt(id) || index, showDelete: index !== 0 };\r\n });\r\n const sendData = itemValues.map((value, index) => {\r\n const [id, selectedLine, selectedSeries, selectedModel] = value.split('|') || [];\r\n return {\r\n id: parseInt(id) || index,\r\n line: selectedLine,\r\n series: selectedSeries,\r\n models: selectedModel,\r\n };\r\n });\r\n setSendData({\r\n value: sendData,\r\n });\r\n setDropdowns(dropdownValues);\r\n }\r\n }, [props.value, defaultSelectedLine, defaultSelectedSeries, defaultSelectedModel]);\r\n\r\n useEffect(() => {\r\n fetchData();\r\n if (isEnabledPreSelection) fetchProductPreselectedData();\r\n }, []);\r\n\r\n const updateSendData = (id: number, newSendData: Partial = {}) => {\r\n setSendData((prevState) => ({\r\n ...prevState,\r\n value: prevState.value.map((item) => {\r\n if (item.id === id) {\r\n return { ...item, ...newSendData };\r\n }\r\n return item;\r\n }),\r\n }));\r\n };\r\n\r\n const handleAddButtonClick = () => {\r\n const newId = generateUniqueId();\r\n setDropdowns([...dropdowns, { id: newId, showDelete: true }]);\r\n setSendData((prevState) => ({\r\n ...prevState,\r\n value: [\r\n ...prevState.value,\r\n {\r\n id: newId,\r\n line: '',\r\n series: '',\r\n models: '',\r\n },\r\n ],\r\n }));\r\n };\r\n\r\n const handleDeleteButtonClick = (id) => {\r\n const updatedDropdowns = dropdowns.filter((dropdown) => dropdown.id !== id);\r\n setDropdowns(updatedDropdowns);\r\n const updateSendDataItems = {\r\n value: sendData.value.filter((item) => item.id !== id),\r\n };\r\n setSendData(updateSendDataItems);\r\n };\r\n\r\n const convertObjectToString = (obj) => {\r\n const objKeys = Object.keys(obj);\r\n return objKeys\r\n .filter((key) => {\r\n if (key == 'id' || key == 'line' || key == 'series' || key == 'models') {\r\n return key;\r\n }\r\n })\r\n .map((key) => obj[key])\r\n .join('|');\r\n };\r\n\r\n const sendProductSelection = sendData.value.map((obj) => convertObjectToString(obj)).join(',');\r\n\r\n const encodeValue = (rawValue: string): string => windowService()?.btoa(rawValue);\r\n\r\n useDidUpdate(() => {\r\n const hasEmptyLineValues = sendData.value.some((obj) => obj.line?.trim() === '');\r\n if (isRequired && hasEmptyLineValues) {\r\n setValidationErrors(true);\r\n } else {\r\n setValidationErrors(false);\r\n }\r\n const sendValue = isRequired && hasEmptyLineValues ? '' : encodeValue(sendProductSelection);\r\n\r\n setValue(sendProductSelection);\r\n customFormContext?.setProductSelector(sendData.value);\r\n props.onChange(field?.valueField?.name, sendValue, props?.isValid, []);\r\n triggerFirstInteractionGTMEvent();\r\n }, [sendData]);\r\n\r\n const sendContext = useMemo(\r\n () => ({\r\n ...sendData,\r\n updateSendData,\r\n isLineHidden: preSelectedProductData?.isLineHidden,\r\n isSeriesHidden: preSelectedProductData?.isSeriesHidden,\r\n }),\r\n [sendData]\r\n );\r\n\r\n return (\r\n
    \r\n \r\n {dropdowns.map((dropdown) => (\r\n \r\n \r\n \r\n {dropdown.showDelete && (\r\n handleDeleteButtonClick(dropdown.id)}\r\n />\r\n )}\r\n
    \r\n \r\n ))}\r\n \r\n

    \r\n \r\n

    \r\n \r\n \r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default ProductSelector;\r\n","export const ALL_COUNTRY = 'allCountry';\r\nexport const ALL_STATES = 'allStates';\r\n","import React, { FC, useState, useEffect, useRef, ChangeEvent } from 'react';\r\nimport useDidUpdate from '../../../../../../hooks/useDidUpdate.effect';\r\nimport { documentService } from '../../../../../../utils/window.utils.js';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport HiglightedOption from '../../../../../@shared/highlightedOption';\r\nimport DictionaryTerm from '../../../../../@shared/dictionaryTerm';\r\nimport { TCountryStateFieldDropdown } from '../../../../types/countryStateField.types';\r\nimport '../../styles.scss';\r\n\r\nconst CountryStateDropDown: FC = ({\r\n dropdownOptions = [],\r\n id,\r\n handleOptionClick,\r\n selectedOptionInd,\r\n fields,\r\n label,\r\n isEnable,\r\n isCountryDropDown,\r\n}) => {\r\n const { field, tracker } = fields;\r\n const hasAnyError = !!fields?.errors?.length;\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [hasFocus, setHasFocus] = useState(false);\r\n const [hasTextInputFocus, setHasTextInputFocus] = useState(false);\r\n const [initialTextValue, setInitialTextValue] = useState('');\r\n const [textValue, setTextValue] = useState('');\r\n const [onSearch, setOnSearch] = useState(false);\r\n const dropdownRef: React.MutableRefObject = useRef(null);\r\n const inputRef: React.MutableRefObject = useRef(null);\r\n const filteredItems = dropdownOptions?.filter((item) => {\r\n const itemSelected = isCountryDropDown ? item?.country : item?.state;\r\n return itemSelected?.toLocaleLowerCase().includes(textValue?.toLocaleLowerCase());\r\n });\r\n const visibleDropdownOptions = initialTextValue !== textValue && textValue !== '' ? filteredItems : dropdownOptions;\r\n\r\n useEffect(() => {\r\n if (!fields.value) {\r\n setTextValue('');\r\n setInitialTextValue('');\r\n setOnSearch(false);\r\n }\r\n }, [fields.value]);\r\n\r\n const onDropdownFocus = (): void => {\r\n setHasFocus(true);\r\n setHasTextInputFocus(true);\r\n };\r\n\r\n const onTextInputBlur = (): void => {\r\n setHasTextInputFocus(false);\r\n setOnSearch(false);\r\n };\r\n\r\n const onDropdownClik = (): void => {\r\n setIsVisible(!isVisible);\r\n\r\n if (!isVisible) {\r\n inputRef?.current?.focus();\r\n } else {\r\n inputRef?.current?.blur();\r\n }\r\n };\r\n\r\n const onSelectOption = (value, text): void => {\r\n setTextValue(text);\r\n setInitialTextValue(value);\r\n setIsVisible(false);\r\n };\r\n\r\n const handleDropdownSelectOption = (index: number, itemId?: string) => {\r\n if (visibleDropdownOptions?.length === dropdownOptions.length) {\r\n handleOptionClick(index);\r\n } else {\r\n const findIndex = dropdownOptions?.findIndex((item) => item.id === itemId);\r\n handleOptionClick(findIndex);\r\n }\r\n };\r\n\r\n const onInputUpdate = (e: ChangeEvent): void => {\r\n setTextValue(e?.target?.value);\r\n setOnSearch(true);\r\n };\r\n\r\n const handleClickOutside = (event): void => {\r\n if (dropdownRef?.current?.contains(event?.target)) {\r\n return;\r\n }\r\n\r\n setIsVisible(false);\r\n\r\n if (textValue === '') {\r\n setTextValue('');\r\n } else {\r\n const hasMatch = dropdownOptions.some((opt) => (isCountryDropDown ? opt.country : opt.state) === textValue);\r\n\r\n if (!hasMatch) {\r\n setTextValue(initialTextValue);\r\n }\r\n }\r\n\r\n setHasFocus(false);\r\n };\r\n\r\n useEffect(() => {\r\n documentService()?.addEventListener('mouseup', handleClickOutside);\r\n return (): void => {\r\n documentService()?.removeEventListener('mouseup', handleClickOutside);\r\n };\r\n }, [initialTextValue, textValue]); // eslint-disable-line\r\n\r\n useDidUpdate(() => {\r\n if (hasFocus) {\r\n tracker?.onFocusField(field, textValue);\r\n } else {\r\n tracker?.onBlurField(field, textValue);\r\n }\r\n }, [hasFocus]);\r\n\r\n return (\r\n <>\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    • \r\n
        \r\n <>\r\n {visibleDropdownOptions.map((item, index) => {\r\n const itemSelected = isCountryDropDown ? item?.country : item?.state;\r\n return (\r\n {\r\n onSelectOption(itemSelected || '', itemSelected || '');\r\n handleDropdownSelectOption(index, item?.id);\r\n }}\r\n key={item.id}\r\n >\r\n \r\n \r\n );\r\n })}\r\n \r\n
      \r\n
    • \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default CountryStateDropDown;\r\n","import React, { FC, useState, useEffect } from 'react';\r\nimport { ALL_COUNTRY, ALL_STATES } from '../../../../../../constants/countryStateFilter.constants';\r\nimport {\r\n TCountryStateFieldCountryDropdown,\r\n TCountryStateFieldDropdowns,\r\n TCountryStateFieldStateDropdown,\r\n} from '../../../../types/countryStateField.types';\r\nimport CountryStateDropDown from './dropDown';\r\nimport useFirstUserAction from '../../../../hooks/useFirstUserActionState';\r\n\r\nconst CountryStateDropDowns: FC = ({\r\n fields,\r\n optionsList = [],\r\n defaultCountry,\r\n updateSendData,\r\n useStateCode,\r\n hideStateProvinceDropdown,\r\n}) => {\r\n const [countryIndex, setCountryIndex] = useState(ALL_COUNTRY);\r\n const [stateIndex, setStateIndex] = useState(ALL_STATES);\r\n const triggerFirstInteractionGTMEvent = useFirstUserAction();\r\n const [firstInteractionHappened, setFirstInteractionHappened] = useState(true);\r\n\r\n const setInitialState = () => {\r\n if (optionsList?.length === 1) {\r\n setCountryIndex(0);\r\n setStateIndex(ALL_STATES);\r\n updateSendData({\r\n country: optionsList[0]?.country || '',\r\n state: '',\r\n });\r\n } else if (defaultCountry) {\r\n const defaultCountryIndex = optionsList.findIndex((item) => item.country === defaultCountry);\r\n setCountryIndex(defaultCountryIndex);\r\n setStateIndex(ALL_STATES);\r\n updateSendData({\r\n country: optionsList[defaultCountryIndex]?.country || '',\r\n state: '',\r\n });\r\n } else {\r\n setCountryIndex(ALL_COUNTRY);\r\n setStateIndex(ALL_STATES);\r\n updateSendData({\r\n country: '',\r\n state: '',\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!fields.value) {\r\n setInitialState();\r\n } else if (fields.value && countryIndex == ALL_COUNTRY) {\r\n const [country, state] = fields.value.split('|');\r\n const selectedCountryIndex = optionsList.findIndex((item) => item.country === country);\r\n const stateOptions = [...(optionsList?.[selectedCountryIndex]?.states || [])];\r\n const selectedStateIndex = stateOptions.findIndex((item) => (useStateCode ? item.stateCode : item.state) === state);\r\n setCountryIndex(selectedCountryIndex);\r\n setStateIndex(selectedStateIndex);\r\n const stateArr = stateOptions[selectedStateIndex];\r\n updateSendData({\r\n country: optionsList[selectedCountryIndex]?.country || '',\r\n state: useStateCode ? stateArr?.stateCode : stateArr?.state,\r\n });\r\n }\r\n }, [fields.value]);\r\n\r\n const countryOptions: TCountryStateFieldCountryDropdown[] = [...optionsList];\r\n\r\n const stateOptions: TCountryStateFieldStateDropdown[] =\r\n countryIndex === ALL_COUNTRY ? [] : [...(optionsList?.[countryIndex]?.states || [])];\r\n\r\n useEffect(() => {\r\n if (!fields.value) {\r\n setInitialState();\r\n }\r\n }, [optionsList, defaultCountry]);\r\n\r\n const handleCountryOptionClick = (newCountrySelectedInd) => {\r\n setCountryIndex(newCountrySelectedInd);\r\n setStateIndex(ALL_STATES);\r\n updateSendData({\r\n country: optionsList[newCountrySelectedInd]?.country || '',\r\n state: '',\r\n });\r\n if (firstInteractionHappened) {\r\n triggerFirstInteractionGTMEvent();\r\n setFirstInteractionHappened(false);\r\n }\r\n };\r\n\r\n const handleStateOptionClick = (newStateSelectedInd) => {\r\n setStateIndex(newStateSelectedInd);\r\n const stateArr = optionsList?.[countryIndex]?.states?.[newStateSelectedInd];\r\n updateSendData({\r\n state: useStateCode ? stateArr?.stateCode : stateArr?.state,\r\n });\r\n if (firstInteractionHappened) {\r\n triggerFirstInteractionGTMEvent();\r\n setFirstInteractionHappened(false);\r\n }\r\n };\r\n return (\r\n <>\r\n {optionsList?.length > 1 && (\r\n \r\n )}\r\n\r\n {!hideStateProvinceDropdown && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CountryStateDropDowns;\r\n","import { useContext } from 'react';\r\nimport { CustomFormContext } from '../../components/customFormContextProvider';\r\n\r\nconst useDidCountryUpdate = () => {\r\n const customFormContext = useContext(CustomFormContext);\r\n let [selectedCountry, setSelectedCountry] = customFormContext?.selectedCountry ?? [];\r\n const setValues = (value) => {\r\n if (value && setSelectedCountry) {\r\n setSelectedCountry(value);\r\n }\r\n };\r\n return setValues;\r\n};\r\n\r\nexport default useDidCountryUpdate;\r\n","import React, { FC, useState, useEffect, useCallback, memo } from 'react';\r\nimport useDidUpdate from '../../../../hooks/useDidUpdate.effect';\r\nimport {\r\n TCountryDropdownContextSendData,\r\n TCountryStateDropDownField,\r\n TCountryStateField,\r\n TDropdownContextSendData,\r\n} from '../../types/countryStateField.types';\r\nimport { APIPrefix } from '../../../../constants/api.constants';\r\nimport CountryStateDropdowns from './components/countryStateDropDowns';\r\nimport useDidCountryUpdate from '../../hooks/useDidCountryUpdate';\r\nimport './styles.scss';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\n\r\nconst convertObjectToString = (obj) => {\r\n const objKeys = Object.keys(obj);\r\n if (objKeys.length === 0) {\r\n return '';\r\n }\r\n return objKeys?.map((key) => obj[key]).join('|');\r\n};\r\n\r\nconst defaultSendData = {\r\n value: [\r\n {\r\n country: '',\r\n state: '',\r\n },\r\n ],\r\n};\r\n\r\nconst CountryStateField: FC = (props) => {\r\n const { field } = props;\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n const FieldValidationErrors = props?.fieldValidationErrorsComponent;\r\n const [fetchedData, setFetchedData] = useState([]);\r\n const [defaultCountry, setDefaultCountry] = useState('');\r\n const [useStateCode, setUseStateCode] = useState(false);\r\n const {sitecoreContext} = useSitecoreContext();\r\n const itemID = sitecoreContext?.route?.itemId;\r\n const siteLanguage = sitecoreContext?.language;\r\n const [value, setValue] = useState('');\r\n const setCountry = useDidCountryUpdate();\r\n\r\n const fetchData = useCallback(async () => {\r\n const getApiURL = `/${APIPrefix}/countrystate/list/${itemID}/${siteLanguage}`;\r\n try {\r\n const res = await fetch(getApiURL);\r\n if (!res.ok) {\r\n throw Error(`${res.status} : Failed to fetch data`);\r\n }\r\n const result = await res.json();\r\n setFetchedData(result?.countries);\r\n setDefaultCountry(result?.defaultCountry);\r\n setUseStateCode(result?.useStateCode);\r\n } catch (error) {\r\n console.error(`${error} occurred while fetching data`);\r\n }\r\n }, []);\r\n\r\n const [sendData, setSendData] = useState(() => defaultSendData);\r\n\r\n useEffect(() => {\r\n itemID && fetchData();\r\n }, [fetchData]);\r\n\r\n const updateSendData = (newSendData: Partial = {}) => {\r\n setSendData((prevState) => ({\r\n ...prevState,\r\n value: prevState.value.map((item) => ({ ...item, ...newSendData })),\r\n }));\r\n };\r\n\r\n let sendCountryStateValue = sendData?.value.map((obj) => convertObjectToString(obj)).join(',');\r\n const isEmptyState = fetchedData?.find((item) => item?.country === sendData?.value?.[0]?.country)?.states?.length === 0;\r\n\r\n if (sendCountryStateValue.endsWith('|') && (isEmptyState || field?.model?.hideStateProvinceDropdown)) {\r\n sendCountryStateValue = sendCountryStateValue.split('|')?.[0].trim();\r\n }\r\n \r\n const getSelectedCountry = (country) => {\r\n const matchCountry = fetchedData?.find((item) => item?.country === country);\r\n setCountry(matchCountry?.countryisocode)\r\n };\r\n\r\n useDidUpdate(() => {\r\n const hasEmptyCountryValues = sendData.value.some((obj) => obj.country?.trim() === '');\r\n const sendValue = hasEmptyCountryValues ? '' : sendCountryStateValue;\r\n\r\n setValue(sendValue);\r\n props.onChange(field.valueField.name, sendValue, props.isValid, []);\r\n getSelectedCountry(sendCountryStateValue.split('|')?.[0].trim());\r\n }, [sendData]);\r\n\r\n if (!fetchedData?.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n \r\n
    \r\n\r\n {FieldValidationErrors && }\r\n
    \r\n );\r\n};\r\n\r\nexport default memo(CountryStateField);\r\n","import React, { FC } from 'react';\r\nimport { TItemListProps } from '../../../../../types/dealerLocator.types';\r\nimport HiglightedOption from '../../../../../../@shared/highlightedOption';\r\n\r\nexport const ItemList: FC = (props: TItemListProps) => {\r\n return (\r\n
      \r\n {props?.items?.map((item, i) => (\r\n props.mouseEnterHandler(i)}\r\n onClick={() => props.clickHandler(item)} // eslint-disable-line\r\n key={props.keyGenerator(item)}\r\n >\r\n \r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default ItemList;\r\n\r\n\r\n","import React, { FC, useState, useRef, useEffect } from 'react';\r\nimport { iconSize } from '../../../../../../../constants/icon.constants';\r\nimport Icon from '../../../../../../@shared/icon';\r\nimport { documentService } from '../../../../../../../utils/window.utils';\r\nimport { TCountry } from '../../../../../types/dealerLocator.types';\r\nimport ItemList from './itemList';\r\n\r\nenum arrowIcons {\r\n up = 'arrow-chevron-up',\r\n down = 'arrow-chevron-down',\r\n}\r\n\r\nconst Dropdown: FC<{\r\n items: Array;\r\n label?: string;\r\n onSelect: React.Dispatch>>;\r\n country?: TCountry;\r\n}> = ({ items, label, onSelect, country }) => {\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n const [searchText, setSearchText] = useState(country?.Country ?? '');\r\n const [searchTextChanged, setSearchTextChanged] = useState(false);\r\n const [highligtedItemIndex, setHighligtedItemIndex] = useState(null);\r\n const [dropdownHover, setDropdownHover] = useState(false);\r\n const searchInputElmRef = useRef(null);\r\n const dropdownElmRef = useRef(null);\r\n const filteredItems = items?.filter((item) => {\r\n return item?.Country?.toLocaleLowerCase().includes(searchText?.toLocaleLowerCase());\r\n });\r\n\r\n const arrowIcon = dropdownOpen ? arrowIcons.up : arrowIcons.down;\r\n\r\n const visibleItems = searchTextChanged && searchText !== '' ? filteredItems : items;\r\n\r\n const closeDropdown = () => {\r\n setDropdownOpen(false);\r\n setSearchTextChanged(false);\r\n setHighligtedItemIndex(null);\r\n };\r\n\r\n const handleListItemSelection = (item: TCountry) => {\r\n setSearchText(item?.Country ?? '');\r\n onSelect(item);\r\n closeDropdown();\r\n };\r\n\r\n const handleInputClick = () => {\r\n setDropdownOpen(!dropdownOpen);\r\n };\r\n\r\n const handleInputChange = (e: React.ChangeEvent) => {\r\n setSearchText(e?.target?.value);\r\n setSearchTextChanged(true);\r\n\r\n if (!dropdownHover) {\r\n setHighligtedItemIndex(null);\r\n }\r\n };\r\n\r\n const keyDownHandler = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && visibleItems.length > 0) {\r\n if (searchText !== '' && highligtedItemIndex === null) {\r\n handleListItemSelection(visibleItems[0]);\r\n } else if (Number.isInteger(highligtedItemIndex)) {\r\n handleListItemSelection(visibleItems[highligtedItemIndex as number]);\r\n }\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n const index = highligtedItemIndex !== null && highligtedItemIndex < visibleItems.length - 1 ? highligtedItemIndex + 1 : 0;\r\n setHighligtedItemIndex(index);\r\n }\r\n\r\n if (e.key === 'ArrowUp') {\r\n e.preventDefault();\r\n const index = highligtedItemIndex !== null && highligtedItemIndex > 0 ? highligtedItemIndex - 1 : visibleItems.length - 1;\r\n setHighligtedItemIndex(index);\r\n }\r\n };\r\n\r\n const handleClickOutside = (e) => {\r\n if (dropdownElmRef?.current?.contains(e?.target)) {\r\n return;\r\n }\r\n\r\n closeDropdown();\r\n };\r\n\r\n const getOptionText: (item: TCountry | null) => string = (item) => {\r\n if (!item) {\r\n return '';\r\n }\r\n\r\n return item?.Country ?? '';\r\n };\r\n\r\n const getOptionKey: (item: TCountry) => string = (item) => {\r\n return item?.Country ?? '';\r\n };\r\n\r\n useEffect(() => {\r\n if (dropdownOpen) {\r\n searchInputElmRef.current?.focus();\r\n }\r\n }, [dropdownOpen]);\r\n\r\n useEffect(() => {\r\n setSearchText('');\r\n setSearchTextChanged(false);\r\n }, [items]);\r\n\r\n useEffect(() => {\r\n const doc = documentService() as Document;\r\n\r\n if (dropdownOpen) {\r\n doc.addEventListener('click', handleClickOutside, false);\r\n }\r\n\r\n return (): void => {\r\n doc.removeEventListener('click', handleClickOutside, false);\r\n };\r\n }, [documentService, dropdownOpen]);\r\n\r\n return (\r\n
    \r\n {\r\n handleInputClick()} // eslint-disable-line\r\n >\r\n \r\n {label}\r\n \r\n {dropdownOpen ? (\r\n \r\n ) : (\r\n {getOptionText(country ?? null)}\r\n )}\r\n \r\n
    \r\n }\r\n {dropdownOpen && (\r\n
    \r\n {\r\n setHighligtedItemIndex(index);\r\n setDropdownHover(true);\r\n }}\r\n clickHandler={handleListItemSelection}\r\n optionTextHandler={getOptionText}\r\n keyGenerator={getOptionKey}\r\n />\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Dropdown;\r\n","import {useRef, useState, useEffect,} from 'react';\r\nimport { TSuggestions, TUseSuggestionsParams } from '../../../../../../../types/dealerLocator.types';\r\n\r\nconst DEBOUNCE_DELAY = 500;\r\nconst MIN_SEARCH_TERM_LENGTH = 3;\r\n\r\nconst useSuggestions = (query: string, inputText: string, autocompleteService: google.maps.places.AutocompleteService, {countryIsoCode = '', resultsLimit}: TUseSuggestionsParams): [TSuggestions] => {\r\n const [suggestions, setSuggestions] = useState(null);\r\n const controllerRef = useRef();\r\n const timerRef = useRef>();\r\n \r\n const debounceFn = (callback) => {\r\n clearTimeout(timerRef.current);\r\n timerRef.current = setTimeout(callback, DEBOUNCE_DELAY);\r\n } \r\n\r\n const getComponentsParam = (): {country: Array} | undefined => {\r\n if(!countryIsoCode){\r\n return;\r\n }\r\n \r\n return {\r\n country:Array.isArray(countryIsoCode) ? countryIsoCode : [countryIsoCode]\r\n };\r\n }\r\n\r\n const fetchPlacesFromGoogle = () => {\r\n const req = {\r\n input: query,\r\n types: ['geocode'],\r\n componentRestrictions: getComponentsParam(),\r\n } \r\n\r\n return new Promise((resolve, reject) => {\r\n autocompleteService.getPlacePredictions(req, (results, status) => {\r\n if (status === google.maps.places.PlacesServiceStatus.OK){\r\n resolve(results);\r\n }else{\r\n reject('Failed to fetch place detail from Google Places API'); // eslint-disable-line\r\n }\r\n })\r\n });\r\n }\r\n \r\n const fetchSuggestions = (): void => { \r\n if (controllerRef.current) {\r\n controllerRef.current.abort();\r\n }\r\n\r\n const controller = new AbortController(); \r\n controllerRef.current = controller;\r\n\r\n if(query?.length < MIN_SEARCH_TERM_LENGTH){\r\n setSuggestions(null);\r\n return;\r\n } \r\n\r\n Promise.allSettled([fetchPlacesFromGoogle()])\r\n .then((promiseResults) => {\r\n const [googlePlacesResuls] = promiseResults;\r\n const data: TSuggestions = {googlePlacesPredictions: []};\r\n let predictionsResults: google.maps.places.AutocompletePrediction[] = [];\r\n\r\n if(googlePlacesResuls?.status === 'fulfilled'){\r\n predictionsResults = googlePlacesResuls?.value || [];\r\n }\r\n\r\n\r\n data['googlePlacesPredictions'] = predictionsResults?.slice(0, resultsLimit) || [];\r\n\r\n setSuggestions(data)\r\n });\r\n }\r\n \r\n useEffect(() => {\r\n try{\r\n if(inputText !== query){\r\n setSuggestions(null);\r\n return;\r\n }\r\n\r\n debounceFn(() => fetchSuggestions());\r\n }catch(e) {\r\n setSuggestions(null);\r\n }\r\n \r\n }, [query, inputText])\r\n \r\n return [suggestions];\r\n}\r\n\r\nexport default useSuggestions;","import React, { useRef, useState, useEffect, FC, useCallback } from 'react';\r\nimport { documentService } from '../../../../../../../../utils/window.utils';\r\nimport useSuggestions from './hooks/useSuggestions.effect';\r\nimport { TTextSearchProps } from '../../../../../../types/dealerLocator.types';\r\nimport googleLogo from '../../../../../../../../assets/powered-by-google-on-white.png';\r\nimport ItemList from '../itemList';\r\n\r\nconst RESULTS_LENGTH_LIMIT = 8;\r\n\r\nexport const TextSearch: FC = ({\r\n countryIsoCode,\r\n label,\r\n onGooglePlaceSelect,\r\n autocompleteService,\r\n placesService,\r\n siteLanguage,\r\n searchInputValue,\r\n setSearchInputValue,\r\n onClick,\r\n updatedSelectedPlaceId,\r\n prevSelectedResult,\r\n}) => {\r\n const [searchText, setSearchText] = useState('');\r\n const [usersInput, setUsersInput] = useState(false);\r\n const suggestionSettings = {\r\n language: siteLanguage,\r\n countryIsoCode: countryIsoCode || '',\r\n resultsLimit: RESULTS_LENGTH_LIMIT,\r\n };\r\n const [suggestions] = useSuggestions(searchText, searchInputValue, autocompleteService, suggestionSettings);\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n const [higlightedSuggestionIndex, setHiglightedSuggestionIndex] = useState(null);\r\n const [selectedResult, setSelectedResult] = useState(null);\r\n const textSearchElmRef = useRef(null);\r\n const texInputElmRef = useRef(null);\r\n const [selectedPlaceId, setSelectedPlaceId] = useState('');\r\n\r\n const fetchPlaceDetail = useCallback((placeId: string) => {\r\n if (!placeId) {\r\n return;\r\n }\r\n\r\n const placeRequest = {\r\n placeId: placeId,\r\n fields: ['geometry'],\r\n };\r\n\r\n return new Promise((resolve, reject) => {\r\n placesService.getDetails(placeRequest, (result, status) => {\r\n if (status === google.maps.places.PlacesServiceStatus.OK) {\r\n resolve(result);\r\n } else {\r\n // eslint-disable-next-line\r\n reject('Failed to fetch place detail from Google Places API');\r\n }\r\n });\r\n });\r\n }, []);\r\n\r\n const closeDropdown = (): void => {\r\n setDropdownOpen(false);\r\n };\r\n\r\n const getDisplayNameFromResult = (result: any): string => {\r\n return result?.description || '';\r\n };\r\n\r\n const textChangeHandler = (e: React.ChangeEvent): void => {\r\n const newSearchText = e.target?.value || '';\r\n setUsersInput(true);\r\n setSearchInputValue(newSearchText);\r\n };\r\n\r\n const inputClickHandler = (): void => {\r\n setDropdownOpen(true);\r\n texInputElmRef?.current?.focus();\r\n };\r\n\r\n const handleSuggestionMouseEnter = (index: number): void => {\r\n setHiglightedSuggestionIndex(index);\r\n };\r\n\r\n const handleSuggestionSelect = (result: any): void => {\r\n setSelectedPlaceId(result?.place_id);\r\n setSelectedResult(result);\r\n setUsersInput(false);\r\n updatedSelectedPlaceId(result?.place_id);\r\n texInputElmRef?.current?.blur();\r\n };\r\n\r\n const handleClickOutside = (e) => {\r\n if (textSearchElmRef?.current?.contains(e?.target)) {\r\n return;\r\n }\r\n\r\n setUsersInput(false);\r\n closeDropdown();\r\n };\r\n\r\n const textInputFocusHandler = () => {\r\n setDropdownOpen(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (usersInput) {\r\n setSearchText(searchInputValue);\r\n setHiglightedSuggestionIndex(null);\r\n }\r\n }, [searchInputValue, usersInput]);\r\n\r\n useEffect(() => {\r\n const text = getDisplayNameFromResult(selectedResult);\r\n\r\n if (text) {\r\n setSearchInputValue(text);\r\n }\r\n }, [dropdownOpen, selectedResult]);\r\n\r\n useEffect(() => {\r\n const doc = documentService() as Document;\r\n\r\n if (dropdownOpen) {\r\n doc.addEventListener('click', handleClickOutside, false);\r\n }\r\n\r\n return (): void => {\r\n doc.removeEventListener('click', handleClickOutside, false);\r\n };\r\n }, [dropdownOpen]);\r\n\r\n useEffect(() => {\r\n if (selectedResult) {\r\n setUsersInput(false);\r\n closeDropdown();\r\n fetchPlaceDetail(selectedResult.place_id)\r\n ?.then((result) => {\r\n onGooglePlaceSelect(result);\r\n })\r\n .catch((error) => {\r\n console.error(error, 'Error while fetching Place Detail');\r\n });\r\n }\r\n }, [selectedResult, fetchPlaceDetail]);\r\n\r\n useEffect(() => {\r\n setUsersInput(false);\r\n setSelectedResult(null);\r\n setSelectedPlaceId('');\r\n }, [countryIsoCode]);\r\n\r\n useEffect(() => {\r\n if (searchInputValue === searchText) {\r\n return;\r\n }\r\n\r\n setSearchInputValue(searchText);\r\n }, [searchText]);\r\n\r\n useEffect(() => {\r\n if (selectedPlaceId && selectedPlaceId !== selectedResult?.place_id) {\r\n setSelectedResult({ place_id: selectedPlaceId, description: searchInputValue ?? '' });\r\n }\r\n }, [selectedPlaceId, selectedResult]);\r\n\r\n useEffect(() => {\r\n if (prevSelectedResult?.place_id && searchInputValue && !selectedResult) {\r\n setSelectedResult(prevSelectedResult);\r\n }\r\n }, [prevSelectedResult]);\r\n\r\n const handleEnter = () => {\r\n if (!suggestions) {\r\n return;\r\n }\r\n if (higlightedSuggestionIndex === null) {\r\n if (suggestions?.googlePlacesPredictions?.length > 0) {\r\n handleSuggestionSelect(suggestions?.googlePlacesPredictions[0]);\r\n }\r\n } else {\r\n const predictionsCount = suggestions?.googlePlacesPredictions?.length || 0;\r\n\r\n if (higlightedSuggestionIndex <= predictionsCount - 1) {\r\n handleSuggestionSelect(suggestions?.googlePlacesPredictions[higlightedSuggestionIndex]);\r\n }\r\n }\r\n };\r\n\r\n const handleArrowUp = (e: React.KeyboardEvent): void => {\r\n if (!suggestions) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n const resultsLength = suggestions?.googlePlacesPredictions.length;\r\n const index = higlightedSuggestionIndex !== null && higlightedSuggestionIndex > 0 ? higlightedSuggestionIndex - 1 : resultsLength - 1;\r\n setHiglightedSuggestionIndex(index);\r\n };\r\n\r\n const handleArrowDown = (e: React.KeyboardEvent): void => {\r\n if (!suggestions) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n const resultsLength = suggestions?.googlePlacesPredictions.length;\r\n const index = higlightedSuggestionIndex !== null && higlightedSuggestionIndex < resultsLength - 1 ? higlightedSuggestionIndex + 1 : 0;\r\n setHiglightedSuggestionIndex(index);\r\n };\r\n\r\n const keyDownHandler = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n handleEnter();\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n handleArrowDown(e);\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowUp') {\r\n handleArrowUp(e);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n\r\n {dropdownOpen && suggestions && (\r\n
    \r\n {\r\n handleSuggestionMouseEnter(index);\r\n }}\r\n clickHandler={(result: any) => {\r\n handleSuggestionSelect(result);\r\n }}\r\n optionTextHandler={getDisplayNameFromResult}\r\n keyGenerator={getDisplayNameFromResult}\r\n />\r\n \"powered\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TextSearch;\r\n","import { TDealershipSuggestion } from '../../types/dealerLocator.types';\r\n\r\nexport const fetchDealersByGeoCode = ({ lat, lng, pageId, language, countryIsoCode }, controllerRef) => {\r\n if (controllerRef.current) {\r\n controllerRef.current.abort();\r\n }\r\n\r\n const controller = new AbortController();\r\n controllerRef.current = controller;\r\n\r\n const queryUrlParams = new URLSearchParams({\r\n latitude: lat,\r\n longitude: lng,\r\n pageId: pageId,\r\n language: language,\r\n country: countryIsoCode,\r\n });\r\n const dealerFormGeoCodeApi = '/apirequest/formdealerlocator/get-dealer-by-geo-code';\r\n const queyrUrl = `${dealerFormGeoCodeApi}?${queryUrlParams}`;\r\n\r\n return fetch(queyrUrl, { signal: controllerRef.current?.signal }).then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n console.error(`${res.status} : Failed to fetch dealers from DL API.`);\r\n }\r\n });\r\n};\r\n\r\nexport const sortDealersByDistance = (dealers: TDealershipSuggestion[]): TDealershipSuggestion[] => {\r\n return dealers.sort((a, b) => Number.parseFloat(a?.distance ?? '') - Number.parseFloat(b?.distance ?? ''));\r\n};\r\n","import React, { FC, useRef } from 'react';\r\nimport Dropdown from './components/dropdown';\r\nimport TextSearch from './components/textSearch';\r\nimport { TDealerLocatorSearchProps } from '../../../../types/dealerLocator.types';\r\nimport { fetchDealersByGeoCode } from '../../dealerLocator.utils';\r\nimport { useTranslation } from 'react-i18next';\r\nimport './styles.scss';\r\nimport useSitecoreContext from '../../../../../../hooks/useSitecoreContext';\r\n\r\nconst DealerLocatorSearch: FC = ({\r\n onDealerResults,\r\n country,\r\n countries,\r\n setCountry,\r\n autocompleteService,\r\n placesService,\r\n searchInputValue,\r\n setSearchInputValue,\r\n onTextInputClick,\r\n updatedSelectedPlaceId,\r\n prevSelectedResult,\r\n}) => {\r\n const { t } = useTranslation();\r\n const {sitecoreContext} = useSitecoreContext();\r\n const itemID = sitecoreContext?.route?.itemId;\r\n const siteLanguage = sitecoreContext?.language || '';\r\n const controllerRef = useRef();\r\n const countryIsoCodeWithFallback = country?.IsoCode;\r\n\r\n const onGooglePlaceSelect = (place: any) => {\r\n const lat = place.geometry?.location?.lat() || '';\r\n const lng = place.geometry?.location?.lng() || '';\r\n\r\n if (lat && lng) {\r\n const apiCallParams = {\r\n lat: lat,\r\n lng: lng,\r\n pageId: itemID,\r\n language: siteLanguage,\r\n countryIsoCode: countryIsoCodeWithFallback,\r\n };\r\n\r\n fetchDealersByGeoCode(apiCallParams, controllerRef)\r\n .then((data) => {\r\n const dealershipResults = data?.dealershipResults;\r\n onDealerResults({\r\n results: dealershipResults || [],\r\n });\r\n })\r\n .catch((error) => {\r\n onDealerResults({\r\n results: [],\r\n });\r\n console.error(error, 'Error while fetching Dealers');\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default DealerLocatorSearch;\r\n","import React, { FC, useEffect, useState } from 'react';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport { TCardProps } from '../../../../types/dealerLocator.types';\r\n\r\nconst radioButtondefault = 'action-radio-default';\r\nconst radioButtonChecked = 'action-radio-checked';\r\n\r\nconst Card: FC = (props: TCardProps) => {\r\n const [iconName, updateIconName] = useState(radioButtondefault);\r\n const {\r\n dealerNumber,\r\n dealerName,\r\n selectedDealerNumber,\r\n updateSelectedDealerNumberAndName,\r\n shippingAddress,\r\n shippingCity,\r\n shippingZip,\r\n shippingPhone,\r\n isLarge,\r\n distanceUnit,\r\n shippingStateProv,\r\n } = props;\r\n const distance = Number.parseFloat(props?.distance ?? '');\r\n const distanceText = !Number.isNaN(distance) ? `${(Math.round(distance * 100) / 100).toFixed(2)} ${distanceUnit}` : '';\r\n\r\n useEffect(() => {\r\n if (selectedDealerNumber === dealerNumber) {\r\n updateIconName(radioButtonChecked);\r\n } else {\r\n updateIconName(radioButtondefault);\r\n }\r\n }, [selectedDealerNumber]);\r\n\r\n return (\r\n // eslint-disable-next-line\r\n updateSelectedDealerNumberAndName && updateSelectedDealerNumberAndName(dealerNumber, dealerName)}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n

    {dealerName}

    \r\n \r\n

    {distanceText}

    \r\n

    {shippingAddress}

    \r\n

    \r\n {shippingCity}, {shippingStateProv || ''} {shippingZip}\r\n

    \r\n

    {shippingPhone}

    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Card;\r\n","import React, { FC, useContext, useEffect, useRef, useState } from 'react';\r\nimport { CustomFormContext } from '../../../customFormContextProvider';\r\nimport Slider from 'react-slick';\r\nimport DictionaryTerm from '../../../../../@shared/dictionaryTerm';\r\nimport Card from './card';\r\nimport { TCardCarouselProps, TCardProps } from '../../../../types/dealerLocator.types';\r\nimport useMediaQuery from '../../../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../../../constants/breakpoints.constants';\r\nimport CarouselArrow from '../../../../../@shared/carouselArrow';\r\nimport CustomCarouselDots from '../../../../../@shared/customCarouselDots';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport { debounceHandler } from '../../../../../../utils/debounceHandler.utils';\r\nimport './styles.scss';\r\n\r\nconst CardCarousel: FC = (props: TCardCarouselProps) => {\r\n const { cards, distanceUnit } = props;\r\n const cardsLength = cards.length;\r\n const cardWidthRef = useRef(null);\r\n const timmerRef = useRef>();\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['tbl-p']})`, true);\r\n const [activeCard, updateActiveCardNumber] = useState(1); // eslint-disable-line\r\n const [shouldShowMask, setShouldShowMask] = useState(false);\r\n const [showLeftMask, setShowLeftMask] = useState(false);\r\n const [showRightMask, setShowRightMask] = useState(false);\r\n const [selectedDealerNumber, setSelectedDealerNumber] = useState(props?.value || '');\r\n const customFormContext = useContext(CustomFormContext);\r\n\r\n const checkContainerWidthForMask = (containerWidth: number) => {\r\n const _DESKTOP_CARD_WIDTH = cardsLength < 3 ? 657 : 392;\r\n const _MOBILE_CARD_WIDTH = 300;\r\n const _cardContainerWidth = Math.min(containerWidth || 1680);\r\n const _cardWidth = isDesktop ? _DESKTOP_CARD_WIDTH : _MOBILE_CARD_WIDTH;\r\n const totalWidth = _cardWidth * cardsLength;\r\n setShouldShowMask(totalWidth > _cardContainerWidth);\r\n };\r\n\r\n useEffect(() => {\r\n checkContainerWidthForMask(cardWidthRef?.current?.clientWidth ?? 0);\r\n const observer = new ResizeObserver((entries) => {\r\n debounceHandler(() => checkContainerWidthForMask(entries[0].contentRect.width), timmerRef, 100);\r\n });\r\n if (cardWidthRef?.current) {\r\n observer.observe(cardWidthRef.current as any);\r\n }\r\n return () => {\r\n cardWidthRef.current && observer.unobserve(cardWidthRef.current);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n setShowRightMask(shouldShowMask && activeCard !== cardsLength);\r\n setShowLeftMask(shouldShowMask && activeCard !== 1);\r\n }, [activeCard, shouldShowMask]);\r\n\r\n const updateSelectedDealerNumberAndName = (dealerNumber: string, dealerName: string) => {\r\n setSelectedDealerNumber(dealerNumber);\r\n customFormContext?.setSelectedDealerName?.(dealerName);\r\n props.updateSelectedDealerNumber(dealerNumber);\r\n };\r\n\r\n const cardsMapper = (items: TCardProps[]): JSX.Element[] => {\r\n const isLarge = items.length < 3;\r\n const cardsArray = items.map((item) => (\r\n \r\n ));\r\n\r\n return cardsArray;\r\n };\r\n\r\n const settings = {\r\n arrows: true,\r\n infinite: false,\r\n variableWidth: true,\r\n slidesToScroll: 1,\r\n slidesToShow: 1,\r\n dots: true,\r\n nextArrow: (\r\n \r\n ) as any,\r\n prevArrow: (\r\n \r\n ) as any,\r\n dotsClass: 'preferred-dealer-card__dots',\r\n afterChange: (newIndex: number) => {\r\n updateActiveCardNumber(newIndex + 1);\r\n },\r\n appendDots: () => , // eslint-disable-line\r\n };\r\n\r\n if (cardsLength === 0) {\r\n return (\r\n
    \r\n \r\n

    \r\n \r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {showLeftMask &&
    }\r\n {showRightMask &&
    }\r\n

    \r\n {cards.length} \r\n

    \r\n {cardsMapper(cards)}\r\n
    \r\n );\r\n};\r\n\r\nexport default CardCarousel;\r\n","export const DEALER_LOCATOR_FORM_SEARCH = 'dealerLocatorFormSearchCaseIH';\r\n","import React, { useState, useEffect, useCallback, useRef } from 'react';\r\nimport { windowService, documentService, sessionStorageService } from '../../../../utils/window.utils.js';\r\nimport DealerLocatorSearch from './components/dealerLocatorSearch';\r\nimport {\r\n TCountry,\r\n TDealershipSuggestion,\r\n TCardProps,\r\n onDealerResultsProps,\r\n TGooglePlaceSuggestion,\r\n} from '../../types/dealerLocator.types.js';\r\nimport { Loader } from '@googlemaps/js-api-loader';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport DictionaryTerm from '../../../@shared/dictionaryTerm';\r\nimport CardCarousel from './components/cardCarousel';\r\nimport { fetchDealersByGeoCode, sortDealersByDistance } from './dealerLocator.utils';\r\nimport { APIPrefix } from '../../../../constants/api.constants';\r\nimport { DEALER_LOCATOR_FORM_SEARCH } from '../../../../constants/dealerLocatorForm.constants';\r\nimport './styles.scss';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\n\r\nconst DealerLocator = (props) => {\r\n const MAX_RESULTS = 6;\r\n const label = props?.field.model.title;\r\n const id = props.field.valueField.id;\r\n const mapsApiKey = props?.field?.model?.googleApikey ?? '';\r\n const requiredField = props?.field?.model?.required;\r\n const [country, setCountry] = useState(undefined);\r\n const [coords, setCoords] = useState({ latitude: '', longitude: '' });\r\n const [distanceUnit, updateDistanceUnit] = useState(''); // eslint-disable-line\r\n const [countryList, setCountryList] = useState([]);\r\n const [searchInputValue, setSearchInputValue] = useState('');\r\n const {sitecoreContext} = useSitecoreContext();\r\n const itemID = sitecoreContext?.route?.itemId;\r\n const language = sitecoreContext.language;\r\n const [autocompleteService, setAutocompleteService] = useState();\r\n const [placesService, setPlacesService] = useState();\r\n const [dealers, setDealers] = useState([]);\r\n const [dealerResultsLoaded, updateDealerResultsLoaded] = useState(false); // eslint-disable-line\r\n const [cardProps, updateCardProps] = useState([]); // eslint-disable-line\r\n const [showError, setShowError] = useState(false);\r\n const controllerRef = useRef();\r\n const dealerDivRef = useRef(null);\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const [userLocationIsActive, setUserLocationIsActive] = useState(false);\r\n const [searchUserLocationResult, setSearchUserLocationResult] = useState(false);\r\n const [selectedPlaceId, updatedSelectedPlaceId] = useState('');\r\n const [prevSelectedResult, setPrevSelectedResult] = useState(null);\r\n\r\n const findCountry = (isoCode: string) => (countryList || []).find((x) => x.IsoCode === isoCode);\r\n\r\n const updateCountry = (country?: TCountry, showError = false) => {\r\n setCountry(country);\r\n setDealers([]);\r\n updateDealerResultsLoaded(false);\r\n setSearchInputValue('');\r\n setShowError(showError);\r\n };\r\n\r\n const onDealerResults = ({ results }: onDealerResultsProps, userLocationSearchResultType = false): void => {\r\n const sortedResults = results.length ? sortDealersByDistance(results).slice(0, MAX_RESULTS) : results;\r\n setDealers(sortedResults);\r\n updateDealerResultsLoaded(true);\r\n setSearchUserLocationResult(userLocationSearchResultType);\r\n };\r\n\r\n const getDealersFromCoords = async () => {\r\n const { Geocoder } = (await google.maps.importLibrary('geocoding')) as google.maps.GeocodingLibrary;\r\n const geocoder = new Geocoder();\r\n const point = new google.maps.LatLng(+coords?.latitude, +coords?.longitude);\r\n geocoder.geocode({ location: point }, (results) => {\r\n const address = results && results[0]?.address_components;\r\n if (address) {\r\n const countryDetail = address.find((x) => x.types.includes('country'));\r\n if (countryDetail) {\r\n const queryUrlParams = {\r\n lat: coords?.latitude,\r\n lng: coords?.longitude,\r\n pageId: itemID,\r\n language: language,\r\n countryIsoCode: countryDetail.short_name,\r\n };\r\n\r\n const selectedCountry = findCountry(countryDetail.short_name);\r\n if (!selectedCountry) {\r\n updateCountry(undefined, true);\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line\r\n const searchInput = (address || []).reduce((acc, iter) => acc + ' ' + iter.long_name, '')?.trim();\r\n setCountry(selectedCountry);\r\n setSearchInputValue(searchInput);\r\n setShowError(false);\r\n\r\n fetchDealersByGeoCode(queryUrlParams, controllerRef)\r\n .then((data) => {\r\n const dealershipResults = data?.dealershipResults;\r\n onDealerResults(\r\n {\r\n results: dealershipResults || [],\r\n },\r\n true\r\n );\r\n })\r\n .catch((error) => {\r\n onDealerResults({\r\n results: [],\r\n });\r\n console.error(error, 'Error while fetching Dealers');\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n const setDealersCoords = (position) => {\r\n const latitude = position.coords.latitude;\r\n const longitude = position.coords.longitude;\r\n if (latitude && longitude) {\r\n setCoords({\r\n latitude,\r\n longitude,\r\n });\r\n }\r\n };\r\n\r\n const showUserLocation = useCallback(() => {\r\n setUserLocationIsActive(true);\r\n windowService()?.navigator?.geolocation?.getCurrentPosition(setDealersCoords);\r\n }, []);\r\n\r\n const fetchData = useCallback(async () => {\r\n const getApiURL = `/${APIPrefix}/formdealerlocator/dealerlist/${itemID}/${language}`;\r\n try {\r\n const res = await fetch(getApiURL);\r\n if (!res.ok) {\r\n throw Error(`${res.status} : Failed to fetch data`);\r\n }\r\n const result = await res.json();\r\n if (result?.dealerSelectedCountries) {\r\n const countryList = result?.dealerSelectedCountries.map((x) => ({\r\n Country: x.country,\r\n IsoCode: x.countryisocode,\r\n }));\r\n setCountryList(countryList);\r\n if (result?.dealerpreSelected) {\r\n const deafultCountry = countryList?.find((x) => x.IsoCode === result?.defaultDealerCountry);\r\n setCountry(deafultCountry);\r\n }\r\n\r\n if ((result?.dealerRadius || '')?.includes('km')) {\r\n updateDistanceUnit('km');\r\n } else {\r\n updateDistanceUnit('mi');\r\n }\r\n } else {\r\n setCountryList([]);\r\n }\r\n } catch (error) {\r\n console.error(`${error} occurred while fetching data`);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.errors.length === 0 && !props.value && country) {\r\n updateCountry();\r\n fetchData();\r\n }\r\n }, [props.value]);\r\n\r\n useEffect(() => {\r\n getDealersFromCoords();\r\n }, [coords]);\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (dealers.length) {\r\n const cardPropsInput: TCardProps[] = dealers.map((dealer) => ({\r\n dealerName: dealer.dealership.dealerName,\r\n dealerNumber: dealer.dealership.cnhPrimarySAPNumber,\r\n shippingAddress: dealer.dealership.shippingAddress1,\r\n shippingCity: dealer.dealership.shippingCity,\r\n shippingZip: dealer.dealership.shippingZip,\r\n distance: dealer?.distance ?? '',\r\n shippingPhone: dealer.dealership?.shippingPhone ?? '',\r\n shippingStateProv:dealer.dealership?.shippingStateProv ?? '',\r\n distanceUnit,\r\n }));\r\n updateCardProps(cardPropsInput);\r\n } else {\r\n updateCardProps([]);\r\n }\r\n }, [dealers]);\r\n\r\n useEffect(() => {\r\n if (props.value && countryList) {\r\n const { country, searchInputValue, latitude, longitude, searchUserLocationResult, selectedPlaceId } = JSON.parse(\r\n sessionStorageService().getItem(DEALER_LOCATOR_FORM_SEARCH) || '{}'\r\n );\r\n if (latitude && longitude && searchUserLocationResult) {\r\n setCoords({ latitude, longitude });\r\n } else if (country && searchInputValue) {\r\n setSearchInputValue(searchInputValue);\r\n setCountry(country);\r\n updatedSelectedPlaceId(selectedPlaceId);\r\n setPrevSelectedResult({ place_id: selectedPlaceId, description: searchInputValue ?? '' });\r\n }\r\n }\r\n }, [JSON.stringify(countryList)]);\r\n\r\n const onDealerNumberUpdate = (dealerNumber: string) => {\r\n props.onChange(props.field.valueField.name, dealerNumber, props.isValid, []);\r\n sessionStorageService().setItem(\r\n DEALER_LOCATOR_FORM_SEARCH,\r\n JSON.stringify({ country, searchInputValue, searchUserLocationResult, ...coords, selectedPlaceId })\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n const loader = new Loader({\r\n apiKey: mapsApiKey,\r\n version: 'weekly',\r\n });\r\n loader.load().then(async () => {\r\n const { AutocompleteService, PlacesService } = (await google.maps.importLibrary('places')) as google.maps.PlacesLibrary;\r\n setAutocompleteService(new AutocompleteService());\r\n setPlacesService(new PlacesService(documentService().createElement('div')));\r\n });\r\n\r\n const formtag = dealerDivRef?.current?.closest('form');\r\n const submitButton = formtag?.querySelector(\"button[type='submit']\");\r\n const reset = () => {\r\n if (!requiredField) {\r\n updateCountry();\r\n fetchData();\r\n }\r\n };\r\n if (submitButton) {\r\n submitButton.addEventListener('click', reset);\r\n }\r\n\r\n return () => {\r\n submitButton?.removeEventListener('click', reset);\r\n };\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {/* eslint-disable-next-line */}\r\n showUserLocation()}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {autocompleteService && placesService && (\r\n setUserLocationIsActive(false)}\r\n updatedSelectedPlaceId={updatedSelectedPlaceId}\r\n prevSelectedResult={prevSelectedResult}\r\n />\r\n )}\r\n
    \r\n {showError && (\r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n )}\r\n {dealerResultsLoaded && (\r\n \r\n )}\r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default DealerLocator;\r\n","import React, { ChangeEvent, FC } from 'react';\r\n\r\nimport BaseTextField from '../baseTextField';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\n\r\nconst CustomNumberField: FC = (props) => {\r\n const handleOnInput = (event: ChangeEvent): void => {\r\n if (event.target.value.lastIndexOf('+') > 0 || event.target.value.lastIndexOf('-') > 0) {\r\n event.target.value = event.target.value.slice(0, -1);\r\n return;\r\n }\r\n\r\n event.target.value = event.target.value.replace(/[^0-9.,+-]/g, '');\r\n };\r\n\r\n const inputAttributes = {\r\n onInput: handleOnInput,\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default CustomNumberField;\r\n","import React, { FC } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport { formPageIdentifierClass } from '../../../../constants/multiStep.constants';\r\n\r\nconst FormPageIdentifierField: FC = (props) => {\r\n const { field } = props;\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n const itemId = field?.fieldIdField?.value; \r\n \r\n return ;\r\n};\r\n\r\nexport default FormPageIdentifierField;","import React, {FC} from 'react';\r\nimport { TButtonFormField } from '../../types/button.types';\r\n\r\n// NOTE: onButtonClick is not a submit handler;\r\n// it signals to the parent form which button invoked the submit action\r\n// (which is important for multi-step forms where multiple submits can occur i.e. back/forward)\r\n\r\nconst Button: FC = ({ field, onButtonClick }) => {\r\n const {model} = field;\r\n const navigationStep = model.navigationStep;\r\n let extraClassName = 'sitecore-jss-form__button';\r\n if (navigationStep === -1) {\r\n extraClassName = extraClassName + ' sitecore-jss-form__button--previous';\r\n } else if (navigationStep === 1) {\r\n extraClassName = extraClassName + ' sitecore-jss-form__button--next';\r\n }\r\n\r\n return (\r\n onButtonClick(field.buttonField.name)}\r\n >\r\n {field.model.title}\r\n \r\n );\r\n}\r\n\r\n\r\nexport default Button;","import React, { FC, ChangeEvent, useState, useEffect } from 'react';\r\n\r\nimport Icon from '../../../../../@shared/icon';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\nimport { TTimeFieldRadio } from '../../../../types/timeField.types';\r\nimport DictionaryTerm from '../../../../../@shared/dictionaryTerm';\r\n\r\nconst MeridiemRadioGroup: FC = ({ handleSelectorClick, values, defaultValue, fields }) => {\r\n const [selectedValue, setSelectedValue] = useState('');\r\n\r\n useEffect(() => {\r\n if (!fields.value) {\r\n setSelectedValue(defaultValue);\r\n }\r\n }, [fields.value]);\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n setSelectedValue(e.target?.value);\r\n handleSelectorClick(e.target?.value);\r\n };\r\n\r\n return (\r\n
    \r\n
      \r\n {values.map((item) => {\r\n return (\r\n
    • \r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MeridiemRadioGroup;\r\n","import React, { useState, useEffect, useRef, ChangeEvent, FC } from 'react';\r\nimport useDidUpdate from '../../../../../../hooks/useDidUpdate.effect';\r\nimport { documentService } from '../../../../../../utils/window.utils.js';\r\nimport Icon from '../../../../../@shared/icon';\r\nimport HiglightedOption from '../../../../../@shared/highlightedOption';\r\nimport DictionaryTerm from '../../../../../@shared/dictionaryTerm';\r\nimport { TTimeFieldDropdown } from '../../../../types/timeField.types';\r\nimport { iconSize } from '../../../../../../constants/icon.constants';\r\n\r\nconst HoursMinutesDropDown: FC = ({\r\n dropdownOptions = [],\r\n id,\r\n handleOptionClick,\r\n fields,\r\n label,\r\n defaultValue,\r\n hourMinutesFormat,\r\n}) => {\r\n const { field, tracker } = fields;\r\n const hasAnyError = !!fields?.errors?.length;\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [hasFocus, setHasFocus] = useState(false);\r\n const [hasTextInputFocus, setHasTextInputFocus] = useState(false);\r\n const [initialTextValue, setInitialTextValue] = useState('');\r\n const [textValue, setTextValue] = useState('');\r\n const dropdownRef: React.MutableRefObject = useRef(null);\r\n const inputRef: React.MutableRefObject = useRef(null);\r\n\r\n useEffect(() => {\r\n if (!fields.value) {\r\n setTextValue(defaultValue);\r\n setInitialTextValue(defaultValue);\r\n }\r\n }, [fields.value]);\r\n\r\n const onDropdownFocus = (): void => {\r\n setHasFocus(true);\r\n setHasTextInputFocus(true);\r\n };\r\n\r\n const onTextInputBlur = (): void => {\r\n setHasTextInputFocus(false);\r\n };\r\n\r\n const onDropdownClick = (): void => {\r\n setIsVisible(!isVisible);\r\n\r\n if (!isVisible) {\r\n inputRef?.current?.focus();\r\n } else {\r\n inputRef?.current?.blur();\r\n }\r\n };\r\n\r\n const onSelectOption = (value, text): void => {\r\n setTextValue(text);\r\n setInitialTextValue(value);\r\n setIsVisible(false);\r\n };\r\n\r\n const onInputUpdate = (e: ChangeEvent): void => {\r\n setTextValue(e?.target?.value);\r\n };\r\n\r\n const handleClickOutside = (event): void => {\r\n if (dropdownRef?.current?.contains(event?.target)) {\r\n return;\r\n }\r\n setIsVisible(false);\r\n\r\n const hasMatch = dropdownOptions.some((opt) => opt.value === textValue);\r\n\r\n if (!hasMatch) {\r\n setTextValue(initialTextValue);\r\n } else {\r\n handleOptionClick(textValue);\r\n setInitialTextValue(textValue);\r\n }\r\n\r\n setHasFocus(false);\r\n };\r\n\r\n useEffect(() => {\r\n documentService()?.addEventListener('mouseup', handleClickOutside);\r\n return (): void => {\r\n documentService()?.removeEventListener('mouseup', handleClickOutside);\r\n };\r\n }, [initialTextValue, textValue]); // eslint-disable-line\r\n\r\n useDidUpdate(() => {\r\n if (hasFocus) {\r\n tracker?.onFocusField(field, textValue);\r\n } else {\r\n tracker?.onBlurField(field, textValue);\r\n }\r\n }, [hasFocus]);\r\n\r\n return (\r\n
      \r\n \r\n {hourMinutesFormat && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    • \r\n
        \r\n {dropdownOptions.map((item) => {\r\n return (\r\n {\r\n onSelectOption(item.value || '', item.text || '');\r\n handleOptionClick(item.value);\r\n }}\r\n key={item.value}\r\n >\r\n \r\n \r\n );\r\n })}\r\n
      \r\n
    • \r\n
    \r\n );\r\n};\r\n\r\nexport default HoursMinutesDropDown;\r\n","import { useMemo } from 'react';\r\n\r\nconst useTimeListGenerator = (input: number, interval = 1) => {\r\n const list = useMemo(() => {\r\n const timeList: Array<{ text: string; value: string }> = [];\r\n for (let i = 0; i < input; i += interval) {\r\n const paddedText = String(i).padStart(2, '0');\r\n timeList.push({ text: paddedText, value: paddedText });\r\n }\r\n return timeList;\r\n }, [input, interval]);\r\n\r\n return list;\r\n};\r\n\r\nexport default useTimeListGenerator;\r\n","import { useMemo } from 'react';\r\n\r\nconst useHoursMinutesListGenerator = (input: number, interval = 1) => {\r\n const list = useMemo(() => {\r\n const timeList: Array<{ text: string; value: string }> = [];\r\n const maxHours = input; // Maximum hours value\r\n const maxMinutes = (input * interval - 1) % 60; // Maximum minutes value\r\n\r\n for (let h = 0; h < maxHours; h++) {\r\n for (let m = 0; m < 60; m += interval) {\r\n if (h === maxHours && m > maxMinutes) break; // Break loop if it exceeds the maximum time\r\n\r\n const formattedHours = String(h).padStart(2, '0');\r\n const formattedMinutes = String(m).padStart(2, '0');\r\n timeList.push({ text: `${formattedHours}:${formattedMinutes}`, value: `${formattedHours}:${formattedMinutes}` });\r\n }\r\n }\r\n return timeList;\r\n }, [input, interval]);\r\n\r\n return list;\r\n};\r\n\r\nexport default useHoursMinutesListGenerator;\r\n","import React, { FC, useEffect } from 'react';\r\nimport HoursMinutesDropDown from '../hoursMinuteDropdowns';\r\nimport useTimeListGenerator from '../../hooks/useTimeListGenerator';\r\nimport { TTimeSelectors } from '../../../../types/timeField.types';\r\nimport useHoursMinutesListGenerator from '../../hooks/useHoursMinutesListGenerator';\r\n\r\nconst TimeDropdownSelectors: FC = ({\r\n fields,\r\n updateSendData,\r\n minutesInterval,\r\n hideMeridiemSelector,\r\n hourMinutesFormat,\r\n}) => {\r\n const hoursFormatValue = hideMeridiemSelector ? 24 : 12;\r\n const hoursDropdownList = useTimeListGenerator(hoursFormatValue);\r\n const minutesDropdownList = useTimeListGenerator(60, parseInt(minutesInterval));\r\n const hoursMinuteDropdownList = useHoursMinutesListGenerator(hoursFormatValue, parseInt(minutesInterval));\r\n\r\n const defaultTimeValues = {\r\n hours: hoursDropdownList[0].value,\r\n minutes: minutesDropdownList[0].value,\r\n };\r\n\r\n const setInitialState = () => {\r\n updateSendData(defaultTimeValues);\r\n };\r\n\r\n useEffect(() => {\r\n if (!fields.value) {\r\n setInitialState();\r\n }\r\n }, [fields.value]);\r\n\r\n const handleHourOptionClick = (value: string) => {\r\n updateSendData({\r\n hours: value,\r\n });\r\n };\r\n\r\n const handleMinuteOptionClick = (value: string) => {\r\n updateSendData({\r\n minutes: value,\r\n });\r\n };\r\n\r\n const handleHourMinutesOptionClick = (value: string) => {\r\n const hoursMinutesValue = value.split(':');\r\n updateSendData({\r\n hours: hoursMinutesValue?.[0],\r\n minutes: hoursMinutesValue?.[1],\r\n });\r\n };\r\n\r\n if (hourMinutesFormat) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n \r\n :\r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default TimeDropdownSelectors;\r\n","import React, { FC, useEffect } from 'react';\r\nimport MeridiemRadioGroup from './meridiemSelectors/meridiemRadioGroups';\r\nimport { TTimeSelectors } from '../../../types/timeField.types';\r\nimport TimeDropdownSelectors from './hoursMinuteDropdowns/timeDropdownSelector';\r\n\r\nconst TimeSelectors: FC = ({ fields, updateSendData, minutesInterval, hideMeridiemSelector, hourMinutesFormat }) => {\r\n const meridiemValues = [\r\n { text: 'cnhi-time-field-am', value: 'am' },\r\n { text: 'cnhi-time-field-pm', value: 'pm' },\r\n ];\r\n\r\n const defaultTimeValues = {\r\n meridiem: hideMeridiemSelector ? '' : meridiemValues[1].value,\r\n };\r\n\r\n const setInitialState = () => {\r\n updateSendData(defaultTimeValues);\r\n };\r\n\r\n useEffect(() => {\r\n if (!fields.value) {\r\n setInitialState();\r\n }\r\n }, [fields.value]);\r\n\r\n const handleTimeOptionClick = (value) => {\r\n updateSendData(value);\r\n };\r\n\r\n const handleMeridiemOptionClick = (value: string) => {\r\n updateSendData({\r\n meridiem: value,\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n {!hideMeridiemSelector && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TimeSelectors;\r\n","import React, { FC, useState } from 'react';\r\nimport TimeSelectors from './components';\r\nimport { TDropdownContextSendData, TTimeDropdownContextSendData, TTimeField } from '../../types/timeField.types';\r\nimport useDidUpdate from '../../../../hooks/useDidUpdate.effect';\r\nimport './style.scss';\r\n\r\nconst convertObjectToString = (obj) => {\r\n const objKeys = Object.keys(obj);\r\n if (objKeys.length === 0) {\r\n return '';\r\n }\r\n return objKeys?.map((key) => obj[key]).join('|');\r\n};\r\n\r\nconst defaultSendData = {\r\n value: [\r\n {\r\n hours: '',\r\n minutes: '',\r\n meridiem: '',\r\n },\r\n ],\r\n};\r\n\r\nconst TimeField: FC = (props) => {\r\n const { field } = props;\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n const FieldValidationErrors = props?.fieldValidationErrorsComponent;\r\n const [value, setValue] = useState('');\r\n const [sendData, setSendData] = useState(() => defaultSendData);\r\n\r\n const updateSendData = (newSendData: Partial = {}) => {\r\n setSendData((prevState) => ({\r\n ...prevState,\r\n value: prevState.value.map((item) => ({ ...item, ...newSendData })),\r\n }));\r\n };\r\n\r\n useDidUpdate(() => {\r\n const sendTimeValue = sendData?.value?.map((obj) => convertObjectToString(obj)).join('');\r\n setValue(sendTimeValue);\r\n props.onChange(field.valueField.name, sendTimeValue, props.isValid, []);\r\n }, [sendData]);\r\n\r\n return (\r\n
    \r\n \r\n\r\n {field?.model?.placeholderText &&
    {field?.model?.placeholderText}
    }\r\n
    \r\n \r\n
    \r\n\r\n {FieldValidationErrors && }\r\n
    \r\n );\r\n};\r\n\r\nexport default TimeField;\r\n","import React, { FocusEvent, ChangeEvent, useState } from 'react';\r\nimport Icon from '../../../../@shared/icon';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\n\r\nfunction MarketingConsentCheckbox(props) {\r\n const { field, tracker } = props;\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const [isChecked, setIsChecked] = useState(false);\r\n const onFocus = (e: FocusEvent): void => {\r\n tracker.onFocusField(field, e?.target?.value);\r\n };\r\n\r\n const onBlur = (e: FocusEvent): void => {\r\n tracker.onBlurField(field, e?.target?.value);\r\n };\r\n\r\n const onChange = (e: ChangeEvent): void => {\r\n setIsChecked(e?.target?.checked);\r\n props.onChange(name, ('checkbox' + '|' + e?.target?.checked) as string, props.isValid, []);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default MarketingConsentCheckbox;\r\n","import React, { FC, useContext, useEffect } from 'react';\r\nimport IMarketingConsentFieldModel from '../../types/marketingConsentField.types';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { CustomFormContext } from '../customFormContextProvider';\r\nimport MarketingConsentCheckbox from './component/checkbox';\r\nimport useDidUpdate from '../../../../hooks/useDidUpdate.effect';\r\n\r\nconst MarketingConsentField: FC> = (props) => {\r\n const { field } = props;\r\n const id = field.valueField.id;\r\n const name = field.valueField.name;\r\n const hasAnyError = !!props.errors?.length;\r\n const FieldValidationErrors = props.fieldValidationErrorsComponent;\r\n const customFormContext = useContext(CustomFormContext);\r\n const [selectedCountry] = customFormContext?.selectedCountry ?? [];\r\n const isCountryISOCodePresent = selectedCountry == field.model?.marketoConsentCountryISOCode;\r\n const isConsentDefaultCountrySelected = field?.model?.marketoConsentDefaultCountrySelected;\r\n\r\n const preSelectedValue = () => {\r\n if (isCountryISOCodePresent || isConsentDefaultCountrySelected) {\r\n props.onChange(name, ('checkbox' + '|' + 'false') as string, props.isValid, []);\r\n } else {\r\n props.onChange(name, ('text' + '|' + 'false') as string, props.isValid, []);\r\n }\r\n };\r\n\r\n useDidUpdate(() => {\r\n preSelectedValue();\r\n }, [selectedCountry]);\r\n\r\n useEffect(() => {\r\n preSelectedValue();\r\n }, []);\r\n\r\n return (\r\n \r\n {isConsentDefaultCountrySelected ? (\r\n \r\n ) : (\r\n (!field.model?.marketoConsentCountryISOCode || selectedCountry) &&\r\n (isCountryISOCodePresent ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n ))\r\n )}\r\n {FieldValidationErrors && }\r\n \r\n );\r\n};\r\n\r\nexport default MarketingConsentField;\r\n","import React, { FC, useState, useEffect, useRef, ChangeEvent } from 'react';\r\nimport useDidUpdate from '../../../../../../../hooks/useDidUpdate.effect';\r\nimport { documentService } from '../../../../../../../utils/window.utils.js';\r\nimport Icon from '../../../../../../@shared/icon';\r\nimport HiglightedOption from '../../../../../../@shared/highlightedOption';\r\nimport DictionaryTerm from '../../../../../../@shared/dictionaryTerm';\r\nimport { iconSize } from '../../../../../../../constants/icon.constants';\r\nimport { TDropDown, TDropDownOption } from '../../../../../types/dynamicDropDown.types';\r\n\r\nconst DropDown: FC = ({\r\n dropdownOptions = [],\r\n id,\r\n fields,\r\n label,\r\n isEnabled,\r\n selectedValue,\r\n setSelectedValue,\r\n dropdownIndex\r\n\r\n}) => {\r\n const { field, tracker } = fields;\r\n const hasAnyError = !!fields?.errors?.length;\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [hasFocus, setHasFocus] = useState(false);\r\n const [hasTextInputFocus, setHasTextInputFocus] = useState(false);\r\n const [initialTextValue, setInitialTextValue] = useState('');\r\n const [textValue, setTextValue] = useState(selectedValue[dropdownIndex]?.text ?? '');\r\n const dropdownRef: React.MutableRefObject = useRef(null);\r\n const inputRef: React.MutableRefObject = useRef(null);\r\n\r\n useEffect(() => {\r\n if (!fields.value || !selectedValue[dropdownIndex] || selectedValue[dropdownIndex]?.itemId === '') {\r\n setTextValue('');\r\n setInitialTextValue('');\r\n }\r\n }, [fields.value, selectedValue]);\r\n\r\n const onDropdownFocus = (): void => {\r\n setHasFocus(true);\r\n setHasTextInputFocus(true);\r\n };\r\n\r\n const onTextInputBlur = (): void => {\r\n setHasTextInputFocus(false);\r\n };\r\n\r\n const onDropdownClick = (): void => {\r\n setIsVisible(!isVisible);\r\n\r\n if (!isVisible) {\r\n inputRef?.current?.focus();\r\n } else {\r\n inputRef?.current?.blur();\r\n }\r\n };\r\n\r\n const onSelectOption = (selectedOption: TDropDownOption): void => {\r\n setTextValue(selectedOption.text);\r\n setInitialTextValue(selectedOption.text);\r\n setSelectedValue((prevState) => {\r\n const newState = [...prevState];\r\n if (prevState[dropdownIndex]?.itemId === selectedOption.itemId) {\r\n return prevState;\r\n }\r\n newState[dropdownIndex] = selectedOption;\r\n return newState.slice(0, dropdownIndex + 1);\r\n })\r\n setIsVisible(false);\r\n };\r\n\r\n const onInputUpdate = (e: ChangeEvent): void => {\r\n setTextValue(e?.target?.value);\r\n };\r\n\r\n const handleClickOutside = (event): void => {\r\n if (dropdownRef?.current?.contains(event?.target)) {\r\n return;\r\n }\r\n\r\n setIsVisible(false);\r\n\r\n if (textValue === '') {\r\n setTextValue('');\r\n } else {\r\n const hasMatch = dropdownOptions.some((opt) => opt.text === textValue);\r\n\r\n if (!hasMatch) {\r\n setTextValue(initialTextValue);\r\n }\r\n }\r\n\r\n setHasFocus(false);\r\n };\r\n\r\n useEffect(() => {\r\n documentService()?.addEventListener('mouseup', handleClickOutside);\r\n return (): void => {\r\n documentService()?.removeEventListener('mouseup', handleClickOutside);\r\n };\r\n }, [initialTextValue, textValue]); // eslint-disable-line\r\n\r\n useDidUpdate(() => {\r\n if (hasFocus) {\r\n tracker?.onFocusField(field, textValue);\r\n } else {\r\n tracker?.onBlurField(field, textValue);\r\n }\r\n }, [hasFocus]);\r\n\r\n return (\r\n <>\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    • \r\n
        \r\n <>\r\n {dropdownOptions.map((item) => {\r\n return (\r\n {\r\n onSelectOption(item);\r\n }}\r\n key={item.value}\r\n >\r\n \r\n \r\n );\r\n })}\r\n \r\n
      \r\n
    • \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default DropDown;\r\n","import React, { FC, useState, useEffect } from 'react';\r\nimport DropDown from './components/dropdown';\r\nimport { TDynamicDropDownProps, TDynamicDropDown, TSelectedDropDownValue } from '../../../types/dynamicDropDown.types';\r\nimport './styles.scss';\r\n\r\nconst DynamicDropDown: FC = (props) => {\r\n const { handleOptionClick, sendData } = props;\r\n const [selectedValue, setSelectedValue] = useState(sendData);\r\n\r\n useEffect( () => {\r\n if (selectedValue[0].itemId !== '') {\r\n handleOptionClick(selectedValue);\r\n }\r\n }, [selectedValue]);\r\n\r\n useEffect( () => {\r\n if (sendData.length !== selectedValue.length) {\r\n setSelectedValue(sendData);\r\n }\r\n }, [sendData]);\r\n\r\n\r\n const renderDropdowns = (dynamicDropDown: TDynamicDropDown, index: number) => {\r\n const { dropdownOptions = [], label, isEnabled, id, fields, furtherDropdowns } = dynamicDropDown;\r\n const { hasFurtherDropdowns, dropDown } = furtherDropdowns;\r\n if (hasFurtherDropdowns && dropDown) {\r\n return (\r\n <>\r\n \r\n {\r\n renderDropdowns(dropDown, index + 1)\r\n }\r\n \r\n )\r\n }\r\n return (\r\n \r\n )\r\n }\r\n\r\n\r\n return (\r\n
    \r\n {\r\n renderDropdowns(props.dropDown, 0)\r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default DynamicDropDown;","import React, { FC, useEffect, useState } from 'react';\r\nimport DynamicDropDown from '../@shared/dynamicDropDown';\r\nimport { TDropDownOption, TDynamicDropDown, TSelectedDropDownValue } from '../../types/dynamicDropDown.types';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms';\r\nimport useDidUpdate from '../../../../hooks/useDidUpdate.effect';\r\nimport { APIPrefix } from '../../../../constants/api.constants';\r\nimport useSitecoreContext from '../../../../hooks/useSitecoreContext';\r\n\r\nconst DynamicProductSelector: FC = (props) => {\r\n const { field } = props;\r\n const id = field?.valueField?.id;\r\n const name = field?.valueField?.name;\r\n const FieldValidationErrors = props?.fieldValidationErrorsComponent;\r\n const items = props?.field?.model?.items as TDropDownOption[];\r\n const isRequired = field?.model?.required;\r\n const [sendData, setSendData] = useState([{\r\n itemId: '',\r\n text: '',\r\n value: ''\r\n }]);\r\n const [value, setValue] = useState('');\r\n const { sitecoreContext } = useSitecoreContext();\r\n const siteLanguage = sitecoreContext?.language;\r\n\r\n useEffect(() => {\r\n if (props?.value?.length === 0 || props?.value === '|' ) {\r\n setSendData([{\r\n itemId: '',\r\n text: '',\r\n value: ''\r\n }]);\r\n }\r\n }, [props?.value]) \r\n\r\n const prepareDynamicDropdownStructure = (dropdownItems: TDropDownOption[], hasFurtherDropdowns: boolean): TDynamicDropDown => {\r\n let furtherDropdowns: any = {\r\n hasFurtherDropdowns: false\r\n }\r\n if (hasFurtherDropdowns) {\r\n furtherDropdowns = {\r\n hasFurtherDropdowns: true,\r\n dropDown: {\r\n fields: props,\r\n dropdownOptions: [],\r\n label: 'cnhi-forms-fields-product-selector-models',\r\n isEnabled: false,\r\n id: '',\r\n furtherDropdowns: {\r\n hasFurtherDropdowns: false\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n fields: props,\r\n dropdownOptions: dropdownItems,\r\n label: 'cnhi-forms-fields-product-selector-lines',\r\n isEnabled: true,\r\n id,\r\n furtherDropdowns\r\n }\r\n }\r\n\r\n const [dropDown, setDropDown] = useState(prepareDynamicDropdownStructure(items, true));\r\n\r\n const fetchData = (itemID: string): void => {\r\n const getApiURL = `/${APIPrefix}/dynamicproductselector/get-dynamicproduct-list?itemid=${itemID}&language=${siteLanguage}`;\r\n fetch(getApiURL)\r\n .then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n throw Error(`${res.status} : Failed to fetch data`);\r\n }\r\n })\r\n .then((result) => {\r\n const modelsDropDown: TDynamicDropDown = {\r\n fields: props,\r\n dropdownOptions: result.dynamicProductList,\r\n label: 'cnhi-forms-fields-product-selector-models',\r\n isEnabled: true,\r\n id: result.itemId,\r\n furtherDropdowns: {\r\n hasFurtherDropdowns: false\r\n }\r\n }\r\n setDropDown({...dropDown, furtherDropdowns: {hasFurtherDropdowns: true, dropDown: modelsDropDown}})\r\n })\r\n .catch((error) => {\r\n console.error(`${error} occurred while fetching data`);\r\n });\r\n };\r\n\r\n const handleOptionClick = (selectedOptions: TSelectedDropDownValue[]) => {\r\n if (sendData[0].itemId !== selectedOptions[0].itemId) {\r\n fetchData(selectedOptions[0].itemId);\r\n }\r\n setSendData(selectedOptions); \r\n }\r\n\r\n\r\n\r\n const convertObjectToString = (obj) => {\r\n const objKeys = Object.keys(obj);\r\n return objKeys\r\n .filter((key) => {\r\n if (key == 'text' || key == 'value') {\r\n return key;\r\n }\r\n })\r\n .map((key) => obj[key])\r\n .join('|');\r\n };\r\n\r\n const sendProductSelection = sendData.map((obj) => convertObjectToString(obj)).join(',');\r\n\r\n useDidUpdate(() => {\r\n const hasEmptyLineValues = sendData.some((obj) => obj.text?.trim() === '');\r\n\r\n const sendValue = isRequired && hasEmptyLineValues ? '' : sendProductSelection;\r\n\r\n setValue(sendProductSelection);\r\n props.onChange(field?.valueField?.name, sendValue, props?.isValid, []);\r\n }, [sendData]);\r\n\r\n return (\r\n
    \r\n \r\n\r\n \r\n\r\n {FieldValidationErrors && }\r\n
    \r\n );\r\n}\r\n\r\nexport default DynamicProductSelector;\r\n","import React, { ChangeEvent, FC } from 'react';\r\nimport { ValueFieldProps } from '@sitecore-jss/sitecore-jss-react-forms/types';\r\nimport BaseTextField from '../baseTextField';\r\n\r\nconst LeadDocument: FC = (props) => {\r\n const formatCpfCnpj = (inputValue) => {\r\n const digits = inputValue.replace(/[^0-9]/g, '');\r\n if (digits.length <= 11) {\r\n return digits\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1-$2')\r\n .replace(/(\\d{3})(\\d{1,2})$/, '$1-$2');\r\n } else {\r\n return digits\r\n .replace(/(\\d{2})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d{1,4})/, '$1/$2')\r\n .replace(/(\\d{4})(\\d{1,2})$/, '$1-$2');\r\n }\r\n };\r\n\r\n const handleChange = (event: ChangeEvent): void => {\r\n event.target.value = formatCpfCnpj(event.target.value);\r\n };\r\n\r\n const inputAttributes = {\r\n onInput: handleChange,\r\n maxLength: 18,\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default LeadDocument;\r\n","import { createDefaultFieldFactory, FieldTypes } from '@sitecore-jss/sitecore-jss-react-forms';\r\nimport TextField from './components/textField';\r\nimport EmailField from './components/emailField';\r\nimport NumberField from './components/numberField';\r\nimport TelephoneField from './components/telephoneField';\r\nimport PasswordField from './components/passwordField';\r\nimport MultipleLineTextField from './components/multipleLineTextField';\r\nimport CheckboxField from './components/checkboxField';\r\nimport CheckboxList from './components/checkboxList';\r\nimport DropdownList from './components/dropdownList';\r\nimport FileUploadField from './components/fileUploadField';\r\nimport RadioGroup from './components/radioGroup';\r\nimport SingleLineText from './components/singleLineText';\r\nimport DateField from './components/dateField';\r\nimport ZipCodeField from './components/zipCodeField';\r\nimport GdprConsentField from './components/gdprConsentField';\r\nimport PageTitle from './components/pageTitleField';\r\nimport PageUrl from './components/pageUrlField';\r\nimport ReCaptchaField from './components/reCaptchaField';\r\nimport ProductSelector from './components/productSelector';\r\nimport CountryStateField from './components/countryStateField';\r\nimport DealerLocator from './components/dealerLocator';\r\nimport CustomNumberField from './components/customNumberField';\r\nimport FormPageIdentifierField from './components/formPageIdentifierField';\r\nimport Button from './components/button';\r\nimport TimeField from './components/timeField';\r\n\r\nimport customFieldTypes from './types/field.types';\r\nimport MarketingConsentField from './components/marketingConsentField';\r\nimport DynamicProductSelector from './components/dynamicProductSelector';\r\nimport LeadDocument from './components/leadDocument';\r\n\r\nconst fieldFactory = createDefaultFieldFactory();\r\n\r\nfieldFactory.setComponent(FieldTypes.SingleLineText, TextField);\r\nfieldFactory.setComponent(FieldTypes.NumberField, NumberField);\r\nfieldFactory.setComponent(FieldTypes.Email, EmailField);\r\nfieldFactory.setComponent(FieldTypes.Telephone, TelephoneField);\r\nfieldFactory.setComponent(FieldTypes.Password, PasswordField);\r\nfieldFactory.setComponent(FieldTypes.MultipleLineText, MultipleLineTextField);\r\nfieldFactory.setComponent(FieldTypes.Checkbox, CheckboxField);\r\nfieldFactory.setComponent(FieldTypes.CheckboxList, CheckboxList);\r\nfieldFactory.setComponent(FieldTypes.DropdownList, DropdownList);\r\nfieldFactory.setComponent(FieldTypes.FileUpload, FileUploadField);\r\nfieldFactory.setComponent(FieldTypes.RadioButtonList, RadioGroup);\r\nfieldFactory.setComponent(FieldTypes.SingleLineText, SingleLineText);\r\nfieldFactory.setComponent(FieldTypes.DateField, DateField);\r\nfieldFactory.setComponent(FieldTypes.Button, Button);\r\n\r\n/* Custom Field Types */\r\nfieldFactory.setComponent(customFieldTypes.firstNameFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.lastNameFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.companyNameFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.emailFieldTypeItemId, EmailField);\r\nfieldFactory.setComponent(customFieldTypes.zipCodeFieldTypeItemId, ZipCodeField);\r\nfieldFactory.setComponent(customFieldTypes.phoneNumberFieldTypeItemId, TelephoneField);\r\nfieldFactory.setComponent(customFieldTypes.mobileNumberFieldTypeItemId, TelephoneField);\r\nfieldFactory.setComponent(customFieldTypes.addressFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.cityFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.gdprConsentFieldTypeItemId, GdprConsentField);\r\nfieldFactory.setComponent(customFieldTypes.productSelectorFieldTypeItemId, ProductSelector);\r\nfieldFactory.setComponent(customFieldTypes.preferredCommunicationFieldTypeItemId, RadioGroup);\r\nfieldFactory.setComponent(customFieldTypes.countryStateDropdownFieldTypeItemId, CountryStateField);\r\nfieldFactory.setComponent(customFieldTypes.pageTitleFieldTypeItemId, PageTitle);\r\nfieldFactory.setComponent(customFieldTypes.pageUrlFieldTypeItemId, PageUrl);\r\nfieldFactory.setComponent(customFieldTypes.decisionRoleFieldTypeItemId, DropdownList);\r\nfieldFactory.setComponent(customFieldTypes.purchaseTimingFieldTypeItemId, DropdownList);\r\nfieldFactory.setComponent(customFieldTypes.recaptchaFieldTypeItemId, ReCaptchaField);\r\nfieldFactory.setComponent(customFieldTypes.purchaseIntentionFieldTypeItemId, DropdownList);\r\nfieldFactory.setComponent(customFieldTypes.contactReasonFieldTypeItemId, DropdownList);\r\nfieldFactory.setComponent(customFieldTypes.notes1FieldTypeItemId, MultipleLineTextField);\r\nfieldFactory.setComponent(customFieldTypes.codePromotionFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.initiativeSourceReportFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.initiativeSourceReportDetailFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.productOfInterestFieldTypeItemId, DropdownList);\r\nfieldFactory.setComponent(customFieldTypes.customProductOfInterestFieldTypeItemId, DropdownList);\r\nfieldFactory.setComponent(customFieldTypes.dealerNotesFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.address2FieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.jobTitleFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.leadManagementCampaignFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.provinceFieldTypeItemId, TextField);\r\nfieldFactory.setComponent(customFieldTypes.delaerLocatorFieldTypeItemId, DealerLocator);\r\nfieldFactory.setComponent(customFieldTypes.customNumberFieldTypeItemId, CustomNumberField);\r\nfieldFactory.setComponent(customFieldTypes.BusinessSegmentFieldTypeItemId, DropdownList);\r\nfieldFactory.setComponent(customFieldTypes.formPageIdentifierFieldTypeItemId, FormPageIdentifierField);\r\nfieldFactory.setComponent(customFieldTypes.timeFieldTypeItemId, TimeField);\r\nfieldFactory.setComponent(customFieldTypes.dealerNotesDropdownListFieldTypeItemId, DropdownList);\r\nfieldFactory.setComponent(customFieldTypes.dealerNotesCheckboxListFieldTypeItemId, CheckboxList);\r\nfieldFactory.setComponent(customFieldTypes.dealerNotesRadioGroupFieldTypeItemId, RadioGroup);\r\nfieldFactory.setComponent(customFieldTypes.marketingConsentTypeItemId, MarketingConsentField);\r\nfieldFactory.setComponent(customFieldTypes.dynamicProductSelector, DynamicProductSelector);\r\nfieldFactory.setComponent(customFieldTypes.leadDocumentId, LeadDocument);\r\n\r\nexport default fieldFactory;\r\n","import React, { FC } from 'react';\r\nimport { ThankYouFields } from './types/thankYou.types';\r\nimport Icon from '../../../@shared/icon';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport CTA from '../../../@shared/cta';\r\nimport ctaTypes from '../../../../enums/CTA.enums';\r\nimport { targetLinkdsk } from '../../../../utils/targetDskLink';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../../constants/breakpoints.constants';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport './styles.scss';\r\n\r\nconst ThankYou: FC = (props) => {\r\n const { redirectionLink, message = '', title = '' } = props;\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const link = {\r\n value: {\r\n text: redirectionLink?.description || redirectionLink?.alternateText,\r\n href: redirectionLink?.link\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    {title}

    \r\n \r\n
    \r\n {(link?.value?.text && link?.value?.href) && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ThankYou;\r\n","import React, { FC, useContext, useEffect, useRef, useState } from 'react';\r\nimport { Form } from '@sitecore-jss/sitecore-jss-react-forms';\r\nimport { SitecoreContextReactContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { JssFormData } from '@sitecore-jss/sitecore-jss-forms/types/JssFormData';\r\nimport { FormResult } from '@sitecore-jss/sitecore-jss-forms/types/FormResult';\r\nimport { EventEnum, FormEventEnum, IFormEventEnumMap } from '../../enums/event.enum';\r\nimport { isInternalUrl } from '../../utils/linkUtils';\r\nimport { windowService } from '../../utils/window.utils.js';\r\nimport { sitecoreApiHost, sitecoreApiKey, defaultLanguage } from '../../temp/config';\r\nimport FieldValidationError from './components/fieldValidationError';\r\nimport fieldWrapper from './components/fieldWrapper';\r\nimport fieldFactory from './fieldFactory';\r\nimport { TSitecoreJssFormProps } from './types/sitecoreJssForm.types';\r\nimport { googleDataLayerPush } from '../../utils/analytics';\r\nimport customFieldTypes from './types/field.types';\r\nimport CustomFormContextProvider from './components/customFormContextProvider';\r\nimport { useLocation, useNavigate, useParams } from 'react-router-dom';\r\nimport { TDropdownAnalyticsSendData } from './components/productSelector/dropdownContext';\r\nimport { FormField, instanceOfButtonFormField, SitecoreForm } from '@sitecore-jss/sitecore-jss-forms';\r\nimport ThankYou from './components/thankYou';\r\nimport { APIPrefix } from '../../constants/api.constants';\r\n\r\nfunction withRouter(Component) {\r\n function ComponentWithRouterProp(props) {\r\n let location = useLocation();\r\n let navigate = useNavigate();\r\n let params = useParams();\r\n return (\r\n \r\n );\r\n }\r\n return ComponentWithRouterProp;\r\n}\r\n\r\nconst EmptyErrorComponent = (): JSX.Element => <>;\r\n\r\nconst SitecoreJssForm: FC = (props) => {\r\n const { fields, router, params, rendering } = props;\r\n const thankyouMessageId = params?.thankyouMessageSetting || '';\r\n const [showThankyouMessage, updateShowThankyouMessage] = useState(false);\r\n const [thankYouMessageFields, updateThankYouMessageFields] = useState(undefined);\r\n const sitecoreContextFactory = useContext(SitecoreContextReactContext);\r\n const sitecoreContext = sitecoreContextFactory.context || {};\r\n const pageLanguage = sitecoreContext.language;\r\n const [productSelectorItems, setProductSelectorItems] = useState([]);\r\n const currentPageFieldsRef = useRef(fields);\r\n const formRef = useRef
    (null);\r\n const initialAnalyticsDataRef = {\r\n PurchaseIntention: undefined,\r\n ContactReason: undefined,\r\n hasProductSelectorField: false,\r\n };\r\n const analyticsDataRef = useRef(initialAnalyticsDataRef);\r\n const selectedDealerName = useRef(undefined);\r\n\r\n const storeAnalyticsData = (formData: JssFormData) => {\r\n const purchaseIntensionField: FormField | undefined = currentPageFieldsRef?.current?.fields?.find(\r\n (field) => field?.model?.fieldTypeItemId === customFieldTypes.purchaseIntentionFieldTypeItemId\r\n );\r\n if (purchaseIntensionField) {\r\n const purchaseIntensionValueFieldName = (purchaseIntensionField as any)?.valueField?.name;\r\n const purchaseIntensionValue =\r\n purchaseIntensionValueFieldName && formData.get()?.find((data) => data.key === purchaseIntensionValueFieldName)?.value;\r\n const purchaseIntensionText = purchaseIntensionField?.model?.items.find((item) => item?.value === purchaseIntensionValue)?.text;\r\n analyticsDataRef.current.PurchaseIntention = purchaseIntensionText;\r\n }\r\n\r\n const contactReasonField: FormField | undefined = currentPageFieldsRef?.current?.fields?.find(\r\n (field) => field?.model?.fieldTypeItemId === customFieldTypes.contactReasonFieldTypeItemId\r\n );\r\n\r\n if (contactReasonField) {\r\n const contactReasonValueFieldName = (contactReasonField as any)?.valueField?.name;\r\n const contactReasonValue =\r\n contactReasonValueFieldName && formData.get()?.find((data) => data.key === contactReasonValueFieldName)?.value;\r\n const contactReasonText = contactReasonField?.model?.items.find((item) => item?.value === contactReasonValue)?.text;\r\n analyticsDataRef.current.ContactReason = contactReasonText;\r\n }\r\n if (!analyticsDataRef.current.hasProductSelectorField) {\r\n const productSelectorField = currentPageFieldsRef?.current?.fields?.find(\r\n (field) => field?.model?.fieldTypeItemId === customFieldTypes.productSelectorFieldTypeItemId\r\n );\r\n productSelectorField && (analyticsDataRef.current.hasProductSelectorField = true);\r\n }\r\n };\r\n\r\n const pushDataToAnalytics = () => {\r\n const formNameValue = fields?.metadata?.name;\r\n const productItems = () => {\r\n if (analyticsDataRef.current.hasProductSelectorField) {\r\n return productSelectorItems.map((obj) => ({\r\n item_id: obj?.modelsId,\r\n item_name: obj?.modelsTitle,\r\n product_line: obj?.lineTitle,\r\n product_series: obj?.seriesTitle,\r\n product_model: obj?.modelsTitle,\r\n }));\r\n }\r\n };\r\n\r\n googleDataLayerPush({\r\n event: 'form_submit',\r\n form_name: formNameValue,\r\n PurchaseIntention: analyticsDataRef.current.PurchaseIntention,\r\n ContactReason: analyticsDataRef.current.ContactReason,\r\n items: productItems(),\r\n dealer_name: selectedDealerName.current,\r\n });\r\n };\r\n\r\n const resetSavedFormValues = () => {\r\n // restting to initial values\r\n analyticsDataRef.current = initialAnalyticsDataRef;\r\n selectedDealerName.current = undefined;\r\n setProductSelectorItems([]);\r\n };\r\n\r\n const successResponseHandler = (res, formData) => {\r\n storeAnalyticsData(formData);\r\n const isSubmitButtonClicked = currentPageFieldsRef.current.fields.find(\r\n (field) =>\r\n instanceOfButtonFormField(field) &&\r\n field?.buttonField?.name === formRef.current?.state.submitButton &&\r\n field?.navigationStepField.value === '0'\r\n );\r\n if (res?.success && isSubmitButtonClicked) {\r\n if (res?.errors.length === 0) {\r\n pushDataToAnalytics();\r\n }\r\n updateShowThankyouMessage(true);\r\n resetSavedFormValues();\r\n const formSubmitEvent: CustomEvent = new CustomEvent(FormEventEnum.FORM_SUBMITTED, {\r\n detail: { formDatasource: rendering?.dataSource || '' },\r\n });\r\n windowService().dispatchEvent?.(formSubmitEvent);\r\n }\r\n if (res.nextForm) currentPageFieldsRef.current = res.nextForm; // Might be causing the above mentioned issue in single page form\r\n return res;\r\n };\r\n\r\n const fetchData = async () => {\r\n const getApiURL = `/${APIPrefix}/thankyoumessage/message/${thankyouMessageId}/${pageLanguage}`;\r\n try {\r\n const res = await fetch(getApiURL);\r\n const result = await res.json();\r\n updateThankYouMessageFields({ ...result });\r\n } catch (error) {\r\n console.error(`${error} occurred while fetching data`);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n thankyouMessageId && fetchData();\r\n }, []);\r\n\r\n return (\r\n <>\r\n {showThankyouMessage && thankYouMessageFields ?\r\n () : (\r\n
    \r\n setProductSelectorItems(value)}\r\n setSelectedDealerName={(dealerName) => (selectedDealerName.current = dealerName || '')}\r\n >\r\n {\r\n windowService().dispatchEvent?.(new CustomEvent(EventEnum.ADD_LOADER_QUEUE_ITEM));\r\n return fetch(endpoint, {\r\n body: formData.toMultipartFormData(),\r\n method: 'post',\r\n credentials: 'include',\r\n })\r\n .then((res) => res.json())\r\n .then((res) => successResponseHandler(res as FormResult, formData))\r\n .finally(() => windowService().dispatchEvent?.(new CustomEvent(EventEnum.REMOVE_LOADER_QUEUE_ITEM)));\r\n }}\r\n onRedirect={(url) => {\r\n if (isInternalUrl(url)) {\r\n router.navigate(url);\r\n } else {\r\n windowService().location.href = url;\r\n }\r\n }}\r\n />\r\n \r\n
    \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(SitecoreJssForm);\r\n","import React, { FC, useMemo } from 'react';\r\nimport { RichText, Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport CTAButton, { ctaEnums } from '../@shared/ctaButton';\r\nimport { CustomText } from '../@shared/customText';\r\nimport RoutableSitecoreLink from '../@shared/routableSitecoreLink';\r\nimport Picture from '../@shared/picture';\r\nimport { BreakpointsInPx } from '../../constants/breakpoints.constants';\r\nimport useMediaQuery from '../../lib/custom-hooks/useMediaQuery';\r\nimport { HeroBannerModel } from './models/heroBanner.model';\r\nimport { HeroBannerProps } from './types/heroBanner.types';\r\nimport { targetLinkdsk } from '../../utils/targetDskLink';\r\nimport { googleClickCtaEvent } from '../../utils/analytics';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\nimport { shouldPioritizeComponentResources } from '../../utils/component.utils';\r\n\r\nconst SmallHero: FC = (props) => {\r\n const model = new HeroBannerModel(props);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const placeholderData = props?.sitecoreContext?.route?.placeholders['jss-main'] || [];\r\n const shouldPioritize = useMemo(() => shouldPioritizeComponentResources(placeholderData, 'SmallHero'), [placeholderData]);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n {/* Need to update useHeroBanner hook if the images sent to Picture component are changed */}\r\n \r\n
    \r\n {model?.eyebrow && }\r\n \r\n {model?.description && (\r\n \r\n )}\r\n \r\n {model?.primaryLink?.value?.href && (\r\n \r\n \r\n googleClickCtaEvent(\r\n 'Hero',\r\n model?.primaryLink?.value?.text ?? model?.primaryLink?.value?.title,\r\n model.title?.value ?? model.eyebrow?.value\r\n )\r\n }\r\n />\r\n \r\n )}\r\n \r\n \r\n {model?.secondaryLink?.value?.href && (\r\n \r\n \r\n googleClickCtaEvent(\r\n 'Hero',\r\n model?.secondaryLink?.value?.text ?? model?.secondaryLink?.value?.title,\r\n model.title?.value ?? model.eyebrow?.value\r\n )\r\n }\r\n />\r\n \r\n )}\r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(SmallHero);\r\n","import React, { useEffect, FC } from 'react';\r\nimport { SpecCheckModel } from '../models/specCheck.model';\r\n\r\nconst SpecCheck: FC<{ model: SpecCheckModel }> = ({ model }) => {\r\n useEffect(() => {\r\n const pluginScriptUrl = 'https://lite.speccheck.com/js/plugin.js';\r\n const knockoutScriptUrl = 'https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js';\r\n let specCheckAdditionalProperties = {};\r\n try {\r\n const aditionalParametersNormalizedJson = (model.additionalParameters || '{}')\r\n .replace(/,\\s*\\}/g, '}')\r\n .replace(/(['\"])?([a-zA-Z0-9_]+)(['\"])?:/g, '\"$2\": ');\r\n specCheckAdditionalProperties = JSON.parse(aditionalParametersNormalizedJson);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n\r\n const scriptElement = document.createElement('script');\r\n\r\n scriptElement.setAttribute('type', 'text/javascript');\r\n\r\n scriptElement.innerHTML = `\r\n ///\r\n /// Pretty self explanitory. Pulls the query strings into something we can use.\r\n ///\r\n function getUrlParameter(name) {\r\n name = name.replace(/[\\\\[]/, '\\\\\\\\[').replace(/[\\\\]]/, '\\\\\\\\]');\r\n var regex = new RegExp('[\\\\\\\\?&]' + name + '=([^&#]*)');\r\n var results = regex.exec(location.search);\r\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\\\+/g, ' '));\r\n };\r\n \r\n ///\r\n /// helper function so we know when the script is laoded.\r\n ///\r\n function loadScript(src, callback) {\r\n let script = document.createElement('script');\r\n script.src = src;\r\n script.onload = () => callback(script);\r\n document.head.append(script);\r\n }\r\n ///\r\n /// Handles analytics updates based on spec check's page load event. This tweaks spec check's model to something GTM can understand.\r\n ///\r\n function analyticsHandler(e) {\r\n var dataLayerObject = JSON.parse(JSON.stringify(e));\r\n dataLayerObject.sc = dataLayerObject.state;\r\n if (dataLayerObject.sc.subject === undefined) { // clear out\r\n dataLayerObject.sc.subject = {};\r\n dataLayerObject.sc.subject.manufacturer = undefined;\r\n dataLayerObject.sc.subject.model = undefined;\r\n \r\n }\r\n if (dataLayerObject.sc.compareTo === undefined || dataLayerObject.sc.compareTo.length === 0) {\r\n dataLayerObject.sc.compareTo = {};\r\n dataLayerObject.sc.compareTo.manufacturer = undefined;\r\n dataLayerObject.sc.compareTo.model = undefined;\r\n \r\n } else {\r\n dataLayerObject.sc.compareTo = {};\r\n dataLayerObject.sc.compareTo.manufacturer = e.state.compareTo[0].manufacturer;\r\n dataLayerObject.sc.compareTo.model = e.state.compareTo[0].model;\r\n }\r\n if (!dataLayerObject.sc.range) {\r\n dataLayerObject.sc.range = undefined;\r\n }\r\n if (!dataLayerObject.sc.rangePath || (Array.isArray(dataLayerObject.sc.rangePath) && dataLayerObject.sc.rangePath.length == 0)) {\r\n dataLayerObject.sc.rangePath = undefined;\r\n }\r\n \r\n if (e.event === \"page-load\" && window.dataLayer) {\r\n dataLayerObject.event = 'virtualPage';\r\n \r\n window.dataLayer.push(dataLayerObject);\r\n \r\n \r\n if (e.state.page === \"comparison\") {\r\n //Safest way to push parameters into a function called via a setTimeout.\r\n //Create a function variable, and use .bind(null, variableName);\r\n \r\n var __push = function(dataLayerObjectClone) {\r\n window.dataLayer.push(dataLayerObjectClone);\r\n };\r\n // loop over compareTo array and datalayer push each separately\r\n \r\n for (var i = 0; i < e.state.compareTo.length; i++) {\r\n dataLayerObject.event = 'pageAction';\r\n dataLayerObject.sc.compareTo = {};\r\n dataLayerObject.sc.compareTo.manufacturer = e.state.compareTo[i].manufacturer;\r\n dataLayerObject.sc.compareTo.model = e.state.compareTo[i].model;\r\n \r\n setTimeout(__push.bind(null, JSON.parse(JSON.stringify(dataLayerObject))), 200 * i);\r\n }\r\n }\r\n } else if (window.dataLayer) {\r\n window.dataLayer.push(dataLayerObject);\r\n \r\n } else {\r\n var retries = 0;\r\n var interval = setInterval(function() {\r\n retries++;\r\n if (window.dataLayer) {\r\n window.dataLayer.push(dataLayerObject);\r\n clearInterval(interval);\r\n }\r\n if (retries > 10) {\r\n clearInterval(interval);\r\n \r\n }\r\n }, 1000);\r\n }\r\n }\r\n \r\n function startLoad() {\r\n loadScript('${pluginScriptUrl}', function() {\r\n loadScript(['${knockoutScriptUrl}'], function() {\r\n var config = {\r\n promise: Promise,\r\n knockout: window.ko,\r\n container: document.querySelector(\".speccheck\"),\r\n embedId:${model.embedId},\r\n history: {\r\n enabled: true,\r\n history: history,\r\n window: window\r\n },\r\n eventHandler: analyticsHandler,\r\n ...${JSON.stringify(specCheckAdditionalProperties)}\r\n };\r\n var startParam = getUrlParameter('start');\r\n if (startParam !== '') {\r\n if(typeof config.rangeSelection === 'object'){\r\n config.rangeSelection.start = startParam\r\n } else {\r\n config.rangeSelection = {\r\n start: startParam\r\n };\r\n }\r\n }\r\n var idParam = getUrlParameter('specCheckId');\r\n if (idParam !== '') {\r\n config.embedId = idParam;\r\n }\r\n \r\n window.__specCheck = new SpecCheckLite(config).create();\r\n });\r\n });\r\n }\r\n startLoad();\r\n `;\r\n\r\n document.head.appendChild(scriptElement);\r\n }, []);\r\n\r\n const title = model.title ? model.title : '';\r\n\r\n return (\r\n <>\r\n

    {title}

    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default SpecCheck;\r\n","import { ComponentParams, ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport { SpecCheckProps } from '../types/specCheck.types';\r\n\r\nexport class SpecCheckModel {\r\n private readonly params?: ComponentParams;\r\n private readonly rendering?: ComponentRendering;\r\n\r\n constructor(props: SpecCheckProps) {\r\n this.params = props?.params;\r\n this.rendering = props?.rendering;\r\n }\r\n\r\n get componentName(): string {\r\n return this.rendering?.componentName || '';\r\n }\r\n\r\n get title(): string | undefined {\r\n return this.params?.title;\r\n }\r\n\r\n get embedId(): string | undefined {\r\n return this.params?.embedId;\r\n }\r\n\r\n get additionalParameters(): string | undefined {\r\n return this.params?.additionalParameters;\r\n }\r\n\r\n}\r\n","import React, { FC } from 'react';\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\nimport EmptyApiDataMessage from '../@shared/emptyApiDataMessage';\r\nimport SpecCheckPluginContainer from './components/pluginContainer';\r\nimport { SpecCheckProps } from './types/specCheck.types';\r\nimport { SpecCheckModel } from './models/specCheck.model';\r\n\r\nconst SpecCheck: FC = (props) => {\r\n const model = new SpecCheckModel(props);\r\n\r\n if (!model.embedId && !model.title) {\r\n return isEditorActive() ? : <>;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default SpecCheck;\r\n","import { KeepInTouchFields, KeepInTouchProps } from '../types/subscriptionBox.types';\r\nimport { CheckboxField, LinkField, StringField, TComponentParamsGeneral, THeadingTag, TSocialLinkProps } from '../../../types/types';\r\n\r\nexport class KeepInTouchModel {\r\n private readonly fields: null | KeepInTouchFields;\r\n private readonly params?: TComponentParamsGeneral;\r\n\r\n constructor(props: KeepInTouchProps) {\r\n this.fields = props?.fields || null;\r\n this.params = props?.params;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get content(): StringField | undefined {\r\n return this.fields?.content;\r\n }\r\n\r\n get textboxPlaceholderText(): StringField | undefined {\r\n return this.fields?.textboxPlaceholderText;\r\n }\r\n\r\n get showForm(): CheckboxField | undefined {\r\n return this.fields?.showForm;\r\n }\r\n\r\n get submitButtonLink(): LinkField | undefined {\r\n return this.fields?.submitButtonLink;\r\n }\r\n\r\n get socialMediaTitle(): StringField | undefined {\r\n return this.fields?.socialMediaTitle;\r\n }\r\n\r\n get socialMediaLinks(): TSocialLinkProps[] {\r\n return this.fields?.items || [];\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h2';\r\n }\r\n}\r\n","import React from 'react';\r\nimport { RichText, Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { KeepInTouchProps } from './types/subscriptionBox.types';\r\nimport { KeepInTouchModel } from './models/subscriptionBox.model';\r\nimport LazySection from '../@shared/lazySection';\r\nimport Icon from '../@shared/icon';\r\nimport CustomExternalAnchor from '../@shared/customExternalAnchor';\r\nimport { EditFrameComponent } from '../@shared/editFrame';\r\nimport fields from '../../constants/fields.const';\r\nimport { iconSize } from '../../constants/icon.constants';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst SubscriptionBox = (props: KeepInTouchProps): JSX.Element => {\r\n const model = new KeepInTouchModel(props);\r\n const socialText = model.showForm?.value\r\n ? 'subscription-box__social__text subscription-box__social__text--with-form'\r\n : 'subscription-box__social__text';\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {model.title && }\r\n {model.showForm?.value && (\r\n <>\r\n {model.content && }\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    {model.socialMediaTitle && }
    \r\n
    \r\n {model.socialMediaLinks.map((item) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst SocialLink = (props): JSX.Element => {\r\n return props.sitecoreContext?.pageEditing ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst KeepInTouchForm = (): JSX.Element => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default withSitecoreContext()(SubscriptionBox);\r\n","import { ImageField, LinkField, StringField, THeadingTag, TIconField, TIconFromRenderingParams } from '../../../types/types';\r\nimport { TColHeadings, TGroupItemFields, TGroupItems, TRowFields, TRowItems, TTableFields, TTableProps } from '../types/index.types';\r\nimport { counterArray } from '../../../utils/counterArray.utils';\r\nimport { ComponentParams } from '@sitecore-jss/sitecore-jss-react';\r\nimport { BACKGROUND_COLOR_MAP, BACKGROUND_COLOR_CLASS_MAP } from '../../../constants/background-color.constants';\r\nimport { getFollowingHTag } from '../../../utils/seo.utils';\r\nimport { windowService } from '../../../utils/window.utils';\r\nimport { APIPrefix } from '../../../constants/api.constants';\r\nexport class TableRowModel {\r\n private readonly fields: TRowFields | undefined;\r\n\r\n constructor(props: TRowItems) {\r\n this.fields = props?.fields;\r\n }\r\n\r\n getCellData(number: number): StringField {\r\n return this.fields?.[`cell${number}`];\r\n }\r\n\r\n getIconCellData(number): TIconField {\r\n return this.fields?.[`icon_cell${number}`];\r\n }\r\n\r\n get groupName(): StringField | undefined {\r\n return this.fields?.groupName;\r\n }\r\n\r\n get icon(): ImageField | undefined {\r\n return this.fields?.icon;\r\n }\r\n\r\n get tooltipTitle(): StringField | undefined {\r\n return this.fields?.tooltipTitle;\r\n }\r\n\r\n get tooltip(): StringField | undefined {\r\n return this.fields?.tooltip;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n}\r\n\r\nexport class TableGroupModel {\r\n private readonly fields: TGroupItemFields | undefined;\r\n\r\n constructor(props: TGroupItems) {\r\n this.fields = props?.fields;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get items(): TableRowModel[] {\r\n return this.fields?.items?.map((item) => new TableRowModel(item)) || [];\r\n }\r\n}\r\n\r\nexport class TableModel {\r\n private readonly fields: TTableFields | undefined;\r\n private readonly params: ComponentParams | undefined;\r\n\r\n constructor(props: TTableProps) {\r\n this.fields = props?.fields;\r\n this.params = props?.params;\r\n }\r\n\r\n get backgroundColor(): string | undefined {\r\n return BACKGROUND_COLOR_MAP.get(this.params?.backgroundColor || '');\r\n }\r\n\r\n get backgroundColorClass(): string | undefined {\r\n return BACKGROUND_COLOR_CLASS_MAP.get(this.params?.backgroundColor || '') || '';\r\n }\r\n\r\n get colHeadings(): TColHeadings[] {\r\n const totalColumns = Number(this.fields?.nOfVisibleColumn?.value);\r\n if (totalColumns) {\r\n return counterArray(totalColumns).map((num: number) => {\r\n return {\r\n text: this.getColumnTextData(num),\r\n image: this.getColumnImageData(num),\r\n };\r\n });\r\n }\r\n return [];\r\n }\r\n\r\n getColumnTextData(number: string | number): StringField {\r\n return this.fields?.[`column${number}Text`];\r\n }\r\n\r\n getColumnImageData(number: string | number): ImageField {\r\n return this.fields?.[`column${number}Image`];\r\n }\r\n\r\n get items(): Array {\r\n const items = this.fields?.items?.map((item) => {\r\n if ((item.fields as TGroupItemFields)?.templateId === '{467E4AEE-FF09-45E2-81F4-EE28518E8559}') {\r\n return new TableGroupModel(item);\r\n } else {\r\n return new TableRowModel(item);\r\n }\r\n });\r\n return items || [];\r\n }\r\n\r\n get groupItemsIndexes(): number[] {\r\n const newExpandedRows: number[] = [];\r\n this.items.forEach((item, index) => {\r\n if (item instanceof TableGroupModel) {\r\n newExpandedRows.push(index);\r\n }\r\n });\r\n return newExpandedRows;\r\n }\r\n\r\n get nOfVisibleColumn(): number {\r\n return Number(this.fields?.nOfVisibleColumn?.value);\r\n }\r\n\r\n get disableExpand(): boolean {\r\n return this.fields?.disableExpand?.value || false;\r\n }\r\n\r\n get disableSearch(): boolean {\r\n return this.fields?.tableSettings?.hideSearch === '1';\r\n }\r\n\r\n get disablePrint(): boolean {\r\n return this.fields?.tableSettings?.hidePrint === '1';\r\n }\r\n\r\n get disableExcel(): boolean {\r\n return this.fields?.tableSettings?.showDownloadExcel === '1';\r\n }\r\n\r\n get hideHeadingSection(): boolean {\r\n return this.fields?.tableSettings?.hideHeadingSectionOfTable === '1';\r\n }\r\n\r\n get hideRowsHeader(): boolean {\r\n return this.fields?.tableSettings?.hideFirstColumn === '1';\r\n }\r\n\r\n get hideImageOnHeadingRow(): boolean {\r\n return this.fields?.tableSettings?.hideImageOnHeadingRow === '1';\r\n }\r\n\r\n get hideAccordionTabIcon(): boolean {\r\n return this.fields?.tableSettings?.hideAccordionTabPlusMinusIcon === '1';\r\n }\r\n\r\n get hideColumnHeader(): boolean {\r\n return this.fields?.tableSettings?.hideHeadingRow === '1';\r\n }\r\n\r\n get showIconsOnCells(): boolean {\r\n return this.fields?.tableSettings?.showIconsOnCells === '1';\r\n }\r\n\r\n get stickyHeadingRow(): boolean {\r\n return this.fields?.stickyHeadingRow?.value || false;\r\n }\r\n\r\n get stickyHeadingColumn(): boolean {\r\n return this.fields?.stickyHeadingColumn?.value || false;\r\n }\r\n\r\n get heading(): StringField | undefined {\r\n return this.fields?.heading;\r\n }\r\n\r\n get link(): LinkField | undefined {\r\n return this.fields?.link;\r\n }\r\n\r\n get eyebrow(): StringField | undefined {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h3';\r\n }\r\n\r\n get groupHeadingTag(): THeadingTag {\r\n return getFollowingHTag(this.headingTag);\r\n }\r\n\r\n rowTitlePlainText(richText: string): string {\r\n if (!windowService()?.DOMParser) return '';\r\n const parser = new DOMParser();\r\n const parseText = parser.parseFromString(richText, 'text/html').documentElement.textContent || '';\r\n return parseText;\r\n }\r\n\r\n get iconsList(): Array {\r\n return this.fields?.iconsList || [];\r\n }\r\n \r\n\r\n get convertToExcelLink(): string {\r\n const specificationUrlParametersArray = [\r\n this.fields?.tableSettings?.exportDataId,\r\n this.fields?.tableSettings?.excelSettings || '-',\r\n this.fields?.tableSettings?.showIconsOnCells,\r\n ];\r\n\r\n const specificationUrlParameters = specificationUrlParametersArray.join('/');\r\n return `/${APIPrefix}/download/table/${specificationUrlParameters}`;\r\n }\r\n}\r\n","export function counterArray(n: number) {\r\n const arr: Array = [];\r\n for (let i = 1; i <= n; i++) {\r\n arr.push(i);\r\n }\r\n return arr;\r\n}\r\n","import React, { FC } from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TColumnHeadingElement } from '../../types/index.types';\r\nimport Picture from '../../../@shared/picture';\r\n\r\nconst ColumnHeadingElement: FC = (props) => {\r\n if (!props.colHeadings?.length) return null;\r\n return (\r\n <>\r\n {props.colHeadings\r\n ?.filter((_, columnIndex) => {\r\n if (!props.showHiddenRightCells) return columnIndex <= 5;\r\n return true;\r\n })\r\n .map((val) => {\r\n const text = val?.text;\r\n const image = val?.image;\r\n return (\r\n \r\n
    \r\n {!props.isHideImage && (\r\n \r\n )}\r\n \r\n {!!text && }\r\n
    \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default ColumnHeadingElement;\r\n","import React, { FC, useEffect, useRef, useState } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { TGridCSSVariables } from '../../../../constants/table.constants';\r\nimport useStickyWrapper from '../../../../hooks/useStickyWrapper';\r\nimport { TFixedColHeadingProps } from '../../types/index.types';\r\n\r\nconst FixedColHeading: FC = (props) => {\r\n const {\r\n fixedColumnHeading,\r\n hideRowsHeader,\r\n children,\r\n gridColumns,\r\n gridFixedColHeadsMoveBy,\r\n gridFirstColumnWidth,\r\n gridColumnWidth,\r\n gridOutsideSpaceHalved,\r\n gridLeftCellsMoveBy,\r\n } = props;\r\n const FixedColHeadingRef = useRef(null);\r\n const [variableInserted, setVariablesInserted] = useState(fixedColumnHeading);\r\n const stickyWrapperEle = useStickyWrapper();\r\n\r\n useEffect(() => {\r\n if (!fixedColumnHeading) {\r\n setVariablesInserted(() => false);\r\n return;\r\n }\r\n const fixedColHeadingEl = FixedColHeadingRef.current as HTMLElement | null;\r\n if (!fixedColHeadingEl) return;\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridColumns, gridColumns);\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridFixedColHeadsMoveBy, gridFixedColHeadsMoveBy);\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridFirstColumnWidth, gridFirstColumnWidth);\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridColumnWidth, gridColumnWidth);\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridOutsideSpaceHalved, gridOutsideSpaceHalved);\r\n fixedColHeadingEl.style.setProperty(TGridCSSVariables.gridLeftCellsMoveBy, gridLeftCellsMoveBy);\r\n setVariablesInserted(() => true);\r\n }, [\r\n setVariablesInserted,\r\n fixedColumnHeading,\r\n FixedColHeadingRef,\r\n gridColumns,\r\n gridFixedColHeadsMoveBy,\r\n gridFirstColumnWidth,\r\n gridColumnWidth,\r\n gridOutsideSpaceHalved,\r\n gridLeftCellsMoveBy,\r\n ]);\r\n\r\n if (!stickyWrapperEle || !fixedColumnHeading) return null;\r\n\r\n return createPortal(\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {!hideRowsHeader && (\r\n
    \r\n )}\r\n {children}\r\n
    \r\n
    \r\n
    \r\n
    ,\r\n stickyWrapperEle\r\n );\r\n};\r\n\r\nexport default FixedColHeading;\r\n","import React, { FC } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport Icon from '../../../../@shared/icon';\r\nimport { TInputBox } from '../../../types/index.types';\r\nimport DictionaryTerm from '../../../../@shared/dictionaryTerm';\r\n\r\nconst InputBox: FC = (props) => {\r\n const { searchTerm, setSearchTerm, t } = props;\r\n\r\n const handleKeyUp = (event) => {\r\n if (setSearchTerm) {\r\n setSearchTerm(event?.currentTarget?.value);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {searchTerm && (\r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nexport default InputBox;\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport ctaTypes from '../../../../../enums/CTA.enums';\r\nimport { googleClickCtaEvent } from '../../../../../utils/analytics';\r\nimport { targetLinkdsk } from '../../../../../utils/targetDskLink';\r\nimport CTA from '../../../../@shared/cta';\r\nimport Icon from '../../../../@shared/icon';\r\nimport InputBox from './inputBox';\r\n\r\nconst TableHeader = (props) => {\r\n const { t } = useTranslation();\r\n const {\r\n model,\r\n isEE,\r\n isDesktop,\r\n toggleAllRows,\r\n expandedRows,\r\n hideArrowButton,\r\n moveGridLeft,\r\n moveGridRight,\r\n setSearchTerm,\r\n searchTerm,\r\n printStart,\r\n } = props;\r\n return (\r\n
    \r\n
    \r\n {model.eyebrow && (\r\n \r\n )}\r\n {model.heading && (\r\n \r\n )}\r\n {(isEE || (model?.link?.value?.href && model?.link?.value?.text)) && (\r\n
    \r\n googleClickCtaEvent('Link', model?.link?.value?.text, model?.heading?.value ?? model.eyebrow?.value)}\r\n />\r\n
    \r\n {isDesktop && !model.disableExcel && (\r\n // special case to not use RoutableNotEditableLink\r\n // ignored to allow download\r\n \r\n {t('cnhi-excelExport')}\r\n \r\n \r\n )}\r\n {isDesktop && !model.disablePrint && (\r\n {\r\n printStart();\r\n }}\r\n >\r\n {t('cnhi-print')}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n {!model.disableExpand && (\r\n \r\n )}\r\n {isDesktop && !model.disableSearch && }\r\n
    \r\n {!isDesktop && !model.disableExcel && (\r\n // special case to not use RoutableNotEditableLink\r\n // ignored to allow download\r\n \r\n \r\n \r\n )}\r\n {!isDesktop && !model.disablePrint && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!hideArrowButton && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n {!isDesktop && !model.disableSearch && }\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TableHeader;\r\n","import React, { FC, useMemo } from 'react';\r\nimport ReactDOMServer from 'react-dom/server';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { windowService } from '../../../../../utils/window.utils';\r\nimport { seperateSplitsAndMatched } from '../../../../../utils/regex.utils';\r\nimport { TFormatText } from '../../../types/index.types';\r\n\r\nconst FormatText: FC = ({ text, searchTerm, editable = false, extraClassName = '', tagname, onClick }) => {\r\n const highlightText = (splits: Array, matched: Array): JSX.Element[] => {\r\n return splits.map((split, idx) => (\r\n <>\r\n {split}\r\n {matched[idx]}\r\n \r\n ));\r\n };\r\n\r\n const searchInNodes = (node: Node) => {\r\n if (node.nodeType === Node.TEXT_NODE) {\r\n const internalText = node.textContent || text;\r\n const { splits, matched } = seperateSplitsAndMatched(internalText, searchTerm);\r\n const result = splits.length === matched.length + 1 ? highlightText(splits, matched) : text;\r\n const highlightedText = ReactDOMServer.renderToString(<>{result});\r\n const span = document.createElement('span');\r\n span.innerHTML = highlightedText;\r\n if (node.parentNode) {\r\n node.parentNode.insertBefore(span, node);\r\n node.parentNode.removeChild(node);\r\n }\r\n } else if (node.nodeType === Node.ELEMENT_NODE) {\r\n for (const childNode of Array.from(node.childNodes)) {\r\n searchInNodes(childNode);\r\n }\r\n }\r\n };\r\n\r\n const serializedText = useMemo((): string => {\r\n if (searchTerm) {\r\n if (!windowService()?.DOMParser) return text;\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(text, 'text/html');\r\n searchInNodes(doc.body);\r\n return doc.body.innerHTML;\r\n }\r\n return text;\r\n }, [searchTerm]);\r\n\r\n return ;\r\n};\r\n\r\nexport default FormatText;\r\n","import { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { googleClickRichTextEvent } from '../../../../../utils/analytics';\r\nimport InfoToolTip from '../../../../@shared/infoToolTip';\r\nimport { TLeftMostCellProps } from '../../../types/index.types';\r\nimport FormatText from './formatText';\r\n\r\nconst LeftMostCell: FC = (props): JSX.Element => {\r\n const { row, heading, eyebrow, searchTerm } = props;\r\n\r\n return (\r\n <>\r\n {row.title && (\r\n googleClickRichTextEvent(event, heading?.value ?? eyebrow?.value)}\r\n />\r\n )}\r\n \r\n
    \r\n {row.tooltipTitle && (\r\n \r\n )}\r\n {row.tooltip && (\r\n googleClickRichTextEvent(event, heading?.value)}\r\n />\r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default LeftMostCell;\r\n","import React, { FC } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { googleClickRichTextEvent } from '../../../../../utils/analytics';\r\nimport { TCellTextProps } from '../../../types/index.types';\r\n\r\nconst CellText: FC = (props): JSX.Element | null => {\r\n const { index, row, heading, eyebrow, fadeIn, hideCell } = props;\r\n\r\n const data = row.getCellData(index);\r\n\r\n if (!data?.value) return null;\r\n\r\n return (\r\n googleClickRichTextEvent(event, heading?.value ?? eyebrow?.value)}\r\n />\r\n );\r\n};\r\n\r\nexport default CellText;\r\n","import React, { FC } from 'react';\r\nimport { TCellIconProps } from '../../../types/index.types';\r\n\r\nconst CellIcon: FC = (props): JSX.Element | null => {\r\n const { index, row, fadeIn, hideCell } = props;\r\n\r\n const data = row.getIconCellData(index);\r\n\r\n if (!data) return null;\r\n\r\n return (\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CellIcon;\r\n","import React, { FC } from 'react';\r\nimport { TSpecCellProps } from '../../../types/index.types';\r\nimport CellText from './cellText';\r\nimport CellIcon from './cellIcon';\r\n\r\nconst SpecCell: FC = (props) => {\r\n const { specIndex, subObj, lastRow, fadeIn, hide, showHiddenRightCells, heading, eyebrow, isShowIconOnCell } = props;\r\n\r\n if (!showHiddenRightCells && specIndex > 5) return null;\r\n\r\n return (\r\n \r\n {isShowIconOnCell ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default SpecCell;\r\n","import React, { useEffect, useRef, useState, FC } from 'react';\r\nimport { TSubValueRow } from '../../../types/index.types';\r\nimport LeftMostCell from './leftMostCell';\r\nimport SpecCell from './specCell';\r\n\r\nconst FADE_TIME = 600;\r\n\r\nconst SubValueRow: FC = ({ model, subObj, hide, subArr, accIndex, showHiddenRightCells, searchTerm }) => {\r\n const [hideRow, setHideRow] = useState(hide);\r\n const [fadeIn, setFadeIn] = useState(false);\r\n const prevHideRef = useRef(false);\r\n const timerRef = useRef | null>(null);\r\n\r\n useEffect(() => {\r\n const prevHide = prevHideRef.current;\r\n\r\n prevHideRef.current = hide;\r\n\r\n if (!prevHide && hide) {\r\n timerRef.current = setTimeout(() => {\r\n setHideRow(() => hide);\r\n }, FADE_TIME);\r\n }\r\n\r\n if (prevHide && !hide) {\r\n setHideRow(() => hide);\r\n setFadeIn(() => true);\r\n setTimeout(() => {\r\n setFadeIn(() => false);\r\n }, FADE_TIME);\r\n }\r\n\r\n return () => {\r\n if (timerRef.current) {\r\n clearTimeout(timerRef.current);\r\n }\r\n };\r\n }, [hide, setHideRow]);\r\n\r\n if (hideRow) return null;\r\n\r\n return (\r\n \r\n {!model.hideRowsHeader && subObj.title?.value && (\r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {model.colHeadings?.map((spec, specIndex) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(SubValueRow);\r\n","import React, { FC, useMemo } from 'react';\r\nimport { iconSize } from '../../../../../constants/icon.constants';\r\nimport Icon from '../../../../@shared/icon';\r\nimport { TGroupRowItemProps } from '../../../types/index.types';\r\nimport SubvalueRow from './subValueRow';\r\nimport FormatText from './formatText';\r\nimport { textContains } from '../../../../../utils/regex.utils';\r\n\r\nconst DynamicHeadingTag = ({ tag, className, children }) => React.createElement(tag || 'div', { className }, children);\r\n\r\nconst GroupRow: FC = (props) => {\r\n const { model, obj, index, toggleRow, expandedRows, showHiddenRightCells, searchTerm } = props;\r\n const hide = !expandedRows.includes(index);\r\n\r\n const tableSubRows = useMemo(() => {\r\n if (searchTerm) {\r\n const data = obj.items.filter((element) => {\r\n const plainText = model.rowTitlePlainText(element?.title?.value as string);\r\n return textContains(plainText, searchTerm);\r\n });\r\n return data;\r\n }\r\n return obj.items;\r\n }, [searchTerm]);\r\n\r\n return (\r\n <>\r\n toggleRow(index)}>\r\n \r\n \r\n {!model.hideAccordionTabIcon && (\r\n \r\n )}\r\n {obj.title && }\r\n \r\n \r\n \r\n {tableSubRows &&\r\n tableSubRows.map((subObj, accIndex, subArr) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default GroupRow;\r\n","import React, { FC } from 'react';\r\nimport { TableGroupModel } from '../../../models/index.model';\r\nimport { TNormalRowItemProps } from '../../../types/index.types';\r\nimport LeftMostCell from './leftMostCell';\r\nimport SpecCell from './specCell';\r\n\r\nconst NormalRow: FC = (props) => {\r\n const { model, obj, index, showHiddenRightCells, searchTerm } = props;\r\n\r\n const lastRow =\r\n model.items.length === index + 1 || (index + 1 < model.items.length && model.items?.[index + 1] instanceof TableGroupModel);\r\n\r\n return (\r\n \r\n {!model.hideRowsHeader && obj.title?.value && (\r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {model.colHeadings?.map((spec, specIndex) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default NormalRow;\r\n","import React, { FC } from 'react';\r\nimport { TableGroupModel, TableRowModel } from '../../../models/index.model';\r\nimport { TRowItemProps } from '../../../types/index.types';\r\nimport GroupRow from './groupRow';\r\nimport NormalRow from './normalRow';\r\n\r\nconst RowItems: FC = (props) => {\r\n if (props.obj instanceof TableGroupModel) {\r\n return ;\r\n }\r\n\r\n if (props.obj instanceof TableRowModel) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default RowItems;\r\n","import React from 'react';\r\nimport { TableGroupModel } from '../../models/index.model';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nfunction PrintTable({ colHeadings, tableRows, isShowIconOnCell }) {\r\n const renderCell = (row, index) => {\r\n if (isShowIconOnCell) {\r\n const iconData = row.getIconCellData(index);\r\n\r\n if (!iconData) return;\r\n return (\r\n \r\n );\r\n }\r\n return row.getCellData(index).value;\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {colHeadings?.map((val) => (\r\n
    {val?.text?.value}
    \r\n ))}\r\n {tableRows.map((obj) =>\r\n obj instanceof TableGroupModel ? (\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {obj.items &&\r\n obj.items.map((subObj, accIndex, subArr) => (\r\n <>\r\n {subObj.title.value && (\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n {colHeadings.map((spec, specIndex) => (\r\n \r\n {renderCell(subObj, specIndex + 1)}\r\n
    \r\n ))}\r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n {obj?.title?.value && (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n {colHeadings.map((spec, specIndex) => (\r\n \r\n {renderCell(obj, specIndex + 1)}\r\n \r\n ))}\r\n \r\n )\r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PrintTable;\r\n","import React, { useEffect, useRef, FC } from 'react';\r\nimport { windowService, documentService } from '../../../../utils/window.utils';\r\nimport { TPrintTableContent } from '../../types/index.types';\r\nimport PrintTable from './printTable';\r\nimport PrintTableCSS from './printTableStyles';\r\n\r\nconst PrintTableContent: FC = (props) => {\r\n const printWrapperRef = useRef(null);\r\n\r\n useEffect(() => {\r\n const cleanupFunction = () => props.cleanupFunction();\r\n if (props.printActive) {\r\n const clearTableStylesTag = (): void => {\r\n const styledTag = documentService().getElementById('model-details-specification-table-styles');\r\n if (styledTag) {\r\n styledTag.parentElement.removeChild(styledTag);\r\n }\r\n };\r\n clearTableStylesTag();\r\n const style = documentService().createElement('style');\r\n style.setAttribute('id', 'model-details-specification-table-styles');\r\n style.setAttribute('rel', 'stylesheet');\r\n style.setAttribute('type', 'text/css');\r\n style.setAttribute('media', 'print');\r\n\r\n style.appendChild(documentService().createTextNode(PrintTableCSS(props.colHeadings.length + 1)));\r\n documentService().head.appendChild(style);\r\n // Note: For some crazy reason window.print is not a blocking command when the page freshly load without cache\r\n // As a temporary fix adding eventListeners for after print\r\n /** afterprint event is replaced with focus event as afterprint is triggered even before the print operation\r\n * is started in some mobile devices\r\n */\r\n windowService().addEventListener('focus', clearTableStylesTag, { once: true });\r\n windowService().addEventListener('focus', cleanupFunction, { once: true });\r\n if (windowService().print) {\r\n windowService().print();\r\n }\r\n }\r\n }, [props.printActive, printWrapperRef]);\r\n\r\n if (!props.printActive) {\r\n return null;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default React.memo(PrintTableContent);\r\n","export default function printTableStyles(colLength) {\r\n return `\r\n #root > * {\r\n display: none;\r\n }\r\n #root > main {\r\n display: block;\r\n }\r\n #root > header > *, #root > main > * , #root > footer > *, svg {\r\n display: none;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper {\r\n display: block;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper > * {\r\n display: none;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper {\r\n display: block;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper > .model-details-specification-table-header,\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper > .model-detail-specification-table,\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper > .model-detail-specification-table__search-no-match {\r\n display: none;\r\n }\r\n #root > main > div.model-specifications-table-analytics-wrapper > .model-details-specification-table-wrapper > .model-detail-specification-table-print {\r\n display: block;\r\n overflow: hidden;\r\n width: 100%;\r\n }\r\n .model-detail-specification-table-print {\r\n width: 100%;\r\n background-color: #ffffff;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table-print__grid {\r\n display: grid;\r\n position: relative;\r\n grid-template-columns: repeat(${colLength}, auto);\r\n align-items: center;\r\n background-color: #ffffff;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table__fixed-col-heading {\r\n display: none;\r\n }\r\n .model-detail-specification-table-print__col-heading {\r\n color: #a71930;\r\n font-weight: 700;\r\n position: relative;\r\n font-size: 12px;\r\n line-height: 20px;\r\n background-color: #ffffff;\r\n -webkit-print-color-adjust: exact;\r\n padding: 8px 0 4px 16px;\r\n }\r\n .model-detail-specification-table-print__spec {\r\n color: #1e1e1d;\r\n font-size: 12px;\r\n line-height: 20px;\r\n border-bottom: 1px solid #d1d2d4;\r\n display: flex;\r\n height: 100%;\r\n align-items: center;\r\n padding: 16px;\r\n }\r\n .model-detail-specification-table-print__spec--even {\r\n background-color: #ffffff;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table-print__spec--odd {\r\n background-color: #fbfbfb;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table-print__spec--last-row {\r\n border: 0;\r\n }\r\n .model-detail-specification-table-print__spec-category-row {\r\n color: #1e1e1d;\r\n font-weight: 700;\r\n background-color: #f4f4f4;\r\n -webkit-print-color-adjust: exact;\r\n display: flex;\r\n grid-column: 1/-1;\r\n cursor: pointer;\r\n }\r\n .model-detail-specification-table-print__spec-category-row__empty-row {\r\n flex-grow: 1;\r\n }\r\n .model-detail-specification-table-print__spec-category-row__inner-box-wrapper {\r\n z-index: 2;\r\n background-color: #f4f4f4;\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .model-detail-specification-table-print__spec-category-row__border-collapsed {\r\n border-bottom: 1px solid #d1d2d4;\r\n }\r\n .model-detail-specification-table-print__spec-category-row__inner-box {\r\n margin-left: 32px;\r\n padding: 16px 0;\r\n }\r\n .model-detail-specification-table-print__left-side-accordion-spec-title {\r\n font-size: 12px;\r\n line-height: 20px;\r\n background-color: #fbfbfb;\r\n -webkit-print-color-adjust: exact;\r\n font-weight: 600;\r\n display: flex;\r\n height: 100%;\r\n z-index: 2;\r\n }\r\n .model-detail-specification-table-print__left-side-accordion-spec-title__inner-box {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n border-bottom: 1px solid #d1d2d4;\r\n margin-left: 32px;\r\n padding: 16px 16px 16px 0;\r\n }\r\n .model-detail-specification-table-print__left-side-accordion-spec-title__inner-box--last-row {\r\n border: 0;\r\n }\r\n .model-detail-specification-table__spec--cell-icon-img{\r\n height: 32px;\r\n width: 32px;\r\n }\r\n .model-detail-specification-table-print__spec-row-child {\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n opacity: 1;\r\n }\r\n `;\r\n}\r\n","import React, { FC, useRef, useEffect, useState, useMemo, useCallback } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { BreakpointsInPx, Breakpoints } from '../../../../constants/breakpoints.constants';\r\nimport { iconSize } from '../../../../constants/icon.constants';\r\nimport {\r\n TGridCSSVariables,\r\n DesktopRowHeaderCellWidth,\r\n MobileRowHeaderCellWidth,\r\n DesktopSpecCellWidth,\r\n MobileSpecCellWidth,\r\n TableMaxWidth,\r\n} from '../../../../constants/table.constants';\r\nimport useMediaQuery from '../../../../lib/custom-hooks/useMediaQuery';\r\nimport { windowService, documentService } from '../../../../utils/window.utils';\r\nimport Icon from '../../../@shared/icon';\r\nimport useStickyWrapper from '../../../../hooks/useStickyWrapper';\r\nimport useEEActive from '../../../../hooks/useEEActive';\r\nimport { googleClickAccordionEvent } from '../../../../utils/analytics';\r\nimport { TTableCompProps } from '../../types/index.types';\r\nimport ColumnHeadingElement from './columnHeadingElement';\r\nimport FixedColHeading from './fixedColHeading';\r\nimport TableHeader from './header';\r\nimport RowItems from './row';\r\nimport PrintTableContent from './printContent';\r\nimport { TableGroupModel, TableRowModel } from '../../models/index.model';\r\nimport { textContains } from '../../../../utils/regex.utils';\r\n\r\nconst SpecificationTable: FC = ({ model, t }) => {\r\n const GridRef = useRef(null);\r\n const TableWrapperRef = useRef(null);\r\n const [leftMostVisibleColumn, setLeftMostVisibleColumn] = useState(0);\r\n const [showHiddenRightCells, setShowHiddenRightCells] = useState(false);\r\n const [searchTerm, setSearchTerm] = useState('');\r\n const [fixedColumnHeading, setFixedColumnHeading] = useState(false);\r\n const [expandedRows, setExpandedRows] = useState([0]);\r\n const [hideArrowButton, setHideArrowButton] = useState(false);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx.md})`);\r\n const stickyWrapperEle = useStickyWrapper();\r\n\r\n const [dropdownAtColumnIndex, setDropdownAtColumnIndex] = useState(null);\r\n const [printActive, setPrintActive] = useState(false);\r\n\r\n // css variables\r\n const [gridColumns, setGridColumns] = useState('');\r\n const [gridScrollBy, setGridScrollBy] = useState('');\r\n const [gridLeftCellsMoveBy, setGridLeftCellsMoveBy] = useState('');\r\n const [gridFixedColHeadsMoveBy, setGridFixedColHeadsMoveBy] = useState('');\r\n const [gridFirstColumnWidth, setGridFirstColumnWidth] = useState('');\r\n const [gridColumnWidth, setGridColumnWidth] = useState('');\r\n const [gridOutsideSpaceHalved, setGridOutsideSpaceHalved] = useState('');\r\n const isEE = useEEActive();\r\n\r\n useEffect(() => {\r\n if (!GridRef?.current || !gridColumns) return;\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n if (!gridEl) return;\r\n gridEl.style.setProperty(TGridCSSVariables.gridColumns, gridColumns);\r\n gridEl.style.setProperty(TGridCSSVariables.gridScrollBy, gridScrollBy);\r\n gridEl.style.setProperty(TGridCSSVariables.gridLeftCellsMoveBy, gridLeftCellsMoveBy);\r\n gridEl.style.setProperty(TGridCSSVariables.gridFixedColHeadsMoveBy, gridFixedColHeadsMoveBy);\r\n gridEl.style.setProperty(TGridCSSVariables.gridColumnWidth, gridColumnWidth);\r\n gridEl.style.setProperty(TGridCSSVariables.gridOutsideSpaceHalved, gridOutsideSpaceHalved);\r\n }, [\r\n searchTerm,\r\n gridColumns,\r\n gridScrollBy,\r\n gridLeftCellsMoveBy,\r\n gridFixedColHeadsMoveBy,\r\n gridColumnWidth,\r\n gridOutsideSpaceHalved,\r\n GridRef,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (GridRef?.current && model.colHeadings.length) {\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n if (!gridEl) return;\r\n const colLength = String(model.hideRowsHeader ? model.colHeadings.length - 1 : model.colHeadings.length);\r\n setGridColumns(() => colLength);\r\n }\r\n }, [GridRef, model.colHeadings]); // eslint-disable-line\r\n\r\n const showOrHideFixedColumn = (\r\n gridElDim: DOMRect,\r\n stickyWrapperEle: HTMLElement | null,\r\n topMostEmptyColHeadingDim: DOMRect,\r\n previousTop: number,\r\n fixedColShowing: boolean,\r\n setFixedColumnHeading: React.Dispatch>\r\n ): boolean => {\r\n let visibleTopLimit = stickyWrapperEle?.getBoundingClientRect().height || 0;\r\n let visibleBottomLimit = visibleTopLimit;\r\n // handling scroll down and removing the sticky row height if it is visible\r\n if (visibleTopLimit > 0 && gridElDim.top > previousTop && fixedColShowing) {\r\n visibleTopLimit -= topMostEmptyColHeadingDim.height;\r\n visibleBottomLimit -= topMostEmptyColHeadingDim.height;\r\n }\r\n\r\n // handling scroll up and adding buffer space of sticky row height if it is hidden\r\n if (gridElDim.top < previousTop && !fixedColShowing) {\r\n visibleBottomLimit += topMostEmptyColHeadingDim.height;\r\n }\r\n\r\n // check if table is visible and table top is above visible point and bottom is within view\r\n if (gridElDim.top < visibleTopLimit && gridElDim.bottom > visibleBottomLimit) {\r\n setFixedColumnHeading(() => true);\r\n return true;\r\n } else {\r\n setFixedColumnHeading(() => false);\r\n return false;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let fixedColShowing = false;\r\n let previousTop = 0;\r\n\r\n function scrollHandler(): void {\r\n if (GridRef?.current && model.stickyHeadingColumn) {\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n if (!gridEl) return;\r\n const gridElDim = gridEl.getBoundingClientRect();\r\n\r\n const topMostEmptyColHeadingDim = gridEl\r\n .getElementsByClassName('model-detail-specification-table__col-heading-dropdown__wrapper')?.[0]\r\n ?.getBoundingClientRect();\r\n\r\n if (!topMostEmptyColHeadingDim) return;\r\n\r\n fixedColShowing = showOrHideFixedColumn(\r\n gridElDim,\r\n stickyWrapperEle,\r\n topMostEmptyColHeadingDim,\r\n previousTop,\r\n fixedColShowing,\r\n setFixedColumnHeading\r\n );\r\n\r\n previousTop = gridElDim.top;\r\n }\r\n }\r\n\r\n documentService().addEventListener('scroll', scrollHandler);\r\n return (): void => {\r\n documentService().removeEventListener('scroll', scrollHandler);\r\n };\r\n }, [GridRef, stickyWrapperEle, model.stickyHeadingColumn]); // eslint-disable-line\r\n\r\n const handleHideRowsHeaderResize = (maxGridWidth: number, cellWidth: number, columnWidth: string) => {\r\n if (maxGridWidth - model.colHeadings.length * cellWidth > 0) {\r\n const newColumnWidth = maxGridWidth / model.colHeadings.length + 'px';\r\n setGridFirstColumnWidth(() => newColumnWidth);\r\n setHideArrowButton(true);\r\n return newColumnWidth;\r\n } else {\r\n const firstColWidth = cellWidth + 'px';\r\n setGridFirstColumnWidth(() => firstColWidth);\r\n setHideArrowButton(false);\r\n return columnWidth;\r\n }\r\n };\r\n\r\n const handleShowRowsHeaderResize = (maxGridWidth: number, cellWidth: number, headerCellWidth: number, columnWidth: string) => {\r\n if (maxGridWidth - model.colHeadings.length * cellWidth > headerCellWidth) {\r\n const newColumnWidth = (maxGridWidth - headerCellWidth) / model.colHeadings.length + 'px';\r\n setHideArrowButton(true);\r\n return newColumnWidth;\r\n } else {\r\n setHideArrowButton(false);\r\n return columnWidth;\r\n }\r\n };\r\n\r\n const handleShowOrHideRowsHeader = (maxGridWidth: number, cellWidth: number, columnWidth: string) => {\r\n const headerCellWidth = windowService().innerWidth >= Breakpoints.md ? DesktopRowHeaderCellWidth : MobileRowHeaderCellWidth;\r\n let newColumnWidth: string;\r\n if (model.hideRowsHeader) {\r\n newColumnWidth = handleHideRowsHeaderResize(maxGridWidth, cellWidth, columnWidth);\r\n } else {\r\n newColumnWidth = handleShowRowsHeaderResize(maxGridWidth, cellWidth, headerCellWidth, columnWidth);\r\n }\r\n return newColumnWidth;\r\n };\r\n\r\n const handleGridOutsideSpace = (clientWidth: number, TableMaxWidth: number) => {\r\n if (clientWidth && clientWidth > TableMaxWidth) {\r\n const remainingWidth = clientWidth - TableMaxWidth;\r\n setGridOutsideSpaceHalved(() => `${remainingWidth / 2}px`);\r\n } else {\r\n setGridOutsideSpaceHalved('0px');\r\n }\r\n };\r\n useEffect(() => {\r\n function resizeHandler(): void {\r\n if (GridRef && GridRef.current) {\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n if (!gridEl) return;\r\n setGridScrollBy(() => '0');\r\n setGridLeftCellsMoveBy(() => '0');\r\n setGridFixedColHeadsMoveBy(() => '0');\r\n setLeftMostVisibleColumn(0);\r\n if (!model.hideAccordionTabIcon) setExpandedRows([model.groupItemsIndexes?.[0] || 0]);\r\n setSearchTerm('');\r\n\r\n const clientWidth = documentService().documentElement.clientWidth;\r\n const maxGridWidth = Math.min(clientWidth, TableMaxWidth);\r\n const cellWidth = windowService().innerWidth >= Breakpoints.md ? DesktopSpecCellWidth : MobileSpecCellWidth;\r\n let columnWidth = cellWidth + 'px';\r\n\r\n columnWidth = handleShowOrHideRowsHeader(maxGridWidth, cellWidth, columnWidth);\r\n setGridColumnWidth(() => columnWidth);\r\n handleGridOutsideSpace(clientWidth, TableMaxWidth);\r\n }\r\n }\r\n\r\n resizeHandler();\r\n windowService().addEventListener('resize', resizeHandler);\r\n return (): void => {\r\n windowService().removeEventListener('resize', resizeHandler);\r\n };\r\n }, [GridRef, model.hideRowsHeader]); // eslint-disable-line\r\n\r\n useEffect(() => {\r\n if (isDesktop && leftMostVisibleColumn > -1 && GridRef && GridRef.current && model.colHeadings.length > 0) {\r\n let newgridScrollBy = DesktopSpecCellWidth * leftMostVisibleColumn;\r\n const clientWidth = Math.min(documentService().documentElement.clientWidth, TableMaxWidth);\r\n const maxMove =\r\n (model.hideRowsHeader ? 0 : DesktopRowHeaderCellWidth) + DesktopSpecCellWidth * model.colHeadings.length - clientWidth;\r\n if (newgridScrollBy > maxMove && maxMove > 0) {\r\n newgridScrollBy = maxMove;\r\n }\r\n const gridEl = GridRef.current as HTMLElement | null;\r\n if (!gridEl) return;\r\n setGridScrollBy(() => `-${newgridScrollBy}px`);\r\n if (model.stickyHeadingRow) {\r\n setGridLeftCellsMoveBy(() => `${newgridScrollBy}px`);\r\n }\r\n setGridFixedColHeadsMoveBy(() => `-${newgridScrollBy}px`);\r\n }\r\n }, [leftMostVisibleColumn, GridRef, model.colHeadings, model.hideRowsHeader, model.stickyHeadingRow, isDesktop]);\r\n\r\n useEffect(() => {\r\n // Closing dropdown if clicked anywhere else\r\n function handleClick(event): void {\r\n if (!isDesktop) return;\r\n if (!event?.target?.getAttribute('data-is-dropdown-switch')) {\r\n setDropdownAtColumnIndex(null);\r\n }\r\n }\r\n\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n\r\n docElement.addEventListener('click', handleClick, false);\r\n return (): void => {\r\n docElement.removeEventListener('click', handleClick, false);\r\n };\r\n }, [isDesktop]);\r\n\r\n useEffect(() => {\r\n // prevent background body scrolling when model is opened in mobile view\r\n if (!isDesktop) {\r\n const docElement = documentService();\r\n if (!docElement?.body) return;\r\n\r\n if (dropdownAtColumnIndex !== null) docElement.body.classList.add('body--with-spec-model');\r\n else docElement.body.classList.remove('body--with-spec-model');\r\n }\r\n }, [dropdownAtColumnIndex, isDesktop]);\r\n\r\n useEffect(() => {\r\n if (!model.groupItemsIndexes || !model.items) return;\r\n if (model.hideAccordionTabIcon) {\r\n setExpandedRows(model.groupItemsIndexes);\r\n }\r\n }, [model.hideAccordionTabIcon]);\r\n\r\n const handleScroll = (e): void => {\r\n e.stopPropagation();\r\n if (!showHiddenRightCells) setShowHiddenRightCells(true);\r\n if (TableWrapperRef && TableWrapperRef.current) {\r\n const tableWrapperEl = TableWrapperRef.current as HTMLElement | null;\r\n if (!tableWrapperEl) return;\r\n if (tableWrapperEl.scrollLeft > -1) {\r\n setGridLeftCellsMoveBy(() => `${tableWrapperEl.scrollLeft}px`);\r\n setGridFixedColHeadsMoveBy(() => `-${tableWrapperEl.scrollLeft}px`);\r\n }\r\n }\r\n };\r\n\r\n const moveGridLeft = (): void => {\r\n if (GridRef && GridRef.current) {\r\n setLeftMostVisibleColumn((cardNo) => (cardNo > 0 ? cardNo - 1 : 0));\r\n }\r\n };\r\n\r\n const moveGridRight = (): void => {\r\n if (TableWrapperRef && TableWrapperRef.current && model.nOfVisibleColumn) {\r\n const tableWrapperEl = TableWrapperRef.current as HTMLElement | null;\r\n if (!tableWrapperEl) return;\r\n const availableWidth = tableWrapperEl.clientWidth - (model.hideRowsHeader ? 0 : DesktopRowHeaderCellWidth);\r\n const visibleColumns = Math.floor(availableWidth / DesktopSpecCellWidth);\r\n const maxMove = model.nOfVisibleColumn - 1 - visibleColumns;\r\n\r\n if (!showHiddenRightCells) setShowHiddenRightCells(true);\r\n\r\n setLeftMostVisibleColumn((cardNo) => (cardNo <= maxMove ? cardNo + 1 : cardNo));\r\n }\r\n };\r\n\r\n const toggleAllRows = (): void => {\r\n if (!model.groupItemsIndexes.length) return;\r\n if (expandedRows.length === model.groupItemsIndexes.length) {\r\n setExpandedRows([]);\r\n } else {\r\n setExpandedRows(model.groupItemsIndexes);\r\n }\r\n };\r\n\r\n const toggleRow = (index: number): void => {\r\n if (GridRef && GridRef.current && !model.hideAccordionTabIcon) {\r\n googleClickAccordionEvent(model?.items?.[index]?.title?.value, model?.heading?.value ?? model?.eyebrow?.value);\r\n\r\n const arrIndex = expandedRows.findIndex((val) => val === index);\r\n if (arrIndex > -1) {\r\n setExpandedRows((expandedRow) => expandedRow.filter((val) => val !== index));\r\n } else {\r\n setExpandedRows((expandedRow) => [...expandedRow, index]);\r\n }\r\n }\r\n };\r\n\r\n const findRowsInGroup = (items: TableRowModel[]): TableRowModel | undefined => {\r\n return items.find((item) => {\r\n const plainText = model.rowTitlePlainText(item?.title?.value as string);\r\n return textContains(plainText, searchTerm);\r\n });\r\n };\r\n\r\n const tableRows = useMemo(() => {\r\n if (searchTerm) {\r\n setExpandedRows([]);\r\n const data = model.items.filter((element, index) => {\r\n setExpandedRows((expandedRow) => [...expandedRow, index]);\r\n const plainText = model.rowTitlePlainText(element?.title?.value as string);\r\n if (element instanceof TableGroupModel) {\r\n const groupTitle = textContains(plainText, searchTerm);\r\n const internalRowItem = findRowsInGroup(element.items);\r\n return groupTitle || internalRowItem;\r\n } else if (element instanceof TableRowModel) {\r\n return textContains(plainText, searchTerm);\r\n }\r\n });\r\n return data;\r\n }\r\n setExpandedRows(model.groupItemsIndexes);\r\n return model.items;\r\n }, [searchTerm]);\r\n\r\n const printStart = useCallback(() => {\r\n setPrintActive(true);\r\n }, [setPrintActive]);\r\n\r\n const printEnd = useCallback(() => {\r\n setPrintActive(false);\r\n }, [setPrintActive]);\r\n\r\n return (\r\n \r\n {!model.hideHeadingSection && (\r\n \r\n )}\r\n {!model.disablePrint && (\r\n \r\n )}\r\n {searchTerm && !tableRows?.length && (\r\n
    \r\n \r\n

    {t('cnhi-noMatchesFoundTitle')}

    \r\n

    {t('cnhi-noMatchesFoundDescription')}

    \r\n
    \r\n )}\r\n {(!searchTerm || (searchTerm && tableRows?.length > 0)) && (\r\n \r\n \r\n \r\n \r\n \r\n {!model.hideColumnHeader && (\r\n \r\n {!model.hideRowsHeader && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n {tableRows?.map((obj, index) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withTranslation()(SpecificationTable);\r\n","import React from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TTableProps } from './types/index.types';\r\nimport { TableModel } from './models/index.model';\r\nimport TableComp from './components/table';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport UnreleasedComponent from '../@shared/unreleasedComponent';\r\n\r\nconst Table = (props: TTableProps) => {\r\n const model = new TableModel(props);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n if (!model) return null;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport default withSitecoreContext()(Table);\r\n","import { TextModuleFields, TextModuleProps } from '../types/textModuleContainer.types';\r\nimport { StringField, ImageField, TComponentParamsGeneral, THeadingTag, TImageField } from '../../../../types/types';\r\nimport { LinkField } from '@sitecore-jss/sitecore-jss-react/types/components/Link';\r\n\r\nexport class TextModuleModel {\r\n private readonly fields?: TextModuleFields;\r\n private readonly isEE: boolean;\r\n private readonly params?: TComponentParamsGeneral;\r\n\r\n constructor(props: TextModuleProps, isEE) {\r\n this.fields = props?.fields;\r\n this.isEE = isEE;\r\n this.params = props?.params;\r\n }\r\n\r\n get bodyText(): StringField | undefined {\r\n return this.fields?.message || this.fields?.bodyText;\r\n }\r\n\r\n get eyebrow(): StringField | undefined {\r\n return this.fields?.eyebrow;\r\n }\r\n\r\n get title(): StringField | undefined {\r\n return this.fields?.title;\r\n }\r\n\r\n get subtitle(): StringField | undefined {\r\n return this.fields?.subtitle;\r\n }\r\n\r\n get link1(): LinkField | undefined {\r\n return this.fields?.link || this.fields?.primaryLink;\r\n }\r\n\r\n get link2(): LinkField | undefined {\r\n return this.fields?.secondaryLink;\r\n }\r\n\r\n get image(): ImageField | undefined {\r\n return this.fields?.image;\r\n }\r\n\r\n get mobileImage(): ImageField | undefined {\r\n return this.fields?.mobileImage;\r\n }\r\n \r\n getLoadedImageDimension(isDesktop: boolean): { imageWidth: number } {\r\n let imageWidth = 0;\r\n\r\n let imageLoaded: TImageField | undefined = {};\r\n if (isDesktop) {\r\n imageLoaded = this?.image?.value?.src ? this.image : this.mobileImage;\r\n } else {\r\n imageLoaded = this?.mobileImage?.value?.src ? this.mobileImage : this.image;\r\n }\r\n imageWidth = Number(imageLoaded?.value?.width) || 0;\r\n return { imageWidth };\r\n }\r\n\r\n get textPosition(): StringField | undefined {\r\n return this.fields?.alignment?.fields?.Key || {value: 'center'};\r\n }\r\n\r\n get backgroundColor(): StringField | undefined {\r\n return this.fields?.backgroundColor?.fields?.Key;\r\n }\r\n\r\n get isUnreleased(): boolean {\r\n return !!this.fields?.isComponentUnreleased;\r\n }\r\n\r\n get link1ExistsOrIsEE(): boolean {\r\n return !!((this.link1?.value?.text && this.link1?.value?.href) || this.isEE);\r\n }\r\n\r\n get link2ExistsOrIsEE(): boolean {\r\n return !!((this.link2?.value?.text && this.link2?.value?.href) || this.isEE);\r\n }\r\n\r\n get headingTag(): THeadingTag {\r\n return (this.params?.headingTag?.toLowerCase() as THeadingTag) || 'h3';\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport { Text, withSitecoreContext, RichText, Placeholder, ComponentRendering, ComponentConsumerProps } from '@sitecore-jss/sitecore-jss-react';\r\nimport CTAButton, { ctaEnums } from '../../@shared/ctaButton';\r\nimport RoutableSitecoreLink from '../../@shared/routableSitecoreLink';\r\nimport Icon from '../../@shared/icon';\r\nimport { CustomText } from '../../@shared/customText';\r\nimport Picture from '../../@shared/picture';\r\nimport UnreleasedComponent from '../../@shared/unreleasedComponent';\r\nimport { TextModuleModel } from './models/textModuleContainer.model';\r\nimport { TextModuleProps } from './types/textModuleContainer.types';\r\nimport useMediaQuery from '../../../lib/custom-hooks/useMediaQuery';\r\nimport { BreakpointsInPx } from '../../../constants/breakpoints.constants';\r\nimport { googleClickCtaEvent, googleClickRichTextEvent } from '../../../utils/analytics';\r\nimport { targetLinkdsk } from '../../../utils/targetDskLink';\r\nimport { iconSize } from '../../../constants/icon.constants';\r\n\r\nconst TextModuleContainer: FC = (props) => {\r\n const { iconName = '', extraClassName = '', trackAnalyticsEvents = true, showGenericPopup = true } = props;\r\n const isEE = props.sitecoreContext?.pageEditing;\r\n const model = new TextModuleModel(props, isEE);\r\n const isDesktop = useMediaQuery(`(min-width: ${BreakpointsInPx['md']})`);\r\n const { imageWidth } = model.getLoadedImageDimension(isDesktop);\r\n\r\n // Component is unreleased\r\n if (model.isUnreleased) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {iconName && (\r\n
    \r\n \r\n
    \r\n )}\r\n {model.eyebrow && }\r\n \r\n {model.subtitle && (\r\n trackAnalyticsEvents && googleClickRichTextEvent(event, model.title?.value ?? model.eyebrow?.value)}\r\n />\r\n )}\r\n {model.bodyText && (\r\n trackAnalyticsEvents && googleClickRichTextEvent(event, model.title?.value ?? model.eyebrow?.value)}\r\n />\r\n )}\r\n
    \r\n {model?.link1ExistsOrIsEE && (\r\n \r\n trackAnalyticsEvents && googleClickCtaEvent('Button', model?.link1?.value.text ?? model?.link1?.value.title, model.title?.value)}\r\n />\r\n \r\n )}\r\n {model?.link2ExistsOrIsEE && (\r\n
    \r\n trackAnalyticsEvents && googleClickCtaEvent('Button', model?.link2?.value.text ?? model?.link2?.value.title, model.title?.value)}\r\n />\r\n {(model?.link2?.value?.text || model?.link2?.value?.href) && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n )}\r\n {showGenericPopup &&
    \r\n \r\n
    }\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(TextModuleContainer);\r\n","import React, { FC } from 'react';\r\nimport AnalyticsVisibleEvent from '../@shared/analyticsVisibleEvent';\r\nimport TextModuleContainer from '../@shared/textModuleContainer';\r\nimport { TextModuleProps } from '../@shared/textModuleContainer/types/textModuleContainer.types';\r\n\r\nconst TextModule: FC = (props) => {\r\n const {fields} = props;\r\n const title = fields?.title;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TextModule;\r\n","import React, { FC } from 'react';\r\nimport TextModuleContainer from '../@shared/textModuleContainer';\r\nimport { TextModuleProps } from '../@shared/textModuleContainer/types/textModuleContainer.types';\r\n\r\nconst ThankYou: FC = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ThankYou;","/* 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 Advisor from '../components/advisor';\nimport BlogNews from '../components/blogNews';\nimport BreadcrumbBar from '../components/breadcrumbBar';\nimport BuildAndPriceExternalLink from '../components/buildAndPriceExternalLink';\nimport CardCarousel from '../components/cardCarousel';\nimport CardColumnLayout from '../components/cardColumnLayout';\nimport CardGrid from '../components/cardGrid';\nimport CustomHtml from '../components/customHtml';\nimport DealerLocatorBreadcrumbBar from '../components/dealerLocatorBreadcrumbBar';\nimport DealerLocatorDetail from '../components/dealerLocatorDetail';\nimport DealerLocatorLanding from '../components/dealerLocatorLanding';\nimport DownloadBrochures from '../components/downloadBrochures';\nimport EventDetail from '../components/eventDetail';\nimport EventsListing from '../components/eventsListing';\nimport ExternalComponent from '../components/externalComponent';\nimport FairHero from '../components/fairHero';\nimport FindDealer from '../components/findDealer';\nimport Footer from '../components/footer';\nimport FormPageNavigation from '../components/formPageNavigation';\nimport FullScreenMediaGallery from '../components/fullScreenMediaGallery';\nimport GenericPopUp from '../components/genericPopUp';\nimport Header from '../components/header';\nimport HeroBanner from '../components/heroBanner';\nimport InteractiveImage from '../components/interactiveImage';\nimport LatestNews from '../components/latestNews';\nimport LightFooter from '../components/lightFooter';\nimport LightHeader from '../components/lightHeader';\nimport LiveEventDetail from '../components/liveEventDetail';\nimport MediaGallery from '../components/mediaGallery';\nimport MockedComponentMessage from '../components/mockedComponentMessage';\nimport ModelsListing from '../components/modelsListing';\nimport NavigationBar from '../components/navigationBar';\nimport NavigationBarAnchorComponent from '../components/NavigationBarAnchorComponent';\nimport NewsDetail from '../components/newsDetail';\nimport NewsFiles from '../components/newsFiles';\nimport NewsLetterSubscription from '../components/newsLetterSubscription';\nimport NewsListing from '../components/newsListing';\nimport NextSteps from '../components/nextSteps';\nimport ProductBreadcrumbBar from '../components/productBreadcrumbBar';\nimport ProductBuildAndPriceLink from '../components/productBuildAndPriceLink';\nimport ProductCompatibleLoaderListing from '../components/productCompatibleLoaderListing';\nimport ProductDownloadBrochureListing from '../components/productDownloadBrochureListing';\nimport ProductHeroBanner from '../components/productHeroBanner';\nimport ProductHeroBannerSeriesDetail from '../components/productHeroBannerSeriesDetail';\nimport ProductLinesListing from '../components/productLinesListing';\nimport ProductLineSpecialOffers from '../components/productLineSpecialOffers';\nimport ProductModelCompatibleAttachmentListing from '../components/productModelCompatibleAttachmentListing';\nimport ProductModelConfigurations from '../components/productModelConfigurations';\nimport ProductModelDetailCompatibleLoaders from '../components/productModelDetailCompatibleLoaders';\nimport ProductModelDetailHeroSection from '../components/productModelDetailHeroSection';\nimport ProductModelNavigation from '../components/productModelNavigation';\nimport ProductModelsListing from '../components/productModelsListing';\nimport ProductModelSpecifications from '../components/productModelSpecifications';\nimport ProductSelector from '../components/productSelector';\nimport ProductSeoTags from '../components/productSeoTags';\nimport ProductSeriesCompatibleAttachmentListing from '../components/productSeriesCompatibleAttachmentListing';\nimport ProductSeriesDetailConfigurationsOverview from '../components/productSeriesDetailConfigurationsOverview';\nimport ProductSeriesDetailDownloadBrochures from '../components/productSeriesDetailDownloadBrochures';\nimport ProductSeriesDetailFeature from '../components/productSeriesDetailFeature';\nimport ProductSeriesDetailModelSpecifications from '../components/productSeriesDetailModelSpecifications';\nimport ProductSeriesDetailNavigationOverview from '../components/productSeriesDetailNavigationOverview';\nimport ProductSeriesDetailSpecialOffers from '../components/productSeriesDetailSpecialOffers';\nimport ProductSeriesDetailTestimonial from '../components/productSeriesDetailTestimonial';\nimport ProductSeriesListing from '../components/productSeriesListing';\nimport ProductSeriesListingFilters from '../components/productSeriesListingFilters';\nimport ProductSeriesNavigationBar from '../components/productSeriesNavigationBar';\nimport ProductSeriesOverview from '../components/productSeriesOverview';\nimport ProductSpecialOfferDetail from '../components/productSpecialOfferDetail';\nimport ProductSpecialOffers from '../components/productSpecialOffers';\nimport ProductSpecialOffersDetailDownloadBrochures from '../components/ProductSpecialOffersDetailDownloadBrochures';\nimport ProductSpecialOffersDetailHeroBanner from '../components/ProductSpecialOffersDetailHeroBanner';\nimport ProductSpecialOffersListing from '../components/productSpecialOffersListing';\nimport RelatedNews from '../components/relatedNews';\nimport RemoteBuildAndPrice from '../components/remoteBuildAndPrice';\nimport SearchResults from '../components/searchResults';\nimport SitecoreJssForm from '../components/sitecoreJssForm';\nimport SmallHero from '../components/smallHero';\nimport SpecCheck from '../components/specCheck';\nimport SplitModule from '../components/splitModule';\nimport SubscriptionBox from '../components/subscriptionBox';\nimport Table from '../components/table';\nimport TextModule from '../components/textModule';\nimport ThankYou from '../components/thankYou';\n\nconst components = new Map();\ncomponents.set('Advisor', Advisor);\ncomponents.set('BlogNews', BlogNews);\ncomponents.set('BreadcrumbBar', BreadcrumbBar);\ncomponents.set('BuildAndPriceExternalLink', BuildAndPriceExternalLink);\ncomponents.set('CardCarousel', CardCarousel);\ncomponents.set('CardColumnLayout', CardColumnLayout);\ncomponents.set('CardGrid', CardGrid);\ncomponents.set('CustomHtml', CustomHtml);\ncomponents.set('DealerLocatorBreadcrumbBar', DealerLocatorBreadcrumbBar);\ncomponents.set('DealerLocatorDetail', DealerLocatorDetail);\ncomponents.set('DealerLocatorLanding', DealerLocatorLanding);\ncomponents.set('DownloadBrochures', DownloadBrochures);\ncomponents.set('EventDetail', EventDetail);\ncomponents.set('EventsListing', EventsListing);\ncomponents.set('ExternalComponent', ExternalComponent);\ncomponents.set('FairHero', FairHero);\ncomponents.set('FindDealer', FindDealer);\ncomponents.set('Footer', Footer);\ncomponents.set('FormPageNavigation', FormPageNavigation);\ncomponents.set('FullScreenMediaGallery', FullScreenMediaGallery);\ncomponents.set('GenericPopUp', GenericPopUp);\ncomponents.set('Header', Header);\ncomponents.set('HeroBanner', HeroBanner);\ncomponents.set('InteractiveImage', InteractiveImage);\ncomponents.set('LatestNews', LatestNews);\ncomponents.set('LightFooter', LightFooter);\ncomponents.set('LightHeader', LightHeader);\ncomponents.set('LiveEventDetail', LiveEventDetail);\ncomponents.set('MediaGallery', MediaGallery);\ncomponents.set('MockedComponentMessage', MockedComponentMessage);\ncomponents.set('ModelsListing', ModelsListing);\ncomponents.set('NavigationBar', NavigationBar);\ncomponents.set('NavigationBarAnchorComponent', NavigationBarAnchorComponent);\ncomponents.set('NewsDetail', NewsDetail);\ncomponents.set('NewsFiles', NewsFiles);\ncomponents.set('NewsLetterSubscription', NewsLetterSubscription);\ncomponents.set('NewsListing', NewsListing);\ncomponents.set('NextSteps', NextSteps);\ncomponents.set('ProductBreadcrumbBar', ProductBreadcrumbBar);\ncomponents.set('ProductBuildAndPriceLink', ProductBuildAndPriceLink);\ncomponents.set('ProductCompatibleLoaderListing', ProductCompatibleLoaderListing);\ncomponents.set('ProductDownloadBrochureListing', ProductDownloadBrochureListing);\ncomponents.set('ProductHeroBanner', ProductHeroBanner);\ncomponents.set('ProductHeroBannerSeriesDetail', ProductHeroBannerSeriesDetail);\ncomponents.set('ProductLinesListing', ProductLinesListing);\ncomponents.set('ProductLineSpecialOffers', ProductLineSpecialOffers);\ncomponents.set('ProductModelCompatibleAttachmentListing', ProductModelCompatibleAttachmentListing);\ncomponents.set('ProductModelConfigurations', ProductModelConfigurations);\ncomponents.set('ProductModelDetailCompatibleLoaders', ProductModelDetailCompatibleLoaders);\ncomponents.set('ProductModelDetailHeroSection', ProductModelDetailHeroSection);\ncomponents.set('ProductModelNavigation', ProductModelNavigation);\ncomponents.set('ProductModelsListing', ProductModelsListing);\ncomponents.set('ProductModelSpecifications', ProductModelSpecifications);\ncomponents.set('ProductSelector', ProductSelector);\ncomponents.set('ProductSeoTags', ProductSeoTags);\ncomponents.set('ProductSeriesCompatibleAttachmentListing', ProductSeriesCompatibleAttachmentListing);\ncomponents.set('ProductSeriesDetailConfigurationsOverview', ProductSeriesDetailConfigurationsOverview);\ncomponents.set('ProductSeriesDetailDownloadBrochures', ProductSeriesDetailDownloadBrochures);\ncomponents.set('ProductSeriesDetailFeature', ProductSeriesDetailFeature);\ncomponents.set('ProductSeriesDetailModelSpecifications', ProductSeriesDetailModelSpecifications);\ncomponents.set('ProductSeriesDetailNavigationOverview', ProductSeriesDetailNavigationOverview);\ncomponents.set('ProductSeriesDetailSpecialOffers', ProductSeriesDetailSpecialOffers);\ncomponents.set('ProductSeriesDetailTestimonial', ProductSeriesDetailTestimonial);\ncomponents.set('ProductSeriesListing', ProductSeriesListing);\ncomponents.set('ProductSeriesListingFilters', ProductSeriesListingFilters);\ncomponents.set('ProductSeriesNavigationBar', ProductSeriesNavigationBar);\ncomponents.set('ProductSeriesOverview', ProductSeriesOverview);\ncomponents.set('ProductSpecialOfferDetail', ProductSpecialOfferDetail);\ncomponents.set('ProductSpecialOffers', ProductSpecialOffers);\ncomponents.set('ProductSpecialOffersDetailDownloadBrochures', ProductSpecialOffersDetailDownloadBrochures);\ncomponents.set('ProductSpecialOffersDetailHeroBanner', ProductSpecialOffersDetailHeroBanner);\ncomponents.set('ProductSpecialOffersListing', ProductSpecialOffersListing);\ncomponents.set('RelatedNews', RelatedNews);\ncomponents.set('RemoteBuildAndPrice', RemoteBuildAndPrice);\ncomponents.set('SearchResults', SearchResults);\ncomponents.set('SitecoreJssForm', SitecoreJssForm);\ncomponents.set('SmallHero', SmallHero);\ncomponents.set('SpecCheck', SpecCheck);\ncomponents.set('SplitModule', SplitModule);\ncomponents.set('SubscriptionBox', SubscriptionBox);\ncomponents.set('Table', Table);\ncomponents.set('TextModule', TextModule);\ncomponents.set('ThankYou', ThankYou);\n\nexport default function componentFactory(componentName) {\n return components.get(componentName);\n};\n","import {\r\n GraphQLLayoutService,\r\n RestLayoutService,\r\n constants,\r\n} from '@sitecore-jss/sitecore-jss-react';\r\nimport config from '../temp/config';\r\n\r\ntype TFetchParams = {\r\n [param: string]: string | number | boolean;\r\n sc_apikey: string;\r\n sc_site: string;\r\n sc_lang: string;\r\n tracking: boolean;\r\n}\r\n\r\nexport class ParameterizedRestLayoutService extends RestLayoutService {\r\n constructor(private config) {\r\n super(config);\r\n }\r\n\r\n protected getFetchParams = (language?: string): TFetchParams => {\r\n return {\r\n sc_apikey: this.config.apiKey,\r\n sc_site: this.config.siteName,\r\n sc_lang: language || '',\r\n tracking: this.config.tracking ?? true,\r\n ...this.config.extraQueryParams\r\n };\r\n };\r\n}\r\n\r\nexport class LayoutServiceFactory {\r\n create(siteName, extraQueryParams) {\r\n return process.env.REACT_APP_FETCH_WITH === constants.FETCH_WITH.GRAPHQL\r\n ? new GraphQLLayoutService({\r\n endpoint: config.graphQLEndpoint,\r\n apiKey: config.sitecoreApiKey,\r\n siteName: config.jssAppName,\r\n })\r\n : new ParameterizedRestLayoutService({\r\n apiHost: config.sitecoreApiHost,\r\n apiKey: config.sitecoreApiKey,\r\n siteName: siteName,\r\n configurationName: 'jss',\r\n extraQueryParams\r\n });\r\n }\r\n}\r\n\r\nexport const layoutServiceFactory = new LayoutServiceFactory();\r\n","import { useEffect, EffectCallback, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nconst usePageView = (fn: EffectCallback, skipFirstLoad: false): void => {\r\n const [firstLoad, setFirstLoad] = useState(true);\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n const isTrigered = !firstLoad || !skipFirstLoad;\r\n setFirstLoad(false);\r\n\r\n if (isTrigered) {\r\n return fn();\r\n }\r\n }, [location]); //eslint-disable-line\r\n};\r\n\r\nexport default usePageView;\r\n","import React, { FC } from 'react';\r\nimport Helmet from 'react-helmet';\r\nimport { ComponentConsumerProps, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { TConsentCookieProps } from './types/consentCookie.types';\r\n\r\nconst ConsentCookie: FC = (props) => {\r\n if (\r\n props?.sitecoreContext?.route?.databaseName === 'master' ||\r\n !props?.sitecoreContext?.consentCookie?.cookieKey ||\r\n props?.sitecoreContext?.pageState !== 'normal'\r\n ) {\r\n return null;\r\n }\r\n\r\n const documentLangAttribute = props?.sitecoreContext?.consentCookie?.isHtmlLanguageDetected ? { 'data-document-language': 'true' } : {};\r\n\r\n return (\r\n \r\n {props?.sitecoreContext?.consentCookie?.isAutoBlockingEnabled && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(ConsentCookie);\r\n","import { THrefLangItem, TSitecoreContext } from '../../../../types/types';\r\nimport { TLayoutSeoTagsProps, TRouteData } from '../types/layoutSeoTags.types';\r\nimport { windowService } from '../../../../utils/window.utils.js';\r\n\r\nimport { ISeoModel } from '../../../../types/seo.types';\r\n\r\nexport class LayoutSeoTagModel implements ISeoModel {\r\n private readonly context: TSitecoreContext;\r\n private readonly route: TRouteData;\r\n\r\n constructor(props: TLayoutSeoTagsProps) {\r\n this.context = props.sitecoreContext;\r\n this.route = props.route;\r\n }\r\n\r\n get title(): string {\r\n const pageTitle = this.route?.fields?.metaTitle?.value;\r\n const brandName = this.context?.metaData?.brandName;\r\n const pageTitleSuffix = this.context?.metaData?.browserTitleSuffix;\r\n const brandNameWithSuffix = brandName && pageTitleSuffix ? `${brandName} ${pageTitleSuffix}` : brandName;\r\n\r\n if (pageTitle && brandName) {\r\n return `${pageTitle} | ${brandNameWithSuffix}`;\r\n }\r\n return pageTitle || brandNameWithSuffix || '';\r\n }\r\n\r\n get description(): string {\r\n return this.route?.fields?.metaDescription?.value || '';\r\n }\r\n\r\n get keywords(): string {\r\n return this.route?.fields?.MetaKeywords?.value || '';\r\n }\r\n\r\n get robots(): string {\r\n return this.route?.fields?.RobotsContent?.value || '';\r\n }\r\n\r\n get canonicalUrl(): string {\r\n const canonicalurl = this.context?.metaData?.fullCanonicalLink;\r\n if (canonicalurl && !canonicalurl.includes('/layout/render')) {\r\n return canonicalurl;\r\n }\r\n return windowService()?.location?.href;\r\n }\r\n\r\n get alternateLinks(): Array {\r\n return this.context?.ContextExtensions?.hrefLanguageList || [];\r\n }\r\n\r\n get language(): string {\r\n return this.context?.language || '';\r\n }\r\n\r\n get ogTitle(): string {\r\n return this.title;\r\n }\r\n\r\n get ogSiteName(): string {\r\n return this.title;\r\n }\r\n\r\n get currentPageUrl(): string {\r\n return this.context?.currentPageUrl ?? '';\r\n }\r\n\r\n get ogUrl(): string {\r\n return this.route?.fields?.metaUrl?.value || this.currentPageUrl;\r\n }\r\n\r\n get ogImage(): string {\r\n return this.route?.fields?.metaImage?.value?.src || '';\r\n }\r\n\r\n get ogType(): string {\r\n return this.route?.fields?.metaType?.value || 'website';\r\n }\r\n\r\n get ogDescription(): string {\r\n return this.description;\r\n }\r\n\r\n get ogLocale(): string {\r\n return this.context?.language || '';\r\n }\r\n\r\n get ogLocaleAlternate(): string[] {\r\n return (\r\n this.context?.ContextExtensions?.hrefLanguageList\r\n ?.filter((langItem) => langItem?.langCode !== this.ogLocale)\r\n .map((langItem) => langItem.langCode || '') || []\r\n );\r\n }\r\n\r\n get twitterCard(): string {\r\n return 'summary';\r\n }\r\n\r\n get twitterSite(): string {\r\n return this.route?.fields.metaSite?.value || '';\r\n }\r\n\r\n get twitterTitle(): string {\r\n return this.route?.fields.metaTitle?.value || '';\r\n }\r\n\r\n get twitterDescription(): string {\r\n return this.description;\r\n }\r\n\r\n get twitterImage(): string {\r\n return this.route?.fields?.metaImage?.value?.src || '';\r\n }\r\n\r\n get gscVerificationCodes(): Array {\r\n let values: Array = [];\r\n const extMetaGSVC: Array =\r\n typeof this.context?.metaData?.googleSiteVerificationCode === 'object'\r\n ? Object.values(this.context?.metaData?.googleSiteVerificationCode)\r\n : [];\r\n const regularGSVC: Array = this.route?.fields?.googleSiteVerificationCode?.value?.map((link) => link.Value || '') || [];\r\n if (extMetaGSVC) {\r\n values = values.concat(extMetaGSVC);\r\n }\r\n if (regularGSVC) {\r\n values = values.concat(regularGSVC);\r\n }\r\n return values;\r\n }\r\n\r\n get favIconUrl(): string {\r\n return this.route?.fields?.Favicon?.value?.src || this.context?.metaData?.favicon?.src || '';\r\n }\r\n}\r\n","import React, {FC} from 'react';\r\n\r\nimport {withSitecoreContext} from '@sitecore-jss/sitecore-jss-react';\r\nimport {LayoutSeoTagModel} from './model/layoutSeoTags.model';\r\nimport {TLayoutSeoTagsProps} from './types/layoutSeoTags.types';\r\nimport SeoTags from '../seoTags';\r\n\r\nconst LayoutSeoTags: FC = (props) => {\r\n const model = new LayoutSeoTagModel(props);\r\n\r\n return ()\r\n}\r\n\r\nexport default withSitecoreContext()(LayoutSeoTags);","import { TBaseObj } from '../types/types';\r\n\r\nfunction removeEmptyFields(incomingObj: TBaseObj): TBaseObj {\r\n const outgoingObj = {};\r\n Object.keys(incomingObj).forEach((key) => {\r\n if (\r\n !incomingObj[key] ||\r\n (Array.isArray(incomingObj[key]) && !incomingObj[key].length) ||\r\n (typeof incomingObj[key] === 'object' && !Object.keys(incomingObj[key]).length)\r\n )\r\n return;\r\n outgoingObj[key] = incomingObj[key];\r\n });\r\n return outgoingObj;\r\n}\r\n\r\nexport default removeEmptyFields;\r\n","import { Corporation, Vehicle, WithContext, WebSite } from 'schema-dts';\r\nimport { helmetJsonLdProp } from 'react-schemaorg';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\nimport constants from '../../../../constants/templates.constants';\r\nimport { TJsonLDObj } from '../../../../types/types';\r\nimport removeEmptyFields from '../../../../utils/removeEmptyFields';\r\nimport {\r\n THeaderComponent,\r\n TJSONLDSeoTagsProps,\r\n TRouteData,\r\n TJSONLDSitecoreContext,\r\n TproductSeoTagComponent,\r\n} from '../types/jsonldSeoTags.types';\r\n\r\nexport class JSONLDSeoModel {\r\n private readonly route: TRouteData;\r\n private readonly context: TJSONLDSitecoreContext;\r\n\r\n constructor(props: TJSONLDSeoTagsProps) {\r\n this.route = props.route;\r\n this.context = props.sitecoreContext as TJSONLDSitecoreContext;\r\n }\r\n\r\n get productSeoTags(): TproductSeoTagComponent | undefined {\r\n const mainComponentsList = (this.route?.placeholders?.['jss-main'] as ComponentRendering[]) || [];\r\n return mainComponentsList?.find((comp) => comp?.componentName === 'ProductSeoTags');\r\n }\r\n\r\n get title(): string {\r\n return (\r\n this.productSeoTags?.fields?.apiData?.seo?.title || this.route?.fields?.metaTitle?.value || this.context?.metaData?.brandName || ''\r\n );\r\n }\r\n\r\n get productSchemaBodyType(): string {\r\n return this.productSeoTags?.fields?.apiData?.seo?.seoBodyType || this.route?.fields?.bodyType?.value || '';\r\n }\r\n\r\n get productSchemaCargoVolume(): string {\r\n return this.productSeoTags?.fields?.apiData?.seo?.seoCargoVolume || this.route?.fields?.cargoVolume?.value || '';\r\n }\r\n\r\n get productSchemaFuelType(): string {\r\n return this.productSeoTags?.fields?.apiData?.seo?.seoFuelType || this.route?.fields?.fuelType?.value || '';\r\n }\r\n\r\n get productImage(): string {\r\n return this.productSeoTags?.fields?.apiData?.assets?.find((asset) => asset?.role === 'main')?.full || '';\r\n }\r\n\r\n get productType(): string {\r\n return 'Vehicle';\r\n }\r\n\r\n get schemaType(): string {\r\n return 'Corporation';\r\n }\r\n\r\n get schemaName(): string {\r\n return this.context?.metaData?.brandName || '';\r\n }\r\n\r\n get schemaDescription(): string {\r\n return this.route?.fields?.metaDescription?.value || '';\r\n }\r\n\r\n get schemaUrl(): string {\r\n return this.route?.fields?.metaUrl?.value || '';\r\n }\r\n\r\n get schemaLogo(): string {\r\n return this.context?.metaData?.officialLogo?.src || '';\r\n }\r\n\r\n get schemaSameAs(): Array {\r\n return this.context?.metaData?.socialMediaLinks?.map((link) => link?.url as string) || [];\r\n }\r\n\r\n get productUrl(): string {\r\n return this.context?.ContextExtensions?.hrefLanguageList?.find((item) => item?.langCode === this.context?.language)?.langUrl || '';\r\n }\r\n\r\n get corporationJSONLD(): TJsonLDObj {\r\n const jsonLD = removeEmptyFields({\r\n '@context': 'https://schema.org',\r\n '@type': this.schemaType,\r\n name: this.schemaName,\r\n description: this.schemaDescription,\r\n url: this.schemaUrl,\r\n logo: this.schemaLogo,\r\n sameAs: this.schemaSameAs,\r\n }) as WithContext;\r\n return helmetJsonLdProp(jsonLD);\r\n }\r\n\r\n /* eslint-disable-next-line */\r\n get vehicleJSONLD(): TJsonLDObj | undefined {\r\n if (this.productSchemaBodyType || this.productSchemaCargoVolume || this.productSchemaFuelType) {\r\n const corporationJSONLD = removeEmptyFields({\r\n '@context': 'https://schema.org',\r\n '@type': this.schemaType,\r\n name: this.schemaName,\r\n description: this.schemaDescription,\r\n url: this.schemaUrl,\r\n logo: this.schemaLogo,\r\n sameAs: this.schemaSameAs,\r\n });\r\n const jsonLD = removeEmptyFields({\r\n '@context': 'https://schema.org',\r\n '@type': this.productType,\r\n name: this.title,\r\n manufacturer: corporationJSONLD,\r\n url: this.productUrl,\r\n bodytype: this.productSchemaBodyType,\r\n CargoVolume: this.productSchemaCargoVolume,\r\n fuelType: this.productSchemaFuelType,\r\n image: this.productImage,\r\n }) as WithContext;\r\n\r\n return helmetJsonLdProp(jsonLD);\r\n }\r\n return undefined;\r\n }\r\n\r\n get pageJSONLD(): TJsonLDObj {\r\n return this.vehicleJSONLD || this.corporationJSONLD;\r\n }\r\n\r\n get hostUrl(): string {\r\n return this.context?.hostVirtualFolder || '';\r\n }\r\n\r\n get headerComponent(): THeaderComponent | undefined {\r\n return this.route?.placeholders?.['jss-header']?.[0] as ComponentRendering;\r\n }\r\n\r\n get searchUrl(): string {\r\n const param = this.headerComponent?.fields?.search?.link?.value?.href?.split('/') || [];\r\n const lastParam = param[param.length - 1];\r\n return lastParam ? `${this.hostUrl}/${lastParam}` : '';\r\n }\r\n\r\n get homePage(): boolean {\r\n const contextItemTemplateId = this.route?.templateId;\r\n return contextItemTemplateId === constants.homeTestSiteTemplateId || contextItemTemplateId === constants.homeTemplateId;\r\n }\r\n\r\n get searchboxJSONLD(): TJsonLDObj {\r\n const jsonLD = {\r\n '@context': 'https://schema.org',\r\n '@type': 'WebSite',\r\n url: this.hostUrl,\r\n potentialAction: {\r\n '@type': 'SearchAction',\r\n target: {\r\n '@type': 'EntryPoint',\r\n urlTemplate: this.searchUrl + '?q={search_phrase}',\r\n },\r\n 'query-input': 'required name=search_phrase',\r\n },\r\n } as WithContext;\r\n\r\n return helmetJsonLdProp(jsonLD);\r\n }\r\n}\r\n","import React, { FC } from 'react';\r\nimport Helmet from 'react-helmet';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { JSONLDSeoModel } from './model/jsonldSeoTags.models';\r\nimport { TJSONLDSeoTagsProps } from './types/jsonldSeoTags.types';\r\n\r\nconst JSONLDSeoTag: FC = (props) => {\r\n const model = new JSONLDSeoModel(props);\r\n\r\n return (\r\n <>\r\n \r\n {model.hostUrl && model.homePage && model?.searchUrl && }\r\n \r\n )\r\n};\r\n\r\nexport default withSitecoreContext()(JSONLDSeoTag);\r\n","import React, { FC } from 'react';\r\n\r\nconst StickyTopWrapper: FC = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default StickyTopWrapper;\r\n","export function getDealerLocatorType(sitecoreContext) {\r\n const componentList = sitecoreContext?.route?.placeholders['jss-main'];\r\n const dealerLocatorLandingIndex = componentList?.findIndex((item) => item?.componentName === 'DealerLocatorLanding');\r\n const dealerLocatorLandingComponent = componentList?.[dealerLocatorLandingIndex];\r\n\r\n return dealerLocatorLandingComponent?.fields?.settings?.dealerLocatorSearchType;\r\n}\r\n","import React, { useEffect, useContext, useRef } from 'react';\r\nimport usePageView from './hooks/usePageView.effect';\r\nimport { Placeholder, RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport ConsentCookie from './components/@shared/consentCookie';\r\nimport LayoutSeoTags from './components/@shared/layoutSeoTags';\r\nimport JSONLDSeoTags from './components/@shared/JSONLDSeoTags';\r\nimport StickyTopWrapper from './components/@shared/stickyTopWrapper';\r\nimport ReactGA from 'react-ga4';\r\nimport { LayoutContext } from './components/@shared/layoutContextProvider';\r\nimport { windowService, documentService } from './utils/window.utils';\r\nimport { googleDataLayerPush } from './utils/analytics';\r\nimport { getDealerLocatorType } from './utils/gtm.utils';\r\n\r\nconst Layout = ({ route, sitecoreContext }) => {\r\n const matomoUrl = sitecoreContext?.analytics?.['matomoUrl'];\r\n const matomoId = sitecoreContext?.analytics?.['matomoId'];\r\n const matomoTagManagerContainer = sitecoreContext?.analytics?.['matomoTagManagerContainer'];\r\n const matomoTagManagerScript =\r\n matomoUrl && matomoTagManagerContainer\r\n ? ``\r\n : '';\r\n\r\n const googleAnalyticsId = sitecoreContext?.analytics?.['googleAnalyticsId'];\r\n const googleTagManagerIds = sitecoreContext?.analytics?.['googleTagManagerIds'];\r\n const googleTagManagerIdWithServerSideDomain = sitecoreContext?.analytics?.['googleTagManagerIdWithServerSideDomain'];\r\n\r\n const marketoMunchkinId = sitecoreContext?.analytics?.['marketoMunchkinId'];\r\n const marketoMunchkinWsInfo = sitecoreContext?.analytics?.['marketoMunchkinWsInfo'];\r\n\r\n const applicationInsightInstrumentationKey = sitecoreContext?.analytics?.['applicationInsight']?.['instrumentationKey'];\r\n const aiScript = applicationInsightInstrumentationKey\r\n ? ``\r\n : '';\r\n\r\n const enableCustomerSurvey = sitecoreContext?.analytics?.['enableCustomerSurvey'];\r\n const customerSurveyScript = sitecoreContext?.analytics?.['customerSurveyScript'];\r\n const shouldRenderCustomerSurvey = enableCustomerSurvey && customerSurveyScript;\r\n const isPageLoadEventTriggered = useRef(false);\r\n\r\n // Matomo\r\n useEffect(() => {\r\n if (matomoUrl && matomoId) {\r\n const _paq = (window._paq = windowService()?._paq || []);\r\n _paq.push(['enableLinkTracking']);\r\n (function () {\r\n _paq.push(['setTrackerUrl', matomoUrl + 'matomo.php']);\r\n _paq.push(['setSiteId', matomoId]);\r\n const d = documentService(),\r\n g = d.createElement('script'),\r\n s = d.getElementsByTagName('script')[0];\r\n g.type = 'text/javascript';\r\n g.async = true;\r\n g.src = matomoUrl + 'matomo.js';\r\n s.parentNode.insertBefore(g, s);\r\n })();\r\n }\r\n }, []); //eslint-disable-line\r\n\r\n // Matomo redirect\r\n usePageView(() => {\r\n if (matomoUrl && matomoTagManagerContainer) {\r\n const _mtm = (window._mtm = windowService()?._mtm || []);\r\n _mtm.push({ event: 'mtm.PageView' });\r\n _mtm.push({ event: 'WindowLoad' });\r\n }\r\n\r\n const _paq = (window._paq = windowService()?._paq || []);\r\n _paq.push(['setCustomUrl', windowService()?.location?.href]);\r\n _paq.push(['setDocumentTitle', documentService()?.title]);\r\n _paq.push(['deleteCustomVariables', 'page']);\r\n _paq.push(['trackPageView']);\r\n }, !(matomoUrl && matomoId));\r\n\r\n // Matomo redirect\r\n usePageView(() => {\r\n if (matomoUrl && matomoTagManagerContainer) {\r\n const _mtm = (window._mtm = windowService()?._mtm || []);\r\n _mtm.push({ event: 'mtm.PageView' });\r\n _mtm.push({ event: 'WindowLoad' });\r\n }\r\n\r\n if (matomoUrl && matomoId) {\r\n const _paq = (window._paq = windowService()?._paq || []);\r\n _paq.push(['setCustomUrl', windowService()?.location?.href]);\r\n _paq.push(['setDocumentTitle', documentService()?.title]);\r\n _paq.push(['deleteCustomVariables', 'page']);\r\n _paq.push(['trackPageView']);\r\n }\r\n });\r\n\r\n // Google Analytics 4\r\n useEffect(() => {\r\n if (googleAnalyticsId) {\r\n ReactGA.initialize(googleAnalyticsId);\r\n }\r\n }, []); /* eslint-disable-line */\r\n\r\n const addGTMScript = (gtmId, gtmUrl ) => {\r\n const url = gtmUrl || 'https://www.googletagmanager.com';\r\n const scriptText = `\r\n (function(w,d,s,l,i){w[l]=w[l]||[];\r\n w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js', });\r\n var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';\r\n j.async=true;j.src='${url}/gtm.js?id='+i+dl+'>m_auth=>m_preview=>m_cookies_win=x';\r\n f.parentNode.insertBefore(j,f);\r\n })(window,document,'script','dataLayer','${gtmId}');\r\n `;\r\n const script = documentService()?.createElement(\"script\");\r\n script.innerText = scriptText;\r\n // eslint-disable-next-line\r\n documentService()?.head?.prepend(script);\r\n\r\n const noScriptText = `\r\n \r\n `;\r\n\r\n const noScript = documentService()?.createElement(\"noscript\");\r\n noScript.innerText = noScriptText;\r\n // eslint-disable-next-line\r\n documentService()?.body?.prepend(noScript);\r\n }\r\n\r\n // Google Tag Manager\r\n useEffect(() => {\r\n const gtmIds = googleTagManagerIds || [];\r\n const gtmCustomDomains = googleTagManagerIdWithServerSideDomain || [];\r\n gtmIds.forEach((gtmId) => {\r\n addGTMScript(gtmId, '');\r\n });\r\n\r\n gtmCustomDomains.forEach((gtmElem) => {\r\n addGTMScript(gtmElem?.tag, gtmElem?.domain);\r\n });\r\n }, []); //eslint-disable-line\r\n\r\n const layoutContext = useContext(LayoutContext);\r\n const headerInfo = layoutContext?.userLoginStatus.headerInfo;\r\n\r\n useEffect(() => {\r\n if (headerInfo.logged === undefined || isPageLoadEventTriggered.current) return;\r\n const dataLayerData = {\r\n event: 'pageLoad',\r\n region: sitecoreContext?.analytics?.['region'],\r\n language: sitecoreContext?.analytics?.['language'],\r\n market: sitecoreContext?.analytics?.['market'],\r\n siteSection: sitecoreContext?.analytics?.['siteSection']\r\n ? sitecoreContext?.analytics?.['siteSection']\r\n : undefined,\r\n siteSubsection: sitecoreContext?.analytics?.['siteSubsection']\r\n ? sitecoreContext?.analytics?.['siteSubsection']\r\n : undefined,\r\n productLine: sitecoreContext?.analytics?.['productLine']\r\n ? sitecoreContext?.analytics?.['productLine']\r\n : undefined,\r\n productSeries: sitecoreContext?.analytics?.['productSeries']\r\n ? sitecoreContext?.analytics?.['productSeries']\r\n : undefined,\r\n productModel: sitecoreContext?.analytics?.['productModel']\r\n ? sitecoreContext?.analytics?.['productModel']\r\n : undefined,\r\n loginStatus: headerInfo?.logged ? 'Yes' : 'No',\r\n dealerLocatorType: getDealerLocatorType(sitecoreContext),\r\n };\r\n\r\n googleDataLayerPush(dataLayerData);\r\n isPageLoadEventTriggered.current = true;\r\n // eslint-disable-next-line\r\n }, [sitecoreContext?.analytics, headerInfo.logged]);\r\n\r\n //this the datalayer event not to push multiple time\r\n usePageView(() => {\r\n isPageLoadEventTriggered.current = false;\r\n });\r\n\r\n // Marketo\r\n usePageView(() => {\r\n if (!marketoMunchkinId) {\r\n return;\r\n }\r\n\r\n (function () {\r\n let didInit = false;\r\n function initMunchkin() {\r\n if (didInit === false && windowService().Munchkin) {\r\n didInit = true;\r\n if (marketoMunchkinWsInfo) {\r\n windowService().Munchkin.init(marketoMunchkinId, { wsInfo: marketoMunchkinWsInfo });\r\n } else {\r\n windowService().Munchkin.init(marketoMunchkinId);\r\n }\r\n }\r\n }\r\n\r\n const s = documentService().createElement('script');\r\n s.type = 'text/javascript';\r\n s.async = true;\r\n s.src = '//munchkin.marketo.net/munchkin.js';\r\n s.onreadystatechange = function () {\r\n if (this.readyState === 'complete' || this.readyState === 'loaded') {\r\n initMunchkin();\r\n }\r\n };\r\n\r\n s.onload = initMunchkin;\r\n documentService().getElementsByTagName('head')[0].appendChild(s);\r\n })();\r\n }); //eslint-disable-line\r\n\r\n return (\r\n \r\n {/* consent cookie popup scripts */}\r\n \r\n\r\n {/* react-helmet enables setting contents, like title and OG meta tags */}\r\n \r\n \r\n\r\n {/*\r\n VisitorIdentification is necessary for Sitecore Analytics to determine if the visitor is a robot.\r\n If Sitecore XP (with xConnect/xDB) is used, this is required or else analytics will not be collected for the JSS app.\r\n For XM (CMS-only) apps, this should be removed.\r\n\r\n VI detection only runs once for a given analytics ID, so this is not a recurring operation once cookies are established.\r\n */}\r\n {/* */}\r\n\r\n {matomoTagManagerScript && }\r\n {aiScript && }\r\n\r\n {shouldRenderCustomerSurvey && }\r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {\r\n if (items[0]) {\r\n const firstItem = items[0];\r\n items[0] = React.cloneElement(firstItem, { isFirst: true });\r\n }\r\n return items;\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(Layout);\r\n","import React from 'react';\r\n\r\n// Renders a route-not-found message when no route is available from Sitecore\r\n// The JSS equivalent of a 404 Not Found page.\r\n\r\n// This is invoked from RouteHandler when Sitecore returns no valid route data.\r\n// The NotFound component receives the Layout Service Context data, but no route data.\r\n// This can be used to power parts of your site, such as navigation, from LS context additions\r\n// without losing the ability to render them on your 404 pages :)\r\n\r\nconst NotFound = ({ context = { site: { name: '' }, language: '' } }) => (\r\n \r\n

    Page not found

    \r\n

    This page does not exist.

    \r\n

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

    \r\n
    \r\n);\r\n\r\nexport default NotFound;\r\n","import React from 'react';\r\nimport i18n from 'i18next';\r\nimport Helmet from 'react-helmet';\r\nimport { isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { layoutServiceFactory } from './lib/layout-service-factory';\r\nimport config from './temp/config';\r\nimport Layout from './Layout';\r\nimport { EventEnum } from './enums/event.enum';\r\nimport { DL_QUERY_STRINGS } from './constants/dealerLocator.constants';\r\nimport { QueryParamsConst } from './constants/query-params.constants';\r\nimport { EVENT_QUERY_STRINGS } from './constants/eventsFairs.constants';\r\nimport { SP_QUERY_STRINGS } from './constants/special-offers-page.constants';\r\nimport NotFound from './NotFound';\r\nimport LayoutContextProvider from './components/@shared/layoutContextProvider';\r\n\r\n/* eslint-disable no-console */\r\n\r\n// Dynamic route handler for Sitecore items.\r\n// Because JSS app routes are defined in Sitecore, traditional static React routing isn't enough -\r\n// we need to be able to load dynamic route data from Sitecore after the client side route changes.\r\n// So react-router delegates all route rendering to this handler, which attempts to get the right\r\n// route data from Sitecore - and if none exists, renders the not found component.\r\n\r\nclass RouteHandler extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n // tell i18next to sync its current language with the route language\r\n this.updateLanguage();\r\n }\r\n\r\n componentDidMount() {\r\n // If we are not using SSR we have to load layout data\r\n if (!this.props.isSSR) {\r\n this.updateLayoutData();\r\n }\r\n this.componentIsMounted = true;\r\n }\r\n\r\n componentWillUnmount() {\r\n this.componentIsMounted = false;\r\n }\r\n\r\n extractSearchQueryParams = () => {\r\n const searchParams = this.props?.location?.search || '';\r\n\r\n const params = new URLSearchParams(searchParams);\r\n const paramObj = {};\r\n const whitelistedQueryParamKeys = Object.values(QueryParamsConst);\r\n for (const value of params.keys()) {\r\n if (whitelistedQueryParamKeys.includes(value)) {\r\n paramObj[value] = params.get(value);\r\n }\r\n }\r\n return paramObj;\r\n };\r\n\r\n /**\r\n * Loads route data from Sitecore Layout Service into state.routeData\r\n */\r\n updateLayoutData() {\r\n const language = this.getLanguage();\r\n // const language = this.props.route.match.params.lang || this.state.defaultLanguage;\r\n const siteName = this.props.sitecoreContext?.site?.name || config.jssAppName;\r\n const extraQueryParams = this.extractSearchQueryParams();\r\n\r\n window.dispatchEvent(new CustomEvent(EventEnum.ADD_LOADER_QUEUE_ITEM));\r\n let sitecoreRoutePath = this.props.route || '/';\r\n // this.props.route.match.params.sitecoreRoute || '/';\r\n if (!sitecoreRoutePath.startsWith('/')) {\r\n sitecoreRoutePath = `/${sitecoreRoutePath}`;\r\n }\r\n\r\n // instantiate the dictionary service.\r\n const layoutServiceInstance = layoutServiceFactory.create(siteName, extraQueryParams);\r\n\r\n // get the route data for the new route\r\n layoutServiceInstance.fetchLayoutData(sitecoreRoutePath, language).then((routeData) => {\r\n // Unhide the header on page navigation.\r\n // scenario: page with navigation bar, scroll till header hide and navigate to new page, header was still hidden, as the class was not removed\r\n // Since the data reaches here first and this is first line of indication that data to update new page is received\r\n // adding the below code to make the header visible\r\n if (typeof document !== 'undefined') {\r\n const header = document.querySelector('#root > header > .header > #sticky-top-wrapper > .navigation');\r\n header && header.classList.remove('sticky-element--hide');\r\n }\r\n this.props.updateSitecoreContext(routeData);\r\n window.dispatchEvent(new CustomEvent(EventEnum.REMOVE_LOADER_QUEUE_ITEM));\r\n });\r\n }\r\n\r\n getLanguage() {\r\n return this.props.language || this.props.sitecoreContext.language || config.defaultLanguage;\r\n }\r\n\r\n /**\r\n * Updates the current app language to match the route data.\r\n */\r\n updateLanguage() {\r\n // const newLanguage = this.props.route.match.params.lang || this.state.defaultLanguage || this.props.sitecoreContext.language || config.defaultLanguage;\r\n const newLanguage = this.getLanguage();\r\n\r\n if (i18n.language !== newLanguage) {\r\n i18n.changeLanguage(newLanguage);\r\n }\r\n }\r\n\r\n hasDiffOnlyInExcludedParams = (newQueryParams, existingSearchParams) => {\r\n const excludedSearchParams = [\r\n DL_QUERY_STRINGS.SEARCH_QUERY,\r\n DL_QUERY_STRINGS.PLACE_ID,\r\n DL_QUERY_STRINGS.USER_LATITUDE,\r\n DL_QUERY_STRINGS.USER_LONGITUDE,\r\n DL_QUERY_STRINGS.COUNTRY,\r\n DL_QUERY_STRINGS.REGION,\r\n DL_QUERY_STRINGS.EQUIPMENT_FILTERS,\r\n DL_QUERY_STRINGS.SERVICES_FILTERS,\r\n DL_QUERY_STRINGS.SELECTED_DEALER,\r\n EVENT_QUERY_STRINGS.EVENT_PAGE,\r\n EVENT_QUERY_STRINGS.EVENT_TIMELINE,\r\n EVENT_QUERY_STRINGS.EVENT_TYPE,\r\n SP_QUERY_STRINGS.PAGE,\r\n SP_QUERY_STRINGS.CATEGORY,\r\n SP_QUERY_STRINGS.LINE,\r\n SP_QUERY_STRINGS.SERIES,\r\n SP_QUERY_STRINGS.MODEL,\r\n ];\r\n const newSearchParamsObj = new URLSearchParams(newQueryParams);\r\n const currentQueryParamsObj = new URLSearchParams(existingSearchParams);\r\n\r\n //Remove excluded searchParams and compare changes\r\n excludedSearchParams.forEach((param) => {\r\n newSearchParamsObj.delete(param);\r\n currentQueryParamsObj.delete(param);\r\n });\r\n\r\n return newSearchParamsObj?.toString() === currentQueryParamsObj?.toString();\r\n };\r\n\r\n // extractRouteData = () => {\r\n // if (!this.props.sitecoreContext) return null;\r\n\r\n // const { route, ...context } = this.props.sitecoreContext;\r\n\r\n // return {\r\n // sitecore: {\r\n // route,\r\n // context,\r\n // },\r\n // };\r\n // };\r\n\r\n componentDidUpdate(previousProps) {\r\n const existingRoute = previousProps.url;\r\n const newRoute = this.props.url;\r\n const existingSearchParams = previousProps?.location?.search || '';\r\n const newSearchParams = this.props?.location?.search || '';\r\n let sitecoreRoutePath = this.props.route || '/';\r\n\r\n // checking if specific scroll to a component (ex: https://.....#model-listing) is present in the url.\r\n // If not, Scroll to top of page after api data is received.\r\n if (!sitecoreRoutePath?.includes?.('#')) {\r\n typeof window !== 'undefined' &&\r\n window.scrollTo({\r\n top: 0,\r\n });\r\n }\r\n\r\n // don't change state (refetch route data) if the route has not changed\r\n if (existingRoute + existingSearchParams === newRoute + newSearchParams) {\r\n return;\r\n }\r\n\r\n // don't change state (refetch route data) if the route has not changed\r\n if (\r\n existingRoute === newRoute &&\r\n this.hasDiffOnlyInExcludedParams(newSearchParams, existingSearchParams)\r\n ) {\r\n return;\r\n }\r\n\r\n // if in Sitecore editor - force reload instead of route data update\r\n // avoids confusing Sitecore's editing JS\r\n if (isEditorActive()) {\r\n window.location.assign(newRoute);\r\n return;\r\n }\r\n\r\n this.updateLanguage();\r\n this.updateLayoutData();\r\n }\r\n\r\n render() {\r\n const layoutData = this.props.sitecoreContext;\r\n // const layoutData = this.extractRouteData();\r\n\r\n // Note: this is client-side only 404 handling. Server-side 404 handling is the responsibility\r\n // of the server being used (i.e. node-headless-ssr-proxy and Sitecore intergrated rendering know how to send 404 status codes).\r\n // `route` is null in case if route is not found\r\n if (layoutData.route === null) {\r\n return (\r\n
    \r\n \r\n {i18n.t('Page not found')}\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n // Don't render anything if the route data or dictionary data is not fully loaded yet.\r\n // This is a good place for a \"Loading\" component, if one is needed.\r\n if (!layoutData.route) {\r\n return null;\r\n }\r\n\r\n // Render the app's root structural layout\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withSitecoreContext({ updatable: true })(RouteHandler);\r\n","import React, { FC, useState, useEffect } from 'react';\r\nimport useEEActive from '../../../hooks/useEEActive';\r\nimport { windowService } from '../../../utils/window.utils.js';\r\nimport { EventEnum } from '../../../enums/event.enum';\r\nimport Spinner from '../spinner';\r\n\r\nconst Loader: FC<{}> = () => {\r\n const isEEActive = useEEActive();\r\n const [showLoader, setShowLoader] = useState([]);\r\n\r\n useEffect(() => {\r\n windowService().addEventListener(EventEnum.ADD_LOADER_QUEUE_ITEM, () => {\r\n setShowLoader((prev) => [...prev, true]);\r\n });\r\n\r\n windowService().addEventListener(EventEnum.REMOVE_LOADER_QUEUE_ITEM, () => {\r\n setShowLoader((prev) => [...prev].slice(0, -1));\r\n });\r\n\r\n return () => {\r\n windowService().removeEventListener(EventEnum.ADD_LOADER_QUEUE_ITEM);\r\n windowService().removeEventListener(EventEnum.REMOVE_LOADER_QUEUE_ITEM);\r\n };\r\n }, []);\r\n\r\n if (isEEActive) return null;\r\n\r\n return (\r\n
    0 ? 'loader--show' : ''}`}>\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Loader;\r\n","import React from 'react';\r\nimport { SitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { Route, Routes, useLocation, useParams } from 'react-router-dom';\r\nimport { ApolloProvider } from '@apollo/client';\r\nimport componentFactory from './temp/componentFactory';\r\nimport RouteHandler from './RouteHandler';\r\nimport { documentService, windowService } from './utils/window.utils';\r\nimport Loader from './components/@shared/loader';\r\nimport gsap from 'gsap';\r\nimport { ScrollToPlugin } from 'gsap/ScrollToPlugin';\r\n\r\n// This is the main JSX entry point of the app invoked by the renderer (server or client rendering).\r\n// By default the app's normal rendering is delegated to that handles the loading of JSS route data.\r\n\r\n// support languages in the URL prefix\r\n// e.g. /da-DK/path, or /en/path, or /path\r\nconst LANGUAGE_REG_EXP = /^\\/?(([a-z]{2}-[a-zA-Z]{2})|([a-z]{2}))(\\/|$)/g;\r\n\r\nexport const parseRouteParams = (url) => {\r\n const language = url.match(LANGUAGE_REG_EXP);\r\n const route = url.replace(LANGUAGE_REG_EXP, '');\r\n\r\n return {\r\n route: route.startsWith('/') ? route : `/${route}`,\r\n language: language ? language[0].replace(/\\//g, '') : undefined,\r\n };\r\n};\r\n\r\nconst JssRoute = (props) => {\r\n const params = useParams();\r\n const url = params['*'];\r\n const location = useLocation();\r\n\r\n return ;\r\n};\r\n// wrap the app with:\r\n// ApolloProvider: provides an instance of Apollo GraphQL client to the app to make Connected GraphQL queries.\r\n// Not needed if not using connected GraphQL.\r\n// SitecoreContext: provides component resolution and context services via withSitecoreContext\r\n// Router: provides a basic routing setup that will resolve Sitecore item routes and allow for language URL prefixes.\r\nclass AppRoot extends React.Component {\r\n\r\n componentDidMount(): void {\r\n gsap.registerPlugin(ScrollToPlugin);\r\n windowService()?.addEventListener?.('resize', () => {\r\n const vh100 = windowService()?.innerHeight;\r\n documentService()?.documentElement.style.setProperty('--100-vh', `${vh100}px`);\r\n });\r\n }\r\n\r\n render() {\r\n const { path, Router, graphQLClient } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AppRoot;\r\n","import {\r\n GraphQLDictionaryService,\r\n RestDictionaryService,\r\n constants,\r\n} from '@sitecore-jss/sitecore-jss-react';\r\nimport config from '../temp/config';\r\n\r\nexport class DictionaryServiceFactory {\r\n create(appName) {\r\n return process.env.REACT_APP_FETCH_WITH === constants.FETCH_WITH.GRAPHQL\r\n ? new GraphQLDictionaryService({\r\n endpoint: config.graphQLEndpoint,\r\n apiKey: config.sitecoreApiKey,\r\n siteName: config.jssAppName,\r\n /*\r\n The Dictionary Service needs a root item ID in order to fetch dictionary phrases for the current\r\n app. If your Sitecore instance only has 1 JSS App, you can specify the root item ID here;\r\n otherwise, the service will attempt to figure out the root item for the current JSS App using GraphQL and app name.\r\n rootItemId: '{GUID}'\r\n */\r\n })\r\n : new RestDictionaryService({\r\n apiHost: config.sitecoreApiHost,\r\n apiKey: config.sitecoreApiKey,\r\n siteName: appName,\r\n });\r\n }\r\n}\r\n\r\nexport const dictionaryServiceFactory = new DictionaryServiceFactory();\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\n\r\nimport React from 'react';\r\nimport { createRoot, hydrateRoot } from 'react-dom/client';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { enableDebug } from '@sitecore-jss/sitecore-jss-react';\r\nimport AppRoot from './AppRoot';\r\nimport GraphQLClientFactory from './lib/GraphQLClientFactory';\r\nimport config from './temp/config';\r\nimport i18ninit from './i18n';\r\n\r\nif (process.env.REACT_APP_DEBUG) {\r\n enableDebug(process.env.REACT_APP_DEBUG);\r\n}\r\n\r\n/* eslint-disable no-underscore-dangle */\r\n\r\nlet renderFunction = (rootElement, component) => {\r\n const root = createRoot(rootElement);\r\n root.render(component);\r\n};\r\n\r\nlet initLanguage = config.defaultLanguage;\r\n\r\n/*\r\n SSR Data\r\n If we're running in a server-side rendering scenario,\r\n the server will provide JSON in the #__JSS_STATE__ element\r\n for us to acquire the initial state to run with on the client.\r\n\r\n This enables us to skip a network request to load up the layout data.\r\n We are emitting a quiescent script with JSON so that we can take advantage\r\n of JSON.parse()'s speed advantage over parsing full JS, and enable\r\n working without needing `unsafe-inline` in Content Security Policies.\r\n\r\n SSR is initiated from /server/server.js.\r\n*/\r\nlet __JSS_STATE__ = null;\r\nconst ssrRawJson = document.getElementById('__JSS_STATE__');\r\nif (ssrRawJson) {\r\n __JSS_STATE__ = JSON.parse(ssrRawJson.innerHTML);\r\n}\r\nif (__JSS_STATE__) {\r\n // when React initializes from a SSR-based initial state, you need to render with `hydrateRoot` instead of `render`\r\n renderFunction = hydrateRoot;\r\n\r\n // set i18n language SSR state language instead of static config default language\r\n initLanguage = __JSS_STATE__.sitecore.context.language;\r\n}\r\n\r\n/*\r\n GraphQL Data\r\n The Apollo Client needs to be initialized to make GraphQL available to the JSS app.\r\n Not using GraphQL? Remove this, and the ApolloContext from `AppRoot`.\r\n*/\r\n// Apollo supports SSR of GraphQL queries, so like JSS SSR, it has an object we can pre-hydrate the client cache from\r\n// to avoid needing to re-run GraphQL queries after the SSR page loads\r\nconst initialGraphQLState =\r\n __JSS_STATE__ && __JSS_STATE__.APOLLO_STATE ? __JSS_STATE__.APOLLO_STATE : null;\r\n\r\nconst graphQLClient = GraphQLClientFactory(config.graphQLEndpoint, false, initialGraphQLState);\r\nconst appName = __JSS_STATE__?.sitecore?.context?.appName;\r\n\r\n/*\r\n App Rendering\r\n*/\r\n// initialize the dictionary, then render the app\r\n// note: if not making a multlingual app, the dictionary init can be removed.\r\ni18ninit(initLanguage, '', appName).then(() => {\r\n // HTML element to place the app into\r\n const rootElement = document.getElementById('root');\r\n\r\n renderFunction(\r\n rootElement,\r\n \r\n );\r\n});\r\n","/* eslint-disable import/first */\r\n\r\nimport 'cross-fetch/polyfill';\r\nimport { ApolloClient, InMemoryCache } from '@apollo/client';\r\n\r\n/* eslint-disable import/order */\r\n\r\n/*\r\n INTROSPECTION DATA\r\n See https://www.apollographql.com/docs/react/recipes/fragment-matching.html\r\n This enables the Apollo cache to process fragments on interface types correctly.\r\n If this file does not exist, you may need to run the `jss graphql:update` script.\r\n*/\r\nimport introspectionQueryResultData from '../temp/GraphQLFragmentTypes.json';\r\n\r\n/*\r\n QUERY LINK SELECTION\r\n A link is transport which GraphQL queries are pushed across.\r\n You have many choices.\r\n See the apollo-link documentation for more details.\r\n*/\r\n\r\n// choose between a basic HTTP link to run queries...\r\n// import { createHttpLink } from 'apollo-link-http';\r\n// const link = createHttpLink({ uri: endpoint });\r\n\r\n// ...or a batched link (multiple queries within 10ms all go in one HTTP request)\r\nimport { BatchHttpLink } from '@apollo/client/link/batch-http';\r\n\r\nimport config from '../temp/config';\r\n\r\nexport default function (endpoint, ssr, initialCacheState) {\r\n /* HTTP link selection: default to batched + APQ */\r\n const link = new BatchHttpLink({\r\n uri: endpoint,\r\n headers: {\r\n connection: 'keep-alive',\r\n sc_apikey: config.sitecoreApiKey,\r\n },\r\n });\r\n\r\n const possibleTypes = {};\r\n\r\n introspectionQueryResultData.__schema.types.forEach((supertype) => {\r\n possibleTypes[supertype.name] = supertype.possibleTypes.map((subtype) => subtype.name);\r\n });\r\n\r\n const cache = new InMemoryCache({\r\n possibleTypes,\r\n });\r\n\r\n return new ApolloClient({\r\n ssrMode: ssr,\r\n ssrForceFetchDelay: 100,\r\n link,\r\n cache: cache.restore(initialCacheState),\r\n });\r\n}\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport { dictionaryServiceFactory } from './lib/dictionary-service-factory';\r\nimport config from './temp/config';\r\n\r\n/**\r\n * Initializes the i18next library to provide a translation dictionary to the app.\r\n * If your app is not multilingual, this file and references to it can be removed.\r\n * Elsewhere in the app to use the dictionary `import { t } from 'i18next'; ... t('key')`\r\n * @param {string} language Optional, the initial language. Only used for SSR; otherwise language set in RouteHandler.\r\n * @param {*} dictionary Optional, the dictionary to load. Only used for SSR; otherwise, the dictionary is loaded via JSS dictionary service.\r\n */\r\nexport default function i18nInit(language, dictionary, appName) {\r\n return new Promise((resolve, reject) => {\r\n const options = {\r\n debug: false,\r\n lng: language,\r\n fallbackLng: false, // fallback to keys\r\n load: 'currentOnly', // e.g. don't load 'es' when requesting 'es-MX' -- Sitecore config should handle this\r\n useCookie: false, // using URLs and Sitecore to store language context, don't need a cookie\r\n\r\n interpolation: {\r\n escapeValue: false, // not needed for react\r\n },\r\n };\r\n\r\n if (dictionary) {\r\n // if we got dictionary passed, that means we're in a SSR context with a server-provided dictionary\r\n // so we do not want a backend, because we already know all possible keys\r\n\r\n if (!i18n.isInitialized) {\r\n i18n.use(initReactI18next).init(options, (error) => {\r\n if (error) reject(error);\r\n\r\n i18n.addResourceBundle(language, 'translation', dictionary, true, true);\r\n\r\n resolve();\r\n });\r\n } else {\r\n i18n.changeLanguage(language).then(() => {\r\n i18n.addResourceBundle(language, 'translation', dictionary, true, true);\r\n\r\n resolve();\r\n });\r\n }\r\n } else {\r\n // We're running client-side, so we get translation data from the Sitecore dictionary API using fetch backend\r\n // For higher performance (but less simplicity), consider adding the i18n chained backend to a local cache option like the local storage backend.\r\n\r\n // instantiate the dictionary service.\r\n // eslint-disable-next-line\r\n const dictionaryServicePath = `${config.sitecoreApiHost}/sitecore/api/jss/dictionary/${appName}/{{lng}}?sc_apikey=${config.sitecoreApiKey}`;\r\n \r\n options.backend = {\r\n loadPath: dictionaryServicePath,\r\n parse: (data) => {\r\n const parsedData = JSON.parse(data);\r\n if (parsedData.phrases) {\r\n return parsedData.phrases;\r\n }\r\n return parsedData;\r\n },\r\n };\r\n const dictionaryServiceInstance = dictionaryServiceFactory.create(appName);\r\n i18n\r\n .use({\r\n type: 'backend',\r\n read(language, _namespace, callback) {\r\n dictionaryServiceInstance\r\n .fetchDictionaryData(language)\r\n .then((phrases) => {\r\n callback(null, phrases);\r\n })\r\n .catch((err) => callback(err, false));\r\n },\r\n })\r\n .use(initReactI18next)\r\n .init(options, (error) => {\r\n if (error) reject(error);\r\n\r\n resolve();\r\n });\r\n }\r\n });\r\n}\r\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\": \"E7B8A067-1850-4B18-A476-E5194524862F\",\n \"sitecoreApiHost\": \"\",\n \"jssAppName\": \"caseih\",\n \"defaultLanguage\": \"en\",\n \"graphQLEndpointPath\": \"/api/caseih\",\n \"graphQLEndpoint\": \"/api/caseih?sc_apikey=E7B8A067-1850-4B18-A476-E5194524862F\"\n};"],"names":["withSitecoreContext","_ref","height","offset","children","sitecoreContext","scrollContainer","overflow","_jsx","style","padding","pageEditing","LazyLoad","once","AdvisorModel","constructor","props","fields","this","featuredImage","_this$fields","image","proceedButtonText","_this$fields2","scriptUrl","_this$fields3","sessionStorageService","sessionStorage","clear","getItem","key","removeItem","setItem","windowService","window","documentService","document","advisorId","advisorScriptId","paginationBarId","paginationCurrentSlideId","paginationBackButtonId","loadingCircle","radioButtons","whatAreYouLookingForRadio","wrapper","slides","backButton","nextButton","powerRangeYesButton","powerRangeNewOptionsButton","powerRangeRadioButtons","powerRangeRadioButtonsWrapper","restartButton","restartButtonId","lastSlide","sliderWrapper","useEffect","async","value","src","Promise","resolve","reject","tag","createElement","id","selectors","onload","onerror","getElementsByTagName","appendChild","loadScript","loadAdvisor","_jsxs","className","model","LazySection","LoadAdvisor","CardModel","all","title","subtitle","mobileImage","link","_this$fields4","_this$fields5","getFollowingHTag","currentTag","tags","indexOfCurrentTag","indexOf","BlogNewsModel","params","content","cards","_this$fields$items","items","map","el","eyebrow","isUnreleased","_this$fields6","isComponentUnreleased","textColor","_this$params","_this$params$textColo","toLowerCase","isGradientDisabled","_this$params2","disableGradient","headingTag","_this$params3","_this$params3$heading","cardHeadingTitleTag","useSitecoreContext","options","reactContext","useContext","SitecoreContextReactContext","updatable","context","updateSitecoreContext","setContext","undefined","useEEActive","previewIncluded","arguments","length","isEEActive","pageState","ctaTypes","isInternalUrl","url","startsWith","getExternalLinkRelAttribute","rel","appendToUrlPath","add","appendSlash","newurl","endsWith","concat","appendString","includes","urlArray","split","href","target","otherProps","Link","to","iconSize","xxs","sm","md","mbl","mldsk","dsk","lg","xlg","Icon","React","ref","iconName","iconField","onClick","color","size","extraClassName","webkitMaskUrl","alt","icon","iconData","iconItem","full","getIconDataFromKey","_iconReferenceField$f","_iconReferenceField$f2","iconReferenceField","iconFromRenderingParams","_iconReferenceField$f3","iconUrl","iconAlt","getIconDataromField","iconStyles","WebkitMaskImage","WebkitMaskSize","width","role","type","CustomExternalAnchor","_field$value","_field$value2","SitecoreLink","field","linkAttributes","_props$className","_props$target","class","removenofollow","buildLinkAttributes","text","memo","editable","hasValidHref","isEditing","RouterLink","ctaClassName","hasArrowRight","ArrowRight","RoutableSitecoreLink","ValidHrefAndNotEditing","LinkChildrenAndIcon","isEditorActive","CTA","isArrowShown","join","LinkWithField","RoutableNotEditableLink","CustomText","_sitecoreContext$lang","encode","language","isEnglish","isEditable","output","splitted","String","formatted","forEach","str","i","regex","superScriptTags","cursor","matchedScriptChar","exec","matchedChars","push","index","slice","val","Array","isArray","startIndex","endIndex","replaceSuperScriptTags","setDangerously","htmlProps","dangerouslySetInnerHTML","__html","defaultProps","displayName","withTranslation","t","keyword","isCustomText","customTextClass","customTextTag","_Fragment","_t","defaultValue","trim","Text","restOfProps","RichText","dictionaryKey","DictionaryTerm","HeadingModel","isEE","_this$props","_this$props2","_this$props3","_this$props4","isLinkExistsOrIsEE","_this$props$link","_this$props$link$valu","eyebrowExistsOrIsEE","_this$eyebrow","titleExistsOrIsEE","_this$title","subtitleExistsOrIsEE","_this$subtitle","targetLinkdsk","isDesktop","_link$value","_link$value3","_link$value2","query","initialState","callbackOnChange","mediaMatches","matches","setMatches","useState","media","matchMedia","listener","addListener","removeListener","Breakpoints","xs","xl","xxl","BreakpointsInPx","bg","cs","da","deAT","de","enAU","enCA","enGB","enIE","enUS","es","fr","frCA","hu","it","nl","nlBE","pl","pt","ptBR","ro","ru","sr","sv","th","tr","uk","getUTCDate","dateString","date","Date","getTime","getTimezoneOffset","getFormattedDate","dateFormat","locale","format","useFormatDate","defaultDateFormat","dateLocal","regionalSettings","utcDate","allLocales","formattedDate","error","formatComponentNumber","num","addLeadingZeros","totalLength","padStart","getDLMFormatDate","googleDataLayerPush","dataLayerData","_windowService","dataLayer","googleClickEvent","category","action","label","elementNumber","news_type","event_type","event_status","_action","_label","event","_clear","googleClickCtaEvent","googleClickNewsCtaEvent","googleClickEventsCtaEvent","googleClickNavEvent","googleClickSlideEvent","googleClickOpenVideoEvent","googleClickAccordionEvent","googleClickCardEvent","googleClickBreadcrumbEvent","googleClickDropdownEvent","googleClickTabEvent","googleSocialEvent","googleClickRichTextEvent","anchorElement","nodeName","googleClickDealerLocatorResults","dealerLocatorCountry","dealerLocatorSearch","dealerLocatorEquipment","dealerLocatorServices","dealerLocatorType","dealerLocatorState","googleGeolocationClick","region","market","googleFormProgress","form_name","form_step","form_step_name","googleDownloadBrochureListingEvent","productLine","productSeries","productCategory","search_term","getTextType","textType","Heading","_model$eyebrow","_model$title","_model$subtitle","memoDependencires","modelDependencies","useMemo","extraClassNameLink","customTextTitle","customTextSubtitle","useDictionaryFallback","titleDictionaryKey","eyebrowDictionaryKey","descriptionDictionaryKey","useMediaQuery","TextComponentDecider","_model$title2","useAnalytics","hideSecondaryLink","_model$link$value$tex","_model$link","_model$link2","_model$title3","Boolean","direction","onClickSecondary","additionalCssClass","triggerCTRLCmdAndClick","cb","ctrlKey","metaKey","stopPropagation","preventDefault","getYoutubeVideoId","trimmedLink","videoId","ampPos","substring","quesPos","ThumbnailResolutionOptions","getYoutubeThumbNail","resolution","getThumbnailProps","videoID","showThumbnail","thumbnailImgSrc","checkAndhandleSrcSet","imgElement","currentres","replaceres","_imgElement$parentEle","parentElement","tagName","pictureChildrens","from","element","srcset","replace","handleThumbnailImage","img","imgUrl","naturalWidth","naturalHeight","len","currentSrc","desktopRendition","desktopSDRendition","tabletLandscapeRendition","tabletRendition","mobileRendition","imageClassName","pictureClassName","imageStyle","pictureStyle","disableLazyLoad","prioritize","onTouchStart","onTouchEnd","onLoad","isVideoThumbnail","imageLoaded","setImageLoaded","imageRef","useRef","current","defaultRenditions","defaultBreakpoint","getDefaultRenditionsAndBreakpoint","Helmet","as","srcSet","loading","Image","tabletImage","desktopImage","mobileTransformation","tabletTransformation","desktopTransformation","cssClassPictureEl","cssClassImageEl","getUrl","_image$value","_image$value2","desktopFallbackImageUrl","tabletFallbackImageUrl","mobileFallbackImageUrl","getSrcImage","fallbackImageUrl","transformation","getImageDimensions","_image$value3","_image$value4","getAlt","_image$value5","ContentHubImage","EditImageEE","getImage","picture","SitecoreImage","EditorialImage","_documentService","_documentService$getE","isOpenEditImageModal","setIsOpenEditImageModal","popUpClassName","editorRef","ctaCloseTriggerRef","ctaOpenTriggerRef","modalContainer","setModalContainerEl","getElementById","call","_documentService2","_documentService2$get","_ctaOpenTriggerRef$cu","_ctaCloseTriggerRef$c","startStopBodyScroll","isScrollable","docElement","body","classList","remove","openCTA","_editorRef$current","closeCTA","_editorRef$current2","addEventListener","_ctaOpenTriggerRef$cu2","_ctaCloseTriggerRef$c2","removeEventListener","ReactDOM","productImageProps","editorialImageProps","ProductImage","cardHeadingTag","Picture","StoriesCard","_props$sitecoreContex","_model$link$value","disable","Card","isEmptyResponse","_props$fields","_props$fields2","_props$fields2$apiDat","_props$fields3","apiData","data","Object","keys","hidden","exceptComponentNames","useAnalyticsActionOnScroll","rendering","refElement","template","isActionExecuted","isEmptyResponseValue","component","excludeComponentNames","componentName","isProductEmptyResponse","_component$fields4","_component$fields4$ap","_component$fields4$ap2","_component$fields5","_component$fields5$ap","_component$fields5$ap2","_component$fields6","_component$fields6$ap","_component$fields6$ap2","_component$fields7","_component$fields7$ap","_component$fields7$ap2","_component$fields8","_component$fields8$ap","_component$fields8$ap2","_component$fields8$ap3","_component$fields9","_component$fields9$ap","_component$fields9$ap2","_component$fields9$ap3","_component$componentN","_component$componentN2","_component$fields10","_component$fields10$a","_component$fields10$a2","apiDataLength","innerComponents","models","brochures","lines","series","isChildrenPopulated","some","e","_e$items","isEditorialEmptyResponse","_component$fields","_component$fields$ite","_component$fields2","_component$fields2$ap","_component$fields2$ap2","_component$fields3","_component$fields3$in","isComponentInTheList","componentList","inOverlay","newSitecoreContext","route","placeholders","_component$placeholde2","_component$placeholde3","_component$placeholde4","_component$placeholde5","_component$placeholde6","_component$placeholde","genericPopUpComponent","_genericPopUpComponen","filter","newcomponent","flat","getComponentsFromGenericPopUp","uid","isInOverlay","getComponentNumber","inOverlayValue","_sitecoreContext$rout","componentIndex","isComponentsValid","handleIfIsIntersectedElement","isIntersecting","callAnalyticsAction","dataLayerTemplate","componentNo","analyticsActionCallback","useCallback","entries","observer","IntersectionObserver","threshold","observe","disconnect","styles","elementRef","UnreleasedComponent","arrowDomObj","setArrowDomObj","leftArrow","rightArrow","cardWidthRef","findSlidesToShow","_cardWidthRef$current","cardContainerWidth","clientWidth","cardWidth","cardMargin","slidesCanBeShown","Math","floor","storiesMapper","blogModel","item","_item$fields","_item$fields$title","_item$fields$link$val","_item$fields2","_item$fields2$link","_item$fields2$link$va","_item$fields3","_item$fields3$link","_item$fields3$link$va","_item$fields4","_item$fields4$title","slidesToShow","setSlidesToShow","settings","arrows","infinite","variableWidth","slidesToScroll","nextArrow","CarouselArrow","prevArrow","afterChange","_arrowDomObj$leftArro","_arrowDomObj$rightArr","visibility","querySelector","AnalyticsVisibleEvent","Slider","isLast","isNotClickable","chevronRightIcon","_item$url","NavigationItems","NavigationBarModel","thumbnailEE","_this$fields$itemData","itemData","thumbnail","_this$rendering","breadcrumbItems","_this$fields2$itemDat","_this$fields2$itemDat2","breadcrumbs","productsPageLabel","_this$fields3$itemDat","_this$fields3$itemDat2","productsPageTitle","productsPageUrl","_this$fields4$itemDat","_this$fields4$itemDat2","productsPageLink","backButtonLabel","_this$fields5$itemDat","_this$fields5$itemDat2","backButtonText","backButtonUrl","_this$fields6$itemDat","_this$fields6$itemDat2","isPlm","isPLM","breadcrumbJSONLD","_windowService$locati","origin","location","helmetJsonLdProp","itemListElement","position","name","_this$fields7","useAppendRootToRichTextInternalLinks","richText","_parsedHTML$getElemen","hostAppRoot","baseUrl","parsedHTML","html","_documentService$crea","divElement","innerHTML","parseHTML","anchorTagArr","anchorTags","anchorTag","_anchorTag$getAttribu","getAttribute","_anchorTag$setAttribu","setAttribute","_documentService2$cre","container","cloneNode","serializeHTML","useAppendRootToInternalLink","ContentHubHeroBannerSeriesDetailModel","quickSpecsColor","_this$fields2$apiData","description","_this$fields3$apiData","appendRootToRichTextInternalLinks","_this$fields4$apiData","_this$fields5$apiData","_this$fields5$apiData2","_this$fields5$apiData3","assets","rendition_desktop_size1900","desktopSDImage","_this$fields6$apiData","_this$fields6$apiData2","_this$fields6$apiData3","rendition_desktop_size1200","tabletLandscapeImage","_this$fields7$apiData","_this$fields7$apiData2","_this$fields7$apiData3","rendition_tablet_size1000","_this$fields8","_this$fields8$apiData","_this$fields8$apiData2","_this$fields8$apiData3","rendition_tablet_size1200","_this$fields9","_this$fields9$apiData","_this$fields9$apiData2","_this$fields9$apiData3","rendition_mobile_size1100","imageAlt","_this$fields10","_this$fields10$apiDat","_this$fields10$apiDat2","_this$fields10$apiDat3","primaryLink","_this$fields11","_this$fields11$apiDat","button1","primaryLinkUrl","_this$primaryLink","appendRootToInternalLink","secondaryLink","_this$fields12","_this$fields12$apiDat","button2","secondaryLinkUrl","_this$secondaryLink","summarySpecs","_this$fields13","_this$fields13$apiDat","labelCost","_this$fields14","_this$fields14$apiDat","optionalLabel1","price","_this$fields15","_this$fields15$apiDat","msrp","_this$fields16","enableBuildPriceCTA","_this$params4","ProductHeroBannerModel","rendition_desktop_size1300","rendition_tablet_size1300","isEmptyObject","obj","ProductSpecialOffersDetailHeroBannerModel","_id","_this$_id","dataSource","_this$fields$apiData","shortDescription","_this$fields3$apiData2","asset","_this$fields4$apiData2","rendition_mobile_size1000","button","buttonHero1","buttonHero2","_this$fields9$textCol","_this$fields9$textCol2","Key","_this$rendering2","socialMediaBarProps","socialMediaBar","_this$params2$heading","defaultDesktopImage","_this$context","_this$context$default","_this$context$default2","defaultBackgroundImageParameters","desktopImageData","specialOfferDetailHeroBannerCardImage","defaultMobileImage","_this$context2","_this$context2$defaul","_this$context2$defaul2","mobileImageData","HeroBannerModel","link1","link2","_this$fields8$textCol","_this$fields8$textCol2","_this$fields8$textCol3","useHeroBanner","excludedComponentNames","filteredComponentsList","heroBannerCompIndex","findIndex","heroBannerData","_sdHeroBannerModel$de","_sdHeroBannerModel$de2","_sdHeroBannerModel$ta","_sdHeroBannerModel$ta2","_sdHeroBannerModel$mo","sdHeroBannerModel","isHeroBannerPresent","_pHeroBannerModel$des","_pHeroBannerModel$des2","_pHeroBannerModel$tab","_pHeroBannerModel$tab2","_pHeroBannerModel$mob","pHeroBannerModel","_smallHeroBannerModel","_smallHeroBannerModel2","_smallHeroBannerModel3","_smallHeroBannerModel4","smallHeroBannerModel","_soHeroBannerModel$de","_soHeroBannerModel$mo","soHeroBannerModel","_props$sitecoreContex2","isEditOrPreview","cssClass","getItemWithModifiedUrl","appendQueryParams","script","self","NavigationBarItem","SharedBreadcrumbBar","ExternalComponentModel","_this$fields$link","_this$fields$link$val","_this$fields2$height","_height","Number","parseInt","isNaN","visibilityDelay","_this$fields3$visibil","_visibilityDelay","iFrameHeight","setiFrameHeight","toString","isVisible","setIsVisible","timer","messageListener","URL","iframeHeight","clearTimeout","messageName","dataParts","hasAttachment","formName","fileUploaded","fileUpload","googleFormSubmitEvent","iframeStyle","opacity","onLoadHandler","setTimeout","allow","SharedExternalComponent","Dots","dotsArray","min","updateMin","max","updateMax","changes","updateChanges","initialMax","initialMin","activeCard","cardsCount","hasAnimation","isDarkMode","dots","activeCardIndex","showCustomDots","CustomCarouselDots","ctaModifierClasses","ctaEnums","child","Children","_child$props","childClassName","newProps","adjustModalPositionBasedOnContent","isServer","windowHeight","innerHeight","scrollHeight","diffInGap","closeModal","isEEActiveOrPreview","isOpen","close","shouldCloseOnOverlayClick","overlayClassName","hasMaxHeightRestricted","onAfterOpen","hideCloseButton","skipModalPositionAdjustment","contentEleNode","setContentEleNode","adjustToToolbarHeight","_documentService$docu","_documentService$docu2","clientHeight","documentElement","setProperty","resize","EEToolbar","MutationObserver","mutationsList","mutation","_mutation$target","config","attributes","childList","subtree","_contentEleNode$getBo","modalHeight","getBoundingClientRect","_contentEleNode$getBo2","newModalHeight","onAfterOpenCallback","overlayElementCallback","contentElement","CloseButton","Modal","parentSelector","overlayElement","appElement","contentRef","customClass","CarouselNavPositionEnum","handleTouchStart","nativeEvent","stopImmediatePropagation","isWide","currentCardIndex","videoPlaying","videoPaused","moveLeft","moveRight","OverlayCarouselArrow","CarouselTransparentNavSection","LEFT","RIGHT","VideoPlayer","playIconClickCallback","playCallback","pauseCallback","endCallback","controls","autoPlay","muted","iconWrapperClassName","videoPlayerWrapperClassName","mediaTitle","mobilePlayIconSize","desktopPlayIconSize","loop","playsInline","hideThumbnail","setHideThumbnail","playing","setPlaying","onScreen","setOnScreen","runOnReady","setRunOnReady","videoPlayerWrapperRef","videoPlayerRef","loadedSecondsRef","entry","rootMargin","unobserve","playIconSize","localEditorialImageProps","localProductImageProps","reactPlayerConfig","file","preload","youtube","playerVars","autoplay","handlePlayButton","ReactPlayer","onReady","loadLastLoadedSecond","_videoPlayerRef$curre","seekTo","onPlay","localPlayCallback","onPause","localPauseCallback","onEnded","localEndCallback","onProgress","played","playedSeconds","playsinline","HeroCard","showOverlayTitleAndDescription","customTextDescription","editorial","desktopAlt","isVideo","videoUrl","onClickPlayButton","richTextTitle","richTextDescription","swipeStart","setSwipeStart","videoVisible","setVideoVisible","handleClickVideoPlay","handleTouchStartVideoPlay","_event$changedTouches","_event$changedTouches2","changedTouches","pageX","handleTouchEndVideoPlay","_event$changedTouches3","_event$changedTouches4","_event$changedTouches5","_event$changedTouches6","handleTouchEnd","_event$changedTouches7","_event$changedTouches8","getPictureProps","isRichTextTitle","isRichTextDescription","CarouselNavDeckCard","slide","goToCard","_slides$currentCardIn3","_slides$currentCardIn4","showNavDeck","analyticsMainTitle","useAnalyticsVisibleEvent","setCurrentCardIndex","SlideSectionRef","setVideoPlaying","setVideoPaused","resizeHandler","slideSectionEle","slideSectionDim","deckCardWidth","justifyContent","maxNoofCards","moveBy","_currentSelectedEle$p","_currentSelectedEle$p2","currentSelectedEle","eleDim","scroll","left","scrollLeft","behavior","_slides$currentCardIn","_slides$currentCardIn2","_slides$newIndex","_slides$newIndex$titl","newIndex","_slides$newIndex2","_slides$newIndex2$tit","_slides$index","_slides$index$title","carouselPopUp","arr","zIndex","_createElement","CarouselArrowAndNavSection","TextFieldGuard","socialMediaBarFields","EE_EMPTY_DATE_FALLBACK_VALUE","isMobile","useGetImageField","imageField","useVideo","_imageField$value","_imageField$value2","_model$video","_model$video$value","_model$badgeLink","_model$badgeLink$valu","_model$badgeLink2","_model$badgeLink2$val","_model$buttonPrimary","_model$buttonPrimary$","_model$buttonPrimary2","_model$buttonPrimary3","_model$type","_model$buttonPrimary6","_model$buttonPrimary7","_model$buttonPrimary8","_model$buttonPrimary9","_model$type2","_model$buttonSecondar","_model$buttonSecondar2","_model$buttonSecondar3","_model$buttonSecondar4","slideIndex","fallbackAnalyticsTitle","showOverlay","setShowOverlay","video","imageOrThumbnail","getImageField","mobileImageOrThumbnail","getOverlayProps","_model$image","_model$image$value","_model$mobileImage","_model$mobileImage$va","_model$video2","_model$video2$value","fullImage","mobileAlt","badgeLink","isWideCard","showOverlayVideo","buttonPrimary","CTAButton","_model$buttonPrimary4","_model$buttonPrimary5","buttonSecondary","_model$buttonSecondar5","_model$buttonSecondar6","ModalDialog","closeOverlayModal","OverlayCarouselPopup","BACKGROUND_COLOR_MAP","Map","BACKGROUND_COLOR_CLASS_MAP","SpecialOffersSlideModel","_props$id","_this$fields$cardType","_this$fields$cardType2","cardType","_this$type","_this$fields10$useVid","SpecialOffersModel","backgroundColor","get","_this$fields17","_this$fields18","CarouselDots","getCustomPaging","_model$items","_model$eyebrow2","_model$items2","screenWidth","setScreenWidth","updateActiveIndex","isClickedOnArrow","setIsClickedOnArrow","largeImageWidth","smallImageWidth","shouldInstanceCarousel","reduce","sumWidths","curr","_curr$type","arrowButtonClick","speed","customPaging","appendDots","dotsClass","innerWidth","_model$items$activeCa","_model$items$activeCa2","Placeholder","_model$eyebrow3","CarouselSlide","CardColumnLayoutModel","layout","_this$fields$columnLa","_this$fields$columnLa2","_this$fields$columnLa3","columnLayout","sectionHeading","sectionEyebrow","sectionSubheading","sectionCtaTextLink","whitetriangle","uiWhiteTriangle","card","_this$card","_this$card2","_this$card2$icon","_this$card2$icon$fiel","_this$card2$icon$fiel2","iconKey","_this$card3","cardHeading","subheading","_this$card4","cardSubheading","_this$card5","_this$card6","cta1","_this$card7","cardCtaButton","cta2","_this$card8","cardCtaTextLink","_this$card9","_this$card10","_this$card10$useVideo","_this$card11","showPopupWithSplitModule","_this$cta","_this$cta$value","_this$cta2","_this$cta2$value","_this$card12","_this$card12$items","_this$card12$items$0$","_this$card12$items$0$2","splitModuleLabel","splitModules","_this$card13","_this$card13$items","_this$card13$items$","_this$card13$items$$f","_this$card14","_this$card14$items","_this$card14$items$","_this$card14$items$$f","_this$card14$items$$f2","popUpLabel","_cta1$value","_cta1$value2","_cta2$value","_cta2$value2","cardIndex","handleSplitModuleModal","_cta1$value$text","_cta2$value$text","ColumnLayoutEnum","_imageOrThumbnail$val","_mobileImageOrThumbna","triangle","_imageOrThumbnail$val2","_mobileImageOrThumbna2","_imageOrThumbnail$val3","_mobileImageOrThumbna3","display","FourColumnLayout","MediaCard","_slide$productImagePr","_slide$productImagePr2","_slide$editorialImage","_slide$editorialImage2","_slide$videoUrl","_slide$videoUrl$value","hasFixedAspectRatio","mediaHeightClassName","carouselSettings","currentSlide","_setCurrentSlide","hasMultipleSlides","sliderRef","goToPreviousSlide","prevSlideNo","slickGoTo","goToNextSlide","nextSlideNo","deafultSettings","setCurrentSlide","MediaCarouselArrow","_props$video","_props$video$value","carouselSlide","MediaCarousel","_props$video2","_props$video2$value","_props$video2$value$h","videoHeading","videoSubHeading","SplitModuleModel","bodyText","videoSubheading","_this$fields11$useVid","imagePosition","_this$carouselSlide","_ref2","_fields$video","_fields$video$value","_fields$useVideo","_fields$useVideo2","_fields$useVideo3","_model$link2$value","_model$link4","_model$link4$value","_model$link5","_model$link5$value","MediaAsset","_model$title$value","_model$link3","_model$title$value2","_model$link6","_model$title$value3","_model$title4","showSplitModule","setShowSplitModule","state","CardImage","CardText","CardButtons","splitModule","SplitModule","_card$id","_card$id2","CardGridModel","_this$params$headingT","GridCard","_model$cards","_model$cards2","generateCards","CardGridCard","updateActiveCardIndex","cardGridWrapperRef","responsive","breakpoint","activeClass","isLastDecimalSlide","getSlidesToShow","slideTotal","toFixed","beforeChange","_","nextSlide","lastPaginationEl","CustomHtmlComponentModel","getInnerHtml","customHtml","rest","divRef","htmlSlot","createRange","createContextualFragment","_model$getInnerHtml","DangerouslySetHtmlAndJS","useLocation","_location$pathname","_dealerLandingUrlSegm","pathname","search","dealerLandingUrlSegments","dealerLandingUrl","decodeURI","Weekdays","DealerLocatorModel","dealerDetails","dealerDetail","dealerLocatorGoogleMapsAPIKey","_this$itemData$fields","_this$itemData","_this$itemData$fields2","_this$itemData$fields3","latitude","_this$dealerDetails$l","_this$dealerDetails","longitude","_this$dealerDetails$l2","_this$dealerDetails2","addressDetails","_this$dealerDetails3","_this$dealerDetails4","_this$dealerDetails5","_this$dealerDetails6","_this$dealerDetails6$","_this$dealerDetails7","_this$dealerDetails8","_this$dealerDetails9","_this$dealerDetails10","fax","shippingFax","phone","shippingPhone","email","dealerEmail","website","dealershipAttributes","address","shippingAddress1","shippingCity","shippingStateProv","shippingZip","businessHours","_this$dealerDetails11","dealerAttributes","hoursInDay","hours","hasMorningHours","hasEveningHours","day","morningHour","eveningHour","hasBusinessHours","siteLanguage","dealerExists","_this$dealerDetails12","dealerName","_this$dealerDetails13","descriptionExists","_this$dealerDetails14","_this$dealerDetails15","message","_this$dealerDetails16","dealerImage","_this$dealerDetails17","photoImage","logoImage","_this$dealerDetails18","mediaExists","_this$dealerImage","promotionsExist","_this$dealerDetails19","_this$dealerDetails20","promo","promotions","_this$dealerDetails21","certifications","_this$dealerDetails22","awardDesignations","hasCertifications","businessHoursAndCertificationsSectionExists","equipments","_this$itemData$fields4","_this$itemData2","_this$itemData2$field","_this$itemData2$field2","filters","Equipments","services","_this$itemData$fields5","_this$itemData3","_this$itemData3$field","_this$itemData3$field2","Services","SocialMediaBarModel","socialText","socialLinksItems","_this$items","EditFrameWrapper","itemId","header","disabledIcon","tooltip","command","commandDisplayName","databaseName","contextItemUri","clickCommandAction","commandData","commands","click","isDivider","custom","expandedDisplayName","divAttrs","sc_item","JSON","stringify","EditFrameComponent","hideIfNotPageEditing","shouldRender","WrapperComponent","WrapperProps","_item$fields$postText","socialMediaButtonName","postText","socialMedia","_socialLinksItems$fil","isEEactive","_item$fields$icon","_item$fields$icon$fie","_item$fields$icon$fie2","_item$fields2$icon","_item$fields2$icon$fi","_item$fields2$icon$fi2","_item$fields3$socialM","_item$fields3$socialM2","EELink","RegularLink","ADD_TO_ANY_SHARE_SCRIPT_STATIC_URL","addToAnyScript","_documentService2$que","_documentService3","_documentService4","_documentService4$bod","_documentService4$bod2","_windowService$a2a","_windowService$a2a$in","addthisScript","shareContentScript","a2a","init_all","shareURL","shouldShowDropdownList","setShouldShowDropdownList","dropdownElmRef","handleClickOutside","_dropdownElmRef$curre","contains","doc","_item$fields4$postTex","_item$fields6","_item$fields6$socialM","_item$fields7","_item$fields5","_item$fields5$socialM","listType","a2a_config","templates","callbacks","share","node","countValidSocialLinks","_model$socialLinksIte","showInMobile","SocialMediaDropdown","SocialLinks","attribute","hasUnderline","openInNewTab","gooleMapUrl","apiKey","useTranslation","mapContainerRef","zoom","setZoom","mapWidth","setMapWidth","mapVisisble","setMapVisibility","mapHeight","updateMapWidth","_mapContainerRef$curr","_windowService2","DealerLocatorAttribute","dealerPinSvg","tableRecords","cert","imageUrl","designationName","replaceSubStrings","actualString","subString","replaceWith","RegExp","filterDetails","titeDictonaryKey","Title","_model$dealerName","SocialMediaBar","DealerLocatorContacts","BusinessHoursAndCertificationsSection","DealerEquipmentsServices","SearchType","DL_QUERY_STRINGS","DealerLocatorLandingModel","_this$fields$filters$","_this$fields2$filters","_this$fields2$filters2","_this$fields$filters$2","_this$fields3$filters","_this$fields3$filters2","_$Code","codeList","Code","_$Code2","googlaMapApiKey","_this$fields6$setting","initialLatitude","_this$fields7$setting","initialLongitude","_this$fields8$setting","initialZoom","_this$fields9$setting","pageId","_this$sitecoreContext","brand","_this$sitecoreContext2","searchType","_this$fields12$settin","dealerLocatorSearchType","NoSearch","countries","_this$fields$settings","_this$fields13$settin","dealerLocatorCountryState","defaultCountry","_this$fields14$settin","dealerLocatorDefaultCountry","hasDefaultCountryPreselected","_this$fields15$settin","showPreselectCountry","searchByUserLocationEnabled","SearchByCountryAndRegion","searchRadius","_this$fields$settings2","_this$fields16$settin","distanceUnits","_this$searchRadius","_this$searchRadius2","maxMapZoomForSingleResult","_this$fields$settings3","_this$fields17$settin","zoomLevel","maxZoomForSingleResult","noSearchDealerResults","_this$fields$settings4","_this$fields18$settin","_this$fields18$settin2","dealerSearchResult","dealershipResults","currentPagePath","_this$sitecoreContext3","_this$sitecoreContext4","contextUrl","currentPageUrl","maxResultsCount","_this$fields$settings5","_this$fields19","_this$fields19$settin","areFiltersNotEmpty","_this$filters","_this$filters$Equipme","firebaseConfig","_this$fields$settings6","_this$fields20","_this$fields20$settin","firebaseConfiguration","hasInteractiveMap","_this$fields21","_this$fields21$settin","enableInteractiveMap","SearchByCountryAndLocationOrDealer","viewBox","cx","cy","r","fill","strokeWidth","strokeMiterlimit","fetchDealersByGeoCode","controllerRef","_controllerRef$curren","lat","lng","countryIsoCode","abort","controller","AbortController","queryUrlParams","URLSearchParams","country","queyrUrl","fetch","signal","then","res","ok","json","console","status","fetchDataFromFirebaseDB","app","firebase","collectionName","queryParams","_ref4","colSnap","firestore","collection","where","fieldPath","opStr","empty","docs","isStateType","hasOwnProperty","isGeometryDocType","getMapSettingsFromCountry","_Number$parseInt","parseFloat","FirebaseContext","createContext","loadingFirebase","setLoadingFirebase","setApp","setFirebase","ctx","useMedia","_firebase$apps","firebaseModule","default","_firebase$apps2","apps","initializeApp","initFirebaseService","catch","err","Provider","useFirebase","Error","countriesPolygonData","setCountriesPolygonData","countryDataLoaded","setCountryDataLoaded","processResponseData","_model$countries","countryNamesMap","IsoCode","Country","c","_countryNamesMap$get","kml","parse","kml_4326","iso_a2","code","contryPromises","acc","_item","takeStartIndex","takeEndIndex","group","_country","debounceHandler","callback","timmerRef","delay","containerRef","pos","setPos","getOffset","axis","_targetElm$getBoundin3","_targetElm$getBoundin4","targetElm","_targetElm$getBoundin","_targetElm$getBoundin2","offsetX","clientX","offsetY","top","clientY","handleMouseMove","x","y","_containerRef$current","_containerRef$current2","setLabel","setCountry","setRegion","getGeometryWithLatLng","geometry","_geometry$coordinates","_geometry$coordinates2","coordinates","point","google","maps","LatLng","polygonsWithLatLng","geometries","hasPolygons","active","setActive","regionPolygonOptions","fillColor","fillOpacity","strokeColor","activeRegionPolygonOptions","polygon","Polygon","onMouseOver","onMouseOut","_model$countries$find","find","_country$states$find","states","gmiCode","path","_country$states","_country$states2","allowedStatesCodes","Set","filteredData","has","GMI_ADMIN","regionsNamesMap","_regionsNamesMap$get","fipsCode","dealerLocatorResultsOpen","dealerLocatorGeolocationClick","brochuresResultsOpen","showGeoLocationErrorMessage","updateShowGeoLocationErrorMessage","googleMapsLibraries","dealers","place","dealerIdForPinWithHover","setPlacesService","setAutocompleteService","setDealerIdForPinWithHover","setClickedDealerNumber","setUserLocation","mapSettings","dealerIdPinHovered","resultsViewModeInTablet","setMap","maxZindex","setMaxZindex","enteredDisabledStateOnce","updateEnteredDisabledStateOnce","countryIsoCodeWithFallback","SearchByLocationOrDealer","hasDealers","dealership","dealersArray","useContryBordersCoords","regionsPolygonData","useRegionBordersCoords","hasVisibleCountryPolygon","hasVisibleRegionPolygon","_google","_google$maps","_google$maps$Marker","setCenter","places","PlacesService","AutocompleteService","Marker","MAX_ZINDEX","showUserLocation","_windowService3","_windowService3$navig","_windowService3$navig2","_sitecoreContext$anal","_sitecoreContext$anal2","_sitecoreContext$anal3","navigator","geolocation","getCurrentPosition","coords","permissions","permission","permissionState","analytics","_windowService4","bounds","LatLngBounds","dealer","_dealer$dealership","_dealer$dealership2","extend","hasOnlySingleMarker","addListenerOnce","getZoom","fitBounds","selectedCountryPolygonData","countryPolygonData","_kml$geometry","_kml$geometry$coordin","_kml$geometries","flatMap","coord","DealerLocatorGeoLocatorToastMessage","AreaPolygonLabel","LoadScript","googleMapsApiKey","loadingElement","Spinner","libraries","GoogleMap","disableDefaultUI","mapContainerClassName","userLocationSvg","_dealer$dealership3","dealerNumber","dealerPinActiveSvg","AreaPolygon","sanitizeText","textContains","searchFor","sanitizedText","test","seperateSplitsAndMatched","matchText","checkExp","splits","matched","allMatched","match","upperCaseWordSplitAndSpace","newprops","optionText","pattern","parts","part","arrowIcons","preSelectedItem","onSelect","selectedItem","setSelectedItem","dropdownOpen","setDropdownOpen","defaultSearchText","_preSelectedItem$name","_preSelectedItem$Coun","searchText","setSearchText","searchTextChanged","setSearchTextChanged","highligtedItemIndex","setHighligtedItemIndex","dropdownHover","setDropdownHover","arrowIcon","up","down","searchInputElmRef","filteredItems","toLocaleLowerCase","visibleItems","closeDropdown","handleListItemSelection","getOptionText","_searchInputElmRef$cu","focus","_preSelectedItem$name2","_preSelectedItem$Coun2","onChange","_e$target","onKeyDown","isInteger","autoComplete","disabled","onMouseLeave","onMouseEnter","HiglightedOption","getOptionKey","useSuggestions","inputText","autocompleteService","resultsLimit","suggestions","setSuggestions","timerRef","getComponnentsParam","fetchPlacesFromGoogle","req","input","types","componentRestrictions","getPlacePredictions","results","PlacesServiceStatus","OK","fetchDalersFromDealerPortal","fetchSuggestions","allSettled","promiseResults","_dealershipResults","_predictionsResults","_predictionsResults2","_dealershipResults2","googlePlacesResuls","dealersResult","googlePlacesPredictions","predictionsResults","_dealersResult$value","groupLimit","dealershipResultsCount","predictionsResultsCount","predictionsResultsLimit","dealershipResultsLimit","getQuery","queryText","setQueryText","urlQueryText","setUrlQueryText","useSelectedDealer","selectedDealerNumber","setSelectedDealerNumber","selectedDealer","setSelectedDealer","fetchDalerFromDealerPortal","_data$dealershipResul","_data$dealershipResul2","_data$dealershipResul3","useSelectedPlace","selectedPlaceId","setSelectedPlaceId","_suggestions$googlePl","_suggestions$googlePl2","_suggestions$googlePl5","_suggestions$googlePl6","_suggestions$dealersh2","_suggestions$dealersh3","onDealerSelect","onGooglePlaceSelect","placesService","filteredDealerResults","searchInputValue","setSearchInputValue","useSearchText","usersInput","setUsersInput","suggestionSettings","higlightedSuggestionIndex","setHiglightedSuggestionIndex","selectedResult","setSelectedResult","textSearchElmRef","texInputElmRef","dealerSuggestionsIndexOffset","shouldUpdateUrl","setShouldUpdateUrl","fetchPlaceDetail","placeId","placeRequest","getDetails","result","getDisplayNameFromResult","_result$dealership","handleSuggestionMouseEnter","selectedCountry","determineSelectedCountry","isoCode","getCountryName","_countries$find","getSelectedDealerRegionSearch","_result$dealership2","dealerLocatorEquipmentsResults","dealerLocatorServicesResults","handleSuggestionSelect","_texInputElmRef$curre2","_result$dealership3","place_id","blur","_textSearchElmRef$cur","_selectedResult$deale","_selectedResult$deale2","_selectedResult$deale3","_selectedResult$deale4","_fetchPlaceDetail","selectedDealerId","updateUrl","_selectedResult$place","_selectedResult$descr","_selectedResult$deale5","dealerLocatorResultsClickHandler","isSelectedResults","inputClickHandler","_texInputElmRef$curre","dealerLocatorSearchSvg","htmlFor","newSearchText","onFocus","textInputFocusHandler","resultsLength","handleArrowUp","handleArrowDown","handleEnter","_suggestions$googlePl3","_suggestions$dealersh","_suggestions$googlePl4","predictionsCount","clearSearch","_texInputElmRef$curre3","_result$dealership4","_result$dealership5","_result$dealership6","googleLogo","SwitchOption","_children$props","typeName","onDealerResults","setIsLoadingDealers","isCountryChangedAfterPageLoad","onCountrySelect","placeDesc","_place$geometry","_place$geometry$locat","_place$geometry2","_place$geometry2$loca","apiCallParams","_place","_windowService2$navig","_windowService2$navig2","SearchByCountry","fetchCountryDealersByGeoFilter","_controllerRef$curren2","countryName","fetchDealersByGeoFilter","_ref3","_controllerRef$curren3","SearchTypeSwitch","Dropdown","Regions","_region","TextSearch","useAnimationEnd","isMounted","delayTime","canShowDOM","setCanShowDOM","timeoutRef","_dealer$distance","_dealership$dealershi","_dealership$dealershi2","_split$filter$join$to","_dealership$dealerNam","_location$search","_dealership$dealershi3","_dealership$dealershi4","_dealership$dealershi5","_dealership$dealershi6","_dealership$dealershi7","markerNumber","clickedDealerNumber","setDealerIdPinHovered","expanded","hasHoverActive","pinIcon","distance","distanceText","round","isCertified","dealerNameForUrl","dealerDetailPagePath","encodeURIComponent","countryIsoCodeWithFallbackForGtm","handleGetDetailsClick","dealerClickEvent","_country$Country","_region$name","certifiedDealer","googleClickDealerLocatorGetDetals","handleContactClick","contactMethod","award","hasInternalDetails","_listRef$current7","isLoadingDealers","showShadowBottom","setShowShadowBottom","listRef","canShowCardsInTablet","scrollEndTimeOutRef","_listRef$current","listItemIndex","listItem","querySelectorAll","list","listItemRect","listRect","bottom","scrollTo","offsetTop","_listRef$current2","dealersList","offsetLeft","scrollIntoView","block","getBoxShadow","scrollTop","scrolledBy","highlightVisibleCard","_listRef$current6","visibleCardIndex","onScroll","onScrollHandler","_listRef$current3","_listRef$current4","_listRef$current5","handleUserScroll","DealerResultsListItem","_Object$keys","droplistOptions","droplistTitle","optionColumnCount","filterKeyName","selectedFilters","updateFilters","shouldShowDroplist","setShouldShowDroplist","shouldAlignRight","setShouldAlignRight","droplistElmRef","localSelectedFilter","setLocalSelectedFilter","showDisabledResetCTA","closeDroplistOnOutsideClick","_droplistElmRef$curre","_droplistElmRef$curre2","_droplistElmRef$curre3","right","getElementsByClassName","applyFilter","newFilters","resetFilter","panelStyles","TitleUrl","isChecked","saveLocalSelectedFilter","localSelectedFilterCopy","equipmentSelectedOptions","getColumnCount","filterList","columnCount","getTotalFiltersSelected","_Object$values","filtersObj","count","values","resetAllFilter","equipmentSelectedFiltersCount","Droplist","accordionTitle","accordionOptions","canShowAccordionContent","handleSwitchClick","handleCheckBoxClick","shouldOpenFilterModal","setShouldOpenFilterModal","serviceSelectedOptions","localSelectedEquipment","setLocalSelectedEquipment","localSelectedServices","setLocalSelectedServices","selectedAccordion","setSelectedAccordion","isNoCheckboxSelected","canShowCTAs","setCanShowCTAs","toggleModal","shouldOpenModal","_Object$values2","getFiltersSelectedCount","Accordion","accordionName","useCountry","countryFromQuery","setCountryIsoCode","_country$IsoCode","useRegion","regionFromQuery","regionGmiCode","setRegionGmiCode","_region$gmiCode","updateSearchResults","navigate","_url$split2","queries","set","delete","useQueryParams","defaultVal","useNavigate","setQuery","getQueryStringVal","newVal","encodeFiltersData","filterData","_keys$map","queryString","_filterData$key","eqFilters","setEqFilters","setSeFilters","parseFiltersData","propsArray","prop","filterObj","_prop$","useUserLocationState","userLatLng","setUserLatLng","valueIsFromQuery","setValueIsFromQuery","queryLat","queryLng","_model$noSearchDealer","_model$description","preselectedCountry","defaultForResulsShown","setDealers","setPlace","resultAndFilterShown","setResultAndFilterShown","setMapSettings","getInitialMapSettings","hasSupportedSearchType","setSelectedFilters","useSelectedFiltersState","userLocation","setFilteredDealerResults","setResultsViewModeInTablet","updatedFilters","equipmentsResults","servicesResults","infoIndex","_model$filters","_model$filters$Equipm","_model$filters$Equipm2","_model$filters2","_model$filters2$Servi","_model$filters2$Servi2","getVisibleDealers","sortedDealers","sort","a","b","_a$distance","_b$distance","sortDealersByDistance","filterDealer","eachDealer","_eachDealer$dealershi","_eachDealer$dealershi2","selectedFilterCodes","contractDetails","dealerContractDetailsCodesObj","eachContract","eachCode","updateUrlQueryStringParams","_userLocation$lat$toS","_userLocation$lat","_userLocation$lng$toS","_userLocation$lng","updateUrlParams","filteredDealers","FirebaseContextProvider","DealerLocatorSearch","updateMapSettings","DealerLocatorDesktopFilters","DealerLocatorMobileFilters","DealerResultsListing","hovered","DealerLocatorMap","alternateImageUrl","alternateText","digitalBrochureURL","filesize","publicLinks","downloadIcon","shareIcon","viewIcon","bigthumbnail","downloadOriginal","ProductDownloadBrochureModel","subHeading","ctaLink","brochureCards","_this$context$current","shareScript","wrapperClassName","BrochureCard","_video$value","showVideo","isMediaExists","_desktopImageOrThumbn","desktopImageOrThumbnail","getTimeline","startDate","endDate","todayDate","getEndOfDate","endOfStartDate","setHours","setMinutes","setSeconds","setMilliseconds","getCanUseDate","EventDetailModel","time","canShowStartDate","_this$fields5$startDa","canShowEndDate","_this$fields7$endDate","calendarDetails","_this$fields12$video","_this$fields12$video$","_this$fields$video","_this$fields14$image","_this$fields14$image$","_this$fields15$mobile","_this$fields15$mobile2","detailedDescription","primaryCta","showPrimaryCta","_this$primaryCta","_this$primaryCta$valu","_this$primaryCta2","_this$primaryCta2$val","secondaryCta","showSecondaryCta","_this$secondaryCta","_this$secondaryCta$va","_this$secondaryCta2","_this$secondaryCta2$v","showCtaWrapper","EVENTS_TEMPLATE_ID","EVENT_TEMPLATE_ID_TYPE_QUERY_VALUE_MAP","EVENT","FAIR","LIVE_EVENT","EVENT_TIMELINE_QUERY_VALUE_MAP","UPCOMING","ONGOING","PAST","EVENT_TITLE_DICTIONARY_KEY","EVENT_QUERY_STRINGS","EVENT_TIMELINE","EVENT_TYPE","EVENT_PAGE","TSaveCalendarEventButtonType","SaveEventOptionWrapper","calendarDownload","calendarUrl","buttonType","SECONDARYBLACK","canUseStartDate","canUseEndDate","eventTimeline","baseButtonClass","buttonTypeClassMap","calendarIcon","calendarTitle","_model$startDate","_model$endDate","_context$sitecoreCont","_context$sitecoreCont2","_model$time","_model$location","_model$startDate2","_model$endDate2","formattedStartDate","formattedEndDate","templateId","DateField","render","SaveCalendarEvent","EventDetailMedia","EventDetailContainer","currentPage","goToPage","pages","pagesArr","handlePageClick","page","pageToCheck","filterMobileInRangePage","filterDesktopInRangePage","addEmptyButton","lastEl","currentPageBtnClassName","_dropdownOptions$chec","dropdownOptions","handleOptionClick","selectedOptionInd","checkedOptInd","shouldShowDropdown","setShouldShowDropdown","closeDropDownOnOutsideClick","_event$target","eachDropdownItem","typeFilterDropdownOptions","timelineFilterDropdownOptions","dropDownsProps","queryKey","resetFilterCTA","ind","updateQueryByKey","_$id","EventsListingItemModel","eventItem","_this$eventItem","_this$eventItem2","MobileImage","_this$eventItem3","eventStatusDictionaryKey","_this$eventItem4","templateName","_this$eventItem5","eventTypeDetails","eventTypeDictionary","eventIconField","eventIcon","fairIcon","liveEventIcon","eventStartDate","_this$eventItem6","_this$eventItem7","eventEndDate","_this$eventItem8","_this$eventItem9","_this$eventItem10","_this$eventItem11","_this$eventItem12","_this$eventItem13","_this$eventItem14","showDetails","_this$eventItem15","_this$eventItem16","primaryCTA","_this$eventItem17","PrimaryCTA","canShowPrimaryCTA","_this$primaryCTA","_this$primaryCTA$valu","_this$primaryCTA2","_this$primaryCTA2$val","shareLink","EventsListingModel","updateQueryByBulkKeys","counter","totalSearchResults","contextItemUrl","_sitecoreContext$defa","_sitecoreContext$defa2","_sitecoreContext$defa3","_sitecoreContext$defa4","_desktopImage$value","_mobileImage$value","_desktopImage$value2","_mobileImage$value2","desktopDefaultImageUrl","eventsListingCardImage","mobileDefaultImageUrl","shouldShowDefaultImage","editorialProps","getTargetLink","_eventIconField$field","_eventIconField$field2","isTablet","linkWrapperRef","a2aKitRef","formattedDLMDate","_linkWrapperRef$curre","handleClick","textContent","_linkWrapperRef$curre2","Media","SMALL","EventCard","isToggleIndependent","shouldShowAccordion","setShouldShowAccordion","isAccordionOpen","readOnly","checked","selectedFiltersCopy","setSelectedFiltersCopy","selectedAccordionId","setSelectedAccordionId","shouldShowFilterWrapper","accordionsProps","revertToOldFilters","accordionId","_filteredEvents$slice","filterQueryString","filterParams","selectedTimeline","selectedType","selectedPage","selectedPageNo","isTypeFilterPresent","fair","isTimeLineFilterPresent","typeFilterList","timelineFilterList","filteredEvents","_model$items$filter","eachItem","unPublishOn","isTodayBeforeUnPublishOn","canShowEventCard","isTypeMatching","isTimelineMatching","isCardMatchingFilters","filteredEventsToShow","totalPageCount","ceil","DesktopFilter","MobileFilter","NoMatch","EventCardList","Pagination","shouldPioritizeComponentResources","sitecorePlaceholderData","FairHeroModel","heroBannerImage","mobileHeroBannerImage","animationDelay","_model$calendarDetail","placeholderData","shouldPioritize","FadeDownEffect","FindADealerModel","_props","_this$_props","_this$_props$renderin","inputPlaceholder","searchPlaceholderText","inputPlaceholderText","_this$inputPlaceholde","searchButton","backgroundImage","mobileBackgroundImage","locateMeButton","locationButtonText","searchButtonText","_this$searchButton$va","_this$searchButton","_this$searchButton$va2","searchUrl","_this$searchButton$va3","_this$searchButton2","_this$searchButton2$v","FooterLinkModel","linkUrl","_this$link","_this$link$value","hasLink","linkText","_this$link2","_this$link2$value","_model$list","_model$list$","_model$list$$fields","_model$list$0$fields$","_model$list$2","_model$list$2$fields","_model$list$2$fields$","_model$list$2$fields$2","_model$list$3","_model$list$3$fields","_model$list$3$fields$","_model$list$3$fields$2","_model$list$4","_model$list$4$fields","_model$list$4$fields$","_model$list$4$fields$2","_model$list2","evt","_evt$target","_item$fields$link","assign","redirectToTargetUrl","ActionSectionModel","dealerLink","_find","footerLinks","_item$fields$type","_item$fields$type$fie","_item$fields$type$fie2","marketSelector","_this$fields2$footerL","marketSelectorContainer","_link$fields","_link$fields$type","_link$fields$type$fie","_link$fields$type$fie2","_marketSelectorContai","_marketSelectorContai2","_marketSelectorContai3","languageSelector","_this$fields3$footerL","_link$fields2","_link$fields2$type","_link$fields2$type$fi","_link$fields2$type$fi2","_marketSelectorContai4","_marketSelectorContai5","_marketSelectorContai6","_model$languageSelect","_model$languageSelect2","_model$languageSelect3","MarketSelector","LanguageSelector","DealerLogin","scrollToTop","isCollapsed","setIsCollapsed","onAccordionClick","accordions","links","linkItem","_linkItem$fields","_model$link$value$tit","_linkItem$fields$link","_linkItem$fields2","_linkItem$fields2$lin","_linkItem$fields2$lin2","_linkItem$fields3","_linkItem$fields3$lin","_linkItem$fields3$lin2","_item$fields$isModalP","isModalPopup","SocialMediaModel","socialLinks","_this$fields2$items","_this$fields3$items","_model$socialLinks","FooterModel","filterSectionByType","_item$fields$sectionT","_item$fields$sectionT2","_item$fields$sectionT3","sectionType","footerSections","navigationSection","_this$filterSectionBy","_this$filterSectionBy2","_this$filterSectionBy3","_this$filterSectionBy4","_this$filterSectionBy5","actionSection","_this$filterSectionBy6","_this$filterSectionBy7","copyrightText","mobileLogoImage","backToTopText","hideSocialMedia","_model$footerSections","SocialMedia","ActionSection","LinksAccordion","Navigation","BackToTop","FormPageNavigationModel","_this$ItemDatafields","ItemDatafields","formHeadingData","FormHeadingData","_this$ItemDatafields2","FormName","steps","_this$ItemDatafields3","FormPageNavigation","hasSteps","_this$formHeadingData","_this$formHeadingData2","_this$formHeadingData3","activeStepkey","formSubmitted","stepKey","stepRef","stepNumber","stepText","activeStepNumber","updateActiveStepNumber","formPageIdentifierClass","sitecoreFormIdentifier","EventEnum","FormEventEnum","stepsCount","stepListRef","updateStepKey","stepKeyRef","highestStepReached","updateFormSubmitted","progressBarWidthRef","displayMobileStepInfo","stepNameDictionaryVal","setProgressBarStepWidth","_stepListRef$current","_stepRef$current","_stepRef$current$","_stepRef$current2","_stepRef$current3","_documentService$docu3","_documentService$docu4","stepListWidth","firstStepWidth","stepProgressBarWidth","_windowService$addEve","handlerFormSubmitEvent","customEventData","_customEventData$deta","detail","formDatasource","FORM_SUBMITTED","formIdentifierElement","currentStepKey","ResizeObserver","mutationObserver","mutationCallback","newStepInd","_model$steps$newStepI","formEle","calculateProgress","offsetWidth","step","Step","GalleryCarouselModel","isSelected","baseClassName","goSelected","_slidePos$fields3","_slidePos$fields3$vid","_slidePos$fields3$vid2","_slidePos$fields4","_slidePos$fields4$ima","_slidePos$fields4$ima2","_slidePos$fields5","_slidePos$fields5$mob","_slidePos$fields5$mob2","_slidePos$fields6","_slidePos$fields6$use","_model$carouselSlide2","_model$carouselSlide3","vh","slidePos","normalizeSlideNumber","_model$carouselSlide","goNext","goPrevious","carouselRef","isYouTubeUrl","isImageUrl","showDownloadIcon","ReactResponsiveCarousel","infiniteLoop","interval","showThumbs","showArrows","showIndicators","showStatus","stopOnHover","swipeable","emulateTouch","itemFields","_itemFields$id","slideInfo","GalleryCarouselSlide","GalleryCarouselArrow","MediaDownload","_slidePos$fields","_slidePos$fields$useV","_slidePos$fields2","_slidePos$fields2$vid","_slidePos$fields2$vid2","findLoadedImgSrc","_carouselRef$current","_carouselRef$current$","_currentSlideDOM$quer","currentSlideDOM","itemsRef","xhr","XMLHttpRequest","open","responseType","imageUrlValue","webkitURL","createObjectURL","response","download","removeChild","send","GalleryCarouselIndicator","GalleryCarousel","CtaStylesCtaTypeObj","GenericPopUpContext","isGenericPopUp","_props$params","_props$params2","ctaText","isPopUpShown","setIsPopUpShown","propsToInnerComp","isInGenericPopup","ctaStyles","SharedGenericPopUp","MenuContext","initialIsOpen","useMenuContext","warn","useMenuDispatcher","useMenuItemWithContext","menuState","menuDispatcher","_menuState$find$isOpe","_menuState$find","useMenuItem","menuReducer","useMenuReducer","useReducer","MenuProvider","menuDispatch","triggerContent","actionTitle","fullWidth","setOpen","NavTrayRef","baseElementClassName","elementClassName","_NavTrayRef$current","_NavTrayRef$current2","navTrayDim","_NavTrayRef$current3","textValue","QueryParamsConst","ORDER","PAGE","PER_PAGE","QUERY","FILTERS","YEAR","LINE","TYPE","FILTER1","SERIES","MODEL","CATEGORIES","SEARCH_BROCHURE","SEARCH_BROCHURE_ID","APIPrefix","suggestionQuery","contextId","minimalLength","onUpdateQuery","updateSuggestions","suggestionApiUrl","suggestion","inputProps","inputClassName","SearchMenu","_fields$search2","_fields$search3","_fields$search3$link","_fields$search3$link$","_fields$search4","_fields$search4$link","_fields$search4$link$","_fields$search5","_fields$search5$searc","_fields$search5$searc2","_fields$search6","_fields$search6$place","_pfeInputRef$current","_fields$search7","_fields$search7$searc","_fields$search7$searc2","_pfeInputRef$current2","perPage","pfeInputRef","formRef","setSuggestionQuery","isSuggestionsComponentVisible","setIsSuggestionsComponentVisible","submitUrl","_fields$search","_fields$search$search","_fields$search$search2","onSubmit","searchParams","append","_formRef$current","NavigationItemMenuStructure","MenuTriggerContentWithIcon","SearchInput","placeholder","onKeyUp","updateSuggestionsQuery","Suggestions","q","dispatchEvent","Event","cancelable","bubbles","fullName","allNames","charAt","toUpperCase","extraClasName","iconLeft","iconRight","headerInfoData","setLoginStarted","form","method","submit","_headerInfoData$info","_headerInfoData$info2","_headerInfoData$info3","_headerInfoData$userL","_headerInfoData$appDr","_headerInfoData$appDr2","_fields$login4","_fields$login5","_fields$login5$link","_fields$login5$link$v","logged","MenuTriggerContentWithCircle","getInitials","info","company","userLinks","QuickAcessOrOther","appDrawerLinks","singleSignOn","otherLinks","_fields$login","_fields$login$link","_fields$login$link$va","_fields$login2","_fields$login2$link","_fields$login2$link$v","_fields$login3","_fields$login3$link","_fields$login3$link$v","login","isTabOpen","setIsTabOpen","notLoggedJSON","LayoutContext","userLoginStatus","headerInfo","callGetHeaderInfo","setHeaderInfo","getHeaderInfo","_sitecoreContext$sett","myBrandAPIUrl","credentials","headers","referrer","referrerPolicy","mode","_layoutContext$userLo","_layoutContext$userLo2","_layoutContext$userLo3","view","layoutContext","isLoggedIn","loginStarted","clearInterval","setInterval","_layoutContext$userLo4","DesktopLogin","MobileLogin","_fields$findDealer","_fields$findDealer4","_fields$findDealer5","dispatchToProvider","findDealer","_fields$findDealer2","_fields$findDealer2$l","_fields$findDealer2$l2","_fields$findDealer3","_fields$findDealer3$l","_fields$findDealer3$l2","MenuOverlay","dispatch","isAnyOpen","dictionaryFieldMapper","_field$fields","_field$fields$Key","_field$fields2","_field$fields2$Phrase","Phrase","NavigationItemTypeMapper","MenuLinkTypeMapper","BaseNavigationItemModel","menuTitle","linkType","menuButton","NavigationItemLinkModel","super","linkId","_this$id","_this$link$value$href","BaseMenuLinkModel","_fields","_this$_fields","_this$link$value$href2","_this$link$value2","_this$link$value$text","_this$link$value3","linkOtherProps","PrimaryLinkModel","groupLinkFields","secondaryLinks","hasSecondaryLinks","viewAll","newSubMenuElement","viewAllText","_this$viewAll$value","hasViewAll","SecondaryLinkModel","ImageLinkModel","SecondaryLinkWithBoldModel","_fields$divider","_fields$boldSecondary","divider","boldText","boldSecondaryText","NavigationItemColumnModel","sitecoreElements","elements","NavigationItemMenuModel","_fields$isSection4Gra","_fields$isSection4Gra2","columns","isLastColumnGray","section1","section2","section3","section4","isSection4Gray","elementFields","MenuLink","_model$link3$value","_model$linkText","_model$divider$value","_model$divider","_model$boldText$value","_model$boldText","nonBoldTextClassName","dividerClassName","boldTextClassName","googleAnalyticsLabel","PrimaryLink","SecondaryLink","SecondaryLinkWithBold","ImageLink","_scrollElementRef$cur7","scrollElementRef","showShadowTop","setShowShadowTop","_props$bottomBuffer","bottomBuffer","visibleBottomShadow","_scrollElementRef$cur4","_scrollElementRef$cur5","_scrollElementRef$cur6","resetRefSizes","_scrollElementRef$cur","_scrollElementRef$cur2","_scrollElementRef$cur3","NavigationItemTray","closeMainNavigation","shouldShowScollShadow","useScrollWithShadow","handleLinkClick","overflowY","columnModel","isColumnGray","elementModel","linkField","textField","NavigationItemMenu","NavigationItemLink","HeaderModel","navigationItemModelsArr","mobileTitle","mobileTitleOpen","primaryHeaderMenuLinks","menuLinks","_linkType$fields","_linkType$fields$Key","_linkType$fields2","_linkType$fields2$Phr","navigationItemData","newNavigationItemModel","dskHotspotId","mblHotspotId","LogoTag","templateIds","logolink","breakpointLg","_docElement$body","elementClassList","navigationItemModel","NavigationAccordionItem","NavigationAccordionLinkItem","_fields$findDealer2$t","_fields$findDealer3$t","_fields$search2$searc","_fields$search2$searc2","_fields$search3$searc","_fields$search3$searc2","Login","useStickyWrapper","stickyWrapperEle","setStickyWrapperEle","HighLevelAlertMessage","_refWrapper$current","_context$sitecoreCont3","_context$sitecoreCont4","_context$sitecoreCont5","ALERT_MESSAGE_COOKIE_NAME","ALERT_MESSAGE_COOKIE_VALUE","cookiePath","canShowAlert","setCanShowAlert","_documentService$cook","cookie","refWrapper","msgheight","messageTitle","severitySettings","messageDescription","removeProperty","onCloseIconClick","Header","isPreview","isSticky","isHighAlertMessage","showSeverityMessage","navigationVisibility","setNavigationVisibility","loadingDiv","rootElement","breakpointXL","Logo","NavigationItem","FindADealer","Search","MobileMenu","_props$sitecoreContex3","createPortal","_fields$textColor","_fields$video$value$h","_fields$image","_fields$image$value","_fields$link","_fields$link$value","mediaVisible","setMediaVisible","prevState","networkSpeed","_fields$link$value$te","_fields$link2","_fields$link2$value","_fields$link3","_fields$link3$value","_fields$title","HeroCarouselSlide","CutSvg","preserveAspectRatio","xmlns","d","CarouselCut","HeroCarouselScrollSymbol","showCarouselOverlay","setNetworkSpeed","videoIsPresent","testNetworkSpeed","NetworkSpeed","checkDownloadSpeed","mbps","getNetworkDownloadSpeed","carouselIndicators","HeroCarouselArrow","_items$slide2","_items$slide2$title","HeroCarouselIndicator","_items$slide","_items$slide$title","Fragment","preventMovementUntilSwipeScrollTolerance","swipeScrollTolerance","isBreadcrumbShown","useBreadcrumbBarAsFirstComponent","carousel","CarouselForEE","Carousel","colorMapper","sitecoreColor","_sitecoreColor$fields","_props$fields2$items","_props$fields2$items$","_props$fields2$items$2","_props$fields2$items$3","mappedFields","sitecoreFields","sitecoreItems","fieldMapper","HeroCarouselDesktop","InteractiveImageModel","optionalEyebrow","hotspotLink","isPrimaryLinkExists","_this$primaryLink$val","_this$primaryLink2","_this$primaryLink2$va","mblDeskItem","_this$fields5$items","_this$fields5$items$f","templateIdOfField","_$fields","_props$link","_props$link$value","_props$link2","_props$link2$value","_props$link3","_props$link3$value","_props$link4","_props$link4$value","_hotspotData$selected","_props$splitModuleCon","hotspotImage","hotspotData","isPopUpOpen","setIsPopUpOpen","selectedHotspotIndex","setSelectedHotspotIndex","selectedPopUpData","popUpStyles","setPopUpStyles","hotspotContainerRef","popUpRef","closePopup","updatePopUpPosition","_hotspotContainerRef$","_hotspotContainerRef$2","_hotspotContainerRef$3","_popUpRef$current","_hotspotContainerRef$4","_hotspotContainerRef$5","hotspotContainerDim","selectedHotspotDim","popUpDim","spaceLeft","spaceRight","spaceTop","spaceBottom","popUpTop","popUpLeft","_windowService2$remov","_coordinates$value","splitModuleContainerRef","InteractiveSplitModule","InteractiveImageHotspot","InteractiveImageText","LatestNewsModel","defaultCardImageNarrow","_this$fields$itemData2","_this$fields2$itemDat3","newsMainPageLink","NewsCardModel","_this$item","_this$item2","newsDate","_this$item3","contextLanguage","_this$item4","_this$item4$tagCatego","_this$item5","_this$item5$tagCatego","_this$item5$tagCatego2","tagCategories","_this$item6","_this$item7","_this$item8","_this$item9","_this$item10","defaultImage","_model$newsDate","_model$newsDate2","_model$tag","defaultCardImage","readMoreKey","_model$tag2","latestNewsHeadingTitle","NewsCard","LightFooterModel","logoLink","slogan","_model$logoImage","_model$logoImage$valu","_model$mobileLogoImag","_model$mobileLogoImag2","isLogoAvailable","isSocialMediaAvailable","LightHeaderModel","_item$fields2$url","_item$fields2$url$val","_item$fields3$url","_item$fields3$url$val","_item$fields$url","_item$fields$url$valu","LightHeaderWrapper","MediaGalleryModel","_item$fields$video","_item$fields$video$va","_item$fields3$useVide","_item$fields5$useVide","_item$fields8","_item$fields8$useVide","_item$fields9","_item$fields9$video","_item$fields9$video$v","MockedComponentMessage","ModelsListingModel","modelsListData","bigthumbnailAlt","_model$modelsListData","modelsItems","modelsItem","ModelsListItem","titleUrl","detectScrollDirectionForNavigationBar","scrollPosition","bodyScrollPosition","elementDim","elementSticky","stickyWrapperHeight","handleScrollUp","handleScrollDown","elementStickyVisible","thresholdTop","scrollY","isEditorial","editorialTitle","editorialCTA","primarycta","tabs","param","_param$fields","ctalabel","tab","_a$localeCompare","localeCompare","showDropdown","showLabel","seriesList","isUnderSuperSerie","seriesDetails","optionalLabel2","_this$fields11$apiDat2","NAVIGATION_BAR_ANCHOR_CLASS","ANCHOR_COMPONENT","eventTypes","dropDownSeriesData","dropdownIsOpen","handleCloseDropdown","formTitleUrl","clickPageNavEvent","hasDropDownSeriesData","dropDownData","redirectUrl","scrollToPlaceholder","activeTab","_tab$label","productPageType","buildAndPriceLinkComponent","lineData","seriesData","modelData","buildAndPriceUrlForLine","directLinktoBuildAndPrice","buildAndPriceUrlForSerie","buildAndPriceUrlForModel","buildAndPriceUrl","useGetBuildAndPriceLink","hasButtons","_editorialCTA$value","_editorialCTA$value2","sticky","preventDefaultForScrollKeys","keyCode","supportsPassive","defineProperty","wheelOpt","passive","divToCheckOnWheel","wheelEvent","NavigationSection","setshowPanel","componentsJssMain","setTabs","anchorComponents","setAnchorComponents","setActiveTab","_anchorComponents$ite","_documentService4$que","_documentService4$que2","_documentService4$que3","isScrolling","offsetCorrection","topOffset","_windowService2$addEv","_windowService3$addEv","_windowService4$addEv","_windowService5","_windowService5$addEv","disableScroll","_windowService6","_windowService6$remov","_windowService7","_windowService7$remov","_windowService8","_windowService8$remov","_windowService9","_windowService9$remov","_documentService3$que","_documentService3$que2","_documentService3$que3","enableScroll","detectActiveTab","_anchorComponents$ite2","_anchorComponents$ite3","sectionHighlightTabHeight","activeTabDetect","_anchorComponents$ite4","_model$tabs","anchorComponentsTab","visibleTabs","hiddenTabsBasedOnContentAvailability","tempTab","_componentsJssMain","indexNextAnchorComponents","_anchorComponents","nComponentsBetween","j","_model$tabs2","components","skipSeries","urlArr","pop","handleClose","NavigationBoxMobile","NavigationTabsMobile","NavigationBarDropdownDesktop","NavigationBarTabsDesktop","NavigationBarMSRPDesktop","NavigationBarCtaDesktop","detectScrollDirection","formattedName","_props$fields2$itemDa","_props$rendering$comp","_props$rendering","isPlaceholderShown","placeholderShown","ExperienceEditorComponentPlaceholder","_video$value2","_video$value3","mediaItem","mediaCaption","mediaDescription","canShowVideo","NewsDetailModel","_this$fields6$useVide","_this$fields7$video","_this$fields7$video$v","categories","_this$fields10$tagCat","_this$fields11$tagCat","_this$fields$newsMain","_this$fields12$newsMa","parent","encodeURI","_this$fields13$image","_this$fields13$image$","_this$fields14$mobile","_this$fields14$mobile2","mediaList","_model$categories","_model$categories2","NewsDetailMedia","NewsDetailMediaListItem","NewsFilesModel","downloadNewsFilesCard","fileName","fileSize","thumbnailLink","fileLink","componentNumber","downloadFileCardLength","optionalCTA","_thumbnailLink$value","_fileLink$value","_fileLink$value2","NewsFilesDownloadCard","backgroundTheme","NewsLetterPopUpModel","newsSubscriptionTitle","backgroundtheme","_model$newsSubscripti","setIsOpen","isHidden","setIsHidden","newsLetterBarRef","oneTrust","OneTrust","oneTrustAlertBoxInterval","IsAlertBoxClosed","hideNewsLetterBar","_newsLetterBarRef$cur3","_newsLetterBarRef$cur4","black","_newsLetterBarRef$cur","_newsLetterBarRef$cur2","NewsListingItemModel","newsItem","_this$newsItem","_this$newsItem2","_this$newsItem3","_this$newsItem3$tagCa","_this$newsItem3$tagCa2","_this$newsItem4","_this$newsItem5","_this$newsItem6","_this$newsItem7","_this$newsItem8","_this$newsItem9","NewsListingModel","findFilterByName","filterName","_this$fields8$itemDat","_this$fields8$itemDat2","placeholderImageSrc","_this$fields9$itemDat","NEWS_YEAR_FILTER_TITLE_DICTIONARY_TERM","NEWS_LINE_FILTER_TITLE_DICTIONARY_TERM","NEWS_TYPE_FILTER_TITLE_DICTIONARY_TERM","NEWS_FILTER1_FILTER_TITLE_DICTIONARY_TERM","dataLayerTitle","_filter$tags$findInde","_filter$tags2","getDropdownOptions","_filter$tags","_tag$id","getAccordionOptionsByInd","NewsListingPlaceholderImgContext","placeholderImage","_model$findFilterByNa","_model$findFilterByNa2","_model$findFilterByNa3","year","line","filter1","pageNo","NewsCardList","NextStepsModel","_item$fields4$url","_item$fields4$url$val","_item$fields8$url","_item$fields8$url$val","_item$fields6$url","_item$fields6$url$val","getBreadCrumbAbsoluteUrls","itemUrl","itemSubRouteNames","removeStrings","originUrl","hostVirtualFolder","hasError","visitingItemDirectly","setVisitingItemDirectly","hasItemId","apiResponse","useExperiencerEditorPlaceholder","heroBannerTextColor","EmptyApiDataMessage","BuildAndPriceLinkModel","ProductCompatibleLoaderListingModel","expandLabel","_this$fields7$itemDat","_this$fields7$itemDat2","productsItemUrl","_this$rendering2$comp","selectedTab","tabContainerEl","hideArrows","setHideArrows","showLeftArrow","setShowLeftArrow","showRightArrow","setShowRightArrow","tabContainerDim","tabChildrens","lastChild","lastChildDim","scrollTab","tabDimension","scrollWidth","_props$fields$apiData","_props$fields$apiData2","_props$fields2$apiDat2","_model$tabs$find","_props$fields3$apiDat","_model$description2","_model$tabs3","_model$tabs$find2","_model$tabs$find2$ite","headingPopulated","checkEmptiness","setSelectedTab","showMoreLoaders","setShowMoreLoader","selectedTabItems","showMoreLoaderEvent","_model$tabs2$selected","headerOffset","elementPosition","offsetPosition","pageYOffset","eyebrowKeyCompatibleLoaders","titleKeyCompatibleLoaders","descriptionKeyCompatibleLoaders","CompatibleLoadersTabs","tabIndex","loader","itemIndex","_loader$assets$","_loader$assets$2","_loader$assets$3","_model$tabs4","_model$tabs4$selected","_model$tabs4$selected2","_model$tabs4$selected3","rendition_desktop_size500","rendition_mobile_size500","_model$tabs5","_model$tabs5$selected","_model$tabs5$selected2","_model$tabs5$selected3","seeLessKey","seeMoreKey","titleKeySeriesFeature","_props$rendering3","_props$fields3$itemDa","_props$rendering2","getDictionaryKey","seriesLoadersListingKey","modelLoadersListingKey","isModelLoders","CompatibleLoaders","inputDate","isWithinMonths","setIsWithinMonths","checkDate","currentDate","previousDate","setMonth","getMonth","selectedDate","digitalBrochureUrl","parsedBrochureDate","isNewCard","useDateValidate","cardDate","searchedTerm","filterdCards","handleSearchSubmit","handleChange","handleSuggestionClick","handleClearSearch","titleDictionaryTerm","ctaDictionaryTerm","prevSearchedTerm","setSearchedTerm","filteredCards","setFilteredCards","itemID","getSearchSuggestions","getApiURL","updateSearchedTextFilter","SearchBox","_filter$value$findInd","_filter$value2","_filter$value","filterType","filterValue","resetSearch","DownloadBrochureListingModel","iconsList","totalNumberOfCards","_props$fields$itemDat","_model$textColor","_model$primaryLink","_model$primaryLink2","_model$primaryLink3","_model$primaryLink4","_model$secondaryLink","_model$secondaryLink2","_model$secondaryLink3","_model$secondaryLink4","_model$primaryLink5","_model$secondaryLink5","_model$summarySpecs","_model$primaryLink6","_model$primaryLink7","_model$secondaryLink6","_model$secondaryLink7","clickHeroCtaEvent","_model$primaryLink8","_model$secondaryLink8","_lineItem$assets","_lineItem$assets$","_lineItem$assets2","_lineItem$assets2$","_lineItem$assets3","_lineItem$assets3$","lineItem","ProductLinesListingModel","lineListingTitle","productListData","_model$productListDat","_props$fields$itemDat2","_props$fields$itemDat3","_props$fields$itemDat4","lineItems","LineItem","_model$expiration","_buttonSecondary$valu","_buttonSecondary$valu2","_model$asset","_model$asset$renditio","_buttonPrimary$value","_buttonPrimary$value2","modalIsOpen","expiration","secondaryLinkWithRootAppended","disclaimer","badge","hasWideCardStyle","rendition_desktop_size1000","openModal","expirationLabel","secondaryButtonExistsOrIsEE","SP_QUERY_STRINGS","CATEGORY","ContentHubSpecialOffersSlideModel","specialOfferMainPageLink","_this$card$id","formattedTitle","_this$card9$assets","_this$card9$assets$","_this$card10$assets","_this$card10$assets$","_this$card11$assets","_this$t","_this$card12$button","_this$card13$button","cardStyles","_this$asset","_this$asset2","_this$asset3","rendition_mobile_size300","_this$card15","_this$card15$button","_this$card16","_this$card16$button","ContentHubSpecialOffersModel","getLink","lineId","_this$t2","validSpecialOffers","offer","specialOfferPageUrl","lineFromPageContext","lineFromParams","enableProductParameters","eyebrowKeySpeicalOffers","titleKeySpeicalOffers","descriptionKeySpeicalOffers","ProductSpecialOffers","ContentHubCompatibleLoaders","CHModelConfigurationModel","_this$fields$apiData$","_this$fields$apiData$2","_model$firstAsset","_model$firstAsset2","_model$assets","_model$assets$","externalThumbnail","getExternalThumbnail","firstAsset","getVideoUrl","ConfigurationCardModel","_this$assets","_this$firstAsset","_this$firstAsset2","_this$firstAsset3","_this$firstAsset4","_this$firstAsset5","_model$button","_model$button2","_model$button3","_model$button4","_model$firstAsset3","_model$firstAsset4","externalThumbnailUrl","MediaElement","_model$innerComponent","innerComp","ModelConfigurationCard","ProductCompatibleLoaders","HeroSectionTextModel","spec","optionalLabel","showInfoTooltip","msrpTitle","msrpDescription","infoTooltipTitle","infoTooltipDescription","getTooltipIconDimensions","tooltipVisibility","TooltipRef","stylesArrow","setStylesArrow","stylesBox","setStylesBox","reposition","handleTooltipPosition","ToolTipIconEl","customDocument","halfWidth","availableWidth","availableSpace","transform","positionToolTip","tooltipDiv","TooltipPortal","showIcon","clickPreventDefault","TooltipIconRef","setTooltipVisibility","handleClickEvent","showTooltip","hideTooltip","handleMouseOver","handleMouseOut","onBlur","handleBlur","PortalComponent","InfoToolTip","HeroSectionCarouselModel","_model$slides","_model$slides2","_model$slides3","HeroSectionCarouselArrow","HeroSectionCarouselIndicator","_props$fields4","_props$fields4$apiDat","_props$rendering3$pla","_props$rendering4","_props$rendering4$pla","_props$rendering4$pla2","HeroSectionCarousel","HeroSectionText","CHModelDetailNavigationSectionModel","splice","Size200","IconOrImage","localSummarySpecs","setLocalSummarySpecs","specs","showModelUrl","onClickRedirectionDisabled","SummarySpecs","_this$data","hideInModelsListing","total","_this$data2","_this$data3","_this$data3$button","_this$data4","_this$data4$button","_this$data5","_this$data5$button","_this$data6","_this$data7","_this$data8","_this$data9","serieId","_headerButton$value","_headerButton$value2","headerButton","Element","productCard","ProductCard","ContentHubModelDetailSpecificationsTableModel","seriesDetail","backgroundColorClass","colHeadings","mrpTitle","mrpDescription","mrpRow","_this$fields13$apiDat2","msrpLabel","prices","hideRow","categoryRows","_this$fields15$apiDat2","tempItems","_specs$spec$group","_specs$spec$group2","_specs$spec$group2$te","_specs$spec$group3","_specs$spec$group3$te","createSpecsObj","_this$fields16$apiDat","newValues","insertGroup","exportData","_this$fields18$itemDa","convertToExcelLink","_this$exportData","_this$exportData2","_this$exportData3","_this$exportData4","_this$exportData5","specificationUrlParametersArray","specificationUrlParameters","modelId","TGridCSSVariables","DesktopRowHeaderCellWidth","DesktopSpecCellWidth","TableMaxWidth","searchTerm","setSearchTerm","searchResultCount","isClickedonSearch","setIsClickedOnSearch","slot","_event$currentTarget","currentTarget","toggleAllRows","expandedRows","getSearchResultCount","printTable","hideArrowButton","moveGridLeft","moveGridRight","InputBox","_sitecoreContextFacto","_brandLogoImageData$d","_brandLogoImageData$m","sitecoreContextFactory","brandLogoImageData","specIndex","subObj","accIndex","subArr","_subObj$specs","PrintTableContent","printWrapperRef","cleanupFunction","printActive","clearTableStylesTag","styledTag","createTextNode","colLength","head","print","PrintTable","DropdownMenu","colOrdInIndex","columnIndex","setColOrdInIndex","setDropdownAtColumnIndex","fixedDropdown","eachColName","dropdownInd","fixedColumn","dropdownPlaceholder","ColumnHeadingElement","columnValue","handleDropdownClick","dropdownAtColumnIndex","ColSubWrapperRef","repositionHeightOnScroll","subWrapperDimensions","DropdownChoice","ColumnHeadings","showHiddenRightCells","DropdownPlaceholderRef","_documentService2$bod","newDiv","FixedColHeading","showFixedColumnHeading","gridColumns","gridFixedColHeadsMoveBy","gridColumnWidth","gridOutsideSpaceHalved","gridLeftCellsMoveBy","FixedColHeadingRef","useImperativeHandle","variableInserted","setVariablesInserted","fixedColHeadingEl","cellSpacing","cellPadding","forwardRef","addWrapperDiv","highlightText","idx","SpecCell","_subObj$specs$colOrdI","hide","fadeIn","SubValueRow","setHideRow","setFadeIn","prevHideRef","prevHide","formatText","RowItems","toggleRow","_title$value","colSpan","MSRPRow","_mrpRow$prices","MainTable","GridRef","TableWrapperRef","fixedColumnRef","fixedColumnHeading","setShowHiddenRightCells","_tableWrapperEl$getEl","_fixedColumnRef$curre","_fixedColumnRef$curre2","tableEl","leftValue","_fixedColumnRef$curre3","_fixedColumnRef$curre4","_tableRef$current9","originalMrpRow","originalCategoryRows","notes","tableRef","leftMostVisibleColumn","setLeftMostVisibleColumn","setFixedColumnHeading","setExpandedRows","setHideArrowButton","setPrintActive","previousViewWidth","_tableRef$current","gridEl","fixedColShowing","previousTop","scrollHandler","_tableRef$current2","_gridEl$getElementsBy","_gridEl$getElementsBy2","gridElDim","topMostEmptyColHeadingDim","showOrHideFixedColumn","visibleTopLimit","visibleBottomLimit","_tableRef$current4","columnWidth","handleShowOrHideArrows","maxGridWidth","cellWidth","headerCellWidth","handleGridOutsideSpace","_tableRef$current3","_tableRef$current3$Gr","remainingWidth","_tableRef$current5","newGridScrollBy","maxMove","printStart","printEnd","getPropertyValue","mainTableProps","_tableRef$current8","arrIndex","expandedRow","TableHeader","_categoryRows$map","_categoryRows$map$red","initialValue","_item$items","previousValue","currentValue","_tableRef$current6","cardNo","_tableRef$current7","tableWrapperEl","visibleColumns","passProps","getMrpRows","_model$mrpRow","getCategoryRows","newCategoryRows","newCategory","SpecificationTable","ProductSelectorModel","addScript","ProductSeoTagsModel","_this$fields2$apiData2","_this$route","_this$route$fields","_this$route$fields$me","_this$context$metaDat","_this$context2$metaDa","pageTitle","seo","metaTitle","brandName","metaData","pageTitleSuffix","browserTitleSuffix","brandNameWithSuffix","_this$route2","_this$route2$fields","_this$route2$fields$m","metaDescription","keywords","_this$route3","_this$route3$fields","_this$route3$fields$M","MetaKeywords","robots","_this$route4","_this$route4$fields","_this$route4$fields$R","metaRobots","RobotsContent","canonicalUrl","_this$route5","_this$route5$fields","_this$route5$fields$c","_this$route5$fields$c2","_this$route6","_this$route6$fields","_this$route6$fields$m","_this$context3","_this$context3$metaDa","canonicalurl","canonicalLink","metaUrl","fullCanonicalLink","alternateLinks","_this$context4","_this$context4$Contex","ContextExtensions","hrefLanguageList","_this$context5","ogTitle","ogSiteName","_this$context6","ogUrl","_this$route7","_this$route7$fields","_this$route7$fields$m","ogImage","_this$route8","_this$route8$fields","_this$route8$fields$m","_this$route8$fields$m2","Size1200","metaImage","ogType","_this$route9","_this$route9$fields","_this$route9$fields$m","metaType","ogDescription","_this$fields12$apiDat2","ogLocale","_this$context7","ogLocaleAlternate","_this$context8","_this$context8$Contex","_this$context8$Contex2","langItem","_this$context9","langCode","priceAmountFromApi","char","ogPriceAmount","_this$route10","_this$route10$fields","_this$route10$fields$","priceAmount","ogPriceCurrency","_this$route11","_this$route11$fields","_this$route11$fields$","priceCurrency","twitterCard","_this$fields14$apiDat2","seoTwitterCard","twitterSite","_this$route12","_this$route12$fields$","seoTwitterSite","metaSite","twitterTitle","_this$fields16$apiDat2","_this$route13","_this$route13$fields$","twitterDescription","twitterImage","_this$fields17$apiDat","_this$fields17$apiDat2","_this$route14","_this$route14$fields","_this$route14$fields$","_this$route14$fields$2","gscVerificationCodes","_this$context10","_this$context10$metaD","_this$context11","_this$context11$metaD","_this$route15","_this$route15$fields","_this$route15$fields$","_this$route15$fields$2","extMetaGSVC","googleSiteVerificationCode","regularGSVC","Value","favIconUrl","_this$route16","_this$route16$fields","_this$route16$fields$","_this$route16$fields$2","_this$context12","_this$context12$metaD","_this$context12$metaD2","Favicon","favicon","_model$gscVerificatio","lang","hrefLang","langUrl","httpEquiv","property","GeneralHeadOrMetaTags","OgMetaTags","TwitterMetaTags","SeoTags","_model$button6","_model$button7","_model$button8","_model$button9","_externalThumbnail","_externalThumbnail2","_model$button5","_model$button10","ProductSeriesDetailConfigurationsOverviewModel","configurationsOverviewCard","_model$configurations","ConfigurationCard","CHSeriesDetailDownloadBrochureModel","downloadBrochureCard","canShowComponent","_this$fields12$apiDat3","_this$fields14$itemDa","InnerComponentTypes","_props$component","mediaCarouselClassName","mobileRenditionKey","desktopRenditionKey","shouldShowOnlyFirstItem","mediaCarouselSlides","_getThumbnailProps","_model$button11","_model$button12","Banner","CTAWithArrow","InnerSplitModule","InnerCardModel","_this$component","_this$component2","_this$component3","_this$component4","_this$component5","pictureProps","_this$firstAsset6","bannerType","_this$firstAsset7","_this$firstAsset8","_this$firstAsset9","_this$firstAsset10","videoThumbnail","_this$firstAsset11","_this$firstAsset13","_this$firstAsset14","_this$firstAsset15","_this$firstAsset16","_this$firstAsset17","_this$firstAsset12","InnerCard","_model$layoutType","setModalIsOpen","hasInnerComponents","shadowWidth","setShadowWidth","handleResize","newShadowWidth","scrollDownOnClick","scrollBy","layoutType","Split","InnerSplitModules","backgroundColorOverlaySplit","InnerCards","backgroundColorOverlayCardColumn","_model$button$label","_model$button2$label","SeriesDetailsModel","useShowProductComponentTitle","hasProductTitle","dictionaryTerms","isPageInEditState","hasDictionaryFallback","dictionaryValue","_model$innerComponent2","showTitle","collapsedTabs","setCollapsedTabs","FeatureHeader","tabId","ComponentDetails","componentArr","setComponentArr","sectionRef","setImageWidth","_sectionRef$current","_sectionRef$current2","_event$target$parentE","_componentArr","_data","Slide","duration","_props$fields5","_props$fields5$apiDat","_props$fields4$itemDa","DesktopSeriesDetails","MobileSeriesDetails","ProductModelSpecifications","CHSeriesDetailNavigationSectionModel","clickCTAEvent","button1Link","button2Link","mediaData","_model$mediaData$link","ProductSeriesDetailTestimonialModel","bigThumbnail","_this$fields11$apiDat3","isInternal","_firstAsset$full","_this$assets2","TestimonialMedia","TestimonialButtons","_assets$","_assets$2","_assets$3","bodyTextVisibility","SeriesListingModel","setItems","parentTitle","linesSeries","linesseries","currentLineTitle","isSuperSerie","_this$context$route","dropdownLineRef","dropdownLineInputRef","setShowDropdown","showPopup","setShowPopup","setDropdownTypeText","ALLTYPES","iconType","dropdownLineText","setDropdownLineText","mouseDownHandler","_documentService$addE","_documentService2$rem","getLinkLine","paths","filterIndex","dropdownTypeRef","dropdownTypeInputRef","secondFilterData","setSecondFilterData","dropdownTypeText","showDropdownType","setShowDropdownType","OTHER","typesFilteredArr","typeArr","tractor","v","secondFilterIndex","refDropdown","_documentService$body","_documentService$body2","_documentService2$bod2","FirstFilter","SecondFilter","apiParams","_fields$itemData","OverviewTextModel","OverviewCarouselModel","numOfSlides","currentSlideIndex","localSlides","setLocalSlides","newSlides","eachSlide","youTubeThumnail","_sliderRef$current","_localSlides$prevSlid","_sliderRef$current2","_localSlides$nextSlid","slideData","openOverlayModal","OveriewCarouselArrow","OverviewCarouselIndicators","OverviewCarousel","OverviewText","ProductSpecialOfferDetailModel","mainCategory","otherCategories","eachCategory","buttonDetails1","buttonDetails2","_model$primaryLink$va","_model$secondaryLink$","isModelOpen","setIsModelOpen","primaryCTAHref","secondaryCTAHref","CHSpecialOffersDownloadBrochureModel","_model$desktopImage","smallHeroRef","productImage","_smallHeroRef$current","_model$desktopImage2","_model$mobileImage2","_model$desktopImage3","smallHeroContentEl","minHeight","ALL_SP_CATEGORIES","ALL_SP_MODELS","ALL_SP_SERIES","ALL_SP_LINES","ProductSpecialOffersListingItemModel","specialOfferCard","_this$specialOfferCar","_this$specialOfferCar2","_this$specialOfferCar3","_this$specialOfferCar4","_this$specialOfferCar5","_this$specialOfferCar6","_asset$alt","_this$specialOfferCar7","expirationDate","_this$specialOfferCar8","_this$specialOfferCar9","_this$specialOfferCar10","_this$specialOfferCar11","_this$specialOfferCar12","hideSpecialOfferButtonFromCard","_this$specialOfferCar13","_this$specialOfferCar14","_this$specialOfferCar15","_this$specialOfferCar16","_this$specialOfferCar17","_this$specialOfferCar18","_this$specialOfferCar19","ProductSpecialOffersListingModel","cardsObj","filterCards","_this$categories$cate","_filteredCardIds","_filteredCardIds$map","lineSelectedInd","seriesSelectedInd","modelSelectedInd","categorySelectedInd","sortBy","filteredCardIds","allCards","getSortedCards","_this$lines$lineSelec","_this$lines$lineSelec2","_this$lines$lineSelec3","_this$lines$lineSelec4","_this$lines$lineSelec5","_this$lines$lineSelec6","_this$lines$lineSelec7","_this$lines$lineSelec8","_this$lines$lineSelec9","eachCardID","eachCard","specialOfferCards","defaultCardDesktopImage","specialOfferListingCardImage","defaultCardMobileImage","getCategoryTitleUrl","_this$categories$cate2","getLineTitleUrl","_this$lines$lineSelec10","getSeriesTitleUrl","_this$lines","_this$lines$lineSelec11","_this$lines$lineSelec12","_this$lines$lineSelec13","getModelTitleUrl","_this$lines2","_this$lines2$lineSele","_this$lines2$lineSele2","_this$lines2$lineSele3","_this$lines2$lineSele4","_this$lines2$lineSele5","updateQueryParams","queryObj","updatePageQueryParams","resetAllQueryParams","getDefaultContextData","_this$lines$deafultLi","_this$lines$deafultLi2","_this$lines$deafultLi3","_series$deafultSeries","_series$deafultSeries2","_series$deafultSeries3","searchParam","categoryFromQuery","lineFromQuery","seriesFromQuery","modelFromQuery","defaultCategoryInd","deafultLineInd","eachLine","deafultSeriesInd","eachSeries","defaultModelInd","eachModel","cardsToSort","expirationA","expirationB","FilterContext","resetFilters","_model$lines","_model$lines$lineSele","_model$lines2","_model$lines2$lineSel","_model$lines2$lineSel2","categoryOptions","lineOptions","seriesOptions","modelOptions","newCategorySelectedInd","newLineSelectedInd","newSeriesSelectedInd","newModelSelectedInd","SortCTA","filtersCopy","setFiltersCopy","lineSelectedIndCopy","seriesSelectedIndCopy","modelSelectedIndCopy","categorySelectedIndCopy","shouldShowCTAWrapper","toggleAccordion","newcategorySelectedInd","prodcutImageProps","useExperienceEditorPlaceholder","cardContainerRef","pageParam","setPageNo","newSetSelectedFilters","filterContextValue","SpecialOffersCard","_cardContainerRef$cur","_cardContainerRef$cur2","RelatedNewsModel","RelatedNewsCardModel","relatedTag","_this$item11","setActiveIndex","cardsLength","cardsMapper","_model$items3","RelatedNewsCard","basePath","buildAndPriceLinkEnvMap","division","_this$fields3$divisio","_this$fields4$locale","_this$fields5$languag","sapNumber","_this$fields6$sapNumb","vhsar","_this$fields7$vhsar","vkorg","_this$fields8$vkorg","geographicArea","_this$fields9$geograp","disableDLM","_this$fields10$disabl","MockRetailConfigurator","RetailConfigurator","lazy","pageQueryUrl","preSelectedLine","preSelectedSeries","preSelectedModel","Suspense","fallback","auth","bootstrap","initWith","gammaName","rangeName","productName","trackFn","isActive","filterLabel","filterCount","activeFilters","onFiltersChange","updatedActiveFilters","resetBtn","handleReset","FilterControl","SearchApiModel","highlight","_model$results","_model$results2","searchQueryString","inputValue","setInputValue","searchResultsRef","_formRef$current2","searchFilters","Filter","searchResultsList","_props$errors","hasAnyError","errors","_props$field","_props$field$valueFie","valueField","firstNameFieldTypeItemId","lastNameFieldTypeItemId","companyNameFieldTypeItemId","emailFieldTypeItemId","zipCodeFieldTypeItemId","addressFieldTypeItemId","cityFieldTypeItemId","phoneNumberFieldTypeItemId","mobileNumberFieldTypeItemId","gdprConsentFieldTypeItemId","productSelectorFieldTypeItemId","preferredCommunicationFieldTypeItemId","countryStateDropdownFieldTypeItemId","pageTitleFieldTypeItemId","pageUrlFieldTypeItemId","decisionRoleFieldTypeItemId","purchaseTimingFieldTypeItemId","recaptchaFieldTypeItemId","purchaseIntentionFieldTypeItemId","contactReasonFieldTypeItemId","notes1FieldTypeItemId","codePromotionFieldTypeItemId","initiativeSourceReportFieldTypeItemId","initiativeSourceReportDetailFieldTypeItemId","productOfInterestFieldTypeItemId","customProductOfInterestFieldTypeItemId","dealerNotesFieldTypeItemId","address2FieldTypeItemId","jobTitleFieldTypeItemId","leadManagementCampaignFieldTypeItemId","provinceFieldTypeItemId","delaerLocatorFieldTypeItemId","customNumberFieldTypeItemId","BusinessSegmentFieldTypeItemId","formPageIdentifierFieldTypeItemId","timeFieldTypeItemId","dealerNotesDropdownListFieldTypeItemId","dealerNotesCheckboxListFieldTypeItemId","dealerNotesRadioGroupFieldTypeItemId","marketingConsentTypeItemId","dynamicProductSelector","leadDocumentId","_field$valueField","_field$valueField2","setValue","FieldValidationErrors","fieldValidationErrorsComponent","btoa","isValid","_props$field$model","_props$field2","_props$field2$model","_fieldClassName$props","fieldWidthClassName","fieldClassName","customFieldTypes","FieldTypes","hasPageTitleOrPageUrl","PageTitle","PageUrl","fieldTypeItemId","fieldWrapperClassName","CustomFormContext","sitecoreForm","setProductSelector","setSelectedDealerName","_firstUserActionState","_selectedCountry","customFormContextFactory","_sitecoreForm$metadat","_sitecoreForm$metadat2","firstUserActionState","metadata","useFirstUserAction","_customFormContext$an","_customFormContext$an2","customFormContext","firstUserAction","setFirstUserAction","triggerFirstInteractionGTMEvent","_customFormContext$an3","_field$model","_field$model2","tracker","inputAttributes","hasFocus","setHasFocus","hasValueOrFocus","placeholderText","CustomTextLabel","onFocusField","_e$target2","onBlurField","_e$target3","_field$valueField3","_e$target4","BaseTextField","numberValidation","PhoneInput","onlyCountries","availableCountries","preserveOrder","preferredCountries","prioritizedCountries","localization","localizations","enableSearch","disableSearchIcon","searchPlaceholder","containerClass","inputClass","buttonClass","dropdownClass","searchClass","hasVisiblePassword","setHasVisiblePassword","_field$model3","rows","_field$model$items","getNewValue","targetValue","errorColor","useDidUpdate","fn","inputs","didMountRef","_dropDownListItems","_dropDownListItems3","_dropDownListItems6","emptyAtTopList","showEmptyItem","hasTextInputFocus","setHasTextInputFocus","useFirstItemAsEmptyItem","dropDownListItems","_field$model3$items","firstItem","_field$model4","defaultListItem","selected","initialTextValue","setInitialTextValue","setTextValue","dropdownValue","setDropdownValue","initialDropdownValue","setInitialDropdownValue","dropdownRef","inputRef","_dropDownListItems2","_field$model$items$0$","_field$model5","_field$model5$items","_field$model5$items$","sendValueForNoSelection","onDropdownClik","_inputRef$current2","_inputRef$current","onSelectOption","filteredOptions","option","_dropdownRef$current","_dropDownListItems4","opt","_dropDownListItems5","currentItem","newValue","onDropdownFocus","onTextInputBlur","SIZE_UNITS","_props$value","getEnabledValidation","validatorItemId","validationDataModels","validation","fileTypeValidator","ValidationDataModels","files","newfield","fileSizeValidator","fileCountValidator","errorMessages","valid","fileSizeUnit","maxFileSize","msg","ext","allowedContentTypes","maxFileCount","required","accept","multiple","isMultiple","onClearClick","onUploadClick","_model$max","_model$min","maxDate","minDate","showPicker","labels","titleSecond","titleThird","encodedValue","setEncodedValue","encodeValue","rawValue","getValue","checkboxId","_value$split","getPropsWithErrors","_errors$0$split","_getPropsWithErrors$e","encValue","getLabel","GdprConsentCheckbox","handleCheckboxChange","policy","updateData","RadioButtonIcons","accepted","acceptLabel","denyLabel","contactChecboxes","_data$find","_gdprPolicies$policie4","handlePopupSubmit","gdprPolicies","hidePopup","enableSubmit","setEnableSubmit","setData","_gdprPolicies$policie","policies","contactConsentDescriptionIndex","_gdprPolicies$policie2","_gdprPolicies$policie3","isAllRadioDisagreed","every","isAnyRadioButtonNotAccepted","isAnyContactChecked","_data$find2","CheckboxSection","RadioSection","ContactSection","cancelButtonLabel","handleSubmit","isFormOverlay","version","submitButtonLabel","submitCounter","setSubmitCounter","_documentService$quer","_documentService$quer2","otherValidationErrors","_formtag$querySelecto","_formtag$querySelecto2","formtag","closest","GDPRPopupModal","validationPassed","initialPolicies","GdprPolicyConsent","updatedData","consentType","stringifiedConsentType","GdprInlineConsent","GDPRPopup","GDPRCheckbox","disableRecaptcha","endpointUrl","reCaptchaScript","reCaptchaElement","grecaptcha","enterprise","ready","token","execute","siteKey","expectedAction","stringifiedToken","MultiDropdownSendData","updateSendData","ALL_MODELS","ALL_SERIES","ALL_LINES","_fields$errors","isEnabled","preSelectedOption","isValidationErrors","onSearch","setOnSearch","_optionsList$lineInde","_optionsList$lineInde2","_optionsList$lineInde3","_optionsList$lineInde4","optionsList","defaultSelectedLine","defaultSelectedSeries","defaultSelectedModel","lineIndex","setLineIndex","seriesIndex","setSeriesIndex","modelsIndex","setModelsIndex","isLineHidden","isSeriesHidden","setProductIndex","selectedLine","selectedSeries","selectedModel","_optionsList$newLineS","_optionsList$newLineS2","_optionsList$newLineS3","_optionsList$newLineS4","_optionsList$newLineS5","_optionsList$newLineS6","_optionsList$newLineS7","_optionsList$newLineS8","_optionsList$newLineS9","_optionsList$newLineS10","_optionsList$newLineS11","_optionsList$newLineS12","_optionsList$newLineS13","_optionsList$newLineS14","_optionsList$newLineS15","_optionsList$newLineS16","_optionsList$newLineS17","_optionsList$newLineS18","_optionsList$newLineS19","_optionsList$newLineS20","_optionsList$newLineS21","_optionsList$newLineS22","_optionsList$newLineS23","_optionsList$newLineS24","_optionsList$newLineS25","_optionsList$newLineS26","_optionsList$newLineS27","array","callBackFn","fallbackValue","lineTitle","seriesTitle","modelsTitle","modelsId","_windowService$atob","decodeValue","atob","findDropdownIndex","_item$split","_decodeValue$findDrop","ProductSelectorDropdown","_optionsList","_optionsList2","dropdownID","_optionsList$lineInde5","_optionsList$lineInde6","_optionsList$lineInde7","_optionsList$lineInde8","_optionsList$lineInde9","_optionsList$lineInde10","_optionsList$lineInde11","_optionsList$lineInde12","_optionsList$lineInde13","_optionsList$lineInde14","_optionsList$lineInde15","_optionsList$lineInde16","_optionsList$lineInde17","_optionsList$lineInde18","_optionsList$lineInde19","_optionsList$lineInde20","_optionsList$lineInde21","_optionsList$lineInde22","_optionsList$lineInde23","_optionsList$lineInde24","_optionsList$lineInde25","useCreateProductSelectorList","chProductList","editorProductList","_customFormContext$pa","isEnablePreSelection","enablePreselection","mergeProductArrays","editorialProducts","chProducts","findMatchingItem","productItem","matchingChProductItem","matchingChProductSeries","productModel","matchingChProductModel","_customFormContext$pa2","isShowHideOtherFields","showHideOtherFields","isDefaultLine","preselectedResult","findPreselectedSeriesAndModels","productList","_line$series","_series$models","defaultSendData","_customFormContext$pa3","isRequired","fetchedData","setFetchedData","preSelectedResults","setPreSelectedResults","dropdowns","setDropdowns","showDelete","countRef","validationErrors","setValidationErrors","productSectorList","preSelectedProductData","useDefaultSelectedProduct","isEnabledPreSelection","preSelectionId","preSelection","sendData","setSendData","decodedValue","itemValues","dropdownValues","fetchData","fetchProductPreselectedData","newSendData","sendProductSelection","convertObjectToString","hasEmptyLineValues","_obj$line","sendValue","sendContext","dropdown","ProductSelectorDropdowns","updatedDropdowns","updateSendDataItems","handleDeleteButtonClick","handleAddButtonClick","newId","productLimit","ALL_COUNTRY","ALL_STATES","isEnable","isCountryDropDown","itemSelected","visibleDropdownOptions","handleDropdownSelectOption","_optionsList$countryI","_optionsList$countryI4","_optionsList$countryI5","_optionsList$countryI6","_optionsList$countryI7","useStateCode","hideStateProvinceDropdown","countryIndex","setCountryIndex","stateIndex","setStateIndex","firstInteractionHappened","setFirstInteractionHappened","setInitialState","_optionsList$","_optionsList$defaultC","defaultCountryIndex","_optionsList$selected","_optionsList$selected2","selectedCountryIndex","stateOptions","selectedStateIndex","stateCode","stateArr","countryOptions","CountryStateDropDown","newCountrySelectedInd","_optionsList$newCount","newStateSelectedInd","_optionsList$countryI2","_optionsList$countryI3","useDidCountryUpdate","_customFormContext$se","setSelectedCountry","CountryStateField","_fetchedData$find","_fetchedData$find$sta","setDefaultCountry","setUseStateCode","sendCountryStateValue","objKeys","isEmptyState","_sendData$value","_sendData$value$","_sendCountryStateValu","_sendCountryStateValu2","_obj$country","matchCountry","countryisocode","getSelectedCountry","CountryStateDropdowns","_props$items","highlightedSuggestionIndex","mouseEnterHandler","clickHandler","optionTextHandler","keyGenerator","_item$Country","_item$Country2","_item$Country3","ItemList","_item$Country4","getComponentsParam","updatedSelectedPlaceId","prevSelectedResult","onTextInputClick","radioButtondefault","_props$distance","updateIconName","updateSelectedDealerNumberAndName","shippingAddress","isLarge","distanceUnit","updateActiveCardNumber","shouldShowMask","setShouldShowMask","showLeftMask","setShowLeftMask","showRightMask","setShowRightMask","checkContainerWidthForMask","containerWidth","_DESKTOP_CARD_WIDTH","_cardContainerWidth","_cardWidthRef$current2","contentRect","updateSelectedDealerNumber","DEALER_LOCATOR_FORM_SEARCH","_props$field$model$go","mapsApiKey","googleApikey","requiredField","setCoords","updateDistanceUnit","countryList","setCountryList","dealerResultsLoaded","updateDealerResultsLoaded","cardProps","updateCardProps","showError","setShowError","dealerDivRef","userLocationIsActive","setUserLocationIsActive","searchUserLocationResult","setSearchUserLocationResult","setPrevSelectedResult","updateCountry","userLocationSearchResultType","sortedResults","getDealersFromCoords","Geocoder","importLibrary","geocoder","geocode","_results$","address_components","countryDetail","_reduce","short_name","searchInput","iter","long_name","setDealersCoords","_windowService$naviga","_windowService$naviga2","dealerSelectedCountries","dealerpreSelected","deafultCountry","defaultDealerCountry","dealerRadius","cardPropsInput","_dealer$dealership$sh","_dealer$dealership$sh2","cnhPrimarySAPNumber","_dealerDivRef$current","Loader","load","submitButton","reset","CardCarousel","onInput","lastIndexOf","_field$fieldIdField","fieldIdField","onButtonClick","navigationStep","buttonField","handleSelectorClick","selectedValue","setSelectedValue","hourMinutesFormat","onDropdownClick","timeList","paddedText","maxHours","maxMinutes","h","m","formattedHours","formattedMinutes","minutesInterval","hideMeridiemSelector","hoursFormatValue","hoursDropdownList","useTimeListGenerator","minutesDropdownList","hoursMinuteDropdownList","useHoursMinutesListGenerator","defaultTimeValues","minutes","handleHourOptionClick","handleMinuteOptionClick","handleHourMinutesOptionClick","hoursMinutesValue","HoursMinutesDropDown","meridiemValues","meridiem","TimeDropdownSelectors","MeridiemRadioGroup","sendTimeValue","TimeSelectors","time24HoursFormat","timeInterval","setIsChecked","marketoConsentValue","isCountryISOCodePresent","marketoConsentCountryISOCode","isConsentDefaultCountrySelected","marketoConsentDefaultCountrySelected","preSelectedValue","MarketingConsentCheckbox","marketoNoConsentValue","_selectedValue$dropdo","_selectedValue$dropdo2","dropdownIndex","_selectedValue$dropdo3","selectedOption","_prevState$dropdownIn","newState","renderDropdowns","dynamicDropDown","furtherDropdowns","hasFurtherDropdowns","dropDown","DropDown","setDropDown","prepareDynamicDropdownStructure","dropdownItems","_obj$text","DynamicDropDown","selectedOptions","modelsDropDown","dynamicProductList","digits","formatCpfCnpj","maxLength","fieldFactory","createDefaultFieldFactory","setComponent","TextField","NumberField","EmailField","TelephoneField","PasswordField","MultipleLineTextField","CheckboxField","CheckboxList","DropdownList","FileUploadField","RadioGroup","SingleLineText","Button","ZipCodeField","GdprConsentField","ProductSelector","ReCaptchaField","DealerLocator","CustomNumberField","FormPageIdentifierField","TimeField","MarketingConsentField","DynamicProductSelector","LeadDocument","redirectionLink","EmptyErrorComponent","Component","router","thankyouMessageId","thankyouMessageSetting","showThankyouMessage","updateShowThankyouMessage","thankYouMessageFields","updateThankYouMessageFields","pageLanguage","productSelectorItems","setProductSelectorItems","currentPageFieldsRef","initialAnalyticsDataRef","PurchaseIntention","ContactReason","hasProductSelectorField","analyticsDataRef","selectedDealerName","successResponseHandler","formData","_currentPageFieldsRef","_currentPageFieldsRef2","_currentPageFieldsRef3","_currentPageFieldsRef4","purchaseIntensionField","_valueField","_formData$get","_formData$get$find","_purchaseIntensionFie","_purchaseIntensionFie2","purchaseIntensionValueFieldName","purchaseIntensionValue","purchaseIntensionText","contactReasonField","_valueField2","_formData$get2","_formData$get2$find","_contactReasonField$m","_contactReasonField$m2","contactReasonValueFieldName","contactReasonValue","contactReasonText","_currentPageFieldsRef5","_currentPageFieldsRef6","storeAnalyticsData","isSubmitButtonClicked","_field$buttonField","instanceOfButtonFormField","navigationStepField","success","_windowService$dispat","pushDataToAnalytics","_fields$metadata","productItems","item_id","item_name","product_line","product_series","product_model","dealer_name","formSubmitEvent","CustomEvent","nextForm","ThankYou","redirectPageLink","thankyouHeading","thankyouMessage","CustomFormContextProvider","Form","defaultLanguage","sitecoreApiHost","sitecoreApiKey","errorComponent","FieldValidationError","fieldWrapperComponent","fieldWrapper","formFetcher","endpoint","_windowService$dispat2","ADD_LOADER_QUEUE_ITEM","toMultipartFormData","finally","_windowService$dispat3","REMOVE_LOADER_QUEUE_ITEM","onRedirect","useParams","_model$primaryLink$va2","_model$primaryLink2$v","_model$primaryLink3$v","_model$secondaryLink$2","specCheckAdditionalProperties","aditionalParametersNormalizedJson","additionalParameters","scriptElement","embedId","textAlign","SpecCheckModel","SpecCheckPluginContainer","KeepInTouchModel","textboxPlaceholderText","showForm","submitButtonLink","socialMediaTitle","socialMediaLinks","SocialLink","_props$item$fields","_props$item","_props$item$fields2","_props$item$fields3","_props$item$fields4","KeepInTouchForm","_model$showForm","_model$showForm2","TableRowModel","getCellData","number","getIconCellData","groupName","tooltipTitle","TableGroupModel","_this$fields9$items","TableModel","_this$fields10$nOfVis","totalColumns","nOfVisibleColumn","n","counterArray","getColumnTextData","getColumnImageData","_this$fields13$items","groupItemsIndexes","newExpandedRows","_this$fields14$nOfVis","disableExpand","_this$fields15$disabl","disableSearch","_this$fields16$tableS","tableSettings","hideSearch","disablePrint","_this$fields17$tableS","hidePrint","disableExcel","_this$fields18$tableS","showDownloadExcel","hideHeadingSection","_this$fields19$tableS","hideHeadingSectionOfTable","hideRowsHeader","_this$fields20$tableS","hideFirstColumn","hideImageOnHeadingRow","_this$fields21$tableS","hideAccordionTabIcon","_this$fields22","_this$fields22$tableS","hideAccordionTabPlusMinusIcon","hideColumnHeader","_this$fields23","_this$fields23$tableS","hideHeadingRow","showIconsOnCells","_this$fields24","_this$fields24$tableS","stickyHeadingRow","_this$fields25","_this$fields25$sticky","stickyHeadingColumn","_this$fields26","_this$fields26$sticky","heading","_this$fields27","_this$fields28","_this$fields29","_this$fields30","groupHeadingTag","rowTitlePlainText","DOMParser","parseFromString","_this$fields31","_this$fields32","_this$fields32$tableS","_this$fields33","_this$fields33$tableS","_this$fields34","_this$fields34$tableS","exportDataId","excelSettings","_props$colHeadings","_props$colHeadings2","isHideImage","gridFirstColumnWidth","_model$heading$value","_model$heading","tagname","searchInNodes","nodeType","Node","TEXT_NODE","internalText","highlightedText","ReactDOMServer","span","parentNode","insertBefore","ELEMENT_NODE","childNode","childNodes","serializedText","_row$title","_row$tooltip","row","FormatText","_heading$value","hideCell","_data$fields","_data$fields$iconUrl","_data$fields2","_data$fields2$iconAlt","lastRow","isShowIconOnCell","CellIcon","CellText","_subObj$title","_subObj$title2","_model$colHeadings","LeftMostCell","_subObj$title3","DynamicHeadingTag","_obj$title","tableSubRows","_element$title","plainText","_subObj$groupName","SubvalueRow","random","_obj$title2","GroupRow","NormalRow","tableRows","renderCell","_iconData$fields","_iconData$fields$icon","_iconData$fields2","_iconData$fields2$ico","_val$text","setGridColumns","gridScrollBy","setGridScrollBy","setGridLeftCellsMoveBy","setGridFixedColHeadsMoveBy","setGridFirstColumnWidth","setGridColumnWidth","setGridOutsideSpaceHalved","handleShowOrHideRowsHeader","newColumnWidth","handleHideRowsHeaderResize","firstColWidth","handleShowRowsHeaderResize","_model$groupItemsInde","newgridScrollBy","_model$items$index","_model$items$index$ti","groupTitle","internalRowItem","_item$title","TableComp","TextModuleModel","getLoadedImageDimension","_imageLoaded","_imageLoaded$value","imageWidth","_this$image","_this$image$value","_this$mobileImage","_this$mobileImage$val","textPosition","_this$fields11$alignm","_this$fields11$alignm2","alignment","_this$fields12$backgr","_this$fields12$backgr2","link1ExistsOrIsEE","link2ExistsOrIsEE","_this$link3","_this$link3$value","_this$link4","_this$link4$value","_model$textPosition","_model$backgroundColo","_model$textPosition2","_model$textPosition3","_model$textPosition4","_model$link6$value","trackAnalyticsEvents","showGenericPopup","maxWidth","marginLeft","marginRight","_model$link1$value$te","_model$link2$value$te","TextModuleContainer","componentFactory","Advisor","BlogNews","BreadcrumbBar","BuildAndPriceExternalLink","CardColumnLayout","CardGrid","CustomHtml","DealerLocatorBreadcrumbBar","DealerLocatorDetail","DealerLocatorLanding","DownloadBrochures","EventDetail","EventsListing","ExternalComponent","FairHero","FindDealer","Footer","FullScreenMediaGallery","GenericPopUp","HeroBanner","InteractiveImage","LatestNews","LightFooter","LightHeader","LiveEventDetail","MediaGallery","ModelsListing","NavigationBar","NavigationBarAnchorComponent","NewsDetail","NewsFiles","NewsLetterSubscription","NewsListing","NextSteps","ProductBreadcrumbBar","ProductBuildAndPriceLink","ProductCompatibleLoaderListing","ProductDownloadBrochureListing","ProductHeroBanner","ProductHeroBannerSeriesDetail","ProductLinesListing","ProductLineSpecialOffers","ProductModelCompatibleAttachmentListing","ProductModelConfigurations","ProductModelDetailCompatibleLoaders","ProductModelDetailHeroSection","ProductModelNavigation","ProductModelsListing","ProductSeoTags","ProductSeriesCompatibleAttachmentListing","ProductSeriesDetailConfigurationsOverview","ProductSeriesDetailDownloadBrochures","ProductSeriesDetailFeature","ProductSeriesDetailModelSpecifications","ProductSeriesDetailNavigationOverview","ProductSeriesDetailSpecialOffers","ProductSeriesDetailTestimonial","ProductSeriesListing","ProductSeriesListingFilters","ProductSeriesNavigationBar","ProductSeriesOverview","ProductSpecialOfferDetail","ProductSpecialOffersDetailDownloadBrochures","ProductSpecialOffersDetailHeroBanner","ProductSpecialOffersListing","RelatedNews","RemoteBuildAndPrice","SearchResults","SitecoreJssForm","SmallHero","SpecCheck","SubscriptionBox","Table","TextModule","ParameterizedRestLayoutService","RestLayoutService","getFetchParams","_this$config$tracking","sc_apikey","sc_site","siteName","sc_lang","tracking","extraQueryParams","layoutServiceFactory","create","process","REACT_APP_FETCH_WITH","constants","GraphQLLayoutService","apiHost","configurationName","usePageView","skipFirstLoad","firstLoad","setFirstLoad","isTrigered","_props$sitecoreContex4","_props$sitecoreContex5","_props$sitecoreContex6","_props$sitecoreContex7","_props$sitecoreContex8","_props$sitecoreContex9","_props$sitecoreContex10","_props$sitecoreContex11","_props$sitecoreContex12","_props$sitecoreContex13","consentCookie","cookieKey","documentLangAttribute","isHtmlLanguageDetected","isAutoBlockingEnabled","charSet","LayoutSeoTagModel","_this$route5$fields$m","_this$route6$fields$m2","_this$route10$fields$2","_this$context9$metaDa","_this$route11$fields$2","_this$route12$fields","_this$route12$fields$2","_this$context11$metaD2","incomingObj","outgoingObj","JSONLDSeoModel","productSeoTags","_this$route$placehold","mainComponentsList","comp","_this$productSeoTags","_this$productSeoTags$","_this$productSeoTags$2","_this$productSeoTags$3","productSchemaBodyType","_this$productSeoTags2","_this$productSeoTags3","_this$productSeoTags4","_this$productSeoTags5","_this$route3$fields$b","seoBodyType","bodyType","productSchemaCargoVolume","_this$productSeoTags6","_this$productSeoTags7","_this$productSeoTags8","_this$productSeoTags9","_this$route4$fields$c","seoCargoVolume","cargoVolume","productSchemaFuelType","_this$productSeoTags10","_this$productSeoTags11","_this$productSeoTags12","_this$productSeoTags13","_this$route5$fields$f","seoFuelType","fuelType","_this$productSeoTags14","_this$productSeoTags15","_this$productSeoTags16","_this$productSeoTags17","_this$productSeoTags18","productType","schemaType","schemaName","schemaDescription","schemaUrl","schemaLogo","_this$context3$metaDa2","officialLogo","schemaSameAs","_this$context4$metaDa","_this$context4$metaDa2","productUrl","_this$context5$Contex","_this$context5$Contex2","_this$context5$Contex3","corporationJSONLD","jsonLD","removeEmptyFields","logo","sameAs","vehicleJSONLD","manufacturer","bodytype","CargoVolume","pageJSONLD","hostUrl","headerComponent","_this$route8$placehol","_this$route8$placehol2","_this$headerComponent","_this$headerComponent2","_this$headerComponent3","_this$headerComponent4","_this$headerComponent5","_this$headerComponent6","lastParam","homePage","contextItemTemplateId","searchboxJSONLD","potentialAction","urlTemplate","StickyTopWrapper","getDealerLocatorType","_dealerLocatorLanding","_dealerLocatorLanding2","dealerLocatorLandingIndex","dealerLocatorLandingComponent","_sitecoreContext$anal4","_sitecoreContext$anal5","_sitecoreContext$anal6","_sitecoreContext$anal7","_sitecoreContext$anal8","_sitecoreContext$anal9","_sitecoreContext$anal10","_sitecoreContext$anal11","_sitecoreContext$anal12","matomoUrl","matomoId","matomoTagManagerContainer","matomoTagManagerScript","googleAnalyticsId","googleTagManagerIds","googleTagManagerIdWithServerSideDomain","marketoMunchkinId","marketoMunchkinWsInfo","applicationInsightInstrumentationKey","aiScript","enableCustomerSurvey","customerSurveyScript","shouldRenderCustomerSurvey","isPageLoadEventTriggered","_paq","g","s","_windowService4$locat","_mtm","_windowService7$locat","ReactGA","addGTMScript","gtmId","gtmUrl","_documentService4$hea","_documentService5","_documentService6","_documentService6$bod","scriptText","innerText","prepend","noScriptText","noScript","gtmCustomDomains","gtmElem","domain","_sitecoreContext$anal13","_sitecoreContext$anal14","_sitecoreContext$anal15","_sitecoreContext$anal16","_sitecoreContext$anal17","_sitecoreContext$anal18","_sitecoreContext$anal19","_sitecoreContext$anal20","_sitecoreContext$anal21","_sitecoreContext$anal22","_sitecoreContext$anal23","_sitecoreContext$anal24","_sitecoreContext$anal25","siteSection","siteSubsection","loginStatus","didInit","initMunchkin","Munchkin","init","wsInfo","onreadystatechange","readyState","ConsentCookie","LayoutSeoTags","JSONLDSeoTags","isFirst","site","RouteHandler","extractSearchQueryParams","_this$props$location","paramObj","whitelistedQueryParamKeys","hasDiffOnlyInExcludedParams","newQueryParams","existingSearchParams","excludedSearchParams","newSearchParamsObj","currentQueryParamsObj","updateLanguage","componentDidMount","isSSR","updateLayoutData","componentIsMounted","componentWillUnmount","_this$props$sitecoreC","_this$props$sitecoreC2","getLanguage","sitecoreRoutePath","fetchLayoutData","routeData","newLanguage","i18n","componentDidUpdate","previousProps","_previousProps$locati","_this$props2$location","_sitecoreRoutePath$in","existingRoute","newRoute","newSearchParams","layoutData","NotFound","LayoutContextProvider","Layout","showLoader","setShowLoader","prev","LANGUAGE_REG_EXP","parseRouteParams","JssRoute","AppRoot","gsap","ScrollToPlugin","vh100","Router","graphQLClient","ApolloProvider","client","SitecoreContext","ssrState","Routes","Route","dictionaryServiceFactory","appName","GraphQLDictionaryService","RestDictionaryService","REACT_APP_DEBUG","enableDebug","renderFunction","createRoot","initLanguage","__JSS_STATE__","ssrRawJson","hydrateRoot","sitecore","initialGraphQLState","APOLLO_STATE","ssr","initialCacheState","BatchHttpLink","uri","connection","possibleTypes","introspectionQueryResultData","supertype","subtype","cache","InMemoryCache","ApolloClient","ssrMode","ssrForceFetchDelay","restore","GraphQLClientFactory","dictionary","debug","fallbackLng","useCookie","interpolation","escapeValue","initReactI18next","dictionaryServicePath","backend","loadPath","parsedData","phrases","dictionaryServiceInstance","read","_namespace","fetchDictionaryData","use","i18ninit","_JSS_STATE__","_JSS_STATE__$sitecore","_JSS_STATE__$sitecore2","BrowserRouter","module","exports"],"sourceRoot":""}