{"version":3,"sources":["temp/config.js","assets/images/v_avatar-xl.png","assets/images/v_avatar.png","assets/images/v_logo-pa.svg","assets/images/v_empty_list_mob.jpg","assets/images/v_empty_list.jpg","assets/images/badge_svg/Badge_SvgSiteConnecte_disabled.svg","assets/images/badge_svg/Badge_SvgAppConnecte_disabled.svg","assets/images/v_empty_challenge_list_mob.jpg","assets/images/v_empty_challenge_list.jpg","assets/images/v_logo-caf_2022.svg","assets/images/badge_png/Badge_PngCaf.png","assets/images/v_logo_comptoir-dermato_crop.png","assets/images/v_logo_lrp_crop.png","assets/images/v_logo_cerave_crop.png","assets/images/v_logo_vichy_crop.png","assets/images/v_logo_skinc_crop.png","assets/images/v_logo_biotherm_crop.png","assets/images/v_logo_sciencemd_crop.png","assets/images/v_logo_vip-lrp.png","assets/images/v_logo_vip-cerave.png","assets/images/v_logo_vip-vichy.png","assets/images/v_logo_vip-skinceuticals.png","assets/images/v_logo_vip-biotherm.png","assets/images/i_cake-birthday.jpg","assets/images/i_entry_event.svg","assets/images/i_entry_challenge.svg","assets/images/i_entry_expertise.svg","assets/images/badge_logo/Badge_LogoLRP.png","assets/images/badge_logo/Badge_LogoCerave.png","assets/images/badge_logo/Badge_LogoVichy.png","assets/images/badge_logo/Badge_LogoSkinCeuticals.png","assets/images/badge_logo/Badge_LogoBiotherm.png","assets/images/badge_logo/Badge_LogoScienceMD.png","assets/models/site-bienvenue.glb","assets/images/badge_svg/Badge_SvgSiteBienvenue.svg","assets/images/badge_svg/Badge_SvgSiteBienvenue_disabled.svg","assets/models/app-bienvenue.glb","assets/images/badge_svg/Badge_SvgAppBienvenue.svg","assets/images/badge_svg/Badge_SvgAppBienvenue_disabled.svg","assets/models/site-connecte.glb","assets/images/badge_svg/Badge_SvgSiteConnecte_Gold.svg","assets/images/badge_svg/Badge_SvgSiteConnecte_Silver.svg","assets/images/badge_svg/Badge_SvgSiteConnecte_Bronze.svg","assets/models/app-connecte.glb","assets/images/badge_svg/Badge_SvgAppConnecte_Gold.svg","assets/images/badge_svg/Badge_SvgAppConnecte_Silver.svg","assets/images/badge_svg/Badge_SvgAppConnecte_Bronze.svg","assets/models/expert-categoriel.glb","assets/images/badge_png/Badge_SvgExpertCategoriel_Theme.png","assets/images/badge_png/Badge_SvgExpertCategoriel_Theme_disabled.png","assets/images/badge_logo/Badge_Theme.png","assets/images/badge_png/Badge_SvgExpertCategoriel_Oncologie.png","assets/images/badge_png/Badge_SvgExpertCategoriel_Oncologie_disabled.png","assets/images/badge_logo/Badge_Oncologie.png","assets/images/badge_png/Badge_SvgExpertCategoriel_Dermatologie.png","assets/images/badge_png/Badge_SvgExpertCategoriel_Dermatologie_disabled.png","assets/images/badge_logo/Badge_Dermatologie.png","assets/images/badge_png/Badge_SvgExpertCategoriel_Pediatrie.png","assets/images/badge_png/Badge_SvgExpertCategoriel_Pediatrie_disabled.png","assets/images/badge_logo/Badge_Pediatrie.png","assets/images/badge_png/Badge_SvgExpertCategoriel_PlaiesCicatrisation.png","assets/images/badge_png/Badge_SvgExpertCategoriel_PlaiesCicatrisation_disabled.png","assets/images/badge_logo/Badge_PlaiesCicatrisation.png","assets/images/badge_png/Badge_SvgExpertCategoriel_SanteFemme.png","assets/images/badge_png/Badge_SvgExpertCategoriel_SanteFemme_disabled.png","assets/images/badge_logo/Badge_SanteFemme.png","assets/images/badge_png/Badge_SvgExpertCategoriel_CuirChevelu.png","assets/images/badge_png/Badge_SvgExpertCategoriel_CuirChevelu_disabled.png","assets/images/badge_logo/Badge_CuirChevelu.png","assets/images/badge_png/Badge_SvgExpertCategoriel_MedecineEsthetique.png","assets/images/badge_png/Badge_SvgExpertCategoriel_MedecineEsthetique_disabled.png","assets/images/badge_logo/Badge_MedecineEsthetique.png","assets/models/marque-parcours.glb","assets/images/badge_png/Badge_PngMarqueParcours_LRP.png","assets/images/badge_png/Badge_PngMarqueParcours_LRP_disabled.png","assets/images/badge_png/Badge_PngMarqueParcours_Cerave.png","assets/images/badge_png/Badge_PngMarqueParcours_Cerave_disabled.png","assets/images/badge_png/Badge_PngMarqueParcours_Vichy.png","assets/images/badge_png/Badge_PngMarqueParcours_Vichy_disabled.png","assets/images/badge_png/Badge_PngMarqueParcours_Skinc.png","assets/images/badge_png/Badge_PngMarqueParcours_Skinc_disabled.png","assets/images/badge_png/Badge_PngMarqueParcours_Biotherm.png","assets/images/badge_png/Badge_PngMarqueParcours_Biotherm_disabled.png","assets/images/badge_png/Badge_PngMarqueParcours_ScienceMd.png","assets/images/badge_png/Badge_PngMarqueParcours_ScienceMd_disabled.png","assets/models/marque-miniparcours.glb","assets/images/badge_png/Badge_PngMarqueMiniParcours_LRP.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_LRP_disabled.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_Cerave.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_Cerave_disabled.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_Vichy.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_Vichy_disabled.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_Skinc.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_Skinc_disabled.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_Biotherm.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_Biotherm_disabled.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_ScienceMd.png","assets/images/badge_png/Badge_PngMarqueMiniParcours_ScienceMd_disabled.png","assets/models/marque-privilege.glb","assets/images/badge_png/Badge_PngMarquePrivilege_LRP.png","assets/images/badge_png/Badge_PngMarquePrivilege_LRP_disabled.png","assets/images/badge_png/Badge_PngMarquePrivilege_Cerave.png","assets/images/badge_png/Badge_PngMarquePrivilege_Cerave_disabled.png","assets/images/badge_png/Badge_PngMarquePrivilege_Vichy.png","assets/images/badge_png/Badge_PngMarquePrivilege_Vichy_disabled.png","assets/images/badge_png/Badge_PngMarquePrivilege_Skinc.png","assets/images/badge_png/Badge_PngMarquePrivilege_Skinc_disabled.png","assets/images/badge_png/Badge_PngMarquePrivilege_Biotherm.png","assets/images/badge_png/Badge_PngMarquePrivilege_Biotherm_disabled.png","assets/images/badge_png/Badge_PngMarquePrivilege_ScienceMd.png","assets/images/badge_png/Badge_PngMarquePrivilege_ScienceMd_disabled.png","assets/images/room.hdr","assets/images/v_banner-product_mob.png","assets/images/v_banner-product.png","assets/images/v_code-client.jpg","components/ContentBlock/index.js","utilities/FrontFunctions/AoxGlobalFrontFunctions.js","utilities/FrontFunctions/FormElements/CustomSelect.js","utilities/FrontFunctions/AoxFrontFunctions.js","assets/images/icon-sprite.js","utilities/FrontFunctions/IconSVG.js","components/PageActivationCompte/index.js","utilities/FrontFunctions/FormElements/SingleFileUploadModal.js","utilities/FrontFunctions/FormElements/SingleFileUpload.js","components/inc/Modal/CommentImageModal.js","components/AllPages/GraphQL/GetCurrentArticleReviews.js","components/AllPages/SectionComments.js","components/PageActiviteConseil/index.js","components/Modal/VideoModal.js","components/Obj/ObjRetour.js","components/PageArticle/index.js","components/PageBrands/index.js","components/PageChallengeBeneficiaires/index.js","data/const.js","components/Obj/ObjProgressBar.js","components/Modal/ModalProduitConcernes.js","components/ObjChallenge/ObjConditionChallenge.js","components/ObjChallenge/ObjChallengeDetail.js","components/Modal/DefaultModal.js","components/PageChallengeDetail/ObjAsideChallengeADeclarer.js","components/PageChallengeDetail/ObjAsideChallengeVerificationDeclaration.js","utilities/FrontFunctions/Provider/AnimatedProgressProvider.js","utilities/FrontFunctions/FormElements/FilterInput.js","components/PageChallengeDetail/ModalContentChallengeARepartir.js","components/PageChallengeDetail/ObjAsideChallengeARepartir.js","components/PageChallengeDetail/ObjAsideChallengeVerificationRepartition.js","components/PageChallengeDetail/index.js","components/ObjChallenge/ObjPushChallenge.js","components/PageChallenges/ObjAsideChallengeGains.js","components/PageChallenges/index.js","components/AllPages/ObjPushArticle.js","components/AllPages/ObjPushCustomFull.js","components/PageConcoursHome/index.js","utilities/FrontFunctions/AoxTrackingFunctions.js","components/PageContact/index.js","components/PageContactConnect/index.js","components/PageContent/index.js","components/PageError/index.js","components/PageEventBirthDay/index.js","components/ObjEvent/ObjEventDetail.js","components/PageEventDetail/index.js","components/Modal/ModalAjoutBeneficiaire.js","components/PageEventMyMembers/index.js","components/ObjEvent/ObjPushEvent.js","components/PageEventMyRegistrations/index.js","components/ObjEvent/ObjPushEventSession.js","components/inc/ObjAsideSliderBanner.js","components/PageEvents/index.js","components/PageFAQ/index.js","components/ObjExpertise/ObjSectionFormation.js","components/Modal/ModalFormationsFav.js","components/PageFormationExpertise/index.js","components/Modal/ModalMAJFormationsFav.js","components/PageFormationFavorites/index.js","components/PageHome/ObjBrandsCarouselHero.js","components/PageHome/ObjBrandHeroHome.js","components/PageHome/ObjBrandHighlightedHeroHome.js","components/PageHome/ObjNewsCarouselHeroHome.js","components/PageHome/ObjEntryHeroHome.js","components/PageHome/SectionHeroHome.js","components/PageHome/OverlayTutorialHome.js","components/Modal/PhoneMandatoryModal.js","components/Modal/InfosModalMAJ.js","components/Modal/SatisfactionFormModal.js","components/PageHome/index.js","components/PageHomeCAF/index.js","components/PageIndex/index.js","utilities/FrontFunctions/FormElements/PasswordToggle.js","components/PageInfoPerso/index.js","components/PageIngredient/index.js","components/PageIngredientList/index.js","components/PageListe/index.js","components/Modal/FacebookPostModal.js","components/PageListeFacebookPOST/index.js","components/PageMentionContent/index.js","components/PageMesPresences/ObjTabPresences.js","components/PageMesPresences/index.js","components/PageMonCompte/index.js","components/ObjExpertise/ObjExpertiseClassement.js","data/badges.js","components/ObjExpertise/ObjCanvasBadgeExpertise.js","components/Modal/ExpertiseBadgeModal.js","components/ObjExpertise/ObjExpertiseBadge.js","components/ObjExpertise/ObjExpertiseSectionSite.js","components/ObjExpertise/ObjProgressBarExpertise.js","components/ObjExpertise/ObjExpertiseSectionBrand.js","components/ObjExpertise/ObjExpertiseSectionSiteBefore.js","components/ObjExpertise/ObjExpertiseBadges.js","components/PageMonCompteExpertise/index.js","components/PageNouveauCompte/index.js","components/Modal/GalerieUploadModal.js","components/inc/Plugins/BeforeAfterSlider.js","components/Modal/GalerieDetailModal.js","components/PagePhotoContest/index.js","components/PageProduct/index.js","components/PageProductSegments/index.js","components/PageRanges/index.js","components/PageRecherche/index.js","components/PageResultContest/index.js","components/PageSegments/index.js","components/ProductRanges/index.js","components/ProductSegmentRoutines/index.js","components/SectionBadgeElite/index.js","components/SectionContest/index.js","components/SectionProductCarousel/index.js","components/SectionPushArticle/index.js","components/SectionWideCarousel/index.js","components/AllPages/MainFooter.js","components/AllPages/MainFooterLogin.js","components/AllPages/ObjHeaderSearch.js","components/AllPages/MainHeader.js","components/AllPages/MainHeaderLogin.js","components/AllPages/MainMeta.js","components/AllPages/ObjBackToTop.js","components/AllPages/ObjBigTitle.js","components/AllPages/ObjBreadcrumb.js","components/AllPages/ObjExpertiseBrand.js","components/AllPages/ObjPushCustomThumb.js","components/AllPages/ObjTitle.js","components/Connexion/ExpiredConfirmationLink.js","components/Connexion/Inscription.js","components/Modal/LoginCodeModal.js","components/Connexion/Login.js","components/Connexion/MotDePasse.js","components/Connexion/NouveauCompte.js","components/Connexion/NouveauMotDePasse.js","components/inc/ObjFormationDashboardHeader.js","components/inc/ObjPushThematiqueFormation.js","components/inc/ObjListPushsThematiqueFormation.js","components/inc/ObjPushCardFormation.js","components/inc/ObjTabsParcoursFormation.js","components/FormationsMarque.js","components/inc/Modal/VideoModalShorts.js","components/inc/ObjAGagnerHomeFormation.js","components/inc/ObjALaUneHomeFormation.js","components/inc/ObjBannerHeroComptoirDermato.js","components/inc/ObjContinuerLectureHomeComptoirDermato.js","components/inc/ObjDerniersAjoutsAside.js","components/inc/ObjDirectComptoirDermato.js","components/inc/ObjEssentielMinuteComptoirDermato.js","components/inc/ObjExpertisePointsAside.js","components/inc/ObjFavoriteFormationAside.js","components/inc/ObjListPushsThematiqueComptoirDermato.js","components/inc/ObjMenuThematiqueAside.js","components/inc/ObjMesFormationsFiltre.js","components/inc/ObjMonParcoursFormation.js","components/inc/ObjOutilsDownloadComptoirDermato.js","components/inc/ObjParcoursPersoHomeComptoirDermato.js","components/inc/ObjProductsRelatedAside.js","components/inc/ObjProduitsAssociesComptoirDermato.js","components/inc/ObjPushComptoirDermatoEspaceFormation.js","components/inc/ObjPushContactezNousQuestionFormation.js","components/inc/ObjTabsComptoirDermatoFormation.js","components/inc/ObjTabsHomeComptoirDermato.js","components/inc/ObjTabsHomeFormation.js","components/inc/SectionHeroComptoirDermatoCarousel.js","components/inc/SectionHeroFormationCarousel.js","components/Modal/DefaultModalAction.js","components/Modal/ExpertModal.js","components/Modal/VideoModalNoFS.js","components/PageBrandAv_Banner.js","components/PageBrandAv_Formations.js","components/PageBrandAv_Intro.js","components/PageBrandAv_TabsSegments.js","components/PageBrand_CarrouselBanners.js","components/PageBrand_CarrouselsPushs.js","components/PageBrand_TabsFormations.js","components/PageHome/SectionPushBrand.js","components/PageSegment.js","components/PageTheme.js","components/PageThemeAv.js","components/SectionPushContactEtDermato.js","components/SectionSocialsFormationFooter.js","temp/componentFactory.js","lib/SitecoreContextFactory.js","dataFetcher.js","assets/css/colors.js","assets/css/fonts.js","Layout.js","RouteHandler.js","AppRoot.js","index.js","i18n.js","lib/GraphQLClientFactory.js"],"names":["module","exports","ContentBlock","fields","Fragment","tag","className","field","heading","content","throttle","callback","interval","timer","last","now","Date","self","this","args","arguments","fn","apply","clearTimeout","setTimeout","matchHeight","selector","getMatchElt","document","querySelectorAll","arrayLength","length","heights","i","style","height","push","offsetHeight","tallest","Math","max","equalHeight","limit","lastIndex","nMax","nMin","indexMin","indexMax","Infinity","min","heightAuto","forEach","element","isMobile","window","innerWidth","isNotAtTop","scrollY","isOneScreenDown","innerHeight","scrollToTop","scrollDuration","cosParameter","scrollCount","oldTimestamp","performance","requestAnimationFrame","step","newTimestamp","PI","scrollTo","round","cos","formatDate","date","d","month","getMonth","day","getDate","year","getFullYear","join","isImage","type","fileReader","file","Promise","resolve","reject","filereader","FileReader","onload","result","onerror","readAsDataURL","sectionFullWidth","windowWidth","body","clientWidth","windowMargin","sectionBrandSelection","sectionBrandSelectionChild","querySelector","width","transform","sectionBrandSelectionChildHeight","clientHeight","ConditionalWrapper","condition","wrapper","children","CustomSelect","props","state","isLoading","options","placeholder","disabled","handleWindowResizeCustomSelect","bind","throttleWindowResizeCustomSelect","setState","Array","keys","map","value","label","addEventListener","undefined","defaultValue","defaultValueIndex","findIndex","setFieldValue","fieldName","removeEventListener","setFieldTouched","errors","touched","values","onChange","as","name","key","classNamePrefix","toString","onBlur","error","isDisabled","Component","isNotEmpty","sValue","GetStatusFromScore","score","isAppMobile","ReactNativeWebView","GetFriendlyUrl","oLink","sAbsoluteUrl","jss","href","sRelativeUrl","url","sFriendlyUrl","indexOf","replace","GetLogoList","id","image","require","ListProgressionBrands","m_oListProgressionBrands","oBrand","sCssClass","nIndexBrand","b","CssClass","sCssBodyClass","index","includes","urlToHost","config","sitecoreApiHost","getApiDatas","a","jsonApiDatas","axios","get","withCredentials","data","IsValid","stringify","JSON","Value","replaceAll","parse","console","log","Message","alert","postApiDatas","datas","resultApiDatas","post","queryString","headers","Accept","isDateValid","dateStr","isNaN","dayRemaining","sDate","dateNow","setHours","setMinutes","setSeconds","setMilliseconds","dateTo","ceil","getTime","dayFrom","dateProgression","sDateStart","sDateEnd","dateStart","dateEnd","strDateToFr","strDate","Intl","DateTimeFormat","format","strDateToFrLong","weekday","getStorageItem","localStorage","getItem","IconsSVG","avatar","viewBox","svgCode","avatar_edit","email","heartstroke","heart","heart_outline","heart_fill","dialog","phone","facebook","facebook_circle","instagram","youtube","download","tube","sun","moon","star","eye","eye_outline","share","arrowDown","importUpload","calendar","pin","clock","clock_outline","telecharger","userPlus","en_cours","is_done","search","email_open","arrow_left","arrow_right","clock_twelve_thirty","magic_wand","download_file","IconSVG","icon","dangerouslySetInnerHTML","__html","PageActivationCompte","serverError","serverErrorAccountActivate","serverErrorAccountActivateLabel","accountActivated","apiDatas","initDataOK","then","Postes","User","oCurrentItemFields","sitecoreContext","route","PageCAF","PageContact","CurrentUser","to","parameterValue","t","initialValues","civilite","gender","lastname","firstname","birthday","birthmonth","birthyear","address","adress","address_bis","adress2","postal_code","postalcode","city","poste","acceptNwl","acceptNotifications","securiteSociale","noSS","recaptcha","validationSchema","Yup","shape","required","matches","onSubmit","classList","add","res","recaptchaInfoPerso","execute","remove","handleSubmit","handleBlur","autoComplete","Salepoint","Code","Name","FrontOfficeUserPoste_Id","FrontOfficeUserPoste_Name","userkind","toUpperCase","htmlFor","IsChallenge","ref","sitekey","action","verifyCallback","recaptchaToken","recaptchaAutre","elementID","withTranslation","withSitecoreContext","customStyles","overlay","zIndex","backgroundColor","position","top","left","right","bottom","outline","Modal","setAppElement","SingleFileUploadModal","modalIsOpen","openModal","closeModal","onRef","previewThumb","previewThumbName","isOpen","onRequestClose","closeTimeoutMS","contentLabel","onClick","display","justifyContent","src","maxWidth","maxHeight","alt","SingleFileUpload","isHover","thumb","thumbName","thumbWeight","thumbType","defaultThumb","thumbSize","maxSize","sizeError","sizeErrorText","formatTypes","formatError","formatErrorText","loadingError","loadingErrorText","labelText","ctaCancelText","timeOutSimulation","handleFileChange","handleFileReset","destroy","drawThumb","handleCanvas","handleMouseEnterSingleFileUpload","handleMouseLeaveSingleFileUpload","canvasRef","React","createRef","inputRef","ctx","current","getContext","Image","srcMinSize","srcPosX","srcPosY","drawImage","e","currentFile","currentTarget","files","onUnload","size","onUpload","catch","onMouseEnter","onMouseLeave","defaultProps","CommentImageModal","CommentImage","myQuery","SectionComments","UrlCallLikes","sitecoreApiKey","UrlSendReview","UrlCallGraphQL","graphQLEndpoint","likeIsSubmitting","reviewToShow","reviewInterval","responseToShow","responseInterval","CurrentArticleReview","handleWindowResizeSectionArticle","throttleWindowResizeSectionArticle","bgComment","toggleCommentForm","setCommentServerError","showMoreReview","showMoreResponse","addNewComment","addNewResponse","CurrentArticleReviewIsFetch","CurrentArticleReviewFetchEnCours","dispatchEvent","Event","prevState","query","QUERY_GET_REVIEWS","variables","contextItem","err","list","item","formVisible","reviewList","fileValue","newItem","user","comment","commentImage","commentImageError","responseList","finally","UserCanAddReview","legalFileForContest","hideCommentContent","reviewsCount","mainfileupload","legal_checkbox","oneOf","actions","oFormData","FormData","Object","entries","elt","append","getElementById","method","location","reload","MainSingleFileUpload","reviews","slice","reviewItem","idrefReview","reviewsFOU","userimg","creationDate","dateValue","split","responseItem","smooth","offset","PageActiviteConseil","CurrentArticle","idref","getbrand","brandCssClass","VideoModal","videoAutomodal","videoUrl","playerVars","autoplay","videoAutoplay","vimeo","playerOptions","attributes","controls","ObjRetour","history","useHistory","goBack","PageArticle","handleButtonLike","openVideoModal","tabBtnLike","getElementsByClassName","CodeReturn","innerHTML","NewValue","currentuserproperty","CurrentArticleForRelatedPosts","settingsSliderArticle","slidesToShow","slidesToScroll","infinite","relatedPosts","targetItems","responsive","breakpoint","settings","likethispage","srcSet","media","pushItem","trainingPushPlayButton","boolValue","pageImagePush","pageTitle","likes","userCanAddReviews","PageBrands","BrandList","marqueListItem","logoBrandsPage","PageChallengeDetail","toggleManager","UserId","Manager","checked","toggleDeleted","Enable","TableHeader","handleSort","sortedField","sortDirection","header","sortable","TableRow","rowData","handleExpand","useState","isExpanded","setIsExpanded","Mail","RoleName","RoleCode","Id","ChallengeManager","defaultChecked","GainYearTotal","IsDeleted","formItem","Repartition_GainDate","Brand_Name","Challenge_Title","Repartition_ValueRaw","Table","tableData","setSortedField","setSortDirection","sortedTableData","sort","Membres","class","membre","activeMenuGain","for","CONST_challengeStateTypes","CONST_EventTypes","ObjProgressBar","pctProgress","ModalProduitConcernes","handleWindowResizeMainHeader","throttleWindowResizeMainHeader","produits","produit","Product_Name","Product_Ean","Product_Capicity","ObjConditionChallenge","participation","isManager","showProduct","Challenge","Challenge_NbUnity","Challenge_EvolutionPercent","Challenge_SalePointObjectiveNumber","Challenge_MaxGain","Challenge_EnableVariableMaxGain","Challenge_MaxMinGain","Conditions","ChallengeCondition_Name","ChallengeCondition_EnableVariableGain","Produits","ChallengeCondition_Id","ChallengeCondition_VariableGainMinPerUnity","ChallengeCondition_MaxGainPerUnity","ObjChallengeDetail","Challenge_MediaUrl","Brand","Brand_LogoUrl","Challenge_StartDate","Challenge_EndDate","Challenge_Description","activeDetailChallenge","DefaultModal","onClose","htmlContent","challenge","isChalengeVariable","setIsChalengeVariable","FilesUpload_N_0","setInitialValues","setValidationSchema","currentYear","previousYear","uploadList","setUploadList","apiError","setApiError","apiErrorMsg","setApiErrorMsg","setFormSubmitted","modalRef","useRef","useEffect","isNewChalengeVariable","newInitialValues","ChallengeId","Challenge_Id","FilesUpload_N1_0","newValidationSchema","handleAddUpload","isCurrentYear","newFieldName","newUploadList","formik","useFormik","enableReinitialize","formData","inputNameList","ExceptionMessage","maxLength","uploadItem","submitCount","isValid","ObjAsideChallengeVerificationDeclaration","Declaration","find","o","ValueCurrent","ValueAnterior","AnimatedProgressProvider","isAnimated","start","valueStart","update","valueEnd","FilterInput","handleReset","target","ModalContentChallengeARepartir","membres","usersSelected","onAdd","membresFiltered","setMembresFiltered","text","filter","mem","toLowerCase","toLocaleLowerCase","alreadySelected","IsRepartitable","ObjAsideChallengeARepartir","userList","gain","percent","isUserListVisible","userSelectedList","reste_repartir","Participation_Gain","montant_total","colorsList","cumulPercent","userItem","newuserSelectedList","refreshGraphPercent","reduce","sum","userIndex","inputGain","Number","sumRepartitionOthers","acc","validate","sumError","postDatas","val","startsWith","formSubmitted","ModalRepartitionTransmise","setErrors","circleRatio","strokeWidth","styles","root","path","stroke","borderColor","handleInput","handleDelete","showUsersList","handleSelect","hideUsersList","ObjAsideChallengeVerificationRepartition","formList","Repartitions","repartition","User_Name","gains_cumules","User_GainYearTotal","colors","oParams","DayRemainingToDeclare","Participation","Challenge_ToDeclareDate","DayRemainingToDispatch","Challenge_ToDispatchDate","ParticipationStateType_Code","css","ParticipationStateType_Name","ParticipationState_Code","ObjPushChallenge","pageChallengeDetail","active","Challenge_MediaAlt","ObjAsideChallengeGains","tabYears","isReady","showTab","setMaxHeight","handleKeyDown","goNextTab","goPrevTab","navTabs","blur","tabsList","prototype","call","currentTab","parentElement","currentIndex","setAttribute","focus","ctnTabs","role","tabIndex","aria-selected","aria-controls","switchTab","onFocus","handleFocus","aria-labelledby","PageChallenges","showMorePushs","pushsToShow","pushsInterval","filterStatut","statusCode","activeStatuts","newActiveStatuts","splice","filterChallenges","filterBrand","brandCode","activeBrands","newActiveBrands","filterReset","showMoreText","participationsFiltered","handleWindowScrollMainHeader","throttleWindowScrollMainHeader","Participations","modeMini","part","Brand_Code","States","statut","Brands","brand","ObjPushArticle","Moment","globalLocale","pushArticleItem","PushOnTitle","PushShowComment","PushCTAFull","pageImageHome","articleAuthor","articleDate","formattedDateValue","abstract","numberValue","commentItem","fromNow","ObjPushCustomFull","pushContent","darkMode","pushWidth","pushAlign","pushUrl","pushCTA","pushBeforeTitle","pushTitle","imageTitle","pushSubtitle","imageMobile","PageConcoursHome","pushsFullToShow","pushsFullInterval","pushsArticleToShow","pushsArticleInterval","$listItem","$tabItem","listItem","tabItem","oLstpushContest","oLstpushResult","Folder","LstPush","template","pushShowReviews","pushArticle","articles","showMorePushsArticle","showMorePushsFull","sUserId","dataLayer","textToSha256Text","message","msgBuffer","TextEncoder","encode","crypto","subtle","digest","hashBuffer","hashArray","from","Uint8Array","hashHex","padStart","reverseArray","arr","newArray","getGA4WindowDatas","dataUser","dataPageInfo","dataBreadCrumb","pageCategory","trackingCategory","ancestors","TemplateToPageCategory","hasOwnProperty","SourceSegment","SourceRange","SourceProduct","SourceBreadCrumbReverseAncestors","userkey","baseURI","codeAbbrege","oBreadCrumbItem","getGA4UserData","userData","property","getGA4PageData","pageData","getGA4EventData","eventData","addGA4SessionData","sessionStorage","setItem","trackGA4PageView","dataPageView","eventType","eventName","trackGA4","trackGA4Event","eventCategory","eventAction","eventLabel","dataEvent","PageDataMobile","screen_name","screen_class","postMessage","UrlContact","bPushTrackPageResult_Done","trackDatas","optionsSujet","bPushTrackPage_Done","trackData","codeSAP","marque","sujet","serverErrorMessage","recaptchaContact","handleClickSubmit","PageContactConnect","CurrentFOU","AccueilCaf","inscriptioncode","PageContent","PageError","itemId","script","createElement","async","initTsParticles","appendChild","tsParticles","defaultOptions","fpsLimit","detectRetina","emittersOptions","life","count","duration","rate","quantity","delay","particlesOptions","number","opacity","animation","enable","speed","startValue","move","gravity","drift","decay","direction","random","straight","outModes","default","rotate","tilt","roll","darken","wobble","distance","createTsParticles","color","load","emitters","particles","particlesColors","behavior","x","y","ObjEventDetail","activeSession","event","Sessions","eventSessionId","EventSession_Id","UserRegistered","at","onRegistration","ModalRegistrationDone","EventType_Code","ModalConfirmation","ActiveSession","DayRemaining","EventSession_StartDate","DataUser","Brand_CssClass","Event_MediaUrl","Event_MediaAlt","EventSession_IsHalfDay","EventType_Name","EventSession_EndDate","EventSession_StartHour","Place","EventPlace_City","Event_SubTitle","Event_Description","UrlConvocation","rel","registration","Registration","Phone","EventPlace_MediaUrl","EventPlace_MediaAlt","Event_ShowRules","EventSession_Rules","session","option","setActiveSession","PageEventDetail","idSession","scDatas","Event_Title","InfosModalMAJ","InvitationServerError","InvitationServerErrorMessage","ModalInvitationConfirm","recaptchaInvitation","isRecaptchaLoaded","errorMessage","PageEventMyMembers","selectedUserToDelete","modalConfirmDeleteText","ModalConfirmDelete","userDeleted","ModalAjoutBeneficiaire","ModalInvitation","validateOnChange","validateOnBlur","ObjPushEvent","pageEventDetail","activeStartDate","activeEndDate","EventFinished","SessionsInfos","EventSession_Canceled","Event_Id","PageEventMyRegistrations","Events","ObjPushEventSession","eventSession","ObjAsideSliderBanner","pushBannerList","hasLinkBanner","linkBanner","visuelBanner","altTextBanner","slider","innerSlider","clickable","autoplaySpeed","swipeToSlide","onSwipe","arrows","dots","dotsClass","appendDots","itemSlider","altText","PageEvents","filterFormations","filterType","typeCode","newActiveTypes","activeTypes","filterCity","selectedCity","existing","citiesFiltered","filterDateBegin","filterDateEnd","dDateEnd","setDate","InputEventStartDate","InputEventEndDate","eventsFiltered","activeApiDatas","Cities","getUniqueCitiesWithData","citiesSet","Set","cityName","EventTypes","activeCity","flatMap","e1","e2","PageFAQ","toggleQuestion","categoryIndex","questionIndex","openedQuestions","Content","category","Title","Questions","questionItem","Desc","ObjSectionFormation","handleRunFormation","scDataTraining","trainingUrl","trainingDateAvailable","apiDataTraining","bTrainingNotAvailable","bTrainingDone","UserTraining_Completed","bTrainingInProgress","UserTraining_InProgress","bDoTraining","bIsNew","sDateTraining","moment","mini","pageImage","Training_NbViews","isFavorite","handleButtonFav","Training_ItemTraining_Id","ModalMAJFormationsFav","handleOKButtonClick","modalTitle","modalText","modalCtaText","PageFormationExpertise","isInitialised","hideLevel2","showLevel2","refreshTab","bPushTrackPage0_Done","bPushTrackPage1_Done","CurrentTraining","throttleWindowResizeTabsListFormation","$subTabItemLevel1","$subTabItemLevel2","subTabItemLevel2","buttonId","scroller","newApiDatas","indexInTrainingFavorites","TrainingsFavorites","ModalFormationsFav","scDataTrainings","Trainings","assign","UserBrandTrainings","some","sliderSettings","MisEnAvant","UserBrandExpertise","Score","UserTrainingsOnLine_Completed","Brand_NbTrainingsOnLine","MiniParcours","getSectionFormation","TrainingSegment","SegmentItem","data-id","deleteFavori","handleDeleteFavori","PageFormationFavorites","selectedFormationId","scDatasBrandTrainings","scDatasBrands","Accueil","Formations","brandIndex","Segments","segment","concat","scDatasBrandTrainingsFavorite","ObjBrandsCarouselHero","PageAutresMarques","lazyLoad","fade","brandItem","logoHome","ObjBrandHeroHome","throttleWindowResizeBrandSelection","ObjBrandHighlightedHeroHome","scFields","ObjNewsCarouselHeroHome","Banners","BannerItem","bannerLink","bannerImageMobile","bannerImage","ObjEntryHeroHome","Event_NbRegistered","Participation_NbToDeclare","Participation_NbToDisPatch","PageExpertise","SectionHeroHome","OverlayTutorialHome","closeNoMore","throttleWindowScrollBackToTop","targetId","1","2","3","4","5","targetElement","finalScrollPosition","getBoundingClientRect","nextStepTutorial","prevStepTutorial","PhoneMandatoryModal","modalUrlInfosPeros","SatisfactionFormModal","formCode","SatisfactionForm","Url","closeNoMoreModal","PageHome","IsReadyApiDatas","openTutorialHome","isOpenSomething","needphone","needcontactinformation","IsSatisfaction_Form","PageInfoPerso","PageHomeCAF","refreshCarouselHeight","handleWindowResizeWideCarousel","throttleWindowResizeWideCarousel","handleWindowResizeBrandSelection","wideCarousel","slickList","carouselHeight","DataForHomeCAF","AccueilCafMarques","logoSliderMobile","logoSlider","logo","pauseOnHover","marqueListCarouselItem","getFirstBrandBanners","bannerItem","styleBrand","targetItem","align","bannerid","ontitle","title","posttitle","link","PageIndex","LstPageList","PageList","PasswordToggle","visible","eyeMode","level","minCharacters","maxCharacters","regexNumeric","regexLowerCase","regexUpperCase","regexSpecialCharacters","strengthLevel","handleChangePassword","handlePasswordVisible","inputValue","test","aria-pressed","cx","cy","rx","ry","data-level","serverErrorUpdate","serverErrorUpdatePro","serverErrorChangePassword","serverErrorUpdatePicture","stepModalDeleteAccount","submitUploadVisible","serverErrorUpdateLabel","serverErrorUpdateProLabel","serverErrorChangePasswordLabel","UrlInfosPerso_ChangePassword","UrlInfosPerso_UpdatePicture","UrlInfosPerso_Delete","currentSalePoint","handleClickDelete","datakey","serverErrorDelete","serverErrorDeleteLabel","SalePointIsChallenge","oldpassword","password","passwordconfirm","parent","resetForm","MainPasswordToggle","ModalChangePassword","recaptchaPassword","fileupload","serverErrorUpdatePictureLabel","SingleFileUploadAvatar","InfosPerso_UserImg","recaptchaAvatar","serverErrorMessageUpdatePicture","salepoint","PosteId","acceptNewsLetter","codeSocialSecurity","noSocialSecurity","UpdateConfirm","dataResult","SalePoint","SalePointID","ModalDeleteAccount","PageIngredient","CurrentIngredient","elem","PageIngredientList","expandOpened","toggleExpandIngredients","containerExpandIngredients","wrapperExpandIngredients","expandHeight","oIngredientItem","urlIngredient","LstIngredientsGroup","LstIngredients","r","group","LstIngredientsGroupArray","alpha","activeClass","spy","categoryItem","ingredientItem","pageSubTitle","getIngredientUrlTarget","getIngredientUrl","PageListe","articleItem","open","pageLink","videoOnly","CurrentPageList","FirstArticles","handleClickPush","Categories","oCurrentItem","pushPlayButton","FacebookPostModal","ctnImageHeight","handleWindowResizeFacebookPostModal","throttleWindowResizeFacebookPostModal","handleCopyText","handleCopyImage","ctnImage","fetch","response","blob","navigator","clipboard","write","ClipboardItem","screenShot","pOSTImagePopin","writeText","pOSTTitle","pOSTTextLong","onLoad","numberOfViews","numberOfShares","PageListeFacebookPOST","ListFacebookPOST","itemPOST","pOSTImagePush","pOSTTextShort","PageMentionContent","ObjTabPresences","openedBrand","toggleAccordion","years","yearItem","indexYearItem","brands","indexBrandItem","cssClass","linkPdf","presences","presenceItem","presenceItemIndex","hour","PageMesPresences","PageMonCompte","throttleWindowResizeSectionCompte","oUser","oListProgressionBrands","oConcatListProgressionBrands","oDetailsBrand","Label","AllTrainingExpertCount","TrainingDoCount","ExpertPourcentage","PageFormationUrl","Status","addBrand","ConvertToListProgressionBrands","listprogressionbrands","oListExpertise","expertiselrp","expertisecerave","expertisevichy","expertiseskinceuticals","expertisebiotherm","levelexpert","buildStyles","rotation","oProgressionBrand","experteItem","ObjExpertiseClassement","ranking","newRanking","Rank","indexInsert","FrontOfficeUser_Id","rank","Evolution_Rank","FrontOfficeUser_PhotoUrl","FrontOfficeUser_FirstName","caf","modelColor1","modelColor2","overlayColor1","overlayColor2","gold","silver","bronze","lrp","cerave","vichy","skinc","biotherm","sciencemd","badges","model","theme","imageDisabled","ObjCanvasBadgeExpertise","badge","newBadge","badgeModel","canvas","renderer","THREE","antialias","camera","set","scene","RGBELoader","roomHdr","mapping","manager","GLTFLoader","Badge_Type","gltf","metalMaterialOptions","envMap","envMapIntensity","roughness","metalness","ior","reflectivity","mateMaterialOptions","traverse","obj","material","setHex","Badge_Theme","getObjectByName","textureImage","side","flipY","colorSpace","scale","anime","targets","z","easing","loop","render","domElement","pixelRatio","devicePixelRatio","needResize","setSize","resizeRendererToDisplaySize","aspect","updateProjectionMatrix","obj_canvas","paddingBottom","ExpertiseBadgeModal","handleClose","userBadge","badgeDataTheme","bodyOpenClassName","Badge_Title","Badge_Description","UserRewardAction_Points","ObjExpertiseBadge","Badge_Id","ObjExpertiseSectionSite","userBadges","UserBadge_Badge_Id","ObjProgressBarExpertise","stepstotal","ObjExpertiseSectionBrand","brandId","preventDefault","BrandTrainingPage","handleLinkFormation","Brand_Id","ObjExpertiseSectionSiteBefore","brandExpertise","ObjExpertiseBadges","categories","BadgeCategory_Label","BadgeCategory_Id","subindex","PageMonCompteExpertise","UserSiteExpertise","RankingSite","Badges","Badge_Brand_Id","UserBadges","userBrand","RankingBrand","RankingExpertise","UserSiteExpertise2024","RankingSite2024","UserBadges2024","UserBrandExpertise2024","BadgesCategories","PageNouveauCompte","redirect","logoList","oParam","prt","promo_checkbox","PasswordResetToken","recaptchaNouveauMotDePasse","logoItem","GalerieUploadModal","soloValues","fileupload1","rgpd_checkbox","duoValues","fileupload2","soloSchema","duoSchema","soloMode","BeforeAfterSlider","maskWidth","inputWidth","getBaSliderWidth","handleWindowResizeBeforeAfterSlider","throttleWindowResizeBeforeAfterSlider","sliderThumbWidth","objBaSlider","offsetWidth","onImageLoaded","imageBefore","imageParams","w","h","imageAfter","handleRangeChange","imageBeforeAlt","imageAfterAlt","GalerieDetailModal","cguExpanded","handleWindowResizeGalerieDetailModal","throttleWindowResizeGalerieDetailModal","oLstLikes","ReviewItem","image2","likeit","toggleCGU","PagePhotoContest","pushCustomFull","sMode","galerieUploadModal1","galerieUploadModal2","pushGalerieItem","PageProduct","TrainingItem","RelatedTrainings","trainingPush","pushTrainingItem","PageProductSegments","LstSousSegment","bodyAttributes","Helmet","peek","sClassForPage","rangeItem","titleSegment","productsSegment","productItem","pageImageSmall","PageRanges","LstGammes","catalogueItem","PageRecherche","fetchData","prevProps","hasResult","subItem","BrandLogoUrl","PageResultContest","GetWinners","resultatItem","resultGift","resultTitle","resultSubTitle","resultWinner","PageSegments","LstSegments","LstRoutines","routineItem","pageTitlePush","PageProductRanges","LstProduits","ProductSegmentRoutines","handleWindowResizeRoutineList","throttleWindowResizeRoutineList","Routines","productRoutine","titleRoutine","textRoutine","morningRoutine","eveningRoutine","SectionBadgeElite","SectionContest","SectionProductCarousel","CurrentProduct","complementaryProduct","SectionPushArticle","SectionWideCarousel","FolderContentForPage","FolderBanners","MainFooter","loading","MainNavCaf","MainNavCafExternal","navCompte","SecondNavMobile","mainNavFooter","navMarqueItem","destination","mainNavFooterItem","isChallenge","cSSClass","navCompteItem","secondNavFooterItem","MainFooterLogin","ObjHeaderSearch","setValue","setVisible","pageRecherche","onKeyDown","MainHeader","marqueIndex","logoIndex","dataLevel","dataId","dataLabel","labelMenuMobile","SecondNavCaf","userName","percentExpert","serversuccessLogOut","UrlLogOut","apiDatasUserBadgesNotDisplayed","newBadgeFade","toggleMenuMobile","handleNextNavMobile","handlePrevNavMobile","toggleHeaderSearch","handleLogOut","handleOpenModalBadge","bPushDataLayerUserId_Done","CurrentPage","GetBreadCrumb","contains","resultDatas","hasBadgeToDisplay","ModalBadgeIndex","toggle","headerSearchVisible","getAttribute","GetAncesor","PushDataLayerUserId","endsWith","isExperienceEditorActive","pageState","iCurrentIndexMenu","sClassName","SubMenu","m","MainNavCafItem","hasChildren","SubMenuItem","isauthenticated","isAuthenticated","username","roleCode","userscore","highlighting","data-label","SecondNavMobileItem","MainHeaderLogin","MetaSitecore","regex","charset","data-domain-script","language","ObjBackToTop","isVisible","handleWindowScrollBackToTop","handleBackToTop","ObjBigTitle","ObjBreadcrumb","iBreadCrumbLenght","oBreadCrumbReverse","ObjExpertiseBrand","pourcentage","levelexpertanciennete","ObjPushCustomThumb","ObjTitle","ExpiredConfirmationLink","Inscription","initPdvOK","serverErrorRegistration","UrlRegister_Step2","salePoint","paramMail","code_client","resCheckSalePointFromCode","PageLogin","SalePointLabel","SalePointCode","emailconfirm","serverErrorMessageRegistration","recaptchaInscription","LoginCodeModal","Login","GetJwtUrlWithEmail","jwt","loginAutomatically","jwtInfos","checkRecaptcha","EncValue","encvalue","serverErrorConnection","serverErrorConnectionLabel","JwtUrl","serversuccessConnection","serverRedirect","IsAuthenticated","GoTo","ModalOldUser","recaptchaConnection","UrlRegister_Step1","encValueParam","serversuccessRegistration","loadReCaptcha","encToken","qual_token","breadcrumb","resultTracked","timerCtrlRecaptcha","PageInscription","PageRequestPassword","serversuccessRegister","json","MotDePasse","recaptchaMotDePasse","NouveauCompte","redirectExpiredToken","NewAccountToken","nat","ErrorExpiredToken","PageExpiredConfirmation","NouveauMotDePasse","ObjFormationDashboardHeader","datasExpertise","ObjPushThematiqueFormation","datasTheme","formationsTheme","ObjListPushsThematiqueFormation","centerMode","datasThemes","ObjPushCardFormation","datasTraining","typeofPush","isPlayerCase","nbDayFrom","Training_Date_Available","UserTraining","Training_Image_Url","Training_Title","Training_Url","UserTraining_Score","Training_Duration","Training_Subtitle","Training_IsFavorite","ObjTabsParcoursFormation","toggleTab","toggleState","nbTabs","datasParcours","titleTabs","Parcours_Title","applyEqualHeight","datasParcour","datasFind","newDatas","datasTrainings","sliderRef","centerPadding","settingsSmallSlider","variableWidth","tab","Parcours_Subtitle","FormationsMarque","pageDatas","Parcours","ListThemeFolder","ListTheme","VideoModalShorts","ObjAGagnerHomeFormation","AGagnerItems","scDatasPushs","AGagnerItemsItem","visuel","cta","ObjALaUneHomeFormation","scDatasBrandName","ALaUneItemsItem","ribbon","desc","ObjBannerHeroComptoirDermato","dataBanners","dataBanner","ObjContinuerLectureHomeComptoirDermato","ObjDerniersAjoutsAside","ObjDirectComptoirDermato","dataType","datasComptoir","ObjEssentielMinuteComptoirDermato","datasEssentielle","ObjExpertisePointsAside","ObjFavoriteFormationAside","favoriteTrainings","ObjListPushsThematiqueComptoirDermato","ObjMenuThematiqueAside","themeId","ObjMesFormationsFiltre","dataThemeTitle","ObjMonParcoursFormation","ObjOutilsDownloadComptoirDermato","datasOutils","OutilsDownloadItem","pageSubtitle","ObjParcoursPersoHomeComptoirDermato","ObjProductsRelatedAside","datasProduits","datasProduct","ObjProduitsAssociesComptoirDermato","ObjPushComptoirDermatoEspaceFormation","datasPage","ObjPushContactezNousQuestionFormation","ObjTabsComptoirDermatoFormation","TrainingsInProgress","TrainingsFavorite","TrainingsMostView","ObjTabsHomeComptoirDermato","datasSegments","dataSegment","ObjTabsHomeFormation","datasPageFormations","SectionHeroComptoirDermatoCarousel","handleWindowResizeheroCarousel","throttleWindowResizeheroCarousel","heroCarousel","SectionHeroFormationCarousel","DefaultModalAction","handleAction","titleText","mainText","actionText","ExpertModal","progressValue","globalStatus","VideoModalNoFS","videoTitle","PageBrandAv_Banner","ListContentForPage","ListFolderBanners","ListBanners","PageBrandAv_Formations","params","datasScParcours1","ListParcoursFolder","ListParcours","Parcours1","PageBrandAv_Intro","pageText","PageBrandAv_TabsSegments","ListSegmentFolder","ListSegment","PageBrand_CarrouselBanners","PageBrand_CarrouselsPushs","ListFolderPushsALaUne","ListPushs","ListFolderPushsAGagner","PageBrand_TabsFormations","PageFormations","SectionPushBrand","PageSegment","ListBrand","TrainingsMostRecent","PageTheme","ThemeFormations","ThemeAutresFormations","unshift","scDatasComptoir","produitsAssocies","PageThemeAv","ThemeProduitsAssocies","lEssentielle","nosOutils","SectionPushContactEtDermato","SectionSocialsFormationFooter","ItemsSocial","oFacebookUrl","sFacebookUrl","oInstagramUrl","sInstagramUrl","oYoutubeUrl","sYoutubeUrl","components","Map","componentFactory","componentName","PageChallengeBeneficiaires","PageEventBirthDay","ProductRanges","GetCurrentArticleReviews","MainMeta","ObjAsideChallengeADeclarer","SitecoreContextFactory","dataFetcher","setStyleColors","main","col_rgba","styleColors","styleColorsContent","head","setStyleFonts","light","regular","bold","styleFonts","styleFontsContent","Layout","isNotTemplatewithoutCookies","templateId","rendering","ssrInitialState","RouteHandler","notFound","accessDenied","routeData","defaultLanguage","sitecore","setSitecoreContext","context","componentIsMounted","languageIsChanging","updateLanguage","updateRouteData","sitecoreRoutePath","match","sitecoreRoute","fetchOptions","layoutServiceConfig","host","querystringParams","sc_lang","sc_apikey","fetcher","dataApi","fetchRouteData","status","getRouteData","lang","newLanguage","i18n","changeLanguage","forceUpdate","previousProps","existingRoute","newRoute","routePatterns","AppRoot","Router","graphQLClient","routeRenderFunction","client","contextFactory","routePattern","renderFunction","ReactDOM","initLanguage","__JSS_STATE__","ssrRawJson","hydrate","dictionary","initialGraphQLState","APOLLO_STATE","endpoint","ssr","initialCacheState","createPersistedQueryLink","BatchHttpLink","uri","credentials","cache","InMemoryCache","fragmentMatcher","IntrospectionFragmentMatcher","introspectionQueryResultData","ApolloClient","ssrMode","ssrForceFetchDelay","restore","GraphQLClientFactory","debug","lng","fallbackLng","useCookie","interpolation","escapeValue","isInitialized","addResourceBundle","use","initReactI18next","init","dictionaryServicePath","jssAppName","backend","loadPath","parsedData","phrases","fetchBackend","rootElement","pathname","BrowserRouter"],"mappings":"4GAGAA,EAAOC,QAAU,CACf,eAAkB,uCAClB,gBAAmB,uDACnB,WAAc,eACd,gBAAmB,QACnB,oBAAuB,oBACvB,gBAAmB,yH,+ECTrBD,EAAOC,QAAU,ssM,0BCAjBD,EAAOC,QAAU,ktB,gBCAjBD,EAAOC,QAAU,IAA0B,uC,6JCA3CD,EAAOC,QAAU,m7Y,gBCAjBD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,4D,gBCA3CD,EAAOC,QAAU,IAA0B,2D,mFCA3CD,EAAOC,QAAU,+zO,gBCAjBD,EAAOC,QAAU,IAA0B,oD,iBCA3CD,EAAOC,QAAU,IAA0B,6C,cCA3CD,EAAOC,QAAU,kwF,whFCAjBD,EAAOC,QAAU,s3J,cCAjBD,EAAOC,QAAU,02Z,gBCAjBD,EAAOC,QAAU,IAA0B,gD,cCA3CD,EAAOC,QAAU,k/I,cCAjBD,EAAOC,QAAU,83F,cCAjBD,EAAOC,QAAU,0jT,cCAjBD,EAAOC,QAAU,suI,gBCAjBD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,iD,4FCA3CD,EAAOC,QAAU,IAA0B,6C,kCCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,cCA3CD,EAAOC,QAAU,svX,cCAjBD,EAAOC,QAAU,shW,cCAjBD,EAAOC,QAAU,8jV,cCAjBD,EAAOC,QAAU,0qO,cCAjBD,EAAOC,QAAU,06P,gBCAjBD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,6D,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,4D,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,uD,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,6D,cCA3CD,EAAOC,QAAU,89U,cCAjBD,EAAOC,QAAU,0xF,gBCAjBD,EAAOC,QAAU,IAA0B,iE,cCA3CD,EAAOC,QAAU,suK,gBCAjBD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,oE,cCA3CD,EAAOC,QAAU,85K,gBCAjBD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,iE,cCA3CD,EAAOC,QAAU,8gK,gBCAjBD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,2E,cCA3CD,EAAOC,QAAU,81L,gBCAjBD,EAAOC,QAAU,IAA0B,uD,gBCA3CD,EAAOC,QAAU,IAA0B,kE,cCA3CD,EAAOC,QAAU,0+K,gBCAjBD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,mE,cCA3CD,EAAOC,QAAU,krK,gBCAjBD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,0E,cCA3CD,EAAOC,QAAU,kjL,gBCAjBD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,kE,gBCA3CD,EAAOC,QAAU,IAA0B,4D,gBCA3CD,EAAOC,QAAU,IAA0B,qE,cCA3CD,EAAOC,QAAU,8wW,cCAjBD,EAAOC,QAAU,shY,gBCAjBD,EAAOC,QAAU,IAA0B,2D,cCA3CD,EAAOC,QAAU,k8V,cCAjBD,EAAOC,QAAU,s9Y,cCAjBD,EAAOC,QAAU,s+Z,gBCAjBD,EAAOC,QAAU,IAA0B,+D,cCA3CD,EAAOC,QAAU,86Y,gBCAjBD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,6D,gBCA3CD,EAAOC,QAAU,IAA0B,sE,cCA3CD,EAAOC,QAAU,8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","file":"static/js/main.02447fbc.chunk.js","sourcesContent":["/* 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\": \"D4FE82C8-EE88-4C6E-98D4-D6E6E06EF37A\",\n \"sitecoreApiHost\": \"https://partneracademy.lorealdermatologicalbeauty.fr\",\n \"jssAppName\": \"formationcaf\",\n \"defaultLanguage\": \"fr-FR\",\n \"graphQLEndpointPath\": \"/api/formationcaf\",\n \"graphQLEndpoint\": \"https://partneracademy.lorealdermatologicalbeauty.fr/api/formationcaf?sc_apikey=D4FE82C8-EE88-4C6E-98D4-D6E6E06EF37A\"\n};","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAABz0lEQVR4Xr2TTUiUURRAz4gjEiGpORFWiEAQINS+FIQEWgmuRAJqU1BtJEyBHCcgCoGAJnQzCAUjqFFZGQgBWq0EFRX/YH4aPmUGVBkc05yfr4H5eF2k97CNZ3fg8C6Xy8M+IscRzr0NDg5PZw6HxUjg/bOpHMDl9ptIcNlIvE+U3H+JpAjJgOrA/1wfbnRI84W14esNaXv92nAECR/SmjCxANeCvRdwCIU0YXiHK+OtD2eeni14dlUTrkNnKVR0zXZXAWBpwm3KGgDw+GYelQNbCMSV+hn4K9HHr/Bqbj3GD1uQICBMjj7HRwRj1GpGWydK+sT7Za55zehtDzV7yhoojWpGu91E/TiMTuRdcxnbhp6pglj3IGdrwl8p2L3+DWCl0YL9lCa0duDM1fpbo1/a6zyXIBvVbO2F6iHbfx5Od2e+X4Q7/9z6a8dJaMrLwdLCbt7boOTBp9zhcLMZAFp+Ome5XfDGmBM4n+t30yQFKttu1Lpi42/WHa+bPCV/oa8HBW7XgbC7fWLr+AsEadkRWBZhMImWdECE7zDwOaPC5AoGInEVrm1iYD+iwlgOE6sqjGBk6f/DGEZCWbUMRtYSTpiOYyQVdsLkFmYWgT/oT+3BnSumOwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/v_logo-pa.e89c200c.svg\";","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAcHBwcHBwgJCQgLDAsMCxAPDg4PEBkSExITEhklFxsXFxsXJSEoIR4hKCE7LykpLztFOjc6RVNKSlNpY2mJibgBBwcHBwcHCAkJCAsMCwwLEA8ODg8QGRITEhMSGSUXGxcXGxclISghHiEoITsvKSkvO0U6NzpFU0pKU2ljaYmJuP/CABEIAVIBfAMBIgACEQEDEQH/xAA0AAACAwEBAQAAAAAAAAAAAAAEBQIDBgEABwEAAgMBAQEAAAAAAAAAAAAAAgMBBAUABgf/2gAMAwEAAhADEAAAAMxOFnu/mYIh8Qt+Y+LnPoFYicCwVhQF8TxPQaHA3ynD397wSny+as7LSipiePkSwJndkAeG1yQnio80OB3TFbxpZxr5Mq+XTeR5bVVDO3oUecUgSmLGDBGkXYQJuMahaFWw9BrLwCXWPEDX8LCQvOqXj1Vw31Eql2uyqtU2zk6+Cj0fKO4wI5lc44M1+cRGI4TfGqRpl31kRGomQtB61pFo7GpqqyFS5HVbFqL7xoL7qbWYfy+zN9GjFZiuojdnC/50eu2POpl3nGgu5I9PtnLJV3nucMIWxg6qyOAQ5Ft4cLQfWPL5FeEqTapNSzvXXWKJR4b+vbFHcLlBUXB4HCMDiMz0YCrQoDABqpYWs1iGbVV1UFlIGnhFj18apvFcF436pZ1C2tZbClpX6T54khcBKpcHuFtlk7bUUkxLFgnGERZRSyqE1lppMiITdcl4/j5KsJ6NAOQZgDSJLucLf4lg3ulzOpJVLONO8vchnLaw7V2jtdROkdimruXz0/NuPJew8teSOxNlkvVPQL0TfM+f9ndpsdq9LAf1D+1vIjAP4iOWkzBIBpXX3CDsvJExem3LYs4zqkRL7LOiicyhKqDSKbIHTe9CoJze1CEoug6jUqvtHSKmrJDiLg7BYytBNq6U0rxOUKOFev4aqJ9bqgQ5auYPpV0+S+pnDhaurayNenwl2hpGmAbeg8l9CvzbN2bEK+LssMpIQ+20YZ8tbndqGxLnQgFBA0vRTNTs3PFLfpop5VbrSKyEiWUiOJU17T0ptuMvp6K2w6sDqsjbBRt5xbpqT1Dawtq8i/hlQlcFtMl0uaNIUVYvl/ohGz+ZaZZt8QxQ2VSsDss1te4zbvX8UxtFvtYycqN9jQvtmSoxrC7VuU2EEzywDQJzE0nxajjaRbWtr1WgROqr2QDG1lm3L7a1zQ3CkZu12FVfBC1dJtF3YETV1eK2wLEZyM12l5p0yzhqr5eR0GfluAWn3YHuFzE5Ki3cDGu1WuJEMINE9UOtXxN19ZN3IU+mbZvBkl9GRuGBQUC6jY6gFoqYs2xTEgf25yxbNAEFd1e80C2K58aSk2WVo4tLQ8MHF2XfKq+F33jzVeOhRIHqV2hBbSW3kRYssePotYWtrncf2Gqz5gGb6BHV2i7StZrtZZzWbXh+n4yBvbzPMtE198X3U3VOdDL49DshZYsyM+WtcA0J9aHbvX8nl/Lxr+lfwQg1TmrboQpD5+sByVljIqM4cm1G66dfTpnPgFQKXA1BAtE9moCPMJtNZl26bJ9wfA6eds4sZgEwG27+fb7V8u/ZgNbmGTAviNPMxOhpZy/l/jXRdZfEytsvr20PTfNUpOqNkPEdKQ4W62QHKsji3I6i6rmKVE+NW0qOHM5BpFM620TZQQq5UOQJFbko9JQqFwgsURlxqswzyswDJ90xsRerWpjy4Y27zBbW3h7M9aw0vNMp02o0MbxZ3azDIic7jbls4ltcjgDHHk8iA0laVyGNy7wrY9WdGWlqmyJK6LKVveq/VLZBILIYtJqvVq3T5xNyse+MVoS92OV5/Q5+xlhKnABDjFrjP5Pue8q4uyR2NndPYI9i/EdnQ7e84dcqK5uM4WNuVauw8mxZ6quCv5TMwnbRdCzCqipoVylOV1dtnBVXTKW4Uku5NuIrqupaQtYWSgq0ckdK2MRgaTWEF1dp5Jd1e9EzUtrUjk+JGNyu0xuZ7MO8c+tp2+n4h0+3y2vu+VNFmOaa7Ke8SgSwbfzK4ehXuyj6+YqtuIJQU7h1icYmLis1vBOJU4eDGSyEsunRSRyBmluy5dew7FFq4GZyY3rV4EVXRet9SpFhAt8dcKTc4Q+NhhbkMT9Dw2f6JKcIVV2rSwW5o2GhV6HQ8wHWeHx0c7BF6Izyrf8APZQZwA2KHK10M2esF5UFjioJTWzoU0y0CYQXXCZo5Lk+i62jsolaL1Un9EnCj7l90MsAbUhcVdvjS0elDyNLE9CwaTMMi2HZTCfU/nde5hyRCKHorX+c0bEbt/nDNDAYKlianp6y7OuShiHSi2vPMB0XK2q/bZt1fyDAZivosKB0texfRmPZPodgYgcXsthatsbSPsHuKtyiysAj3skHKyv0RfIWwebEryAuxHtrr3BlBOOqarIvFlp0fqT3B63UwLfnm4wPTh7aZ5fppaDO6A17oeau3nKQqvef9Mw0eN0F2mfnrw2pGHKEo3j3uWO18rQ8SS08ZlnC01O8DZ43H2imiXzAZVrod2ob4NtYqafiHl7H0Ms7xRaAVCJVv6VjhWcFtY5uL6Oghn417RWVapkX4XgWLs7PVfPHV7L0WPJTECP3eJ0PO0bKO3K+V4jj5G1U79bgW7uvA8uau4SNIy0codPt4kPGw08UMJ11Tc7Nmv8AMeuXBM6kPHIsviVx8jmRfNnbu+VSjaEQqmSGOWY/qrCgbgY8aJ9RZoAQdRtY6RbpFNbSyt7rT0tfLs9bO7m4xNvs5Yp4Gtivr6fHazUBLg/14dlVjTOotNJrSVMWj8psos9CXcU8z5j1OYJ4Waj4lI4S6ADIDN0qex6EzshZBFMwGPMvKT36eO+HJ5fwcPnNkjy/RpSnLAHDbJfoLVDyxxlDqqU1PqWqw3Pzdwt32AxBpo4FLq6GL+QYz7JgigLWL3VdpPq6VGjyWpzbojfXdMqhmBNiuo63viVdzgODXnhuJBq2R3U7LdRMYSXjHgsCVyu7pZ3K7RMsxcYatD5PWs49EmYac9a2YsqfLDFPidtgBJQRUSB0FgsmB9Q1eUOWbZXlM50aXMraih0VlvDO07ly1GSoZVkdF5pQsGY6YS1QQTM9BVCtuz2GF0WYYPujWKMkiJqme6zMEsmLtKijIGuV8F3olox6NvAKML+z3dHkXjlai8K6Yjh9wg7sFZYHPd0CXaz2iQOsKPLa6fFBNddcTPkJzF941oEdeuuA3J+XYczbiK7XVDJVzibbKLO5ZmNjmzlUZYWl3iaYDDSK6ESZWCOUPa07KYXTmOEl8pmLL4VDdFbTPHNVty0zAxMWGAd2JVNFUw33GM2y2E4T6JjWLx3O1MXb2nolbZTZE3TotGbSwSFMNusZNXCfvSBtvvQcrfe7rs973Stn7wO9H3uXHnvdNdfvTHDPe7qw/eju3e8BxD96YDO95gaph7xdaH7w9ilXvGOh3HvAR+N94xyA3vMCPvejpT94Zsu94S7P3lm6ae8Yf//EAB8QAAMBAQADAQEBAQAAAAAAAAECAwQABRESExQQIP/aAAgBAQABAgBUKVT8oxSJlSdJtL8vyMvyWSz+FmshAR/EQEPwMvz/ADaX4GAgsRKcjKsP5RnMWh+CwaDQEDD+dXLUKJJF5jQvx/3188GDIU5QEE/j0ePevXoL8JAx+Ek49hDB4lfSghx/npH+iZcpLtR3Yk+xwDcxBUy6YmoUkt74KVI9DpokjH8FnaTJLkSkaxKAHm4969TPvkIcuzlmJIK8Ocnhy9Hp9NmoacOAHfK5hjpmhOcjJ0VnFkkJCnVZh6bj3o97Uhvan7Llvok8OUEseHL0jNvsGOc52miTzTySyHPqnLpd8XRnFavNkpW1ro6zpM8WZw35Caz/AD+Pj8jP8zJM/wDOcxynOIfkvI4fOIB+r0BnmkwKHWU6Tze50j9Syg0vpe+TppadldvY4Q/nWAznKMoy0yjL/HPKMoxnE+B8Vc7qOQQ6LhXjKWflPt+2cKLZNT6amizRksdNY9jRTRqyrAzHBw4pOn19ClHmRysrh/0LU7QtlWaTlGEpo6KkuB9sdnfPosrl2M+o2g7DkpluLhlnSF4lCyv9pX9hQ1/Wdf3F1v8AsbjR+1aGYnFIyCpQt9I6uvONSibow9MfsXpoalMlMi647Y6Y0drcUElgYSynImRshzDP/N/NPKMbYxjbKcy5bQj0WoysD6UJ0+ftIAdWk06LVv1tTPbNPfLcZaM+3Jr/AHZ/Sur/AFJiyMzOyv8AYaRVmILklDoWcYxMFzCKy/IIvM2lhT6HOLDRyHSc9MujyOrTQtCmSqVVgf0SopO50LpbS1xYaksl10/0fu2k6I2bppJfn03B1f8AxzpIKshM7y3Cmu++OqGzbqZy0jjaZQgmcZCC5xlGV4Ty2zJOURnXN/NSGgAwYUk8m9/TF3k696ddCUApB1fQ3kn8hQFETTW7UUy7EJheAboulEdXDu8W0EGLq6v92fWZrNWEGgWJo1q1lWdhYvo7UfuVhod/IS8hPJmpivI8QnQ7GswoVSQVdLG/9Z0S0Uv9pcahsGxtVHTkYlDGj3rpbUapVdC6l1VvpJ5SjS7ZPyGbGPjdBlIBxyyRWcprP4jnOWeamb+YZZ5a56L9fYcOrqQVcPJVS/OeUKgkIiX4vnfMM7SSta7x+8tmu9KNTMuHPCaIkxwOZi02dgUVeu2gs30pXl5eH+K2Yr2gMpRRNFQIE+HVkZLc5o+2teimmVyW8ccKzEUWZQ9Kp0LobSlp2Nq6H5lWKxWIksVg0uz0S16A+klOSp8eiW75qNBc2bbQHN2ka0KYG8eZCHLxBzDO8lj+KwlB4PH8DGWcZ1zfzpBYUjVJhOooEkSYVeCuD/tzpZzpOtvcNNtVSRk7xjR6ZQ99fVHRw6NJ2Z+9u0XDo5daLWj3MRNKoREq4ZSDQsRx7QdDMdbaWcmhrx6HeNbO0zMk/wBP9L2Fv3XQmv8AsOn+l7SsLLpOn+ldX9FKReVqV9oF5Qo9ux5ePaevzdrGrnct9A9JfGjPytOn2G+vr2CCW+/sMvIP9BHDvahS1JNPlCcOPEFePaevxGlNyPxI5VAx5sGSUnCOH+T3sH2WLcOXpqq+gPkAKs/xlEQtCaSA5f8AC301DQ0ub/5ZPITqD0kCKvjY5Jeqn2HKODwJYsCD7mZcO9AegoWahJqopMxXlZOZmo96ahqW9K2ZeqPILp/yXEwHjEgTR29gs9GY/RPDgCFM6I6lUK+/0nYWW6aBZnZ5urUpStrvQOlGoeVKDemxQJcxxJgmgIPHvbhwePDlkucZ3keVkpKi0atKmq1Fv1XSmn9zWVBa96XehICL+aZ/wtLdPfPplj45cCTlSbc3+fzWyUmVmsIiPzVKTAUq4ubF/YKE97Rg/wBpX9qFxwCBBNZoVrPbDycjycT40YjOl7vpWo5RZdCMk1hzMajqTov0GHBfn5CjixZWDAgoQtItL5HfomuWxK/OyXmEfkP141srPo1bm3ZtaVNLaaVLJ0eofaNe9tQ0I6cvDvkKwP8Ag5eBDK8XPOpSjaNb+Sy+Sx6511v5g15Sx8W+d9ejRqL5tEdFq6db7l2w0ytSv21dmq+6OzNonU6U1Jb7Z/fD/C32vSb9TRn2W26S+enjrQprp5Zq8pbvF9E+QZm5DB9Ou9nJfNplrOn966dun2nZrDVTYm/PvnrOgaBo/pbW+1d0dQ1NsO1tuzVoqHR/H3jr07PI2ry8e8dSN9r0ZWXovRmVwwmqEP8AdTpScVz+jQkrN5XNRX9mu+h7LWGkaWp9F7C8/anJVdFLaTQDj2MZVrn1ZpyElFepR6M+bpx/n/Bs9cYyGVlKzT8jPOs85y/zWhXmK9MwCQOc52y6cr5ZYM+Fcr59crAd6wzyJRdvK4qH03ajOTjaBJ9981Ds6/kqBfyzRkhn+WiOxCQyPjaCGJlQ6HhPJgTxrYLYduPZACUsGWEaz8gpdGDVqX99B46Ts/sXYuitGb2DymayQVk6z0R8jJ+HSXBLLL8dTa9j6cmnxuvOTF8uzx/lPGvnxZcsFFD5EUCkGve/8nylj7hCeWmZ4lQPSLLlaj56we53Kcc/Gy8blwxnV/J6LVUHvGavGWQ9ZPKQ05cs5sXo+5nUIEqvyB00PfWaGeM50nonRDwZStP6DaDRpe2h8yQhPPOLDXTydlADHx/eI5Wpq0eS3+SroTUm1dTW1D80iIBFw/wJ48YdGWU4FdK7jupd+qP1WwoOSacummlznrm0TolCdqeT6fHqHxQ8c2jds8zfyz2LNRLpqTUXCTmJZ/EjA2VM4z6MmjOaGwqKIyK2WnjziWUwCWLe/ZENOW6Or6e8pDvtu8RGT+U3VsG+mf69oQyUWsbrT8K83ALzrulVSEWcJZ4wEmkYPlrEUB+PgIUbsLzYF+3x1oGlPxcLHyliQxYnhy97Q8rpd9bV4cP82LVDGOdZzAdrtoGpb1Ws58eBBo7virGgb3s7yHL2NcA1DyUifr6/wcCCDPhJYfqlFb2CDonpmipxcUNjR2LTqtblXDgl61Z8dczhw+s+R5ewjCtV8qjjvYIIIK97i8uROTk/wcnP27k4f8t/g5OrzcnDj1ObsfZuHL2rvI8O8d2Prd5Xqcf9HDhy8el0OTv/xAAlEAACAgICAQQDAQEAAAAAAAAAAQIRECESMSADIkFREzBhQCP/2gAIAQEAAz8ARrFv9i/yKiz+FeOvOy2UJC/Ql+hC87xSN4pCbEyxrCwqFhZ0W/8ADYhZvytmsbFRocWWWWsNfo1iv8KQ2yXg2Ska6OONYSEJoR7jQqFYn51/kcmWUiiyz+C+hJCQlIRaKQ4yNCZ7hJCoXI5FoaK8GMYxjJDGMb+CX0TfwT+iS+BlDWbYqFWLYnQhI0dlMoVCaZtjQ5jTHFDSexymN0aFTKYxtmhCFYmIVi+hIti+hfQvoX0L6F9CXwcSnniyxyWKZWdFWJMor5OS7ORvFFIqxSkJJFIs5DGnhCFZFkSKZETIkSKIkSJFkWhNG8tlCoRTxrGjsfJjJIZouQkhUdkrY1ISS2Jrs5FioSwyRJMkSJMmiTJIYyTJUTJEmNolJ9FCchUKIhMWbNFmykOxjRUhIQpn5Pgfou0h+m6bL+ROtiaFQmbwqxaxrrK8NdH8P4UuhNiro4lTNDJ2SGySHjWFYniiji2NskkcvUojKCIxizjN0SgbWy0tlo5PCFQrI0RI0RoiRIkSJGiNEaI0KyLWG5jovCQhCRRrGyxeC5EeDEvWEvTQuL2c5vDUh0htZZIlY0hjGSZKIyTGh0MZo2WchchUIWKE86x7sWWjRxs/HLsTj2X6pUOzknvFlSRpeGyxeNopHvE14UhxG2UjRbNeFMsvw4vKoVM0xqTpnqTJQdlIvFnuR1nWEiJEjZEjZGiPFi5ioREiKiy3hmzRSEhUK8IQmhUym8UaHNEnFkvyHJI9vRP02NjxckaWXWGSRIkhjbHQ2j3WUivk/p/S12c2ULFSKRSKP6ORJDQ8WhuxoY7QmhSgxc2KLpkZQI7KbFhyaNIrGjYpCxo3mkcGVhjHmizkNIkkNvyY3mijiJxE7Z+P1C49iaYrePySR0KKRZRQuQiJEjRFsiRSI0xX+nYhOIjfkhCEJCRs0aZy9Qk0SpjjJjE2hUjrGjYyURjQ2h2NoaQ2OQyTJfRIkSYxoaKNFlsvxrNlLNJnZchUiPFnveKmkWkdY1hCWNeGj3Gj3CoQqEIVCo4sd6JUNjssQl56ZvFJm2UziKSOUsV6iOjSxrCEIREREi4isXESkKhCoRFCE0J2bFQkipY1+jTN40y5PDTJPNeojo0vD+4saGMo12WzRbzS78LRZTFQmi3h5rw0dm8OmVJ+Tc0PQ+KK8H5MYxvxfgyaGW/06NM3i0yrN4bHjlQ1Wikiima/xNjxrDTNeKEIRaZss0zsqTNlmi5JCdCSQksbzX+BCEmKhMpnHNYo/pZZaLeNHZU2bxo5eoVRUVi/2Viy8UJCQhCsQmIplmistsYxtDbGOjTKmzZo0cplJDofgx5sbGOjiV4IWWhjQ0f0tFvCSxsvwbxopGmU2bzbRpCaEvBMorFsTQkJITTGNYoa+Rsb/TWJSGn4ITEKizT0VyPdjZtFJCUSKQr7FLCFQrxTNIpY5IQkLwY8V+hNFlFFCiKL7Iv5FITFxYlyK9VmjaOioo4I72e7suticUccRb7Is2aNGykKKYrexN9l4QhfppliaFjihRvZT7La2cq2Wj2Mvkf9XnoqCOKY5Nqxji0XBFJnG9m+y32KQqE0Kyl2UnsfJ7LfZdCoiiP2RfmhYoQhUJJjt7HJ9jhJbLrZ7ULiy+R/0edo9hpnueKkj/mjT2ObeGmNM12X8i+yk9jd7LY7HEpdj+xp9l/ImuxfYvsX2L7F9iXyJvsT+RJdi+xfZrstPZc8U0VQlHsTT2crPe88Wj2IckxqbLHaK9NEpeDsmiZIk0SZJsaRxxYxxZKibJkySJEn8kr7JIk0TZMmSkiSY0x2SVE6JyG7N5dobSOUSnmkKIsbFITQhCOXwKPwJLDGaKY2Wuj+YpHF+CkJrOuhU9DctI9RtaJKtDS6NFJlSxsuikhcRJsSedsbxZsTSEIRGhLF4rFlMVF40zi34W0XEsSIxI7I+pMhNLRFLo/g6eiST0OLesOckOlopHtGrGpDZot+HGRSP6f0v5LRflbKQoikJntY1Y0yRJtaHaPahJCgmcW9kps4TVkJVsjNITE10KSeiuWiUPU40daFFLQoi4iaZU3jRT8NjSH9kmepJkqJkosfhsSRs2Wj2ilZzfQ/o/hxa0cEKMSk9jnN4olH1ErHKMS0Ii0yDUiH5bojGiKWNFplyYx0WPLKRbOTTZFUQohRHZRTEIo0WzaKSPaWyMmRaWiKIopDSY3Y5MpYb9ZD4xEokYfJFJ7IStWKUrFH5E/kT+RNdnKzZeHNja6HfR/BpdEop6GpbFFIUSvkTXZzLKHF4sbw4nFDkORwkJpCYhSR7WVJ4VYv1EKEEKEeyML9xL1Lpk5u28MafY/sv5OSE2IVFdoUV0JPoX0ITT0fjdpHFDGMbGxz+Bv4PVj0epF7WEsMZY0ODSOSRrHKLG7HCWLY7TH6fpkoqSTJepJtvzrKFRCKIot5UommO2MbY2MS7REgQZEfpjsvw0VI0hNY5ITTOE3jnJCjFHD02Nya/UyUWPiX8nLw0Wme9lsWEhJYa+TZGYpI4y8EJI9x0Wlm4sqTwnJCUUN+mxpyf6rLHQ/LkmOMhMSQivksvDJJilERQnijRbHyNLPtZ7mbLaKSE4CqRTf6didEePls9p2a8deGvDXh7kaWfazbxtGkew0zf6dnR7Uf/8QAJREAAwACAgICAgMBAQAAAAAAAAECAxEEEhAhEzEgIgUUMkFR/9oACAECAQE/AByj68NIaQ5TEkj7EvwS8NpCpMdbY2JpiS8aQ5TE/LGxs/4NmNbY16FLNDO6n7Ys0t/Zly6JzM7tM7dp2ZuVOF/ZxuWsxs2bF+DTOpR0ZE68Zrc/RjtszZXBk5FM49U6Mq2iG1ZMK0mdVMNH8o676TP4jtr2Kx1omtjKbOzFT2O2VVDqiMlEVtDZlctCy6ZmvsjRg/0dEz4J+yf1MvKUvTZz1NvaZ/GzCxoUlMlDY6lIeSEhXLHUlVCR8mM74z5pk79pbRW3Q8emVKLSRgf7Ct7FaKrUM5uanl0mU6aWzh5bx0YuUq9HXb2L0hrZcNoeJ6JxNDxNl4m0fBWz4a2XipIm3EtFZn2PkplOh+zDPscjemU+2NmfG/lZUmGdIl6aMOTci9lfQ2x3Q7pSY6pyyqoeSzBVNrZk1rRULqyl+wpHP6lJ7MbaZLTRc7ZrUnLrrbMVqxehHHXokbSQ7kThlONGLq16HjkeCScagpbKXVDmaoWNJDSGpNSmKkJ7Gmc/Dv2jFDlmzBidvZC6o7FztHxPQsbSHDZilydjsh0jvJlW5FLVeLodG2SyPZT0jPfZlV7F9HDpaLFTFVG3obZV12O9aRTekVVDqtCq9ir9B3+xb9DTKEIxsyP9S37Y49mjjX1eh1tDfs6o9D0dJZ1Q0mOEz40fHI5Whx7KKPtj8YzJ7kv1TN+MKe9k14Y7OwmdhM2NjrRWV6Hkezt2KEtnQUC9D9ozzpi8Y51Js2UNexISKFY6Ex6Y4KxkxoqSZMlqSG2M3pHIe2IX2iP8jRT0zu9mtjWhJlSVPUWzTNG/Q2N+Kr0Wnsx0kdkxmXHtNiI/0T6kzchS9bMbVrZlzxi+yf5OG9djHmnKkIzWoWyucnWtmLNDR82MVSyhnZHdMbLoyZepPKpUjHfeTK0pfiH+xd6gy3V22zi5Xpo53JeWtJiOFyLhaP7rOTybuWVWmTyblaTP7OTf2YudU/ZHM7IycorlsjlNP2PlbQ8zZddjRhz9UZMzrw66l521opIxZOjZmSeRiRwZipWx4cZlw41LOUuuR6FQ6IrbRxsU1Jm466lT1poZx5VF4ZRcpFVpnHqH9lzGvXhtb9lOCtP6GjRoxZqxfR/dyGXn01ou3b2/KbTONynP2XzIcl5FVjZxmkZc5eWqNbFTk+WicjMlvY6bI+hjNifst+vRapiTRo6mvG3/AOks2K3Jttj+xfXjQmNbHInpDs7DYmJbKSG0djufY34TJfheG/QkNCXhrw8e/wAO3odN+OokaKRoSEvKHsgaNeGP7J/BH/fKGPwvwQyB+WMk/8QAKxEAAgICAgEDBAICAwEAAAAAAQIAAwQREiEFEBMxIjJBURQgFWEGIzNx/9oACAEDAQE/ANsGi2lUl1zMZW7biOZzaK5EsdjGZhHtYT3WMNrRbCZ7pE95otrN8Qu4MAYDcWxoXsE95obW3BcxEFziOncf7Z7ezEr1EWcRN9+lvQh0WhURhFOjBW9n2iNi2quyJi45IjYoHZE9tSkKcLQv7mJ4lshAdTyXiGxVLATfcB9GKmErPpg4wMojWRTC4EchhGr7mNUp7MzEVRMLGW3RMow0QDqZqIlZ0Jivox1Vq493suQZUxsyEOutzxKqKFOvxP8AkXFqyI2MBFQkwrxEVmidwqNiNrUCgiKqwIktqXUI4tGIlPucv9SzH5LszDqFZEDdCZhBrM911PQgz31xlhFh/wDswvGF0VgJgFqq+JnnHsZjLXPxEqPzHOjowaMRCToT2nJ+Y9bD8xVfWgYqWsdbns3fuGq4j5n8d3J2YyMloDT6VQGLeWGtSt2B+JSxf5mYv0Q0gqYcc9mUVlr0H+546la8dd/qAqCZmUpcpBmV4srthGYVjRjvyYxV4ytwp7guXcstUxbQBKr1Bn8lNQ5KaleQhYiW1C2wGJirxE9itREWuKAPiZdn0GJdvcVeaylDXkqT+5j2g0rr9QNLG3LF5IRPI18bDCNGDuAAxUWKil5YihlgRCYtVcy1RUOpUTvcS5uYBiOeEa4aPcS//t1uJYpHzMhQymW7rsOpjZACdxX52AgTAXnSssQrDHOlM8k4Nhh7MHfQnB9jRhFia7iizcuDggkwO8/kOJfezjUrs4mBvcYcYbbK642TYxMUuW3uJZePzPduYaj1OSSYa2XuV3qAJ4PL2vEy1wwmpn5S0oRL2NrmVVaHYlbBfme6oYRrVJEW1RLHDzSiNCrH8Q0uBvUxm4Wdy6xDXNAzHxyfxFp0JxAjKGMvHESmvnYBPHUCusGAdQzzKHZmMm27hRdCEDcIG4ADK6k4wooJigbMRUJgSsNClZWWVj3gBGxyU+ZjoA+jKwoAigES3QMUTKMwl3aJQvGtYG69PLJtdys6aA7EIJM4wJAWUQlozFYtzqZ77wZFgE5tzDRsk8NESgcjuVLB0I6kmAaEy5hvwsExn51j18larDjGQg7ERzqK/KBJxhEYdSxjubi9xK+RleOoYSzHUpKa/aMrIMZwssyFAgvBl/1ypeLAzxr8q/RzxUmZD8rDOG4KZWogI1CQIzz5ltMWuFdRSync/kEGLliWZAlFw1Lr/wBGCtrOzHr4fEVWae0QZ4zoahl//mZYm3MVTEQaiqAsV9HUZtmM0UwfVGQCHW4SIV2YU6hUxHbYEROwTE1qWoSZWpHyJxDTEco4E+QJf9kddvMbCZ13qXVms61MTDtyJ/hSq71MnFahjCJjUtawGoviyE3qZGHYDoCHBu+dSyi2v5EAMAJ/ENTsehPYdSCREHUqQiY2MLD2I3jquB18y+s0uRMYFrBB9olw2kppDW9ypFRABMupTozBxRQkMzsWu0T/ABqTFxK6mB6iruNjox2RP41Wvtl3jqrR0Jb4lVMq8Ykr8XWPmW+NrZeoPGcGi4aiUVBPTKww53MfEFZ36FeQldAU7imWJzAlZIQQmeRssXeoMm4fgyjJuawDRmMS1Y3CsCwroGeSyLK26mH5As4BMrcOgMEzmNa7iZjkzHtdiIo6mYto+2UvcD9QinYhB11F5xNib9bKEtHcOBVKcCtTvUVAg0PQRQCJn4K2g6Er8S6WblNRSsAxRM9S40Jj4I1siVUIg+J8QqGnsr+oUAiqNQKIVgE3BCNCKO4pAhYTcBnIiE7M6hHoyBvmBQogh+fTcIg6gMA3BXNQQ+ggE4zj6CahEI/oBDAZv0EB1BeP6KATCoHpubm4IDCZv+g1qNBN+ggjCD1X5jfHqfUQ/wBRG/oII0//2Q==\"","module.exports = __webpack_public_path__ + \"static/media/v_empty_list.70f1253b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgSiteConnecte_disabled.72d104a3.svg\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgAppConnecte_disabled.9ae93ea4.svg\";","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAcHBwcHBwgJCQgLDAsMCxAPDg4PEBkSExITEhklFxsXFxsXJSEoIR4hKCE7LykpLztFOjc6RVNKSlNpY2mJibgBBwcHBwcHCAkJCAsMCwwLEA8ODg8QGRITEhMSGSUXGxcXGxclISghHiEoITsvKSkvO0U6NzpFU0pKU2ljaYmJuP/CABEIAVIBfAMBIgACEQEDEQH/xAAxAAACAwEBAAAAAAAAAAAAAAADBAACBQEGAQEBAQEBAQAAAAAAAAAAAAAAAQIDBQT/2gAMAwEAAhADEAAAAN+4Z9HxafR90y8LYw94R5y3oeP2/LfT8GxvZPp/P9hDK9LgS5QiC+7y3QmB5/tE2vP7HLtrmUY49mLispeU4BzdDPjrC3R1zKepzgbBLVsAReQgp8/q6URlj9k2AvJI53kMCpK2OVDXUzsTZxt4SuO/o+QTs73+Df8AUeU9H53tNef18WMsRReh5Lq7APP9mu1ibnPtqMgZ49r2lpqtDDFM7RzosYbJGaMVW1odtWwDP0M+A25cv21iph3o/adi3a9rL47yxIGgnrOTjbWLrKJBl9DyGCVLv53tTJf4fUykYCrrNrdvlaA2H4vWW3MTax12GV2uPaX52a7S9BTN0s2LsKshzgPRO04FsMgDP0c+KGq2ten7YDp4DhKxXslBraayBF5GzMxNvE1lHvK+l4zF1yd/h0dHK0uX0GXKvNUF3m+WpQ/PN9vO0kj567bWIXl02bY5M61oi0UzdTOUTClofPmXNLqDNNGEUDn6GfEaUZGbivZfnIdrOSyc7QYC2s1RaUszcTcw9ZQranpeKQoTfT57ulm6XH6SLMrZ2C3Cbxr2s15nuZM05y7Z1n+zSRWjZtH6GKI6QVya6VTPs9cUfsc72QDn6KBVpU0MXBcJyvKtynAvaXM4kvqAVbUuM7D3cLUQpenp+Lcwj/R8DWkho8fpus2tna5xF1jVey2fN9zauJnj3HC9lFa9It0MsNK3lry/Fr3vSSQkkWiD6Ugi0IWvW5Od5VJ3kXvS9KdtLlZZtXUzsLdw7nO5avqeKZ/Pc6fLovZj/D62Vyr50v2nevDR7KfB7G5oZGrw+gk7M6rm6OB14Lcwq+l4ns9XzfovO9ksk4/VJISSEkhVRwAuSWJ2QnJQ7B9CkGQFJ3WVk3VEzMLewtZzp2en4xj0a6fMTQWd4/R1dsM0ne/N83hGD8PraOxh7PHuzK9xvnnvQYff5vKcbnq+Dt+iwtzyvdLOd4fXJKne16dnIdETgHheA4TgETIgBOkLE5ZFejJrIVmljMw97CszaEp6finYEz1+U76j3H6LAbBNqy9d8tEJg/D6zOrjO8u7/M6c+mgqG1i8LN8jtIdx10SZbE1o9ARL8pSiVzkN59DPMSX0884eXc5kkNGueM0+45rNeyjEqV8BlNIazZm4XoMKzKEUHp+I01nsfR8Wm9kaHH6HQWXzvlR33y1BFH5/s90M/Z5dwXfJz6Zs04uZNKGd3QggR2AO3Xs4lXN1L5jKv1fLihMnc6evj7nLs7o5m9z2klvZtY7Ir6mw6g9y6eI0M3Syd0EdGs7B9DhpiLOJ+p4lzrn+rzXNDOf5fQ0udfHUNxX3z2BEp5vt828Pa59nyCJy63nIvZyHZISSAkXUbMrMfzN5VANT6vnuqatj2tiOY3pb/lHee/SZ+avYaZtq9Pp4Ovx6eR1MvUxp/SztOxHE3cZMFDQzvV8QjC7f0/Ad5Nzl1ZWZXz1WvS++Ozy08z3V9TLa59tK+Tbl11u5Nl1j47podTuM8Dw6i0lZlZughvKlC87cqWvfUoXhItblsa5UvRCMxdDVS0+XTx+jG8U2iBqkcjay7POZfos70PKQZKT6Piq2IuayG1M9AsceR7jIfP8AZSZCzjdLlJja12bKAl+gyductcoBTQUsxUdNDWUaFD2597WduROXmNVuIuNlKO8UOs/Naj67XLokU/cpasFkH0hULfNRSNxFY10V6zcHo0bOIaWeqb6ehBi8JLLdstO3sC6WFJegADA7MnM3MrWc5DWy+vNWZ6v0cvR187Mb3SedIvo5huZuruY/o+W3jVty3IWZooWWKJ6i8uXR0Yv08Aw0BXvY6UdqZTbWRNxQyN3UvrLdlbDV1Sq10Bc6tW1VDW3LF8raQsyltMesYKXpxbx5enqZXlr+lsuLr6OnjaOgW+N85bkGnZLydhWpIL1bkJ8cghV+ol1yClWwnV2gUgYd5CkFejWEQvetjt6cC8FQJ0RKibSdygAgd8KCMLfPlq3sI0BvO2nFGufcsnc9KzsW8pMr9HC/R8DQHKYi0GOLVG+KSGA0oNDvDP4QZztYFMscYvSxKSiWpzlGME1LoNZ7Jz1duV6aHbnLvpWuUCuSdFbkk1ydk1WdgCBmaaBgUYwhaL0G4rBioYF6Hoe4Cj3ecpSnaxySFzhIMQUS9ecJycsOYB6Rz9DPR11F1TWpcteljvJCvJDskOTsXFmf3Ff4j2nKgIW53pzvbHJfoOE4VNVuiUOIz63DFoOoxZSI7E4OROw3YDdhC8lJZz2beei9kNmhdG6u3RsrnFaozxSDnVbzTHR2a833Wmbk21e1mk0LCHX+iFneifXYJce4Ks26ShOIivqCXLHqDjM5pcM7uhBG7hLAuS9nAEzrlfLZS6/D0yRN8HrJ0m9Qua9noWlRF4tSzWbyH+f1aRkWMdiy3ZqnbQ5LdK9tyudnY5O8WcnEk5Ds5CTkJzsKy/AazOGEP4rQPa3UcsBla+dcZYX6dvgz7t91yWV1lM9R6qupnoAGiCayxvC3x46Nnn9NjiJjto9knSSQ72QnJFr2Q5JDnJCckSdkWVkO9kOyRBYMi+cckPXtSWUSkZBWTp80klxYUk2R2SbgpIDSTWCnkz1l5M9P/8QAIhAAAgICAwEBAQEBAQAAAAAAAQIAAxESBBATIBQwQAUV/9oACAEBAAECAC6Ohc8lry5WGVzi11UWUXI8ESWSlqHV1cOH2JtlkrIdHRswdWRojB99wwPw0SVyw8k3F4kaVzhCkWryo8ESWyo0FAqhQOrJZFhiRDsCOrY83FgfdHVs9sFFZtbkm6NEjSucGUy2cqPBElsqnHFYUAYwRZLIg0StUCgDqyP0oAwIpBz0YAGduRLo0rhlY4bU2228guBElsqnGlYEHbS2PK4IsHY6sj9LB1gQfHn5mtxfLo0rGqJTK3d3jrisXCqcaVwCDppbHiQRYIDB1ZHgVUCaaBcd64cWTkS6NKyGRq2rZmLMZULwk4xqI+GlssiFYsHWR1ZHiRQBjGIfl5ZL5dGindXratmZmZlNIuCihq7VtFvr6bWSyKVZXV99l6sjxChBz9mWSyXy6PB0kqlUaNGiCgWrqhWwWi4Wo6xxaIGDiwWVlRLJZFiQfOegTLJZORLo8HSSqVRo0aVCgWIU0AwAq1KgYWoU01CJXWgEePEiwHOc5yDBZu5eciXx4IIkrlUaNDKhRCnh+f8AP4ChaUrAIas0+PiKVrC9PLAsBBmSc5HQGHDzkS+PBBElcqjRoZVKmqdV0000CgYmNddcY7eWQQQQdHsdDp485EvjwQBFrWpWVlIqiyp6mHwW9fUPn+Dx4AIOz2OgDHjTkS+PBElSotalXVxXFiHjsvbTkXPzV53HvQ/waOAAAOj2OgCHDTkS+PBFNbpZU7Mzua4szxmQ9POcbnrfgmv+JjjA7JJ2BXoAiyPORL48UBUStKlZWVlrCRpxSh6ec6WyocAV/wATGGMdGN0oXoQx485EvjxYhSJK40aNEiR5xjWQcueYttNdHDRDnozMznJmMYwQVCBQIGJeNORLo8WKUKGuGNGKSuWTjlbPb3N1kapaqyLhcLQ2Zkv6+vp6em++5fcODlRhw05EvDxYgRUWsEMGCyuWyg7Fs5hg7BQoZlntvfmf+iP+kvPXljkexua/9Fd1bgrb6s5nIF4sgKMjo9bFmZmQ1S6UwIKhT4+JpFPl5CoVgEu9t1lnINtovotqNIWpqrVJpakiV8n2RwOSLxZBAUKGomOTK5VLpRKlVAmmmmmmmmhDm62y3e83LjiKkosojrcrio0kGgrKAByReLRBEiSqGPDK5TLpRKYsH8Xlxva1mvfkO5PFb0psovfk3X2XV3cewPx4sognIF4uEESJKoY8JrNMulMpKkHOc/Ly6Xy2XKU8/KpQUKXG97HapuMVPGiyiCXi8XwxYgSVQx40rNEulUrsF/uL/wBAuVs5hLm6XyyMvkKvAUikVefm1b1VpxlUceJKIJeLxyIYkSLKoY8aVigXBIDsG2DIUsFos9PRmuNxeGZBDBxYLPQPl5WvHUChEWhQLheOSrBYhVq33diaRQLgsEA11VQMghsgYulocN3mGAgr0ZSKFAWmuupMXS1b6W4w44oFK16lFpp49dd4UKorFYq8vMV+YRUCMLVuVw46EUNMrFhOeOtKiCla1Uy2OGQ0+Pj4+XkKq6a6St4UVIqBAmnnppoFMaOL0dbFsY3i9eQ1/ut45B5FT8VaxMdE2RvjGMYVawpMviCuAgg5z8GNCLlsV15Fdql/c3+y3K9a8WnjVqJjGMOroR1jGMAAq2bosRg4cWCwOGB6Mbq1bUZLKbeG/APA/B+BeDTwKOBTxUTrGMYZXRq/Lz89NdQuoCy4CCCCDoRYCDDD04tQqVKlPPy8VoporqCfZBU1+XkajX56BNNVFoiwAADAGIDsWJEaWixi5cvuHU1isL/PGuupTTTVlIAtBCwMGDAjrOSxYERja1gNZqNXkKkqRECfOc5znOc7bbbbbMxKywMJnYMrA5JLFiU6tZmRBR+c8b8w4y8cUisL8ZznOdt9/T0Nnp6+hcMksj9HpYsXo/CdXzNUWCY1C64P1nOcli5s9PT0Nm+4fZTXLI3woWCEn4Tq/qqLB/TbbbcszFs5+BBElcsjHsQHbbOcxOr+qosEEHZ+/T09PQvkjGMY1xgBFQWx5nOQwfffffIiAy/qmLBARM5JJznPW++4YEfAAGMEKEQCwOCSSdt999wyRFAY3sXruW8Xi8X+/sbzf7C0ODnx8fEUikVeXl5ivz8/PzWtRGD1tWUKFdddQipWigmx77XsFy3i/wDQt4tNpuNwvruR1bPl5eXl5+emmmmmuuuOyprNRpNPj4+XmtarHNz2lxqowTUVBVg0EqNZRg3+XGMEWWvzqeWrSyXxowKqpV5TK1KOrjFYWKQ2MYxjGP8ABh5zmus4L8c4dbazSafBaTU9FNCVlHrarxSoVhQv2f4ns/LTnFzxTR00t+mlcWGND0nQ6//EACQQAAICAgICAgMBAQAAAAAAAAABESEQIAIwMUASUUFQYQMi/9oACAEBAAM/AM0ecXmyYKIRGLKxfTZHTeF1WUUecXmzwKEKC3iysWPei8Me1FkDGPoshFHnF5s8FIrNlYs8dF9NF9saXmyIFAoJxZWLPHRfTRfo3icQOBk4srFnjovpovrW14QtrKxZ4ytb6r9qeRWIZEZQtL0Qtb9atLKxDIIGMY3itXic0X7VlZYxjHmssYxkaX7VlHy3jM6pa32PS31WQJiaEIQtlletb0Y9bKIZK1SEIT9u3ohCELFlEcilpR8CH5Jfk+ZK9q3mNpLKI5a0QmP5McodFfpIZRetHktlo8FezT0QhCwsWUXis0TI2xyRBXtW9GPWyi8QsyLkISFx0nRIQvsQhCEIQhdFvqsovFDGPRjGPSCD4/kj8i+xP8kkjGNYknCEJ4plvqllZlD6YIxGJGkckzl9nJvychsbQ0NDTHOKGxjZRTPPVZWLJQhCwhawRomiy8QhfITQoEKc0PNHk89VlYsrug+JJJZAoP8AoS4iEKSyStKx53rNlYsrvZyORyOXE5QNM5JHJnJjHI6K0rHnes2ViyFlCJJ6UxCEIQtbPBWlY8nkvWs2VixwMYxjkjuQhaXihrNY8nkc61mysWVuxjGV0sYx5l4ojEFYkkf0MYxoY2NjIWLJ1Yx+lLxC0jRMQhCFokQsXlC6ZWnxEI4x5OP2IQhM+TPBXoIRWL77wzmmc0c0czmczmznyY6IS9GMSsWR3XiRP8H8P4P6H9D+j+H8FxI9OsXhjH1SsoRxOJxF9C+hfQkJepWL9CNpwu1dd+g2xsYxjGND9i+6CWfIQhH8whEerfpXohC/VX715vvv9DfffexjGP2JxGUmJCEIQhCEIT0YxjH2zhjGMYxjHpGLGhjH9jYxjGMnRCEIQhYQsrZMW6FrOH0v2kIQhcDhxfk48/yJrFbUQyyv0NHJJwf6/M/0lSN8VihsYxjHA2/A0xpZY5GMY/R/6XRQ/jysfy8j+SsrN4vNFlorp//EACMRAAICAgEEAwEBAAAAAAAAAAABAhEDMTIQEiBAITBBE1D/2gAIAQIBAT8A6RMXFC0Z5tMwzbZ+GTkS9BEdmLiLRnTbMCpn4ZORIf3ojsx8S3RNNkVQm6MnIeh+hHZh4lE0iKGkkZOXR+hEwaPwmRJaMnIv0Y7MGi/gm0RZPRk34U/ujsw6JJklIimPiT2PpiipSFgj2maKjL7Y7MPEcmSkxNjbonsl0wOpHeu0zu5fbHZh4jaJNEWWqJ8iXRNo/rIbb8FBscWimUUV4R2YNDiSiRiNUifIl5oxoyJFEhFDEMWzBo/CZElonyJeaINIl8jQ4ijQyREYtmDQ2SZElxMnIl5IRHo7RZY2MXRbMOVJH9oDywFkiTyxom7Y35IRERIooY/DuZ3M7md7O5/SiB8UNFDRJ/ZRRXimKbO5nexzY3f2WWX4pCido0NepbFJnezuZf8AlpFMooor0kRRSKGiihr0URY2WNiZZL0l1fV9P//EACcRAAMAAAYBBAIDAQAAAAAAAAABAgMEERIxMhATIDBAIlEhQUJQ/9oACAEDAQE/APFcGY7D7GVw1UmZw1KF2MHoieRfQrgx+xXYylJSZqk0f6MDohci+hXBj9xqdTCpIutRpaowOiFyL6FcGZelDp6mE2W2Jt0jA6I0F9CuDNdh8mEWR3Rgr8EafRrgzPYa/kwky0zD7owuq9m5fNXBmezJaTIqS3JL/MwuqF4zFuYbQ81e/ky1u4Tfy1wZjsbURKKSJlKjD6onxmU3DPSrfwZVaR8tcGZ7GjITLTEnuMLoifFSqPQj9Eyp9jpIVJmvjU19lcGa7CtpmHbLsmtaRhdET72YraMKmzVkjExDEVwZvk/sw+SyH+SMLoifey51Jnb4TGxCKEVwZvsKSFoyyO6MHoiRe+vC8oQ/D4Mxg1THl7JwMRPgrBtowsC1XBhzpIl72UMk18L27UzZP6Nk/o2T+hRPwso0EvCEvjZuNwqE/LGaeUvl0RojT2Mq2PEZ6orZL1+mzYh4SZ6KFCQkl/y3SQrRvRuRvRuQn9GmYtsV0b2TTY6YrepFCf0KMWW2KGbCIKk2vUw0xfQZYvCH4nx//9k=\"","module.exports = __webpack_public_path__ + \"static/media/v_empty_challenge_list.48386194.jpg\";","module.exports = __webpack_public_path__ + \"static/media/v_logo-caf_2022.f3547ac4.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ4AAABOCAMAAADmQAhPAAABpFBMVEUAAAAAAAAAAAAAAAAAr78AAAAAs78Aqr8AAAAAAAAAqsMAAAAAr8cAp78AAAAArMEAAAAArsMArsEAAAAAAAAAqsUAqr8AAAAAAAAAXWoAAAAAAAAArsIAAAAAq8MAq78AAAAAAAAAAAAAAAAAAAAAq8IAAAAArMIAAAAAXmwAAAAAAAAAAAAArMEAAAAArcIAAAAAAAAAAAAArMEAZG8AAAAAAAAAq8IAYnAAAAAAAAAAAAAAAAAAAAAArcMAAAAAq8EAAAAAAAAAAAAAAAAAAAAAq8IAAAAArMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAArMIAAAAArMIAAAAAAAAAAAAAAAAArMIAAAAAq8IAAAAAAAAAAAAAAAAAAAAArMIAAAAAAAAAq8IAcoEAAAAAAAAAAAAAq8IAAAAAq8EAAAAArMIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArMEAAAAAAAAArMIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArMEAAAAAq8EAiZsAAAAAAAAAAAAAAAAAAAAAAAAArMIBAQHvKB0wAAAAinRSTlMAAgkOEBAUGBgbHh8gICAlJCYpLS4wMDAxPDw9Pz9AQEBBRkpMT09QUFdXWFxfX2BgZGZvbm5vcHBwcXd7fH9/gICGh4iMj4+QkJKTlJicnZ+foKCoq6yvr7Cwsre4vb++v8DAwMPEycnPz9DQ09TW2Nnb3N/e3+Dg4uPk5ebn6O/v8PDw8fLz9PlhFwZIAAAMBElEQVR42u2Z/38aSRnHR9099W6LehfEuyYUrWe41hZitDnUBrC1hdqrAerli62UiL0jQb16GFBrA0hbZf5pZ2GWz7LPzPBl8+pP+bzywzIzmXme9zzzzMwuq9e/zYjqNSoWUOTGXu2E85Pa3es2C+rqg6OjR5cZUVp0lGBq2aKuOH7aq0HZ7I01b8hSTaW9pK+T66XakWvV3vUIm9av6vUfy8d8DSplsz+CA5x/jxFxhQJ+CRJQacpF+9YL7urVFffHAz+WvCg+YmoVRV2duUpwyD/AAdfI8zxR85eeXGc+vSdKXn9VTjcP6Oi6bcSRIGI+JSUM6C4Ab3zBpf4uft3j/GXJBg6hNFMpwhU4oFoEXhDFmKuYBwNAfFZ/nwt9DThIUxMOZlKRe+p0Jnw9lx9wodP7Gxf/zflVsWxeiZ9/W/Hj6NlMoZoSB9SLsTRXqzmeox6XGnS4pxs6HFTpZXAgZivpkVuR5Pi3XMCPxOOzm25Nk/MMY2zlsSh5edmHgxcZVZIHcMS8BZDIHIx5IBnEmlwo48fqsTpIj5pFMtLlkhoHjIgk0sWB5LEMjsoYRgQlkfpk/X4qnp68w4Tsv3B+e7x6XgseHwAHXIXskyAOWYEBeG06B3UYpVH3WZVocld5FQ6U+6M2sgSOzCgck4HMWknKSslgpTRKp3/KjH78dbSYgAOOwR6Cg85BAs3HbaFYbxQvqolLanBQmpXFcdg9l0aMKXVRJIqHTOjnz7nU75jQZVFegdc0m0Z6M3DYA9dcPY6aMkcXkaooDoqutziOonJc9PnMHfyDVy4z90/iuSWWywpwkGy657bX4MC4PS2OJFISjY/8PDhio/BbFIeNOaRaecn5TSb0Z5HtY3XRvevEZTbOqxXPjTox3fW/U9ThQJkWxxFyCQ2qngEHNFpXi+JIIxNS3ZZ73lUx1RHm4nB3occyqTy3pRsxnJx83iTzs3HYGhwRhKzK3uQ8OJpu2aI4DuQ2r9RTGRz3xYzUaj2RP90D8wsmZJ9yfsVzoxjIpplRaX756MiAVVADGYozcXSWwTFAR0S2yBgrkxULeTvwfenGOIST09k5MgNHUo0Dk3SgPxbU510s6UVxTO13dAK/ZCocciFVpBvjED6xYbFrnBYHGjUpDuIehJY9Mw7gjulw1AKKIZNqcWQ8gyvuYODnVT6FG2N7kNMHth4HskNRh+NEiQN9GXGgqDPfjRYIEmFwNOGGP5vWZBo04bCP5D8QHAj0EDiwI895o7XnWCwbM3A8hhu+bJqWRQYc9vWetFaDoxkiOnAX7tjsTHIHov61FkfFnzsYsunoshJT4Lib9ST2KFdNmy2ZOwYqHHtrY93IloQJ8qi9KI4OljDVf8WZS4VDbsK34YbMptLcIiM4qOqgodxZjhbaWagEjcVxVKQXSj0Rm6k8d1QQMadMKCIOrBcnbmBGIzKPzsIxyDCI4Ejrzx099bmDqGKzJXAkdatF3kxeuL3+BCfXPZEy5D771HMDG0ovsockqMcxOBBNTDhspBbtKdqMI8nYMjjYACdKIvtUXu8/ly/b7JK8s6w8d2vghpdNj/A7iCOT8IQNRYeDHdBrIbbgDlPhOEhIJV2X9pbEkddNhIyBf150vX/luloa5cDfyjX2pQ03cL1CHBl2FiMO/Mee9v6t3VkQ8cnlcNgdjEArm+K96Dvi4cozLvXQe3+aIW6k8aYwDA6cG+4ql0qT6XEAWi+yMA6w5NlpDKXauGBDhMWTFTc+Kqdc6PMRhHtclCrcqCOPhsGBUCvZzK8sdgwdDkxxbXEcuD5y/9ejdG8S8xvi6YsrzNUPMxsj4vbvRdljW+FGTAZNCBzoa4BPK/jogkA2H8NkBlgcB25oR9k14a69lj3xH+PvvRTPj66C/K3nouDpO0o38vUDFg4HJDLiCMjdtRhjkbXsEQeN+V4dx5bDwdIDTjTxa+Nfo3fGv7lxZW3tZ7/8w3Ns6mo3wuPA1waiQYKZcEBN+amI80/yAf1AFGaJ0v6R64ZT0srDV9OVTVH5BnAwO++bJvL1w4wjIl8Tcapf00IyeuKAQ52Mzfy6/OkpKp/e9HOEHcrLVmaSFzvMpISMRwKk45siFwb0zf9x/o+v+C/RNCMmWR5CdOQVSpMtJn9QF6pkYgq7Nj6pNJvNx5XbKwE/SD+qukg+H2FGpfN5m6kUyxRHVuXJ0fm97C++McFGzcgIH2PsXOc617nOda6zVWo7oGurq6sWU2nboJSyxYeiLxaUs+rKYUZFRROlHXFvPOit3Cy9NTX+h9vVams4bFR3t4l1h0OVutXNKAtqaNChvkX1Tpz5lRuPYDGDnOFIcUbUkr36cL47nKV3mSdrszFdtXvNiANqXbPC4YBam1YQx7DADKrqcKwPpcrL4LDudFV+GnFA3e2QOKBWPIhjiPDTOh1XckJ0LYhjs6sxLmrEATWiIXFAd4I4qkwnq6XDEUV/uUVxWLv6BtvAYVQ3FRIHVACOsdA1hBZKHGXflC6Iw2qYWuxM42gfegrySQVxHB8qVFC36JOe4Kw2mzpdHQ5HadjbfkM+k7Wf+QvfBg3prdhuCrAOPA4Rehg1Ve4rhoWNRPoW8Vwb7gOHKZvuDnU4CrIc4UH0LVn7HQZNx0Z7y5kYV/YFL8UBWSl4EV0KB5TrY0Tg0GbT+FCHw+qOg28ftfPi2BlK9ac9dQBkXYEDsiYNGyFxsJQHFjgM2bSF+i02pS0ZrnH8txkHRXwsZ+D9n37kGddH8KpxwAtUhsABAuv4ocymqMbABFSfsWMElwkHRXxsyYI/Dv/DpKIIXiMOVgC3cDgsDAh/0TNdEMBBp6cweSqbcdCJ7TsMOOi0O2YcbB9BGwIHOjoEDgAiW6kORwPH8z4e58HRgGHAQae9YMSBja0RFkeO4kA2pYscOGjVPvpAvRlHFIcjJQ5L0m2ZcWCunLPB0fU9t5EPyTz2ywqr/PuJg7U2EwcmIE5wkHuDGcc6cuBZR0fuWJFNU7IuOPsg0J6ap605cOCoydQ4ED5bRhxYpLmQOMoKHHE6w1ZX2q3AUQY9rJzWXDiQGjQ4WFsuRB0OgIUfQ63is3B0YRBcLRArZUkcbYKbU9+Dh9iaicNBiCtxYODDWTjKZ4JjC8cM4JhksGggZvfRRv+WJIUkPwtHHGapcSB5aHGgXXgc0a6ssPw4PJeQTavycIA2JL6c4DKOz4/D0bjw8ZvFEe8OsUfCVbkUEfHrqCA4UugBlqFkLhxMjyP1xnDEd4aenCCOqD+bWi3kf4KjRXq20OmcOKIhFkuYVLqz7alapYcqv6sFmmLjBAcCp61Ia+UzzB3tWTgaGHOejdakMqM4rPZk4hzlgpKqYlWRw4I170a7pcexP9/O4mBiQ+AADeLq+iSb7uKSRXBEsctCMN2MA6cKgoNeMc04UkAQDkd/i6lwIJvGlQsK60Kv7gwc+HeL4CCHbzOOlnSGhcPRz1lMiQO3D+RRVRujUmYcmNScDkfV42XCgX7KIXG0LEZx4CcUV7YpmHG0zDhwY+1aahxxHAQMOHB8ii+Go5zzhDcJShzIptIe0gY3GYPWzTiwWnZUOPBaOWXCgWaHS78cxGtBJQ7MDfIobbM1nKHqDBxYbVsUB5ZKm5lwRBt4RbM0DnaMOKWuYpdDEW3T0n/fwYAGHFhuyDPvf/yRN+k7CDIDjs0urFwaB04Hu3ocTh+zo2iTQjqXIrDLWhzIHlI7FpuS08BK1eJwtlu+740hcCDUtzQ4UBJX42jgWZvrHTUOKK7+YI/QGLYtH46d1Yk2t3cmLPAuHs5urqrkqHFghK6jxcHayKOkDe6jhtdTBQMOgJPq7lyLuihWN3dR2I/CWI1AAziozOdWrIWGHkcc/pI2+/RISRt2LTMO8KACjdk4yhYLi4Ot665wUCqXW2dKHA76NN4izDjAw0zDjKMPG5fHga0jSnAQERxlpFmlZH2L4iCKtoca7VsMOIxH6/A4cNJqWQvjsLBBqhVFAw0OyMr1hwq10bkWR38fjULiQDosLIwjh7usSnCgZcABOQACGBYz4OiL001hCx6FwEGPQeuL4uiCI6S+dBtxQOvlY1h9WIiyc124cOnSpe9e+Dqp+D/A+DGgbr1JSAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/v_logo_cerave_crop.c0f542ec.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAABJCAMAAAAucruTAAAC9FBMVEUdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRsdHRs18KctAAAA+3RSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywuLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU9QUVJTVFVWV1hZWltc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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAALCAYAAAC00km9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMS1jMDAyIDc5LmYzNTRlZmM3MCwgMjAyMy8xMS8wOS0xMjowNTo1MyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI1LjUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJERkNENTczRTc5OTExRUVBODY3Rjk1MTQ2NDFEQjJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJERkNENTc0RTc5OTExRUVBODY3Rjk1MTQ2NDFEQjJFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkRGQ0Q1NzFFNzk5MTFFRUE4NjdGOTUxNDY0MURCMkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkRGQ0Q1NzJFNzk5MTFFRUE4NjdGOTUxNDY0MURCMkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5MJm/PAAAE+klEQVR42uyYe5DWUxjHf28vtXZVe0mp2GSzlVJpW5PUIDbsNMqldYsl1aSZkFEUSWjMlApt5Zb+QRm3GG1oRo0VxkgoM5ml8EdyrcYltO3re+pzZp45nde8+oM/8sx89/2dc57f+T238zzP2VSSJBOF45IDlC8cL2wSXhV2CX8IKaGLsFH4JTmYKnh3vdCc/HdUJpQi98bkf0qOELoJk83c08Ijwo6A90hgKS3UCbuFFsLdwoXCr/+yHl2FB4XtwtfIcq/wkrD0cHfybCEDzjYneY7wmbBT+EQYguEsLRK+NeMZQm8zLjKB1NLMF/PrMkMbngvM/kUROduYvWyg9Ub2uQScp9uErWbuqECuwmD/1ua5MJizsrcTjjEyuHEJNkvDmw70DKmP0PcQfNXSyFKM/WJUjF32ry/GQANZvEP4QfhJeM84vyqy0TbhnUhW8DRcWCvcL7QSrhLeEM40Dq6FZ7Ix2kiC6kazV3dhuXAfweDJlYy3syg6SMjjuYOwRHhTuB4955ugcpnsBWG1CdIyMsBYxj3ICtPZy+k+DZmeQPe2ZI91QnUgz1BhJXpNQJ9LI3I7O32cJcjvwl4jszj4Cg7nOORI6oXHWFyBM7ejqEu/neAZE9nsdvhvzmLgo1n3SjiFagKeXvBYY7Qg7WcCAzwkjDbjgfCcnuMJeAp+TyMIPE9f0HNYelK4gOdyoZJAvIW9Cgm4qiB7ZExwOTqDuWvN3FTh0YicS+E9L7I2nrVYlith7UTG57o/LxJ1Fea0Wji6jPQbIxsUQyJprxmnuo8Njrzfg/fPMXMdcfgS1gYxP5FT4GkC611zdPA8HOjS9SmkV0vudH8azN0jnBXZ6xq+XRBZ83Llmzlnn8YIb34k4J2tPsjSKF7J3iWRtSLWHrYnxdEU4RsivEFoMsc94YTuyGK0y0kX7YW3hJ7Bumt6nqEUxFJpKvj1SncWbiCTrMeQmwODfsXvsTk6+Gd0vkl4PFIHYykvHek9ElNn0znq1BH7hPRbMHaBvld4TugXkSn1N7LuJHtMIqD6OMG/ox41ED0DaE6qOZ3zSIXbgs1sanvZGH5qIIyrGwuEk4Tnc3REkzld1TR7TuDT+PW0NvJNS+2DBqktGaUOJ28J+AtMcHtqDvqKQ6V9OTZWJwvDjD1H/cPvzKEcuPK4wRvHnYQ9pIVJhvlOjnxzkEJ9OpgdzDneWZG5UhqWDMGUBJGdwXl277Cu/5ml9kxn/uJgvidNk3XwA0ENThHUnuqDdV8Pu0UMWRPh9VQbWZsS1Eev53AzrqS2e2qMZM4Rwd4u+Prz3J+D5PXfz1caEdB1uR8GtTjWRTcAp+yzwutBtFfx7kLGMxlfFzHGNPNuLR18P8Pnmr0fTQduaSYBuoiId43Y53TJtgF5hW+NprSsEs43POVkiGXU2IVBJ2/3qmOvi4I03Zr/I2SCfiGhmW2ki3dlbY1wq3lvpbGVbQoHm9I1n7nxOHuVadwqyKY1dPV1Ke6+W6gzefzH6hLuel+SWvZRP9Zxkjw5nqtN/l8WnI4KrjHtyA6/M1fCdSnFyd3N3e19UmQljdAurkuJuerkmdprqQtO20td20Tttk4pow6fYGpYfeSaNw6dXf/wWhYHl6Oz0+1d+L2jeqFTAXpbGkDg7qE8rjHveXttIGi640yXhT7Cwafy3U7wtEKHJuNkd8373s3/JcAAFgMr8iLjWKcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVgAAAAwCAMAAABjYpLxAAAAAXNSR0IArs4c6QAAAspQTFRFAAAAAAAAAAAAAKqqAAAAAAAAAAAAAJ+fAAAAAAAAAJmzAIuiFxcAFRUVFBQUAJmqEREREBAQDw8PDg4ODQ0NDQ0NDAwMDAwMFBQUFBQUExMTEBAQEBAQDw8PFxcPFhYPFRUVFRUVAIymExMT////ExMTEhISEhISERERERERFhYRFhYQFRUVFBQUFBQUExMTExMTExMTEhISEhISFhYRFRUVFRUVFBQUFBQUFBQUExMTAJGnExMT////FhYSFRUVFRUVAI+nFBQUFBQUFBQU////ExMTExMTAI+lFhYTFhYSFRUSFRUVFRUVFRUVFBQUFBQUFBQUFhYTFRUT////FRUTAI6mFRUVFRUVFRUVAJCkFBQUFBQUFBQUFhYUFhYTFhYTFRUTFRUVFRUVFRUVFBQUFBQUFBQUFBQUFhYUFhYUFhYTFRUTAJCmFRUVFRUVFRUVFBQUFhYUFhYUFhYUFhYUFRUTFRUTFRUTFRUVFRUV////FRUVFBQUFBQUFhYUFhYUFRUUFRUTFRUTFRUVFRUVFBQUFhYUFhYUFhYUFhYUFRUUFRUUFRUVFRUVFhYUFhYUFhYUFhYUFhYUFRUUFRUUFRUVFRUVFRUVFhYUFhYUFRUUFRUUAJCmFRUVFRUVFhYVFhYUFhYUFRUUFRUUFRUUAI+mFRUVFhYVFhYVFhYVlMTMFhYUFhYUFRUUFRUUFRUUFRUUFRUVFRUVDz1DFhYVFhYVFhYUFRUUFRUUFRUUFRUUFRUVDztCFhYV////FhYVFhYVFhYUFhYUFRUUFRUUFRUUFRUU9/f3FRUUFRUVFhYVxePnAI+lFhYVFhYVFhYVstrhBXODFhYUFRUUFRUUAI+lFRUUFRUUFRUUFRUVFhYVFhYVFhYVAI+mNp6uBm59FRUUFRUUFRUUFRUU////e8XRSrDARK29AJCnAJCmBmx8EDY8FhYVnqibHAAAAOV0Uk5TAAECAwMGBwgICQoLCwwNDw8QERITFBUWGRobHyAhIiMkJSgoKSkqKywtLi8wMjM1Njc4OTs9Pj9AQUJDQ0RGSUpLTE1OT09QUlJTVFVWV1laW11fYGBhYWJjZWVmZ2hpamxtbm9wcXJzdHV2d3h5e3x+f4CBgoOE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\"","module.exports = __webpack_public_path__ + \"static/media/v_logo_vip-lrp.eed70931.png\";","module.exports = __webpack_public_path__ + \"static/media/v_logo_vip-cerave.46bcb843.png\";","module.exports = __webpack_public_path__ + \"static/media/v_logo_vip-vichy.cc02a943.png\";","module.exports = __webpack_public_path__ + \"static/media/v_logo_vip-skinceuticals.8186bb9e.png\";","module.exports = __webpack_public_path__ + \"static/media/v_logo_vip-biotherm.e3f4b42b.png\";","module.exports = __webpack_public_path__ + \"static/media/i_cake-birthday.e56472f8.jpg\";","module.exports = __webpack_public_path__ + \"static/media/i_entry_event.183c3fab.svg\";","module.exports = __webpack_public_path__ + \"static/media/i_entry_challenge.6babc1b7.svg\";","module.exports = __webpack_public_path__ + \"static/media/i_entry_expertise.b63cdc4f.svg\";","module.exports = __webpack_public_path__ + \"static/media/Badge_LogoLRP.490bbb42.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/site-bienvenue.742a2c32.glb\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgSiteBienvenue.0c0fdb93.svg\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgSiteBienvenue_disabled.bdcea100.svg\";","module.exports = __webpack_public_path__ + \"static/media/app-bienvenue.df69b319.glb\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgAppBienvenue.864f9932.svg\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgAppBienvenue_disabled.22e5401b.svg\";","module.exports = __webpack_public_path__ + \"static/media/site-connecte.af5ae320.glb\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgSiteConnecte_Gold.024f07b6.svg\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgSiteConnecte_Silver.45e1efd4.svg\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgSiteConnecte_Bronze.f8d16b33.svg\";","module.exports = __webpack_public_path__ + \"static/media/app-connecte.c6a031e3.glb\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgAppConnecte_Gold.c9c9488f.svg\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgAppConnecte_Silver.5a64d970.svg\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgAppConnecte_Bronze.c243ad78.svg\";","module.exports = __webpack_public_path__ + \"static/media/expert-categoriel.63af777f.glb\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgExpertCategoriel_Theme.c71c7ee2.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAGACAAAAAAW/k8gAAAAAXNSR0IArs4c6QAAB/pJREFUeNrs3bFr3GUcx/HvSaes4uBW6Bh3p0zFxUWwc6HTHRrQoYhYxDMgBpEIFWpJcAiYtYX+AZk6uZsxkD37rbqIQ+4ud/5+lx/P8Xm95hB4ljfch7vnGf1dQKp3CoglABBMACCYAEAwAYBgAgDBBACCCQAEEwAIJgAQTAAgmABAMAGAYAIAwQQAggkABBMACCYAEEwAIJgAQDABgGACAMEEAIIJAAQTAAgmABBMACCYAEAwAYBgAgDBBACCCQAEEwAIJgAQTAAgmABAMAGAYAIAwQQAggkABBMACCYAEEwAIJgAQDABgGACAMEEAIIJAAQTAAgmABBMACCYAEAwAYBgAgDBBACCCQAEEwAIJgAQTAAgmABAMAGAYAIAwQQAggkABBMACCYAEEwAIJgAQDABgGACAMEEAIIJAAQTAAgmABBMACCYAEAwAYBgAgDBBACCCQAEEwAIJgAQTAAgmABAMAGAYAIAwQQAggkABBMACCYAEEwAIJgAQDABgGACAMEEAIIJAAQTAAgmABBMACCYAEAwAYBgAgDBBACCCQAEEwAIJgAQTAAgmABAMAGAYAIAwQQAggkABBMACCYAEEwAIJgAQDABgGACAMEEAIIJAAQTAAgmABBMACCYAEAwAYBgAgDBBACCCQAEEwAIJgAQTAAgmABAMAGAYAIAwQQAggkABBMACCYAEEwAIJgAQDABgGACAMEEAIIJAAQTAAgmABBMACCYAEAwAYBgArDaZLQhk/rPaN5ZreNsNK8WGPVztvIf/lY9XK9x+P5HQAC4K/tX1d1R0QYBoKPD6uzip6INAkBHJ+fV1WdFIwSAriaz6ubsbdEIAaCry9Pq5Pr7ohUCwNA74NFl0QoBoLtDC+C2EwAG3gGnRTsEgGF3wDevinYIAIPugLOnRUMEgEF3wOcWwKYIAEPugBfPipYIAD13QAvgNhMABtwBzy2AjblXpHj0bq3t/f+xA35e65pNmjxCMgFY7fi4lpmc1E3j42rUwW7dhf2P79eaTi/bPEIwHwEYbAe82i8aIwAMtgMeFq0RAIbaAc9PitYIAL1dPl9zAaQ5AkB/zy5qtde+A9ggAWADprXS9eOiPQLABrx6U6t8WzRIANiEp7O63Z8WwCYJAEPsgLOvihYJAEPsgK9dBNwmAWAzphbAbSQAbGoH9BTYFhIANrYDugh4+wgAG9sBPQW2fQSAze2AngLbOgLAxkw9BbZ1BKAZj0fraHlOX7ID/u5HAO0SgBwfjNZy0XMHXH0R8F7DR0gjAHQ1Xm8HnNZNL4tWCABdfbG3aAdc/RTY2MV+7RAAOntZc6ZrPAX2Q9EMAaCz3a9X74DzT4H98V7RDAGgu+8eLNgBVy2AnxbtEAC62zlatQP+Wjf9vFO0QwDo4ZNHi3fA5RcBjz8sGiIA9HFw6w44m1gAGycA9LH742074KkFsHUCQC9f3rIDXu0vWQDHRSMEgF52jpfvgId109QC2BgBoJ+H4wU74LIF8GHRFgGgp2+W7ICzgwV/SmMEgJ7uv1i8A85fBPziftGYe0Ujxnu1hrcn1dVfu3UnnvxyObcDfrQzfxHwgyf1r+aOkEsA/mnvDnGjCAMwDP/YIklPUNkDoOrwEGorEARDAqKiQdEmDYYgoalGcxvuwRFAoJpttkBnyT95n+cCmxXzZufbyT/TODoZf2K+N+zsXT/Z3AHfbb4K7NoCOB+3AOxkB/xiAVwFAeD+LseG1xbAVRAA7m//69hgAVwFAWABz4/GNncvgN8HmwSAddj7OO7waW9s82NwCwFgHR6/GlsdPx3MSABYfgfcdDGYkgDwH3bADx7gmZQAsIyToy0L4NvBnASAhVxtWQA9AzgrAWAhh2cWwPURAJZyemABXB0BYCn75xbA1REAFnNyPG5x8HIwLQFgORfjFucOAp6YALDwIeGbxxwwLwFgt4eEXw0m5kSgjvePxl+4/reXBT4bN50druwrxAhAx7ex+6vn6fHNTzk4Xd1XaHELwKIuLICrIgAs6vCzBXBNBIBlvTiwAK6IALC7lwWeeQZwdgLA7g4JPx1Mzr8ALO3yzfjtoQVwegLA0vZd9+vhFgDCBADCBADCBADCBADCBADCBADCHvwcQJVfABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABD2C+HezMsLyugsAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgExpertCategoriel_Oncologie.a79bcf00.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABHNCSVQICAgIfAhkiAAAD05JREFUeF7tXTlsVEsWrf7sOxMgwjHEoA8CsQihMQEgIMBIBEgghgkQCAT+SBCiMUtuf8Qqgm8jEIuAbxAEBGhMBCLgG0EK3wRILMGYfYe5p6ar5/btqveq3qt+bRiX1Gq7u17VrXvuVreWLqkBXr59+zbx9evXP9N7U6lUaqL3GUTyRJBtPuNDoM/6qF5f+bN++rvXfDZ27Ni79H//QB5yaaAR9+7du6ZPnz79jehqJkY2A4SYNJbB6aE2e4YNG3Zj1KhRBryY3WRua0AAAhA+f/7c+vXrVwAADSisEEC9P/30U/fQoUO7BgI4DQMEpujVq1cr6f2XNBCIYUq+DGJDhgypAu/Lly+V/wlghRc+o37030kF4BAtHePGjbvUKNNWOCBMGzbQoLUvkAVMxoukVr/HLACHtFGDxMETfqifBKCjEVpTGCBl3/BPGvgGG4PBfLzIrsfkf2pb5K80QHg5SifRtKcoc1Z3QMpRUiu9t8kBk4ao4cOH69dAKB8/flR4wbxZaG2jKO3XepuyugLy8uXLFhpcu4yUYIagCUVrgy/o0Bq8pEkrR2g7xo8f3+3bVmi9ugBSdti/EzHNnCAAMWLEiOh+IXTQvvUByIcPH2y+pocc/6p6aEt0QMpa8Zt02CNHjoyqESZqgtlDBIaCKAqf4398HqtAW96/f1/VHPUDx7+KgOmJ1Q/aiUc1NUZhbDvCWE4g/AO0ImaBnYfkmmIiMW5i0Gds3wRQAA4vBHwbgbIn1viiAAITRZrxLzmfGD16dHTzZGOKixnwUdDMmAWgv337VjYZzYTlBgThLEns7xwMSCzAiF0kGDBLMiKSn9UDFIwLoHCNxKSSnP2ivH4lFyCU9JtBREEzKhO8epgoMECCAT8xZsyYKsYY5r9586ZqVl4vUGA2YT5NgV8hYVxE4XFvVmHMDIgNjKyO20iaa1buAgODJr9VGTs3kSGgpPWfxFzp8POCkgkQGxhZ/IUtepGOWuagjGagHmbXZDL1IzBVJJlVvJOg8OjLlTbJIlTSr+QBJRiQss/4g5spmA4TevqqqsM5Jj7OwUBFgGFSHi5TKUHxoS+LcCHkRl/cfJFPmRLqU4IAsUVTWcCQPsHMGWwpCzNAG8O5uYJ2uOYe0tZLUGT/WX2OBZRgRx8EyIsXL6AZlfWKLJJkmMGjFErc6cSiKWaCJ80XZyQ3d1JzXFrAzRSfUErzlydKtGh+D6IvH83Upte3IkljB0lwq6mfxdbyvrjUAgyAElK4KYoxCeSBQ95I0eLo90yYMKHNZ3xegCAdQo0hN6VLXoLRhlRvmu360KvrwLRRYFGpH/KsqxNu/rKaYZfAackvlRb5pFlSAZFOPI86S2ZklfK82iXpyGL+fKSHm2VEXj5OPhUQpESo82ZDQAxpNG1xRtjCVtegoR0mAMhrOtEHZ1wM88fp5ppHn6f6k0RApKnK48RjmQrpNGXi0kwufZd+pflLitZ8tELWsTj5VUnrKU5AyiEuoqomdJI1FEwbBHemaX1Ao5CqSNusYPr0WRbmmeMswUXa+PA9HyMWuQiQma75iRMQCnHb6CGsgesS01TxQUgJkv1AguEzZNrbhxG8DjQJgMu5Smzz52MJaEzOqMsKSHlDwp+m8Rh2OomBLqbIdQ/ehplH2Bao5DyGP8cjxDyRXqhAyLGQcEyxbZywAkK+o5M6/Ds6jRlVuQbBoyb0BwFAWkSaJkwAIeUwLWmpGjyLtAo0y9YO/CHXvDRzGQqArb5I2XeR6dog69UAIrWjHo5cEiEdaw2RlDjExNHXUcvnYRYBcFJqRmYLYgBgo4Mvbtm0pAYQPiMvQjsM0TxRKG1/rKVYlwkMCbnzAsXnXjZfUgVIObL602Ry6+07+OBsCcAYM2bJQOk38H2MzIMvUHzuZZssVgFCvgM27Tc0XqTUoD8+gfJNFvoywVZPpuXrFUXa+uZBDH3/D/Il8Nm6VAHCs7mxZ6xJzJPr0yGTM65ZIZIuNaVI88xNJ9biKfE4swYQ6cyLkhiZGQ0JImwrjiFmVs6BQp7No50yiOHOvaIh3JnXa8aapr4hEo62hOr/V+UtS7lJzOMaFvpsHlB4EMOdewUQMldw5k3opChJkRIeopVJ6/Gh9HP/FfpsVlCEc6+YLQ1Io8wVl/A82mHCYrMlJ1TSG6UlXBCM2dKA8OiqKOeWJ23h0qw8kh57gcpHc0Qwo6MtAwjCLp0qCZVUn45tdXyzrOakExwh/pZ5Kk6vnMuYPBeEDH+bk1k2erhNLyrCFPTqVIoGhPuPkCgnKxh4jkuHzW7bJnC2/qTfEQtCVhJtE06udUUFNTzKQ1qewt8pJczOaRD/NpSHONY8gKSZCFcqxfQJiYfwyCQjgLQlJjmtNobnMaGx+EAaUioRY3AeHMu0enCQniIKB8QmBHImDdPETY8Pjeb0Ld75HlyXn0yjyafP0Dp8nNgIUeIOvShVBdFpg5f+IE96XO4NdvnJNJpCme1TXzr2El8ZLMqhc9uZpJWSkVlACWmDS2tRvpQLHiaI0JAeQhJXWRQ2IUxbtuWSFcJQKZGhz6b5NR+JD60jQvhLVYAUJRU+JisJFJ/FJL4zHm35aFcjTJYQzhvfBSBgqM9Odw5i6Ga6euyG9NGWGkAaMQcBoUmbrW0DCU2zh9bnGlVUtgLjlHMRaEjl2oKi5iAgJHRzcyiAoQwO2R/mI/khdbipbBggaaef5IBcDpenYHjKg0/0fJKNvH0fHxXC8LS6AwIQ6djTmCAdbtKeLQOMr5MOifrSmJvl+wEDCDcTSXY7y/E3yZikCJLPP3yisSxMT3rGCUiRYS8IlJGNS0uSAIE5Mhuu4chde69cY5Op/JD1/BjAyLFhpo5LI/+KxosGRDr3JFtvy+LassQuU+YKWPIsksUGhITpUcPmIXwwnNku0wUnbTTA3CqUxBBzi4/RINvW00ZuBTK0J04Mi1pPlozMMqvOK50yrZIWVOTtz/V8TeqkEcnFtIkfvq+nc/XN/tYLBN5uTXKRAMGtoO2oVOQM1TZYySjQA8l1nT/PwrCQKzeytB/6jDiHuKNhC1Quwm3XL8VY47Y5+3pqoS8wPKjQC1SNWsIFwa6DNY5r9XR4azsF5Ro8QmDYaH7ZmamLxTjbrnp5oYAvY7PWE5PXv5hNDqmhrzkAYzo2lxTbCEk6wZSVcP4cIiZzaEdGT2bZFoGC71nELDQlAWcufebg26I8kVh8RJscmry2AcnN0FkG8P/+jM0/O7cB8XV1uaSa5TadUOaHXFrpulbJ1WfIqavQtrOMk28iEbz930Y511ZSudFAnu2TqikJDGFGyODMVeE208g3x/ELbULaT6ubBJw05Wajn2mT71twbiVFZdISXEv3M/42E0T+QIxIJ22gP+r3MsJDGkdMCO/Snix9y5LzOAJAiX3By4/KcJ9xyaUAOf8gh95RBQiu7SN1+8M0DkD45cFFrib6DPB7qyMXwMzVhBgHmf6Z5uJMecawYrZgonj8PghIPhHggMCPsJ2UFXNVpSFlP7KB3iuHPvnawiAg8QBB4MF46z70WT4WjUniBNn9ICDxADEtEb9fkDPHj51Vfqis5uIAfq0GJ2EQkPiAEBC/El+r7spPvVrDkFGPQ/z5hvj9PO26OsTrao2yL+mkd32iypQ8y7uYkXZ3d6vTp0+rq1evqu3bt6uNGzeqadOmqdbWVvXgwQN19uxZfRQC9vXo0aNq06ZN6vLly+rChQvqxIkTasWKFergwYNq0qRJiW319/errq6uCt33799X586dU/v27VOzZs1SO3bsUC0tLbqv69ev6z4OHDhQ+W7t2rUVGrC+vm7duirkMRUIPbLh2BPgd/kMepczd3yWB5Bjx46p48ePq0OHDqnJkyer8+fPq127dqlnz56p/fv3a4bs3r1b7d27t8KMGTNmqHnz5qlLly6p+fPnq4sXLyp81tvbm9gWB+T58+dq2bJlas2aNWr16tXq6dOnauvWrfr/hQsXVrV/8+ZNfUQCYAEICIUBJAsIHEXLzdcvKNKa4X09ExqTF5jlAWT27NmaCTt37tR0QmMw2JMnT6rbt29rQFDA/JUrV2pmPH78WD169EgdPny4SiLT2uKAQPrRHoCHZqFAODZv3qwFwNY+6hgtrSMgYReYgSgZcdUTEDBx+vTpWmtQDCB37txRV65cqTIZMQCBti5evFjdu3ev0v6pU6e0eYI2SA0xBBhTWkWQxz8izV4TWfEm0i7BxI9frcQDeQ7zGKm8deuWmjp1qrbxZ86c0aarvb1dARBowpYtW7S/wMCNyYIWwYzgfenSperatWtawpPaMj7EmKzly5erbdu2qYcPH9aYLNP+kSNHtEDYAMlrssQmjhsU6ja7cEwEJNYGCO7Unzx5osAgOOm5c+dqp27MTF9fn7b1cPjSqa9fv17hBb9iAgRbW8b8GU1bsGBBxanj+SVLlugXTBh36gg05syZY/UhnHlZwBEXE9SEut4aEgsQD63+oavInSVJ144XoiE/NLc9BjcIiAeTiqwSDZBG3IFSJKOK6isaIPxSgUZvoiuKefXox7UYZesr0YcMAhIHHg4INsMl/WzFICBxeJ7YyiAgBTA5pItogDTqprmQwX4PdaMBgsE26tj098BoXxrlhurMPmQQEF+WJ9fjGxxwJ1ZS7dSfPOJnEAc3y4UDxBOLWEOntEnld4ODw148INdFkPXlWzSxPJm0y9zclZg2lHrvq03r32fbq7lAzdWW3KOMMYmjENZVQt5eqoaU10V6zUndtIENfm/ngG2HSSYNwUPlXY2d9Kfe+ztYwjiA486kXS0+P+udqiG863JuCz8yWWUHqcMeF4mkWX30fRN9j7OMNfu9zA93Qd19zEYYK9JrG5NrDiSZHzvmT0K66f8ONhZrw/R9s/gC+626+a8fpFEUBEhaY0nfl+c0bVSnajeLeQZg4LgaXkUW7ELHK8GHdRFNbbYNCfWgszBADPEAhqTwF5LIDTaNQT1zZA3aE1trwHhoQdKRN2gE0dBJ/XcUBYThT+GAmI7Lh01h/rBzL9E3mUM4AEie7ZOAcUk3B3oM8133oDBJvwvTRBO3br69sx6a4DTxRXbm6gtBAzGyhZgAgIoOHO4SUN0UzncWrQ02fjRMQ1zglH0NnCMueG6OHW7rC15KpR5qv4d8Q89AAIHzYsABIoGCaSuH3TjyNdFEMojcXGCVmd6HtsoRYD/5hF6EnY0yRb6W6D8JTJHEc/QXWAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/Badge_Oncologie.f17940d9.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgExpertCategoriel_Dermatologie.13fe3779.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_Dermatologie.6c0cf187.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgExpertCategoriel_Pediatrie.90c9829e.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_Pediatrie.b30cd8b7.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgExpertCategoriel_PlaiesCicatrisation.b4aa05ae.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_PlaiesCicatrisation.ddb25ecc.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgExpertCategoriel_SanteFemme.a4d20b8a.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_SanteFemme.7e623325.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgExpertCategoriel_CuirChevelu.153ee775.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_CuirChevelu.e05bc36f.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_SvgExpertCategoriel_MedecineEsthetique.bbb7a603.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_MedecineEsthetique.f1becc19.png\";","module.exports = __webpack_public_path__ + \"static/media/marque-parcours.d857fec5.glb\";","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueParcours_LRP.1c8e3b8c.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueParcours_LRP_disabled.b1d49c7e.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueParcours_Cerave.f1dfc230.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueParcours_Cerave_disabled.2d707a08.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueParcours_Skinc.4a758f12.png\";","module.exports = \"data:image/png;base64,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ueXYk08+ySf7iy++YCeeeCLvH+rYddddef9uueUWdv7553Nplk4zZsxgm2++OVt55ZU5Yx533HHspZdeYlAr0ScAG2MQady4ceyjjz5i2267Le8LmOLwww/nz13j/+j/sccey8GXTlhc5syZw+s988wz+QID6Tx16lS+mIh01VVXsYGBAbbOOuvwsZx22ml8EUomtAs6oP9oM5kwVny/6qqr8vnCIb9kwhs0Y8aMYdtvvz174IEH2IcffmgEXlPmVgHFJKZL1o4zUFChLLK4aKBccMEFDKrVzJkz2cEHH8w22GADziTUPp/Up556in388cdtQMFT0EsvvTRn2gcffDBz9Zo0aRIDYKCigelR57777tvMCwZbaaWVGIB45ZVXtjAUmOiAAw7gYMJKDSa+7bbb2EUXXdTMt/XWW7O1116b3XnnnUZzjYBS9APlXnvtNbbllls2y7388sscJFiNhdRAf0GXvffem+d77LHHmiBddtlled922mknLlU32mijZl0Y06233srtOiTUue666/K+g8aYQ9iGxx9/PAd7MmGhOOusszhIwOxpEGF7AGPYeeed28aMBWns2LG83WeeeYarn2kwGRFKkklxhZY2QljVbi6gyF7pKhoozz33HBscHOQrHwCRTJjsDTfckK+oaYmCfHfccQc75phjGJjmqKOO4vZOUtyffPLJHChgZIDlkEMOaQOUAMoVV1zRbBpqHxgPDH3KKaewSy65hPcN9cCGEmmNNdbgjDFlyhSj+U8CBZJht912a5Z75ZVXOGNhkYDaggSb5/nnn28yfLIRqJv33HMPgzROpzRQXnjhBb7KQ/qSR6iZHaoqaJdMN9xwA/8Oi0xaUqJvAAoWLwA0nfbZZx/21VdfMcxpJ97FVADFyTYR/a8EUK6++mq+ugrJgsmESgIV7NFHH2XXXHMNe//99zOBgoFC5YD9AtCAifFvkQAUSBtMONpIrroijwwoEyZM4M6BAw88kF122WVs/PjxbUBBfQDyXXfdZQyUww47jDMRVDCoSSJ1EiigMdRQSGEVA4MRr732WnbQQQdxiTJr1qwWmumAgnkD2OF0Oeecc9hJJ51kRBfTTDKgkMQfQ4vQkGk96XwdAYrsrleXTgobBXVC5YJOCw8YVv4bb7yRAwTqyB577NEGFKy24lk96Ob77bcf15+hUghDFEDB6gadGpLl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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAADKCAYAAADkZd+oAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF7tXQe4VMX1PwKi9GfvAvZYQUkUo/GhWLE8VBSxAKICRqWJigo8GyqCPEAlVsCCJVEeMZaI8f+wJkYDGqOxgr0rKEWK+D+/eXs3d3fvzJ1bdm+b+b79XtmZuTNnzm9OnbnrkCmGAoYCrhRYx7WGqRCIAj/++ONBuQ6qcz+rfvnll062Tq3/uz2nwaqwzjrrLODfF+f+Fv9v06bNPLcOzPf+KWCA4p92+ZbM+FVLly7da+3atZ2YiQGCDvzRBUAIIyjoAsBZxGNa0KRJkwWtW7d+jcdkgSrsZ2WmPwMUH0vNoOj0888/HwRQMENW808AI7aFx7iIx9gA8DRt2nQegwcSyRQPFDBA0SDWihUrOqxateo4ZrbqHDCqNJrFtgrPYTGAwwOsX3fddee1aNFiUWwHG5OBGaBIFgJSgxmqL6tTNXGXGEF5CRKH1bR6nudMI22cqWmAYqNLlsAhA5cBjQGKIwUstYq/HFouycF2AXHfxLu2GAN+Wr9bg0Idp8K2UMG/WcIRPij4yYxNxXWCShirPUDDv9e1bdt2ZtYdApmVKD/88MNxzAT9+FMTBmNZQADDAwTWzzD61u0DwAFo7D8BpJBKPfczg0EzJ6T+EtVN5oDCAOnLzFMbVHoADM2aNROAsCRGHFfekjgA0Jo1a/LSyO9Ycx60WkgZv30ksV0mgJKLcwzhnRbqlS+PFSQGgGF9krjY1pgBGOvjV+LAc8abRR0b/5OzoJalGihBAQKpwe5TAY5imyLJQLGPHWoaQLN69Wpf0iYrgEklUIIABJID4GjevLkwwLNUABoABh+vkibtgEkdJyxZsmQIMzdsEE8qFsCBj8z7lCXAYK6waSzQeJk7AAP6t2vXbrKXdnGvmxqgcPJhNe+Ik3K5Vlp0h8SA5MDHFDkFOCuB8PEiZXK5ZsM4WbMhDbRNPFAQB+GdbxIvhrabF1LDkiBpWMRKzQESBoCx4jiaz0WazLCkp8kkGihe1SwAZL311jPqlSaHy6pBLVu5cqV2oDMN6lgigYJUE6hZvJDVOmtuAKJDJe91vAKGn9DA3sNhScwnSxxQIEXYtqjTWVbYICzyjQTRIVaAOgAMq8DaNgxLmKFJM/YTAxS4fNlgn60rRaBiGSM9APf7aAr7BSqZZmlgQ79nUoKViQAKp53UMFCm67h8AQ6AxJToKACwADRuJXcupj+nwyCPLNYl9kBhKTIJotqNioicQ81KawTdbf5x+x7q2E8//aTlIYMqzdJlWNzmYB9PbIHiRdUyUiS+LKYrXWDox1kViyVQcmfS/89N1TJSJL4AsY8McRcY+27xF6hi7KHsFkevWOyAwvZIPybydDcWMFLEjULx+15HuuTslmFst8yI0wxiBRRd12/Lli2NyzdOXORhLLBdli9f7toibi7k2ACFJQmkCKSJtEDVatWqlSuRTYX4U2DZsmWuqhjPAicq+8dhNrEAig5IjKoVB3YJdww6qlhcwBIpUODZYpDAaLdfMVqyGuuvv75IYjQlfRRAoiXcyC4lco9YZEDRBQlULRMbceOjZH8PbxhUMVVB2j6rYd2iiuRHAhQdkBjXb7KZ3+vodVzIUYKl4kDRBYkx2r2yWjrquxn5UYGl4kBhF/B8lU1iPFvpYPggs3ADC/fdADUsyDO8tq0oUNy8W7jtBPlaphgKINbicgNmRV3HFQOKG0jg1YJ3yxRDAYsC8IbBK6YoFQNLRYDC6hYunsOJRMdiJIkBh4wCbpKFbZZhfAhM6yBfECqXHShuuVvGJgmyfNloq2Gz4EzLjHJSo6xAyZ1tny+bgAFJOZc2XX2rwFKJrOOyASXnBl4oS5U3IEkXI1diNrzxSs/lAywsVTqWKyBZNqAgNYWJVy0joIm4V4K10vUMjQh+2dzGZQEKH9+tY4TjalPHYkCSLgau5GzcwMISZTKflHQ9Ou51zKEDBRdB8CBwW4pjMQmO8iWybpZHjTTfoO+VSYvrayRS9gz7wopQgeJml5hUeWcWwZ2+SDkvjhkgtoQbZbJ2q74OkFQxlnLYK6ECRWWXGOO9dPllACmuaQDjDB0Xt3Go9kpoQHELKrLeqLNRZKaOx8viBF3MpX6l7MH2sJRnwgxGhgIUt3iJOeP+v7X0A5BiTjCA+R9F3M7gsybTOYxbXUIBikrlMnZJ46LC/oAd4uUdIyrxCrsFgDEnP0nQVXEzZSgqWGCgqFQuY5eQeD8iDM+wAFIMHgAGnkR4ybJcXCL3gfPBAgEFL/FhJON8ieNr4LIcL/HxSgTB7FYGNcAFkOmWrL/aQhVfgReMNZvOQV5mFAgorHIhXuL4pqusqlyQHLgV0eUsRQH/y5jcD9jQF870ZNGl7KKC1XNspafuxlMiuf02xDsTmSmQplJSsqhy6bp67cQCnSBB3F6w6uXCa6v/rLqUVSoYbx7d/L5T0rdEUR3pzZrKpXk/VR4jfg1xPw6BrEl2lRcM5+357EpnP8LBF1BUBnyWFsaPqzeMFB4/z82SS9ll4/J1dsUzUNzSVLIQWNTINSrZtMqxgXiVZBhUGED1syNXuo0sEOk3vcUzUFia1LLqMNZp4mnfteKq+ngFjF/Vr9LMHuR5KqnLYLmCVbBaL/17AopKmqTZgE+CMV1OZ4IXhopTXdlBLz9SxRNQVNIkjWkqSXTPIp6AGEwY7uk4Mb2fsbgY9p6kijZQVNIE7k0AJS3Fz+4ct4CfH5Cn0aUsu8XFq1TRBkoWpIkfgMQ9hcRPCk2aABOWVPEClO+dUlXSIk28ulyTZhD7cUSkxTmjkips1G+gowlpAUV1N1fSbROvAAFRy+Hq1VmsMOp49ZDhmUkHjEsqvlZcRQsorHbh2qEOxQuVZGniZ4dNMkCK184rYJImQYvnK0ttYXV7EUuVjm6bkCtQVJdFJDF4lXWd3c4QabTJZAzvEiR2vYxCByj1/PDjigeAHYZPjrkBMTbfGy+QfCkAmCyk9Ssu0JvJmcX9VMyqBArOmzASFzp1kBS9Ncy099igvkwD8bOZJCmtX2WPcurVBqpbJpVAUSU/xj2ny49aoZv2XiY+jU23SchE8EssRQ6Y8hSkG1Acjfi4v8ska4aqX6Zxa5dGh4fsPjA3o14KFNXNKnF1Cftx9SbRIeHG4GF/74eucVXNVa5i1Y0tUqDI7g+OoxEfl7T3sBk0bv15ldQYfxw3IplRr7q3WAoUWewkTrGENKoGcQOH03i8AiZuMRjZ+FXqlyNQVGoXXMJRX1yQZmMzCUDBGJPsLFHd2CJTvxyBIlO7oj5zknb3ZVJAYh9nUtP6vapfjkCRqV1RGmhexX3c0t6TCAIvY/aziUWpxivUL8cLKEqAogoyRnW7CtJOcFeWTol72rvOHJJcx2uKUFQeVJX6xeGPjsWX5ZUARRZkjNLbpStN4uhhSTLTBxm7ricySqmiSGkpySguAQonQTrmdkUZZNT148fNuxKE0ZLc1os3MkqgKF5GNIdzvwpuQHWSKI4HtHBNZ5QXQaveg1HMVEb9igZmXtUujDJKoMhUehwTLj7QVQAUlVs46tyurGS4RsPiwZ7qx5C3nhglUDAG2QZc7CYuAIrMPonaLWxfRj+LkqQM12AsW9nWfjKzi0cYNVAUB7oKkiQLgML2yQyeSN+4TcZp+U3QsbKgsD/NT7BRNtqogaJwFBWcUSmWKI7ZwlHbJyqW8GI4xkXcR8fiwZ+s64G0nmQ5WOCOdXorVtRAkXnnitNZ8kDBvV2sr33vRMo4pK24LbGuZ8zeT5QBVLf5xO17P/S1u+tlAIsaKJCOcBM7FfthrjxQZO87iTJ+4odZvO54eIaJv8gprRsPsffgxPxxBYrKoLe/TyUPFJkhn9SbVrwCxsRgCsEStkobZ6Ao7v3KG/R5oCTJkNeVNH6MzqwfBy6XkyTOQNEx6O1AaWAGPKiYCdOgliQ1w1V3QwijXrnd7nEGikK9nMcR+mrQ1w6UX5wIHlUiZBiLX9yHV3UM7dN0D68TTf1IXfTj1QiPM1BUx4MZKAIjrkCJOiIfJmD8AMV6ftoA4xcgFj3SBBSVQV8AFNUbfg1QCqGaBpeyH1dv8YaVFaBYni8hUWRASarHSyaFgkiU4j6TCJgwAJJWiSLzfBUARfbuE2QLIyqfliIDirUheAVSUlzKQVy9MgZKm0TBwUBkExcX632PQqLIgOKVGHEHlBtQMH4/untc0/r9pL0X22JZAYriaLB4hZ0AShpjKE6g1QGK1c4PYOJyTt+Pq1fmrMg6UKy7viygNDCDpDKGYgeMF6BY7fwwXVRp/X7S3t3AnRWgKOw3EUtRAiWqg//lUuH8AMUOGBwdRfBSt1TKpexH+ulmIGQFKIpYigGKxfBevHtBDGNdgHmpV24HRFhAkUW/42IH6wLFMSpvJIqcZf1k1YbpUvbj6vWTjhQWUHJhiBKCxuUIhwwo1vl5S/UyQGnZ0stGnq/rdUdHQz8Maz3QD0CD7NphAgVqK+gFb5ybbeRrMQI0cktjUQIlTVF50DCIjeK2Bl4B4zUGE5XKFyZQ3GgY5feqC/GQxmKAwqvjxUZRLWY5jOpypb3rMmVWgCJTDfF/A5Qct4QFFIv5wnDTxsUtbYBigJLfVMMGSpAYDFzKKFC1dEs59X0DFAOUsgPFeoCfVBIdkFQidcYAJYNAkV2hWS6JUszsfgxyJ8B4dQTogE5WRwaUOF9h5We+WsY8J0UuYuK3L35A2uIoMhdgpYBi0derh8y+LkFcvX4YSAaUrPAG25sfclJkh0ylsKh85VG4wr0AptIAsUAlu5s3K0BhOmQvhUXlAozqbgA3l3Kl8sWcpI1KHYliY/EjEXXb6KawNHCHJdnDads1QDTZpcxhppfoLo69XjFgogSINS5ZmkycLm33Q2unNoGAEjXzhEUEez8ydSeNix+UfrJNJSo1MOh8VO210uxlbwFOI0FUdkoaJahf5soanWQbaMHBrawcBbaYRvbuvrTdEeAXJGgnO0OetLuodWmgdRRYdu9wWhlH5W0yUoVEdq/sLcxpVMdVGwN/J158mqnriuy7i8ztmdYdU3dnRT3F23Ipbd4uiy5a1xVl5QI8HaMeddIqSXXAIlO50DaNNqtFE8XG2Y03h4ZMXalazCiqnTPNTCEDjEolTbuklQGl5O5htlMWMzHaFRMxzTq7yrMDOgQ5iaize8epjtvJySzyAce2lnD6ShXWKROvfVAxpFsaSRbA4gaStEtXT699yFIspRg4MkPOqocoOQCTxoIrmFRnXyqdMBoFjd1iKAUSJW2vpvNKcFkU2uoHkXuoH9DV01CQMoMNQnVPWVayFRQbpXANFwAli56vYoZ3AwvqpyGOoHPVUVZAgjV183gVAAV/8B3EjtcWxeXupSA7OQx3t2KddXerB3UELmSdguei33IWSDmMSacgmKhDCxzM0pGeus/VGVsUdVSvz7Y8XiVAkR3gCsOgxYBkYl61cCpGQ3/lZsIoFi+NzwToIKWcihvQZWBEfzpgVtFTZshbB7astgUKt+xWe6/GLBgYAwCT6+xeaWQMM6fKUgBgwge8KgOk04gUzoyZLFH6yYCCL6YXd6irr2J3x4OdXshSWbKZp2WZAlCLoQXpSBtF0DlvyJeoXpy+0IElwUInIrvl+Lj54rO8cGbu0VBAx2SQGfIsmTqynbbIUaLgn37sFAOSaBjBPNWdAiqw6NonJRIF//Bqp6jOVbtPo7I1/Bh/lfbqWM+rtG3n9Xkq50xlV9X9abL7EHTtExlQHO0UVHZSv1SJhU5TkDGeyisCBlcZaKq27mQ0NcpJATfPJL6XeUNVbb0AW5bQKVO7mB4F9okjUFR2SjEy3VQu5Ajho2NUlXOxTN/ppgCkG4Ko+MhKsQqmSogttk8cgZJTvxbwz72KH1qcHKfKkYrq+p90s4SZnYoCKjOgOGdNkQz7GruFOxU/xzFxSZb3VSzCZKIrDWkehiWTSQFVeo7ddJCZDCydhnFqfZ0WUHTUr7jdupjMZTWjLgcF3G63VEkeJ7VLqnrhC5mb2FK/4nKPbzkIbfpMNgXc7kv2qnYpgSI7n2KpXwYoyWamNI/eDSiKbOHJrJ4NdaKN9HAF63CdWETNd2pkZZZiQMUlCwd90sxkaZibCiiqDHEOQXTmTHk4skqK8hQSBx8dvV/IpYEK5gQU3bywNCyImUM8KaACCox9SS6io7fLmqEbUPpxxZIkSTSGXxqRTafilhcWT/KaUaWFAjLVSsWzPPeSIKOdHkqgsJiqYqmClwyV3M4CiSIL8BigpIXlkjkPGVBkPIvbVjh20oH5fLFsxq4HwGW5XzDqZYemDFCSyWBpGbUiNUU2xYKzJ55tFDRQGfWypxqgpIXlkjkPr0BRGfFaNopVSWbUG6Akk5HSPmqPQFEa8V6BIjXqnYie5lsF085kSZ+fj2MfSiPeE1BQWRapN0BJOmula/xu1+TaZ1t8gYSKEq7GvE390pYqRqKki/mSNBsvQOF5aUkTzF8bKF6kSqWA8sK/XqdlywtjObjIcb3m69LGG1TRju234Vs5Su/feur5l2nl6sazC/vsujNtudkmjrwAr967iz6ml19/k9798BNa8uNScYAMfe+2Qwfq2nkP2nSjDUra/u2lV+i7JT9o8de6HLw9unp/Wr7iJ3r6pVfp57U/i/Ef1KUztWvb2rGPRZ98TvPfeofWaNxVhg56HXEwff7VN/T62+/TqjWrC/pssk4Tat2yBW2/zVa09RabOj7vi6+/pZcWvEE9Dy15H67rHP/O7Taqakc7dtjGtW4YFXSB4kWa+AFKLbuFx7pNSOdQv1sfOt//5sSz6D1mYHuB2xpgacZX12zHiz9q4OnUgxnRfkJyx0NPom++XyKa3XXtpY4M8PW339PYqXfQnKefpx85VeenlavyVy81a9aUWqy3ngDJoN41NKTvSQUX0HU7/Tz615tv60yB2rVuTf95/D765Iuv6OAzzqflHMTduKqK5ky7nnbfaTvHPmY9+hRdeP1NtGzFCq1nLHl1LtXPfZaGXzeFvl/yY0mbpk2bMDib04Fd9qLa8wbQLtu3L6jz/Cuv0aCxN9Dsm6/1xPCLf/iR+gyvpUGn1NCxhxyoNdaglTwAxTGdXvZ8TxJFFYC0P6BSt5/vfMQp9M7Cj5S0bc479tjzzqThZ/am9Zm5UTbr2oO++q4xtvTApCvp5KMOyfexZs3P9Pi8F+m8K2+kj5l5dcq+e+5Kt199Ce3KUga5br85YQD9843/6jSlqjat6cOGR+jjz7+kfXudzcz/E2264QY0d3od7bnLDo59zJz9uBjf0uV6QPnl7Rfoj088Q4Nrb6BvF6sl3U68899SeyEd0rVL/tkPPvY0nTbySrrg9F50zfBz8nRUTRDSeNKMB+nC66bSHdeMojNPPFqLHkEruZ26Rf86AcbicXgCChrLXowaNVD222s3liBbimGs+GklLfr0C3rtv+/SWl4wSJdpV1xIZ/U61hUoDz3+N7FbWyBpzqrbr7bvQPvstjNt2K6tUHc+/vwreoWB8NFnXxAuS23CImyf3XemyZcNFerYiGun0DusslkFv1t/b7npxrQHSwqoXCit+OpSSLWFn3zmCygbb9BOSIKqNm2kPIb+7UBp17oV/XbvPamKVTt4ib5jKfPKG2+Jnyhddt+Fnps1jQHRXPw9afoDLI2m0mYbbUh3j7+cDjtgX1d+bvjHv6jm3EtoydJlNH7kuTTyrFNd24RRwe01HjmgXMGHs2q9PM8zUHJgQVpLoXy2PTUKiTLl8qHU5+jDxCjAzIt/WEq3zHqEbr7vYdb711LXTrvR0zOmUMsW60slyoK33qVjB12UB0krrjtq4BlU0/1A2nrzTakl57et/WUt2yrL6P2PPqG6mQ/R7LnzaDVLoaZsu/zu1534GZPpO961V/Mdv7lFoQl33S92V5RjDz6Arh0xiDZo28jYUBU323hDevO9hb6A0ulXO9I0lgAAs6y0Y6llB8rOHbdtlIC5NlD3YIudcfHV9OmXX4u5PHrreDryd11FlxffcAuNv+O+PIga7rmJWrFdIytffvMdnTTkcnqWVTaUixgk1zNYKlHcgOLVNrHG7AsoHICs4Q5myyYeBVDudBDv8998h04eOloY4tttvSU9ccdE2omZxEn1QkbpAacMpn+w4Y4CSXLfhLF0IhvCsgID/MxR19BDrNZY13BPHT2MzjvtxIImY6fcQVfe3JhbCjXvlrEX0oZVbQvq/OfdD3wBBZJu5vWjabcdOyr50A4UAOT+G68oUe0m3DGLRt5ws+hn5IA+NP6i34vfTx1RS7P+Mjff/5AzetGNoy5wvBkHNsKEO+8X9t3KVY2OgzNP6EF3jru0EjghN6DwIHpyXle918H4AgoewmBp4B+ObhCvdxV7HbRV326jOAHl3+zlAVDe+uBD6rj1FvT4bROFoeoElEefeZ7rjqEVK1eKHfXywf2o9oIBrkP7dvES6t53CC1gNQ9lI1bP3nnqwQIgJAUoN93zJzr/6kliHucz2Kcw6FEOOvXcvHTA37Cr7uVN5KiDupbcsPPKv9+iU4aPpfc++jRPu5pDfkezb7nWlZZhVHAByjwGSbWf5/gGiioHrFKHt9yAcuNdD9DoybexJ2kl/Zr17mfunkqtW7UsAUqvI7rRcLYrpjKjwKbZZbtt6c/Txmt7eOBROuH8S0VblHr2Dh3X/Xf59UgCUD5hu+u4cy9mb907Ytwzr7uczuh5pPh9+0N60QdsQ1kFNln3/X8t7D54Fq2yevUaOmbgSHrqhZfzEhbfHbDPnsLmqURRAUUnp0s2Rt9AQYeyzOIogNL/+B5iQcS42IB8hG2H53I6Mv5317hR1P+ERs9LsUTpzh6e00ZeQU8+9w/x/anHHMZMMJLaMKh0CmIUXU8+hz787EtRfdQ5p9M4tkOs4hUosI361hxJm2+ykePjoVI+xp65VcyY27Dt1OeYQ0vqHtvtQNpu20bnBopd9dqcbaIzuP8tNt1IuLz/+8FH9PBfG+h7dueibMJxok+fmyNiUGD+TdlLuJhjSPYCxrlyyNl0+bn98v8eXXc7XT1tRsmYd+nYnt56cpYOKQPXUVyh5ZohrHp4IKDI3tIVBVBkk8QE4ZqE8WpdxFcMFBj6p154BT3/6uuim+H9e9N1IwY7BiudnvMtx2SOHXwRvTj/DfF1sU7uFSiBuYU7eHjqNXT8YdWOQFHRCsHUq4aeTQM5PoTyFceTEHf6YdlyEZ3G/6c//BgHbFezF7ANwbDfY+cd6AWm3ZFnjRAxJwAdtthdXM8C3ld/b/y93EUBFF+2iTXeTAAFAceJl5wvDHmUYqDAtdxnxNg8o8OQHTd8oPZbteDl6nneKHr2n43HrfsffxS7fC/L80RSgHJI131o4Mk17O3aT6ioKG8v/JC6HD9AxGxarr8evfDArfSH+2fTbQ/OEepVZ/a6Tee5jp58Oz3W8KLYjE468mAa1q83/abXWaIPuOdXvP6MNj2DgEkGFB5XNz7+0eC377IARXbXq99BytrZbZSzeh0j3LMo8GC9zerErbyYUBkwycMP3E/ssk7u4W777k2nsUSZ++I/RfsBLIEQE1G5QO1jwq6LaPyb7y8S/y52h3oFChjyxMO7capMycFS0T+e88zfXxWqF+IyNWwPQV2yl949uhdE2O2qF+qecHi1SF2ZyK5ry2OH4CuY3H4F7kvz/02H9h8qAqFbsCoICQIaHjvoYpFGA9rCQfLBR58JKbM1pwP9ccrVwl1d1eXw/JC+eP5R2myTDcNmgZL+YgkUlUFficNbbsb8c7zD973kag7mfU7Qy2dNrKVu++1TIlFOYBVl0NjxdNef/iKYBgG3R24aR9tssZnWwr7Kwcf9ew8UjIty/4211LvHofm2XoHiJTIf1D3c64LLhH2CeaMvODzackDSKo81vEC9LhgtvIG7bNeenrh9IrXfanO6p/5JGsYOEHtOG7yFVw45iy4d1Fc0b7lnN27XmFO3oH4G7cXSp9wllkDBpGUvSI0DUFbyjRv9L7mGHuAUDEgHSAnYK07uYaSFDBwzXvj+kZR485gRNICllFtBysspw8fQn5jZUOAAePvJ+9lQ3jgRQIFt0fP3o+jr7xcL2+Imnndf9nZZUuXu+ifonNHXC7ogVedh3kC2YqmBPC5kMNzJm4tVajif6z7ejCBxUOzessdvm0BHsju53EXnDb9+xhBI9Yo7UKCC9R81ju7781+pBaszCJLBGHUCCpIg9z3pbCF9UOBNeowXd4+dt5fSFflM0zj6P/zaqULtQIHadd2FgwvUlzhLFHgIz62dQEi0RDmGMweQ6wUwoEy5+yEBCGQfHMou4XsnjOFk0EYVCtH8/U46R0iVjlttQU9xftoO7bfO0+u3LGUtB4fd3eyHUXXb6L5BS7c/q15qgHL7VRez+7eHmBfCGchhgg7dj1UvuD+Rp3X71RcLT5AsKRIqCIx6S4WCTg7GQF4Usmutgr6RTzZz9hM0auK0vEcITPKfx+4VL9y0l3IDZQbHPFSReUgHVWR+ztPP0YDLxomESdhH6K8X2yooY9lIH3frPSIt6ES2a+A9rMql3+B7BGoRYBw/8vc0uE/Pgg0Cap0laZG2cwm7zctdZECxvwrbzxjKBpRKvPbBbqMcxXlJe+Z2fywqDGwY55/zWQqUvXfdiepvuU7YHars4WtvvZuuv+1ekcyHgpys7vt3EQE2/A4pgoTJuRxU+z9O/AOoQMSdOmzLkeyhjgmD5QQKJB/iPoiJyErfmqNEENDKHi5OYVnKrt/ew8ZwbOYl0cVB7BSZO32ycI9fcNUkkS+HYCqcHFMuH5ZXrazn3Tvnr4JGxXGf8znD+SZui4K0lzpWfctdYgsUziZe7HTvVyUOb+mk2WNh2rZuSbMm1FKPbr8V66QCCpgGrs+rbpnOHrNGsKAADMimhbSC7WN5ivDdr9hk6VSfAAAGgklEQVTIhW6PgGdztm+KSzmBosN47z71AM1/810pUNAHzpx04/Mw2GTW5fM2cPnCc3Ymq673zHlSzHc4u3yhVjodhnMax7hpM+myutvEV/CmPVh3lc5wA9WJLVBkOV9xAAqYe2/25GCBtt/2f6kWKqBYq4RsXhj3VhDSafVweOvcPseLmIsTQKw2SQAKxnrykNH00JPPiGFDesIpMZjtl4efahAbRe35A2gMn+3RLfAiDrisMcfrwC6d6Nn7GhMuy1Ug7fHeE6cSB9WrgQdWkhxZCaCMmvgH+uKbRtUKMQHr/ESzJk05KbGdcPPuu9euJarCGNa7rUNPZxx3BHVitcypwBnw8utvCbUFaSM4CoysA7iau3beXQTmkOvk9uo9HD2e++LL4hGddtlR2ElwLtgLjttOufuPtPrnNWIu55x0XIHnzF4XiYf1f3s2n53rxniXnH06p9d8Ibx/SzlyvsUmG3P2wNG01eaFR6BhnN/20Jx8d72P6s5net7jpNJFfOamiZhvNcecdMsb77xPM9lrhgKajTizj25TX/VkpxtxUIvPnxQGmjw+IQwbJTKgeJxr4OrWzZhuwAj8INOBLwoojgH7zhq2BlI2oJjX0/laa9MoAAXiDpQZPLfGUKytVOrwVgC6mqYpo0CsgSI7Q2+AkjIuTMB0YFPy+0edRhq96mWAkgAOysgQFYe2DFAywgNmmhoUkAGFnS/SdzNqdCuqBDbmZRKlUoe3dCdq6qWfAjKgsLfS8/VExdQKDBQOOPbjTkteX2eAkn7GjNsMYw2UqI8Dx22xzHiio4ABSnS0N09OEAVkh7ZioXoZiZIgTkr5UBUXS2i/3kFGosA2igwoeGAlTjmmfO3N9DxQoFzHgEPxenGApwPfIL7QaT4GKB5W2VQNTIFYAwWzi/LcfGDqmg5SQ4HEAqU1vyTHZNqmhg9jP5FynZcPRfXKSRTc/LZXMSVNBnHseSs1A1TkeVHQQ1thAmUGd1aSQWwM+tTwYewnsmzZMnGhiEPReo+82wQDe73wAJXnC+9OxDsdEakPoyCVWlXcvkdbEFRCVGXfaGMd3gpjLlH2AZXY/l5L3bFgHXXUabf1dvtedzxYD9gmivUM7BoOTaKo1C9rwlgU+zU+YGgZ0+kwuy4hTb3kUUAGIgDU/h34BCqXrPh5V6Osr1AkiptUSd5SmRGnhAKhSJNQJUpOqvTjnyUJkikhuplGsigQ6H0oxVMNTaJYHbO9Uscib0iyaGpGmzIKzGFPV+MLXkIqoQMlJ1lqGCwznC7GC2ncphtDAUcKhJEA6dRxWYCCB/GAqzhijzs0+6letR1gvecVt+VndvD6LBiHcDL48QChjY4HKMAcQ2sKx4lfTx+nKIlX2HkpeE0102ZRURvcrVUSb/PSr1NdGO38rHpex9oWLVoUPzNo96J92YBiH13uPSqdwMjFo2Zma3CaSbNmzRb5mTQOkvFzar0Chp8nAIOfpjS+jAkAUXmVJEwLgNSy6jPDKx2RN8jPK+ER9MMgr3bobzHzz4Igb9LSHWNFgKI7mDDr5QBT51X9g4QAYPxKmTDnUOm+IHEAjlV8t7LXktvVh/oBiNdnRVE/tUABMW3q31CvgBHiNgOgscABgPgJpgIgTKo6Bgg2pcVRMHElnplqoFgEBGDYGwcHg2eVzL4IkDKWTVOJxSnXMyybAz/9lpwNUstqT32aAWLRJxNAsTND7jKMfvy/kovFvTANDHmABh/YNXE16iElYGfAGMfHj0FfRBc4UWakVcWS8UDmgGIRIpefBsA4JnN6AY1V1wIOQGQByU8/fttYQAAYLGD47cuh3UzeDGZUwnAOccyhdZVZoBSrZfw3XNmhuy7xHCs/ye5RK85nckpSdErCtLtpLY+UV9etB+55jevWZUW9UtEl80CxEyfnnhzKDFrj1b3sgfliXRW2B0vDegZ1nR/3fKwnF2BwBigS4iH2wzt1NQMG6llZJE2AdQu76WvIpGAp18CnUnEIz5QiChigaLBE7gKNaq4Kz1mnpEubnMcKgEA0u8FIDncmMEBxp1FJDRtwqpnpIHXa++imYk1ywGjgBzYYYPgjuwGKP7oVtEKcxkrTYf2+A6ROTvK0C6F77S5y0fEFDNwFbGctQnoHVKksxDm0ieSzogGKT8LpNLMAhLrMuJ34RxUzbxVAZG+vSuZ0Si7MAQFRcJHrhL4MIHRWxH8dAxT/tDMtM0SB/wfkKa4zWy41YQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueParcours_ScienceMd.38dfb409.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/marque-miniparcours.ec3f7626.glb\";","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueMiniParcours_LRP.8dbe1ab3.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueMiniParcours_LRP_disabled.c4e4c607.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueMiniParcours_Cerave_disabled.3b964d7a.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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g1x11VViq622Em+++aZYbrnlAsbeYYcdAqaNql4Az6677hoMBgYwOpti5lxkkUUE1Laenh4xefJkceCBB4plllmmSTMwGGa+hx9+WGy++X9CFCrTCy+8IKZNm9aUFAASGARqlWT+1VZbLQDBqquuauQHMPuVV14Z5Ee9vb29gZop0zHHHBP09/3332/+Bol53nnnBVISjII9FwhMvffee4N2QfoiXXzxxeLwww8P/kYZAHvY9kOZo0ePDgAJ+w/1A6zTp08Xe++9d0vb99xzz6AM5F1vvfVann3zzTdiscUWE5999lmTDuEMABgmmWWXXVbcf//9YptttjHSxTaD5ggtY4Swro5UQFHd0tUJoIDwGLxNN920pT/YUfnuu+8KSBsMchQoIBxm32uvvTZQf8B04TIkUCB1nn766WD2R75owswHybPZZps1Hx177LHB7A7GvuuuuwIQAXBgHMyWSDNmzBDjxo0L9u7EqUPRei644AJxxRVXBECRFxthVpcJdd50001tQAHAomoQ2gIJjFk/mm655ZYAKFALZYKURhm33nprS3YwvJSOePD111+LM844I5CuW2yxRdD/cAIwF110USVQUBZUYIDWRg20BQnyaYCSyDaRdZcGKJAoUFOOPPLI4AjOt956S7zzzjsCjIUBx+yO51GgoKPID/UFAwMphNls/fXXD2gggYKZFzYPVCxaiLIGyllnnRWUC+Z9/PHHA9CGgQKJA7UI7V9rrbWMY47+wA6Dujdz5sxAWoXtqU4CZc011wxUMahyuoR+oi8A4r777hsAAsCQyQQU0Oykk04SqO/SSy/N1JmhAgoBchxJ2SHjACgydAQoWd/NLm2UlVZaKbAlYLxDbJ9++ukCKgCkBBgozkaB6kAGXNB9zP4Q+3AGIH8YKJBI+H2DDTYImD561rFKooCpUe4uu+wSABB2DtRCKVFgQEM93GSTTcSdd97ZNoNCXwfDyBSWKPCUgZZhewMzMVTQqOoFR0bULnGVKJg8Vl555cBLqEuwYWA7YQICkEEvAMwWKMgHew4TDGyaV155JSn/tr3nJVB0Bn2Wm7egW8MohOoCBpw4caLYa6+9gtu8oHLAdawy5qHTg5mliId6BgMeAAsDBaoXwADVCwazNLDlSMQBBeXANkDCAEENAQN8/vnnTaDgGVSZ3XbbrSnJZFsAYrwDSRYHFPwG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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarqueMiniParcours_ScienceMd.92284e3f.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/marque-privilege.c4dcc82f.glb\";","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarquePrivilege_LRP.6ed4dccd.png\";","module.exports = \"data:image/png;base64,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dNQsqxQJAPGf7AAQf5rpSkgHpji/j/TwskG4AZtHKwDEf7IDQPxplgYgPrYH1+8lQVCINg4X0dcm05ACQPwnOwDEn2ZpAEJlFlPc1Waf1rwB0gHJOH1fpWuoze/U3rdvX3TgwIHo/PPPj2bMmCHSmSRt9NZbb8V5Zs2aFZFRaMxfNkBcx/HKK6/EZ39cxuvDdEXltahY2wgcI75tpwKI9GbcIg9NnXvu16O77roruvfevxDHCQb49reviL7//Rujxx9/XJt30aIboldffbXv2fTp06Nbb72NPrd2n4FRHn10VbR9+/bub7NmzY4eeuihaP78+T11PP/885T3UQLH7p7ff/Sjh0j6Ho6f/epX/9fzDAD5r53/Gp39D7dHB//ob6PJ+16Ppr78d8YxIs9nF1weP//t045HHz7we9q8CxcujNAugxnjuP/++3v6lhwHaLds2Z09Y+XKr7vuumj9+me6be3evTu65pqro1tuuSV6+OG/ilat+uvoySefjH72s619CwgWDOTFYqHW4cuwUn4JILaYK1O9qQDSkSJj9L00WXEdAIKJAiPSihG99trr2tUbADl8+AhN7MM9Q9iy5fnoqaeeihnrtttui8DwN988Gl155ZUxcGbPnh3t37+fGOGJ6IUXXojWrFkTLVlyU1zHHXfcEf34xxsjMNKNNy6JmQR9QH4Ab+PGDV4AOfqdFdHn517UN3f47cRpZ/UABP1F3ziBIVetWhUdPXokZliMa9myZfE47rnn3rg/6BdohYWCx7F06Z9E+/btj+nC4AewkPbv39cdK48X9ULK7NnzbpxnwYIF0fDwULRpU68mc999fxlt2LAhev31fxOlaRbACFdRiRG7UpupAWKSInUAyOWX/y4xwT0xg+CbGVglBACCtHnzc330wSQPDU2LV7orrrg8mjdvnnbVAzNBqoABt29/JWZAFTDJihm4rhJElRSmSWQJ8pOfbOqTZrzCP/LIIxE+tnFgMbnoom9Gd999dwwiKQGAoM2aNWujO++8IwYU6Awwfe97i3vowL+tWzcWXX/99VkwIJYVAOJte3BDrQMIr/i/+MWeeHXcvv3VaOvWrX2ElQACxgdzQWI88MD90c9//prW5gCTMENhdcQKLqkPZQMEg4ZaOjIyEo2PjxvHwSoppBCADtCPja3vA5xKxA0b/jG67777onff/c9Ych44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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarquePrivilege_Cerave.621958cb.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarquePrivilege_Cerave_disabled.615634d7.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarquePrivilege_Skinc.e52e6c86.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAADKCAYAAADkZd+oAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF7tXXWMXUUXH1yKLBIIvsWCBFg0SKBb3NsiIWj3g0AI2sUJVjxot2jQbkkgQCBskeCwRQP80S3yD9YluLdAcfnO7/bN6333jd4712eSl9fumzty5vzmyJw5dwHmi6eAp4CWAgtoa/gKiSjw888/j2o00N347vjvv/+6Qo3yv+v6GeQVFlhggSH69+zG/4O/L7300tN1Dfjf41PAAyU+7ZpPEuN3/PLLL5v9+++/XcTEAEEnfUwB4GAELU0AOMM0pqEFF1xwaKmllppJY+Kgct1XbdrzQImx1ASKrn/++WcUQEEM2U3fAEZhC41xmMY4CPAstNBC0wk8kEi+WFDAA8WAWL/99lvnn3/+OYaYrbsBjA6DxwpbheYwG8ChAQ4sssgi05dYYonhwg62IAPzQJEsBKQGMdR4UqfGFl1iJOUlSBxS0wZonlO9tBFT0wMlRJc6gUMGLg8aDxQhBbhaRT9OSEtykF3AqG1Gu3YwBnzzf/NBoY6okC3U8meScAwfFHwTY7NonaQShj8P0NC/+5ZZZpmpdXcI1Fai/PTTT2OICXroM9YFY3EggOEBAv7tom3TNgAcgCb8DSA5KgPUTj+BZpqj9krVTO2AQgAZT8wzMan0ABgWXnjhABBcYhRx5bnEAYD+/vvvpjSKO9aGB20ipEzcNsr4XC2A0jjnOJV2WqhXsTxWkBgABv+UcbH5mAEY/okrceA5o82ij4z/yXVQyyoNlKQAgdQg92kAjqhNUWaghMcONQ2g+euvv2JJm7oAppJASQIQSA6AY9FFFw0M8DoVgAaAwcdW0lQdMJXjhDlz5pxKzA0bxErFAjjwkXmf6gQYzBU2DQeNzdwbh5kTqmbDVAYoFHzYTTvipEasldHaQmJAcuDji5wCFJXA8LGRMo1Ys14K1hysAm1LDxScg9DON8nGzQupwSVIFRYxqzlAwgAw/BzHsF+EyfSWPUym1ECxVbMAkMUWW8yrV4YcLqsGteyPP/4wPuiEOgZ1eNlll52csOvcHi8lUBBqAjWLqNZtQjkPEBMq2dexBQz1MEjew94yxpOVDiiQImRb9JksK2wQEvlegpgQK0EdAIZUYGMbhiTMhLJJl9IABS5fMtgfMZUiULG8kZ6A+2M8CvsFKplhGSRDf1xZDitLARQKOxlLQJli4vIFOAASX/KjAMAC0OhKw5X8P3IlI46s0KXwQCEpMgmiWkdFnJxDzarqCbpu/kX7HerY77//buQhgypN0qW3aHMIj6ewQLFRtbwUKS6LmUoXGPpFVsUKCZTGnfQXdaqWlyLFBUh4ZDh3gbGvO3+BKkYeytFF9IoVDihkj/QQkafoWMBLER2Five7iXRp2C29ZLf0F2kGhQKKqet3ySWX9C7fInGRxVhgu/z666/aJ4rmQi4MUEiSQIpAmkgLVK0RI0ZoiewrFJ8Cc+fO1apiNAvcqPxfEWZTCKCYgMSrWkVgF7djgFcM8WOaUgiw5AoUeLYIJDDawylG2+i2+OKLB0GMvlSPAgAKAKMpuXvEcgOKKUigavmzER0flft3eMOgiqkKwvZJDRud10l+LkAxAYl3/Zab+W1Hb+JCzhMsmQPFFCTeaLdltWrU1xn5eYElc6CQC3iGyibxnq1qMHySWejAQm0PQg1L0ofts5kCRefdQrYTxGv54ilgAJZMvWGZAUUHEni14N3yxVOAU8DAfZwZWDIBCqlbSDyHG4nC4iWJB4eMAjrJQjZLL10CM7rIl4TKqQNFF7vlbZIky1ePZ3VgISrgTkt/mtRIFSiNu+0zZBPwIElzaavVtgosWUQdpwaUhht4lixU3oOkWoycxWxo45XeywdYSKqMTOtAMjWgIDSFiNctI6A/cZ9PGSSWQ/7faII5nhi8bqldZTxjcIKfmts4FaDQ9d0+WnSkNhUWD5J5ZDFNKAfpi6BQH+827+VJqnAX2lQm001J7dVxWwnoHChIBEGDQLYUYfEBjiyQHnB92qQoBTEhWUA/eAnrXAwCKce5TljhFCg6u8SHyrMgO4lFSh8hHnwqJhZsNLIQ/TTsFadAUdkl3nhXL66thPAHtCxQwRT38J3aK86AojtUJL3RlhcqVd/kvrjthL1kYYzsYSnZXB5GOgGK7ryk7nfcTe6JRz1cMk9YlCs8bdV38EnyjnSRSd8JUFQql7dLWJBMQfWKa5WDQ2e4IgE5wFLnopHWTlSwxEBRqVzeLpnnApZddbWhj0of955Etb3iQgVLBBS8xIe8OLhfInwNnD8vYUHiN7iDRYUSvRm/JxKqGE6mRcUHlarPV+AFI81m8yQqWCKgkMqF8xKcm7QVr3LNI4nM2IxjiKtcy3V3loDWGhVsgM5WxsVVUWMDBe9MJKQiTKWt2KgUcQdehudURnxcxpYBr+5GPecHlYpKms/ouO+UjA0U1ZVer3LNWzYZUJIY4DLHgAeKmub4Ffft6e7K5nE22VhAURnwXuWavwwyVSDJYaHM5vF019O9USPW3RVroOjCVOKqFHFQXvRnZEBJYnzLJEocm6fo9EsyPpmKGje8xRooJE0mkq53kWgSfrFaqSJTvZLYcDId3KterbRXOT4ILBeTCjbRBohWQFFJE5wsw93py3wKqELCbVzDvEWVi9jbhe2cJ7voFUeqWAFFJU38jibeImQqQBw7RRUx61XedvqrvI62UsUYKCppksSLU3UJpGJu5DAzvVuCQ0sY8qISB3RVpzufn8yms5UqxkDx0iQea+lu5JmEn+jivbzaJV8bV1LFBig/ikJVvDTRA0gVxoKnIVXgCIlm7QfI4DmThcDgWS9N9PRXSRUy6pfTt0C3S00qqXJzedtET0GVER59GhsPiiraOPxMHKeAfsTVqqG55mB0rmIEFFK7kHaoU7SodQ/xNmUpkzsppm3xen6TMqeYzK1Om9gwSZWRupa0QFElizDRr3UDqNPvOlvDhhae9jbUUl93oJa0yShMgDJADY2JDsufm9gtFK+dVLKA7vCWcRUt3ijq+ZQigd5UiizuUVFFCRTcN6FdcJaogbxP4XHyCqaLGrpgJBi4MJCLzEwGmdrbyF4Wwx3rErax4KTAWuSdyE9zTWE5VZZJJVBUwY95HXDZpPvB4mD3zXuBZDuVzVxszlzykBdwWMBDp3rLbxES+SliwJRZ8XVAERrxee1sOjerjEGKyGQ2njDMK0l8WNrAsQE8xoKNC46IPF5iK5PkOqNeChRVZpU8vC0Gqf+V/JDHmFUD0iWcED1bxFD6uJsX5pfHmqhsRALu5uRuHxLRXgoUWf7gPIz4OPq8aLJFOXNIkuMrD+aSAd7FuuQRVSAz6lV5i6VAkZ2dZL2rJfUShRc5yT0QV+qLLqQFaiLmDHVGVvJgruhYXLm689h4ZRuVSv0SAkWldmW9K6tUFOi48L7xwELo/WCwojKZDiThTUg377xfL656VwlAhTXhNghApUpInrUHVbUOMvVLCBSZ2pWHQSnzUqikgyrSNmuJyHdiHUiitNUZ+3msBZ+LLlcZ1MOop1Fl8OchVWzVLyFQZGpX1shXLYjOPS0Tr3ksion6KFKndOpNXmCRGfA62qrAkrU6qVC/hAko2oCiOmQsymRM3NOqHVkHMlf2CNoxcZ2q3Ncmhn/W6yKT8iZhNbKdPGtJr5LwonzFbUCRHTLqdguXzMXbkjGJKVFlC5oVUExcpybMZeJdMmnH1RoloWvSNXU1B7SjsLPaIorbgEJBkMLYLpNd3OUk0FYSouYpUaAyYey6N2rZMLcJWLLy6lUFKAqaTqPYr5YMqCKJIryglcfptgwoJrq5TL9PUzLCFgHxFS+3ae4lNiDhD5mABXXTtiVlQDHxiMrmYKoluNyMZU4fXBOOXuhqAYrKLZyVuhImhEqP1DGaTKymIRkBSnxML1slOTQ0sVlAQ8S5Ya5pvCBV5ro2YfYk9o1LkPC2ZOOJuolbgCKzT0x28DQmodEjhTsn1B0spGxXdyUZsRvhowoCjNIEdET/SWOcdN6wcL+QoJAwLgGjAqvKsVDELDKKC10tQZItQCH7pJ+IPD66wCY7RVpA0e2gYDrOBKKw++i4wDQ8/N4kDB/AA+j4B+AwUa2i/bqWZLpzGdF6YAxc0iRZL90ZT3SuWBeso0zi5pl3QcFfLXdUohJFGC3saheOuzi6U+C47Uafs72vbtIvgAw10QSUJu1F65jaLaK5Ykz8roiJlOP3TABSG0mqm1cSVVTXtu53mXSOhrM0gYK8XaSv/Shq2MRI0w0oye9xds8k/bl6NitJDAaGK1rnZTOdF0ADlQ10d9WmrG/XktZ0jryexjvavMzVBIrsfSdpeolsJmWjl9u067ou6AWA4JN10ampWY9H11+etm94bDKDPvw+lSZQZIZ8nvpjlNDY4WCop73L6RZY9HuaXibb8fDA0CLSic+lSHylyPvVNOibQCmiIS9jkKIwAg748HHpUbIFhao+pDD3zrlsN2lbWamkpuM0MejDQBmkhkdFG9edV5gOJo16kDDQz/EtC60HE2NhwnW5B8t0TFCnwkYv/7fp80WolzdouHcyD5VUR3+FWj+dTui78XwYKP+JGsw64E43KdnvSX30UddlWl6quPNz+VzYe8U3GtP2QZfwBxJL9nrwokkO2RxV0d0ElAAjWqDkcSJvumjheirvRVkWLM68XT8T3TC4NJX1o7jXUar35cgM+hagqN7wWxagYCFV0bplmodr5k+rPdVOXGSVXUQPnecrkCgyoBTJM2Gy2KqF81LFhIJ2dVTXlcu2Mcnmwl3EAVBk7z7JKmzbbnnUtau0eC7p4rqtqm1KMm2Ev5lLCZQy7sJVW0DXDO6qvaptSIqrwcGLUQOglOkMxWShq7aIJnPOsk4VNyNFjoXJpEZO4EAZJEKX6gxFxRiqhUz7UlOWDJtXX1XciBS5DYKzFCVQ8ozqTMoECuOsVG7LpHRw/bwqQLWMqjqnj2JzrTZQVEGUZXNdumb2JO0lPdhN0neaz5oCRXgqX2aJAqJW5TAsTQaxaVt1qJt3uLzNPER1ZUDh9+e56lVJoHipkpR9Wp9XSZO87ywlnakujEUJlLIdGomI5aVKUhaa93yVpQnmp7K9EMZSeaB4qeIGKFWWJpxCqnivygPF2yrJgVJ1aeKB0qCASqrknTgjORun34LqinHZbZMw9WovUUAMGRGyCvwUJWowTZiH8fOED+GFFf0tDdjEefVGGuNIu00PFKKwaldM4gbnzM6/w7cnbYDgggnCl834y5U4mOJeREuLbi7m67INI2OeooeHKZx4rWjHSRjI5SRctRVXqvBbgNDV8W/+7WpcWbYTvtaMf/PcXrJXjMelWZZzctGXwj08k7xeXZUNYRERT7U78gySYSBkLRFcLHiSNjhoeE4AxD/hqq+oVG0TNT2ZHyRitAVFVo0YKlslCYPV7dms7Los6eqBEqF22ZLEZckspn1VcQNNBJSqhqRnlcs4yniiRA265A0y9S+LdKci4JTx1qvJBmAUZi97C3CZw6ZVxHGdyziaHR//58ZxXG+TyeKG64QBxe0sDiZXoCpKClRb2pjUN7q4JbszX1WggHC26Vl5Lis8y12vWYHAZKFN6kRfYRH25umeL3t0sG5+RleBZXmHqypmw0TjGRTDeXq5RAiDQ0fosv8e9vZxCcTVQmyYMvdx2efNx6+4tRm8+LRS6Yqqsmh+HtlTwChdUVUS4GVPXt9jVShglAAPk6VMLMLLW1W4k1KVxfTzSI8CRilV0T3ZKbNJD102OpQq+szTI7dvuYwUUFwDnkM5vTowp1K/9qGMi+LHXDwKWL32oW5nKcVbLj+ivCigO0NpkShleDVdXoT0/VabAjrXcAtQvOer2szgZyengM7j1QIUleer7Nc9bcLlXYV7hJdFFqruinl5pICr9nTxZ9F+yhahEB6/Kh8Af4lQG1BkF7hcZFbk4ROixZQxsu6CVBpM7YrZfDutFNCBLxwfZwpEF1ehZYY88d4n5PHq5GNper0aEqWfvsdHB2ob8wUGxgAAAJvd3DOXp0BcCvBwI8SkAUCmRZGGaSpJlB4ZUPDDlGgnplGjkADoOG1Vw5QIvl49KQBVFFqQSXya4spFEOMlBAq9daiTJMEsEXl1J/SqlED1XC4/67wpYGIyyAx5kkwjKZXVsBAo+KPMTlHlv/IgyZslfP8yCqjAYmqfoO0WG0Vlp8juI7i+BJXmkscx/rL26PD+srbtbPtTOWfSXMM4bY8YMUJot5jaJzKgCO0UVBapX7bXalXMKmNKnlZHRaSsGTrOgtXxGR0A+T0YEW1U3lBs0KYF/IMjjmiRqV1Ur8U+EQJFZadEkalTueAtq8OlH9MF8/XSoQCkG+6842Oqgqle8xC1T4RAaahfQ/S9WbTTqJtY9S4/mbhLh1S+VU8B9asboimWFNl4goR3UXq22SioIIv7ioowmeiqavYWz4zFp4Aim0qL6SAzGUg69dJBY58RUEzUL5Xo0rmSi09uP8IyU0C2gfO7VSoHlEjtkqpeDakizEfM1S8ZUKqYRbDMTFPHsctMAg4UW7VLCRTZ/RSufnmg1JEFyzFnHVAU0cKTSRuaIJql0EZBRdLhukhEzRA9hMNHAAYDihYvUcrBTFUepQoo8JCRaSGcPh1dbE5uZDiy2ooUKCr1C7E0UMFEQDGNC6vyQvm55UsBFVAUGfqF3i4+EyVQKDNLD1VsC5LEwwgNwMmmqHhjPl9GqXvvMtVKxbNEs7ZDxjAdlUAhMdVBYIFR35adBRJFdsDjgVJ3Vs13/opAx+D6R7QQn8+hs5NO4vPZspErgYKHCCj99NV2RwU2SjgNabgDD5R8GaXuvSuMdRnPttw9sbZR8IDKqJctiAdK3Vk13/krYriEA1MZ8UY2Cq9EUkUY0uKBki9D+N7FFLAEitKItwVKDz0gNOpFQ/XZJT0L50WBGNc+lEa8FVBQWXahywMlL5bw/YoooAqtitaPJpBQUVRrzIfUL2Op4iWKZ+K8KGADFBqjkTTBXIyB0pAqwkTeUaJ4oOTFJr5fU6DYSJM4QJlIbuGLdMuhul+ve9b/7imQhAIWQLmYwuknmvZlJVFUB5DhDm3zgJkO1tfzFNBRQHfrFs+bHDBG+7ECSkP90koVDxTdcvrf06KAIoS+2SUBxUqaWKtevCedB8wlUG688UaGyYcTDSAiYJVVVmHrr79+M8nZN998w3bfffcgBs2X+lJABxRb24RT0lqi4EE6gBxLX4/IlsMlUPr6+tjEiRPhng66W3PNNdl5553HjjvuuJbuP/roowA8cCSEy1tvvcVuvfXWIIDzyy+/ZI8//jjDff4sC0A+ODjIHnzwQYbDMFyV7ujoYNtvvz076KCDjDIaZjneMvelAwrNbRzFdQ3YzjEWUBpgGaTvUaIOXb6TPAwUMNV9990XxOt88MEHbOrUqey5555j3333XcBwl112WQtQoK+utdZa7N1332XLL788+/HHH9n333/P1l13XVs6xa4PkJx11lns/fffZ4899lizHRyM7bjjjuypp54SpoGK2yEYBUCMFqS5VSXCDtfHmFFflUEHvyfJoo+NC+3b5Ak2oYkGKNMJJN0m7UTrxAaK6n0qLi9vcaBArcKO/Pnnn7Ntt92WffbZZy1zOeKII9htt93WApSZM2eyUaNGsdmzxUGhr7zyCjvjjDMYmBYSauTIkezCCy9kK6+8ciCF8P3AAw+wq666igH8N910E9t6663Z008/zc4++2y24oorsmeeeSZY7K+++oqdcsopwfjQxh577BGM7/bbb2cXXXRRIM2iZdq0aWyrrbZiq622WsCYJ554Inv11VfZSiutFIwJwMYceBk7diz75JNP2A477BCMBUxx1FFHIR4v+D/Gf8IJJwTgixZsLrNmzQraPeecc4INBtJ58uTJwWbCy7XXXsv6+/sDtRZzOfPMM4NNKFzQL+iA8aPPcMFc8fc11lgjWC94QMNl7ty5bPTo0WynnXZiDz/8MPv444+dSlQVUExiumQgig0UNCiLLHYNlIsvvphBtZo+fTo77LDD2MYbbxwwCfUfLOqzzz7LPv300zag4CbbcsstFzDtI488Ity9ent7GQADFQ1MjzYPOOCAZl0w2KqrrsoAxGuuuaaFocBEBx98cAAmRFODie+880526aWXNuttt912bL311mP33HOP0UaGgFKMA8+9+eabbJtttmk+99prrwUgwW7MpQbGC7rst99+Qb0nn3yyCdIVVlghGNuuu+4aSNVNN9202RbmdMcdd7B99tkn+Bva3GCDDYKxg8ZYQ1yjOOmkkwKwhws2inPPPTcACZg9CiLYiZjDbrvt1jZnbEhjxowJ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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarquePrivilege_Biotherm_disabled.8fa359db.png\";","module.exports = __webpack_public_path__ + \"static/media/Badge_PngMarquePrivilege_ScienceMd.4a10e453.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/room.47f6d63b.hdr\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZ4AAAD6CAYAAACRbiH3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDM2MCwgMjAyMC8wMi8xMy0wMTowNzoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTFGRUNERjBDMTI0MTFFQTk1NDlBRUI0ODNGRDgxNUIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTFGRUNERUZDMTI0MTFFQTk1NDlBRUI0ODNGRDgxNUIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIwMjAgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSIwNTg1NjVBQzg0NkZERTVBMzVCOUMyNDkzOEExNkE1NCIgc3RSZWY6ZG9jdW1lbnRJRD0iMDU4NTY1QUM4NDZGREU1QTM1QjlDMjQ5MzhBMTZBNTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5wRFRUAAAC6UlEQVR42uzVMQEAAAjDMMC/56GBhyuR0KedpADgy0gAgPEAYDwAYDwAGA8AGA8AxgOA8QCA8QBgPABgPAAYDwAYDwDGA4DxAIDxAGA8AGA8ABgPABgPAMYDgPEAgPEAYDwAYDwAGA8AxgMAxgOA8QCA8QBgPABgPAAYDwDGAwDGA4DxAIDxAGA8AGA8ABgPAMYDAMYDgPEAgPEAYDwAYDwAGA8AxgMAxgOA8QCA8QBgPAAYDwAYDwDGAwDGA4DxAIDxAGA8ABgPABgPAMYDAMYDgPEAgPEAYDwAGA8AGA8AxgMAxgOA8QBgPABgPAAYDwAYDwDGAwDGA4DxAGA8AGA8ABgPABgPAMYDAMYDgPEAYDwAYDwAGA8AGA8AxgMAxgOA8QBgPABgPAAYDwAYDwDGA4DxAIDxAGA8AGA8ABgPABgPAMYDgPEAgPEAYDwAYDwAGA8AGA8AxgOA8QCA8QBgPABgPAAYDwAYDwDGA4DxAIDxAGA8AGA8ABgPAMYDAMYDgPEAgPEAYDwAYDwAGA8AxgMAxgOA8QCA8QBgPABgPAAYDwDGAwDGA4DxAIDxAGA8ABgPABgPAMYDAMYDgPEAgPEAYDwAGA8AGA8AxgMAxgOA8QCA8QBgPAAYDwAYDwDGAwDGA4DxAIDxAGA8ABgPABgPAMYDAMYDgPEAYDwAYDwAGA8AGA8AxgMAxgOA8QBgPABgPAAYDwAYDwDGAwDGA4DxAGA8AGA8ABgPABgPAMYDAMYDgPEAYDwAYDwAGA8AGA8AxgOA8QCA8QBgPABgPAAYDwAYDwDGA4DxAIDxAGA8AGA8ABgPABgPAMYDgPEAgPEAYDwAYDwAGA8AxgMAxgOA8QCA8QBgPABgPAAYDwDGAwDGA4DxAIDxAGA8AGA8ABgPAMYDAMYDgPEAgPEAYDwAYDwAGA8AxgMAxgOA8QCA8QBgPAAYDwAYDwDGAwDGA4DxAIDxAGA8ABgPABgPAMYDAHcrwACJDwTxYbgqSwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAAFoCAYAAAAIDFbTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDM2MCwgMjAyMC8wMi8xMy0wMTowNzoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIyOTcyODJDMTI0MTFFQUJCNjZENEFFMzkxMzZENTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIyOTcyODFDMTI0MTFFQUJCNjZENEFFMzkxMzZENTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIwMjAgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSIyNzZGRkExQjdFNjcwNzdCRjgxMUQ3QTQ4NzMyMDM5OSIgc3RSZWY6ZG9jdW1lbnRJRD0iMjc2RkZBMUI3RTY3MDc3QkY4MTFEN0E0ODczMjAzOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7RNyV+AAAKT0lEQVR42uzYQREAIADDMMC/5+Gjl0jos3fbAQAAAACangQAAAAA0GUAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGEGIAAAAACEGYAAAAAAEGYAAgAAAECYAQgAAAAAYQYgAAAAAIQZgAAAAAAQZgACAAAAQJgBCAAAAABhBiAAAAAAhBmAAAAAABBmAAIAAABAmAEIAAAAAGFfgAEAKdQFzeDtjpoAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/v_code-client.95160fcd.jpg\";","import React from 'react';\r\nimport { Text, RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\n/**\r\n * A simple Content Block component, with a heading and rich text block.\r\n * This is the most basic building block of a content site, and the most basic\r\n * JSS component that's useful.\r\n */\r\nconst ContentBlock = ({ fields }) => (\r\n <React.Fragment>\r\n <Text tag=\"h2\" className=\"display-4\" field={fields.heading} />\r\n\r\n <RichText className=\"contentDescription\" field={fields.content} />\r\n </React.Fragment>\r\n);\r\n\r\nexport default ContentBlock;","export const throttle = (callback, interval) => {\r\n\tvar last = 0,\r\n\t\ttimer\r\n\tinterval = interval || 16\r\n\treturn function(){\r\n\t\tvar now \t= Date.now(),\r\n\t\t\tself \t= this,\r\n\t\t\targs\t= arguments,\r\n\t\t\tfn \t\t= function(){callback.apply(self, args)}\r\n\t\tif(now - last >= interval){\r\n\t\t\tlast = now\r\n\t\t\tfn()\r\n\t\t\tclearTimeout(timer)\r\n\t\t\ttimer = setTimeout(fn, interval * 1.5)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport const matchHeight = (selector) => {\r\n\tvar getMatchElt = document.querySelectorAll(selector)\r\n\tvar arrayLength = getMatchElt.length\r\n\tvar heights = []\r\n\tfor (var i = 0; i < arrayLength; i++) {\r\n\t\tgetMatchElt[i].style.height = \"\"\r\n\t\theights.push(getMatchElt[i].offsetHeight)\r\n\t}\r\n\tfunction getHighest() {\r\n\t\treturn Math.max(...heights)\r\n\t}\r\n\tvar tallest = getHighest()\r\n\tfor (i = 0; i < arrayLength; i++) {\r\n\t\tgetMatchElt[i].style.height = tallest + \"px\"\r\n\t}\r\n}\r\n\r\nexport const equalHeight = (selector, limit) => {\r\n\r\n\tvar getMatchElt = document.querySelectorAll(selector),\r\n\t\tnMax = 0,\r\n\t\tnMin = 10000,\r\n\t\tlastIndex = 0,\r\n\t\tindexMin = 0,\r\n\t\tindexMax = 0,\r\n\t\ti = 0\r\n\r\n\tlimit = limit > 0 ? limit : Infinity\r\n\r\n\tlastIndex = getMatchElt.length - 1\r\n\tindexMin = 0\r\n\tindexMax = (limit - 1 < lastIndex) ? limit - 1 : lastIndex\r\n\r\n\twhile (indexMin <= lastIndex) {\r\n\t\tnMax = 0\r\n\t\tnMin = 10000\r\n\r\n\t\tfor (i = indexMin; i <= indexMax; i++) {\r\n\t\t\tnMax = Math.max(getMatchElt[i].offsetHeight, nMax)\r\n\t\t\tnMin = Math.min(getMatchElt[i].offsetHeight, nMin)\r\n\t\t}\r\n\r\n\t\tif (nMax !== nMin) {\r\n\t\t\tfor (i = indexMin; i <= indexMax; i++) {\r\n\t\t\t\tgetMatchElt[i].style.height = nMax + \"px\"\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tindexMin += limit\r\n\t\tindexMax = (indexMax + limit < lastIndex) ? indexMax + limit : lastIndex\r\n\t}\r\n}\r\n\r\nexport const heightAuto = (selector) => {\r\n\tdocument.querySelectorAll(selector).forEach(element => {\r\n\t\telement.style.height = \"auto\"\r\n\t})\r\n}\r\n\r\nexport const isMobile = () => {\r\n\tif(typeof window !== 'undefined'){\r\n\t\treturn window.innerWidth <= 767 ? true : false\r\n\t}\r\n}\r\n\r\nexport const isAtBottom = () => {\r\n\tif(typeof window !== 'undefined'){\r\n\t\treturn (window.innerHeight + document.documentElement.scrollTop) >= (document.documentElement.offsetHeight - 400) ? true : false\r\n\t}\r\n}\r\n\r\nexport const isNotAtTop = () => {\r\n\tif(typeof window !== 'undefined'){\r\n\t\treturn window.scrollY > 0 ? true : false\r\n\t}\r\n}\r\n\r\nexport const isOneScreenDown = () => {\r\n\tif(typeof window !== 'undefined'){\r\n\t\treturn window.scrollY > window.innerHeight ? true : false\r\n\t}\r\n}\r\n\r\nexport const scrollToTop = (scrollDuration) => {\r\n\tif(typeof window !== 'undefined'){\r\n\t\tvar cosParameter = window.scrollY / 2,\r\n\t\t\tscrollCount = 0,\r\n\t\t\toldTimestamp = performance.now()\r\n\t\tconst step = (newTimestamp) => {\r\n\t\t\tscrollCount += Math.PI / (scrollDuration / (newTimestamp - oldTimestamp))\r\n\t\t\tif (scrollCount >= Math.PI) window.scrollTo(0, 0)\r\n\t\t\tif (window.scrollY === 0) return\r\n\t\t\twindow.scrollTo(0, Math.round(cosParameter + cosParameter * Math.cos(scrollCount)))\r\n\t\t\toldTimestamp = newTimestamp\r\n\t\t\twindow.requestAnimationFrame(step)\r\n\t\t}\r\n\t\twindow.requestAnimationFrame(step)\r\n\t}\r\n}\r\n\r\nexport const scrollToTarget = (selector, shift, shiftMobile) => {\r\n\tvar rect = selector.getBoundingClientRect(),\r\n\t\tscrollTop = window.pageYOffset || document.documentElement.scrollTop,\r\n\t\tshiftValue = window.innerWidth <= 767 ? shiftMobile : shift,\r\n\t\ttop = rect.top + scrollTop - shiftValue\r\n\twindow.scrollTo(0, top)\r\n}\r\n\r\nexport const formatDate = (date) => {\r\n\tvar d = new Date(date)\r\n\tvar month = '' + (d.getMonth() + 1)\r\n\tvar day = '' + d.getDate()\r\n\tvar year = d.getFullYear()\r\n\tif (month.length < 2) month = '0' + month\r\n\tif (day.length < 2) day = '0' + day\r\n\treturn [day, month, year].join('/')\r\n}\r\n\r\nexport const isImage = (type) => {\r\n\treturn (type === 'image/jpeg' || type === 'image/png' || type === 'image/gif')\r\n}\r\n\r\nexport const fileReader = (file) => {\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tlet filereader = new FileReader()\r\n\t\tfilereader.onload = () => resolve(filereader.result)\r\n\t\tfilereader.onerror = reject\r\n\t\tfilereader.readAsDataURL(file)\r\n\t})\r\n}\r\n\r\nexport const sectionFullWidth = (selector) => {\r\n\tvar windowWidth = document.body.clientWidth,\r\n\t\twindowMargin = (windowWidth - 1280) / 2,\r\n\t\tsectionBrandSelection = selector,\r\n\t\tsectionBrandSelectionChild = sectionBrandSelection && sectionBrandSelection.querySelector(\"ul\")\r\n\tif(windowWidth >= 1280) {\r\n\t\tsectionBrandSelectionChild.style.width = windowWidth + \"px\"\r\n\t\tsectionBrandSelectionChild.style.transform = \"translateX(-\" + windowMargin + \"px)\"\r\n\t\tsetTimeout(() => {\r\n\t\t\tvar sectionBrandSelectionChildHeight = sectionBrandSelectionChild.clientHeight\r\n\t\t\tsectionBrandSelection.style.height = sectionBrandSelectionChildHeight + \"px\"\r\n\t\t}, 10)\r\n\t} else {\r\n\t\tsectionBrandSelection.style.height = \"\"\r\n\t\tsectionBrandSelectionChild.style.width = \"\"\r\n\t\tsectionBrandSelectionChild.style.transform = \"\"\r\n\t}\r\n}\r\n\r\nexport const ConditionalWrapper = ({ condition, wrapper, children }) => condition ? wrapper(children) : children\r\n\r\nexport default {\r\n\tthrottle,\r\n\tmatchHeight,\r\n\tequalHeight,\r\n\theightAuto,\r\n\tisMobile,\r\n\tisAtBottom,\r\n\tisNotAtTop,\r\n\tisOneScreenDown,\r\n\tscrollToTop,\r\n\tscrollToTarget,\r\n\tformatDate,\r\n\tisImage,\r\n\tfileReader,\r\n\tsectionFullWidth,\r\n\tConditionalWrapper\r\n}","import React, { Component } from 'react'\r\nimport { Field } from 'formik'\r\nimport { throttle, isMobile } from '../../../utilities/FrontFunctions/AoxGlobalFrontFunctions'\r\nimport Select from 'react-select'\r\n\r\nclass CustomSelect extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t\tisLoading: true,\r\n\t\t\toptions: this.props.options,\r\n\t\t\tplaceholder: this.props.placeholder ? this.props.placeholder : '...',\r\n\t\t\tdisabled: this.props.disabled ? this.props.disabled : false\r\n\t\t}\r\n\t\tthis.handleWindowResizeCustomSelect = this.handleWindowResizeCustomSelect.bind(this)\r\n\t\tthis.throttleWindowResizeCustomSelect = throttle(this.handleWindowResizeCustomSelect, 200)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tif (typeof this.state.options !== 'object'){\r\n\t\t\tswitch(this.state.options) {\r\n\t\t\t\tcase 'AgeConfig': {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\toptions: [...Array(82).keys()].map(i => ( {value: i + 18, label: i + 18} ))\r\n\t\t\t\t\t})\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t\tcase 'DayConfig': {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\toptions: [...Array(31).keys()].map(i => ( {value: (i < 9 ? '0' : '') + (i + 1), label: (i < 9 ? '0' : '') + (i + 1)} ))\r\n\t\t\t\t\t})\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t\tcase 'MonthConfig': {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\toptions: [...Array(12).keys()].map(i => ( {value: (i < 9 ? '0' : '') + (i + 1), label: (i < 9 ? '0' : '') + (i + 1)} ))\r\n\t\t\t\t\t})\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t\tcase 'YearConfig': {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\toptions: [...Array(83).keys()].map(i => ( {value: (new Date().getFullYear() - 18) - i, label: (new Date().getFullYear() - 18) - i} ))\r\n\t\t\t\t\t})\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t\tdefault: {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\toptions: [{value: 0, label: 0}]\r\n\t\t\t\t\t})\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tisLoading: false\r\n\t\t})\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeCustomSelect)\r\n\r\n\t\t// defaultValue => setFieldValue\r\n\t\tif( this.props.defaultValue !== undefined ){\r\n\t\t\tvar defaultValueIndex = this.props.options.findIndex( value => value.value === this.props.defaultValue)\r\n\t\t\tthis.props.setFieldValue(this.props.fieldName, defaultValueIndex >=0 ? this.state.options[defaultValueIndex].value : '')\r\n\t\t}\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeCustomSelect)\r\n\t}\r\n\thandleWindowResizeCustomSelect() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\trender() {\r\n\t\tconst { fieldName, setFieldValue, setFieldTouched, errors, touched, values, defaultValue, onChange } = this.props\r\n\t\tconst { isLoading, options, placeholder, disabled } = this.state\r\n\t\treturn(\r\n\t\t\t<>\r\n\t\t\t{ !isLoading && isMobile() ?\r\n\t\t\t\t<div className={errors[fieldName] && touched[fieldName] && 'error'}>\r\n\t\t\t\t\t<div className={`ctn_native-select${disabled ? ' is-disabled' : ''}`}>\r\n\t\t\t\t\t\t<Field className=\"native-select\" as=\"select\" name={fieldName} disabled={disabled}>\r\n\t\t\t\t\t\t\t<option value=\"\">{disabled ? values[fieldName] : placeholder}</option>\r\n\t\t\t\t\t\t\t{options.map( i => (\r\n\t\t\t\t\t\t\t\t<option key={i.value} value={i.value}>{i.label}</option>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</Field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t:\r\n\t\t\t\t<div className=\"ctn_select\">\r\n\t\t\t\t\t<div className={errors[fieldName] && touched[fieldName] && 'error'}>\r\n\t\t\t\t\t\t<Select\r\n\t\t\t\t\t\t\tdefaultValue={defaultValue && options[options.findIndex( value => value.value === defaultValue)]}\r\n\t\t\t\t\t\t\tname={fieldName}\r\n\t\t\t\t\t\t\tplaceholder={disabled ? values[fieldName] : placeholder}\r\n\t\t\t\t\t\t\tclassName=\"react-select-container\"\r\n\t\t\t\t\t\t\tclassNamePrefix=\"react-select\"\r\n\t\t\t\t\t\t\toptions={options}\r\n\t\t\t\t\t\t\tonChange={(value) => {setFieldValue(fieldName, value.value.toString()); if(onChange!=undefined){onChange(value)};}}\r\n\t\t\t\t\t\t\tonBlur={() => {setFieldTouched(fieldName, true)}}\r\n\t\t\t\t\t\t\terror={errors[fieldName]}\r\n\t\t\t\t\t\t\ttouched={touched[fieldName]}\r\n\t\t\t\t\t\t\tisDisabled={disabled}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t\t</>\r\n\t\t)\r\n\t}\t\r\n}\r\n\r\nexport default CustomSelect","import config from '../../temp/config';\r\nimport axios from 'axios'; \r\nimport queryString from 'query-string';\r\n\r\n\r\nexport const isNotEmpty = (sValue) => {\r\n\tif(typeof sValue !== 'undefined'){\r\n\t\treturn (sValue.length !== 0)\r\n\t}\r\n\r\n\treturn false;\r\n}\r\nexport const quanta = (sValue) => {\r\n\tif(typeof sValue !== 'undefined'){\r\n\t\treturn sValue.length\r\n\t}\r\n\r\n\treturn 0;\r\n}\r\n\r\nexport function GetStatusFromScore(score){\r\n\tif( score < 25 ) return 'bronze';\r\n\tif( score >= 25 && score < 50 ) return 'argent';\r\n\tif( score >= 50 && score < 75 ) return 'or';\r\n\tif( score >= 75 ) return 'experte';\r\n}\r\n\r\nexport const isAppMobile = () => {\r\n\tif(typeof window !== 'undefined'){\r\n\r\n\t\t// var oParam = queryString.parse(window.location.search);\r\n\t\t// if(oParam.mobileApp !== undefined){\r\n\t\t// \treturn true;\r\n\t\t// }\r\n\t\tif (window.ReactNativeWebView!== undefined) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\nexport function GetFriendlyUrl(oLink) {\r\n\t\r\n\t//GeneralLink field, media links and alwaysIncludeServerUrl - very broken\r\n\t//https://www.bezzant.dev/post/sitecore-jss-generallink-field-media-server-url/\r\n\t\r\n\tvar sAbsoluteUrl = oLink.jss.value.href;\r\n\tvar sRelativeUrl = oLink.url;\r\n\r\n\tvar sFriendlyUrl = oLink.jss.value.href;\r\n\r\n\tif (sAbsoluteUrl.toString().indexOf(\"/sitecore/media-library/\") > -1)\r\n\t{\r\n\t\t// eslint-disable-next-line\r\n\t\tvar sRootUrl = sAbsoluteUrl.toString().replace(/^(.*\\/\\/[^\\/?#]*).*$/,\"$1\");\r\n\r\n\t\tsFriendlyUrl = sRootUrl + sRelativeUrl;\t\t\r\n\t}\r\n\r\n\treturn sFriendlyUrl;\r\n}\r\n\r\n//TODO SGU : vérifier les ref\r\nexport function GetLogoList(){\r\n\treturn [\r\n\t\t{ id: 'derm-expertise', label: 'Le comptoir dermato', image: require(\"../../assets/images/v_logo_comptoir-dermato_crop.png\") },\r\n\t\t{ id: 'lrp', label: 'La Roche-Posay', image: require(\"../../assets/images/v_logo_lrp_crop.png\") },\r\n\t\t{ id: 'cerave', label: 'Cerave', image: require(\"../../assets/images/v_logo_cerave_crop.png\") },\r\n\t\t{ id: 'vichy', label: 'Vichy', image: require(\"../../assets/images/v_logo_vichy_crop.png\") },\r\n\t\t{ id: 'skinc', label: 'Skinceuticals', image: require(\"../../assets/images/v_logo_skinc_crop.png\") },\r\n\t\t{ id: 'biotherm', label: 'Biotherm', image: require(\"../../assets/images/v_logo_biotherm_crop.png\") },\r\n\t\t{ id: 'sciencemd', label: 'ScienceMD', image: require(\"../../assets/images/v_logo_sciencemd_crop.png\") }\r\n\t];\r\n}\r\n\r\nexport function GetListExpertise(oUser) {\t\r\n\treturn (oUser != null) ? [\r\n\t\t...(oUser.expertiselrp ? [{ label: 'Élite La Roche-Posay', image: require(\"../../assets/images/v_logo_vip-lrp.png\")}] : []),\r\n\t\t...(oUser.expertisecerave ? [{ label: 'Élite Cerave', image: require(\"../../assets/images/v_logo_vip-cerave.png\")}] : []),\r\n\t\t...(oUser.expertisevichy ? [{ label: 'Vip vichy', image: require(\"../../assets/images/v_logo_vip-vichy.png\")}] : []),\r\n\t\t...(oUser.expertiseskinceuticals ? [{ label: 'Skincercle Skinceuticals', image: require(\"../../assets/images/v_logo_vip-skinceuticals.png\")}] : []),\r\n\t\t...(oUser.expertisebiotherm ? [{ label: 'Élite Biotherm', image: require(\"../../assets/images/v_logo_vip-biotherm.png\")}] : [])\r\n\t ] : [];\r\n}\r\n\r\nexport class ListProgressionBrands {\r\n\tconstructor() {\r\n\t\tthis.m_oListProgressionBrands = [];\r\n\t}\t\r\n\r\n\taddBrand(oBrand) {\r\n\t\tthis.m_oListProgressionBrands.push(oBrand);\r\n\t}\r\n\r\n\tgetBrandFromClass(sCssClass) {\r\n\t\tvar nIndexBrand = this.m_oListProgressionBrands.findIndex(b => b.CssClass === sCssClass);\r\n\r\n\t\treturn (nIndexBrand >= 0) ? this.m_oListProgressionBrands[nIndexBrand] : null;\r\n\t}\r\n\r\n\tgetBrandFromBody(sCssBodyClass) {\r\n\t\t\r\n\t\tvar nIndexBrand = -1;\r\n\r\n\t\tthis.m_oListProgressionBrands.forEach( (oBrand, index) => { \r\n\t\t\t\r\n\t\t\tif (sCssBodyClass.includes(oBrand.CssClass))\r\n\t\t\t{\r\n\t\t\t\tnIndexBrand = index;\t\t\t\t\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\treturn (nIndexBrand >= 0) ? this.m_oListProgressionBrands[nIndexBrand] : null;\r\n\t}\r\n}\r\n\r\nexport function ConvertToListProgressionBrands(oConcatListProgressionBrands) {\r\n\t\r\n\tvar oListProgressionBrands = new ListProgressionBrands();\r\n\t\r\n\tif (oConcatListProgressionBrands == null)\r\n\t{\r\n\t\treturn oListProgressionBrands;\r\n\t}\r\n\r\n\toConcatListProgressionBrands.forEach( (i, index) => {\r\n\t\t\t\r\n\t\ttry\r\n\t\t{\t\t\r\n\t\t\tvar oBrand = {};\r\n\t\t\t\r\n\t\t\tvar oDetailsBrand = i.split('||');\r\n\r\n\t\t\tif (oDetailsBrand.length >= 6)\r\n\t\t\t{\t\t\r\n\t\t\t\toBrand.CssClass = oDetailsBrand[0];\r\n\t\t\t\toBrand.Label = oDetailsBrand[1];\r\n\t\t\t\t\r\n\t\t\t\toBrand.AllTrainingExpertCount = isNaN(Number(oDetailsBrand[2])) ? 0 : Number(oDetailsBrand[2]);\r\n\t\t\t\toBrand.TrainingDoCount = isNaN(Number(oDetailsBrand[3])) ? 0 : Number(oDetailsBrand[3]);\r\n\t\t\t\toBrand.ExpertPourcentage = isNaN(Number(oDetailsBrand[4])) ? 0 : Number(oDetailsBrand[4]);\r\n\t\t\t\t\r\n\t\t\t\toBrand.PageFormationUrl = oDetailsBrand[5];\r\n\r\n\t\t\t\toBrand.Status = GetStatusFromScore(oBrand.ExpertPourcentage);;\r\n\r\n\t\t\t\toListProgressionBrands.addBrand(oBrand);\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (error) {\r\n\t\t\t//Marque suivante\r\n\t\t}\r\n\t});\r\n\r\n\treturn oListProgressionBrands;\r\n}\r\n\r\nexport const ConditionalWrapper = ({ condition, wrapper, children }) => condition ? wrapper(children) : children;\r\n\r\n//Guid en guid sans - et upper\r\n//69bee926-9523-5b47-9903-b31f81025e73 => 69BEE92695235B479903B31F81025E73\r\nexport function strShortGuid(strId){\r\n return strId.replace(/-/gi, \"\").toUpperCase()\r\n}\r\n\r\n\r\n\r\n//------ API DATAS -----\r\n\r\nexport function urlToHost(url){\r\n\treturn config.sitecoreApiHost + url;\r\n}\r\n\r\n//TODO SGU : échec reprise de biblio d''Etienne; à réessayer ?\r\nexport async function getApiDatas(url) {\t//retourne directement le Json de data\r\n\tlet jsonApiDatas = [];\r\n\r\n\ttry {\r\n\t\tconst result = await axios.get(\r\n\t\t\turlToHost(url), \r\n\t\t\t{ withCredentials:true }\r\n\t\t);\r\n\r\n\t\tif (!result.data.IsValid) {\r\n\t\t\tconsole.log(result.data.Message);\r\n\t\t} else {\r\n\t\t\tlet stringify = JSON.stringify(result.data.Value);\r\n\t\t\tlet replace = stringify.replaceAll(\"\\\\r\\\\n\", \"<br>\");\r\n\t\t\tjsonApiDatas = JSON.parse(replace);\r\n\t\t}\r\n\t} catch (err) {\r\n\t\talert(err);\r\n\t}\r\n\r\n\treturn jsonApiDatas;\r\n}\r\n\r\nexport async function postApiDatas(url, datas){\t//retourne un CAF_API.Models.Return\r\n\tlet resultApiDatas = { IsValid:false, Message:\"Error\"}\r\n\r\n\ttry {\r\n\t\tconst result = await axios.post(\r\n\t\t\turlToHost(url), \r\n\t\t\tqueryString.stringify(datas), \r\n\t\t\t{withCredentials: true, headers : {Accept: 'application/json','Content-Type': 'application/x-www-form-urlencoded',}}\r\n\t\t)\r\n\r\n\t\tresultApiDatas = result.data\r\n\t} catch (err) {\r\n\t\tconsole.log(err);\r\n\t}\r\n\r\n\treturn resultApiDatas\r\n}\r\n\r\nexport async function apiDownload(urlDownload, filename) {\r\n axios\r\n .get(\r\n urlToHost(urlDownload), \r\n { responseType: 'blob', withCredentials:true, }\r\n )\r\n .then(response => {\r\n const link = document.createElement('a');\r\n \r\n link.href = window.URL.createObjectURL(\r\n new Blob([response.data])\r\n );\r\n\r\n // Tell the browser to download, not render, the file.\r\n link.setAttribute('download', 'report.xlsx');\r\n\r\n // Place the link in the DOM.\r\n document.body.appendChild(link);\r\n\r\n // Make the magic happen!\r\n link.click();\r\n });\r\n}\r\n\r\n\r\n//------ DATE -----\r\n\r\nexport function isDateValid(dateStr) {\r\n return !isNaN(new Date(dateStr));\r\n}\r\n\r\nexport function dayRemaining(sDate) {\r\n\tif(!isDateValid(sDate)){\r\n\t\treturn -1;\r\n\t}\r\n\r\n const dateNow = new Date();dateNow.setHours(0);dateNow.setMinutes(0);dateNow.setSeconds(0);dateNow.setMilliseconds(0);\r\n const dateTo = new Date(sDate);\r\n\r\n if(dateNow > dateTo){\r\n return -1;\r\n }\r\n\r\n return Math.ceil((dateTo.getTime() - dateNow.getTime()) / (1000 * 3600 * 24));\r\n}\r\n\r\nexport function dayFrom(sDate) {\r\n\tif(!isDateValid(sDate)){\r\n\t\treturn -1;\r\n\t}\r\n\r\n const dateNow = new Date();dateNow.setHours(0);dateNow.setMinutes(0);dateNow.setSeconds(0);dateNow.setMilliseconds(0);\r\n const dateTo = new Date(sDate);\r\n\r\n if(dateNow < dateTo){\r\n return -1;\r\n }\r\n\r\n return Math.ceil((dateNow.getTime() - dateTo.getTime()) / (1000 * 3600 * 24));\r\n}\r\n\r\nexport function dateProgression(sDateStart, sDateEnd) {\r\n\tif(!isDateValid(sDateStart) || !isDateValid(sDateEnd)){\r\n\t\treturn 0;\r\n\t}\r\n\r\n const dateStart = new Date(sDateStart);\r\n const dateEnd = new Date(sDateEnd);\r\n const dateNow = new Date();\r\n\r\n if (dateStart >= dateEnd || dateNow <= dateStart) {\r\n return 0;\r\n }\r\n return Math.min(Math.round((dateNow - dateStart) * 100 / (dateEnd - dateStart)), 100);\r\n}\r\n\r\nexport function strDateToFr(strDate) {\r\n\t//strDate => \"18/09/2023\"\r\n\tif(!isDateValid(strDate)){\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\treturn new Intl.DateTimeFormat('fr-Fr').format(new Date(strDate));\r\n}\r\n\r\nexport function strDateToFrLong(strDate) {\r\n\t//strDate => \"Lundi 18 Septembre 2023\"\r\n\tif(!isDateValid(strDate)){\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\treturn new Intl.DateTimeFormat('fr-FR', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }).format(new Date(strDate));\r\n}\r\n\r\n\r\n//------ STORAGE -----\r\n//TODO SGU géné\r\nexport function setStorageItem(key, value) {\r\n localStorage.setItem(key, value);\r\n};\r\nexport function getStorageItem(key) {\r\n return localStorage.getItem(key);\r\n};\r\n\r\nexport function setStorageItemWithExpiry(key, value, expiryInMinutes) {\r\n const now = new Date();\r\n const item = {\r\n value: value,\r\n expiry: now.getTime() + expiryInMinutes * 60 * 1000\r\n };\r\n localStorage.setItem(key, JSON.stringify(item));\r\n};\r\nexport function getStorageItemWithExpiry(key) {\r\n const itemStr = localStorage.getItem(key);\r\n if (!itemStr) return null;\r\n\r\n const item = JSON.parse(itemStr);\r\n const now = new Date();\r\n\r\n if (now.getTime() > item.expiry) {\r\n localStorage.removeItem(key);\r\n return null;\r\n }\r\n return item.value;\r\n}","export const IconsSVG = {\r\n\tavatar: {\r\n\t\tviewBox: '0 0 11 14',\r\n\t\twidth: '11',\r\n\t\theight: '14',\r\n\t\tsvgCode: '<path d=\"M5.5,6.2c1.8,0,3.3-1.4,3.3-3.1S7.3,0,5.5,0S2.2,1.4,2.2,3.1S3.7,6.2,5.5,6.2z\"/><path d=\"M7.4,6.7H3.6c-2,0-3.6,1.5-3.6,3.4V14h11v-3.9C11,8.2,9.4,6.7,7.4,6.7z\"/>'\r\n\t},\r\n\tavatar_edit: {\r\n\t\tviewBox: '0 0 65 52',\r\n\t\twidth: '65',\r\n\t\theight: '52',\r\n\t\tsvgCode: '<path d=\"M37.2,28.5c3.2,0,5.8-2.6,5.8-5.9c0-3.3-2.6-5.9-5.8-5.9s-5.8,2.6-5.8,5.9C31.3,25.9,33.9,28.5,37.2,28.5z\"/><path d=\"M28.3,44.6H46c0.5,0,0.8-0.3,0.9-0.8v-5.9c0-4-3.2-7.3-7.2-7.3h-5.1c-4,0-7.2,3.3-7.2,7.3v5.8C27.4,44.2,27.8,44.6,28.3,44.6z\"/><path d=\"M46.2,5.4V3.9c0-2.2-1.8-3.9-3.9-3.9H3.9C1.8,0,0,1.8,0,3.9v34.8c0,2.2,1.8,3.9,3.9,3.9h1.6c0-0.4,0-0.8,0-1.1V12.8c0-1.4,0-3.7,0-5c0-1.3,0.9-2.4,2-2.4c1.1,0,3.1,0,4.6,0H46.2z\"/><path d=\"M61.1,9.3H13.2c-2.1,0-3.9,1.8-3.9,3.9v34.8c0,2.2,1.8,3.9,3.9,3.9h47.9c2.1,0,3.9-1.8,3.9-3.9V13.3C65,11.1,63.2,9.3,61.1,9.3z M59.8,46.7H14.5V14.6h45.3V46.7z\"/>'\r\n\t},\r\n\temail: {\r\n\t\tviewBox: '0 0 15 12',\r\n\t\twidth: '15',\r\n\t\theight: '12',\r\n\t\tsvgCode: '<path d=\"M0,0v1.7l7.5,4.8L15,1.7V0H0z\"/><path d=\"M0,3.1V12h15V3.1L7.5,7.9L0,3.1z\"/>'\r\n\t},\r\n\theartstroke: {\r\n\t\tviewBox: '0 0 19 16',\r\n\t\twidth: '19',\r\n\t\theight: '16',\r\n\t\tsvgCode: '<path d=\"M13.6,1.2c2.4,0,4.3,2,4.3,4.7c0,3.8-5.8,7.7-8,8.8c0,0,0,0,0,0c0,0-0.1,0-0.1,0c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0l0,0l0,0l-0.1,0c0,0,0,0,0,0c-2.2-1.2-8-5.1-8-8.9c0-2.7,1.8-4.7,4.3-4.7c1.1,0,2.3,0.6,3.2,1.4l0.8,0.8l0.8-0.8C11.2,1.8,12.5,1.2,13.6,1.2 M9.6,14.8C9.6,14.8,9.6,14.8,9.6,14.8L9.6,14.8L9.6,14.8 M13.6,0c-1.4,0-2.9,0.7-4.1,1.8C8.4,0.7,6.8,0,5.4,0C2.3,0,0,2.5,0,5.9c0,5.3,8.5,9.9,8.6,9.9c0.1,0,0.1,0.1,0.2,0.1l0,0c0,0,0.1,0,0.1,0.1C9.2,16,9.4,16,9.5,16c0.1,0,0.3,0,0.5-0.1c0,0,0.1,0,0.1-0.1c0,0,0,0,0,0c0.1,0,0.1-0.1,0.2-0.1c0.1,0,8.6-4.6,8.6-9.9C19,2.5,16.7,0,13.6,0L13.6,0z\"/>'\r\n\t},\r\n\theart: {\r\n\t\tviewBox: '0 0 19 16',\r\n\t\twidth: '19',\r\n\t\theight: '16',\r\n\t\tsvgCode: '<path d=\"M9.5,16c-0.1,0-0.3,0-0.5-0.1c-0.1,0-0.1,0-0.1-0.1l0,0c-0.1,0-0.1-0.1-0.2-0.1C8.5,15.7,0,11.1,0,5.9C0,2.5,2.3,0,5.4,0c1.4,0,2.9,0.7,4.1,1.8C10.6,0.7,12.2,0,13.6,0C16.7,0,19,2.5,19,5.9c0,5.3-8.5,9.9-8.6,9.9c-0.1,0-0.1,0.1-0.2,0.1c0,0,0,0,0,0c-0.1,0-0.1,0-0.1,0.1C9.8,16,9.6,16,9.5,16z\"/>'\r\n\t},\r\n\theart_outline: {\r\n\t\tviewBox: '0 0 15.742 14.078',\r\n\t\twidth: '15.742',\r\n\t\theight: '14.078',\r\n\t\tsvgCode: '<path d=\"M7.063,3.531a4.821,4.821,0,0,1,3.308,1.386,4.788,4.788,0,0,1,3.284-1.379h0a4.371,4.371,0,0,1,2.808,1.045,4.835,4.835,0,0,1,.732,6.755,67.155,67.155,0,0,1-6.114,5.931,1.214,1.214,0,0,1-.467.3.877.877,0,0,1-.5,0,1.213,1.213,0,0,1-.467-.3,67.159,67.159,0,0,1-6.114-5.931,4.842,4.842,0,0,1-1.011-3.5A4.948,4.948,0,0,1,4.264,4.588,4.277,4.277,0,0,1,7.063,3.531Zm3.308,2.612a.5.5,0,0,1-.379-.174A3.912,3.912,0,0,0,7.063,4.531a3.29,3.29,0,0,0-2.151.817,3.854,3.854,0,0,0-.586,5.374,68.886,68.886,0,0,0,5.987,5.8l.053.047.053-.046a68.889,68.889,0,0,0,5.987-5.8,3.814,3.814,0,0,0-.581-5.37,3.383,3.383,0,0,0-2.17-.815,3.883,3.883,0,0,0-2.9,1.431A.5.5,0,0,1,10.371,6.144Z\" transform=\"translate(-2.5 -3.531)\"/>'\r\n\t},\r\n\theart_fill: {\r\n\t\tviewBox: '0 0 15.743 14.078',\r\n\t\twidth: '15.742',\r\n\t\theight: '14.078',\r\n\t\tsvgCode: '<g transform=\"translate(-1180 -998.906)\"><path d=\"M10.371,5.644a4.033,4.033,0,0,0-5.783-.676,4.366,4.366,0,0,0-.656,6.062,68.473,68.473,0,0,0,6.05,5.864.848.848,0,0,0,.279.2.373.373,0,0,0,.211,0,.849.849,0,0,0,.279-.2,68.477,68.477,0,0,0,6.05-5.864,4.335,4.335,0,0,0-.656-6.062A4.032,4.032,0,0,0,10.371,5.644Z\" transform=\"translate(1177.5 995.375)\" fill-rule=\"evenodd\"/><path d=\"M7.063,3.531a4.821,4.821,0,0,1,3.308,1.386,4.788,4.788,0,0,1,3.284-1.379h0a4.371,4.371,0,0,1,2.808,1.045,4.835,4.835,0,0,1,.732,6.755,67.155,67.155,0,0,1-6.114,5.931,1.214,1.214,0,0,1-.467.3.877.877,0,0,1-.5,0,1.213,1.213,0,0,1-.467-.3,67.159,67.159,0,0,1-6.114-5.931,4.842,4.842,0,0,1-1.011-3.5A4.948,4.948,0,0,1,4.264,4.588,4.277,4.277,0,0,1,7.063,3.531Zm3.308,2.612a.5.5,0,0,1-.379-.174A3.912,3.912,0,0,0,7.063,4.531a3.29,3.29,0,0,0-2.151.817,3.854,3.854,0,0,0-.586,5.374,68.886,68.886,0,0,0,5.987,5.8l.053.047.053-.046a68.889,68.889,0,0,0,5.987-5.8,3.814,3.814,0,0,0-.581-5.37,3.383,3.383,0,0,0-2.17-.815,3.883,3.883,0,0,0-2.9,1.431A.5.5,0,0,1,10.371,6.144Z\" transform=\"translate(1177.5 995.375)\" /></g>'\r\n\t},\r\n\tdialog: {\r\n\t\tviewBox: '0 0 20 17',\r\n\t\twidth: '20',\r\n\t\theight: '17',\r\n\t\tsvgCode: '<path d=\"M19.6,0H0.4C0.2,0,0,0.2,0,0.4v13.2C0,13.8,0.2,14,0.4,14H4l-1,2.4c-0.1,0.2,0,0.3,0.1,0.4C3.1,17,3.2,17,3.3,17c0.1,0,0.1,0,0.2,0L9.4,14h10.2c0.2,0,0.4-0.2,0.4-0.4V0.4C20,0.2,19.8,0,19.6,0z M5.3,8.4c-0.9,0-1.6-0.7-1.6-1.6c0-0.9,0.7-1.6,1.6-1.6c0.9,0,1.6,0.7,1.6,1.6C6.9,7.7,6.2,8.4,5.3,8.4z M10,8.4c-0.9,0-1.6-0.7-1.6-1.6C8.4,6,9.1,5.3,10,5.3s1.6,0.7,1.6,1.6C11.6,7.7,10.9,8.4,10,8.4z M14.7,8.4c-0.9,0-1.6-0.7-1.6-1.6c0-0.9,0.7-1.6,1.6-1.6c0.9,0,1.6,0.7,1.6,1.6C16.3,7.7,15.6,8.4,14.7,8.4z\"/>'\r\n\t},\r\n\tphone: {\r\n\t\tviewBox: '0 0 20 29',\r\n\t\twidth: '20',\r\n\t\theight: '29',\r\n\t\tsvgCode: '<path d=\"M4.2,18c-1.5-2.7-6.5-14-3-16.1l3.2-1.9C4.7-0.1,5.1,0,5.3,0.3l3.6,6.3C9,6.9,8.9,7.3,8.6,7.5L5.7,9.2c1.3,4.2,3.9,8.7,6.8,12l2.9-1.7c0.3-0.2,0.7-0.1,0.9,0.2l3.6,6.3c0.2,0.3,0.1,0.7-0.3,0.9l-3.2,1.9C13,30.8,5.7,20.7,4.2,18L4.2,18z\"/>'\r\n\t},\r\n\tfacebook: {\r\n\t\tviewBox: '0 0 24 44',\r\n\t\twidth: '24',\r\n\t\theight: '44',\r\n\t\tsvgCode: '<path d=\"M23.1,0l-5.8,0C10.9,0,6.7,4.3,6.7,10.8v5H0.9c-0.5,0-0.9,0.4-0.9,0.9V24c0,0.5,0.4,0.9,0.9,0.9h5.8v18.3c0,0.5,0.4,0.9,0.9,0.9h7.6c0.5,0,0.9-0.4,0.9-0.9V24.8h6.8c0.5,0,0.9-0.4,0.9-0.9l0-7.2c0-0.2-0.1-0.5-0.3-0.6c-0.2-0.2-0.4-0.3-0.6-0.3h-6.8v-4.2c0-2,0.5-3.1,3.2-3.1l3.9,0c0.5,0,0.9-0.4,0.9-0.9V0.9C24,0.4,23.6,0,23.1,0z\"/>'\r\n\t},\r\n\tfacebook_circle: {\r\n\t\tviewBox: '0 0 24 24',\r\n\t\twidth: '24',\r\n\t\theight: '24',\r\n\t\tsvgCode: '<path d=\"M10.1,24L10.1,24c-6.5-1-11-7.2-10-13.8s7.2-11.1,13.7-10s11,7.2,10,13.8c-0.8,5.2-4.8,9.2-10,10v-8.4h2.8l0.5-3.5h-3.3V9.8c-0.1-1,0.6-1.8,1.6-1.9c0.1,0,0.3,0,0.4,0h1.5V5c-0.9-0.1-1.8-0.2-2.7-0.2c-2.8,0-4.5,1.8-4.5,4.7v2.7h-3v3.5h3L10.1,24L10.1,24z\"/>'\r\n\t},\r\n\tinstagram: {\r\n\t\tviewBox: '0 0 43 43',\r\n\t\twidth: '43',\r\n\t\theight: '43',\r\n\t\tsvgCode: '<path d=\"M21.5,3.9c5.7,0,6.4,0,8.7,0.1c2.1,0.1,3.2,0.4,4,0.7c1,0.4,1.7,0.9,2.5,1.6c0.8,0.8,1.2,1.5,1.6,2.5c0.3,0.8,0.6,1.9,0.7,4c0.1,2.3,0.1,2.9,0.1,8.7s0,6.4-0.1,8.7c-0.1,2.1-0.4,3.2-0.7,4c-0.4,1-0.9,1.7-1.6,2.5c-0.8,0.8-1.5,1.2-2.5,1.6c-0.8,0.3-1.9,0.6-4,0.7c-2.3,0.1-2.9,0.1-8.7,0.1s-6.4,0-8.7-0.1c-2.1-0.1-3.2-0.4-4-0.7c-1-0.4-1.7-0.9-2.5-1.6c-0.8-0.8-1.2-1.5-1.6-2.5c-0.3-0.8-0.6-1.9-0.7-4c-0.1-2.3-0.1-2.9-0.1-8.7s0-6.4,0.1-8.7c0.1-2.1,0.4-3.2,0.7-4c0.4-1,0.9-1.7,1.6-2.5c0.8-0.8,1.5-1.2,2.5-1.6c0.8-0.3,1.9-0.6,4-0.7C15.1,3.9,15.8,3.9,21.5,3.9 M21.5,0c-5.8,0-6.6,0-8.9,0.1c-2.3,0.1-3.9,0.5-5.2,1C6,1.7,4.8,2.4,3.6,3.6C2.4,4.8,1.7,6,1.1,7.4c-0.5,1.4-0.9,2.9-1,5.2C0,14.9,0,15.7,0,21.5c0,5.8,0,6.6,0.1,8.9c0.1,2.3,0.5,3.9,1,5.2c0.5,1.4,1.3,2.6,2.5,3.8c1.2,1.2,2.4,1.9,3.8,2.5c1.4,0.5,2.9,0.9,5.2,1c2.3,0.1,3,0.1,8.9,0.1s6.6,0,8.9-0.1c2.3-0.1,3.9-0.5,5.2-1c1.4-0.5,2.6-1.3,3.8-2.5c1.2-1.2,1.9-2.4,2.5-3.8c0.5-1.4,0.9-2.9,1-5.2c0.1-2.3,0.1-3,0.1-8.9s0-6.6-0.1-8.9c-0.1-2.3-0.5-3.9-1-5.2c-0.5-1.4-1.3-2.6-2.5-3.8c-1.2-1.2-2.4-1.9-3.8-2.5c-1.4-0.5-2.9-0.9-5.2-1C28.1,0,27.3,0,21.5,0L21.5,0z\"/><path d=\"M21.5,10.5c-6.1,0-11,4.9-11,11s4.9,11,11,11s11-4.9,11-11S27.6,10.5,21.5,10.5z M21.5,28.7c-4,0-7.2-3.2-7.2-7.2s3.2-7.2,7.2-7.2s7.2,3.2,7.2,7.2S25.5,28.7,21.5,28.7z\"/><circle cx=\"33\" cy=\"10\" r=\"2.6\"/>'\r\n\t},\r\n\tyoutube: {\r\n\t\tviewBox: '0 0 55 38',\r\n\t\twidth: '55',\r\n\t\theight: '38',\r\n\t\tsvgCode: '<path d=\"M45.7,0H9.3C4.2,0,0,4.2,0,9.3v19.4C0,33.8,4.2,38,9.3,38h36.4c5.1,0,9.3-4.2,9.3-9.3V9.3C55,4.2,50.8,0,45.7,0z M29.8,23.2l-8.3,4.2V10.6l8.3,4.2l8.3,4.2L29.8,23.2z\"/>'\r\n\t},\r\n\tdownload: {\r\n\t\tviewBox: '0 0 18 18',\r\n\t\twidth: '18',\r\n\t\theight: '18',\r\n\t\tsvgCode: '<path d=\"M17.3,11.3c-0.4,0-0.7,0.3-0.7,0.7v4.4h-15v-4.4c0-0.4-0.3-0.7-0.7-0.7S0,11.7,0,12.1v5.2C0,17.7,0.3,18,0.7,18h16.5c0.4,0,0.7-0.3,0.7-0.7v-5.2C18,11.7,17.7,11.3,17.3,11.3z\"/><path d=\"M8.5,12.6c0.4,0.4,0.9,0.2,1.1,0L14.1,8c0.3-0.3,0.3-0.8,0-1.1S13.3,6.7,13,7l-3.3,3.3V0.7C9.7,0.3,9.4,0,9,0S8.3,0.3,8.3,0.7v9.5L5,7C4.7,6.7,4.2,6.7,3.9,7C3.6,7.3,3.6,7.7,3.9,8L8.5,12.6L8.5,12.6z\"/>'\r\n\t},\r\n\ttube: {\r\n\t\tviewBox: '0 0 19 36',\r\n\t\twidth: '19',\r\n\t\theight: '36',\r\n\t\tsvgCode: '<path d=\"M19,0c-0.2,1.6-0.5,3.3-0.9,4.9c-0.6,1.2-3,25.6-3.1,26.4H4C4,30.4,1.6,6.1,0.9,4.9C0.5,3.3,0.2,1.6,0,0H19zM4.3,36h10.4c0.2-0.3,0.3-2.6,0.3-3.8H4C4.1,33.4,4.2,35.7,4.3,36L4.3,36z\"/>'\r\n\t},\r\n\tsun: {\r\n\t\tviewBox: '0 0 25 25',\r\n\t\twidth: '25',\r\n\t\theight: '25',\r\n\t\tsvgCode: '<path d=\"M12.5,7.8c2.6,0,4.7,2.1,4.7,4.7s-2.1,4.7-4.7,4.7s-4.7-2.1-4.7-4.7C7.8,9.9,9.9,7.8,12.5,7.8 M12.5,5.9c-3.6,0-6.6,2.9-6.6,6.6s3,6.6,6.6,6.6s6.6-2.9,6.6-6.6S16.1,5.9,12.5,5.9L12.5,5.9z\"/><path d=\"M12.5,5.7c-0.5,0-1-0.4-1-1V1c0-0.5,0.4-1,1-1s1,0.4,1,1v3.8C13.4,5.3,13,5.7,12.5,5.7z\"/><path d=\"M12.5,25c-0.5,0-1-0.4-1-1v-3.8c0-0.5,0.4-1,1-1s1,0.4,1,1V24C13.5,24.6,13.1,25,12.5,25z\"/><path d=\"M4.7,13.5H1c-0.5,0-1-0.4-1-1c0-0.5,0.4-1,1-1h3.8c0.5,0,1,0.4,1,1C5.7,13,5.3,13.5,4.7,13.5z\"/><path d=\"M24,13.4h-3.8c-0.5,0-1-0.4-1-1c0-0.5,0.4-1,1-1H24c0.5,0,1,0.4,1,1C25,13,24.6,13.4,24,13.4z\"/><path d=\"M7,8C6.8,8,6.5,7.9,6.3,7.7L3.7,5c-0.4-0.4-0.4-1,0-1.3s1-0.4,1.3,0l2.7,2.7c0.4,0.4,0.4,1,0,1.3C7.5,7.9,7.2,8,7,8z\"/><path d=\"M20.7,21.6c-0.2,0-0.5-0.1-0.7-0.3l-2.7-2.7c-0.4-0.4-0.4-1,0-1.3c0.4-0.4,1-0.4,1.3,0l2.7,2.7c0.4,0.4,0.4,1,0,1.3C21.2,21.5,20.9,21.6,20.7,21.6z\"/><path d=\"M4.4,21.6c-0.2,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.3l2.7-2.7c0.4-0.4,1-0.4,1.3,0c0.4,0.4,0.4,1,0,1.3L5,21.4C4.8,21.5,4.6,21.6,4.4,21.6z\"/><path d=\"M18,7.9c-0.2,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.3L20,3.7c0.4-0.4,1-0.4,1.3,0c0.4,0.4,0.4,1,0,1.3l-2.7,2.7C18.5,7.8,18.2,7.9,18,7.9z\"/>'\r\n\t},\r\n\tmoon: {\r\n\t\tviewBox: '0 0 13 17',\r\n\t\twidth: '13',\r\n\t\theight: '17',\r\n\t\tsvgCode: '<path d=\"M8.4,17C3.8,17,0,13.2,0,8.5S3.8,0,8.4,0c1.4,0,2.9,0.4,4.1,1.1C12.8,1.2,13,1.6,13,1.9s-0.2,0.7-0.5,0.8c-2.1,1.2-3.4,3.4-3.4,5.8s1.3,4.6,3.4,5.8c0.3,0.2,0.5,0.5,0.5,0.8c0,0.3-0.2,0.7-0.5,0.8C11.3,16.6,9.9,17,8.4,17z M8.4,1.9c-3.6,0-6.6,3-6.6,6.6s2.9,6.6,6.6,6.6c0.6,0,1.2-0.1,1.7-0.2C8.4,13.3,7.3,11,7.3,8.5s1.1-4.8,2.9-6.4C9.6,2,9,1.9,8.4,1.9z\"/>'\r\n\t},\r\n\tstar: {\r\n\t\tviewBox: '0 0 55 52',\r\n\t\twidth: '55',\r\n\t\theight: '52',\r\n\t\tsvgCode: '<path d=\"M27.5,0l9.1,16.3L55,19.9L42.2,33.5L44.5,52l-17-7.9l-17,7.9l2.3-18.5L0,19.9l18.4-3.5L27.5,0\"/>'\r\n\t},\r\n\teye: {\r\n\t\tviewBox: '0 0 20 12.98',\r\n\t\twidth: '20',\r\n\t\theight: '12.98',\r\n\t\tsvgCode: '<path d=\"M19.91,7.7c-.18-.25-4.34-6.19-9.91-6.19S.27,7.45.09,7.7a.55.55,0,0,0,0,.6c.18.25,4.34,6.19,9.91,6.19s9.73-5.94,9.91-6.19A.54.54,0,0,0,19.91,7.7ZM10,12.63A4.63,4.63,0,1,1,14.63,8,4.63,4.63,0,0,1,10,12.63Z\" transform=\"translate(0 -1.51)\"/><path d=\"M10,5.26A2.74,2.74,0,1,0,12.74,8,2.74,2.74,0,0,0,10,5.26Z\" transform=\"translate(0 -1.51)\"/>'\r\n\t},\r\n\teye_outline: {\r\n\t\tviewBox: '0 0 19.34 13.697',\r\n\t\twidth: '19.34',\r\n\t\theight: '13.697',\r\n\t\tsvgCode: '<defs><style>.a{fill:#c3c3c3;}</style></defs><g transform=\"translate(-2.5 -6.5)\"><path class=\"a\" d=\"M12.17,6.5a10.36,10.36,0,0,1,6,1.884,9.734,9.734,0,0,1,3.641,4.8.5.5,0,0,1,0,.325,9.734,9.734,0,0,1-3.641,4.8,10.5,10.5,0,0,1-12,0,9.734,9.734,0,0,1-3.641-4.8.5.5,0,0,1,0-.325,9.734,9.734,0,0,1,3.641-4.8A10.36,10.36,0,0,1,12.17,6.5Zm8.639,6.848A9.118,9.118,0,0,0,12.17,7.5a9.118,9.118,0,0,0-8.639,5.848A9.118,9.118,0,0,0,12.17,19.2,9.118,9.118,0,0,0,20.809,13.348Z\"/><path class=\"a\" d=\"M3.5-.5a4,4,0,1,1-4,4A4,4,0,0,1,3.5-.5Zm0,7a3,3,0,1,0-3-3A3,3,0,0,0,3.5,6.5Z\" transform=\"translate(9 10)\"/></g>'\r\n\t},\r\n\tshare: {\r\n\t\tviewBox: '0 0 20 16.84',\r\n\t\twidth: '20',\r\n\t\theight: '16.84',\r\n\t\tsvgCode: '<path d=\"M10.79.15a.29.29,0,0,0-.32,0,.31.31,0,0,0-.17.27V4.51A10.35,10.35,0,0,0,2.89,7.08C.72,9.17-.24,12.39.05,16.64a.29.29,0,0,0,.25.27h0a.33.33,0,0,0,.28-.17c0-.07,3.16-6.43,9.67-5.63v4.19a.31.31,0,0,0,.17.27.31.31,0,0,0,.32,0l9.1-7.46A.3.3,0,0,0,20,7.85a.3.3,0,0,0-.11-.24Z\" transform=\"translate(0 -0.08)\"/>'\r\n\t},\r\n\tarrowDown: {\r\n\t\tviewBox: '0 0 24 24',\r\n\t\twidth: '24',\r\n\t\theight: '24',\r\n\t\tsvgCode: '<g transform=\"translate(24 241) rotate(90)\"><rect width=\"24\" height=\"24\" transform=\"translate(-241)\" fill=\"rgba(0,0,0,0)\"/><path d=\"M0,5H5V0\" transform=\"translate(-227 13) rotate(180)\" fill=\"rgba(0,0,0,0)\"/><path d=\"M5.75,5.75H0V4.25H4.25V0h1.5Z\" transform=\"translate(-227 13) rotate(180)\"/><path d=\"M6.47,7.53l-7-7L.53-.53l7,7Z\" transform=\"translate(-232 8)\"/></g>'\r\n\t},\r\n\timportUpload: {\r\n\t\tviewBox: '0 0 27 20',\r\n\t\twidth: '27',\r\n\t\theight: '20',\r\n\t\tsvgCode: '<defs><clipPath id=\"a\"><rect width=\"27\" height=\"20\" fill=\"none\" stroke=\"#707070\" stroke-width=\"2\"/></clipPath></defs><g clip-path=\"url(#a)\"><path d=\"M0,11.667a1,1,0,0,1-1-1V0A1,1,0,0,1,0-1,1,1,0,0,1,1,0V10.667A1,1,0,0,1,0,11.667Z\" transform=\"translate(13.5 1.333)\"/><path d=\"M241.433,39.965a1,1,0,0,1-.7-.289l-3.347-3.306-3.347,3.306a1,1,0,0,1-1.405-1.423l3.933-3.884a1.171,1.171,0,0,1,1.641,0l3.932,3.884a1,1,0,0,1-.7,1.711Z\" transform=\"translate(-223.883 -33.631)\"/><path d=\"M54.933,275.667h-18.9a3.688,3.688,0,0,1-3.7-3.667v-5.333a1,1,0,0,1,2,0V272a1.686,1.686,0,0,0,1.7,1.667h18.9a1.686,1.686,0,0,0,1.7-1.667v-5.333a1,1,0,0,1,2,0V272A3.688,3.688,0,0,1,54.933,275.667Z\" transform=\"translate(-31.983 -256)\"/></g>'\r\n\t},\r\n\tfile: {\r\n\t\tviewBox: '0 0 21.313 25.188',\r\n\t\twidth: '21.313',\r\n\t\theight: '25.188',\r\n\t\tsvgCode: '<path d=\"M3085.278,190.284l-7.75-7.75a.965.965,0,0,0-.685-.284h-7.75c-3.123,0-4.844,1.72-4.844,4.844v15.5c0,3.123,1.72,4.844,4.844,4.844h11.625c3.123,0,4.844-1.721,4.844-4.844V190.969A.966.966,0,0,0,3085.278,190.284Zm-7.466-4.726,4.442,4.442h-1.536c-2.037,0-2.906-.869-2.906-2.906Zm2.906,19.942h-11.625c-2.037,0-2.906-.869-2.906-2.906v-15.5c0-2.037.869-2.906,2.906-2.906h6.781v2.906c0,3.123,1.72,4.844,4.844,4.844h2.906v10.656C3083.625,204.631,3082.756,205.5,3080.719,205.5Z\" transform=\"translate(-3064.25 -182.25)\"/>'\r\n\t},\r\n\tcalendar: {\r\n\t\tviewBox: '0 0 24 24',\r\n\t\twidth: '24',\r\n\t\theight: '24',\r\n\t\tsvgCode: '<rect width=\"24\" height=\"24\" fill=\"#fff\"/><g transform=\"translate(5 5)\" opacity=\"0.2\"><path d=\"M16.188,12.765V11.346c0-.6,0-1.124-.009-1.6H2.009c-.009.472-.009,1-.009,1.6v1.419c0,2.675,0,4.013.831,4.844S5,18.44,7.675,18.44h2.838c2.675,0,4.013,0,4.844-.831S16.188,15.44,16.188,12.765Z\" transform=\"translate(-2 -4.075)\"/><path d=\"M6.1,2.282a.532.532,0,0,0-1.064,0V3.4a3.24,3.24,0,0,0-2.184.775,3.24,3.24,0,0,0-.775,2.184H16.154a3.239,3.239,0,0,0-.775-2.184A3.24,3.24,0,0,0,13.2,3.4V2.282a.532.532,0,0,0-1.064,0V3.355c-.472-.009-1-.009-1.6-.009H7.7c-.6,0-1.124,0-1.6.009Z\" transform=\"translate(-2.023 -1.75)\"/></g>'\r\n\t},\r\n\tpin: {\r\n\t\tviewBox: '0 0 24 24',\r\n\t\twidth: '24',\r\n\t\theight: '24',\r\n\t\tsvgCode: '<rect width=\"24\" height=\"24\" fill=\"#fff\"/><g transform=\"translate(6 4)\" opacity=\"0.2\"><path d=\"M172.6,5246.376a1.6,1.6,0,1,1,1.6-1.6,1.6,1.6,0,0,1-1.6,1.6m0-7.376a5.6,5.6,0,0,0-5.6,5.6c0,3.1,5.6,10.4,5.6,10.4s5.6-7.3,5.6-10.4a5.6,5.6,0,0,0-5.6-5.6\" transform=\"translate(-167 -5239)\" fill-rule=\"evenodd\"/></g>'\r\n\t},\r\n\tclock: {\r\n\t\tviewBox: '0 0 24 24',\r\n\t\twidth: '24',\r\n\t\theight: '24',\r\n\t\tsvgCode: '<g transform=\"translate(0 -300)\"><rect width=\"24\" height=\"24\" transform=\"translate(0 300)\" fill=\"#fff\"/><circle cx=\"7\" cy=\"7\" r=\"7\" transform=\"translate(5 305.113)\" fill=\"#cbcbcb\"/><path d=\"M12,308.469v4.3l3.271,1.176\" fill=\"none\" stroke=\"#fff\" stroke-linecap=\"round\" stroke-width=\"1.5\"/></g>'\r\n\t},\r\n\tclock_outline: {\r\n\t\tviewBox: '0 0 14.5 14.5',\r\n\t\twidth: '14.5',\r\n\t\theight: '14.5',\r\n\t\tsvgCode: '<g transform=\"translate(-2.25 -2.25)\"><path d=\"M9.5,16.75A7.25,7.25,0,1,1,16.75,9.5,7.258,7.258,0,0,1,9.5,16.75Zm0-13A5.75,5.75,0,1,0,15.25,9.5,5.757,5.757,0,0,0,9.5,3.75Z\"/><path d=\"M12,11.884a.75.75,0,0,1-.75-.75V6a.75.75,0,0,1,1.5,0v5.134A.75.75,0,0,1,12,11.884Z\" transform=\"translate(-2.5 -1.033)\"/><path d=\"M15.628,16.378a.748.748,0,0,1-.53-.22L11.47,12.53A.75.75,0,0,1,12.53,11.47L16.158,15.1a.75.75,0,0,1-.53,1.28Z\" transform=\"translate(-2.87 -2.87)\"/></g>'\r\n\t},\r\n\ttelecharger: {\r\n\t\tviewBox: '0 0 23.595 20.227',\r\n\t\twidth: '23.595',\r\n\t\theight: '20.227',\r\n\t\tsvgCode: '<g transform=\"translate(1 19.227) rotate(-90)\"><path d=\"M5.328,12.777-1.414,6.035,5.328-.707,6.742.707,1.414,6.035l5.328,5.328Z\" transform=\"translate(5.026 5.086)\" /><rect width=\"13\" height=\"2\" transform=\"translate(6.227 9.891)\" /><path d=\"M4.621,22.595H0a1,1,0,0,1-1-1V0A1,1,0,0,1,0-1H4.621V1H1V20.595H4.621Z\" /></g>'\r\n\t},\r\n\tuserPlus: {\r\n\t\tviewBox: '0 0 20 20',\r\n\t\twidth: '20',\r\n\t\theight: '20',\r\n\t\tsvgCode: '<path d=\"M-6146-2563a4.036,4.036,0,0,1-2.96-1.036,3.991,3.991,0,0,1-1.043-2.947,6.38,6.38,0,0,1,1.339-4.041A5.774,5.774,0,0,1-6144-2573h4a5.77,5.77,0,0,1,4.66,1.977,6.373,6.373,0,0,1,1.341,4.041,3.993,3.993,0,0,1-1.043,2.947A4.04,4.04,0,0,1-6138-2563Zm-2-3.982c0,1.426.562,1.982,2,1.982H-6138c1.441,0,2-.556,2-1.982a3.727,3.727,0,0,0-4-4.019h-4A3.726,3.726,0,0,0-6148-2566.982Zm13.5-5.49v-1.5h-1.5a1,1,0,0,1-1-1,1,1,0,0,1,1-1h1.5v-1.5a1,1,0,0,1,1-1,1,1,0,0,1,1,1v1.5h1.5a1,1,0,0,1,1,1,1,1,0,0,1-1,1h-1.5v1.5a1,1,0,0,1-1,1A1,1,0,0,1-6134.5-2572.472Zm-11.992-6.029a4.506,4.506,0,0,1,4.5-4.5,4.505,4.505,0,0,1,4.5,4.5,4.505,4.505,0,0,1-4.5,4.5A4.506,4.506,0,0,1-6146.492-2578.5Zm2,0a2.5,2.5,0,0,0,2.5,2.5,2.5,2.5,0,0,0,2.5-2.5,2.5,2.5,0,0,0-2.5-2.5A2.5,2.5,0,0,0-6144.492-2578.5Z\" transform=\"translate(6150 2583)\"/>'\r\n\t},\r\n\ten_cours: {\r\n\t\tviewBox: '0 0 16 16',\r\n\t\twidth: '16',\r\n\t\theight: '16',\r\n\t\tsvgCode: '<g transform=\"translate(-4.915 -5)\"><path d=\"M14.251,6.665c0-.319,0-.479.116-.578s.279-.087.6-.061a9.148,9.148,0,0,1,3.6,1.045A8.356,8.356,0,0,1,21.739,10a7.494,7.494,0,0,1,0,8.005,8.358,8.358,0,0,1-3.165,2.93,9.25,9.25,0,0,1-8.646,0,8.435,8.435,0,0,1-2.779-2.367c-.186-.248-.279-.372-.244-.514s.184-.223.482-.382l6.5-3.476c.176-.094.264-.141.312-.218a.682.682,0,0,0,.048-.359Z\" transform=\"translate(-1.982 -1.007)\" fill=\"#fff\"/></g>'\r\n\t},\r\n\tis_done: {\r\n\t\tviewBox: '0 0 20 20',\r\n\t\twidth: '20',\r\n\t\theight: '20',\r\n\t\tsvgCode: '<g transform=\"translate(-4082.771 -44.218)\"><ellipse cx=\"10\" cy=\"9.5\" rx=\"10\" ry=\"9.5\" transform=\"translate(4082.771 44.218)\"/><path d=\"M6.812,13.783a1,1,0,0,1-.7-.29L3.3,10.7A1,1,0,0,1,4.7,9.281l2.107,2.093L12.434,5.79A1,1,0,1,1,13.843,7.21L7.516,13.492A1,1,0,0,1,6.812,13.783Z\" transform=\"translate(4084.193 44.218)\" fill=\"#fff\"/></g></svg>'\r\n\t},\r\n\tsearch: {\r\n\t\tviewBox: '0 0 16 16',\r\n\t\twidth: '16',\r\n\t\theight: '16',\r\n\t\tsvgCode: '<path style=\"fill-rule: evenodd\" d=\"M10.8,12c-2.9,2.3-7.1,1.7-9.4-1.2C-.9,7.9-.3,3.7,2.6,1.4,5.5-.9,9.7-.3,12,2.6c1.9,2.4,1.9,5.8,0,8.2l4,4-1.2,1.2-4-4ZM11.7,6.7c0,2.8-2.3,5-5,5S1.7,9.5,1.7,6.7,3.9,1.7,6.7,1.7h0c2.8,0,5,2.3,5,5h0Z\" fill=\"#000\"/>'\r\n\t},\r\n\temail_open: {\r\n\t\tviewBox: '0 0 31.375 27.641',\r\n\t\twidth: '31.375',\r\n\t\theight: '27.641',\r\n\t\tsvgCode: '<g transform=\"translate(-2 -2.288)\"><path d=\"M17.056,18.568a5.852,5.852,0,0,1-3.537-1.179L3.4,9.8A1,1,0,0,1,4.6,8.2l10.118,7.588a3.916,3.916,0,0,0,4.675,0L29.511,8.2a1,1,0,0,1,1.2,1.6L20.593,17.389A5.852,5.852,0,0,1,17.056,18.568Z\" transform=\"translate(0.632 3.61)\" /><path d=\"M17.688,2.288a4.275,4.275,0,0,1,2.071.537L31.182,9.171A4.266,4.266,0,0,1,33.375,12.9V25.665a4.269,4.269,0,0,1-4.264,4.264H6.264A4.269,4.269,0,0,1,2,25.665V12.9A4.266,4.266,0,0,1,4.193,9.171L15.617,2.824A4.275,4.275,0,0,1,17.688,2.288ZM29.111,27.929a2.266,2.266,0,0,0,2.264-2.264V12.9a2.265,2.265,0,0,0-1.164-1.979L18.787,4.573a2.264,2.264,0,0,0-2.2,0L5.164,10.919A2.265,2.265,0,0,0,4,12.9V25.665a2.266,2.266,0,0,0,2.264,2.264Z\" transform=\"translate(0)\" /></g>'\r\n\t},\r\n\tarrow_left: {\r\n\t\tviewBox: '0 0 9.481 18.537',\r\n\t\twidth: '31.375',\r\n\t\theight: '18.537',\r\n\t\tsvgCode: '<path d=\"M7.828,21.213a1.027,1.027,0,0,0,1.453,0l6.825-6.825a3.081,3.081,0,0,0,0-4.357L9.358,3.278A1.027,1.027,0,0,0,7.905,4.73l6.75,6.75a1.027,1.027,0,0,1,0,1.453L7.828,19.76A1.027,1.027,0,0,0,7.828,21.213Z\" transform=\"translate(17.008 21.514) rotate(180)\" />'\r\n\t},\r\n\tarrow_right: {\r\n\t\tviewBox: '0 0 9.481 18.537',\r\n\t\twidth: '31.375',\r\n\t\theight: '18.537',\r\n\t\tsvgCode: '<path d=\"M7.828,21.213a1.027,1.027,0,0,0,1.453,0l6.825-6.825a3.081,3.081,0,0,0,0-4.357L9.358,3.278A1.027,1.027,0,0,0,7.905,4.73l6.75,6.75a1.027,1.027,0,0,1,0,1.453L7.828,19.76A1.027,1.027,0,0,0,7.828,21.213Z\" transform=\"translate(-7.528 -2.977)\" />'\r\n\t},\r\n\tclock_twelve_thirty: {\r\n\t\tviewBox: '0 0 20 20',\r\n\t\twidth: '20',\r\n\t\theight: '20',\r\n\t\tsvgCode: '<path id=\"clock-twelve-thirty-svgrepo-com\" d=\"M12,9v8m9-5a9,9,0,1,1-9-9A9,9,0,0,1,21,12Z\" transform=\"translate(-2 -2)\" fill=\"none\" stroke=\"#05acc2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"/>'\r\n\t},\r\n\tmagic_wand: {\r\n\t\tviewBox: '0 0 35.649 32.735',\r\n\t\twidth: '35.649',\r\n\t\theight: '32.735',\r\n\t\tsvgCode: '<g transform=\"translate(0 -0.908)\"><path d=\"M19.561,10.5l3.6,3.6L3.6,33.643,0,30.045Zm7-.851L24.006,7.087c-.8-.8-1.168.125-1.966.923s-1.72,1.165-.921,1.964l2.558,2.558c.8.8,1.167-.128,1.964-.924S27.362,10.442,26.563,9.645Zm2.345,3.3-1.1,1.467-1.834.08,1.47,1.106.08,1.821,1.1-1.457,1.838-.082-1.467-1.1ZM35.649,6.92l-3.308.146L30.365,9.69l-.141-3.282-2.645-1.99,3.3-.144,1.984-2.642.148,3.3Zm-1.266-.392L32.571,5.166l-.1-2.263-1.364,1.81-2.26.1,1.815,1.366.1,2.244,1.348-1.8ZM23.106,5.663l1.167-1.55,1.953-.085L24.668,2.856,24.579.908,23.408,2.466l-1.947.085,1.561,1.176Z\" transform=\"translate(0 0)\" /></g>'\r\n\t},\r\n\tdownload_file: {\r\n\t\tviewBox: '0 0 23.689 23.689',\r\n\t\twidth: '23.689',\r\n\t\theight: '23.689',\r\n\t\tsvgCode: '<path d=\"M13.693,19.569a.911.911,0,0,1-1.345,0L7.489,14.254a.911.911,0,0,1,1.345-1.23l3.276,3.583V3.161a.911.911,0,1,1,1.822,0V16.607l3.276-3.583a.911.911,0,1,1,1.345,1.23Z\" transform=\"translate(-1.176 -2.25)\" fill=\"#fff\"/><path d=\"M4.072,15.161a.911.911,0,1,0-1.822,0v.067a33.308,33.308,0,0,0,.142,4.054,4.516,4.516,0,0,0,1.193,2.745A4.515,4.515,0,0,0,6.33,23.22a33.328,33.328,0,0,0,4.054.142h7.422a33.329,33.329,0,0,0,4.054-.142A4.516,4.516,0,0,0,24.6,22.027,4.516,4.516,0,0,0,25.8,19.282a33.329,33.329,0,0,0,.142-4.054v-.067a.911.911,0,1,0-1.822,0,32.653,32.653,0,0,1-.125,3.878,2.739,2.739,0,0,1-.675,1.7,2.739,2.739,0,0,1-1.7.675,32.653,32.653,0,0,1-3.878.125H10.45a32.652,32.652,0,0,1-3.878-.125,2.739,2.739,0,0,1-1.7-.675,2.739,2.739,0,0,1-.675-1.7A32.635,32.635,0,0,1,4.072,15.161Z\" transform=\"translate(-2.25 0.328)\" fill=\"#fff\"/>'\r\n\t}\r\n}","import React from \"react\"\r\nimport { IconsSVG } from \"../../assets/images/icon-sprite\"\r\n\r\nconst IconSVG = props => {\r\n\tconst { icon } = props\r\n\treturn (\r\n\t\t<svg className={props.className ? props.className : ''} viewBox={IconsSVG[icon].viewBox} width={props.width ? props.width : IconsSVG[icon].width} height={props.height ? props.height : IconsSVG[icon].height} dangerouslySetInnerHTML={{__html: IconsSVG[icon].svgCode}} />\r\n\t)\r\n}\r\n\r\nexport default IconSVG","import { withSitecoreContext, Text } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport React, { Component } from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { ReCaptcha } from \"react-recaptcha-v3\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Formik, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport CustomSelect from \"../../utilities/FrontFunctions/FormElements/CustomSelect\";\r\nimport { getApiDatas, postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\n\r\nclass PageActivationCompte extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tserverError: false,\r\n\t\t\tserverErrorAccountActivate: false,\r\n\t\t\tserverErrorAccountActivateLabel: \"\",\r\n\t\t\taccountActivated: false,\r\n\t\t\tapiDatas: [],\r\n\t\t\tinitDataOK: false,\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Call/GetDataPageRegister`).then((apiDatas) => {\r\n\t\t\tthis.setState({ apiDatas: apiDatas });\r\n\t\t\tif (apiDatas?.Postes && apiDatas?.User) {\r\n\t\t\t\tthis.setState({ initDataOK: true });\r\n\t\t\t}\r\n\t\t});\r\n /*\r\n var oCookiePdvBase64 = Cookies.get(\"aoxRegisterPdv\");\r\n\t\tif (typeof oCookiePdvBase64 !== \"undefined\") {\r\n\t\t\tvar sInfoPdv = atob(decodeURIComponent(oCookiePdvBase64));\r\n\t\t\tvar oInfoPdv = JSON.parse(sInfoPdv); \r\n\r\n getApiDatas(`/apiaox/Call/CheckSalePointFromCode?salepointCode=`+ oInfoPdv?.Code).then((resCheckSalePointFromCode)=>{\r\n this.setState({ salePoint: resCheckSalePointFromCode });\r\n })\r\n }\r\n */\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst { PageCAF, PageContact, CurrentUser } = this.props.fields.data;\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n\r\n\t\tif (this.state.accountActivated) {\r\n\t\t\treturn <Redirect to={PageCAF != null && PageCAF.parameterValue.value} />;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_form\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<div className=\"ctn_top\">\r\n\t\t\t\t\t\t{oCurrentItemFields && <Text field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\" />}\r\n\t\t\t\t\t\t<br />\r\n\t\t\t\t\t\t{oCurrentItemFields && <Text field={oCurrentItemFields[\"Page Text\"]} tag=\"p\" />}\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div className=\"ctn_form\">\r\n\t\t\t\t\t\t<div className=\"grid_container\">\r\n\t\t\t\t\t\t\t<div className=\"grid_item grid_mdp\">\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_contact\">\r\n\t\t\t\t\t\t\t\t\t<h3>{this.props.t(\"Register_contactQuestion\")}</h3>\r\n\t\t\t\t\t\t\t\t\t<h4>{this.props.t(\"Register_contactByMail\")}</h4>\r\n\t\t\t\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta var_picto var_email\" href={PageContact && PageContact.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"email\" width=\"21\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Register_contactSubmitText\")}\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t<h4>{this.props.t(\"Register_contactByPhone\")}</h4>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_tel\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Register_contactPhone\") }}></p>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_mention\">{this.props.t(\"Register_contactByPhonePrice\")}</p>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"grid_item grid_form-perso\">\r\n\t\t\t\t\t\t\t\t{!this.state.initDataOK ? (\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t\t\t{/* TODO SGU Msg */}\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_30 fade-in\">Error init Form </p>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t) : (\r\n <>\r\n <Formik\r\n initialValues={{\r\n civilite: CurrentUser.gender,\r\n lastname: CurrentUser.lastname,\r\n firstname: CurrentUser.firstname,\r\n birthday: CurrentUser.birthday,\r\n birthmonth: CurrentUser.birthmonth,\r\n birthyear: CurrentUser.birthyear,\r\n email: CurrentUser.email,\r\n phone: CurrentUser.phone,\r\n address: CurrentUser.adress,\r\n address_bis: CurrentUser.adress2,\r\n postal_code: CurrentUser.postalcode,\r\n city: CurrentUser.city,\r\n\r\n poste: \"\",\r\n acceptNwl: false,\r\n acceptNotifications: false,\r\n\r\n securiteSociale: \"\",\r\n noSS: false,\r\n\r\n recaptcha: \"\",\r\n }}\r\n validationSchema={Yup.object().shape({\r\n civilite: Yup.string().required(),\r\n lastname: Yup.string().required(),\r\n firstname: Yup.string().required(),\r\n email: Yup.string().email().required(),\r\n phone: Yup.string().required(),\r\n poste: Yup.string().required(),\r\n securiteSociale: Yup.string().matches(\r\n /^([1-37-8])([0-9]{2})(0[0-9]|[2-35-9][0-9]|[14][0-2])((0[1-9]|[1-8][0-9]|9[0-69]|2[abAB])(00[1-9]|0[1-9][0-9]|[1-8][0-9]{2}|9[0-8][0-9]|990)|(9[78][0-9])(0[1-9]|[1-8][0-9]|90))(00[1-9]|0[1-9][0-9]|[1-9][0-9]{2})(0[1-9]|[1-8][0-9]|9[0-7])$/,\r\n \"\"\r\n ),\r\n\r\n recaptcha: Yup.string().required(),\r\n })}\r\n onSubmit={(values) => {\r\n document.body.classList.add(\"is-loading\");\r\n postApiDatas(`/apiaox/Call/InfosPerso_AccountActivate`, values).then((res) => {\r\n this.setState({\r\n accountActivated: res.IsValid,\r\n serverErrorAccountActivate: !res.IsValid,\r\n serverErrorAccountActivateLabel: res.Message,\r\n });\r\n\r\n if (this.recaptchaInfoPerso) {\r\n this.recaptchaInfoPerso.execute();\r\n }\r\n\r\n document.body.classList.remove(\"is-loading\");\r\n });\r\n }}\r\n >\r\n {({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n <form onSubmit={handleSubmit}>\r\n <h2>{this.props.t(\"Register_InformationsPersonnelles\")}</h2>\r\n <div className=\"obj_form\">\r\n <div className=\"mb_30\">\r\n <CustomSelect\r\n fieldName={\"civilite\"}\r\n placeholder={this.props.t(\"Register_genderPlaceholder\")}\r\n options={[\r\n { value: \"0\", label: this.props.t(\"Register_genderFemale\"), },\r\n { value: \"1\", label: this.props.t(\"Register_genderMale\"), },\r\n { value: \"2\", label: this.props.t(\"Register_genderNotDefined\") },\r\n ]}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n defaultValue={CurrentUser.gender.toString()}\r\n />\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <Field\r\n autoComplete=\"off\"\r\n className={errors.lastname && touched.lastname && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"lastname\"\r\n placeholder={this.props.t(\"Register_lastnamePlaceholder\")}\r\n />\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <Field\r\n autoComplete=\"off\"\r\n className={errors.firstname && touched.firstname && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"firstname\"\r\n placeholder={this.props.t(\"Register_firstnamePlaceholder\")}\r\n />\r\n </div>\r\n <div className=\"ctn_select-birthdate mb_30\">\r\n <label className=\"t_label\">{this.props.t(\"Register_Birthdate\")}</label>\r\n <div className=\"ctn_select-wrapper\">\r\n <CustomSelect\r\n fieldName={\"birthday\"}\r\n placeholder={CurrentUser.birthday !== \"-1\" ? CurrentUser.birthday : this.props.t(\"Register_DateDeNaissanceJour\")}\r\n options={\"DayConfig\"}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n />\r\n <CustomSelect\r\n fieldName={\"birthmonth\"}\r\n placeholder={CurrentUser.birthmonth !== \"-1\" ? CurrentUser.birthmonth : this.props.t(\"Register_DateDeNaissanceMois\")}\r\n options={\"MonthConfig\"}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n />\r\n <CustomSelect\r\n fieldName={\"birthyear\"}\r\n placeholder={CurrentUser.birthyear !== \"-1\" ? CurrentUser.birthyear : this.props.t(\"Register_DateDeNaissanceAnnee\")}\r\n options={\"YearConfig\"}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\" id=\"GoToAddress\">\r\n <Field\r\n autoComplete=\"off\"\r\n className={errors.email && touched.email && \"error\"}\r\n as=\"input\"\r\n type=\"email\"\r\n name=\"email\"\r\n placeholder={this.props.t(\"Register_emailPlaceholder\")}\r\n disabled={true}\r\n />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_emailDetails\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"phone\" placeholder={this.props.t(\"Register_PhonePlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_PhoneDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"address\" placeholder={this.props.t(\"Register_AdressPlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_AdressDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"address_bis\" placeholder={this.props.t(\"Register_Adress2Placeholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_Adress2Detail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"postal_code\" placeholder={this.props.t(\"Register_CodePostalPlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_CodePostalDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"city\" placeholder={this.props.t(\"Register_CityPlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_CityDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <br />\r\n\r\n <h2>{this.props.t(\"Register_InformationsProfessionnelles\")}</h2>\r\n <div className=\"obj_form\">\r\n <div className=\"ctn_select-birthdate mb_30\">\r\n <label className=\"t_label\">{this.props.t(\"Register_VotrePDV\")}</label>\r\n <p>\r\n {apiDatas.User.Salepoint.Code} - {apiDatas.User.Salepoint.Name}\r\n </p>\r\n </div>\r\n\r\n <div className=\"mb_30\">\r\n <CustomSelect\r\n fieldName={\"poste\"}\r\n placeholder={this.props.t(\"Register_postePlaceholder\")}\r\n options={apiDatas.Postes.map((poste) => ({\r\n value: poste.FrontOfficeUserPoste_Id,\r\n label: poste.FrontOfficeUserPoste_Name,\r\n }))}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n defaultValue={CurrentUser.userkind.toUpperCase()}\r\n />\r\n </div>\r\n\r\n <div className=\"ctn_checkbox_background mb_30\">\r\n <p className=\"t_title\">{this.props.t(\"Register_AcceptNewsletter\")}</p>\r\n <div className=\"ctn_line\">\r\n <Field type=\"checkbox\" id=\"acceptNwl\" name=\"acceptNwl\" className=\"switch_checkbox\" />\r\n <label className=\"switch_checkbox_label\" htmlFor=\"acceptNwl\">\r\n <span></span> {this.props.t(\"Register_acceptNwl\")}\r\n </label>\r\n </div>\r\n <p className=\"t_desc\">{this.props.t(\"Register_undoConsent\")}</p>\r\n </div>\r\n </div>\r\n\r\n <br />\r\n\r\n {this.state.apiDatas?.User?.IsChallenge && <>\r\n <h2>{this.props.t(\"Register_Challenges\")}</h2>\r\n <div className=\"obj_form\">\r\n <p className=\"t_mention mb_30\">{this.props.t(\"Register_NeedSS\")}</p>\r\n\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field\r\n className={errors.securiteSociale && touched.securiteSociale && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"securiteSociale\"\r\n placeholder={this.props.t(\"Register_SecuriteSociale\")}\r\n />\r\n </div>\r\n {errors.securiteSociale && touched.securiteSociale && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"Register_SecuriteSocialeInvalide\")}</p>}\r\n <div className=\"ctn_checkbox mb_30\">\r\n <Field type=\"checkbox\" id=\"noSS\" name=\"noSS\" />\r\n <label className=\"\" htmlFor=\"noSS\">\r\n {this.props.t(\"Register_NoSS\")}\r\n </label>\r\n </div>\r\n </div>\r\n </>}\r\n\r\n <div className=\"obj_form\">\r\n <p\r\n className=\"t_mention mb_30\"\r\n dangerouslySetInnerHTML={{\r\n __html: this.props.t(\"Register_CGU\"),\r\n }}\r\n ></p>\r\n\r\n <p className=\"t_mandatory mb_30\">{this.props.t(\"Register_mandatory\")}</p>\r\n\r\n <ReCaptcha\r\n ref={(ref) => (this.recaptchaInfoPerso = ref)}\r\n sitekey={this.props.t(\"recaptcha_sitekey\")}\r\n action=\"PersoChangeInfoPerso\"\r\n id=\"recaptchaInfoPerso\"\r\n verifyCallback={(recaptchaToken) => {\r\n setFieldValue(\"recaptcha\", recaptchaToken);\r\n }}\r\n />\r\n\r\n {this.state.serverErrorAccountActivate && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorAccountActivateLabel}</p>}\r\n\r\n {this.state.serverErrorAccountActivate && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorAccountActivateLabel}</p>}\r\n\r\n { ((errors.civilite && touched.civilite) ||\r\n (errors.lastname && touched.lastname) ||\r\n (errors.firstname && touched.firstname) ||\r\n (errors.email && touched.email) ||\r\n (errors.poste && touched.poste) ||\r\n errors.recaptcha) && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"DefaultErrorMessage\")}</p>\r\n }\r\n\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"submit\">\r\n Activer\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n )}\r\n </Formik>\r\n {/*Bug ReCaptcha, il en faut 1 dernier pour que les autres fonctionne !! */}\r\n <ReCaptcha ref={(ref) => (this.recaptchaAutre = ref)} sitekey={this.props.t(\"recaptcha_sitekey\")} elementID=\"recaptchaAutre\" />\r\n </>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t</section>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageActivationCompte));\r\n","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass SingleFileUploadModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\tconst { previewThumb, previewThumbName } = this.props\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\" style={{display:'flex', justifyContent:'center'}}>\r\n\t\t\t\t\t\t<img src={previewThumb} style={{maxWidth:'100%', maxHeight:'74vh'}} alt={previewThumbName}/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default SingleFileUploadModal","import React, { Component } from 'react'\r\nimport SingleFileUploadModal from './SingleFileUploadModal'\r\nimport { isImage, fileReader } from '../../../utilities/FrontFunctions/AoxGlobalFrontFunctions'\r\n\r\nclass SingleFileUpload extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisHover: false,\r\n\t\t\tisLoading: false,\r\n\t\t\tthumb: undefined,\r\n\t\t\tthumbName: undefined,\r\n\t\t\tthumbWeight: undefined,\r\n\t\t\tthumbType: undefined,\r\n\t\t\tfile: false,\r\n\t\t\tdefaultThumb: this.props.defaultThumb ? this.props.defaultThumb : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjgyQUM2Nzc0MTE3MTFFQUFBNjlGNjU4NEI3Q0RBNzciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjgyQUM2NzY0MTE3MTFFQUFBNjlGNjU4NEI3Q0RBNzciIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUY0NERBRTkzNzk3MTFFQTkyMjg4ODE0OEM2M0JFRjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OUY0NERBRUEzNzk3MTFFQTkyMjg4ODE0OEM2M0JFRjciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4VzaHsAAAB0ElEQVR42uybzapBURSAuY5EIUkxNJCxO1KUMvMOBp6AIZ5E5spPHoJSTCTl7zUI1ylhZ0/u4A5u5x/fGq0zWed8rbW/vU+d497v965Pii/XhwXAAAMMMMAAAwwwwAADDPC/QtFfYjKZ9Hq97XZ7uVyseehEIjEcDm0AVlW1Wq0KWou7pOcdXtdI12o162ltG+npdNrtdmWeTqcrlUo4HDb1WZfLZbvdtg14MBjIJJVKrdfr6/VqbmcUpd/v2wm82+1kUi6XBa1Yz2++LR0OB5nEYjH2YYDf6eDxOzabzXg8NrBgNpvNZDLOBR6NRs1m08CCjUbDWGBGWvcE1ut1AwsWCgVHA38/A2khLaSFtJAW0kJaSAtpIS2khbSQFtJCWkgLaSEtpIW0kBbSQlpIC2khLaSFtJwvrVca6fv97pQOezwen89nKq24xWw2k3k8HrcZ+Hw+m0qrqmqn02m1WvKyWCxqLuXW/GVqLpdbrVYi8fv9Xq/XVODj8Xi73WQeiUTm83k0GrWtwz/PsGYZBwIB0WrNtK8kLUVRSqWSONjk83k9dbSP9GKxOJ1O1tAGg8FkMhkKhfSXcvOHOMAAAwwwwAADDDDAAAMM8B/xEGAA9PriNpghZZ4AAAAASUVORK5CYII=',\r\n\t\t\tthumbSize: this.props.thumbSize ? this.props.thumbSize : 80,\r\n\t\t\tmaxSize: this.props.maxSize ? this.props.maxSize : 10000000,\r\n\t\t\tsizeError: false,\r\n\t\t\tsizeErrorText: this.props.sizeErrorText ? this.props.sizeErrorText : 'Your file must be under',\r\n\t\t\tformatTypes: this.props.formatTypes ? this.props.formatTypes : ['image/jpeg', 'image/png', 'image/gif'],\r\n\t\t\tformatError: false,\r\n\t\t\tformatErrorText: this.props.formatErrorText ? this.props.formatErrorText : 'Only .jpg, .png, and .gif files.',\r\n\t\t\tloadingError: false,\r\n\t\t\tloadingErrorText: this.props.loadingErrorText ? this.props.loadingErrorText : 'Something went wrong...',\r\n\t\t\tlabelText: this.props.labelText ? this.props.labelText : 'Choose a file',\r\n\t\t\tctaCancelText: this.props.ctaCancelText ? this.props.ctaCancelText : 'Cancel',\r\n\t\t\ttimeOutSimulation: this.props.timeOutSimulation ? this.props.timeOutSimulation : false\r\n\t\t}\r\n\t\tthis.handleFileChange = this.handleFileChange.bind(this)\r\n\t\tthis.handleFileReset = this.handleFileReset.bind(this)\r\n\t\tthis.destroy = this.destroy.bind(this)\r\n\t\tthis.drawThumb = this.drawThumb.bind(this)\r\n\t\tthis.handleCanvas = this.handleCanvas.bind(this)\r\n\t\tthis.handleMouseEnterSingleFileUpload = this.handleMouseEnterSingleFileUpload.bind(this)\r\n\t\tthis.handleMouseLeaveSingleFileUpload = this.handleMouseLeaveSingleFileUpload.bind(this)\r\n\t\tthis.canvasRef = React.createRef()\r\n\t\tthis.inputRef = React.createRef()\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\tdrawThumb() {\r\n\t\tlet canvas = this.canvasRef.current\r\n\t\tlet ctx = canvas.getContext('2d')\r\n\t\tlet image = new Image()\r\n\t\tif( this.state.thumbType === 'image/jpeg' || this.state.thumbType === 'image/png' || this.state.thumbType === 'image/gif' ){\r\n\t\t\timage.src = this.state.thumb\r\n\t\t} else {\r\n\t\t\timage.src = this.state.defaultThumb\r\n\t\t}\r\n\t\timage.onload = () => {\r\n\t\t\tlet srcMinSize = Math.min(image.width, image.height)\r\n\t\t\tlet srcPosX = (image.width / 2) - (srcMinSize / 2)\r\n\t\t\tlet srcPosY = (image.height / 2) - (srcMinSize / 2)\r\n\t\t\tctx.drawImage(image, srcPosX, srcPosY, srcMinSize, srcMinSize, 0, 0, this.state.thumbSize, this.state.thumbSize)\r\n\t\t}\r\n\t}\r\n\thandleFileChange(e, fieldName, setFieldValue) {\r\n\t\tlet currentFile = e.currentTarget.files[0]\r\n\t\tif(currentFile === undefined) return\r\n\t\tthis.setState(state => ({\r\n\t\t\tisLoading: true,\r\n\t\t\tthumb: undefined,\r\n\t\t\tthumbName: undefined,\r\n\t\t\tthumbWeight: undefined,\r\n\t\t\tthumbType: undefined,\r\n\t\t\tfile: false,\r\n\t\t\tsizeError: false,\r\n\t\t\tformatError: false\r\n\t\t}), () => {\r\n\t\t\tthis.props.onUnload()\r\n\t\t})\r\n\t\tfileReader(currentFile)\r\n\t\t\t.then(result => {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif( !this.state.formatTypes.includes(currentFile.type) ){\r\n\t\t\t\t\t\tthis.inputRef.current.value = ''\r\n\t\t\t\t\t\tsetFieldValue(fieldName, null)\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\tformatError: true\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if( currentFile.size > this.state.maxSize ){\r\n\t\t\t\t\t\tthis.inputRef.current.value = ''\r\n\t\t\t\t\t\tsetFieldValue(fieldName, null)\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\tsizeError: true\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthis.setState(state => ({\r\n\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\tthumb: result,\r\n\t\t\t\t\t\t\tthumbName: currentFile.name,\r\n\t\t\t\t\t\t\tthumbWeight: currentFile.size,\r\n\t\t\t\t\t\t\tthumbType: currentFile.type,\r\n\t\t\t\t\t\t\tfile: true\r\n\t\t\t\t\t\t}), () => {\r\n\t\t\t\t\t\t\tsetFieldValue(fieldName, currentFile)\r\n\t\t\t\t\t\t\tthis.drawThumb()\r\n\t\t\t\t\t\t\tthis.props.onUpload()\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}, this.state.timeOutSimulation ? 1000 : 0 )\r\n\t\t\t})\r\n\t\t\t.catch(error => {\r\n\t\t\t\tthis.inputRef.current.value = ''\r\n\t\t\t\tsetFieldValue(fieldName, null)\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\tloadingError: true\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t}\r\n\tdestroy() {\r\n\t\tthis.inputRef.current.value = ''\r\n\t\tthis.setState(state => ({\r\n\t\t\tthumb: undefined,\r\n\t\t\tthumbName: undefined,\r\n\t\t\tthumbWeight: undefined,\r\n\t\t\tthumbType: undefined,\r\n\t\t\tfile: false\r\n\t\t}), () => {\r\n\t\t\tthis.props.onUnload()\r\n\t\t})\r\n\t}\r\n\thandleFileReset(e, fieldName, setFieldValue, setFieldTouched) {\r\n\t\tsetFieldValue(fieldName, null)\r\n\t\tsetFieldTouched(fieldName, false)\r\n\t\tthis.destroy()\r\n\t}\r\n\thandleCanvas(){\r\n\t\tisImage(this.state.thumbType) && this.SingleFileUploadModal.openModal()\r\n\t}\r\n\thandleMouseEnterSingleFileUpload() {\r\n\t\tthis.setState({\r\n\t\t\tisHover: true\r\n\t\t})\r\n\t}\r\n\thandleMouseLeaveSingleFileUpload() {\r\n\t\tthis.setState({\r\n\t\t\tisHover: false\r\n\t\t})\r\n\t}\r\n\trender() {\t\t\r\n\t\tconst { setFieldValue, setFieldTouched, errors, touched, fieldName } = this.props\r\n\t\tconst { isLoading, thumbType, thumbName, thumbSize, thumbWeight, file, maxSize, sizeError, sizeErrorText, formatError, formatErrorText, loadingError, loadingErrorText, labelText, ctaCancelText } = this.state\r\n\t\treturn(\r\n\t\t\t<div className={`ctn_single-file-upload${this.state.isHover ? ' hover' : ''}`}>\r\n\t\t\t\t<div className={errors[fieldName] && touched[fieldName] ? 'error' : ''}>\r\n\t\t\t\t\t<div className=\"ctn_cta\" onMouseEnter={this.handleMouseEnterSingleFileUpload} onMouseLeave={this.handleMouseLeaveSingleFileUpload}>\r\n\t\t\t\t\t\t<label className=\"obj_cta\" htmlFor={fieldName}>{labelText}</label>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<input\r\n\t\t\t\t\tref={this.inputRef}\r\n\t\t\t\t\ttype=\"file\"\r\n\t\t\t\t\tid={fieldName}\r\n\t\t\t\t\tname={fieldName}\r\n\t\t\t\t\tonChange={(e) => this.handleFileChange(e, fieldName, setFieldValue)}\r\n\t\t\t\t/>\r\n\t\t\t\t{loadingError && <p className=\"t_error fade-in\">{loadingErrorText}</p>}\r\n\t\t\t\t{formatError && <p className=\"t_error fade-in\">{formatErrorText}</p>}\r\n\t\t\t\t{sizeError && <p className=\"t_error fade-in\">{sizeErrorText} {maxSize / 2000000}Mo.</p>}\r\n\t\t\t\t{isLoading && <div className=\"obj_loader fade-in\"></div>}\r\n\t\t\t\t{file &&\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<div className=\"ctn_file-thumb fade-in\">\r\n\t\t\t\t\t\t\t<canvas className={`canvas_thumb${isImage(thumbType) ? '' : ' no_cursor'}`} onClick={this.handleCanvas} ref={this.canvasRef} width={thumbSize} height={thumbSize}></canvas>\r\n\t\t\t\t\t\t\t<div className=\"ctn_infos\">\r\n\t\t\t\t\t\t\t\t<p className=\"t_name\">{thumbName}</p>\r\n\t\t\t\t\t\t\t\t<p className=\"t_weight\">{(Math.round(thumbWeight / 10000)) / 100}Mo</p>\r\n\t\t\t\t\t\t\t\t<button className=\"bt_cancel\" type=\"button\" onClick={(e) => this.handleFileReset(e, fieldName, setFieldValue, setFieldTouched)}>{ctaCancelText}</button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t{isImage(thumbType) &&\r\n\t\t\t\t\t\t\t<SingleFileUploadModal onRef={ref => (this.SingleFileUploadModal = ref)} previewThumb={this.state.thumb} previewThumbName={this.state.thumbName}/>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nSingleFileUpload.defaultProps = {\r\n\tonUpload: () => {},\r\n\tonUnload: () => {},\r\n\tonRef: () => {}\r\n}\r\n\r\nexport default SingleFileUpload","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass CommentImageModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\tconst { CommentImage } = this.props\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<button onClick={this.openModal} className=\"bt_comment-img\" type=\"button\">\r\n\t\t\t\t\t<img src={CommentImage} alt=\"\" />\r\n\t\t\t\t</button>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\" style={{display:'flex', justifyContent:'center'}}>\r\n\t\t\t\t\t\t<img src={CommentImage} style={{maxWidth:'100%', maxHeight:'74vh'}} alt=\"\" />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default CommentImageModal","const myQuery = `query GetArticlesInformations($contextItem: String) {\r\n \r\n CurrentArticleReview: item(path: $contextItem) {\r\n reviewsCount(templateOfReviews: \"{1F37FA27-CB52-40B0-8840-D93BA7BE20E9}\")\r\n reviews(templateOfReviews: \"{1F37FA27-CB52-40B0-8840-D93BA7BE20E9}\") {\r\n idrefReview: idref\r\n ...SearchReviewFOU\r\n ...SearchReviewArticleReview\r\n responseList: children(includeTemplateIDs: \"{454A9CFD-9656-4A16-B4A8-1400C76538BF}\") {\r\n ...SearchReviewFOU\r\n ...SearchReviewArticleReview\r\n }\r\n }\r\n }\r\n}\r\n\r\nfragment SearchReviewFOU on Item {\r\n reviewsFOU {\r\n firstname\r\n lastname\r\n username\r\n userimg\r\n }\r\n}\r\n\r\nfragment SearchReviewArticleReview on Item {\r\n ... on ArticleReview {\r\n comment {\r\n jss\r\n }\r\n rating {\r\n jss\r\n numberValue\r\n }\r\n image {\r\n jss\r\n }\r\n creationDate {\r\n jss\r\n dateValue\r\n }\r\n updateDate {\r\n jss\r\n dateValue\r\n }\r\n userId {\r\n jss\r\n }\r\n userName {\r\n jss\r\n }\r\n }\r\n}`;\r\n\r\nexport default myQuery;","import React, { Component } from 'react'\r\nimport { Formik, Field } from 'formik'\r\nimport * as Yup from 'yup' \r\nimport { Link as ScrollLink } from 'react-scroll'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport SingleFileUpload from '../../utilities/FrontFunctions/FormElements/SingleFileUpload'\r\nimport CommentImageModal from '../inc/Modal/CommentImageModal' \r\nimport config from '../../temp/config'; \r\n \r\nimport { throttle, isMobile, formatDate, fileReader } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport Moment from 'react-moment'; \r\nimport axios from 'axios';\r\n\r\nimport QUERY_GET_REVIEWS from './GraphQL/GetCurrentArticleReviews.js';\r\nclass SectionComments extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tUrlCallLikes: `${config.sitecoreApiHost}/apiaox/Call/LikePost?sc_apikey=${config.sitecoreApiKey}`, \r\n\t\t\tUrlSendReview: `${config.sitecoreApiHost}/apiaox/Call/AddArticleReview?sc_apikey=${config.sitecoreApiKey}`, \r\n\r\n\t\t\tUrlCallGraphQL: `${config.graphQLEndpoint}`, \r\n\r\n\t\t\tserverError: false, \r\n\t\t\tlikeIsSubmitting: false,\r\n\t\t\t\r\n\t\t\treviewToShow: 2,\r\n\t\t\treviewInterval: 2,\r\n\t\t\tresponseToShow: 2,\r\n\t\t\tresponseInterval: 2,\r\n\r\n\t\t\tCurrentArticleReview: props.CurrentArticleReview\t\t\t\r\n\t\t} \r\n\t \r\n\t\t// window resize\r\n\t\tthis.handleWindowResizeSectionArticle = this.handleWindowResizeSectionArticle.bind(this)\r\n\t\tthis.throttleWindowResizeSectionArticle = throttle(this.handleWindowResizeSectionArticle, 100)\r\n\t\t// bg comment\r\n\t\tthis.bgComment = React.createRef() \r\n\t\t// toggle comment form\r\n\t\tthis.toggleCommentForm = this.toggleCommentForm.bind(this)\r\n\t\t// set comment servor error\r\n\t\tthis.setCommentServerError = this.setCommentServerError.bind(this)\r\n\t\t// show more review\r\n\t\tthis.showMoreReview = this.showMoreReview.bind(this)\r\n\t\t// show more response\r\n\t\tthis.showMoreResponse = this.showMoreResponse.bind(this)\r\n\t\t// add new comment\r\n\t\tthis.addNewComment = this.addNewComment.bind(this)\r\n\t\t// add new response\r\n\t\tthis.addNewResponse = this.addNewResponse.bind(this) \r\n\r\n\t\t// AJAX call\r\n\t\tthis.CurrentArticleReviewIsFetch = false\r\n\t\tthis.CurrentArticleReviewFetchEnCours= false\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\t// add and dispatch window resize\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeSectionArticle)\r\n\t\twindow.dispatchEvent(new Event('resize'))\r\n\t}\r\n\tcomponentWillUnmount(){\r\n\t\t// remove window resize\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeSectionArticle)\r\n\t}\r\n\thandleWindowResizeSectionArticle(){\r\n\t\t// bg comment\r\n\t\tvar windowWidth = document.body.clientWidth,\r\n\t\t\twindowMargin = (windowWidth - 768) / 2\r\n\t\tif(windowWidth >= 768) {\r\n\t\t\tif(this.bgComment && this.bgComment.current){\r\n\t\t\t\tthis.bgComment.current.style.width = windowWidth + \"px\"\r\n\t\t\t\tthis.bgComment.current.style.transform = \"translateX(-\" + windowMargin + \"px)\"\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif(this.bgComment && this.bgComment.current){\r\n\t\t\t\tthis.bgComment.current.style.width = \"\"\r\n\t\t\t\tthis.bgComment.current.style.transform = \"\"\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t \r\n\tshowMoreReview(){\r\n\t\t\r\n\t\tif (!this.CurrentArticleReviewIsFetch)\r\n\t\t{\t\t\t\t\t\t\r\n\t\t\tif (this.state.CurrentArticleReview.id)\r\n\t\t\t{\r\n\t\t\t\tthis.CurrentArticleReviewFetchEnCours = true;\r\n\r\n\t\t\t\tdocument.body.classList.add('is-loading')\r\n\r\n\t\t\t\taxios.post(this.state.UrlCallGraphQL, {\r\n\t\t\t\t\t\tquery: QUERY_GET_REVIEWS,\r\n\t\t\t\t\t\tvariables: {\r\n\t\t\t\t\t\t\tcontextItem: this.state.CurrentArticleReview.id\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twithCredentials: true\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(res => {\t\t\t\t\t\r\n\t\t\t\t\t\t\tthis.setState(prevState => ({\r\n\t\t\t\t\t\t\t\tCurrentArticleReview: res.data.data.CurrentArticleReview,\r\n\t\t\t\t\t\t\t\treviewToShow: prevState.reviewToShow + this.state.reviewInterval,\t\t\r\n\t\t\t\t\t\t\t}))\r\n\r\n\t\t\t\t\t\t\tthis.CurrentArticleReviewIsFetch = true;\r\n\t\t\t\t\t\t\tthis.CurrentArticleReviewFetchEnCours = false;\r\n\r\n\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t})\t\r\n\t\t\t\t\t\t.catch((err) => {\r\n\t\t\t\t\t\t\tconsole.log(err)\r\n\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t}); \r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tconsole.error(\"CurrentArticleReview ID not defined\");\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (!this.CurrentArticleReviewFetchEnCours)\r\n\t\t{\r\n\t\t\tthis.setState(prevState => ({\r\n\t\t\t\treviewToShow: prevState.reviewToShow + this.state.reviewInterval\r\n\t\t\t}))\r\n\t\t}\r\n\t}\r\n\tshowMoreResponse(){\r\n\t\tthis.setState(prevState => ({\r\n\t\t\tresponseToShow: prevState.responseToShow + this.state.responseInterval\r\n\t\t}))\r\n\t}\r\n\ttoggleCommentForm(list, item, index) {\r\n\t\tlist[index].formVisible = !item.formVisible\r\n\t\tthis.setState({ list })\r\n\t}\r\n\tsetCommentServerError(list, item, index) {\r\n\t\tlist[index].serverError = true\r\n\t\tthis.setState({ list })\r\n\t}\r\n\taddNewComment(values) {\r\n\t\tconst reviewList = this.state.reviewList\r\n\t\tlet fileValue = values[`mainfileupload`]\r\n\t\tconst newItem = {\r\n\t\t\tformVisible: false,\r\n\t\t\tname: this.state.user,\r\n\t\t\tdate: formatDate(new Date()),\r\n\t\t\tcomment: values[`comment`],\r\n\t\t\tcommentImage: null,\r\n\t\t\tcommentImageError: false,\r\n\t\t\tresponseList: []\r\n\t\t}\r\n\t\tif( fileValue === null ) {\r\n\t\t\tthis.setState({ reviewList: [...reviewList, newItem] })\r\n\t\t} else {\r\n\t\t\tfileReader(fileValue)\r\n\t\t\t\t.then(result => {\r\n\t\t\t\t\tnewItem.commentImage = result\r\n\t\t\t\t})\r\n\t\t\t\t.catch(error => {\r\n\t\t\t\t\tnewItem.commentImageError = true\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tthis.setState({ reviewList: [...reviewList, newItem] })\r\n\t\t\t\t})\r\n\t\t}\r\n\t}\r\n\taddNewResponse(values, index) {\r\n\t\tconst reviewList = this.state.reviewList\r\n\t\tlet fileValue = values[`mainfileupload${index}`]\r\n\t\tconst newItem = {\r\n\t\t\tname: this.state.user,\r\n\t\t\tdate: formatDate(new Date()),\r\n\t\t\tcomment: values[`comment${index}`],\r\n\t\t\tcommentImage: null,\r\n\t\t\tcommentImageError: false\r\n\t\t}\r\n\t\treviewList[index].responseList.push(newItem)\r\n\t\tif( fileValue === null ) {\r\n\t\t\tthis.setState({ reviewList })\r\n\t\t} else {\r\n\t\t\tfileReader(fileValue)\r\n\t\t\t\t.then(result => {\r\n\t\t\t\t\tnewItem.commentImage = result\r\n\t\t\t\t})\r\n\t\t\t\t.catch(error => {\r\n\t\t\t\t\tnewItem.commentImageError = true\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tthis.setState({ reviewList })\r\n\t\t\t\t})\r\n\t\t}\r\n\t} \r\n\trender() { \r\n\r\n const { UserCanAddReview, legalFileForContest, hideCommentContent } = this.props; \r\n\r\n\t\treturn (\r\n\t\t\t \r\n\t\t\t<div className=\"ctn_comment\" id=\"ctnComment\">\r\n\t\t\t<div className=\"bg_comment\" ref={this.bgComment} id=\"bgComment\"></div>\r\n\t\t\t\r\n\t\t\t\t<div className=\"ctn_comments\">\r\n\t\t\t\t<h3>{this.state.CurrentArticleReview && this.state.CurrentArticleReview.reviewsCount} {this.state.CurrentArticleReview && this.state.CurrentArticleReview.reviewsCount > 1 ? this.props.t('ArticleCommentaires') : this.props.t('ArticleCommentaire') }</h3>\r\n\t\t\t\t<div className=\"ctn_top\">\r\n\t\t\t\t\t<Formik\r\n\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\tmainfileupload: null,\r\n\t\t\t\t\t\t\tcomment: '', \r\n\t\t\t\t\t\t\tlegal_checkbox :legalFileForContest ? false: true,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tvalidationSchema={\r\n\t\t\t\t\t\t\tYup.object().shape({\r\n\t\t\t\t\t\t\t\tcomment: Yup.string().required(), \r\n\t\t\t\t\t\t\t\tlegal_checkbox: Yup.bool().oneOf([true]).required() \r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tonSubmit={(values, actions) => {\r\n\t\t\t\t\t\t\t// add loader\r\n\t\t\t\t\t\t\tdocument.body.classList.add('is-loading')\r\n\r\n\t\t\t\t\t\t\tvar oFormData = new FormData();\t\r\n\t\t\t\t\t\t\tObject.entries(values).forEach(elt => oFormData.append(elt[0], elt[1]));\r\n\t\t\t\t\t\t\toFormData.append(\"idref\", document.getElementById(\"idref\").value);\r\n\t\t\t\t\t\t\taxios({ \r\n\t\t\t\t\t\t\t\turl:this.state.UrlSendReview,\r\n\t\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t\t'Accept': 'application/json',\r\n\t\t\t\t\t\t\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\t\t\tdata : oFormData,\r\n\t\t\t\t\t\t\t\twithCredentials: true, \r\n\t\t\t\t\t\t\t }) \r\n\t\t\t\t\t\t\t.then(res => {\t\t\r\n\t\t\t\t\t\t\t\t\twindow.location.reload(false);\r\n\t\t\t\t\t\t\t\t\t//actions.resetForm()\r\n\t\t\t\t\t\t\t\t\t//this.MainSingleFileUpload.destroy()\r\n\t\t\t\t\t\t\t\t\t//this.addNewComment(values)\r\n\t\t\t\t\t\t\t\t\t//document.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch(err => {\r\n\t\t\t\t\t\t\t\tthis.setState({serverError: true})\r\n\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t}); \r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{ ({ handleSubmit, setFieldValue, setFieldTouched, errors, touched }) => (\r\n\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_textarea mb_30 no-border\">\r\n\t\t\t\t\t\t\t\t\t\t<Field className={errors.comment && touched.comment && 'error'} \r\n\t\t\t\t\t\t\t\t\t\tas=\"textarea\" name=\"comment\" placeholder={this.props.t('VotreCommentaire')} />\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_file-upload mb_20\">\r\n\t\t\t\t\t\t\t\t\t\t<SingleFileUpload\r\n\t\t\t\t\t\t\t\t\t\t\tonRef={ref => (this.MainSingleFileUpload = ref)}\r\n\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\tfieldName={'mainfileupload'}\r\n\t\t\t\t\t\t\t\t\t\t\tlabelText={this.props.t('AjouterUnePhoto')}\r\n\t\t\t\t\t\t\t\t\t\t\tctaCancelText={this.props.t('ctaCancelText')}\r\n\t\t\t\t\t\t\t\t\t\t\tformatErrorText={this.props.t('formatErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\tsizeErrorText={this.props.t('sizeErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\tloadingErrorText={this.props.t('loadingErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"i_add-plus\"></div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\">{this.props.t('UploadMention')}</p>\r\n\r\n\t\t\t\t\t\t\t\t\t{legalFileForContest && \r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_checkbox mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t<Field type=\"checkbox\" id=\"checkboxGameLegal\" name=\"legal_checkbox\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<label className={errors.legal_checkbox && touched.legal_checkbox && 'error'} htmlFor=\"checkboxGameLegal\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t('ArticleJAiLu')} <a href={legalFileForContest.src}>{this.props.t('ArticleLeReglementDuJeu')}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\" dangerouslySetInnerHTML={{__html: this.props.t('UploadPPDP')}}></p>\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t{this.state.serverError && <p className=\"t_error mb_30 fade-in\">{this.props.t('DefaultServerError')}</p>}\r\n\t\t\t\t\t\t\t\t\t{( (errors.comment && touched.comment) || (errors.legal_checkbox && touched.legal_checkbox) ) && <p className=\"t_error mb_30 fade-in\">{this.props.t('DefaultErrorMessage')}</p>}\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\">{this.props.t('CommentaireValider')}</button>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Formik>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t\r\n\t\t\t\t{this.state.CurrentArticleReview && this.state.CurrentArticleReview.reviews && this.state.CurrentArticleReview.reviews\r\n\t\t\t\t\t\t\t.slice(0, this.state.reviewToShow)\r\n\t\t\t\t\t\t\t.map( (reviewItem, index) => ( \r\n\t\t\t\t\t<div key={index} className=\"ctn_row fade-in\">\r\n\t\t\t\t\t\t<div className=\"row_level-1\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<div className=\"ctn_message\">\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<input type=\"hidden\" id={`idrefReview${index}`} value={reviewItem.idrefReview}></input>\r\n\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t{reviewItem.reviewsFOU.userimg ?\r\n\t\t\t\t\t\t\t\t\t\t<img src={reviewItem.reviewsFOU.userimg} alt={reviewItem.reviewsFOU.firstname + \" \" + reviewItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar.png\")} alt={reviewItem.reviewsFOU.firstname + \" \" + reviewItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t<h4><strong>{reviewItem.reviewsFOU.firstname + \" \" + reviewItem.reviewsFOU.lastname}</strong> \r\n\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t{hideCommentContent ? this.props.t('ArticleParticipation') : this.props.t('ArticleLe')} <Moment format={this.props.t('FormatDate')}>{reviewItem.creationDate.dateValue}</Moment></h4>\r\n\t\t\t\t\t\t\t\t\t{!hideCommentContent && reviewItem.comment.jss.value.split('\\n').map( (i, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn <p key={index}>{i}</p>\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t{!hideCommentContent && reviewItem.commentImageError &&\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_error\">{this.props.t('ImageError')}</p>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t{!hideCommentContent && reviewItem.image.jss.value &&\r\n\t\t\t\t\t\t\t\t\t\t<CommentImageModal CommentImage={reviewItem.image.jss.value.src} />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{!hideCommentContent && !reviewItem.formVisible &&\r\n\t\t\t\t\t\t\t\t<button type=\"button\" className=\"bt_reply\" onClick={() => this.toggleCommentForm(this.state.CurrentArticleReview.reviews, reviewItem, index)}>\r\n\t\t\t\t\t\t\t\t\t{this.props.t('CommentaireRepondre')}\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t{!hideCommentContent && reviewItem.formVisible &&\r\n\r\n\t\t\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\t\t\t[`mainfileupload${index}`]: null,\r\n\t\t\t\t\t\t\t\t\t\t[`comment${index}`]: '', \r\n\t\t\t\t\t\t\t\t\t\t[`legal_checkbox${index}`]: legalFileForContest ? false: true,\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalidationSchema={\r\n\t\t\t\t\t\t\t\t\t\tYup.object().shape({\r\n\t\t\t\t\t\t\t\t\t\t\t[`comment${index}`]: Yup.string().required(), \r\n\t\t\t\t\t\t\t\t\t\t\t[`legal_checkbox${index}`]: Yup.bool().oneOf([true]).required() ,\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tonSubmit={(values, actions) => {\r\n\t\t\t\t\t\t\t\t\t\t// add loader\r\n\t\t\t\t\t\t\t\t\t\tdocument.body.classList.add('is-loading')\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar oFormData = new FormData();\t\r\n\t\t\t\t\t\t\t\t\t\tObject.entries(values).forEach(elt => oFormData.append(elt[0], elt[1]));\r\n\t\t\t\t\t\t\t\t\t\toFormData.append(\"idref\", document.getElementById(\"idref\").value);\r\n\t\t\t\t\t\t\t\t\t\toFormData.append(\"idrefReview\", document.getElementById(`idrefReview${index}`).value);\r\n\t\t\t\t\t\t\t\t\t\taxios({ \r\n\t\t\t\t\t\t\t\t\t\t\turl:this.state.UrlSendReview,\r\n\t\t\t\t\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t'Accept': 'application/json',\r\n\t\t\t\t\t\t\t\t\t\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\t\t\t\t\t\tdata : oFormData,\r\n\t\t\t\t\t\t\t\t\t\t\twithCredentials: true, \r\n\t\t\t\t\t\t\t\t\t\t}) \r\n\t\t\t\t\t\t\t\t\t\t.then(res => {\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\twindow.location.reload(false);\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t//actions.resetForm()\r\n\t\t\t\t\t\t\t\t\t\t\t\t//this.MainSingleFileUpload.destroy()\r\n\t\t\t\t\t\t\t\t\t\t\t\t//[`mainfileupload${index}`].current.destroy()\r\n\t\t\t\t\t\t\t\t\t\t\t\t//this.addNewComment(values)\r\n\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t.catch(err => {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({serverError: true})\r\n\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t\t\t\t}); \r\n\r\n\t\t\t\t\t\t\t\t\t\t/*setTimeout(() => {\r\n\t\t\t\t\t\t\t\t\t\t\t// remove loader\r\n\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t\t\t\t\t// return values\r\n\t\t\t\t\t\t\t\t\t\t\t// server error\r\n\t\t\t\t\t\t\t\t\t\t\t// this.setCommentServerError(this.state.reviewList, reviewItem, index)\r\n\t\t\t\t\t\t\t\t\t\t\t// success\r\n\t\t\t\t\t\t\t\t\t\t\tthis.toggleCommentForm(this.state.reviewList, reviewItem, index)\r\n\t\t\t\t\t\t\t\t\t\t\tthis.addNewResponse(values, index)\r\n\t\t\t\t\t\t\t\t\t\t}, 1000)*/\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{ ({ handleSubmit, setFieldValue, setFieldTouched, errors, touched }) => (\r\n\t\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_textarea mb_30 no-border\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Field className={errors[`comment${index}`] && touched[`comment${index}`] && 'error'} as=\"textarea\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname={[`comment${index}`]} placeholder={this.props.t('VotreCommentaire')} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_file-upload mb_20\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SingleFileUpload\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonRef={ref => (this.SingleFileUpload = ref)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName={[`mainfileupload${index}`]}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabelText={this.props.t('AjouterUnePhoto')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tctaCancelText={this.props.t('ctaCancelText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tformatErrorText={this.props.t('formatErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsizeErrorText={this.props.t('sizeErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingErrorText={this.props.t('loadingErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"i_add-plus\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\">{this.props.t('UploadMention')}</p>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{legalFileForContest && \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_checkbox mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field type=\"checkbox\" id={[`legal_checkbox${index}`]} name={[`legal_checkbox${index}`]} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label className={errors[`legal_checkbox${index}`] && touched[`legal_checkbox${index}`] && 'error'} htmlFor={[`legal_checkbox${index}`]}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t('ArticleJAiLu')} <a href={legalFileForContest.src}>{this.props.t('ArticleLeReglementDuJeu')}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\" dangerouslySetInnerHTML={{__html: this.props.t('UploadPPDP')}}></p>\r\n \r\n\t\t\t\t\t\t\t\t\t\t\t\t{reviewItem.serverError && <p className=\"t_error mb_30 fade-in\">{this.props.t('DefaultServerError')}</p>}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{( (errors[`comment${index}`] && touched[`comment${index}`]) || (errors[`legal_checkbox${index}`] && touched[`legal_checkbox${index}`]) ) && <p className=\"t_error mb_30 fade-in\">{this.props.t('DefaultErrorMessage')}</p>}\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\">{this.props.t('CommentaireValider')}</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta grey\" type=\"button\" onClick={() => this.toggleCommentForm(this.state.reviewList, reviewItem, index)}>{this.props.t('CommentaireAnnuler')}</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Formik>\r\n\r\n\t\t\t\t\t\t\t\t\t} \r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t{reviewItem.responseList.length > 0 && \r\n\r\n\t\t\t\t\t\t\t<div className=\"row_level-2\">\r\n\r\n\t\t\t\t\t\t\t\t{reviewItem.responseList.slice(0, this.state.responseToShow).map( (responseItem, index) => (\r\n\t\t\t\t\t\t\t\t\t<div key={index} className=\"ctn_message fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t\t{responseItem.reviewsFOU.userimg ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src={responseItem.reviewsFOU.userimg} alt={responseItem.reviewsFOU.firstname + \" \" + responseItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar.png\")} alt={responseItem.reviewsFOU.firstname + \" \" + responseItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h4><strong>{responseItem.reviewsFOU.firstname + \" \" + responseItem.reviewsFOU.lastname}</strong> \r\n\t\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t\t\t{hideCommentContent ? this.props.t('ArticleParticipation') : this.props.t('ArticleLe')} <Moment format={this.props.t('FormatDate')}>{responseItem.creationDate.dateValue}</Moment></h4>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{!hideCommentContent && responseItem.comment.jss.value.split('\\n').map( (i, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn <p key={index}>{i}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t{!hideCommentContent && responseItem.commentImageError &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error\"></p>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t{!hideCommentContent && responseItem.image.jss.value &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CommentImageModal CommentImage={responseItem.image.jss.value.src} />\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t))}\r\n\r\n\t\t\t\t\t\t\t\t{(reviewItem.responseList.length > this.state.responseToShow) && (\r\n\t\t\t\t\t\t\t\t\t<button type=\"button\" className=\"bt_more\" onClick={this.showMoreResponse}>Voir plus de réponses ({reviewItem.responseList.length - this.state.responseToShow})</button>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t))}\r\n\r\n\t\t\t\t{(this.state.CurrentArticleReview && this.state.CurrentArticleReview.reviewsCount > this.state.reviewToShow) && (\r\n\t\t\t\t\t<div className=\"ctn_bt\">\r\n\t\t\t\t\t\t<button type=\"button\" className=\"bt_more\" onClick={this.showMoreReview}>{this.props.t('ArticleCommentairesSuivants')} ({this.state.CurrentArticleReview.reviewsCount - this.state.reviewToShow})</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t {UserCanAddReview &&\r\n\t\t\t\t\t<div className=\"ctn_bt\">\r\n\t\t\t\t\t\t\t<ScrollLink\r\n\t\t\t\t\t\t\tclassName=\"bt_more\"\r\n\t\t\t\t\t\t\tto=\"bgComment\"\r\n\t\t\t\t\t\t\tsmooth={true}\r\n\t\t\t\t\t\t\toffset={isMobile() ? -110 : -60}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{this.props.t('ArticleVotreCommentaire')}\r\n\t\t\t\t\t\t</ScrollLink>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t</div>\r\n\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(SectionComments);","import React, { Component } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Text, Image, RichText } from '@sitecore-jss/sitecore-jss-react'; \r\nimport SectionComments from '../AllPages/SectionComments'\r\nimport LazyLoad from 'react-lazyload'\r\n\r\nclass PageActiviteConseil extends Component {\r\n\trender() {\r\n \r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n const {CurrentArticleReview, CurrentArticle } = this.props.fields.data; \r\n \r\n\t\treturn (\r\n\t\t\t <> \r\n {CurrentArticle && <input type=\"hidden\" id=\"idref\" value={CurrentArticle.idref}></input>}\r\n { oCurrentItemFields && <RichText className=\"obj_title-big\" field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h1\"></RichText> }\r\n\r\n <article className={`obj_push-article fade-in ${CurrentArticle.getbrand.brandCssClass.value}`}>\r\n <div className=\"ctn_push-article\">\r\n { oCurrentItemFields && <figure className=\"ctn_img\">\t\t\t\t\t\t \r\n <LazyLoad>\r\n <Image className=\"fade-in\" field={oCurrentItemFields[\"Page Image\"]} />\r\n </LazyLoad>\t\t\t\t\t \r\n </figure> }\r\n <div className=\"ctn_text\">\r\n { oCurrentItemFields && <Text field={oCurrentItemFields[\"Page Title\"]} tag=\"h2\" /> }\r\n { oCurrentItemFields && <RichText className=\"t_main\" field={oCurrentItemFields[\"Page Text\"]} tag=\"p\" /> }\r\n </div>\r\n </div>\r\n </article> \r\n\r\n\t\t\t <h2 className=\"obj_title\">{this.props.t('VotreReponse')}</h2>\r\n <section className=\"section_article\"> \r\n\t\t\t\t <div className=\"str_container\">\r\n { oCurrentItemFields && <SectionComments CurrentArticleReview={CurrentArticleReview} \r\n UserCanAddReview={oCurrentItemFields[\"User can add Reviews\"] && oCurrentItemFields[\"User can add Reviews\"].value}\r\n legalFileForContest={oCurrentItemFields[\"Legal Contest\"]?.value} \r\n hideCommentContent={oCurrentItemFields[\"Hide Content\"]?.value}/> }\r\n </div>\r\n </section>\r\n </>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageActiviteConseil));","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nimport ReactPlayer from 'react-player'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass VideoModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t\tif (this.props.videoAutomodal){\r\n\t\t\tthis.openModal()\r\n\t\t}\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_video\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\r\n\t\t\t\t\t\t<ReactPlayer\r\n\t\t\t\t\t\t\turl={this.props.videoUrl}\r\n\t\t\t\t\t\t\tconfig={{\r\n\t\t\t\t\t\t\t\tyoutube: {\r\n\t\t\t\t\t\t\t\t\tplayerVars: { autoplay: this.props.videoAutoplay }\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tvimeo: {\r\n\t\t\t\t\t\t\t\t\tplayerOptions: { autoplay: this.props.videoAutoplay }\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tfile: {\r\n\t\t\t\t\t\t\t\t\tattributes: { autoplay: this.props.videoAutoplay }\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\twidth=\"1920\"\r\n\t\t\t\t\t\t\theight=\"1080\"\r\n\t\t\t\t\t\t\tcontrols\r\n\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nVideoModal.defaultProps = {\r\n\tvideoAutoplay: 0\r\n}\r\n\r\nexport default VideoModal","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nconst ObjRetour = () => {\r\n const history = useHistory();\r\n\r\n const handleGoBack = () => {\r\n history.goBack();\r\n };\r\n\r\n return (\r\n\t<div className=\"obj_back-page\">\r\n\t\t<button className=\"bt_back-page\" onClick={handleGoBack}>Retour</button>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ObjRetour;","import React, { Component } from 'react' \r\nimport { withTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Text, Image, RichText } from '@sitecore-jss/sitecore-jss-react'; \r\nimport { Link as ScrollLink } from 'react-scroll'\r\nimport Slider from \"react-slick\"\r\nimport Moment from 'react-moment'; \r\nimport axios from 'axios'; \r\n\r\nimport VideoModal from '../Modal/VideoModal'\r\nimport config from '../../temp/config';\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport SectionComments from '../AllPages/SectionComments'\r\nimport { isMobile, matchHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport ObjRetour from \"../Obj/ObjRetour\";\r\n\r\nclass PageArticle extends Component{\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tUrlCallLikes: `${config.sitecoreApiHost}/apiaox/Call/LikePost?sc_apikey=${config.sitecoreApiKey}`, \r\n\t\t\tserverError: false, \r\n\t\t\tlikeIsSubmitting: false,\r\n\t\t\t\r\n\t\t\treviewToShow: 2,\r\n\t\t\treviewInterval: 2,\r\n\t\t\tresponseToShow: 2,\r\n\t\t\tresponseInterval: 2,\r\n\t\t\t//reviewList: []\r\n\t\t} \r\n\t\t// button like\r\n\t\tthis.handleButtonLike = this.handleButtonLike.bind(this)\r\n\t\t// window resize\r\n\t\t//this.throttleWindowResizeSectionArticle = throttle(this.handleWindowResizeSectionArticle, 100) \r\n\t\t// event video modal\r\n\t\tthis.openVideoModal = this.openVideoModal.bind(this)\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\t// add and dispatch window resize\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeSectionArticle)\r\n\t\twindow.dispatchEvent(new Event('resize'))\r\n\r\n\t\tmatchHeight('.obj_carousel.article-carousel h3')\r\n\t}\r\n\tcomponentWillUnmount(){\r\n\t\t// remove window resize\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeSectionArticle)\r\n\t} \r\n\thandleButtonLike() {\r\n\r\n\t\t// submit\r\n\t\tthis.setState({\r\n\t\t\tlikeIsSubmitting: true\r\n\t\t})\r\n \r\n\t\taxios({ \r\n\t\t\turl:this.state.UrlCallLikes,\r\n\t\t\tmethod: 'POST',\r\n\t\t\tdata : {\"idref\": document.getElementById(\"idref\").value},\r\n\t\t\twithCredentials: true, \r\n\t\t })\r\n\t\t.then(res => \r\n\t\t {\t \t\t\t\t\t\t\t\t\t\t\r\n\t\t\tthis.setState({\r\n\t\t\t\tlikeIsSubmitting: false\r\n\t\t\t}) \r\n\t\t\t\r\n\t\t\tif(res.data.Value){\r\n\t\t\t\tvar tabBtnLike = document.getElementsByClassName(\"bt_like-article\");\r\n\t\t\t\tfor(var i = 0; i < tabBtnLike.length; i++)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(res.data.Value.CodeReturn > 0){\r\n\t\t\t\t\t\ttabBtnLike[i].classList.add(\"is-checked\")\r\n\t\t\t\t\t}else if(res.data.Value.CodeReturn < 0){\r\n\t\t\t\t\t\ttabBtnLike[i].classList.remove(\"is-checked\")\r\n\t\t\t\t\t}\r\n\t\t\t\t}\t\t\r\n\t\t\t\t\r\n\t\t\t\tdocument.getElementById(\"nbLikes_Article\").innerHTML = res.data.Value.NewValue;\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(err => {\r\n\t\t\tthis.setState({\r\n\t\t\t\tlikeIsSubmitting: false\r\n\t\t\t})\r\n\t\t}); \r\n\t} \r\n\tsetCommentServerError(list, item, index) {\r\n\t\tlist[index].serverError = true\r\n\t\tthis.setState({ list })\r\n\t} \r\n\topenVideoModal() {\r\n\t\tthis.VideoModal.openModal()\r\n\t}\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\t\r\n\t\tvar {CurrentArticleReview, currentuserproperty, CurrentArticle, CurrentArticleForRelatedPosts } = this.props.fields.data; \r\n\t\t\r\n\t\tconst settingsSliderArticle = {\r\n\t\t\tslidesToShow: 3,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t\tinfinite: CurrentArticleForRelatedPosts && CurrentArticleForRelatedPosts.relatedPosts.targetItems.length > 3 ? true : false,\r\n\t\t\tresponsive: [\r\n\t\t\t\t{\r\n\t\t\t\t\tbreakpoint: 960,\r\n\t\t\t\t\tsettings: {\r\n\t\t\t\t\t\tslidesToShow: 2,\r\n\t\t\t\t\t\tinfinite: CurrentArticleForRelatedPosts && CurrentArticleForRelatedPosts.relatedPosts.targetItems.length > 2 ? true : false\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tbreakpoint: 767,\r\n\t\t\t\t\tsettings: {\r\n\t\t\t\t\t\tslidesToShow: 1,\r\n\t\t\t\t\t\tinfinite: true\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{oCurrentItemFields && !(oCurrentItemFields[\"Video Only\"] && oCurrentItemFields[\"Video Only\"]?.value) && \r\n <ObjRetour/>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t<section className=\"section_article\"> \r\n\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t{CurrentArticle && <input type=\"hidden\" id=\"idref\" value={CurrentArticle.idref}></input>}\r\n\r\n\t\t\t\t\t\t{oCurrentItemFields && <div className={`ctn_article${oCurrentItemFields[\"Video Url\"]?.value !==\"\" ? ' var_video' : ''}`}>\r\n\t\t\t\t\t\t\t<div className=\"ctn_header\">\r\n\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h3\"></RichText>\r\n\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></RichText>\r\n\t\t\t\t\t\t\t\t{oCurrentItemFields && !(oCurrentItemFields[\"Video Only\"] && oCurrentItemFields[\"Video Only\"]?.value) &&\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_bottom\">\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"t_author-date\">\r\n\t\t\t\t\t\t\t\t\t\t\t{oCurrentItemFields[\"Article Author\"] && oCurrentItemFields[\"Article Author\"]?.value && \t\r\n\t\t\t\t\t\t\t\t\t\t\t\t<figure><img src={require(\"../../assets/images/v_avatar.png\")} alt={oCurrentItemFields[\"Article Author\"]}/></figure>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t<p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{oCurrentItemFields[\"Article Author\"] && oCurrentItemFields[\"Article Author\"]?.value && \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<strong>{this.props.t('ArticlePar')} <Text field={oCurrentItemFields[\"Article Author\"]}></Text>, </strong> \r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{oCurrentItemFields[\"Article Date\"] && oCurrentItemFields[\"Article Date\"]?.value && oCurrentItemFields[\"Article Date\"]?.value !== \"0001-01-01T00:00:00Z\" && \r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t('ArticleLe')} <Moment format={this.props.t('FormatDateArticle')}>{oCurrentItemFields[\"Article Date\"]?.value}</Moment>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_likes-comments\">\r\n\t\t\t\t\t\t\t\t\t\t\t{currentuserproperty && \r\n\t\t\t\t\t\t\t\t\t\t\t\t<li className=\"ctn_like-article\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button className={`bt_like-article${ currentuserproperty.likethispage ? ' is-checked' : ''}`} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\" onClick={this.handleButtonLike} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={this.state.likeIsSubmitting ? 'disabled' : ''}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"heart\" width=\"19\" height=\"16\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span id=\"nbLikes_Article\">{oCurrentItemFields[\"Likes\"]?.value != null && oCurrentItemFields[\"Likes\"]?.value !==\"\" ? oCurrentItemFields[\"Likes\"]?.value : 0}</span> <span>{this.props.t('ArticleLike')}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t{oCurrentItemFields[\"User can add Reviews\"] && oCurrentItemFields[\"User can add Reviews\"]?.value &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li className=\"ctn_comment-article\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ScrollLink\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bt_comment-article\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tto=\"bgComment\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsmooth={true}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toffset={isMobile() ? -110 : -60}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"dialog\" width=\"20\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{CurrentArticleReview && CurrentArticleReview.reviewsCount} <span>{CurrentArticleReview && CurrentArticleReview.reviewsCount > 1 ? this.props.t('ArticleCommentaires') : this.props.t('ArticleCommentaire') }</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ScrollLink>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<figure className=\"ctn_img\" onClick={this.openVideoModal}>\r\n\t\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t\t\t<source srcSet={oCurrentItemFields[\"Page Image Mobile\"]?.value.src} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t<Image field={oCurrentItemFields[\"Page Image\"]}></Image>\r\n\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t</figure>\r\n\r\n\t\t\t\t\t\t\t{ oCurrentItemFields[\"Video Url\"]?.value !== \"\" &&\r\n\t\t\t\t\t\t\t\t<VideoModal\r\n\t\t\t\t\t\t\t\t\tonRef={ref => (this.VideoModal = ref)}\r\n\t\t\t\t\t\t\t\t\tvideoUrl={oCurrentItemFields[\"Video Url\"]?.value}\r\n\t\t\t\t\t\t\t\t\tvideoAutoplay={1}\r\n\t\t\t\t\t\t\t\t\tvideoAutomodal={oCurrentItemFields && oCurrentItemFields[\"Video Only\"] && oCurrentItemFields[\"Video Only\"]?.value}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Page Text\"]}></RichText>\r\n\t\t\t\t\t\t\t\t<RichText className=\"t_mention\" field={oCurrentItemFields[\"Disclaimer\"]}></RichText>\r\n\t\t\t\t\t\t\t\t{currentuserproperty && !(oCurrentItemFields[\"Video Only\"] && oCurrentItemFields[\"Video Only\"]?.value) && \r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_like-article\">\r\n\t\t\t\t\t\t\t\t\t\t<button className={`bt_like-article${ currentuserproperty.likethispage ? ' is-checked' : ''}`} \r\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\" onClick={this.handleButtonLike} \r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={this.state.likeIsSubmitting ? 'disabled' : ''}>\r\n\t\t\t\t\t\t\t\t\t\t\t<IconSVG className=\"i_heart\" icon=\"heartstroke\" width=\"24\" height=\"20\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<IconSVG className=\"i_heart-hover\" icon=\"heart\" width=\"24\" height=\"20\" />\r\n\t\t\t\t\t\t\t\t\t\t\t{this.props.t('ArticleVousAvezAimez')}\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{oCurrentItemFields && oCurrentItemFields[\"User can add Reviews\"] && oCurrentItemFields[\"User can add Reviews\"]?.value && !(oCurrentItemFields[\"Video Only\"] && oCurrentItemFields[\"Video Only\"]?.value) && \r\n\t\t\t\t\t\t\t<SectionComments\r\n\t\t\t\t\t\t\t\t\t\t\tCurrentArticleReview={CurrentArticleReview} \r\n\t\t\t\t\t\t\t\t\t\t\tUserCanAddReview={oCurrentItemFields[\"User can add Reviews\"] && oCurrentItemFields[\"User can add Reviews\"]?.value} \r\n\t\t\t\t\t\t\t\t\t\t\tlegalFileForContest={oCurrentItemFields[\"Legal Contest\"]?.value}\r\n\t\t\t\t\t\t\t\t\t\t\thideCommentContent={oCurrentItemFields[\"Hide Content\"]?.value} />\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t\t\r\n\t\t\t\t{CurrentArticleForRelatedPosts && CurrentArticleForRelatedPosts.relatedPosts && CurrentArticleForRelatedPosts.relatedPosts.targetItems\r\n\t\t\t\t\t&& CurrentArticleForRelatedPosts.relatedPosts.targetItems.length > 0 &&\r\n\t\t\t\t\t<section className=\"section_article-carousel\">\r\n\t\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t\t<h2>{this.props.t('DecouvrirLesAutresSujets')}</h2>\r\n\t\t\t\t\t\t\t<Slider className=\"obj_carousel article-carousel obj_push-carousel\" {...settingsSliderArticle}>\r\n\t\t\t\t\t\t\t\t{CurrentArticleForRelatedPosts && CurrentArticleForRelatedPosts.relatedPosts && CurrentArticleForRelatedPosts.relatedPosts.targetItems &&\r\n\t\t\t\t\t\t\t\t\tCurrentArticleForRelatedPosts.relatedPosts.targetItems.map((pushItem, index) => (\r\n\t\t\t\t\t\t\t\t\t<div key={index}>\r\n\t\t\t\t\t\t\t\t\t\t<div className={`ctn_banner${\r\n\t\t\t\t\t\t\t\t\t\t\tpushItem.videoUrl && pushItem.videoUrl.jss && pushItem.videoUrl.jss.value !==\"\" ? ' var_video' : ''}${\r\n\t\t\t\t\t\t\t\t\t\t\tpushItem.trainingPushPlayButton && pushItem.trainingPushPlayButton.boolValue ? ' var_video' : ''}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t<a href={pushItem.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Image field={pushItem.pageImagePush.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Text field={pushItem.pageTitle.jss} tag=\"h3\"></Text>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_likes-comments\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"heart\" width=\"19\" height=\"16\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{pushItem.likes.value !==\"\" ? pushItem.likes.value : 0} <span>{this.props.t('ArticleLike')}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{pushItem.userCanAddReviews.boolValue && \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"dialog\" width=\"20\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{pushItem.reviewsCount} <span>{pushItem.reviewsCount > 2 ?this.props.t('ArticleCommentaires') : this.props.t('ArticleCommentaire') }</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t</Slider>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageArticle));","import React, { Component } from 'react';\r\nimport { Text, RichText, Image, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport LazyLoad from 'react-lazyload'\r\n\r\nclass PageBrands extends Component {\r\n\trender() {\r\n \r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\t\r\n\t\tconst { BrandList } = this.props.fields.data;\r\n \r\n\t\treturn (\r\n\t\t\t<section className=\"section_marques\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\r\n\t\t\t\t\t<div className=\"ctn_top\">\r\n\t\t\t\t\t\t{ oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></RichText> }\r\n\t\t\t\t\t</div>\r\n \r\n\t\t\t\t\t<ul className=\"ctn_list-marques\">\r\n\t\t\t\t\t\t{ BrandList.children.slice(5).map((marqueListItem, index) => (\r\n\t\t\t\t\t\t\t<li key={index} className=\"ctn_item-marques\">\r\n\t\t\t\t\t\t\t\t<a href={marqueListItem.url}>\r\n\t\t\t\t\t\t\t\t\t<figure className=\"ctn_img\">\r\n\t\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t<picture className=\"fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Image field={marqueListItem.logoBrandsPage.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t<strong>\r\n \t\t\t\t\t<Text field={marqueListItem.pageTitle.jss}></Text>\r\n \t\t\t\t\t</strong>\r\n\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withSitecoreContext()(PageBrands);\r\n","import React, { Component, useState } from \"react\";\r\n\r\nimport { formatDate, isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\nimport { getApiDatas, postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\n\r\nclass PageChallengeDetail extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t\tapiDatas: [],\r\n\t\t};\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Challenge/GetDataPageBeneficiaires`).then((apiDatas) => {\r\n\t\t\tthis.setState({ apiDatas: apiDatas });\r\n\t\t});\r\n\r\n\t\tdocument.body.classList.add(\"pg_challenge-detail\");\r\n\t\twindow.scrollTo(0, 0);\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove(\"pg_challenge-detail\");\r\n\t}\r\n\ttoggleManager = (e) => {\r\n\t\tdocument.body.classList.add(\"is-loading\");\r\n\t\tpostApiDatas(\"/apiaox/Challenge/PostChallengeManager\", {\r\n\t\t\tUserId: e.currentTarget.id.slice(9),\r\n\t\t\tManager: e.currentTarget.checked,\r\n\t\t}).then((res) => {\r\n\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\tif (!res.IsValid) {\r\n\t\t\t\talert(res.Message);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\ttoggleDeleted = (e) => {\r\n\t\tdocument.body.classList.add(\"is-loading\");\r\n\t\tpostApiDatas(\"/apiaox/Challenge/PostUserEnable\", {\r\n\t\t\tUserId: e.currentTarget.id.slice(17),\r\n\t\t\tEnable: e.currentTarget.checked,\r\n\t\t}).then((res) => {\r\n\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\tgetApiDatas(`/apiaox/Challenge/GetDataPageBeneficiaires`).then((apiDatas) => {\r\n\t\t\t\tthis.setState({ apiDatas: apiDatas });\r\n\t\t\t});\r\n\t\t\tif (!res.IsValid) {\r\n\t\t\t\talert(res.Message);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\trender() {\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n const ROLE_TITULAIRE = \"TITULS\"; //TODO SGU référence de constante\r\n\r\n\t\tconst TableHeader = ({ headers, handleSort, sortedField, sortDirection }) => {\r\n\t\t\treturn (\r\n\t\t\t\t<div className=\"obj_table-header\">\r\n\t\t\t\t\t{headers.map((header, index) => (\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\tclassName={`header-cell ${header.sortable ? \"sortable\" : \"\"}${header.field === sortedField && sortDirection === 1 ? \" active\" : \"\"}`}\r\n\t\t\t\t\t\t\tonClick={() => handleSort(header.field)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span dangerouslySetInnerHTML={{ __html: header.name }} />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tconst TableRow = ({ rowData, handleExpand }) => {\r\n\t\t\tconst [isExpanded, setIsExpanded] = useState(false);\r\n\r\n\t\t\tconst handleButtonClick = () => {\r\n\t\t\t\tsetIsExpanded(!isExpanded);\r\n\t\t\t};\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<React.Fragment>\r\n\t\t\t\t\t<div className={`table-row ${isExpanded ? \"active\" : \"\"}`} onClick={() => handleExpand(rowData.id)}>\r\n\t\t\t\t\t\t<div className=\"row-cell\">\r\n\t\t\t\t\t\t\t{rowData[\"Repartitions\" + new Date().getFullYear()].length > 0 && (\r\n\t\t\t\t\t\t\t\t<button className=\"obj_btn_expend-cell\" onClick={handleButtonClick}>\r\n\t\t\t\t\t\t\t\t\tExpand\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"row-cell\">{rowData.Name}</div>\r\n\t\t\t\t\t\t<div className=\"row-cell\">{rowData.Mail}</div>\r\n\t\t\t\t\t\t<div className=\"row-cell\">{rowData.RoleName}</div>\r\n\t\t\t\t\t\t<div className=\"row-cell\">\r\n { \r\n rowData.RoleCode === ROLE_TITULAIRE\r\n ? <input className=\"tgl tgl-light\" id={`checkbox_${rowData.Id}`} type=\"checkbox\" checked={rowData.ChallengeManager} disabled={true} />\r\n : <input className=\"tgl tgl-light\" id={`checkbox_${rowData.Id}`} type=\"checkbox\" defaultChecked={rowData.ChallengeManager} onChange={(e) => this.toggleManager(e)} />\r\n }\r\n\t\t\t\t\t\t\t<label className=\"tgl-btn\" htmlFor={`checkbox_${rowData.Id}`}></label>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"row-cell\">\r\n\t\t\t\t\t\t\t<strong>\r\n\t\t\t\t\t\t\t\t{rowData.GainYearTotal}\r\n\t\t\t\t\t\t\t\t<sup>€</sup>\r\n\t\t\t\t\t\t\t</strong>\r\n\t\t\t\t\t\t</div>\r\n <div className=\"row-cell\">\r\n { \r\n rowData.RoleCode === ROLE_TITULAIRE\r\n ? <input className=\"tgl tgl-light\" id={`checkbox_deleted_${rowData.Id}`} type=\"checkbox\" checked={!rowData.IsDeleted} disabled={true} />\r\n : <input className=\"tgl tgl-light\" id={`checkbox_deleted_${rowData.Id}`} type=\"checkbox\" defaultChecked={!rowData.IsDeleted} onChange={(e) => this.toggleDeleted(e)} />\r\n }\r\n <label className=\"tgl-btn\" htmlFor={`checkbox_deleted_${rowData.Id}`}></label>\r\n </div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{rowData[\"Repartitions\" + new Date().getFullYear()].length > 0 && isExpanded && (\r\n\t\t\t\t\t\t<div className=\"ctn_expand\">\r\n\t\t\t\t\t\t\t{rowData[\"Repartitions\" + new Date().getFullYear()].map((formItem, index) => (\r\n\t\t\t\t\t\t\t\t<div key={index} className=\"ctn_expand-row\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"expand_date\">{formatDate(formItem.Repartition_GainDate)}</div>\r\n\t\t\t\t\t\t\t\t\t<div className=\"expand_marque\">{formItem.Brand_Name}</div>\r\n\t\t\t\t\t\t\t\t\t<div className=\"expand_libelle\">{formItem.Challenge_Title}</div>\r\n\t\t\t\t\t\t\t\t\t<div className=\"expand_montant\">\r\n\t\t\t\t\t\t\t\t\t\t<strong>\r\n\t\t\t\t\t\t\t\t\t\t\t{formItem.Repartition_ValueRaw}\r\n\t\t\t\t\t\t\t\t\t\t\t<sup>€</sup>\r\n\t\t\t\t\t\t\t\t\t\t</strong>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</React.Fragment>\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tconst Table = ({ tableData, headers }) => {\r\n\t\t\tconst [sortedField, setSortedField] = useState(\"\");\r\n\t\t\tconst [sortDirection, setSortDirection] = useState(1);\r\n\r\n\t\t\tconst handleSort = (field) => {\r\n\t\t\t\tsetSortedField(field);\r\n\t\t\t\tsetSortDirection(sortDirection === 1 ? -1 : 1);\r\n\t\t\t};\r\n\r\n\t\t\tconst handleExpand = (id) => {\r\n\t\t\t\t// Implement your expand logic here...\r\n\t\t\t};\r\n\r\n\t\t\tconst sortedTableData = tableData.sort((a, b) => {\r\n\t\t\t\tif (!sortedField) return 0;\r\n\t\t\t\tif (a[sortedField] > b[sortedField]) {\r\n\t\t\t\t\treturn sortDirection;\r\n\t\t\t\t} else if (a[sortedField] < b[sortedField]) {\r\n\t\t\t\t\treturn -sortDirection;\r\n\t\t\t\t}\r\n\t\t\t\treturn 0;\r\n\t\t\t});\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<div className=\"obj_tableau-beneficiaire\">\r\n\t\t\t\t\t<TableHeader headers={headers} handleSort={handleSort} sortedField={sortedField} sortDirection={sortDirection} />\r\n\t\t\t\t\t{sortedTableData.map((rowData) => (\r\n\t\t\t\t\t\t<TableRow key={rowData.id} rowData={rowData} handleExpand={handleExpand} />\r\n\t\t\t\t\t))}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tlet tableHeaders = [\r\n\t\t\t{ name: \"\", field: \"id\", sortable: false },\r\n\t\t\t{ name: \"Prénom/Nom\", field: \"Name\", sortable: true },\r\n\t\t\t{ name: \"E-Mail\", field: \"Mail\", sortable: true },\r\n\t\t\t{ name: \"Rôle\", field: \"RoleName\", sortable: true },\r\n\t\t\t{ name: \"Responsable challenge\", field: \"ResponsabilityCode\", sortable: false },\r\n\t\t\t{ name: \"Montant<br/>acquis\", field: \"GainYearTotal\", sortable: true },\r\n\t\t\t{ name: \"Membre Actif\", field: \"IsDeleted\", sortable: false }\r\n\t\t];\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<section className=\"obj_section section_challenges\">\r\n\t\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t\t<h1 className=\"t_title\">Mes bénéficiaires</h1>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t{(!apiDatas.User?.ChallengeManager || !apiDatas.Membres) ? (\r\n\t\t\t\t\t\t\t<></>\r\n\t\t\t\t\t\t) : !this.state.isMobile ? (\r\n\t\t\t\t\t\t\t<Table tableData={apiDatas.Membres} headers={tableHeaders} />\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<div class=\"obj_tableau-beneficiaire\">\r\n\t\t\t\t\t\t\t\t{apiDatas.Membres.map((membre, index) => (\r\n\t\t\t\t\t\t\t\t\t<div class={`table-row${this.state.activeMenuGain ? \" is-expanded\" : \"\"}`} key={index}>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"row-cell\">{membre.Name}</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"table-ctn-row\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"header-cell\">E-mail</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"row-cell\">{membre.Mail}</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"table-ctn-row\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"header-cell\">Rôle</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"row-cell\">{membre.RoleName}</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"table-ctn-row\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"header-cell\">Responsable challenge</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"row-cell\">\r\n { \r\n membre.RoleCode === ROLE_TITULAIRE\r\n ? <input class=\"tgl tgl-light\" id={`checkbox_${membre.Id}`} type=\"checkbox\" checked={membre.ChallengeManager} disabled={true} />\r\n : <input class=\"tgl tgl-light\" id={`checkbox_${membre.Id}`} type=\"checkbox\" defaultChecked={membre.ChallengeManager} onChange={(e) => this.toggleManager(e)} />\r\n }\r\n\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"tgl-btn\" for={`checkbox_${membre.Id}`}></label>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"table-ctn-row\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"header-cell\">Montant acquis</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"row-cell\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<strong>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{membre.GainYearTotal}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<sup>€</sup>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</strong>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n <div class=\"table-ctn-row\">\r\n <div class=\"header-cell\">Actif</div>\r\n <div class=\"row-cell\">\r\n { \r\n membre.RoleCode === ROLE_TITULAIRE\r\n ? <input class=\"tgl tgl-light\" id={`checkbox_deleted_${membre.Id}`} type=\"checkbox\" checked={membre.IsDeleted} disabled={true} />\r\n : <input class=\"tgl tgl-light\" id={`checkbox_deleted_${membre.Id}`} type=\"checkbox\" defaultChecked={membre.IsDeleted} onChange={(e) => this.toggleDeleted(e)} />\r\n }\r\n <label class=\"tgl-btn\" for={`checkbox_deleted_${membre.Id}`}></label>\r\n </div>\r\n </div>\r\n\r\n {membre[\"Repartitions\" + new Date().getFullYear()].length > 0 && (\r\n <>\r\n <button\r\n className={`obj_btn_expand-detail${this.state.activeMenuGain ? \" is-expanded\" : \"\"}`}\r\n onClick={() => this.setState({ activeMenuGain: !this.state.activeMenuGain })}\r\n >\r\n <span>voir le détail</span>\r\n </button>\r\n\r\n <div className=\"obj_table-gains-content\">\r\n <div className=\"ctn_expand\">\r\n {membre[\"Repartitions\" + new Date().getFullYear()].map((formItem, index) => (\r\n <div key={index} className=\"ctn_expand-row\">\r\n <div className=\"expand_date\">{formatDate(formItem.Repartition_GainDate)}</div>\r\n <div className=\"expand_marque\">{formItem.Brand_Name}</div>\r\n <div className=\"expand_libelle\">{formItem.Challenge_Title}</div>\r\n <div className=\"expand_montant\">\r\n <strong>\r\n {formItem.Repartition_ValueRaw}\r\n <sup>€</sup>\r\n </strong>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </>\r\n )}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default PageChallengeDetail;\r\n","export const templatePageWithoutCookies = \"8CFCC1B8-A459-4B5C-A2C1-279F080ED1EA\"\r\n\r\nexport const CONST_challengeStateTypes = {\r\n\t'STATE_TYPE_IN_PROGRESS': {'css': ''},\r\n\t'STATE_TYPE_TO_DECLARE': {'css': 'declarer'},\r\n\t'STATE_TYPE_TO_DISPATCH': {'css': 'repartir'},\r\n\t'STATE_TYPE_WAITING': {'css': 'en_attente'},\r\n\t'STATE_TYPE_FINISHED': {'css': 'remporte'},\r\n\t'STATE_TYPE_FAILED': {'css': 'echoue'},\r\n}\r\n\r\nexport const CONST_EventTypes = {\r\n\t'JOUR': {'css': 'journee'},\r\n\t'SOIR': {'css': 'soiree'},\r\n\t'WEB': {'css': 'webinaire'},\r\n}\r\n\r\nexport const TRAININGNBJOURISNEW = 10;","import React from \"react\";\r\n\r\nfunction ObjProgressBar({pctProgress}) {\r\n const style = {\r\n width: `${pctProgress}%`\r\n };\r\n return (\r\n <div className=\"obj_progress-bar\">\r\n <div className=\"ctn_steps\">\r\n <div className=\"step\" style={style}></div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ObjProgressBar;","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\nimport { throttle, isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass ModalProduitConcernes extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false,\r\n\t\t\tisMobile: isMobile()\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_produits-concernes\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<div class=\"ctn_title\">\r\n\t\t\t\t\t\t\t<p class=\"t_title\">Liste des produits concernés</p>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t{!this.state.isMobile\r\n\t\t\t\t\t\t\t?<div className=\"obj_table-produit-concernes\">\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_row-header\">\r\n\t\t\t\t\t\t\t\t\t<p>gencod</p>\r\n\t\t\t\t\t\t\t\t\t<p>libellé produit</p>\r\n\t\t\t\t\t\t\t\t\t<p>contenance</p>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t{ this.props.produits.map((produit, index) => (\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_row\" key={index}>\r\n\t\t\t\t\t\t\t\t\t\t<p>{produit.Product_Ean}</p>\r\n\t\t\t\t\t\t\t\t\t\t<p>{produit.Product_Name}</p>\r\n\t\t\t\t\t\t\t\t\t\t<p>{produit.Product_Capicity}</p>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t</div>\t\r\n\t\t\t\t\t\t\t:<div className=\"obj_table-produit-concernes\">\r\n\t\t\t\t\t\t\t\t{this.props.produits.map((produit, index) => (\t\t\t\r\n\t\t\t\t\t\t\t\t\t<div key={index} className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"ctn_row-title\">{produit.Product_Name}</p>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\">Gencod</p>\r\n\t\t\t\t\t\t\t\t\t\t\t<p>{produit.Product_Ean}</p>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\">contenance</p>\r\n\t\t\t\t\t\t\t\t\t\t\t<p>{produit.Product_Capicity}</p>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ModalProduitConcernes","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport ModalProduitConcernes from '../Modal/ModalProduitConcernes'\r\n\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport { urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nclass ObjConditionChallenge extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {participation, isManager, showProduct} = this.props;\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_condition_challenge\">\r\n\t\t\t\t<div className=\"obj_condition_challenge-item\">\r\n\t\t\t\t\t<div className=\"col-item\">\r\n\t\t\t\t\t\t<div className=\"obj_condition_challenge-item-label\">\r\n\t\t\t\t\t\t\t<span>Nombre d'unités<br/>minimum</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"obj_condition_challenge-item-price\">\r\n\t\t\t\t\t\t\t{participation.Challenge.Challenge_NbUnity ? <>{participation.Challenge.Challenge_NbUnity}</> : <>-</>}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"col-item\">\r\n\t\t\t\t\t\t<div className=\"obj_condition_challenge-item-label\">\r\n\t\t\t\t\t\t\t<span>% d'évolution<br/>minimum</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"obj_condition_challenge-item-price\">\r\n\t\t\t\t\t\t\t{participation.Challenge.Challenge_EvolutionPercent ? <>{participation.Challenge.Challenge_EvolutionPercent}<sup>%</sup></> : <>-</>}\r\n\t\t\t\t\t\t\t{participation.Challenge.Challenge_SalePointObjectiveNumber ? <><em>({participation.Challenge.Challenge_SalePointObjectiveNumber})</em></> : <></>}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n {isManager &&\r\n <div className=\"col-item\">\r\n <div className=\"obj_condition_challenge-item-label\">\r\n <span>Gains<br/>maximum</span>\r\n </div>\r\n <div className=\"obj_condition_challenge-item-price\">\r\n {participation.Challenge.Challenge_MaxGain ? <>{participation.Challenge.Challenge_MaxGain}<sup>€</sup></> : <>-</>}\r\n </div>\r\n </div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t{(isManager && participation.Challenge.Challenge_EnableVariableMaxGain) &&\r\n\t\t\t\t<div className=\"obj_condition_challenge-item var_condition\">\r\n\t\t\t\t\t<div className=\"obj_condition_challenge-item-label\">\r\n\t\t\t\t\t\t<span>Gains maximum en cas d'évolution non atteinte</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"obj_condition_challenge-item-price\">{participation.Challenge.Challenge_MaxMinGain}<sup>€</sup></div>\r\n\t\t\t\t</div>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t{participation.Challenge.Conditions?.map((condition, index) => (\r\n\t\t\t\t\t<div className=\"obj_condition_challenge-item\" key={index} >\r\n\t\t\t\t\t\t<div className=\"obj_condition_challenge-item-label\">\r\n\t\t\t\t\t\t\t<span>{condition.ChallengeCondition_Name} {condition.ChallengeCondition_EnableVariableGain && \"( condition variable )\"}</span>\r\n\t\t\t\t\t\t\t{showProduct && condition.Produits?.length > 0 && \r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t<button \r\n\t\t\t\t\t\t\t\t\t\tclassName=\"obj_btn-popin-detail\" \r\n\t\t\t\t\t\t\t\t\t\ttype=\"button\" \r\n\t\t\t\t\t\t\t\t\t\tonClick={() => this[\"ModalProduitCondition\"+condition.ChallengeCondition_Id].openModal()}>\r\n\t\t\t\t\t\t\t\t\t\t<span>Voir les produits concernés</span>\r\n\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"arrowDown\" />\r\n\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t<a className=\"obj_btn-popin-detail\" \r\n\t\t\t\t\t\t\t\t\t\thref={`${urlToHost('')}/apiaox/Challenge/GetExportProduitsConcernes?id=${condition.ChallengeCondition_Id}`}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<span>Exporter la liste des produits</span>\r\n\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"arrowDown\" />\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\r\n\t\t\t\t\t\t\t\t\t<ModalProduitConcernes produits={condition.Produits} onRef={ref => (this[\"ModalProduitCondition\"+condition.ChallengeCondition_Id] = ref)}/>\r\n\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"obj_condition_challenge-item-price\">\r\n\t\t\t\t\t\t\t{condition.ChallengeCondition_EnableVariableGain && <>{condition.ChallengeCondition_VariableGainMinPerUnity}<sup>€</sup> / </>}\r\n\t\t\t\t\t\t\t{condition.ChallengeCondition_MaxGainPerUnity}<sup>€</sup>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t))}\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjConditionChallenge)","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport { formatDate, throttle, isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport ObjConditionChallenge from './ObjConditionChallenge';\r\n\r\nclass ObjChallengeDetail extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile()\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\trender() {\r\n\t\tconst {participation, isManager} = this.props;\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_challenge-detail\">\r\n\t\t\t\t{!this.state.isMobile &&\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t<div className=\"ctn_image\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_visuel\">\r\n\t\t\t\t\t\t\t\t<img src={urlToHost(participation.Challenge.Challenge_MediaUrl)} alt={participation.Challenge.Brand.Brand_Name}/>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_logo\">\r\n\t\t\t\t\t\t\t\t<img src={urlToHost(participation.Challenge.Brand.Brand_LogoUrl)} alt={participation.Challenge.Brand.Brand_Name}/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t<p className=\"t_title\">Détail du challenge</p>\r\n\t\t\t\t\t\t\t<p className=\"t_date\">Du {formatDate(participation.Challenge.Challenge_StartDate)} au {formatDate(participation.Challenge.Challenge_EndDate)}</p>\r\n\t\t\t\t\t\t\t<p className=\"t_desc\" dangerouslySetInnerHTML={{__html: participation.Challenge.Challenge_Description}}/>\r\n\t\t\t\t\t\t\t<ObjConditionChallenge participation={participation} isManager={isManager} showProduct={true}/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t{this.state.isMobile &&\r\n\t\t\t\t\t<div className={`ctn_challenge-detail${this.state.activeDetailChallenge ? ' is-expanded' : ''}`}>\r\n\t\t\t\t\t\t<button className=\"obj_btn_challenge-detail\" onClick={ () => this.setState({activeDetailChallenge: !this.state.activeDetailChallenge}) }>\r\n\t\t\t\t\t\t\t<span>Détail du challenge</span>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t<div className=\"expend_challenge-detail\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_image\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_visuel\">\r\n\t\t\t\t\t\t\t\t\t\t<img src={urlToHost(participation.Challenge.Challenge_MediaUrl)} alt={participation.Challenge.Brand.Brand_Name}/>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_logo\">\r\n\t\t\t\t\t\t\t\t\t\t<img src={urlToHost(participation.Challenge.Brand.Brand_LogoUrl)} alt={participation.Challenge.Brand.Brand_Name}/>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_title\">Détail du challenge</p>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_date\">Du {formatDate(participation.Challenge.Challenge_StartDate)} au {formatDate(participation.Challenge.Challenge_EndDate)}</p>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_desc\" dangerouslySetInnerHTML={{__html: participation.Challenge.Challenge_Description}}/>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<ObjConditionChallenge participation={participation} showProduct={true}/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjChallengeDetail)","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass DefaultModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\tif(this.props.onClose){\r\n\t\t\tthis.closeModal = this.props.onClose\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName={'obj_popin ' + this.props?.className}\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t{this.props.htmlContent}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default DefaultModal","import React, { useState, useEffect, useRef } from 'react';\r\nimport { withTranslation } from 'react-i18next'; \r\nimport config from '../../temp/config';\r\nimport axios from 'axios'; \r\nimport { useFormik, Field, Form, FormikProvider } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\nimport ModalProduitConcernes from '../Modal/ModalProduitConcernes';\r\nimport DefaultModal from '../Modal/DefaultModal';\r\nimport SingleFileUpload from '../../utilities/FrontFunctions/FormElements/SingleFileUpload';\r\n\r\nconst ObjAsideChallengeADeclarer = ({ participation, t }) => {\r\n\r\n\tconst [isChalengeVariable,setIsChalengeVariable] = useState(!!participation?.challenge?.Challenge_EvolutionPercent);\r\n\tconst [initialValues, setInitialValues] = useState({\r\n\t\tFilesUpload_N_0: '',\r\n\t});\r\n\tconst [validationSchema, setValidationSchema] = useState({\r\n\t\tFilesUpload_N_0: Yup.mixed().required(),\r\n\t});\r\n\tconst [uploadList, setUploadList] = useState({\r\n\t\tcurrentYear: [{ fieldName: 'FilesUpload_N_0' }],\r\n\t\tpreviousYear: [{ fieldName: 'FilesUpload_N1_0' }],\r\n\t});\r\n\tconst [apiError, setApiError] = useState(false);\r\n\tconst [apiErrorMsg, setApiErrorMsg] = useState('');\r\n\tconst [formSubmitted, setFormSubmitted] = useState(false);\r\n\r\n\tconst modalRef = useRef(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst challenge = participation.Challenge;\r\n\t\tconst isNewChalengeVariable = challenge.Challenge_EvolutionPercent;\r\n\r\n\t\tlet newInitialValues = {\r\n\t\t\t...initialValues,\r\n\t\t\tChallengeId: challenge.Challenge_Id,\r\n\t\t\t...(isNewChalengeVariable && { FilesUpload_N1_0: '' }),\r\n\t\t};\r\n\t\tlet newValidationSchema = {\r\n\t\t\t...validationSchema,\r\n\t\t\t...(isNewChalengeVariable && { FilesUpload_N1_0: Yup.mixed().required() }),\r\n\t\t\tChallengeId: Yup.number().required(),\r\n\t\t};\r\n\r\n\t\tchallenge.Conditions.forEach((condition, index) => {\r\n\t\t\tnewInitialValues = {\r\n\t\t\t\t...newInitialValues,\r\n\t\t\t\t[`Declarations_${index}_CondId`]: condition.ChallengeCondition_Id,\r\n\t\t\t\t[`Declarations_${index}_Current`]: '',\r\n\t\t\t\t...(isNewChalengeVariable && { [`Declarations_${index}_Anterior`]: '' }),\r\n\t\t\t};\r\n\t\t\tnewValidationSchema = {\r\n\t\t\t\t...newValidationSchema,\r\n\t\t\t\t[`Declarations_${index}_CondId`]: Yup.number().required(),\r\n\t\t\t\t[`Declarations_${index}_Current`]: Yup.number().required(),\r\n\t\t\t\t...(isNewChalengeVariable && { [`Declarations_${index}_Anterior`]: Yup.number().required() }),\r\n\t\t\t};\r\n\t\t});\r\n\t\tsetIsChalengeVariable(isNewChalengeVariable);\r\n\t\tsetInitialValues(newInitialValues);\r\n\t\tsetValidationSchema(newValidationSchema);\r\n\r\n\t}, []);\r\n\r\n\tconst handleAddUpload = (isCurrentYear) => {\r\n\t\tconst newFieldName = isCurrentYear ? `FilesUpload_N_${uploadList.currentYear.length}` : `FilesUpload_N1_${uploadList.previousYear.length}`;\r\n\t\tconst newUploadList = isCurrentYear ? \r\n\t\t\t{ ...uploadList, currentYear: [...uploadList.currentYear, { fieldName: newFieldName }] } :\r\n\t\t\t{ ...uploadList, previousYear: [...uploadList.previousYear, { fieldName: newFieldName }] };\r\n\t\t\r\n\t\t\r\n\t\tconst newInitialValues = {\r\n\t\t\t...formik.values, \r\n\t\t\t[newFieldName]: '' \r\n\t\t};\r\n\r\n\t\tsetUploadList(newUploadList);\r\n\t\tsetInitialValues(newInitialValues);\r\n\t};\r\n\r\n\tconst formik = useFormik({\r\n\t\tinitialValues,\r\n\t\tvalidationSchema: Yup.object().shape(validationSchema),\r\n\t\tenableReinitialize: true,\r\n\t\tonSubmit: (values) => {\r\n\t\t\tdocument.body.classList.add('is-loading');\r\n\r\n\t\t\tconst formData = new FormData();\r\n\t\t\tObject.entries(values).forEach(([key, value]) => {\r\n\t\t\t\tconst inputNameList = key.split('_');\r\n\t\t\t\tif (inputNameList.length <= 1) {\r\n\t\t\t\t\tformData.append(key, value);\r\n\t\t\t\t} else if (inputNameList.length === 2) {\r\n\t\t\t\t\tformData.append(`${inputNameList[0]}[${inputNameList[1]}]`, value);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tformData.append(`${inputNameList[0]}[${inputNameList[1]}].${inputNameList[2]}`, value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\taxios.post(`${config.sitecoreApiHost}/apiaox/Challenge/PostChallengeDeclaration`, formData, {\r\n\t\t\t\twithCredentials: true,\r\n\t\t\t\theaders: { 'Content-Type': 'multipart/form-data' },\r\n\t\t\t})\r\n\t\t\t.then((result) => {\r\n\t\t\t\tdocument.body.classList.remove('is-loading');\r\n\t\t\t\tsetFormSubmitted(result.data.IsValid);\r\n\t\t\t\tsetApiError(!result.data.IsValid);\r\n\t\t\t\tsetApiErrorMsg(result.data.ExceptionMessage);\r\n\t\t\t\tif (result.data.IsValid) {\r\n\t\t\t\t\tmodalRef.current.openModal();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\tdocument.body.classList.remove('is-loading');\r\n\t\t\t\tsetApiError(true);\r\n\t\t\t\tsetApiErrorMsg(t('DefaultServerError'));\r\n\t\t\t});\r\n\t\t},\r\n\t});\r\n\r\n\treturn (\r\n\t\t<div className=\"obj_saisie-vente\">\r\n\t\t\t<div className=\"ctn_form\">\r\n\t\t\t\t<FormikProvider value={formik}>\r\n\t\t\t\t\t<Form>\r\n\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t<h3 className=\"t_title\">Déclaration de mes ventes</h3>\r\n\r\n\t\t\t\t\t\t\t{participation.Challenge.Conditions.map((condition, index) => (\r\n\t\t\t\t\t\t\t\t<div className=\"obj_saisie-vente-item\" key={index}>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_desc\">\r\n\t\t\t\t\t\t\t\t\t\t{condition.ChallengeCondition_Name}\r\n\t\t\t\t\t\t\t\t\t\t{condition.ChallengeCondition_EnableVariableGain && \" ( condition variable )\"}\r\n\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t{condition.Produits.length > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"obj_btn-popin-detail\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => modalRef.current.openModal()}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span>voir les produits concernés</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"arrowDown\" />\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t<ModalProduitConcernes\r\n\t\t\t\t\t\t\t\t\t\t\t\tproduits={condition.Produits}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonRef={(ref) => (modalRef.current = ref)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_saisie-vente-ctn_input\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_label\">ventes année {new Date(participation.Challenge.Challenge_EndDate).getFullYear()}*</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname={`Declarations_${index}_Current`}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"000\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={6}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={formik.touched[`Declarations_${index}_Current`] && formik.errors[`Declarations_${index}_Current`] && 'error'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t{isChalengeVariable && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_label\">ventes année {new Date(participation.Challenge.Challenge_EndDate).getFullYear() - 1}*</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={`Declarations_${index}_Anterior`}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"000\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={6}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={formik.touched[`Declarations_${index}_Anterior`] && formik.errors[`Declarations_${index}_Anterior`] && 'error'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t))}\r\n\r\n\t\t\t\t\t\t\t<h3 className=\"t_title\">Importer mes listings</h3>\r\n\r\n\t\t\t\t\t\t\t<p className=\"t_desc\">\r\n\t\t\t\t\t\t\t\tSi votre challenge concerne une évolution sur deux années différentes, vous devrez nous transmettre les fichiers de ventes de référence sur cette période. <br />\r\n\t\t\t\t\t\t\t\tAttention : sans l'intégralité de ces fichiers, votre déclaration sera refusée et vous devrez déclarer à nouveau votre challenge.\r\n\t\t\t\t\t\t\t</p>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_add-file\">\r\n\t\t\t\t\t\t\t\t\t\t<h4 className=\"t_title\">Importer mes fichiers {new Date(participation.Challenge.Challenge_EndDate).getFullYear()}</h4>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t{uploadList.currentYear.map((uploadItem, index) => (\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_file-upload\" key={index}>\r\n\t\t\t\t\t\t\t\t\t\t<SingleFileUpload\r\n\t\t\t\t\t\t\t\t\t\t\tfieldName={uploadItem.fieldName}\r\n\t\t\t\t\t\t\t\t\t\t\tlabelText=\" \"\r\n\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={formik.setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={formik.setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\terrors={formik.errors}\r\n\t\t\t\t\t\t\t\t\t\t\ttouched={formik.touched}\r\n\t\t\t\t\t\t\t\t\t\t\tformatTypes={['image/jpeg', 'image/png', 'application/pdf']}\r\n\t\t\t\t\t\t\t\t\t\t\tformatErrorText=\"Format de fichiers non permis.\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"i_add\">\r\n\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"importUpload\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<span >Cliquez pour importer un fichier {new Date(participation.Challenge.Challenge_EndDate).getFullYear()}{index===0 && '*'}</span>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t{/* <button type=\"button\" onClick={() => this.handleRemoveUpload(uploadItem)}>Supprimer le fichier</button> */}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t))}\r\n\r\n\t\t\t\t\t\t\t\t{uploadList.currentYear.length<4 &&\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_add-file\" >\r\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" className=\"bt_add-file\" onClick={() => handleAddUpload(true)}>\r\n\t\t\t\t\t\t\t\t\t\t\tAjouter un autre fichier {new Date(participation.Challenge.Challenge_EndDate).getFullYear()} à importer\r\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"i_plus\"></span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</>\r\n\r\n\t\t\t\t\t\t\t{isChalengeVariable && (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_add-file\">\r\n\t\t\t\t\t\t\t\t\t\t<h4 className=\"t_title\">Importer mes fichiers {new Date(participation.Challenge.Challenge_EndDate).getFullYear() - 1}</h4>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{uploadList.previousYear.map((uploadItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_file-upload\" key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<SingleFileUpload\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName={uploadItem.fieldName}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabelText=\" \"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={formik.setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={formik.setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\terrors={formik.errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttouched={formik.touched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tformatTypes={['image/jpeg', 'image/png', 'application/pdf']}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tformatErrorText=\"Format de fichiers non permis.\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"i_add\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"importUpload\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Cliquez pour importer un fichier {new Date(participation.Challenge.Challenge_EndDate).getFullYear()-1}{index===0 && '*'}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{/* <button type=\"button\" onClick={() => this.handleRemoveUpload(uploadItem)}>Supprimer le fichier</button> */}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\r\n\t\t\t\t\t\t\t\t\t\t{uploadList.previousYear.length<4 &&\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_add-file\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" className=\"bt_add-file\" onClick={() => handleAddUpload(false)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tAjouter un autre fichier {new Date(participation.Challenge.Challenge_EndDate).getFullYear()-1} à importer\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"i_plus\"></span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t<p className=\"t_mention\">Formats acceptés : jpeg, png, pdf.</p>\r\n\r\n\t\t\t\t\t\t\t<p className=\"t_mention\">{t(\"Connexion_mandatoryText\")}</p>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\">Envoyer</button>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t{formik.submitCount > 0 && !formik.isValid && (\r\n\t\t\t\t\t\t\t\t<p className=\"t_error mb_30\">Le formulaire est incomplet</p>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t{apiError && (\r\n\t\t\t\t\t\t\t\t<p className=\"t_error mb_30 fade-in\">{apiErrorMsg}</p>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</Form>\r\n\t\t\t\t</FormikProvider>\r\n\r\n\t\t\t\t<DefaultModal\r\n\t\t\t\t\tonRef={(ref) => (modalRef.current = ref)}\r\n\t\t\t\t\thtmlContent={\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t<p className=\"t_title\">Votre déclaration a bien été transmise.</p>\r\n\t\t\t\t\t\t\t<p className=\"t_main\"></p>\r\n\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"button\" onClick={() => window.location.reload(false)}>fermer</button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n}\r\n\r\nexport default withTranslation()(ObjAsideChallengeADeclarer);\r\n","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport { Formik, Field } from 'formik'\r\nimport * as Yup from 'yup'\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport ModalProduitConcernes from '../Modal/ModalProduitConcernes'\r\n\r\nclass ObjAsideChallengeVerificationDeclaration extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tinitialValues: {},\r\n\t\t\tvalidationSchema: {},\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_saisie-vente\">\r\n\t\t\t\t<div className=\"ctn_form\">\r\n\t\t\t\t\t<Formik\r\n\t\t\t\t\t\tinitialValues={this.state.initialValues}\r\n\t\t\t\t\t\tvalidationSchema={Yup.object().shape(this.state.validationSchema)}\r\n\t\t\t\t\t\tonSubmit={(values, actions) => { }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{ ({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">Déclaration de mes ventes</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t{this.props.participation.Challenge.Conditions?.map((condition, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_saisie-vente-item\" key={index} >\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_desc\">{condition.ChallengeCondition_Name}{condition.ChallengeCondition_EnableVariableGain && \" ( condition variable )\"}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{(condition.Produits?.length > 0) && \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" className=\"obj_btn-popin-detail\" onClick={() => this[\"ModalProduitCondition\"+condition.ChallengeCondition_Id].openModal()}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>voir les produits concernés</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"arrowDown\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ModalProduitConcernes produits={condition.Produits} onRef={ref => (this[\"ModalProduitCondition\"+condition.ChallengeCondition_Id] = ref)} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_saisie-vente-ctn_input\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_label\">Année en cours</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field className=\"\" as=\"input\" type=\"text\" disabled={true}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={'Declarations_'+index+'_Current'} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.participation.Declaration?.Conditions.find(o => o.Id === condition.ChallengeCondition_Id).ValueCurrent}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.participation.Challenge.Challenge_EvolutionPercent && \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_label\">Année précédente</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field className=\"\" as=\"input\" type=\"text\" disabled={true} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={'Declarations_'+index+'_Anterior'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.participation.Declaration?.Conditions.find(o => o.Id === condition.ChallengeCondition_Id).ValueAnterior}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\r\n\t\t\t\t\t\t\t\t\t\t{/* <h3 className=\"t_title\">mes listings</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"ctn_file-upload\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"ctn_single-file-upload\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.participation.Declaration?.Proofs.map(o => ( \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ctn_file-thumb\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ctn_infos\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"t_name\">{o.FileName}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div> */}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Formik>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjAsideChallengeVerificationDeclaration);","import React, { Component } from 'react'\r\nimport { Animate } from 'react-move'\r\n\r\nclass AnimatedProgressProvider extends Component {\r\n\tstate = {\r\n\t\tisAnimated: false\r\n\t}\r\n\tstatic defaultProps = {\r\n\t\tvalueStart: 0,\r\n\t\tvalueEnd: 100\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.setState({\r\n\t\t\tisAnimated: !this.state.isAnimated\r\n\t\t})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<Animate\r\n\t\t\t\tstart={() => ({\r\n\t\t\t\t\tvalue: this.props.valueStart\r\n\t\t\t\t})}\r\n\t\t\t\tupdate={() => ({\r\n\t\t\t\t\tvalue: [\r\n\t\t\t\t\t\tthis.state.isAnimated ? this.props.valueEnd : this.props.valueStart\r\n\t\t\t\t\t]\r\n\t\t\t\t})}\r\n\t\t\t>\r\n\t\t\t\t{({ value }) => this.props.children(value)}\r\n\t\t\t</Animate>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default AnimatedProgressProvider","import React, { Component } from 'react'\r\n\r\nclass FilterInput extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tvalue: '',\r\n\t\t}\r\n\t\tthis.handleReset = this.handleReset.bind(this)\r\n\t}\r\n\thandleReset(){\r\n\t\tthis.setState({\r\n\t\t\tvalue: '',\r\n\t\t}, () =>{\r\n\t\t\tthis.props.onChange(this.state.value)\r\n\t\t})\r\n\t}\r\n\trender() {\r\n\t\treturn(\r\n\t\t\t<div className=\"obj_filter-input\">\r\n\t\t\t\t{this.props.label &&\r\n\t\t\t\t\t<label className=\"t_filter-input\">{this.props.label}</label>\r\n\t\t\t\t}\r\n\t\t\t\t<div className=\"ctn_input\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tid={this.props.id}\r\n\t\t\t\t\t\tname={this.props.name}\r\n\t\t\t\t\t\tplaceholder={this.props.placeholder}\r\n\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\tvalue: e.target.value,\r\n\t\t\t\t\t\t\t}, () => {\r\n\t\t\t\t\t\t\t\tthis.props.onChange(this.state.value)\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tvalue={this.state.value}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t{this.state.value !== '' &&\r\n\t\t\t\t\t\t<button className=\"bt_reset-input\" type=\"button\" onClick={this.handleReset}></button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default FilterInput\r\n","import React from 'react'\r\nimport FilterInput from \"../../utilities/FrontFunctions/FormElements/FilterInput\";\r\nimport { useState } from 'react';\r\n\r\nexport default function ModalContentChallengeARepartir({membres, usersSelected, onAdd, onClose}){\r\n\r\n const [membresFiltered, setMembresFiltered] = useState(membres);\r\n\r\n\r\n return(\r\n <div className=\"ctn_list_participants_select fade-in\">\r\n <div className=\"wrapper_list_participants_select\">\r\n\r\n \r\n <p>Ajout d'un bénéficiaire</p>\r\n\r\n <FilterInput\r\n label=\"Rechercher\"\r\n id=\"filter-user\"\r\n name=\"filter_user\"\r\n placeholder=\"Nom du bénéficiaire\"\r\n onChange={(text) => {\r\n setMembresFiltered(\r\n membres.filter((mem) => mem.Name.toLowerCase().includes(text.toLocaleLowerCase())),\r\n );\r\n }}\r\n \r\n />\r\n <ul>\r\n {membresFiltered.map((membre, index) => {\r\n const alreadySelected = usersSelected.find((user) => user.Id === membre.Id)? true: false;\r\n const IsRepartitable = membre.IsRepartitable;\r\n \r\n \r\n return (\r\n <li key={index}>\r\n <button\r\n type=\"button\"\r\n onClick={() => onAdd(membre)}\r\n disabled={alreadySelected}\r\n >\r\n {membre.Name}\r\n {\r\n !IsRepartitable && <p className=\"t_error\">Le n° de sécurité sociale doit être renseigné pour ajouter ce bénéficiaire.</p>\r\n }\r\n {\r\n !alreadySelected && IsRepartitable && <span className=\"t_add\">Ajouter <span className=\"i_plus\"></span></span>\r\n }\r\n \r\n </button>\r\n </li>\r\n )})}\r\n </ul>\r\n <button className=\"bt_list_participants_close\" type=\"button\" onClick={() => onClose()}></button>\r\n </div>\r\n <div className=\"ctn_list_participants_overlay\" onClick={() => onClose()}></div>\r\n </div>\r\n ) \r\n};\r\n","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport config from '../../temp/config';\r\n\r\nimport axios from 'axios'; \r\nimport queryString from 'query-string';\r\nimport { Formik, Field } from 'formik'\r\nimport * as Yup from 'yup'\r\nimport { CircularProgressbar } from 'react-circular-progressbar'\r\nimport AnimatedProgressProvider from '../../utilities/FrontFunctions/Provider/AnimatedProgressProvider'\r\nimport DefaultModal from '../Modal/DefaultModal'\r\nimport ModalContentChallengeARepartir from './ModalContentChallengeARepartir';\r\n\r\nclass ObjAsideChallengeARepartir extends Component {\r\n\t\tstate = {\r\n\t\t\t//liste des users selectionnables (popin)\r\n\t\t\t\r\n\t\t\tuserList: this.props.membres.map((membre) => ({\r\n\t\t\t\tId:membre.Id,\r\n\t\t\t\tvalue: 'user_'+membre.Id, \r\n\t\t\t\tName: membre.Name, \r\n\t\t\t\tgain: 0, \r\n\t\t\t\tpercent: 0, \r\n\t\t\t\tGainYearTotal: membre.GainYearTotal,\r\n\t\t\t\tIsRepartitable: membre.IsRepartitable,\r\n\t\t\t})),\t\r\n\t\t\tisUserListVisible: false,\r\n\t\t\t//liste des users sélectionnés (formulaire)\r\n\t\t\tuserSelectedList: [],\t\r\n\t\t\treste_repartir: this.props.participation.Participation_Gain,\r\n\t\t\tmontant_total: this.props.participation.Participation_Gain\r\n\t\t}\r\n\r\n\t\tcolorsList = ['#86469E', '#CA93DE', '#035797', '#79BDF2', '#1EA5A5', '#66CEDA', '#7AAE5E', '#ACDE93']\r\n\r\n\tcomponentDidMount() {\r\n\t}\r\n\r\n\trefreshGraphPercent(userSelectedList){\r\n\t\tlet cumulPercent = 0;\r\n\t\tuserSelectedList.forEach(userItem => {\r\n\t\t\tcumulPercent += (userItem.gain * 100) / this.state.montant_total;\r\n\t\t\tuserItem.percent = cumulPercent;\r\n\t\t});\r\n\t}\r\n\r\n\thandleSelect(userItem){\r\n\t\tif(userItem.IsRepartitable){\r\n\t\t\tthis.setState({\r\n\t\t\t\tuserSelectedList: [...this.state.userSelectedList, {...userItem,gain:0, percent:0}],\r\n\t\t\t});\r\n }\r\n\t}\r\n\r\n\thandleDelete(formItem, setFieldValue){\r\n\r\n\t\tsetFieldValue(formItem.value, 0);\r\n\r\n\t\tlet newuserSelectedList = this.state.userSelectedList.filter((item) => item !== formItem);\r\n\t\tthis.refreshGraphPercent(newuserSelectedList);\r\n\r\n\t\tthis.setState({\r\n\t\t\tuserSelectedList: newuserSelectedList,\r\n\t\t\treste_repartir: this.state.montant_total - newuserSelectedList.reduce((sum, item) => sum + item.gain, 0)\r\n\t\t});\r\n\t}\r\n\r\n\tshowUsersList(){\r\n\t\tthis.setState({\r\n\t\t\tisUserListVisible: true,\r\n\t\t});\r\n\t}\r\n\r\n\thideUsersList(){\r\n\t\tthis.setState({\r\n\t\t\tisUserListVisible: false,\r\n\t\t});\r\n\t}\r\n\r\n\thandleInput(e, formItem, setFieldValue){\r\n\t\tlet userIndex = this.state.userSelectedList.findIndex(item => item === formItem);\r\n\t\tlet inputGain = Number(e.target.value)?Number(e.target.value):0;\r\n\r\n\t\tif (inputGain!== this.state.userSelectedList[userIndex].gain){\r\n\t\t\tconst sumRepartitionOthers = this.state.userSelectedList.reduce((sum, item, index) => sum + ((index!==userIndex)?item.gain:0), 0);\r\n\t\t\t//si l'ajout du gain dépasse le total attribuable, on le réévalue au reste attribuable\r\n\t\t\tif (sumRepartitionOthers + inputGain > this.state.montant_total){\r\n\t\t\t\tinputGain = this.state.montant_total - sumRepartitionOthers;\r\n\t\t\t\te.target.value = inputGain;\r\n\t\t\t}\r\n\r\n\t\t\tsetFieldValue(formItem.value, e.target.value);\r\n\t\r\n\t\t\tlet newuserSelectedList = this.state.userSelectedList;\r\n\t\t\tnewuserSelectedList[userIndex].gain = inputGain;\r\n\t\t\tthis.refreshGraphPercent(newuserSelectedList);\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tuserSelectedList: newuserSelectedList,\r\n\t\t\t\treste_repartir: this.state.montant_total - sumRepartitionOthers - inputGain\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_repartition-gains\">\r\n\t\t\t\t<div className=\"ctn_form\">\r\n\r\n\t\t\t\t\t<Formik\r\n\t\t\t\t\t\tinitialValues={this.state.userSelectedList.reduce((acc,item)=>{\r\n\t\t\t\t\t\t\tacc[item.value]=null\r\n\t\t\t\t\t\t\treturn acc\r\n\t\t\t\t\t\t},{\"ChallengeId\": this.props.participation.Challenge.Challenge_Id})}\r\n\r\n\t\t\t\t\t\tvalidationSchema={Yup.object().shape(\r\n\t\t\t\t\t\t\tthis.state.userSelectedList.reduce((acc,item)=>{\r\n\t\t\t\t\t\t\t\tacc[item.value]=Yup.number().required()\r\n\t\t\t\t\t\t\t\treturn acc\r\n\t\t\t\t\t\t},{\"ChallengeId\": Yup.number().required()})\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\tvalidate={() => {\r\n\t\t\t\t\t\t\tconst errors = {};\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif ((this.state.userSelectedList.reduce((sum, item) => sum + item.gain, 0) !== this.state.montant_total)) {\r\n\t\t\t\t\t\t\t\terrors.sumError = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn errors;\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonSubmit={(values) => {\r\n\t\t\t\t\t\t\tdocument.body.classList.add('is-loading') \r\n\r\n\t\t\t\t\t\t\tlet postDatas = {};\r\n\t\t\t\t\t\t\tlet index = 0;\r\n\t\t\t\t\t\t\tObject.entries(values).forEach((val) => {\r\n\t\t\t\t\t\t\t\tif(val[0].startsWith(\"user_\")){\r\n\t\t\t\t\t\t\t\t\tpostDatas[`Repartitions[${index}].UserId`] = val[0].slice(\"user_\".length);\r\n\t\t\t\t\t\t\t\t\tpostDatas[`Repartitions[${index}].Montant`] = val[1];\r\n\t\t\t\t\t\t\t\t\tindex++;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tpostDatas[val[0]] = val[1];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\taxios.post(\r\n\t\t\t\t\t\t\t\t`${config.sitecoreApiHost}/apiaox/Challenge/PostChallengeRepartition`, \r\n\t\t\t\t\t\t\t\tqueryString.stringify(postDatas), \r\n\t\t\t\t\t\t\t\t{withCredentials: true, headers : {Accept: 'application/json','Content-Type': 'application/x-www-form-urlencoded',}}\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.then((result) => {\r\n\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\tformSubmitted: result.data.IsValid,\r\n\t\t\t\t\t\t\t\t\tapiError: !result.data.IsValid,\r\n\t\t\t\t\t\t\t\t\tapiErrorMsg: result.data.ExceptionMessage,\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\tif(result.data.IsValid){\r\n\t\t\t\t\t\t\t\t\tthis.ModalRepartitionTransmise.openModal();\r\n\t\t\t\t\t\t\t \t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch((err) => {\r\n\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading') \r\n\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\tapiError: true,\r\n\t\t\t\t\t\t\t\t\tapiErrorMsg : this.props.t('DefaultServerError'),\r\n\t\t\t\t\t\t\t\t}) \r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{ ({ handleSubmit, setFieldValue, errors, setErrors, touched, submitCount }) => (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">Participants et répartitions des gains</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_graph_gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_circle-progress-gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<AnimatedProgressProvider valueEnd={100}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{value => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgressbar\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcircleRatio={0.5}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeWidth={10}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyles={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\troot: {zIndex: 1},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpath: {stroke: '#000'},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</AnimatedProgressProvider>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.userSelectedList.map((userItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<AnimatedProgressProvider valueEnd={userItem.percent} key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{value => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgressbar\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcircleRatio={0.5}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeWidth={10}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyles={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\troot: {zIndex: this.state.userSelectedList.length + 1 - index},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpath: {stroke: this.colorsList[index % 8]},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</AnimatedProgressProvider>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_graph_infos_gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"t_desc\">Reste à répartir</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"t_gain\">{this.state.reste_repartir}€</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"t_total\">Montant total : {this.state.montant_total}€</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_list_participants_gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t{this.state.userSelectedList.map((formItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"item_participants_gains\" key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<picture className=\"participant_picture\" style={{borderColor: this.colorsList[index % 8]}}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={require('../../assets/images/v_avatar-xl.png')} alt=\"\"/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"participant_infos\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"t_name\">{formItem.Name}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"t_desc\">Gains cumulés : {formItem.GainYearTotal}€</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"participant_gain\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={errors[formItem.value] && touched[formItem.value] && 'error'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={formItem.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Gain\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => this.handleInput(e, formItem, setFieldValue)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"participant_delete\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" className=\"btn_delete\" onClick={() => this.handleDelete(formItem, setFieldValue)}>x</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_list_participants_gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_list_participants_select\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bt_list_participants_select\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => this.showUsersList()}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tAjouter un bénéficiaire\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"i_plus\"></span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.isUserListVisible &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ModalContentChallengeARepartir\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmembres={this.state.userList}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tusersSelected={this.state.userSelectedList}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonAdd={(item) => this.handleSelect(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose={() => this.hideUsersList()}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention\">La totalité des gains doit être répartie pour pouvoir valider.</p>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\">Valider</button>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tsubmitCount>0 && (this.state.userSelectedList.reduce((sum, item) => sum + item.gain, 0) !== this.state.montant_total) &&\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_30\">Répartition incomplète</p>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t{this.state.apiError && \r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_30 fade-in\">{this.state.apiErrorMsg}</p>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</form>\r\n\r\n\t\t\t\t\t\t\t\t<DefaultModal\r\n\t\t\t\t\t\t\t\t\tonRef={ref => (this.ModalRepartitionTransmise = ref)}\r\n\t\t\t\t\t\t\t\t\tonClose={() => window.location.reload(false)}\r\n\t\t\t\t\t\t\t\t\thtmlContent={\r\n\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\">Votre répartition a bien été transmise.</p>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_main\"></p>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"button\" onClick={() => this.ModalRepartitionTransmise.closeModal()}>fermer</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Formik>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjAsideChallengeARepartir)","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport { Formik, Field } from 'formik'\r\nimport * as Yup from 'yup'\r\nimport { CircularProgressbar } from 'react-circular-progressbar'\r\nimport AnimatedProgressProvider from '../../utilities/FrontFunctions/Provider/AnimatedProgressProvider'\r\n\r\nclass ObjAsideChallengeVerificationRepartition extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\r\n\t\tlet formList = [];\r\n\t\tif(this.props.participation?.Repartitions){\r\n\t\t\tlet cumulPercent = 0;\r\n\t\t\tthis.props.participation.Repartitions.forEach( (repartition, index) => {\r\n\t\t\t\tcumulPercent += (repartition.Repartition_ValueRaw * 100) / this.props.participation.Participation_Gain;\r\n\t\t\t\tformList.push({\tvalue: 'user_'+index, \r\n\t\t\t\t\t\t\t\tlabel: repartition.User_Name, \r\n\t\t\t\t\t\t\t\tgain: repartition.Repartition_ValueRaw, \r\n\t\t\t\t\t\t\t\tpercent: cumulPercent, \r\n\t\t\t\t\t\t\t\tgains_cumules: repartition.User_GainYearTotal, \r\n\t\t\t\t\t\t\t\tisDisabled: true\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tinitialValues: {},\r\n\t\t\tvalidationSchema: {},\r\n\t\t\tformList : formList,\r\n\t\t\tcolors: ['#86469E', '#CA93DE', '#035797', '#79BDF2', '#1EA5A5', '#66CEDA', '#7AAE5E', '#ACDE93'],\r\n\t\t\tmontant_total : this.props.participation.Participation_Gain\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tdocument.body.classList.add('pg_challenge-detail')\r\n\t\twindow.scrollTo(0,0)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove('pg_challenge-detail')\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_repartition-gains\">\r\n\t\t\t\t<div className=\"ctn_form\">\r\n\t\t\t\t\t<Formik\r\n\t\t\t\t\t\tinitialValues={this.state.initialValues}\r\n\t\t\t\t\t\tvalidationSchema={Yup.object().shape(this.state.validationSchema)}\r\n\t\t\t\t\t\tonSubmit={(values, actions) => { }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{ ({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">Participants et répartition des gains</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_graph_gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_circle-progress-gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<AnimatedProgressProvider valueEnd={100}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{value => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgressbar\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcircleRatio={0.5}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeWidth={10}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyles={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\troot: {zIndex: 1},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpath: {stroke: '#000'},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</AnimatedProgressProvider>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.formList.map((userItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<AnimatedProgressProvider valueEnd={userItem.percent} key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{value => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgressbar\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcircleRatio={0.5}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeWidth={10}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyles={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\troot: {zIndex: this.state.formList.length + 1 - index},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpath: {stroke: this.state.colors[index % 8]},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</AnimatedProgressProvider>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_graph_infos_gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"t_total\">Montant total : {this.state.montant_total}€</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_list_participants_gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t{this.state.formList.map((formItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"item_participants_gains\" key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<picture className=\"participant_picture\" style={{borderColor: this.state.colors[index % 8]}}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={require('../../assets/images/v_avatar-xl.png')} alt=\"\"/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"participant_infos\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"t_name\">{formItem.label}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"t_desc\">Gains cumulés : {formItem.gains_cumules}€</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"participant_gain\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=''\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={formItem.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={formItem.gain}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={true}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Formik>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjAsideChallengeVerificationRepartition);","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport queryString from 'query-string';\r\n\r\nimport { getApiDatas, dayRemaining, dateProgression, strDateToFr } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { CONST_challengeStateTypes } from \"../../data/const\"\r\n\r\nimport ObjRetour from \"../Obj/ObjRetour\";\r\nimport ObjProgressBar from \"../Obj/ObjProgressBar\";\r\nimport ObjChallengeDetail from '../ObjChallenge/ObjChallengeDetail';\r\nimport ObjAsideChallengeADeclarer from './ObjAsideChallengeADeclarer';\r\nimport ObjAsideChallengeVerificationDeclaration from './ObjAsideChallengeVerificationDeclaration';\r\nimport ObjAsideChallengeARepartir from './ObjAsideChallengeARepartir';\r\nimport ObjAsideChallengeVerificationRepartition from './ObjAsideChallengeVerificationRepartition';\r\n\r\nclass PageChallengeDetail extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tapiDatas:[],\r\n\t\t}\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tvar oParams = queryString.parse(window.location.search);\r\n\t\tif(oParams.id !== undefined){\r\n\t\t\tgetApiDatas(`/apiaox/Challenge/GetDataPageChallengeDetail?id=${oParams.id}`)\r\n\t\t\t.then((apiDatas) => { this.setState({ apiDatas:apiDatas }) })\r\n\t\t}\r\n\r\n\t\tdocument.body.classList.add('pg_challenge-detail')\r\n\t\twindow.scrollTo(0,0);\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove('pg_challenge-detail')\r\n\t}\r\n\trender() {\r\n\t\tconst apiDatas = this.state.apiDatas\r\n\t\tconst DayRemainingToDeclare = dayRemaining(apiDatas.Participation?.Challenge.Challenge_ToDeclareDate);\r\n\t\tconst DayRemainingToDispatch = dayRemaining(apiDatas.Participation?.Challenge.Challenge_ToDispatchDate);\r\n\r\n\t\treturn (<>\r\n\t\t\t<ObjRetour/>\r\n\t\t\t\r\n\t\t\t<section className=\"obj_section section_challenges-detail\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t{apiDatas.Participation && <>\r\n\t\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t\t<h1 className=\"t_title\">\r\n\t\t\t\t\t\t\t\t{apiDatas.Participation.Challenge.Challenge_Title}\r\n\t\t\t\t\t\t\t</h1>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t<ObjChallengeDetail user={apiDatas.User} participation={apiDatas.Participation} />\r\n\r\n\t\t\t\t\t\t\t<div className={`obj_aside_challenge ${CONST_challengeStateTypes[apiDatas.Participation.ParticipationStateType_Code].css}`}>\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_header\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_temps_restant\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"tag_title\"><span>{apiDatas.Participation.ParticipationStateType_Name}</span></div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t{(() => {switch (apiDatas.Participation.ParticipationState_Code) {\r\n\t\t\t\t\t\t\t\t\t\t\tcase 'STATE_TO_DECLARE' : return DayRemainingToDeclare > -1 && <>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_jours-restant\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\tDayRemainingToDeclare===0\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t?<p><strong>Dernier jour</strong></p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t:<><span>{DayRemainingToDeclare}</span><p><strong>jours restants</strong> jusqu'au {strDateToFr(apiDatas.Participation.Challenge.Challenge_ToDeclareDate)}</p></>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_progress-bar-challenge\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ObjProgressBar pctProgress={dateProgression(apiDatas.Participation.Challenge.Challenge_EndDate, apiDatas.Participation.Challenge.Challenge_ToDeclareDate)}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\tcase 'STATE_DECLARATION_VERIFICATION' : return <>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_jours-restant-info\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Challenge en attente de validation par nos équipes suite à votre déclaration de ventes.</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\tcase 'STATE_TO_DISPATCH' : return DayRemainingToDispatch > -1 && <>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_jours-restant\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\tDayRemainingToDispatch===0\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t?<p><strong>Dernier jour</strong></p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t:<><span>{DayRemainingToDispatch}</span><p><strong>jours restants</strong> jusqu'au {strDateToFr(apiDatas.Participation.Challenge.Challenge_ToDispatchDate)}</p></>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_progress-bar-challenge\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ObjProgressBar pctProgress={dateProgression(apiDatas.Participation.Challenge.Challenge_ToDeclareDate, apiDatas.Participation.Challenge.Challenge_ToDispatchDate)}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\tcase 'STATE_REPARTITION_VERIFICATION' : return <>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_jours-restant-info\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p>Challenge en attente de validation par nos équipes<br /> suite à votre répartition des gains.</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\tdefault:return <></>\r\n\t\t\t\t\t\t\t\t\t\t}})()}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t{apiDatas.User.ChallengeManager && (() => {switch (apiDatas.Participation.ParticipationState_Code) {\r\n\t\t\t\t\t\t\t\t\tcase 'STATE_TO_DECLARE' : return <ObjAsideChallengeADeclarer participation={apiDatas.Participation} />\r\n\t\t\t\t\t\t\t\t\tcase 'STATE_DECLARATION_VERIFICATION' : return <ObjAsideChallengeVerificationDeclaration participation={apiDatas.Participation} />\r\n\t\t\t\t\t\t\t\t\tcase 'STATE_TO_DISPATCH' : return <ObjAsideChallengeARepartir participation={apiDatas.Participation} membres={apiDatas.Membres} />\r\n\t\t\t\t\t\t\t\t\tcase 'STATE_REPARTITION_VERIFICATION' : return <ObjAsideChallengeVerificationRepartition participation={apiDatas.Participation} />\r\n\t\t\t\t\t\t\t\t\tcase 'STATE_WON' : return <ObjAsideChallengeVerificationRepartition participation={apiDatas.Participation} />\r\n\t\t\t\t\t\t\t\t\tcase 'STATE_DISTRIBUTED' : return <ObjAsideChallengeVerificationRepartition participation={apiDatas.Participation} />\r\n\t\t\t\t\t\t\t\t\tdefault:return <></>\r\n\t\t\t\t\t\t\t\t}})()}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</>}\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(PageChallengeDetail)","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport LazyLoad from 'react-lazyload'\r\n\r\nimport { dayRemaining, dateProgression, strDateToFr, urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { CONST_challengeStateTypes } from \"../../data/const\"\r\n\r\nimport ObjProgressBar from \"../Obj/ObjProgressBar\";\r\nimport ObjConditionChallenge from './ObjConditionChallenge';\r\n\r\nclass ObjPushChallenge extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\trender() {\r\n\t\tconst {participation, isManager, pageChallengeDetail} = this.props;\r\n\t\tconst DayRemainingToDeclare = dayRemaining(participation.Challenge.Challenge_ToDeclareDate);\r\n\t\tconst DayRemainingToDispatch = dayRemaining(participation.Challenge.Challenge_ToDispatchDate);\r\n\t\t\r\n\t\treturn (\r\n\t\t\t<div className={`obj_challenge${this.state.active ? ' is-expanded' : ''} ${CONST_challengeStateTypes[participation.ParticipationStateType_Code].css}`}>\r\n\t\t\t\t{participation.ParticipationStateType_Code !== \"STATE_TYPE_IN_PROGRESS\" &&\r\n\t\t\t\t\t<div className=\"ctn_header-title\">\r\n\t\t\t\t\t\t<span>{participation.ParticipationStateType_Name}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t{(() => {switch (participation.ParticipationStateType_Code) {\r\n\t\t\t\t\t\t\tcase 'STATE_TYPE_TO_DECLARE' : return DayRemainingToDeclare > -1 &&\r\n\t\t\t\t\t\t\t\t<div className=\"obj_temps_restant\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_jours-restant\">\r\n\t\t\t\t\t\t\t\t\t\t{\tDayRemainingToDeclare===0\r\n\t\t\t\t\t\t\t\t\t\t\t?<p><strong>Dernier jour</strong></p>\r\n\t\t\t\t\t\t\t\t\t\t\t:<><span>{DayRemainingToDeclare}</span><p><strong>jours restants</strong> jusqu'au {strDateToFr(participation.Challenge.Challenge_ToDeclareDate)}</p></>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t{ \tDayRemainingToDeclare<=10\r\n\t\t\t\t\t\t\t\t\t\t? <div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_progress-bar-challenge var_attention\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ObjProgressBar pctProgress={dateProgression(participation.Challenge.Challenge_EndDate, participation.Challenge.Challenge_ToDeclareDate)}/>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_jours-restant-info\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p>Déclaration impossible une fois la date dépassée !</p>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t: <div className=\"obj_progress-bar-challenge\">\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjProgressBar pctProgress={dateProgression(participation.Challenge.Challenge_EndDate, participation.Challenge.Challenge_ToDeclareDate)}/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\tcase 'STATE_TYPE_TO_DISPATCH' : return DayRemainingToDispatch > -1 &&\r\n\t\t\t\t\t\t\t\t<div className=\"obj_temps_restant\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_jours-restant\">\r\n\t\t\t\t\t\t\t\t\t\t{\tDayRemainingToDispatch===0\r\n\t\t\t\t\t\t\t\t\t\t\t?<p><strong>Dernier jour</strong></p>\r\n\t\t\t\t\t\t\t\t\t\t\t:<><span>{DayRemainingToDispatch}</span><p><strong>jours restants</strong> jusqu'au {strDateToFr(participation.Challenge.Challenge_ToDispatchDate)}</p></>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t{ \tDayRemainingToDispatch<=10\r\n\t\t\t\t\t\t\t\t\t\t? <div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_progress-bar-challenge var_attention\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ObjProgressBar pctProgress={dateProgression(participation.Challenge.Challenge_ToDeclareDate, participation.Challenge.Challenge_ToDispatchDate)}/>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_jours-restant-info\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p>Répartition impossible une fois la date dépassée !</p>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t: <div className=\"obj_progress-bar-challenge\">\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjProgressBar pctProgress={dateProgression(participation.Challenge.Challenge_ToDeclareDate, participation.Challenge.Challenge_ToDispatchDate)}/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\tdefault : return <></>\r\n\t\t\t\t\t\t}})()}\r\n\r\n\t\t\t\t\t\t<p className=\"t_title\">{participation.Challenge.Challenge_Title}</p>\r\n\t\t\t\t\t\t<p className=\"t_date\">Du {strDateToFr(participation.Challenge.Challenge_StartDate)} au {strDateToFr(participation.Challenge.Challenge_EndDate)}</p>\r\n\r\n\t\t\t\t\t\t{isManager && (() => {switch (participation.ParticipationStateType_Code) {\r\n\t\t\t\t\t\t\tcase 'STATE_TYPE_TO_DISPATCH' : return <p className=\"t_desc\"><strong>{participation.Participation_Gain}€</strong> à répartir</p>\r\n\t\t\t\t\t\t\tcase 'STATE_TYPE_FINISHED' : return <p className=\"t_desc\"><strong>{participation.Participation_Gain}€</strong> remporté</p>\r\n\t\t\t\t\t\t\tdefault : return <></>\r\n\t\t\t\t\t\t}})()}\r\n\r\n {(() => {switch (participation.ParticipationStateType_Code) {\r\n case 'STATE_TYPE_TO_DECLARE' : return <a className=\"obj_btn_challenge\" href={`${pageChallengeDetail?.url}?id=${participation.Challenge.Challenge_Id}`}>\r\n {isManager?\"Déclarer\":\"Voir le détail\"}\r\n </a>\r\n case 'STATE_TYPE_TO_DISPATCH' : return <a className=\"obj_btn_challenge\" href={`${pageChallengeDetail?.url}?id=${participation.Challenge.Challenge_Id}`}>\r\n {isManager?\"Répartir\":\"Voir le détail\"}\r\n </a>\r\n case 'STATE_TYPE_FINISHED' : return isManager && <a className=\"obj_btn_challenge\" href={`${pageChallengeDetail?.url}?id=${participation.Challenge.Challenge_Id}`}>\r\n Voir le détail\r\n </a>\r\n default : return <a className=\"obj_btn_challenge\" href={`${pageChallengeDetail?.url}?id=${participation.Challenge.Challenge_Id}`}>\r\n Voir le détail\r\n </a>\r\n\t\t\t\t\t\t}})()}\r\n\r\n\t\t\t\t\t\t<button className=\"obj_btn_condition_challenge-detail\" onClick={ () => this.setState({active: !this.state.active}) }>\r\n\t\t\t\t\t\t\t<span>voir les Conditions du challenge</span>\r\n\t\t\t\t\t\t</button>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_conditions-expand\">\r\n\t\t\t\t\t\t\t<ObjConditionChallenge participation={participation} isManager={isManager} showProduct={false}/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div className=\"ctn_image\">\r\n\t\t\t\t\t\t<div className=\"ctn_visuel fade-in\">\r\n\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t<img src={urlToHost(participation.Challenge.Challenge_MediaUrl)} alt={participation.Challenge.Challenge_MediaAlt}/>\r\n\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_logo\">\r\n\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t<img src={urlToHost(participation.Challenge.Brand.Brand_LogoUrl)} alt={participation.Challenge.Brand.Brand_Name}/>\r\n\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjPushChallenge)","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport { strDateToFr } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nclass ObjAsideChallengeGains extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.tabYears = [new Date().getFullYear(), new Date().getFullYear()-1, new Date().getFullYear()-2]\r\n\t\tthis.state = {\r\n\t\t\tisReady: false,\r\n\t\t\tcurrent: 0,\r\n\t\t\tlength: null,\r\n\t\t}\r\n\t\tthis.showTab = this.showTab.bind(this)\r\n\t\tthis.setMaxHeight = this.setMaxHeight.bind(this)\r\n\t\tthis.handleKeyDown = this.handleKeyDown.bind(this)\r\n\t\tthis.goNextTab = this.goNextTab.bind(this)\r\n\t\tthis.goPrevTab = this.goPrevTab.bind(this)\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\tthis.setMaxHeight()\r\n\t\tthis.showTab(this.state.current)\r\n\t\tthis.navTabs.querySelectorAll('li').forEach(element => element.querySelector('button').blur())\r\n\t\tthis.setState({\r\n\t\t\tlength: this.navTabs.querySelectorAll('li').length\r\n\t\t})\r\n\t}\r\n\tswitchTab(e){\r\n\t\tvar tabsList = Array.prototype.slice.call(this.navTabs.children)\r\n \tvar currentTab = e.currentTarget.parentElement\r\n \tvar currentIndex = tabsList.indexOf(currentTab)\r\n\t\tthis.setState({\r\n\t\t\tcurrent: currentIndex,\r\n\t\t}, () => {this.showTab(this.state.current);})\r\n\t}\r\n\tshowTab(index){\r\n\t\tthis.navTabs.querySelectorAll('li').forEach(element => {\r\n\t\t\telement.querySelector('button').classList.remove('active')\r\n\t\t\telement.querySelector('button').blur()\r\n\t\t\telement.querySelector('button').setAttribute('aria-selected', false)\r\n\t\t\telement.querySelector('button').setAttribute('tabindex', -1)\r\n\t\t})\r\n\t\tthis.navTabs.children[index].querySelector('button').classList.add('active')\r\n\t\tthis.navTabs.children[index].querySelector('button').focus()\r\n\t\tthis.navTabs.children[index].querySelector('button').setAttribute('aria-selected', true)\r\n\t\tthis.navTabs.children[index].querySelector('button').setAttribute('tabindex', 0)\r\n\t\tthis.ctnTabs.querySelectorAll('.tab-panel').forEach(element => { \r\n\t\t\telement.classList.remove('fade-in')\r\n\t\t\telement.classList.remove('active') \r\n\t\t})\r\n\t\tthis.ctnTabs.children[index].classList.add('fade-in')\r\n\t\tthis.ctnTabs.children[index].classList.add('active')\r\n\t}\r\n\tgoNextTab() {\r\n\t\tthis.setState({\r\n\t\t\tcurrent: (this.state.current + 1) >= this.state.length ? 0 : this.state.current + 1\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tgoPrevTab() {\r\n\t\tthis.setState({\r\n\t\t\tcurrent: this.state.current <= 0 ? this.state.length - 1 : this.state.current - 1\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tsetMaxHeight(){\r\n\t\tvar maxHeight = 0\r\n\t\tthis.ctnTabs.querySelectorAll('.tab-panel').forEach(element => {\r\n\t\t\tif (element.offsetHeight > maxHeight) maxHeight = element.offsetHeight\r\n\t\t})\r\n\t\tthis.setState({ isReady: true })\r\n\t}\r\n\thandleKeyDown(e){\r\n\t\te.key === 'ArrowRight' && this.goNextTab()\r\n\t\te.key === 'ArrowLeft' && this.goPrevTab()\r\n\t}\r\n\thandleFocus(){\r\n\t\twindow.addEventListener('keydown', this.handleKeyDown)\r\n\t}\r\n\thandleBlur(){\r\n\t\twindow.removeEventListener('keydown', this.handleKeyDown)\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className={`obj_table-gains${this.state.activeMenuGain ? ' is-expanded' : ''}`}>\r\n\t\t\t\t<div className=\"obj_table-gains-header\">\r\n\t\t\t\t\t<h3 className=\"t_title\">Mes Gains cumulés {this.tabYears[this.state.current]}</h3>\r\n\t\t\t\t\t<button className={`obj_table-gains-detail${this.state.activeMenuGain ? ' is-expanded' : ''}`} onClick={ () => this.setState({activeMenuGain: !this.state.activeMenuGain}) }>\r\n\t\t\t\t\t\t<span>voir le Détail des gains</span>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<div className=\"obj_table-gains-total\">\r\n\t\t\t\t\t\t{this.props.user[\"Repartitions\"+this.tabYears[this.state.current]].reduce((sum, item) => sum + item.Repartition_ValueRaw, 0)}\r\n\t\t\t\t\t\t<sup>€</sup>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className={`obj_table-gains-content${this.state.isReady ? ' is-ready' : ''}`}>\r\n\t\t\t\t\t<ul ref={ref => (this.navTabs = ref)} className=\"obj_tabs-list-gains\" role=\"tablist\">\r\n\t\t\t\t\t\t{this.tabYears.map((year, index) => (\r\n\t\t\t\t\t\t\t<li key={`onglet-${index + 1}`}>\r\n\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\tclassName=\"btn_tab_year_gain\"\r\n\t\t\t\t\t\t\t\t\trole=\"tab\"\r\n\t\t\t\t\t\t\t\t\tid={`onglet-${index + 1}`}\r\n\t\t\t\t\t\t\t\t\ttabIndex={index === 0 ? 0 : -1}\r\n\t\t\t\t\t\t\t\t\taria-selected={index === 0}\r\n\t\t\t\t\t\t\t\t\taria-controls={`panneau-${index + 1}`}\r\n\t\t\t\t\t\t\t\t\tonClick={(e) => this.switchTab(e)}\r\n\t\t\t\t\t\t\t\t\tonFocus={() => this.handleFocus()}\r\n\t\t\t\t\t\t\t\t\tonBlur={() => this.handleBlur()}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{year}\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t<div className=\"obj_table-list-gains tab-panels\">\r\n\t\t\t\t\t\t<div className=\"ctn_gains_panels\" ref={ref => (this.ctnTabs = ref)}>\r\n\t\t\t\t\t\t\t{this.tabYears.map((year, index) => (\r\n\t\t\t\t\t\t\t\t<div key={index} className=\"tab-panel fade-in\" role=\"tabpanel\" id={`panneau-${index + 1}`} aria-labelledby=\"onglet-1\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t\t{\t(this.props.user[\"Repartitions\"+year].length > 0)\r\n\t\t\t\t\t\t\t\t\t\t?this.props.user[\"Repartitions\"+year].map((repartition, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<div key={index} className=\"obj_table-item-gains\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_date\">{strDateToFr(repartition.Repartition_GainDate)}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\">{repartition.Challenge_Title}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_desc\">{repartition.Brand_Name}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"t_total\">{repartition.Repartition_ValueRaw}<sup>€</sup></span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t\t:<div className=\"obj_table-item-gains is_empty\">\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\">Aucun gain remporté.</p>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_desc\">Vous n'avez pas remporté de gain de challenge sur la période sélectionnée.</p>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjAsideChallengeGains)","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport { throttle, isMobile, isNotAtTop } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { getApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport ObjPushChallenge from '../ObjChallenge/ObjPushChallenge';\r\nimport ObjAsideChallengeGains from './ObjAsideChallengeGains';\r\n\r\nclass PageChallenges extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t\tpushsToShow: 5,\r\n\t\t\tpushsInterval: 3,\r\n\t\t\tshowMoreText: \"Plus de challenges\",\r\n\t\t\tapiDatas:[],\r\n\t\t\tactiveBrands:[],\r\n\t\t\tactiveStatuts:[],\r\n\t\t\tparticipationsFiltered:[],\r\n\t\t}\r\n\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n \tthis.handleWindowScrollMainHeader = this.handleWindowScrollMainHeader.bind(this)\r\n\t\tthis.throttleWindowScrollMainHeader = throttle(this.handleWindowScrollMainHeader, 200)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Challenge/GetDataPageChallenge`)\r\n\t\t.then((apiDatas) => {\r\n\t\t\tthis.setState({ apiDatas:apiDatas })\r\n\t\t\tif(apiDatas.Participations){ this.filterReset() }\r\n\t\t})\r\n\r\n\t\tdocument.body.classList.add('pg_challenge')\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t\twindow.addEventListener('scroll', this.throttleWindowScrollMainHeader)\r\n\t\twindow.scrollTo(0,0)\r\n \t}\r\n \tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove('pg_challenge')\r\n\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t\twindow.removeEventListener('scroll', this.throttleWindowScrollMainHeader)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\thandleWindowScrollMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tmodeMini: isNotAtTop()\r\n\t\t})\r\n\t}\r\n\tshowMorePushs = () => {\r\n\t\tthis.setState(prevState => ({\r\n\t\t\tpushsToShow: prevState.pushsToShow + this.state.pushsInterval\r\n\t\t}))\r\n\t}\r\n\tfilterStatut = (statusCode) => {\r\n\t\tconst index = this.state.activeStatuts.indexOf(statusCode);\r\n\t\tlet newActiveStatuts = this.state.activeStatuts;\r\n\t\tif (index === -1) {\r\n\t\t\tnewActiveStatuts.push(statusCode);\r\n\t\t} else {\r\n\t\t\tnewActiveStatuts.splice(index, 1);\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tactiveStatuts: newActiveStatuts,\r\n\t\t}, function() {\r\n\t\t\tthis.filterChallenges();\r\n\t\t})\r\n\t}\r\n\tfilterBrand = (brandCode) => {\r\n\t\tconst index = this.state.activeBrands.indexOf(brandCode);\r\n\t\tlet newActiveBrands = this.state.activeBrands;\r\n\t\tif (index === -1) {\r\n\t\t\tnewActiveBrands.push(brandCode);\r\n\t\t} else {\r\n\t\t\tnewActiveBrands.splice(index, 1);\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tactiveBrands: newActiveBrands,\r\n\t\t}, function() {\r\n\t\t\tthis.filterChallenges();\r\n\t\t})\r\n\t}\r\n\tfilterReset = () => {\r\n\t\tthis.setState({\r\n\t\t\tactiveStatuts: [ \"STATE_TYPE_TO_DECLARE\", \"STATE_TYPE_TO_DISPATCH\", \"STATE_TYPE_IN_PROGRESS\" ],\r\n\t\t\tactiveBrands: [],\r\n\t\t}, function() {\r\n\t\t\tthis.filterChallenges();\r\n\t\t})\r\n\t}\r\n\tfilterChallenges(){\r\n\t\tthis.setState({\r\n\t\t\tpushsToShow:5,\r\n\t\t\tparticipationsFiltered:this.state.apiDatas.Participations\r\n\t\t\t\t.filter((part) => {return this.state.activeStatuts.length < 1 || this.state.activeStatuts.includes(part.ParticipationStateType_Code);})\r\n\t\t\t\t.filter((part) => {return this.state.activeBrands.length < 1 || this.state.activeBrands.includes(part.Challenge.Brand.Brand_Code);})\r\n\t\t})\r\n\t}\r\n\trender() {\r\n\t\tconst apiDatas = this.state.apiDatas\r\n\t\tconst { PageChallengeDetail } = this.props.fields.data;\r\n\r\n\t\treturn (<>\r\n\t\t\t<section className=\"obj_section section_challenges\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t<h1 className=\"t_title\">Challenges</h1>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t<section className=\"ctn_filter\">\r\n\t\t\t\t\t\t\t{ \t!this.state.isMobile \r\n\t\t\t\t\t\t\t\t?<div className=\"obj_filter-challenge\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_filters_header\">\r\n\t\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">Filtre(s)</h3>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_remove-filter\">\r\n\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_header_exp\" onClick={() => this.filterReset()}>Tout réinitialiser</button>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t{apiDatas.States &&\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par statut</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.States.map((statut, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={statut.ParticipationStateType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={statut.ParticipationStateType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={statut.ParticipationStateType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => this.filterStatut(statut.ParticipationStateType_Code)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.activeStatuts.indexOf(statut.ParticipationStateType_Code) > -1}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={statut.ParticipationStateType_Code}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{statut.ParticipationStateType_Name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t{apiDatas.Brands &&\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par marque</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.Brands.map((brand, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => this.filterBrand(brand.Brand_Code)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.activeBrands.indexOf(brand.Brand_Code) > -1}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={brand.Brand_Code}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{brand.Brand_Name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t:<>\r\n\t\t\t\t\t\t\t\t\t<div className={`obj_filter-challenge${this.state.active ? ' is-expanded' : ''}`}>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filters_header\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">Filtrer</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_remove-filter\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_header_exp\" onClick={() => this.filterReset()}>Tout réinitialiser</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t\t\t{apiDatas.States && \r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par statut</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.States.map((statut, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={statut.ParticipationStateType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={statut.ParticipationStateType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={statut.ParticipationStateType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => this.filterStatut(statut.ParticipationStateType_Code)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.activeStatuts.indexOf(statut.ParticipationStateType_Code) > -1}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={statut.ParticipationStateType_Code}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{statut.ParticipationStateType_Name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t{apiDatas.Brands && \r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par marque</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.Brands.map((brand, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => this.filterBrand(brand.Brand_Code)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.activeBrands.indexOf(brand.Brand_Code) > -1}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={brand.Brand_Code}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{brand.Brand_Name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-challenge-menu\">\r\n\t\t\t\t\t\t\t\t\t\t<button className=\"obj_btn_filter-challenge\" onClick={ () => this.setState({active: !this.state.active}) }>\r\n\t\t\t\t\t\t\t\t\t\t\t{/* <!-- is-expanded --> */}\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t\t<section className=\"ctn_list_challenge\">\r\n\t\t\t\t\t\t\t{\t!apiDatas.Participations\r\n\t\t\t\t\t\t\t\t//API non chargée\r\n\t\t\t\t\t\t\t\t?<div className=\"obj_challenge is_empty\"/>\r\n\t\t\t\t\t\t\t\t:\tapiDatas.Participations.length<1\r\n\t\t\t\t\t\t\t\t\t//pas de participations par l'API\r\n\t\t\t\t\t\t\t\t\t?<div className=\"obj_challenge is_empty\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\" dangerouslySetInnerHTML={{__html: \"Votre équipe L'Oréal<br /> Beauté Dermatologique<br /> prépare avec soin vos<br /> prochains événements<br /><br />A très vite !\"}} />\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_background\">\r\n\t\t\t\t\t\t\t\t\t\t\t<source srcSet={require('../../assets/images/v_empty_challenge_list_mob.jpg')} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t\t<img src={require('../../assets/images/v_empty_challenge_list.jpg')} alt=\"\"/>\r\n\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t:\tthis.state.participationsFiltered.length < 1\r\n\t\t\t\t\t\t\t\t\t\t//pas de participations par le filtrage\r\n\t\t\t\t\t\t\t\t\t\t?<div className=\"obj_challenge is_empty\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\" dangerouslySetInnerHTML={{__html: \"Aucun résultat\"}} />\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_background\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<source srcSet={require('../../assets/images/v_empty_challenge_list_mob.jpg')} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src={require('../../assets/images/v_empty_challenge_list.jpg')} alt=\"\"/>\r\n\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t//liste filtrée\r\n\t\t\t\t\t\t\t\t\t\t:<>\r\n\t\t\t\t\t\t\t\t\t\t\t{this.state.participationsFiltered.slice(0, this.state.pushsToShow).map((participation, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ObjPushChallenge key={index} participation={participation} isManager={apiDatas.User.ChallengeManager} pageChallengeDetail={PageChallengeDetail} />\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t{this.state.participationsFiltered.length > this.state.pushsToShow && \r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"button\" onClick={() => this.showMorePushs()}>{this.state.showMoreText}</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t\t<section className=\"ctn_aside\">\r\n\t\t\t\t\t\t\t{apiDatas.User &&\r\n\t\t\t\t\t\t\t\t<ObjAsideChallengeGains user={apiDatas.User}/>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</section>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(PageChallenges)","import React, { Component } from 'react'\r\nimport { Image, RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport LazyLoad from 'react-lazyload'\r\nimport { withTranslation } from 'react-i18next';\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\" \r\nimport Moment from 'react-moment'; \r\n// eslint-disable-next-line\r\nimport localization from 'moment/locale/fr' //Import nécessaire en lien avec Moment.globalLocale\r\n\r\nclass ObjPushArticle extends Component {\r\n constructor(props) {\r\n\t\tsuper(props)\r\n Moment.globalLocale = 'fr'; \r\n\t}\r\n\trender() {\r\n\t\tconst { pushArticleItem, PushOnTitle, PushShowComment, PushCTAFull } = this.props \r\n \r\n\t\treturn ( \r\n\t\t\t<>\r\n\t\t\t{pushArticleItem ? \r\n <article className={`obj_push-article fade-in ${PushShowComment ? ' var_comment' : ''}\r\n ${pushArticleItem.getbrand.brandCssClass.value}`}>\r\n\r\n\t\t\t\t<div className=\"ctn_push-article\">\r\n\t\t\t\t\t<figure className=\"ctn_img\">\r\n\t\t\t\t\t\t<a href={pushArticleItem.url}>\r\n\t\t\t\t\t\t\t<LazyLoad>\r\n <Image className=\"fade-in\" field={pushArticleItem.pageImageHome && pushArticleItem.pageImageHome.jss} />\r\n\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</figure>\r\n\t\t\t\t\t<div className=\"ctn_text\">\r\n {PushOnTitle === \"\" ?\r\n <Text field={pushArticleItem.getbrand.pageTitle.jss} tag=\"h3\" />\r\n :\r\n <h3>{PushOnTitle}</h3>\r\n }\r\n <Text field={pushArticleItem.pageTitle && pushArticleItem.pageTitle.jss} tag=\"h2\" />\r\n\t\t\t\t\t\t{pushArticleItem.articleAuthor && pushArticleItem.articleAuthor.jss && pushArticleItem.articleAuthor.jss.value !== \"\" && \r\n\t\t\t\t\t\t\t<p className=\"t_author-date\"><strong>\r\n \t{this.props.t('ArticlePar')} <Text field={pushArticleItem.articleAuthor.jss} /></strong>, {this.props.t('ArticleLe')} {pushArticleItem.articleDate.formattedDateValue}\r\n </p>\r\n\t\t\t\t\t\t}\r\n <RichText className=\"t_main\" field={pushArticleItem.abstract && pushArticleItem.abstract.jss} tag=\"p\" />\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t<a className={`${PushCTAFull ? 'obj_cta' : 'obj_cta-txt'}`} href={pushArticleItem.url}>\r\n {this.props.t('ArticleLireLaSuite')}\r\n </a>\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t<ul className=\"obj_likes-comments\">\r\n\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t<IconSVG icon=\"heart\" width=\"19\" height=\"16\" />\r\n\t\t\t\t\t\t\t\t{pushArticleItem.likes && pushArticleItem.likes.numberValue ? pushArticleItem.likes.numberValue : 0} <span>{this.props.t('ArticleLike')}</span>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t{pushArticleItem.userCanAddReviews && pushArticleItem.userCanAddReviews.boolValue &&\r\n\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t<IconSVG icon=\"dialog\" width=\"20\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t{pushArticleItem.reviewsCount} <span>{pushArticleItem.reviewsCount > 2 ?this.props.t('ArticleCommentaires') : this.props.t('ArticleCommentaire') }</span>\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t{ PushShowComment && pushArticleItem.reviews && pushArticleItem.reviews.length > 0 &&\r\n\t\t\t\t\t<div className=\"obj_comment-list\">\r\n\t\t\t\t\t\t<h4>{this.props.t('ArticleDerniersCommentaires')}</h4>\r\n\t\t\t\t\t\t{ pushArticleItem.reviews.slice(0, 4).map((commentItem, index) => (\r\n\t\t\t\t\t\t\t<div key={index} className=\"ctn_comment-row\">\r\n\t\t\t\t\t\t\t\t<figure className=\"ctn_avatar\">\r\n\t\t\t\t\t\t\t\t\t{commentItem.reviewsFOU.userimg ?\r\n\t\t\t\t\t\t\t\t\t\t<img src={commentItem.reviewsFOU.userimg} alt={commentItem.reviewsFOU.firstname + \" \" + commentItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar.png\")} alt={commentItem.reviewsFOU.firstname + \" \" + commentItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_comment\">\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_name-time\">\r\n\t\t\t\t\t\t\t\t\t\t<strong>{commentItem.reviewsFOU.firstname + \" \" + commentItem.reviewsFOU.lastname}</strong> <Moment fromNow>{commentItem.creationDate.jss.value}</Moment>\r\n {/*{this.props.t('ArticleLe')} <Text field={commentItem.creationDate.jss} /> */}\r\n </p>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_main\">\r\n <Text field={commentItem.comment.jss} />\r\n </p>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t<a className=\"obj_cta\" href={pushArticleItem.url}>\r\n {this.props.t('ArticleJeParticipe')}\r\n </a>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</article>\r\n\t\t\t:\r\n\t\t\t<div>Error loading : ObjPushArticle - {PushOnTitle}</div>\r\n\t\t\t}\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\n\r\nexport default withTranslation()(ObjPushArticle);","import React, { Component } from 'react'\r\nimport LazyLoad from 'react-lazyload'\r\nimport { withSitecoreContext, Image, RichText, Text, Link } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { ConditionalWrapper } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nclass ObjPushCustomFull extends Component {\r\n\trender() {\r\n\t\tconst { pushContent } = this.props;\r\n\t\treturn (\r\n\t\t\tthis.props.fields || pushContent \r\n\t\t\t? <article className={`obj_push-custom var_full${\r\n\t\t\t\tthis.props.fields ? (this.props.fields[\"Dark mode\"].value ? ' var_dark' : '') : (pushContent && pushContent.darkMode.boolValue ? ' var_dark ' : '')}${\r\n\t\t\t\tthis.props.fields ? (this.props.fields[\"Push width\"].value ? ' var_' + this.props.fields[\"Push width\"].value : '') : (pushContent && pushContent.pushWidth.value ? ' var_' + pushContent.pushWidth.value : '')}${\r\n\t\t\t\tthis.props.fields ? (this.props.fields[\"Push Align\"].value ? ' var_' + this.props.fields[\"Push Align\"].value : '') : (pushContent && pushContent.pushAlign.value ? ' var_' + pushContent.pushAlign.value : '')}${\r\n\t\t\t\tthis.props.fields ? (this.props.fields[\"Push Custom\"].value ? ' var_' + this.props.fields[\"Push Custom\"].value : '') : ''}`}>\r\n\t\t\t\t<ConditionalWrapper \r\n\t\t\t\t\tcondition={this.props.fields ? (this.props.fields[\"Push url\"] && this.props.fields[\"Push url\"].value && this.props.fields[\"Push url\"].value.href !==\"\") : (pushContent && pushContent.pushUrl.value && pushContent.pushUrl.value !==\"\" )}\r\n\t\t\t\t\twrapper={children => \r\n\t\t\t\t\t<Link field={this.props.fields ? (this.props.fields[\"Push url\"].value) : (pushContent && pushContent.pushUrl.value && pushContent.pushUrl.jss )}>\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t<Text className={`obj_cta${this.props.fields ? (this.props.fields[\"Dark mode\"].value ? ' reverse' : '') : (pushContent && pushContent.darkMode.boolValue ? ' reverse' : '')}`} \r\n\t\t\t\t\t\t\t\tfield={this.props.fields ? (this.props.fields[\"Push CTA\"]) : (pushContent ? pushContent.pushCTA.jss : \"\")} tag=\"div\"/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</Link>}>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t<RichText field={this.props.fields ? this.props.fields[\"Push before title\"] : (pushContent.pushBeforeTitle ? pushContent.pushBeforeTitle.jss : {})} tag=\"h4\"/>\r\n\t\t\t\t\t\t<RichText field={this.props.fields ? this.props.fields[\"Push title\"] : (pushContent.pushTitle ? pushContent.pushTitle.jss : {})} tag=\"h2\"/>\r\n\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t\t\t<source srcSet={this.props.fields ? this.props.fields[\"Image title\"].value.src : (pushContent && pushContent.imageTitle ? pushContent.imageTitle.jss.value.src : \"\")} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t<Image media={this.props.fields ? this.props.fields[\"Image title\"].value : (pushContent && pushContent.imageTitle ? pushContent.imageTitle.jss : \"\")}/>\r\n\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t<RichText field={this.props.fields ? this.props.fields[\"Push subtitle\"] : (pushContent.pushSubtitle ? pushContent.pushSubtitle.jss : {})} tag=\"h3\"/>\r\n\t\t\t\t\t\t<RichText field={this.props.fields ? this.props.fields[\"Push content\"] : (pushContent.pushContent ? pushContent.pushContent.jss : {})} tag=\"p\" />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t\t<source srcSet={this.props.fields ? this.props.fields[\"Image mobile\"].value.src : (pushContent ? pushContent.imageMobile.jss.value.src : \"\")} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t<Image media={this.props.fields ? this.props.fields[\"Image\"].value : (pushContent ? pushContent.image.jss : \"\")}/>\r\n\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t</figure>\r\n\t\t\t\t</ConditionalWrapper>\r\n\t\t\t</article>\r\n\t\t\t: \"ObjPushCustomFull : \" + this.props.t('NoContentToMap')\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjPushCustomFull));","import React, { Component } from 'react' \r\nimport { Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react' \r\nimport { withTranslation } from 'react-i18next';\r\nimport ObjPushArticle from '../AllPages/ObjPushArticle';\r\nimport ObjPushCustomFull from '../AllPages/ObjPushCustomFull';\r\n \r\nclass PageConcoursHome extends Component {\r\n constructor(){\r\n\t\tsuper()\r\n\t\tthis.state = { \r\n\t\t\tpushsFullToShow: 5,\r\n\t\t\tpushsFullInterval: 5,\r\n\t\t\tpushsArticleToShow: 5,\r\n\t\t\tpushsArticleInterval: 5\r\n\t\t}\r\n\t}\r\n componentDidMount(){\r\n\t\tthis.switchTab(0)\r\n\t}\r\n\tswitchTab(index){\r\n\t\tvar $listItem = document.querySelectorAll(\".ctn_nav-tabs li\"),\r\n\t\t\t$tabItem = document.querySelectorAll(\".obj_tabs-list .ctn_row\")\r\n\r\n\t\t$listItem.forEach(listItem => listItem.classList.remove(\"active\"))\r\n\t\t$listItem[index].classList.add(\"active\")\r\n\t\t$tabItem.forEach(tabItem => tabItem.classList.remove(\"active\", \"fade-in\"))\r\n\t\t$tabItem[index].classList.add(\"active\", \"fade-in\")\r\n\r\n\t\twindow.dispatchEvent(new Event('scroll'))\r\n\t}\r\n\tshowMorePushsArticle(){\r\n\t\tthis.setState(prevState => ({\r\n\t\t\tpushsArticleToShow: prevState.pushsArticleToShow + this.state.pushsArticleInterval\r\n\t\t}))\r\n\t}\r\n\tshowMorePushsFull(){\r\n\t\tthis.setState(prevState => ({\r\n\t\t\tpushsFullToShow: prevState.pushsFullToShow + this.state.pushsFullInterval\r\n\t\t}))\r\n\t}\r\n\trender() {\r\n\r\n\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\tconst { item } = this.props.fields.data; \r\n\t\r\n\tvar oLstpushContest;\r\n\tvar oLstpushResult;\r\n\tif(item && item.children && item.children.length > 0){\r\n\t\titem.children.forEach(Folder =>{\r\n\t\t\tif(Folder.name === \"__ContentForContest\"){\r\n\t\t\t\toLstpushContest = Folder.LstPush;\r\n\t\t\t}\r\n\t\t\tif(Folder.name === \"__ContentForResults\"){\r\n\t\t\t\toLstpushResult = Folder.LstPush;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n \r\n\treturn (\r\n\t\t<>\r\n\t\t\t<div className=\"obj_badge-elite\">\r\n\t\t\t\t<img src=\"images/v_badge-elite_lrp.png\" alt=\"Élite\"/>\r\n\t\t\t</div>\r\n\r\n\t\t\t{ oCurrentItemFields && <Text className=\"obj_title-big\" field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text> }\r\n\r\n\t\t\t<section className=\"section_page-liste\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<div className=\"obj_tabs-list\">\r\n\r\n\t\t\t\t\t\t<ul className=\"ctn_nav-tabs\">\r\n\t\t\t\t\t\t\t{oLstpushContest.length > 0 && \r\n\t\t\t\t\t\t\t<li><button type=\"button\" onClick={() => this.switchTab(0)}>{this.props.t('ConcoursChallenge')}</button></li>}\r\n\t\t\t\t\t\t\t{oLstpushResult.length > 0 && \r\n\t\t\t\t\t\t\t<li><button type=\"button\" onClick={() => this.switchTab(1)}>{this.props.t('ResultatsDesConcours')}</button></li>}\r\n\t\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t\t<section className=\"ctn_row\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_sub-row\">\r\n\r\n\t\t\t\t\t\t\t{ oLstpushContest && oLstpushContest.slice(0, this.state.pushsArticleToShow).map((pushItem, index) => {\r\n\t\t\t\t\t\t\t\treturn(\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{(pushItem.template.id === \"A69E5AB47261487982639393B758E9F8\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjPushCustomFull pushContent={pushItem} key={index} /> }\r\n\r\n\t\t\t\t\t\t\t\t\t\t{(pushItem.template.id === \"E31C15C8231947B0942E65ABE8F75C72\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjPushArticle PushOnTitle={pushItem.pushTitle.value} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPushShowComment={pushItem.pushShowReviews.boolValue} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpushArticleItem={pushItem.pushArticle.articles[0] }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPushCTAFull={true} key={index} />}\r\n\t\t\t\t\t\t\t\t\t</> \r\n\t\t\t\t\t\t\t\t\t)} \r\n\t\t\t\t\t\t\t)}\r\n \r\n\t\t\t\t\t\t\t{(oLstpushContest && oLstpushContest.length > this.state.pushsArticleToShow) && (\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"button\" onClick={() => this.showMorePushsArticle()}>{this.props.t('AfficherPlusSujets')}</button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t\t<section className=\"ctn_row\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_sub-row\">\r\n \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{ oLstpushResult && oLstpushResult.slice(0, this.state.pushsFullToShow).map((pushItem, index) => {\r\n\t\t\t\t\t\t\t\treturn(\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{(pushItem.template.id === \"A69E5AB47261487982639393B758E9F8\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjPushCustomFull pushContent={pushItem} key={index} /> }\r\n\r\n\t\t\t\t\t\t\t\t\t\t{(pushItem.template.id === \"E31C15C8231947B0942E65ABE8F75C72\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjPushArticle PushOnTitle={pushItem.pushTitle.value} PushShowComment={pushItem.pushShowReviews.boolValue} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpushArticleItem={pushItem.pushArticle.articles[0] }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPushCTAFull={true} key={index} />}\r\n\t\t\t\t\t\t\t\t\t</> \r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t{(oLstpushResult && oLstpushResult.length > this.state.pushsFullToShow) && (\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"button\" onClick={() => this.showMorePushsFull()}>{this.props.t('AfficherPlusSujets')}</button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageConcoursHome));","import { isAppMobile } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nexport async function PushDataLayerUserId(sUserId) {\r\n\t\r\n\ttry {\r\n\t\tif (typeof window === 'undefined') \r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif(sUserId !== undefined){\r\n\t\t\twindow.dataLayer = window.dataLayer || [];\r\n\t\t\twindow.dataLayer.push({\r\n\t\t\t\t'uiUser': sUserId\r\n\t\t\t});\t\r\n\t\t\t\r\n\t\t\treturn true;\r\n\t\t}\r\n\t} \r\n\tcatch (error) {\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\treturn false;\r\n}\r\n\r\nasync function textToSha256Text(message) {\r\n\tconst msgBuffer = new TextEncoder().encode(message); // convertir la chaîne en buffer\r\n\tconst hashBuffer = await crypto.subtle.digest(\"SHA-256\", msgBuffer); // générer le hachage SHA256\r\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer)); // convertir le buffer en tableau d'octets\r\n\tconst hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); // convertir le tableau en chaîne hexadécimale\r\n\treturn hashHex;\r\n}\r\n\r\n//YFL : La fonction reverse() ne marche pas test\r\nfunction reverseArray(arr) {\r\n\tvar newArray = [];\r\n\tfor (var i = arr.length - 1; i >= 0; i--) {\r\n\t\tnewArray.push(arr[i]);\r\n\t}\r\n\treturn newArray;\r\n}\r\n\r\nexport async function getGA4WindowDatas(dataUser, dataPageInfo, dataBreadCrumb){\r\n\tvar pageCategory = \"\"\r\n if(dataPageInfo){\r\n pageCategory = dataPageInfo.trackingCategory.jss.value;\r\n }\r\n\tif(!pageCategory && dataBreadCrumb?.ancestors){\r\n\t\t//voir le fichier de taggage pour les valeurs\r\n\t\tconst TemplateToPageCategory = {\r\n\t\t\t'Login page': 'authentication',\r\n\t\t\t'Register Page': 'register',\r\n\t\t\t'Expired Confirmation Page': 'expired confirmation',\r\n\t\t\t'New Password Page': 'new password',\r\n\t\t\t'Request Password Page': 'forgot password',\r\n\t\t\t'MonCompte Page': 'my account',\r\n\t\t\t'MesInformationsPersonnelles Page': 'my personal info',\r\n\t\t\t'Contact Page C': 'contact',\r\n\t\t\t'Contact Page NC': 'contact',\r\n\t\t\t'Mentions Page': 'Mentions',\r\n\t\t\t'Error Page': 'error',\r\n\t\t\t'Home Page': 'homepage',\r\n\t\t\t'Brands Page': 'all brands',\r\n\t\t\t'Brand Page': 'brand',\r\n\t\t\t'Brand Article Page': 'article',\r\n\t\t\t'PageArticle': 'article',\r\n\t\t\t'PageSegments': 'segment',\r\n\t\t\t'ProductRanges': 'range',\r\n\t\t\t'ProductSegments': 'product list',\r\n\t\t\t'Product Page': 'product',\r\n\t\t\t'Training Page': 'formation',\r\n\t\t\t'Trainings': 'training list first range trainings',\r\n\t\t\t//'Trainings': 'training list other trainings',\t//utilisé localement à la page trainings\r\n\t\t\t'Concours Page': 'contest list',\r\n\t\t\t'Privilege Page New Version': 'private',\r\n\t\t\t'Privilege Page': 'private',\r\n\t\t\t'PageIndex': 'PageIndex',\r\n\t\t\t'PageListe': 'PageSubList',\r\n\t\t\t'PageSubListe': 'PageSubList',\r\n\t\t\t'Ingredient List Page': 'ingredient list',\r\n\t\t\t'Ingredient Page': 'ingredient page',\r\n\t\t}\r\n\t\tpageCategory = TemplateToPageCategory.hasOwnProperty(dataBreadCrumb.ancestors[0].template.name)?TemplateToPageCategory[dataBreadCrumb.ancestors[0].template.name]:'';\r\n\t}\r\n\r\n\t//source optionnelle suivant la page\r\n\tconst SourceSegment = (dataBreadCrumb?.ancestors)?dataBreadCrumb.ancestors.find(i => i.template.name==='ProductSegments'):undefined;\r\n\tconst SourceRange = (dataBreadCrumb?.ancestors)?dataBreadCrumb.ancestors.find(i => i.template.name==='ProductRanges'):undefined;\r\n\tconst SourceProduct = (dataBreadCrumb?.ancestors)?dataBreadCrumb.ancestors.find(i => i.template.name==='Product Page'):undefined;\r\n\tconst SourceBreadCrumbReverseAncestors = (dataBreadCrumb?.ancestors)?reverseArray(dataBreadCrumb.ancestors):undefined;\r\n\r\n\treturn {\r\n\t\t// user_data.uiUser : Id utilisateur généré lors de la création du compte\r\n\t\t'uiUser' : dataUser?dataUser.userkey:''\r\n\t\t// user_data.uiEmailId : Email hash généré quand il n'est pas possible de générer un id\r\n\t\t, 'uiEmailId' : dataUser?(await textToSha256Text(dataUser.email)):''\r\n\t\t// user_data.uiLoggedStatus : Statut du visiteur : logged ou not logged\t\t\t\t\r\n\t\t, 'uiLoggedStatus' : dataUser?'logged':'not logged'\r\n\r\n\t\t//URL complet de la page de provenance\r\n\t\t,'referrer' : window.document.baseURI\r\n\t\t// Type/template de page\r\n\t\t,'pageCategory' : pageCategory\r\n\t\t// Indique le niveau 1 de l'écran\r\n\t\t,'category' : (pageCategory===\"homepage\")?\"accueil\":((SourceBreadCrumbReverseAncestors && SourceBreadCrumbReverseAncestors.length > 1)?SourceBreadCrumbReverseAncestors[1].name:'')\r\n\t\t// Indiquer le niveau 2 de l'écran \r\n\t\t,'subCategory' : (SourceBreadCrumbReverseAncestors && SourceBreadCrumbReverseAncestors.length > 2)?SourceBreadCrumbReverseAncestors[2].name:''\r\n\t\t// Indiquer le type de website : main, mini site, testing, app\r\n\t\t,'siteTypeLevel' : ( process.env.NODE_ENV !== \"production\" || window.document.baseURI.includes('.dev.') || window.document.baseURI.includes('.test.') || window.document.baseURI.includes('https://cm-'))?'testing':'main'\r\n\t\t// Langue de la page. ISO 639-1\r\n\t\t,'language' : 'fr'\t\t\t\r\n\t\t// Pays. ISO 3166\r\n\t\t,'country' : 'fr'\t\t\t\r\n\t\t// Indiquer l'abbréviation de la marque parmi la liste suivante :LRP, CER, VIC, SKIN, SAN, DEC, BIO, MED, DER\r\n\t\t,'brand' : (dataPageInfo?.getbrand)?dataPageInfo.getbrand.codeAbbrege.value:''\r\n\t\t// Equivalent du fil d'Ariane\r\n\t\t,'breadcrumb' : (SourceBreadCrumbReverseAncestors)?SourceBreadCrumbReverseAncestors.map((oBreadCrumbItem) => (oBreadCrumbItem.pageTitle?.jss?.value.replace( /(<([^>]+)>)/ig, ''))?oBreadCrumbItem.name:'').join(\" > \"):''\r\n\t\t// Méthode de connexion, social ou regular => regular\r\n\t\t,'method' : 'regular'\r\n\t\t// Catégorie du produit\r\n\t\t,'productCategory' : (SourceSegment)?SourceSegment.name:''\r\n\t\t// Gamme du produit\r\n\t\t,'productRange' : (SourceRange)?SourceRange.name:''\r\n\t\t// Nom du produit\r\n\t\t,'productName' : (SourceProduct)?SourceProduct.name:''\r\n\r\n\t\t//Mobile\r\n\t\t,'screen_name' : (dataBreadCrumb && dataBreadCrumb.ancestors)?dataBreadCrumb.ancestors[0].name:''\r\n\t\t,'screen_class' : (dataBreadCrumb && dataBreadCrumb.ancestors)?dataBreadCrumb.ancestors[0].url:''\r\n\t}\r\n}\r\n\r\nfunction getGA4UserData(datas){\r\n\tconst userData = {};\r\n\t[\"uiUser\", \"uiEmailId\", \"uiLoggedStatus\"].forEach((property) => {userData[property] = datas[property]});\r\n\treturn userData;\r\n}\r\nfunction getGA4PageData(datas){\r\n\tconst pageData = {};\r\n\t[\"referrer\", \"pageCategory\", \"category\", \"subCategory\", \"siteTypeLevel\", \"language\", \"country\", \"brand\", \"breadcrumb\", \"method\", \"productCategory\", \"productRange\", \"productName\"].forEach((property) => {pageData[property] = datas[property]});\r\n\treturn pageData;\r\n}\r\nfunction getGA4EventData(datas){\r\n\tconst eventData = {};\r\n\t[\"eventCategory\", \"eventAction\", \"eventLabel\"].forEach((property) => {eventData[property] = datas[property]});\r\n\treturn eventData;\r\n}\r\nexport async function addGA4SessionData(datas){\r\n\t[\"siteTypeLevel\", \"language\", \"country\", \"uiUser\", \"uiEmailId\", \"uiLoggedStatus\"].forEach((property) => {window.sessionStorage.setItem(property, datas[property])});\r\n\treturn true;\r\n}\r\n\r\nexport async function trackGA4PageView(datas){\r\n\tif (datas && datas.pageCategory && datas.pageCategory!==''){\r\n\t\tconst dataPageView = datas;\r\n\t\tdataPageView.eventType = 'page_data';\r\n\t\tdataPageView.eventName = 'page_view';\r\n\t\treturn trackGA4(dataPageView);\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nexport async function trackGA4Event(datas, eventName, eventCategory, eventAction, eventLabel){\r\n\tif (datas && datas.pageCategory && datas.pageCategory!==''){\r\n\t\tconst dataEvent = datas;\r\n\t\tdataEvent.eventType = 'event_data';\r\n\t\tdataEvent.eventName = eventName;\r\n\t\tdataEvent.eventCategory = eventCategory;\r\n\t\tdataEvent.eventAction = eventAction;\r\n\t\tdataEvent.eventLabel = eventLabel;\r\n\t\treturn trackGA4(dataEvent);\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nasync function trackGA4(datas){\r\n\ttry {\r\n\t\tif (typeof window === 'undefined' || typeof datas === 'undefined') {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif(isAppMobile()){\r\n\t\t\tconst PageDataMobile = getGA4PageData(datas)\r\n\t\t\tPageDataMobile.screen_name = datas.screen_name;\r\n\t\t\tPageDataMobile.screen_class = datas.screen_class;\r\n\r\n\t\t\twindow.ReactNativeWebView.postMessage('analytics|' + JSON.stringify({\r\n\t\t\t\t'event': datas.eventName\r\n\t\t\t\t,'user_data': getGA4UserData(datas)\r\n\t\t\t\t,'page_data': PageDataMobile\r\n\t\t\t\t,'event_data': getGA4EventData(datas)\r\n\t\t\t}));\r\n\t\t} else {\r\n\t\t\twindow.dataLayer = window.dataLayer || [];\r\n\t\t\tif (datas.eventType){\r\n\t\t\t\tif(datas.eventType === 'page_data'){\r\n\t\t\t\t\twindow['dataLayer'].push({[datas.eventType]:null});\r\n\t\t\t\t\twindow['dataLayer'].push({\r\n\t\t\t\t\t\t'event': datas.eventName\r\n\t\t\t\t\t\t,'user_data': getGA4UserData(datas)\r\n\t\t\t\t\t\t,'page_data': getGA4PageData(datas)\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if(datas.eventType === 'event_data'){\r\n\t\t\t\t\twindow['dataLayer'].push({[datas.eventType]:null});\r\n\t\t\t\t\twindow['dataLayer'].push({\r\n\t\t\t\t\t\t'event': datas.eventName\r\n\t\t\t\t\t\t,'event_data': getGA4EventData(datas)\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t} catch (error) {\r\n\t\treturn false;\r\n\t}\r\n}","import React, { Component } from \"react\";\r\nimport { Formik, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { Text, RichText, withSitecoreContext } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport { ReCaptcha } from \"react-recaptcha-v3\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport queryString from \"query-string\";\r\nimport axios from \"axios\";\r\n\r\nimport config from \"../../temp/config\";\r\nimport CustomSelect from \"../../utilities/FrontFunctions/FormElements/CustomSelect\";\r\nimport { trackGA4Event, trackGA4PageView } from \"../../utilities/FrontFunctions/AoxTrackingFunctions\";\r\nimport { getApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\n\r\nclass PageContact extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tserverError: false,\r\n\t\t\tformSubmitted: false,\r\n\t\t\tUrlContact: `${config.sitecoreApiHost}/apiaox/Call/Contact`,\r\n\t\t\tapiDatas: [],\r\n\t\t\tinitDataOK: false,\r\n\t\t};\r\n\t\tthis.bPushTrackPageResult_Done = false;\r\n\t}\r\n\thandleClickSubmit() {\r\n\t\ttrackGA4Event(window.trackDatas, \"submit_contact_form\", \"form\", \"submit\", \"customer_contact_form\");\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Call/GetDataPageContact`).then((apiDatas) => {\r\n\t\t\tthis.setState({ apiDatas: apiDatas });\r\n\t\t\tif (apiDatas?.Brands) {\r\n\t\t\t\tthis.setState({ initDataOK: true });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\twindow.scrollTo(0, 0);\r\n\t}\r\n\trender() {\r\n\t\t\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n\t\tconst optionsSujet = [\r\n\t\t\t{ value: \"Données personnelles\", label: \"Données personnelles\" },\r\n\t\t\t{ value: \"Mes challenges\", label: \"Mes challenges\" },\r\n\t\t\t{ value: \"Mes formations\", label: \"Mes formations\" },\r\n\t\t\t{ value: \"Mes évènements\", label: \"Mes évènements\" },\r\n\t\t\t{ value: \"Mon expertise\", label: \"Mon expertise\" },\r\n\t\t\t{ value: \"Master Santé\", label: \"Master Santé\" },\r\n\t\t\t{ value: \"site ecom (commandes)\", label: \"site ecom (commandes)\" },\r\n\t\t\t{ value: \"Autre\", label: \"Autre\" },\r\n\t\t];\r\n\r\n\t\tif (this.state.formSubmitted && !this.bPushTrackPage_Done) {\r\n\t\t\tif (typeof window.trackDatas !== \"undefined\") {\r\n\t\t\t\tvar trackData = window.trackDatas;\r\n\t\t\t\ttrackData.pageCategory = \"contact form submitted\";\r\n\t\t\t\ttrackGA4PageView(trackData).then((result) => {\r\n\t\t\t\t\tthis.bPushTrackPage_Done = result;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_form\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<div className=\"ctn_top\">{oCurrentItemFields && <RichText tag=\"h1\" field={oCurrentItemFields[\"Page Title\"]}></RichText>}</div>\r\n\t\t\t\t\t<div className=\"ctn_form\">\r\n\t\t\t\t\t\t<div className=\"ctn_col col_left\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_contact\">\r\n\t\t\t\t\t\t\t\t<h3>{this.props.t(\"Register_contactQuestion\")}</h3>\r\n\t\t\t\t\t\t\t\t<p className=\"t_tel\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Register_contactPhone\") }}></p>\r\n\t\t\t\t\t\t\t\t<p className=\"t_mention\">{this.props.t(\"Register_contactByPhonePrice\")}</p>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"ctn_col col_right\">\r\n\t\t\t\t\t\t\t{!this.state.formSubmitted && oCurrentItemFields && <Text tag=\"h2\" field={oCurrentItemFields[\"Page SubTitle\"]}></Text>}\r\n\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t{this.state.formSubmitted ? (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Contact_PriseEnCompte\") }}></p>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta\" href=\"/\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"mdppage_retour\")}\r\n\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t) : !this.state.initDataOK ? (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{/* TODO SGU Msg */}\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_30 fade-in\">Error init Form </p>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcodeSAP: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tlastname: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfirstname: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\temail: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tmarque: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tsujet: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tmessage: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\trecaptcha: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tvalidationSchema={Yup.object().shape({\r\n\t\t\t\t\t\t\t\t\t\t\t\tlastname: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t\tfirstname: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t\temail: Yup.string().email().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t\tmarque: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t\tsujet: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t\tmessage: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t\trecaptcha: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\tonSubmit={(values, actions) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// add loader\r\n\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.add(\"is-loading\");\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\taxios\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.post(this.state.UrlContact, queryString.stringify(values), {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAccept: \"application/json\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.then((result) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformSubmitted: result.data.IsValid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tserverError: !result.data.IsValid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tserverErrorMessage: result.data.ExceptionMessage,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.recaptchaContact) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.recaptchaContact.execute();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.catch((err) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tserverError: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tserverErrorMessage: this.props.t(\"DefaultServerError\"),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.recaptchaContact) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.recaptchaContact.execute();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{({ handleSubmit, setFieldValue, setFieldTouched, errors, touched }) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field className=\"\" as=\"input\" type=\"text\" name=\"codeSAP\" id=\"codeSAP\" placeholder={this.props.t(\"Contact_codeSAP\")} autoComplete=\"off\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={errors.lastname && touched.lastname && \"error\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"lastname\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"lastname\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Contact_nom\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={errors.firstname && touched.firstname && \"error\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"firstname\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"firstname\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Contact_prenom\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={errors.email && touched.email && \"error\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"email\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"email\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"email\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Contact_email\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CustomSelect\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName={\"marque\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Contact_Marque\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toptions={apiDatas.Brands.map((brand) => ({\r\n value: brand.Brand_Code,\r\n label: brand.Brand_Name,\r\n }))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CustomSelect\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName={\"sujet\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Contact_Sujet\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toptions={optionsSujet}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_textarea mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field className={errors.message && touched.message && \"error\"} as=\"textarea\" name=\"message\" placeholder={this.props.t(\"Contact_Message\")} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory mb_30\">{this.props.t(\"Contact_mandatory\")}</p>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Contact_PPDP\") }}></p>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ReCaptcha\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tref={(ref) => (this.recaptchaContact = ref)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsitekey={this.props.t(\"recaptcha_sitekey\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taction=\"contact\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tverifyCallback={(recaptchaToken) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue(\"recaptcha\", recaptchaToken);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.serverError && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorMessage}</p>}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{((errors.marque && touched.marque) || (errors.sujet && touched.sujet) || (errors.message && touched.message) || errors.recaptcha) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_30 fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"DefaultErrorMessage\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{console.log(errors)}{\" \"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta mb_40\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\" onClick={this.handleClickSubmit}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Contact_Envoyer\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta reverse\" href=\"/\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Contact_Annuler\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_info mb_30\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Contact_Telephone\") }}></p>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory var_grey\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Contact_Telephone_mandatory\") }}></p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Formik>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageContact));\r\n","import React, { Component } from \"react\";\r\nimport { Formik, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { Text, withSitecoreContext } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport { ReCaptcha } from \"react-recaptcha-v3\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport queryString from \"query-string\";\r\nimport axios from \"axios\";\r\n\r\nimport config from \"../../temp/config\";\r\nimport CustomSelect from \"../../utilities/FrontFunctions/FormElements/CustomSelect\";\r\nimport { trackGA4PageView } from \"../../utilities/FrontFunctions/AoxTrackingFunctions\";\r\nimport { getApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\n\r\nclass PageContactConnect extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tserverError: false,\r\n\t\t\tformSubmitted: false,\r\n\t\t\tUrlContact: `${config.sitecoreApiHost}/apiaox/Call/Contact`,\r\n\t\t\tapiDatas: [],\r\n\t\t\tinitDataOK: false,\r\n\t\t};\r\n\t\tthis.bPushTrackPageResult_Done = false;\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Call/GetDataPageContact`).then((apiDatas) => {\r\n\t\t\tthis.setState({ apiDatas: apiDatas });\r\n\t\t\tif (apiDatas?.Brands && apiDatas?.User) {\r\n\t\t\t\tthis.setState({ initDataOK: true });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\twindow.scrollTo(0, 0);\r\n\t}\r\n\trender() {\r\n\t\t//TODO SGU : ajouter les infos perso à apiData\r\n //ne plus nécessiter les this.props.fields.data et les suppr du GraphQL\r\n //le doublement connecté / non connecté ne sera peut-être plus utile\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst { CurrentFOU, AccueilCaf } = this.props.fields.data;\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n\t\tconst optionsSujet = [\r\n\t\t\t{ value: \"Données personnelles\", label: \"Données personnelles\" },\r\n\t\t\t{ value: \"Mes challenges\", label: \"Mes challenges\" },\r\n\t\t\t{ value: \"Mes formations\", label: \"Mes formations\" },\r\n\t\t\t{ value: \"Mes évènements\", label: \"Mes évènements\" },\r\n\t\t\t{ value: \"Mon expertise\", label: \"Mon expertise\" },\r\n\t\t\t{ value: \"Master Santé\", label: \"Master Santé\" },\r\n\t\t\t{ value: \"site ecom (commandes)\", label: \"site ecom (commandes)\" },\r\n\t\t\t{ value: \"Autre\", label: \"Autre\" },\r\n\t\t];\r\n\r\n\t\tif (this.state.formSubmitted && !this.bPushTrackPage_Done) {\r\n\t\t\tif (typeof window.trackDatas !== \"undefined\") {\r\n\t\t\t\tvar trackData = window.trackDatas;\r\n\t\t\t\ttrackData.pageCategory = \"contact form submitted\";\r\n\t\t\t\ttrackGA4PageView(trackData).then((result) => {\r\n\t\t\t\t\tthis.bPushTrackPage_Done = result;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_form\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<div className=\"ctn_top\">{oCurrentItemFields && <Text tag=\"h1\" field={oCurrentItemFields[\"Page Title\"]}></Text>}</div>\r\n\t\t\t\t\t<div className=\"ctn_form\">\r\n\t\t\t\t\t\t<div className=\"ctn_col col_left\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_contact\">\r\n\t\t\t\t\t\t\t\t<h3>{this.props.t(\"Register_contactQuestion\")}</h3>\r\n\t\t\t\t\t\t\t\t<p className=\"t_tel\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Register_contactPhone\") }}></p>\r\n\t\t\t\t\t\t\t\t<p className=\"t_mention\">{this.props.t(\"Register_contactByPhonePrice\")}</p>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"ctn_col col_right\">\r\n\t\t\t\t\t\t\t{!this.state.formSubmitted && oCurrentItemFields && <Text tag=\"h2\" field={oCurrentItemFields[\"Page SubTitle\"]}></Text>}\r\n\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t{this.state.formSubmitted ? (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Contact_PriseEnCompte\") }}></p>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta\" href={AccueilCaf && AccueilCaf.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"mdppage_retour\")}\r\n\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t) : !this.state.initDataOK ? (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{/* TODO SGU Msg */}\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_30 fade-in\">Error init Form </p>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" name=\"lastname\" value={CurrentFOU.lastname} disabled />\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" name=\"firstname\" value={CurrentFOU.firstname} disabled />\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"email\" name=\"email\" value={CurrentFOU.email} disabled />\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcodeSAP: CurrentFOU.inscriptioncode,\r\n\t\t\t\t\t\t\t\t\t\t\t\tmarque: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tsujet: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tmessage: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\trecaptcha: \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tvalidationSchema={Yup.object().shape({\r\n\t\t\t\t\t\t\t\t\t\t\t\tmarque: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t\tsujet: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t\tmessage: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t\trecaptcha: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\tonSubmit={(values, actions) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// add loader\r\n\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.add(\"is-loading\");\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\taxios\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.post(this.state.UrlContact, queryString.stringify(values), {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twithCredentials: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAccept: \"application/json\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.then((result) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformSubmitted: result.data.IsValid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tserverError: !result.data.IsValid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tserverErrorMessage: result.data.ExceptionMessage,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.recaptchaContact) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.recaptchaContact.execute();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.catch((err) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tserverError: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tserverErrorMessage: this.props.t(\"DefaultServerError\"),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.recaptchaContact) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.recaptchaContact.execute();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{({ handleSubmit, setFieldValue, setFieldTouched, errors, touched }) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field className=\"\" as=\"input\" type=\"text\" name=\"codeSAP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CustomSelect\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName={\"marque\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Contact_Marque\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toptions={apiDatas.Brands.map((brand) => ({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: brand.Brand_Code,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: brand.Brand_Name,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CustomSelect\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName={\"sujet\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Contact_Sujet\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toptions={optionsSujet}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_textarea mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={errors.message && touched.message && \"error\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"textarea\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"message\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Contact_Message\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory mb_30\">{this.props.t(\"Contact_mandatory\")}</p>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Contact_PPDP\") }}></p>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ReCaptcha\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tref={(ref) => (this.recaptchaContact = ref)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsitekey={this.props.t(\"recaptcha_sitekey\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taction=\"contact\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tverifyCallback={(recaptchaToken) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue(\"recaptcha\", recaptchaToken);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.serverError && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorMessage}</p>}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{((errors.marque && touched.marque) || (errors.sujet && touched.sujet) || (errors.message && touched.message) || errors.recaptcha) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_30 fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"DefaultErrorMessage\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{console.log(errors)}{\" \"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta mb_40\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Contact_Envoyer\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta reverse\" href=\"/\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Contact_Annuler\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_info mb_30\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Contact_Telephone\") }}></p>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory var_grey\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Contact_Telephone_mandatory\") }}></p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Formik>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageContactConnect));\r\n","import React, { Component } from 'react';\r\nimport { withSitecoreContext, RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nclass PageContent extends Component {\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\r\n\t\treturn (\r\n\t\t\t<section className=\"section_mentions\">\r\n\t\t\t\t<div className=\"str_container\">\t\t\t\t\t\r\n\t\t\t\t\t<div className=\"ctn_top\">\r\n \t\t\t{ oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h3\"></RichText>}\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div className=\"ctn_main\">\r\n \t\t\t{ oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Text\"]}></RichText>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withSitecoreContext()(PageContent);\r\n","import React, { Component } from 'react'\r\nimport { RichText, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react'\r\nimport { withTranslation } from 'react-i18next';\r\nimport Helmet from 'react-helmet'; \r\nimport { Redirect } from 'react-router-dom'\r\n\r\nclass PageError extends Component {\r\n componentDidMount() { \r\n setTimeout(() => { \r\n if(document.getElementById(\"btRedirect\") != null) {\r\n window.location.replace(document.getElementById(\"btRedirect\").href); \r\n }\r\n }, 10000)\r\n\t} \r\n\trender() {\r\n if (this.props.sitecoreContext.route == null)\r\n {\r\n return <></>;\r\n } \r\n\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n const { AccueilCaf, CurrentUser } = this.props.fields.data;\r\n \r\n if(CurrentUser == null){ \r\n return <Redirect to='/' />\r\n }\r\n\r\n\t\treturn (\r\n \r\n <>\r\n <Helmet>\r\n {(this.props.sitecoreContext.itemId === \"9131bcd5-5e41-4590-b43d-ff683596a1ce\") ?\r\n <body className=\"pg_no-acces\" />\r\n :\r\n <body className=\"pg_404\" />\r\n }\r\n </Helmet>\r\n\t\t\t\r\n {(this.props.sitecoreContext.itemId === \"9131bcd5-5e41-4590-b43d-ff683596a1ce\") ?\r\n <>\r\n <section className=\"section_no-acces\">\r\n <div className=\"str_container\"> \r\n <div className=\"ctn_main\">\r\n <div className=\"ctn_paragraph var_align-center\"> \r\n { oCurrentItemFields && <RichText tag=\"h2\" field={oCurrentItemFields[\"Page Title\"]} /> }\r\n { oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Text\"]} tag=\"p\"></RichText> }\r\n <div className=\"ctn_cta\">\r\n <a className=\"obj_cta\" id=\"btRedirect\" href={AccueilCaf && AccueilCaf.url}>{this.props.t('404RetourAccueil')}</a>\r\n </div> \r\n </div>\r\n </div> \r\n </div>\r\n </section>\r\n </>\r\n :\r\n <> \r\n { oCurrentItemFields && <RichText tag=\"h2\" className=\"obj_title\" field={oCurrentItemFields[\"Page Title\"]} />}\r\n <div className=\"ctn_cta\">\r\n <a className=\"obj_cta\" id=\"btRedirect\" href={AccueilCaf && AccueilCaf.url}>{this.props.t('404RetourAccueil')}</a>\r\n </div>\r\n </>\r\n } \r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\nexport default withTranslation()(withSitecoreContext()(PageError));\r\n","import React, { useEffect } from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\n\r\nimport '../../assets/css/0010_sections/460_section_particles-home.css';\r\n\r\nconst PageEventBirthDay = () => {\r\n\r\n\tuseEffect(() => {\r\n\t\tconst script = document.createElement(\"script\");\r\n\t\tscript.src = \"https://cdn.jsdelivr.net/npm/tsparticles@1.43.1/tsparticles.min.js\";\r\n\t\tscript.async = true;\r\n\t\tscript.onload = () => initTsParticles();\r\n\t\tdocument.body.appendChild(script);\r\n\t}, []);\r\n\r\n\tconst initTsParticles = () => {\r\n\r\n\t\tconst tsParticles = window.tsParticles;\r\n\t\t\r\n\t\tconst defaultOptions = {\r\n\t\t\tfpsLimit: 60,\r\n\t\t\tdetectRetina: true,\r\n\t\t};\r\n\r\n\t\tconst emittersOptions = {\r\n\t\t\tlife: {\r\n\t\t\t\tcount: 1,\r\n\t\t\t\tduration: 0.1,\r\n\t\t\t},\r\n\t\t\trate: {\r\n\t\t\t\tquantity: 100,\r\n\t\t\t\tdelay: 0.1,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst particlesOptions = {\r\n\t\t\tnumber: {\r\n\t\t\t\tvalue: 0,\r\n\t\t\t},\r\n\t\t\t// color: {\r\n\t\t\t// \tvalue: \"#00ACC2\"\r\n\t\t\t// },\r\n\t\t\tshape: {\r\n\t\t\t\ttype: [\"square\"],\r\n\t\t\t},\r\n\t\t\topacity: {\r\n\t\t\t\tvalue: { min: 0, max: 1 },\r\n\t\t\t\tanimation: {\r\n\t\t\t\t\tenable: true,\r\n\t\t\t\t\tspeed: 1,\r\n\t\t\t\t\tstartValue: \"max\",\r\n\t\t\t\t\tdestroy: \"min\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsize: {\r\n\t\t\t\tvalue: { min: isMobile() ? 3 : 5, max: isMobile() ? 6 : 10 }\r\n\t\t\t},\r\n\t\t\tmove: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tgravity: {\r\n\t\t\t\t\tenable: true,\r\n\t\t\t\t},\r\n\t\t\t\tdrift: {\r\n\t\t\t\t\tmin: -2,\r\n\t\t\t\t\tmax: 2,\r\n\t\t\t\t},\r\n\t\t\t\tspeed: { min: 10, max: 30 },\r\n\t\t\t\tdecay: 0.1,\r\n\t\t\t\tdirection: \"none\",\r\n\t\t\t\trandom: false,\r\n\t\t\t\tstraight: false,\r\n\t\t\t\toutModes: {\r\n\t\t\t\t\tdefault: \"destroy\",\r\n\t\t\t\t\ttop: \"none\",\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\trotate: {\r\n\t\t\t\tvalue: {\r\n\t\t\t\t\tmin: 0,\r\n\t\t\t\t\tmax: 360,\r\n\t\t\t\t},\r\n\t\t\t\tdirection: \"random\",\r\n\t\t\t\tmove: true,\r\n\t\t\t\tanimation: {\r\n\t\t\t\t\tenable: true,\r\n\t\t\t\t\tspeed: 60,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\ttilt: {\r\n\t\t\t\tdirection: \"random\",\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmove: true,\r\n\t\t\t\tvalue: {\r\n\t\t\t\t\tmin: 0,\r\n\t\t\t\t\tmax: 360,\r\n\t\t\t\t},\r\n\t\t\t\tanimation: {\r\n\t\t\t\t\tenable: true,\r\n\t\t\t\t\tspeed: 60,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\troll: {\r\n\t\t\t\tdarken: {\r\n\t\t\t\t\tenable: true,\r\n\t\t\t\t\tvalue: 10,\r\n\t\t\t\t},\r\n\t\t\t\tenable: true,\r\n\t\t\t\tspeed: {\r\n\t\t\t\t\tmin: 15,\r\n\t\t\t\t\tmax: 25,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\twobble: {\r\n\t\t\t\tdistance: 30,\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmove: true,\r\n\t\t\t\tspeed: {\r\n\t\t\t\t\tmin: -15,\r\n\t\t\t\t\tmax: 15,\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst createTsParticles = (id, position, color) => {\r\n\t\t\ttsParticles.load(id, {\r\n\t\t\t\t...defaultOptions,\r\n\t\t\t\temitters: {\r\n\t\t\t\t\t...emittersOptions,\r\n\t\t\t\t\tposition: position,\r\n\t\t\t\t},\r\n\t\t\t\tparticles: {\r\n\t\t\t\t\t...particlesOptions,\r\n\t\t\t\t\tcolor: {\r\n\t\t\t\t\t\tvalue: color,\r\n\t\t\t\t\t},\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst particlesColors = [\r\n\t\t\t'#D784EB',\r\n\t\t\t'#6A3691',\r\n\t\t\t'#0052A2',\r\n\t\t\t'#3F6FD5',\r\n\t\t\t'#6EC3FF',\r\n\t\t\t'#204FD5',\r\n\t\t\t'#6FE2E9',\r\n\t\t\t'#00A261',\r\n\t\t\t'#82E87E',\r\n\t\t\t'#CAFF6E',\r\n\t\t];\r\n\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tdocument.querySelector('.message_particles-home').classList.add('is-visible');\r\n\t\t\twindow.scrollTo({top: 0, left: 0, behavior: 'smooth'});\r\n\t\t\tcreateTsParticles('tsparticles-1', {x: 35, y: 25}, particlesColors[7]);\r\n\t\t}, 1000 * 2);\r\n\t\t//\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-2', {x: 75, y: 30}, particlesColors[4]);\r\n\t\t}, 1000 * 2.75);\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-3', {x: 55, y: 35}, particlesColors[7]);\r\n\t\t}, 1000 * 3);\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-4', {x: 40, y: 25}, particlesColors[1]);\r\n\t\t}, 1000 * 3.25);\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-5', {x: 30, y: 50}, particlesColors[8]);\r\n\t\t}, 1000 * 3.5);\r\n\t\t//\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-6', {x: 70, y: 45}, particlesColors[6]);\r\n\t\t}, 1000 * 4.25);\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-7', {x: 35, y: 30}, particlesColors[9]);\r\n\t\t}, 1000 * 4.5);\r\n\t\t//\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-8', {x: 60, y: 25}, particlesColors[9]);\r\n\t\t}, 1000 * 5.25);\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-9', {x: 35, y: 55}, particlesColors[5]);\r\n\t\t}, 1000 * 5.5);\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-10', {x: 50, y: 30}, particlesColors[0]);\r\n\t\t}, 1000 * 5.75);\r\n\t\t//\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-11', {x: 65, y: 50}, particlesColors[2]);\r\n\t\t}, 1000 * 6.5);\t\t\t\r\n\t\tsetTimeout(() => {\r\n\t\t\tcreateTsParticles('tsparticles-12', {x: 45, y: 40}, particlesColors[3]);\r\n\t\t}, 1000 * 6.75);\r\n\t\t//\r\n\t\tsetTimeout(() => {\r\n\t\t\tdocument.querySelector('.message_particles-home').classList.remove('is-visible');\r\n\t\t}, 1000 * 10);\r\n\r\n\t}\r\n\r\n\treturn(\r\n\t\t<div className=\"section_particles-home\">\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-1\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-2\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-3\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-4\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-5\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-6\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-7\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-8\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-9\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-10\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-11\"></div>\r\n\t\t\t<div className=\"canvas_particles-home\" id=\"tsparticles-12\"></div>\r\n\t\t\t<div className=\"message_particles-home\">\r\n\t\t\t\t<img className=\"i_cake-birthday\" src={require(\"../../assets/images/i_cake-birthday.jpg\")} alt=\"\"/>\r\n\t\t\t\t<p className=\"t_title\">1 an ensemble !</p>\r\n\t\t\t\t<p className=\"t_desc\">Merci pour votre fidélité et votre confiance. Continuons l'aventure !</p>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n\r\n};\r\n\r\nexport default (withSitecoreContext()(PageEventBirthDay));","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport { Formik, Field } from 'formik'\r\nimport * as Yup from 'yup'\r\n\r\nimport { throttle, isMobile} from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { postApiDatas, dayRemaining, strDateToFrLong, urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { CONST_EventTypes } from \"../../data/const\"\r\n\r\nimport CustomSelect from '../../utilities/FrontFunctions/FormElements/CustomSelect'\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport DefaultModal from '../Modal/DefaultModal'\r\n\r\nclass ObjEventDetail extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t\tactiveSession : this.props.event?.Sessions?.find(o => this.props.eventSessionId === o.EventSession_Id) \r\n || this.props.event?.Sessions?.find(o => o.UserRegistered)\r\n || this.props.event.Sessions.at(0)\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n setActiveSession(id){\r\n this.setState({\r\n activeSession : this.props.event.Sessions.find(o => o.EventSession_Id === id)\r\n })\r\n }\r\n registration(values){\r\n if(!this.state.onRegistration){\r\n this.setState({ onRegistration : true });\r\n document.body.classList.add('is-loading');\r\n postApiDatas(`/apiaox/Event/PostEventRegistration`, values ? values : this.state.values)\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n this.setState({\r\n formSubmitted: res.IsValid,\r\n apiError: !res.IsValid,\r\n apiErrorMsg: res.Message,\r\n onRegistration: false,\r\n })\r\n if(res.IsValid){\r\n this.ModalRegistrationDone.openModal();\r\n } else {\r\n if(this.props.event.EventType_Code === 'JOUR'){\r\n this.ModalConfirmation.closeModal();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n \r\n\trender() {\r\n const Event = this.props.event;\r\n\t\tconst ActiveSession = this.state.activeSession;\r\n\t\tconst DayRemaining = ActiveSession ? dayRemaining(ActiveSession.EventSession_StartDate) : -1;\r\n const DataUser = this.props.user;\r\n\r\n\t\treturn (<>\r\n { Event && ActiveSession &&\r\n <div className={`obj_formation_detail\r\n ${' ' + CONST_EventTypes[Event.EventType_Code].css}\r\n ${' ' + Event.Brand.Brand_CssClass}\r\n ${ActiveSession.UserRegistered ? ' is_registered' : '' }`\r\n }>\r\n <div className=\"ctn_row\">\r\n <div className=\"ctn_image\">\r\n <div className=\"ctn_visuel\">\r\n <img src={urlToHost(Event.Event_MediaUrl)} alt={Event.Event_MediaAlt}/>\r\n </div>\r\n\r\n <div className=\"ctn_logo\">\r\n <img src={urlToHost(Event.Brand.Brand_LogoUrl)} alt={Event.Brand.Brand_Name}/>\r\n </div>\r\n </div>\r\n\r\n <div className=\"ctn_text\">\t\r\n <p className={`t_tag`}>\r\n {ActiveSession?.EventSession_IsHalfDay === true ? \"Demi-journée de formation\" : Event.EventType_Name}\r\n </p>\r\n\r\n {ActiveSession.UserRegistered === true && (\r\n (DayRemaining < 0) \r\n ? <></>\r\n :\t(DayRemaining===0)\r\n ? <div className=\"obj_jours-restant\">Dernier jour</div>\r\n : <div className=\"obj_jours-restant\">J-{DayRemaining}</div>\r\n )}\r\n\r\n <ul className=\"list_infos\">\r\n {ActiveSession.EventSession_EndDate != null\r\n ?<li className=\"t_date\">\r\n Du {strDateToFrLong(ActiveSession.EventSession_StartDate)} Au {strDateToFrLong(ActiveSession.EventSession_EndDate)}\r\n </li>\r\n :<li className=\"t_date\">\r\n {strDateToFrLong(ActiveSession.EventSession_StartDate)}\r\n </li>\r\n }\r\n <li className=\"t_info\">\r\n {Event.EventType_Code === 'WEB' \r\n ? ActiveSession.EventSession_StartHour ? ActiveSession.EventSession_StartHour : \"-\"\r\n : ActiveSession.Place?.EventPlace_City ? ActiveSession.Place.EventPlace_City : \"-\"\r\n }\r\n </li>\r\n </ul>\r\n\r\n {(ActiveSession.UserRegistered === true ) &&\r\n <p className=\"t_inscription\">vous êtes inscrits</p>\r\n }\r\n\r\n <p className=\"t_title\">{Event.Event_SubTitle}</p>\r\n <p className=\"t_desc\" dangerouslySetInnerHTML={{__html: Event.Event_Description}}/>\r\n\r\n {ActiveSession?.UserRegistered === true \r\n ? (DayRemaining > -1) && <>\r\n <div className=\"obj_formation_detail_readonly\">\r\n <p className=\"t_desc\">En cas de changement, nous vous contacterons sur ce numéro.</p>\r\n <div className=\"obj_form\">\r\n <input type=\"text\" value={DataUser.phone} disabled/>\r\n </div>\r\n </div>\r\n\r\n <div className=\"ctn_cta\">\r\n {Event.EventType_Code !== 'WEB' &&\r\n <a className=\"obj_btn picto\" href={ActiveSession.UrlConvocation} target=\"_blank\" rel=\"noopener noreferrer\">\r\n <IconSVG icon=\"telecharger\" width=\"23.595\" height=\"20.227\" />\r\n télécharger votre convocation\r\n </a>\r\n }\r\n <button className=\"obj_btn light\" \r\n onClick={() => {\r\n this.registration({\r\n EventSession_Id:ActiveSession.EventSession_Id, \r\n Registration : false,\r\n Phone : DataUser.phone\r\n });\r\n }}\r\n >\r\n se désinscrire\r\n </button>\r\n <DefaultModal\r\n onRef={ref => (this.ModalRegistrationDone = ref)}\r\n onClose={() => window.location.reload(false)}\r\n htmlContent={\r\n <>\r\n <p className=\"t_title\">Votre Désinscription est enregistrée.</p>\r\n <p className=\"t_main\"></p>\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"button\" onClick={() => this.ModalRegistrationDone.closeModal()}>fermer</button>\r\n </div>\r\n </>\r\n }\r\n />\r\n </div>\r\n {ActiveSession.Place?.EventPlace_MediaUrl &&\r\n <div className=\"ctn_visuel_map\">\r\n <img src={urlToHost(ActiveSession.Place.EventPlace_MediaUrl)} alt={ActiveSession.Place.EventPlace_MediaAlt}/>\r\n </div>\r\n }\r\n </>\r\n : <>\r\n <Formik\r\n initialValues={{\r\n EventSession_Id: ActiveSession.EventSession_Id,\r\n Registration : true,\r\n Phone : DataUser.phone\r\n }}\r\n validationSchema={\r\n Yup.object().shape({\r\n EventSession_Id: Yup.string().required()\r\n ,Phone: Yup.string().required()\r\n })\r\n }\r\n onSubmit={(values) => {\r\n if(Event.Event_ShowRules || ActiveSession.EventSession_Rules){\r\n this.setState({ values: values, });\r\n this.ModalConfirmation.openModal();\r\n } else {\r\n this.registration(values);\r\n }\r\n }}\r\n >\r\n { ({ handleSubmit, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n <div className=\"obj_formation_detail_form\">\r\n <form onSubmit={handleSubmit}>\r\n <div className=\"obj_form\">\r\n <label className=\"t_label\">Autres dates disponibles :</label>\r\n\r\n <CustomSelect\r\n fieldName={'EventSession_Id'}\r\n placeholder={strDateToFrLong(ActiveSession.EventSession_StartDate)\r\n + (Event.EventType_Code === 'WEB' \r\n ? ActiveSession.EventSession_StartHour ? \" à \" + ActiveSession.EventSession_StartHour : \"\"\r\n : ActiveSession.Place?.EventPlace_City ? \" à \" + ActiveSession.Place.EventPlace_City : \"\"\r\n )}\r\n options={\r\n Event.Sessions.map((session) => ({ \r\n value: session.EventSession_Id, \r\n label: (strDateToFrLong(session.EventSession_StartDate)\r\n + (Event.EventType_Code === 'WEB' \r\n ? session.EventSession_StartHour ? \" à \" + session.EventSession_StartHour : \"\"\r\n : session.Place?.EventPlace_City ? \" à \" + session.Place.EventPlace_City : \"\"\r\n ))\r\n }))\r\n }\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n onChange={option => {this.setActiveSession(option.value);}}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n />\r\n \r\n <div className=\"ctn_phone\">\r\n <p className=\"t_desc\">En cas de changement, nous vous contacterons sur ce numéro.</p>\r\n <div className=\"ctn_row\">\r\n <div className=\"ctn_input\">\r\n <Field className={errors.Phone && touched.Phone && 'error'} as=\"input\" type=\"text\" name=\"Phone\" placeholder=\"Téléphone personnel\"/>\r\n </div>\r\n <p className=\"t_mandatory\">Champ obligatoire</p>\r\n </div>\r\n <p className=\"t_info\">Renseignez votre indicatif pays si vous habitez en dehors de la France.</p>\r\n </div>\r\n\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"submit\">je m'inscris</button>\r\n </div>\r\n\r\n {( (touched.EventSession_Id && errors.EventSession_Id) ) && \r\n <p className=\"t_error mb_30 fade-in\">Il y a des erreurs dans le formulaire.</p>\r\n }\r\n\r\n {this.state.apiError && \r\n <p className=\"t_error mb_30 fade-in\"><br/>{this.state.apiErrorMsg}</p>\r\n }\r\n </div>\r\n </form>\r\n </div>\r\n )}\r\n </Formik>\r\n\r\n { (Event.Event_ShowRules || ActiveSession.EventSession_Rules) && <>\r\n <DefaultModal\r\n onRef={ref => (this.ModalConfirmation = ref)}\r\n className = \"popin_txt_medium\"\r\n htmlContent={\r\n <>\r\n\r\n { ActiveSession.EventSession_Rules && <p className=\"t_main\" dangerouslySetInnerHTML={{__html: ActiveSession.EventSession_Rules}}/>}\r\n\r\n { Event.Event_ShowRules && <>\r\n {(Event.EventType_Code === 'JOUR') && <>\r\n <p className=\"t_title\">Préparez-vous au mieux pour cette formation !</p>\r\n <p className=\"t_main\">Pensez à apporter les bilans de l'année précédente et prenez un moment pour réfléchir à vos attentes et vos objectifs pour cette session !</p>\r\n\r\n <p className=\"t_subtitle\"><strong>CONDITIONS D'INSCRIPTION</strong></p>\r\n <ul>\r\n <li>Places limitées à 20 personnes par journée.</li>\r\n <li>Inscription limitée à une seule journée par thématique.</li>\r\n <li>Merci de vous désinscrire si vous renoncez à participer.</li>\r\n </ul>\r\n\r\n <p className=\"t_subtitle\"><strong>CONDITIONS D'ACCÈS</strong></p>\r\n <ul>\r\n <li>Les portes ferment 30 minutes après l’heure d’accueil. Aucun accès après.</li>\r\n <li>Accès réservé aux invités munis de convocation. Enfants non admis.</li>\r\n <li>Formation non accessible aux non-officinaux.</li>\r\n </ul>\r\n\r\n <p className=\"t_subtitle\"><strong>PRÉSENCE</strong></p>\r\n <ul>\r\n <li>Présence requise pour toute la journée (ou les journées) pour recevoir les sacs produits.</li>\r\n </ul>\r\n </>}\r\n {(Event.EventType_Code === 'SOIR') && <>\r\n <p className=\"t_subtitle\"><strong>CONDITIONS D'INSCRIPTION</strong></p>\r\n <ul>\r\n <li>Places limitées pour chaque soirée.</li>\r\n <li>Merci de vous désinscrire si vous renoncez à participer.</li>\r\n </ul>\r\n\r\n <p className=\"t_subtitle\"><strong>CONDITIONS D'ACCÈS</strong></p>\r\n <ul>\r\n <li>Les portes ferment à 21h15 précises. Aucun accès après.</li>\r\n <li>Accès réservé aux invités avec invitation. Enfants non admis.</li>\r\n <li>Formation non accessible aux non-officinaux.</li>\r\n </ul>\r\n\r\n <p className=\"t_subtitle\"><strong>PRÉSENCE</strong></p>\r\n <ul>\r\n <li>Les sacs produits seront distribués uniquement après la plénière.</li>\r\n </ul>\r\n </>}\r\n </>}\r\n\r\n <p className=\"ctn_cta\">\r\n <button className=\"obj_btn\" onClick={() => this.registration()}>\r\n Confirmer\r\n </button>\r\n </p>\r\n </>\r\n }\r\n />\r\n </>}\r\n\r\n <DefaultModal\r\n onRef={ref => (this.ModalRegistrationDone = ref)}\r\n onClose={() => window.location.reload(false)}\r\n htmlContent={\r\n <>\r\n <p className=\"t_title\">Votre Inscription est enregistrée.</p>\r\n <p className=\"t_main\"></p>\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"button\" onClick={() => this.ModalRegistrationDone.closeModal()}>fermer</button>\r\n </div>\r\n </>\r\n }\r\n />\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjEventDetail)","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport queryString from 'query-string';\r\n\r\nimport { getApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport ObjRetour from \"../Obj/ObjRetour\";\r\nimport ObjEventDetail from '../ObjEvent/ObjEventDetail';\r\n\r\nclass PageEventDetail extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tapiDatas:[],\r\n\t\t\tidSession:null,\r\n\t\t}\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tvar oParams = queryString.parse(window.location.search);\r\n\t\tif(oParams.id !== undefined){\r\n\t\t\tgetApiDatas(`/apiaox/Event/GetDataPageEventDetail?id=${oParams.id}`)\r\n\t\t\t.then((apiDatas) => { this.setState({ apiDatas:apiDatas, idSession:oParams.idSession }) })\r\n\t\t}\r\n\r\n\t\tdocument.body.classList.add('pg_formation_detail')\r\n\t\twindow.scrollTo(0,0);\r\n \t}\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove('pg_formation_detail')\r\n\t}\r\n\trender() {\r\n\t\tconst scDatas = this.props.fields.data;\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n const Event = apiDatas?.Event;\r\n\r\n\t\treturn (<>\r\n\t\t\t<ObjRetour/>\r\n\t\t\t\r\n\t\t\t<section className=\"obj_section section_formation_detail\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t{ Event && <>\r\n\t\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t\t<h1 className=\"t_title\">\r\n\t\t\t\t\t\t\t\t{Event.Event_Title}\r\n\t\t\t\t\t\t\t</h1>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t<ObjEventDetail event={Event} eventSessionId={this.state.idSession} user={scDatas.CurrentFOU}/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</>}\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(PageEventDetail)","import React, { Component } from 'react'\r\nimport { Formik, Field } from 'formik'\r\nimport * as Yup from 'yup'\r\nimport { ReCaptcha } from \"react-recaptcha-v3\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { withSitecoreContext } from \"@sitecore-jss/sitecore-jss-react\";\r\n\r\nimport Modal from 'react-modal'\r\nimport DefaultModal from '../Modal/DefaultModal'\r\n\r\nimport { postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\n\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass InfosModalMAJ extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_small\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n <Formik\r\n initialValues={{\r\n email: '',\r\n recaptcha: \"\",\r\n }}\r\n validationSchema={Yup.object().shape({\r\n email: Yup.string().email().required(),\r\n recaptcha: Yup.string().required(),\r\n })}\r\n onSubmit={(values) => {\r\n document.body.classList.add('is-loading')\r\n\r\n postApiDatas('/apiaox/Call/Invitation', values)\r\n .then((res) => {\r\n this.setState({\r\n InvitationServerError: !res.IsValid,\r\n InvitationServerErrorMessage: res.ExceptionMessage,\r\n });\r\n\r\n if(res.IsValid){\r\n this.closeModal();\r\n this.ModalInvitationConfirm.openModal();\r\n }\r\n\r\n if (this.recaptchaInvitation) {\r\n this.recaptchaInvitation.execute();\r\n }\r\n\r\n document.body.classList.remove(\"is-loading\");\r\n });\r\n }}\r\n >\r\n { ({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n <div className=\"grid_item grid_form-perso\">\r\n <form onSubmit={handleSubmit}>\r\n <p className=\"t_title\">Nouveau collaborateur</p>\r\n <p className=\"t_main\">Saisissez l'adresse email du collaborateur afin de lui adresser une invitation</p>\r\n\r\n <div className=\"obj_form\">\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field className={errors.email && touched.email && 'error'} as=\"input\" type=\"email\" name=\"email\" placeholder=\"E-mail professionnel*\" />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\"><span>Si vous n’avez pas d'e-mail professionnel, remplissez par une adresse e-mail secondaire.</span></div>\r\n </div>\r\n </div>\r\n\r\n <ReCaptcha\r\n ref={(ref) => (this.recaptchaInvitation = ref)}\r\n sitekey={this.props.t(\"recaptcha_sitekey\")}\r\n action=\"invitation\"\r\n verifyCallback={(recaptchaToken) => {\r\n document.body.classList.remove('is-loading');\r\n if (recaptchaToken.length > 0) {\r\n this.setState({\r\n ...this.state, \r\n isRecaptchaLoaded: true, \r\n errorMessage: ''\r\n });\r\n setFieldValue(\"recaptcha\", recaptchaToken, false);\r\n }\r\n }}\r\n />\r\n\r\n {( (errors.email && touched.email) ) && \r\n <p className=\"t_error mb_30 fade-in\">Il y a des erreurs dans le formulaire.</p>\r\n }\r\n {( (errors.recaptcha) ) && \r\n <p className=\"t_error mb_30 fade-in\">Erreur de recaptcha.</p>\r\n }\r\n {(this.state.InvitationServerError) && (\r\n <p className=\"t_error mb_20 fade-in\">{this.state.InvitationServerErrorMessage}</p>\r\n )}\r\n\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_btn\" type=\"submit\">Valider</button>\r\n\t\t\t\t\t\t\t\t\t\t\t <button className=\"obj_btn light\" onClick={this.closeModal}>Annuler</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n )}\r\n </Formik>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\r\n <DefaultModal onRef={(ref) => (this.ModalInvitationConfirm = ref)} htmlContent={<p className=\"t_main\">Le mail d'invitation a été envoyé</p>} />\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(InfosModalMAJ));","import React, { Component, useState } from \"react\";\r\nimport { Formik, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { ReCaptcha } from \"react-recaptcha-v3\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { withSitecoreContext } from \"@sitecore-jss/sitecore-jss-react\";\r\n\r\nimport DefaultModal from '../Modal/DefaultModal'\r\nimport ModalAjoutBeneficiaire from '../Modal/ModalAjoutBeneficiaire'\r\n\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport { isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\nimport { getApiDatas, postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\n\r\nclass PageEventMyMembers extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t\tapiDatas: [],\r\n modalConfirmDeleteText: \"\",\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Event/GetDataPageMesMembres`).then((apiDatas) => {\r\n\t\t\tthis.setState({ apiDatas: apiDatas });\r\n\t\t});\r\n\r\n\t\tdocument.body.classList.add(\"pg_challenge-detail\");\r\n\t\twindow.scrollTo(0, 0);\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove(\"pg_challenge-detail\");\r\n\t}\r\n\ttoggleDeleted = (e) => {\r\n var id = e.currentTarget.id.slice(17);\r\n this.setState({ selectedUserToDelete:id });\r\n var userData = this.state.apiDatas.Membres.find(o => o.Id === id);\r\n this.setState({ modalConfirmDeleteText: (userData.Name + \" : \" + userData.Mail) });\r\n this.ModalConfirmDelete.openModal();\r\n\t};\r\n\tuserDeleted = (e) => {\r\n\t\tdocument.body.classList.add(\"is-loading\");\r\n\t\tpostApiDatas(\"/apiaox/Challenge/PostUserEnable\", {\r\n\t\t\tUserId: this.state.selectedUserToDelete,\r\n\t\t\tEnable: false,\r\n\t\t}).then((res) => {\r\n\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\tgetApiDatas(`/apiaox/Event/GetDataPageMesMembres`).then((apiDatas) => {\r\n\t\t\t\tthis.setState({ apiDatas: apiDatas });\r\n\t\t\t});\r\n\t\t\tif (!res.IsValid) {\r\n\t\t\t\talert(res.Message);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\trender() {\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n const ROLE_TITULAIRE = \"TITULS\"; \r\n\r\n\t\tlet tableHeaders = [\r\n\t\t\t{ name: \"\", field: \"id\", sortable: false },\r\n\t\t\t{ name: \"Prénom/Nom\", field: \"Name\", sortable: true },\r\n\t\t\t{ name: \"E-Mail\", field: \"Mail\", sortable: true },\r\n\t\t\t{ name: \"Rôle\", field: \"RoleName\", sortable: true },\r\n\t\t\t{ name: \"Membre Actif\", field: \"IsDeleted\", sortable: false }\r\n\t\t];\r\n\r\n\t\tconst TableHeader = ({ headers, handleSort, sortedField, sortDirection }) => {\r\n\t\t\treturn (\r\n\t\t\t\t<div className=\"obj_table-header\">\r\n\t\t\t\t\t{headers.map((header, index) => (\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\tclassName={`header-cell ${header.sortable ? \"sortable\" : \"\"}${header.field === sortedField && sortDirection === 1 ? \" active\" : \"\"}`}\r\n\t\t\t\t\t\t\tonClick={() => handleSort(header.field)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span dangerouslySetInnerHTML={{ __html: header.name }} />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tconst TableRow = ({ rowData }) => {\r\n\t\t\treturn (\r\n\t\t\t\t<React.Fragment>\r\n\t\t\t\t\t<div className={`table-row`}>\r\n <div className=\"row-cell\"></div>\r\n <div className=\"row-cell\">{rowData.Name}</div>\r\n\t\t\t\t\t\t<div className=\"row-cell\">{rowData.Mail}</div>\r\n\t\t\t\t\t\t<div className=\"row-cell\">{rowData.RoleName}</div>\r\n\t\t\t\t\t\t<div className=\"row-cell\">\r\n { \r\n rowData.RoleCode === ROLE_TITULAIRE\r\n ? <input className=\"tgl tgl-light\" id={`checkbox_deleted_${rowData.Id}`} type=\"checkbox\" checked={!rowData.IsDeleted} disabled={true} />\r\n : <input className=\"tgl tgl-light\" id={`checkbox_deleted_${rowData.Id}`} type=\"checkbox\" defaultChecked={!rowData.IsDeleted} onChange={(e) => this.toggleDeleted(e)} />\r\n }\r\n\t\t\t\t\t\t\t<label className=\"tgl-btn\" htmlFor={`checkbox_deleted_${rowData.Id}`}></label>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</React.Fragment>\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tconst Table = ({ tableData, headers }) => {\r\n\t\t\tconst [sortedField, setSortedField] = useState(\"\");\r\n\t\t\tconst [sortDirection, setSortDirection] = useState(1);\r\n\r\n\t\t\tconst handleSort = (field) => {\r\n\t\t\t\tsetSortedField(field);\r\n\t\t\t\tsetSortDirection(sortDirection === 1 ? -1 : 1);\r\n\t\t\t};\r\n\r\n\t\t\tconst sortedTableData = tableData.sort((a, b) => {\r\n\t\t\t\tif (!sortedField) return 0;\r\n\t\t\t\tif (a[sortedField] > b[sortedField]) {\r\n\t\t\t\t\treturn sortDirection;\r\n\t\t\t\t} else if (a[sortedField] < b[sortedField]) {\r\n\t\t\t\t\treturn -sortDirection;\r\n\t\t\t\t}\r\n\t\t\t\treturn 0;\r\n\t\t\t});\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<div className=\"obj_tableau-beneficiaire\">\r\n\t\t\t\t\t<TableHeader headers={headers} handleSort={handleSort} sortedField={sortedField} sortDirection={sortDirection} />\r\n\t\t\t\t\t{sortedTableData.map((rowData) => (\r\n\t\t\t\t\t\t<TableRow key={rowData.id} rowData={rowData}/>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<section className=\"obj_section section_challenges\">\r\n\t\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t\t<h1 className=\"t_title\">Mes collaborateurs</h1>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t{(apiDatas.Membres && apiDatas.User?.RoleCode === ROLE_TITULAIRE) && <>\r\n <button \r\n className=\"obj_btn picto light obj_btn-title_absolute\" \r\n type=\"button\" \r\n onClick={() => this.ModalAjoutBeneficiaire.openModal()}\r\n >\r\n <span>Nouveau collaborateur</span>\r\n <IconSVG icon=\"userPlus\" />\r\n\t\t\t\t\t </button>\r\n\r\n {!this.state.isMobile \r\n ? <Table tableData={apiDatas.Membres} headers={tableHeaders} />\r\n : <div class=\"obj_tableau-beneficiaire\">\r\n {apiDatas.Membres.map((membre, index) => (\r\n <div class={`table-row${this.state.activeMenuGain ? \" is-expanded\" : \"\"}`} key={index}>\r\n <div class=\"table-header\">\r\n <div class=\"row-cell\">{membre.Name}</div>\r\n </div>\r\n <div class=\"table-ctn-row\">\r\n <div class=\"header-cell\">E-mail</div>\r\n <div class=\"row-cell\">{membre.Mail}</div>\r\n </div>\r\n <div class=\"table-ctn-row\">\r\n <div class=\"header-cell\">Rôle</div>\r\n <div class=\"row-cell\">{membre.RoleName}</div>\r\n </div>\r\n <div class=\"table-ctn-row\">\r\n <div class=\"header-cell\">Actif</div>\r\n <div class=\"row-cell\">\r\n { \r\n membre.RoleCode === ROLE_TITULAIRE\r\n ? <input class=\"tgl tgl-light\" id={`checkbox_deleted_${membre.Id}`} type=\"checkbox\" checked={membre.IsDeleted} disabled={true} />\r\n : <input class=\"tgl tgl-light\" id={`checkbox_deleted_${membre.Id}`} type=\"checkbox\" defaultChecked={membre.IsDeleted} onChange={(e) => this.toggleDeleted(e)} />\r\n }\r\n <label class=\"tgl-btn\" htmlFor={`checkbox_deleted_${membre.Id}`}></label>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n }\r\n\r\n <ModalAjoutBeneficiaire\r\n onRef={ref => (this.ModalAjoutBeneficiaire= ref)}\r\n />\r\n\r\n <DefaultModal \r\n onRef={(ref) => (this.ModalInvitation = ref)}\r\n htmlContent={<>\r\n <p className=\"t_main\">Inviter un nouveau membre</p>\r\n <div className=\"obj_form\">\r\n <Formik\r\n initialValues={{\r\n email: \"\",\r\n recaptcha: \"\",\r\n }}\r\n validationSchema={Yup.object().shape({\r\n email: Yup.string().email().required(),\r\n recaptcha: Yup.string().required(),\r\n })}\r\n validateOnChange={false} \r\n validateOnBlur={false}\r\n onSubmit={(values) => {\r\n document.body.classList.add(\"is-loading\");\r\n\r\n postApiDatas('/apiaox/Call/Invitation', values)\r\n .then((res) => {\r\n this.setState({\r\n InvitationServerError: !res.IsValid,\r\n InvitationServerErrorMessage: res.ExceptionMessage,\r\n });\r\n\r\n if(res.IsValid){\r\n this.ModalInvitation.closeModal();\r\n this.ModalInvitationConfirm.openModal();\r\n }\r\n\r\n if (this.recaptchaInvitation) {\r\n this.recaptchaInvitation.execute();\r\n }\r\n\r\n document.body.classList.remove(\"is-loading\");\r\n });\r\n }}\r\n >\r\n {({ handleSubmit, handleBlur, setFieldValue, errors, touched }) => (\r\n <form onSubmit={handleSubmit} name=\"InvitationForm\">\r\n <>\r\n <div className=\"ctn_input mb_30\">\r\n <Field\r\n className={errors.email && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"email\"\r\n placeholder={this.props.t(\"Connexion_emailPlaceholder\")}\r\n autoComplete=\"off\"\r\n />\r\n </div>\r\n <p className=\"t_mandatory mb_30\">{this.props.t(\"Connexion_mandatoryText\")}</p>\r\n\r\n <ReCaptcha\r\n ref={(ref) => (this.recaptchaInvitation = ref)}\r\n sitekey={this.props.t(\"recaptcha_sitekey\")}\r\n action=\"invitation\"\r\n verifyCallback={(recaptchaToken) => {\r\n document.body.classList.remove('is-loading');\r\n if (recaptchaToken.length > 0) {\r\n this.setState({\r\n ...this.state, \r\n isRecaptchaLoaded: true, \r\n errorMessage: ''\r\n });\r\n setFieldValue(\"recaptcha\", recaptchaToken, false);\r\n }\r\n }}\r\n />\r\n </>\r\n\r\n <>\r\n {(errors.email) && (\r\n <p className=\"t_error mb_20 fade-in\">\r\n {this.props.t(\"DefaultErrorMessage\")}\r\n {console.log(errors)}\r\n </p>\r\n )}\r\n {(errors.recaptcha) && (\r\n <p className=\"t_error mb_20 fade-in\">\r\n Le recaptcha n'a pas été initialisé correctement\r\n {console.log('recapcha', errors)}\r\n </p>\r\n )}\r\n {(this.state.InvitationServerError) && (\r\n <p className=\"t_error mb_20 fade-in\">\r\n {this.state.InvitationServerErrorMessage}\r\n </p>\r\n )}\r\n </>\r\n\r\n <div className=\"ctn_cta mb_20\">\r\n <button name=\"submit_loginform\" className=\"obj_cta\" type=\"submit\">\r\n Inviter\r\n </button>\r\n </div>\r\n </form>\r\n )}\r\n </Formik>\r\n </div>\r\n </>\r\n }\r\n />\r\n </>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageEventMyMembers));\r\n","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport LazyLoad from 'react-lazyload'\r\n\r\nimport { dayRemaining, strDateToFrLong, urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { CONST_EventTypes } from \"../../data/const\"\r\n\r\nclass ObjPushEvent extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\trender() {\r\n\t\tconst {event, pageEventDetail} = this.props;\r\n let activeSession = undefined;\r\n if(event.Sessions.length === 1 && event.Sessions[0].UserRegistered){\r\n activeSession = event.Sessions[0]\r\n } else {\r\n activeSession = event.Sessions.find(o => \r\n ((!this.state.activeStartDate) || (new Date(o.EventSession_StartDate) >= this.state.activeStartDate))\r\n && ((!this.state.activeEndDate) || (new Date(o.EventSession_StartDate) <= this.state.activeEndDate))\r\n );\r\n }\r\n\t\tconst DayRemaining = activeSession ? dayRemaining(activeSession.EventSession_StartDate) : -1;\r\n\t\tconst EventFinished = DayRemaining < 0;\r\n let SessionsInfos = event.EventType_Code === 'WEB'\r\n ? event.Sessions.map(o => o.EventSession_StartHour)\r\n : event.Sessions.map(o => o.Place?.EventPlace_City);\r\n SessionsInfos = SessionsInfos.filter((o, index) => SessionsInfos.indexOf(o) === index).sort();\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{ event && activeSession &&\r\n\t\t\t\t\t<div className={`obj_formation\r\n\t\t\t\t\t\t${' ' + CONST_EventTypes[event.EventType_Code].css}\r\n\t\t\t\t\t\t${' ' + event.Brand.Brand_CssClass}\r\n\t\t\t\t\t\t${activeSession.UserRegistered ?\" is_registered\" :\"\"}\r\n\t\t\t\t\t\t${\tEventFinished\r\n\t\t\t\t\t\t\t?\" is_finished\"\r\n\t\t\t\t\t\t\t:\tactiveSession.EventSession_Canceled\r\n\t\t\t\t\t\t\t\t? \" is_canceled\"\r\n\t\t\t\t\t\t\t\t:\"\"\r\n\t\t\t\t\t\t}`\r\n\t\t\t\t\t}>\r\n\t\t\t\t\t\t<div className=\"ctn_header-title\">\r\n <span>{activeSession?.EventSession_IsHalfDay === true ? \"Demi-journée de formation\" : event.EventType_Name}</span>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t{activeSession.UserRegistered === true && (\r\n\t\t\t\t\t\t\t\t\t(DayRemaining < 0) \r\n\t\t\t\t\t\t\t\t\t? <></>\r\n\t\t\t\t\t\t\t\t\t:\t(DayRemaining===0)\r\n\t\t\t\t\t\t\t\t\t\t? <div className=\"obj_jours-restant\">Dernier jour</div>\r\n\t\t\t\t\t\t\t\t\t\t: <div className=\"obj_jours-restant\">J-{DayRemaining}</div>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t<p className=\"t_title\">{event.Event_Title}</p>\r\n\r\n\t\t\t\t\t\t\t\t<ul className=\"list_infos\">\r\n\t\t\t\t\t\t\t\t\t<li className=\"t_date\">\r\n\t\t\t\t\t\t\t\t\t\t{\t(activeSession.EventSession_EndDate!=null)\r\n\t\t\t\t\t\t\t\t\t\t\t? <>Du {strDateToFrLong(activeSession.EventSession_StartDate)}<br/>au {strDateToFrLong(activeSession.EventSession_EndDate)}</>\r\n\t\t\t\t\t\t\t\t\t\t\t: <>{event.Sessions.length>1 ? \"à partir du \" : \"\"}{strDateToFrLong(activeSession.EventSession_StartDate)}</>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</li>\r\n\r\n\t\t\t\t\t\t\t\t\t<li className=\"t_info\">\r\n\t\t\t\t\t\t\t\t\t\t{SessionsInfos.length!==0 ? SessionsInfos.join(\" - \") : \"-\"}\r\n\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t\t\t\t{\tEventFinished\r\n\t\t\t\t\t\t\t\t\t?<p className=\"t_statut\">Événement passé</p>\r\n\t\t\t\t\t\t\t\t\t:\tactiveSession.EventSession_Canceled\r\n\t\t\t\t\t\t\t\t\t\t? <p className=\"t_statut\">Evènement annulé</p>\r\n\t\t\t\t\t\t\t\t\t\t:\tactiveSession.UserRegistered\r\n\t\t\t\t\t\t\t\t\t\t\t? <>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<a href={`${pageEventDetail?.url}?id=${event.Event_Id}`} className=\"obj_btn light\">gérer mon inscription</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_statut\">Vous êtes inscrits</p>\r\n\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t: <a href={`${pageEventDetail?.url}?id=${event.Event_Id}`} className=\"obj_btn\">inscrivez-vous</a>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_image\">\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_visuel fade-in\">\r\n\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t<img src={urlToHost(event.Event_MediaUrl)} alt={event.Event_MediaAlt}/>\r\n\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_logo\">\r\n\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t<img src={urlToHost(event.Brand.Brand_LogoUrl)} alt={event.Brand.Brand_Name}/>\r\n\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjPushEvent)","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport { getApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport ObjPushEvent from '../ObjEvent/ObjPushEvent';\r\n\r\nclass PageEventMyRegistrations extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tapiDatas:[],\r\n\t\t}\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Event/GetDataPageMyRegistrations`)\r\n\t\t.then((apiDatas) => { this.setState({ apiDatas:apiDatas }) })\r\n\r\n\t\tdocument.body.classList.add('pg_formation_inscription')\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t\twindow.addEventListener('scroll', this.throttleWindowScrollMainHeader)\r\n\t\twindow.scrollTo(0,0)\r\n \t}\r\n\r\n\trender() {\r\n\t\tconst apiDatas = this.state.apiDatas\r\n\t\tconst { PageEventDetail } = this.props.fields.data;\r\n\r\n\t\treturn (<>\r\n\t\t\t<section className=\"obj_section section_formation_list\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\r\n\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t<h1 className=\"t_title\">Mes inscriptions</h1>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t{ \t!apiDatas.Events \r\n\t\t\t\t\t\t\t//API non chargée\r\n\t\t\t\t\t\t\t?<div className=\"obj_challenge is_empty\"/>\r\n\t\t\t\t\t\t\t:\tapiDatas.Events.length<1\r\n\t\t\t\t\t\t\t\t//pas de participations par l'API\r\n\t\t\t\t\t\t\t\t?<div className=\"obj_formation is_empty\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\" dangerouslySetInnerHTML={{__html: \"Votre équipe L'Oréal<br /> Beauté Dermatologique<br /> prépare avec soin vos<br /> prochains événements<br /><br />A très vite !\"}} />\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<picture className=\"ctn_background\">\r\n\t\t\t\t\t\t\t\t\t\t<source srcSet={require('../../assets/images/v_empty_list_mob.jpg')} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t<img src={require('../../assets/images/v_empty_list.jpg')} alt=\"\"/>\r\n\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t:<>\r\n\t\t\t\t\t\t\t\t\t{apiDatas.Events.map((event, index) => (\r\n\t\t\t\t\t\t\t\t\t\t<ObjPushEvent key={index} \r\n event={event} \r\n pageEventDetail={PageEventDetail}\r\n />\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(PageEventMyRegistrations)","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport { Link } from 'react-router-dom'\r\nimport LazyLoad from 'react-lazyload'\r\n\r\nimport { dayRemaining, strDateToFrLong, urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { CONST_EventTypes } from \"../../data/const\"\r\n\r\nclass ObjPushEventSession extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\trender() {\r\n\t\tconst {eventSession, pageEventDetail} = this.props;\r\n \r\n\t\tconst DayRemaining = eventSession ? dayRemaining(eventSession.EventSession_StartDate) : -1;\r\n\t\tconst EventFinished = DayRemaining < 0;\r\n\t\tlet SessionsInfos = eventSession.EventType_Code === 'WEB' ? eventSession?.EventSession_StartHour : eventSession?.Place?.EventPlace_City\r\n\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{ eventSession &&\r\n\t\t\t\t\t<div className={`obj_formation\r\n\t\t\t\t\t\t${' ' + CONST_EventTypes[eventSession.EventType_Code].css}\r\n\t\t\t\t\t\t${' ' + eventSession.Brand.Brand_CssClass}\r\n\t\t\t\t\t\t${eventSession.UserRegistered ?\" is_registered\" :\"\"}\r\n\t\t\t\t\t\t${\tEventFinished\r\n\t\t\t\t\t\t\t?\" is_finished\"\r\n\t\t\t\t\t\t\t:\teventSession.EventSession_Canceled\r\n\t\t\t\t\t\t\t\t? \" is_canceled\"\r\n\t\t\t\t\t\t\t\t:\"\"\r\n\t\t\t\t\t\t}`\r\n\t\t\t\t\t}>\r\n\t\t\t\t\t\t<div className=\"ctn_header-title\">\r\n <span>{eventSession.EventSession_IsHalfDay === true ? \"Demi-journée de formation\" : eventSession.EventType_Name}</span>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t{eventSession.UserRegistered === true && (\r\n\t\t\t\t\t\t\t\t\t(DayRemaining < 0) \r\n\t\t\t\t\t\t\t\t\t? <></>\r\n\t\t\t\t\t\t\t\t\t:\t(DayRemaining===0)\r\n\t\t\t\t\t\t\t\t\t\t? <div className=\"obj_jours-restant\">Dernier jour</div>\r\n\t\t\t\t\t\t\t\t\t\t: <div className=\"obj_jours-restant\">J-{DayRemaining}</div>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t<p className=\"t_title\">{eventSession.Event_Title}</p>\r\n\r\n\t\t\t\t\t\t\t\t<ul className=\"list_infos\">\r\n\t\t\t\t\t\t\t\t\t<li className=\"t_date\">\r\n\t\t\t\t\t\t\t\t\t\t{\t(eventSession.EventSession_EndDate!=null)\r\n\t\t\t\t\t\t\t\t\t\t\t? <>Du {strDateToFrLong(eventSession.EventSession_StartDate)}<br/>au {strDateToFrLong(eventSession.EventSession_EndDate)}</>\r\n\t\t\t\t\t\t\t\t\t\t\t: <>{strDateToFrLong(eventSession.EventSession_StartDate)}</>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</li>\r\n\r\n\t\t\t\t\t\t\t\t\t<li className=\"t_info\">\r\n\t\t\t\t\t\t\t\t\t\t{SessionsInfos ? SessionsInfos : \"-\"}\r\n\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t\t\t\t{\tEventFinished\r\n\t\t\t\t\t\t\t\t\t?<p className=\"t_statut\">Événement passé</p>\r\n\t\t\t\t\t\t\t\t\t:\teventSession.EventSession_Canceled\r\n\t\t\t\t\t\t\t\t\t\t? <p className=\"t_statut\">Evènement annulé</p>\r\n\t\t\t\t\t\t\t\t\t\t:\teventSession.UserRegistered\r\n\t\t\t\t\t\t\t\t\t\t\t? <>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Link to={`${pageEventDetail?.url}?id=${eventSession.Event_Id}&idSession=${eventSession.EventSession_Id}`} className=\"obj_btn light\">gérer mon inscription</Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_statut\">Vous êtes inscrits</p>\r\n\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t: <Link to={`${pageEventDetail?.url}?id=${eventSession.Event_Id}&idSession=${eventSession.EventSession_Id}`} className=\"obj_btn\">inscrivez-vous</Link>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_image\">\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_visuel fade-in\">\r\n\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t<img src={urlToHost(eventSession.Event_MediaUrl)} alt={eventSession.Event_MediaAlt}/>\r\n\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_logo\">\r\n\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t<img src={urlToHost(eventSession.Brand.Brand_LogoUrl)} alt={eventSession.Brand.Brand_Name}/>\r\n\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjPushEventSession)","import React, { Component } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport Slider from \"react-slick\"\r\n\r\nimport { urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport '../../assets/css/0020_objects/0940_obj_carousel_aside_banner.css'\r\n\r\n\r\nclass ObjAsideSliderBanner extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tpushBannerList: [\r\n\t\t\t\t{\r\n\t\t\t\t\thasLinkBanner: true,\r\n\t\t\t\t\tlinkBanner: \"/Formation\",\r\n\t\t\t\t\tvisuelBanner: \"/-/media/formationcaf/System/Formations/v_carousel_formation_01.ashx\",\r\n\t\t\t\t\taltTextBanner: \"Faites le plein de points !\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\thasLinkBanner: false,\r\n\t\t\t\t\tlinkBanner: \"\",\r\n\t\t\t\t\tvisuelBanner: \"/-/media/formationcaf/System/Formations/v_carousel_formation_02.ashx\",\r\n\t\t\t\t\taltTextBanner: \"Préparez-vous au mieux !\"\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t}\r\n\r\n\tonSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\t\r\n\trender() {\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n\t\tconst settings = {\r\n className: \"obj_carousel_aside_banner\",\r\n\t\t\tinfinite: true,\r\n\t\t\tautoplay: true,\r\n\t\t\tautoplaySpeed: 5000,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n\t\t\tonSwipe: this.onSwipe.bind(this),\r\n\t\t\tarrows: true,\r\n\t\t\tdots: true,\r\n\t\t\tdotsClass: \"slider-nav\",\r\n\t\t\tappendDots: dots => (\r\n\t\t\t\t<div className=\"slider-nav\" >\r\n\t\t\t\t\t<ul> {dots} </ul>\r\n\t\t\t\t</div>\r\n\t\t\t),\r\n\t\t\tspeed: 750,\r\n }\r\n\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_aside_carrousel_banner\">\r\n\t\t\t\t<div className=\"ctn_carrousel\">\r\n\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n\t\t\t\t\t\t{this.state.pushBannerList.map((itemSlider, index) => (\r\n\t\t\t\t\t\t\t<div key={index} className=\"item\">\r\n\t\t\t\t\t\t\t\t{itemSlider.hasLinkBanner ? (\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_image_banner\">\r\n\t\t\t\t\t\t\t\t\t\t<Link to={itemSlider.linkBanner}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_image\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_image fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={urlToHost(itemSlider.visuelBanner)} alt={itemSlider.altText || \"\"} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_image_banner\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_image\">\r\n\t\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_image fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src={urlToHost(itemSlider.visuelBanner)} alt={itemSlider.altText || \"\"} />\r\n\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Slider>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjAsideSliderBanner","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport { throttle, isMobile, isNotAtTop } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { getApiDatas, isDateValid } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport ObjPushEventSession from '../ObjEvent/ObjPushEventSession';\r\nimport ObjAsideSliderBanner from '../inc/ObjAsideSliderBanner'\r\n\r\nclass PageEvents extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t\tpushsToShow: 5,\r\n\t\t\tpushsInterval: 3,\r\n\t\t\tapiDatas:[],\r\n\t\t\tactiveBrands:[],\r\n\t\t\tactiveTypes:[],\r\n\t\t\t\r\n\t\t\tactiveStartDate:null,\r\n\t\t\tactiveEndDate:null,\r\n\t\t\teventsFiltered:[],\r\n\t\t\tcitiesFiltered:[],\r\n\t\t}\r\n\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n \tthis.handleWindowScrollMainHeader = this.handleWindowScrollMainHeader.bind(this)\r\n\t\tthis.throttleWindowScrollMainHeader = throttle(this.handleWindowScrollMainHeader, 200)\r\n\r\n\t\tthis.InputEventStartDate = React.createRef();\r\n\t\tthis.InputEventEndDate = React.createRef();\r\n\t}\r\n\r\n\r\n\tcomponentDidMount() {\r\n\t\t\r\n\r\n\t\tgetApiDatas(`/apiaox/Event/GetDataPageEvents`)\r\n\t\t.then((activeApiDatas) => { \r\n\t\t\t\r\n\t\t\tthis.setState({ apiDatas:{...activeApiDatas, Cities: this.getUniqueCitiesWithData(activeApiDatas)} }) \r\n\t\t\tthis.filterReset();\r\n\t\t})\r\n\r\n\t\tdocument.body.classList.add('pg_formation')\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t\twindow.addEventListener('scroll', this.throttleWindowScrollMainHeader)\r\n\t\twindow.scrollTo(0,0)\r\n \t}\r\n \tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove('pg_formation')\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t\twindow.removeEventListener('scroll', this.throttleWindowScrollMainHeader)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\thandleWindowScrollMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tmodeMini: isNotAtTop()\r\n\t\t})\r\n\t}\r\n\tshowMorePushs = () => {\r\n\t\tthis.setState(prevState => ({\r\n\t\t\tpushsToShow: prevState.pushsToShow + this.state.pushsInterval\r\n\t\t}))\r\n\t}\r\n\tfilterBrand = (brandCode) => {\r\n\t\tlet newActiveBrands = this.state.activeBrands;\r\n\t\tconst index = this.state.activeBrands.indexOf(brandCode);\r\n\t\t(index === -1) ? newActiveBrands.push(brandCode) : newActiveBrands.splice(index, 1);\r\n\r\n\t\tthis.setState({\r\n\t\t\tactiveBrands: newActiveBrands,\r\n\t\t}, function() {\r\n\t\t\tthis.filterFormations();\r\n\t\t})\r\n\t}\r\n\tfilterType = (typeCode) => {\r\n\t\tlet newActiveTypes = this.state.activeTypes;\r\n\t\tconst index = this.state.activeTypes.indexOf(typeCode);\r\n\t\t(index === -1) ? newActiveTypes.push(typeCode) : newActiveTypes.splice(index, 1);\r\n\r\n\t\tthis.setState({\r\n\t\t\tactiveTypes: newActiveTypes,\r\n\t\t}, function() {\r\n\t\t\tthis.filterFormations();\r\n\t\t})\r\n\t}\r\n\tfilterCity = (selectedCity) => {\r\n\t\tlet existing = this.state.citiesFiltered.find(city => city === selectedCity)\r\n\r\n\t\tthis.setState({\r\n\t\t\tcitiesFiltered: existing ? this.state.citiesFiltered.filter(city => city !== selectedCity):[...this.state.citiesFiltered,selectedCity],\r\n\t\t}, function() {\r\n\t\t\tthis.filterFormations();\r\n\t\t})\r\n\t}\r\n\tfilterDateBegin = (dateStart) => {\r\n\t\tif(isDateValid(dateStart)){\r\n\t\t\tthis.setState({\r\n\t\t\t\tactiveStartDate: new Date(dateStart + 'T00:00:00'),\r\n\t\t\t}, function() {\r\n\t\t\t\tthis.filterFormations();\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\tfilterDateEnd = (dateEnd) => {\r\n\t\tif(isDateValid(dateEnd)){\r\n var dDateEnd = new Date(dateEnd + 'T00:00:00');\r\n dDateEnd.setDate(dDateEnd.getDate() + 1);\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tactiveEndDate: dDateEnd,\r\n\t\t\t}, function() {\r\n\t\t\t\tthis.filterFormations();\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\tfilterReset = () => {\r\n\t\tthis.setState({\r\n\t\t\tactiveBrands: [],\r\n\t\t\tactiveTypes: [],\r\n\t\t\tcitiesFiltered:[],\r\n\t\t\tactiveStartDate: null,\r\n\t\t\tactiveEndDate: null,\r\n\t\t\t\r\n\t\t}, function() {\r\n\t\t\tthis.InputEventStartDate.current.value = \"\";\r\n\t\t\tthis.InputEventEndDate.current.value = \"\";\r\n\t\t\tthis.filterFormations();\r\n\t\t})\r\n\t}\r\n\tfilterFormations(){\r\n\t\tthis.setState({\r\n\t\t\tpushsToShow:5,\r\n\t\t\teventsFiltered:this.state.apiDatas.Events?.filter((event) => {return (this.state.activeBrands.length === 0)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t|| this.state.activeBrands.includes(event.Brand.Brand_Code);})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.filter((event) => {return (this.state.activeTypes.length === 0)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t|| this.state.activeTypes.includes(event.EventType_Code);})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map((event) => {return !this.state.activeStartDate ? \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...event, Sessions:event.Sessions.filter(o => new Date(o.EventSession_StartDate) >= this.state.activeStartDate)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map((event) => {return !this.state.activeEndDate ? \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...event, Sessions:event.Sessions.filter(o => new Date(o.EventSession_StartDate) < this.state.activeEndDate)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map((event) => { return this.state.citiesFiltered.length === 0 ? \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...event, Sessions:event.Sessions.filter(o => this.state.citiesFiltered.includes(o?.Place?.EventPlace_City))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\r\n\t\t})\r\n\t}\r\n\r\n\tgetUniqueCitiesWithData(data) {\r\n\t\tconst citiesSet = new Set();\r\n\t \r\n\t\tdata.Events.map(event => {\r\n\t\t event.Sessions.map(session => {\r\n\t\t\tconst cityName = session?.Place?.EventPlace_City;\r\n\t\t\tif (cityName) {\r\n\t\t\t\tcitiesSet.add(cityName);\r\n\t\t\t}\r\n\t\t\treturn null\r\n\t\t });\r\n\t\t return null\r\n\t\t});\r\n\t\tconst uniqueCitiesWithData = Array.from(citiesSet).sort()\r\n\t\treturn uniqueCitiesWithData;\r\n\t }\r\n\r\n\trender() {\r\n\t\tconst apiDatas = this.state.apiDatas\r\n\t\tconst { PageEventDetail } = this.props.fields.data;\r\n\r\n\r\n\t\treturn (<>\r\n\t\t\t<section className=\"obj_section section_formation\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t<h1 className=\"t_title\">Prochaines formations</h1>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t<section className=\"ctn_filter\">\r\n\t\t\t\t\t\t\t{ \t!this.state.isMobile \r\n\t\t\t\t\t\t\t\t?<div className=\"obj_filter-challenge\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_filters_header\">\r\n\t\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">Filtre(s)</h3>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_remove-filter\">\r\n\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_header_exp\" onClick={() => this.filterReset()}>Tout réinitialiser</button>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t{apiDatas.Brands && \r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par marque</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.Brands.map((brand, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => this.filterBrand(brand.Brand_Code)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.activeBrands.indexOf(brand.Brand_Code) > -1}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={brand.Brand_Code}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{brand.Brand_Name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t{apiDatas.EventTypes && \r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par type</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.EventTypes.map((eventType, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={eventType.EventType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={eventType.EventType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={eventType.EventType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => this.filterType(eventType.EventType_Code)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.activeTypes.indexOf(eventType.EventType_Code) > -1}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={eventType.EventType_Code}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{eventType.EventType_Name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item var_date\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par date</div>\r\n\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Du</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"date\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"EventStartDate\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"date_start\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tref={this.InputEventStartDate}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"jj/mm/aaaa\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={10} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => this.filterDateBegin(e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Au</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"date\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"EventEndDate\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"date_end\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tref={this.InputEventEndDate}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"jj/mm/aaaa\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={10} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => this.filterDateEnd(e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t{apiDatas?.Cities?.length>0 && \r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par ville</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.Cities.map((city, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={city}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={city}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={city}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => this.filterCity(city)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.citiesFiltered?.find(activeCity=>activeCity === city)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={city}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{city}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t:<>\r\n\t\t\t\t\t\t\t\t\t<div className={`obj_filter-challenge${this.state.active ? ' is-expanded' : ''}`}>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filters_header\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">Filtrer</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_remove-filter\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_btn_reinit_filters\" onClick={() => this.filterReset()}>Tout réinitialiser</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t\t\t{apiDatas.Brands && \r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par marque</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.Brands.map((brand, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={brand.Brand_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => this.filterBrand(brand.Brand_Code)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.activeBrands.indexOf(brand.Brand_Code) > -1}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={brand.Brand_Code}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{brand.Brand_Name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t{apiDatas.EventTypes && \r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par type</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.EventTypes.map((eventType, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={eventType.EventType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={eventType.EventType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={eventType.EventType_Code}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => this.filterType(eventType.EventType_Code)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.activeTypes.indexOf(eventType.EventType_Code) > -1}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={eventType.EventType_Code}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{eventType.EventType_Name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item var_date\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par date</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Du</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"date\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"EventStartDate\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"date_start\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tref={this.InputEventStartDate}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"jj/mm/aaaa\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={10} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => this.filterDateBegin(e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Au</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"date\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"EventEndDate\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"date_end\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tref={this.InputEventEndDate}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"jj/mm/aaaa\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={10} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => this.filterDateEnd(e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t{apiDatas?.Cities?.length>0 && \r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_filter-list-item\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"t_title\">Par ville</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_filter-list-container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{apiDatas.Cities.map((city, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_form-element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={city}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={city}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={city}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => this.filterCity(city)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.state.citiesFiltered?.find(activeCity=>activeCity === city)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={city}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{city}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<div className={`obj_filter-challenge-menu${this.state.active ? ' is-clicked' : ''}`}>\r\n\t\t\t\t\t\t\t\t\t\t<button className=\"obj_btn_filter-challenge\" onClick={ () => this.setState({active: !this.state.active}) }>\r\n\t\t\t\t\t\t\t\t\t\t\t{/* <!-- is-expanded --> */}\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t\t<section className=\"ctn_list_formation\">\r\n\t\t\t\t\t\t\t{ \t!apiDatas.Events \r\n\t\t\t\t\t\t\t\t//API non chargée\r\n\t\t\t\t\t\t\t\t?<div className=\"obj_challenge is_empty\"/>\r\n\t\t\t\t\t\t\t\t:\tapiDatas.Events.length<1\r\n\t\t\t\t\t\t\t\t\t//pas de participations par l'API\r\n\t\t\t\t\t\t\t\t\t?<div className=\"obj_formation is_empty\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\" dangerouslySetInnerHTML={{__html: \"Votre équipe L'Oréal<br /> Beauté Dermatologique<br /> prépare avec soin vos<br /> prochains événements<br /><br />A très vite !\"}} />\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_background\">\r\n\t\t\t\t\t\t\t\t\t\t\t<source srcSet={require('../../assets/images/v_empty_list_mob.jpg')} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t\t<img src={require('../../assets/images/v_empty_list.jpg')} alt=\"\"/>\r\n\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t:\tthis.state.eventsFiltered.length < 1\r\n\t\t\t\t\t\t\t\t\t\t//pas de participations par le filtrage\r\n\t\t\t\t\t\t\t\t\t\t?<div className=\"obj_formation is_empty\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\" dangerouslySetInnerHTML={{__html: \"Aucun résultat\"}} />\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_background\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<source srcSet={require('../../assets/images/v_empty_list_mob.jpg')} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src={require('../../assets/images/v_empty_list.jpg')} alt=\"\"/>\r\n\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t//liste filtrée\r\n\t\t\t\t\t\t\t\t\t\t: <>\r\n\t\t\t\t\t\t\t\t\t\t\t{this.state?.eventsFiltered?.flatMap(event=> \r\n\t\t\t\t\t\t\t\t\t\t\t\tevent?.Sessions?.map((eventSession,index)=>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{return({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...eventSession,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tEventType_Code:event.EventType_Code,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tEventType_Name:event.EventType_Name,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tEvent_Title:event.Event_Title,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tBrand:event.Brand,Event_Id:event.Event_Id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tEvent_MediaUrl:event.Event_MediaUrl,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tEvent_MediaAlt:event.Event_MediaAlt\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}))\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.sort((e1,e2) => new Date(e1.EventSession_StartDate)-new Date(e2.EventSession_StartDate))\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.slice(0, this.state.pushsToShow)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((eventSession, index) => \r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ObjPushEventSession \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\teventSession={eventSession} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpageEventDetail={PageEventDetail}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{(this.state?.eventsFiltered?.flatMap(event=> event.Sessions).length > this.state.pushsToShow) && \r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"button\" onClick={() => this.showMorePushs()}>Plus de formations</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t} \r\n\t\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t\t<section className=\"ctn_aside\">\r\n\t\t\t\t\t\t\t<ObjAsideSliderBanner />\r\n\t\t\t\t\t\t</section>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(PageEvents)","import React, { Component } from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\n\r\nimport { getApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\n\r\nclass PageFAQ extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\topenedQuestions: {},\r\n\t\t\tapiDatas: [],\r\n\t\t\tinitDataOK: false,\r\n\t\t};\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Call/GetDataPageFaq`).then((apiDatas) => {\r\n\t\t\tthis.setState({ apiDatas: apiDatas });\r\n\t\t\tif (apiDatas?.Content) {\r\n\t\t\t\tthis.setState({ initDataOK: true });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdocument.body.classList.add('pg_faq')\r\n\t\twindow.scrollTo(0,0)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove('pg_faq')\r\n\t}\r\n\r\n\t// Méthode pour basculer l'état d'expansion d'une question\r\n\ttoggleQuestion = (categoryIndex, questionIndex) => {\r\n\t\tconst openedQuestions = { ...this.state.openedQuestions };\r\n\t\tconst key = `${categoryIndex}-${questionIndex}`; // Utilise un identifiant unique pour chaque question\r\n\t\topenedQuestions[key] = !openedQuestions[key]; // Inverse l'état d'expansion de la question\r\n\t\tthis.setState({ openedQuestions });\r\n\t};\r\n\r\n\trender() {\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<section className=\"obj_section section_faq\">\r\n\t\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t\t<h1 className=\"t_title\">Questions fréquentes</h1>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t{this.state.initDataOK &&\r\n\t\t\t\t\t\t\tapiDatas.Content.map((category, categoryIndex) => (\r\n\t\t\t\t\t\t\t\t<div key={categoryIndex} className=\"ctn_accordion\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"t_title\">{category.Title}</h2>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t{category.Questions.map((questionItem, questionIndex) => (\r\n\t\t\t\t\t\t\t\t\t\t<div key={questionIndex} className={`obj_accordion${this.state.openedQuestions[`${categoryIndex}-${questionIndex}`] ? \" is_expanded\" : \"\"}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_accordion-header\" onClick={() => this.toggleQuestion(categoryIndex, questionIndex)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">{questionItem.Title}</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_accordion_toggle-icon\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_accordion-content\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p dangerouslySetInnerHTML={{ __html: questionItem.Desc }}></p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t))}\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_accordion\">\r\n\t\t\t\t\t\t\t<p>\r\n\t\t\t\t\t\t\t\tPour toute autre question, vous pouvez contacter la hotline par téléphone au 09.70.25.11.40 ou par email à {\" \"}\r\n\t\t\t\t\t\t\t\t<a href=\"mailto:partneracademy_loreal@tessi.fr\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n\t\t\t\t\t\t\t\t\tpartneracademy_loreal@tessi.fr\r\n\t\t\t\t\t\t\t\t</a>{\" \"}\r\n\t\t\t\t\t\t\t\tou votre visiteur pharmaceutique\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(PageFAQ);\r\n","import { Text, Image } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport React, { Component } from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport LazyLoad from \"react-lazyload\";\r\nimport moment from \"moment\";\r\n\r\nimport { dayFrom } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\nimport { TRAININGNBJOURISNEW } from \"../../data/const\"\r\n\r\n\r\nclass ObjSectionFormation extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.handleRunFormation = this.handleRunFormation.bind(this);\r\n\t}\r\n\r\n\thandleRunFormation() {\r\n\t\tif (this.props.scDataTraining.trainingUrl.url !== \"\" && this.props.scDataTraining.trainingDateAvailable.dateValue < new Date()) {\r\n\t\t\tdocument.location.href = this.props.scDataTraining.trainingUrl.url;\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst scDataTraining = this.props.scDataTraining;\r\n\t\tconst apiDataTraining = this.props.apiDataTraining;\r\n\r\n\t\tvar bTrainingNotAvailable = scDataTraining.trainingDateAvailable.dateValue > new Date();\r\n\t\tvar bTrainingDone = !bTrainingNotAvailable && apiDataTraining?.UserTraining_Completed;\r\n\t\tvar bTrainingInProgress = !bTrainingNotAvailable && apiDataTraining?.UserTraining_InProgress;\r\n\t\tvar bDoTraining = !bTrainingNotAvailable && !bTrainingInProgress && !bTrainingDone;\r\n\t\tvar bIsNew = !bTrainingNotAvailable && dayFrom(scDataTraining.trainingDateAvailable.dateValue) < TRAININGNBJOURISNEW;\r\n\t\tvar sDateTraining = moment(scDataTraining.trainingDateAvailable.dateValue).format(this.props.t(\"FormatDateFormation\"));\r\n\r\n\t\treturn (\r\n\t\t\t<article\r\n\t\t\t\tclassName={`${this.props.mini ? \"obj_formation_mini_parcours\" : \"ctn_page-liste\"}${bTrainingDone ? \" is-done\" : \"\"}${bTrainingInProgress ? \" is-progress\" : \"\"}${\r\n\t\t\t\t\tbTrainingNotAvailable ? \" is-not-available\" : \"\"\r\n\t\t\t\t}`}\r\n\t\t\t>\r\n\t\t\t\t<button type=\"button\" onClick={this.handleRunFormation}>\r\n\t\t\t\t\t<div className={this.props.mini ? \"ctn_image\" : \"ctn_page-liste-visuel\"}>\r\n\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t<figure className={this.props.mini ? \"\" : \"fade-in\"}>\r\n\t\t\t\t\t\t\t\t<Image field={this.props.scDataTraining.pageImage.jss} />\r\n\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t</LazyLoad>\r\n\r\n\t\t\t\t\t\t<div className=\"obj_cta-formation\">\r\n\t\t\t\t\t\t\t{bTrainingDone && this.props.t(\"Formation_RevoirLaFormation\")}\r\n\t\t\t\t\t\t\t{bTrainingInProgress && this.props.t(\"Formation_FormationInProgress\")}\r\n\t\t\t\t\t\t\t{bDoTraining && this.props.t(\"Formation_EffectuerLaFormation\")}\r\n\t\t\t\t\t\t\t{bTrainingNotAvailable && (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t{\" \"}\r\n\t\t\t\t\t\t\t\t\t{this.props.t(\"Formation_DisponibleLe\")} {sDateTraining}{\" \"}\r\n\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t<div className=\"obj_cta-formation-picto\"></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</button>\r\n\r\n\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t{!bTrainingNotAvailable && bIsNew && (\r\n\t\t\t\t\t\t<p className=\"t_tag\">\r\n\t\t\t\t\t\t\t<span>Nouveau</span>\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t<Text field={this.props.scDataTraining.pageTitle.jss} tag=\"h3\" />\r\n\r\n\t\t\t\t\t{apiDataTraining && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t<div className=\"obj_nb_view\">\r\n\t\t\t\t\t\t\t\t<IconSVG icon=\"eye\" width=\"20\" height=\"13\" />\r\n\t\t\t\t\t\t\t\t<span>{apiDataTraining.Training_NbViews || 0} {(apiDataTraining.Training_NbViews || 0)<2 ? \"vue\" : \"vues\"}</span>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\tclassName={`bt_fav-formation${apiDataTraining.isFavorite ? \" is-checked\" : \"\"}`}\r\n\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\tonClick={() => this.props.handleButtonFav(apiDataTraining.Training_ItemTraining_Id)}\r\n\t\t\t\t\t\t\t\tdisabled={bTrainingNotAvailable ? \"disabled\" : \"\"}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<IconSVG icon=\"star\" width=\"15\" height=\"14\" />\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t</article>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(ObjSectionFormation);\r\n","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { isAppMobile } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass ModalMAJFormationsFav extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false,\r\n\t\t\tisAppMobile: isAppMobile(),\t\t\t\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\thandleOKButtonClick = () => {\r\n\t\tthis.closeModal()\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\tstyle={customStyles}\r\n\t\t\t\tclassName=\"obj_popin popin_small\"\r\n\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<p className=\"t_title\">{this.props.modalTitle}</p>\r\n\t\t\t\t\t\t<p className=\"t_main\">{this.props.modalText}</p>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<div className=\"ctn_checkbox\">\r\n\t\t\t\t\t\t\t<input type=\"checkbox\" id=\"dontShowAgain\" onChange={() => localStorage.setItem('dontShowAgainModalMAJFormationsFav', 'true')}/>\r\n\t\t\t\t\t\t\t<label htmlFor=\"dontShowAgain\">Ne plus afficher ce message</label>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n {!this.state.isAppMobile && \r\n <Link className='obj_btn' to={'/Accueil/Mes-formations-favorites'}>\r\n {this.props.modalCtaText}\r\n </Link>\r\n }\r\n\t\t\t\t\t\t\t<button className=\"obj_btn light\" onClick={this.closeModal}>\r\n\t\t\t\t\t\t\t\tFermer\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ModalMAJFormationsFav","import { withSitecoreContext, Text, Image } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next';\r\nimport LazyLoad from 'react-lazyload'\r\nimport Slider from \"react-slick\"\r\nimport { scroller } from 'react-scroll'\r\n\r\nimport { isMobile, matchHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { getApiDatas, postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { trackGA4PageView, trackGA4Event } from '../../utilities/FrontFunctions/AoxTrackingFunctions'\r\nimport ObjSectionFormation from \"../ObjExpertise/ObjSectionFormation\"\r\nimport ModalFormationsFav from \"../Modal/ModalFormationsFav\"\r\n\r\nclass PageFormationExpertise extends Component {\r\n \tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisInitialised: false, \r\n\t\t\tapiDatas:[],\r\n\t\t}\r\n\t\t// this.handleWindowResizeTabsListFormation = this.handleWindowResizeTabsListFormation.bind(this)\r\n\t\t// this.throttleWindowResizeTabsListFormation = throttle(this.handleWindowResizeTabsListFormation, 200)\r\n\t\t\r\n\t\tthis.switchTab = this.switchTab.bind(this)\r\n\t\tthis.hideLevel2 = this.hideLevel2.bind(this)\r\n\t\tthis.showLevel2 = this.showLevel2.bind(this)\r\n\t\t//this.refreshHeight = this.refreshHeight.bind(this)\r\n\t\tthis.refreshTab = this.refreshTab.bind(this)\r\n\t\tthis.scrollTo = this.scrollTo.bind(this)\r\n\r\n\t\t// button fav\r\n\t\tthis.handleButtonFav = this.handleButtonFav.bind(this)\r\n\r\n\t\t// tracking\r\n\t\tthis.bPushTrackPage0_Done = true;\r\n\t\tthis.bPushTrackPage1_Done = false;\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Call/PageFormation?sBrandCode=${this.props.fields.data?.CurrentTraining.getbrand.codeAbbrege.value}`).then((apiDatas) => { this.setState({ apiDatas:apiDatas }) })\r\n\t\t\r\n\t\tmatchHeight('.obj_carousel.article-carousel h3')\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeTabsListFormation)\r\n\t\tthis.switchTab(0)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeTabsListFormation)\r\n\t}\r\n\t// refreshHeight(){\r\n\t// \theightAuto('.section_page-liste .ctn_page-liste h3')\r\n\t// \tif(document.body.clientWidth === 768) equalHeight('.section_page-liste .ctn_page-liste h3', 2)\r\n\t// \tif(document.body.clientWidth > 768) equalHeight('.section_page-liste .ctn_page-liste h3', 3)\r\n\t// }\r\n\trefreshTab(){\r\n\t\t//this.refreshHeight()\r\n\t\twindow.dispatchEvent(new Event('scroll'))\r\n\r\n\t\tthis.state.isInitialised && this.scrollTo()\r\n\t\tthis.setState({ isInitialised: true })\r\n\t}\r\n\thideLevel2(){\r\n\t\tvar $subTabItemLevel1 = document.querySelector(\".obj_tabs-list .ctn_row .lvl-1\"),\r\n\t\t\t$subTabItemLevel2 = document.querySelectorAll(\".obj_tabs-list .ctn_row .lvl-2\")\r\n\r\n\t\t$subTabItemLevel1.classList.add(\"active\", \"fade-in\")\r\n\t\t$subTabItemLevel2.forEach(subTabItemLevel2 => {\r\n\t\t\tsubTabItemLevel2.classList.remove(\"active\")\r\n\t\t})\r\n\r\n\t\tthis.refreshTab()\r\n\t}\r\n\tshowLevel2(buttonId){\r\n\t\tif( buttonId !== undefined ){\r\n\t\t\tvar $subTabItemLevel1 = document.querySelector(\".obj_tabs-list .ctn_row .lvl-1\")\r\n\r\n\t\t\t$subTabItemLevel1.classList.remove(\"active\")\r\n\t\t\tdocument.querySelector(\"#\" + buttonId).classList.add(\"active\", \"fade-in\")\r\n\r\n\t\t\tthis.refreshTab()\r\n\t\t}\r\n\t}\r\n\tswitchTab(index){\r\n\t\tvar $listItem = document.querySelectorAll(\".ctn_nav-tabs li\"),\r\n\t\t\t$tabItem = document.querySelectorAll(\".obj_tabs-list .ctn_row\")\r\n\r\n\t\t$listItem.forEach(listItem => listItem.classList.remove(\"active\"))\r\n\t\t$listItem[index].classList.add(\"active\")\r\n\t\t$tabItem.forEach(tabItem => tabItem.classList.remove(\"active\", \"fade-in\"))\r\n\t\t$tabItem[index].classList.add(\"active\", \"fade-in\")\r\n\r\n\t\tthis.hideLevel2()\r\n\r\n\t\t// tracking\r\n\t\tif(typeof window.trackDatas !== 'undefined'){\r\n\t\t\tvar trackData = window.trackDatas;\r\n\t\t\tif(index===0){\r\n\t\t\t\ttrackData.pageCategory = 'training list first range trainings';\r\n\t\t\t\ttrackGA4PageView(trackData).then((result) => { \t\r\n\t\t\t\t\tthis.bPushTrackPage0_Done = result;\r\n\t\t\t\t});\r\n\t\t\t} else if(index===1) {\r\n\t\t\t\ttrackData.pageCategory = 'training list other trainings';\r\n\t\t\t\ttrackGA4PageView(trackData).then((result) => { \t\r\n\t\t\t\t\tthis.bPushTrackPage1_Done = result;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t// handleWindowResizeTabsListFormation(){\r\n\t// \tthis.refreshHeight()\r\n\t// }\r\n\tscrollTo(){\r\n\t\tscroller.scrollTo('obj-tabs-list', {\r\n\t\t\tsmooth: true,\r\n\t\t\toffset: isMobile() ? -140 : -90\r\n\t\t})\r\n\t}\r\n\r\n\thandleButtonFav(id) {\r\n\t\tlet newApiDatas = this.state.apiDatas;\r\n\t\tconst indexInTrainingFavorites = newApiDatas.TrainingsFavorites.findIndex(o => o.Training_ItemTraining_Id === id); // Copiez l'élément que vous souhaitez modifier\r\n\r\n\t\tif (indexInTrainingFavorites === -1) {\r\n\t\t\t//ajouter favori\r\n\t\t\tdocument.body.classList.add('is-loading')\r\n trackGA4Event(window.trackDatas, \"training_add_favorite\", \"training\", \"training add favorite\", \"star icon\");\r\n\t\t\tpostApiDatas(`/apiaox/Call/AddTrainingFavorite?sIdTraining=${id}`, {})\r\n\t\t\t.then((res) => {\r\n\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\tif (!res.IsValid) { alert(res.Message) }\r\n\t\t\t\telse {\r\n\t\t\t\t\tnewApiDatas.TrainingsFavorites.push({ \"Training_ItemTraining_Id\": id });\r\n\t\t\t\t\tthis.setState({ apiDatas: newApiDatas })\r\n\t\t\t\t\tif(!localStorage.getItem('dontShowAgainModalMAJFormationsFav')){\r\n\t\t\t\t\t\tthis.ModalFormationsFav.openModal();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t//supprimer favori\r\n\t\t\tdocument.body.classList.add('is-loading')\r\n\t\t\tpostApiDatas(`/apiaox/Call/RemoveTrainingFavorite?sIdTraining=${id}`, {})\r\n\t\t\t.then((res) => {\r\n\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\tif (!res.IsValid) { alert(res.Message) }\r\n\t\t\t\telse {\r\n\t\t\t\t\tnewApiDatas.TrainingsFavorites.splice(indexInTrainingFavorites, 1);\r\n\t\t\t\t\tthis.setState({ apiDatas: newApiDatas })\r\n\t\t\t\t\tthis.ModalFormationsFav.closeModal();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n //Affichage d'une liste d'item à partir d'une liste de SitecoreData de training\r\n\tgetSectionFormation(scDataTrainings, mini){\r\n\t\treturn scDataTrainings.map((scDataTraining, index) => {\r\n //regroupement des apiData du training (\"Trainings\", \"UserBrandTrainings\", \"TrainingsFavorites\") en 1 objet\r\n\t\t\tlet apiDataTraining = this.state.apiDatas.Trainings?.find(o => o.Training_ItemTraining_Id.replace(/-/gi, \"\").toUpperCase() === scDataTraining.id);\r\n\t\t\tif(apiDataTraining){\r\n\t\t\t\tObject.assign(\tapiDataTraining, \r\n\t\t\t\t\t\t\t\tthis.state.apiDatas.UserBrandTrainings.find(o => o.Training_ItemTraining_Id === apiDataTraining.Training_ItemTraining_Id), \r\n\t\t\t\t\t\t\t\t{ isFavorite:this.state.apiDatas.TrainingsFavorites.some(o => o.Training_ItemTraining_Id === apiDataTraining.Training_ItemTraining_Id)}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (mini) {\r\n\t\t\t\treturn <div key={index} className=\"item\">\r\n\t\t\t\t\t<ObjSectionFormation scDataTraining={scDataTraining} apiDataTraining={apiDataTraining} mini={mini} handleButtonFav={this.handleButtonFav}/>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn <ObjSectionFormation key={index} scDataTraining={scDataTraining} apiDataTraining={apiDataTraining} mini={mini} handleButtonFav={this.handleButtonFav}/>\r\n\t\t\t}\r\n\t\t}) \r\n\t}\r\n\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst scDatas = this.props.fields.data.CurrentTraining;\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n\r\n\t\tconst sliderSettings = {\r\n\t\t\tdots: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tspeed: 500,\r\n\t\t\tslidesToShow: 4,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t\t// infinite: this.state.miniParcoursList.length > 3 ? true : false\r\n\t\t\tresponsive: [\r\n\t\t\t\t{\r\n\t\t\t\t\tbreakpoint: 960,\r\n\t\t\t\t\tsettings: {\r\n\t\t\t\t\t\tslidesToShow: 2,\r\n\t\t\t\t\t\t// infinite: this.state.pushList.length > 2 ? true : false\r\n\t\t\t\t\t\tinfinite: false\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tbreakpoint: 767,\r\n\t\t\t\t\tsettings: {\r\n\t\t\t\t\t\tslidesToShow: 2,\r\n\t\t\t\t\t\tinfinite: false\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\r\n\t\treturn (<>\r\n { oCurrentItemFields && \r\n <Text className=\"obj_title\" field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text> \r\n }\r\n\r\n <section className=\"section_page-liste\">\r\n <div className=\"str_container\">\r\n <div className=\"obj_tabs-list\" name=\"obj-tabs-list\">\r\n <ul className=\"ctn_nav-tabs\">\r\n {scDatas.MisEnAvant && scDatas.MisEnAvant[0].Trainings.length > 0 && \r\n <li><button type=\"button\" onClick={() => this.switchTab(0)}>{scDatas.MisEnAvant[0].pageTitle.value}</button></li>\r\n }\r\n <li><button type=\"button\" onClick={() => this.switchTab(1)}>{this.props.t('Formation_AutresFormations')}</button></li>\r\n </ul>\r\n \r\n {/* SectionFormationDashboard */}\r\n {apiDatas.UserBrandExpertise &&\r\n <section className=\"section_formation-dashboard\">\r\n <div className={\"obj_bloc_formation \" + apiDatas.UserBrandExpertise.Brand_CssClass}>\r\n <div className=\"obj_header_formation\">\r\n <h3 className=\"t_title\">Mon Expertise <strong>{apiDatas.UserBrandExpertise.Brand_Name}</strong></h3>\r\n <div className=\"t_tag\"><span>{apiDatas.UserBrandExpertise.Score} <em>PTS</em></span></div>\r\n\r\n <div className=\"obj_progress-bar-expertise\">\r\n <span><strong><em>{apiDatas.UserBrandExpertise.UserTrainingsOnLine_Completed} </em></strong>{apiDatas.UserBrandExpertise.UserTrainingsOnLine_Completed>1 ? \"Formations réalisées\":\"Formation réalisée\"}</span>\r\n\r\n <div className={\"obj_progress-bar \" + apiDatas.UserBrandExpertise.Brand_CssClass}>\r\n <div className=\"ctn_steps\">\r\n {Array.from(Array(apiDatas.UserBrandExpertise.Brand_NbTrainingsOnLine), (e, i) => {\r\n if (i < apiDatas.UserBrandExpertise.UserTrainingsOnLine_Completed) {\r\n return <div key={i} className=\"step is-complete\"></div>\r\n }\r\n return <div key={i} className=\"step\"></div>\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </section>\r\n }\r\n \r\n {/* SectionFormationMiniParcours */}\r\n {scDatas.MiniParcours?.length > 0 && scDatas.MiniParcours[0].Trainings.length > 0 &&\r\n <section className=\"obj_section section_mini_parcours\">\r\n <div className=\"ctn_section\">\r\n <div className=\"ctn_title\">\r\n <h2 className=\"t_subtitle\"><strong>{scDatas.MiniParcours[0].pageTitle.value}</strong></h2>\r\n </div>\r\n\r\n {\tscDatas.MiniParcours[0].Trainings.length > sliderSettings.slidesToShow\r\n ? <Slider className=\"obj_carousel obj_carrousel_mini_parcours\" {...sliderSettings}>{ this.getSectionFormation(scDatas.MiniParcours[0].Trainings, true) }</Slider>\r\n : <div className=\"obj_carousel obj_carrousel_mini_parcours\">{ this.getSectionFormation(scDatas.MiniParcours[0].Trainings, true) }</div>\r\n }\r\n </div>\r\n </section>\r\n }\r\n\r\n {/* MisEnAvant */}\r\n <section className=\"ctn_row obj_section section_list_formation\">\r\n <div className=\"ctn_sub-row\">\r\n {scDatas.MisEnAvant?.length > 0 && scDatas.MisEnAvant[0].Trainings.length > 0 && this.getSectionFormation(scDatas.MisEnAvant[0].Trainings, false)}\r\n </div>\r\n </section>\r\n\r\n {/* TrainingSegment & Trainings */}\r\n <section className=\"ctn_row obj_section section_list_formation\">\r\n <div className=\"ctn_sub-row lvl-1\">\r\n {scDatas.TrainingSegment?.length > 0 && scDatas.TrainingSegment.map((SegmentItem, index) => (\r\n <article key={index} className='ctn_page-liste'>\r\n <button type=\"button\" data-id={\"sub_\" + SegmentItem.id} onClick={() => this.showLevel2(\"sub_\" + SegmentItem.id)}>\r\n <LazyLoad>\r\n <figure className=\"fade-in\">\r\n <Image field={SegmentItem.pageImage.jss}></Image>\r\n </figure>\r\n </LazyLoad>\r\n <Text field={SegmentItem.pageTitle.jss} tag=\"h3\"></Text>\r\n </button>\r\n </article>\r\n ))}\r\n\r\n {scDatas.Trainings?.length > 0 && this.getSectionFormation(scDatas.Trainings, false)}\r\n </div>\r\n\r\n {scDatas.TrainingSegment && scDatas.TrainingSegment.map((SegmentItem, index) => (\r\n <div key={index} className=\"ctn_sub-row lvl-2\" id={\"sub_\" + SegmentItem.id}>\r\n <div className=\"obj_back-page\">\r\n <button className=\"bt_back-page\" type=\"button\" onClick={() => this.hideLevel2()}>{this.props.t('retour')}</button>\r\n </div>\r\n <Text field={SegmentItem.pageTitle.jss} tag=\"h3\"></Text>\r\n {SegmentItem.Trainings?.length > 0 && this.getSectionFormation(SegmentItem.Trainings, false)}\r\n </div>\r\n ))}\r\n </section>\r\n </div>\r\n\r\n <ModalFormationsFav \r\n onRef={ref => (this.ModalFormationsFav = ref)} \r\n modalTitle=\"\"\r\n modalText=\"Vous venez d'ajouter cette formation à votre liste de favoris\"\r\n modalCtaText=\"Retrouver mes favoris\"\r\n />\r\n </div>\r\n </section>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageFormationExpertise));","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass ModalMAJFormationsFav extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t\tthis.deleteFavori = this.deleteFavori.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\tdeleteFavori() {\r\n\t\tthis.props.handleDeleteFavori();\r\n\t\tthis.closeModal();\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\tstyle={customStyles}\r\n\t\t\t\tclassName=\"obj_popin popin_small\"\r\n\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<p className=\"t_title\">{this.props.modalTitle}</p>\r\n\t\t\t\t\t\t<p className=\"t_main\">{this.props.modalText}</p>\r\n\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t<button className=\"obj_btn obj_cta\" onClick={this.deleteFavori}>\r\n\t\t\t\t\t\t\t\tSupprimer\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t<button className=\"obj_btn light obj_cta\" onClick={this.closeModal}>\r\n\t\t\t\t\t\t\t\tAnnuler\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ModalMAJFormationsFav","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport { getApiDatas, postApiDatas} from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport ObjSectionFormation from \"../ObjExpertise/ObjSectionFormation\"\r\nimport ModalMAJFormationsFav from '../Modal/ModalMAJFormationsFav'\r\n\r\nclass PageFormationFavorites extends Component {\r\n \tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tapiDatas:[]\r\n\t\t}\r\n\r\n\t\tthis.handleButtonFav = this.handleButtonFav.bind(this)\r\n\t\tthis.handleDeleteFavori = this.handleDeleteFavori.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n getApiDatas(`/apiaox/Call/PageFavorites`)\r\n .then((apiDatas) => { this.setState({ apiDatas:apiDatas }) })\r\n\r\n\t\tdocument.body.classList.add('pg_favoris')\r\n\t\twindow.scrollTo(0,0)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove('pg_favoris')\r\n\t}\r\n\thandleButtonFav(id) {\r\n this.setState({ selectedFormationId:id });\r\n this.ModalMAJFormationsFav.openModal();\r\n }\r\n\thandleDeleteFavori() {\r\n let id = this.state.selectedFormationId;\r\n \r\n //appel Api RemoveTrainingFavorite puis MAJ this.state.apiDatas\r\n document.body.classList.add('is-loading')\r\n\t\tpostApiDatas(`/apiaox/Call/RemoveTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\tif (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newApiDatas = this.state.apiDatas;\r\n const indexInTrainingFavorites = newApiDatas.TrainingsFavorites.findIndex(o => o.Training_ItemTraining_Id === id); // Copiez l'élément que vous souhaitez modifier\r\n newApiDatas.TrainingsFavorites.splice(indexInTrainingFavorites, 1);\r\n this.setState({ apiDatas: newApiDatas })\r\n }\r\n\t\t})\r\n\t}\r\n //Affichage d'une liste d'item à partir d'une liste de SitecoreData de training\r\n\tgetSectionFormation(scDatasBrandTrainings){\r\n\t\treturn scDatasBrandTrainings.map((scDataTraining, index) => {\r\n //regroupement des apiData du training (\"Trainings\", \"UserBrandTrainings\", \"TrainingsFavorites\") en 1 objet\r\n let apiDataTraining = Object.assign(this.state.apiDatas.Trainings.find(o => o.Training_ItemTraining_Id.replace(/-/gi, \"\").toUpperCase() === scDataTraining.id), //!! Id sitecore contracté\r\n this.state.apiDatas.UserBrandTrainings.find(o => o.Training_ItemTraining_Id === scDataTraining.Training_ItemTraining_Id), \r\n {isFavorite:true}\r\n );\r\n return <ObjSectionFormation scDataTraining={scDataTraining} apiDataTraining={apiDataTraining} mini={false} handleButtonFav={this.handleButtonFav}/>\r\n\t\t}) \r\n\t}\r\n\trender() {\r\n\t\tconst scDatasBrands = this.props.fields.data.Accueil.Brands;\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n\r\n\t\treturn (<>\r\n <section className=\"obj_section section_favoris section_page-liste\">\r\n <div className=\"ctn_section\">\r\n <div className=\"ctn_title\">\r\n <h1 className=\"t_title\">Mes favoris</h1>\r\n </div>\r\n\r\n <div className=\"section_list_formation\">\r\n {apiDatas.TrainingsFavorites && \r\n scDatasBrands.filter(brand => { return brand.Formations.length > 0 }).map((brand, brandIndex) => {\r\n let scDatasBrandTrainings = brand.Formations[0].Trainings; brand.Formations[0].Segments.forEach( segment => { scDatasBrandTrainings = scDatasBrandTrainings.concat(segment.Trainings); })\r\n let scDatasBrandTrainingsFavorite = scDatasBrandTrainings.filter((scDataTraining) => { return this.state.apiDatas.TrainingsFavorites.some(o => o.Training_ItemTraining_Id.replace(/-/gi, \"\").toUpperCase() === scDataTraining.id); })\r\n return scDatasBrandTrainingsFavorite.length > 0 && \r\n <div key={brandIndex} className={`ctn_brand fade-in ${brand.brandCssClass.value}`}>\r\n <div className=\"ctn_title\">\r\n <h2 className=\"t_title\">{brand.pageTitle.jss.value}</h2>\r\n </div>\r\n <div className=\"ctn_sub-row\">\r\n { this.getSectionFormation(scDatasBrandTrainingsFavorite) }\r\n </div>\r\n </div>\r\n })}\r\n </div>\r\n </div>\r\n </section>\r\n\r\n\t\t\t<ModalMAJFormationsFav\r\n\t\t\t\tonRef={ref => (this.ModalMAJFormationsFav = ref)} \r\n\t\t\t\tmodalTitle=\"Supprimer le favori ?\"\r\n\t\t\t\tmodalCtaText=\"Voir la page des formations favorites\"\r\n\t\t\t\thandleDeleteFavori={this.handleDeleteFavori}\r\n\t\t\t/>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageFormationFavorites));","import React, { Component } from 'react'\r\nimport { Image } from '@sitecore-jss/sitecore-jss-react';\r\nimport LazyLoad from 'react-lazyload'\r\nimport Slider from \"react-slick\"\r\n\r\nclass ObjBrandsCarouselHero extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\trender() {\r\n\t\tconst {scDatas} = this.props;\r\n\t\tconst settings = {\r\n\t\t\tlazyLoad: true,\r\n\t\t\tautoplay: true,\r\n\t\t\tautoplaySpeed: 2500,\r\n\t\t\tfade: true,\r\n\t\t\tdots: false,\r\n\t\t\tinfinite: true,\r\n\t\t\tspeed: 1000,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tslidesToScroll: 1\r\n\t\t}\r\n\t\treturn (\r\n\r\n\t\t\t<div className=\"obj_brands_carousel_hero\">\r\n\r\n\t\t\t\t<div className=\"ctn_cta_brands_carousel_hero\">\r\n\t\t\t\t\t<a href={scDatas.PageAutresMarques.url}>\r\n\t\t\t\t\t\t<p className=\"t_title\">Les autres<br /> marques L'Oréal</p>\r\n\t\t\t\t\t</a>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<Slider className=\"obj_carousel carousel_other_hero\" {...settings}>\r\n\t\t\t\t\t{ scDatas.BrandList?.children.slice(5).map((brandItem, index) => \r\n\t\t\t\t\t\t<div key={index} className={brandItem.brandCssClass.jss.value}>\r\n\t\t\t\t\t\t\t<a href={scDatas.PageAutresMarques.url}>\r\n\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t<picture className=\"ctn_logo fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t<Image field={brandItem.logoHome.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Slider>\r\n\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjBrandsCarouselHero","import React, { Component } from 'react'\r\nimport { Image } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport ObjBrandsCarouselHero from './ObjBrandsCarouselHero'\r\n\r\nclass ObjBrandHeroHome extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t\tthis.ObjBrandHeroHome = React.createRef()\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeBrandSelection)\r\n\t\twindow.dispatchEvent(new Event('resize'))\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeBrandSelection)\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {scDatas} = this.props;\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_brand_hero_home\" id=\"tutorial_step_1\">\r\n\t\t\t\t<div className=\"ctn_brand_hero_home\">\r\n\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t{ scDatas.BrandList?.children.slice(1, 5).map((brandItem, index) => \r\n\t\t\t\t\t\t\t<li key={index} className={\"obj_item_brand_hero \" + brandItem.brandCssClass.jss.value}>\r\n\t\t\t\t\t\t\t\t<a href={brandItem.url}>\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_logo\">\r\n\t\t\t\t\t\t\t\t\t\t\t<Image field={brandItem.logoHome.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\">Mes modules</p>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t<li className=\"obj_item_brand_other_hero\">\r\n\t\t\t\t\t\t\t<ObjBrandsCarouselHero scDatas={scDatas}/>\r\n\t\t\t\t\t\t</li>\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjBrandHeroHome","import React, { Component } from 'react'\r\nimport { Image } from '@sitecore-jss/sitecore-jss-react';\r\nimport LazyLoad from 'react-lazyload'\r\n\r\nclass ObjBrandHighlightedHeroHome extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\trender() {\r\n\t\tconst {scFields, scDatas} = this.props;\r\n\t\tconst brandItem = scDatas.BrandList?.children[0];\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_brand_highlighted_hero\" id=\"tutorial_step_2\">\r\n\t\t\t\t{ brandItem && <a href={brandItem.url}>\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t<div className=\"ctn_logo\">\r\n\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t<picture className=\"fade-in\">\r\n\t\t\t\t\t\t\t\t\t{brandItem.logoHome && <Image field={brandItem.logoHome.jss}></Image>}\r\n\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t<p className=\"t_title\">Mes modules</p>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t{scFields && <p dangerouslySetInnerHTML={{__html: scFields[\"Page Text\"]?.value}}/>}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a> }\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjBrandHighlightedHeroHome","import React, { Component } from 'react'\r\nimport LazyLoad from 'react-lazyload'\r\nimport Slider from \"react-slick\"\r\n\r\nimport { isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nclass ObjNewsCarouselHeroHome extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {}\r\n\t}\r\n\trender() {\r\n\t\tconst {scDatas} = this.props;\r\n\t\tconst settings = {\r\n\t\t\tlazyLoad: true,\r\n\t\t\tautoplay: false,\r\n\t\t\tautoplaySpeed: 3500,\r\n\t\t\tfade: false,\r\n\t\t\tdots: true,\r\n\t\t\tinfinite: false,\r\n\t\t\tspeed: 500,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_news_carousel_hero_home\">\r\n\t\t\t\t{ scDatas.Banners?.length!==0 && \r\n\t\t\t\t\t<Slider className=\"obj_carousel carousel_news_hero\" {...settings}>\r\n\t\t\t\t\t\t{ scDatas.Banners.children.map((BannerItem, index) => (\r\n\t\t\t\t\t\t\t<div key={index} className=\"obj_item fade-in\">\r\n\t\t\t\t\t\t\t\t{BannerItem.bannerLink.jss.value.href!==\"\" && \r\n\t\t\t\t\t\t\t\t\t<a href={BannerItem.bannerLink.jss.value.href} target=\"_blank\" rel=\"noopener noreferrer\">\r\n\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_image\">\r\n <LazyLoad>\r\n <img src={isMobile() ? BannerItem.bannerImageMobile.jss.value?.src : BannerItem.bannerImage.jss.value?.src} alt=\"\" />\r\n </LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t{BannerItem.bannerLink.jss.value.href===\"\" && \r\n\t\t\t\t\t\t\t\t\t<picture className=\"ctn_image\">\r\n\t\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n <img src={isMobile() ? BannerItem.bannerImageMobile.jss.value?.src : BannerItem.bannerImage.jss.value?.src} alt=\"\" />\r\n\t\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Slider> \r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjNewsCarouselHeroHome","import React, { Component } from 'react'\r\n\r\nclass ObjEntryHeroHome extends Component {\r\n\trender() {\r\n\t\tconst {scDatas, apiDatas} = this.props;\r\n\r\n\t\treturn (<>\r\n\t\t\t<div className=\"obj_entry_hero_home\" id=\"tutorial_step_3\">\r\n\t\t\t\t{scDatas && apiDatas.User && <div className=\"ctn_entry_hero_home\">\r\n\t\t\t\t\t{scDatas.PageEvents?.url && <div className=\"obj_entry\">\r\n\t\t\t\t\t\t<a href={scDatas.PageEvents.url}>\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<div className=\"obj_entry_picto\">\r\n\t\t\t\t\t\t\t\t{apiDatas.User.Event_NbRegistered > 0 && <span>{apiDatas.User.Event_NbRegistered}</span>}\r\n\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/i_entry_event.svg\")} alt=\"\"/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<h3 className=\"t_title\">Mes événements</h3>\r\n\t\t\t\t\t\t\t<ul className='obj_entry_list_info'>\r\n\t\t\t\t\t\t\t\t{\tapiDatas.User?.Event_NbRegistered <= 0\r\n\t\t\t\t\t\t\t\t\t? <li className=\"is_empty\"><span>Pas d'événement</span></li>\r\n\t\t\t\t\t\t\t\t\t: apiDatas.User.Event_NbRegistered === 1\r\n\t\t\t\t\t\t\t\t\t\t? <li><span>Vous êtes inscrit à {apiDatas.User.Event_NbRegistered} événement à venir</span></li>\r\n\t\t\t\t\t\t\t\t\t\t: <li><span>Vous êtes inscrit à {apiDatas.User.Event_NbRegistered} événements à venir</span></li>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>}\r\n\r\n\t\t\t\t\t{scDatas.PageChallenges?.url && apiDatas.User.IsChallenge && <div className=\"obj_entry\">\r\n\t\t\t\t\t\t<a href={scDatas.PageChallenges.url}>\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<div className=\"obj_entry_picto\">\r\n\t\t\t\t\t\t\t\t{ (apiDatas.User.Participation_NbToDeclare + apiDatas.User.Participation_NbToDisPatch > 0) && <span>{apiDatas.User.Participation_NbToDeclare + apiDatas.User.Participation_NbToDisPatch}</span>}\r\n\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/i_entry_challenge.svg\")} alt=\"\"/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<h3 className=\"t_title\">Mes Challenges</h3>\r\n\t\t\t\t\t\t\t<ul className='obj_entry_list_info'>\r\n\t\t\t\t\t\t\t\t{ \t(apiDatas.User.Participation_NbToDeclare + apiDatas.User.Participation_NbToDisPatch === 0)\r\n\t\t\t\t\t\t\t\t\t? <li className=\"is_empty\"><span>Pas de challenges</span></li>\r\n\t\t\t\t\t\t\t\t\t: <>\r\n\t\t\t\t\t\t\t\t\t\t{\tapiDatas.User.Participation_NbToDeclare > 0 && <li>\r\n\t\t\t\t\t\t\t\t\t\t\t<span>{\tapiDatas.User.Participation_NbToDeclare===1\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t?`${apiDatas.User.Participation_NbToDeclare} challenge à déclarer`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t:`${apiDatas.User.Participation_NbToDeclare} challenges à déclarer`\r\n\t\t\t\t\t\t\t\t\t\t\t}</span>\r\n\t\t\t\t\t\t\t\t\t\t</li> }\r\n\t\t\t\t\t\t\t\t\t\t{\tapiDatas.User.Participation_NbToDisPatch > 0 && <li>\r\n\t\t\t\t\t\t\t\t\t\t\t<span>{\tapiDatas.User.Participation_NbToDisPatch===1\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t?`${apiDatas.User.Participation_NbToDisPatch} challenge à répartir`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t:`${apiDatas.User.Participation_NbToDisPatch} challenges à répartir`\r\n\t\t\t\t\t\t\t\t\t\t\t}</span>\r\n\t\t\t\t\t\t\t\t\t\t</li> }\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>}\r\n\r\n\t\t\t\t\t{scDatas.PageExpertise?.url && <div className=\"obj_entry\">\r\n\t\t\t\t\t\t<a href={scDatas.PageExpertise.url}>\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<div className=\"obj_entry_picto\">\r\n\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/i_entry_expertise.svg\")} alt=\"\"/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<h3 className=\"t_title\">Mon Expertise</h3>\r\n\t\t\t\t\t\t\t<ul className='obj_entry_list_info'>\r\n\t\t\t\t\t\t\t\t<li><span>Score : {apiDatas.User.Score===0?\"0pt\":`${apiDatas.User.Score}pts`}</span></li>\r\n\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>}\r\n\r\n\t\t\t\t</div>}\r\n\t\t\t</div>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default ObjEntryHeroHome","import React, { Component } from 'react'\r\nimport { Image } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { throttle, isMobile, isNotAtTop } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nimport ObjBrandHeroHome from './ObjBrandHeroHome'\r\nimport ObjBrandHighlightedHeroHome from './ObjBrandHighlightedHeroHome'\r\nimport ObjNewsCarouselHeroHome from './ObjNewsCarouselHeroHome'\r\nimport ObjEntryHeroHome from './ObjEntryHeroHome'\r\n\r\nclass SectionHeroHome extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t\tmodeMini: isNotAtTop(),\r\n\t\t}\r\n\t\tthis.handleWindowScrollMainHeader = this.handleWindowScrollMainHeader.bind(this)\r\n\t\tthis.throttleWindowScrollMainHeader = throttle(this.handleWindowScrollMainHeader, 200)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t\twindow.addEventListener('scroll', this.throttleWindowScrollMainHeader)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t\twindow.removeEventListener('scroll', this.throttleWindowScrollMainHeader)\r\n\t}\r\n\thandleWindowScrollMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tmodeMini: isNotAtTop()\r\n\t\t})\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {scFields, scDatas, apiDatas} = this.props;\r\n\r\n\t\treturn (<>\r\n\t\t\t<section className={`obj_section section_hero has_background${this.state.modeMini ? ' is_blur' : ''}`}> \r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t\r\n\t\t\t\t\t<div className=\"obj_links_hero_home\">\r\n\t\t\t\t\t\t<div className=\"ctn_left_hero_home\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t\t\t<h1 className=\"t_title\">{scFields && scFields[\"Page SubTitle\"]?.value}</h1>\r\n\t\t\t\t\t\t\t</div>\r\n <ObjNewsCarouselHeroHome scFields={scFields} scDatas={scDatas}/>\r\n\t\t\t\t\t\t\t<ObjBrandHighlightedHeroHome scFields={scFields} scDatas={scDatas}/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"ctn_right_hero_home\">\r\n\t\t\t\t\t\t\t<ObjBrandHeroHome scDatas={scDatas}/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<ObjEntryHeroHome scDatas={scDatas} apiDatas={apiDatas}/>\r\n\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<picture className=\"ctn_background fade-in\">\r\n\t\t\t\t\t<source srcSet={scFields && scFields[\"Page image mobile\"]?.value.src} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t<Image field={scFields && scFields[\"Page Image\"]?.value}/>\r\n\t\t\t\t</picture>\r\n\t\t\t</section>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default SectionHeroHome","import React, { Component } from 'react'\r\n\r\nclass OverlayTutorialHome extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tcurrent: 0,\r\n step: 5,\r\n modalIsOpen: false\r\n\t\t}\r\n this.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t\tthis.closeNoMore = this.closeNoMore.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n window.scrollTo(0,0)\r\n\t\twindow.addEventListener('scroll', this.throttleWindowScrollBackToTop)\r\n // this.showStepTutorial(this.state.current)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n // document.body.classList.remove('tuto')\r\n\t\twindow.removeEventListener('scroll', this.throttleWindowScrollBackToTop)\r\n\t}\r\n nextStepTutorial(){\r\n this.setState((prevState) => ({\r\n current: Math.min(prevState.current + 1, this.state.step),\r\n }), () => {\r\n // Callback après que l'état ait été mis à jour\r\n const targetIds = {\r\n 1: 'tutorial_step_1',\r\n 2: 'tutorial_step_2',\r\n 3: 'tutorial_step_3',\r\n 4: 'tutorial_step_4',\r\n 5: 'tutorial_step_5'\r\n };\r\n \r\n const { current } = this.state;\r\n const targetId = targetIds[current];\r\n const targetElement = document.getElementById(targetId);\r\n \r\n // Faites défiler la page jusqu'à l'élément avec un ID spécifique avec un scroll smooth\r\n if (targetElement) {\r\n const scrollOffset = -100; // Décalage de 100px avant la cible\r\n const targetPosition = targetElement.getBoundingClientRect().top + window.scrollY;\r\n const finalScrollPosition = targetPosition + scrollOffset;\r\n\r\n if (current === 4) {\r\n window.scrollTo({\r\n top: 0, behavior: 'smooth',\r\n });\r\n }else{\r\n window.scrollTo({\r\n top: finalScrollPosition, behavior: 'smooth',\r\n });\r\n }\r\n \r\n }\r\n });\r\n\t}\r\n prevStepTutorial() {\r\n this.setState((prevState) => ({\r\n current: Math.max(prevState.current - 1, 1),\r\n }), () => {\r\n // Callback après que l'état ait été mis à jour\r\n const targetIds = {\r\n 1: 'tutorial_step_1',\r\n 2: 'tutorial_step_2',\r\n 3: 'tutorial_step_3',\r\n 4: 'tutorial_step_4',\r\n 5: 'tutorial_step_5'\r\n };\r\n \r\n const { current } = this.state;\r\n const targetId = targetIds[current];\r\n const targetElement = document.getElementById(targetId);\r\n \r\n // Faites défiler la page jusqu'à l'élément avec un ID spécifique avec un scroll smooth\r\n if (targetElement) {\r\n const scrollOffset = -100; // Décalage de 100px avant la cible\r\n const targetPosition = targetElement.getBoundingClientRect().top + window.scrollY;\r\n const finalScrollPosition = targetPosition + scrollOffset;\r\n \r\n if (current === 4) {\r\n window.scrollTo({\r\n top: 0, behavior: 'smooth',\r\n });\r\n }else{\r\n window.scrollTo({\r\n top: finalScrollPosition, behavior: 'smooth',\r\n });\r\n }\r\n }\r\n });\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n window.scrollTo(\r\n { top: 0, left: 0, behavior: 'smooth'}\r\n )\r\n document.body.classList.add('overlay_tuto_is-opened');\r\n\t}\r\n closeModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n window.scrollTo({\r\n top: 0, behavior: 'smooth',\r\n });\r\n document.body.classList.remove('overlay_tuto_is-opened');\r\n\t}\r\n closeNoMore(){\r\n this.closeModal()\r\n localStorage.setItem('dontShowAgainModalHomeTutorial', 'true')\r\n }\r\n\r\n\trender() {\r\n\t\tconst {apiDatas} = this.props;\r\n\r\n\t\treturn (<>\r\n {this.state.modalIsOpen &&\r\n <div className={`obj_overlay_tuto_home step_${this.state.current}`}>\r\n \r\n <div className=\"ctn_overlay_rect\">\r\n <div className=\"obj_overlay_rect_1\"></div>\r\n <div className=\"obj_overlay_rect_2\"></div>\r\n <div className=\"obj_overlay_rect_3\"></div>\r\n <div className=\"obj_overlay_rect_4\"></div>\r\n </div>\r\n\r\n <div className=\"ctn_popin_tuto_home\">\r\n <div className=\"wrapper_popin_tuto_home\">\r\n\r\n <div className=\"obj_popin_tuto_home\">\r\n\r\n <div className=\"ctn_text step_0\">\r\n <p className=\"t_title\">Votre espace de formation se réinvente !</p>\r\n <p className=\"t_desc\">Découvrez en 2 minutes et 5 étapes les grandes nouveautés de votre site Partner Academy.</p>\r\n\r\n <p className=\"ctn_cta\">\r\n <button \r\n className=\"obj_btn light\" \r\n type=\"button\" \r\n onClick={() => this.closeNoMore()}\r\n >\r\n Fermer\r\n </button>\r\n\r\n <button \r\n className=\"obj_btn light\" \r\n type=\"button\" \r\n onClick={() => this.closeModal()}\r\n >\r\n Voir plus tard\r\n </button>\r\n\r\n <button \r\n className=\"obj_btn\" \r\n type=\"button\" \r\n onClick={() => this.nextStepTutorial()}\r\n >\r\n Voir le didacticiel\r\n </button>\r\n </p>\r\n\r\n </div>\r\n\r\n <div className=\"ctn_text step_1 fade-in\">\r\n <p className=\"t_step\">Etape {this.state.current}/{this.state.step}</p>\r\n <p className=\"t_title\">Retrouvez des modules et des contenus exclusifs catégorisés <strong>par marque.</strong></p>\r\n\r\n <p className=\"ctn_cta\">\r\n <button \r\n className=\"obj_btn\" \r\n type=\"button\" \r\n onClick={() => this.nextStepTutorial()}\r\n >\r\n Étape suivante\r\n </button>\r\n </p>\r\n </div>\r\n\r\n <div className=\"ctn_text step_2 fade-in\">\r\n <p className=\"t_step\">Etape {this.state.current}/{this.state.step}</p>\r\n <p className=\"t_title\">Retrouvez des modules et des contenus exclusifs catégorisés <strong>par pathologie</strong></p>\r\n\r\n <p className=\"ctn_cta\">\r\n <button \r\n className=\"obj_btn light\" \r\n type=\"button\" \r\n onClick={() => this.prevStepTutorial()}\r\n >\r\n Précédent\r\n </button>\r\n\r\n <button \r\n className=\"obj_btn\" \r\n type=\"button\" \r\n onClick={() => this.nextStepTutorial()}\r\n >\r\n Étape suivante\r\n </button>\r\n </p>\r\n </div>\r\n\r\n <div className=\"ctn_text step_3 fade-in\">\r\n <p className=\"t_step\">Etape {this.state.current}/{this.state.step}</p>\r\n { apiDatas.User?.IsChallenge\r\n ? <p className=\"t_title\">\r\n <strong>Inscrivez-vous</strong> à tous nos évènements de formation, <strong>déclarez</strong> et <strong>répartissez</strong> les gains de vos challenges. <strong>Accédez</strong> également à la progression de votre parcours d'expertise.\r\n </p>\r\n : <p className=\"t_title\"><strong>Inscrivez-vous</strong> à tous nos évènements de formation et <strong>accédez</strong> à la progression de votre parcours d'expertise.</p>\r\n }\r\n <p className=\"ctn_cta\">\r\n <button \r\n className=\"obj_btn light\" \r\n type=\"button\" \r\n onClick={() => this.prevStepTutorial()}\r\n >\r\n Précédent\r\n </button>\r\n\r\n <button \r\n className=\"obj_btn\" \r\n type=\"button\" \r\n onClick={() => this.nextStepTutorial()}\r\n >\r\n Étape suivante\r\n </button>\r\n </p>\r\n </div>\r\n\r\n <div className=\"ctn_text step_4 fade-in\">\r\n <p className=\"t_step\">Etape {this.state.current}/{this.state.step}</p>\r\n <p className=\"t_title\">Retrouvez toutes les informations relatives à votre compte ainsi que votre progression sur le parcours d'expertise</p>\r\n\r\n <p className=\"ctn_cta\">\r\n <button \r\n className=\"obj_btn light\" \r\n type=\"button\" \r\n onClick={() => this.prevStepTutorial()}\r\n >\r\n Précédent\r\n </button>\r\n\r\n <button \r\n className=\"obj_btn\" \r\n type=\"button\" \r\n onClick={() => this.nextStepTutorial()}\r\n >\r\n Étape suivante\r\n </button>\r\n </p>\r\n </div>\r\n\r\n <div className=\"ctn_text step_5 fade-in\">\r\n <p className=\"t_step\">Etape {this.state.current}/{this.state.step}</p>\r\n <p className=\"t_title\">N'hésitez pas à revenir vers nous pour toute question</p>\r\n\r\n <p className=\"ctn_cta\">\r\n <button \r\n className=\"obj_btn light\" \r\n type=\"button\" \r\n onClick={() => this.prevStepTutorial()}\r\n >\r\n Précédent\r\n </button>\r\n\r\n <button \r\n className=\"obj_btn light\" \r\n type=\"button\" \r\n onClick={() => this.closeNoMore()}\r\n >\r\n Fermer\r\n </button>\r\n </p>\r\n </div>\r\n\r\n </div>\r\n\r\n <button className=\"btn_popin_tuto_home_close\" type=\"button\" onClick={() => this.closeModal()}></button>\r\n\r\n </div>\r\n </div>\r\n \r\n </div>\r\n }\r\n </>)\r\n\t}\r\n}\r\n\r\nexport default OverlayTutorialHome","import React, { Component } from 'react'\r\nimport Modal from 'react-modal' \r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass PhoneMandatoryModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<p className=\"t_title\">{this.props.t('MettreaJourMesInformations')}</p>\r\n\t\t\t\t\t\t<p className=\"t_main\">{this.props.t('NousVousInvitonsARemplirPhone')}</p>\r\n\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t<a className='obj_cta' \r\n href={this.props.modalUrlInfosPeros + \"#GoToAddress\"}\r\n \t\t\t\t>\r\n\t\t\t\t\t\t\t\t{this.props.t('MettreaJourMesInformations')}\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\nexport default withTranslation()(PhoneMandatoryModal)","import React, { Component } from 'react'\r\nimport Modal from 'react-modal' \r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass InfosModalMAJ extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<p className=\"t_title\">{this.props.t('MettreaJourMesInformations')}</p>\r\n\t\t\t\t\t\t<p className=\"t_main\">{this.props.t('NousVousInvitonsARemplir')}</p>\r\n\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t<a className='obj_cta' \r\n href={this.props.modalUrlInfosPeros + \"#GoToAddress\"}\r\n \t\t\t\t>\r\n\t\t\t\t\t\t\t\t{this.props.t('MettreaJourMesInformations')}\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\nexport default withTranslation()(InfosModalMAJ)","import React, { Component } from 'react'\r\nimport Modal from 'react-modal' \r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass SatisfactionFormModal extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false,\r\n\t\t\tapiDatas:null\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseNoMoreModal(formCode) {\r\n\t\tlocalStorage.setItem(formCode, 'true')\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t\t\r\n\t}\r\n\tcloseModal() {\t\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\t\r\n\t\r\n\t\r\n\t\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<p className=\"t_main\">{\"Gagnez 1000 pts en répondant au questionnaire de satisfaction pour nous aider à améliorer votre expérience utilisateur.\"}</p>\r\n\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t{this.props?.SatisfactionForm?.Url &&\r\n\t\t\t\t\t\t\t\t<a className='obj_cta' \r\n\t\t\t\t\t\t\t\t\thref={this.props.SatisfactionForm.Url}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{\"OUI\"}\r\n\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t<button className=\"obj_cta\" onClick={()=>this.closeNoMoreModal(this.props.SatisfactionForm.Code)}>\r\n\t\t\t\t\t\t\t{\"NON\"}\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\nexport default withTranslation()(SatisfactionFormModal)","import React, { Component } from 'react'\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport { getApiDatas, getStorageItem, } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport SectionHeroHome from './SectionHeroHome'\r\nimport OverlayTutorialHome from './OverlayTutorialHome'\r\nimport PhoneMandatoryModal from '../Modal/PhoneMandatoryModal'\r\nimport InfosModalMAJ from '../Modal/InfosModalMAJ'\r\nimport SatisfactionFormModal from '../Modal/SatisfactionFormModal';\r\n\r\nclass PageHome extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tapiDatas:[],\r\n\t\t\tIsReadyApiDatas:false,\r\n\t\t}\r\n\t}\r\n\r\n\tasync componentDidMount() {\r\n\t\twindow.scrollTo(0,0)\r\n\r\n\t\tconst apiDatas = await getApiDatas(`/apiaox/Home/GetDataPageHome`)\r\n\t\tthis.setState({ apiDatas:apiDatas, IsReadyApiDatas:true})\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.setState({ openTutorialHome: true });\r\n\t\t\twindow.scrollTo(\r\n\t\t\t\t{ top: 0, left: 0, behavior: 'smooth'}\r\n\t\t\t)\r\n\t\t}, 4000);\r\n\r\n\r\n var isOpenSomething = false;\r\n\r\n\t\t// popin Info phone (pour event registrations)\r\n\t\tif(!isOpenSomething && this.props.fields.data?.CurrentUser?.needphone === true) {\r\n this.PhoneMandatoryModal.openModal();\r\n isOpenSomething = true;\r\n }\r\n\r\n\t\t// popin Info contact\r\n\t\tif(!isOpenSomething && this.props.fields.data?.CurrentUser?.needcontactinformation === true) {\r\n this.InfosModalMAJ.openModal()\r\n isOpenSomething = true;\r\n }\r\n\r\n\t\t//popin formulaire satisfaction\r\n const IsSatisfaction_Form = apiDatas?.User?.SatisfactionForm?.Url && !getStorageItem(apiDatas?.User?.SatisfactionForm?.Code)\r\n\t\tif(!isOpenSomething && IsSatisfaction_Form){\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.SatisfactionFormModal && this.SatisfactionFormModal.openModal();\r\n\t\t\t}, 5);\r\n isOpenSomething = true;\r\n\t\t}\r\n\r\n\t\t//popin tutorial\r\n\t\t// if(!isOpenSomething && !getStorageItem('dontShowAgainModalHomeTutorial')){\r\n\t\t// \tsetTimeout(() => {\r\n\t\t// \t\tthis.OverlayTutorialHome && this.OverlayTutorialHome.openModal();\r\n\t\t// \t}, 5000);\r\n // isOpenSomething = true;\r\n\t\t// }\r\n\r\n\t}\r\n\t\r\n\trender() {\r\n\t\tconst scFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst scDatas = this.props.fields.data;\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n\r\n\t\treturn (this.state.IsReadyApiDatas && scDatas && <>\r\n\t\t\t<PhoneMandatoryModal onRef={ref => (this.PhoneMandatoryModal = ref)} modalUrlInfosPeros={scDatas?.PageInfoPerso.url} />\r\n\r\n\t\t\t<InfosModalMAJ onRef={ref => (this.InfosModalMAJ = ref)} modalUrlInfosPeros={scDatas?.PageInfoPerso.url} />\r\n\r\n\t\t\t{apiDatas?.User?.SatisfactionForm && <SatisfactionFormModal onRef={ref => (this.SatisfactionFormModal = ref)} modalUrlInfosPeros={scDatas?.PageInfoPerso.url} SatisfactionForm={apiDatas?.User?.SatisfactionForm} />}\r\n\r\n\t\t\t<OverlayTutorialHome onRef={ref => (this.OverlayTutorialHome = ref)} apiDatas={apiDatas}/>\r\n\r\n\t\t\t<SectionHeroHome scFields={scFields} scDatas={scDatas} apiDatas={apiDatas}/>\r\n\r\n\t\t\t{/* masquage : 11949\r\n\t\t\t\t<SectionPushBrand scFields={scFields}/> \r\n\t\t\t*/}\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageHome));","import React, { Component } from \"react\";\r\nimport { Text, RichText, Image, Link, withSitecoreContext } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport { throttle, sectionFullWidth } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport Slider from \"react-slick\";\r\nimport LazyLoad from \"react-lazyload\";\r\nimport InfosModalMAJ from \"../Modal/InfosModalMAJ\";\r\n\r\nclass PageHomeCAF extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tpushsToShow: 6,\r\n\t\t\tpushsInterval: 6,\r\n\t\t};\r\n\t\tthis.showMorePushs = this.showMorePushs.bind(this);\r\n\t\tthis.refreshCarouselHeight = this.refreshCarouselHeight.bind(this);\r\n\t\tthis.handleWindowResizeWideCarousel = this.handleWindowResizeWideCarousel.bind(this);\r\n\t\tthis.throttleWindowResizeWideCarousel = throttle(this.handleWindowResizeWideCarousel, 100);\r\n\t\tthis.handleWindowResizeBrandSelection = this.handleWindowResizeBrandSelection.bind(this);\r\n\t\tthis.throttleWindowResizeBrandSelection = throttle(this.handleWindowResizeBrandSelection, 100);\r\n\t\tthis.sectionBrandSelection = React.createRef();\r\n\t}\r\n\tshowMorePushs() {\r\n\t\tthis.setState((prevState) => ({\r\n\t\t\tpushsToShow: prevState.pushsToShow + this.state.pushsInterval,\r\n\t\t}));\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener(\"resize\", this.throttleWindowResizeWideCarousel);\r\n\t\twindow.addEventListener(\"resize\", this.throttleWindowResizeBrandSelection);\r\n\t\twindow.dispatchEvent(new Event(\"resize\"));\r\n\r\n\t\tif (\r\n\t\t\tthis.props.fields.data != null &&\r\n\t\t\tthis.props.fields.data.CurrentUser != null &&\r\n\t\t\tthis.props.fields.data.CurrentUser.needcontactinformation != null &&\r\n\t\t\tthis.props.fields.data.CurrentUser.needcontactinformation === true\r\n\t\t) {\r\n\t\t\t// ouverture popin Info\r\n\t\t\tthis.InfosModalMAJ.openModal();\r\n\t\t}\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener(\"resize\", this.throttleWindowResizeBrandSelection);\r\n\t\twindow.removeEventListener(\"resize\", this.throttleWindowResizeWideCarousel);\r\n\t}\r\n\trefreshCarouselHeight() {\r\n\t\tvar wideCarousel = document.querySelector(\".wide-carousel\"),\r\n\t\t\tslickList = wideCarousel.querySelector(\".slick-list\"),\r\n\t\t\tcarouselHeight = wideCarousel.clientHeight;\r\n\t\tslickList.style.height = carouselHeight + \"px\";\r\n\t}\r\n\thandleWindowResizeWideCarousel() {\r\n\t\tthis.refreshCarouselHeight();\r\n\t}\r\n\thandleWindowResizeBrandSelection() {\r\n\t\tsectionFullWidth(this.sectionBrandSelection.current);\r\n\t}\r\n\trender() {\r\n\t\tconst settings = {\r\n\t\t\tlazyLoad: true,\r\n\t\t\tautoplay: true,\r\n\t\t\tautoplaySpeed: 5000,\r\n\t\t\tdots: true,\r\n\t\t\tinfinite: true,\r\n\t\t\tspeed: 750,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t};\r\n\t\tconst settingsBrands = {\r\n\t\t\tlazyLoad: true,\r\n\t\t\tautoplay: true,\r\n\t\t\tautoplaySpeed: 2500,\r\n\t\t\tfade: true,\r\n\t\t\tdots: false,\r\n\t\t\tinfinite: true,\r\n\t\t\tspeed: 750,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t\tpauseOnHover: false,\r\n\t\t};\r\n\r\n\t\tconst { BrandList, DataForHomeCAF, AccueilCafMarques } = this.props.fields.data;\r\n\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<section className=\"section_brand-selection var_2023\" ref={this.sectionBrandSelection}>\r\n\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t{BrandList.children.slice(0, 5).map((marqueListItem, index) => (\r\n\t\t\t\t\t\t\t\t<li key={index} className={marqueListItem.brandCssClass.jss.value}>\r\n\t\t\t\t\t\t\t\t\t<a href={marqueListItem.url}>\r\n\t\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<picture className=\"fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<source srcSet={marqueListItem.logoSliderMobile.jss.value.src} media=\"(max-width:767px)\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Image field={marqueListItem.logoSlider.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_logo\">\r\n\t\t\t\t\t\t\t\t\t\t\t<Image field={marqueListItem.logo.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t{AccueilCafMarques && BrandList.children.length > 5 && (\r\n\t\t\t\t\t\t\t\t<li className=\"var_others\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"brands_carousel_container\">\r\n\t\t\t\t\t\t\t\t\t\t<Slider className=\"obj_carousel obj_brand-carousel\" {...settingsBrands}>\r\n\t\t\t\t\t\t\t\t\t\t\t{BrandList.children.slice(5).map((marqueListCarouselItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div key={index} className={\"var_\" + marqueListCarouselItem.id}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a href={AccueilCafMarques.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<picture className=\"fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<source srcSet={marqueListCarouselItem.logoSliderMobile.jss.value.src} media=\"(max-width:767px)\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Image field={marqueListCarouselItem.logoSlider.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t</Slider>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<a href={AccueilCafMarques.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta-others\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span></span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"ShowMoreOtherBrands\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\r\n\t\t\t\t{oCurrentItemFields && <Text className=\"obj_title\" field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h1\" />}\r\n\r\n\t\t\t\t<section className=\"section_wide-carousel\">\r\n\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t<Slider className=\"obj_carousel wide-carousel\" {...settings}>\r\n\t\t\t\t\t\t\t{DataForHomeCAF.getFirstBrandBanners.map((bannerItem, index) => (\r\n\t\t\t\t\t\t\t\t<div key={index}>\r\n\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\tclassName={`ctn_banner fade-in${bannerItem.darkMode.boolValue ? \" var_dark\" : \"\"}\r\n ${bannerItem.styleBrand.targetItem ? bannerItem.styleBrand.targetItem.brandCssClass.value : \"\"}\r\n ${bannerItem.align ? \" var_\" + bannerItem.align.value : \"\"}`}\r\n\t\t\t\t\t\t\t\t\t\tbannerid={bannerItem.id}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{bannerItem.template.id === \"31C956382BE1472095B3E8D7A9E8C60D\" && (\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{bannerItem.ontitle.jss && <RichText field={bannerItem.ontitle.jss} tag=\"h4\" />}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{bannerItem.title.jss && <RichText field={bannerItem.title.jss} tag=\"h2\" />}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{bannerItem.posttitle.jss && <RichText field={bannerItem.posttitle.jss} tag=\"h3\" />}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{bannerItem.content.jss && <RichText field={bannerItem.content.jss} tag=\"p\" />}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t\t\t\t\t<source srcSet={bannerItem.imageMobile.jss.value.src} media=\"(max-width:767px)\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<Image field={bannerItem.image.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t<Link className={`obj_cta${bannerItem.darkMode.boolValue ? \" reverse\" : \"\"}`} field={bannerItem.link.jss} />;\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</Slider>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\r\n\t\t\t\t<InfosModalMAJ onRef={(ref) => (this.InfosModalMAJ = ref)} modalUrlInfosPeros={this.props.fields.data.PageInfoPerso.url} />\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageHomeCAF));","import React, { Component } from 'react'\r\nimport { Text, Image, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react'\r\nimport { withTranslation } from 'react-i18next';\r\nimport LazyLoad from 'react-lazyload'\r\n\r\nclass PageIndex extends Component {\r\n\trender() {\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n \r\n const { LstPageList } = this.props.fields.data; \r\n \r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{oCurrentItemFields && <Text className=\"obj_title\" tag=\"h1\" field={oCurrentItemFields[\"Page Title\"]}></Text>}\r\n\r\n\t\t\t\t<section className=\"section_page-liste\"> \r\n\t\t\t\t <div className=\"str_container\"> \r\n <section className=\"ctn_row\">\r\n <div className=\"ctn_sub-row\">\r\n { LstPageList.children.map((PageList, index) => (\r\n\r\n <article key={index} className=\"ctn_page-liste\">\r\n <a href={PageList.url}>\r\n <LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <figure className=\"fade-in\">\r\n <Image field={PageList.pageImage.jss}></Image>\r\n </figure>\r\n </LazyLoad>\r\n <Text className=\"obj_title\" tag=\"h3\" field={PageList.pageTitle.jss}></Text>\r\n </a>\r\n </article>\r\n ))}\r\n </div>\r\n </section> \r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\nexport default withTranslation()(withSitecoreContext()(PageIndex));\r\n","import React, { Component } from 'react'\r\nimport { Field } from 'formik'\r\n\r\nclass PasswordToggle extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tvisible: false,\r\n\t\t\teyeMode: this.props.eyeMode ? this.props.eyeMode : false,\r\n\t\t\tlevel: 0,\r\n\t\t\tplaceholder: this.props.placeholder ? this.props.placeholder : '',\r\n\t\t\tminCharacters: this.props.minCharacters ? this.props.minCharacters : 8,\r\n\t\t\tmaxCharacters: this.props.maxCharacters ? this.props.maxCharacters : 524288,\r\n\t\t\tregexNumeric: /[0-9]/,\r\n\t\t\tregexLowerCase: /[a-z]/,\r\n\t\t\tregexUpperCase: /[A-Z]/,\r\n\t\t\tregexSpecialCharacters: this.props.regexSpecialCharacters ? this.props.regexSpecialCharacters : /[!@#$%^&*)(+=._-]/,\r\n\t\t\tstrengthLevel: this.props.strengthLevel ? this.props.strengthLevel : false, \r\n\t\t}\r\n\t\tthis.handleChangePassword = this.handleChangePassword.bind(this)\r\n\t\tthis.handlePasswordVisible = this.handlePasswordVisible.bind(this)\r\n\t\tthis.destroy = this.destroy.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\thandleChangePassword(e, setFieldValue, fieldName) {\r\n\t\tvar inputValue = e.target.value\r\n\t\tthis.setState({ level: 0 })\r\n\r\n\t\tif (this.state.regexNumeric.test(inputValue)) this.setState(prevState => ({ level: prevState.level + 1 }))\r\n\t\tif (this.state.regexLowerCase.test(inputValue)) this.setState(prevState => ({ level: prevState.level + 1 }))\r\n\t\tif (this.state.regexUpperCase.test(inputValue)) this.setState(prevState => ({ level: prevState.level + 1 }))\r\n\t\tif (this.state.regexSpecialCharacters.test(inputValue)) this.setState(prevState => ({ level: prevState.level + 1 }))\r\n\t\tif (inputValue.length >= this.state.minCharacters) this.setState(prevState => ({ level: prevState.level + 1 }))\r\n\t\t\t\t\r\n\t\tsetFieldValue(fieldName, inputValue)\r\n\t}\r\n\thandlePasswordVisible() {\r\n\t\tthis.setState({ visible: !this.state.visible })\r\n\t}\r\n\tdestroy() {\r\n\t\tthis.setState({ level: 0 })\r\n\t}\r\n\trender() {\r\n\t\tconst { setFieldValue, handleBlur, errors, touched, fieldName } = this.props\r\n\t\tconst { visible, eyeMode, level, maxCharacters, strengthLevel, placeholder } = this.state\r\n \r\n\t\treturn(\r\n\t\t\t<div className=\"ctn_input\">\r\n\t\t\t\t<Field\r\n\t\t\t\t\tclassName={(errors[fieldName] && touched[fieldName]) ? 'error' : ''}\r\n\t\t\t\t\ttype={visible ? 'text' : 'password'}\r\n\t\t\t\t\tname={fieldName}\r\n\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\tonChange={(e) => this.handleChangePassword(e, setFieldValue, fieldName)}\r\n\t\t\t\t\tonBlur={handleBlur}\r\n\t\t\t\t\tmaxLength={maxCharacters} \r\n\t\t\t\t/>\r\n\t\t\t\t{eyeMode &&\r\n\t\t\t\t\t<button className=\"btn_password-toggle\" type=\"button\" aria-pressed={visible} onClick={this.handlePasswordVisible}>\r\n\t\t\t\t\t\t<svg viewBox=\"0 0 28 16\">\r\n\t\t\t\t\t\t\t<path d=\"M14,0C6.3,0,0,8,0,8s6.3,8,14,8c7.7,0,14-8,14-8S21.7,0,14,0z M14,14.8c-3.8,0-6.9-3.1-6.9-6.8s3.1-6.8,6.9-6.8c3.8,0,6.9,3.1,6.9,6.8S17.8,14.8,14,14.8z\"/><ellipse cx=\"14\" cy=\"8\" rx=\"3\" ry=\"3\"/>\r\n\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t}\r\n\t\t\t\t{strengthLevel && <div className=\"obj_strength-level\" data-level={level}></div>}\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nPasswordToggle.defaultProps = {\r\n\tonRef: () => {}\r\n}\r\n\r\nexport default PasswordToggle","import { withSitecoreContext, Text } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport React, { Component } from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { Formik, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport queryString from \"query-string\";\r\nimport { ReCaptcha } from \"react-recaptcha-v3\";\r\n\r\nimport config from \"../../temp/config\";\r\nimport PasswordToggle from \"../../utilities/FrontFunctions/FormElements/PasswordToggle\";\r\nimport CustomSelect from \"../../utilities/FrontFunctions/FormElements/CustomSelect\";\r\nimport SingleFileUpload from \"../../utilities/FrontFunctions/FormElements/SingleFileUpload\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\nimport DefaultModal from \"../Modal/DefaultModal\";\r\nimport { getApiDatas, postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\n\r\nconst axios = require(\"axios\");\r\n\r\nclass PageInfoPerso extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tserverError: false,\r\n\t\t\tserverErrorUpdate: false,\r\n\t\t\tserverErrorUpdatePro: false,\r\n\t\t\tserverErrorChangePassword: false,\r\n\t\t\tserverErrorUpdatePicture: false,\r\n\t\t\tstepModalDeleteAccount: 1,\r\n\t\t\tsubmitUploadVisible: false,\r\n\t\t\tserverErrorUpdateLabel: \"\",\r\n\t\t\tserverErrorUpdateProLabel: \"\",\r\n\t\t\tserverErrorChangePasswordLabel: \"\",\r\n\r\n\t\t\tUrlInfosPerso_ChangePassword: `${config.sitecoreApiHost}/apiaox/Call/InfosPerso_Password`,\r\n\t\t\tUrlInfosPerso_UpdatePicture: `${config.sitecoreApiHost}/apiaox/Call/InfosPerso_Picture`,\r\n\t\t\tUrlInfosPerso_Delete: `${config.sitecoreApiHost}/apiaox/Call/InfosPerso_Delete`,\r\n\r\n\t\t\tapiDatas:[],\r\n\t\t\tinitDataOK: false,\r\n currentSalePoint:null,\r\n\t\t};\r\n\r\n\t\tthis.handleClickDelete = this.handleClickDelete.bind(this);\r\n\t}\r\n\thandleClickDelete(e, datakey) {\r\n\t\taxios\r\n\t\t\t.post(this.state.UrlInfosPerso_Delete, queryString.stringify({ userkey: datakey }), {\r\n\t\t\t\twithCredentials: true,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tAccept: \"application/json\",\r\n\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\",\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.then((result) => {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tformSubmitted: result.data.IsValid,\r\n\t\t\t\t\tserverErrorDelete: !result.data.IsValid,\r\n\t\t\t\t\tserverErrorDeleteLabel: result.data.ExceptionMessage,\r\n\t\t\t\t});\r\n\t\t\t\tif (result.data.IsValid) {\r\n\t\t\t\t\tthis.setState({ stepModalDeleteAccount: 2 });\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconsole.log(err);\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tserverErrorDelete: true,\r\n\t\t\t\t\tserverErrorDeleteLabel: this.props.t(\"DefaultServerError\"),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n\r\n componentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Call/GetDataPageRegister`).then((apiDatas) => {\r\n\t\t\tthis.setState({\r\n apiDatas: apiDatas,\r\n currentSalePoint : {...apiDatas?.User?.Salepoint,SalePointIsChallenge:apiDatas?.User?.IsChallenge},\r\n initDataOK: apiDatas?.Postes && apiDatas?.User\r\n });\r\n\t\t});\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst { CurrentUser } = this.props.fields.data;\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n\t\treturn (\r\n\t\t\t<section className=\"section_form\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<div className=\"ctn_top\">{oCurrentItemFields && <Text field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text>}</div>\r\n\r\n\t\t\t\t\t<div className=\"ctn_form\">\r\n {!this.state.initDataOK ? (\r\n <div className=\"obj_form\">\r\n {/* TODO SGU Msg */}\r\n <p className=\"t_error mb_30 fade-in\">Error init Form </p>\r\n </div>\r\n ) : (\r\n <>\r\n <div className=\"grid_container\">\r\n <Formik\r\n initialValues={{\r\n oldpassword: \"\",\r\n password: \"\",\r\n passwordconfirm: \"\",\r\n recaptcha: \"\",\r\n }}\r\n validationSchema={Yup.object().shape({\r\n oldpassword: Yup.string().required(),\r\n password: Yup.string()\r\n .matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*)(+=._-])[A-Za-z\\d!@#$%^&*)(+=._-]{8,30}$/, this.props.t(\"Register_passwordDetails\"))\r\n .required(),\r\n passwordconfirm: Yup.string()\r\n .test(\"passwords-match\", this.props.t(\"Register_PasswordsMustMatch\"), function (value) {\r\n return this.parent.password === value;\r\n })\r\n .required(),\r\n recaptcha: Yup.string().required(),\r\n })}\r\n onSubmit={(values, actions) => {\r\n document.body.classList.add(\"is-loading\");\r\n\r\n this.setState({\r\n formSubmitted: false,\r\n serverErrorChangePassword: false,\r\n serverErrorChangePasswordLabel: \"\",\r\n });\r\n\r\n axios\r\n .post(this.state.UrlInfosPerso_ChangePassword, queryString.stringify(values), {\r\n withCredentials: true,\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n },\r\n })\r\n .then((result) => {\r\n this.setState({\r\n formSubmitted: result.data.IsValid,\r\n serverErrorChangePassword: !result.data.IsValid,\r\n serverErrorChangePasswordLabel: result.data.ExceptionMessage,\r\n });\r\n\r\n document.body.classList.remove(\"is-loading\");\r\n actions.resetForm();\r\n this.MainPasswordToggle.destroy();\r\n\r\n if (result.data.IsValid) {\r\n this.ModalChangePassword.openModal();\r\n }\r\n\r\n if (this.recaptchaPassword) {\r\n this.recaptchaPassword.execute();\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n this.setState({\r\n serverErrorChangePassword: true,\r\n serverErrorChangePasswordLabel: this.props.t(\"DefaultServerError\"),\r\n });\r\n\r\n if (this.recaptchaPassword) {\r\n this.recaptchaPassword.execute();\r\n }\r\n\r\n document.body.classList.remove(\"is-loading\");\r\n actions.resetForm();\r\n this.MainPasswordToggle.destroy();\r\n });\r\n }}\r\n >\r\n {({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n <div className=\"grid_item grid_mdp\">\r\n <form onSubmit={handleSubmit}>\r\n <div className=\"ctn_contact\">\r\n <h3>{this.props.t(\"Register_ModifierMonMotDePasse\")}</h3>\r\n <div className=\"obj_form\">\r\n <div className=\"ctn_input mb_30\">\r\n <PasswordToggle\r\n setFieldValue={setFieldValue}\r\n handleBlur={handleBlur}\r\n errors={errors}\r\n touched={touched}\r\n eyeMode={true}\r\n fieldName=\"oldpassword\"\r\n placeholder={this.props.t(\"Register_AncienMotDePasse\")}\r\n />\r\n </div>\r\n <div className=\"ctn_input mb_30 var_password\">\r\n <PasswordToggle\r\n onRef={(ref) => (this.MainPasswordToggle = ref)}\r\n setFieldValue={setFieldValue}\r\n handleBlur={handleBlur}\r\n errors={errors}\r\n touched={touched}\r\n eyeMode={true}\r\n fieldName=\"password\"\r\n placeholder={this.props.t(\"Register_passwordPlaceholder\")}\r\n strengthLevel={true}\r\n />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_passwordDetails\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <PasswordToggle\r\n setFieldValue={setFieldValue}\r\n handleBlur={handleBlur}\r\n errors={errors}\r\n touched={touched}\r\n eyeMode={true}\r\n fieldName=\"passwordconfirm\"\r\n placeholder={this.props.t(\"Register_passwordConfirm\")}\r\n />\r\n </div>\r\n <ReCaptcha\r\n ref={(ref) => (this.recaptchaPassword = ref)}\r\n sitekey={this.props.t(\"recaptcha_sitekey\")}\r\n action=\"PersoChangePassword\"\r\n verifyCallback={(recaptchaToken) => {\r\n setFieldValue(\"recaptcha\", recaptchaToken);\r\n }}\r\n />\r\n {this.state.serverErrorChangePasswordLabel && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorChangePasswordLabel}</p>}\r\n {errors.passwordconfirm && touched.passwordconfirm && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"Register_passwordError\")}</p>}\r\n {((errors.oldpassword && touched.oldpassword) ||\r\n (errors.password && touched.password) ||\r\n (errors.passwordconfirm && touched.passwordconfirm) ||\r\n errors.recaptcha) && (\r\n <p className=\"t_error mb_30 fade-in\">\r\n {this.props.t(\"DefaultErrorMessage\")}\r\n {console.log(errors)}{\" \"}\r\n </p>\r\n )}\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"submit\">\r\n {this.props.t(\"Register_Valider\")}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <DefaultModal onRef={(ref) => (this.ModalChangePassword = ref)} htmlContent={<p className=\"t_main\">{this.props.t(\"Register_NouveauMotDePasse\")}</p>} />\r\n </div>\r\n )}\r\n </Formik>\r\n\r\n <Formik\r\n initialValues={{\r\n fileupload: null,\r\n recaptcha: \"\",\r\n }}\r\n validationSchema={Yup.object().shape({\r\n fileupload: Yup.mixed().required(),\r\n recaptcha: Yup.string().required(),\r\n })}\r\n onSubmit={(values, actions) => {\r\n document.body.classList.add(\"is-loading\");\r\n\r\n var formData = new FormData();\r\n Object.entries(values).forEach((elt) => formData.append(elt[0], elt[1]));\r\n\r\n axios({\r\n method: \"POST\",\r\n url: this.state.UrlInfosPerso_UpdatePicture,\r\n data: formData,\r\n withCredentials: true,\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n },\r\n })\r\n .then((res) => {\r\n this.setState({\r\n formSubmitted: true,\r\n serverErrorUpdatePicture: !res.data.IsValid,\r\n serverErrorUpdatePictureLabel: res.data.ExceptionMessage,\r\n });\r\n\r\n document.body.classList.remove(\"is-loading\");\r\n\r\n actions.resetForm();\r\n // reset file upload\r\n this.SingleFileUploadAvatar.destroy();\r\n\r\n document.getElementsByClassName(\"UserImg\")[0].src = res.data.Value.InfosPerso_UserImg + \"?key=\" + Math.random();\r\n\r\n if (this.recaptchaAvatar) {\r\n this.recaptchaAvatar.execute();\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(\"err: \", err);\r\n this.setState({\r\n serverErrorUpdatePicture: true,\r\n serverErrorUpdatePictureLabel: this.props.t(\"DefaultServerError\"),\r\n });\r\n\r\n document.body.classList.remove(\"is-loading\");\r\n\r\n actions.resetForm();\r\n // reset file upload\r\n this.SingleFileUploadAvatar.destroy();\r\n\r\n if (this.recaptchaAvatar) {\r\n this.recaptchaAvatar.execute();\r\n }\r\n });\r\n }}\r\n >\r\n {({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n <div className=\"grid_item grid_img-upload\">\r\n <form onSubmit={handleSubmit}>\r\n <div className=\"obj_form\">\r\n <div className=\"ctn_file-upload mb_30 var_avatar var_edit\">\r\n <SingleFileUpload\r\n onRef={(ref) => (this.SingleFileUploadAvatar = ref)}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n fieldName={\"fileupload\"}\r\n labelText={\" \"}\r\n ctaCancelText={this.props.t(\"Register_uploadCancel\")}\r\n formatErrorText={this.props.t(\"Register_uploadFormat\")}\r\n sizeErrorText={this.props.t(\"Register_uploadSize\")}\r\n loadingErrorText={this.props.t(\"Register_uploadError\")}\r\n thumbSize={90}\r\n onUpload={() => {\r\n this.setState({\r\n submitUploadVisible: true,\r\n });\r\n }}\r\n onUnload={() => {\r\n this.setState({\r\n submitUploadVisible: false,\r\n });\r\n }}\r\n />\r\n <div className=\"ctn_edit-cta\">\r\n {CurrentUser.userimg !== \"\" ? (\r\n <img src={CurrentUser.userimg} className=\"UserImg\" alt={CurrentUser.firstname + \" \" + CurrentUser.lastname} />\r\n ) : (\r\n <img src={require(\"../../assets/images/v_avatar-xl.png\")} alt={CurrentUser.firstname + \" \" + CurrentUser.lastname} className=\"UserImg\" />\r\n )}\r\n <div className=\"bt_edit-cta\">\r\n <div>\r\n <IconSVG icon=\"avatar_edit\" />\r\n <span className=\"t_edit\">{this.props.t(\"Register_ModifierMaPhotoDeProfil\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ReCaptcha\r\n ref={(ref) => (this.recaptchaAvatar = ref)}\r\n sitekey={this.props.t(\"recaptcha_sitekey\")}\r\n action=\"PersoChangeAvatar\"\r\n id=\"recaptchaAvatar\"\r\n verifyCallback={(recaptchaToken) => {\r\n setFieldValue(\"recaptcha\", recaptchaToken);\r\n }}\r\n />\r\n {this.state.serverErrorUpdatePicture && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorUpdatePictureLabel}</p>}\r\n {this.state.serverError && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorMessageUpdatePicture}</p>}\r\n {((errors.fileupload && touched.fileupload) || errors.recaptcha) && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"DefaultErrorMessage\")}</p>}\r\n {this.state.submitUploadVisible && (\r\n <div className=\"ctn_cta mb_30 fade-in\">\r\n <button className=\"obj_cta\" type=\"submit\">\r\n {this.props.t(\"Register_Valider\")}\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n </form>\r\n </div>\r\n )}\r\n </Formik>\r\n\r\n <Formik\r\n initialValues={{\r\n civilite: CurrentUser.gender,\r\n lastname: CurrentUser.lastname,\r\n firstname: CurrentUser.firstname,\r\n birthday: CurrentUser.birthday,\r\n birthmonth: CurrentUser.birthmonth,\r\n birthyear: CurrentUser.birthyear,\r\n email: CurrentUser.email,\r\n phone: CurrentUser.phone,\r\n address: CurrentUser.adress,\r\n address_bis: CurrentUser.adress2,\r\n postal_code: CurrentUser.postalcode,\r\n city: CurrentUser.city,\r\n\r\n salepoint: \"\",\r\n poste: apiDatas.User.PosteId,\r\n acceptNwl: CurrentUser.acceptNewsLetter,\r\n acceptNotifications: CurrentUser.acceptNotifications,\r\n\r\n securiteSociale: CurrentUser.codeSocialSecurity,\r\n noSS: CurrentUser.noSocialSecurity,\r\n\r\n recaptcha: \"\",\r\n }}\r\n validationSchema={Yup.object().shape({\r\n civilite: Yup.string().required(),\r\n lastname: Yup.string().required(),\r\n firstname: Yup.string().required(),\r\n email: Yup.string().email().required(),\r\n phone: Yup.string().required(),\r\n\r\n salepoint: Yup.string().matches(/^\\d{8}$/),\r\n poste: Yup.string().required(),\r\n securiteSociale: Yup.string().matches(\r\n /^([1-37-8])([0-9]{2})(0[0-9]|[2-35-9][0-9]|[14][0-2])((0[1-9]|[1-8][0-9]|9[0-69]|2[abAB])(00[1-9]|0[1-9][0-9]|[1-8][0-9]{2}|9[0-8][0-9]|990)|(9[78][0-9])(0[1-9]|[1-8][0-9]|90))(00[1-9]|0[1-9][0-9]|[1-9][0-9]{2})(0[1-9]|[1-8][0-9]|9[0-7])$/,\r\n \"\"\r\n ),\r\n\r\n recaptcha: Yup.string().required(),\r\n })}\r\n onSubmit={(values) => {\r\n document.body.classList.add(\"is-loading\");\r\n const valuesWithSalePoint = values.salepoint ? values : {...values, salepoint:apiDatas.User.Salepoint.Code}\r\n postApiDatas(`/apiaox/Call/InfosPerso_Update`, valuesWithSalePoint).then((res) => {\r\n this.setState({\r\n formSubmitted: res.IsValid,\r\n serverErrorUpdate: !res.IsValid,\r\n serverErrorUpdateLabel: res.Message,\r\n });\r\n\r\n if (this.recaptchaInfoPerso) {\r\n this.recaptchaInfoPerso.execute();\r\n }\r\n\r\n document.body.classList.remove(\"is-loading\");\r\n\r\n if(res.IsValid){\r\n getApiDatas(`/apiaox/Call/GetDataPageRegister`).then((apiDatas) => {\r\n this.setState({ apiDatas: apiDatas })})\r\n this.UpdateConfirm.openModal();\r\n }\r\n });\r\n }}\r\n >\r\n {({ handleSubmit, handleBlur, setFieldValue, setFieldTouched,setErrors,onBlur, onChange, errors, touched, values }) => (\r\n <div className=\"grid_item grid_form-perso\">\r\n <form onSubmit={handleSubmit}>\r\n <h2>{this.props.t(\"Register_InformationsPersonnelles\")}</h2>\r\n <div className=\"obj_form\">\r\n <div className=\"mb_30\">\r\n <CustomSelect\r\n fieldName={\"civilite\"}\r\n placeholder={this.props.t(\"Register_genderPlaceholder\")}\r\n options={[\r\n { value: \"0\", label: this.props.t(\"Register_genderFemale\") },\r\n { value: \"1\", label: this.props.t(\"Register_genderMale\") },\r\n { value: \"2\", label: this.props.t(\"Register_genderNotDefined\") },\r\n ]}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n defaultValue={CurrentUser.gender.toString()}\r\n />\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <Field\r\n autoComplete=\"off\"\r\n className={errors.lastname && touched.lastname && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"lastname\"\r\n placeholder={this.props.t(\"Register_lastnamePlaceholder\")}\r\n />\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <Field\r\n autoComplete=\"off\"\r\n className={errors.firstname && touched.firstname && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"firstname\"\r\n placeholder={this.props.t(\"Register_firstnamePlaceholder\")}\r\n />\r\n </div>\r\n <div className=\"ctn_select-birthdate mb_30\">\r\n <label className=\"t_label\">Date de naissance</label>\r\n <div className=\"ctn_select-wrapper\">\r\n <CustomSelect\r\n fieldName={\"birthday\"}\r\n placeholder={CurrentUser.birthday !== \"-1\" ? CurrentUser.birthday : this.props.t(\"Register_DateDeNaissanceJour\")}\r\n options={\"DayConfig\"}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n />\r\n <CustomSelect\r\n fieldName={\"birthmonth\"}\r\n placeholder={CurrentUser.birthmonth !== \"-1\" ? CurrentUser.birthmonth : this.props.t(\"Register_DateDeNaissanceMois\")}\r\n options={\"MonthConfig\"}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n />\r\n <CustomSelect\r\n fieldName={\"birthyear\"}\r\n placeholder={CurrentUser.birthyear !== \"-1\" ? CurrentUser.birthyear : this.props.t(\"Register_DateDeNaissanceAnnee\")}\r\n options={\"YearConfig\"}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\" id=\"GoToAddress\">\r\n <Field\r\n autoComplete=\"off\"\r\n className={errors.email && touched.email && \"error\"}\r\n as=\"input\"\r\n type=\"email\"\r\n name=\"email\"\r\n placeholder={this.props.t(\"Register_emailPlaceholder\")}\r\n disabled={true}\r\n />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_emailDetails\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" \r\n className={errors.phone && touched.phone && \"error\"}\r\n name=\"phone\" \r\n placeholder={this.props.t(\"Register_PhonePlaceholder\")} \r\n />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_PhoneDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"address\" placeholder={this.props.t(\"Register_AdressPlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_AdressDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"address_bis\" placeholder={this.props.t(\"Register_Adress2Placeholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_Adress2Detail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"postal_code\" placeholder={this.props.t(\"Register_CodePostalPlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_CodePostalDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"city\" placeholder={this.props.t(\"Register_CityPlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_CityDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <h2>\r\n <br />\r\n {this.props.t(\"Register_InformationsProfessionnelles\")}\r\n </h2>\r\n <div className=\"obj_form\">\r\n <div className=\"ctn_select-birthdate mb_30\">\r\n <label className=\"t_label\">{this.props.t(\"Register_VotrePDV\")}</label>\r\n <div className=\"ctn_input mb_30\">\r\n <Field\r\n autoComplete=\"off\"\r\n className={errors.salepoint && touched.salepoint && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"salepoint\"\r\n placeholder={`${apiDatas.User.Salepoint.Code} - ${apiDatas.User.Salepoint.Name}`}\r\n onBlur={async(e) => {\r\n handleBlur(e)\r\n if(e?.target?.value?.length===8){\r\n const dataResult = await getApiDatas(`/apiaox/Call/CheckSalePointFromCode?salepointCode=`+ e.target.value)\r\n if(!dataResult?.SalePoint?.SalePointID){\r\n setErrors({salepoint:this.props.t(\"Register_SalePointInexistant\")})\r\n this.setState({currentSalePoint: apiDatas.User.Salepoint})\r\n }else{ this.setState({currentSalePoint: dataResult.SalePoint})}\r\n } else{ this.setState({currentSalePoint: apiDatas.User.Salepoint})}\r\n\r\n \r\n }}\r\n />\r\n \r\n </div>\r\n {errors.salepoint && touched.salepoint && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"Register_SalePointInexistant\")}</p>}\r\n </div>\r\n {apiDatas.Postes && \r\n <div className=\"mb_30\">\r\n <CustomSelect\r\n fieldName={\"poste\"}\r\n placeholder={this.props.t(\"Register_postePlaceholder\")}\r\n options={ apiDatas.Postes.map((poste) => ({ \r\n value: poste.FrontOfficeUserPoste_Id, \r\n label: poste.FrontOfficeUserPoste_Name\r\n })) }\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n defaultValue={apiDatas.User.PosteId}\r\n />\r\n </div>\r\n }\r\n <div className=\"ctn_checkbox_background mb_30\">\r\n <p className=\"t_title\">{this.props.t(\"Register_AcceptNewsletter\")}</p>\r\n <div className=\"ctn_line\">\r\n <Field type=\"checkbox\" id=\"acceptNwl\" name=\"acceptNwl\" className=\"switch_checkbox\" />\r\n <label className=\"switch_checkbox_label\" htmlFor=\"acceptNwl\">\r\n <span></span> {this.props.t(\"Register_acceptNwl\")}\r\n </label>\r\n </div>\r\n <p className=\"t_desc\">{this.props.t(\"Register_undoConsent\")}</p>\r\n </div>\r\n </div>\r\n\r\n {this.state.currentSalePoint?.SalePointIsChallenge && \r\n <>\r\n <h2>{this.props.t(\"Register_Challenges\")}</h2>\r\n <div className=\"obj_form\">\r\n <p className=\"t_mention mb_30\">{this.props.t(\"Register_NeedSS\")}</p>\r\n\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field\r\n className={errors.securiteSociale && touched.securiteSociale && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"securiteSociale\"\r\n placeholder={this.props.t(\"Register_SecuriteSociale\")}\r\n />\r\n </div>\r\n {errors.securiteSociale && touched.securiteSociale && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"Register_SecuriteSocialeInvalide\")}</p>}\r\n <div className=\"ctn_checkbox mb_30\">\r\n <Field type=\"checkbox\" id=\"noSS\" name=\"noSS\" />\r\n <label className=\"\" htmlFor=\"noSS\">\r\n {this.props.t(\"Register_NoSS\")}\r\n </label>\r\n </div>\r\n </div>\r\n </>\r\n }\r\n\r\n <div className=\"obj_form\">\r\n <p\r\n className=\"t_mention mb_30\"\r\n dangerouslySetInnerHTML={{\r\n __html: this.props.t(\"MonCompte_CGU\"),\r\n }}\r\n ></p>\r\n\r\n <p className=\"t_mandatory mb_30\">{this.props.t(\"Register_mandatory\")}</p>\r\n\r\n <ReCaptcha\r\n ref={(ref) => (this.recaptchaInfoPerso = ref)}\r\n sitekey={this.props.t(\"recaptcha_sitekey\")}\r\n action=\"PersoChangeInfoPerso\"\r\n id=\"recaptchaInfoPerso\"\r\n verifyCallback={(recaptchaToken) => {\r\n setFieldValue(\"recaptcha\", recaptchaToken);\r\n }}\r\n />\r\n\r\n {this.state.serverErrorUpdateLabel && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorUpdateLabel}</p>}\r\n\r\n {((errors.civilite && touched.civilite) ||\r\n (errors.firstname && touched.firstname) ||\r\n (errors.lastname && touched.lastname) ||\r\n (errors.email && touched.email) ||\r\n (errors.poste && touched.poste) ||\r\n (errors.salepoint && touched.salepoint) ||\r\n errors.recaptcha) && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"DefaultErrorMessage\")}</p>}\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"submit\">\r\n {this.props.t(\"Register_MettreAJour\")}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n )}\r\n </Formik>\r\n <DefaultModal\r\n onRef={(ref) => (this.UpdateConfirm = ref)}\r\n htmlContent={\r\n <>\r\n <p className=\"t_title\">Mes informations personnelles</p>\r\n <p className=\"t_main\">votre compte est mis à jour</p>\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"button\" onClick={() => this.UpdateConfirm.closeModal()}>fermer</button>\r\n </div>\r\n {/* TODO SGU : refresh */}\r\n </>\r\n }\r\n />\r\n\r\n <div className=\"grid_item grid_suppr\">\r\n <h2>{this.props.t(\"PageInfosPerso_SupprimerMonCompte\")}</h2>\r\n <div className=\"obj_form\">\r\n <div className=\"ctn_cta\">\r\n <button\r\n className=\"obj_cta\"\r\n type=\"button\"\r\n onClick={() => this.ModalDeleteAccount.openModal()}\r\n dangerouslySetInnerHTML={{ __html: this.props.t(\"PageInfosPerso_SupprimeMonCompte\") }}\r\n ></button>\r\n {this.state.serverErrorDelete && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorDeleteLabel}</p>}\r\n <DefaultModal\r\n onRef={(ref) => (this.ModalDeleteAccount = ref)}\r\n htmlContent={\r\n <>\r\n {this.state.stepModalDeleteAccount === 1 && (\r\n <>\r\n <p className=\"t_title\">{this.props.t(\"PageInfosPerso_SuppressionDeCompte\")}</p>\r\n <p className=\"t_main\" dangerouslySetInnerHTML={{ __html: this.props.t(\"PageInfosPerso_VotreCompteEtVosDonnees\") }}></p>\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"button\" onClick={(e) => this.handleClickDelete(e, CurrentUser.userkey)}>\r\n {this.props.t(\"Reponse_Oui\")}\r\n </button>\r\n <button className=\"obj_cta\" type=\"button\" onClick={() => this.ModalDeleteAccount.closeModal()}>\r\n {this.props.t(\"Reponse_Non\")}\r\n </button>\r\n </div>\r\n </>\r\n )}\r\n {this.state.stepModalDeleteAccount === 2 && <p className=\"t_main\">{this.props.t(\"PageInfosPerso_VotreDemandeSeraTraiteeDansLesMeilleures\")}</p>}\r\n </>\r\n }\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n {/*Bug ReCaptcha, il en faut 1 dernier pour que les autres fonctionne !! */}\r\n <ReCaptcha ref={(ref) => (this.recaptchaAutre = ref)} sitekey={this.props.t(\"recaptcha_sitekey\")} elementID=\"recaptchaAutre\" />\r\n </>\r\n )}\r\n </div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageInfoPerso));\r\n","import React, { Component } from 'react' \r\nimport { Text, Image, withSitecoreContext, RichText } from '@sitecore-jss/sitecore-jss-react' \r\nimport { withTranslation } from 'react-i18next';\r\n\r\nclass PageIngredient extends Component {\r\n\trender() {\r\n\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields; \r\n const { CurrentIngredient } = this.props.fields.data; \r\n\r\n\t\treturn (\r\n <section className=\"section_detail-ingredients\">\r\n\t\t\t\t{ oCurrentItemFields && <div className=\"str_container\">\r\n\r\n\t\t\t\t\t<div className=\"ctn_header-ingredients\">\r\n\t\t\t\t\t\t<figure className=\"ctn_image\">\r\n\t\t\t\t\t\t\t<Image field={oCurrentItemFields[\"Page Image\"]}></Image>\r\n\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t<div className=\"ctn_text\">\r\n <Text field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text>\r\n <RichText field={oCurrentItemFields[\"Page Text\"]} tag=\"p\"></RichText>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n {oCurrentItemFields[\"Proprietes cosmetiques\"] && oCurrentItemFields[\"Proprietes cosmetiques\"].value && \r\n <div className=\"ctn_proprietes-ingredients\">\r\n <h2>{this.props.t('Ingredient_Titre_ProprietesCosmetiques')}</h2>\r\n <RichText field={oCurrentItemFields[\"Proprietes cosmetiques\"]}></RichText>\r\n </div>\r\n }\r\n\t\t\t\t\t\r\n {CurrentIngredient && CurrentIngredient.children && CurrentIngredient.children.length > 0 &&\r\n\t\t\t\t\t<div className=\"ctn_identite-ingredients\">\r\n <h2>{this.props.t('Ingredient_Titre_CarteIdentiteBotanique')}</h2>\r\n <div className=\"ctn_table-ingredients\">\r\n {CurrentIngredient && \r\n CurrentIngredient.children.map((elem, index) => (\r\n <div className=\"ctn_row\" key={index}>\r\n <Text field={elem.key.jss} tag=\"p\"></Text>\r\n <Text field={elem.value.jss} tag=\"p\"></Text>\r\n </div>\r\n ))} \r\n </div>\r\n\t\t\t\t\t</div>\r\n }\r\n\r\n\t\t\t\t\t<div className=\"ctn_bienfaits-ingredients\">\r\n {oCurrentItemFields[\"Bienfaits\"] && oCurrentItemFields[\"Bienfaits\"].value &&\r\n <div className=\"ctn_col col_left\">\r\n <h2>{this.props.t('Ingredient_Titre_Bienfaits')}</h2>\r\n <RichText field={oCurrentItemFields[\"Bienfaits\"]}></RichText>\r\n </div>\r\n }\r\n {oCurrentItemFields[\"Botanique\"] && oCurrentItemFields[\"Botanique\"].value &&\r\n <div className=\"ctn_col col_right\">\r\n <h2>{this.props.t('Ingredient_Titre_Botanique')}</h2>\r\n <RichText field={oCurrentItemFields[\"Botanique\"]}></RichText>\r\n </div>\r\n }\r\n\t\t\t\t\t</div>\r\n\r\n </div> }\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageIngredient));","import React, { Component } from 'react'\r\nimport { Link as ScrollLink } from 'react-scroll'\r\nimport LazyLoad from 'react-lazyload' \r\nimport { Text, Image, withSitecoreContext, RichText } from '@sitecore-jss/sitecore-jss-react'\r\nimport { withTranslation } from 'react-i18next';\r\nimport { isNotEmpty } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nclass PageIngredientList extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\t\r\n\t\tthis.state = {\r\n\t\t\texpandOpened: false\r\n\t\t}\r\n\t \r\n\t\t// cta click event\r\n\t\tthis.toggleExpandIngredients = this.toggleExpandIngredients.bind(this)\r\n\t\t// ref ctn_text\r\n\t\tthis.containerExpandIngredients = React.createRef()\r\n\t\t// ref ctn_text div\r\n\t\tthis.wrapperExpandIngredients = React.createRef()\r\n\t}\r\n\ttoggleExpandIngredients() {\r\n\t\t// get expand height\r\n\t\tvar expandHeight = this.wrapperExpandIngredients.current.clientHeight\r\n\t\t// set expand height\r\n\t\tif( !this.state.expandOpened ) {\r\n\t\t\tthis.containerExpandIngredients.current.style.height = expandHeight + \"px\"\r\n\t\t} else {\r\n\t\t\tthis.containerExpandIngredients.current.style.height = \"0px\"\r\n\t\t}\r\n\t\t// set bool state\r\n\t\tthis.setState({\r\n\t\t\texpandOpened: !this.state.expandOpened\r\n\t\t})\r\n\t}\r\n\r\n\tgetIngredientUrl(oIngredientItem) {\r\n\r\n\t\tif (oIngredientItem.urlIngredient == null || oIngredientItem.urlIngredient.jss == null)\r\n\t\t{\r\n\t\t\treturn oIngredientItem.url;\r\n\t\t}\t\t\r\n\r\n\t\tif (isNotEmpty(oIngredientItem.urlIngredient.jss.value.href)) \r\n\t\t{\r\n\t\t\treturn oIngredientItem.urlIngredient.jss.value.href;\r\n\t\t} \r\n\r\n\t\treturn oIngredientItem.url;\r\n\t}\r\n\r\n\tgetIngredientUrlTarget(oIngredientItem) {\r\n\r\n\t\tif (oIngredientItem.urlIngredient == null || oIngredientItem.urlIngredient.jss == null)\r\n\t\t{\r\n\t\t\treturn \"_self\";\r\n\t\t}\t\t\r\n\r\n\t\tif (isNotEmpty(oIngredientItem.urlIngredient.jss.value.href)) \r\n\t\t{\r\n\t\t\treturn \"_blank\";\r\n\t\t} \r\n\r\n\t\treturn \"_self\";\r\n\t}\r\n\r\n\trender() {\r\n\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n const { LstIngredients } = this.props.fields.data; \r\n\r\n \r\n let LstIngredientsGroup = LstIngredients.children.reduce((r, e) => {\r\n let group = e.pageTitle.value[0].toUpperCase(); \r\n if(!r[group]) r[group] = {group, children: [e]}\r\n else r[group].children.push(e);\r\n return r;\r\n }, {});\r\n let LstIngredientsGroupArray = Object.values(LstIngredientsGroup)\r\n \r\n\t\treturn (\r\n\t\t\t<> \r\n\t\t\t\r\n\t\t\t{ oCurrentItemFields && oCurrentItemFields[\"External Title\"] === false && \r\n <Text className=\"obj_title\" field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text>}\r\n\t\t\t\r\n\r\n\t\t\t<section className=\"section_header-ingredients\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n\t\t\t\t\t<div className=\"ctn_header-ingredients\">\r\n\t\t\t\t\t\t{ oCurrentItemFields && oCurrentItemFields[\"Header Text 1\"] && \r\n\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t\t\t\t<source srcSet={oCurrentItemFields[\"Header Image Mob 1\"].value.src} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t<Image field={oCurrentItemFields[\"Header Image 1\"]}></Image>\r\n\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t<figcaption><Text field={oCurrentItemFields[\"Header Text 1\"]}></Text></figcaption>\r\n\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t} \r\n\t\t\t\t\t\t{ oCurrentItemFields && oCurrentItemFields[\"Header Text 2\"] && \r\n\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t\t\t\t<source srcSet={oCurrentItemFields[\"Header Image Mob 2\"].value.src} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t<Image field={oCurrentItemFields[\"Header Image 2\"]}></Image>\r\n\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t<figcaption><Text field={oCurrentItemFields[\"Header Text 2\"]}></Text></figcaption>\r\n\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t} \r\n\t\t\t\t\t\t{ oCurrentItemFields && oCurrentItemFields[\"Header Text 3\"] && \r\n\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t\t\t\t<source srcSet={oCurrentItemFields[\"Header Image Mob 3\"].value.src} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t<Image field={oCurrentItemFields[\"Header Image 3\"]}></Image>\r\n\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t<figcaption><Text field={oCurrentItemFields[\"Header Text 3\"]}></Text></figcaption>\r\n\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t} \r\n\t\t\t\t\t\t{ oCurrentItemFields && oCurrentItemFields[\"Header Text 4\"] && \r\n\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t\t\t\t<source srcSet={oCurrentItemFields[\"Header Image Mob 4\"].value.src} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t<Image field={oCurrentItemFields[\"Header Image 4\"]}></Image>\r\n\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t<figcaption><Text field={oCurrentItemFields[\"Header Text 4\"]}></Text></figcaption>\r\n\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t} \r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t{ oCurrentItemFields && oCurrentItemFields[\"Page Text\"] && oCurrentItemFields[\"Page Text\"].value &&\r\n\t\t\t\t\t\t<div className=\"ctn_expand-ingredients\">\r\n\t\t\t\t\t\t\t<Text field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h2\"></Text>\r\n\t\t\t\t\t\t\t<div className=\"ctn_text\" ref={this.containerExpandIngredients}>\r\n\t\t\t\t\t\t\t\t<div ref={this.wrapperExpandIngredients}> \r\n\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Page Text\"]} ></RichText> \r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t<button className={`obj_cta${this.state.expandOpened ? ' light-grey' : ''}`} type=\"button\" onClick={this.toggleExpandIngredients}>\r\n\t\t\t\t\t\t\t\t\t{this.state.expandOpened ? this.props.t('Ingredient_Fermer') : this.props.t('Ingredient_EnSavoirPlus')}\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n\t\t\t<section className=\"section_liste-ingredients\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n\t\t\t\t\t<ul className=\"obj_nav-ingredients\">\r\n\t\t\t\t\t\t{[...'ABCDEFGHIJKLMNOPQRSTUVWXYZ'].map((alpha, index) => (\r\n \t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t<ScrollLink\r\n\t\t\t\t\t\t\t\t\tactiveClass=\"current\"\r\n\t\t\t\t\t\t\t\t\tclassName={`${LstIngredientsGroupArray.find(i => i.group === alpha) ? '' : 'inactive'}`}\r\n\t\t\t\t\t\t\t\t\tto={alpha}\r\n\t\t\t\t\t\t\t\t\tspy={true}\r\n\t\t\t\t\t\t\t\t\tsmooth={true}\r\n\t\t\t\t\t\t\t\t\toffset={-140}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{alpha}\r\n\t\t\t\t\t\t\t\t</ScrollLink>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t{LstIngredientsGroupArray\r\n\t\t\t\t\t\t.filter(categoryItem => categoryItem.children.length > 0)\r\n\t\t\t\t\t\t.map((categoryItem, index) => (\r\n\r\n\t\t\t\t\t\t\t<div key={index} className=\"ctn_liste-ingredients\" name={categoryItem.group}>\r\n\r\n\t\t\t\t\t\t\t\t<p className=\"t_title-letter\">{categoryItem.group}</p>\r\n\r\n\t\t\t\t\t\t\t\t{categoryItem.children.map((ingredientItem, index) => (\r\n\r\n\t\t\t\t\t\t\t\t\t<div key={index} className=\"obj_liste-ingredients\">\r\n\t\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Image field={ingredientItem.pageImage.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n \t\t\t\t\t\t<Text field={ingredientItem.pageTitle.jss} tag=\"h2\"></Text>\r\n\t\t\t\t\t\t\t\t\t\t\t<Text field={ingredientItem.pageSubTitle.jss} tag=\"p\"></Text>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta\" target={this.getIngredientUrlTarget(ingredientItem)} href={this.getIngredientUrl(ingredientItem)}>{this.props.t('Ingredient_EnSavoirPlus')}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div> \r\n \t\t\t\t))} \r\n\t\t\t\t\t\t\t</div> \r\n\t\t\t\t\t))}\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageIngredientList));","import React, { Component } from \"react\";\r\nimport { Text, Image, withSitecoreContext, RichText } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport { ConditionalWrapper } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\nimport { GetFriendlyUrl } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\nimport { withTranslation } from \"react-i18next\";\r\n\r\nclass PageListe extends Component {\r\n\thandleClickPush(articleItem) {\r\n\t\tif (articleItem.template.id === \"E65891FDEBCB4538B030451CFA6216A5\") {\r\n\t\t\tdocument.location.href = GetFriendlyUrl(articleItem.trainingUrl);\r\n\t\t} else if (articleItem.template.id === \"00D014A9524641EAADE72A3CD621DEBC\" || articleItem.template.id === \"C71142FF447946B2B7EA4306CBA526E7\") {\r\n\t\t\t//Download & Link\r\n\t\t\twindow.open(GetFriendlyUrl(articleItem.pageLink));\r\n\t\t} else if (articleItem.template.id === \"412FE69C129E4E6294116A162F3D4CC3\" && articleItem.videoOnly && articleItem.videoOnly.boolValue) {\r\n\t\t\t//article video only\r\n\t\t\twindow.open(articleItem.url);\r\n\t\t} else {\r\n\t\t\t//autre\r\n\t\t\twindow.open(articleItem.url, \"_self\");\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst { CurrentPageList } = this.props.fields.data;\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{oCurrentItemFields && <Text className=\"obj_title\" tag=\"h2\" field={oCurrentItemFields[\"Page Title\"]}></Text>}\r\n\t\t\t\t<section className=\"section_page-liste\">\r\n\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t{CurrentPageList && (\r\n\t\t\t\t\t\t\t<ConditionalWrapper\r\n\t\t\t\t\t\t\t\tcondition={CurrentPageList.FirstArticles}\r\n\t\t\t\t\t\t\t\twrapper={(children) => (\r\n\t\t\t\t\t\t\t\t\t<section className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_sub-row\">{children}</div>\r\n\t\t\t\t\t\t\t\t\t</section>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{CurrentPageList.FirstArticles &&\r\n\t\t\t\t\t\t\t\t\tCurrentPageList.FirstArticles.map((articleItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t<article\r\n\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\tclassName={`ctn_page-liste${articleItem.videoUrl && articleItem.videoUrl.jss && articleItem.videoUrl.jss.value !== \"\" ? \" var_video\" : \"\"}${\r\n\t\t\t\t\t\t\t\t\t\t\t\tarticleItem.trainingPushPlayButton && articleItem.trainingPushPlayButton.boolValue ? \" var_video\" : \"\"\r\n\t\t\t\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.handleClickPush(articleItem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* //article brand & subList */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{(articleItem.template.id === \"412FE69C129E4E6294116A162F3D4CC3\" || articleItem.template.id === \"5EF6591272674915B2AFBB6022C9BAEA\") && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Image field={articleItem.pageImagePush.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.template.id !== \"412FE69C129E4E6294116A162F3D4CC3\" && articleItem.template.id !== \"5EF6591272674915B2AFBB6022C9BAEA\" && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Image field={articleItem.pageImage.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<RichText field={articleItem.pageTitle.jss} tag=\"h3\"></RichText>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.template.id === \"412FE69C129E4E6294116A162F3D4CC3\" && !(articleItem.videoOnly && articleItem.videoOnly.boolValue) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_likes-comments\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"heart\" width=\"19\" height=\"16\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.likes.numberValue ? articleItem.likes.numberValue : 0} <span>{this.props.t(\"ArticleLike\")}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.userCanAddReviews.boolValue && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"dialog\" width=\"20\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.reviewsCount}{\" \"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>{articleItem.reviewsCount >= 2 ? this.props.t(\"ArticleCommentaires\") : this.props.t(\"ArticleCommentaire\")}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.template.id === \"00D014A9524641EAADE72A3CD621DEBC\" && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_cta-download\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"download\" width=\"18\" height=\"18\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.pageLink.jss.value.text}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t</article>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t</ConditionalWrapper>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{CurrentPageList &&\r\n\t\t\t\t\t\t\tCurrentPageList.Categories &&\r\n\t\t\t\t\t\t\tCurrentPageList.Categories.map((oCurrentItem, index) => (\r\n\t\t\t\t\t\t\t\t<section key={index} className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t\t\t\t<strong>\r\n\t\t\t\t\t\t\t\t\t\t\t<Text field={oCurrentItem.pageTitle.jss}></Text>\r\n\t\t\t\t\t\t\t\t\t\t</strong>\r\n\t\t\t\t\t\t\t\t\t\t{oCurrentItem.pageSubTitle.jss.value !== \"\" ? \" - \" : \"\"}\r\n\t\t\t\t\t\t\t\t\t\t<Text field={oCurrentItem.pageSubTitle.jss}></Text>\r\n\t\t\t\t\t\t\t\t\t</h2>\r\n\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_sub-row\">\r\n\t\t\t\t\t\t\t\t\t\t{oCurrentItem.children.map((articleItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<article\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={`ctn_page-liste${articleItem.videoUrl && articleItem.videoUrl.jss && articleItem.videoUrl.jss.value !== \"\" ? \" var_video\" : \"\"}${\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tarticleItem.trainingPushPlayButton && articleItem.trainingPushPlayButton.boolValue ? \" var_video\" : \"\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t}${articleItem.pushPlayButton && articleItem.pushPlayButton.boolValue ? \" var_video\" : \"\"}`}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.handleClickPush(articleItem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* //article brand & subList */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{(articleItem.template.id === \"412FE69C129E4E6294116A162F3D4CC3\" || articleItem.template.id === \"5EF6591272674915B2AFBB6022C9BAEA\") && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Image field={articleItem.pageImagePush.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.template.id !== \"412FE69C129E4E6294116A162F3D4CC3\" && articleItem.template.id !== \"5EF6591272674915B2AFBB6022C9BAEA\" && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Image field={articleItem.pageImage.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text field={articleItem.pageTitle.jss} tag=\"h3\"></Text>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.template.id === \"412FE69C129E4E6294116A162F3D4CC3\" && !(articleItem.videoOnly && articleItem.videoOnly.boolValue) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_likes-comments\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.likes && articleItem.likes.numberValue && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"heart\" width=\"19\" height=\"16\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.likes.numberValue ? articleItem.likes.numberValue : 0} <span>{this.props.t(\"ArticleLike\")}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.userCanAddReviews && articleItem.userCanAddReviews.boolValue && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"dialog\" width=\"20\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.reviewsCount}{\" \"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>{articleItem.reviewsCount >= 2 ? this.props.t(\"ArticleCommentaires\") : this.props.t(\"ArticleCommentaire\")}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.template.id === \"00D014A9524641EAADE72A3CD621DEBC\" && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_cta-download\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"download\" width=\"18\" height=\"18\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{articleItem.pageLink.jss.value.text}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</article>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</section>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\nexport default withTranslation()(withSitecoreContext()(PageListe));\r\n","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nimport { throttle } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\n\r\nimport { Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react'\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass FacebookPostModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false,\r\n\t\t\tctnImageHeight: 'auto'\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t\tthis.handleWindowResizeFacebookPostModal = this.handleWindowResizeFacebookPostModal.bind(this)\r\n\t\tthis.throttleWindowResizeFacebookPostModal = throttle(this.handleWindowResizeFacebookPostModal, 100)\r\n\t\tthis.handleCopyText = this.handleCopyText.bind(this)\r\n\t\tthis.handleCopyImage = this.handleCopyImage.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeFacebookPostModal)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeFacebookPostModal)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({\r\n\t\t\tmodalIsOpen: true\r\n\t\t})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\r\n\thandleWindowResizeFacebookPostModal(){\r\n\t\tif(window.innerWidth > 768 && this.ctnImage){\r\n\t\t\tthis.setState({\r\n\t\t\t\tctnImageHeight: this.ctnImage.querySelector('img').offsetHeight\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\t\r\n\thandleCopyImage() {\r\n\t\tasync function screenShot(image) {\r\n\t\t try {\r\n\t\t\tconst response = await fetch(\r\n\t\t\t\timage\r\n\t\t\t);\r\n\t\t\tconst blob = await response.blob();\r\n\r\n\t\t\tawait navigator.clipboard.write([\r\n\t\t\t new window.ClipboardItem({ \"image/png\": blob }),\r\n\t\t\t]);\r\n\t\t } catch (err) {\r\n\t\t\tconsole.error(err);\r\n\t\t }\r\n\t\t}\r\n\t\t\r\n\t\tscreenShot(this.props.articleItem.pOSTImagePopin.src);\r\n\t }\r\n\r\n\thandleCopyText() {\r\n\t\tnavigator.clipboard.writeText(this.props.articleItem.pOSTTitle.jss.value + \"\\n\" + this.props.articleItem.pOSTTextLong.jss.value);\t\r\n\t}\t\r\n\r\n\trender() {\r\n\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_post-fb\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<div className=\"ctn_image\" ref={ref => (this.ctnImage = ref)}>\r\n\t\t\t\t\t\t\t<div className=\"ctn_solo-img\">\r\n\t\t\t\t\t\t\t\t<img onLoad={this.handleWindowResizeFacebookPostModal} src={this.props.articleItem.pOSTImagePopin.src} alt={this.props.articleItem.pOSTImagePopin.alt}/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_text\" style={{height:this.state.ctnImageHeight}}>\t\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_scroll\">\r\n\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_post-fb\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_top\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t<Text className=\"t_title\" tag=\"p\" field={this.props.articleItem.pOSTTitle.jss}></Text>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_likes-fb\">\r\n\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"eye\" width=\"20\" height=\"13\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t{(this.props.articleItem.numberOfViews.value) ? this.props.articleItem.numberOfViews.value : 0} {this.props.t('FacebookViews')}\r\n\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"share\" width=\"20\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t{(this.props.articleItem.numberOfShares.value) ? this.props.articleItem.numberOfShares.value : 0} {this.props.t('FacebookShares')} \r\n\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_txt\">\r\n\t\t\t\t\t\t\t\t\t\t<Text className=\"t_desc\" tag=\"p\" field={this.props.articleItem.pOSTTextLong.jss}></Text>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div className=\"ctn_bottom\">\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_txt-partage\">\r\n\t\t\t\t\t\t\t\t\t<ol>\r\n\t\t\t\t\t\t\t\t\t\t<li>Cliquez sur <strong>PARTAGER</strong></li>\r\n\t\t\t\t\t\t\t\t\t\t<li>{this.props.t('FacebookConnect')}</li>\r\n\t\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div class=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t<button class=\"obj_cta\" onClick={this.handleCopyImage}>Copier Image</button>\r\n\t\t\t\t\t\t\t\t\t<button class=\"obj_cta\" onClick={this.handleCopyText}>Copier Texte</button>\r\n\t\t\t\t\t\t\t\t\t<button className=\"obj_cta reverse\" onClick={this.closeModal}>{this.props.t('FacebookAnnuler')}</button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(FacebookPostModal));","import React, { Component } from 'react'\r\nimport { Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react'\r\n\r\nimport LazyLoad from 'react-lazyload'\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport FacebookPostModal from '../Modal/FacebookPostModal'\r\n\r\nclass PageListeFacebookPOST extends Component{\r\n\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst { CurrentPageList } = this.props.fields.data; \r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{ oCurrentItemFields && <Text className=\"obj_title\" tag=\"h1\" field={oCurrentItemFields[\"Page Title\"]}></Text>}\r\n\t\t\t\t<section className=\"section_page-liste\"> \r\n\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<section className=\"ctn_row\">\r\n\r\n\t\t\t\t\t\t\t{ oCurrentItemFields && <Text className=\"obj_subtitle\" tag=\"P\" field={oCurrentItemFields[\"Page SubTitle\"]}></Text>}\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_sub-row\">\r\n\r\n\t\t\t\t\t\t\t\t{ CurrentPageList.ListFacebookPOST && CurrentPageList.ListFacebookPOST.map((itemPOST, index) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<article key={index} className=\"ctn_page-liste var-fb\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => this[`FacebookPostModal${index}`].openModal()}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<figure className=\"fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={itemPOST.pOSTImagePush.src} alt={itemPOST.pOSTImagePush.alt}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t\t</LazyLoad>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"h3\" field={itemPOST.pOSTTitle.jss}></Text>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<Text className=\"t_desc\" tag=\"p\" field={itemPOST.pOSTTextShort.jss}></Text>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"obj_likes-fb\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"eye\" width=\"20\" height=\"13\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{(itemPOST.numberOfViews.value) ? itemPOST.numberOfViews.value : 0} vue(s)\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"share\" width=\"20\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{(itemPOST.numberOfShares.value) ? itemPOST.numberOfShares.value : 0} partage(s)\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<FacebookPostModal\r\n\t\t\t\t\t\t\t\t\t\t\tonRef={ref => (this[`FacebookPostModal${index}`] = ref)}\r\n\t\t\t\t\t\t\t\t\t\t\tarticleItem={itemPOST}\r\n\t\t\t\t\t\t\t\t\t\t/>\t\r\n\r\n\t\t\t\t\t\t\t\t\t</article>\r\n\r\n\t\t\t\t\t\t\t\t))}\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageListeFacebookPOST));","import React, { Component } from 'react';\r\nimport { withSitecoreContext, Text, RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nclass PageMentionContent extends Component {\r\n\trender() {\r\n \tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_mentions\">\r\n\t\t\t\t<div className=\"str_container\">\t\t\t\t\t\r\n\t\t\t\t\t<div className=\"ctn_top\">\r\n \t\t\t\t{ oCurrentItemFields && <Text field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t{ oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Text\"]} tag=\"div\" className=\"ctn_main\"></RichText>}\t\t\t\t\t\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withSitecoreContext()(PageMentionContent);\r\n","import React, { Component } from 'react'\r\n\r\nimport { strDateToFr } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nclass ObjTabPresences extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\topenedBrand: {}\r\n\t\t}\r\n\t\tthis.switchTab = this.switchTab.bind(this);\r\n this.toggleAccordion = this.toggleAccordion.bind(this);\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeBrandSelection)\r\n\t\twindow.dispatchEvent(new Event('resize'))\r\n this.switchTab(0);\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeBrandSelection)\r\n\t}\r\n\r\n\tswitchTab(index){\r\n this.setState({openedBrand: {}});\r\n\r\n\t\tvar $listItem = document.querySelectorAll(\".ctn_nav-tabs li\"),\r\n $tabItem = document.querySelectorAll(\".ctn_content-tabs\");\r\n\r\n $listItem.forEach(listItem => listItem.classList.remove(\"active\"));\r\n $listItem[index].classList.add(\"active\");\r\n $tabItem.forEach(tabItem => tabItem.classList.remove(\"active\", \"fade-in\"));\r\n $tabItem[index].classList.add(\"active\", \"fade-in\");\r\n\r\n window.dispatchEvent(new Event('scroll'));\r\n\t}\r\n\r\n\ttoggleAccordion(index) {\r\n this.setState(prevState => ({\r\n openedBrand: {\r\n ...prevState.openedBrand,\r\n [index]: !prevState.openedBrand[index]\r\n }\r\n }));\r\n }\r\n\t\r\n\trender() {\r\n\t\tconst { apiDatas } = this.props;\r\n\r\n\t\treturn (<>\r\n {apiDatas.years?.length > 0 &&\r\n <div className=\"obj_tabs-list-attestation\">\r\n\r\n <ul className=\"ctn_nav-tabs\">\r\n {apiDatas.years.map((yearItem, index) => (\r\n <li><button type=\"button\" onClick={() => this.switchTab(index)}>Evénements {yearItem.year}</button></li> \r\n ))}\r\n </ul>\r\n\r\n {apiDatas.years.map((yearItem, indexYearItem) => (<>\r\n <div className=\"ctn_content-tabs\">\r\n <div className=\"obj_accordion\">\r\n {yearItem.brands?.length > 0 && yearItem.brands.map((brandItem, indexBrandItem) => (<>\r\n <div key={indexBrandItem} className={`obj_accordion-row ${brandItem.cssClass} ${this.state.openedBrand[indexBrandItem]?'is_expanded':''}`}>\r\n <div className=\"obj_accordion-row-header\">\r\n <button\r\n className=\"obj_accordion-title\"\r\n onClick={() => this.toggleAccordion(indexBrandItem)}\r\n >\r\n <div className=\"obj_accordion_toggle-icon\"></div>\r\n <h3 className=\"t_title\">{brandItem.name}</h3>\r\n </button>\r\n <div className=\"obj_accordion-cta\">\r\n <a href={brandItem.linkPdf} target=\"_blank\" rel=\"noopener noreferrer\">\r\n <button className=\"obj_cta\" >\r\n Télécharger l'attestation\r\n </button>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div className=\"ctn_accordion-content\">\r\n <div className=\"obj_accordion-content\">\r\n <div>\r\n <div className=\"obj_table-header\">\r\n <div className=\"header-cell\">Date - Heure</div>\r\n <div className=\"header-cell\">Evénement</div>\r\n <div className=\"header-cell\">Lieu</div>\r\n </div>\r\n\r\n {brandItem.presences.map((presenceItem, presenceItemIndex) => (\r\n <div key={presenceItemIndex} className=\"ctn_rows\">\r\n <div className=\"expand_date_hour\">{strDateToFr(presenceItem.date)}{presenceItem.hour && <> - {presenceItem.hour}</>}</div>\r\n <div className=\"expand_event\">{presenceItem.event}</div>\r\n <div className=\"expand_location\">{presenceItem.location}</div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </>))}\r\n </div>\r\n </div>\r\n </>))}\r\n\r\n </div>\r\n }</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjTabPresences","import React, { Component } from 'react'\r\n\r\nimport { getApiDatas} from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport ObjTabPresences from './ObjTabPresences'\r\n\r\nclass PageMesPresences extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tapiDatas:[],\r\n\t\t}\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Event/GetDataPageMesPresences`)\r\n\t\t.then((apiDatas) => { this.setState({ apiDatas: apiDatas }); });\r\n\r\n\t\tdocument.body.classList.add('pg_formation_attestation')\r\n\t\twindow.scrollTo(0,0)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.classList.remove('pg_formation_attestation')\r\n\t}\r\n\trender() {\r\n\t\tconst apiDatas = this.state.apiDatas\r\n \r\n\t\treturn (\r\n\t\t\t<>\r\n <section className=\"obj_section section_challenges-detail\">\r\n <div className=\"ctn_section\">\r\n\r\n <div className=\"ctn_title\">\r\n <h1 className=\"t_title\">Mes attestations de présence</h1>\r\n <p className=\"t_desc\">Retrouvez les événements de formation auxquels vous avez participé classés par année et par marque.<br /> Sélectionnez l'année et la marque de votre choix pour télécharger vos attestations de présence au format PDF ou les imprimer.</p>\r\n </div>\r\n\r\n <div className=\"ctn_table_attestation\">\r\n {apiDatas.years && \r\n <ObjTabPresences apiDatas={apiDatas}/>\r\n }\r\n </div>\r\n \r\n </div>\r\n </section>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default PageMesPresences","import { withSitecoreContext, RichText, Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\nimport React, { Component } from 'react'\r\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar'\r\nimport AnimatedProgressProvider from '../../utilities/FrontFunctions/Provider/AnimatedProgressProvider'\r\nimport { isAppMobile } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport {GetStatusFromScore, ConvertToListProgressionBrands,GetListExpertise} from '../../utilities/FrontFunctions/AoxFrontFunctions'\r\n\r\nclass PageMonCompte extends Component {\r\n\tcomponentDidMount() {\r\n\t\t// add and dispatch window resize\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeSectionCompte)\r\n\t\twindow.dispatchEvent(new Event('resize'))\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\t// remove window resize\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeSectionCompte)\r\n\t}\t\r\n\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst { CurrentUser } = this.props.fields.data; \t\r\n\t\t\r\n\t\tvar oListProgressionBrands = ConvertToListProgressionBrands(CurrentUser.listprogressionbrands);\r\n\t\tvar oListExpertise = GetListExpertise(CurrentUser);\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_compte\"> \r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n\t\t\t\t\t<div className=\"ctn_top\">\r\n\t\t\t\t\t\t{ oCurrentItemFields && <Text field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text> }\r\n\t\t\t\t\t\t{ oCurrentItemFields && <Text field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h2\"></Text> }\r\n\t\t\t\t\t\t{ oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Text\"]} tag=\"p\"></RichText> }\r\n\t\t\t\t\t</div>\t\t\t\t\t\r\n\r\n\t\t\t\t\t<div className=\"ctn_dashboard\">\t\t\t\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_col col_percent\">\r\n\t\t\t\t\t\t\t<div className={\"obj_circle-progress-expertise var_\" + GetStatusFromScore(CurrentUser.levelexpert)}>\r\n\r\n\t\t\t\t\t\t\t\t<AnimatedProgressProvider valueEnd={CurrentUser.levelexpert}>\r\n\t\t\t\t\t\t\t\t\t{value => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgressbar\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t\t\t\t\t\t\tstrokeWidth={10}\r\n\t\t\t\t\t\t\t\t\t\t\t\tcircleRatio={0.72}\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyles={buildStyles({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\trotation: 0.64\r\n\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t</AnimatedProgressProvider>\r\n\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_txt\">\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_percent\">{CurrentUser.levelexpert}<span>%</span></p>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_title\">{this.props.t('MonCompte_ExpertiseCAF')}</p>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_avatar\">\r\n\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t{CurrentUser.userimg !== \"\" ?\r\n\t\t\t\t\t\t\t\t\t\t\t<img src={CurrentUser.userimg} alt={CurrentUser.firstname + \" \" + CurrentUser.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar-xl.png\")} alt={CurrentUser.firstname + \" \" + CurrentUser.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\t\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_progress-bar-expertise\">\r\n\r\n\t\t\t\t\t\t\t\t{ oListProgressionBrands.m_oListProgressionBrands.map((oProgressionBrand, index) => {\r\n\t\t\t\t\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t<div key={index} className={\"obj_progress-bar-expertise \" + oProgressionBrand.CssClass}>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\">{oProgressionBrand.Label} ({oProgressionBrand.TrainingDoCount}/{oProgressionBrand.AllTrainingExpertCount}) <span>{oProgressionBrand.Status}</span></p>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<div className={\"obj_progress-bar \" + oProgressionBrand.CssClass}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_steps\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{Array.from(Array(oProgressionBrand.AllTrainingExpertCount), (e, i) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (i < oProgressionBrand.TrainingDoCount) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn <div key={i} className=\"step is-complete\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn <div key={i} className=\"step\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"active_profil\" style={{left: (( (oProgressionBrand.AllTrainingExpertCount !== 0 ) ? (oProgressionBrand.TrainingDoCount / oProgressionBrand.AllTrainingExpertCount) : 0) * 95) + '%'}}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{CurrentUser.userimg !== \"\" ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={CurrentUser.userimg} alt={CurrentUser.firstname + \" \" + CurrentUser.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar-xl.png\")} alt={CurrentUser.firstname + \" \" + CurrentUser.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t{ !isAppMobile() &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta\" href={oProgressionBrand.PageFormationUrl}>{this.props.t('MonCompte_LinkFormation')}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t)\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\t\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t{ oListExpertise.length > 0 &&\r\n\t\t\t\t\t\t\t<div className=\"ctn_col col_expert\">\r\n\t\t\t\t\t\t\t\t<h3>{this.props.t('MonCompte_EspaceVIP')}</h3>\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_list-vip-expert\">\r\n\t\t\t\t\t\t\t\t\t{oListExpertise.map((experteItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t<div key={index} className=\"item_vip-expert\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_logo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src={experteItem.image} alt={experteItem.label}/>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_title\">{experteItem.label}</p>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageMonCompte));\r\n\r\n \r\n","import React from \"react\";\r\n\r\nimport { urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nfunction ObjExpertiseClassement({ ranking, user }) {\r\n //ranking est une liste de jusqu'à 5 rank\r\n //2 user peuvent avoir un même rank\r\n //le userconnecté doit être affiché en priorité, ce qui n'est pas garantie par l'apiData\r\n //=> correctif\r\n let newRanking = ranking;\r\n if(user.Rank>0){\r\n //faire de la place pour le user\r\n if(ranking.some(o => o.FrontOfficeUser_Id === user.FrontOfficeUser_Id)){\r\n newRanking = ranking.filter(o => o.FrontOfficeUser_Id !== user.FrontOfficeUser_Id);\r\n } else {\r\n newRanking = ranking.slice(0, ranking.length-1);\r\n }\r\n \r\n //insertion du user en 1er de son rank\r\n let indexInsert = newRanking.findIndex(o => o.Rank >= user.Rank)\r\n if(indexInsert<0){ indexInsert = newRanking.length; }\r\n newRanking.splice(indexInsert, 0, user);\r\n }\r\n\r\n return (\r\n <div className=\"obj_lst_classement_exp\">\r\n { newRanking.map((rank, index) => (\r\n <div key={index} className={`item_classement_exp${ rank.FrontOfficeUser_Id !== user.FrontOfficeUser_Id ? `` : ` current${rank.Evolution_Rank==='Up' ? ` var_up` : rank.Evolution_Rank==='Down' ? ` var_down` : ``}`}`}>\r\n <picture className=\"ctn_image\">\r\n {\t(rank.FrontOfficeUser_PhotoUrl && rank.FrontOfficeUser_PhotoUrl!==null)\r\n ?<img src={urlToHost(rank.FrontOfficeUser_PhotoUrl)} alt={rank.FrontOfficeUser_FirstName ? rank.FrontOfficeUser_FirstName : \"\"}/>\r\n :<img src={require(\"../../assets/images/v_avatar.png\")} alt={rank.FrontOfficeUser_FirstName ? rank.FrontOfficeUser_FirstName : \"\"}/>\r\n }\r\n </picture>\r\n <div className=\"ctn_text\">\r\n <div className=\"t_place_exp\">\r\n {rank.Rank < 1 ? <>-</> : rank.Rank === 1 ? (<>1<sup>er</sup></>) : (<>{rank.Rank}<sup>è</sup></>)}\r\n </div>\r\n <div className=\"t_name_exp\">\r\n {rank.FrontOfficeUser_Id === user.FrontOfficeUser_Id ? user.FrontOfficeUser_FirstName : rank.FrontOfficeUser_FirstName}\r\n </div>\r\n <div className=\"t_nbre_points_exp\">{rank.Score<0 ? '-' : rank.Score}<em>Pts</em></div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\nexport default ObjExpertiseClassement;","const colors = {\r\n\tcaf: {\r\n\t\tmodelColor1: '0x0052A2',\r\n\t\tmodelColor2: '0x58A2EB',\r\n\t\toverlayColor1: '#0052A2',\r\n\t\toverlayColor2: '#58A2EB',\r\n\t},\r\n\tgold: {\r\n\t\tmodelColor1: '0xCEAB65',\r\n\t\tmodelColor2: '0xE6CE9C',\r\n\t\toverlayColor1: '#CEAB65',\r\n\t\toverlayColor2: '#E6CE9C',\r\n\t},\r\n\tsilver: {\r\n\t\tmodelColor1: '0x9AA3AA',\r\n\t\tmodelColor2: '0xCAD5DF',\r\n\t\toverlayColor1: '#9AA3AA',\r\n\t\toverlayColor2: '#CAD5DF',\r\n\t},\r\n\tbronze: {\r\n\t\tmodelColor1: '0xA36E57',\r\n\t\tmodelColor2: '0xE9BEAA',\r\n\t\toverlayColor1: '#A36E57',\r\n\t\toverlayColor2: '#E9BEAA',\r\n\t},\r\n\tlrp: {\r\n\t\tlogo: require('../assets/images/badge_logo/Badge_LogoLRP.png'),\r\n\t\tmodelColor1: '0x008DD2',\r\n\t\tmodelColor2: '0x7BCCF0',\r\n\t\toverlayColor1: '#008DD2',\r\n\t\toverlayColor2: '#7BCCF0',\r\n\t},\r\n\tcerave: {\r\n\t\tlogo: require('../assets/images/badge_logo/Badge_LogoCerave.png'),\r\n\t\tmodelColor1: '0x005EAA',\r\n\t\tmodelColor2: '0x88BDE9',\r\n\t\toverlayColor1: '#005EAA',\r\n\t\toverlayColor2: '#88BDE9',\r\n\t},\r\n\tvichy: {\r\n\t\tlogo: require('../assets/images/badge_logo/Badge_LogoVichy.png'),\r\n\t\tmodelColor1: '0x161715',\r\n\t\tmodelColor2: '0xCBCEDA',\r\n\t\toverlayColor1: '#161715',\r\n\t\toverlayColor2: '#CBCEDA',\r\n\t},\r\n\tskinc: {\r\n\t\tlogo: require('../assets/images/badge_logo/Badge_LogoSkinCeuticals.png'),\r\n\t\tmodelColor1: '0x009EB6',\r\n\t\tmodelColor2: '0x9FD6E3',\r\n\t\toverlayColor1: '#009EB6',\r\n\t\toverlayColor2: '#9FD6E3',\r\n\t},\r\n\tbiotherm: {\r\n\t\tlogo: require('../assets/images/badge_logo/Badge_LogoBiotherm.png'),\r\n\t\tmodelColor1: '0x17505E',\r\n\t\tmodelColor2: '0x98CDD9',\r\n\t\toverlayColor1: '#17505E',\r\n\t\toverlayColor2: '#98CDD9',\r\n\t},\r\n\tsciencemd: {\r\n\t\tlogo: require('../assets/images/badge_logo/Badge_LogoScienceMD.png'),\r\n\t\tmodelColor1: '0x007AA2',\r\n\t\tmodelColor2: '0x77C7DE',\r\n\t\toverlayColor1: '#007AA2',\r\n\t\toverlayColor2: '#77C7DE',\r\n\t},\r\n}\r\n\r\nconst badges = [\r\n\t{\r\n\t\ttype: 'site-bienvenue',\r\n\t\tmodel: require('../assets/models/site-bienvenue.glb'),\r\n\t\ttheme: [\r\n\t\t\t{\r\n\t\t\t\ttheme: 'caf',\r\n\t\t\t\timage: require('../assets/images/badge_svg/Badge_SvgSiteBienvenue.svg'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_svg/Badge_SvgSiteBienvenue_disabled.svg'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttype: 'app-bienvenue',\r\n\t\tmodel: require('../assets/models/app-bienvenue.glb'),\r\n\t\ttheme: [\r\n\t\t\t{\r\n\t\t\t\ttheme: 'caf',\r\n\t\t\t\timage: require('../assets/images/badge_svg/Badge_SvgAppBienvenue.svg'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_svg/Badge_SvgAppBienvenue_disabled.svg'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttype: 'site-connecte',\r\n\t\tmodel: require('../assets/models/site-connecte.glb'),\r\n\t\ttheme: [\r\n\t\t\t{\r\n\t\t\t\ttheme: 'gold',\r\n\t\t\t\timage: require('../assets/images/badge_svg/Badge_SvgSiteConnecte_Gold.svg'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_svg/Badge_SvgSiteConnecte_disabled.svg'),\r\n\t\t\t\t...colors.gold,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'silver',\r\n\t\t\t\timage: require('../assets/images/badge_svg/Badge_SvgSiteConnecte_Silver.svg'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_svg/Badge_SvgSiteConnecte_disabled.svg'),\r\n\t\t\t\t...colors.silver,\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'bronze',\r\n\t\t\t\timage: require('../assets/images/badge_svg/Badge_SvgSiteConnecte_Bronze.svg'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_svg/Badge_SvgSiteConnecte_disabled.svg'),\r\n\t\t\t\t...colors.bronze,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttype: 'app-connecte',\r\n\t\tmodel: require('../assets/models/app-connecte.glb'),\r\n\t\ttheme: [\r\n\t\t\t{\r\n\t\t\t\ttheme: 'gold',\r\n\t\t\t\timage: require('../assets/images/badge_svg/Badge_SvgAppConnecte_Gold.svg'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_svg/Badge_SvgAppConnecte_disabled.svg'),\r\n\t\t\t\t...colors.gold,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'silver',\r\n\t\t\t\timage: require('../assets/images/badge_svg/Badge_SvgAppConnecte_Silver.svg'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_svg/Badge_SvgAppConnecte_disabled.svg'),\r\n\t\t\t\t...colors.silver,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'bronze',\r\n\t\t\t\timage: require('../assets/images/badge_svg/Badge_SvgAppConnecte_Bronze.svg'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_svg/Badge_SvgAppConnecte_disabled.svg'),\r\n\t\t\t\t...colors.bronze,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttype: 'expert-categoriel',\r\n\t\tmodel: require('../assets/models/expert-categoriel.glb'),\r\n\t\ttheme: [\r\n\t\t\t{\r\n\t\t\t\ttheme: 'demo',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_Theme.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_Theme_disabled.png'),\r\n\t\t\t\tlogo: require('../assets/images/badge_logo/Badge_Theme.png'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'oncologie',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_Oncologie.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_Oncologie_disabled.png'),\r\n\t\t\t\tlogo: require('../assets/images/badge_logo/Badge_Oncologie.png'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'dermatologie',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_Dermatologie.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_Dermatologie_disabled.png'),\r\n\t\t\t\tlogo: require('../assets/images/badge_logo/Badge_Dermatologie.png'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'pediatrie',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_Pediatrie.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_Pediatrie_disabled.png'),\r\n\t\t\t\tlogo: require('../assets/images/badge_logo/Badge_Pediatrie.png'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'plaies-cicatrisation',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_PlaiesCicatrisation.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_PlaiesCicatrisation_disabled.png'),\r\n\t\t\t\tlogo: require('../assets/images/badge_logo/Badge_PlaiesCicatrisation.png'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'sante-femme',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_SanteFemme.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_SanteFemme_disabled.png'),\r\n\t\t\t\tlogo: require('../assets/images/badge_logo/Badge_SanteFemme.png'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'cuir-chevelu',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_CuirChevelu.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_CuirChevelu_disabled.png'),\r\n\t\t\t\tlogo: require('../assets/images/badge_logo/Badge_CuirChevelu.png'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'medecine-esthetique',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_MedecineEsthetique.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_SvgExpertCategoriel_MedecineEsthetique_disabled.png'),\r\n\t\t\t\tlogo: require('../assets/images/badge_logo/Badge_MedecineEsthetique.png'),\r\n\t\t\t\t...colors.caf,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttype: 'marque-parcours',\r\n\t\tmodel: require('../assets/models/marque-parcours.glb'),\r\n\t\ttheme: [\r\n\t\t\t{\r\n\t\t\t\ttheme: 'lrp',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueParcours_LRP.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueParcours_LRP_disabled.png'),\r\n\t\t\t\t...colors.lrp,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'cerave',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueParcours_Cerave.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueParcours_Cerave_disabled.png'),\r\n\t\t\t\t...colors.cerave,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'vichy',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueParcours_Vichy.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueParcours_Vichy_disabled.png'),\r\n\t\t\t\t...colors.vichy,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'skinc',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueParcours_Skinc.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueParcours_Skinc_disabled.png'),\r\n\t\t\t\t...colors.skinc,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'biotherm',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueParcours_Biotherm.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueParcours_Biotherm_disabled.png'),\r\n\t\t\t\t...colors.biotherm,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'sciencemd',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueParcours_ScienceMd.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueParcours_ScienceMd_disabled.png'),\r\n\t\t\t\t...colors.sciencemd,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttype: 'marque-miniparcours',\r\n\t\tmodel: require('../assets/models/marque-miniparcours.glb'),\r\n\t\ttheme: [\r\n\t\t\t{\r\n\t\t\t\ttheme: 'lrp',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_LRP.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_LRP_disabled.png'),\r\n\t\t\t\t...colors.lrp,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'cerave',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_Cerave.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_Cerave_disabled.png'),\r\n\t\t\t\t...colors.cerave,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'vichy',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_Vichy.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_Vichy_disabled.png'),\r\n\t\t\t\t...colors.vichy,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'skinc',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_Skinc.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_Skinc_disabled.png'),\r\n\t\t\t\t...colors.skinc,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'biotherm',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_Biotherm.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_Biotherm_disabled.png'),\r\n\t\t\t\t...colors.biotherm,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'sciencemd',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_ScienceMd.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarqueMiniParcours_ScienceMd_disabled.png'),\r\n\t\t\t\t...colors.sciencemd,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttype: 'marque-privilege',\r\n\t\tmodel: require('../assets/models/marque-privilege.glb'),\r\n\t\ttheme: [\r\n\t\t\t{\r\n\t\t\t\ttheme: 'lrp',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarquePrivilege_LRP.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarquePrivilege_LRP_disabled.png'),\r\n\t\t\t\t...colors.lrp,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'cerave',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarquePrivilege_Cerave.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarquePrivilege_Cerave_disabled.png'),\r\n\t\t\t\t...colors.cerave,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'vichy',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarquePrivilege_Vichy.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarquePrivilege_Vichy_disabled.png'),\r\n\t\t\t\t...colors.vichy,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'skinc',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarquePrivilege_Skinc.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarquePrivilege_Skinc_disabled.png'),\r\n\t\t\t\t...colors.skinc,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'biotherm',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarquePrivilege_Biotherm.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarquePrivilege_Biotherm_disabled.png'),\r\n\t\t\t\t...colors.biotherm,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttheme: 'sciencemd',\r\n\t\t\t\timage: require('../assets/images/badge_png/Badge_PngMarquePrivilege_ScienceMd.png'),\r\n\t\t\t\timageDisabled: require('../assets/images/badge_png/Badge_PngMarquePrivilege_ScienceMd_disabled.png'),\r\n\t\t\t\t...colors.sciencemd,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n]\r\n\r\nexport {\r\n badges,\r\n}","import React, { useEffect } from 'react';\r\nimport * as THREE from 'three';\r\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';\r\nimport { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js';\r\nimport anime from 'animejs/lib/anime.es.js';\r\n\r\nimport { isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { badges } from '../../data/badges';\r\n\r\nconst ObjCanvasBadgeExpertise = ({badge, newBadge}) => {\r\n\r\n\t// lifecycle\r\n\tuseEffect(() => {\r\n\t}, []);\r\n\r\n\t// three\r\n\tuseEffect(() => {\r\n\t\t\r\n\t\t// global var\r\n\t\tlet badgeModel;\r\n\r\n\t\t// set canvas\r\n\t\tconst canvas = document.querySelector('#canvas');\r\n\t\tconst renderer = new THREE.WebGLRenderer({\r\n\t\t\tcanvas,\r\n\t\t\tantialias: true,\r\n\t\t\talpha: true,\r\n\t\t});\r\n\r\n\t\t// set camera\r\n\t\tconst fov = 45;\r\n\t\tconst aspect = 2;\r\n\t\tconst near = 0.1;\r\n\t\tconst far = 100;\r\n\t\tconst camera = new THREE.PerspectiveCamera(fov, aspect, near, far);\r\n\t\tcamera.position.set(0, 0, 8);\r\n\r\n\t\t// set scene\r\n\t\tconst scene = new THREE.Scene();\r\n\r\n\t\t// import model\r\n\t\t{\r\n\t\t\tconst roomLoader = new RGBELoader();\r\n\t\t\troomLoader.load(require('../../assets/images/room.hdr'), (roomHdr) => {\r\n\r\n\t\t\t\troomHdr.mapping = THREE.EquirectangularReflectionMapping;\r\n\r\n\t\t\t\tconst manager = new THREE.LoadingManager();\r\n\t\t\t\tmanager.onLoad = () => {\r\n\t\t\t\t\tdocument.body.classList.add('three-is-ready');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst loader = new GLTFLoader(manager);\r\n\r\n\t\t\t\tloader.load(badges.find((item) => item.type === badge?.Badge_Type)?.model, function(gltf){\r\n\r\n\t\t\t\t\tbadgeModel = gltf.scene;\r\n\t\t\t\t\tscene.add(badgeModel);\r\n\r\n\t\t\t\t\tlet envMapIntensity = 5;\r\n\r\n\t\t\t\t\tlet metalMaterialOptions = {\r\n\t\t\t\t\t\tenvMap: roomHdr,\r\n\t\t\t\t\t\tenvMapIntensity: envMapIntensity,\r\n\t\t\t\t\t\troughness: 0,\r\n\t\t\t\t\t\tmetalness: 1,\r\n\t\t\t\t\t\tior: 2.33,\r\n\t\t\t\t\t\treflectivity: 1,\r\n\t\t\t\t\t};\r\n\t\t\t\t\tlet mateMaterialOptions = {\r\n\t\t\t\t\t\tenvMap: roomHdr,\r\n\t\t\t\t\t\tenvMapIntensity: envMapIntensity,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tscene.traverse((obj) => {\r\n\t\t\t\t\t\tif(obj.name === '1-Forme' || obj.name === '4-Cache' || obj.name === '5-Cache'){\r\n\t\t\t\t\t\t\tobj.material = new THREE.MeshPhysicalMaterial(metalMaterialOptions);\r\n\t\t\t\t\t\t\tobj.material.color.setHex(badges.find((item) => item.type === badge?.Badge_Type)?.theme.find((item) => item.theme === badge.Badge_Theme)?.modelColor1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(obj.name === '2-Fond' || obj.name === '6-Cross'){\r\n\t\t\t\t\t\t\tobj.material = new THREE.MeshPhysicalMaterial(mateMaterialOptions);\r\n\t\t\t\t\t\t\tobj.material.color.setHex(badges.find((item) => item.type === badge?.Badge_Type)?.theme.find((item) => item.theme === badge.Badge_Theme)?.modelColor2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif( scene.getObjectByName('3-Image') !== undefined ){\r\n\t\t\t\t\t\tconst textureImage = badges.find((item) => item.type === badge?.Badge_Type)?.theme.find((item) => item.theme === badge.Badge_Theme)?.logo;\r\n\r\n\t\t\t\t\t\tscene.getObjectByName('3-Image').material = new THREE.MeshPhysicalMaterial({\r\n\t\t\t\t\t\t\tenvMap: roomHdr,\r\n\t\t\t\t\t\t\tenvMapIntensity: envMapIntensity,\r\n\t\t\t\t\t\t\tmap: new THREE.TextureLoader().load(textureImage),\r\n\t\t\t\t\t\t\tside: THREE.FrontSide,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tscene.getObjectByName('3-Image').material.map.flipY = false;\r\n\t\t\t\t\t\tscene.getObjectByName('3-Image').material.map.colorSpace = THREE.SRGBColorSpace;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbadgeModel.scale.set(0, 0, 0);\r\n\t\t\t\t\t\r\n\t\t\t\t\tconst duration = 2000;\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tanime({\r\n\t\t\t\t\t\t\ttargets: [badgeModel.scale],\r\n\t\t\t\t\t\t\tx: 1, y: 1, z: 1,\r\n\t\t\t\t\t\t\tduration: duration,\r\n\t\t\t\t\t\t\teasing: 'easeOutQuint',\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif( newBadge ){\r\n\t\t\t\t\t\t\tanime({\r\n\t\t\t\t\t\t\t\ttargets: [badgeModel.rotation],\r\n\t\t\t\t\t\t\t\ty: Math.PI * 4,\r\n\t\t\t\t\t\t\t\tduration: duration,\r\n\t\t\t\t\t\t\t\teasing: 'easeOutQuint',\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tanime({\r\n\t\t\t\t\t\t\t\ttargets: [badgeModel.rotation],\r\n\t\t\t\t\t\t\t\ty: Math.PI * 2,\r\n\t\t\t\t\t\t\t\tduration: duration * 4,\r\n\t\t\t\t\t\t\t\teasing: 'linear',\r\n\t\t\t\t\t\t\t\tloop: true,\r\n\t\t\t\t\t\t\t\tdirection: newBadge ? 'reverse' : 'normal',\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}, newBadge ? duration : 0);\r\n\t\t\t\t\t}, 800);\r\n\t\t\t\t\t\r\n\t\t\t\t});\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// render\r\n\t\tconst resizeRendererToDisplaySize = (renderer) => {\r\n\t\t\tconst canvas = renderer.domElement;\r\n\t\t\tconst pixelRatio = window.devicePixelRatio;\r\n\t\t\tconst width = canvas.clientWidth * pixelRatio;\r\n\t\t\tconst height = canvas.clientHeight * pixelRatio;\r\n\t\t\tconst needResize = canvas.width !== width || canvas.height !== height;\r\n\t\t\tif (needResize) {\r\n\t\t\t\trenderer.setSize(width, height, false);\r\n\t\t\t}\r\n\t\t\treturn needResize;\r\n\t\t}\r\n\r\n\t\tconst render = () => {\r\n\t\t\tif( resizeRendererToDisplaySize(renderer) ){\r\n\t\t\t\tconst canvas = renderer.domElement;\r\n\t\t\t\tcamera.aspect = canvas.clientWidth / canvas.clientHeight;\r\n\t\t\t\tcamera.updateProjectionMatrix();\r\n\t\t\t}\r\n\t\t\trenderer.render(scene, camera);\r\n\t\t\trequestAnimationFrame(render);\r\n\t\t}\r\n\t\trequestAnimationFrame(render);\r\n\r\n\t}, [badge.Badge_Theme, badge?.Badge_Type, newBadge]);\r\n\r\n\t// styles\r\n\tconst styles = {\r\n\t\tobj_canvas: {\r\n\t\t\tposition: 'relative',\r\n\t\t\twidth: '100%',\r\n\t\t\theight: 0,\r\n\t\t\tpaddingBottom: isMobile() ? '75%' : '50%',\r\n\t\t},\r\n\t\tcanvas: {\r\n\t\t\tposition: 'absolute',\r\n\t\t\tleft: 0, top: 0,\r\n\t\t\twidth: isMobile() ? 'var(--aox-280px)' : 'var(--aox-480px)' ,\r\n\t\t\theight: isMobile() ? 'var(--aox-280px)' : 'var(--aox-480px)' \r\n\t\t},\r\n\t}\r\n\r\n\treturn(\r\n\t\t<div style={styles.obj_canvas}>\r\n\t\t\t<canvas id=\"canvas\" style={styles.canvas}></canvas>\r\n\t\t</div>\r\n\t)\r\n}\r\n\r\nexport default ObjCanvasBadgeExpertise;","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\nimport { Player } from '@lottiefiles/react-lottie-player';\r\n\r\nimport ObjCanvasBadgeExpertise from \"../ObjExpertise/ObjCanvasBadgeExpertise\"\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0)'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass ExpertiseBadgeModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t\tif(this.props.handleClose){ this.props.handleClose() }\r\n\t}\r\n\trender() {\r\n\t\tconst { badge, userBadge, badgeDataTheme } = this.props\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_overlay_badge_detail\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t\tbodyOpenClassName={this.props.bodyOpenClassName ? this.props.bodyOpenClassName : 'ReactModal__Body--open'}\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<div className=\"obj_section_badge_expertise\">\r\n\t\t\t\t\t\t\t<div className=\"obj_badge_expertise\">\r\n\t\t\t\t\t\t\t\t<ObjCanvasBadgeExpertise\r\n\t\t\t\t\t\t\t\t\tbadge={badge}\r\n\t\t\t\t\t\t\t\t\tnewBadge={this.props.newBadge}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t{!userBadge &&\r\n\t\t\t\t\t\t\t\t\t<div className=\"t_badge_collecter\"><span>Badge à collecter</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t{this.props.newBadge &&\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_lottie\">\r\n\t\t\t\t\t\t\t\t\t\t<Player\r\n\t\t\t\t\t\t\t\t\t\t\tautoplay\r\n\t\t\t\t\t\t\t\t\t\t\tsrc={require('../../assets/lottie/badge.json')}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t<h3 className=\"t_title\">{badge.Badge_Title}</h3>\r\n\t\t\t\t\t\t\t\t<p className=\"t_desc\">{badge.Badge_Description}</p>\r\n\t\t\t\t\t\t\t\t<div className=\"t_tag\"><span>{badge.UserRewardAction_Points} <em>PTS</em></span></div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"overlay-1\" style={{backgroundColor: badgeDataTheme?.overlayColor2}}></div>\r\n\t\t\t\t\t<div className=\"overlay-2\" style={{backgroundColor: badgeDataTheme?.overlayColor1}}></div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ExpertiseBadgeModal","import React, { Component } from 'react'\r\n\r\nimport { badges } from '../../data/badges';\r\nimport ExpertiseBadgeModal from '../Modal/ExpertiseBadgeModal'\r\n\r\nclass ObjExpertiseBadge extends Component {\r\n\trender() {\r\n\t\tconst { badge, userBadge } = this.props;\r\n\t\tconst badgeDataTheme = badges.find((item) => item.type === badge?.Badge_Type)?.theme.find((item) => item.theme === badge.Badge_Theme);\r\n\r\n\t\treturn (\r\n\t\t\t<>{badge &&\r\n\t\t\t\t<div className={`obj_item_expertise fade-in`}>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\ttype=\"button\" \r\n\t\t\t\t\t\tonClick={() => this[\"ExpertiseBadgeModal\" + badge.Badge_Id].openModal()}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<picture className=\"ctn_image\">\r\n\t\t\t\t\t\t\t{\tuserBadge\r\n\t\t\t\t\t\t\t\t?<img src={badgeDataTheme?.image} alt={badge.Badge_Title}/>\r\n\t\t\t\t\t\t\t\t:<img src={badgeDataTheme?.imageDisabled} alt={badge.Badge_Title}/>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t<p className=\"t_tag\"><span>{badge.UserRewardAction_Points} pts</span></p>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</button>\r\n\r\n\t\t\t\t\t<ExpertiseBadgeModal\r\n\t\t\t\t\t\tonRef={ref => (this[\"ExpertiseBadgeModal\" + badge.Badge_Id] = ref)}\r\n\t\t\t\t\t\tbadge={badge}\r\n\t\t\t\t\t\tuserBadge={userBadge}\r\n\t\t\t\t\t\tbadgeDataTheme={badgeDataTheme}\r\n\t\t\t\t\t\tbodyOpenClassName=\"ReactModal__Body--open_blur\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t}</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjExpertiseBadge","import React, { Component } from 'react'\r\n\r\nimport { urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar'\r\nimport AnimatedProgressProvider from '../../utilities/FrontFunctions/Provider/AnimatedProgressProvider'\r\nimport ObjExpertiseClassement from './ObjExpertiseClassement'\r\nimport ObjExpertiseBadge from './ObjExpertiseBadge'\r\n\r\nclass ObjExpertiseSectionSite extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tisReady: false,\r\n\t\t\tcurrent: 0,\r\n\t\t\tlength: null,\r\n\t\t}\r\n\t\tthis.showTab = this.showTab.bind(this)\r\n\t\tthis.setMaxHeight = this.setMaxHeight.bind(this)\r\n\t\tthis.handleKeyDown = this.handleKeyDown.bind(this)\r\n\t\tthis.goNextTab = this.goNextTab.bind(this)\r\n\t\tthis.goPrevTab = this.goPrevTab.bind(this)\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\tthis.setMaxHeight()\r\n\t\tthis.showTab(this.state.current)\r\n\t\tthis.navTabs.querySelectorAll('li').forEach(element => element.querySelector('button').blur())\r\n\r\n\t\tthis.setState({\r\n\t\t\tlength: this.navTabs.querySelectorAll('li').length\r\n\t\t})\r\n\t}\r\n\tswitchTab(e){\r\n\t\tvar tabsList = Array.prototype.slice.call(this.navTabs.children)\r\n \tvar currentTab = e.currentTarget.parentElement\r\n \tvar currentIndex = tabsList.indexOf(currentTab)\r\n\r\n\t\tthis.setState({\r\n\t\t\tcurrent: currentIndex\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tshowTab(index){\r\n\t\tthis.navTabs.querySelectorAll('li').forEach(element => {\r\n\t\t\telement.querySelector('button').classList.remove('active')\r\n\t\t\telement.querySelector('button').blur()\r\n\t\t\telement.querySelector('button').setAttribute('aria-selected', false)\r\n\t\t\telement.querySelector('button').setAttribute('tabindex', -1)\r\n\t\t})\r\n\t\tthis.navTabs.children[index].querySelector('button').classList.add('active')\r\n\t\tthis.navTabs.children[index].querySelector('button').focus()\r\n\t\tthis.navTabs.children[index].querySelector('button').setAttribute('aria-selected', true)\r\n\t\tthis.navTabs.children[index].querySelector('button').setAttribute('tabindex', 0)\r\n\r\n\t\tthis.ctnTabs.querySelectorAll('.tab-panel').forEach(element => { \r\n\t\t\t// element.querySelector('.tab-panel').classList.remove('fade-in')\r\n\t\t\telement.classList.remove('fade-in')\r\n\t\t\telement.classList.remove('active') \r\n\t\t})\r\n\t\tthis.ctnTabs.children[index].classList.add('fade-in')\r\n\t\tthis.ctnTabs.children[index].classList.add('active')\r\n\t}\r\n\tgoNextTab() {\r\n\t\tthis.setState({\r\n\t\t\tcurrent: (this.state.current + 1) >= this.state.length ? 0 : this.state.current + 1\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tgoPrevTab() {\r\n\t\tthis.setState({\r\n\t\t\tcurrent: this.state.current <= 0 ? this.state.length - 1 : this.state.current - 1\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tsetMaxHeight(){\r\n\t\tvar maxHeight = 0\r\n\t\tthis.ctnTabs.querySelectorAll('.tab-panel').forEach(element => {\r\n\t\t\tif (element.offsetHeight > maxHeight) maxHeight = element.offsetHeight\r\n\t\t})\r\n\t\t// this.ctnTabs.style.height = maxHeight + \"px\"\r\n\t\tthis.setState({ isReady: true })\r\n\t}\r\n\thandleKeyDown(e){\r\n\t\te.key === 'ArrowRight' && this.goNextTab()\r\n\t\te.key === 'ArrowLeft' && this.goPrevTab()\r\n\t}\r\n\thandleFocus(){\r\n\t\twindow.addEventListener('keydown', this.handleKeyDown)\r\n\t}\r\n\thandleBlur(){\r\n\t\twindow.removeEventListener('keydown', this.handleKeyDown)\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { ranking, user, badges, userBadges } = this.props\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_bloc_expertise var_global\" >\r\n\t\t\t\t<div className={`obj_tabs${this.state.isReady ? ' is-ready' : ''}`}>\r\n\t\t\t\t\t<ul className=\"obj_tabs_list\" role=\"tablist\" ref={ref => (this.navTabs = ref)}>\r\n\t\t\t\t\t\t<li><button type=\"button\" className=\"btn_tab_exp\" role=\"tab\" id=\"onglet-1\" tabIndex=\"0\" aria-selected=\"true\" aria-controls=\"panneau-1\" onClick={(e) => this.switchTab(e)} onFocus={() => this.handleFocus()} onBlur={() => this.handleBlur()}>Classement</button></li>\r\n\t\t\t\t\t\t<li><button type=\"button\" className=\"btn_tab_exp\" role=\"tab\" id=\"onglet-2\" tabIndex=\"-1\" aria-selected=\"false\" aria-controls=\"panneau-2\" onClick={(e) => this.switchTab(e)} onFocus={() => this.handleFocus()} onBlur={() => this.handleBlur()}>Expertise</button></li>\r\n\t\t\t\t\t\t<li><button type=\"button\" className=\"btn_tab_exp\" role=\"tab\" id=\"onglet-3\" tabIndex=\"-1\" aria-selected=\"false\" aria-controls=\"panneau-3\" onClick={(e) => this.switchTab(e)} onFocus={() => this.handleFocus()} onBlur={() => this.handleBlur()}>Récompenses</button></li>\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t<div className=\"tab-panels\">\r\n\t\t\t\t\t\t<div className=\"ctn_bloc_exp\" ref={ref => (this.ctnTabs = ref)}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<div className=\"ctn_classement_exp tab-panel fade-in\" role=\"tabpanel\" id=\"panneau-1\" aria-labelledby=\"onglet-1\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_classement_exp\">\r\n\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\"><strong>Classement général</strong></h3>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<ObjExpertiseClassement ranking={ranking} user={user}/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_points_exp tab-panel fade-in\" role=\"tabpanel\" id=\"panneau-2\" aria-labelledby=\"onglet-2\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_points_exp\">\r\n\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">\r\n\t\t\t\t\t\t\t\t\t\t<strong>Mon Expertise</strong>\r\n\t\t\t\t\t\t\t\t\t</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_circle-progress-expertise\">\r\n\t\t\t\t\t\t\t\t\t\t{/* TODO SGU progression fixée */}\r\n\t\t\t\t\t\t\t\t\t\t<AnimatedProgressProvider valueEnd={100}>\r\n\t\t\t\t\t\t\t\t\t\t\t{value => { return (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgressbar\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeWidth={8}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcircleRatio={0.80}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles={buildStyles({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trotation: 0.60\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)}}\r\n\t\t\t\t\t\t\t\t\t\t</AnimatedProgressProvider>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_txt\">\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_percent\">{user.Score<0 ? '-' : user.Score}<span>Pts</span></p>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_avatar\">\r\n\t\t\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\t(user.FrontOfficeUser_PhotoUrl && user.FrontOfficeUser_PhotoUrl!==null)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t?<img src={urlToHost(user.FrontOfficeUser_PhotoUrl)} alt={user.FrontOfficeUser_FirstName ? user.FrontOfficeUser_FirstName : \"\"}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t:<img src={require(\"../../assets/images/v_avatar-xl.png\")} alt={user.FrontOfficeUser_FirstName ? user.FrontOfficeUser_FirstName : \"\"}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_recompences_exp tab-panel fade-in\" role=\"tabpanel\" id=\"panneau-3\" aria-labelledby=\"onglet-3\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_recompences_exp\">\r\n\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\"><strong>Récompenses</strong></h3>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_desc\">Cliquez sur vos récompenses<br />\tpour en voir le détail</p>\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\t<div className=\"lst_items_exp\">\r\n\t\t\t\t\t\t\t\t\t\t{badges.map((badge, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjExpertiseBadge\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tbadge={badge}\r\n\t\t\t\t\t\t\t\t\t\t\t\tuserBadge={userBadges.find(o => o.UserBadge_Badge_Id === badge.Badge_Id)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjExpertiseSectionSite","import React from \"react\";\r\n\r\nfunction ObjProgressBarExpertise({ step, stepstotal }) {\r\n return (\r\n <div className=\"obj_progress-bar\">\r\n <div className=\"ctn_steps\">\r\n {Array.from(Array(stepstotal), (e, i) => {\r\n if (i < step) {\r\n return <div key={i} className=\"step is-complete\"></div>;\r\n }\r\n return <div key={i} className=\"step\"></div>;\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ObjProgressBarExpertise;\r\n","import React, { Component } from 'react'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { getApiDatas, isAppMobile, urlToHost} from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport ObjProgressBarExpertise from './ObjProgressBarExpertise'\r\nimport ObjExpertiseClassement from './ObjExpertiseClassement'\r\nimport ObjExpertiseBadge from './ObjExpertiseBadge'\r\n\r\nclass ObjExpertiseSectionBrand extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tisReady: false,\r\n\t\t\tcurrent: 0,\r\n\t\t\tlength: null,\r\n\t\t}\r\n\t\tthis.showTab = this.showTab.bind(this)\r\n\t\tthis.setMaxHeight = this.setMaxHeight.bind(this)\r\n\t\tthis.handleKeyDown = this.handleKeyDown.bind(this)\r\n\t\tthis.goNextTab = this.goNextTab.bind(this)\r\n\t\tthis.goPrevTab = this.goPrevTab.bind(this)\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\tthis.setMaxHeight()\r\n\t\tthis.showTab(this.state.current)\r\n\t\tthis.navTabs.querySelectorAll('li').forEach(element => element.querySelector('button').blur())\r\n\r\n\t\tthis.setState({\r\n\t\t\tlength: this.navTabs.querySelectorAll('li').length\r\n\t\t})\r\n\t}\r\n\tswitchTab(e){\r\n\t\tvar tabsList = Array.prototype.slice.call(this.navTabs.children)\r\n \tvar currentTab = e.currentTarget.parentElement\r\n \tvar currentIndex = tabsList.indexOf(currentTab)\r\n\r\n\t\tthis.setState({\r\n\t\t\tcurrent: currentIndex\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tshowTab(index){\r\n\t\tthis.navTabs.querySelectorAll('li').forEach(element => {\r\n\t\t\telement.querySelector('button').classList.remove('active')\r\n\t\t\telement.querySelector('button').blur()\r\n\t\t\telement.querySelector('button').setAttribute('aria-selected', false)\r\n\t\t\telement.querySelector('button').setAttribute('tabindex', -1)\r\n\t\t})\r\n\t\tthis.navTabs.children[index].querySelector('button').classList.add('active')\r\n\t\tthis.navTabs.children[index].querySelector('button').focus()\r\n\t\tthis.navTabs.children[index].querySelector('button').setAttribute('aria-selected', true)\r\n\t\tthis.navTabs.children[index].querySelector('button').setAttribute('tabindex', 0)\r\n\r\n\t\tthis.ctnTabs.querySelectorAll('.tab-panel').forEach(element => { \r\n\t\t\t// element.querySelector('.tab-panel').classList.remove('fade-in')\r\n\t\t\telement.classList.remove('fade-in')\r\n\t\t\telement.classList.remove('active') \r\n\t\t})\r\n\t\tthis.ctnTabs.children[index].classList.add('fade-in')\r\n\t\tthis.ctnTabs.children[index].classList.add('active')\r\n\t}\r\n\tgoNextTab() {\r\n\t\tthis.setState({\r\n\t\t\tcurrent: (this.state.current + 1) >= this.state.length ? 0 : this.state.current + 1\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tgoPrevTab() {\r\n\t\tthis.setState({\r\n\t\t\tcurrent: this.state.current <= 0 ? this.state.length - 1 : this.state.current - 1\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tsetMaxHeight(){\r\n\t\tvar maxHeight = 0\r\n\t\tthis.ctnTabs.querySelectorAll('.tab-panel').forEach(element => {\r\n\t\t\tif (element.offsetHeight > maxHeight) maxHeight = element.offsetHeight\r\n\t\t})\r\n\t\t// this.ctnTabs.style.height = maxHeight + \"px\"\r\n\t\tthis.setState({ isReady: true })\r\n\t}\r\n\thandleKeyDown(e){\r\n\t\te.key === 'ArrowRight' && this.goNextTab()\r\n\t\te.key === 'ArrowLeft' && this.goPrevTab()\r\n\t}\r\n\thandleFocus(){\r\n\t\twindow.addEventListener('keydown', this.handleKeyDown)\r\n\t}\r\n\thandleBlur(){\r\n\t\twindow.removeEventListener('keydown', this.handleKeyDown)\r\n\t}\r\n\thandleLinkFormation(e, brandId){\r\n\t\te.preventDefault();\r\n\t\tgetApiDatas(`/apiaox/Call/GetBrandTrainingPage?nBrandId=${brandId}`)\r\n\t\t.then((apiDatas) => { window.location.href = urlToHost(apiDatas.BrandTrainingPage); })\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { ranking, user, badges, userBadges } = this.props\r\n\r\n\t\treturn (\r\n\t\t\t<div className={`obj_bloc_expertise ${user.Brand_CssClass}${this.state.active ? ' is-expanded' : ''}`} >\r\n\t\t\t\t<button className=\"obj_header_exp\" onClick={ () => this.setState({active: !this.state.active}) }>\r\n\t\t\t\t\t<h3 className=\"t_title\">Mon Expertise <strong>{user.Brand_Name}</strong></h3>\r\n\t\t\t\t\t<div className=\"t_tag\"><span>{user.Score<0 ? '-' : user.Score} <em>PTS</em></span></div>\r\n\r\n\t\t\t\t\t<div className={`ctn_classement_header${user.Evolution_Rank==='Up' ? ` var_up` : user.Evolution_Rank==='Down' ? ` var_down` : ``}`}>\r\n\t\t\t\t\t\t<p>Classement</p>\r\n\t\t\t\t\t\t<div className=\"t_place_exp\">{user.Rank < 1 ? <>-</> : user.Rank === 1 ? (<>1<sup>er</sup></>) : (<>{user.Rank}<sup>è</sup></>)}</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div className=\"obj_progress-bar-expertise\">\r\n\t\t\t\t\t<span><strong><em>{user.UserTrainingsOnLine_Completed} </em></strong>{user.UserTrainingsOnLine_Completed>1 ? \"Formations réalisées\":\"Formation réalisée\"}</span>\r\n\t\t\t\t\t\t<ObjProgressBarExpertise step={user.UserTrainingsOnLine_Completed} stepstotal={user.Brand_NbTrainingsOnLine} />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</button>\r\n\r\n\t\t\t\t<div className={`obj_tabs${this.state.isReady ? ' is-ready' : ''}`}>\r\n\t\t\t\t\t<ul ref={ref => (this.navTabs = ref)} className=\"obj_tabs_list\" role=\"tablist\">\r\n\t\t\t\t\t\t<li><button type=\"button\" className=\"btn_tab_exp\" role=\"tab\" id=\"onglet-1\" tabIndex=\"0\" aria-selected=\"true\" aria-controls=\"panneau-1\" onClick={(e) => this.switchTab(e)} onFocus={() => this.handleFocus()} onBlur={() => this.handleBlur()}>Classement</button></li>\r\n\t\t\t\t\t\t<li><button type=\"button\" className=\"btn_tab_exp\" role=\"tab\" id=\"onglet-2\" tabIndex=\"-1\" aria-selected=\"false\" aria-controls=\"panneau-2\" onClick={(e) => this.switchTab(e)} onFocus={() => this.handleFocus()} onBlur={() => this.handleBlur()}>Expertise</button></li>\r\n\t\t\t\t\t\t<li><button type=\"button\" className=\"btn_tab_exp\" role=\"tab\" id=\"onglet-3\" tabIndex=\"-1\" aria-selected=\"false\" aria-controls=\"panneau-3\" onClick={(e) => this.switchTab(e)} onFocus={() => this.handleFocus()} onBlur={() => this.handleBlur()}>Récompenses</button></li>\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t<div className=\"tab-panels\">\r\n\t\t\t\t\t\t<div className=\"ctn_bloc_exp\" ref={ref => (this.ctnTabs = ref)}>\r\n\t\t\t\t\t\t\t<div className=\"ctn_classement_exp tab-panel\" role=\"tabpanel\" id=\"panneau-1\" aria-labelledby=\"onglet-1\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_classement_exp\">\r\n\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\"><strong>Classement marque</strong></h3>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<ObjExpertiseClassement ranking={ranking} user={user}/>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_points_exp tab-panel\" role=\"tabpanel\" id=\"panneau-2\" aria-labelledby=\"onglet-2\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_points_exp\">\r\n\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">\r\n\t\t\t\t\t\t\t\t\t\t<strong>Mon Expertise {user.Brand_Name}</strong>\r\n\t\t\t\t\t\t\t\t\t</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_nbre_points_exp\">\r\n\t\t\t\t\t\t\t\t\t\t<span>{user.Score<0 ? '-' : user.Score} <em>Pts</em></span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<div className=\"obj_progress-bar-expertise\">\r\n\t\t\t\t\t\t\t\t\t<span><strong><em>{user.UserTrainingsOnLine_Completed} </em></strong>{user.UserTrainingsOnLine_Completed>1 ? \"Formations réalisées\":\"Formation réalisée\"}</span>\r\n <ObjProgressBarExpertise step={user.UserTrainingsOnLine_Completed} stepstotal={user.Brand_NbTrainingsOnLine} />\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t{ !isAppMobile() &&\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t<Link onClick={(e) => this.handleLinkFormation(e, user.Brand_Id)} to=\"\" className=\"obj_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\tJe complète ma formation\r\n\t\t\t\t\t\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_recompences_exp tab-panel\" role=\"tabpanel\" id=\"panneau-3\" aria-labelledby=\"onglet-3\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_recompences_exp\">\r\n\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\"><strong>Récompenses</strong></h3>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_desc\">Cliquez sur vos récompenses<br />\tpour en voir le détail</p>\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\t<div className=\"lst_items_exp\">\r\n\t\t\t\t\t\t\t\t\t\t{badges.map((badge, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjExpertiseBadge\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tbadge={badge}\r\n\t\t\t\t\t\t\t\t\t\t\t\tuserBadge={userBadges.find(o => o.UserBadge_Badge_Id === badge.Badge_Id)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjExpertiseSectionBrand","import React, { Component } from 'react'\r\n\r\nimport { getApiDatas, urlToHost} from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport ObjExpertiseClassement from './ObjExpertiseClassement'\r\nimport ObjExpertiseBadge from './ObjExpertiseBadge'\r\n\r\nclass ObjExpertiseSectionSiteBefore extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tisReady: false,\r\n\t\t\tcurrent: 0,\r\n\t\t\tlength: null,\r\n\t\t}\r\n\t\tthis.showTab = this.showTab.bind(this)\r\n\t\tthis.setMaxHeight = this.setMaxHeight.bind(this)\r\n\t\tthis.handleKeyDown = this.handleKeyDown.bind(this)\r\n\t\tthis.goNextTab = this.goNextTab.bind(this)\r\n\t\tthis.goPrevTab = this.goPrevTab.bind(this)\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\tthis.setMaxHeight()\r\n\t\tthis.showTab(this.state.current)\r\n\t\tthis.navTabs.querySelectorAll('li').forEach(element => element.querySelector('button').blur())\r\n\r\n\t\tthis.setState({\r\n\t\t\tlength: this.navTabs.querySelectorAll('li').length\r\n\t\t})\r\n\t}\r\n\tswitchTab(e){\r\n\t\tvar tabsList = Array.prototype.slice.call(this.navTabs.children)\r\n \tvar currentTab = e.currentTarget.parentElement\r\n \tvar currentIndex = tabsList.indexOf(currentTab)\r\n\r\n\t\tthis.setState({\r\n\t\t\tcurrent: currentIndex\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tshowTab(index){\r\n\t\tthis.navTabs.querySelectorAll('li').forEach(element => {\r\n\t\t\telement.querySelector('button').classList.remove('active')\r\n\t\t\telement.querySelector('button').blur()\r\n\t\t\telement.querySelector('button').setAttribute('aria-selected', false)\r\n\t\t\telement.querySelector('button').setAttribute('tabindex', -1)\r\n\t\t})\r\n\t\tthis.navTabs.children[index].querySelector('button').classList.add('active')\r\n\t\tthis.navTabs.children[index].querySelector('button').focus()\r\n\t\tthis.navTabs.children[index].querySelector('button').setAttribute('aria-selected', true)\r\n\t\tthis.navTabs.children[index].querySelector('button').setAttribute('tabindex', 0)\r\n\r\n\t\tthis.ctnTabs.querySelectorAll('.tab-panel').forEach(element => { \r\n\t\t\t// element.querySelector('.tab-panel').classList.remove('fade-in')\r\n\t\t\telement.classList.remove('fade-in')\r\n\t\t\telement.classList.remove('active') \r\n\t\t})\r\n\t\tthis.ctnTabs.children[index].classList.add('fade-in')\r\n\t\tthis.ctnTabs.children[index].classList.add('active')\r\n\t}\r\n\tgoNextTab() {\r\n\t\tthis.setState({\r\n\t\t\tcurrent: (this.state.current + 1) >= this.state.length ? 0 : this.state.current + 1\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tgoPrevTab() {\r\n\t\tthis.setState({\r\n\t\t\tcurrent: this.state.current <= 0 ? this.state.length - 1 : this.state.current - 1\r\n\t\t}, () => this.showTab(this.state.current))\r\n\t}\r\n\tsetMaxHeight(){\r\n\t\tvar maxHeight = 0\r\n\t\tthis.ctnTabs.querySelectorAll('.tab-panel').forEach(element => {\r\n\t\t\tif (element.offsetHeight > maxHeight) maxHeight = element.offsetHeight\r\n\t\t})\r\n\t\t// this.ctnTabs.style.height = maxHeight + \"px\"\r\n\t\tthis.setState({ isReady: true })\r\n\t}\r\n\thandleKeyDown(e){\r\n\t\te.key === 'ArrowRight' && this.goNextTab()\r\n\t\te.key === 'ArrowLeft' && this.goPrevTab()\r\n\t}\r\n\thandleFocus(){\r\n\t\twindow.addEventListener('keydown', this.handleKeyDown)\r\n\t}\r\n\thandleBlur(){\r\n\t\twindow.removeEventListener('keydown', this.handleKeyDown)\r\n\t}\r\n\thandleLinkFormation(e, brandId){\r\n\t\te.preventDefault();\r\n\t\tgetApiDatas(`/apiaox/Call/GetBrandTrainingPage?nBrandId=${brandId}`)\r\n\t\t.then((apiDatas) => { window.location.href = urlToHost(apiDatas.BrandTrainingPage); })\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { label, user, ranking, badges, userBadges, UserBrandExpertise} = this.props\r\n\r\n\t\treturn (\r\n\t\t\t<div className={`obj_bloc_expertise ${this.state.active ? ' is-expanded' : ''} var_recapitulatif`} >\r\n\t\t\t\t<button className=\"obj_header_exp\" onClick={ () => this.setState({active: !this.state.active}) }>\r\n\t\t\t\t\t<h3 className=\"t_title\">Mon Expertise {label}</h3>\r\n\t\t\t\t\t<div className=\"t_tag\"><span>{user.Score<0 ? '-' : user.Score} <em>PTS</em></span></div>\r\n\t\t\t\t</button>\r\n\r\n\t\t\t\t<div className={`obj_tabs${this.state.isReady ? ' is-ready' : ''}`}>\r\n\t\t\t\t\t<ul ref={ref => (this.navTabs = ref)} className=\"obj_tabs_list\" role=\"tablist\">\r\n\t\t\t\t\t\t<li><button type=\"button\" className=\"btn_tab_exp\" role=\"tab\" id=\"onglet-1\" tabIndex=\"0\" aria-selected=\"true\" aria-controls=\"panneau-1\" onClick={(e) => this.switchTab(e)} onFocus={() => this.handleFocus()} onBlur={() => this.handleBlur()}>Classement</button></li>\r\n\t\t\t\t\t\t<li><button type=\"button\" className=\"btn_tab_exp\" role=\"tab\" id=\"onglet-2\" tabIndex=\"-1\" aria-selected=\"false\" aria-controls=\"panneau-2\" onClick={(e) => this.switchTab(e)} onFocus={() => this.handleFocus()} onBlur={() => this.handleBlur()}>Expertise</button></li>\r\n\t\t\t\t\t\t<li><button type=\"button\" className=\"btn_tab_exp\" role=\"tab\" id=\"onglet-3\" tabIndex=\"-1\" aria-selected=\"false\" aria-controls=\"panneau-3\" onClick={(e) => this.switchTab(e)} onFocus={() => this.handleFocus()} onBlur={() => this.handleBlur()}>Récompenses</button></li>\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t<div className=\"tab-panels\">\r\n\t\t\t\t\t\t<div className=\"ctn_bloc_exp\" ref={ref => (this.ctnTabs = ref)}>\r\n\t\t\t\t\t\t\t<div className=\"ctn_classement_exp tab-panel\" role=\"tabpanel\" id=\"panneau-1\" aria-labelledby=\"onglet-1\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_classement_exp\">\r\n\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\"><strong>Classement général</strong></h3>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<ObjExpertiseClassement ranking={ranking} user={user}/>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_points_exp tab-panel\" role=\"tabpanel\" id=\"panneau-2\" aria-labelledby=\"onglet-2\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_points_exp\">\r\n\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\">\r\n\t\t\t\t\t\t\t\t\t\t<strong>Mon Expertise</strong>\r\n\t\t\t\t\t\t\t\t\t</h3>\r\n\r\n <div className=\"obj_lst_classement_exp\">\r\n <div class=\"item_classement_exp obj_bloc_expertise var_skinc\">\r\n <picture></picture>\r\n <div class=\"ctn_text\">\r\n <div class=\"t_name_exp\">Mon Expertise {label}</div>\r\n <div class=\"t_nbre_points_exp\">{user.Score<0 ? '-' : user.Score}<em>Pts</em></div>\r\n </div>\r\n </div>\r\n\r\n { UserBrandExpertise.map((brandExpertise, index) => (\r\n <div key={index} className={`item_classement_exp obj_bloc_expertise ${brandExpertise.Brand_CssClass}`}>\r\n <picture></picture>\r\n <div className=\"ctn_text\">\r\n <div className=\"t_name_exp\">{brandExpertise.Brand_Name}</div>\r\n <div className=\"t_nbre_points_exp\">{brandExpertise.Score<0 ? '-' : brandExpertise.Score}<em>Pts</em></div>\r\n </div>\r\n </div>\r\n ))}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_recompences_exp tab-panel\" role=\"tabpanel\" id=\"panneau-3\" aria-labelledby=\"onglet-3\" tabIndex=\"0\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_recompences_exp\">\r\n\t\t\t\t\t\t\t\t\t<h3 className=\"t_title\"><strong>Récompenses</strong></h3>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_desc\">Les badges que vous avez collectés en 2024</p>\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\t<div className=\"lst_items_exp\">\r\n {userBadges.map((userBadge, index) => (\r\n badges.find(o => o.Badge_Id === userBadge.UserBadge_Badge_Id)\r\n\t\t\t\t\t\t\t\t\t\t\t&& <ObjExpertiseBadge\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tbadge={badges.find(o => o.Badge_Id === userBadge.UserBadge_Badge_Id)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tuserBadge={userBadge}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjExpertiseSectionSiteBefore","import React, { Component } from 'react'\r\n\r\nimport ObjExpertiseBadge from './ObjExpertiseBadge'\r\n\r\nclass ObjExpertiseBadges extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\tcomponentDidMount(){\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { categories, badges, userBadges } = this.props\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t{categories && categories.map((category, index) => (\r\n\r\n\t\t\t\t\t<div key={index} className=\"bloc_items_exp\">\r\n\t\t\t\t\t\t<p className=\"t_desc\"><strong>{category.BadgeCategory_Label}</strong></p>\r\n\r\n\t\t\t\t\t\t<div className=\"lst_items_exp\">\r\n\t\t\t\t\t\t\t{badges.filter(o => o.BadgeCategory_Id === category.BadgeCategory_Id)\r\n\t\t\t\t\t\t\t\t.map((badge, subindex) => (\r\n\t\t\t\t\t\t\t\t<ObjExpertiseBadge\r\n\t\t\t\t\t\t\t\t\tkey={`Categorie-${index}-${subindex}`}\r\n\t\t\t\t\t\t\t\t\tbadge={badge}\r\n\t\t\t\t\t\t\t\t\tuserBadge={userBadges.find(o => o.UserBadge_Badge_Id === badge.Badge_Id)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t))}\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjExpertiseBadges","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport { getApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport ObjExpertiseSectionSite from '../ObjExpertise/ObjExpertiseSectionSite'\r\nimport ObjExpertiseSectionBrand from '../ObjExpertise/ObjExpertiseSectionBrand'\r\nimport ObjExpertiseSectionSiteBefore from '../ObjExpertise/ObjExpertiseSectionSiteBefore'\r\nimport ObjExpertiseBadges from '../ObjExpertise/ObjExpertiseBadges'\r\n\r\nclass PageMonCompteExpertise extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tapiDatas:[],\r\n\t\t}\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Call/PageExpertise`).then((apiDatas) => { this.setState({ apiDatas:apiDatas }) })\r\n\r\n\t\t// add body class\r\n\t\tdocument.body.classList.add('pg_compte')\r\n\t\twindow.scrollTo(0,0)\r\n\t\t// add and dispatch window resize\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeSectionCompte)\r\n\t\twindow.dispatchEvent(new Event('resize'))\r\n \t}\r\n \tcomponentWillUnmount() {\r\n\t\t// remove body class\r\n\t\tdocument.body.classList.remove('pg_compte')\r\n\t\t// remove window resize\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeSectionCompte)\r\n\t}\r\n\trender() {\r\n\t\tconst apiDatas = this.state.apiDatas\r\n\r\n\t\treturn (<>\r\n\t\t\t<section className=\"obj_section section_expertise\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t<h2 className=\"t_title\">Mon expertise</h2>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{apiDatas.UserSiteExpertise &&\r\n\t\t\t\t\t\t<div className=\"obj_accordion\">\r\n\t\t\t\t\t\t\t<ObjExpertiseSectionSite \r\n\t\t\t\t\t\t\t\tuser={apiDatas.UserSiteExpertise}\r\n\t\t\t\t\t\t\t\tranking={apiDatas.RankingSite}\r\n\t\t\t\t\t\t\t\tbadges={apiDatas.Badges.filter(o => o.Badge_Brand_Id==null)}\r\n\t\t\t\t\t\t\t\tuserBadges={apiDatas.UserBadges}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t{apiDatas.UserBrandExpertise.map( (userBrand,index) => \r\n\t\t\t\t\t\t\t\t<ObjExpertiseSectionBrand \r\n\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\tuser={userBrand}\r\n\t\t\t\t\t\t\t\t\tranking={apiDatas.RankingBrand.find(o => o.Brand_Id===userBrand.Brand_Id).RankingExpertise}\r\n\t\t\t\t\t\t\t\t\tbadges={apiDatas.Badges.filter(o => o.Badge_Brand_Id===userBrand.Brand_Id)}\r\n\t\t\t\t\t\t\t\t\tuserBadges={apiDatas.UserBadges}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t<ObjExpertiseSectionSiteBefore\r\n label=\"2024\"\r\n\t\t\t\t\t\t\t\tuser={apiDatas.UserSiteExpertise2024}\r\n\t\t\t\t\t\t\t\tranking={apiDatas.RankingSite2024}\r\n\t\t\t\t\t\t\t\tbadges={apiDatas.Badges}\r\n\t\t\t\t\t\t\t\tuserBadges={apiDatas.UserBadges2024}\r\n\t\t\t\t\t\t\t\tUserBrandExpertise={apiDatas.UserBrandExpertise2024}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n\t\t\t<section className=\"obj_section obj_section section_tableau_recompenses\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t\t<h2 className=\"t_subtitle\"><strong>Tableau des <br />Récompenses</strong></h2>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{apiDatas.BadgesCategories &&\r\n\t\t\t\t\t\t<div className=\"obj_tableau_recompences_exp\">\r\n\t\t\t\t\t\t\t<ObjExpertiseBadges \r\n\t\t\t\t\t\t\t\tcategories={apiDatas.BadgesCategories} \r\n\t\t\t\t\t\t\t\tbadges={apiDatas.Badges.filter(o => o.Badge_Brand_Id==null || apiDatas.UserBrandExpertise.find(brand => brand.Brand_Id === o.Badge_Brand_Id))}\r\n\t\t\t\t\t\t\t\tuserBadges={apiDatas.UserBadges}/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(PageMonCompteExpertise)","import React, { Component } from 'react' \r\nimport { Formik, Field } from 'formik'\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Text, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport * as Yup from 'yup'\r\nimport axios from 'axios'; \r\nimport { ReCaptcha } from 'react-recaptcha-v3'\r\nimport config from '../../temp/config';\r\nimport queryString from 'query-string';\r\nimport { Redirect } from 'react-router-dom'\r\nimport PasswordToggle from '../../utilities/FrontFunctions/FormElements/PasswordToggle'\r\nimport { GetLogoList } from '../../utilities/FrontFunctions/AoxFrontFunctions'\r\nclass PageNouveauCompte extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n redirect: false,\r\n\t\t\tserverError: false,\r\n formSubmitted: false,\r\n serverErrorMessage:\"\",\r\n\t\t\tlogoList: GetLogoList()\r\n\t\t}\r\n\t}\r\n \r\n componentDidMount() { \r\n window.scrollTo(0,0)\r\n var oParam = queryString.parse(window.location.search);\r\n \r\n if(oParam.length === 0){\r\n this.setState({\r\n redirect: true\r\n }); \r\n }else{\r\n if(oParam.prt === undefined){\r\n this.setState({\r\n redirect: true\r\n }); \r\n }else{\r\n if(oParam.prt === null){\r\n this.setState({\r\n redirect: true\r\n }); \r\n }\r\n }\r\n } \r\n\t} \r\n\trender() {\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n \r\n if (this.state.redirect){\r\n return <Redirect to=\"/\" />;\r\n }\r\n\r\n return (\r\n \r\n <section className=\"section_login\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n <header>\r\n\t\t\t\t\t\t<h6 className=\"logo-caf\">\r\n\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_logo-caf_2022.svg\")} alt={this.props.t('AltLogo')}/>\r\n\t\t\t\t\t\t</h6>\r\n { oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\" /> }\r\n\t\t\t\t\t</header>\r\n\r\n\t\t\t\t\t<div className=\"ctn_login\">\r\n\t\t\t\t\t\t<div className=\"ctn_col col_100\">\r\n { oCurrentItemFields && <Text field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h2\" /> }\r\n\r\n\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\r\n {this.state.formSubmitted ?\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\">{this.props.t('nouveaumdp_PriseEnCompte')}</p>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta\" href=\"/\">{this.props.t('mdppage_retour')}</a>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t <Formik\r\n initialValues={{\r\n password: '',\r\n passwordconfirm: '', \r\n promo_checkbox: false,\r\n recaptcha: ''\r\n }}\r\n validationSchema={\r\n Yup.object().shape({\r\n password: Yup\r\n .string()\r\n //.matches(/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*)(+=._-])[0-9a-zA-Z!@#$%^&*)(+=._-]{8,30}$/, this.props.t('Register_passwordDetails'))\r\n .matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*)(+=._-])[A-Za-z\\d!@#$%^&*)(+=._-]{8,30}$/, this.props.t('Register_passwordDetails'))\r\n .required(),\r\n passwordconfirm: Yup\r\n .string()\r\n .test('passwords-match', this.props.t('Register_PasswordsMustMatch'), function(value){ return this.parent.password === value })\r\n .required(),\r\n recaptcha: Yup.string().required()\r\n })\r\n }\r\n onSubmit={(values, actions) => {\r\n // add loader\r\n document.body.classList.add('is-loading')\r\n\r\n //Paramètre\r\n var oParam = queryString.parse(window.location.search);\r\n axios.post(`${config.sitecoreApiHost}/apiaox/Call/RequestWelcomeNewAccount`, \r\n queryString.stringify({ \r\n PasswordResetToken : oParam.prt,\r\n password: values.password,\r\n passwordconfirm: values.passwordconfirm,\r\n promo_checkbox: values.promo_checkbox,\r\n recaptcha: values.recaptcha\r\n }), \r\n {\r\n headers : {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n }\r\n }).then((result) => {\r\n this.setState({\r\n formSubmitted: result.data.IsValid,\r\n serverError: !result.data.IsValid,\r\n serverErrorMessage: result.data.Message,\r\n })\r\n\r\n if(this.recaptchaNouveauMotDePasse){\r\n this.recaptchaNouveauMotDePasse.execute()\r\n }\r\n \r\n document.body.classList.remove('is-loading')\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n this.setState({\r\n serverError: true,\r\n serverErrorMessage : this.props.t('DefaultServerError'),\r\n }) \r\n \r\n if(this.recaptchaNouveauMotDePasse){\r\n this.recaptchaNouveauMotDePasse.execute()\r\n }\r\n \r\n document.body.classList.remove('is-loading')\r\n }); \r\n }} \r\n >\r\n { ({ handleSubmit, handleBlur, setFieldValue, errors, touched }) => (\r\n <form onSubmit={handleSubmit}>\r\n {this.state.formSubmitted ?\r\n <>\r\n <p className=\"t_mandatory mb_30\">{this.props.t('nouveaumdp_PriseEnCompte')}</p>\r\n <div className=\"ctn_cta\">\r\n <a className=\"obj_cta\" href=\"/\">{this.props.t('nouveaumdp_MeConnecter')}</a>\r\n </div>\r\n </>\r\n :\r\n <>\r\n <p className=\"t_mandatory mb_30\">{this.props.t('nouveaumdp_saisie')}</p>\r\n <div className=\"ctn_input mb_30 var_password\">\r\n <PasswordToggle\r\n setFieldValue={setFieldValue}\r\n handleBlur={handleBlur}\r\n errors={errors}\r\n touched={touched}\r\n eyeMode={true} \r\n fieldName=\"password\"\r\n placeholder={this.props.t('Register_passwordPlaceholder')}\r\n strengthLevel={true}\r\n />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\"><span>{this.props.t('Register_passwordDetails')}</span></div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <PasswordToggle\r\n setFieldValue={setFieldValue}\r\n handleBlur={handleBlur}\r\n errors={errors}\r\n eyeMode={true} \r\n touched={touched}\r\n fieldName=\"passwordconfirm\"\r\n placeholder={this.props.t('Register_passwordConfirm')}\r\n />\r\n </div>\r\n {errors.passwordconfirm && touched.passwordconfirm && <p className=\"t_error mb_20 fade-in\">{this.props.t('Register_passwordError')}</p>}\r\n \r\n \r\n <div className=\"ctn_checkbox mb_30\">\r\n <Field type=\"checkbox\" id=\"promo_checkbox\" name=\"promo_checkbox\" />\r\n <label htmlFor=\"promo_checkbox\">{this.props.t('Register_AcceptPromo')}</label>\r\n </div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t <p className=\"t_mention mb_30\" dangerouslySetInnerHTML={{__html: this.props.t('Register_CGU_mandatory')}}></p>\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n \r\n <p className=\"t_mandatory mb_30\">{this.props.t('Connexion_mandatoryText')}</p>\r\n \r\n <ReCaptcha\r\n ref={ref => this.recaptchaNouveauMotDePasse = ref}\r\n sitekey={this.props.t('recaptcha_sitekey')}\r\n action='NouveauCompte'\r\n verifyCallback={(recaptchaToken) => { setFieldValue(\"recaptcha\", recaptchaToken) }}\r\n />\r\n\r\n {( (errors.password && touched.password) || (errors.passwordconfirm && touched.passwordconfirm) || (errors.recaptcha) ) && <p className=\"t_error mb_20 fade-in\">{this.props.t('Connexion_errorMessage')}{console.log(errors)} </p>}\r\n {this.state.serverErrorMessage && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorMessage}</p>}\r\n <div className=\"ctn_cta mb_20\">\r\n <button className=\"obj_cta\" type=\"submit\">{this.props.t('Connexion_submitText')}</button>\r\n </div>\r\n <p className=\"ctn_cta\">\r\n <a className=\"obj_cta-txt\" href=\"/\">{this.props.t('mdppage_Annuler')}</a>\r\n </p>\r\n </>\r\n }\r\n </form>\r\n )}\r\n </Formik>\r\n </>\r\n }\r\n </div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<ul className=\"ctn_logos\">\r\n\t\t\t\t\t\t{this.state.logoList.map((logoItem, index) => (\r\n\t\t\t\t\t\t\t<li key={index} className={\"var_\" + logoItem.id}>\r\n\t\t\t\t\t\t\t\t<img src={logoItem.image} alt={logoItem.label}/>\r\n\t\t\t\t\t\t\t</li>\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageNouveauCompte));\r\n","import React, { Component } from 'react' \r\nimport Modal from 'react-modal'\r\nimport { Formik, Field } from 'formik'\r\nimport * as Yup from 'yup'\r\nimport { withTranslation } from 'react-i18next';\r\nimport config from '../../temp/config';\r\nimport axios from 'axios';\r\nimport SingleFileUpload from '../../utilities/FrontFunctions/FormElements/SingleFileUpload'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass GalerieUploadModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tUrlSendReview: `${config.sitecoreApiHost}/apiaox/Call/AddPhotoContestReview?sc_apikey=${config.sitecoreApiKey}`, \r\n\t\t\tmodalIsOpen: false,\r\n\t\t\tserverError: false,\r\n\t\t\tformSubmitted: false,\r\n\t\t\tsoloValues: {\r\n\t\t\t\tfileupload1: null,\r\n\t\t\t\trgpd_checkbox: false,\r\n\t\t\t},\r\n\t\t\tduoValues: {\r\n\t\t\t\tfileupload1: null,\r\n\t\t\t\tfileupload2: null,\r\n\t\t\t\trgpd_checkbox: false,\r\n\t\t\t},\r\n\t\t\tsoloSchema: {\r\n\t\t\t\tfileupload1: Yup.mixed().required(),\r\n\t\t\t\trgpd_checkbox: Yup.bool().oneOf([true]).required()\r\n\t\t\t},\r\n\t\t\tduoSchema: {\r\n\t\t\t\tfileupload1: Yup.mixed().required(),\r\n\t\t\t\tfileupload2: Yup.mixed().required(),\r\n\t\t\t\trgpd_checkbox: Yup.bool().oneOf([true]).required()\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({\r\n\t\t\tmodalIsOpen: true,\r\n\t\t\tformSubmitted: false\r\n\t\t})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_galerie\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t{this.props.soloMode &&\r\n\t\t\t\t\t\t\t<p className=\"t_title\">{this.props.t('ArticleAjouterUnePhoto')}</p>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{!this.props.soloMode &&\r\n\t\t\t\t\t\t\t<p className=\"t_title\">{this.props.t('ArticleAjouterdeuxPhotos')}</p>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t{this.state.formSubmitted ?\r\n\t\t\t\t\t\t\t<p className=\"t_main\">{this.props.soloMode ? this.props.t('ArticleVotrePhotoBienEteTelechargee'):this.props.t('ArticleVosPhotosBienEteTelechargees') } <br/>{this.props.t('ArticleNousPublieronsApresVerification')}</p>\r\n\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\t\tinitialValues={\r\n\t\t\t\t\t\t\t\t\tthis.props.soloMode ? this.state.soloValues : this.state.duoValues\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvalidationSchema={\r\n\t\t\t\t\t\t\t\t\tYup.object().shape(this.props.soloMode ? this.state.soloSchema : this.state.duoSchema)\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tonSubmit={(values, actions) => {\r\n\t\t\t\t\t\t\t\t\tdocument.body.classList.add('is-loading')\r\n\r\n var oFormData = new FormData();\t\r\n Object.entries(values).forEach(elt => oFormData.append(elt[0], elt[1]));\r\n oFormData.append(\"idref\", document.getElementById(\"idref\").value);\r\n axios({ \r\n url:this.state.UrlSendReview,\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'multipart/form-data'\r\n },\r\n method: 'POST',\r\n data : oFormData,\r\n withCredentials: true, \r\n }) \r\n .then(res => {\t\t\r\n this.setState({\r\n formSubmitted: true\r\n });\r\n document.body.classList.remove('is-loading')\r\n })\r\n .catch(err => {\r\n this.setState({serverError: true})\r\n document.body.classList.remove('is-loading')\r\n }); \r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{ ({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"col_left\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_file-upload mb_30 var_galerie\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SingleFileUpload\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName={'fileupload1'} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabelText={this.props.t('AjouterUnePhoto')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tctaCancelText={this.props.t('ctaCancelText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformatErrorText={this.props.t('formatErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsizeErrorText={this.props.t('sizeErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingErrorText={this.props.t('loadingErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthumbSize={240}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!this.props.soloMode && <p className=\"t_subtitle\">{this.props.t('ArticlePhotoAvant')}</p> }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{!this.props.soloMode &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_file-upload mb_30 var_galerie\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SingleFileUpload\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName={'fileupload2'} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabelText={this.props.t('AjouterUnePhoto')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tctaCancelText={this.props.t('ctaCancelText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformatErrorText={this.props.t('formatErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsizeErrorText={this.props.t('sizeErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingErrorText={this.props.t('loadingErrorText')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthumbSize={240}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_subtitle\">{this.props.t('ArticlePhotoApres')}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\">{this.props.t('UploadMention')}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"col_right\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_checkbox mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Field type=\"checkbox\" id=\"checkboxRGPD\" name=\"rgpd_checkbox\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<label className={errors.rgpd_checkbox && touched.rgpd_checkbox && 'error'} htmlFor=\"checkboxRGPD\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t('ArticleJAiLu')} <a href={this.props.legalFileForContest.src}>{this.props.t('ArticleLeReglementDuJeu')}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_label\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_label\" dangerouslySetInnerHTML={{ __html: this.props.t('ArticleGDPR_recueillie')}}></p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\">{this.props.t('ArticleReviewPublier')}</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.serverError && <p className=\"t_error fade-in\">{this.props.t('DefaultServerError')}</p>}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.soloMode ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{( (errors.fileupload1 && touched.fileupload1) || (errors.rgpd_checkbox && touched.rgpd_checkbox) ) && <p className=\"t_error fade-in\">{this.props.t('DefaultErrorMessage')}{console.log(errors)} </p>}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{( (errors.fileupload1 && touched.fileupload1) || (errors.fileupload2 && touched.fileupload2) || (errors.rgpd_checkbox && touched.rgpd_checkbox) ) && <p className=\"t_error fade-in\">{this.props.t('DefaultErrorMessage')}{console.log(errors)} </p>}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Formik>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(GalerieUploadModal)","import React, { Component } from 'react'\r\nimport { Image } from '@sitecore-jss/sitecore-jss-react'; \r\n\r\nimport { throttle } from \"../../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nclass BeforeAfterSlider extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmaskWidth: 50,\r\n\t\t\tinputWidth: 100\r\n\t\t}\r\n\t\tthis.getBaSliderWidth = this.getBaSliderWidth.bind(this)\r\n\t\tthis.handleWindowResizeBeforeAfterSlider = this.handleWindowResizeBeforeAfterSlider.bind(this)\r\n\t\tthis.throttleWindowResizeBeforeAfterSlider = throttle(this.handleWindowResizeBeforeAfterSlider, 100)\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeBeforeAfterSlider)\r\n\t\tthis.handleWindowResizeBeforeAfterSlider()\r\n\t}\r\n\tcomponentWillUnmount(){\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeBeforeAfterSlider)\r\n\t}\r\n\thandleRangeChange(e){\r\n\t\tthis.setState({\r\n\t\t\tmaskWidth: e.currentTarget.value\r\n\t\t})\r\n\t}\r\n\thandleWindowResizeBeforeAfterSlider(){\r\n\t\tthis.setState({\r\n\t\t\tinputWidth: this.getBaSliderWidth()\r\n\t\t})\r\n\t}\r\n\tgetBaSliderWidth(){\r\n\t\treturn ((100 * this.props.sliderThumbWidth) / this.objBaSlider.offsetWidth) + 100\r\n\t}\r\n\trender() {\r\n\t\treturn(\r\n\t\t\t<div className=\"obj_ba-slider\" ref={ref => (this.objBaSlider = ref)}>\r\n\t\t\t\t<figure className=\"ctn_before-img\" style={{width: this.state.maskWidth + '%'}}>\r\n\t\t\t\t\t{/*<img src={this.props.imageBefore} alt={this.props.imageBeforeAlt} width=\"560\" height=\"560\"/>*/}\r\n\t\t\t\t\t<Image onLoad={this.props.onImageLoaded()} field={this.props.imageBefore.jss} width=\"560\" height=\"560\" imageParams={{ w: 560, h: 560 }}></Image>\r\n\t\t\t\t</figure>\r\n\t\t\t\t<figure className=\"ctn_after-img\">\r\n\t\t\t\t\t{/*<img onLoad={this.props.onImageLoaded()} src={this.props.imageAfter} alt={this.props.imageAfterAlt} width=\"560\" height=\"560\"/>*/}\r\n <Image onLoad={this.props.onImageLoaded()} field={this.props.imageAfter.jss} width=\"560\" height=\"560\" imageParams={{ w: 560, h: 560 }}></Image>\r\n\t\t\t\t</figure>\r\n\t\t\t\t<div className=\"ba-slidebar\" style={{left: this.state.maskWidth + '%'}}></div>\r\n\t\t\t\t<input type=\"range\" min=\"0\" max=\"100\" defaultValue=\"50\" onChange={(e) => this.handleRangeChange(e)} style={{width: this.state.inputWidth + '%'}}/>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\t\r\n}\r\n\r\nBeforeAfterSlider.defaultProps = {\r\n\timageBefore: '',\r\n\timageBeforeAlt: '',\r\n\timageAfter: '',\r\n\timageAfterAlt: '',\r\n\tonImageLoaded: () => {},\r\n\tsliderThumbWidth: 38\r\n}\r\n\r\nexport default BeforeAfterSlider","import React, { Component } from 'react' \r\nimport Modal from 'react-modal'\r\nimport { Formik, Field } from 'formik'\r\nimport * as Yup from 'yup'\r\nimport { withTranslation } from 'react-i18next';\r\nimport config from '../../temp/config';\r\nimport { throttle } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport IconSVG from '../../utilities/FrontFunctions/IconSVG'\r\nimport { Image, RichText } from '@sitecore-jss/sitecore-jss-react'; \r\n\r\nimport BeforeAfterSlider from \"../inc/Plugins/BeforeAfterSlider\"\r\nimport Moment from 'react-moment'; \r\nimport axios from 'axios'; \r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass GalerieDetailModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tUrlCallLikes: `${config.sitecoreApiHost}/apiaox/Call/LikePost?sc_apikey=${config.sitecoreApiKey}`, \r\n\t\t\tUrlSendReview: `${config.sitecoreApiHost}/apiaox/Call/AddPhotoContestReview?sc_apikey=${config.sitecoreApiKey}`, \r\n\t\t\tmodalIsOpen: false,\r\n\t\t\tserverError: false,\r\n\t\t\tformSubmitted: false,\r\n\t\t\tcguExpanded: false,\r\n\t\t\tctnImageHeight: 'auto', \r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t\tthis.handleButtonLike = this.handleButtonLike.bind(this)\r\n\t\tthis.handleWindowResizeGalerieDetailModal = this.handleWindowResizeGalerieDetailModal.bind(this)\r\n\t\tthis.throttleWindowResizeGalerieDetailModal = throttle(this.handleWindowResizeGalerieDetailModal, 100)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeGalerieDetailModal)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeGalerieDetailModal)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({\r\n\t\t\tmodalIsOpen: true,\r\n\t\t\tformSubmitted: false, \r\n\t\t})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\ttoggleCGU(){\r\n\t\tthis.setState({cguExpanded: !this.state.cguExpanded})\r\n\t}\r\n\thandleWindowResizeGalerieDetailModal(){\r\n\t\tif(window.innerWidth > 768 && this.ctnImage){\r\n\t\t\tthis.setState({\r\n\t\t\t\tctnImageHeight: this.ctnImage.querySelector('img').offsetHeight\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\thandleButtonLike(idrefReview) {\r\n\t\t\r\n\t\t// submit\r\n\t\tthis.setState({\r\n\t\t\tlikeIsSubmitting: true\r\n\t\t})\r\n \r\n\t\taxios({ \r\n\t\t\turl:this.state.UrlCallLikes,\r\n\t\t\tmethod: 'POST',\r\n\t\t\tdata : {\"idref\": idrefReview},\r\n\t\t\twithCredentials: true, \r\n\t\t })\r\n\t\t.then(res => \r\n\t\t {\t \t\t\t\t\t\t\t\t\t\t\r\n\t\t\tthis.setState({\r\n\t\t\t\tlikeIsSubmitting: false\r\n\t\t\t}) \r\n\t\t\t\r\n\t\t\tif(res.data.Value){\r\n\t\t\t\tif(res.data.Value.CodeReturn > 0){\r\n\t\t\t\t\tdocument.getElementById(\"buttonlike\").classList.add(\"is-checked\")\r\n\t\t\t\t}else if(res.data.Value.CodeReturn < 0){\r\n\t\t\t\t\tdocument.getElementById(\"buttonlike\").classList.remove(\"is-checked\")\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tvar oLstLikes = document.getElementsByClassName(`nbLikes_${ this.props.ReviewItem.idrefReview}`);\r\n\t\t\t\tfor (var i = 0; i < oLstLikes.length; i++) {\r\n\t\t\t\t\toLstLikes[i].innerHTML = res.data.Value.NewValue;\r\n \t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(err => {\r\n\t\t\tthis.setState({\r\n\t\t\t\tlikeIsSubmitting: false\r\n\t\t\t})\r\n\t\t}); \r\n\t} \r\n\t\r\n\t \r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_galerie-comment\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<div className=\"ctn_image\" ref={ref => (this.ctnImage = ref)}>\r\n\t\t\t\t\t\t\t{this.props.soloMode ?\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_solo-img\"> \r\n\t\t\t\t\t\t\t\t\t<Image onLoad={this.handleWindowResizeGalerieDetailModal} \r\n\t\t\t\t\t\t\t\t\t width=\"560\" height=\"560\"\r\n\t\t\t\t\t\t\t\t\t field={this.props.ReviewItem && this.props.ReviewItem.image.jss}\r\n\t\t\t\t\t\t\t\t\t imageParams={{ w: 560, h: 560 }}\r\n\t\t\t\t\t\t\t\t\t></Image>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t<BeforeAfterSlider\r\n\t\t\t\t\t\t\t\t\timageBefore={this.props.ReviewItem && this.props.ReviewItem.image}\r\n\t\t\t\t\t\t\t\t\timageAfter={this.props.ReviewItem && this.props.ReviewItem.image2}\r\n\t\t\t\t\t\t\t\t\tonImageLoaded={() => this.handleWindowResizeGalerieDetailModal}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_text\" style={{height:this.state.ctnImageHeight}}>\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_scroll\">\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_top\"> \t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_avatar\">\r\n\t\t\t\t\t\t\t\t\t\t<figure className=\"ctn_img\">\r\n\t\t\t\t\t\t\t\t\t\t\t{this.props.ReviewItem.reviewsFOU.userimg ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src={this.props.ReviewItem.reviewsFOU.userimg} alt={this.props.ReviewItem.reviewsFOU.firstname + \" \" + this.props.ReviewItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar.png\")} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\talt={this.props.ReviewItem.reviewsFOU.firstname + \" \" + this.props.ReviewItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_txt\">\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_author\">{this.props.ReviewItem.reviewsFOU.firstname + \" \" + this.props.ReviewItem.reviewsFOU.lastname}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_date\">{this.props.t('ArticleLe')} <Moment format={this.props.t('FormatDate')}>{this.props.ReviewItem.creationDate.dateValue}</Moment></p>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t<ul className=\"obj_likes-comments\">\r\n\t\t\t\t\t\t\t\t\t\t<li> \r\n\t\t\t\t\t\t\t\t\t\t\t<button id=\"buttonlike\" className={`bt_like-article${ this.props.ReviewItem.reviewsFOU.likeit ? ' is-checked' : ''}`} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\" onClick={() => this.handleButtonLike(this.props.ReviewItem.idrefReview)} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={this.state.likeIsSubmitting ? 'disabled' : ''}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG className=\"i_heart\" icon=\"heartstroke\" width=\"24\" height=\"20\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG className=\"i_heart-hover\" icon=\"heart\" width=\"24\" height=\"20\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className={`nbLikes_${ this.props.ReviewItem.idrefReview}`}>{this.props.ReviewItem.likes ? this.props.ReviewItem.likes.numberValue ? this.props.ReviewItem.likes.numberValue : 0 : 0}</span> {this.props.t('ArticleLike')}\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"dialog\" width=\"25\" height=\"20\" />\r\n\t\t\t\t\t\t\t\t\t\t\t{this.props.ReviewItem.responseList && this.props.ReviewItem.responseList.length} {this.props.ReviewItem.responseList && this.props.ReviewItem.responseList.length > 1 ? this.props.t('ArticleCommentaires') : this.props.t('ArticleCommentaire') }\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_comments\">\r\n\t\t\t\t\t\t\t\t\t{this.props.ReviewItem.responseList && this.props.ReviewItem.responseList.map((commentItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t<div key={index} className=\"ctn_comment\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_avatar\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<figure className=\"ctn_img\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{commentItem.reviewsFOU.userimg ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={commentItem.reviewsFOU.userimg} alt={commentItem.reviewsFOU.firstname + \" \" + commentItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar.png\")} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talt={commentItem.reviewsFOU.firstname + \" \" + commentItem.reviewsFOU.lastname}/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_txt\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_author\">{commentItem.reviewsFOU.firstname + \" \" + commentItem.reviewsFOU.lastname}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_date\">{this.props.t('ArticleLe')} <Moment format={this.props.t('FormatDate')}>{commentItem.creationDate.dateValue}</Moment></p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div> \r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<RichText field={commentItem.comment.jss} className=\"t_comment\" tag=\"p\"></RichText>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t{this.state.formSubmitted ?\r\n\t\t\t\t\t\t\t\t<p className=\"t_submitted fade-in\">{this.props.t('ArticleVotreMessageSeraPublieApresModeration')}</p>\r\n\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\t\t\tcomment: '',\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalidationSchema={\r\n\t\t\t\t\t\t\t\t\t\tYup.object().shape({\r\n\t\t\t\t\t\t\t\t\t\t\tcomment: Yup.string().required()\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tonSubmit={(values, actions) => {\r\n\t\t\t\t\t\t\t\t\t\tdocument.body.classList.add('is-loading')\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar oFormData = new FormData();\t\r\n\t\t\t\t\t\t\t\t\t\tObject.entries(values).forEach(elt => oFormData.append(elt[0], elt[1]));\r\n\t\t\t\t\t\t\t\t\t\toFormData.append(\"idref\", document.getElementById(\"idref\").value);\r\n\t\t\t\t\t\t\t\t\t\toFormData.append(\"idrefReview\", this.props.ReviewItem.idrefReview);\r\n\t\t\t\t\t\t\t\t\t\taxios({ \r\n\t\t\t\t\t\t\t\t\t\t\turl:this.state.UrlSendReview,\r\n\t\t\t\t\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t'Accept': 'application/json',\r\n\t\t\t\t\t\t\t\t\t\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\t\t\t\t\t\tdata : oFormData,\r\n\t\t\t\t\t\t\t\t\t\t\twithCredentials: true, \r\n\t\t\t\t\t\t\t\t\t\t}) \r\n\t\t\t\t\t\t\t\t\t\t.then(res => {\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\twindow.location.reload(false);\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tactions.resetForm()\r\n\t\t\t\t\t\t\t\t\t\t\t\t//this.MainSingleFileUpload.destroy()\r\n\t\t\t\t\t\t\t\t\t\t\t\t//[`mainfileupload${index}`].current.destroy()\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.addNewComment(values)\r\n\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t.catch(err => {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({serverError: true})\r\n\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t\t\t\t}); \r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{ ({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n\t\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className={`obj_form${this.state.cguExpanded ? ' is-expanded' : ''}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_textarea mb_5 no-border\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Field className={errors.comment && touched.comment && 'error'} as=\"textarea\" name=\"comment\" placeholder={this.props.t('VotreCommentaire')} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div> \r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.serverError && <p className=\"t_error fade-in\">{this.props.t('DefaultServerError')}</p>}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{( (errors.comment && touched.comment) ) && <p className=\"t_error fade-in\">{this.props.t('DefaultErrorMessage')}{console.log(errors)} </p>}\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta reverse\" type=\"submit\">{this.props.t('ArticleReviewPublier')}</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta-txt\" type=\"button\" onClick={() => this.toggleCGU()}><span>{this.props.t('ArticleAfficherCGU')}</span> {this.props.t('ArticleAfficherCGUTitre')}</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_txt-mentions\" dangerouslySetInnerHTML={{__html: this.props.t('ArticleConsent_ContestPhotoCommentaire')}}></div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Formik>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(GalerieDetailModal)","import React, { Component } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Image, RichText } from '@sitecore-jss/sitecore-jss-react'; \r\nimport ObjPushCustomFull from '../AllPages/ObjPushCustomFull';\r\nimport GalerieUploadModal from '../Modal/GalerieUploadModal'\r\nimport GalerieDetailModal from '../Modal/GalerieDetailModal'\r\n\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\n\r\nclass PagePhotoContest extends Component {\r\n\trender() {\r\n \r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields; \r\n \r\n if (oCurrentItemFields == null)\r\n {\r\n return <></>;\r\n }\r\n\r\n const {CurrentArticleReview, CurrentArticle } = this.props.fields.data; \r\n \r\n const pushCustomFull = {\r\n pushUrl : {value : null},\r\n darkMode: { boolValue : true},\r\n pushAlign: { value : \"center\"},\r\n pushWidth : {value : '100'},\r\n pushTitle: { jss : oCurrentItemFields[\"Page SubTitle\"]},\r\n imageMobile: { jss : { value : {src : oCurrentItemFields[\"Page Image Mobile\"]?.value.src}}} ,\r\n image: { jss : oCurrentItemFields[\"Page Image\"]?.value } \r\n };\r\n const sMode = oCurrentItemFields[\"Type Contest\"]?.value;\r\n \r\n\t\treturn (\r\n\t\t\t <> \r\n {CurrentArticle && <input type=\"hidden\" id=\"idref\" value={CurrentArticle.idref}></input>}\r\n <RichText className=\"obj_title-big\" field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></RichText>\r\n\r\n <ObjPushCustomFull pushContent={pushCustomFull} />\r\n \r\n\t\t\t<section className=\"section_galerie-photo_intro\">\r\n\t\t\t\t<div className=\"str_container\">\r\n <div className=\"ctn_galerie-photo\"> \r\n <RichText field={oCurrentItemFields[\"Page Text\"]}></RichText>\r\n \r\n {sMode === \"Single\" && \r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" onClick={() => this.galerieUploadModal1.openModal()}>{this.props.t('ArticleAjouterUnePhoto')}</button>\r\n </div>\r\n }\r\n \r\n {sMode === \"Double\" && \r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" onClick={() => this.galerieUploadModal2.openModal()}>{this.props.t('ArticleAjouterdeuxPhotos')}</button>\r\n </div>\r\n }\r\n \r\n {sMode === \"Single\" && \r\n <GalerieUploadModal\r\n onRef={ref => (this.galerieUploadModal1 = ref)}\r\n soloMode={true}\r\n legalFileForContest={oCurrentItemFields[\"Legal Contest\"]?.value}\r\n />\r\n }\r\n {sMode === \"Double\" && \r\n <GalerieUploadModal\r\n onRef={ref => (this.galerieUploadModal2 = ref)}\r\n soloMode={false}\r\n legalFileForContest={oCurrentItemFields[\"Legal Contest\"]?.value}\r\n />\r\n }\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section className=\"section_galerie-photo_liste\">\r\n <div className=\"str_container\">\r\n\r\n <div className=\"ctn_galerie-photo_liste\">\r\n \r\n {CurrentArticleReview && CurrentArticleReview.reviews && CurrentArticleReview.reviews.map((pushGalerieItem, index) => (\r\n <div key={index} className=\"obj_push-galerie\">\r\n <button\r\n type=\"button\"\r\n onClick={() => this[`galerieDetailModal${index}`].openModal()}\r\n > \r\n <div className=\"ctn_overlay\">\r\n <ul className=\"obj_likes-comments\">\r\n <li>\r\n <IconSVG icon=\"heart\" width=\"19\" height=\"16\" />\r\n <span className={`nbLikes_${ pushGalerieItem.idrefReview}`}>{pushGalerieItem.likes.numberValue}</span>\r\n </li>\r\n <li>\r\n <IconSVG icon=\"dialog\" width=\"20\" height=\"17\" />\r\n {pushGalerieItem.responseList && pushGalerieItem.responseList.length} \r\n </li>\r\n </ul>\r\n </div>\r\n <div className=\"ctn_image\">\r\n {sMode === \"Double\" ?\r\n <>\r\n <div className=\"ctn_before\">\r\n <Image field={pushGalerieItem.image.jss} width=\"345\" height=\"345\" imageParams={{ w: 345, h: 345 }}></Image>\r\n <p>{this.props.t('ArticlePhotoAvant')}</p>\r\n </div>\r\n <div className=\"ctn_after\">\r\n <Image field={pushGalerieItem.image2.jss} width=\"345\" height=\"345\" imageParams={{ w: 345, h: 345 }}></Image>\r\n <p>{this.props.t('ArticlePhotoApres')}</p>\r\n </div>\r\n </>\r\n :\r\n <Image field={pushGalerieItem.image.jss} width=\"345\" height=\"345\" imageParams={{ w: 345, h: 345 }}></Image>\r\n }\r\n </div>\r\n </button>\r\n <GalerieDetailModal\r\n onRef={ref => (this[`galerieDetailModal${index}`] = ref)}\r\n soloMode={sMode === \"Single\" ? true : false}\r\n ReviewItem={pushGalerieItem}\r\n /> \r\n </div>\r\n ))}\r\n \r\n </div>\r\n\r\n </div>\r\n </section>\r\n\t \r\n </>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PagePhotoContest));","import { withSitecoreContext, Image, RichText, Text } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport React, { Component } from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { GetFriendlyUrl } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\n\r\nclass PageProduct extends Component {\r\n\thandleClickPush(TrainingItem) {\r\n\t\twindow.open(GetFriendlyUrl(TrainingItem.trainingUrl));\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst { RelatedTrainings } = this.props.fields.data;\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_product-detail\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<div className=\"ctn_top-detail\">\r\n\t\t\t\t\t\t<div className=\"ctn_col col_image\">\r\n\t\t\t\t\t\t\t{oCurrentItemFields && (\r\n\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t<Image field={oCurrentItemFields[\"Page Image\"]}></Image>\r\n\r\n\t\t\t\t\t\t\t\t\t{oCurrentItemFields[\"Capacity\"]?.value && (\r\n\t\t\t\t\t\t\t\t\t\t<figcaption>\r\n\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"tube\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Capacity\"]}></RichText>\r\n\t\t\t\t\t\t\t\t\t\t</figcaption>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{RelatedTrainings && RelatedTrainings.trainingPush && RelatedTrainings.trainingPush.targetItems && (\r\n\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t{RelatedTrainings.trainingPush.targetItems.map((pushTrainingItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.handleClickPush(pushTrainingItem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_img\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Image field={pushTrainingItem.pageImage.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Text field={pushTrainingItem.pageTitle.jss} tag=\"span\"></Text>\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"ctn_col col_title\">\r\n\t\t\t\t\t\t\t{/*<h1><strong>Lipikar</strong> <br/>Baume <em>AP+<strong>M</strong></em></h1>*/}\r\n\t\t\t\t\t\t\t{oCurrentItemFields && <RichText tag=\"h1\" field={oCurrentItemFields[\"Page Title\"]}></RichText>}\r\n\t\t\t\t\t\t\t{oCurrentItemFields && <RichText tag=\"h2\" field={oCurrentItemFields[\"Page SubTitle\"]}></RichText>}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"ctn_col col_text\">\r\n\t\t\t\t\t\t\t{oCurrentItemFields && oCurrentItemFields[\"Plus produit\"]?.value && (\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_desc-product var_plus\">\r\n\t\t\t\t\t\t\t\t\t<h3>{this.props.t(\"PageProduct_LePlusProduit\")}</h3>\r\n\t\t\t\t\t\t\t\t\t<RichText tag=\"p\" field={oCurrentItemFields[\"Plus produit\"]}></RichText>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{oCurrentItemFields && oCurrentItemFields[\"Pour qui\"]?.value && (\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_desc-product\">\r\n\t\t\t\t\t\t\t\t\t<h3>{this.props.t(\"PageProduct_PourQui\")}</h3>\r\n\t\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Pour qui\"]}></RichText>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t{oCurrentItemFields && oCurrentItemFields[\"Benefices\"]?.value && (\r\n\t\t\t\t\t\t<div className=\"ctn_detail\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_desc-product\">\r\n\t\t\t\t\t\t\t\t<h3>{this.props.t(\"PageProduct_BeneficesActions\")}</h3>\r\n\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Benefices\"]}></RichText>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{oCurrentItemFields && oCurrentItemFields[\"Resultats\"]?.value && (\r\n\t\t\t\t\t\t<div className=\"ctn_detail\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_desc-product var_grey\">\r\n\t\t\t\t\t\t\t\t<h3>{this.props.t(\"PageProduct_Resultats\")}</h3>\r\n\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Resultats\"]}></RichText>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{oCurrentItemFields && oCurrentItemFields[\"Texture\"]?.value && (\r\n\t\t\t\t\t\t<div className=\"ctn_detail\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_desc-product var_texture\">\r\n\t\t\t\t\t\t\t\t<h3>{this.props.t(\"PageProduct_TextureApplications\")}</h3>\r\n\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Texture\"]}></RichText>\r\n\t\t\t\t\t\t\t\t{oCurrentItemFields[\"Texture Image\"] && <Image field={oCurrentItemFields[\"Texture Image\"]}></Image>}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{oCurrentItemFields && oCurrentItemFields[\"Composition\"]?.value && (\r\n\t\t\t\t\t\t<div className=\"ctn_detail\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_desc-product var_composition\">\r\n\t\t\t\t\t\t\t\t<h3>{this.props.t(\"PageProduct_Composition\")}</h3>\r\n\t\t\t\t\t\t\t\t<RichText field={oCurrentItemFields[\"Composition\"]}></RichText>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageProduct));\r\n","import { withSitecoreContext, Text, Image, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport Helmet from 'react-helmet'; \r\n\r\nclass PageProductSegments extends Component {\r\n\trender() {\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\r\n const { LstSousSegment } = this.props.fields.data; \r\n const { bodyAttributes } = Helmet.peek(); \r\n \r\n var sClassForPage =\"\";\r\n if(oCurrentItemFields && oCurrentItemFields[\"Banner Image\"] && Object.keys(oCurrentItemFields[\"Banner Image\"].value).length !== 0){\r\n sClassForPage = bodyAttributes.class + \" var_banner-white \";\r\n } \r\n\r\n\t\treturn (\r\n <>\r\n \t<React.Fragment>\r\n\t\t\t\t\t<Helmet>\t\t\t \r\n\t\t\t\t\t\t{(sClassForPage !== \"\") \r\n\t\t\t\t\t\t && (<body className={sClassForPage} />) }\t\t \r\n\t\t\t\t\t</Helmet>\r\n\t\t\t\t</React.Fragment>\r\n\r\n <section className=\"section_product-liste\">\r\n <div className=\"str_container\">\r\n\r\n <section className=\"obj_banner-product\">\r\n <div className=\"ctn_text\">\r\n { oCurrentItemFields && !oCurrentItemFields[\"Hide Title\"]?.value && <Text field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text> }\r\n { oCurrentItemFields && <Text field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h2\"></Text> }\r\n </div>\r\n { oCurrentItemFields && <figure>\r\n {oCurrentItemFields[\"Banner Image\"] && Object.keys(oCurrentItemFields[\"Banner Image\"].value).length !== 0 ?\r\n <picture>\r\n <source srcSet={oCurrentItemFields[\"Banner Image Mobile\"]?.value.src} media=\"(max-width:767px)\"/>\r\n <Image field={oCurrentItemFields[\"Banner Image\"]}></Image>\r\n </picture>\r\n :\r\n <picture>\r\n <source srcSet={require('../../assets/images/v_banner-product_mob.png')} media=\"(max-width:767px)\"/>\r\n <img src={require('../../assets/images/v_banner-product.png')} alt={oCurrentItemFields[\"Page Title\"]}/>\r\n </picture>\r\n }\r\n </figure> }\r\n </section>\r\n \r\n <section className=\"section_range-liste\">\r\n\r\n {LstSousSegment && LstSousSegment.children.map((rangeItem, index) => (\r\n\r\n <div key={index} className=\"ctn_range-liste\">\r\n\r\n <RichText field={rangeItem.titleSegment.jss} tag=\"h3\"></RichText>\r\n\r\n {rangeItem.productsSegment && rangeItem.productsSegment.targetItems && rangeItem.productsSegment.targetItems.map((productItem, index) => (\r\n\r\n <article key={index} className=\"obj_push-product\">\r\n <a href={productItem.url}>\r\n <figure>\r\n <Image field={productItem.pageImageSmall.jss}></Image>\r\n </figure>\r\n <RichText field={productItem.pageTitle.jss} tag=\"h4\" className=\"t_title\"></RichText>\r\n <RichText field={productItem.pageSubTitle.jss} tag=\"p\" className=\"t_desc\"></RichText>\r\n </a>\r\n </article>\r\n ))}\r\n </div>\r\n ))}\t\t\t\t\t\t\r\n </section>\r\n </div>\r\n </section>\r\n </>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageProductSegments));","import { withSitecoreContext, Text, Image, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport LazyLoad from 'react-lazyload'\r\n\r\nclass PageRanges extends Component {\r\n\trender() {\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n \r\n const { LstGammes } = this.props.fields.data; \r\n\t\treturn (\r\n\t\t\t<> \r\n\t\t\t{ oCurrentItemFields && <Text className=\"obj_title\" field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text> }\r\n\t\t\t<section className=\"section_page-liste\">\r\n\t\t\t\t<div className=\"str_container\">\r\n <div className=\"obj_tabs-list\">\r\n <section className=\"ctn_row active\">\r\n <div className=\"ctn_sub-row\">\r\n {LstGammes && LstGammes.children && LstGammes.children.map((catalogueItem, index) => (\r\n <article key={index} className=\"ctn_page-liste\">\r\n <a href={catalogueItem.url}>\r\n <LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<figure className=\"fade-in\">\r\n <Image field={catalogueItem.pageImage.jss}></Image>\r\n </figure>\r\n </LazyLoad>\r\n <RichText tag=\"h3\" field={catalogueItem.pageTitle.jss}></RichText>\r\n </a>\r\n </article>\r\n ))}\r\n </div>\r\n </section>\r\n </div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageRanges));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport queryString from 'query-string';\r\nimport { getApiDatas, urlToHost } from '../../utilities/FrontFunctions/AoxFrontFunctions';\r\n\r\n\r\nimport '../../assets/css/0010_sections/0440_section-recherche.css';\r\n\r\nclass PageRecherche extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n apiDatas: null,\r\n search: null,\r\n };\r\n }\r\n\r\n fetchData = () => {\r\n const oParams = queryString.parse(window.location.search);\r\n if (oParams.search !== undefined && oParams.search !== this.state.search) {\r\n document.body.classList.add('is-loading')\r\n\r\n getApiDatas(`/apiaox/Call/TestMoteurRechercheV2?isMasterDatabase=false&searchString=${oParams.search}&limit=50`)\r\n .then((apiDatas) => {\r\n this.setState({ apiDatas, search: oParams.search });\r\n document.body.classList.remove('is-loading')\r\n\r\n });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n this.fetchData();\r\n document.body.classList.add('pg_recherche');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (window.location.search !== prevProps.location?.search) {\r\n this.fetchData();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n document.body.classList.remove('pg_recherche');\r\n }\r\n\r\n \r\n render() {\r\n const hasResult = this.state.search && (this.state.apiDatas && Object.entries(this.state.apiDatas).length > 0)\r\n\r\n return (\r\n <>\r\n <section className=\"obj_section section_recherche\">\r\n <div className=\"ctn_section\">\r\n <div className=\"ctn_title\">\r\n <h1 className=\"t_title\">{\r\n this.state.search ?\r\n (`Résultats pour '${this.state.search || \"\"}'`)\r\n :\r\n \"Chargement en cours\"\r\n }\r\n </h1>\r\n {(this.state.search && !hasResult) && <p className=\"t_desc\">Nous n'avons pas trouvé de résultat <br/>pour votre recherche.</p>}\r\n </div>\r\n\r\n {hasResult && (\r\n Object.entries(this.state.apiDatas).map(([key, item]) => (\r\n <div className=\"ctn_recherche\" key={key}>\r\n <h2 className=\"t_title\">{key}</h2>\r\n <ul>\r\n {item.map((subItem, index) => (\r\n <li key={index}>\r\n <Link to={subItem?.Url || \"#\"}>\r\n <img \r\n src={subItem?.BrandLogoUrl\r\n ? urlToHost(subItem.BrandLogoUrl) \r\n : require(\"../../assets/images/v_logo-pa.svg\")\r\n } \r\n alt=\"Partner Academy - L'Oréal Beauté Dermatologique\" \r\n />\r\n <span>{subItem?.Name || \"Nom inconnu\"}</span>\r\n </Link>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n ))\r\n )}\r\n\r\n </div>\r\n </section>\r\n </>\r\n )\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageRecherche));\r\n","import React, { Component } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Image, RichText } from '@sitecore-jss/sitecore-jss-react'; \r\nimport ObjPushCustomFull from '../AllPages/ObjPushCustomFull';\r\n//import PageActiviteConseil from '../PageActiviteConseil';\r\nclass PageResultContest extends Component {\r\n\trender() {\r\n \r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\r\n if (oCurrentItemFields == null || oCurrentItemFields[\"Page Image Mobile\"] == null)\r\n {\r\n return <></>;\r\n }\r\n \r\n const { GetWinners } = this.props.fields.data; \r\n const pushCustomFull = {\r\n pushUrl : {value : null},\r\n darkMode: { boolValue : true},\r\n pushAlign: { value : \"left\"},\r\n pushWidth : {value : '100'},\r\n pushTitle: { jss : oCurrentItemFields[\"Page SubTitle\"]},\r\n pushContent: { jss : oCurrentItemFields[\"Page Text\"]},\r\n imageMobile: { jss : { value : {src : oCurrentItemFields[\"Page Image Mobile\"].value.src}}} ,\r\n image: { jss : oCurrentItemFields[\"Page Image\"].value } \r\n };\r\n\r\n\t\treturn (\r\n\t\t\t <> \r\n <RichText className=\"obj_title-big\" field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></RichText>\r\n\r\n <ObjPushCustomFull pushContent={pushCustomFull} />\r\n\r\n <section className=\"section_resultat\">\r\n <div className=\"str_container\">\r\n {GetWinners && GetWinners.children && GetWinners.children.map((resultatItem, index) => (\r\n <div key={index} className={`ctn_resultat${resultatItem.resultGift.jss ? ' var_gift' : ''}`}>\r\n <div className=\"ctn_top\">\r\n {resultatItem.resultGift.jss &&\r\n <figure>\r\n <Image field={resultatItem.resultGift.jss}></Image>\r\n </figure>\r\n }\r\n <div>\r\n <RichText tag=\"h2\" field={resultatItem.resultTitle.jss} />\r\n <RichText tag=\"p\" field={resultatItem.resultSubTitle.jss } /> \r\n </div>\r\n </div>\r\n <RichText tag=\"div\" className=\"ctn_table\" field={resultatItem.resultWinner.jss } /> \r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n </>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageResultContest));","import { withSitecoreContext, Text, Image, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport LazyLoad from 'react-lazyload'\r\n\r\nclass PageSegments extends Component {\r\n\tconstructor(props) {\r\n super(props) \r\n this.switchTab = this.switchTab.bind(this)\r\n }\r\n \r\n\tcomponentDidMount() {\r\n this.switchTab(0)\r\n window.dispatchEvent(new Event('scroll'))\r\n } \r\n switchTab(index){\r\n\t\tvar $listItem = document.querySelectorAll(\".ctn_nav-tabs li\"),\r\n\t\t\t$tabItem = document.querySelectorAll(\".obj_tabs-list .ctn_row\")\r\n\r\n\t\t$listItem.forEach(listItem => listItem.classList.remove(\"active\"))\r\n\t\t$listItem[index].classList.add(\"active\")\r\n\t\t$tabItem.forEach(tabItem => tabItem.classList.remove(\"active\", \"fade-in\"))\r\n $tabItem[index].classList.add(\"active\", \"fade-in\")\r\n \r\n window.dispatchEvent(new Event('scroll'))\r\n\t}\r\n\trender() {\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n const {LstSegments, LstRoutines } = this.props.fields.data; \r\n\t\treturn (\r\n\t\t\t<> \r\n\t\t\t{ oCurrentItemFields && <Text className=\"obj_title\" field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></Text> }\r\n\t\t\t<section className=\"section_page-liste\">\r\n\t\t\t\t<div className=\"str_container\">\r\n <div className=\"obj_tabs-list\">\r\n\r\n <ul className=\"ctn_nav-tabs\">\r\n <li><button type=\"button\" onClick={() => this.switchTab(0)}>{this.props.t('Segment_Catalogue')}</button></li>\r\n <li><button type=\"button\" onClick={() => this.switchTab(1)}>{this.props.t('Segment_Routines')}</button></li>\r\n </ul>\r\n\r\n <section className=\"ctn_row\">\r\n <div className=\"ctn_sub-row\">\r\n {LstSegments && LstSegments.children && LstSegments.children.map((catalogueItem, index) => (\r\n <article key={index} className=\"ctn_page-liste\">\r\n <a href={catalogueItem.url}>\r\n <LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<figure className=\"fade-in\">\r\n <Image field={catalogueItem.pageImage.jss}></Image>\r\n </figure>\r\n </LazyLoad>\r\n <RichText tag=\"h3\" field={catalogueItem.pageTitle.jss}></RichText>\r\n </a>\r\n </article>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n <section className=\"ctn_row\">\r\n <div className=\"ctn_sub-row\">\r\n {LstRoutines && LstRoutines.children && LstRoutines.children.map((routineItem, index) => (\r\n <article key={index} className=\"ctn_page-liste\">\r\n <a href={routineItem.url}>\r\n <LazyLoad>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<figure className=\"fade-in\">\r\n <Image field={routineItem.pageImage.jss}></Image>\r\n </figure>\r\n </LazyLoad>\r\n <Text tag=\"h3\" field={routineItem.pageTitlePush.jss}></Text>\r\n </a>\r\n </article>\r\n ))}\r\n </div>\r\n </section>\r\n </div>\r\n\t\t\t\t</div>\r\n\t\t\t</section> \r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageSegments));","import { withSitecoreContext, Image, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\n\r\nclass PageProductRanges extends Component {\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\r\n\t\tconst { LstProduits } = this.props.fields.data; \r\n\t\treturn (\r\n\t\t\t<section className=\"section_product-liste\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n\t\t\t\t\t<section className={`obj_banner-product${oCurrentItemFields && oCurrentItemFields[\"Banner WhiteMode\"] ? ' var_white' : ''}`}>\r\n\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t{ oCurrentItemFields && !oCurrentItemFields[\"Hide Title\"]?.value && <RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"></RichText>}\r\n\t\t\t\t\t\t\t{ oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h2\"></RichText>}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t{ oCurrentItemFields && <figure>\r\n\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t<source srcSet={oCurrentItemFields[\"Banner Image Mobile\"]?.value} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t<Image field={oCurrentItemFields[\"Banner Image\"]}></Image>\r\n\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t</figure>}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<section className=\"section_range-liste\">\r\n\t\t\t\t\t\t<div className=\"ctn_range-liste\">\r\n\t\t\t\t\t\t\t\t{LstProduits && LstProduits.children.map((productItem, index) => ( \r\n\t\t\t\t\t\t\t\t\t<article key={index} className=\"obj_push-product\">\r\n\t\t\t\t\t\t\t\t\t\t<a href={productItem.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t<figure>\r\n \t\t\t\t\t\t<Image field={productItem.pageImageSmall.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t\t<RichText field={productItem.pageTitle.jss} tag=\"h4\" className=\"t_title\"></RichText>\r\n \t\t\t\t\t\t<RichText field={productItem.pageSubTitle.jss} tag=\"p\" className=\"t_desc\"></RichText>\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t</article>\r\n\t\t\t\t\t\t\t\t))}\t\t\t\t\t\t\t \t\t\r\n \t\t</div>\r\n\t\t\t\t\t</section>\r\n\t\t\t\t</div>\r\n\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageProductRanges));","import { withSitecoreContext, Text, Image, RichText } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport React, { Component } from \"react\";\r\n\r\nimport { throttle, isMobile, matchHeight, heightAuto } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\n\r\nclass ProductSegmentRoutines extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.handleWindowResizeRoutineList = this.handleWindowResizeRoutineList.bind(this);\r\n\t\tthis.throttleWindowResizeRoutineList = throttle(this.handleWindowResizeRoutineList, 200);\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener(\"resize\", this.throttleWindowResizeRoutineList);\r\n\t\tthis.handleWindowResizeRoutineList();\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener(\"resize\", this.throttleWindowResizeRoutineList);\r\n\t}\r\n\thandleWindowResizeRoutineList() {\r\n\t\tif (!isMobile()) {\r\n\t\t\tmatchHeight(\".obj_push-product .t_title-routine\");\r\n\t\t\tmatchHeight(\".obj_push-product .t_title\");\r\n\t\t} else {\r\n\t\t\theightAuto(\".obj_push-product .t_title-routine\");\r\n\t\t\theightAuto(\".obj_push-product .t_title\");\r\n\t\t}\r\n\t}\r\n\trender() {\r\n\t\tconst { item } = this.props.fields.data;\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_product-liste\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<section className=\"obj_banner-routine\">\r\n\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t{oCurrentItemFields && <RichText tag=\"h1\" field={oCurrentItemFields[\"Page Title\"]} />}\r\n\t\t\t\t\t\t\t{oCurrentItemFields && <RichText tag=\"h2\" field={oCurrentItemFields[\"Page SubTitle\"]} />}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t<section className=\"section_range-liste\">\r\n\t\t\t\t\t\t<div className=\"ctn_range-liste\">\r\n\t\t\t\t\t\t\t{item &&\r\n\t\t\t\t\t\t\t\titem.Routines &&\r\n\t\t\t\t\t\t\t\titem.Routines.length > 0 &&\r\n\t\t\t\t\t\t\t\titem.Routines.map((elem, index) => (\r\n\t\t\t\t\t\t\t\t\t<article className=\"obj_push-product\">\r\n\t\t\t\t\t\t\t\t\t\t<a href={elem.productRoutine && elem.productRoutine.targetItems && elem.productRoutine.targetItems.length > 0 && elem.productRoutine.targetItems[0].url}>\r\n\t\t\t\t\t\t\t\t\t\t\t<RichText tag=\"h3\" className=\"t_title-routine\" field={elem.titleRoutine.jss} />\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_desc-routine\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Text field={elem.textRoutine.jss}></Text>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{elem.morningRoutine.boolValue && <IconSVG icon=\"sun\" />}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{elem.eveningRoutine.boolValue && <IconSVG icon=\"moon\" />}\r\n\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Image\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telem.productRoutine &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telem.productRoutine.targetItems &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telem.productRoutine.targetItems.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telem.productRoutine.targetItems[0].pageImageSmall.jss\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"fake_cta\"></span>\r\n\t\t\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t\t\t\t{elem.productRoutine && elem.productRoutine.targetItems && elem.productRoutine.targetItems.length > 0 && elem.productRoutine.targetItems[0].pageTitle && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<RichText tag=\"h4\" className=\"t_title\" field={elem.productRoutine.targetItems[0].pageTitle.jss} />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{elem.productRoutine &&\r\n\t\t\t\t\t\t\t\t\t\t\t\telem.productRoutine.targetItems &&\r\n\t\t\t\t\t\t\t\t\t\t\t\telem.productRoutine.targetItems.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\telem.productRoutine.targetItems[0].pageSubTitle && <RichText tag=\"p\" className=\"t_desc\" field={elem.productRoutine.targetItems[0].pageSubTitle.jss} />}\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t</article>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</section>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ProductSegmentRoutines));\r\n","import { Image , withSitecoreContext} from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { Component } from 'react'\r\n\r\nclass SectionBadgeElite extends Component {\r\n\trender() { \r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\r\n\t\treturn (\r\n\t\t\t<div class=\"obj_badge-elite\">\r\n\t\t\t\t{oCurrentItemFields && \r\n\t\t\t\t<Image field={oCurrentItemFields[\"Logo Privilege\"]}></Image>}\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withSitecoreContext()(SectionBadgeElite);","import React, { Component } from 'react' \r\nimport { withTranslation } from 'react-i18next';\r\nimport ObjPushArticle from '../AllPages/ObjPushArticle';\r\nimport ObjPushCustomFull from '../AllPages/ObjPushCustomFull';\r\n \r\nclass SectionContest extends Component {\r\n constructor(){\r\n\t\tsuper()\r\n\t\tthis.state = { \r\n\t\t\tpushsFullToShow: 5,\r\n\t\t\tpushsFullInterval: 5,\r\n\t\t\tpushsArticleToShow: 5,\r\n\t\t\tpushsArticleInterval: 5\r\n\t\t}\r\n\t}\r\n componentDidMount(){\r\n\t\tthis.switchTab(0)\r\n\t}\r\n\tswitchTab(index){\r\n\t\tvar $listItem = document.querySelectorAll(\".ctn_nav-tabs li\"),\r\n\t\t\t$tabItem = document.querySelectorAll(\".obj_tabs-list .ctn_row\");\r\n \r\n if($listItem && $listItem[index]){\r\n $listItem.forEach(listItem => listItem.classList.remove(\"active\"))\r\n $listItem[index].classList.add(\"active\")\r\n }\r\n if($tabItem && $tabItem[index]){\r\n $tabItem.forEach(tabItem => tabItem.classList.remove(\"active\", \"fade-in\"))\r\n $tabItem[index].classList.add(\"active\", \"fade-in\")\r\n }\r\n\t\twindow.dispatchEvent(new Event('scroll'))\r\n\t}\r\n\tshowMorePushsArticle(){\r\n\t\tthis.setState(prevState => ({\r\n\t\t\tpushsArticleToShow: prevState.pushsArticleToShow + this.state.pushsArticleInterval\r\n\t\t}))\r\n\t}\r\n\tshowMorePushsFull(){\r\n\t\tthis.setState(prevState => ({\r\n\t\t\tpushsFullToShow: prevState.pushsFullToShow + this.state.pushsFullInterval\r\n\t\t}))\r\n\t}\r\n\trender() {\r\n\r\n\tconst { item } = this.props.fields.data; \r\n \r\n\tvar oLstpushContest = [];\r\n\tvar oLstpushResult= [];\r\n\tif(item && item.children && item.children.length > 0){\r\n\t\titem.children.forEach(Folder =>{\r\n\t\t\tif(Folder.name === \"__ContentForContest\"){\r\n\t\t\t\toLstpushContest = Folder.LstPush;\r\n\t\t\t}\r\n\t\t\tif(Folder.name === \"__ContentForResults\"){\r\n\t\t\t\toLstpushResult = Folder.LstPush;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\treturn (\r\n \r\n\t\t\t<section className=\"section_page-liste\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<div className=\"obj_tabs-list\">\r\n\r\n\t\t\t\t\t\t<ul className=\"ctn_nav-tabs\">\r\n\t\t\t\t\t\t\t{oLstpushContest.length >= 0 && \r\n\t\t\t\t\t\t\t<li><button type=\"button\" onClick={() => this.switchTab(0)}>{this.props.t('ConcoursChallenge')}</button></li>}\r\n\t\t\t\t\t\t\t{oLstpushResult.length > 0 && \r\n\t\t\t\t\t\t\t<li><button type=\"button\" onClick={() => this.switchTab(1)}>{this.props.t('ResultatsDesConcours')}</button></li>}\r\n\t\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t\t<section className=\"ctn_row\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_sub-row\">\r\n\r\n\t\t\t\t\t\t\t{ oLstpushContest && oLstpushContest.length === 0 &&\r\n\t\t\t\t\t\t\t\t<article className=\"obj-push-custom-text var_100 var_full var_center\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t<p><strong>{this.props.t('PasDeConcours')}</strong></p>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</article>\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t{ oLstpushContest && oLstpushContest.slice(0, this.state.pushsArticleToShow).map((pushItem, index) => {\r\n\t\t\t\t\t\t\t\treturn(\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{(pushItem.template.id === \"A69E5AB47261487982639393B758E9F8\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjPushCustomFull pushContent={pushItem} key={index} /> }\r\n\r\n\t\t\t\t\t\t\t\t\t\t{(pushItem.template.id === \"E31C15C8231947B0942E65ABE8F75C72\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjPushArticle PushOnTitle={pushItem.pushTitle.value} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPushShowComment={pushItem.pushShowReviews.boolValue} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpushArticleItem={pushItem.pushArticle.articles[0] }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPushCTAFull={true} key={index} />}\r\n\t\t\t\t\t\t\t\t\t</> \r\n\t\t\t\t\t\t\t\t\t)} \r\n\t\t\t\t\t\t\t)}\r\n \r\n\t\t\t\t\t\t\t{(oLstpushContest && oLstpushContest.length > this.state.pushsArticleToShow) && (\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"button\" onClick={() => this.showMorePushsArticle()}>{this.props.t('AfficherPlusSujets')}</button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t\t<section className=\"ctn_row\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_sub-row\">\r\n \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{ oLstpushResult && oLstpushResult.slice(0, this.state.pushsFullToShow).map((pushItem, index) => {\r\n\t\t\t\t\t\t\t\treturn(\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{(pushItem.template.id === \"A69E5AB47261487982639393B758E9F8\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjPushCustomFull pushContent={pushItem} key={index} /> }\r\n\r\n\t\t\t\t\t\t\t\t\t\t{(pushItem.template.id === \"E31C15C8231947B0942E65ABE8F75C72\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t<ObjPushArticle PushOnTitle={pushItem.pushTitle.value} PushShowComment={pushItem.pushShowReviews.boolValue} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpushArticleItem={pushItem.pushArticle.articles[0] }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPushCTAFull={true} key={index} />}\r\n\t\t\t\t\t\t\t\t\t</> \r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t{(oLstpushResult && oLstpushResult.length > this.state.pushsFullToShow) && (\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"button\" onClick={() => this.showMorePushsFull()}>{this.props.t('AfficherPlusSujets')}</button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</section>\r\n\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n\t\t \r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(SectionContest);","import { withSitecoreContext, Image, RichText, Text} from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport React, { Component } from 'react' \r\nimport { matchHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport Slider from \"react-slick\"\r\nimport LazyLoad from 'react-lazyload'\r\n\r\nclass SectionProductCarousel extends Component {\r\n \r\n\tcomponentDidMount(){\r\n\t\tmatchHeight('.obj_carousel.obj_push-carousel h4')\r\n\t}\r\n\trender() {\r\n\t\tconst { CurrentProduct } = this.props.fields.data; \r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\t\r\n\t\tconst settings = {\r\n\t\t\tslidesToShow: 4,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t\tinfinite: false,\r\n\t\t\tresponsive: [\r\n\t\t\t\t{\r\n\t\t\t\t\tbreakpoint: 768,\r\n\t\t\t\t\tsettings: {\r\n\t\t\t\t\t\tslidesToShow: 3,\r\n\t\t\t\t\t\tinfinite: false\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tbreakpoint: 767,\r\n\t\t\t\t\tsettings: {\r\n\t\t\t\t\t\tslidesToShow: 1,\r\n\t\t\t\t\t\tinfinite: true\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n \r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t{CurrentProduct && CurrentProduct.complementaryProduct && CurrentProduct.complementaryProduct.targetItems && CurrentProduct.complementaryProduct.targetItems.length > 0 && \r\n\t\t\t\t<section className=\"section_product-carousel\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n\t\t\t\t\t{ oCurrentItemFields && <Text field={oCurrentItemFields[\"Complementary product Title\"]} tag=\"h2\"></Text> }\r\n\r\n\t\t\t\t\t<Slider className=\"obj_carousel obj_push-carousel\" {...settings}>\r\n\t\t\t\t\t{ CurrentProduct.complementaryProduct.targetItems.map((pushItem, index) => (\r\n\t\t\t\t\t\t<article key={index} className=\"obj_push-product\">\r\n\t\t\t\t\t\t<a href={pushItem.url}>\r\n\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t<figure className=\"fade-in\">\r\n\t\t\t\t\t\t\t\t\t<Image field={pushItem.pageImageSmall.jss}></Image>\r\n\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t<RichText className=\"t_title\" tag=\"h4\" field={pushItem.pageTitle.jss}></RichText>\r\n\t\t\t\t\t\t\t<RichText className=\"t_desc\" tag=\"p\" field={pushItem.pageSubTitle.jss}></RichText>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</article>\r\n\t\t\t\t\t))}\r\n\t\t\t\t\t</Slider>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(SectionProductCarousel));","import React, { Component } from 'react'\r\nimport ObjPushArticle from '../AllPages/ObjPushArticle'\r\n\r\nclass SectionPushArticle extends Component {\r\n\trender() {\t\r\n\t\tvar pushArticleItem = null;\r\n\t\r\n\t\tif(this.props.fields.data){\r\n\t\t\tpushArticleItem = this.props.fields.data.item\r\n\t\t} \r\n\t\treturn (\r\n\t\t\t\tpushArticleItem && \r\n\t\t\t\t\tpushArticleItem.pushArticle && \r\n\t\t\t\t\tpushArticleItem.pushArticle.articles && \r\n\t\t\t\t\t<ObjPushArticle PushOnTitle={pushArticleItem.pushTitle.value} \r\n\t\t\t\t\t\t\tPushShowComment={pushArticleItem.pushShowReviews.boolValue} \r\n\t\t\t\t\t\t\tpushArticleItem={pushArticleItem.pushArticle.articles[0]} key={pushArticleItem.id} /> \r\n\t\t)\r\n\t}\r\n}\r\nexport default SectionPushArticle;\r\n","import React, { Component } from 'react' \r\nimport { RichText, Image, Link } from '@sitecore-jss/sitecore-jss-react';\r\nimport { throttle } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nimport Slider from \"react-slick\"\r\n\r\nclass SectionWideCarousel extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t \r\n\t\tthis.refreshCarouselHeight = this.refreshCarouselHeight.bind(this)\r\n\t\tthis.handleWindowResizeWideCarousel = this.handleWindowResizeWideCarousel.bind(this)\r\n\t\tthis.throttleWindowResizeWideCarousel = throttle(this.handleWindowResizeWideCarousel, 100)\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeWideCarousel)\r\n\t\twindow.dispatchEvent(new Event('resize'))\r\n\t}\r\n\tcomponentWillUnmount(){\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeWideCarousel)\r\n\t}\r\n\trefreshCarouselHeight(){\r\n\t\tvar wideCarousel = document.querySelector('.wide-carousel'),\r\n\t\t\tslickList = wideCarousel.querySelector('.slick-list'),\r\n\t\t\tcarouselHeight = wideCarousel.clientHeight\r\n\t\tslickList.style.height = carouselHeight + \"px\"\r\n\t}\r\n\thandleWindowResizeWideCarousel() {\r\n\t\tthis.refreshCarouselHeight()\r\n\t}\r\n\trender() {\r\n\t\tconst settings = {\r\n\t\t\tlazyLoad: true,\r\n\t\t\tautoplay: true,\r\n\t\t\tautoplaySpeed: 5000,\r\n\t\t\tdots: true,\r\n\t\t\tinfinite: true,\r\n\t\t\tspeed: 750,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tslidesToScroll: 1\r\n }\r\n \r\n const { Banners } = this.props.fields.data \r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"obj_section ctn_section section_wide-carousel\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<Slider className=\"obj_carousel wide-carousel\" {...settings}>\r\n\t\t\t\t\t\t{ Banners && Banners.FolderContentForPage[0].FolderBanners[0].Banners.map((bannerItem, index) => (\r\n\t\t\t\t\t\t\t<div key={index}> \r\n \t\t\t\t<div className={`ctn_banner fade-in${bannerItem.darkMode.boolValue ? ' var_dark' : ''}\r\n ${bannerItem.styleBrand.targetItem ? bannerItem.styleBrand.targetItem.brandCssClass.value : ''}\r\n ${bannerItem.align ? ' var_' + bannerItem.align.value :''}`} bannerid={bannerItem.id}>\r\n\t\t\t\t\t\t\t\t\t{ bannerItem.template.id === \"31C956382BE1472095B3E8D7A9E8C60D\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t{bannerItem.ontitle.jss && \r\n\t\t\t\t\t\t\t\t\t\t\t<RichText field={bannerItem.ontitle.jss} tag=\"h4\" />}\r\n\t\t\t\t\t\t\t\t\t\t\t{bannerItem.title.jss && \r\n\t\t\t\t\t\t\t\t\t\t\t<RichText field={bannerItem.title.jss} tag=\"h2\" />}\r\n\t\t\t\t\t\t\t\t\t\t\t{bannerItem.posttitle.jss && \r\n\t\t\t\t\t\t\t\t\t\t\t<RichText field={bannerItem.posttitle.jss} tag=\"h3\" />}\r\n\t\t\t\t\t\t\t\t\t\t\t{bannerItem.content.jss && \r\n\t\t\t\t\t\t\t\t\t\t\t<RichText field={bannerItem.content.jss} tag=\"p\" />}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<picture>\r\n\t\t\t\t\t\t\t\t\t\t<source srcSet={bannerItem.imageMobile.jss.value.src} media=\"(max-width:767px)\"/>\r\n\t\t\t\t\t\t\t\t\t\t<Image field={bannerItem.image.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t{bannerItem.link.jss && bannerItem.link.jss.value && bannerItem.link.jss.value.href !== \"\" &&\t\t\t\t\t\t\t\t\r\n \t\t\t\t\t\t<Link className={`obj_cta${bannerItem.darkMode.boolValue ? ' reverse' : ''}`} field={bannerItem.link.jss} />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Slider>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default SectionWideCarousel","import React, { Component } from 'react'\r\nimport { Link } from '@sitecore-jss/sitecore-jss-react'; \r\nimport { withTranslation } from 'react-i18next'\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\nimport { isAppMobile } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nclass MainFooter extends Component {\r\n\t\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n \r\n\t\tthis.state = {\r\n\t\t\tisAppMobile: isAppMobile()\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tif (this.state.isAppMobile)\r\n\t\t{\r\n\t\t\treturn <></>\r\n\t\t}\t\r\n\r\n const { loading, MainNavCaf, MainNavCafExternal, navCompte, SecondNavMobile, mainNavFooter, AccueilCaf, CurrentUser } = this.props.fields.data;\r\n\r\n\t\treturn (<> \r\n\t\t\t{CurrentUser && \r\n\t\t\t\t<footer className=\"main_footer\">\r\n\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t<div className=\"ctn_top\">\r\n\t\t\t\t\t\t\t<h6 className=\"logo-caf\">\r\n\t\t\t\t\t\t\t\t{!loading && \r\n\t\t\t\t\t\t\t\t\t<a href={AccueilCaf && AccueilCaf.url}>\r\n\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_logo-pa.svg\")} alt={this.props.t('AltLogo')}/>\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</h6>\r\n\t\t\t\t\t\t\t<nav className=\"main_nav-footer\">\r\n\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t<li><strong>{this.props.t('FooterTitleNavMarque')}</strong></li>\r\n\t\t\t\t\t\t\t\t\t{!loading && [...MainNavCaf.children, ...(MainNavCafExternal?.children?.length>0 ? MainNavCafExternal.children: [])].map((navMarqueItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t<Link field={navMarqueItem.destination.jss}></Link> \r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t<ul id=\"tutorial_step_5\">\r\n\t\t\t\t\t\t\t\t\t{!loading && mainNavFooter.children.map((mainNavFooterItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t(mainNavFooterItem.id!==\"750FF9D7498B47BD872027F28413A4EB\" || CurrentUser?.isChallenge)\r\n\t\t\t\t\t\t\t\t\t\t&& <li key={index} className=\"var_bold\">\r\n\t\t\t\t\t\t\t\t\t\t\t<Link field={mainNavFooterItem.destination.jss}>\r\n {mainNavFooterItem.destination.text}\r\n {mainNavFooterItem.cSSClass.value === \"facebook\" && <IconSVG className=\"i_facebook-circle\" icon=\"facebook_circle\" />}\r\n </Link>\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t<li><strong>{this.props.t('FooterTitleNavCompte')}</strong></li>\r\n\t\t\t\t\t\t\t\t\t{!loading && navCompte.children.map((navCompteItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t<li key={index}><Link field={navCompteItem.destination.jss}></Link></li>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t</nav>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"ctn_bottom\">\r\n\t\t\t\t\t\t\t<nav className=\"second_nav-footer\">\r\n\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t{!loading && SecondNavMobile.children.map((secondNavFooterItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t<li key={index} className=\"var_bold\">\r\n\t\t\t\t\t\t\t\t\t\t\t<Link field={secondNavFooterItem.destination.jss}></Link>\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t))}\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<li> \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t<button id=\"ot-sdk-btn\" className=\"ot-sdk-show-settings\">Gestion des cookies</button>\r\n\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t</nav>\r\n\t\t\t\t\t\t\t<p className=\"t_mentions\">{this.props.t('FooterMention')}</p>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</footer>\r\n\t\t\t}\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(MainFooter)","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next';\r\nimport { Link } from '@sitecore-jss/sitecore-jss-react'; \r\nimport { isAppMobile } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nclass MainFooterLogin extends Component {\r\n\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n \r\n\t\tthis.state = {\r\n\t\t\tisAppMobile: isAppMobile()\t\t\t\r\n\t\t}\r\n\t}\r\n\t\r\n\trender() {\r\n\t\tif (this.state.isAppMobile)\r\n\t\t{\r\n\t\t\treturn <></>\r\n\t\t}\t\t\r\n\r\n\t\tvar loading = null;\r\n\t\tvar SecondNavMobile = null; \r\n \r\n if(this.props.fields){\r\n SecondNavMobile = this.props.fields.data.SecondNavMobile;\r\n\t\t}\r\n\t\t\r\n if(this.props.fields){\r\n loading = this.props.fields.data.loading;\r\n }\r\n \r\n\t\t//const { loading, SecondNavMobile } = this.props.fields.data;\r\n\t\treturn (\r\n\t\t\t<> \r\n\t\t\t\t<footer className=\"main_footer-login\">\r\n\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t<div className=\"ctn_bottom\">\r\n\t\t\t\t\t\t\t<nav className=\"second_nav-footer\">\r\n\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t{!loading && SecondNavMobile && SecondNavMobile.children.map((secondNavFooterItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t<li key={index} className=\"var_bold\">\r\n\t\t\t\t\t\t\t\t\t\t\t<Link field={secondNavFooterItem.destination.jss}></Link>\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t))}\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t<button id=\"ot-sdk-btn\" className=\"ot-sdk-show-settings\">Gestion des cookies</button>\r\n\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t</nav>\r\n\t\t\t\t\t\t\t<p className=\"t_mentions\">{this.props.t('FooterMention')}</p>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</footer>\r\n\t\t\t</>\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(MainFooterLogin);","import React, { useState, useEffect } from 'react';\r\nimport { isMobile } from '../../utilities/FrontFunctions/AoxGlobalFrontFunctions';\r\nimport { Link, useHistory } from 'react-router-dom';\r\n// import { useNavigate } from 'react-router';\r\n\r\nfunction ObjHeaderSearch(props){\r\n\r\n\tconst [value, setValue] = useState('');\r\n\tconst [visible, setVisible] = useState(true);\r\n\tconst history = useHistory();\r\n\t\r\n\tuseEffect(() => {\r\n\t\tsetVisible(props.visible);\r\n\t}, [props.visible]);\r\n\r\n\tconst handleClose = () => {\r\n\t\tsetVisible(false);\r\n\t\tprops.onClose();\r\n\t}\r\n\tconst handleKeyDown = (e) => {\r\n\t\tif (e.key === 'Enter' && value) {\r\n\t\t\thistory.push(`${props.pageRecherche?.url}?search=${value}`);\r\n\t\t}\r\n\t};\r\n\r\n\tconst { pageRecherche} = props;\r\n\treturn(\r\n\t\t<>\r\n\t\t{visible &&\r\n\t\t\t<div className=\"obj_header-search\">\r\n\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t<label className=\"t_label\" htmlFor=\"header-search\">Rechercher</label>\r\n\t\t\t\t\t<div className=\"ctn_input\">\r\n\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\tid=\"header-search\"\r\n\t\t\t\t\t\t\tname=\"header_search\"\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tsetValue(e.target.value);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tonKeyDown={handleKeyDown}\r\n\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t{!value &&\r\n\t\t\t\t\t\t\t<button className=\"bt_reset-search\" type=\"button\" onClick={() => setValue('')}></button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{isMobile() &&\r\n\t\t\t\t\t\t\t<button className=\"bt_close-search\" type=\"button\" onClick={() => handleClose()}>Annuler</button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<Link to={`${pageRecherche?.url}?search=${value}`}>\r\n\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\" disabled={!value} >Valider</button>\r\n\t\t\t\t\t</Link>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\t\t</>\r\n\t)\r\n}\r\n\r\nexport default ObjHeaderSearch;","import React, { Component } from \"react\";\r\nimport { Link, Image, withSitecoreContext, isExperienceEditorActive } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\nimport Helmet from \"react-helmet\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport config from \"../../temp/config\";\r\n\r\nimport { throttle, isMobile, isNotAtTop } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\nimport { isAppMobile, postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\nimport { PushDataLayerUserId, getGA4WindowDatas, trackGA4PageView, addGA4SessionData } from \"../../utilities/FrontFunctions/AoxTrackingFunctions\";\r\nimport { badges } from \"../../data/badges\";\r\nimport ExpertiseBadgeModal from \"../Modal/ExpertiseBadgeModal\";\r\nimport ObjHeaderSearch from \"./ObjHeaderSearch\";\r\n\r\nconst axios = require(\"axios\");\r\n\r\nclass MainHeader extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tisLoading: true,\r\n\t\t\tisMobile: isMobile(),\r\n\t\t\tmodeMini: isNotAtTop(),\r\n\t\t\tmarqueIndex: -1,\r\n\t\t\tlogoIndex: 0,\r\n\t\t\tdataLevel: 3,\r\n\t\t\tdataId: \"\",\r\n\t\t\tdataLabel: \"\",\r\n\t\t\tlabelMenuMobile: \"Menu\",\r\n\t\t\tSecondNavCaf: {\r\n\t\t\t\tuserName: \"-\",\r\n\t\t\t\tpercentExpert: \"-\",\r\n\t\t\t},\r\n\t\t\tserversuccessLogOut: false,\r\n\t\t\tUrlLogOut: `${config.sitecoreApiHost}/apiaox/Call/LogOut`,\r\n\t\t\tapiDatasUserBadgesNotDisplayed: [],\r\n\t\t\tnewBadge: false,\r\n\t\t\tnewBadgeFade: false,\r\n\t\t};\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this);\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200);\r\n\t\tthis.handleWindowScrollMainHeader = this.handleWindowScrollMainHeader.bind(this);\r\n\t\tthis.throttleWindowScrollMainHeader = throttle(this.handleWindowScrollMainHeader, 200);\r\n\t\tthis.toggleMenuMobile = this.toggleMenuMobile.bind(this);\r\n\t\tthis.handleNextNavMobile = this.handleNextNavMobile.bind(this);\r\n\t\tthis.handlePrevNavMobile = this.handlePrevNavMobile.bind(this);\r\n\t\tthis.toggleHeaderSearch = this.toggleHeaderSearch.bind(this)\r\n\t\tthis.handleLogOut = this.handleLogOut.bind(this);\r\n\t\tthis.handleOpenModalBadge = this.handleOpenModalBadge.bind(this);\r\n\t\tthis.bPushDataLayerUserId_Done = false;\r\n\t\tthis.bPushTrackPage_Done = false;\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tconst { CurrentPage, GetBreadCrumb, CurrentUser } = this.props.fields.data;\r\n\r\n\t\twindow.addEventListener(\"resize\", this.throttleWindowResizeMainHeader);\r\n\t\twindow.addEventListener(\"scroll\", this.throttleWindowScrollMainHeader);\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (document.body.classList.contains(\"pg_brand\")) {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tdataLevel: 3,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tdataLevel: 1,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}, 0);\r\n\r\n\t\tgetGA4WindowDatas(CurrentUser, CurrentPage, GetBreadCrumb).then((resultDatas) => {\r\n\t\t\twindow.trackDatas = resultDatas;\r\n\t\t\taddGA4SessionData(resultDatas);\r\n\t\t\ttrackGA4PageView(window.trackDatas);\r\n\t\t});\r\n\r\n\t\tif (CurrentUser?.hasBadgeToDisplay) {\r\n\t\t\tpostApiDatas(`/apiaox/Call/UserBadgesNotDisplayed`, {}).then((res) => {\r\n\t\t\t\tif (res.IsValid) {\r\n\t\t\t\t\tthis.setState({ apiDatasUserBadgesNotDisplayed: res.Value, ModalBadgeIndex: -1, newBadge: true });\r\n\t\t\t\t\tthis.handleOpenModalBadge();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener(\"resize\", this.throttleWindowResizeMainHeader);\r\n\t\twindow.removeEventListener(\"scroll\", this.throttleWindowScrollMainHeader);\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile(),\r\n\t\t});\r\n\t}\r\n\thandleWindowScrollMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tmodeMini: isNotAtTop(),\r\n\t\t});\r\n\t}\r\n\ttoggleMenuMobile() {\r\n\t\tdocument.body.classList.toggle(\"menu-mobile_is-opened\");\r\n\t\tthis.setState({headerSearchVisible: false})\r\n\t}\r\n\thandleNextNavMobile(e, level, index) {\r\n\t\tthis.setState({\r\n\t\t\tdataLevel: level,\r\n\t\t\tmarqueIndex: index,\r\n\t\t\tdataId: e.currentTarget.getAttribute(\"data-id\"),\r\n\t\t\tdataLabel: e.currentTarget.getAttribute(\"data-label\"),\r\n\t\t});\r\n\t\twindow.scrollTo(0, 0);\r\n\t}\r\n\thandlePrevNavMobile(level) {\r\n\t\tif (level > 1) {\r\n\t\t\tif (level === 3) {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tdataId: \"marque\",\r\n\t\t\t\t\tdataLabel: this.props.t(\"EspacesMarques_MenuMob\"),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (level === 2) {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tdataId: \"\",\r\n\t\t\t\t\tdataLabel: \"\",\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tthis.setState({\r\n\t\t\t\tdataLevel: level - 1,\r\n\t\t\t});\r\n\t\t}\r\n\t\twindow.scrollTo(0, 0);\r\n\t}\r\n\r\n\ttoggleHeaderSearch(){\r\n\t\tthis.setState({\r\n\t\t\theaderSearchVisible: !this.state.headerSearchVisible,\r\n\t\t})\r\n\t}\r\n\r\n\thandleLogOut() {\r\n\t\taxios({\r\n\t\t\tmethod: \"POST\",\r\n\t\t\turl: this.state.UrlLogOut,\r\n\t\t\twithCredentials: true,\r\n\t\t})\r\n\t\t\t.then((result) => {\r\n\t\t\t\tif (result.data.IsValid) {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tserversuccessLogOut: true,\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\talert(result.data.ExceptionMessage);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconsole.log(err);\r\n\t\t\t\talert(err);\r\n\t\t\t});\r\n\t}\r\n\thandleOpenModalBadge() {\r\n\t\tif (this.state.apiDatasUserBadgesNotDisplayed) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.setState({ ModalBadgeIndex: this.state.ModalBadgeIndex + 1 });\r\n\t\t\t\tif (this.state.ModalBadgeIndex >= 0 && this.state.ModalBadgeIndex < this.state.apiDatasUserBadgesNotDisplayed.UserBadges.length) {\r\n\t\t\t\t\tthis[\"ExpertiseBadgeModal\" + this.state.ModalBadgeIndex].openModal();\r\n\t\t\t\t}\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\t}\r\n\trender() {\r\n\t\tconst { MainNavCaf, navCompte, SecondNavMobile, AccueilCaf, PageContact, CurrentPage, GetAncesor, CurrentUser, PageRecherche } = this.props.fields.data;\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\r\n const ROLE_TITULAIRE = \"TITULS\"; \r\n const GUID_LINK_BENEFICIAIRES = \"4DC441D2C3D84E7AA1DE1E8191358FE1\"; \r\n const GUID_LINK_COLLABORATEURS = \"5C54A62866F5494682238FFCC0F285FD\"; \r\n\r\n\t\tif (CurrentUser && !this.bPushDataLayerUserId_Done && !isAppMobile()) {\r\n\t\t\tPushDataLayerUserId(CurrentUser.userkey).then((result) => {\r\n\t\t\t\tthis.bPushDataLayerUserId_Done = result;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar sClassForPage = oCurrentItemFields != null ? oCurrentItemFields[\"Class on page\"].value : \"\";\r\n\t\tif (oCurrentItemFields && oCurrentItemFields[\"Brand CssClass\"]) {\r\n\t\t\tsClassForPage = sClassForPage + (sClassForPage.length > 0 ? \" \" : \"\") + oCurrentItemFields[\"Brand CssClass\"].value;\r\n\t\t}\r\n\t\tif (CurrentPage && CurrentPage.getbrand && !sClassForPage.endsWith(CurrentPage.getbrand.brandCssClass.value)) {\r\n\t\t\tsClassForPage = sClassForPage + (sClassForPage.length > 0 ? \" \" : \"\") + CurrentPage.getbrand.brandCssClass.value;\r\n\t\t}\r\n\t\tif (isExperienceEditorActive() || this.props.sitecoreContext.pageState === \"edit\" || this.props.sitecoreContext.pageState === \"preview\") {\r\n\t\t\tsClassForPage += \" ExperienceEditorActive \";\r\n\t\t}\r\n\t\tif (isAppMobile()) {\r\n\t\t\tsClassForPage += \" hide-for-mobile-app \";\r\n\t\t}\r\n\r\n\t\tvar iCurrentIndexMenu = 0;\r\n\t\tif (GetAncesor && GetAncesor.ancestors.length > 0) {\r\n\t\t\tvar sClassName = GetAncesor.ancestors[0].brandCssClass.value.replace(\"var_\", \"\");\r\n\t\t\tiCurrentIndexMenu = MainNavCaf.children[0].SubMenu.findIndex((m) => m.cSSClass.value === sClassName);\r\n\t\t}\r\n\r\n\t\tif (this.state.serversuccessLogOut) {\r\n\t\t\treturn <Redirect to=\"/\" />;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<React.Fragment>\r\n\t\t\t\t\t<Helmet>{sClassForPage !== \"\" && <body className={sClassForPage} />}</Helmet>\r\n\t\t\t\t</React.Fragment>\r\n\r\n\t\t\t\t{CurrentUser && !isAppMobile() && (\r\n\t\t\t\t\t<header className={`main_header${this.state.modeMini ? \" mode_mini\" : \"\"}`}>\r\n\t\t\t\t\t\t<div className=\"ctn_nav-caf\">\r\n\t\t\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t\t\t<h6 className=\"logo-caf\">\r\n\t\t\t\t\t\t\t\t\t<a href={AccueilCaf && AccueilCaf.url}>\r\n\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_logo-pa.svg\")} alt={this.props.t(\"AltLogo\")} />\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t</h6>\r\n\r\n\t\t\t\t\t\t\t\t{this.state.isMobile ? (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" className=\"bt_burger\" id=\"tutorial_step_4\" onClick={this.toggleMenuMobile}>\r\n\t\t\t\t\t\t\t\t\t\t\t<span></span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t<div className={`obj_avatar-expertise is_bronze${this.state.newBadge ? \" new_badge\" : \"\"}${this.state.newBadgeFade ? \" fade-in\" : \"\"}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"border_expertise\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_expertise\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_visuel\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{CurrentUser.userimg !== \"\" ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={CurrentUser.userimg} alt={CurrentUser.firstname + \" \" + CurrentUser.lastname} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar-xl.png\")} alt={CurrentUser.firstname + \" \" + CurrentUser.lastname} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_badge\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/badge_png/Badge_PngCaf.png\")} alt=\"\" />\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t{/* <button type=\"button\" className=\"bt_search-mobile\" onClick={this.toggleHeaderSearch}>\r\n\t\t\t\t\t\t\t\t\t\t\t<IconSVG className=\"svg_search\" icon=\"search\"/>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t<ObjHeaderSearch\r\n\t\t\t\t\t\t\t\t\t\t\tvisible={this.state.headerSearchVisible}\r\n\t\t\t\t\t\t\t\t\t\t\tonClose={() => this.setState({headerSearchVisible: false})}\r\n\t\t\t\t\t\t\t\t\t\t\tpageRecherche={PageRecherche}\r\n\t\t\t\t\t\t\t\t\t\t/> */}\r\n\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t<nav className=\"main_nav-caf\">\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"lvl_01\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{MainNavCaf.children.map(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(MainNavCafItem, index) =>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(MainNavCafItem.id !== \"89273D34AC6D42F5AFF21F805D7B0923\" || CurrentUser.isChallenge) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index} className={MainNavCafItem.hasChildren ? \"has-sub-level\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{MainNavCafItem.hasChildren ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>{MainNavCafItem.destination.text}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={`sub_nav-caf ${MainNavCafItem.cSSClass.value}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{MainNavCafItem.SubMenu.map((SubMenuItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t (SubMenuItem.id === GUID_LINK_BENEFICIAIRES && !CurrentUser.isManager)\r\n ? \"\"\r\n : (\r\n <ul key={index}>\r\n <li className={SubMenuItem.cSSClass.value}>\r\n <Link field={SubMenuItem.destination.jss}></Link>\r\n </li>\r\n {SubMenuItem.SubMenu.map(\r\n (SubMenuItem, index) => (\r\n SubMenuItem.destination.url !== \"\" &&\r\n <li key={index}>\r\n <Link field={SubMenuItem.destination.jss}></Link>\r\n </li>\r\n )\r\n )}\r\n </ul>\r\n )\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link field={MainNavCafItem.destination.jss}></Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ //icone recherche, non intégré à la boucle car trop différent (non intégré dans sitecore)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li className={\"has-sub-level\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG className=\"svg_search\" icon=\"search\"/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"sub_nav-caf var_small var_search\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ObjHeaderSearch \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvisible={true} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpageRecherche={PageRecherche} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose={() => this.setState({headerSearchVisible: false})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</nav>\r\n\t\t\t\t\t\t\t\t\t\t<nav className=\"second_nav-caf\" id=\"tutorial_step_4\">\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"lvl_01\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li className=\"li_compte\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span isauthenticated={CurrentUser.isAuthenticated && CurrentUser.isAuthenticated.toString()} username={CurrentUser.username}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Bienvenue\")} <strong>{CurrentUser.firstname}</strong>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"lvl_02\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{navCompte.children.map((navCompteItem, index) => (\r\n (navCompteItem.id === GUID_LINK_COLLABORATEURS && CurrentUser.roleCode !== ROLE_TITULAIRE)\r\n ? \"\" \r\n : <li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link field={navCompteItem.destination.jss}></Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/*eslint-disable */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a onClick={() => this.handleLogOut()}>{this.props.t(\"MenuDeconnexion\")}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/*eslint-enable */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li className=\"li_expertise\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* TODO SGU style newbadge / bronze */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"border_expertise\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_expertise\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_visuel\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{CurrentUser.userimg !== \"\" ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={CurrentUser.userimg} alt={CurrentUser.firstname + \" \" + CurrentUser.lastname} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar-xl.png\")} alt={CurrentUser.firstname + \" \" + CurrentUser.lastname} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_pourcent\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{CurrentUser.userscore <= 0 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<strong>0</strong>pt\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<strong>{CurrentUser.userscore}</strong>pts\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_badge\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/badge_png/Badge_PngCaf.png\")} alt=\"\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</nav>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_nav-marque\">\r\n\t\t\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t\t\t<h6 className=\"logo-marque\">\r\n\t\t\t\t\t\t\t\t\t{MainNavCaf &&\r\n\t\t\t\t\t\t\t\t\t\tMainNavCaf.children[0].SubMenu[iCurrentIndexMenu] &&\r\n\t\t\t\t\t\t\t\t\t\tMainNavCaf.children[0].SubMenu[iCurrentIndexMenu].destination &&\r\n\t\t\t\t\t\t\t\t\t\tMainNavCaf.children[0].SubMenu[iCurrentIndexMenu].destination.targetItem &&\r\n\t\t\t\t\t\t\t\t\t\tMainNavCaf.children[0].SubMenu[iCurrentIndexMenu].destination.targetItem.logo && (\r\n\t\t\t\t\t\t\t\t\t\t\t<Link field={MainNavCaf.children[0].SubMenu[iCurrentIndexMenu].destination.jss}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Image field={MainNavCaf.children[0].SubMenu[iCurrentIndexMenu].destination.targetItem.logo.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</h6>\r\n\t\t\t\t\t\t\t\t{!this.state.isMobile && (\r\n\t\t\t\t\t\t\t\t\t<nav className=\"main_nav-marque\">\r\n\t\t\t\t\t\t\t\t\t\t<ul className=\"lvl_01\">\r\n\t\t\t\t\t\t\t\t\t\t\t{MainNavCaf.children[0].SubMenu[iCurrentIndexMenu] &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tMainNavCaf.children[0].SubMenu[iCurrentIndexMenu].SubMenu.map(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(SubMenuItem, index) =>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSubMenuItem.destination.url !== \"\" && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index} className={SubMenuItem.highlighting.boolValue ? \"var_marque\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link field={SubMenuItem.destination.jss}></Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t</nav>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t{this.state.isMobile && (\r\n\t\t\t\t\t\t\t<div className=\"ctn_nav-mobile\" data-level={this.state.dataLevel} data-id={this.state.dataId} data-label={this.state.dataLabel}>\r\n\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\tclassName=\"bt_title\"\r\n\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\tdata-level={this.state.dataLevel}\r\n\t\t\t\t\t\t\t\t\tdata-id={this.state.dataId}\r\n\t\t\t\t\t\t\t\t\tdata-label={this.state.dataLabel}\r\n\t\t\t\t\t\t\t\t\tonClick={() => this.handlePrevNavMobile(this.state.dataLevel)}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{this.state.dataLevel === 1 && this.state.labelMenuMobile}\r\n\r\n\t\t\t\t\t\t\t\t\t{this.state.dataLevel > 1 && this.state.dataLabel === \"\" && GetAncesor && GetAncesor.ancestors.length > 0 && GetAncesor.ancestors[0].pageTitle.value}\r\n\t\t\t\t\t\t\t\t\t{this.state.dataLevel > 1 && this.state.dataLabel !== \"\" && this.state.dataLabel}\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_panels\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_panel level-1\">\r\n\t\t\t\t\t\t\t\t\t\t{this.state.dataLevel === 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"main_nav-mobile\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href={AccueilCaf && AccueilCaf.url} onClick={this.toggleMenuMobile}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"LabelAccueilCAF\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{MainNavCaf.children.map((MainNavCafItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{MainNavCafItem.hasChildren ? \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bt_mobile-nav\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata-id={MainNavCafItem.id==='44563505AA0A4102B5BCBBFC12DD130B' ? 'marque' : MainNavCafItem.id}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata-label={MainNavCafItem.destination.text}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => this.handleNextNavMobile(e, 2, 0)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{MainNavCafItem.destination.text}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link field={MainNavCafItem.destination.jss} onClick={this.toggleMenuMobile}></Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li className=\"li_compte\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bt_mobile-nav\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata-id=\"compte\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata-label={this.props.t(\"MenuCompte\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => this.handleNextNavMobile(e, 2, 0)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"avatar\" width=\"17\" height=\"22\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"MenuCompte\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li className=\"li_contact\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{PageContact && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href={PageContact.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"email\" width=\"20\" height=\"16\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"MenuContact\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"second_nav-mobile\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{SecondNavMobile.children.map((SecondNavMobileItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link field={SecondNavMobileItem.destination.jss} onClick={this.toggleMenuMobile}></Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_panel level-2\">\r\n\t\t\t\t\t\t\t\t\t\t{this.state.dataId === \"marque\" ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"main_nav-mobile level-marque\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{MainNavCaf.children[MainNavCaf.children.findIndex((item) => item.cSSClass.value === \"marque\")].SubMenu.map((SubMenuItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bt_mobile-nav\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata-id={SubMenuItem.cSSClass.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata-label={SubMenuItem.destination.text}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => this.handleNextNavMobile(e, 3, index)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{SubMenuItem.destination.text}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t) : this.state.dataId === \"compte\" ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"main_nav-mobile level-compte\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{navCompte.children.map((navCompteItem, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link field={navCompteItem.destination.jss} onClick={this.toggleMenuMobile}></Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{/*eslint-disable */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a onClick={() => this.handleLogOut()}>{this.props.t(\"MenuDeconnexion\")}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{/*eslint-enable */}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t) : \r\n\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\tMainNavCaf.children.find((o) => o.id === this.state.dataId) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul className=\"main_nav-mobile level-marque\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{MainNavCaf.children\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.find((o) => o.id === this.state.dataId)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.SubMenu.map(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(SubMenuItem, index) =>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSubMenuItem.destination.url !== \"\" && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link field={SubMenuItem.destination.jss} onClick={this.toggleMenuMobile}></Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_panel level-3\">\r\n\t\t\t\t\t\t\t\t\t\t{this.state.dataLevel === 3 && (\r\n\t\t\t\t\t\t\t\t\t\t\t<ul\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"main_nav-mobile level-\" + MainNavCaf.children[0].SubMenu[this.state.marqueIndex < 0 ? iCurrentIndexMenu : this.state.marqueIndex].cSSClass.value\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Link\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield={MainNavCaf.children[0].SubMenu[this.state.marqueIndex < 0 ? iCurrentIndexMenu : this.state.marqueIndex].destination.jss}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={this.toggleMenuMobile}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"LabelAccueilCAF\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{MainNavCaf.children[0].SubMenu[this.state.marqueIndex < 0 ? iCurrentIndexMenu : this.state.marqueIndex].SubMenu.map(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(SubMenuItem, index) =>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSubMenuItem.destination.url !== \"\" && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link field={SubMenuItem.destination.jss} onClick={this.toggleMenuMobile}></Link>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</header>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{this.state.apiDatasUserBadgesNotDisplayed.UserBadges?.map((userBadge, index) => {\r\n\t\t\t\t\tconst badge = this.state.apiDatasUserBadgesNotDisplayed.Badges.find((badge) => badge.Badge_Id === userBadge.UserBadge_Badge_Id);\r\n\t\t\t\t\tconst badgeDataTheme = badges.find((item) => item.type === badge?.Badge_Type)?.theme.find((item) => item.theme === badge?.Badge_Theme);\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<ExpertiseBadgeModal\r\n\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\tonRef={(ref) => (this[\"ExpertiseBadgeModal\" + index] = ref)}\r\n\t\t\t\t\t\t\tbadge={badge}\r\n\t\t\t\t\t\t\tuserBadge={userBadge}\r\n\t\t\t\t\t\t\tbadgeDataTheme={badgeDataTheme}\r\n\t\t\t\t\t\t\tnewBadge={this.state.newBadge}\r\n\t\t\t\t\t\t\tbodyOpenClassName=\"ReactModal__Body--open_blur\"\r\n\t\t\t\t\t\t\thandleClose={this.handleOpenModalBadge}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(MainHeader));\r\n","import React, { Component } from 'react'\r\nimport { withTranslation } from 'react-i18next'; \r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport { isAppMobile } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { getGA4WindowDatas, trackGA4PageView, addGA4SessionData } from '../../utilities/FrontFunctions/AoxTrackingFunctions'\r\n\r\nclass MainHeaderLogin extends Component {\r\n \r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n \r\n\t\tthis.state = {\r\n\t\t\tisAppMobile: isAppMobile()\t\t\t\r\n\t\t}\r\n\t\tthis.bPushTrackPage_Done = false\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tconst { GetBreadCrumb } = this.props.fields.data;\r\n\t\tgetGA4WindowDatas(undefined, undefined, undefined, GetBreadCrumb).then((resultDatas) => { \t\r\n\t\t\twindow.trackDatas = resultDatas;\r\n\t\t\ttrackGA4PageView(window.trackDatas);\r\n\t\t\taddGA4SessionData(resultDatas);\r\n\t\t});\r\n\t}\r\n\trender() {\r\n\r\n if (this.state.isAppMobile)\r\n\t\t{\r\n\t\t\treturn <></>\r\n\t\t}\t\t\r\n\r\n\t\tconst { PageContact } = this.props.fields.data;\r\n\t\t\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<header className=\"main_header-login\">\r\n\t\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t\t<h6 className=\"logo-caf\">\r\n\t\t\t\t\t\t\t<a href=\"/\">\r\n\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_logo-pa.svg\")} alt={this.props.t('AltLogo')}/>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</h6>\r\n\t\t\t\t\t\t<nav className=\"second_nav-caf\">\r\n\t\t\t\t\t\t\t<ul className=\"lvl_01\">\r\n\t\t\t\t\t\t\t\t<li className=\"li_contact\">\r\n\t\t\t\t\t\t\t\t\t{PageContact && \r\n\t\t\t\t\t\t\t\t\t\t<a href={PageContact.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"email\" width=\"21\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t</nav>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</header>\r\n\t\t\t</>\r\n\t\t)\r\n\t\t\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(MainHeaderLogin);","import React from 'react';\r\nimport { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport Helmet from 'react-helmet';\r\n\r\nclass MetaSitecore extends React.Component { \r\n render() {\r\n\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\r\n if (oCurrentItemFields == null)\r\n {\r\n return <></>;\r\n }\r\n \r\n const regex = /(<([^>]+)>)/ig;\r\n\r\n return (\r\n \r\n <React.Fragment>\r\n <script type=\"javascript\" dangerouslySetInnerHTML={{ __html: oCurrentItemFields[\"JavaScript On Page\"].value}}></script>\r\n\r\n <Helmet>\r\n {/* <!-- OneTrust Cookies Consent Notice start for partneracademy.lorealdermatologicalbeauty.fr --> */}\r\n {/* TODO SGU code pour version test */}\r\n <script src=\"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js\" type=\"text/javascript\" charset=\"UTF-8\" data-domain-script=\"f103c721-83c9-4513-a061-fff69cc3cffc\" ></script>\r\n <script type=\"text/javascript\">\r\n {`function OptanonWrapper() { }`}\r\n </script>\r\n {/* <!-- OneTrust Cookies Consent Notice end for partneracademy.lorealdermatologicalbeauty.fr --> */}\r\n\r\n {/*Google Tag Manager - #mantimox-id=9253 */} \r\n <script type=\"text/javascript\">\r\n {`\r\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\r\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\r\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\r\n })(window,document,'script','dataLayer','GTM-K22D6HF'); \r\n `}\r\n </script> \r\n\r\n {/*Global site tag (gtag.js) - Google Analytics\r\n <script src={`https://www.googletagmanager.com/gtag/js?id=${this.props.t('GoogleGTMCode')}`}></script>\r\n <script type=\"text/javascript\">\r\n {`\r\n window.dataLayer = window.dataLayer || [];\r\n function gtag(){dataLayer.push(arguments);}\r\n gtag('js', new Date());\r\n\r\n gtag('config', '${this.props.t('GoogleGTMCode')}');\r\n `}\r\n </script> */}\r\n\r\n {/*Meta*/}\r\n <title>\r\n { (oCurrentItemFields[\"Meta Title\"].value ? oCurrentItemFields[\"Meta Title\"].value.replace(regex, '') : \r\n oCurrentItemFields[\"Page Title\"].value ? oCurrentItemFields[\"Page Title\"].value.replace(regex, '') : \r\n this.props.t('Meta_DefaultTitle').replace(regex, ''))} {this.props.t('Meta_PostTitle')}\r\n </title>\r\n <meta name=\"Meta Description\" content={(oCurrentItemFields[\"Meta Description\"].value ? \r\n oCurrentItemFields[\"Meta Description\"].value : \r\n this.props.t('Meta_DefaultDescription')) } />\r\n {(oCurrentItemFields[\"Meta keywords\"].value) && <meta name=\"keywords\" content={(oCurrentItemFields[\"Meta keywords\"].value)} />}\r\n {(oCurrentItemFields[\"Meta Generator\"].value) && <meta name=\"generator\" content={(oCurrentItemFields[\"Meta Generator\"].value)} />}\r\n {(oCurrentItemFields[\"Meta Author\"].value) && <meta name=\"author\" content={(oCurrentItemFields[\"Meta Author\"].value)} />}\r\n {(oCurrentItemFields[\"Meta Copyright\"].value) && <meta name=\"copyright\" content={(oCurrentItemFields[\"Meta Copyright\"].value)} />}\r\n {(oCurrentItemFields[\"Meta Robots\"].value) && <meta name=\"robots\" content={(oCurrentItemFields[\"Meta Robots\"].value)} />}\r\n {(oCurrentItemFields[\"Meta GoogleBot\"].value) && <meta name=\"GoogleBot\" content={(oCurrentItemFields[\"Meta GoogleBot\"].value)} />}\r\n {(oCurrentItemFields[\"Meta Google\"].value) && <meta name=\"Google\" content={(oCurrentItemFields[\"Meta Google\"].value)} />}\r\n \r\n {/*Facebook*/}\r\n <meta name=\"og:type\" content={(oCurrentItemFields[\"og Type\"].value ? oCurrentItemFields[\"og Type\"].value : this.props.t('Meta_DefaultOgType'))} />\r\n <meta name=\"og:locale\" content={this.props.sitecoreContext.language} />\r\n <meta name=\"og:title\" content={(oCurrentItemFields[\"og Title\"].value ? oCurrentItemFields[\"og Title\"].value :\r\n oCurrentItemFields[\"Meta Title\"].value ? oCurrentItemFields[\"Meta Title\"].value.replace(regex, '') : \r\n oCurrentItemFields[\"Page Title\"].value ? oCurrentItemFields[\"Page Title\"].value.replace(regex, '') : \r\n this.props.t('Meta_DefaultTitle').replace(regex, ''))} />\r\n <meta name=\"og:description\" content={oCurrentItemFields[\"og Description\"].value ? oCurrentItemFields[\"og Description\"].value :\r\n oCurrentItemFields[\"Meta Description\"].value ? \r\n oCurrentItemFields[\"Meta Description\"].value : \r\n this.props.t('Meta_DefaultDescription') } />\r\n \r\n {Object.keys(oCurrentItemFields[\"og Image\"].value).length !== 0 && \r\n <meta name=\"og:image\" content={(oCurrentItemFields[\"og Image\"].value.src)} />}\r\n \r\n {Object.keys(oCurrentItemFields[\"og Image\"].value).length === 0 && Object.keys(oCurrentItemFields[\"Page Image\"].value).length !== 0 &&\r\n <meta name=\"og:image\" content={(oCurrentItemFields[\"Page Image\"].value.src)} />}\r\n \r\n {/*Twitter*/}\r\n <meta name=\"twitter:card\" content={(oCurrentItemFields[\"twitter Card\"].value ? oCurrentItemFields[\"twitter Card\"].value : this.props.t('Meta_DefaultTwitterCard'))} />\r\n <meta name=\"twitter:creator\" content={(oCurrentItemFields[\"twitter Creator\"].value ? oCurrentItemFields[\"twitter Creator\"].value : this.props.t('Meta_DefaultTwitterCreator'))} />\r\n <meta name=\"twitter:title\" content={(oCurrentItemFields[\"twitter Title\"].value ? oCurrentItemFields[\"twitter Title\"].value :\r\n oCurrentItemFields[\"Meta Title\"].value ? oCurrentItemFields[\"Meta Title\"].value.replace(regex, '') : \r\n oCurrentItemFields[\"Page Title\"].value ? oCurrentItemFields[\"Page Title\"].value.replace(regex, '') : \r\n this.props.t('Meta_DefaultTitle').replace(regex, ''))} />\r\n <meta name=\"twitter:description\" content={oCurrentItemFields[\"twitter Description\"].value ? oCurrentItemFields[\"twitter Description\"].value :\r\n oCurrentItemFields[\"Meta Description\"].value ? \r\n oCurrentItemFields[\"Meta Description\"].value : \r\n this.props.t('Meta_DefaultDescription') } />\r\n \r\n {Object.keys(oCurrentItemFields[\"twitter Image\"].value).length !== 0 && \r\n <meta name=\"twitter:image\" content={(oCurrentItemFields[\"twitter Image\"].value.src)} />}\r\n\r\n {Object.keys(oCurrentItemFields[\"twitter Image\"].value).length === 0 && Object.keys(oCurrentItemFields[\"Page Image\"].value).length !== 0 &&\r\n <meta name=\"twitter:image\" content={(oCurrentItemFields[\"Page Image\"].value.src)} />}\r\n \r\n </Helmet>\r\n \r\n </React.Fragment>\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(MetaSitecore)); ","import React, { Component } from 'react'\r\n\r\nimport { throttle, isOneScreenDown, scrollToTop } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nclass ObjBackToTop extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisVisible: isOneScreenDown()\r\n\t\t}\r\n\t\tthis.handleWindowScrollBackToTop = this.handleWindowScrollBackToTop.bind(this)\r\n\t\tthis.throttleWindowScrollBackToTop = throttle(this.handleWindowScrollBackToTop, 200)\r\n\t\tthis.handleBackToTop = this.handleBackToTop.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener('scroll', this.throttleWindowScrollBackToTop)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('scroll', this.throttleWindowScrollBackToTop)\r\n\t}\r\n\thandleWindowScrollBackToTop() {\r\n\t\tthis.setState({\r\n\t\t\tisVisible: isOneScreenDown()\r\n\t\t})\r\n\t}\r\n\thandleBackToTop() {\r\n\t\tscrollToTop(750)\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<button type=\"button\" className={this.state.isVisible ? \"obj_back-to-top visible\" : \"obj_back-to-top\"} onClick={this.handleBackToTop}></button>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ObjBackToTop","import React from 'react';\r\nimport { RichText, withSitecoreContext} from '@sitecore-jss/sitecore-jss-react';\r\n\r\nclass ObjBigTitle extends React.Component {\r\n render() {\t\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n \r\n if (oCurrentItemFields == null)\r\n {\r\n return <></>\r\n }\r\n\r\n\t\treturn (\r\n <>\r\n { this.props && this.props.fields && this.props.fields[\"Push Title\"] ? \r\n <RichText className=\"obj_title-big\" field={this.props.fields[\"Push Title\"]} tag=\"h1\"/>\r\n :\r\n <RichText className=\"obj_title-big\" field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\"/>\r\n }\r\n </>\r\n )\r\n }\r\n}\r\n\r\nexport default withSitecoreContext()(ObjBigTitle);\r\n","import React, { Component } from 'react'\r\nimport { isAppMobile } from '../../utilities/FrontFunctions/AoxFrontFunctions'\r\n\r\nfunction reverseArray(arr) {\r\n\tvar newArray = [];\r\n\tfor (var i = arr.length - 1; i >= 0; i--) {\r\n\t\tnewArray.push(arr[i]);\r\n\t}\r\n\treturn newArray;\r\n}\r\n\r\nclass ObjBreadcrumb extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\t\r\n\t\tthis.state = {\r\n\t\t\tisAppMobile: false,\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.setState({\r\n\t\t\tisAppMobile: isAppMobile()\r\n\t\t});\r\n\t}\r\n\r\n\trender() { \r\n\t\tif (this.state.isAppMobile){\r\n\t\t\treturn <></>\r\n\t\t}\r\n\r\n\t\tvar GetBreadCrumb = null;\r\n\t\tvar iBreadCrumbLenght = 0;\r\n\r\n\t\tif(this.props.fields){\r\n\t\t\tGetBreadCrumb = this.props.fields.data.GetBreadCrumb;\r\n\t\t}\r\n\t\t\r\n\t\tif(GetBreadCrumb && GetBreadCrumb.ancestors){\r\n\t\t\tiBreadCrumbLenght = GetBreadCrumb.ancestors.length;\r\n\t\t}\r\n\t\t//YFL : La fonction reverse() ne marche pas test\r\n\t\tvar oBreadCrumbReverse = reverseArray(GetBreadCrumb.ancestors);\r\n\r\n\t\treturn (\r\n\t\t\t<ul className=\"obj_breadcrumb\">\r\n\t\t\t\t{oBreadCrumbReverse.map((oBreadCrumbItem, index) => (\r\n\t\t\t\t\toBreadCrumbItem.pageTitle.jss?.value &&\r\n\t\t\t\t\t<li key={index}>\r\n\t\t\t\t\t\t{index !== iBreadCrumbLenght-1 ? <>\r\n {(oBreadCrumbItem.template.id !== \"5DD4D46637CF4E2D98DBE55C9FD9AE06\") //thème folder\r\n && (oBreadCrumbItem.template.id !== \"B30999C2C2654BC98B4AEB57A39914D5\") //thème folder av\r\n && (oBreadCrumbItem.template.id !== \"EEA5FA2D04C74F0F93DE8DDB9D551D41\") //segment folder\r\n && <a href={oBreadCrumbItem.url}>\r\n {oBreadCrumbItem.pageTitle.jss.value.replace(/<[^>]*>?/gm, '')}\r\n {/*<RichText field={oBreadCrumbItem.pageTitle.jss}></RichText>*/}\r\n </a>\r\n }\r\n </>\r\n\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t{/*<RichText field={oBreadCrumbItem.pageTitle.jss} tag=\"span\"></RichText>*/}\r\n\t\t\t\t\t\t\t\t{oBreadCrumbItem.pageTitle.jss.value.replace(/<[^>]*>?/gm, '')}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</li>\r\n\t\t\t\t))}\r\n\t\t\t</ul> \r\n\t\t)\r\n\t}\r\n}\r\nexport default ObjBreadcrumb;","import React from 'react';\r\nimport {GetStatusFromScore} from '../../utilities/FrontFunctions/AoxFrontFunctions'\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\n\r\nclass ObjExpertiseBrand extends React.Component {\r\n\trender() {\t\r\n const { pourcentage, levelexpertanciennete } = this.props; \r\n\t\treturn ( \r\n <>\r\n {pourcentage >=0 && \r\n <>\r\n <p className=\"t_percent\">{pourcentage}<span>%</span></p>\r\n <div className={\"obj_star-score var_\" + GetStatusFromScore(Number(pourcentage))}>\r\n <IconSVG icon=\"star\" />\r\n <p className=\"t_year\">{levelexpertanciennete}</p>\r\n <p className=\"t_status\">{GetStatusFromScore(Number(pourcentage))}</p>\r\n </div>\r\n </>\r\n }\r\n {pourcentage === -9999 &&\r\n <p className=\"t_percent\">-</p>\r\n }\r\n </>\r\n )\r\n }\r\n}\r\n\r\nexport default ObjExpertiseBrand;\r\n\r\n","import React, { Component } from 'react'\r\nimport LazyLoad from 'react-lazyload'\r\nimport { withSitecoreContext, Image, Text, Link, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { ConditionalWrapper } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nclass ObjPushCustomThumb extends Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\tthis.props.fields \r\n\t\t\t? <article className={`obj_push-custom var_thumb${\r\n\t\t\t\tthis.props.fields[\"Push width\"] ? ' var_' + this.props.fields[\"Push width\"].value : ''}${\r\n\t\t\t\tthis.props.fields[\"Push Align\"] ? ' var_' + this.props.fields[\"Push Align\"].value : ''}${\r\n\t\t\t\t(this.props.fields[\"Push url\"] && this.props.fields[\"Push url\"].value && this.props.fields[\"Push url\"].value.href !==\"\") ? '' : ' is-not-available'}${\r\n\t\t\t\t(this.props.fields[\"Push Custom\"] && this.props.fields[\"Push Custom\"].value) ? ' var_' + this.props.fields[\"Push Custom\"].value : ''}`}>\r\n\t\t\t\t{\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t<ConditionalWrapper \r\n\t\t\t\t\t\t\t\tcondition={this.props.fields[\"Push url\"] && this.props.fields[\"Push url\"].value && this.props.fields[\"Push url\"].value.href !==\"\"}\r\n\t\t\t\t\t\t\t\twrapper={children => \r\n\t\t\t\t\t\t\t\t<Link field={this.props.fields[\"Push url\"].value}>{children}</Link>}>\r\n\t\t\t\t\t\t\t\t<LazyLoad>\r\n\t\t\t\t\t\t\t\t\t<Image className=\"fade-in\" media={this.props.fields[\"Image\"].value}/>\r\n\t\t\t\t\t\t\t\t</LazyLoad>\r\n\t\t\t\t\t\t\t</ConditionalWrapper>\r\n\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<RichText field={this.props.fields[\"Push title\"]} tag=\"h2\"/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t{this.props.fields[\"Push url\"] && this.props.fields[\"Push url\"].value && this.props.fields[\"Push url\"].value.href !==\"\" \r\n\t\t\t\t\t\t\t? <Link className=\"obj_cta\" field={this.props.fields[\"Push url\"].value}><Text className=\"obj_cta\" field={this.props.fields[\"Push CTA\"]} tag=\"\"/></Link> \r\n\t\t\t\t\t\t\t: <p>Prochainement disponible</p>}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</>\r\n\t\t\t\t}\r\n\t\t\t</article>\r\n\t\t\t: \"ObjPushCustomThumb : \" + this.props.t('NoContentToMap')\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjPushCustomThumb));","import React from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nclass ObjTitle extends React.Component {\r\n\trender() {\t\r\n\t\treturn (\r\n <RichText className=\"obj_title\" field={this.props.fields[\"Push Title\"]} tag=\"h2\"/>\r\n )\r\n }\r\n}\r\n\r\nexport default ObjTitle;\r\n","import React, { Component } from 'react' \r\nimport { withTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Text, RichText } from '@sitecore-jss/sitecore-jss-react'; \r\nimport { GetLogoList } from '../../utilities/FrontFunctions/AoxFrontFunctions'\r\n\r\nclass ExpiredConfirmationLink extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = { \r\n\t\t\tlogoList: GetLogoList()\r\n\t\t}\r\n\t}\r\n \r\n componentDidMount() { \r\n window.scrollTo(0,0) \r\n\t} \r\n\trender() {\r\n const { PageContact } = this.props.fields.data;\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n \r\n return (\r\n \r\n <section className=\"section_login\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n <header>\t\t\r\n { oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\" /> }\r\n </header>\r\n\r\n <div className=\"ctn_login\">\r\n <div className=\"ctn_col col_100\">\r\n { oCurrentItemFields && <Text field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h2\" /> }\r\n\r\n <div className=\"obj_form\"> \r\n { oCurrentItemFields && <RichText className=\"t_mention mb_30\" tag=\"p\" field={oCurrentItemFields[\"Page Text\"]}></RichText> }\r\n <div className=\"ctn_cta\">\r\n <a className=\"obj_cta\" href={PageContact && PageContact.url}>{this.props.t('ExpiredConfirmationLink_ContactUs')}</a>\r\n </div>\t \r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ul className=\"ctn_logos\">\r\n {this.state.logoList.map((logoItem, index) => (\r\n <li key={index} className={\"var_\" + logoItem.id}>\r\n <img src={logoItem.image} alt={logoItem.label}/>\r\n </li>\t\r\n ))}\r\n </ul>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ExpiredConfirmationLink));","import React, { Component } from \"react\";\r\nimport { Formik, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { ReCaptcha } from \"react-recaptcha-v3\";\r\nimport config from \"../../temp/config\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { withSitecoreContext } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport queryString from 'query-string';\r\n\r\nimport PasswordToggle from \"../../utilities/FrontFunctions/FormElements/PasswordToggle\";\r\nimport CustomSelect from \"../../utilities/FrontFunctions/FormElements/CustomSelect\";\r\nimport SingleFileUpload from \"../../utilities/FrontFunctions/FormElements/SingleFileUpload\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\nimport { getApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\n\r\nconst axios = require(\"axios\");\r\n\r\nclass Inscription extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tinitPdvOK: false,\r\n\t\t\tinitDataOK: false,\r\n\t\t\tserverErrorRegistration: false,\r\n\t\t\tformSubmitted: false,\r\n\t\t\tUrlRegister_Step2: `${config.sitecoreApiHost}/apiaox/Call/RegisterForm_Step2`,\r\n\t\t\tapiDatas: [],\r\n salePoint:null,\r\n paramMail:null,\r\n\t\t};\r\n\r\n }\r\n\r\n\tcomponentDidMount() {\r\n var oParams = queryString.parse(window.location.search);\r\n\t\tif(oParams.code_client !== undefined){\r\n getApiDatas(`/apiaox/Call/CheckSalePointFromCode?salepointCode=`+ oParams.code_client).then((resCheckSalePointFromCode)=>{\r\n this.setState({\r\n salePoint: resCheckSalePointFromCode?.SalePoint,\r\n initPdvOK: !!resCheckSalePointFromCode?.SalePoint,\r\n });\r\n })\r\n }\r\n\t\tgetApiDatas(`/apiaox/Call/GetDataPageRegister`).then((apiDatas) => {\r\n\t\t\tthis.setState({ \r\n apiDatas: apiDatas,\r\n initDataOK:!!apiDatas?.Postes\r\n });\r\n\t\t});\r\n }\r\n\r\n\r\n\trender() {\r\n\t\tconst { PageContact, PageLogin } = this.props.fields.data;\r\n\t\tconst apiDatas = this.state.apiDatas;\r\n\t\tif (this.state.salePoint === undefined) {\r\n\t\t\treturn <Redirect to=\"/\" />;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_form\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<div className=\"ctn_top\">\r\n\t\t\t\t\t\t<h1>{this.props.t(\"Register_title\")}</h1>\r\n\t\t\t\t\t\t{!this.state.formSubmitted && this.state.initPdvOK && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t<h2>{this.props.t(\"Register_subTitle\")}</h2>\r\n\t\t\t\t\t\t\t\t<h3>\r\n\t\t\t\t\t\t\t\t\t{this.state.salePoint?.SalePointLabel} - {this.state.salePoint?.SalePointCode}\r\n\t\t\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t\t\t<p>\r\n\t\t\t\t\t\t\t\t\t{this.props.t(\"Register_description\")} <br />\r\n\t\t\t\t\t\t\t\t\t{this.props.t(\"Register_subDescription\")}\r\n\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t{/* TODO de même sur les 2 autres pages */}\r\n\t\t\t\t\t{!this.state.initPdvOK || !this.state.initDataOK ? (\r\n\t\t\t\t\t\t<div className=\"ctn_form\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_col col_left\">\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_contact\">\r\n\t\t\t\t\t\t\t\t\t<h3>{this.props.t(\"Register_contactQuestion\")}</h3>\r\n\t\t\t\t\t\t\t\t\t<h4>{this.props.t(\"Register_contactByMail\")}</h4>\r\n\t\t\t\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta var_picto var_email\" href={PageContact && PageContact.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"email\" width=\"21\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Register_contactSubmitText\")}\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t<h4>{this.props.t(\"Register_contactByPhone\")}</h4>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_tel\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Register_contactPhone\") }}></p>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_mention\">{this.props.t(\"Register_contactByPhonePrice\")}</p>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div className=\"ctn_col col_right\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t\t{/* TODO SGU Msg */}\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_30 fade-in\">Error init Form </p>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t) : this.state.formSubmitted && this.state.serverErrorRegistration === false ? (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t<div className=\"ctn_form var_confirm\">\r\n\t\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory mb_30\">{this.props.t(\"Register_Insertion\")}</p>\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta\" href={PageLogin.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Register_LogIn\")}\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\tfileupload: null,\r\n\r\n\t\t\t\t\t\t\t\tcivilite: \"\",\r\n\t\t\t\t\t\t\t\tfirstname: \"\",\r\n\t\t\t\t\t\t\t\tlastname: \"\",\r\n\t\t\t\t\t\t\t\temail: queryString.parse(window.location.search)?.Mail || \"\",\r\n\t\t\t\t\t\t\t\temailconfirm: \"\",\r\n\t\t\t\t\t\t\t\tpassword: \"\",\r\n\t\t\t\t\t\t\t\tpasswordconfirm: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\taddress: \"\",\r\n\t\t\t\t\t\t\t\taddress_bis: \"\",\r\n\t\t\t\t\t\t\t\tpostal_code: \"\",\r\n\t\t\t\t\t\t\t\tcity: \"\",\r\n\r\n\t\t\t\t\t\t\t\tposte: \"\",\r\n\t\t\t\t\t\t\t\tacceptNwl: false,\r\n\t\t\t\t\t\t\t\tacceptNotifications: false,\r\n\r\n\t\t\t\t\t\t\t\tsecuriteSociale: \"\",\r\n\t\t\t\t\t\t\t\tnoSS: false,\r\n\r\n\t\t\t\t\t\t\t\trecaptcha: \"\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tvalidationSchema={Yup.object().shape({\r\n\t\t\t\t\t\t\t\tcivilite: Yup.string().required(),\r\n\t\t\t\t\t\t\t\tfirstname: Yup.string().required(),\r\n\t\t\t\t\t\t\t\tlastname: Yup.string().required(),\r\n\t\t\t\t\t\t\t\temail: Yup.string().email().required().matches(/^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/,this.props.t(\"DefaultErrorMessage\")),\r\n\t\t\t\t\t\t\t\temailconfirm: Yup.string()\r\n\t\t\t\t\t\t\t\t\t.test(\"emails-match\", \"E-mails must match...\", function (value) {\r\n\t\t\t\t\t\t\t\t\t\treturn this.parent.email === value;\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.required(),\r\n\t\t\t\t\t\t\t\tpassword: Yup.string()\r\n\t\t\t\t\t\t\t\t\t.matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*)(+=._-])[A-Za-z\\d!@#$%^&*)(+=._-]{8,30}$/, this.props.t(\"Register_passwordDetails\"))\r\n\t\t\t\t\t\t\t\t\t.required(),\r\n\t\t\t\t\t\t\t\tpasswordconfirm: Yup.string()\r\n\t\t\t\t\t\t\t\t\t.test(\"passwords-match\", this.props.t(\"Register_PasswordsMustMatch\"), function (value) {\r\n\t\t\t\t\t\t\t\t\t\treturn this.parent.password === value;\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.required(),\r\n phone: Yup.string().required(),\r\n\t\t\t\t\t\t\t\tposte: Yup.string().required(),\r\n\t\t\t\t\t\t\t\tsecuriteSociale: Yup.string().matches(\r\n\t\t\t\t\t\t\t\t\t/^([1-37-8])([0-9]{2})(0[0-9]|[2-35-9][0-9]|[14][0-2])((0[1-9]|[1-8][0-9]|9[0-69]|2[abAB])(00[1-9]|0[1-9][0-9]|[1-8][0-9]{2}|9[0-8][0-9]|990)|(9[78][0-9])(0[1-9]|[1-8][0-9]|90))(00[1-9]|0[1-9][0-9]|[1-9][0-9]{2})(0[1-9]|[1-8][0-9]|9[0-7])$/,\r\n\t\t\t\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\trecaptcha: Yup.string().required(),\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\tonSubmit={(values, actions) => {\r\n\t\t\t\t\t\t\t\tdocument.body.classList.add(\"is-loading\");\r\n\r\n\t\t\t\t\t\t\t\tvar formData = new FormData();\r\n\t\t\t\t\t\t\t\tObject.entries(values).forEach((elt) => formData.append(elt[0], elt[1]));\r\n\t\t\t\t\t\t\t\tformData.append(\"ID_SalePointItem\", this.state.salePoint?.SalePointCode);\r\n\r\n\t\t\t\t\t\t\t\taxios({\r\n\t\t\t\t\t\t\t\t\tmethod: \"POST\",\r\n\t\t\t\t\t\t\t\t\turl: this.state.UrlRegister_Step2,\r\n\t\t\t\t\t\t\t\t\tdata: formData,\r\n\t\t\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t\t\t\"Content-Type\": \"multipart/form-data\",\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t})\r\n .then((res) => {\r\n this.setState({\r\n formSubmitted: true,\r\n serverErrorRegistration: !res.data.IsValid,\r\n serverErrorMessageRegistration: res.data.ExceptionMessage,\r\n });\r\n document.body.classList.remove(\"is-loading\");\r\n\r\n if (this.recaptchaInscription) {\r\n this.recaptchaInscription.execute();\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(\"err: \", err);\r\n this.setState({\r\n serverErrorRegistration: true,\r\n serverErrorMessageRegistration: this.props.t(\"DefaultServerError\"),\r\n });\r\n\r\n if (this.recaptchaInscription) {\r\n this.recaptchaInscription.execute();\r\n }\r\n\r\n document.body.classList.remove(\"is-loading\");\r\n });\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n <div className=\"ctn_form\">\r\n <div className=\"ctn_col col_left\">\r\n <div className=\"obj_form\">\r\n <div className=\"ctn_file-upload mb_30 var_avatar\">\r\n <SingleFileUpload\r\n onRef={(ref) => (this.SingleFileUploadAvatar = ref)}\r\n setFieldValue={setFieldValue}\r\n errors={errors}\r\n touched={touched}\r\n fieldName={\"fileupload\"}\r\n labelText={this.props.t(\"Register_uploadAdd\")}\r\n ctaCancelText={this.props.t(\"Register_uploadCancel\")}\r\n formatErrorText={this.props.t(\"Register_uploadFormat\")}\r\n sizeErrorText={this.props.t(\"Register_uploadSize\")}\r\n loadingErrorText={this.props.t(\"Register_uploadError\")}\r\n thumbSize={90}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"ctn_contact\">\r\n <h3>{this.props.t(\"Register_contactQuestion\")}</h3>\r\n <h4>{this.props.t(\"Register_contactByMail\")}</h4>\r\n <p className=\"ctn_cta\">\r\n <a className=\"obj_cta var_picto var_email\" href={PageContact && PageContact.url}>\r\n <IconSVG icon=\"email\" width=\"21\" height=\"17\" />\r\n {this.props.t(\"Register_contactSubmitText\")}\r\n </a>\r\n </p>\r\n <h4>{this.props.t(\"Register_contactByPhone\")}</h4>\r\n <p className=\"t_tel\" dangerouslySetInnerHTML={{ __html: this.props.t(\"Register_contactPhone\") }}></p>\r\n <p className=\"t_mention\">{this.props.t(\"Register_contactByPhonePrice\")}</p>\r\n </div>\r\n </div>\r\n <div className=\"ctn_col col_right\">\r\n <h2>{this.props.t(\"Register_formTitle\")}</h2>\r\n <div className=\"obj_form\">\r\n <div className=\"mb_30\">\r\n <CustomSelect\r\n fieldName={\"civilite\"}\r\n placeholder={this.props.t(\"Register_genderPlaceholder\")}\r\n options={[\r\n { value: \"0\", label: this.props.t(\"Register_genderFemale\") },\r\n { value: \"1\", label: this.props.t(\"Register_genderMale\") },\r\n { value: \"2\", label: this.props.t(\"Register_genderNotDefined\") },\r\n ]}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n values={values}\r\n />\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <Field\r\n className={errors.firstname && touched.firstname && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"firstname\"\r\n placeholder={this.props.t(\"Register_firstnamePlaceholder\")}\r\n />\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <Field\r\n className={errors.lastname && touched.lastname && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"lastname\"\r\n placeholder={this.props.t(\"Register_lastnamePlaceholder\")}\r\n />\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field\r\n className={errors.email && touched.email && \"error\"}\r\n as=\"input\"\r\n type=\"email\"\r\n name=\"email\"\r\n placeholder={this.props.t(\"Register_emailPlaceholder\")}\r\n />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_emailDetails\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <Field\r\n className={errors.emailconfirm && touched.emailconfirm && \"error\"}\r\n as=\"input\"\r\n type=\"email\"\r\n name=\"emailconfirm\"\r\n placeholder={this.props.t(\"Register_emailConfirm\")}\r\n />\r\n </div>\r\n {errors.emailconfirm && touched.emailconfirm && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"Register_invalidEmail\")}</p>}\r\n <div className=\"ctn_input mb_30 var_password\">\r\n <PasswordToggle\r\n setFieldValue={setFieldValue}\r\n handleBlur={handleBlur}\r\n errors={errors}\r\n touched={touched}\r\n fieldName=\"password\"\r\n eyeMode={true}\r\n placeholder={this.props.t(\"Register_passwordPlaceholder\")}\r\n strengthLevel={true}\r\n />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_passwordDetails\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <PasswordToggle\r\n setFieldValue={setFieldValue}\r\n handleBlur={handleBlur}\r\n errors={errors}\r\n touched={touched}\r\n fieldName=\"passwordconfirm\"\r\n eyeMode={true}\r\n placeholder={this.props.t(\"Register_passwordConfirm\")}\r\n />\r\n </div>\r\n {errors.passwordconfirm && touched.passwordconfirm && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"Register_passwordError\")}</p>}\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" className={errors.phone && touched.phone && \"error\"} as=\"input\" type=\"text\" name=\"phone\" placeholder={this.props.t(\"Register_PhonePlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_PhoneDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"address\" placeholder={this.props.t(\"Register_AdressPlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_AdressDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"address_bis\" placeholder={this.props.t(\"Register_Adress2Placeholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_Adress2Detail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"postal_code\" placeholder={this.props.t(\"Register_CodePostalPlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_CodePostalDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field autoComplete=\"off\" as=\"input\" type=\"text\" name=\"city\" placeholder={this.props.t(\"Register_CityPlaceholder\")} />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\">\r\n <span>{this.props.t(\"Register_CityDetail\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <br />\r\n\r\n <h2>{this.props.t(\"Register_InformationsProfessionnelles\")}</h2>\r\n <div className=\"obj_form\">\r\n {apiDatas.Postes && (\r\n <div className=\"mb_30\">\r\n <CustomSelect\r\n fieldName={\"poste\"}\r\n placeholder={this.props.t(\"Register_postePlaceholder\")}\r\n options={apiDatas.Postes.map((poste) => ({\r\n value: poste.FrontOfficeUserPoste_Id,\r\n label: poste.FrontOfficeUserPoste_Name,\r\n }))}\r\n setFieldValue={setFieldValue}\r\n setFieldTouched={setFieldTouched}\r\n errors={errors}\r\n touched={touched}\r\n />\r\n </div>\r\n )}\r\n\r\n <div className=\"ctn_checkbox_background mb_30\">\r\n <p className=\"t_title\">{this.props.t(\"Register_AcceptNewsletter\")}</p>\r\n <div className=\"ctn_line\">\r\n <Field type=\"checkbox\" id=\"acceptNwl\" name=\"acceptNwl\" className=\"switch_checkbox\" />\r\n <label className=\"switch_checkbox_label\" htmlFor=\"acceptNwl\">\r\n <span></span> {this.props.t(\"Register_acceptNwl\")}\r\n </label>\r\n </div>\r\n <p className=\"t_desc\">{this.props.t(\"Register_undoConsent\")}</p>\r\n </div>\r\n </div>\r\n\r\n <br />\r\n \r\n {this.state.salePoint?.SalePointIsChallenge && <>\r\n <h2>{this.props.t(\"Register_Challenges\")}</h2>\r\n <div className=\"obj_form\">\r\n <p className=\"t_mention mb_30\">{this.props.t(\"Register_NeedSS\")}</p>\r\n\r\n <div className=\"ctn_input mb_30 var_info\">\r\n <Field\r\n className={errors.securiteSociale && touched.securiteSociale && \"error\"}\r\n as=\"input\"\r\n type=\"text\"\r\n name=\"securiteSociale\"\r\n placeholder={this.props.t(\"Register_SecuriteSociale\")}\r\n />\r\n </div>\r\n {errors.securiteSociale && touched.securiteSociale && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"Register_SecuriteSocialeInvalide\")}</p>}\r\n <div className=\"ctn_checkbox mb_30\">\r\n <Field type=\"checkbox\" id=\"noSS\" name=\"noSS\" />\r\n <label className=\"\" htmlFor=\"noSS\">\r\n {this.props.t(\"Register_NoSS\")}\r\n </label>\r\n </div>\r\n </div>\r\n </>}\r\n\r\n <div className=\"obj_form\">\r\n <p\r\n className=\"t_mention mb_30\"\r\n dangerouslySetInnerHTML={{\r\n __html: this.props.t(\"Register_CGU\"),\r\n }}\r\n ></p>\r\n\r\n <p className=\"t_mandatory mb_30\">{this.props.t(\"Register_mandatory\")}</p>\r\n\r\n <ReCaptcha\r\n ref={(ref) => (this.recaptchaInscription = ref)}\r\n sitekey={this.props.t(\"recaptcha_sitekey\")}\r\n action=\"contact\"\r\n verifyCallback={(recaptchaToken) => {\r\n setFieldValue(\"recaptcha\", recaptchaToken);\r\n }}\r\n />\r\n\r\n {this.state.serverErrorRegistration && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorMessageRegistration}</p>}\r\n { ((errors.civilite && touched.civilite) ||\r\n (errors.firstname && touched.firstname) ||\r\n (errors.lastname && touched.lastname) ||\r\n (errors.email && touched.email) ||\r\n (errors.emailconfirm && touched.emailconfirm) ||\r\n (errors.password && touched.password) ||\r\n (errors.passwordconfirm && touched.passwordconfirm) ||\r\n (errors.poste && touched.poste) ||\r\n errors.recaptcha) && <p className=\"t_error mb_30 fade-in\">{this.props.t(\"DefaultErrorMessage\")}</p>\r\n }\r\n\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"submit\">\r\n {this.props.t(\"Register_submit\")}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Formik>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(Inscription));\r\n","import React, { Component } from 'react'\r\nimport Modal from 'react-modal' \r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass LoginCodeModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<p className=\"t_title\">{this.props.modalText}</p>\r\n\t\t\t\t\t\t<img src={require(\"../../assets/images/v_code-client.jpg\")} alt={this.props.modalText}/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default LoginCodeModal","import React from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { withSitecoreContext, RichText } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport queryString from \"query-string\";\r\nimport config from \"../../temp/config\";\r\nimport { Formik, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { ReCaptcha, loadReCaptcha } from \"react-recaptcha-v3\";\r\n\r\nimport PasswordToggle from \"../../utilities/FrontFunctions/FormElements/PasswordToggle\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\nimport { GetLogoList } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\nimport LoginCodeModal from \"../Modal/LoginCodeModal\";\r\nimport DefaultModal from '../Modal/DefaultModal'\r\nimport { postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { getGA4WindowDatas, trackGA4PageView, trackGA4Event, addGA4SessionData } from \"../../utilities/FrontFunctions/AoxTrackingFunctions\";\r\n\r\nclass Login extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tUrlRegister_Step1: `${config.sitecoreApiHost}/apiaox/Call/RegisterForm_Step1`,\r\n\t\t\tencValueParam: \"\",\r\n\t\t\tjwtInfos: null, // contient notamment le mail et le GoTo du jwt\r\n\t\t\tserversuccessConnection: false,\r\n\t\t\tserverRedirect: \"\",\r\n\t\t\tserverErrorConnection: false,\r\n\t\t\tserverErrorConnectionLabel: \"\",\r\n\t\t\tserversuccessRegistration: false,\r\n\t\t\tserverErrorRegistration: false,\r\n\t\t\tserverErrorMessageRegistration: \"\",\r\n\t\t\tlogoList: GetLogoList(),\r\n\t\t\tisRecaptchaLoaded: false,\r\n\t\t\terrorMessage: \"\",\r\n\t\t};\r\n\t\tthis.bPushTrackPage_Done = false;\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tdocument.body.classList.add('is-loading');\r\n\t\tloadReCaptcha(this.props.t(\"recaptcha_sitekey\"));\r\n\t\t\r\n\t\t// Extraction du token de l'URL\r\n\t\tconst oParam = queryString.parse(window.location.search);\r\n\t\tconst encToken = oParam.qual_token;\r\n\t\tif (encToken) {\r\n\t\t\ttry {\r\n\t\t\t\t// Appeler automatiquement l'API de connexion avec ces informations\r\n\t\t\t\tthis.loginAutomatically(encToken);\r\n\r\n\t\t\t} catch (err) {\r\n\t\t\t console.log('Erreur lors du décodage du token JWT:', err);\r\n\t\t\t document.body.classList.remove(\"is-loading\");\r\n\t\t\t this.setState({\r\n\t\t\t\terrorMessage: \"Erreur lors du traitement du token.\",\r\n\t\t\t });\r\n\t\t\t}\r\n\t\t } \r\n\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\r\n\t\t//page sans header mais avec tracking => init nécessaire de window.trackDatas et appel de trackGA4PageView\r\n\t\tgetGA4WindowDatas(undefined, undefined, undefined, undefined).then((resultDatas) => {\r\n\t\t\tif (resultDatas) {\r\n\t\t\t\tresultDatas.pageCategory = \"authentication\";\r\n\t\t\t\tresultDatas.category = \"identification\";\r\n\t\t\t\tresultDatas.breadcrumb = \"login\";\r\n\t\t\t\tresultDatas.screen_name = \"login\";\r\n\t\t\t\twindow.trackDatas = resultDatas;\r\n\t\t\t\taddGA4SessionData(resultDatas);\r\n\t\t\t\t//console.log(\"GA4Window before [done:\" + this.bPushTrackPage_Done + \"]\");\r\n\t\t\t\tif (!this.bPushTrackPage_Done) {\r\n\t\t\t\t\ttrackGA4PageView(window.trackDatas).then((resultTracked) => {\r\n\t\t\t\t\t\tthis.bPushTrackPage_Done = resultTracked;\r\n\t\t\t\t\t\t//console.log(\"GA4Window after [done:\" + this.bPushTrackPage_Done + \"][result:\" + resultTracked + \"]\");\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.timerCtrlRecaptcha = setTimeout(() => this.checkRecaptcha(), 15000);\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tclearTimeout(this.timerCtrlRecaptcha);\r\n\t}\r\n\r\n\tGetJwtUrlWithEmail = (jwt, email) =>{\r\n\t\tif ((email === jwt?.email) && jwt?.url){\r\n\t\t\treturn jwt.url\r\n\t\t}\r\n\t\telse{\r\n\t\t\treturn null\r\n\t\t}\r\n\t }\r\n\t\r\n\t// Fonction pour effectuer la connexion automatiquement\r\n\tloginAutomatically = (jwt) => {\r\n\t\t// Appel à l'API avec l'email et un captcha fictif (peut-être généré ou vide si ce n'est pas nécessaire)\r\n\t\tpostApiDatas(`/apiaox/Call/GetInfosLoginJwt`, {\r\n\t\t\tjwt:jwt,\r\n\t\t}).then((res) => {\r\n\t\t\tif (res.IsValid) {\r\n\t\t\t\t// Connexion réussie, redirection vers l'URL dans le token\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tjwtInfos: res.Value,\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\terrorMessage: res.Message || \"Une erreur est survenue lors de la connexion.\",\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\t\r\n\t\t}).catch((error) => {\r\n\t\t this.setState({\r\n\t\t\terrorMessage: \"Erreur de connexion, veuillez réessayer plus tard.\",\r\n\t\t });\r\n\t\t document.body.classList.remove(\"is-loading\");\r\n\t\t});\r\n\t };\r\n\r\n\r\n\tcheckRecaptcha = () => {\r\n\t\tif (!this.state.isRecaptchaLoaded && document.body.classList.contains(\"is-loading\")) {\r\n\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\tthis.setState({\r\n\t\t\t\t...this.state,\r\n\t\t\t\terrorMessage: 'Un problème de réseau a été détecté',\r\n\t\t\t})\r\n\t\t}\r\n\t};\r\n\r\n\tonSubmit = (values, actions) => {\r\n\t\t//console.log('onSubmit');\r\n\t\t//console.log(values);\r\n\t\t//console.log(actions);\r\n\t\tdocument.body.classList.add(\"is-loading\");\r\n\t\tvar oParam = queryString.parse(window.location.search);\r\n\r\n\t\tpostApiDatas(`/apiaox/Call/Login`, {\r\n\t\t\temail: values.email,\r\n\t\t\tpassword: values.password,\r\n\t\t\trecaptcha: values.recaptcha,\r\n\t\t\tEncValue: oParam.encvalue,\r\n\t\t}).then((res) => {\r\n\t\t\tconsole.log(res);\r\n\t\t\tthis.setState({\r\n\t\t\t\tserverErrorConnection: !res.IsValid,\r\n\t\t\t\tserverErrorConnectionLabel: res.Message,\r\n\t\t\t});\r\n\r\n\t\t\tif(res.IsValid){\r\n\t\t\t\tlet JwtUrl = this.GetJwtUrlWithEmail(this.state.jwtInfos, values.email)\r\n\t\t\t\ttrackGA4Event(window.trackDatas, \"login\", \"log in\", \"regular\", \"valider\");\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tserversuccessConnection: true,\r\n\t\t\t\t\tserverRedirect: res.IsAuthenticated && JwtUrl ? JwtUrl : res.GoTo, // Authentificated pour les comptes non activés\r\n\t\t\t\t});\r\n\t\t\t} else if (res.GoTo === \"ErrorOldUser\") {\r\n\t\t\t\tthis.ModalOldUser.openModal();\r\n\t\t\t} else {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tserversuccessConnection: false,\r\n\t\t\t\t\tserverRedirect: \"\",\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (this.recaptchaConnection) {\r\n\t\t\t\tthis.recaptchaConnection.execute();\r\n\t\t\t}\r\n\r\n\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t});\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\t\tconst { PageContact, PageCAF, PageInscription, PageRequestPassword } = this.props.fields.data;\r\n\r\n\t\tif (this.state.serversuccessConnection) {\r\n\t\t\tif (this.state.serverRedirect === \"\") {\r\n\t\t\t\treturn <Redirect to={PageCAF != null && PageCAF.parameterValue.value} />;\r\n\t\t\t} else {\r\n\t\t\t\tif (this.state.serverRedirect.startsWith(\"/formationcaf\")) {\r\n\t\t\t\t\twindow.location.href = this.state.serverRedirect;\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn <Redirect to={this.state.serverRedirect} />;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.state.serversuccessRegister) {\r\n\t\t\treturn <Redirect to={PageCAF != null && PageCAF.url} />;\r\n\t\t}\r\n\r\n\t\tif (this.state.serversuccessRegistration) {\r\n\t\t\treturn <Redirect to={(PageInscription != null && this.state.code_client) && `${PageInscription.url}?code_client=${this.state.code_client}`} />;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_login\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\t\t\t\t\t<header>\r\n\t\t\t\t\t\t<h6 className=\"logo-caf\">\r\n\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_logo-pa.svg\")} alt={this.props.t(\"AltLogo\")} />\r\n\t\t\t\t\t\t</h6>\r\n\t\t\t\t\t\t{oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\" />}\r\n\t\t\t\t\t</header>\r\n\r\n\t\t\t\t\t<div className=\"ctn_login\">\r\n\t\t\t\t\t\t<div className=\"ctn_col col_left\">\r\n\t\t\t\t\t\t\t<h2>{this.props.t(\"Connexion_Title\")}</h2>\r\n\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n {/* TODO SGU : validateOnChange false sur autres forms ? */}\r\n\t\t\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\t\t\tenableReinitialize={true}\r\n\t\t\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\t\t\temail: this.state.jwtInfos?.email || \"\", // Utilise l'email du token\r\n\t\t\t\t\t\t\t\t\t\tpassword: \"\",\r\n\t\t\t\t\t\t\t\t\t\trecaptcha: \"\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalidationSchema={Yup.object().shape({\r\n\t\t\t\t\t\t\t\t\t\temail: Yup.string().email().required(),\r\n\t\t\t\t\t\t\t\t\t\tpassword: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t\trecaptcha: Yup.string().required(),\r\n\t\t\t\t\t\t\t\t\t})}\r\n validateOnChange={false} \r\n validateOnBlur={false}\r\n\t\t\t\t\t\t\t\t\tonSubmit={this.onSubmit}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{({ handleSubmit, handleBlur, setFieldValue, errors, touched }) => (\r\n\t\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit} name=\"LoginForm\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={errors.email && \"error\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"email\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Connexion_emailPlaceholder\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_15\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<PasswordToggle\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleBlur={handleBlur}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName=\"password\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\teyeMode={true}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Connexion_passwordPlaceholder\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory mb_30\">{this.props.t(\"Connexion_mandatoryText\")}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t<ReCaptcha\r\n\t\t\t\t\t\t\t\t\t\t\t\tref={(ref) => (this.recaptchaConnection = ref)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsitekey={this.props.t(\"recaptcha_sitekey\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\taction=\"login\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tverifyCallback={(recaptchaToken) => {\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t//console.log('recaptcha loaded');\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading');\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (recaptchaToken.length > 0) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...this.state, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisRecaptchaLoaded: true, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terrorMessage: ''\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue(\"recaptcha\", recaptchaToken, false);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t{(errors.email || errors.password) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_20 fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Connexion_errorMessage\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{console.log(errors)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{(errors.recaptcha) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_20 fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tLe recaptcha n'a pas été initialisé correctement\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{console.log('recapcha', errors)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{(this.state.errorMessage) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_20 fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.errorMessage}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t{this.state.serverErrorConnection && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_20 fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.serverErrorConnectionLabel !== \"\" ? this.state.serverErrorConnectionLabel : this.props.t(\"Connexion_Erreur\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta mb_20\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button name=\"submit_loginform\" className=\"obj_cta\" type=\"submit\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Connexion_submitText\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t{PageRequestPassword && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta-txt\" href={PageRequestPassword.url}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Connexion_forgotPasswordText\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Formik>\r\n\r\n\t\t\t\t\t\t\t\t<DefaultModal\r\n\t\t\t\t\t\t\t\t\tonRef={(ref) => (this.ModalOldUser = ref)}\r\n\t\t\t\t\t\t\t\t\thtmlContent={\r\n\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_main\">Vous êtes un.e utilisateur.trice des anciennes plateformes challenge et/ou inscription formation, veuillez renouveler votre mot de passe</p>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"button\" onClick={() => (window.location.href = PageRequestPassword.url)}>\r\n renouveler\r\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_col col_right\">\r\n\t\t\t\t\t\t\t<h2>{this.props.t(\"Inscription_title\")}</h2>\r\n\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\t\t\tcode_client: \"\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalidationSchema={Yup.object().shape({\r\n\t\t\t\t\t\t\t\t\t\tcode_client: Yup.number().required(),\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\tonSubmit={(values, actions) => {\r\n\t\t\t\t\t\t\t\t\t\tdocument.body.classList.add(\"is-loading\");\r\n\r\n\t\t\t\t\t\t\t\t\t\tfetch(this.state.UrlRegister_Step1, {\r\n\t\t\t\t\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t\t\t\t\tAccept: \"application/json\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\",\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tmethod: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\tbody: queryString.stringify({\r\n\t\t\t\t\t\t\t\t\t\t\t\tcode_client: values.code_client,\r\n\t\t\t\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t.then((res) => res.json())\r\n\t\t\t\t\t\t\t\t\t\t\t.then((res) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (res.IsValid) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrackGA4Event(window.trackDatas, \"account_registration\", \"register\", \"account::signup::regular\", \"valider\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tserversuccessRegistration: res.IsValid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tserverErrorRegistration: !res.IsValid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tserverErrorMessageRegistration: res.ExceptionMessage,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcode_client: values?.code_client\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t.catch((err) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tserverErrorRegistration: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tserverErrorMessageRegistration: \"Server error\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove(\"is-loading\");\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{({ handleSubmit, errors, touched }) => (\r\n\t\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_15\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={errors.code_client && touched.code_client && \"error\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"code_client\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={this.props.t(\"Inscription_codePlaceholder\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={15}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory mb_30\">{this.props.t(\"Inscription_mandatoryText\")}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t{errors.code_client && touched.code_client && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_error mb_20 fade-in\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Connexion_errorMessage\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{console.log(errors)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{this.state.serverErrorRegistration && <p className=\"t_error mb_20 fade-in\">{this.state.serverErrorMessageRegistration}</p>}\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta mb_20\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Inscription_submitText\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<p className=\"ctn_cta mb_15\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta-txt\" type=\"button\" onClick={() => this.LoginCodeModal.openModal()}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.t(\"Inscription_findCodeText\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t<LoginCodeModal onRef={(ref) => (this.LoginCodeModal = ref)} modalText={this.props.t(\"Inscription_modalText\")} />\r\n\t\t\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Formik>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<h2>{this.props.t(\"Connexion_Contact_Title\")}</h2>\r\n\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t<a className=\"obj_cta var_picto var_email\" href={PageContact != null && PageContact.url}>\r\n\t\t\t\t\t\t\t\t\t<IconSVG icon=\"email\" width=\"21\" height=\"17\" />\r\n\t\t\t\t\t\t\t\t\t{this.props.t(\"Connexion_Contact_submitText\")}\r\n\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<ul className=\"ctn_logos\">\r\n\t\t\t\t\t\t{this.state.logoList.map((logoItem, index) => (\r\n\t\t\t\t\t\t\t<li key={index} className={\"var_\" + logoItem.id}>\r\n\t\t\t\t\t\t\t\t<img src={logoItem.image} alt={logoItem.label} />\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(Login));","import React, { Component } from 'react' \r\nimport { Formik, Field } from 'formik'\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Text, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport * as Yup from 'yup'\r\nimport axios from 'axios'; \r\nimport { ReCaptcha } from 'react-recaptcha-v3'\r\nimport config from '../../temp/config';\r\nimport queryString from 'query-string';\r\nimport { GetLogoList } from '../../utilities/FrontFunctions/AoxFrontFunctions'\r\nimport { getGA4WindowDatas, trackGA4PageView, addGA4SessionData } from '../../utilities/FrontFunctions/AoxTrackingFunctions'\r\n\r\nclass MotDePasse extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tserverError: false,\r\n\t\t\tformSubmitted: false,\r\n\t\t\tlogoList: GetLogoList()\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() { \r\n\t\twindow.scrollTo(0,0)\r\n\r\n\t\t//page sans header mais avec tracking => init nécessaire de window.trackDatas et appel de trackGA4PageView\r\n\t\tgetGA4WindowDatas(undefined, undefined, undefined, undefined).then((resultDatas) => {\r\n\t\t\tif(resultDatas){\r\n\t\t\t\tresultDatas.pageCategory = \"forgot password\";\r\n\t\t\t\tresultDatas.screen_name = \"forgot password\";\r\n\t\t\t\twindow.trackDatas = resultDatas;\r\n\t\t\t\taddGA4SessionData(resultDatas);\r\n\t\t\t\tif(!this.bPushTrackPage_Done){\r\n\t\t\t\t\ttrackGA4PageView(window.trackDatas).then((resultTracked) => { \t\r\n\t\t\t\t\t\tthis.bPushTrackPage_Done = resultTracked;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\trender() {\r\n\r\n\t\tconst oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n\r\n\t\treturn (\r\n\t\t\t<section className=\"section_login\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n\t\t\t\t\t<header>\r\n\t\t\t\t\t\t<h6 className=\"logo-caf\">\r\n\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_logo-pa.svg\")} alt={this.props.t('AltLogo')}/>\r\n\t\t\t\t\t\t</h6>\r\n\t\t\t\t\t\t{ oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\" /> }\r\n\t\t\t\t\t</header>\r\n\r\n\t\t\t\t\t<div className=\"ctn_login\">\r\n\t\t\t\t\t\t<div className=\"ctn_col col_100\">\r\n\t\t\t\t\t\t\t{ oCurrentItemFields && <Text field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h2\" /> }\r\n\r\n\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\t\t\temail: '',\r\n\t\t\t\t\t\t\t\t\t\trecaptcha: ''\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalidationSchema={\r\n\t\t\t\t\t\t\t\t\t\tYup.object().shape({\r\n\t\t\t\t\t\t\t\t\t\t\temail: Yup\r\n\t\t\t\t\t\t\t\t\t\t\t\t.string()\r\n\t\t\t\t\t\t\t\t\t\t\t\t.email()\r\n\t\t\t\t\t\t\t\t\t\t\t\t.required(),\r\n\t\t\t\t\t\t\t\t\t\t\trecaptcha: Yup.string().required()\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tonSubmit={(values, actions) => {\r\n\t\t\t\t\t\t\t\t\t\t// add loader\r\n \t\t\t\t\tdocument.body.classList.add('is-loading')\r\n \r\n \t\t\t\t\taxios.post(`${config.sitecoreApiHost}/apiaox/Call/RequestNewPassword`, \r\n\t\t\t\t\t\t\t\t\t\t\tqueryString.stringify({ \r\n\t\t\t\t\t\t\t\t\t\t\t\temail: values.email,\r\n\t\t\t\t\t\t\t\t\t\t\t\trecaptcha: values.recaptcha\r\n\t\t\t\t\t\t\t\t\t\t\t}), \r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\theaders : {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tAccept: 'application/json',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t }).then((result) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tformSubmitted: result.data.IsValid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tserverError: !result.data.IsValid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tserverErrorMessage: result.data.Message,\r\n\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tif(this.recaptchaMotDePasse){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.recaptchaMotDePasse.execute()\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t\t\t\t })\r\n\t\t\t\t\t\t\t\t\t\t .catch((err) => {\r\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err)\r\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\t\tserverError: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\tserverErrorMessage : this.props.t('DefaultServerError'),\r\n\t\t\t\t\t\t\t\t\t\t\t}) \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tif(this.recaptchaMotDePasse){\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.recaptchaMotDePasse.execute()\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tdocument.body.classList.remove('is-loading')\r\n\t\t\t\t\t\t\t\t\t\t }); \r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{ ({ handleSubmit, setFieldValue, errors, touched }) => (\r\n\t\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t\t\t{this.state.formSubmitted ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory mb_30\">{this.props.t('mdppage_recevoir')}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta\" href=\"/\">{this.props.t('mdppage_retour')}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory mb_30\">{this.props.t('mdppage_saisie')}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_input mb_30\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Field className={errors.email && touched.email && 'error'} as=\"input\" type=\"text\" name=\"email\" placeholder={this.props.t('Connexion_emailPlaceholder')} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"t_mandatory mb_30\">{this.props.t('Connexion_mandatoryText')}</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ReCaptcha\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tref={ref => this.recaptchaMotDePasse = ref}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsitekey={this.props.t('recaptcha_sitekey')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taction='password'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tverifyCallback={(recaptchaToken) => { setFieldValue(\"recaptcha\", recaptchaToken) }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{( (errors.email && touched.email) || (errors.recaptcha) ) && <p className=\"t_error mb_20 fade-in\">{this.props.t('Connexion_errorMessage')}{console.log(errors)} </p>}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.serverError && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorMessage}</p>}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta mb_20\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button className=\"obj_cta\" type=\"submit\">{this.props.t('Connexion_submitText')}</button>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta-txt\" href=\"/\">{this.props.t('mdppage_Annuler')}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Formik>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<ul className=\"ctn_logos\">\r\n\t\t\t\t\t\t{this.state.logoList.map((logoItem, index) => (\r\n\t\t\t\t\t\t\t<li key={index} className={\"var_\" + logoItem.id}>\r\n\t\t\t\t\t\t\t\t<img src={logoItem.image} alt={logoItem.label}/>\r\n\t\t\t\t\t\t\t</li>\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t\t\r\n\t}\r\n}\r\n \r\nexport default withTranslation()(withSitecoreContext()(MotDePasse));","import React, { Component } from 'react' \r\nimport { withTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Text, RichText } from '@sitecore-jss/sitecore-jss-react'; \r\nimport axios from 'axios'; \r\nimport config from '../../temp/config';\r\nimport queryString from 'query-string';\r\nimport { Redirect } from 'react-router-dom' \r\nimport { GetLogoList } from '../../utilities/FrontFunctions/AoxFrontFunctions'\r\n\r\nclass NouveauCompte extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n redirect: false,\r\n redirectExpiredToken: false,\r\n\t\t\tserverError: false,\r\n\t\t\tformSubmitted: false,\r\n\t\t\tlogoList: GetLogoList()\r\n\t\t}\r\n\t}\r\n \r\n componentDidMount() { \r\n window.scrollTo(0,0)\r\n var oParam = queryString.parse(window.location.search);\r\n \r\n if(oParam.length === 0){\r\n this.setState({\r\n redirect: true\r\n }); \r\n }else{\r\n if(oParam.prt === undefined){\r\n this.setState({\r\n redirect: true\r\n }); \r\n }else{\r\n if(oParam.prt === null){\r\n this.setState({\r\n redirect: true\r\n }); \r\n }\r\n }\r\n }\r\n \r\n if(!this.state.redirect){\r\n // add loader\r\n document.body.classList.add('is-loading')\r\n \r\n axios.post(`${config.sitecoreApiHost}/apiaox/Call/RequestNewAccount`, \r\n queryString.stringify({ \r\n NewAccountToken : oParam.nat,\r\n }), \r\n {\r\n headers : {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n }\r\n }).then((result) => {\r\n this.setState({\r\n redirect: !result.data.Value.ErrorExpiredToken,\r\n redirectExpiredToken: result.data.Value.ErrorExpiredToken\r\n }); \r\n \r\n document.body.classList.remove('is-loading')\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n \r\n this.setState({\r\n redirect: true\r\n }); \r\n \r\n document.body.classList.remove('is-loading')\r\n }); \r\n }\r\n \r\n\t} \r\n\trender() {\r\n const { PageExpiredConfirmation } = this.props.fields.data;\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n \r\n if (this.state.redirectExpiredToken){\r\n return <Redirect to={ PageExpiredConfirmation != null && PageExpiredConfirmation.url} />;\r\n }\r\n\r\n if (this.state.redirect){\r\n return <Redirect to=\"/\" />;\r\n }\r\n\r\n return (\r\n \r\n <section className=\"section_login\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n <header>\r\n\t\t\t\t\t\t<h6 className=\"logo-caf\">\r\n\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_logo-caf_2022.svg\")} alt={this.props.t('AltLogo')}/>\r\n\t\t\t\t\t\t</h6>\r\n { oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\" /> }\r\n\t\t\t\t\t</header>\r\n\r\n\t\t\t\t\t<div className=\"ctn_login\">\r\n\t\t\t\t\t\t<div className=\"ctn_col col_100\">\r\n { oCurrentItemFields && <Text field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h2\" /> }\r\n\r\n\t\t\t\t\t\t\t<div className=\"obj_form\"> \r\n <p className=\"t_mention mb_30\">{this.props.t('NouveauCompte_PriseEnCompte')}</p>\r\n <div className=\"ctn_cta\">\r\n <a className=\"obj_cta\" href=\"/\">{this.props.t('mdppage_retour')}</a>\r\n </div>\t \r\n </div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<ul className=\"ctn_logos\">\r\n\t\t\t\t\t\t{this.state.logoList.map((logoItem, index) => (\r\n\t\t\t\t\t\t\t<li key={index} className={\"var_\" + logoItem.id}>\r\n\t\t\t\t\t\t\t\t<img src={logoItem.image} alt={logoItem.label}/>\r\n\t\t\t\t\t\t\t</li>\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(NouveauCompte));"," \r\nimport React, { Component } from 'react' \r\nimport { Formik } from 'formik'\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withSitecoreContext, Text, RichText } from '@sitecore-jss/sitecore-jss-react';\r\nimport * as Yup from 'yup'\r\nimport axios from 'axios'; \r\nimport { ReCaptcha } from 'react-recaptcha-v3'\r\nimport config from '../../temp/config';\r\nimport queryString from 'query-string';\r\nimport { Redirect } from 'react-router-dom'\r\nimport PasswordToggle from '../../utilities/FrontFunctions/FormElements/PasswordToggle'\r\nimport { GetLogoList } from '../../utilities/FrontFunctions/AoxFrontFunctions'\r\n\r\nclass NouveauMotDePasse extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n redirect: false,\r\n\t\t\tserverError: false,\r\n\t\t\tformSubmitted: false,\r\n\t\t\tlogoList: GetLogoList()\r\n\t\t}\r\n\t}\r\n \r\n componentDidMount() { \r\n window.scrollTo(0,0)\r\n var oParam = queryString.parse(window.location.search);\r\n \r\n if(oParam.length === 0){\r\n this.setState({\r\n redirect: true\r\n }); \r\n }else{\r\n if(oParam.prt === undefined){\r\n this.setState({\r\n redirect: true\r\n }); \r\n }else{\r\n if(oParam.prt === null){\r\n this.setState({\r\n redirect: true\r\n }); \r\n }\r\n }\r\n } \r\n\t} \r\n\trender() {\r\n const oCurrentItemFields = this.props.sitecoreContext.route?.fields;\r\n \r\n if (this.state.redirect){\r\n return <Redirect to=\"/\" />;\r\n }\r\n\r\n return (\r\n \r\n <section className=\"section_login\">\r\n\t\t\t\t<div className=\"str_container\">\r\n\r\n <header>\r\n\t\t\t\t\t\t<h6 className=\"logo-caf\">\r\n\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_logo-pa.svg\")} alt={this.props.t('AltLogo')}/>\r\n\t\t\t\t\t\t</h6>\r\n { oCurrentItemFields && <RichText field={oCurrentItemFields[\"Page Title\"]} tag=\"h1\" /> }\r\n\t\t\t\t\t</header>\r\n\r\n\t\t\t\t\t<div className=\"ctn_login\">\r\n\t\t\t\t\t\t<div className=\"ctn_col col_100\">\r\n { oCurrentItemFields && <Text field={oCurrentItemFields[\"Page SubTitle\"]} tag=\"h2\" /> }\r\n\r\n\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\r\n {this.state.formSubmitted ?\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_mention mb_30\">{this.props.t('nouveaumdp_PriseEnCompte')}</p>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t<a className=\"obj_cta\" href=\"/\">{this.props.t('mdppage_retour')}</a>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t <Formik\r\n initialValues={{\r\n password: '',\r\n passwordconfirm: '',\r\n recaptcha: ''\r\n }}\r\n validationSchema={\r\n Yup.object().shape({\r\n password: Yup\r\n .string()\r\n //.matches(/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*)(+=._-])[0-9a-zA-Z!@#$%^&*)(+=._-]{8,30}$/, this.props.t('Register_passwordDetails'))\r\n .matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*)(+=._-])[A-Za-z\\d!@#$%^&*)(+=._-]{8,30}$/, this.props.t('Register_passwordDetails'))\r\n .required(),\r\n passwordconfirm: Yup\r\n .string()\r\n .test('passwords-match', this.props.t('Register_PasswordsMustMatch'), function(value){ return this.parent.password === value })\r\n .required(),\r\n recaptcha: Yup.string().required()\r\n })\r\n }\r\n onSubmit={(values, actions) => {\r\n // add loader\r\n document.body.classList.add('is-loading')\r\n\r\n //Paramètre\r\n var oParam = queryString.parse(window.location.search);\r\n \r\n axios.post(`${config.sitecoreApiHost}/apiaox/Call/GetNewPassword`, \r\n queryString.stringify({ \r\n PasswordResetToken : oParam.prt,\r\n password: values.password,\r\n passwordconfirm: values.passwordconfirm,\r\n recaptcha: values.recaptcha\r\n }), \r\n {\r\n headers : {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n }\r\n }).then((result) => {\r\n this.setState({\r\n formSubmitted: result.data.IsValid,\r\n serverError: !result.data.IsValid,\r\n serverErrorMessage: result.data.Message,\r\n })\r\n\r\n if(this.recaptchaNouveauMotDePasse){\r\n this.recaptchaNouveauMotDePasse.execute()\r\n }\r\n \r\n document.body.classList.remove('is-loading')\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n this.setState({\r\n serverError: true,\r\n serverErrorMessage : this.props.t('DefaultServerError'),\r\n }) \r\n \r\n if(this.recaptchaNouveauMotDePasse){\r\n this.recaptchaNouveauMotDePasse.execute()\r\n }\r\n \r\n document.body.classList.remove('is-loading')\r\n }); \r\n }}\r\n >\r\n { ({ handleSubmit, handleBlur, setFieldValue, errors, touched }) => (\r\n <form onSubmit={handleSubmit}>\r\n {this.state.formSubmitted ?\r\n <>\r\n <p className=\"t_mandatory mb_30\">{this.props.t('nouveaumdp_PriseEnCompte')}</p>\r\n <div className=\"ctn_cta\">\r\n <a className=\"obj_cta\" href=\"/\">{this.props.t('nouveaumdp_MeConnecter')}</a>\r\n </div>\r\n </>\r\n :\r\n <>\r\n <p className=\"t_mandatory mb_30\">{this.props.t('nouveaumdp_saisie')}</p>\r\n <div className=\"ctn_input mb_30 var_password\">\r\n <PasswordToggle\r\n setFieldValue={setFieldValue}\r\n handleBlur={handleBlur}\r\n errors={errors}\r\n touched={touched}\r\n fieldName=\"password\"\r\n eyeMode={true} \r\n placeholder={this.props.t('Register_passwordPlaceholder')}\r\n strengthLevel={true}\r\n />\r\n <div className=\"obj_infobulle\">\r\n <div className=\"info_picto\">?</div>\r\n <div className=\"info_text\"><span>{this.props.t('Register_passwordDetails')}</span></div>\r\n </div>\r\n </div>\r\n <div className=\"ctn_input mb_30\">\r\n <PasswordToggle\r\n setFieldValue={setFieldValue}\r\n handleBlur={handleBlur}\r\n errors={errors}\r\n touched={touched}\r\n fieldName=\"passwordconfirm\"\r\n placeholder={this.props.t('Register_passwordConfirm')}\r\n />\r\n </div>\r\n {errors.passwordconfirm && touched.passwordconfirm && <p className=\"t_error mb_20 fade-in\">{this.props.t('Register_passwordError')}</p>}\r\n <p className=\"t_mandatory mb_30\">{this.props.t('Connexion_mandatoryText')}</p>\r\n <ReCaptcha\r\n ref={ref => this.recaptchaNouveauMotDePasse = ref}\r\n sitekey={this.props.t('recaptcha_sitekey')}\r\n action='newpassword'\r\n verifyCallback={(recaptchaToken) => { setFieldValue(\"recaptcha\", recaptchaToken) }}\r\n />\r\n {( (errors.password && touched.password) || (errors.passwordconfirm && touched.passwordconfirm) || (errors.recaptcha) ) && <p className=\"t_error mb_20 fade-in\">{this.props.t('Connexion_errorMessage')}{console.log(errors)} </p>}\r\n {this.state.serverError && <p className=\"t_error mb_30 fade-in\">{this.state.serverErrorMessage}</p>}\r\n <div className=\"ctn_cta mb_20\">\r\n <button className=\"obj_cta\" type=\"submit\">{this.props.t('Connexion_submitText')}</button>\r\n </div>\r\n <p className=\"ctn_cta\">\r\n <a className=\"obj_cta-txt\" href=\"/\">{this.props.t('mdppage_Annuler')}</a>\r\n </p>\r\n </>\r\n }\r\n </form>\r\n )}\r\n </Formik>\r\n </>\r\n }\r\n </div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<ul className=\"ctn_logos\">\r\n\t\t\t\t\t\t{this.state.logoList.map((logoItem, index) => (\r\n\t\t\t\t\t\t\t<li key={index} className={\"var_\" + logoItem.id}>\r\n\t\t\t\t\t\t\t\t<img src={logoItem.image} alt={logoItem.label}/>\r\n\t\t\t\t\t\t\t</li>\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(NouveauMotDePasse));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport '../../assets/css/0020_objects/0630_obj_dashboard_header_formation.css';\r\n\r\nclass ObjFormationDashboardHeader extends Component{\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\tcomponentDidMount() {\r\n\t}\r\n\trender() {\r\n const { datasExpertise } = this.props;\r\n\r\n\t\treturn (<>{datasExpertise && <>\r\n <div className=\"obj_dashboard_header_formation\">\r\n <div className=\"obj_dashboard_infos\">\r\n <h3 className=\"t_title\">Mon Expertise <strong>{datasExpertise.Brand_Name}</strong></h3>\r\n <div className=\"t_tag\"><span>{datasExpertise.Score} <em>{datasExpertise.Score>0 ? \"PTS\" : \"PT\"}</em></span></div>\r\n\r\n <div className=\"obj_progress-bar_formation\">\r\n <h4 className=\"t_title\"><strong>{datasExpertise.UserTrainingsOnLine_Completed} </strong>{datasExpertise.UserTrainingsOnLine_Completed>1 ? \"Formations réalisées\":\"Formation réalisée\"}</h4>\r\n\r\n <div className=\"obj_progress-bar\">\r\n <div className=\"ctn_steps\">\r\n {Array.from(Array(datasExpertise.Brand_NbTrainingsOnLine), (e, i) => {\r\n if (i < datasExpertise.UserTrainingsOnLine_Completed) {\r\n return <div key={i} className=\"step is-complete\"></div>\r\n }\r\n return <div key={i} className=\"step\"></div>\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjFormationDashboardHeader));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from \"react\"\r\nimport { Image } from '@sitecore-jss/sitecore-jss-react'; \r\n\r\nimport { urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { isMobile, equalHeight } from '../../utilities/FrontFunctions/AoxGlobalFrontFunctions'\r\nimport '../../assets/css/0020_objects/0640_obj_push_card_thematique.css'\r\n\r\nclass ObjPushThematiqueFormation extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeCustomSelect);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeCustomSelect);\r\n\t}\r\n\r\n\tapplyEqualHeight() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tequalHeight(\".obj_push_card-thematique .ctn_text_card\");\r\n\t\t});\r\n\t}\r\n\r\n\trender() {\r\n const { datasTheme } = this.props;\r\n\r\n\t\treturn (<>{datasTheme && <>\r\n\t\t\t<div className=\"obj_push_card-thematique\">\r\n <a href={urlToHost(datasTheme.url)}>\r\n\t\t\t\t\t<div className=\"ctn_media_card\">\r\n\t\t\t\t\t\t<div className=\"obj_image\">\r\n\t\t\t\t\t\t\t<picture className=\"ctn_image fade-in\">\r\n <Image field={datasTheme.pageImage.jss}></Image>\r\n\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div className=\"ctn_content_card\">\r\n\t\t\t\t\t\t<div className=\"ctn_text_card\">\r\n\t\t\t\t\t\t\t<h3 className=\"t_title\">\r\n\t\t\t\t\t\t\t\t<strong>{datasTheme.pageTitle.value}</strong>\r\n\t\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t\t{datasTheme.pageSubTitle.value !== \"\"\r\n ? <p className=\"t_desc\">{datasTheme.pageSubTitle.value}</p>\r\n : <p className=\"t_desc\">{datasTheme.formationsTheme.targetItems.length} {datasTheme.formationsTheme.targetItems.length > 1 ? \"formations\" : \"formation\"}</p>\r\n }\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjPushThematiqueFormation));","import React, { Component } from 'react'\r\nimport Slider from \"react-slick\"\r\n\r\nimport ObjPushThematiqueFormation from './ObjPushThematiqueFormation'\r\nimport { throttle, isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css'\r\nimport '../../assets/css/0020_objects/0720_obj_list_pushs_thematique_formation.css'\r\n\r\nclass ObjListPushsThematiqueFormation extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t}\r\n\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n window.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n componentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t}\r\n\r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: true,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n dots: true,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: false,\r\n speed: 750,\r\n };\r\n\r\n const { datasThemes } = this.props;\r\n\r\n\t\treturn (<>{datasThemes && <>\r\n\t\t\t<div className=\"obj_list_pushs_thematique_formation\">\r\n \r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h2 className=\"t_title\">Formez-vous sur une thématique :</h2>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t{ this.state.isMobile &&\r\n\t\t\t\t\t<div className=\"ctn_carrousel\">\r\n\t\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n\t\t\t\t\t\t\t{ datasThemes.map((datasTheme, index) => (\r\n\t\t\t\t\t\t\t\t<div className=\"item\" key={index}>\r\n\t\t\t\t\t\t\t\t\t<ObjPushThematiqueFormation datasTheme={datasTheme}/>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</Slider>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t{!this.state.isMobile &&\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t{ datasThemes.map((datasTheme, index) => (\r\n\t\t\t\t\t\t\t<ObjPushThematiqueFormation key={index} datasTheme={datasTheme}/>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default ObjListPushsThematiqueFormation","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from \"react\"\r\n\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport { urlToHost, dayFrom } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\nimport { equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { TRAININGNBJOURISNEW } from \"../../data/const\"\r\n\r\nimport '../../assets/css/0020_objects/0610_obj_push_card.css'\r\n\r\nclass ObjPushCardFormation extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n datasTraining: this.props.datasTraining,\r\n\t\t\ttypeofPush: this.props.typeofPush\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeCustomSelect);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeCustomSelect);\r\n\t}\r\n\r\n\tapplyEqualHeight() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tequalHeight(\".obj_push_card .ctn_text_card\");\r\n\t\t});\r\n\t}\r\n\r\n \trender() {\r\n\t\tconst { typeofPush, datasTraining } = this.state;\r\n \r\n // Vérifiez si vous êtes dans le cas \"Player\"\r\n const isPlayerCase = typeofPush === \"Player\";\r\n const nbDayFrom = dayFrom(datasTraining.Training_Date_Available);\r\n\r\n var state = \"\"\r\n if(nbDayFrom < 0){\r\n state = \"soon\"\r\n } else if(datasTraining.UserTraining){\r\n if(datasTraining.UserTraining.UserTraining_Completed){\r\n state = \"done\"\r\n } else if(datasTraining.UserTraining.UserTraining_InProgress){\r\n state = \"progress\"\r\n }\r\n } else if(nbDayFrom < TRAININGNBJOURISNEW) {\r\n state = \"new\"\r\n }\r\n\r\n\t\treturn (<> {datasTraining && <>\r\n {state === \"soon\" ?\r\n <div className=\"obj_push_card is-not-available\">\r\n <div className=\"ctn_media_card\">\r\n {isPlayerCase ? (\r\n // Affichez cette section si vous êtes dans le cas \"Player\"\r\n <div className=\"obj_player\">\r\n <picture className=\"ctn_player fade-in\">\r\n <img src={urlToHost(datasTraining.Training_Image_Url)} alt={datasTraining.Training_Title} />\r\n </picture>\r\n </div>\r\n ) : ( <>\r\n <div className=\"obj_image\">\r\n <picture className=\"ctn_image fade-in\">\r\n <img src={urlToHost(datasTraining.Training_Image_Url)} alt={datasTraining.Training_Title} />\r\n </picture>\r\n </div>\r\n\r\n <div className=\"obj_info-left_card\">\r\n </div>\r\n </> )}\r\n\r\n <div className=\"obj_info-right_card\">\r\n </div>\r\n </div>\r\n\r\n <div className=\"ctn_content_card\">\r\n <div className=\"ctn_text_card\">\r\n <h3 className=\"t_title\">{datasTraining.Training_Title}</h3>\r\n <p className=\"t_desc\">Bientôt disponible</p>\r\n </div>\r\n <div className=\"ctn_footer_card\">\r\n <div className=\"obj_nb-views_card\">\r\n <span> </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n : \r\n <div className=\"obj_push_card\">\r\n <div className=\"ctn_media_card\">\r\n <a href={urlToHost(datasTraining.Training_Url)}>{/* Url relative venant de la DB => doit être absolu*/}\r\n {isPlayerCase \r\n ? // Affichez cette section si vous êtes dans le cas \"Player\"\r\n <div className=\"obj_player\">\r\n <picture className=\"ctn_player fade-in\">\r\n <img src={urlToHost(datasTraining.Training_Image_Url)} alt={datasTraining.Training_Title} />\r\n </picture>\r\n </div>\r\n : <>\r\n <div className=\"obj_image\">\r\n <picture className=\"ctn_image fade-in\">\r\n <img src={urlToHost(datasTraining.Training_Image_Url)} alt={datasTraining.Training_Title} />\r\n </picture>\r\n </div>\r\n\r\n <div className=\"obj_info-left_card\">\r\n {state === \"done\" && (\r\n <div className=\"obj_state_card is_done\">\r\n <div className=\"obj_picto_card\">\r\n <IconSVG icon=\"is_done\" />\r\n </div>\r\n <span>Terminé</span>\r\n </div>\r\n )}\r\n {state === \"progress\" && (\r\n <div className=\"obj_state_card is_progress\">\r\n <div className=\"obj_picto_card\">\r\n <IconSVG icon=\"en_cours\" className=\"is_en_cours\" />\r\n </div>\r\n <span>En cours</span>\r\n </div>\r\n )}\r\n {state === \"new\" && (\r\n <div className=\"obj_state_card is_new\">\r\n <span>Nouveau</span>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {state === \"progress\" && (\r\n <div className=\"obj_progress-bar_card\">\r\n <div className=\"obj_step-progress-bar\" style={{ width: (datasTraining.UserTraining?.UserTraining_Score ? datasTraining.UserTraining.UserTraining_Score : 0) + '%' }}></div>\r\n </div>\r\n )}\r\n </> \r\n }\r\n\r\n <div className=\"obj_info-right_card\">\r\n {datasTraining.Training_Duration && \r\n <div className=\"obj_timer_card\">\r\n <div className=\"obj_picto_card\">\r\n <IconSVG icon=\"clock_outline\" />\r\n </div>\r\n <span>{datasTraining.Training_Duration}</span>\r\n </div>\r\n }\r\n </div>\r\n </a>\r\n </div>\r\n\r\n <div className=\"ctn_content_card\">\r\n <div className=\"ctn_text_card\">\r\n <a href={urlToHost(datasTraining.Training_Url)}>{/* Url relative venant de la DB => doit être absolu*/}\r\n <h3 className=\"t_title\">{datasTraining.Training_Title}</h3>\r\n <p className=\"t_desc\">{datasTraining.Training_Subtitle}</p>\r\n </a>\r\n </div>\r\n <div className=\"ctn_footer_card\">\r\n <div className=\"obj_nb-views_card\">\r\n <IconSVG icon=\"eye_outline\" />\r\n <span>{datasTraining.Training_NbViews || 0} {(datasTraining.Training_NbViews || 0)<2 ? \"vue\" : \"vues\"}</span>\r\n </div>\r\n </div>\r\n <button\r\n className={`btn_fav-push-formation ${datasTraining.Training_IsFavorite ? 'is_liked' : ''}`}\r\n type=\"button\"\r\n onClick={() => this.props.handleButtonFav(datasTraining.Training_ItemTraining_Id)}\r\n >\r\n {datasTraining.Training_IsFavorite === false && (\r\n <IconSVG icon=\"heart_outline\" />\r\n )}\r\n {datasTraining.Training_IsFavorite === true && (\r\n <IconSVG icon=\"heart_fill\" />\r\n )}\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n </>}</>)\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjPushCardFormation));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from \"react\"\r\nimport Slider from \"react-slick\"\r\n\r\nimport { throttle, isMobile, equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport ObjPushCardFormation from './ObjPushCardFormation'\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport ModalFormationsFav from \"../Modal/ModalFormationsFav\"\r\nimport { postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { trackGA4Event } from '../../utilities/FrontFunctions/AoxTrackingFunctions'\r\n\r\nimport '../../assets/css/0020_objects/0620_obj_swiper_slider.css'\r\nimport '../../assets/css/0020_objects/0700_obj_tabs_parcours_formation.css'\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css'\r\n\r\nclass ObjTabsParcoursFormation extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n isMobile: isMobile(),\r\n toggleState: 1,\r\n nbTabs: props.datasParcours?.length,\r\n titleTabs: props.datasParcours?.map(o => o.Parcours_Title),\r\n datasParcours: this.props.datasParcours\r\n }\r\n this.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n this.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.handleButtonFav.bind(this)\r\n }\r\n \r\n handleWindowResizeMainHeader() {\r\n this.setState({\r\n isMobile: isMobile()\r\n })\r\n this.applyEqualHeight()\r\n }\r\n\r\n componentDidMount() {\r\n this.applyEqualHeight()\r\n window.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n componentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n applyEqualHeight() {\r\n setTimeout(() => {\r\n equalHeight(\".obj_tabs_parcours_formation .obj_tabs_content .obj_push_card .ctn_text_card\");\r\n });\r\n }\r\n \r\n toggleTab = (index) => {\r\n this.setState({ toggleState: index })\r\n if (index >= 1 && index <= this.state.nbTabs) {\r\n this.setState({ toggleState: index });\r\n }\r\n }\r\n\r\n //version pour les tabs de parcours\r\n handleButtonFav(id) {\r\n //recherche d'un training correspondant\r\n var datasTraining = undefined;\r\n this.state.datasParcours.forEach((datasParcour) => {\r\n var datasFind = datasParcour.Formations.find(t => t.Training_ItemTraining_Id === id);\r\n if(datasFind){\r\n datasTraining = datasFind;\r\n }\r\n });\r\n if(datasTraining){\r\n if(!datasTraining.Training_IsFavorite){\r\n //ajouter favori\r\n document.body.classList.add('is-loading')\r\n trackGA4Event(window.trackDatas, \"training_add_favorite\", \"training\", \"training add favorite\", \"star icon\");\r\n postApiDatas(`/apiaox/Call/AddTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n //switcher le statut sur les listes parcours\r\n let newDatas = this.state.datasParcours;\r\n newDatas.forEach((datasParcour) => {\r\n datasParcour.Formations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n });\r\n this.setState({ datasTrainings: newDatas })\r\n \r\n if(!localStorage.getItem('dontShowAgainModalMAJFormationsFav')){\r\n this.ModalFormationsFav.openModal();\r\n }\r\n }\r\n });\r\n } else {\r\n //supprimer favori\r\n document.body.classList.add('is-loading')\r\n postApiDatas(`/apiaox/Call/RemoveTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n //switcher le statut sur les listes parcours\r\n let newDatas = this.state.datasParcours;\r\n newDatas.forEach((datasParcour) => {\r\n datasParcour.Formations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n });\r\n this.setState({ datasTrainings: newDatas })\r\n }\r\n });\r\n }\r\n }\r\n }\r\n \r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n render() {\r\n const { toggleState, nbTabs, titleTabs, datasParcours } = this.state\r\n\r\n const sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_swiper_slider center\",\r\n centerMode: true,\r\n\t\t\tinfinite: true,\r\n\t\t\tcenterPadding: \"170px\",\r\n\t\t\tslidesToShow: 3,\r\n swipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n dots: true,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n className: \"obj_carousel_formation obj_swiper_slider\",\r\n centerPadding: \"10%\",\r\n infinite: false,\r\n slidesToShow: 1,\r\n arrows: false,\r\n }\r\n }\r\n ]\r\n }\r\n\r\n const settingsSmallSlider = {\r\n className: \"obj_carousel_formation obj_swiper_slider small_slider\", // différent\r\n centerMode: true,\r\n\t\t\tinfinite: false, // différent\r\n\t\t\tcenterPadding: \"170px\",\r\n\t\t\tslidesToShow: 3,\r\n swipeToSlide: true,\r\n dots: true,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n variableWidth: false, // différent\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n className: \"obj_carousel_formation obj_swiper_slider\",\r\n centerPadding: \"10%\",\r\n infinite: false,\r\n slidesToShow: 1,\r\n arrows: false,\r\n variableWidth: false // différent\r\n }\r\n }\r\n ]\r\n }\r\n\r\n return (<>{datasParcours && <>\r\n <div className=\"obj_tabs_parcours_formation\">\r\n { this.state.isMobile &&\r\n \r\n <div className=\"obj_navigation_header_formation\">\r\n <div className=\"ctn_nav\">\r\n {/* Bouton gauche */}\r\n <button\r\n className={`obj_btn_tab_arrow arrow_prev ${toggleState === 1 ? \"is_disabled\" : \"\"}`}\r\n onClick={() => this.toggleTab(toggleState - 1)}\r\n disabled={toggleState === 1}\r\n >\r\n <IconSVG icon=\"arrow_left\" />\r\n </button>\r\n \r\n {/* Titres dynamiques */}\r\n <div className=\"ctn_title\">\r\n {titleTabs.map((tab, index) => (\r\n <span\r\n key={index}\r\n className={`t_title ${toggleState === index + 1 ? \"is_current\" : \"is_hidden\"}`}\r\n >\r\n {tab}\r\n </span>\r\n ))}\r\n </div>\r\n \r\n {/* Bouton droit */}\r\n <button\r\n className={`obj_btn_tab_arrow arrow_next ${toggleState === nbTabs ? \"is_disabled\" : \"\"}`}\r\n onClick={() => this.toggleTab(toggleState + 1)}\r\n disabled={toggleState === nbTabs}\r\n >\r\n <IconSVG icon=\"arrow_right\" />\r\n </button>\r\n </div>\r\n </div>\r\n\r\n }\r\n\r\n <div className=\"obj_tabs_list_tabs\">\r\n {titleTabs.map((tab, index) => (\r\n <button\r\n key={index}\r\n className={toggleState === index + 1 ? \"obj_btn_tab is_active\" : \"obj_btn_tab\"}\r\n onClick={() => this.toggleTab(index + 1)}\r\n >\r\n <span className=\"t_title\">{tab}</span>\r\n </button>\r\n ))}\r\n </div>\r\n\r\n <div className=\"obj_tabs_list_content\">\r\n {datasParcours.map((datasParcour, index) => (\r\n <div\r\n key={index}\r\n className={toggleState === index+1 ? \"obj_tabs_content is_active\" : \"obj_tabs_content\"}\r\n >\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_title\">{datasParcour.Parcours_Subtitle}</h3>\r\n <p className=\"t_desc\">{datasParcour.Formations.length} {datasParcour.Formations.length > 1 ? \"formations\" : \"formation\"}</p>\r\n </div>\r\n \r\n {datasParcour.Formations?.length >0 &&\r\n <Slider {...(datasParcour.Formations.length>3 ? settings : settingsSmallSlider)} ref={sliderRef}>\r\n {datasParcour.Formations.map((datasTraining, index) => (\r\n <div className=\"item\" key={index} >\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n }\r\n </div>\r\n ))}\r\n </div>\r\n\r\n <ModalFormationsFav \r\n onRef={ref => (this.ModalFormationsFav = ref)} \r\n modalTitle=\"\"\r\n modalText=\"Vous venez d'ajouter cette formation à votre liste de favoris\"\r\n modalCtaText=\"Retrouver mes favoris\"\r\n />\r\n </div>\r\n </>}</>)\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjTabsParcoursFormation));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { throttle, isMobile } from \"../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { getApiDatas } from \"../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport ObjFormationDashboardHeader from './inc/ObjFormationDashboardHeader'\r\nimport ObjListPushsThematiqueFormation from './inc/ObjListPushsThematiqueFormation'\r\nimport ObjTabsParcoursFormation from './inc/ObjTabsParcoursFormation'\r\n\r\nimport '../assets/css/0010_sections/0410_section_hero_formation.css'\r\nimport '../assets/css/0010_sections/0420_section_content_formation.css'\r\nimport '../assets/css/0020_objects/0800_obj_navigation_header_formation.css'\r\n\r\nclass FormationsMarque extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tgetApiDatas(`/apiaox/Call/PageFormation?sBrandCode=${this.props.fields.data.scDatas?.Brand.codeAbbrege.value}`).then((apiDatas) => { \r\n this.setState({ apiDatas:apiDatas }) \r\n window.scrollTo(0,0)\r\n })\r\n\t}\r\n\r\n render() {\r\n const pageDatas = this.props.sitecoreContext.route?.fields;\r\n const { scDatas } = this.props.fields.data;\r\n const { apiDatas } = this.state;\r\n\r\n return (<>{ scDatas && apiDatas && <>\r\n\t\t\t<section className=\"obj_section section_hero_formation\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_text\">\r\n { pageDatas && <Text className=\"t_title\" field={pageDatas[\"Page Title\"]} tag=\"h1\"></Text> } \r\n { pageDatas && <Text className=\"t_desc\" field={pageDatas[\"Page Text\"]} tag=\"p\"></Text> } \r\n\t\t\t\t\t</div>\r\n\r\n {apiDatas.UserBrandExpertise && <ObjFormationDashboardHeader datasExpertise={apiDatas.UserBrandExpertise}/>}\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n\t\t\t<section className=\"obj_section section_content_formation\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_content\">\r\n {apiDatas.Parcours && <ObjTabsParcoursFormation datasParcours={apiDatas.Parcours}/>}\r\n\r\n\t\t\t\t\t\t{scDatas.Brand?.ListThemeFolder[0]?.ListTheme && <ObjListPushsThematiqueFormation datasThemes={scDatas.Brand.ListThemeFolder[0].ListTheme}/>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(FormationsMarque));","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nimport ReactPlayer from 'react-player'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass VideoModalShorts extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_video-short\"\r\n\t\t\t\t\tbodyOpenClassName=\"ReactModal__Body--open-short\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\r\n\t\t\t\t\t\t<ReactPlayer\r\n\t\t\t\t\t\t\turl={this.props.videoUrl}\r\n\t\t\t\t\t\t\tconfig={{\r\n\t\t\t\t\t\t\t\tyoutube: {\r\n\t\t\t\t\t\t\t\t\tplayerVars: { autoplay: this.props.videoAutoplay }\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tvimeo: {\r\n\t\t\t\t\t\t\t\t\tplayerOptions: { autoplay: this.props.videoAutoplay }\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tfile: {\r\n\t\t\t\t\t\t\t\t\tattributes: { autoplay: this.props.videoAutoplay }\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\twidth=\"1920\"\r\n\t\t\t\t\t\t\theight=\"1080\"\r\n\t\t\t\t\t\t\tcontrols\r\n\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nVideoModalShorts.defaultProps = {\r\n\tvideoAutoplay: 0\r\n}\r\n\r\nexport default VideoModalShorts","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport { RichText, Link, Image } from '@sitecore-jss/sitecore-jss-react'; \r\nimport Slider from \"react-slick\";\r\n\r\nimport '../../assets/css/0020_objects/0760_obj_a_gagner_formation.css'\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css';\r\nimport '../../assets/css/0020_objects/0650_obj_favorite_formation_aside.css'\r\n\r\nclass ObjAGagnerHomeFormation extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\r\n componentDidMount() {\r\n this.setState({AGagnerItems: this.props.scDatasPushs});\r\n }\r\n\r\n\tonSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n\t\tconst settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n\t\t\tonSwipe: this.onSwipe.bind(this),\r\n dots: false,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n\t\t\tresponsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n\t\t\t\t\t\tdots: true,\r\n\t\t\t\t\t\tarrows: false\r\n }\r\n }\r\n ]\r\n }\r\n\r\n\t\treturn (<> {this.state.AGagnerItems && <>\r\n\t\t\t<div className=\"obj_a_gagner_formation\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h3 className=\"t_title\"><strong>À gagner</strong></h3>\r\n\t\t\t\t\t<p className=\"t_desc\">en ce moment</p>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className=\"ctn_carrousel\">\r\n\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n\t\t\t\t\t\t{ this.state.AGagnerItems.map((AGagnerItemsItem, index) => (\r\n\t\t\t\t\t\t\t<div className=\"item\" key={index}>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<div className=\"item_a_gagner_formation\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_media\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_image\">\r\n\t\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_image fade-in\">\r\n <Image field={AGagnerItemsItem.visuel.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n <RichText field={AGagnerItemsItem.title.jss} tag=\"h3\"/>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t<Link className=\"obj_cta reverse\" field={AGagnerItemsItem.link.jss}>{AGagnerItemsItem.cta.value}</Link>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t{/* {AGagnerItemsItem.label} */}\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Slider>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjAGagnerHomeFormation));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport { RichText, Link, Image } from '@sitecore-jss/sitecore-jss-react'; \r\nimport Slider from \"react-slick\";\r\n\r\nimport '../../assets/css/0020_objects/0750_obj_a_la_une_formation.css'\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css';\r\n\r\nclass ObjALaUneHomeFormation extends Component {\r\n\tonSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n const { scDatasPushs, scDatasBrandName } = this.props;\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n\t\tconst settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n\t\t\tonSwipe: this.onSwipe.bind(this),\r\n dots: false,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n\t\t\tresponsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n\t\t\t\t\t\tdots: true,\r\n\t\t\t\t\t\tcenterMode: false,\r\n\t\t\t\t\t\tarrows: false\r\n }\r\n }\r\n ]\r\n }\r\n\r\n\t\treturn (<> {scDatasPushs && <>\r\n\t\t\t<div className=\"obj_a_la_une_formation\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h3 className=\"t_title\"><strong>À la une</strong></h3>\r\n\t\t\t\t\t<p className=\"t_desc\">chez {scDatasBrandName}</p>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className=\"ctn_carrousel\">\r\n\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n\t\t\t\t\t\t{ scDatasPushs.map((ALaUneItemsItem, index) => (\r\n\t\t\t\t\t\t\t<div className=\"item\" key={index}>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<div className=\"item_a_la_une_formation\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_media\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"obj_image\">\r\n\t\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_image fade-in\">\r\n <Image field={ALaUneItemsItem.visuel.jss}></Image>\r\n\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"t_ribbon\"><span>{ALaUneItemsItem.ribbon.value}</span></p>\r\n <RichText field={ALaUneItemsItem.title.jss} tag=\"h3\" className=\"t_title\"/>\r\n <RichText field={ALaUneItemsItem.desc.jss} tag=\"p\" className=\"t_desc\"/>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t\t\t\t\t\t<Link className=\"obj_cta\" field={ALaUneItemsItem.link.jss}>{ALaUneItemsItem.cta.value}</Link>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t{/* {ALaUneItemsItem.label} */}\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Slider>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjALaUneHomeFormation));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react';\r\nimport { RichText, Image } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { throttle, isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\n\r\nimport '../../assets/css/0020_objects/0870_obj_hero_banner_comptoir_dermato.css'\r\n\r\nclass ObjBannerHeroComptoirDermato extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\r\n\trender() {\r\n if(!this.props.dataBanners || !this.props.dataBanners[0]) return null;\r\n const dataBanner = this.props.dataBanners[0];\r\n\t\t\r\n\t\treturn (\r\n\t\t\t<section className={`obj_section obj_hero_banner_comptoir_dermato ${' var_' + dataBanner.align.value} ${dataBanner.darkMode.boolValue ? ' var_dark' : ''}`}>\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_text\">\r\n {/* banner type text : CAFTextBanner */}\r\n { dataBanner.template.id === \"31C956382BE1472095B3E8D7A9E8C60D\" && dataBanner.content.jss && \r\n <RichText tag=\"h1\" className=\"t_title\" field={dataBanner.content.jss} /> \r\n }\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<picture className=\"ctn_background\">\r\n <source srcSet={dataBanner.imageMobile.jss.value.src} media=\"(max-width:767px)\"/>\r\n <Image field={dataBanner.image.jss}></Image>\r\n\t\t\t\t</picture>\r\n\t\t\t</section>\r\n )\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjBannerHeroComptoirDermato));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\nimport Slider from \"react-slick\"\r\n\r\nimport ObjPushCardFormation from './ObjPushCardFormation'\r\nimport { equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css';\r\nimport '../../assets/css/0020_objects/0910_obj_continuer_lecture_comptoir_dermato.css'\r\n\r\n\r\nclass ObjContinuerLectureHomeComptoirDermato extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t\tthis.handleButtonFav = this.props.handleButtonFav.bind(this)\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.applyEqualHeight();\r\n\t}\r\n\tapplyEqualHeight() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tequalHeight(\".obj_continuer_lecture_comptoir_dermato .obj_push_card .ctn_text_card\");\r\n\t\t});\r\n\t}\r\n\r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n const { datasTrainings } = this.props;\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n dots: false,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n\t\t\tresponsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n\t\t\t\t\t\tdots: true,\r\n\t\t\t\t\t\tcenterMode: true,\r\n\t\t\t\t\t\tcenterPadding: \"10%\",\r\n\t\t\t\t\t\tarrows: false\r\n }\r\n }\r\n ]\r\n }\r\n\r\n\t\treturn (<>{datasTrainings && datasTrainings.length > 0 && <>\r\n\t\t\t<div className=\"obj_continuer_lecture_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h3 className=\"t_title\"><strong>Continuer<br /> la lecture</strong></h3>\r\n\t\t\t\t\t<p className=\"t_desc\">{datasTrainings.length} {datasTrainings.length > 1 ? \"modules en cours de visionnage\" : \"module en cours de visionnage\"}</p>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className=\"ctn_carrousel\">\r\n\r\n\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n\t\t\t\t\t\t{ datasTrainings.map((datasTraining, index) => (\r\n\t\t\t\t\t\t\t<div className=\"item\" key={index}>\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Slider>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjContinuerLectureHomeComptoirDermato));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport Slider from \"react-slick\"\r\n\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport { throttle, isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport '../../assets/css/0020_objects/0621_obj_carrousel_slider.css'\r\nimport '../../assets/css/0020_objects/0830_obj_derniers_ajouts_aside.css'\r\n\r\nclass ObjDerniersAjoutsAside extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n const { datasTrainings } = this.props;\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n\t\tconst settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: true,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n\t\t\tonSwipe: this.onSwipe.bind(this),\r\n\t\t\tcenterPadding: \"10%\",\r\n dots: true,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: false,\r\n speed: 750,\r\n }\r\n\r\n return (<> {datasTrainings && <>\r\n\t\t\t<div className=\"obj_derniers_ajouts_aside\">\r\n\t\t\t\t<h3 className=\"t_title\">\r\n\t\t\t\t\t<IconSVG icon=\"clock_twelve_thirty\" />\r\n\t\t\t\t\tDerniers ajouts\r\n\t\t\t\t</h3>\r\n\t\t\t\t\r\n\t\t\t\t{ this.state.isMobile &&\r\n\r\n\t\t\t\t <div className=\"ctn_carrousel obj_menu_aside_list\">\r\n\t\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n\t\t\t\t\t\t\t{ datasTrainings.slice(0,2).map((datasTraining, index) => (\r\n\t\t\t\t\t\t\t\t<div className=\"item\" key={index}>\r\n\t\t\t\t\t\t\t\t\t<div className=\"menu_aside-item\">\r\n <a href={urlToHost(datasTraining.Training_Url)}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_image\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<picture className=\"ctn_image fade-in\">\r\n <img src={urlToHost(datasTraining.Training_Image_Url)} alt={datasTraining.Training_Title} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"menu_aside_text\">\r\n <h3 className=\"t_title\">{datasTraining.Training_Title}</h3>\r\n {/* <p className=\"t_desc\">{FavFormationAsideItem.desc}</p> */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"obj_nb-views\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconSVG icon=\"eye_outline\" />\r\n <span>{datasTraining.Training_NbViews || 0} {(datasTraining.Training_NbViews || 0)<2 ? \"vue\" : \"vues\"}</span>\r\n </div>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</Slider>\r\n\t\t\t\t\t</div>\r\n \r\n }\r\n \r\n {!this.state.isMobile &&\r\n\r\n <ul className=\"obj_menu_aside_list\">\r\n\t\t\t\t\t\t{ datasTrainings.slice(0,2).map((datasTraining, index) => (\r\n <li key={index} className=\"menu_aside-item\">\r\n {/* Url relative venant de la DB => doit être absolu*/}\r\n <a href={urlToHost(datasTraining.Training_Url)}>\r\n <div className=\"obj_image\">\r\n <picture className=\"ctn_image fade-in\">\r\n <img src={urlToHost(datasTraining.Training_Image_Url)} alt={datasTraining.Training_Title} />\r\n </picture>\r\n </div>\r\n <div className=\"menu_aside_text\">\r\n <h3 className=\"t_title\">{datasTraining.Training_Title}</h3>\r\n {/* <p className=\"t_desc\">{FavFormationAsideItem.desc}</p> */}\r\n <div className=\"obj_nb-views\">\r\n <IconSVG icon=\"eye_outline\" />\r\n <span>{datasTraining.Training_NbViews || 0} {(datasTraining.Training_NbViews || 0)<2 ? \"vue\" : \"vues\"}</span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t\r\n }\r\n\t\t\t\t\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjDerniersAjoutsAside));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport Slider from \"react-slick\"\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { throttle, isMobile, equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport ObjPushCardFormation from './ObjPushCardFormation'\r\n\r\nimport '../../assets/css/0020_objects/0730_obj_direct_comptoir_dermato.css'\r\nimport '../../assets/css/0020_objects/0621_obj_carrousel_slider.css'\r\n\r\nclass ObjDirectComptoirDermato extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile()\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.props.handleButtonFav.bind(this)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t\tthis.applyEqualHeight()\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.applyEqualHeight()\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n componentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t}\r\n\r\n\tapplyEqualHeight() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tequalHeight(\".obj_direct_comptoir_dermato .obj_push_card .ctn_text_card\");\r\n\t\t});\r\n\t}\r\n\r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n const { datasTrainings, dataType, datasComptoir } = this.props;\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: true,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n\t\t\t// variableWidth: true,\r\n\t\t\tcenterPadding: \"10%\",\r\n dots: true,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: false,\r\n speed: 750,\r\n }\r\n\r\n\t\treturn (<>{datasTrainings && !(datasTrainings.length < 1 && dataType===\"ThemeAv\") && <>\r\n\t\t\t<div className=\"obj_direct_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h3 className=\"t_title\">{dataType===\"ThemeAv\" ? \"Pour aller plus loin\" : \"En direct du comptoir dermato\" }</h3>\r\n\t\t\t\t</div>\r\n\r\n {datasTrainings.length < 1 ? \r\n <div className=\"ctn_text\">\r\n {/* <h4 className=\"t_title\">Lorem ipsum</h4> */}\r\n <p> Approfondissez votre expertise dermatologique en direct du <Link to={datasComptoir.url}>Comptoir dermato</Link></p>\r\n </div>\r\n :\r\n <>\r\n { this.state.isMobile &&\r\n <div className=\"ctn_carrousel\">\r\n <Slider {...settings} ref={sliderRef}>\r\n {datasTrainings.map((datasTraining, index) => (\r\n <div className=\"item\" key={index} >\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n </div>\r\n }\r\n\r\n {!this.state.isMobile &&\r\n <div className=\"ctn_row\">\r\n {datasTrainings.map((datasTraining, index) => (\r\n <ObjPushCardFormation key={index} typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n ))}\r\n </div>\r\n }\r\n </>\r\n }\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjDirectComptoirDermato));","import React, { Component } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport { Image, RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport VideoModalShorts from '../../components/inc/Modal/VideoModalShorts'\r\n\r\nimport '../../assets/css/0020_objects/0920_obj_essentiel_minute_comptoir_dermato.css'\r\n\r\n\r\nclass ObjEssentielMinuteComptoirDermato extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\t// ouverture popin video\r\n\t\t// this.VideoModalShorts.openModal()\r\n\t}\r\n\r\n\trender() {\r\n const { datasEssentielle } = this.props;\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"obj_essentiel_minute_comptoir_dermato\">\r\n\t\t\t\t<h3 className=\"t_title\"><strong>L'essentiel en 2 minutes</strong></h3>\r\n\t\t\t\t<div className=\"obj_essentiel_minute_focus\">\r\n\t\t\t\t\t<div className=\"obj_push_card\">\r\n\t\t\t\t\t\t<div className=\"ctn_media_card\">\r\n <Link onClick={() => this.VideoModalShorts.openModal()}>\r\n <div className=\"obj_player\">\r\n <picture className=\"ctn_player fade-in\">\r\n <Image field={datasEssentielle.pageImagePush.jss}></Image>\r\n </picture>\r\n </div>\r\n </Link>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_content_card\">\r\n\t\t\t\t\t\t\t<div className=\"ctn_text_card\">\r\n\t\t\t\t\t\t\t\t<Link onClick={() => this.VideoModalShorts.openModal()}>\r\n { datasEssentielle.pageTitle.jss && <RichText tag=\"h3\" className=\"t_title\" field={datasEssentielle.pageTitle.jss} /> }\r\n { datasEssentielle.pageSubTitle.jss && <RichText tag=\"p\" className=\"t_desc\" field={datasEssentielle.pageSubTitle.jss} /> }\r\n\t\t\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<VideoModalShorts\r\n\t\t\t\t\tonRef={ref => (this.VideoModalShorts = ref)}\r\n\t\t\t\t\tvideoUrl={datasEssentielle.videoUrl.jss.value}\r\n\t\t\t\t/>\r\n\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n\r\n}\r\n\r\nexport default ObjEssentielMinuteComptoirDermato","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport '../../assets/css/0020_objects/0810_obj_expertise_points_aside.css'\r\n\r\nclass ObjExpertisePointsAside extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n const { datasExpertise } = this.props;\r\n\r\n return (<> {datasExpertise && <>\r\n\t\t\t<div className=\"obj_expertise_points_aside\">\r\n\t\t\t \t<div className=\"obj_dashboard_infos\">\r\n\t\t\t \t\t<h3 className=\"t_title\"><strong>Mon Expertise</strong> {datasExpertise.Brand_Name} </h3>\r\n\t\t\t \t\t<div className=\"t_tag\"><span>{datasExpertise.Score} <em>{datasExpertise.Score>0 ? \"PTS\" : \"PT\"}</em></span></div>\r\n\r\n\t\t\t \t\t<div className=\"obj_progress-bar_formation\">\r\n\t\t\t \t\t\t<h4 className=\"t_title\"><strong>{datasExpertise.UserTrainingsOnLine_Completed} </strong>{datasExpertise.UserTrainingsOnLine_Completed>1 ? \"Formations réalisées\":\"Formation réalisée\"}</h4>\r\n\r\n\t\t\t \t\t\t<div className=\"obj_progress-bar\">\r\n\t\t\t \t\t\t\t<div className=\"ctn_steps\">\r\n\t\t\t \t\t\t\t\t{Array.from(Array(datasExpertise.Brand_NbTrainingsOnLine), (e, i) => {\r\n\t\t\t \t\t\t\t\t\tif (i < datasExpertise.UserTrainingsOnLine_Completed) {\r\n\t\t\t \t\t\t\t\t\t\treturn <div key={i} className=\"step is-complete\"></div>\r\n\t\t\t \t\t\t\t\t\t}\r\n\t\t\t \t\t\t\t\t\treturn <div key={i} className=\"step\"></div>\r\n\t\t\t \t\t\t\t\t})}\r\n\t\t\t \t\t\t\t</div>\r\n\t\t\t \t\t\t</div>\r\n\t\t\t \t\t</div>\r\n\t\t\t \t</div>\r\n\t\t\t</div>\r\n </>}</>)\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjExpertisePointsAside));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport Slider from \"react-slick\"\r\n\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport { throttle, isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\nimport '../../assets/css/0020_objects/0650_obj_favorite_formation_aside.css'\r\nimport '../../assets/css/0020_objects/0621_obj_carrousel_slider.css'\r\n\r\nclass ObjFavoriteFormationAside extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n var { datasTrainings } = this.props;\r\n\r\n if(!datasTrainings) return null;\r\n //à cause des modifications à la volée, il peut y avoir dans la liste des item non favorite\r\n const favoriteTrainings = datasTrainings.filter(x => x.Training_IsFavorite);\r\n if (favoriteTrainings.length === 0) return null; // Ne pas afficher le composant s'il n'y a pas de favoris\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: true,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n\t\t\tonSwipe: this.onSwipe.bind(this),\r\n\t\t\tcenterPadding: \"10%\",\r\n dots: true,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: false,\r\n speed: 750,\r\n }\r\n\r\n return (\r\n\t\t\t<div className=\"obj_favorite_aside_formation\">\r\n\t\t\t\t<h3 className=\"t_title\">\r\n\t\t\t\t\t\r\n\t\t\t\t\t{this.props.brand === \"comptoir_dermato\" && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t<IconSVG icon=\"star\" width=\"18\" height=\"18\" />\r\n\t\t\t\t\t\tFavoris\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{this.props.brand !== \"comptoir_dermato\" && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t<IconSVG icon=\"heart\" />\r\n\t\t\t\t\t\tFavoris\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t</h3>\r\n\t\t\t\t\r\n\t\t\t\t{ this.state.isMobile &&\r\n\t\t\t\t\t\r\n\t\t\t\t\t<div className=\"ctn_carrousel obj_menu_aside_list\">\r\n\t\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n { favoriteTrainings.slice(0,2).map((datasTraining, index) => (\r\n\t\t\t\t\t\t\t\t<div className=\"item\" key={index}>\r\n <div className=\"menu_aside-item\">\r\n {/* Url relative venant de la DB => doit être absolu*/}\r\n <a href={urlToHost(datasTraining.Training_Url)}>\r\n <div className=\"obj_image\">\r\n <picture className=\"ctn_image fade-in\">\r\n <img src={urlToHost(datasTraining.Training_Image_Url)} alt={datasTraining.Training_Title} />\r\n </picture>\r\n </div>\r\n <div className=\"menu_aside_text\">\r\n <h3 className=\"t_title\">{datasTraining.Training_Title}</h3>\r\n {/* <p className=\"t_desc\">{FavFormationAsideItem.desc}</p> */}\r\n <div className=\"obj_nb-views\">\r\n <IconSVG icon=\"eye_outline\" />\r\n <span>{datasTraining.Training_NbViews || 0} {(datasTraining.Training_NbViews || 0)<2 ? \"vue\" : \"vues\"}</span>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n ))}\r\n\t\t\t\t\t\t</Slider>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t{!this.state.isMobile &&\r\n\t\t\t\t\r\n <ul className=\"obj_menu_aside_list\">\r\n { favoriteTrainings.slice(0,2).map((datasTraining, index) => (\r\n <li key={index} className=\"menu_aside-item\">\r\n <a href={urlToHost(datasTraining.Training_Url)}>\r\n <div className=\"obj_image\">\r\n <picture className=\"ctn_image fade-in\">\r\n <img src={urlToHost(datasTraining.Training_Image_Url)} alt={datasTraining.Training_Title} />\r\n </picture>\r\n </div>\r\n <div className=\"menu_aside_text\">\r\n <h3 className=\"t_title\">{datasTraining.Training_Title}</h3>\r\n {/* <p className=\"t_desc\">{FavFormationAsideItem.desc}</p> */}\r\n <div className=\"obj_nb-views\">\r\n <IconSVG icon=\"eye_outline\" />\r\n <span>{datasTraining.Training_NbViews || 0} {(datasTraining.Training_NbViews || 0)<2 ? \"vue\" : \"vues\"}</span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t</div>\r\n )\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjFavoriteFormationAside));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport Slider from \"react-slick\"\r\n\r\nimport ObjPushThematiqueFormation from './ObjPushThematiqueFormation'\r\nimport { throttle, isMobile } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css'\r\nimport '../../assets/css/0020_objects/0850_obj_list_pushs_thematique_comptoir_dermato.css'\r\n\r\nclass ObjListPushsThematiqueComptoirDermato extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\r\n\tonSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n render() {\r\n const { datasThemes } = this.props;\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 3,\r\n swipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n dots: false,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n centerPadding: \"10%\",\r\n centerMode: true,\r\n slidesToShow: 1,\r\n dots: true,\r\n arrows: false,\r\n }\r\n }\r\n ]\r\n }\r\n\r\n\t\treturn (<>{datasThemes && <>\r\n\t\t\t<div className=\"obj_list_pushs_thematique_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h2 className=\"t_title\">Choisissez une thématique :</h2>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t{ this.state.isMobile &&\r\n\r\n\t\t\t\t\t<div className=\"ctn_carrousel\">\r\n\t\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n { datasThemes.map((datasTheme, index) => (\r\n <div className=\"item\" key={index}>\r\n <ObjPushThematiqueFormation datasTheme={datasTheme}/>\r\n </div>\r\n ))}\r\n\t\t\t\t\t\t</Slider>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t{!this.state.isMobile &&\r\n\r\n\t\t\t\t\t<div className=\"ctn_carrousel\">\r\n\t\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n { datasThemes.map((datasTheme, index) => (\r\n <div className=\"item\" key={index}>\r\n <ObjPushThematiqueFormation datasTheme={datasTheme}/>\r\n </div>\r\n ))}\r\n\t\t\t\t\t\t</Slider>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjListPushsThematiqueComptoirDermato));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport { urlToHost } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport '../../assets/css/0020_objects/0600_obj_menu_thematique_aside.css';\r\n\r\nclass ObjMenuThematiqueAside extends Component {\r\n\trender() {\r\n const { datasThemes, themeId } = this.props;\r\n\r\n\t\treturn (<>{datasThemes && <>\r\n\t\t\t<div className=\"obj_menu_aside_thematiques\">\r\n\t\t\t\t<h3 className=\"t_title\">Thématiques</h3>\r\n\t\t\t\t\r\n\t\t\t\t<ul className=\"obj_menu_aside_list\">\r\n { datasThemes.map((datasTheme, index) => (\r\n <li\r\n key={index}\r\n className={`menu_aside-item ${\r\n (datasTheme.id === themeId) ? 'is_current' : ''\r\n }`}\r\n >\r\n <a href={urlToHost(datasTheme.url)}>\r\n {datasTheme.pageTitle.value}\r\n </a>\r\n </li>\r\n ))}\r\n\t\t\t\t</ul>\r\n\t\t\t\t\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjMenuThematiqueAside));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport Slider from \"react-slick\"\r\nimport { throttle, isMobile, equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nimport ObjPushCardFormation from './ObjPushCardFormation'\r\n// import CustomSelect from './FormElements/CustomSelect'\r\n\r\nimport '../../assets/css/0020_objects/0680_obj_mes_formations_filtre.css'\r\nimport '../../assets/css/0020_objects/0690_obj_filtre_mes_formations.css'\r\nimport '../../assets/css/0020_objects/0621_obj_carrousel_slider.css'\r\n\r\nclass ObjMesFormationsFiltre extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile()\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.props.handleButtonFav.bind(this)\r\n\t}\r\n\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t\tthis.applyEqualHeight()\r\n\t}\r\n\r\n componentDidMount() {\r\n\t\tthis.applyEqualHeight()\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n componentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t}\r\n\tapplyEqualHeight() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tequalHeight(\".obj_mes_formations_filtre .obj_push_card .ctn_text_card\");\r\n\t\t});\r\n\t}\r\n\r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n const { datasTrainings, dataThemeTitle } = this.props;\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: true,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n\t\t\tonSwipe: this.onSwipe.bind(this),\r\n // variableWidth: true,\r\n\t\t\tcenterPadding: \"10%\",\r\n dots: true,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: false,\r\n speed: 750,\r\n }\r\n\r\n\t\treturn (<>{datasTrainings && <>\r\n\t\t\t<div className=\"obj_mes_formations_filtre\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h3 className=\"t_title\">Mes formations {dataThemeTitle?.jss.value}</h3>\r\n\t\t\t\t\t<p className=\"t_desc\">{`${datasTrainings.length} formation${datasTrainings.length > 1 ? \"s\" : \"\"}`}</p>\r\n\r\n\t\t\t\t\t{/* TODO SGU filtres\r\n {!this.state.isMobile &&\r\n\r\n\t\t\t\t\t\t<div className=\"obj_filtre_mes_formations\">\r\n\t\t\t\t\t\t\t<p className=\"t_desc\">Filtres</p>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<div className=\"obj_form\">\r\n\t\t\t\t\t\t\t\t<Formik\r\n\t\t\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\t\t\tmarque: ''\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalidationSchema={\r\n\t\t\t\t\t\t\t\t\t\tYup.object().shape({\r\n\t\t\t\t\t\t\t\t\t\t\tmarque: Yup.string().required()\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{ ({ handleSubmit, handleBlur, setFieldValue, setFieldTouched, errors, touched, values }) => (\r\n\t\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\r\n\t\t\t\t\t\t\t\t\t\t\t<CustomSelect\r\n\t\t\t\t\t\t\t\t\t\t\t\tfieldName={'marque'}\r\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={'Toutes'}\r\n\t\t\t\t\t\t\t\t\t\t\t\toptions={[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ value: 'lorem_0', label: 'Toutes' },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ value: 'lorem_1', label: 'Lorem ipsum 1' },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ value: 'lorem_2', label: 'Lorem ipsum 2' },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ value: 'lorem_3', label: 'Lorem ipsum 3' },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ value: 'lorem_4', label: 'Lorem ipsum 4' },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ value: 'lorem_5', label: 'Lorem ipsum 5' }\r\n\t\t\t\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetFieldTouched={setFieldTouched}\r\n\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\r\n\t\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Formik>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t} */}\r\n\t\t\t\t\t\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t{ this.state.isMobile &&\r\n\r\n\t\t\t\t\t<div className=\"ctn_carrousel\">\r\n\t\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n {datasTrainings.map((datasTraining, index) => (\r\n <div className=\"item\" key={index} >\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n\t\t\t\t\t\t</Slider>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\t{!this.state.isMobile &&\r\n\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n {datasTrainings.map((datasTraining, index) => (\r\n <ObjPushCardFormation key={index} typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n ))}\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjMesFormationsFiltre));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\n// import { Link } from 'react-router-dom'\r\n\r\nimport ObjPushCardFormation from './ObjPushCardFormation'\r\nimport Slider from \"react-slick\"\r\n\r\nimport { throttle, isMobile, equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nimport '../../assets/css/0020_objects/0670_obj_mon_parcours_formation.css'\r\n\r\nclass ObjMonParcoursFormation extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile()\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.props.handleButtonFav.bind(this)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t\tthis.applyEqualHeight()\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.applyEqualHeight()\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t}\r\n\tapplyEqualHeight() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tequalHeight(\".obj_mon_parcours_formation .obj_push_card .ctn_text_card\");\r\n\t\t});\r\n\t}\r\n \r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n \r\n\trender() {\r\n const { datasParcour } = this.props;\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: true,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tswipeToSlide: true,\r\n\t\t\tonSwipe: this.onSwipe.bind(this),\r\n // variableWidth: true,\r\n\t\t\tcenterPadding: \"10%\",\r\n dots: true,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: false,\r\n speed: 750,\r\n }\r\n\r\n\t\treturn (<>{datasParcour && <>\r\n\t\t\t<div className=\"obj_mon_parcours_formation\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h3 className=\"t_title\">{datasParcour.Parcours_Title}</h3>\r\n\t\t\t\t\t<p className=\"t_desc\">{datasParcour.Formations.length} {datasParcour.Formations.length > 1 ? \"formations\" : \"formation\"}</p>\r\n\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t{ this.state.isMobile &&\r\n\r\n\t\t\t\t\t<div className=\"ctn_carrousel\">\r\n\t\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n {datasParcour.Formations.map((datasTraining, index) => (\r\n <div className=\"item\" key={index} >\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.props.handleButtonFav}/>\r\n </div>\r\n ))}\r\n\t\t\t\t\t\t</Slider>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t{!this.state.isMobile &&\r\n\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n {datasParcour.Formations.map((datasTraining, index) => (\r\n <ObjPushCardFormation key={index} typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.props.handleButtonFav}/>\r\n ))}\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t</div>\r\n\t\t</>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjMonParcoursFormation));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport { GetFriendlyUrl } from \"../../utilities/FrontFunctions/AoxFrontFunctions\";\r\nimport { Image } from \"@sitecore-jss/sitecore-jss-react\";\r\n\r\nimport '../../assets/css/0010_sections/0430_section_aside_content_formation.css'\r\nimport '../../assets/css/0020_objects/0930_obj_outils_download_comptoir_dermato.css'\r\n\r\nclass ObjOutilsDownloadComptoirDermato extends Component {\r\n\trender() {\r\n const { datasOutils } = this.props;\r\n\r\n\t\treturn (<>{datasOutils && <>\r\n\t\t\t<div className=\"obj_outils_download_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t \t\t<h3 className=\"t_title\"><strong>Nos outils</strong></h3>\r\n\t\t\t \t\t<p className=\"t_desc\">à télécharger</p>\r\n\t\t\t \t</div>\r\n\t\t\t\t\r\n\t\t\t\t<ul className=\"obj_list_outils_download\">\r\n\t\t\t\t\t{ datasOutils.map((OutilsDownloadItem, index) => (<div key={index} >{\r\n GetFriendlyUrl(OutilsDownloadItem.pageLink) && \r\n <li className=\"item\">\r\n <a href={GetFriendlyUrl(OutilsDownloadItem.pageLink)}>\r\n <div className=\"v_icon\">\r\n <Image field={OutilsDownloadItem.pageImage.jss}></Image>\r\n </div>\r\n\r\n <div className=\"ctn_text\">\r\n <p className=\"t_title\"><strong>{OutilsDownloadItem.pageTitle.jss.value}</strong></p>\r\n <p className=\"t_desc\">{OutilsDownloadItem.pageSubtitle.jss.value}</p>\r\n </div>\r\n\r\n <button className=\"btn_download\">\r\n <IconSVG icon=\"download_file\" />\r\n </button>\r\n </a>\r\n </li>\r\n }</div>))}\r\n\t\t\t\t</ul>\r\n\t\t\t\t\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjOutilsDownloadComptoirDermato));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport Slider from \"react-slick\";\r\n\r\nimport ObjPushCardFormation from './ObjPushCardFormation'\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\n\r\nimport { equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\n\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css'\r\nimport '../../assets/css/0020_objects/0900_obj_parcours_perso_comptoir_dermato.css'\r\n\r\nclass ObjParcoursPersoHomeComptoirDermato extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t\tthis.handleButtonFav = this.props.handleButtonFav.bind(this)\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.applyEqualHeight();\r\n\t}\r\n\tapplyEqualHeight() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tequalHeight(\".obj_parcours_perso_comptoir_dermato .obj_push_card .ctn_text_card\");\r\n\t\t});\r\n\t}\r\n\r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n const { datasParcour } = this.props;\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 2,\r\n swipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n dots: false,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n centerPadding: \"10%\",\r\n centerMode: true,\r\n slidesToShow: 1,\r\n dots: true,\r\n arrows: false,\r\n }\r\n }\r\n ]\r\n }\r\n\r\n\t\treturn (<>{datasParcour && <>\r\n\t\t\t<div className=\"obj_parcours_perso_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h2 className=\"t_title\">\r\n\t\t\t\t\t\t<IconSVG icon=\"magic_wand\" />\r\n\t\t\t\t\t\t<strong>{datasParcour.Parcours_Title}</strong>\r\n\t\t\t\t\t</h2>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className=\"ctn_carrousel\">\r\n\r\n\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n {datasParcour.Formations.map((datasTraining, index) => (\r\n <div className=\"item\" key={index} >\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n\t\t\t\t\t</Slider>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjParcoursPersoHomeComptoirDermato));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { Link } from 'react-router-dom'\r\nimport '../../assets/css/0020_objects/0660_obj_products_related_aside.css';\r\n\r\nclass ObjProductsRelatedAside extends Component {\r\n\trender() {\r\n const { datasProduits } = this.props;\r\n\r\n\t\treturn (<>{datasProduits && <>\r\n\t\t\t<div className=\"obj_products_related_aside\">\r\n\t\t\t\t<h3 className=\"t_title\">Produits associés</h3>\r\n\t\t\t\t\r\n\t\t\t\t<ul className=\"obj_menu_aside_list\">\r\n\t\t\t\t\t{ datasProduits.map((datasProduct, index) => (\r\n <li key={index} className=\"menu_aside-item\">\r\n <Link to={datasProduct.url}>\r\n <RichText field={datasProduct.pageTitle.jss}></RichText>\r\n </Link>\r\n </li>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</ul>\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjProductsRelatedAside));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport Slider from \"react-slick\"\r\n\r\nimport { throttle, isMobile, equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport ObjPushCardFormation from './ObjPushCardFormation';\r\n\r\nimport '../../assets/css/0020_objects/0820_obj_produits_associes_comptoir_dermato.css';\r\nimport '../../assets/css/0020_objects/0621_obj_carrousel_slider.css'\r\n\r\n\r\nclass ObjProduitsAssociesComptoirDermato extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile()\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.props.handleButtonFav.bind(this)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t\tthis.applyEqualHeight()\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.applyEqualHeight();\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n componentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t\twindow.removeEventListener('scroll', this.throttleWindowScrollMainHeader)\r\n\t}\r\n\tapplyEqualHeight() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tequalHeight(\".obj_produits_associes_comptoir_dermato .obj_push_card .ctn_text_card\");\r\n\t\t});\r\n\t}\r\n \r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n\trender() {\r\n const { datasTrainings } = this.props;\r\n\r\n\t\tconst sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 3,\r\n swipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n dots: false,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n centerPadding: \"10%\",\r\n centerMode: true,\r\n slidesToShow: 1,\r\n dots: true,\r\n arrows: false,\r\n }\r\n }\r\n ]\r\n }\r\n\r\n\t\treturn (<>{datasTrainings && <>\r\n\t\t\t<div className=\"obj_produits_associes_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h3 className=\"t_title\">Produits associés</h3>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className=\"ctn_carrousel\">\r\n\t\t\t\t\t<Slider {...settings} ref={sliderRef}>\r\n {datasTrainings.map((datasTraining, index) => (\r\n <div className=\"item\" key={index} >\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjProduitsAssociesComptoirDermato));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\nimport { Link, Image, RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport '../../assets/css/0020_objects/0790_obj_push_comptoir_dermato_espace_formation.css'\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css';\r\n\r\nclass ObjPushComptoirDermatoEspaceFormation extends Component {\r\n\trender() {\r\n const { datasPage } = this.props;\r\n\r\n return (<>{datasPage && <>\r\n\t\t\t<div className=\"obj_push_comptoir_dermato_espace_formation\">\r\n\r\n\t\t\t\t<div className=\"obj_image\">\r\n\t\t\t\t\t<picture className=\"ctn_image fade-in\">\r\n <Image media={datasPage[\"Comptoir Dermato image\"]?.value}/>\r\n <Image media={datasPage[\"Comptoir Dermato logo\"]?.value} className=\"image_logo\"/>\r\n\t\t\t\t\t</picture>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className=\"ctn_text\">\r\n <h3 className=\"t_title\"><RichText field={datasPage[\"Comptoir Dermato text\"]}/></h3>\r\n <div className=\"ctn_cta\">\r\n\t\t\t\t\t\t<Link className=\"obj_cta-txt\" field={datasPage[\"Comptoir Dermato Url\"]?.value}/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjPushComptoirDermatoEspaceFormation));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\nimport { Link, Image, RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\n\r\nimport '../../assets/css/0020_objects/0780_obj_contact_question_formation.css'\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css';\r\n\r\nclass ObjPushContactezNousQuestionFormation extends Component {\r\n\trender() {\r\n const { datasPage } = this.props;\r\n\r\n return (<>{datasPage && <>\r\n\t\t\t<div className=\"obj_contact_question_formation\">\r\n\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t<h3 className=\"t_title\">{datasPage[\"Contact Name\"]?.value}</h3>\r\n\t\t\t\t\t<p className=\"t_desc\"><RichText field={datasPage[\"Contact Text\"]}/> <strong>{datasPage[\"Contact Phone\"]?.value}</strong></p>\r\n\t\t\t\t\t<div className=\"ctn_cta\">\r\n\t\t\t\t\t\t<Link className=\"obj_cta var_picto var_email reverse\" field={datasPage[\"Contact Url\"]?.value}>\r\n\t\t\t\t\t\t\t<IconSVG icon=\"email_open\" width=\"21\" height=\"17\" />\r\n\t\t\t\t\t\t\t{datasPage[\"Contact Url\"]?.value.text}\r\n\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p className=\"t_mentions\">{datasPage[\"Contact Mentions\"]?.value.text}</p>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className=\"obj_image\">\r\n <Link field={datasPage[\"Contact Url\"]?.value}>\r\n <picture className=\"ctn_image fade-in\">\r\n <Image media={datasPage[\"Contact Image\"]?.value}/>\r\n\t\t\t\t\t </picture>\r\n </Link>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t</div>\r\n </>}</>)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjPushContactezNousQuestionFormation));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from \"react\"\r\nimport Slider from \"react-slick\"\r\n\r\nimport { throttle, isMobile, equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport ObjPushCardFormation from './ObjPushCardFormation'\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\n\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css'\r\nimport '../../assets/css/0020_objects/0840_obj_tabs_comptoir_dermato_formation.css'\r\n\r\nclass ObjTabsComptoirDermatoFormation extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n isMobile: isMobile(),\r\n toggleState: 1, // État initial\r\n nbTabs: 3, // Nombre de Tabs\r\n titleTabs: [\r\n { label: \"Continuer la lecture\" },\r\n { label: \"Mes favoris\" },\r\n { label: \"Les plus vues\" }\r\n ],\r\n datasTrainings: props.datasTrainings, //state parce que variation par handleButtonFav\r\n }\r\n this.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n this.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.props.handleButtonFav.bind(this)\r\n }\r\n handleWindowResizeMainHeader() {\r\n this.setState({\r\n isMobile: isMobile()\r\n })\r\n this.applyEqualHeight()\r\n }\r\n\r\n componentDidMount() {\r\n this.applyEqualHeight()\r\n window.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n componentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n applyEqualHeight() {\r\n setTimeout(() => {\r\n equalHeight(\".obj_tabs_comptoir_dermato_formation .obj_tabs_list_content .obj_push_card .ctn_text_card\");\r\n });\r\n }\r\n \r\n toggleTab = (index) => {\r\n this.setState({ toggleState: index })\r\n if (index >= 1 && index <= this.state.nbTabs) {\r\n this.setState({ toggleState: index });\r\n }\r\n }\r\n\r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n render() {\r\n const { datasTrainings, toggleState, nbTabs, titleTabs } = this.state\r\n\r\n const sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 2,\r\n swipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n dots: false,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n centerPadding: \"10%\",\r\n centerMode: true,\r\n slidesToShow: 1,\r\n dots: true,\r\n arrows: false,\r\n }\r\n }\r\n ]\r\n }\r\n\r\n return (<> {datasTrainings && <>\r\n <div className=\"obj_tabs_comptoir_dermato_formation\">\r\n\r\n { this.state.isMobile &&\r\n \r\n <div className=\"obj_navigation_header_formation\">\r\n <div className=\"ctn_nav\">\r\n {/* Bouton gauche */}\r\n <button\r\n className={`obj_btn_tab_arrow arrow_prev ${toggleState === 1 ? \"is_disabled\" : \"\"}`}\r\n onClick={() => this.toggleTab(toggleState - 1)}\r\n disabled={toggleState === 1}\r\n >\r\n <IconSVG icon=\"arrow_left\" />\r\n </button>\r\n \r\n {/* Titres dynamiques */}\r\n <div className=\"ctn_title\">\r\n {titleTabs.map((tab, index) => (\r\n <span\r\n key={index}\r\n className={`t_title ${toggleState === index + 1 ? \"is_current\" : \"is_hidden\"}`}\r\n >\r\n {tab.label}\r\n </span>\r\n ))}\r\n </div>\r\n \r\n {/* Bouton droit */}\r\n <button\r\n className={`obj_btn_tab_arrow arrow_next ${toggleState === nbTabs ? \"is_disabled\" : \"\"}`}\r\n onClick={() => this.toggleTab(toggleState + 1)}\r\n disabled={toggleState === nbTabs}\r\n >\r\n <IconSVG icon=\"arrow_right\" />\r\n </button>\r\n </div>\r\n </div>\r\n\r\n }\r\n\r\n <div className=\"obj_tabs_list_tabs\">\r\n {titleTabs.map((tab, index) => (\r\n <button\r\n key={index}\r\n className={toggleState === index + 1 ? \"obj_btn_tab is_active\" : \"obj_btn_tab\"}\r\n onClick={() => this.toggleTab(index + 1)}\r\n >\r\n <span className=\"t_title\">{tab.label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n\r\n <div className=\"obj_tabs_list_content\">\r\n <div\r\n className={toggleState === 1 ? \"obj_tabs_content is_active\" : \"obj_tabs_content\"}\r\n >\r\n {datasTrainings.TrainingsInProgress?.some(x => true) ?\r\n <Slider {...settings} ref={sliderRef}>\r\n {datasTrainings.TrainingsInProgress.map((datasTraining, index) => (\r\n <div className=\"item\" key={index} > \r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n :\r\n <>\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_title\"> </h3>\r\n </div>\r\n <div className=\"ctn_content\">\r\n <p>Vous n’avez pas commencé de formation, choisissez-en une.</p>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n\r\n <div\r\n className={toggleState === 2 ? \"obj_tabs_content is_active\" : \"obj_tabs_content\"}\r\n >\r\n {datasTrainings.TrainingsFavorite?.some(x => true) ?\r\n <Slider {...settings} ref={sliderRef}>\r\n {datasTrainings.TrainingsFavorite.map((datasTraining, index) => (\r\n <div className=\"item\" key={index}>\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n :\r\n <>\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_title\"> </h3>\r\n </div>\r\n <div className=\"ctn_content\">\r\n <p>Vous n’avez pas de formation favorites.</p>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n\r\n <div\r\n className={toggleState === 3 ? \"obj_tabs_content is_active\" : \"obj_tabs_content\"}\r\n >\r\n {datasTrainings.TrainingsMostView?.some(x => true) ?\r\n <Slider {...settings} ref={sliderRef}>\r\n {datasTrainings.TrainingsMostView.map((datasTraining, index) => (\r\n <div className=\"item\" key={index}>\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n :\r\n <>\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_title\"> </h3>\r\n </div>\r\n <div className=\"ctn_content\">\r\n <p>Aucune formation vue</p>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </>}</>)\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjTabsComptoirDermatoFormation));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from \"react\"\r\nimport Slider from \"react-slick\"\r\n\r\nimport { throttle, isMobile, equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { quanta, isNotEmpty } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\"\r\nimport ObjPushThematiqueFormation from './ObjPushThematiqueFormation'\r\n\r\nimport '../../assets/css/0020_objects/0700_obj_tabs_parcours_formation.css'\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css'\r\n\r\nclass ObjTabsHomeComptoirDermato extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n isMobile: false,\r\n toggleState: 1, // État initial\r\n nbTabs: 0, // Nombre de Tabs\r\n titleTabs: [],\r\n }\r\n this.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n this.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n }\r\n handleWindowResizeMainHeader() {\r\n this.setState({\r\n isMobile: isMobile()\r\n })\r\n this.applyEqualHeight()\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n isMobile: isMobile(),\r\n toggleState: 1, // État initial\r\n nbTabs: quanta(this.props.datasSegments), // Nombre de Tabs\r\n titleTabs: isNotEmpty(this.props.datasSegments) ? this.props.datasSegments.map(o => o.pageTitle.jss.value) : [],\r\n })\r\n this.applyEqualHeight();\r\n window.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n componentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n applyEqualHeight() {\r\n setTimeout(() => {\r\n equalHeight(\".obj_tabs_parcours_formation .obj_tabs_content .obj_push_card .ctn_text_card\");\r\n });\r\n }\r\n \r\n toggleTab = (index) => {\r\n this.setState({ toggleState: index })\r\n if (index >= 1 && index <= this.state.nbTabs) {\r\n this.setState({ toggleState: index });\r\n }\r\n }\r\n\r\n onSwipe() {\r\n if (this.slider) {\r\n \tthis.slider.innerSlider.clickable = true;\r\n }\r\n\t}\r\n\r\n render() {\r\n const { toggleState, nbTabs, titleTabs } = this.state\r\n const { datasSegments } = this.props;\r\n\r\n const sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 3,\r\n swipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n dots: false,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n centerPadding: \"10%\",\r\n centerMode: true,\r\n slidesToShow: 1,\r\n dots: true,\r\n arrows: false,\r\n }\r\n }\r\n ]\r\n }\r\n\r\n\t\treturn (<>{isNotEmpty(datasSegments) && <>\r\n <div className=\"obj_tabs_parcours_formation\">\r\n\r\n { this.state.isMobile && \r\n <>\r\n <div className=\"obj_navigation_header_formation\">\r\n <div className=\"ctn_nav\">\r\n {/* Bouton gauche */}\r\n <button\r\n className={`obj_btn_tab_arrow arrow_prev ${toggleState === 1 ? \"is_disabled\" : \"\"}`}\r\n onClick={() => this.toggleTab(toggleState - 1)}\r\n disabled={toggleState === 1}\r\n >\r\n <IconSVG icon=\"arrow_left\" />\r\n </button>\r\n \r\n {/* Titres dynamiques */}\r\n <div className=\"ctn_title\">\r\n {titleTabs.map((tab, index) => (\r\n <span\r\n key={index}\r\n className={`t_title ${toggleState === index + 1 ? \"is_current\" : \"is_hidden\"}`}\r\n >\r\n {tab}\r\n </span>\r\n ))}\r\n </div>\r\n \r\n {/* Bouton droit */}\r\n <button\r\n className={`obj_btn_tab_arrow arrow_next ${toggleState === nbTabs ? \"is_disabled\" : \"\"}`}\r\n onClick={() => this.toggleTab(toggleState + 1)}\r\n disabled={toggleState === nbTabs}\r\n >\r\n <IconSVG icon=\"arrow_right\" />\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"obj_tabs_list_content\">\r\n {datasSegments.map((dataSegment, index) => (\r\n <div key={index} className={toggleState === index+1 ? \"obj_tabs_content is_active\" : \"obj_tabs_content\"} >\r\n {isNotEmpty(dataSegment.ListThemeFolder[0]?.ListTheme) && <>\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_subtitle\">Choisissez une thématique :</h3>\r\n </div>\r\n\r\n <Slider {...settings} ref={sliderRef}>\r\n { dataSegment.ListThemeFolder[0].ListTheme.map((datasTheme, index) => (\r\n <div className=\"item\" key={index}>\r\n <ObjPushThematiqueFormation datasTheme={datasTheme}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n </>}\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n }\r\n\r\n {!this.state.isMobile &&\r\n <>\r\n <div className=\"obj_tabs_list_tabs\">\r\n {datasSegments.map((dataSegment, index) => (\r\n <button\r\n key={index}\r\n className={toggleState === index + 1 ? \"obj_btn_tab is_active\" : \"obj_btn_tab\"}\r\n onClick={() => this.toggleTab(index + 1)}\r\n >\r\n <span className=\"t_title\">{dataSegment.pageTitle.jss.value}</span>\r\n </button>\r\n ))}\r\n </div>\r\n\r\n <div className=\"obj_tabs_list_content\">\r\n {datasSegments.map((dataSegment, index) => (\r\n <div key={index} className={toggleState === index+1 ? \"obj_tabs_content is_active\" : \"obj_tabs_content\"} >\r\n {isNotEmpty(dataSegment.ListThemeFolder[0]?.ListTheme) && <>\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_subtitle\">Choisissez une thématique :</h3>\r\n </div>\r\n\r\n <div className=\"ctn_row\">\r\n { dataSegment.ListThemeFolder[0].ListTheme.map((datasTheme, index) => (\r\n <ObjPushThematiqueFormation key={index} datasTheme={datasTheme}/>\r\n ))}\r\n </div>\r\n </>}\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n }\r\n\r\n </div>\r\n </>}</>)\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjTabsHomeComptoirDermato));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from \"react\";\r\nimport Slider from \"react-slick\";\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport ObjPushCardFormation from './ObjPushCardFormation';\r\nimport { throttle, isMobile, equalHeight } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\nimport IconSVG from \"../../utilities/FrontFunctions/IconSVG\";\r\nimport { postApiDatas } from \"../../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { trackGA4Event } from '../../utilities/FrontFunctions/AoxTrackingFunctions'\r\nimport ModalFormationsFav from \"../Modal/ModalFormationsFav\"\r\n\r\nimport '../../assets/css/0020_objects/0700_obj_tabs_parcours_formation.css';\r\nimport '../../assets/css/0020_objects/0710_obj_carousel_formation.css';\r\n\r\nclass ObjTabsHomeFormation extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n isMobile: isMobile(),\r\n toggleState: 1, // État initial\r\n nbTabs: 3, // Nombre de Tabs\r\n titleTabs: [\r\n { label: \"Continuer la lecture\" },\r\n { label: \"Mes favoris\" },\r\n { label: \"Les plus vues\" }\r\n ],\r\n datasTrainings: props.datasTrainings, //state parce que variation par handleButtonFav\r\n }\r\n this.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n this.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.handleButtonFav.bind(this)\r\n }\r\n \r\n handleWindowResizeMainHeader() {\r\n this.setState({\r\n isMobile: isMobile()\r\n })\r\n this.applyEqualHeight()\r\n }\r\n\r\n componentDidMount() {\r\n this.applyEqualHeight()\r\n window.addEventListener('resize', this.throttleWindowResizeMainHeader)\r\n }\r\n componentWillUnmount() {\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeMainHeader)\r\n\t}\r\n applyEqualHeight() {\r\n setTimeout(() => {\r\n equalHeight(\".obj_tabs_parcours_formation .obj_tabs_content .obj_push_card .ctn_text_card\");\r\n });\r\n }\r\n \r\n toggleTab = (index) => {\r\n this.setState({ toggleState: index })\r\n if (index >= 1 && index <= this.state.nbTabs) {\r\n this.setState({ toggleState: index });\r\n }\r\n this.applyEqualHeight();\r\n }\r\n\r\n handleButtonFav(id) {\r\n //pushs possibles sur les 3 tabs : en cours, favori, plus vues\r\n var datasTraining = this.state.datasTrainings.TrainingsInProgress.find(t => t.Training_ItemTraining_Id === id);\r\n if(!datasTraining){ datasTraining = this.state.datasTrainings.TrainingsFavorite.find(t => t.Training_ItemTraining_Id === id); }\r\n if(!datasTraining){ datasTraining = this.state.datasTrainings.TrainingsMostView.find(t => t.Training_ItemTraining_Id === id); }\r\n if(datasTraining){\r\n if(!datasTraining.Training_IsFavorite){\r\n //ajouter favori\r\n document.body.classList.add('is-loading')\r\n trackGA4Event(window.trackDatas, \"training_add_favorite\", \"training\", \"training add favorite\", \"star icon\");\r\n postApiDatas(`/apiaox/Call/AddTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.datasTrainings;\r\n\r\n //switcher le statut sur les 2 listes\r\n newDatas.TrainingsInProgress.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n newDatas.TrainingsMostView.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n\r\n //ajouter à la liste des favoris\r\n //(voir plus bas) l'item n'a pas été supprimé avant => filter() pour le supprimer ici avant de l'ajouter\r\n newDatas.TrainingsFavorite = this.state.apiDatas.TrainingsFavorite.filter(t => t.Training_ItemTraining_Id !== id)\r\n datasTraining.Training_IsFavorite = true;\r\n newDatas.TrainingsFavorite.push(datasTraining);\r\n\r\n this.setState({ datasTrainings: newDatas })\r\n \r\n if(!localStorage.getItem('dontShowAgainModalMAJFormationsFav')){\r\n this.ModalFormationsFav.openModal();\r\n }\r\n }\r\n });\r\n } else {\r\n //supprimer favori\r\n document.body.classList.add('is-loading')\r\n postApiDatas(`/apiaox/Call/RemoveTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.datasTrainings;\r\n\r\n //switcher le statut sur les 2 listes\r\n newDatas.TrainingsInProgress.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n newDatas.TrainingsMostView.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n //supprimer à la liste des favoris\r\n //à cause d'un pb d'actualisation, pas de suppression de pushs dynamique au slicker => juste switch de son statut\r\n newDatas.TrainingsFavorite.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n\r\n this.setState({ datasTrainings: newDatas })\r\n }\r\n });\r\n }\r\n }\r\n }\r\n \r\n onSwipe() {\r\n if (this.slider) {\r\n this.slider.innerSlider.clickable = true;\r\n }\r\n }\r\n\r\n render() {\r\n const { datasPageFormations } = this.props;\r\n const { datasTrainings, toggleState, nbTabs, titleTabs } = this.state\r\n\r\n const sliderRef = slider => {this.slider = slider}\r\n const settings = {\r\n className: \"obj_carousel_formation obj_carrousel_slider\",\r\n centerMode: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 3,\r\n swipeToSlide: true,\r\n onSwipe: this.onSwipe.bind(this),\r\n dots: false,\r\n dotsClass: \"slider-nav\",\r\n appendDots: dots => (\r\n <div className=\"slider-nav\" >\r\n <ul> {dots} </ul>\r\n </div>\r\n ),\r\n arrows: true,\r\n speed: 750,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n centerPadding: \"10%\",\r\n centerMode: true,\r\n slidesToShow: 1,\r\n dots: true,\r\n arrows: false,\r\n }\r\n }\r\n ]\r\n }\r\n\r\n return (<> {datasTrainings && <>\r\n <div className=\"obj_tabs_parcours_formation\">\r\n\r\n { this.state.isMobile &&\r\n <div className=\"obj_navigation_header_formation\">\r\n <div className=\"ctn_nav\">\r\n {/* Bouton gauche */}\r\n <button\r\n className={`obj_btn_tab_arrow arrow_prev ${toggleState === 1 ? \"is_disabled\" : \"\"}`}\r\n onClick={() => this.toggleTab(toggleState - 1)}\r\n disabled={toggleState === 1}\r\n >\r\n <IconSVG icon=\"arrow_left\" />\r\n </button>\r\n \r\n {/* Titres dynamiques */}\r\n <div className=\"ctn_title\">\r\n {titleTabs.map((tab, index) => (\r\n <span\r\n key={index}\r\n className={`t_title ${toggleState === index + 1 ? \"is_current\" : \"is_hidden\"}`}\r\n >\r\n {tab.label}\r\n </span>\r\n ))}\r\n </div>\r\n \r\n {/* Bouton droit */}\r\n <button\r\n className={`obj_btn_tab_arrow arrow_next ${toggleState === nbTabs ? \"is_disabled\" : \"\"}`}\r\n onClick={() => this.toggleTab(toggleState + 1)}\r\n disabled={toggleState === nbTabs}\r\n >\r\n <IconSVG icon=\"arrow_right\" />\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div className=\"obj_tabs_list_tabs\">\r\n {titleTabs.map((tab, index) => (\r\n <button\r\n key={index}\r\n className={toggleState === index + 1 ? \"obj_btn_tab is_active\" : \"obj_btn_tab\"}\r\n onClick={() => this.toggleTab(index + 1)}\r\n >\r\n <span className=\"t_title\">{tab.label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n\r\n <div className=\"obj_tabs_list_content\">\r\n <div\r\n className={toggleState === 1 ? \"obj_tabs_content is_active\" : \"obj_tabs_content\"}\r\n >\r\n {datasTrainings.TrainingsInProgress?.some(x => true) ?\r\n <Slider {...settings} ref={sliderRef}>\r\n {datasTrainings.TrainingsInProgress.map((datasTraining, index) => (\r\n <div className=\"item\" key={index} > \r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n :\r\n <>\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_title\"> </h3>\r\n </div>\r\n <div className=\"ctn_content\">\r\n <p>{this.props.t('Brand_TabProgress_NoOne')}</p>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n\r\n <div\r\n className={toggleState === 2 ? \"obj_tabs_content is_active\" : \"obj_tabs_content\"}\r\n >\r\n {datasTrainings.TrainingsFavorite?.some(x => true) ?\r\n <Slider {...settings} ref={sliderRef}>\r\n {datasTrainings.TrainingsFavorite.map((datasTraining, index) => (\r\n <div className=\"item\" key={index}>\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n :\r\n <>\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_title\"> </h3>\r\n </div>\r\n <div className=\"ctn_content\">\r\n <p>{this.props.t('Brand_TabFavorite_NoOne')}</p>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n\r\n <div\r\n className={toggleState === 3 ? \"obj_tabs_content is_active\" : \"obj_tabs_content\"}\r\n >\r\n {datasTrainings.TrainingsMostView?.some(x => true) ?\r\n <Slider {...settings} ref={sliderRef}>\r\n {datasTrainings.TrainingsMostView.map((datasTraining, index) => (\r\n <div className=\"item\" key={index}>\r\n <ObjPushCardFormation typeofPush=\"Formation\" datasTraining={datasTraining} handleButtonFav={this.handleButtonFav}/>\r\n </div>\r\n ))}\r\n </Slider>\r\n :\r\n <>\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_title\"> </h3>\r\n </div>\r\n <div className=\"ctn_content\">\r\n <p>{this.props.t('Brand_TabMostView_NoOne')}</p>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n {datasPageFormations &&\r\n <p className=\"ctn_cta\">\r\n <Link className=\"obj_cta-txt\" to={datasPageFormations.url}>Voir toutes les formations »</Link>\r\n </p>\r\n }\r\n\r\n <ModalFormationsFav \r\n onRef={ref => (this.ModalFormationsFav = ref)} \r\n modalTitle=\"\"\r\n modalText=\"Vous venez d'ajouter cette formation à votre liste de favoris\"\r\n modalCtaText=\"Retrouver mes favoris\"\r\n />\r\n </div>\r\n </>}</>)\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(ObjTabsHomeFormation));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react';\r\nimport { RichText, Image, Link } from '@sitecore-jss/sitecore-jss-react';\r\nimport Slider from \"react-slick\";\r\n\r\nimport { throttle } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\n\r\nimport '../../assets/css/0010_sections/0440_section-hero_formation-carousel.css'\r\n\r\nclass SectionHeroComptoirDermatoCarousel extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t}\r\n\t\tthis.refreshCarouselHeight = this.refreshCarouselHeight.bind(this)\r\n\t\tthis.handleWindowResizeheroCarousel = this.handleWindowResizeheroCarousel.bind(this)\r\n\t\tthis.throttleWindowResizeheroCarousel = throttle(this.handleWindowResizeheroCarousel, 100)\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeheroCarousel)\r\n\t\twindow.dispatchEvent(new Event('resize'))\r\n\t}\r\n\tcomponentWillUnmount(){\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeheroCarousel)\r\n\t}\r\n\trefreshCarouselHeight(){\r\n\t\tvar heroCarousel = document.querySelector('.hero-carousel')\r\n if(heroCarousel){\r\n\t\t\tvar slickList = heroCarousel.querySelector('.slick-list'),\r\n\t\t\t carouselHeight = heroCarousel.clientHeight\r\n\t\t slickList.style.height = carouselHeight + \"px\"\r\n }\r\n\t}\r\n\thandleWindowResizeheroCarousel() {\r\n\t\tthis.refreshCarouselHeight()\r\n\t}\r\n\trender() {\r\n const { dataBanners } = this.props;\r\n\t\t\r\n\t\tconst settings = {\r\n\t\t\tlazyLoad: true,\r\n\t\t\tautoplay: true,\r\n\t\t\tautoplaySpeed: 5000,\r\n\t\t\tdots: false,\r\n\t\t\tinfinite: true,\r\n\t\t\tspeed: 750,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t\tresponsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n dots: true,\r\n\t\t\t\t\t\tswipeToSlide: true,\r\n\t\t\t\t\t\tdotsClass: \"slider-nav\",\r\n\t\t\t\t\t\tappendDots: dots => (\r\n\t\t\t\t\t\t\t<div className=\"slider-nav\" >\r\n\t\t\t\t\t\t\t\t<ul> {dots} </ul>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tarrows: false,\r\n }\r\n }\r\n ]\r\n\t\t}\r\n\t\t\r\n\t\treturn (<>{dataBanners && <>\r\n\t\t\t<section className=\"obj_section section_hero_formation-carrousel\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<Slider className=\"obj_carousel hero-carousel\" {...settings}>\r\n\t\t\t\t\t\t{ dataBanners.map((bannerItem, index) => (\r\n\t\t\t\t\t\t\t<div key={index}>\r\n\t\t\t\t\t\t\t\t<div className={`obj_section_hero fade-in${bannerItem.darkMode.boolValue ? ' var_dark' : ''}${bannerItem.styleBrand.targetItem ? bannerItem.styleBrand.targetItem.brandCssClass.value : ''}${' var_' + bannerItem.align.value}`}>\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_section\">\r\n {/* banner type text : CAFTextBanner */}\r\n\t\t\t\t\t\t\t\t\t\t{ bannerItem.title &&\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ bannerItem.posttitle.jss && <RichText tag=\"h2\" className=\"t_subtitle\" field={bannerItem.posttitle.jss} /> }\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ bannerItem.ontitle.jss && <p className=\"t_ribbon\"><span>{bannerItem.ontitle.value}</span></p> }\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ bannerItem.title.jss && <RichText tag=\"h1\" className=\"t_title\" field={bannerItem.title.jss} /> }\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ bannerItem.content.jss && <RichText tag=\"p\" className=\"t_desc\" field={bannerItem.content.jss} /> }\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n {/* banner type image : CAFImageBanner */}\r\n\t\t\t\t\t\t\t\t\t\t{ bannerItem.image && <>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n { bannerItem.link.jss && bannerItem.link.jss?.value.href!== \"\" && <Link className={`obj_cta${bannerItem.darkMode.boolValue ? ' reverse' : ''}`} field={bannerItem.link.jss} />}\r\n </div>\r\n <picture className=\"ctn_background\">\r\n <source srcSet={bannerItem.imageMobile.jss.value.src} media=\"(max-width:767px)\"/>\r\n <Image field={bannerItem.image.jss}></Image>\r\n </picture>\r\n\t\t\t\t\t\t\t\t\t\t</>}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Slider>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(SectionHeroComptoirDermatoCarousel));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react';\r\nimport { RichText, Image, Link } from '@sitecore-jss/sitecore-jss-react';\r\nimport Slider from \"react-slick\";\r\n\r\nimport { throttle } from \"../../utilities/FrontFunctions/AoxGlobalFrontFunctions\";\r\n\r\nimport '../../assets/css/0010_sections/0440_section-hero_formation-carousel.css'\r\n\r\nclass SectionHeroFormationCarousel extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t}\r\n\t\tthis.refreshCarouselHeight = this.refreshCarouselHeight.bind(this)\r\n\t\tthis.handleWindowResizeheroCarousel = this.handleWindowResizeheroCarousel.bind(this)\r\n\t\tthis.throttleWindowResizeheroCarousel = throttle(this.handleWindowResizeheroCarousel, 100)\r\n\t}\r\n\tcomponentDidMount(){\r\n\t\twindow.addEventListener('resize', this.throttleWindowResizeheroCarousel)\r\n\t\twindow.dispatchEvent(new Event('resize'))\r\n\t}\r\n\tcomponentWillUnmount(){\r\n\t\twindow.removeEventListener('resize', this.throttleWindowResizeheroCarousel)\r\n\t}\r\n\trefreshCarouselHeight(){\r\n\t\tvar heroCarousel = document.querySelector('.hero-carousel')\r\n if(heroCarousel){\r\n\t\t\tvar slickList = heroCarousel.querySelector('.slick-list'),\r\n\t\t\t carouselHeight = heroCarousel.clientHeight\r\n\t\t slickList.style.height = carouselHeight + \"px\"\r\n }\r\n\t}\r\n\thandleWindowResizeheroCarousel() {\r\n\t\tthis.refreshCarouselHeight()\r\n\t}\r\n\trender() {\r\n const { dataBanners } = this.props;\r\n\t\t\r\n\t\tconst settings = {\r\n\t\t\tlazyLoad: true,\r\n\t\t\tautoplay: true,\r\n\t\t\tautoplaySpeed: 5000,\r\n\t\t\tdots: false,\r\n\t\t\tinfinite: true,\r\n\t\t\tspeed: 750,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t\tresponsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n dots: true,\r\n\t\t\t\t\t\tswipeToSlide: true,\r\n\t\t\t\t\t\tdotsClass: \"slider-nav\",\r\n\t\t\t\t\t\tappendDots: dots => (\r\n\t\t\t\t\t\t\t<div className=\"slider-nav\" >\r\n\t\t\t\t\t\t\t\t<ul> {dots} </ul>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tarrows: false,\r\n }\r\n }\r\n ]\r\n\t\t}\r\n\t\t\r\n\t\treturn (<>{dataBanners && <>\r\n\t\t\t<section className=\"obj_section section_hero_formation-carrousel\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<Slider className=\"obj_carousel hero-carousel\" {...settings}>\r\n\t\t\t\t\t\t{ dataBanners.map((bannerItem, index) => (\r\n\t\t\t\t\t\t\t<div key={index}>\r\n\t\t\t\t\t\t\t\t<div className={`obj_section_hero fade-in ${bannerItem.styleBrand.targetItem ? bannerItem.styleBrand.targetItem.brandCssClass.value : ''}${bannerItem.darkMode.boolValue ? ' var_dark' : ''}${' var_' + bannerItem.align.value}`}>\r\n\t\t\t\t\t\t\t\t\t<div className=\"ctn_section\">\r\n {/* banner type text : CAFTextBanner */}\r\n { bannerItem.template.id === \"31C956382BE1472095B3E8D7A9E8C60D\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ bannerItem.ontitle.jss && <p className=\"t_ribbon\"><span>{bannerItem.ontitle.value}</span></p> }\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ bannerItem.title.jss && <RichText tag=\"h2\" className=\"t_title\" field={bannerItem.title.jss} /> }\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ bannerItem.posttitle.jss && <RichText tag=\"h3\" className=\"t_subtitle\" field={bannerItem.posttitle.jss} /> }\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ bannerItem.content.jss && <RichText tag=\"p\" className=\"t_desc\" field={bannerItem.content.jss} /> }\r\n { bannerItem.link.jss?.value.href!== \"\" && <Link className={`obj_cta${bannerItem.darkMode.boolValue ? ' reverse' : ''}`} field={bannerItem.link.jss} />}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n { bannerItem.template.id !== \"31C956382BE1472095B3E8D7A9E8C60D\" &&\r\n bannerItem.link.jss && bannerItem.link.jss?.value.href!== \"\" &&\r\n <div className=\"ctn_text is_full_img\">\r\n <Link className={`obj_cta${bannerItem.darkMode.boolValue ? ' reverse' : ''}`} field={bannerItem.link.jss} />\r\n </div>\r\n }\r\n <picture className=\"ctn_background\">\r\n <source srcSet={bannerItem.imageMobile.jss.value.src} media=\"(max-width:767px)\"/>\r\n <Image field={bannerItem.image.jss}></Image>\r\n </picture>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Slider>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(SectionHeroFormationCarousel));","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass DefaultModalAction extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t\tthis.action = this.action.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\taction() {\r\n\t\tthis.props.handleAction();\r\n\t\tthis.closeModal();\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Modal\r\n isOpen={this.state.modalIsOpen}\r\n onRequestClose={this.closeModal}\r\n style={customStyles}\r\n className=\"obj_popin popin_small\"\r\n closeTimeoutMS={300}\r\n contentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<p className=\"t_title\">{this.props.titleText}</p>\r\n\t\t\t\t\t\t<p className=\"t_main\">{this.props.mainText}</p>\r\n <div className=\"ctn_cta\">\r\n <button className=\"obj_cta\" type=\"button\" onClick={() => this.action()}>{this.props.actionText}</button>\r\n </div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default DefaultModalAction","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar'\r\nimport AnimatedProgressProvider from '../../utilities/FrontFunctions/Provider/AnimatedProgressProvider'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass ExpertModal extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false,\r\n\t\t\tprogressValue: 51\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_expert\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t\t{/* <LinearGradient\r\n\t\t\t\t\t\tid={'gradient-circleprogress-popin'}\r\n\t\t\t\t\t\tx1={'100%'}\r\n\t\t\t\t\t\ty1={'100%'}\r\n\t\t\t\t\t\tstartColor={'#d7dadb'}\r\n\t\t\t\t\t\tendColor={'#a9abac'}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<LinearGradient\r\n\t\t\t\t\t\tid={'gradient-starscore-popin'}\r\n\t\t\t\t\t\ty2={'100%'}\r\n\t\t\t\t\t\tstartColor={'#9fa0a1'}\r\n\t\t\t\t\t\tendColor={'#f2f6f7'}\r\n\t\t\t\t\t/> */}\r\n\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<p className=\"t_title\">Votre expertise</p>\r\n\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t\t<div className={\"obj_circle-progress-expertise var_\" + this.state.globalStatus}>\r\n\r\n\t\t\t\t\t\t\t\t<AnimatedProgressProvider valueEnd={this.state.progressValue}>\r\n\t\t\t\t\t\t\t\t\t{value => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgressbar\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t\t\t\t\t\t\tstrokeWidth={10}\r\n\t\t\t\t\t\t\t\t\t\t\t\tcircleRatio={0.72}\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyles={buildStyles({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\trotation: 0.64\r\n\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t</AnimatedProgressProvider>\r\n\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_txt\">\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_percent\">{this.state.progressValue}<span>%</span></p>\r\n\t\t\t\t\t\t\t\t\t<p className=\"t_title\">Expertise CAF</p>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div className=\"ctn_avatar\">\r\n\t\t\t\t\t\t\t\t\t<figure>\r\n\t\t\t\t\t\t\t\t\t\t<img src={require(\"../../assets/images/v_avatar-xl.png\")} alt=\"User\"/>\r\n\t\t\t\t\t\t\t\t\t</figure>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<p className=\"t_main\">Effectuez toutes les formations de chacune des marques vous concernant pour obtenir 100% et devenir une Experte ou un Expert. <br/>Le % est la moyenne des % de progression de chacune des marques pour laquelle vous avez démarrée un parcours de formation.</p>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<p className=\"t_title\">Votre statut</p>\r\n\t\t\t\t\t\t<p className=\"t_main\">Changez de statut en effectuant toutes les formations disponibles. À chaque nouvelle formation, vous disposez de 30 jours pour la réaliser afin de conserver votre statut.</p>\r\n\t\t\t\t\t\t<div className=\"ctn_row var_star\">\r\n\t\t\t\t\t\t\t<div className=\"obj_star-score var_bronze\">\r\n\t\t\t\t\t\t\t\t<p className=\"t_status\">Bronze</p>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div className=\"obj_star-score var_argent\">\r\n\t\t\t\t\t\t\t\t<p className=\"t_status\">Argent</p>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div className=\"obj_star-score var_or\">\r\n\t\t\t\t\t\t\t\t<p className=\"t_status\">Or</p>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div className=\"obj_star-score var_experte\">\r\n\t\t\t\t\t\t\t\t<p className=\"t_status\">Experte</p>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"ctn_grey\">\r\n\t\t\t\t\t\t\t<p className=\"t_main\">Si vous n‘avez pas pu réaliser les formations à temps, vous pouvez toujours les effectuer et obtenir le statut ultérieurement.</p>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default ExpertModal","import React, { Component } from 'react'\r\nimport Modal from 'react-modal'\r\n\r\nimport ReactPlayer from 'react-player'\r\n\r\nconst customStyles = {\r\n\toverlay : {\r\n\t\tzIndex\t\t\t: '99999',\r\n\t\tbackgroundColor\t: 'rgba(0,0,0,0.6)'\r\n\t},\r\n\tcontent : {\r\n\t\tposition\t: 'fixed',\r\n\t\ttop\t\t\t: '50%',\r\n\t\tleft\t\t: '50%',\r\n\t\tright\t\t: 'auto',\r\n\t\tbottom\t\t: 'auto',\r\n\t\ttransform\t: 'translate(-50%, -50%)',\r\n\t\toutline\t\t: '0'\r\n\t}\r\n}\r\n\r\nModal.setAppElement('#root')\r\n\r\nclass VideoModalNoFS extends Component {\r\n\tconstructor() {\r\n\t\tsuper()\r\n\t\tthis.state = {\r\n\t\t\tmodalIsOpen: false\r\n\t\t}\r\n\t\tthis.openModal = this.openModal.bind(this)\r\n\t\tthis.closeModal = this.closeModal.bind(this)\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.onRef(this)\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.onRef(null)\r\n\t}\r\n\topenModal() {\r\n\t\tthis.setState({modalIsOpen: true})\r\n\t}\r\n\tcloseModal() {\r\n\t\tthis.setState({modalIsOpen: false})\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<Modal\r\n\t\t\t\t\tisOpen={this.state.modalIsOpen}\r\n\t\t\t\t\tonRequestClose={this.closeModal}\r\n\t\t\t\t\tstyle={customStyles}\r\n\t\t\t\t\tclassName=\"obj_popin popin_video-nofs\"\r\n\t\t\t\t\tbodyOpenClassName=\"ReactModal__Body--open-nofs\"\r\n\t\t\t\t\tcloseTimeoutMS={300}\r\n\t\t\t\t\tcontentLabel=\"Modal\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<button className=\"bt_close\" onClick={this.closeModal}></button>\r\n\t\t\t\t\t<div className=\"ctn_popin\">\r\n\t\t\t\t\t\t<p className=\"t_title\">{this.props.videoTitle}</p>\r\n\t\t\t\t\t\t<div className=\"ctn_iframe\">\r\n\t\t\t\t\t\t\t<ReactPlayer\r\n\t\t\t\t\t\t\t\turl={this.props.videoUrl}\r\n\t\t\t\t\t\t\t\tconfig={{\r\n\t\t\t\t\t\t\t\t\tyoutube: {\r\n\t\t\t\t\t\t\t\t\t\tplayerVars: { autoplay: this.props.videoAutoplay }\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tvimeo: {\r\n\t\t\t\t\t\t\t\t\t\tplayerOptions: { autoplay: this.props.videoAutoplay }\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tfile: {\r\n\t\t\t\t\t\t\t\t\t\tattributes: { autoplay: this.props.videoAutoplay }\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\twidth=\"1920\"\r\n\t\t\t\t\t\t\t\theight=\"1080\"\r\n\t\t\t\t\t\t\t\tcontrols\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Modal>\r\n\t\t\t</>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nVideoModalNoFS.defaultProps = {\r\n\tvideoAutoplay: 0\r\n}\r\n\r\nexport default VideoModalNoFS","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport ObjBannerHeroComptoirDermato from './inc/ObjBannerHeroComptoirDermato'\r\n\r\nimport '../assets/css/0020_objects/0880_obj_intro_home_comptoir_dermato.css'\r\nimport '../assets/css/0020_objects/0890_obj_tabs_home_comptoir_dermato.css'\r\n// TODO SGU créer un composant unique PageBrand_av et réunir ces sous-éléments\r\nclass PageBrandAv_Banner extends Component {\r\n constructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n const { scDatas } = this.props.fields.data;\r\n\r\n return (<>{scDatas?.ListContentForPage[0]?.ListFolderBanners[0]?.ListBanners && <>\r\n <ObjBannerHeroComptoirDermato dataBanners={scDatas?.ListContentForPage[0]?.ListFolderBanners[0]?.ListBanners}/>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageBrandAv_Banner));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport { getApiDatas, postApiDatas, getStorageItem } from \"../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { trackGA4Event } from '../utilities/FrontFunctions/AoxTrackingFunctions'\r\n\r\nimport ObjParcoursPersoHomeComptoirDermato from './inc/ObjParcoursPersoHomeComptoirDermato'\r\nimport ObjContinuerLectureHomeComptoirDermato from './inc/ObjContinuerLectureHomeComptoirDermato'\r\nimport ModalFormationsFav from \"./Modal/ModalFormationsFav\"\r\n\r\nimport '../assets/css/0020_objects/0880_obj_intro_home_comptoir_dermato.css'\r\nimport '../assets/css/0020_objects/0890_obj_tabs_home_comptoir_dermato.css'\r\n\r\nclass PageBrandAv_Formations extends Component {\r\n constructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t\tthis.handleButtonFav = this.handleButtonFav.bind(this)\r\n\t}\r\n\r\n componentDidMount() {\r\n const { scDatas } = this.props.fields.data;\r\n\r\n let params = `sBrandCode=${scDatas.codeAbbrege?.value}`;\r\n const datasScParcours1 = scDatas.ListParcoursFolder[0]?.ListParcours[0];\r\n if(datasScParcours1){\r\n params += \"&sParcours1Id=\" + datasScParcours1.id;\r\n }\r\n\r\n getApiDatas(`/apiaox/Call/PageBrandAv?${params}`).then((apiDatas) => { \r\n this.setState({ apiDatas:apiDatas })\r\n window.scrollTo(0,0)\r\n })\r\n }\r\n\r\n handleButtonFav(id) {\r\n //pushs possibles sur parcours et continuer\r\n var datasTraining = this.state.apiDatas.Parcours1.Formations.find(t => t.Training_ItemTraining_Id === id);\r\n if(!datasTraining){ datasTraining = this.state.apiDatas.TrainingsInProgress.find(t => t.Training_ItemTraining_Id === id); }\r\n if(datasTraining){\r\n if(!datasTraining.Training_IsFavorite){\r\n //ajouter favori\r\n document.body.classList.add('is-loading')\r\n trackGA4Event(window.trackDatas, \"training_add_favorite\", \"training\", \"training add favorite\", \"star icon\");\r\n postApiDatas(`/apiaox/Call/AddTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.apiDatas;\r\n\r\n //switcher le statut sur les 2 listes\r\n newDatas.Parcours1.Formations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n newDatas.TrainingsInProgress.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n\r\n this.setState({ apiDatas: newDatas })\r\n \r\n if(!getStorageItem('dontShowAgainModalMAJFormationsFav')){\r\n this.ModalFormationsFav.openModal();\r\n }\r\n }\r\n });\r\n } else {\r\n //supprimer favori\r\n document.body.classList.add('is-loading')\r\n postApiDatas(`/apiaox/Call/RemoveTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.apiDatas;\r\n\r\n //switcher le statut sur les 2 listes\r\n newDatas.Parcours1.Formations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n newDatas.TrainingsInProgress.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n\r\n this.setState({ apiDatas: newDatas })\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n\trender() {\r\n const { scDatas } = this.props.fields.data;\r\n const { apiDatas } = this.state;\r\n\r\n return (<>{scDatas && apiDatas && <>\r\n\t\t\t<section className=\"obj_section section_content_formation section_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n {apiDatas.Parcours1 && \r\n <ObjParcoursPersoHomeComptoirDermato datasParcour={apiDatas.Parcours1} handleButtonFav={this.handleButtonFav}/>\r\n }\r\n\r\n {apiDatas.TrainingsInProgress && (apiDatas.TrainingsInProgress.length > 0) && \r\n <ObjContinuerLectureHomeComptoirDermato datasTrainings={apiDatas.TrainingsInProgress} handleButtonFav={this.handleButtonFav}/>\r\n }\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n <ModalFormationsFav \r\n onRef={ref => (this.ModalFormationsFav = ref)} \r\n modalTitle=\"\"\r\n modalText=\"Vous venez d'ajouter cette formation à votre liste de favoris\"\r\n modalCtaText=\"Retrouver mes favoris\"\r\n />\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageBrandAv_Formations));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport '../assets/css/0020_objects/0880_obj_intro_home_comptoir_dermato.css'\r\nimport '../assets/css/0020_objects/0890_obj_tabs_home_comptoir_dermato.css'\r\n\r\nclass PageBrandAv_Intro extends Component {\r\n constructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n const { scDatas } = this.props.fields.data;\r\n\r\n return (<>{scDatas && <>\r\n\t\t\t<section className=\"obj_section obj_intro_home_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n { scDatas.pageText.jss && <RichText tag=\"p\" className=\"t_desc\" field={scDatas.pageText.jss} /> }\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageBrandAv_Intro));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport ObjTabsHomeComptoirDermato from './inc/ObjTabsHomeComptoirDermato'\r\n\r\nimport '../assets/css/0020_objects/0880_obj_intro_home_comptoir_dermato.css'\r\nimport '../assets/css/0020_objects/0890_obj_tabs_home_comptoir_dermato.css'\r\n\r\nclass PageBrandAv_TabsSegments extends Component {\r\n constructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n const { scDatas } = this.props.fields.data;\r\n\r\n return (<>{scDatas?.ListSegmentFolder[0].ListSegment && <>\r\n\t\t\t<section className=\"obj_section obj_tabs_home_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\r\n\t\t\t\t\t<ObjTabsHomeComptoirDermato datasSegments = {scDatas?.ListSegmentFolder[0].ListSegment}/>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageBrandAv_TabsSegments));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react';\r\n\r\nimport SectionHeroFormationCarousel from './inc/SectionHeroFormationCarousel'\r\n\r\nimport '../assets/css/0010_sections/0420_section_content_formation.css'\r\nimport '../assets/css/0010_sections/0450_section_home_carrousel_tabs_formation.css'\r\n// TODO SGU créer un composant unique Page_Brand et réunir ces sous-éléments\r\n\r\nclass PageBrand_CarrouselBanners extends Component {\r\n\trender() {\r\n const { scDatas } = this.props.fields.data;\r\n\r\n\t\treturn (<>{scDatas?.ListContentForPage[0]?.ListFolderBanners[0]?.ListBanners && <>\r\n <SectionHeroFormationCarousel dataBanners={scDatas.ListContentForPage[0].ListFolderBanners[0].ListBanners}/>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageBrand_CarrouselBanners));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react';\r\n\r\nimport ObjALaUneHomeFormation from './inc/ObjALaUneHomeFormation';\r\nimport ObjAGagnerHomeFormation from './inc/ObjAGagnerHomeFormation';\r\n\r\nimport '../assets/css/0010_sections/0420_section_content_formation.css';\r\nimport '../assets/css/0010_sections/0450_section_home_carrousel_tabs_formation.css';\r\n\r\nclass PageBrand_CarrouselsPushs extends Component {\r\n\trender() {\r\n const { scDatas } = this.props.fields.data;\r\n\r\n\t\treturn (<>{scDatas && scDatas.ListContentForPage?.some(x => true) && <>\r\n\t\t\t<section className=\"obj_section section_content_formation\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_row\">\r\n\t\t\t\t\t\t{scDatas.ListContentForPage[0].ListFolderPushsALaUne[0].ListPushs && <ObjALaUneHomeFormation scDatasPushs={scDatas.ListContentForPage[0].ListFolderPushsALaUne[0].ListPushs} scDatasBrandName={scDatas.pageTitle.value}/>}\r\n\t\t\t\t\t\t{scDatas.ListContentForPage[0].ListFolderPushsAGagner[0].ListPushs && <ObjAGagnerHomeFormation scDatasPushs={scDatas.ListContentForPage[0].ListFolderPushsAGagner[0].ListPushs} scDatasBrandName={scDatas.pageTitle.value}/>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t </section>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageBrand_CarrouselsPushs));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport { getApiDatas } from \"../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport ObjTabsHomeFormation from './inc/ObjTabsHomeFormation'\r\n\r\nimport '../assets/css/0010_sections/0420_section_content_formation.css'\r\nimport '../assets/css/0010_sections/0450_section_home_carrousel_tabs_formation.css'\r\n\r\nclass PageBrand_TabsFormations extends Component {\r\n constructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\r\n componentDidMount() {\r\n getApiDatas(`/apiaox/Call/PageBrand?sBrandCode=${this.props.fields.data.scDatas?.codeAbbrege.value}`).then((apiDatas) => { \r\n this.setState({ apiDatas:apiDatas }) \r\n window.scrollTo(0,0)\r\n })\r\n }\r\n\r\n\trender() {\r\n const { scDatas } = this.props.fields.data;\r\n const { apiDatas } = this.state;\r\n\r\n return (<>{scDatas && apiDatas && <>\r\n\t\t\t<section className=\"obj_section section_home_carrousel_tabs_formation\">\r\n <div className=\"ctn_section\">\r\n <div className=\"ctn_title\">\r\n <h3 className=\"t_title\"><strong>Mes formations</strong></h3>\r\n </div>\r\n \r\n <div className=\"ctn_content\">\r\n <ObjTabsHomeFormation datasTrainings={apiDatas} datasPageFormations={scDatas.PageFormations[0]}/>\r\n </div>\r\n </div>\r\n </section>\r\n </>}</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageBrand_TabsFormations));","import React, { Component } from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { Image, Link } from \"@sitecore-jss/sitecore-jss-react\";\r\n\r\nclass SectionPushBrand extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {};\r\n\t}\r\n\trender() {\r\n\t\tconst { scFields } = this.props;\r\n \r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{scFields && scFields[\"Brands Image\"] && scFields[\"Brands Image\"].value && scFields[\"Brands Link\"] && scFields[\"Brands Link\"].value && (\r\n\t\t\t\t\t<section className=\"obj_section section_push_brand_home\">\r\n\t\t\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t\t\t<h4 className=\"t_title\">{this.props.t(\"Home_PushBrandsTitle\")}</h4>\r\n\t\t\t\t\t\t\t<Link field={scFields[\"Brands Link\"].value} target=\"_blank\" rel=\"noopener noreferrer\">\r\n\t\t\t\t\t\t\t\t<picture className=\"ctn_background fade-in\">\r\n\t\t\t\t\t\t\t\t\t<source srcSet={scFields[\"Brands Image\"].value.src} media=\"(max-width:767px)\" />\r\n\t\t\t\t\t\t\t\t\t<Image field={scFields[\"Brands Image\"].value} />\r\n\t\t\t\t\t\t\t\t</picture>\r\n\t\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</section>\r\n\t\t\t\t)}\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(SectionPushBrand);\r\n","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport { throttle, isMobile } from \"../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { getApiDatas, postApiDatas, getStorageItem, isNotEmpty } from \"../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { trackGA4Event } from '../utilities/FrontFunctions/AoxTrackingFunctions'\r\nimport ModalFormationsFav from \"./Modal/ModalFormationsFav\"\r\nimport SectionHeroFormationCarousel from './inc/SectionHeroFormationCarousel'\r\nimport ObjListPushsThematiqueComptoirDermato from './inc/ObjListPushsThematiqueComptoirDermato'\r\nimport ObjTabsComptoirDermatoFormation from './inc/ObjTabsComptoirDermatoFormation'\r\nimport ObjDerniersAjoutsAside from './inc/ObjDerniersAjoutsAside'\r\nimport ObjExpertisePointsAside from './inc/ObjExpertisePointsAside'\r\nimport ObjFavoriteFormationAside from './inc/ObjFavoriteFormationAside'\r\n\r\nimport '../assets/css/0010_sections/0450_section_home_carrousel_tabs_formation.css'\r\nimport '../assets/css/0020_objects/0860_obj_title_page_comptoir_dermato.css'\r\n\r\nclass PageSegment extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.handleButtonFav.bind(this)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\r\n fetchData = () => {\r\n const { scDatas } = this.props.fields.data;\r\n getApiDatas(`/apiaox/Call/PageSegment?sSegmentId=${scDatas.id}&sBrandCode=${scDatas.ListBrand[0]?.codeAbbrege.value}`).then((apiDatas) => { \r\n this.setState({ apiDatas:apiDatas })\r\n window.scrollTo(0,0);\r\n })\r\n };\r\n componentDidMount() {\r\n this.fetchData();\r\n }\r\n componentDidUpdate(prevProps) {\r\n // contrôle que sur le SegmentId; dans les ScDatas, SegmentId => BrandCode, donc si le BrandCode a changé, le SegmentId a changé\r\n if (this.props.fields.data?.scDatas?.id !== prevProps.fields.data?.scDatas?.id) {\r\n this.fetchData();\r\n }\r\n }\r\n\r\n handleButtonFav(id) {\r\n //pushs possibles sur les 3 tabs continuer, favoris, plus vues\r\n var datasTraining = this.state.apiDatas.TrainingsInProgress.find(t => t.Training_ItemTraining_Id === id);\r\n if(!datasTraining){ datasTraining = this.state.apiDatas.TrainingsFavorite.find(t => t.Training_ItemTraining_Id === id); }\r\n if(!datasTraining){ datasTraining = this.state.apiDatas.TrainingsMostView.find(t => t.Training_ItemTraining_Id === id); }\r\n if(datasTraining){\r\n if(!datasTraining.Training_IsFavorite){\r\n //ajouter favori\r\n document.body.classList.add('is-loading')\r\n trackGA4Event(window.trackDatas, \"training_add_favorite\", \"training\", \"training add favorite\", \"star icon\");\r\n postApiDatas(`/apiaox/Call/AddTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.apiDatas;\r\n\r\n //switcher le statut sur les 2 listes continuer & plus vues\r\n newDatas.TrainingsInProgress.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n newDatas.TrainingsMostView.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n\r\n //ajouter à la liste des favoris\r\n //(voir plus bas) l'item n'a pas été supprimé avant => filter() pour le supprimer ici avant de l'ajouter\r\n newDatas.TrainingsFavorite = this.state.apiDatas.TrainingsFavorite.filter(t => t.Training_ItemTraining_Id !== id)\r\n datasTraining.Training_IsFavorite = true;\r\n newDatas.TrainingsFavorite.push(datasTraining);\r\n\r\n this.setState({ apiDatas: newDatas })\r\n \r\n if(!getStorageItem('dontShowAgainModalMAJFormationsFav')){\r\n this.ModalFormationsFav.openModal();\r\n }\r\n }\r\n });\r\n } else {\r\n //supprimer favori\r\n document.body.classList.add('is-loading')\r\n postApiDatas(`/apiaox/Call/RemoveTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.apiDatas;\r\n\r\n //switcher le statut sur les 2 listes\r\n newDatas.TrainingsInProgress.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n newDatas.TrainingsMostView.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n //supprimer à la liste des favoris\r\n //à cause d'un pb d'actualisation, pas de suppression de pushs dynamique au slicker => juste switch de son statut\r\n newDatas.TrainingsFavorite.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n\r\n this.setState({ apiDatas: newDatas })\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n\trender() {\r\n const { scDatas } = this.props.fields.data;\r\n const { apiDatas } = this.state;\r\n\r\n\t\treturn (<>{ scDatas && apiDatas && <>\r\n\r\n {isNotEmpty(scDatas.ListFolderBanners[0]?.ListBanners) && <>\r\n <SectionHeroFormationCarousel dataBanners={scDatas.ListFolderBanners[0].ListBanners}/>\r\n </>}\r\n\r\n\t\t\t{apiDatas.UserBrandExpertise && this.state.isMobile &&\r\n\t\t\t\t<ObjExpertisePointsAside datasExpertise={apiDatas.UserBrandExpertise}/>\t\r\n\t\t\t}\r\n\r\n\t\t\t<section className=\"obj_section obj_title_page_comptoir_dermato\">\r\n\t\t\t\t<div className=\"ctn_title\">\r\n\t\t\t\t\t<h2 className=\"t_title\">{scDatas.pageTitle.jss.value}</h2>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n\t\t\t<section className=\"obj_section section_aside_content\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_columns\">\r\n\t\t\t\t\t\t<div className=\"ctn_content\">\r\n {scDatas.ListThemeFolder[0]?.ListTheme && \r\n <ObjListPushsThematiqueComptoirDermato datasThemes={scDatas.ListThemeFolder[0].ListTheme}/>\r\n }\r\n\r\n\t\t\t\t\t\t\t<ObjTabsComptoirDermatoFormation datasTrainings={apiDatas} handleButtonFav={this.handleButtonFav}/>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_aside\">\r\n\t\t\t\t\t\t\t{apiDatas.UserBrandExpertise && !this.state.isMobile && \r\n <ObjExpertisePointsAside datasExpertise={apiDatas.UserBrandExpertise}/>\r\n }\r\n\r\n\t\t\t\t\t\t\t{apiDatas.TrainingsMostRecent && (apiDatas.TrainingsMostRecent.length > 0) && \r\n <ObjDerniersAjoutsAside datasTrainings={apiDatas.TrainingsMostRecent}/>\r\n }\r\n\r\n\t\t\t\t\t\t\t{apiDatas.TrainingsFavorite && (apiDatas.TrainingsFavorite.length > 0) && \r\n <ObjFavoriteFormationAside datasTrainings={apiDatas.TrainingsFavorite}/>\r\n }\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n <ModalFormationsFav \r\n onRef={ref => (this.ModalFormationsFav = ref)} \r\n modalTitle=\"\"\r\n modalText=\"Vous venez d'ajouter cette formation à votre liste de favoris\"\r\n modalCtaText=\"Retrouver mes favoris\"\r\n />\r\n </>}</>)\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageSegment));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { throttle, isMobile } from \"../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { getApiDatas } from \"../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { postApiDatas } from \"../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { trackGA4Event } from '../utilities/FrontFunctions/AoxTrackingFunctions'\r\n\r\nimport ObjFormationDashboardHeader from './inc/ObjFormationDashboardHeader'\r\nimport ObjMonParcoursFormation from './inc/ObjMonParcoursFormation'\r\nimport ObjMesFormationsFiltre from './inc/ObjMesFormationsFiltre'\r\nimport ObjDirectComptoirDermato from './inc/ObjDirectComptoirDermato'\r\nimport ObjMenuThematiqueAside from './inc/ObjMenuThematiqueAside'\r\nimport ObjProductsRelatedAside from './inc/ObjProductsRelatedAside'\r\nimport ObjFavoriteFormationAside from './inc/ObjFavoriteFormationAside'\r\nimport ModalFormationsFav from \"./Modal/ModalFormationsFav\"\r\nimport ObjRetour from \"./Obj/ObjRetour\";\r\n\r\nimport '../assets/css/0010_sections/0410_section_hero_formation.css'\r\nimport '../assets/css/0010_sections/0430_section_aside_content_formation.css'\r\nimport '../assets/css/0020_objects/0600_obj_menu_thematique_aside.css'\r\nimport '../assets/css/0020_objects/0800_obj_navigation_header_formation.css'\r\n\r\nclass PageTheme extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.handleButtonFav.bind(this)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n \r\n fetchData = () => {\r\n const { scDatas } = this.props.fields.data;\r\n\r\n let params = `sThemeId=${scDatas.id}&sBrandCode=${scDatas.ListBrand[0]?.codeAbbrege.value}`;\r\n const datasScParcours1 = scDatas.ListBrand[0]?.ListParcoursFolder[0]?.ListParcours[0];\r\n if(datasScParcours1){\r\n params += \"&sParcours1Id=\" + datasScParcours1.id;\r\n }\r\n\r\n getApiDatas(`/apiaox/Call/PageTheme?${params}`).then((apiDatas) => { \r\n this.setState({ apiDatas:apiDatas })\r\n window.scrollTo(0,0)\r\n })\r\n };\r\n\r\n\tcomponentDidMount() {\r\n this.fetchData();\r\n\t}\r\n \r\n componentDidUpdate(prevProps) {\r\n // contrôle que sur le ThemeId; dans les ScDatas, ThemeId => BrandCode, donc si le BrandCode a changé, le ThemeId a changé\r\n if (this.props.fields.data?.scDatas?.id !== prevProps.fields.data?.scDatas?.id) {\r\n this.fetchData();\r\n }\r\n }\r\n \r\n handleButtonFav(id) {\r\n //pushs possibles sur le parcours1, les formations, plus loin\r\n //!! liste des favori à gérer pour le aside\r\n var datasTraining = this.state.apiDatas.Parcours1.Formations.find(t => t.Training_ItemTraining_Id === id);\r\n if(!datasTraining){ datasTraining = this.state.apiDatas.ThemeFormations.find(t => t.Training_ItemTraining_Id === id); }\r\n if(!datasTraining){ datasTraining = this.state.apiDatas.ThemeAutresFormations.find(t => t.Training_ItemTraining_Id === id); }\r\n if(datasTraining){\r\n if(!datasTraining.Training_IsFavorite){\r\n //ajouter favori\r\n document.body.classList.add('is-loading')\r\n trackGA4Event(window.trackDatas, \"training_add_favorite\", \"training\", \"training add favorite\", \"star icon\");\r\n postApiDatas(`/apiaox/Call/AddTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.apiDatas;\r\n\r\n //switcher le statut sur les listes\r\n newDatas.Parcours1.Formations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n newDatas.ThemeFormations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n newDatas.ThemeAutresFormations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n\r\n //ajouter à la liste des favoris\r\n datasTraining.Training_IsFavorite = true; newDatas.TrainingsFavorite.unshift(datasTraining);\r\n\r\n this.setState({ apiDatas: newDatas })\r\n \r\n if(!localStorage.getItem('dontShowAgainModalMAJFormationsFav')){\r\n this.ModalFormationsFav.openModal();\r\n }\r\n }\r\n });\r\n } else {\r\n //supprimer favori\r\n document.body.classList.add('is-loading')\r\n postApiDatas(`/apiaox/Call/RemoveTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.apiDatas;\r\n\r\n //switcher le statut sur les listes\r\n newDatas.Parcours1.Formations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n newDatas.ThemeFormations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n newDatas.ThemeAutresFormations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n\r\n //supprimer des favoris\r\n newDatas.TrainingsFavorite = this.state.apiDatas.TrainingsFavorite.filter(t => t.Training_ItemTraining_Id !== id);\r\n\r\n this.setState({ apiDatas: newDatas })\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n\trender() {\r\n const pageDatas = this.props.sitecoreContext.route?.fields;\r\n const { scDatas , scDatasComptoir} = this.props.fields.data;\r\n const { apiDatas } = this.state;\r\n\r\n\t\treturn (<>{ scDatas && apiDatas && <>\r\n\r\n\t\t\t<section className=\"obj_section section_hero_formation\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_text\">\r\n { pageDatas && <Text className=\"t_subtitle\" field={pageDatas[\"Page SubTitle\"]} tag=\"h2\"></Text> }\r\n { pageDatas && <Text className=\"t_title\" field={pageDatas[\"Page Title\"]} tag=\"h1\"></Text> }\r\n { pageDatas && <Text className=\"t_desc\" field={pageDatas[\"Page Text\"]} tag=\"p\"></Text> }\r\n\r\n { !this.state.isMobile &&<ObjRetour/> }\r\n\t\t\t\t\t</div>\r\n\r\n {apiDatas.UserBrandExpertise && <ObjFormationDashboardHeader datasExpertise={apiDatas.UserBrandExpertise}/>}\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n\t\t\t<section className=\"obj_section section_aside_content\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_columns\">\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_content\">\r\n\t\t\t\t\t\t\t{apiDatas.Parcours1?.Formations?.length > 0 && <ObjMonParcoursFormation datasParcour={apiDatas.Parcours1} handleButtonFav={this.handleButtonFav}/>}\r\n\t\t\t\t\t\t\t{apiDatas.ThemeFormations && <ObjMesFormationsFiltre datasTrainings={apiDatas.ThemeFormations} dataThemeTitle={scDatas.pageTitle} handleButtonFav={this.handleButtonFav}/>}\r\n\t\t\t\t\t\t\t{apiDatas.ThemeAutresFormations && <ObjDirectComptoirDermato datasTrainings={apiDatas.ThemeAutresFormations} dataType=\"Theme\" datasComptoir={scDatasComptoir} handleButtonFav={this.handleButtonFav}/>}\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_aside\">\r\n\t\t\t\t\t\t {scDatas.ListBrand[0]?.ListThemeFolder[0]?.ListTheme && <ObjMenuThematiqueAside datasThemes={scDatas.ListBrand[0].ListThemeFolder[0].ListTheme} themeId={scDatas.id}/>}\r\n\t\t\t\t\t\t\t{apiDatas.TrainingsFavorite?.length >0 && <ObjFavoriteFormationAside datasTrainings={apiDatas.TrainingsFavorite}/>}\r\n\t\t\t\t\t\t {scDatas.produitsAssocies?.targetItems?.length > 0 && <ObjProductsRelatedAside datasProduits={scDatas.produitsAssocies.targetItems}/>}\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n <ModalFormationsFav \r\n onRef={ref => (this.ModalFormationsFav = ref)} \r\n modalTitle=\"\"\r\n modalText=\"Vous venez d'ajouter cette formation à votre liste de favoris\"\r\n modalCtaText=\"Retrouver mes favoris\"\r\n />\r\n </>}</>)\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageTheme));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport React, { Component } from 'react'\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { throttle, isMobile } from \"../utilities/FrontFunctions/AoxGlobalFrontFunctions\"\r\nimport { getApiDatas } from \"../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { postApiDatas } from \"../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport { trackGA4Event } from '../utilities/FrontFunctions/AoxTrackingFunctions'\r\n\r\nimport ObjExpertisePointsAside from './inc/ObjExpertisePointsAside'\r\nimport ObjFavoriteFormationAside from './inc/ObjFavoriteFormationAside'\r\nimport ObjMenuThematiqueAside from './inc/ObjMenuThematiqueAside'\r\nimport ObjDirectComptoirDermato from './inc/ObjDirectComptoirDermato'\r\nimport ObjProduitsAssociesComptoirDermato from './inc/ObjProduitsAssociesComptoirDermato'\r\nimport ObjOutilsDownloadComptoirDermato from './inc/ObjOutilsDownloadComptoirDermato'\r\nimport ObjEssentielMinuteComptoirDermato from './inc/ObjEssentielMinuteComptoirDermato'\r\nimport ModalFormationsFav from \"./Modal/ModalFormationsFav\"\r\nimport ObjRetour from \"./Obj/ObjRetour\";\r\n\r\nclass PageThemeAv extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tisMobile: isMobile(),\r\n apiDatas: null,\r\n\t\t}\r\n\t\tthis.handleWindowResizeMainHeader = this.handleWindowResizeMainHeader.bind(this)\r\n\t\tthis.throttleWindowResizeMainHeader = throttle(this.handleWindowResizeMainHeader, 200)\r\n\t\tthis.handleButtonFav = this.handleButtonFav.bind(this)\r\n\t}\r\n\thandleWindowResizeMainHeader() {\r\n\t\tthis.setState({\r\n\t\t\tisMobile: isMobile()\r\n\t\t})\r\n\t}\r\n\r\n fetchData = () => {\r\n const { scDatas } = this.props.fields.data;\r\n getApiDatas(`/apiaox/Call/PageThemeAv?sThemeId=${scDatas.id}&sBrandCode=${scDatas.ListBrand[0]?.codeAbbrege.value}`).then((apiDatas) => { \r\n this.setState({ apiDatas:apiDatas })\r\n window.scrollTo(0,0);\r\n })\r\n };\r\n\r\n\tcomponentDidMount() {\r\n this.fetchData();\r\n\t}\r\n \r\n componentDidUpdate(prevProps) {\r\n // contrôle que sur le ThemeId; dans les ScDatas, ThemeId => BrandCode, donc si le BrandCode a changé, le ThemeId a changé\r\n if (this.props.fields.data?.scDatas?.id !== prevProps.fields.data?.scDatas?.id) {\r\n this.fetchData();\r\n }\r\n }\r\n \r\n handleButtonFav(id) {\r\n //pushs possibles sur plus loin et associés\r\n //!! liste des favori à gérer pour le aside\r\n var datasTraining = this.state.apiDatas.ThemeFormations.find(t => t.Training_ItemTraining_Id === id);\r\n if(!datasTraining){ datasTraining = this.state.apiDatas.ThemeProduitsAssocies.find(t => t.Training_ItemTraining_Id === id); }\r\n if(datasTraining){\r\n if(!datasTraining.Training_IsFavorite){\r\n //ajouter favori\r\n document.body.classList.add('is-loading')\r\n trackGA4Event(window.trackDatas, \"training_add_favorite\", \"training\", \"training add favorite\", \"star icon\");\r\n postApiDatas(`/apiaox/Call/AddTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.apiDatas;\r\n\r\n //switcher le statut sur les listes\r\n newDatas.ThemeFormations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n newDatas.ThemeProduitsAssocies.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = true}});\r\n\r\n //ajouter à la liste des favoris\r\n datasTraining.Training_IsFavorite = true; newDatas.TrainingsFavorite.unshift(datasTraining);\r\n\r\n this.setState({ apiDatas: newDatas })\r\n \r\n if(!localStorage.getItem('dontShowAgainModalMAJFormationsFav')){\r\n this.ModalFormationsFav.openModal();\r\n }\r\n }\r\n });\r\n } else {\r\n //supprimer favori\r\n document.body.classList.add('is-loading')\r\n postApiDatas(`/apiaox/Call/RemoveTrainingFavorite?sIdTraining=${id}`, {})\r\n .then((res) => {\r\n document.body.classList.remove('is-loading')\r\n if (!res.IsValid) { alert(res.Message) }\r\n else {\r\n let newDatas = this.state.apiDatas;\r\n\r\n //switcher le statut sur les listes\r\n newDatas.ThemeFormations.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n newDatas.ThemeProduitsAssocies.forEach(t => {if(t.Training_ItemTraining_Id === id){t.Training_IsFavorite = false}});\r\n\r\n //supprimer des favoris\r\n newDatas.TrainingsFavorite = this.state.apiDatas.TrainingsFavorite.filter(t => t.Training_ItemTraining_Id !== id);\r\n \r\n this.setState({ apiDatas: newDatas })\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n\trender() {\r\n const pageDatas = this.props.sitecoreContext.route?.fields;\r\n const { scDatas, scDatasComptoir } = this.props.fields.data;\r\n const { apiDatas } = this.state;\r\n\r\n\t\treturn (<>{ scDatas && apiDatas && <>\r\n\t\t\t<section className=\"obj_section section_hero_formation\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_text\">\r\n\t\t\t\t\t\t<h2 className=\"t_subtitle\">{scDatas.ListSegment[0].pageTitle.value}</h2>\r\n { pageDatas && <Text className=\"t_title\" field={pageDatas[\"Page Title\"]} tag=\"h1\"></Text> }\r\n\r\n <ObjRetour/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n {apiDatas.UserBrandExpertise && this.state.isMobile &&\r\n <ObjExpertisePointsAside datasExpertise={apiDatas.UserBrandExpertise}/>\t\r\n }\r\n\r\n <section className=\"obj_section section_aside_content\">\r\n\t\t\t\t<div className=\"ctn_section\">\r\n\t\t\t\t\t<div className=\"ctn_columns\">\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_content\">\r\n\r\n\t\t\t\t\t\t\t<div className=\"ctn_row_thematique\">\r\n\t\t\t\t\t\t\t\t\r\n {scDatas.lEssentielle?.targetItems?.length > 0 && <ObjEssentielMinuteComptoirDermato datasEssentielle={scDatas.lEssentielle.targetItems[0]}/>}\r\n\r\n {scDatas.nosOutils?.targetItems?.length > 0 && <ObjOutilsDownloadComptoirDermato datasOutils={scDatas.nosOutils.targetItems}/>}\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\r\n {apiDatas.ThemeFormations && <ObjDirectComptoirDermato datasTrainings={apiDatas.ThemeFormations} dataType=\"ThemeAv\" datasComptoir={scDatasComptoir} handleButtonFav={this.handleButtonFav}/>}\r\n\r\n {apiDatas.ThemeProduitsAssocies && <ObjProduitsAssociesComptoirDermato datasTrainings={apiDatas.ThemeProduitsAssocies} handleButtonFav={this.handleButtonFav}/>}\r\n\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_aside\">\r\n\t\t\t\t\t\t\t\r\n {apiDatas.UserBrandExpertise && !this.state.isMobile && <ObjExpertisePointsAside datasExpertise={apiDatas.UserBrandExpertise}/>\t}\r\n\r\n {scDatas.ListSegment[0]?.ListThemeFolder[0]?.ListTheme && <ObjMenuThematiqueAside datasThemes={scDatas.ListSegment[0]?.ListThemeFolder[0]?.ListTheme} themeId={scDatas.id}/>}\r\n\r\n {apiDatas.TrainingsFavorite?.length >0 && <ObjFavoriteFormationAside datasTrainings={apiDatas.TrainingsFavorite}/>}\r\n\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n <ModalFormationsFav \r\n onRef={ref => (this.ModalFormationsFav = ref)} \r\n modalTitle=\"\"\r\n modalText=\"Vous venez d'ajouter cette formation à votre liste de favoris\"\r\n modalCtaText=\"Retrouver mes favoris\"\r\n />\r\n </>}</>)\r\n }\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(PageThemeAv));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport ObjPushContactezNousQuestionFormation from './inc/ObjPushContactezNousQuestionFormation'\r\nimport ObjPushComptoirDermatoEspaceFormation from './inc/ObjPushComptoirDermatoEspaceFormation'\r\n\r\nimport '../assets/css/0010_sections/0420_section_content_formation.css'\r\nimport '../assets/css/0010_sections/0450_section_home_carrousel_tabs_formation.css'\r\n\r\nclass SectionPushContactEtDermato extends Component {\r\n constructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst datasPage = this.props.sitecoreContext.route?.fields;\r\n return (\r\n\t\t<>\r\n\t\t\t{datasPage && \r\n\t\t\t\t<section className=\"obj_section section_content_bottom_formation\">\r\n\t\t\t\t\t<div className=\"ctn_section\">\r\n\r\n\t\t\t\t\t\t<div className=\"ctn_row\">\r\n\r\n\t\t\t\t\t\t\t<ObjPushContactezNousQuestionFormation datasPage={datasPage}/>\r\n\r\n\t\t\t\t\t\t\t<ObjPushComptoirDermatoEspaceFormation datasPage={datasPage}/>\r\n\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t}\r\n\t\t</>)\r\n\t}\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(SectionPushContactEtDermato));","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { withTranslation } from 'react-i18next'; \r\n\r\nimport React, { Component } from 'react'\r\n\r\nimport { isNotEmpty } from \"../utilities/FrontFunctions/AoxFrontFunctions\"\r\nimport IconSVG from \"../utilities/FrontFunctions/IconSVG\"\r\n\r\nimport '../assets/css/0020_objects/0600_obj_menu_thematique_aside.css'\r\nimport '../assets/css/0020_objects/0740_obj_socials_formation_footer.css'\r\n\r\n\r\nclass SectionSocialsFormationFooter extends Component {\r\n\trender() {\r\n var ItemsSocial = [];\r\n\r\n var oFacebookUrl = this.props.sitecoreContext.route?.fields[\"Facebook Url\"];\r\n\t\tvar sFacebookUrl = (oFacebookUrl != null ) ? oFacebookUrl.value.href : \"\";\r\n if (isNotEmpty(sFacebookUrl)){\r\n ItemsSocial.push({ label: \"Facebook\", link: sFacebookUrl, class: \"facebook\" });\r\n }\r\n\r\n\t\tvar oInstagramUrl = this.props.sitecoreContext.route?.fields[\"Instagram Url\"];\r\n\t\tvar sInstagramUrl = (oInstagramUrl != null ) ? oInstagramUrl.value.href : \"\";\r\n if (isNotEmpty(sInstagramUrl)){\r\n ItemsSocial.push({ label: \"Instagram\", link: sInstagramUrl, class: \"instagram\" });\r\n }\r\n\r\n\t\tvar oYoutubeUrl = this.props.sitecoreContext.route?.fields[\"Youtube Url\"];\r\n\t\tvar sYoutubeUrl = (oYoutubeUrl != null ) ? oYoutubeUrl.value.href : \"\";\r\n if (isNotEmpty(sYoutubeUrl)){\r\n ItemsSocial.push({ label: \"YouTube\", link: sYoutubeUrl, class: \"youtube\" });\r\n }\r\n\r\n\t\treturn (\r\n\t\t\t<>{ ItemsSocial.length > 0 && <>\r\n <section className=\"obj_section section_socials_formation_footer\">\r\n <div className=\"ctn_section\">\r\n\r\n <div className=\"obj_socials_formation_footer\">\r\n <div className=\"ctn_text\">\r\n <p className=\"t_title\">{this.props.t('BrandSectionSocialNetworkTitle')}</p>\r\n </div>\r\n <ul className=\"obj_social_list\">\r\n { ItemsSocial.map((item, index) => (\r\n <li className={\"item_social var_\" + item.class} key={index}>\r\n <a href={item.link} title={item.label}>\r\n <IconSVG icon={item.class} />\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n </section>\r\n\t\t\t</>}</>\r\n\t\t)\r\n\t}\r\n\r\n}\r\n\r\nexport default withTranslation()(withSitecoreContext()(SectionSocialsFormationFooter));","/* 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 ContentBlock from '../components/ContentBlock';\nimport PageActivationCompte from '../components/PageActivationCompte';\nimport PageActiviteConseil from '../components/PageActiviteConseil';\nimport PageArticle from '../components/PageArticle';\nimport PageBrands from '../components/PageBrands';\nimport PageChallengeBeneficiaires from '../components/PageChallengeBeneficiaires';\nimport PageChallengeDetail from '../components/PageChallengeDetail';\nimport PageChallenges from '../components/PageChallenges';\nimport PageConcoursHome from '../components/PageConcoursHome';\nimport PageContact from '../components/PageContact';\nimport PageContactConnect from '../components/PageContactConnect';\nimport PageContent from '../components/PageContent';\nimport PageError from '../components/PageError';\nimport PageEventBirthDay from '../components/PageEventBirthDay';\nimport PageEventDetail from '../components/PageEventDetail';\nimport PageEventMyMembers from '../components/PageEventMyMembers';\nimport PageEventMyRegistrations from '../components/PageEventMyRegistrations';\nimport PageEvents from '../components/PageEvents';\nimport PageFAQ from '../components/PageFAQ';\nimport PageFormationExpertise from '../components/PageFormationExpertise';\nimport PageFormationFavorites from '../components/PageFormationFavorites';\nimport PageHome from '../components/PageHome';\nimport PageHomeCAF from '../components/PageHomeCAF';\nimport PageIndex from '../components/PageIndex';\nimport PageInfoPerso from '../components/PageInfoPerso';\nimport PageIngredient from '../components/PageIngredient';\nimport PageIngredientList from '../components/PageIngredientList';\nimport PageListe from '../components/PageListe';\nimport PageListeFacebookPOST from '../components/PageListeFacebookPOST';\nimport PageMentionContent from '../components/PageMentionContent';\nimport PageMesPresences from '../components/PageMesPresences';\nimport PageMonCompte from '../components/PageMonCompte';\nimport PageMonCompteExpertise from '../components/PageMonCompteExpertise';\nimport PageNouveauCompte from '../components/PageNouveauCompte';\nimport PagePhotoContest from '../components/PagePhotoContest';\nimport PageProduct from '../components/PageProduct';\nimport PageProductSegments from '../components/PageProductSegments';\nimport PageRanges from '../components/PageRanges';\nimport PageRecherche from '../components/PageRecherche';\nimport PageResultContest from '../components/PageResultContest';\nimport PageSegments from '../components/PageSegments';\nimport ProductRanges from '../components/ProductRanges';\nimport ProductSegmentRoutines from '../components/ProductSegmentRoutines';\nimport SectionBadgeElite from '../components/SectionBadgeElite';\nimport SectionContest from '../components/SectionContest';\nimport SectionProductCarousel from '../components/SectionProductCarousel';\nimport SectionPushArticle from '../components/SectionPushArticle';\nimport SectionWideCarousel from '../components/SectionWideCarousel';\nimport GetCurrentArticleReviews from '..//components/AllPages/GraphQL/GetCurrentArticleReviews.js';\nimport MainFooter from '..//components/AllPages/MainFooter.js';\nimport MainFooterLogin from '..//components/AllPages/MainFooterLogin.js';\nimport MainHeader from '..//components/AllPages/MainHeader.js';\nimport MainHeaderLogin from '..//components/AllPages/MainHeaderLogin.js';\nimport MainMeta from '..//components/AllPages/MainMeta.js';\nimport ObjBackToTop from '..//components/AllPages/ObjBackToTop.js';\nimport ObjBigTitle from '..//components/AllPages/ObjBigTitle.js';\nimport ObjBreadcrumb from '..//components/AllPages/ObjBreadcrumb.js';\nimport ObjExpertiseBrand from '..//components/AllPages/ObjExpertiseBrand.js';\nimport ObjHeaderSearch from '..//components/AllPages/ObjHeaderSearch.js';\nimport ObjPushArticle from '..//components/AllPages/ObjPushArticle.js';\nimport ObjPushCustomFull from '..//components/AllPages/ObjPushCustomFull.js';\nimport ObjPushCustomThumb from '..//components/AllPages/ObjPushCustomThumb.js';\nimport ObjTitle from '..//components/AllPages/ObjTitle.js';\nimport SectionComments from '..//components/AllPages/SectionComments.js';\nimport ExpiredConfirmationLink from '..//components/Connexion/ExpiredConfirmationLink.js';\nimport Inscription from '..//components/Connexion/Inscription.js';\nimport Login from '..//components/Connexion/Login.js';\nimport MotDePasse from '..//components/Connexion/MotDePasse.js';\nimport NouveauCompte from '..//components/Connexion/NouveauCompte.js';\nimport NouveauMotDePasse from '..//components/Connexion/NouveauMotDePasse.js';\nimport FormationsMarque from '..//components/FormationsMarque.js';\nimport CommentImageModal from '..//components/inc/Modal/CommentImageModal.js';\nimport VideoModalShorts from '..//components/inc/Modal/VideoModalShorts.js';\nimport ObjAGagnerHomeFormation from '..//components/inc/ObjAGagnerHomeFormation.js';\nimport ObjALaUneHomeFormation from '..//components/inc/ObjALaUneHomeFormation.js';\nimport ObjAsideSliderBanner from '..//components/inc/ObjAsideSliderBanner.js';\nimport ObjBannerHeroComptoirDermato from '..//components/inc/ObjBannerHeroComptoirDermato.js';\nimport ObjContinuerLectureHomeComptoirDermato from '..//components/inc/ObjContinuerLectureHomeComptoirDermato.js';\nimport ObjDerniersAjoutsAside from '..//components/inc/ObjDerniersAjoutsAside.js';\nimport ObjDirectComptoirDermato from '..//components/inc/ObjDirectComptoirDermato.js';\nimport ObjEssentielMinuteComptoirDermato from '..//components/inc/ObjEssentielMinuteComptoirDermato.js';\nimport ObjExpertisePointsAside from '..//components/inc/ObjExpertisePointsAside.js';\nimport ObjFavoriteFormationAside from '..//components/inc/ObjFavoriteFormationAside.js';\nimport ObjFormationDashboardHeader from '..//components/inc/ObjFormationDashboardHeader.js';\nimport ObjListPushsThematiqueComptoirDermato from '..//components/inc/ObjListPushsThematiqueComptoirDermato.js';\nimport ObjListPushsThematiqueFormation from '..//components/inc/ObjListPushsThematiqueFormation.js';\nimport ObjMenuThematiqueAside from '..//components/inc/ObjMenuThematiqueAside.js';\nimport ObjMesFormationsFiltre from '..//components/inc/ObjMesFormationsFiltre.js';\nimport ObjMonParcoursFormation from '..//components/inc/ObjMonParcoursFormation.js';\nimport ObjOutilsDownloadComptoirDermato from '..//components/inc/ObjOutilsDownloadComptoirDermato.js';\nimport ObjParcoursPersoHomeComptoirDermato from '..//components/inc/ObjParcoursPersoHomeComptoirDermato.js';\nimport ObjProductsRelatedAside from '..//components/inc/ObjProductsRelatedAside.js';\nimport ObjProduitsAssociesComptoirDermato from '..//components/inc/ObjProduitsAssociesComptoirDermato.js';\nimport ObjPushCardFormation from '..//components/inc/ObjPushCardFormation.js';\nimport ObjPushComptoirDermatoEspaceFormation from '..//components/inc/ObjPushComptoirDermatoEspaceFormation.js';\nimport ObjPushContactezNousQuestionFormation from '..//components/inc/ObjPushContactezNousQuestionFormation.js';\nimport ObjPushThematiqueFormation from '..//components/inc/ObjPushThematiqueFormation.js';\nimport ObjTabsComptoirDermatoFormation from '..//components/inc/ObjTabsComptoirDermatoFormation.js';\nimport ObjTabsHomeComptoirDermato from '..//components/inc/ObjTabsHomeComptoirDermato.js';\nimport ObjTabsHomeFormation from '..//components/inc/ObjTabsHomeFormation.js';\nimport ObjTabsParcoursFormation from '..//components/inc/ObjTabsParcoursFormation.js';\nimport BeforeAfterSlider from '..//components/inc/Plugins/BeforeAfterSlider.js';\nimport SectionHeroComptoirDermatoCarousel from '..//components/inc/SectionHeroComptoirDermatoCarousel.js';\nimport SectionHeroFormationCarousel from '..//components/inc/SectionHeroFormationCarousel.js';\nimport DefaultModal from '..//components/Modal/DefaultModal.js';\nimport DefaultModalAction from '..//components/Modal/DefaultModalAction.js';\nimport ExpertiseBadgeModal from '..//components/Modal/ExpertiseBadgeModal.js';\nimport ExpertModal from '..//components/Modal/ExpertModal.js';\nimport FacebookPostModal from '..//components/Modal/FacebookPostModal.js';\nimport GalerieDetailModal from '..//components/Modal/GalerieDetailModal.js';\nimport GalerieUploadModal from '..//components/Modal/GalerieUploadModal.js';\nimport InfosModalMAJ from '..//components/Modal/InfosModalMAJ.js';\nimport LoginCodeModal from '..//components/Modal/LoginCodeModal.js';\nimport ModalAjoutBeneficiaire from '..//components/Modal/ModalAjoutBeneficiaire.js';\nimport ModalFormationsFav from '..//components/Modal/ModalFormationsFav.js';\nimport ModalMAJFormationsFav from '..//components/Modal/ModalMAJFormationsFav.js';\nimport ModalProduitConcernes from '..//components/Modal/ModalProduitConcernes.js';\nimport PhoneMandatoryModal from '..//components/Modal/PhoneMandatoryModal.js';\nimport SatisfactionFormModal from '..//components/Modal/SatisfactionFormModal.js';\nimport VideoModal from '..//components/Modal/VideoModal.js';\nimport VideoModalNoFS from '..//components/Modal/VideoModalNoFS.js';\nimport ObjProgressBar from '..//components/Obj/ObjProgressBar.js';\nimport ObjRetour from '..//components/Obj/ObjRetour.js';\nimport ObjChallengeDetail from '..//components/ObjChallenge/ObjChallengeDetail.js';\nimport ObjConditionChallenge from '..//components/ObjChallenge/ObjConditionChallenge.js';\nimport ObjPushChallenge from '..//components/ObjChallenge/ObjPushChallenge.js';\nimport ObjEventDetail from '..//components/ObjEvent/ObjEventDetail.js';\nimport ObjPushEvent from '..//components/ObjEvent/ObjPushEvent.js';\nimport ObjPushEventSession from '..//components/ObjEvent/ObjPushEventSession.js';\nimport ObjCanvasBadgeExpertise from '..//components/ObjExpertise/ObjCanvasBadgeExpertise.js';\nimport ObjExpertiseBadge from '..//components/ObjExpertise/ObjExpertiseBadge.js';\nimport ObjExpertiseBadges from '..//components/ObjExpertise/ObjExpertiseBadges.js';\nimport ObjExpertiseClassement from '..//components/ObjExpertise/ObjExpertiseClassement.js';\nimport ObjExpertiseSectionBrand from '..//components/ObjExpertise/ObjExpertiseSectionBrand.js';\nimport ObjExpertiseSectionSite from '..//components/ObjExpertise/ObjExpertiseSectionSite.js';\nimport ObjExpertiseSectionSiteBefore from '..//components/ObjExpertise/ObjExpertiseSectionSiteBefore.js';\nimport ObjProgressBarExpertise from '..//components/ObjExpertise/ObjProgressBarExpertise.js';\nimport ObjSectionFormation from '..//components/ObjExpertise/ObjSectionFormation.js';\nimport PageBrandAv_Banner from '..//components/PageBrandAv_Banner.js';\nimport PageBrandAv_Formations from '..//components/PageBrandAv_Formations.js';\nimport PageBrandAv_Intro from '..//components/PageBrandAv_Intro.js';\nimport PageBrandAv_TabsSegments from '..//components/PageBrandAv_TabsSegments.js';\nimport PageBrand_CarrouselBanners from '..//components/PageBrand_CarrouselBanners.js';\nimport PageBrand_CarrouselsPushs from '..//components/PageBrand_CarrouselsPushs.js';\nimport PageBrand_TabsFormations from '..//components/PageBrand_TabsFormations.js';\nimport ModalContentChallengeARepartir from '..//components/PageChallengeDetail/ModalContentChallengeARepartir.js';\nimport ObjAsideChallengeADeclarer from '..//components/PageChallengeDetail/ObjAsideChallengeADeclarer.js';\nimport ObjAsideChallengeARepartir from '..//components/PageChallengeDetail/ObjAsideChallengeARepartir.js';\nimport ObjAsideChallengeVerificationDeclaration from '..//components/PageChallengeDetail/ObjAsideChallengeVerificationDeclaration.js';\nimport ObjAsideChallengeVerificationRepartition from '..//components/PageChallengeDetail/ObjAsideChallengeVerificationRepartition.js';\nimport ObjAsideChallengeGains from '..//components/PageChallenges/ObjAsideChallengeGains.js';\nimport ObjBrandHeroHome from '..//components/PageHome/ObjBrandHeroHome.js';\nimport ObjBrandHighlightedHeroHome from '..//components/PageHome/ObjBrandHighlightedHeroHome.js';\nimport ObjBrandsCarouselHero from '..//components/PageHome/ObjBrandsCarouselHero.js';\nimport ObjEntryHeroHome from '..//components/PageHome/ObjEntryHeroHome.js';\nimport ObjNewsCarouselHeroHome from '..//components/PageHome/ObjNewsCarouselHeroHome.js';\nimport OverlayTutorialHome from '..//components/PageHome/OverlayTutorialHome.js';\nimport SectionHeroHome from '..//components/PageHome/SectionHeroHome.js';\nimport SectionPushBrand from '..//components/PageHome/SectionPushBrand.js';\nimport ObjTabPresences from '..//components/PageMesPresences/ObjTabPresences.js';\nimport PageSegment from '..//components/PageSegment.js';\nimport PageTheme from '..//components/PageTheme.js';\nimport PageThemeAv from '..//components/PageThemeAv.js';\nimport SectionPushContactEtDermato from '..//components/SectionPushContactEtDermato.js';\nimport SectionSocialsFormationFooter from '..//components/SectionSocialsFormationFooter.js';\n\nconst components = new Map();\ncomponents.set('ContentBlock', ContentBlock);\ncomponents.set('PageActivationCompte', PageActivationCompte);\ncomponents.set('PageActiviteConseil', PageActiviteConseil);\ncomponents.set('PageArticle', PageArticle);\ncomponents.set('PageBrands', PageBrands);\ncomponents.set('PageChallengeBeneficiaires', PageChallengeBeneficiaires);\ncomponents.set('PageChallengeDetail', PageChallengeDetail);\ncomponents.set('PageChallenges', PageChallenges);\ncomponents.set('PageConcoursHome', PageConcoursHome);\ncomponents.set('PageContact', PageContact);\ncomponents.set('PageContactConnect', PageContactConnect);\ncomponents.set('PageContent', PageContent);\ncomponents.set('PageError', PageError);\ncomponents.set('PageEventBirthDay', PageEventBirthDay);\ncomponents.set('PageEventDetail', PageEventDetail);\ncomponents.set('PageEventMyMembers', PageEventMyMembers);\ncomponents.set('PageEventMyRegistrations', PageEventMyRegistrations);\ncomponents.set('PageEvents', PageEvents);\ncomponents.set('PageFAQ', PageFAQ);\ncomponents.set('PageFormationExpertise', PageFormationExpertise);\ncomponents.set('PageFormationFavorites', PageFormationFavorites);\ncomponents.set('PageHome', PageHome);\ncomponents.set('PageHomeCAF', PageHomeCAF);\ncomponents.set('PageIndex', PageIndex);\ncomponents.set('PageInfoPerso', PageInfoPerso);\ncomponents.set('PageIngredient', PageIngredient);\ncomponents.set('PageIngredientList', PageIngredientList);\ncomponents.set('PageListe', PageListe);\ncomponents.set('PageListeFacebookPOST', PageListeFacebookPOST);\ncomponents.set('PageMentionContent', PageMentionContent);\ncomponents.set('PageMesPresences', PageMesPresences);\ncomponents.set('PageMonCompte', PageMonCompte);\ncomponents.set('PageMonCompteExpertise', PageMonCompteExpertise);\ncomponents.set('PageNouveauCompte', PageNouveauCompte);\ncomponents.set('PagePhotoContest', PagePhotoContest);\ncomponents.set('PageProduct', PageProduct);\ncomponents.set('PageProductSegments', PageProductSegments);\ncomponents.set('PageRanges', PageRanges);\ncomponents.set('PageRecherche', PageRecherche);\ncomponents.set('PageResultContest', PageResultContest);\ncomponents.set('PageSegments', PageSegments);\ncomponents.set('ProductRanges', ProductRanges);\ncomponents.set('ProductSegmentRoutines', ProductSegmentRoutines);\ncomponents.set('SectionBadgeElite', SectionBadgeElite);\ncomponents.set('SectionContest', SectionContest);\ncomponents.set('SectionProductCarousel', SectionProductCarousel);\ncomponents.set('SectionPushArticle', SectionPushArticle);\ncomponents.set('SectionWideCarousel', SectionWideCarousel);\ncomponents.set('GetCurrentArticleReviews', GetCurrentArticleReviews);\ncomponents.set('MainFooter', MainFooter);\ncomponents.set('MainFooterLogin', MainFooterLogin);\ncomponents.set('MainHeader', MainHeader);\ncomponents.set('MainHeaderLogin', MainHeaderLogin);\ncomponents.set('MainMeta', MainMeta);\ncomponents.set('ObjBackToTop', ObjBackToTop);\ncomponents.set('ObjBigTitle', ObjBigTitle);\ncomponents.set('ObjBreadcrumb', ObjBreadcrumb);\ncomponents.set('ObjExpertiseBrand', ObjExpertiseBrand);\ncomponents.set('ObjHeaderSearch', ObjHeaderSearch);\ncomponents.set('ObjPushArticle', ObjPushArticle);\ncomponents.set('ObjPushCustomFull', ObjPushCustomFull);\ncomponents.set('ObjPushCustomThumb', ObjPushCustomThumb);\ncomponents.set('ObjTitle', ObjTitle);\ncomponents.set('SectionComments', SectionComments);\ncomponents.set('ExpiredConfirmationLink', ExpiredConfirmationLink);\ncomponents.set('Inscription', Inscription);\ncomponents.set('Login', Login);\ncomponents.set('MotDePasse', MotDePasse);\ncomponents.set('NouveauCompte', NouveauCompte);\ncomponents.set('NouveauMotDePasse', NouveauMotDePasse);\ncomponents.set('FormationsMarque', FormationsMarque);\ncomponents.set('CommentImageModal', CommentImageModal);\ncomponents.set('VideoModalShorts', VideoModalShorts);\ncomponents.set('ObjAGagnerHomeFormation', ObjAGagnerHomeFormation);\ncomponents.set('ObjALaUneHomeFormation', ObjALaUneHomeFormation);\ncomponents.set('ObjAsideSliderBanner', ObjAsideSliderBanner);\ncomponents.set('ObjBannerHeroComptoirDermato', ObjBannerHeroComptoirDermato);\ncomponents.set('ObjContinuerLectureHomeComptoirDermato', ObjContinuerLectureHomeComptoirDermato);\ncomponents.set('ObjDerniersAjoutsAside', ObjDerniersAjoutsAside);\ncomponents.set('ObjDirectComptoirDermato', ObjDirectComptoirDermato);\ncomponents.set('ObjEssentielMinuteComptoirDermato', ObjEssentielMinuteComptoirDermato);\ncomponents.set('ObjExpertisePointsAside', ObjExpertisePointsAside);\ncomponents.set('ObjFavoriteFormationAside', ObjFavoriteFormationAside);\ncomponents.set('ObjFormationDashboardHeader', ObjFormationDashboardHeader);\ncomponents.set('ObjListPushsThematiqueComptoirDermato', ObjListPushsThematiqueComptoirDermato);\ncomponents.set('ObjListPushsThematiqueFormation', ObjListPushsThematiqueFormation);\ncomponents.set('ObjMenuThematiqueAside', ObjMenuThematiqueAside);\ncomponents.set('ObjMesFormationsFiltre', ObjMesFormationsFiltre);\ncomponents.set('ObjMonParcoursFormation', ObjMonParcoursFormation);\ncomponents.set('ObjOutilsDownloadComptoirDermato', ObjOutilsDownloadComptoirDermato);\ncomponents.set('ObjParcoursPersoHomeComptoirDermato', ObjParcoursPersoHomeComptoirDermato);\ncomponents.set('ObjProductsRelatedAside', ObjProductsRelatedAside);\ncomponents.set('ObjProduitsAssociesComptoirDermato', ObjProduitsAssociesComptoirDermato);\ncomponents.set('ObjPushCardFormation', ObjPushCardFormation);\ncomponents.set('ObjPushComptoirDermatoEspaceFormation', ObjPushComptoirDermatoEspaceFormation);\ncomponents.set('ObjPushContactezNousQuestionFormation', ObjPushContactezNousQuestionFormation);\ncomponents.set('ObjPushThematiqueFormation', ObjPushThematiqueFormation);\ncomponents.set('ObjTabsComptoirDermatoFormation', ObjTabsComptoirDermatoFormation);\ncomponents.set('ObjTabsHomeComptoirDermato', ObjTabsHomeComptoirDermato);\ncomponents.set('ObjTabsHomeFormation', ObjTabsHomeFormation);\ncomponents.set('ObjTabsParcoursFormation', ObjTabsParcoursFormation);\ncomponents.set('BeforeAfterSlider', BeforeAfterSlider);\ncomponents.set('SectionHeroComptoirDermatoCarousel', SectionHeroComptoirDermatoCarousel);\ncomponents.set('SectionHeroFormationCarousel', SectionHeroFormationCarousel);\ncomponents.set('DefaultModal', DefaultModal);\ncomponents.set('DefaultModalAction', DefaultModalAction);\ncomponents.set('ExpertiseBadgeModal', ExpertiseBadgeModal);\ncomponents.set('ExpertModal', ExpertModal);\ncomponents.set('FacebookPostModal', FacebookPostModal);\ncomponents.set('GalerieDetailModal', GalerieDetailModal);\ncomponents.set('GalerieUploadModal', GalerieUploadModal);\ncomponents.set('InfosModalMAJ', InfosModalMAJ);\ncomponents.set('LoginCodeModal', LoginCodeModal);\ncomponents.set('ModalAjoutBeneficiaire', ModalAjoutBeneficiaire);\ncomponents.set('ModalFormationsFav', ModalFormationsFav);\ncomponents.set('ModalMAJFormationsFav', ModalMAJFormationsFav);\ncomponents.set('ModalProduitConcernes', ModalProduitConcernes);\ncomponents.set('PhoneMandatoryModal', PhoneMandatoryModal);\ncomponents.set('SatisfactionFormModal', SatisfactionFormModal);\ncomponents.set('VideoModal', VideoModal);\ncomponents.set('VideoModalNoFS', VideoModalNoFS);\ncomponents.set('ObjProgressBar', ObjProgressBar);\ncomponents.set('ObjRetour', ObjRetour);\ncomponents.set('ObjChallengeDetail', ObjChallengeDetail);\ncomponents.set('ObjConditionChallenge', ObjConditionChallenge);\ncomponents.set('ObjPushChallenge', ObjPushChallenge);\ncomponents.set('ObjEventDetail', ObjEventDetail);\ncomponents.set('ObjPushEvent', ObjPushEvent);\ncomponents.set('ObjPushEventSession', ObjPushEventSession);\ncomponents.set('ObjCanvasBadgeExpertise', ObjCanvasBadgeExpertise);\ncomponents.set('ObjExpertiseBadge', ObjExpertiseBadge);\ncomponents.set('ObjExpertiseBadges', ObjExpertiseBadges);\ncomponents.set('ObjExpertiseClassement', ObjExpertiseClassement);\ncomponents.set('ObjExpertiseSectionBrand', ObjExpertiseSectionBrand);\ncomponents.set('ObjExpertiseSectionSite', ObjExpertiseSectionSite);\ncomponents.set('ObjExpertiseSectionSiteBefore', ObjExpertiseSectionSiteBefore);\ncomponents.set('ObjProgressBarExpertise', ObjProgressBarExpertise);\ncomponents.set('ObjSectionFormation', ObjSectionFormation);\ncomponents.set('PageBrandAv_Banner', PageBrandAv_Banner);\ncomponents.set('PageBrandAv_Formations', PageBrandAv_Formations);\ncomponents.set('PageBrandAv_Intro', PageBrandAv_Intro);\ncomponents.set('PageBrandAv_TabsSegments', PageBrandAv_TabsSegments);\ncomponents.set('PageBrand_CarrouselBanners', PageBrand_CarrouselBanners);\ncomponents.set('PageBrand_CarrouselsPushs', PageBrand_CarrouselsPushs);\ncomponents.set('PageBrand_TabsFormations', PageBrand_TabsFormations);\ncomponents.set('ModalContentChallengeARepartir', ModalContentChallengeARepartir);\ncomponents.set('ObjAsideChallengeADeclarer', ObjAsideChallengeADeclarer);\ncomponents.set('ObjAsideChallengeARepartir', ObjAsideChallengeARepartir);\ncomponents.set('ObjAsideChallengeVerificationDeclaration', ObjAsideChallengeVerificationDeclaration);\ncomponents.set('ObjAsideChallengeVerificationRepartition', ObjAsideChallengeVerificationRepartition);\ncomponents.set('ObjAsideChallengeGains', ObjAsideChallengeGains);\ncomponents.set('ObjBrandHeroHome', ObjBrandHeroHome);\ncomponents.set('ObjBrandHighlightedHeroHome', ObjBrandHighlightedHeroHome);\ncomponents.set('ObjBrandsCarouselHero', ObjBrandsCarouselHero);\ncomponents.set('ObjEntryHeroHome', ObjEntryHeroHome);\ncomponents.set('ObjNewsCarouselHeroHome', ObjNewsCarouselHeroHome);\ncomponents.set('OverlayTutorialHome', OverlayTutorialHome);\ncomponents.set('SectionHeroHome', SectionHeroHome);\ncomponents.set('SectionPushBrand', SectionPushBrand);\ncomponents.set('ObjTabPresences', ObjTabPresences);\ncomponents.set('PageSegment', PageSegment);\ncomponents.set('PageTheme', PageTheme);\ncomponents.set('PageThemeAv', PageThemeAv);\ncomponents.set('SectionPushContactEtDermato', SectionPushContactEtDermato);\ncomponents.set('SectionSocialsFormationFooter', SectionSocialsFormationFooter);\n\nexport default function componentFactory(componentName) {\n return components.get(componentName);\n};\n","import { SitecoreContextFactory } from '@sitecore-jss/sitecore-jss-react';\r\n\r\n/*\r\n The SitecoreContextFactory stores the current Sitecore context for the app.\r\n For example, whether the page is currently being edited, or the current language.\r\n Note that the export makes this essentially a singleton, so we can store state in it.\r\n\r\n The Sitecore context is generally updated on route change (/src/index.js).\r\n The `withSitecoreContext()` higher order component from `sitecore-jss-react`\r\n can be used to access the context from within a component.\r\n*/\r\nexport default new SitecoreContextFactory();\r\n","import axios from 'axios';\r\n\r\n/**\r\n * Implements a data fetcher using Axios - replace with your favorite\r\n * SSR-capable HTTP or fetch library if you like. See HttpJsonFetcher<T> type\r\n * in sitecore-jss library for implementation details/notes.\r\n * @param {string} url The URL to request; may include query string\r\n * @param {any} data Optional data to POST with the request.\r\n */\r\nexport function dataFetcher(url, data) {\r\n return axios({\r\n url,\r\n method: data ? 'POST' : 'GET',\r\n data,\r\n // note: axios needs to use `withCredentials: true` in order for Sitecore cookies to be included in CORS requests\r\n // which is necessary for analytics and such\r\n withCredentials: true, \r\n });\r\n}\r\n","export const setStyleColors = () => {\r\n\tconst brands = [\r\n\t\t{name: 'lrp', main: '#009fe3', col_rgba: '0,159,227'},\r\n\t\t{name: 'vichy', main: '#C8102E', col_rgba: '200,16,46'},\r\n\t\t{name: 'sanoflore', main: '#1f3c1d', col_rgba: '31,60,29'},\r\n\t\t{name: 'cerave', main: '#2570B8', col_rgba: '37,112,184'},\r\n\t\t{name: 'skinc', main: '#000000', col_rgba: '0,0,0'},\r\n\t\t{name: 'biotherm', main: '#206170', col_rgba: '32,97,112'},\r\n\t\t{name: 'sciencemd', main: '#000', col_rgba: '0,159,227'},\r\n\t\t{name: 'derm-expertise', main: '#02ACC2', col_rgba: '2,172,194'},\r\n\t\t{name: 'comptoir-dermato', main: '#81C9D3', col_rgba: '129,201,211'},\r\n\t];\r\n\r\n\tbrands.forEach(brand => {\r\n\t\tconst styleColors = document.createElement('style');\r\n\t\tconst name = brand.name;\r\n\t\tconst main = brand.main;\r\n\t\tconst alt = brand.alt;\r\n\t\tconst col_rgba = brand.col_rgba;\r\n\r\n\t\tconst styleColorsContent = [\r\n\t\t\t// .obj_cta\r\n\t\t\t\".var_\"+ name +\" .obj_cta{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_cta.reverse{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\tbackground:#fff;\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_cta-download{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_cta-download svg{\",\r\n\t\t\t\"\tfill:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .main_header\r\n\t\t\t\".var_\"+ name +\" .main_header .ctn_nav-marque li.var_marque a{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .main_header .ctn_nav-marque ul.lvl_01 > li > a::before{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_push-article\r\n\t\t\t\".obj_push-article.var_\"+ name +\" h3{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".obj_push-article.var_\"+ name +\" h3::before{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_back-to-top\r\n\t\t\t\".var_\"+ name +\" .obj_back-to-top{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_social-network\r\n\t\t\t\".var_\"+ name +\" .section_social-network ul li a svg{\",\r\n\t\t\t\"\tfill:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_wide-carousel\r\n\t\t\t\".section_wide-carousel .obj_carousel .ctn_banner.var_\"+ name +\" .ctn_text h2{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_push-custom\r\n\t\t\t\".var_\"+ name +\" .obj_push-custom.var_full .ctn_text h2{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_article\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_article h3{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_text .ctn_like-article .bt_like-article svg{\",\r\n\t\t\t\"\tfill:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_article\r\n\t\t\t\".var_\"+ name +\" .obj_back-page .bt_back-page{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_back-page .bt_back-page::before{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_back-page .bt_back-page::after{\",\r\n\t\t\t\"\tborder-color:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_comments .obj_form .ctn_single-file-upload .obj_cta{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_comments .obj_form .ctn_file-upload .i_add-plus{\",\r\n\t\t\t\"\tborder-color:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_comments .obj_form .ctn_file-upload .i_add-plus::before,\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_comments .obj_form .ctn_file-upload .i_add-plus::after{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_comments .bt_reply{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_comments .bt_reply::before,\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_comments .bt_reply::after{\",\r\n\t\t\t\"\tborder-color:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_comments .bt_more{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_article .ctn_text p a{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_form\r\n\t\t\t\".var_\"+ name +\" .obj_form .t_mention a,\",\r\n\t\t\t\".var_\"+ name +\" .obj_form .ctn_radio label a,\",\r\n\t\t\t\".var_\"+ name +\" .obj_form .ctn_checkbox label a{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_form .ctn_single-file-upload .bt_cancel{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_tabs-list\r\n\t\t\t\".var_\"+ name +\" .obj_tabs-list .ctn_nav-tabs li.active button{\",\r\n\t\t\t\"\tborder-bottom-color:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_push-product\r\n\t\t\t\".var_\"+ name +\" .obj_push-product .t_desc{\",\r\n\t\t\t\"\tcolor:\"+ (alt ? alt : main) +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-product .t_title-routine{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-product .t_desc-routine svg{\",\r\n\t\t\t\"\tfill:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-product .fake_cta{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_product-detail\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_top-detail h1 em{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_top-detail h2{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_top-detail .col_image figure figcaption svg{\",\r\n\t\t\t\"\tfill:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_desc-product.var_plus{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_desc-product ul li::before{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_desc-product h3{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_desc-product p em{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_top-detail .col_image figure figcaption{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_product-carousel\r\n\t\t\t\".var_\"+ name +\" .section_product-carousel h2{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_liste-ingredients\r\n\t\t\t\".var_\"+ name +\" .section_liste-ingredients .obj_liste-ingredients .ctn_text h2{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_liste-ingredients .obj_nav-ingredients li button::before,\",\r\n\t\t\t\".var_\"+ name +\" .section_liste-ingredients .obj_nav-ingredients li a::before{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_detail-ingredients\r\n\t\t\t\".var_\"+ name +\" .section_detail-ingredients h1,\",\r\n\t\t\t\".var_\"+ name +\" .section_detail-ingredients h2{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_detail-ingredients .ctn_bienfaits-ingredients .col_right{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_cercle-elite_header\r\n\t\t\t\".pg_concours_home.var_\"+ name +\" .obj_breadcrumb::before,\",\r\n\t\t\t\".pg_concours_home.var_\"+ name +\" .obj_title-big::before,\",\r\n\t\t\t\".pg_concours_home.var_\"+ name +\" .obj_push-article::before{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_likes-comments\r\n\t\t\t\".var_\"+ name +\" .obj_likes-comments .ctn_like-article .bt_like-article.is-checked{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_likes-comments .ctn_like-article .bt_like-article.is-checked svg{\",\r\n\t\t\t\"\tfill:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_formation-dashboard\r\n\t\t\t\".var_\"+ name +\" .obj_progress-bar-expertise .obj_progress-bar{\",\r\n\t\t\t\"\tbackground:rgba(\"+ col_rgba +\",0.15);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .progress-bar-expertise\r\n\t\t\t\".var_\"+ name +\" .obj_progress-bar-expertise .obj_progress-bar .step.is-complete{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// ..obj_cta-formation\r\n\t\t\t\".var_\"+ name +\" .ctn_page-liste-visuel .obj_cta-formation{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",0.7);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .is-done .ctn_page-liste-visuel .obj_cta-formation,\",\r\n\t\t\t\".var_\"+ name +\" .is-not-available .ctn_page-liste-visuel .obj_cta-formation{\",\r\n\t\t\t\"\tbackground-color:rgba(0,0,0,0.2)\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_bloc_expertise\r\n\t\t\t\".var_\"+ name +\".obj_bloc_expertise{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",0.15);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\".obj_bloc_expertise .t_title{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_item_expertise .ctn_text .t_tag span,\",\r\n\t\t\t\".var_\"+ name +\".obj_item_expertise .ctn_text .t_tag span{\",\r\n\t\t\t\"\tbackground:rgba(\"+ col_rgba +\",0.15);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\".obj_bloc_expertise .obj_header_exp:before{\",\r\n\t\t\t\"\tborder-top:solid 2px \"+ main +\";\",\r\n\t\t\t\"\tborder-right:solid 2px \"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\".obj_bloc_expertise .obj_header_exp .t_tag span{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",0.15);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\".obj_bloc_expertise .obj_tabs ul.obj_tabs_list li .btn_tab_exp.active{\",\r\n\t\t\t\"\tborder-color:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_formation-dashboard\r\n\t\t\t\".section_formation-dashboard .var_\"+ name +\".obj_bloc_formation{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",0.15);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".section_formation-dashboard .var_\"+ name +\".obj_bloc_formation .t_title{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".section_formation-dashboard .var_\"+ name +\".obj_bloc_formation .obj_header_formation:before{\",\r\n\t\t\t\"\tborder-top:solid 2px \"+ main +\";\",\r\n\t\t\t\"\tborder-right:solid 2px \"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".section_formation-dashboard .var_\"+ name +\".obj_bloc_formation .obj_header_formation .t_tag span{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",0.15);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_cta-formation\r\n\t\t\t\".var_\"+ name +\" .obj_formation_mini_parcours .obj_cta-formation{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",0.7);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .is-done.obj_formation_mini_parcours .obj_cta-formation,\",\r\n\t\t\t\".var_\"+ name +\" .is-not-available.obj_formation_mini_parcours .obj_cta-formation{\",\r\n\t\t\t\"\tbackground-color:rgba(0,0,0,0.2)\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_mini_parcours\r\n\t\t\t\".var_\"+ name +\" .section_mini_parcours .ctn_title .t_subtitle{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_carousel.obj_carrousel_mini_parcours .slick-prev:not(.slick-disabled)::before{\",\r\n\t\t\t\"\tborder-bottom: solid 2px rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\tborder-left: solid 2px rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_carousel.obj_carrousel_mini_parcours .slick-next:not(.slick-disabled)::before{\",\r\n\t\t\t\"\tborder-top: solid 2px rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\tborder-right: solid 2px rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_cta\r\n\t\t\t\".var_\"+ name +\" .obj_cta:hover,\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-custom.var_full a:hover .obj_cta{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\tbackground:#fff;\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_cta.reverse:hover,\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-custom.var_full a:hover .obj_cta.reverse{\",\r\n\t\t\t\"\tcolor:#fff;\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_cta.var_email:hover svg{\",\r\n\t\t\t\"\tfill:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_social-network\r\n\t\t\t\".var_\"+ name +\" .section_social-network ul li a:hover svg{\",\r\n\t\t\t\"\tfill:#777;\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_article\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_text .ctn_like-article .bt_like-article:hover{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_tabs-list\r\n\t\t\t\".var_\"+ name +\" .obj_tabs-list .ctn_nav-tabs li:not(.active) button:hover{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_product-detail\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_top-detail .col_image ul li:hover span{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_likes-comments\r\n\t\t\t\".var_\"+ name +\" .obj_likes-comments .ctn_like-article .bt_like-article:hover{\",\r\n\t\t\t\"\tcolor:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .obj_progress-bar-expertise .obj_cta\r\n\t\t\t\".var_\"+ name +\".obj_progress-bar-expertise:hover .obj_cta,\",\r\n\t\t\t\".var_\"+ name +\".obj_progress-bar-expertise.hover .obj_cta{\",\r\n\t\t\t\"\tcolor:#fff;\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// .section_page-liste\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .ctn_text .t_tag span,\",\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .section_list_formation .ctn_text .t_tag span{\",\r\n\t\t\t\"\tbackground:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .ctn_text .bt_fav-formation.is-checked svg,\",\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .section_list_formation .ctn_text .bt_fav-formation.is-checked svg,\",\r\n\t\t\t\".section_list_formation .var_\"+ name +\".ctn_brand .ctn_text .bt_fav-formation.is-checked svg{\",\r\n\t\t\t\"\tfill:\"+ main +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .obj_formation_mini_parcours .ctn_text .bt_fav-formation:hover:not(:disabled,.is-checked) svg,\",\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .section_list_formation .ctn_text .bt_fav-formation:hover:not(:disabled,.is-checked) svg{\",\r\n\t\t\t\"\tfill:rgba(\"+ col_rgba +\",0.5);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_socials_formation_footer\r\n\t\t\t\".var_\"+ name +\" .section_socials_formation_footer{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_socials_formation_footer .obj_social_list .item_social svg{\",\r\n\t\t\t\"\tfill:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// section_hero_formation-carrousel\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero .ctn_text .t_ribbon span{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero.var_dark .ctn_text .t_ribbon span{\",\r\n\t\t\t\"\tcolor:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\tbackground-color:#fff;\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_a_gagner_formation-carrousel\r\n\t\t\t\".var_\"+ name +\" .obj_a_gagner_formation {\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\tcolor:#fff;\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_gagner_formation .obj_carrousel_slider.obj_carousel_formation .slick-arrow,\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_gagner_formation .obj_carrousel_slider.obj_carousel_formation .slick-arrow:before{\",\r\n\t\t\t\"\tborder-color:rgba(255, 255, 255, 1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// section_home_carrousel_tabs_formation\r\n\t\t\t\".var_\"+ name +\" .section_home_carrousel_tabs_formation .ctn_section > .ctn_title .t_title{\",\r\n\t\t\t\"\tcolor:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_home_carrousel_tabs_formation .obj_carousel_formation .slick-next,\",\r\n\t\t\t\".var_\"+ name +\" .section_home_carrousel_tabs_formation .obj_carousel_formation .slick-prev,\",\r\n\t\t\t\".var_\"+ name +\" .section_home_carrousel_tabs_formation .obj_carousel_formation .slick-next:before,\",\r\n\t\t\t\".var_\"+ name +\" .section_home_carrousel_tabs_formation .obj_carousel_formation .slick-prev:before{\",\r\n\t\t\t\"\tborder-color:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_navigation_header_formation\r\n\t\t\t\".var_\"+ name +\" .obj_navigation_header_formation .ctn_nav > .ctn_title{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_navigation_header_formation .ctn_nav > .obj_btn_tab_arrow{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",1);\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_navigation_header_formation .ctn_nav > .obj_btn_tab_arrow.is_disabled{\",\r\n\t\t\t\"\tbackground-color:rgba(\"+ col_rgba +\",0.5);\",\r\n\t\t\t\"\t}\"\r\n\t\t].join('\\n');\r\n\r\n\t\tdocument.head.appendChild(styleColors);\r\n\t\tstyleColors.setAttribute('type', 'text/css');\r\n\t\tstyleColors.append(styleColorsContent);\r\n\t});\r\n}\r\n\r\nexport default setStyleColors;","export const setStyleFonts = () => {\r\n\r\n\tconst brands = [\r\n\t\t{name: 'lrp', light: 'LocatorWeb-Light', regular: 'LocatorWeb-Regular', bold: 'LocatorWeb-Bold'},\r\n\t\t{name: 'vichy', light: 'FuturaPT-Light', regular: 'FuturaPT-Book', bold: 'FuturaPT-Bold'},\r\n\t\t{name: 'sanoflore', light: 'GillSans-Light', regular: 'GillSans-Regular', bold: 'GillSans-Bold'},\r\n\t\t{name: 'cerave', light: 'DinPro-Light', regular: 'DinPro-Regular', bold: 'DinPro-Bold'},\r\n\t\t{name: 'skinc', light: 'FuturaBT-Light', regular: 'FuturaBT-Book', bold: 'FuturaBT-Medium'},\r\n\t\t{name: 'biotherm', light: 'FuturaBT-Light', regular: 'FuturaBT-Book', bold: 'FuturaBT-Medium'},\r\n\t\t{name: 'sciencemd', light: 'LocatorWeb-Light', regular: 'LocatorWeb-Regular', bold: 'LocatorWeb-Bold'},\r\n\t\t{name: 'derm-expertise', light: 'Montserrat-Light', regular: 'Montserrat-Regular', bold: 'Montserrat-Bold'},\r\n\t\t{name: 'comptoir-dermato', light: 'Montserrat-Light', regular: 'Montserrat-Regular', bold: 'Montserrat-Bold'},\r\n\t];\r\n\r\n\tbrands.forEach(brand => {\r\n\t\tconst styleFonts = document.createElement('style');\r\n\t\tconst name = brand.name;\r\n\t\tconst light = brand.light;\r\n\t\tconst regular = brand.regular;\r\n\t\tconst bold = brand.bold;\r\n\r\n\t\tconst styleFontsContent = [\r\n\t\t\t// section_wide-carousel\r\n\t\t\t\".section_wide-carousel .obj_carousel .ctn_banner.var_\"+ name +\" .ctn_text h2,\",\r\n\t\t\t\".section_wide-carousel .obj_carousel .ctn_banner.var_\"+ name +\" .ctn_text h3,\",\r\n\t\t\t\".section_wide-carousel .obj_carousel .ctn_banner.var_\"+ name +\" .ctn_text p{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".section_wide-carousel .obj_carousel .ctn_banner.var_\"+ name +\" .ctn_text h2 strong,\",\r\n\t\t\t\".section_wide-carousel .obj_carousel .ctn_banner.var_\"+ name +\" .ctn_text h4,\",\r\n\t\t\t\".section_wide-carousel .obj_carousel .ctn_banner.var_\"+ name +\" .ctn_text p strong{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// obj_push-custom\r\n\t\t\t\".var_\"+ name +\" .obj_push-custom.var_full .ctn_text h3,\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-custom.var_full .ctn_text h4,\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-custom.var_full .ctn_text p{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-custom.var_thumb h2,\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-custom.var_full .ctn_text h2,\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-custom.var_full .ctn_text p strong{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// obj_push-article\r\n\t\t\t\".var_\"+ name +\" .obj_push-article .ctn_text h2{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_push-contact\r\n\t\t\t\".var_\"+ name +\" .section_push-contact .ctn_text h2{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_social-network\r\n\t\t\t\".var_\"+ name +\" .section_social-network h2{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_article\r\n\t\t\t\".var_\"+ name +\" .section_article .ctn_article h1{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_article-carousel\r\n\t\t\t\".var_\"+ name +\" .section_article-carousel .ctn_banner h3{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_article-carousel h2{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_product-detail\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_top-detail h1{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_top-detail h1 strong,\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_top-detail h2,\",\r\n\t\t\t\".var_\"+ name +\" .section_product-detail .ctn_desc-product h3{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_product-carousel\r\n\t\t\t\".var_\"+ name +\" .section_product-carousel h2{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// obj_push-product\r\n\t\t\t\".var_\"+ name +\" .obj_push-product .t_title,\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-product .t_title-routine{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-product .t_title strong,\",\r\n\t\t\t\".var_\"+ name +\" .obj_push-product .t_title-routine::before{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// obj_title\r\n\t\t\t\".var_\"+ name +\" .obj_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_page-liste\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .ctn_page-liste h3,\",\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .ctn_row > h2 strong{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .ctn_row > h2{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_formation-dashboard\r\n\t\t\t\".var_\"+ name +\" .section_formation-dashboard .ctn_formation-dashboard h2{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_formation-dashboard .ctn_formation-dashboard .t_status{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_header-ingredients\r\n\t\t\t\".var_\"+ name +\" .section_header-ingredients .ctn_header-ingredients figure figcaption{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_liste-ingredients\r\n\t\t\t\".var_\"+ name +\" .section_liste-ingredients .obj_liste-ingredients .ctn_text h2{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_detail-ingredients\r\n\t\t\t\".var_\"+ name +\" .section_detail-ingredients h1,\",\r\n\t\t\t\".var_\"+ name +\" .section_detail-ingredients h2{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// obj_banner-product\r\n\t\t\t\".var_\"+ name +\" .obj_banner-product .ctn_text h1,\",\r\n\t\t\t\".var_\"+ name +\" .obj_banner-product .ctn_text h2,\",\r\n\t\t\t\".var_\"+ name +\" .section_range-liste .ctn_range-liste > h3 strong{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_range-liste .ctn_range-liste > h3{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// obj_banner-routine\r\n\t\t\t\".var_\"+ name +\" .obj_banner-routine h1{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_page-liste\r\n\t\t\t\".var_\"+ name +\" .section_mini_parcours .obj_formation_mini_parcours h3{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_page-liste .ctn_row > h2{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page\r\n\t\t\t// obj_tabs_parcours_formation\r\n\t\t\t\".var_\"+ name +\" .obj_tabs_parcours_formation .obj_tabs_list_tabs .obj_btn_tab .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_tabs_parcours_formation .obj_tabs_list_tabs .obj_btn_tab.is_active .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_tabs_parcours_formation .obj_tabs_list_content .obj_tabs_content .ctn_title .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_tabs_parcours_formation .obj_tabs_list_content .obj_tabs_content .ctn_title .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page\r\n\t\t\t// obj_list_pushs_thematique_formation\r\n\t\t\t\".var_\"+ name +\" .obj_list_pushs_thematique_formation .ctn_title .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page\r\n\t\t\t// obj_push_card-thematique\r\n\t\t\t\".var_\"+ name +\" .obj_push_card-thematique .ctn_content_card .ctn_text_card .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push_card-thematique .ctn_content_card .ctn_text_card .t_title strong{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push_card-thematique .ctn_content_card .ctn_text_card .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// section_hero_formation\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation .ctn_text .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation .ctn_text .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation .ctn_text .t_subtitle{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation .obj_back-page .bt_back-page{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_dashboard_header_formation\r\n\t\t\t\".var_\"+ name +\" .obj_dashboard_header_formation .obj_dashboard_infos .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_dashboard_header_formation .obj_dashboard_infos .t_tag span{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_dashboard_header_formation .obj_dashboard_infos .obj_progress-bar_formation .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_dashboard_header_formation .obj_dashboard_infos .obj_progress-bar_formation .t_title strong{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_mon_parcours_formation\r\n\t\t\t\".var_\"+ name +\" .obj_mon_parcours_formation .ctn_title .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_mon_parcours_formation .ctn_title .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_menu_aside_thematiques\r\n\t\t\t\".var_\"+ name +\" .ctn_aside .obj_menu_aside_thematiques > .t_title,\",\r\n\t\t\t\".var_\"+ name +\" .ctn_aside .obj_favorite_aside_formation > .t_title,\",\r\n\t\t\t\".var_\"+ name +\" .ctn_aside .obj_products_related_aside > .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .ctn_aside .obj_menu_aside_thematiques .obj_menu_aside_list .menu_aside-item a{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .ctn_aside .obj_menu_aside_thematiques .obj_menu_aside_list .menu_aside-item.is_current a{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// obj_favorite_aside_formation\r\n\t\t\t\".var_\"+ name +\" .ctn_aside .obj_favorite_aside_formation .obj_menu_aside_list .menu_aside-item .menu_aside_text .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .ctn_aside .obj_favorite_aside_formation .obj_menu_aside_list .menu_aside-item .menu_aside_text .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .ctn_aside .obj_favorite_aside_formation .obj_menu_aside_list .menu_aside-item .menu_aside_text .obj_nb-views{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// obj_products_related_aside\r\n\t\t\t\".var_\"+ name +\" .ctn_aside .obj_products_related_aside .obj_menu_aside_list .menu_aside-item a{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_push_card\r\n\t\t\t\".var_\"+ name +\" .obj_push_card .ctn_media_card .obj_info-left_card{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push_card .ctn_media_card .obj_info-right_card .obj_timer_card{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push_card .ctn_content_card .ctn_text_card .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push_card .ctn_content_card .ctn_text_card .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push_card .ctn_footer_card .obj_nb-views_card span{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_mes_formations_filtre\r\n\t\t\t\".var_\"+ name +\" .obj_mes_formations_filtre .ctn_title .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_mes_formations_filtre .ctn_title .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_direct_comptoir_dermato\r\n\t\t\t\".var_\"+ name +\" .obj_direct_comptoir_dermato .ctn_title .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_socials_formation_footer\r\n\t\t\t\".var_\"+ name +\" .obj_socials_formation_footer .ctn_text .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_socials_formation_footer .ctn_text .t_title strong{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// section_hero_formation-carrousel\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero.var_\"+ name +\" .ctn_text .t_title,\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero.var_\"+ name +\" .ctn_text h3,\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero.var_\"+ name +\" .ctn_text .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ light +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero .ctn_text .t_title strong,\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero .ctn_text .t_subtitle,\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero .ctn_text .t_ribbon,\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero .ctn_text .t_ribbon,\",\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation-carrousel .obj_carousel .obj_section_hero .obj_cta{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_a_la_une_formation / obj_a_gagner_formation\r\n\t\t\t\".var_\"+ name +\" .obj_a_la_une_formation > .ctn_title .t_title,\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_gagner_formation > .ctn_title .t_title,\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_gagner_formation > .ctn_title .t_desc,\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_la_une_formation > .ctn_title .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_la_une_formation > .ctn_title .t_title strong,\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_gagner_formation > .ctn_title .t_title strong{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_la_une_formation .item_a_la_une_formation .ctn_text .t_ribbon span{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_la_une_formation .item_a_la_une_formation .ctn_text .t_title,\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_gagner_formation .item_a_gagner_formation .ctn_text .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_la_une_formation .item_a_la_une_formation .ctn_text .t_desc{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_la_une_formation .item_a_la_une_formation .ctn_text .obj_cta,\",\r\n\t\t\t\".var_\"+ name +\" .obj_a_gagner_formation .item_a_gagner_formation .ctn_text .obj_cta{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .section_home_carrousel_tabs_formation .obj_tabs_parcours_formation > .ctn_cta .obj_cta-txt{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_contact_question_formation\r\n\t\t\t\".var_\"+ name +\" .obj_contact_question_formation .ctn_text .t_title,\",\r\n\t\t\t\".var_\"+ name +\" .obj_contact_question_formation .ctn_text .t_desc strong,\",\r\n\t\t\t\".var_\"+ name +\" .obj_contact_question_formation .ctn_text .ctn_cta .obj_cta{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_contact_question_formation .ctn_text .t_desc,\",\r\n\t\t\t\".var_\"+ name +\" .obj_contact_question_formation .ctn_text .t_mentions{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push_comptoir_dermato_espace_formation .ctn_text .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_push_comptoir_dermato_espace_formation .ctn_text .t_title strong,\",\r\n\t\t\t\".var_\"+ name +\" .obj_push_comptoir_dermato_espace_formation .ctn_text .ctn_cta .obj_cta{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations page marque\r\n\t\t\t// obj_navigation_header_formation\r\n\t\t\t\".var_\"+ name +\" .section_hero_formation .obj_navigation_header_formation .ctn_nav > .ctn_title .t_title{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t// Formations Comptoir Dermato\r\n\t\t\t// obj_direct_comptoir_dermato\r\n\t\t\t\".var_\"+ name +\" .obj_direct_comptoir_dermato > .ctn_text > .t_title,\",\r\n\t\t\t\".var_\"+ name +\" .obj_direct_comptoir_dermato > .ctn_text > p strong{\",\r\n\t\t\t\"\tfont-family:\"+ bold +\";\",\r\n\t\t\t\"\t}\",\r\n\t\t\t\".var_\"+ name +\" .obj_direct_comptoir_dermato > .ctn_text > p{\",\r\n\t\t\t\"\tfont-family:\"+ regular +\";\",\r\n\t\t\t\"\t}\"\r\n\t\t].join('\\n');\r\n\r\n\t\tdocument.head.appendChild(styleFonts);\r\n\t\tstyleFonts.setAttribute('type', 'text/css');\r\n\t\tstyleFonts.append(styleFontsContent);\r\n\t});\r\n}\r\n\r\nexport default setStyleFonts;","import React from 'react';\r\nimport { Placeholder, VisitorIdentification, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { loadReCaptcha } from 'react-recaptcha-v3'\r\nimport ObjBackToTop from './components/AllPages/ObjBackToTop'; \r\nimport MetaSitecore from './components/AllPages/MainMeta'; \r\nimport { withTranslation } from 'react-i18next';\r\nimport { isAppMobile } from \"./utilities/FrontFunctions/AoxFrontFunctions\"\r\n\r\n// CSS\r\n//import './assets/css/AOX.css'\r\nimport './assets/css/index.css'\r\nimport { setStyleColors } from './assets/css/colors'\r\nimport { setStyleFonts } from './assets/css/fonts'\r\nimport { templatePageWithoutCookies } from './data/const';\r\n\r\nclass Layout extends React.Component { \r\n\r\n componentDidMount() {\r\n\t\t// recaptcha v3\r\n\t\tloadReCaptcha(this.props.t('recaptcha_sitekey'));\r\n\r\n setStyleColors();\r\n setStyleFonts();\r\n\t}\r\n\r\n isNotTemplatewithoutCookies = (templateId) => {\r\n return templateId.toUpperCase() != templatePageWithoutCookies.toUpperCase()\r\n }\r\n \r\n render() {\r\n console.log('cookie : ',this.props.route?.templateId, templatePageWithoutCookies, this.props.route?.templateId != templatePageWithoutCookies)\r\n return (\r\n <React.Fragment>\r\n \r\n {this.isNotTemplatewithoutCookies(this.props.route?.templateId) && <MetaSitecore />}\r\n <VisitorIdentification />\r\n \r\n <Placeholder name=\"main_header\" rendering={this.props.route} /> \r\n\r\n <ObjBackToTop />\r\n \r\n <main className={`main_container ${isAppMobile() ? \"mobileApp\" : \"\" }`}>\r\n <Placeholder name=\"main_container\" rendering={this.props.route} />\r\n </main>\r\n\r\n <Placeholder name=\"main_footer\" rendering={this.props.route} /> \r\n \r\n </React.Fragment>\r\n )}\r\n};\r\n\r\n//export default Layout;\r\nexport default withTranslation()((withSitecoreContext()(Layout)));\r\n","import React from 'react';\r\nimport i18n from 'i18next';\r\nimport { isExperienceEditorActive, dataApi } from '@sitecore-jss/sitecore-jss-react';\r\nimport SitecoreContextFactory from './lib/SitecoreContextFactory';\r\nimport { dataFetcher } from './dataFetcher';\r\nimport config from './temp/config';\r\nimport Layout from './Layout';\r\nimport { Redirect } from 'react-router-dom'; \r\n \r\n//import NotFound from './NotFound';\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\nlet ssrInitialState = null;\r\n\r\nexport default class RouteHandler extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n notFound: true,\r\n accessDenied: false, // https://sitecore.decerno.se/post/jss-unauthorized-handling\r\n routeData: ssrInitialState, // null when client-side rendering\r\n defaultLanguage: config.defaultLanguage,\r\n };\r\n\r\n if (ssrInitialState && ssrInitialState.sitecore && ssrInitialState.sitecore.route) {\r\n // set the initial sitecore context data if we got SSR initial state\r\n SitecoreContextFactory.setSitecoreContext({\r\n route: ssrInitialState.sitecore.route,\r\n itemId: ssrInitialState.sitecore.route.itemId,\r\n ...ssrInitialState.sitecore.context,\r\n });\r\n }\r\n\r\n // route data from react-router - if route was resolved, it's not a 404\r\n if (props.route !== null) {\r\n this.state.notFound = false;\r\n }\r\n\r\n // if we have an initial SSR state, and that state doesn't have a valid route data,\r\n // then this is a 404 route.\r\n if (ssrInitialState && (!ssrInitialState.sitecore || !ssrInitialState.sitecore.route)) {\r\n this.state.notFound = true;\r\n }\r\n\r\n // if we have an SSR state, and that state has language data, set the current language\r\n // (this makes the language of content follow the Sitecore context language cookie)\r\n // note that a route-based language (i.e. /de-DE) will override this default; this is for home.\r\n if (ssrInitialState && ssrInitialState.context && ssrInitialState.context.language) {\r\n this.state.defaultLanguage = ssrInitialState.context.language;\r\n }\r\n\r\n // once we initialize the route handler, we've \"used up\" the SSR data,\r\n // if it existed, so we want to clear it now that it's in react state.\r\n // future route changes that might destroy/remount this component should ignore any SSR data.\r\n // EXCEPTION: Unless we are still SSR-ing. Because SSR can re-render the component twice\r\n // (once to find GraphQL queries that need to run, the second time to refresh the view with\r\n // GraphQL query results)\r\n // We test for SSR by checking for Node-specific process.env variable.\r\n if (typeof window !== 'undefined') {\r\n ssrInitialState = null;\r\n }\r\n\r\n this.componentIsMounted = false;\r\n this.languageIsChanging = false;\r\n\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 no existing routeData is present (from SSR), get Layout Service fetching the route data\r\n if (!this.state.routeData) {\r\n this.updateRouteData();\r\n }\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 /**\r\n * Loads route data from Sitecore Layout Service into state.routeData\r\n */\r\n updateRouteData() {\r\n let sitecoreRoutePath = this.props.route.match.params.sitecoreRoute || '/';\r\n if (!sitecoreRoutePath.startsWith('/')) {\r\n sitecoreRoutePath = `/${sitecoreRoutePath}`;\r\n }\r\n\r\n const language = this.props.route.match.params.lang || this.state.defaultLanguage;\r\n\r\n // get the route data for the new route\r\n getRouteData(sitecoreRoutePath, language).then((routeData) => {\r\n if (routeData !== null && routeData.sitecore && routeData.sitecore.route) {\r\n // set the sitecore context data and push the new route\r\n SitecoreContextFactory.setSitecoreContext({\r\n route: routeData.sitecore.route,\r\n itemId: routeData.sitecore.route.itemId,\r\n ...routeData.sitecore.context,\r\n });\r\n this.setState({ routeData, notFound: false });\r\n } else if (routeData !== null && routeData === 401) {\r\n this.setState({ accessDenied: true });\r\n }else {\r\n this.setState({ routeData, notFound: true });\r\n }\r\n });\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;\r\n\r\n if (i18n.language !== newLanguage) {\r\n this.languageIsChanging = true;\r\n\r\n i18n.changeLanguage(newLanguage, () => {\r\n this.languageIsChanging = false;\r\n\r\n // if the component is not mounted, we don't care\r\n // (next time it mounts, it will render with the right language context)\r\n if (this.componentIsMounted) {\r\n // after we change the i18n language, we need to force-update React,\r\n // since otherwise React won't know that the dictionary has changed\r\n // because it is stored in i18next state not React state\r\n this.forceUpdate();\r\n }\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(previousProps) {\r\n const existingRoute = previousProps.route.match.url;\r\n const newRoute = this.props.route.match.url;\r\n\r\n // don't change state (refetch route data) if the route has not changed\r\n if (existingRoute === newRoute) {\r\n return;\r\n }\r\n\r\n // if in experience editor - force reload instead of route data update\r\n // avoids confusing Sitecore's editing JS\r\n if (isExperienceEditorActive()) {\r\n window.location.assign(newRoute);\r\n return;\r\n }\r\n\r\n this.updateLanguage();\r\n this.updateRouteData();\r\n }\r\n\r\n render() {\r\n const { notFound, routeData, accessDenied } = this.state;\r\n \r\n if (accessDenied) {\r\n return <Redirect to=\"/Unauthorized\" />; \r\n }\r\n\r\n // no route data for the current route in Sitecore - show not found component.\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 if (notFound) { \r\n return <Redirect to=\"/NotFound\" />; \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 (!routeData || this.languageIsChanging) {\r\n return null;\r\n }\r\n\r\n // Render the app's root structural layout\r\n return <Layout route={routeData.sitecore.route} />;\r\n }\r\n}\r\n\r\n/**\r\n * Sets the initial state provided by server-side rendering.\r\n * Setting this state will bypass initial route data fetch calls.\r\n * @param {object} ssrState\r\n */\r\nexport function setServerSideRenderingState(ssrState) {\r\n ssrInitialState = ssrState;\r\n}\r\n\r\n/**\r\n * Gets route data from Sitecore. This data is used to construct the component layout for a JSS route.\r\n * @param {string} route Route path to get data for (e.g. /about)\r\n * @param {string} language Language to get route data in (content language, e.g. 'en')\r\n */\r\nfunction getRouteData(route, language) {\r\n const fetchOptions = {\r\n layoutServiceConfig: { host: config.sitecoreApiHost },\r\n querystringParams: { sc_lang: language, sc_apikey: config.sitecoreApiKey },\r\n fetcher: dataFetcher,\r\n };\r\n\r\n return dataApi.fetchRouteData(route, fetchOptions).catch((error) => {\r\n if (error.response && error.response.status === 404 && error.response.data) {\r\n return error.response.data;\r\n } else if (error.response && error.response.status === 401) {\r\n return 401;\r\n }\r\n\r\n console.error('Route data fetch error', error, error.response);\r\n\r\n return null;\r\n });\r\n}\r\n","import React from 'react';\r\nimport { SitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport { ApolloProvider } from 'react-apollo';\r\nimport componentFactory from './temp/componentFactory';\r\nimport SitecoreContextFactory from './lib/SitecoreContextFactory';\r\nimport RouteHandler from './RouteHandler';\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 <RouteHandler> 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\nexport const routePatterns = [\r\n '/:lang([a-z]{2}-[A-Z]{2})/:sitecoreRoute*',\r\n '/:lang([a-z]{2})/:sitecoreRoute*',\r\n '/:sitecoreRoute*',\r\n];\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\nconst AppRoot = ({ path, Router, graphQLClient }) => {\r\n const routeRenderFunction = (props) => <RouteHandler route={props} />;\r\n return (\r\n <ApolloProvider client={graphQLClient}>\r\n <SitecoreContext componentFactory={componentFactory} contextFactory={SitecoreContextFactory}>\r\n <Router location={path} context={{}}>\r\n <Switch>\r\n {routePatterns.map((routePattern) => (\r\n <Route key={routePattern} path={routePattern} render={routeRenderFunction} />\r\n ))}\r\n </Switch>\r\n </Router>\r\n </SitecoreContext>\r\n </ApolloProvider>\r\n );\r\n};\r\n\r\nexport default AppRoot;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport AppRoot from './AppRoot';\r\nimport { setServerSideRenderingState } from './RouteHandler';\r\nimport GraphQLClientFactory from './lib/GraphQLClientFactory';\r\nimport config from './temp/config';\r\nimport i18ninit from './i18n';\r\n\r\n/* eslint-disable no-underscore-dangle */\r\n\r\nlet renderFunction = ReactDOM.render;\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 // push the initial SSR state into the route handler, where it will be used\r\n setServerSideRenderingState(__JSS_STATE__);\r\n\r\n // when React initializes from a SSR-based initial state, you need to render with `hydrate` instead of `render`\r\n renderFunction = ReactDOM.hydrate;\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\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).then(() => {\r\n // HTML element to place the app into\r\n const rootElement = document.getElementById('root');\r\n\r\n renderFunction(\r\n <AppRoot\r\n path={window.location.pathname}\r\n Router={BrowserRouter}\r\n graphQLClient={graphQLClient}\r\n />,\r\n rootElement\r\n );\r\n});\r\n","import i18n from 'i18next';\r\nimport fetchBackend from 'i18next-fetch-backend';\r\nimport { initReactI18next } from 'react-i18next';\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) {\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 // eslint-disable-next-line\r\n const dictionaryServicePath = `${config.sitecoreApiHost}/sitecore/api/jss/dictionary/${config.jssAppName}/{{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\r\n i18n\r\n .use(fetchBackend)\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 import/first */\r\n\r\nimport 'isomorphic-fetch';\r\nimport { ApolloClient } from 'apollo-client';\r\nimport { InMemoryCache, IntrospectionFragmentMatcher } from 'apollo-cache-inmemory';\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 NOTE: to use Sitecore Experience Editor it is essential that your\r\n link passes cookies along with requests (credentials: 'include').\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, credentials: 'include' });\r\n\r\n// ...or a batched link (multiple queries within 10ms all go in one HTTP request)\r\nimport { BatchHttpLink } from 'apollo-link-batch-http';\r\n\r\n// ...and an automatic persisted query link, which reduces bandwidth by using query hashes to alias content\r\n// the APQ link is _chained_ behind another link that performs the actual HTTP calls, so you can choose\r\n// APQ + batched, or APQ + http links for example.\r\nimport { createPersistedQueryLink } from 'apollo-link-persisted-queries';\r\n\r\nexport default function(endpoint, ssr, initialCacheState) {\r\n /* HTTP link selection: default to batched + APQ */\r\n const link = createPersistedQueryLink().concat(\r\n new BatchHttpLink({ uri: endpoint, credentials: 'include' })\r\n );\r\n\r\n const cache = new InMemoryCache({\r\n fragmentMatcher: new IntrospectionFragmentMatcher({\r\n introspectionQueryResultData,\r\n }),\r\n });\r\n\r\n return new ApolloClient({\r\n ssrMode: ssr,\r\n ssrForceFetchDelay: 100,\r\n credentials: 'include',\r\n link,\r\n cache: cache.restore(initialCacheState),\r\n });\r\n}\r\n"],"sourceRoot":""}