{"version":3,"sources":["modules/shared-cms/utils/is-cms-container-field.ts","modules/shared-cms/utils/read-cms-value.ts","modules/shared-cms/utils/get-default.ts","modules/shared-cms/utils/get-default-url.ts","modules/shared-cms/utils/build-cms-styles.ts","modules/shared-cms/utils/read-page-title.ts","modules/shared-cms/utils/extract-cms-or-default.ts","modules/shared/redux/modules/tracer/sub-modules/initialize-module.ts","modules/shared/redux/modules/tracer/sub-modules/update-consent-module.ts","modules/shared/redux/modules/tracer/sub-modules/admin-panel-module.ts","modules/shared/utils/flatten-children.ts","modules/shared/utils/build-component-array.ts","modules/shared/utils/array.ts","modules/shared/utils/id.ts","modules/shared/utils/contract-utils.ts","modules/shared/utils/url.ts","modules/shared/utils/string.ts","modules/shared/utils/object.ts","modules/shared/utils/date.ts","modules/shared/utils/optins.ts","modules/shared/utils/print.ts","modules/shared/utils/cookie.ts","modules/shared/utils/keyboard.ts","modules/shared/components/tracer/consent-banner/consent-banner-component.module.css","modules/shared/components/tracer/tracer-admin-panel/tracer-admin-panel-component.module.css","modules/shared/redux/store.ts","modules/bootstrap/pages/home/home-query.ts","modules/bootstrap/pages/home/home-loader.tsx","modules/bootstrap/pages/home/home-enhancer.ts","modules/bootstrap/pages/home/home-page.tsx","modules/bootstrap/pages/home-alt/home-alt-query.ts","modules/bootstrap/pages/home-alt/home-alt-loader.tsx","modules/bootstrap/pages/home-alt/home-alt-enhancer.ts","modules/bootstrap/pages/home-alt/home-alt-page.tsx","modules/bootstrap/components/router/components/content-selector/content-selector-component.tsx","modules/bootstrap/components/router/router-component.tsx","modules/bootstrap/components/router/router-enhancer.ts","modules/bootstrap/bootstrap.tsx","app.tsx","serviceWorker.ts","addons/index.ts","index.tsx","modules/shared/components/generic-list/generic-list-component.tsx","modules/shared/components/not-found/not-found-component.module.css","modules/shared-ui/components/column-list-container/column-list-container-component.module.css","modules/shared/services/tracer-consent-service.ts","modules/shared-cms/components/large-bloc/large-bloc-component.module.css","modules/shared/types/type-utils.ts","modules/shared/hocs/with-querystring-filtering/with-querystring-filtering.tsx","modules/shared/hocs/with-in-memory-filtering/with-in-memory-filtering.tsx","modules/shared/hocs/with-global-state/with-datas-fetching/with-datas-fetching.tsx","modules/shared/hocs/with-global-state/with-datas-fetching-listening/with-datas-fetching-listening.tsx","modules/shared/hocs/with-global-state/with-notify-ressource-loaded/with-notify-ressource-loaded.tsx","modules/shared/hocs/with-stateless-datas-fetching/with-stateless-datas-fetching.tsx","modules/shared/hocs/with-querystring-reading/with-querystring-reading.tsx","modules/shared/hocs/with-session-storage/with-session-storage.tsx","modules/shared/hocs/with-property-merge/with-property-merge.tsx","modules/shared/hocs/with-remote-actions/with-remote-actions.tsx","modules/shared/hocs/with-seo/with-seo.tsx","modules/shared/components/menu/responsive/mobile/components/panel/panel-component.module.css","config/config-ui.ts","modules/shared-cms/hocs/components/cms-query.tsx","modules/shared-ui/components/typography/page-title/page-title-component.module.css","modules/shared-ui/components/typography/light-title/light-title-component.module.css","modules/shared/components/banner/components/banner-group/banner-group-component.module.css","modules/shared/layouts/sidebar-layout/sidebar-layout.module.css","modules/shared-ui/components/clickable-container/clickable-container-component.module.css","modules/shared-ui/components/buttons/classic-button/classic-button-component.module.css","modules/shared-ui/components/dialog/confirm/confirm-component.module.css","modules/shared/redux/modules/list/list-state.ts","modules/shared/models/customer/person.ts","modules/shared/models/customer/subscriptions.ts","modules/shared/redux/middlewares/list-middleware.ts","modules/shared/redux/middlewares/cache-middleware.ts","modules/shared/redux/middlewares/authentication-middleware.ts","modules/shared/redux/middlewares/tracer-middleware.ts","modules/shared/redux/middlewares/tracking-middleware.ts","modules/shared/redux/watchers/idle-watcher.ts","modules/shared-ui/components/list-container/list-container-component.module.css","modules/shared-ui/components/dialog/alert/alert-component.module.css","modules/shared/components/menu/menu-component.module.css","modules/shared/components/contextual-menu/list-button/list-button-component.module.css","modules/bootstrap/pages/home-alt/home-alt-page.module.css","modules/shared-cms/components/cms-image-container/cms-image-container-component.tsx","modules/shared-cms/components/large-bloc/large-bloc-component.tsx","modules/shared-cms/components/large-bloc-list/large-bloc-list-component.tsx","modules/shared/models/customer/type.ts","modules/shared/components/footer/footer-component.module.css","vendors/semantic-ui/index.ts","global/history.ts","modules/shared/services/API/cms/client/sub-services/cms-authentication-service.ts","modules/shared/services/API/cms/client/sub-services/cms-token-service.ts","modules/shared/services/API/cms/client/rest-client.ts","modules/shared/services/API/cms/client/apollo-client.ts","modules/shared/services/API/cms/structure-service.ts","modules/shared/components/not-found/not-found-component.tsx","modules/shared/components/unhautorized/unhautorized-component.tsx","modules/shared/components/router/flat-switch/flat-switch-component.tsx","modules/shared/components/router/notified-route/notified-route-component.tsx","modules/shared/components/router/layoutable-route/layoutable-route-component.tsx","modules/shared/components/router/private-route/private-route-enhancer.ts","modules/shared/components/router/private-route/private-route-component.tsx","modules/shared/components/global-loader/global-loader-enhancer.ts","modules/shared/components/global-loader/global-loader-component.tsx","modules/shared/components/local-loader/local-loader-component.tsx","modules/shared/components/menu/responsive/desktop/components/panel/panel-component.tsx","modules/shared/components/menu/responsive/desktop/desktop-menu-component.tsx","modules/shared/components/menu/responsive/mobile/components/panel/panel-component.tsx","modules/shared/components/menu/responsive/mobile/mobile-menu-component.tsx","modules/shared/components/menu/menu-component.tsx","modules/shared/components/header/header-enhancer.ts","modules/shared/components/header/header-component.tsx","modules/shared/components/footer/footer-enhancer.ts","modules/shared/components/footer/footer-component.tsx","modules/shared/components/contextual-menu/list-button/list-button-enhancer.ts","modules/shared/components/contextual-menu/list-button/list-button-component.tsx","modules/shared/components/contextual-menu/user-button/user-button-component.tsx","modules/shared/components/contextual-menu/contextual-menu-component.tsx","modules/shared/components/contextual-menu/contextual-menu-enhancer.ts","modules/shared/components/banner/components/banner-group/banner-group-query.ts","modules/shared/components/banner/components/banner-group/banner-group-enhancer.ts","modules/shared/components/banner/components/banner-group/banner-group-loader.tsx","modules/shared/components/banner/components/banner-group/banner-group-component.tsx","modules/shared/components/banner/banner-enhancer.ts","modules/shared/components/banner/banner-component.tsx","modules/shared/components/breadcrumb/breadcrumb-component.tsx","modules/shared/components/error-message/error-message-component.tsx","modules/shared/components/error-boundary/error-boundary-component.tsx","modules/shared/components/back-to-top/back-to-top-component.tsx","modules/shared/components/scroll-restoration/scroll-restoration-component.tsx","modules/shared/components/scroll-restoration/scroll-restoration-enhancer.ts","modules/shared/components/logo/logo-component.tsx","modules/shared/components/seo/seo-component.tsx","modules/shared/components/unknown-content/unknown-content-component.tsx","modules/shared/components/logout-progress-message/logout-progress-message-component.tsx","modules/shared/components/map/map-component.tsx","modules/shared-ui/components/image-container/image-container-component.module.css","modules/shared-ui/components/html-container/html-container-component.module.css","modules/shared/components/error-message/error-message-component.module.css","modules/shared/components/logo/logo-component.module.css","modules/shared/layouts/default-layout/default-layout.tsx","modules/shared/layouts/sidebar-layout/sidebar-layout.tsx","modules/shared/hooks/use-hover.ts","modules/shared/hooks/use-router.ts","modules/shared/hooks/use-force-update.ts","modules/shared/hooks/use-infinite-scroll.ts","modules/shared/hooks/use-infinite-scroll-paging.ts","modules/shared/hooks/use-debounce.ts","modules/shared/hooks/use-print-ready.ts","modules/shared-cms/hocs/with-cms-seo/with-cms-seo.tsx","modules/shared-cms/hocs/with-fetch-datas-from-cms.tsx","modules/shared-cms/hocs/with-fetch-datas-by-id-from-cms.tsx","modules/shared-ui/components/cta-image/cta-image-component.module.css","modules/shared-ui/components/separator/separator-component.module.css","modules/shared/redux/modules/list/sub-modules/refresh-list-module.ts","modules/shared/redux/modules/list/sub-modules/refresh-list-interval-module.ts","modules/shared/redux/modules/list/sub-modules/utils.ts","modules/shared/redux/modules/list/sub-modules/update-local-elements-quantity-module.ts","modules/shared/redux/modules/list/sub-modules/update-remote-elements-quantity-module.ts","modules/shared/redux/modules/list/sub-modules/update-remote-elements-quantity-timeout-module.ts","modules/shared/redux/modules/list/sub-modules/initialize-buffer-list-module.ts","modules/shared/redux/modules/list/sub-modules/clear-list-module.ts","modules/shared/components/global-loader/global-loader-component.module.css","modules/shared/components/contextual-menu/user-button/user-button-component.module.css","modules/shared/components/contextual-menu/contextual-menu-component.module.css","modules/bootstrap/pages/home/home-page.module.css","modules/shared-ui/components/buttons/classic-button/classic-button-component.tsx","modules/shared-ui/components/buttons/submit-button/submit-button-component.tsx","modules/shared-ui/components/buttons/link-button/link-button-component.tsx","modules/shared-gdpr/components/base-components/container/container-component.tsx","modules/shared-gdpr/components/client/gdpr-client-component.tsx","modules/shared-gdpr/components/rdv/gdpr-rdv-component.tsx","modules/shared-gdpr/components/newsletter/gdpr-newsletter-component.tsx","modules/shared-gdpr/components/donor/gdpr-donor-component.tsx","modules/shared-gdpr/components/list-creation/gdpr-list-creation-component.tsx","modules/shared-gdpr/components/espace-perso/gdpr-espace-perso.tsx","modules/shared-ui/components/typography/page-title/page-title-component.tsx","modules/shared-ui/components/typography/light-title/light-title-component.tsx","modules/shared-i18n/i18n/locales/index.ts","modules/shared-i18n/i18n/index.ts","modules/shared-i18n/i18n-provider.tsx","modules/shared/utils/constants/civility.ts","modules/shared/utils/constants/month.ts","modules/shared/components/menu/responsive/desktop/components/panel/panel-component.module.css","modules/shared/utils/cdn-utils.ts","assets/images/produit-indispo.png","modules/shared/utils/country.ts","modules/shared/services/API/backend/offer-service.ts","modules/shared/components/tracer/consent-banner/consent-banner-enhancer.ts","modules/shared/components/tracer/consent-banner/consent-banner-component.tsx","modules/shared/components/tracer/tracer-admin-panel/tracer-admin-panel-enhancer.ts","modules/shared/components/tracer/tracer-admin-panel/tracer-admin-panel-component.tsx","global/index.ts","modules/shared/components/header/header-component.module.css","modules/shared-ui/components/loadable-image/loadable-image-component.module.css","modules/shared-ui/components/light-separator/light-separator-component.module.css","modules/shared-ui/components/buttons/link-button/link-button-component.module.css","modules/shared-gdpr/components/base-components/container/container-component.module.css","assets/images/coeur.png","modules/shared/services/structure-service.ts","modules/shared/services/context-service.ts","modules/shared/services/buffer-list-service.ts","modules/shared/services/cache-query-service.ts","modules/shared/components/breadcrumb/breadcrumb-component.module.css","modules/shared/components/back-to-top/back-to-top-component.module.css","modules/shared/components/map/map-component.module.css","modules/shared/layouts/default-layout/default-layout.module.css","modules/shared/redux/modules/structure/structure-module.ts","modules/shared/redux/utils/fetch-module-factory.tsx","modules/shared/redux/modules/navigation/navigation-module.ts","modules/shared/redux/modules/authentication/authentication-module.ts","modules/shared/redux/modules/list/list-module.ts","modules/shared/redux/modules/layout/layout-module.ts","modules/shared/redux/modules/tracer/tracer-module.ts","modules/shared/redux/modules/tracking/tracking-module.ts","modules/shared/redux/modules/idle/idle-module.ts","modules/shared/services/API/backend/client/rest-client.ts","modules/shared/services/API/backend/client/sub-services/backend-token-service.ts","modules/shared/services/API/backend/client/secured-rest-client.ts","modules/shared/services/API/backend/structure-service.ts","modules/shared/services/API/backend/authentication-service.ts","modules/shared/services/API/backend/public-folder-service.ts","modules/shared/services/API/backend/private-folder-service.ts","modules/shared/services/API/backend/current-folder-service.ts","modules/shared/services/API/backend/event-type-service.ts","modules/shared/services/API/backend/store-service.ts","modules/shared/services/API/backend/incentive-partner-service.ts","modules/shared/services/API/backend/current-list-service.ts","modules/shared/services/API/backend/list-service.ts","modules/shared/services/API/backend/utils-service.ts","modules/shared/services/API/backend/newsletter-service.ts","modules/shared/services/API/backend/sponsorship-service.ts","config/config.ts","config/routes.ts","modules/shared/redux/modules/authentication/sub-modules/login-module.ts","modules/shared/redux/modules/authentication/sub-modules/register-module.ts","modules/shared/redux/modules/authentication/sub-modules/logout-module.ts","modules/shared/redux/modules/authentication/sub-modules/initialize-module.ts","modules/shared-ui/components/cta-button/cta-button-component.module.css","modules/shared/models/tracer/type.ts","modules/shared-ui/components/dialog/confirm/confirm-component.tsx","modules/shared-ui/components/cta-button/cta-button-component.tsx","modules/shared-ui/components/cta-image/cta-image-component.tsx","modules/shared-ui/components/clickable-container/clickable-container-component.tsx","modules/shared-ui/components/loadable-image/loadable-image-component.tsx","modules/shared-ui/components/image-container/image-container-component.tsx","modules/shared-ui/components/column-list-container/column-list-container-component.tsx","modules/shared-ui/components/list-container/list-container-component.tsx","modules/shared-ui/components/separator/separator-component.tsx","modules/shared-ui/components/light-separator/light-separator-component.tsx","modules/shared-ui/components/html-container/html-container-component.tsx","modules/shared-ui/components/dialog/alert/alert-component.tsx","modules/shared-ui/components/dialog/confirm/confirm-service.tsx","modules/shared-ui/components/dialog/alert/alert-service.tsx","modules/shared-ui/components/checkbox-list/checkbox-list-component.tsx","modules/shared/redux/modules/global-loader/global-loader-module.ts"],"names":["readCMSValue","val","iv","getDefault","defaultVal","getDefaultUrlPicture","picture","pic","length","url","split","buildCMSStyles","props","result","fontSizeTitle","fontSize","concat","toBeDetermined","fontSizeSubTitle","subTitlePropsCheck","globalFontSizePropsCheck","textColor","textColorPropsCheck","color","justification","justifyPropsCheck","cssJustification","textAlign","backgroundImagePropsCheck","pictureValue","backgroundImage","backgroundColorPropsCheck","backgroundColor","width","widthPropsCheck","cssWidth","typedProps","horizontalPosition","verticalPosition","contentPositionPropsCheck","cpProps","cssVerticalPosition","alignItems","cssHorizontalPosition","justifyContent","readPageTitle","data","pageTitle","extractCMSOrDefault","initializeModule","reducer","state","action","type","_objectSpread","consents","tracerConsentService","getAll","initialize","UPDATE_ALL_CONSENTS","ACCEPT_ALL_CONSENTS","REJECT_ALL_CONSENTS","updateConsentModule","payload","forEach","consent","update","value","map","c","undefined","acceptAll","declineAll","updateAll","rejectAll","adminPanelModule","adminPanelEnabled","show","hide","isReactElement","flattenChildren","children","React","Children","toArray","filter","reduce","flatChildren","child","Fragment","push","buildComponentArray","items","itemRenderer","apply","_toConsumableArray","chunk","array","size","chunkedArr","index","slice","readPathId","path","splittedPath","reverse","createPathId","id","removePathId","createPath","name","replace","toLowerCase","getContractApiUrl","concatUrl","config","backend","baseUrl","rest","listUrl","urlFragments","resultArray","workingUrlFragments","match","first","shift","i","component","str","join","parts","titleCase","char","toUpperCase","removeAccent","searchString","criteria","search","stringFormat","_len","arguments","args","Array","_key","parse","object","output","Object","keys","k","Number","isNaN","Date","test","dateIsExpired","date","dateIsExpiredBuilder","formatTechDate","dateVal","getFullYear","getMonth","getDate","formatDate","language","toLocaleDateString","formatTime","options","toLocaleTimeString","formatSimpleTime","hour","minute","formatCurrentDate","formatCurrentTime","calculateAge","birthdate","diff","now","getTime","age","Math","abs","getUTCFullYear","convertToOptins","subs","preferences","checked","entries","e","key","OptinPreferenceValues","getIntByString","OptinTypeValues","PRINTEMPS_LISTES","isPrintMode","window","matchMedia","matches","printReadyEventName","printPage","targetUrl","readyEventName","w","open","addEventListener","print","close","printPageWhenReady","printCurrentPageWhenReady","printCurrentPage","createCookie","days","expires","setTime","toUTCString","document","cookie","readCookie","nameEQ","ca","charAt","substring","indexOf","splittedValue","clearCookies","whiteList","_loop","findIndex","isNumberKey","evt","charCode","which","keyCode","module","exports","store","createStore","combineReducers","router","connectRouter","history","globalLoader","globalLoaderModule","structure","structureModule","navigation","navigationModule","authentication","authenticationModule","list","listModule","layout","layoutModule","tracer","tracerModule","tracking","trackingModule","idle","idleModule","middlewares","thunk","authenticationMiddleware","listMiddleware","cacheMiddleware","tracerMiddleware","trackingMiddleware","applyMiddleware","localApplyMiddleware","subscribe","currentState","getState","authenticationState","loggedInFolder","bufferListService","bufferList","logoutRequested","workInProgress","dispatch","logout","idleWatcher","QUERY","gql","HomeLoader","memo","createElement","LargeBlocListContainer","LargeBlocLoader","enhancer","compose","WithFetchDatasFromCMS","WithCMSSEO","HomePage","_ref","assign","_objectDestructuringEmpty","className","styles","rootContainer","LargeBlocList","mentions","MentionContainer","HomeAltLoader","IntroductionLoader","ActualiteLoader","HomeAltPage","text1","textColor1","fontSize1","text2","textColor2","fontSize2","introduction1","introduction2","introduction3","actualite1","actualite2","actualite3","mentionRef","_objectWithoutProperties","_excluded","descBloc1","description","descriptionTextColor","descriptionFontSize","descBloc2","introduction1Id","getNestedReferenceId","introduction2Id","introduction3Id","actualite1Id","actualite2Id","actualite3Id","mentionId","TitleBlocContainer","fullWidth","description1","DescriptionContainer","Introduction","description2","Actualite","Container","ribbonContainer","RibbonBlocContainer","Mention","ContentSelector","template","Route","exact","render","DefaultLayout","UnknownContent","Router","WithDatasFetching","structureService","get","rootContentId","rootContentTemplate","rootBannerId","rootNavigationElement","bannerId","Switch","navigationTree","subProps","params","BaseRoute","RootModule","loadable","nodes","sectionNodes","BootStrap","App","ErrorBoundary","SEO","Provider","ConsentBanner","ApolloProvider","client","CMSApolloClient","ConnectedRouter","TracerAdminPanel","ScrollRestoration","GlobalLoader","LogoutProgressMessage","Boolean","location","hostname","setTimeout","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","sent","configureGTM","configureAppInsights","stop","ReactDOM","getElementById","navigator","serviceWorker","ready","then","registration","unregister","GenericList","cookieConsentMap","2","3","getByType","TracerTypeValues","UKNOWN","FUNCTIONNAL_TRACER_TYPE","readonly","cookieName","values","tracerType","v","pick","obj","copy","WithQuerystringFiltering","Component","_useRouter","useRouter","unparsedFilters","queryString","queryStringFilters","splittedValues","isArray","handleFiltersSelection","useCallback","updatedFilters","queryParams","currentFilter","stringify","filters","WithQuerystringFilteringAndReading","filterKeys","_useRouter2","prototype","toString","call","WithInMemoryFiltering","_useState","useState","_useState2","_slicedToArray","setFilters","remoteFetchAction","redirectOnNotFound","WithDatasFetchingWrapper","_React$Component","_classCallCheck","_callSuper","_inherits","_createClass","_this$props","this","isLoading","fetchDatas","error","_this$props2","_excluded2","code","Redirect","to","errorMessage","message","ErrorMessage","connect","states","subState","storeName","fetchAction","WithDatasFetchingListening","stateName","WithNotifyRessourceLoaded","getRessourceName","getAdditionalParentTree","getAdditionalType","WithNotifyRessourceLoadedWrapper","updateNavigation","parentNavigationTree","additionalParentTree","additionalType","parent","InnerStatelessDatasFetchingComponent","LoaderComponent","outputFieldName","resetFieldName","updateDataFieldName","notFoundBehavior","updateDataAction","errorMessages","setData","isInitialized","useRef","_useState3","_useState4","setIsLoading","_useState5","_useState6","setError","useEffect","isSubscribed","_ref2","t0","current","finish","fetchData","reloadData","_callee2","bypassLoading","_args2","_context2","updateData","_callee3","_args3","_context3","abrupt","find","subCode","title","LocalLoader","resetProps","updateDataProps","dataProps","_defineProperty","WithStatelessDatasFetching","WithStatelessDatasFetchingByParameters","searchFieldNames","waitForSearchParams","checkParams","filterProps","useMemo","remoteFetchActionWrapper","missingParams","s","WithQuerystringReading","querystring","innerProps","WithSessionStorage","sessionKey","isFirstRun","setIsFirstRun","lastSessionData","sessionData","setSessionData","initialValueStr","sessionStorage","getItem","initialValue","JSON","updateSessionData","updatedData","updatedSessionData","setItem","removeItem","clearSessionData","WithPropertyMerge","additionalProps","WithRemoteActions","remoteActions","injectCommitFunction","isUpdating","setIsUpdating","additionalActions","innerAdditionalActions","n","remoteActionInfos","enhancedRemoteAction","successMessage","alertService","_x","catch","analyzedError","defaultErrorMessage","finally","commitWork","Dimmer","active","page","Loader","WithSEO","getPageTitle","getDescription","getKeywords","getImage","keywords","image","img","configUI","pagination","thumbList","productList","responsive","mobile","minWidth","maxWidth","tablet","computer","largeScreen","wideScreen","carousel","breakpoint","settings","slidesToShow","slidesToScroll","arrows","initialSlide","infinite","autoplay","centerPadding","centerMode","columnListOptions","selects","groups","text","CMSQuery","query","variables","readPayload","bypassNotFound","onLoadingStateChange","Query","_ref2$loading","loading","_ref2$error","_ref2$data","innerData","NotFound","initialState","currentList","updateTimeout","refreshInterval","isRefreshing","buildPersonName","person","CivilityTypeValues","civility","firstName","lastName","Subscriptions","mariage","naissance","cadeaux","voyage","robes","thunkDispatch","SUCCESS_LOGIN","SUCCESS_REGISTER","SUCCESS_INITIALIZE","token","initializeBufferListModule","initializeBufferList","REQUEST_LOGOUT","refreshListIntervalModule","endRefreshListInterval","updateRemoteElementsQuantityTimeoutModule","stopUpdateRemoteElementsQuantityTimeout","updateRemoteElementsQuantityModule","updateRemoteElementsQuantity","clearListModule","clearList","SUCCESS_UPDATE_LOCAL_ELEMENTS_QUANTITY","startUpdateRemoteElementsQuantityTimeout","SUCCESS_UPDATE_REMOTE_ELEMENTS_QUANTITY","ERROR_UPDATE_REMOTE_ELEMENTS_QUANTITY","startRefreshListInterval","refreshListModule","refreshList","SUCCESS_INITIALIZE_BUFFER_LIST","ON_IDLE_START","ON_IDLE_END","isValid","LOCATION_CHANGE","pathname","cacheQueryService","clearRouteCache","REQUEST_REGISTER","adminPanel","some","reload","UPDATE_NAVIGATION","navigationState","tracerState","trackingState","currentPage","datalayerRest","datalayer","t","PERFORMANCE_TRACER_TYPE","TagManager","dataLayer","updateDatalayer","newPage","layers","typeName","indexed","tagManager","currentLayer","eventList","timeout","eventName","isIdle","onIdleEnd","clearTimeout","onIdleStart","CMSImageContainer","style","placeholderClassName","onloaded","sort","a","b","fileSize","large","medium","small","ImageContainer","LargeBlocContainer","LargeBloc","wrappedTitle","wrappedSubTitle","subTitle","wrappedColor","wrappedPicture","wrappedCtaText","ctaText","wrappedCtaLink","ctaLink","wrappedCtaStyle","ctaStyle","wrappedTextColor","_useHover","useHover","hovered","bind","_ref2$title","_ref2$subTitle","_ref2$color","_ref2$picture","_ref2$ctaText","_ref2$ctaLink","_ref2$ctaStyle","_ref2$textColor","ClickableContainer","link","innerClassName","background","onHover","innerWrapper","ctaButtonContainer","CtaButton","forceHover","Placeholder","Image","Grid","stackable","Column","imageBlocList","uwImageBlocList","childItem","FolderStateValues","ACTIVE","BLOQUE","FERME","OUVERT","TRANSFERT","FolderTypeValues","UNKNOWN","PROSPECT","CUSTOMER","UniverseTypeValues","UNIVERS_UNKNOWN","valInt","valStr","UNIVERS_MARIAGE","UNIVERS_NAISSANCE","UNIVERS_CADEAUX","UNIVERS_VOYAGE","universeStr","isUniverseStrType","readUniverseStrType","getStringByInt","MISS","MRS","MR","OTHER","civilityStr","isCivilityStrType","readCivilityStrType","valueInt","DenominatorTypeValues","MARIED","PARENTS","RECIPIENT","GiftStateValues","ANNULE","EMPORTE","GENERE","PERIME","PAYE","RESERVE","EN_ATTENTE","PRINTEMPS_VOYAGES","PRINTEMPS","PRINTEMPS_PARTENAIRES","MARIAGE","NAISSANCE","CADEAUX","VOYAGE","ROBES","optinPreferenceStr","isOptinPreferenceStrType","readOptinPreferenceStrType","createBrowserHistory","apiClient","axios","create","headers","cmsAuthenticationService","authenticate","_authenticate","_config$cms$auth","grantType","clientId","clientScope","clientSecret","formData","response","expiration","cms","auth","tokenUrl","URLSearchParams","append","post","setSeconds","getSeconds","expires_in","access_token","cmsTokenService","getToken","_getToken","tokenValue","_token","tokenContent","issUrls","refreshedToken","localStorage","atob","infraUrl","u","issUrl","iss","restClient","baseURL","interceptors","request","use","requestConfig","originalRequestConfig","t1","authorization","err","Promise","reject","returnedError","errorResponseHandler","httpLink","createHttpLink","uri","graphql","authLink","setContext","_","includes","_x2","apolloClient","ApolloClient","cache","InMemoryCache","_get","href","invisibleDiv","media","srcSet","getPlistesCDNUrl","src","alt","container","contentContainer","midLayer","content","errorCode","homeBtn","ClassicButton","onClick","Unhautorized","BaseSwitch","NotifiedRoute","Layout","useDispatch","LayoutableRoute","isAuthenticated","folder","PrivateRoute","authenticationPath","allowedFolderType","count","loaderContainer","loader","Level4MenuPanel","elements","listContainerRef","topBind","topIsHovered","topRef","_useHover2","botBind","bottomIsHovered","botRef","scrolledToTop","setScrolledToTop","scrolledToBottom","setScrolledToBottom","scrollable","scroll","scrollDown","refCurrent","scrollTo","scrollTop","scrollHeight","clientHeight","isScrolledToBottom","isScrolledToTop","handleHover","isHovered","down","loop","menuLvl4Container","menuLvl4Scrollbar","ref","menuLvl4ListContainer","element","childKey","NavLink","ressourcePath","menuLvl4","bottom","buildLevel2","childElement","isCtaContainer","menuBlock","menuCtaContainer","menuLvl2","dividedElements","menuSubBlock","childElements","childsKey","column","ctaContainer","menuLvl3Container","menuLvl3","isBold","bolded","buildLevel3","DesktopPanel","top","verticalDisplay","_useHover3","role","topMenuItem","topMenuItemHovered","menuItem","activeClassName","activeMenuItem","thumb","disableThumbPlaceholder","thumbUrl","thumbAssetUrl","innerThumb","imgContainer","thumbCtaText","thumbContainer","thumbCtaContainer","thumbCtaStyle","megaMenu","megaMenuContent","verticalMegaMenuContent","navBlock","verticalNavBlock","promoContainer","buildLevel1","DesktopMenu","renderCta","MobilePanel","activeElement","updateActiveElement","isActiveRoot","mobileTopMenuItem","prevBtn","subElement","subkey","rootElement","mobileMenuItem","nextBtn","MobileMenu","currentElement","setCurrentElement","handleUpdateActiveElement","mobileRootLevel","rootLevel","levelPath","clonedElements","currentClonedElement","clonedChildren","cleanAndGetCTA","splice","clonedItem","getActiveElement","activePath","startsWith","activeChildElement","Menu","visible","Responsive","as","nav","Sidebar","animation","direction","sideBar","sideBarContent","paddingTop","mobileMenu","convertStructureToMenuItems","parentPath","workingNode","workingChildren","nodePath","isHidden","isModuleEntry","replacementChildNode","findRemplacementChildNode","isShortcut","pathId","currentMenuItem","Header","parsedSearch","_location$pathname$to","setVisible","searchValue","setSearchValue","searchFieldVisible","setSearchFieldVisible","_useState7","_useState8","headerHeight","setHeaderHeight","headerRef","updateHeaderHeight","newHeaderHeight","position","onSubElementLoaded","menuElements","convertStructureToSectionMenuItems","handleChange","currentTarget","toggleSideNav","toggleSearch","root","header","bannerContainer","Banner","onLoaded","headerContainer","fluid","headerLeft","headerContent","menuBtn","headerCenter","Logo","headerRight","rightActionsContainer","searchForm","onSubmit","placeholder","searchInput","onChange","disabled","searchBtn","ContextualMenu","closeSearchBtn","reduxConnect","showAdminPanel","storeService","createNewsletterLight","newsletterService","createLight","Selectors","stores","handleGroupePrintempsChange","HandleSelectStore","footerColumn","Select","selector","_event","footerSection","help","HashLink","NewsLetterBloc","manageClickNewsletter","newsLetterBloc","newsLetterForm","newsLetterHeart","coeur","nlInnerForm","newsLetterTitle","Formik","initialValues","email","Form","inputContainer","nlFirstRow","InputControl","required","nlInput","EmailInputControl","nlSecondRow","DatePickerControl","hideIcon","newsLetterBtn","sn","instagram","rel","target","aria-label","socialBtn","instagramBtn","pinterest","pinterestBtn","legalSection","openTracerAdminPanel","LinkButton","Link","Footer","convertedStores","option","o","win","focus","event","selectionText","textContent","routes","magasin","HandleClickNewsletter","I18nProvider","Separator","footer","contactSection","GDPRNewsletter","sumReducer","accumulator","item","listSubState","authenticationSubState","productQuantity","g","quantity","productCount","ListButton","showNotification","setShowNotification","previousProductCount","setPreviousProductCount","Popup","basic","trigger","listBtn","espacePerso","maListe","gerer","Label","circular","counter","expanded","productAddedAlert","UserButton","userBtn","logged","confirmService","login","requestLogout","spacer","WithFetchDatasByParamsFromCMS","BannerGroup","bannerGroups","bannerOrderList","onClose","group","groupId","banners","linkText","linkUrl","linkStyle","startDate","endDate","startDateObj","endDateObj","_React$useState","_React$useState2","currentIndex","setCurrentIndex","darkBackground","card","hidden","cardContent","HtmlContainer","htmlContent","closeButton","stopPropagation","preventDefault","Icon","inverted","ids","getBannerIds","navigationElement","filteredId","bannerState","bannersState","isClosed","filterParams","Breadcrumb","useSelector","sections","isModule","BaseBreadcrumb","Section","Divider","icon","_ref$title","PageTitle","p","_this2","isError","errorInfo","setState","_this$state","componentStack","BackToTop","handleScroll","pageYOffset","removeEventListener","btn","behavior","withRouter","_PureComponent","InnerScrollRestoration","componentDidMount","componentDidUpdate","prevLocation","PureComponent","maxHeight","noMargin","alignLeft","inlineStyle","marginTop","marginBottom","marginLeft","headerLogo","logoLink","getCatalogueCDNUrl","onLoad","subtext","pageTitleSuffix","disablePageTitleSuffix","fullPageTitle","seo","titleSuffix","Helmet","robots","copyright","author","classification","distribution","rating","resourceType","revisitAfter","bulletinText","property","cdn","Map","_Component","onScriptLoad","_this3","google","apiKey","googleMap","x","getElementsByTagName","parentNode","insertBefore","markers","maps","mapTypeId","MapTypeId","ROADMAP","mapTypeControl","m","lat","lng","marker","Marker","addListener","infoWindow","InfoWindow","latLng","createInfoWindow","mainContainer","SidebarLayout","mobileHeaderComponent","sideComponent","contentComponent","visibility","sidebarVisibility","filterContainer","height","productsContainer","mobileContainer","filterSidebar","filterPanel","closeFilterPanelBtn","toggleVisibility","set","onMouseEnter","onMouseLeave","MISSING_CONTEXT_ERROR","Error","context","useContext","__RouterContext","forceUpdate","useForceUpdate","listen","useInfiniteScroll","callback","isFetching","setIsFetching","latestFetching","ceil","innerHeight","scrollY","documentElement","useInfiniteScrollPaging","triggerServerPaginationCommand","itemList","setItemList","setCount","from","loadMoreItems","addCount","useDebounce","delay","debouncedValue","setDebouncedValue","handler","usePrintReady","isReadyToPrint","isEventDispatched","setIsEventDispatched","dispatchEvent","Event","useDelayedPrintReady","isDataLoaded","setIsDataLoaded","dataLoaded","cmsDatas","readDescription","seoDescription","readKeywords","seoKeywords","readThumbnail","seoThumbnail","thumbnail","queryName","WithFetchDatasByIdFromCMS","additionalFilterPaths","includeIdInFilters","variable","f","updateLocalList","localList","updatedElements","outputElements","existingElement","ee","variantId","resolve","currentListService","getSummary","_x3","setInterval","clearInterval","mergeBufferList","oldBufferList","newBufferList","updateBufferList","elementsToUpdate","currentBufferList","currentElements","elementToUpdate","bufferElementIndex","listElementIndex","mergeLocalList","reservedQuantity","updateLocalElementsQuantityModule","updateLocalElementsQuantity","ElementsToUpdate","currentUpdatedElement","requestAction","successAction","failureAction","fastUpsertElements","_x4","folderId","previousBufferList","secondary","grey","_ref$type","_ref$themed","themed","_ref$normal","normal","additionalClass","classicBtn","normalText","SubmitButton","GDPRClient","Trans","i18nKey","GDPRRdv","_ref$footer","GDPRDonor","GDPRListCreation","_ref$lastPage","lastPage","GDPREspacePerso","subtitle","bordered","centered","uppercase","wrapperClass","center","upper","mainClass","border","subClass","LightTitle","fr","shared","languageSelection","product","productsList","productsListItemFr","en","productsListItemEn","dons","landing","landingFr","landingEn","searchListResult","searchListResultFr","searchListResultEn","complementarySearch","complementarySearchFr","complementarySearchEn","selectGift","selectGiftFr","selectGiftEn","recapGift","recapGiftFr","recapGiftEn","contactInformations","contactInformationsFr","contactInformationsEn","recapContactInformations","recapContactInformationsFr","recapContactInformationsEn","payment","paymentFr","paymentEn","paymentConfirmation","paymentConfirmationFr","paymentConfirmationEn","giftDetails","giftDetailsFr","giftDetailsEn","giftSummary","giftSummaryFr","giftSummaryEn","interpolation","escapeValue","resources","common","fallbackLng","ns","defaultNS","react","wait","bindI18n","bindStore","i18n","LanguageDetector","init","I18nextProvider","CivilityList","MonthList","fileName","getProductCDNUrl","getBrandCDNUrl","getMenuCDNUrl","getProfilCDNUrl","getPCOMCDNUrl","getCountryAndStateText","country","getConvertedCountryStatesOptions","offerService","getCurrent","_getCurrent","getCurrentByUniverse","_getCurrentByUniverse","universeId","isVisible","topRow","logo","button","onlyText","underlined","midRow","botRow","withBorder","updateAllConsents","hideAdminPanel","localConsents","setlocalConsents","Modal","closeIcon","tracerModal","Content","tracersContainer","tr","tracerContainer","tracerLabels","Checkbox","toggle","indeterminate","_e","Actions","convertCatalogueNodesToGlobalNodes","catalogueNodes","catalogueNode","namePath","isDynamic","nodesEnhancer","enhance","node","catalogueStructure","additionalNodes","currentNode","enhancedNodes","enhanceMany","isCMS","contentTemplate","isSubModuleEntry","universes","brands","finalResult","structures","all","cmsStructureService","catalogueStructureService","storageKey","contextService","getLoggedInUserInfos","_getLoggedInUserInfos","alreadyLoggedInUserTokenStr","authToken","authenticationService","getLoggedInUser","authenticateInternalUser","_authenticateInternalUser","folderIdOrEmail","password","accessToken","expireAt","registerInternalUser","_registerInternalUser","registerFolderInfos","previousBufferListStr","datas","persistOnRouteChange","cacheWithParams","fullKey","d","isGlobalLoading","resetOnRouteChange","REQUEST","SUCCESS","ERROR","showLoading","hideLoading","fetchModuleFactory","reduceReducers","loginModule","registerModule","logoutModule","register","updateElementsQuantity","status","subCodeLib","backendTokenService","securedRestClient","catalogueUrl","eventDate","contact","person1","birthDate","person2","_getLoggedInUser","retrievePassword","_retrievePassword","_callee4","_context4","getInformationToResetPassword","_getInformationToResetPassword","_callee5","IdDossier","Heure","EMail","Operation","_context5","_x5","resetPassword","_resetPassword","_callee6","newPassword","_context6","_x6","_x7","acceptTransfer","_acceptTransfer","_callee7","_context7","_x8","_x9","publicFolderService","_search","isWedding","privateId","getDetailed","_getDetailed","_ref3","getProfilePicture","_getProfilePicture","_ref4","base64","privateFolderService","getByDateEmailAndUniverse","_getByDateEmailAndUniverse","toISOString","currentFolderService","getOffer","_getOffer","eventTypeService","getByUniverse","_getByUniverse","hasOrganiser","_getAll","incentivePartnerService","getByAdvantageCode","_getByAdvantageCode","eventId","storeId","_getSummary","fastUpsertElement","_fastUpsertElement","_fastUpsertElements","deleteElementByVariantId","_deleteElementByVariantId","delete","utilsService","validateEmail","_validateEmail","culture","_contact","requestAccess","_requestAccess","commonUrl","encodeURIComponent","_create","_createLight","_update","put","getByToken","_getByToken","Token","_delete2","sponsorshipService","UpdateSponsorship","_UpdateSponsorship","weddingUrl","fileMaxSize","gtmId","preview","appInsights","scriptSrc","region","portalId","form","catalogue","brand","creerListe","cadeauxNaissance","voyageMariage","fairePart","communiquerMaListe","mesAvisCadeaux","imprimerMesAvisCadeaux","partenaires","basique","privilege","choixDons","laRobe","modeles","createurs","dressFitting","createAppointment","manageAppointment","authenticationResult","ADVERTISING_TRACER_TYPE","_ref$target","_ref$fullWidth","textDecoration","ctaButton","CtaImage","linkValue","targetValue","linkTarget","LoadableImage","placeholderStyle","onError","isLoaded","setIsLoaded","setIsError","defaultImg","display","errorImgContainer","blockImg","ColumnListContainer","_ref$hideOptions","hideOptions","headerChildren","screenWidth","innerWidth","getColumnOptions","optionIndex","setOptionIndex","columns","hasEnoughItems","headerTopRow","headerBottomRow","currentOptionIndex","displayLabel","displaySelection","inactive","buildColumnOptions","listContainer","centeredList","itemContainer","ListContainer","noResultsTxt","results","noResults","separator","mask","LightSeparator","withMargin","partHr","_ref$node","_ref$useDefaultClass","useDefaultClass","_ref$className","htmlContainer","dangerouslySetInnerHTML","__html","fontFamily","fontWeight","defaultProps","ConfirmDialog","handleCancel","isOpen","handleConfirm","res","_this2$state","msg","actions","classicButton","cancelButton","containerElement","body","appendChild","createRef","AlertDialog","positiveButton","CheckboxList","onSelectionChange","renderLabel","cbProps","currentCbProps","newVals","isSelected","valIndex","label","START","END","max"],"mappings":"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","file":"static/js/main.ab508179.chunk.js","sourcesContent":["import { CMSContainerField } from '../cms-base-type';\n\nexport const isCMSContainerField = (\n toBeDetermined: T | CMSContainerField,\n): toBeDetermined is CMSContainerField => {\n if (typeof (toBeDetermined as CMSContainerField).iv !== 'undefined') {\n return true;\n }\n return false;\n};\n","import { CMSContainerField } from '../cms-base-type';\nimport { isCMSContainerField } from './is-cms-container-field';\n\nexport const readCMSValue = (val?: T | CMSContainerField): T | undefined => {\n if (!val) {\n return val;\n }\n\n if (isCMSContainerField(val)) {\n return val.iv;\n }\n\n return val;\n};\n","export const getDefault = (val: T | undefined, defaultVal: T): T => {\n if (!val) {\n return defaultVal;\n }\n return val;\n};\n","import { CMSImageContainerField, CMSContainerField } from '../cms-base-type';\nimport { readCMSValue } from './read-cms-value';\n\nexport const getDefaultUrlPicture = (\n picture?: CMSImageContainerField[] | CMSContainerField | undefined,\n): string | undefined => {\n const pic = readCMSValue(picture);\n if (pic && pic.length > 0 && pic[0].url) {\n const urlWithouParameters = pic[0].url.split('?')[0];\n\n return urlWithouParameters;\n }\n return undefined;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { readCMSValue, getDefault, getDefaultUrlPicture } from 'modules/shared-cms/utils';\n\nimport {\n TitleProps,\n SubTitleProps,\n TextColorProps,\n JustifyProps,\n BackgroundImageProps,\n BackgroundColorProps,\n ContentPositionProps,\n GlobalFontSizeProps,\n WidthProps,\n} from '../cms-base-type';\n\nconst titlePropsCheck = (toBeDetermined: TitleProps | any): toBeDetermined is TitleProps => {\n if ((toBeDetermined as TitleProps).fontSizeTitle) {\n return true;\n }\n\n return false;\n};\n\nconst subTitlePropsCheck = (toBeDetermined: SubTitleProps | any): toBeDetermined is SubTitleProps => {\n if ((toBeDetermined as SubTitleProps).fontSizeSubTitle) {\n return true;\n }\n\n return false;\n};\n\nconst globalFontSizePropsCheck = (toBeDetermined: GlobalFontSizeProps | any): toBeDetermined is GlobalFontSizeProps => {\n if ((toBeDetermined as GlobalFontSizeProps).fontSize) {\n return true;\n }\n\n return false;\n};\n\nconst widthPropsCheck = (toBeDetermined: WidthProps | any): toBeDetermined is WidthProps => {\n if ((toBeDetermined as WidthProps).width) {\n return true;\n }\n\n return false;\n};\n\nconst textColorPropsCheck = (toBeDetermined: TextColorProps | any): toBeDetermined is TextColorProps => {\n if ((toBeDetermined as TextColorProps).textColor) {\n return true;\n }\n\n return false;\n};\n\nconst justifyPropsCheck = (toBeDetermined: JustifyProps | any): toBeDetermined is JustifyProps => {\n if ((toBeDetermined as JustifyProps).justification) {\n return true;\n }\n\n return false;\n};\n\nconst backgroundImagePropsCheck = (\n toBeDetermined: BackgroundImageProps | any,\n): toBeDetermined is BackgroundImageProps => {\n if ((toBeDetermined as BackgroundImageProps).picture) {\n return true;\n }\n\n return false;\n};\n\nconst backgroundColorPropsCheck = (\n toBeDetermined: BackgroundColorProps | any,\n): toBeDetermined is BackgroundColorProps => {\n if ((toBeDetermined as BackgroundColorProps).color) {\n return true;\n }\n\n return false;\n};\n\nconst contentPositionPropsCheck = (\n toBeDetermined: ContentPositionProps | any,\n): toBeDetermined is ContentPositionProps => {\n const typedProps = toBeDetermined as ContentPositionProps;\n if (typedProps.horizontalPosition || typedProps.verticalPosition) {\n return true;\n }\n\n return false;\n};\n\n// Méthode de construction générique des styles du CMS\nexport const buildCMSStyles =

(props: P): any => {\n const result: any = {};\n\n if (titlePropsCheck(props)) {\n result.fontSize = `${(getDefault(readCMSValue((props as TitleProps).fontSizeTitle), 16) * 1.0) / 10}rem`;\n }\n\n if (subTitlePropsCheck(props)) {\n result.fontSize = `${(getDefault(readCMSValue((props as SubTitleProps).fontSizeSubTitle), 16) * 1.0) / 10}rem`;\n }\n\n if (globalFontSizePropsCheck(props)) {\n result.fontSize = `${(getDefault(readCMSValue((props as GlobalFontSizeProps).fontSize), 16) * 1.0) / 10}rem`;\n }\n\n if (textColorPropsCheck(props)) {\n result.color = `${readCMSValue((props as TextColorProps).textColor)}`;\n }\n\n if (justifyPropsCheck(props)) {\n const justification = readCMSValue((props as JustifyProps).justification);\n let cssJustification = '';\n switch (justification) {\n case 'gauche':\n cssJustification = 'left';\n break;\n case 'droite':\n cssJustification = 'right';\n break;\n case 'justifié':\n cssJustification = 'justify';\n break;\n case 'centré':\n default:\n cssJustification = 'center';\n break;\n }\n\n result.textAlign = cssJustification;\n }\n\n if (backgroundImagePropsCheck(props)) {\n const biProps = props as BackgroundImageProps;\n const pictureValue = getDefaultUrlPicture(biProps.picture);\n if (pictureValue && pictureValue.length > 0) {\n result.backgroundImage = `url('${pictureValue}')`;\n }\n }\n\n if (backgroundColorPropsCheck(props)) {\n result.backgroundColor = `${readCMSValue((props as BackgroundColorProps).color)}`;\n }\n\n if (widthPropsCheck(props)) {\n const wProps = props as WidthProps;\n const width = readCMSValue((wProps as WidthProps).width);\n let cssWidth = '600px';\n switch (width) {\n case 'petit':\n cssWidth = '540px';\n break;\n case 'large':\n cssWidth = '737px';\n break;\n default:\n cssWidth = '600px';\n break;\n }\n\n result.width = cssWidth;\n }\n\n if (contentPositionPropsCheck(props)) {\n const cpProps = props as ContentPositionProps;\n const verticalPosition = readCMSValue(cpProps.verticalPosition);\n let cssVerticalPosition = 'center';\n switch (verticalPosition) {\n case 'haut':\n cssVerticalPosition = 'flex-start';\n break;\n case 'bas':\n cssVerticalPosition = 'flex-end';\n break;\n default:\n cssVerticalPosition = 'center';\n break;\n }\n\n result.alignItems = cssVerticalPosition;\n\n const horizontalPosition = readCMSValue(cpProps.horizontalPosition);\n let cssHorizontalPosition = 'center';\n switch (horizontalPosition) {\n case 'gauche':\n cssHorizontalPosition = 'flex-start';\n break;\n case 'droite':\n cssHorizontalPosition = 'flex-end';\n break;\n default:\n cssHorizontalPosition = 'center';\n break;\n }\n\n result.justifyContent = cssHorizontalPosition;\n }\n\n return result;\n};\n","import { PageTitleProps } from 'modules/shared-cms/cms-base-type';\nimport { readCMSValue } from './read-cms-value';\n\nexport const readPageTitle = (data?: PageTitleProps): string | undefined => {\n if (data) {\n const { pageTitle } = data;\n return readCMSValue(pageTitle);\n }\n\n return undefined;\n};\n","import { CMSContainerField } from '../cms-base-type';\nimport { getDefault } from './get-default';\nimport { readCMSValue } from './read-cms-value';\n\nexport const extractCMSOrDefault = (val: T | CMSContainerField | undefined, defaultVal: T): T => {\n return getDefault(readCMSValue(val), defaultVal);\n};\n","import { Action, AnyAction } from 'redux';\n\nimport { tracerConsentService } from '../../../../services/tracer-consent-service';\nimport { TracerState } from '..';\n\nexport const INITIALIZE_TRACERS = 'INITIALIZE_TRACERS';\n\ninterface InitializeTracersAction extends Action {\n type: typeof INITIALIZE_TRACERS;\n}\n\nexport type InitializeAction = InitializeTracersAction;\n\nconst initializeAction = (): InitializeTracersAction => {\n return {\n type: INITIALIZE_TRACERS,\n };\n};\n\nfunction initializeReducer(state: TracerState, action: AnyAction): TracerState {\n switch (action.type) {\n case INITIALIZE_TRACERS:\n return { ...state, consents: tracerConsentService.getAll() };\n default:\n return state;\n }\n}\n\nexport const initializeModule = {\n reducer: initializeReducer,\n action: {\n initialize: initializeAction,\n },\n};\n","import { Action, AnyAction } from 'redux';\n\nimport { TracerConsent } from '../../../../models/tracer';\nimport { tracerConsentService } from '../../../../services/tracer-consent-service';\nimport { TracerState } from '..';\n\nexport const UPDATE_ALL_CONSENTS = 'UPDATE_ALL_CONSENTS';\n\nexport const ACCEPT_ALL_CONSENTS = 'ACCEPT_ALL_CONSENTS';\n\nexport const REJECT_ALL_CONSENTS = 'REJECT_ALL_CONSENTS';\n\ninterface UpdateAllConsentsAction extends Action {\n type: typeof UPDATE_ALL_CONSENTS;\n payload: { consents: TracerConsent[] };\n}\n\ninterface AcceptAllConsentsAction extends Action {\n type: typeof ACCEPT_ALL_CONSENTS;\n}\n\ninterface RejectAllConsentsAction extends Action {\n type: typeof REJECT_ALL_CONSENTS;\n}\n\nexport type UpdateConsentAction = UpdateAllConsentsAction | AcceptAllConsentsAction | RejectAllConsentsAction;\n\nconst updateAllAction = (data: TracerConsent[]): UpdateAllConsentsAction => {\n return {\n type: UPDATE_ALL_CONSENTS,\n payload: {\n consents: data,\n },\n };\n};\n\nconst acceptAllAction = (): AcceptAllConsentsAction => {\n return {\n type: ACCEPT_ALL_CONSENTS,\n };\n};\n\nconst rejectAllAction = (): RejectAllConsentsAction => {\n return {\n type: REJECT_ALL_CONSENTS,\n };\n};\n\nfunction updateConsentReducer(state: TracerState, action: AnyAction): TracerState {\n switch (action.type) {\n case UPDATE_ALL_CONSENTS: {\n action.payload.consents.forEach((consent: TracerConsent) => {\n tracerConsentService.update(consent.type, !!consent.value);\n });\n return {\n ...state,\n consents: action.payload.consents\n ? action.payload.consents.map((c: TracerConsent) => {\n return { ...c, value: !!c.value };\n })\n : undefined,\n };\n }\n case ACCEPT_ALL_CONSENTS:\n tracerConsentService.acceptAll();\n return { ...state, consents: tracerConsentService.getAll() };\n case REJECT_ALL_CONSENTS:\n tracerConsentService.declineAll();\n return { ...state, consents: tracerConsentService.getAll() };\n default:\n return state;\n }\n}\n\nexport const updateConsentModule = {\n reducer: updateConsentReducer,\n action: {\n updateAll: updateAllAction,\n acceptAll: acceptAllAction,\n rejectAll: rejectAllAction,\n },\n};\n","import { Action, AnyAction } from 'redux';\nimport { TracerState } from '..';\n\nexport const SHOW_TRACER_ADMIN_PANEL = 'SHOW_TRACER_ADMIN_PANEL';\n\nexport const HIDE_TRACER_ADMIN_PANEL = 'HIDE_TRACER_ADMIN_PANEL';\n\ninterface ShowAdminPanelAction extends Action {\n type: typeof SHOW_TRACER_ADMIN_PANEL;\n}\n\ninterface HideAdminPanelAction extends Action {\n type: typeof HIDE_TRACER_ADMIN_PANEL;\n}\n\nexport type AdminPanelAction = ShowAdminPanelAction | HideAdminPanelAction;\n\nconst showAction = (): ShowAdminPanelAction => {\n return {\n type: SHOW_TRACER_ADMIN_PANEL,\n };\n};\n\nconst hideAction = (): HideAdminPanelAction => {\n return {\n type: HIDE_TRACER_ADMIN_PANEL,\n };\n};\n\nfunction adminPanelReducer(state: TracerState, action: AnyAction): TracerState {\n switch (action.type) {\n case SHOW_TRACER_ADMIN_PANEL:\n return { ...state, adminPanelEnabled: true };\n case HIDE_TRACER_ADMIN_PANEL: {\n return { ...state, adminPanelEnabled: false };\n }\n default:\n return state;\n }\n}\n\nexport const adminPanelModule = {\n reducer: adminPanelReducer,\n action: {\n show: showAction,\n hide: hideAction,\n },\n};\n","import React from 'react';\n\nconst isReactElement = (\n toBeDetermined: Exclude,\n): toBeDetermined is React.ReactElement => {\n if (typeof (toBeDetermined as React.ReactElement).type !== 'undefined') {\n return true;\n }\n return false;\n};\n\n// TODO : mettre un commentaire\nexport const flattenChildren = (children: React.ReactElement[]): React.ReactElement[] => {\n const result: React.ReactElement[] = [];\n return React.Children.toArray(children)\n .filter(isReactElement)\n .reduce((flatChildren, child): React.ReactElement[] => {\n if (child.type === React.Fragment) {\n return flatChildren.concat(flattenChildren(child.props.children));\n }\n flatChildren.push(child);\n return flatChildren;\n }, result);\n};\n","export const buildComponentArray = (\n items: T[],\n itemRenderer: (item: T, key: number) => JSX.Element,\n): JSX.Element[] => {\n const result: JSX.Element[] = [];\n if (items) {\n result.push(...items.map(itemRenderer));\n }\n\n return result;\n};\n","export const chunk = (array: T[], size: number): T[][] => {\n const chunkedArr: T[][] = [];\n let index = 0;\n while (index < array.length) {\n chunkedArr.push(array.slice(index, size + index));\n index += size;\n }\n return chunkedArr;\n};\n","export const readPathId = (path: string): string => {\n if (!path) {\n return path;\n }\n\n const splittedPath = path.split('__').reverse();\n\n if (splittedPath.length > 1) {\n return splittedPath[0];\n }\n\n return '';\n};\n\nexport const createPathId = (path: string, id: string): string => {\n if (!path || !id) {\n return path;\n }\n\n return `${path}__${id}`;\n};\n\nexport const removePathId = (path: string): string => {\n if (!path) {\n return path;\n }\n\n return path.split('__')[0];\n};\n\nexport const createPath = (name: string): string => {\n if (!name) {\n return name;\n }\n\n return name\n .replace(/[\\300-\\306]/g, 'A')\n .replace(/[\\340-\\346]/g, 'a')\n .replace(/[\\310-\\313]/g, 'E')\n .replace(/[\\350-\\353]/g, 'e')\n .replace(/[\\314-\\317]/g, 'I')\n .replace(/[\\354-\\357]/g, 'i')\n .replace(/[\\322-\\330]/g, 'O')\n .replace(/[\\362-\\370]/g, 'o')\n .replace(/[\\331-\\334]/g, 'U')\n .replace(/[\\371-\\374]/g, 'u')\n .replace(/[\\321]/g, 'N')\n .replace(/[\\361]/g, 'n')\n .replace(/[\\307]/g, 'C')\n .replace(/[\\347]/g, 'c')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/ /g, '-')\n .replace(/%/g, 'pourcent')\n .replace(/\\//g, '-')\n .toLowerCase();\n};\n","import { config } from '../../../config';\nimport { concatUrl } from '.';\n\nexport const getContractApiUrl = (): string => {\n return concatUrl([\n config.backend.baseUrl,\n config.backend.rest.url,\n config.backend.rest.listUrl,\n '/publicfolder/contract',\n ]);\n};\n","export const concatUrl = (urlFragments: string[]): string => {\n const resultArray = [];\n if (urlFragments.length === 0) {\n return '';\n }\n\n const workingUrlFragments = [...urlFragments];\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (workingUrlFragments[0].match(/^[^/:]+:\\/*$/) && workingUrlFragments.length > 1) {\n const first = workingUrlFragments.shift();\n workingUrlFragments[0] = first + workingUrlFragments[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (workingUrlFragments[0].match(/^file:\\/\\/\\//)) {\n workingUrlFragments[0] = workingUrlFragments[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n workingUrlFragments[0] = workingUrlFragments[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (let i = 0; i < workingUrlFragments.length; i += 1) {\n let component = workingUrlFragments[i];\n\n if (component !== '') {\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[/]+/, '');\n }\n if (i < workingUrlFragments.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[/]+$/, '/');\n }\n\n resultArray.push(component);\n }\n }\n\n let str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n const parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');\n\n return str;\n};\n","const parseHtmlEntities = (str: string): string => {\n return str.replace(/&#([0-9]{1,3});/gi, (match, numStr) => {\n const num = parseInt(numStr, 10);\n return String.fromCharCode(num);\n });\n};\n\nconst parseNewlines = (str: string): string => {\n return str.replace(//gi, '\\n');\n};\n\nconst parseBold = (str: string): string => {\n return str.replace(//gi, '').replace(/<\\/strong\\s*[\\\\/]?>/gi, '');\n};\n\nexport const cleanString = (str: string): string => {\n return parseBold(parseNewlines(parseHtmlEntities(str)));\n};\n\nexport const titleCase = (str: string): string => {\n const result = str\n .toLowerCase()\n .split('')\n .map((char, index) => {\n return index === 0 ? char.toUpperCase() : char;\n });\n\n return result.join('');\n};\n\nexport const removeAccent = (str: string): string => {\n return str\n .replace(/[ÀÁÂÃÄÅ]/g, 'A')\n .replace(/[àáâãäå]/g, 'a')\n .replace(/[ÒÓÔÕÕÖØ]/g, 'O')\n .replace(/[òóôõöø]/g, 'o')\n .replace(/[ÈÉÊË]/g, 'E')\n .replace(/[èéêëð]/g, 'e')\n .replace(/[Ç]/g, 'C')\n .replace(/[ç]/g, 'c')\n .replace(/[Ð]/g, 'D')\n .replace(/[ÌÍÎÏ]/g, 'I')\n .replace(/[ìíîï]/g, 'i')\n .replace(/[ÙÚÛÜ]/g, 'U')\n .replace(/[ùúûü]/g, 'u')\n .replace(/[Ñ]/g, 'N')\n .replace(/[ñ]/g, 'n')\n .replace(/[Š]/g, 'S')\n .replace(/[š]/g, 's')\n .replace(/[Ÿ]/g, 'Y')\n .replace(/[ÿý]/g, 'y')\n .replace(/[Ž]/g, 'Z')\n .replace(/[ž]/g, 'z');\n};\n\nexport const searchString = (str: string, criteria: string): boolean => {\n return removeAccent(str.toLowerCase()).search(removeAccent(criteria.toLowerCase())) !== -1;\n};\n\nexport const stringFormat = (str: string, ...args: string[]): string =>\n str.replace(/{(\\d+)}/g, (match, index) => args[index] || '');\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const getDeepValue = (obj: any, propertyPath: string): string => {\n let result = '';\n for (let i = 0, splittedPath = propertyPath.split('.'), len = propertyPath.length; i < len; i += 1) {\n result = obj[splittedPath[i]];\n }\n return result;\n};\n\nexport function parse(object: any): T {\n if (!object) {\n return object;\n }\n const output: any = {};\n\n // TODO : a enrichir\n Object.keys(object).forEach(k => {\n if (object[k] === '') {\n output[k] = undefined;\n } else if (!Number.isNaN(Number(object[k]))) {\n output[k] = Number(object[k]);\n } else if (!Number.isNaN(Date.parse(object[k]))) {\n output[k] = new Date(object[k]);\n } else if (/true/i.test(object[k])) {\n output[k] = true;\n } else if (/false/i.test(object[k])) {\n output[k] = false;\n } else {\n output[k] = object[k];\n }\n });\n\n return output;\n}\n","export const dateIsExpired = (date: Date): boolean => {\n if (!date) {\n return false;\n }\n\n const now = new Date();\n return date < now;\n};\n\nexport const dateIsExpiredBuilder = (date: Date) => {\n return () => !!date && !dateIsExpired(date);\n};\n\nexport const parseDate = (date: string): Date | undefined => {\n if (!date) {\n return undefined;\n }\n\n return new Date(date.split('T')[0]);\n};\n\nexport const formatTechDate = (date: Date | string): string => {\n if (!date) {\n return '';\n }\n\n let dateVal: Date;\n if (typeof date === 'string') {\n dateVal = new Date(date);\n } else {\n dateVal = date;\n }\n\n return [dateVal.getFullYear(), `0${dateVal.getMonth() + 1}`.slice(-2), `0${dateVal.getDate()}`.slice(-2)].join('-');\n};\n\nexport const formatTechTime = (date: Date | string): string => {\n if (!date) {\n return '';\n }\n\n let dateVal: Date;\n if (typeof date === 'string') {\n dateVal = new Date(date);\n } else {\n dateVal = date;\n }\n\n return `${formatTechDate(dateVal)}T${dateVal\n .getHours()\n .toString()\n .padStart(2, '0')}:${dateVal\n .getMinutes()\n .toString()\n .padStart(2, '0')}:${dateVal\n .getSeconds()\n .toString()\n .padStart(2, '0')}Z`;\n};\n\nexport const formatDate = (date: Date | string, language?: 'fr-FR' | 'en-US'): string => {\n if (!date) {\n return '';\n }\n\n let dateVal: Date;\n if (typeof date === 'string') {\n dateVal = new Date(date);\n } else {\n dateVal = date;\n }\n\n if (language === 'en-US') {\n return dateVal.toLocaleDateString('en');\n }\n\n return dateVal.toLocaleDateString('fr');\n};\n\nexport const formatTime = (date: Date | string, options?: Intl.DateTimeFormatOptions): string => {\n if (!date) {\n return '';\n }\n\n let dateVal: Date;\n if (typeof date === 'string') {\n dateVal = new Date(date);\n } else {\n dateVal = date;\n }\n\n // TODO gerer la langue\n return dateVal.toLocaleTimeString('fr', options);\n};\n\nexport const formatSimpleTime = (date: Date | string): string => {\n return formatTime(date, { hour: '2-digit', minute: '2-digit' });\n};\n\nexport const formatCurrentDate = (): string => {\n return formatDate(new Date());\n};\n\nexport const formatCurrentTime = (): string => {\n return formatTime(new Date());\n};\n\nexport const calculateAge = (birthdate: Date | string): number => {\n const diff = Date.now() - new Date(birthdate).getTime();\n const age = new Date(diff);\n\n return Math.abs(age.getUTCFullYear() - 1970);\n};\n","import { Preference, OptinPreferenceValues, OptinTypeValues, OptinType, Subscriptions } from '../models';\n\nexport const convertToOptins = (\n subs: Subscriptions,\n): {\n id: OptinType;\n checked: boolean;\n preferences: Preference[];\n}[] => {\n const preferences = [] as Preference[];\n let checked = false;\n Object.entries(subs).forEach(e => {\n const key = e[0];\n const value = e[1];\n if (value) {\n checked = true;\n }\n const id = OptinPreferenceValues.getIntByString(key);\n if (id !== undefined) {\n preferences.push({\n id,\n checked: value,\n });\n }\n });\n\n const optIn = {\n id: OptinTypeValues.PRINTEMPS_LISTES,\n checked,\n preferences,\n };\n return [optIn];\n};\n","export const isPrintMode = window && window.matchMedia && window.matchMedia('print').matches;\n\nexport const printReadyEventName = 'readyToPrint';\n\nexport const printPage = (targetUrl: string, readyEventName: string | undefined = undefined): void => {\n const w = window.open(targetUrl);\n if (w) {\n if (readyEventName) {\n // -- on doit attendre que la page soit chargée avant de lancer le .print() car sinon c'est une page vide qui est imprimée\n w.addEventListener(readyEventName, () => {\n w.print();\n w.close();\n });\n } else {\n w.print();\n w.close();\n }\n }\n};\n\nexport const printCurrentPage = (readyEventName: string | undefined = undefined): void => {\n printPage('#', readyEventName);\n};\n\nexport const printPageWhenReady = (targetUrl: string): void => {\n printPage(targetUrl, printReadyEventName);\n};\n\nexport const printCurrentPageWhenReady = (): void => {\n printCurrentPage(printReadyEventName);\n};\n","export const createCookie = (name: string, value: string, days?: number): void => {\n let expires: string;\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = `; expires=${date.toUTCString()}`;\n } else {\n expires = '';\n }\n document.cookie = `${name}=${value}${expires}; path=/`;\n};\n\nexport const readCookie = (name: string): { expires?: Date; value: string } | undefined => {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i += 1) {\n let c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n const fullValue = c.substring(nameEQ.length, c.length);\n const splittedValue = fullValue.split('; expires=');\n if (splittedValue.length === 1) {\n return { value: splittedValue[0] };\n }\n\n return { value: splittedValue[0], expires: new Date(splittedValue[1]) };\n }\n }\n return undefined;\n};\n\nexport const eraseCookie = (name: string): void => {\n createCookie(name, '', -1);\n};\n\nexport const clearCookies = (whiteList: string[]): void => {\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i += 1) {\n let c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (!whiteList || whiteList.findIndex(w => c.indexOf(`${w}=`) === 0) === -1) {\n createCookie(c, '', -1);\n }\n }\n};\n\nexport const readActiveCookie = (name: string): { expires?: Date; value: string } | undefined => {\n const cookie = readCookie(name);\n if (!cookie || !cookie.expires) {\n return cookie;\n }\n\n const now = new Date();\n if (now < cookie.expires) {\n eraseCookie(name);\n return undefined;\n }\n\n return cookie;\n};\n","export const isNumberKey = (evt: KeyboardEvent): boolean => {\n const charCode = evt.which ? evt.which : evt.keyCode;\n if (charCode !== 44 && charCode !== 46 && charCode > 31 && (charCode < 48 || charCode > 57)) return false;\n\n return true;\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"consent-banner-component_container__38-Aj\",\"topRow\":\"consent-banner-component_topRow__qqq5J\",\"botRow\":\"consent-banner-component_botRow__3KXBm\",\"logo\":\"consent-banner-component_logo__3z5ri\",\"midRow\":\"consent-banner-component_midRow__1pQ2R\",\"underlined\":\"consent-banner-component_underlined__-6H2U\",\"button\":\"consent-banner-component_button__2t6gP\",\"onlyText\":\"consent-banner-component_onlyText__3a61v\",\"withBorder\":\"consent-banner-component_withBorder__29pnz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message\":\"tracer-admin-panel-component_message__2XY57\",\"tracersContainer\":\"tracer-admin-panel-component_tracersContainer__3U6is\",\"tracerContainer\":\"tracer-admin-panel-component_tracerContainer__2e5S0\",\"tracerModal\":\"tracer-admin-panel-component_tracerModal__3L_2e\",\"link\":\"tracer-admin-panel-component_link__1b_v9\",\"button\":\"tracer-admin-panel-component_button__2Emvb\",\"withBorder\":\"tracer-admin-panel-component_withBorder__VY5xz\"};","import { createStore, combineReducers, applyMiddleware, AnyAction, StoreEnhancer } from 'redux';\nimport thunk, { ThunkDispatch } from 'redux-thunk';\nimport { connectRouter } from 'connected-react-router';\nimport logger from 'redux-logger';\nimport { history } from 'global';\n\nimport { bufferListService } from 'modules/shared/services';\nimport {\n globalLoaderModule,\n GlobalLoadingState,\n structureModule,\n FetchStructureState,\n navigationModule,\n NavigationState,\n authenticationModule,\n AuthenticationState,\n authenticationMiddleware,\n listModule,\n ListState,\n listMiddleware,\n layoutModule,\n LayoutState,\n tracerModule,\n TracerState,\n tracerMiddleware,\n cacheMiddleware,\n IdleState,\n idleModule,\n idleWatcher,\n trackingMiddleware,\n trackingModule,\n TrackingState,\n} from '.';\n\nexport interface RootState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n router: any;\n globalLoader: GlobalLoadingState;\n structure: FetchStructureState;\n navigation: NavigationState;\n authentication: AuthenticationState;\n list: ListState;\n layout: LayoutState;\n tracer: TracerState;\n tracking: TrackingState;\n idle: IdleState;\n}\n\nconst localApplyMiddleware = (): StoreEnhancer => {\n const middlewares = [\n thunk,\n authenticationMiddleware,\n listMiddleware,\n cacheMiddleware,\n tracerMiddleware,\n trackingMiddleware,\n ];\n if (process.env.REACT_APP_STAGE !== 'preprod' && process.env.REACT_APP_STAGE !== 'preprodbis' && process.env.REACT_APP_STAGE !== 'prod') {\n middlewares.push(logger);\n }\n\n return applyMiddleware(...middlewares);\n};\n\nexport const store = createStore(\n combineReducers({\n router: connectRouter(history),\n globalLoader: globalLoaderModule.reducer,\n structure: structureModule.reducer,\n navigation: navigationModule.reducer,\n authentication: authenticationModule.reducer,\n list: listModule.reducer,\n layout: layoutModule.reducer,\n tracer: tracerModule.reducer,\n tracking: trackingModule.reducer,\n idle: idleModule.reducer,\n }),\n localApplyMiddleware(),\n);\n\nstore.subscribe(() => {\n const currentState = store.getState();\n const authenticationState = currentState.authentication;\n\n // On sauvegarde l'état de la collection buffer\n if (authenticationState && !!authenticationState.loggedInFolder) {\n bufferListService.update(authenticationState.loggedInFolder.id, store.getState().list.bufferList);\n }\n\n // Gestion de la déconnexion\n if (authenticationState.logoutRequested) {\n const canLogout = !listModule.workInProgress || !listModule.workInProgress(currentState.list);\n if (canLogout) {\n store.dispatch(authenticationModule.action.logout());\n }\n }\n});\n\n(store.dispatch as ThunkDispatch)(authenticationModule.action.initialize());\nstore.dispatch(tracerModule.action.initialize());\nidleWatcher(store);\n","import gql from 'graphql-tag';\n\nexport const QUERY = gql([\n `\n query FindHomeContent {\n queryHomeContents {\n data {\n pageTitle { iv }\n\n imageBlocList: largeBlocs {\n iv {\n title\n subTitle\n textColor\n ctaLink\n ctaText\n ctaStyle\n picture {\n url\n fileSize\n }\n }\n }\n\n mention { iv }\n mentionFontSize { iv }\n mentionTextColor { iv }\n\n seoDescription { iv }\n seoKeywords { iv }\n seoThumbnail {\n iv {\n url\n }\n }\n }\n }\n }\n`,\n]);\n","import React from 'react';\nimport { LargeBlocLoader, LargeBlocListContainer } from 'modules/shared-cms/components';\n\nexport const HomeLoader: React.FC = React.memo(() => {\n return (\n \n \n \n \n );\n});\n","import { compose } from 'redux';\nimport { WithFetchDatasFromCMS, WithFetchDatasFromCMSInputProps, WithCMSSEO } from 'modules/shared-cms/hocs';\n\nimport { QUERY } from './home-query';\nimport { HomeLoader } from './home-loader';\nimport { HomeProps } from '.';\n\nconst enhancer = compose>(\n WithFetchDatasFromCMS(QUERY, HomeLoader, 'queryHomeContents'),\n WithCMSSEO(undefined, true),\n);\nexport default enhancer;\n","import React from 'react';\n\nimport { LargeBlocList } from 'modules/shared-cms/components';\n\nimport { MentionContainer } from 'modules/shared-cms-advanced';\nimport { HomeProps } from './home-type';\n\nimport enhancer from './home-enhancer';\n\nimport styles from './home-page.module.css';\n\nconst InnerHomePage: React.FC = React.memo(({ ...rest }: HomeProps) => {\n return (\n

\n \n\n
\n \n
\n
\n );\n});\n\nexport const HomePage = enhancer(InnerHomePage);\n","import gql from 'graphql-tag';\n\nexport const QUERY = gql([\n `\n query FindHomeV2Content {\n queryHomeV2Contents {\n data {\n pageTitle { iv }\n\n titleBlocTitle { iv }\n titleBlocSubTitle { iv }\n titleBlocFontSizeTitle { iv }\n titleBlocFontSizeSubTitle { iv }\n titleBlocWidth { iv }\n titleBlocTagline { iv }\n titleBlocTextColor { iv }\n titleBlocColor { iv }\n titleBlocCtaLink { iv }\n titleBlocCtaText { iv }\n titleBlocCtaStyle { iv }\n titleBlocCtaLink2 { iv }\n titleBlocCtaText2 { iv }\n titleBlocCtaStyle2 { iv }\n titleBlocPicture {\n iv {\n url\n fileSize\n }\n }\n titleBlocHorizontalPosition { iv }\n titleBlocVerticalPosition { iv }\n titleBlocJustification { iv }\n\n text1 { iv }\n textColor1 { iv }\n fontSize1 { iv }\n\n introduction1 { iv { id } }\n\n text2 { iv }\n textColor2 { iv }\n fontSize2 { iv }\n\n actualite1 { iv { id } }\n\n introduction2 { iv { id } }\n\n ribbonTitle { iv }\n ribbonColor { iv }\n ribbonPicture { \n iv {\n url\n fileSize\n }\n }\n ribbonList {\n iv {\n title\n subTitle\n picture {\n url\n fileSize\n }\n color\n }\n }\n\n actualite2 { iv { id } }\n\n introduction3 { iv { id } }\n\n actualite3 { iv { id } }\n\n mentionRef { iv { id } }\n\n seoDescription { iv }\n seoKeywords { iv }\n seoThumbnail {\n iv {\n url\n }\n }\n }\n }\n }\n`,\n]);\n","import React from 'react';\nimport { IntroductionLoader } from 'modules/shared-cms-advanced/enhanced-blocs/introduction/introduction-component-loader';\nimport { ActualiteLoader } from 'modules/shared-cms-advanced/enhanced-blocs/actualite/actualite-component-loader';\n\nexport const HomeAltLoader: React.FC = React.memo(() => {\n return (\n \n \n \n \n \n \n \n \n \n );\n});\n","import { compose } from 'redux';\nimport { WithFetchDatasFromCMS, WithFetchDatasFromCMSInputProps, WithCMSSEO } from 'modules/shared-cms/hocs';\n\nimport { QUERY } from './home-alt-query';\nimport { HomeAltLoader } from './home-alt-loader';\nimport { HomeAltProps } from '.';\n\nconst enhancer = compose>(\n WithFetchDatasFromCMS(QUERY, HomeAltLoader, 'queryHomeV2Contents'),\n WithCMSSEO(undefined, true),\n);\nexport default enhancer;\n","import React from 'react';\n\nimport Container from 'semantic-ui-react/dist/commonjs/elements/Container';\nimport {\n Actualite,\n DescriptionContainer,\n DescriptionContainerProps,\n getNestedReferenceId,\n Introduction,\n Mention,\n RibbonBlocContainer,\n TitleBlocContainer,\n} from 'modules/shared-cms-advanced';\n\nimport { HomeAltProps } from './home-alt-type';\n\nimport enhancer from './home-alt-enhancer';\n\nimport styles from './home-alt-page.module.css';\n\nconst InnerHomeAltPage: React.FC = React.memo(\n ({\n text1,\n textColor1,\n fontSize1,\n text2,\n textColor2,\n fontSize2,\n introduction1,\n introduction2,\n introduction3,\n actualite1,\n actualite2,\n actualite3,\n mentionRef,\n ...rest\n }: HomeAltProps) => {\n const descBloc1: DescriptionContainerProps = {\n description: text1,\n descriptionTextColor: textColor1,\n descriptionFontSize: fontSize1,\n };\n const descBloc2: DescriptionContainerProps = {\n description: text2,\n descriptionTextColor: textColor2,\n descriptionFontSize: fontSize2,\n };\n\n const introduction1Id = getNestedReferenceId(introduction1);\n const introduction2Id = getNestedReferenceId(introduction2);\n const introduction3Id = getNestedReferenceId(introduction3);\n\n const actualite1Id = getNestedReferenceId(actualite1);\n const actualite2Id = getNestedReferenceId(actualite2);\n const actualite3Id = getNestedReferenceId(actualite3);\n\n const mentionId = getNestedReferenceId(mentionRef);\n\n return (\n
\n \n\n
\n \n
\n\n {introduction1Id && }\n\n
\n \n
\n\n {actualite1Id && }\n\n {introduction2Id && }\n\n \n \n \n\n {actualite2Id && }\n\n {introduction3Id && }\n\n {actualite3Id && }\n\n {mentionId && }\n
\n );\n },\n);\n\nexport const HomeAltPage = enhancer(InnerHomeAltPage);\n","import React from 'react';\nimport { Route } from 'react-router-dom';\n\nimport { DefaultLayout } from 'modules/shared/layouts';\nimport { UnknownContent } from 'modules/shared/components';\n\nimport { HomeAltPage, HomePage } from 'modules/bootstrap/pages';\n\nexport const ContentSelector: React.FC<{ template: string }> = ({ template, ...rest }: { template: string }) => {\n switch (template) {\n case 'home':\n return (\n (\n \n \n \n )}\n />\n );\n case 'home-v2':\n return (\n (\n \n \n \n )}\n />\n );\n default:\n return ;\n }\n};\n","import React from 'react';\nimport { Route as BaseRoute, RouteComponentProps } from 'react-router-dom';\nimport loadable from '@loadable/component';\n\nimport { IdRouteParams } from 'modules/shared/types';\nimport { NotifiedRoute as Route, Switch } from 'modules/shared/components';\n\nimport { Props } from './router-type';\nimport { ContentSelector } from './components';\n\nimport enhancer from './router-enhancer';\n\nconst router: React.FC = ({ data }: Props) => {\n if (!data || !data.rootContentId || !data.rootContentTemplate) {\n return ;\n }\n const { rootBannerId, rootContentTemplate } = data;\n const rootNavigationElement = {\n path: '/',\n bannerId: rootBannerId,\n };\n\n return (\n \n }\n />\n ) => {\n return ;\n }}\n />\n {\n const RootModule = loadable(() => import(/* webpackChunkName: \"root\" */ '../../../root/root'));\n return ;\n }}\n />\n \n );\n};\n\nexport const Router = enhancer(router);\n","import { structureModule } from '../../../shared/redux';\nimport { Structure } from '../../../shared/models';\nimport { WithDatasFetching } from '../../../shared/hocs';\nimport { structureService } from '../../../shared/services';\n\nconst enhancer = WithDatasFetching(structureModule, structureService.get);\nexport default enhancer;\n","import React from 'react';\nimport { Router } from './components';\n\nconst BootStrap: React.FC = () => {\n return ;\n};\n\nexport default BootStrap;\n","import React from 'react';\nimport { Provider } from 'react-redux';\nimport { ApolloProvider } from 'react-apollo';\nimport { ConnectedRouter } from 'connected-react-router';\n\nimport { history } from 'global/history';\nimport { store } from 'modules/shared/redux/store';\n\nimport { apolloClient as CMSApolloClient } from 'modules/shared/services/API/cms';\n\nimport {\n ErrorBoundary,\n GlobalLoader,\n ScrollRestoration,\n SEO,\n LogoutProgressMessage,\n ConsentBanner,\n TracerAdminPanel,\n} from 'modules/shared/components';\n\nimport { BootStrap } from 'modules/bootstrap';\n\nconst App: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/),\n);\n\ninterface Config {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n}\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL((process as { env: { [key: string]: string } }).env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA',\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.',\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","export const registerAddons = async (): Promise => {\n const gtm = await import('./g-t-m');\n gtm.configureGTM();\n const appInsights = await import('./app-insights');\n appInsights.configureAppInsights();\n};\nsetTimeout(registerAddons, 2000);\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport 'vendors/semantic-ui/semantic.less';\n\nimport App from './app';\nimport * as serviceWorker from './serviceWorker';\nimport './addons';\n\nimport './index.css';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root'),\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import * as React from 'react';\n\nexport interface GenericListProps {\n items?: T[] | null;\n itemRenderer: (item: T, key: number) => JSX.Element;\n}\n\nexport const GenericList = ({ items, itemRenderer }: GenericListProps): JSX.Element => {\n return {items && items.map(itemRenderer)};\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"not-found-component_container__GU8QV\",\"contentContainer\":\"not-found-component_contentContainer__333fE\",\"backgroundImage\":\"not-found-component_backgroundImage___k8fw\",\"midLayer\":\"not-found-component_midLayer__2InXc\",\"content\":\"not-found-component_content__1aU6v\",\"errorCode\":\"not-found-component_errorCode__2UBpm\",\"title\":\"not-found-component_title__2aSbj\",\"subTitle\":\"not-found-component_subTitle__30PZW\",\"homeBtn\":\"not-found-component_homeBtn__2N9Ea\",\"invisibleDiv\":\"not-found-component_invisibleDiv__2HzKI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"listContainer\":\"column-list-container-component_listContainer__G0-6t\",\"centeredList\":\"column-list-container-component_centeredList__hEiUC\",\"header\":\"column-list-container-component_header__2cglI\",\"headerTopRow\":\"column-list-container-component_headerTopRow__3t93d\",\"headerBottomRow\":\"column-list-container-component_headerBottomRow__1LK0S\",\"displayLabel\":\"column-list-container-component_displayLabel__1rLUl\",\"displaySelection\":\"column-list-container-component_displaySelection__3u18P\",\"active\":\"column-list-container-component_active__2P9fR\",\"inactive\":\"column-list-container-component_inactive__MQbh2\"};","import { createCookie, readCookie } from '../utils';\nimport { TracerConsent, TracerTypeValues, TracerType } from '../models/tracer';\n\nexport const cookieConsentMap = {\n 2: 'plistes-analytics',\n 3: 'plistes-marketing',\n};\n\nexport const tracerConsentService = {\n getByType(type: TracerType): TracerConsent {\n if (type === TracerTypeValues.UKNOWN || type === TracerTypeValues.FUNCTIONNAL_TRACER_TYPE) {\n return { type, value: true, readonly: true };\n }\n\n const cookieName: string = cookieConsentMap[type];\n\n if (cookieName) {\n const cookie = readCookie(cookieName);\n if (cookie) {\n return { type, value: cookie.value === 'true' };\n }\n }\n\n return { type, value: undefined };\n },\n getAll(): TracerConsent[] {\n const result: TracerConsent[] = [];\n Object.values(TracerTypeValues).forEach(tracerType => {\n if (tracerType === TracerTypeValues.UKNOWN || tracerType === TracerTypeValues.FUNCTIONNAL_TRACER_TYPE) {\n result.push({ type: tracerType, value: true, readonly: true });\n return;\n }\n\n const cookieName: string = cookieConsentMap[tracerType];\n\n if (cookieName) {\n const cookie = readCookie(cookieName);\n if (cookie) {\n result.push({ type: tracerType, value: cookie.value === 'true' });\n return;\n }\n }\n\n result.push({ type: tracerType, value: undefined });\n });\n\n return result;\n },\n update(tracerType: TracerType, state: boolean): void {\n if (tracerType === TracerTypeValues.UKNOWN || tracerType === TracerTypeValues.FUNCTIONNAL_TRACER_TYPE) {\n return;\n }\n\n const cookieName: string = cookieConsentMap[tracerType];\n if (state) {\n // Cookies de consentement : validité 6 mois\n createCookie(cookieName, 'true', 180);\n } else {\n createCookie(cookieName, 'false');\n }\n },\n acceptAll(): void {\n Object.values(TracerTypeValues).forEach(v => {\n tracerConsentService.update(v, true);\n });\n },\n declineAll(): void {\n Object.values(TracerTypeValues).forEach(v => {\n tracerConsentService.update(v, false);\n });\n },\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rootContainer\":\"large-bloc-component_rootContainer__S9348\",\"background\":\"large-bloc-component_background__3X7zk\",\"subTitle\":\"large-bloc-component_subTitle__1jHKU\",\"title\":\"large-bloc-component_title__3J_Iq\",\"innerWrapper\":\"large-bloc-component_innerWrapper__3Ayas\"};","export type GetProps = C extends React.ComponentType ? P : never;\n\nexport type Omit = Pick>;\n\nexport const nameof = (name: Extract): string => name;\n\nexport const pick = (obj: T, keys: K[]): Pick => {\n const copy = ({} as unknown) as Pick;\n keys.forEach(key => {\n copy[key] = obj[key];\n });\n return copy;\n};\n","import React, { useCallback } from 'react';\nimport queryString from 'query-string';\nimport { KeyValueFilter } from '../../models';\nimport { formatTechDate, parse } from '../../utils';\nimport { useRouter } from '../../hooks';\nimport { Omit, pick } from '../../types/type-utils';\n\nimport { WithFilteringInjectedProps, WithFilteringAndReadingInjectedProps } from '../types';\n\nexport const WithQuerystringFiltering = () =>

>(\n Component: React.ComponentType

,\n) => {\n type WrapperType = Omit>;\n const WithQuerystringFilteringComponent: React.FC = (props: WrapperType) => {\n const { location, history } = useRouter();\n const unparsedFilters = queryString.parse(location.search);\n\n const queryStringFilters: KeyValueFilter[] = [];\n if (unparsedFilters) {\n Object.keys(unparsedFilters).forEach(v => {\n const values = unparsedFilters[v];\n if (values) {\n let splittedValues;\n if (Array.isArray(values)) {\n splittedValues = values;\n } else {\n splittedValues = values.split('|');\n }\n\n queryStringFilters.push({\n id: v,\n values: splittedValues,\n });\n }\n });\n }\n\n const handleFiltersSelection = useCallback(\n (updatedFilters: KeyValueFilter[]): void => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let queryParams: any;\n\n if (updatedFilters && updatedFilters.length > 0) {\n queryParams = {};\n for (let i = 0; i < updatedFilters.length; i += 1) {\n const currentFilter = updatedFilters[i];\n if (currentFilter.values && currentFilter.values.length > 0) {\n queryParams[currentFilter.id] = currentFilter.values.join('|');\n }\n }\n }\n\n history.push({ ...location, search: `?${queryParams ? queryString.stringify(queryParams) : ''}` });\n },\n [history, location],\n );\n\n return (\n \n );\n };\n\n return WithQuerystringFilteringComponent;\n};\n\nexport const WithQuerystringFilteringAndReading = <\n T extends { [index: string]: string | number | Date | boolean | undefined }\n>(\n filterKeys: (keyof T)[],\n) =>

>(Component: React.ComponentType

) => {\n type WrapperType = Omit & T>;\n const WithQuerystringFilteringAndReadingComponent: React.FC = (props: WrapperType) => {\n const { location, history } = useRouter();\n const search = queryString.parse(location.search);\n\n const handleFiltersSelection = (updatedFilters: T): void => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const queryParams: any = {};\n\n if (updatedFilters) {\n Object.keys(updatedFilters).forEach(k => {\n if (updatedFilters[k] && Object.prototype.toString.call(updatedFilters[k]) === '[object Date]') {\n queryParams[k] = formatTechDate(updatedFilters[k] as Date);\n } else {\n queryParams[k] = updatedFilters[k];\n }\n });\n }\n\n history.push({\n ...location,\n search: `?${queryParams ? queryString.stringify(pick(queryParams, filterKeys)) : ''}`,\n });\n };\n\n return (\n (parse(search), filterKeys)}\n handleFiltersSelection={handleFiltersSelection}\n />\n );\n };\n\n return WithQuerystringFilteringAndReadingComponent;\n};\n","import React, { useCallback, useState } from 'react';\nimport { KeyValueFilter } from '../../models';\nimport { Omit } from '../../types/type-utils';\nimport { WithFilteringInjectedProps } from '../types';\n\nexport const WithInMemoryFiltering = () =>

>(\n Component: React.ComponentType

,\n) => {\n type WrapperType = Omit>;\n const WithQuerystringFilteringComponent: React.FC = (props: WrapperType) => {\n const [filters, setFilters] = useState[]>([]);\n\n const handleFiltersSelection = useCallback((updatedFilters: KeyValueFilter[]): void => {\n setFilters(updatedFilters);\n }, []);\n\n return ;\n };\n\n return WithQuerystringFilteringComponent;\n};\n","import React from 'react';\nimport { AnyAction } from 'redux';\nimport { connect } from 'react-redux';\nimport { ThunkAction } from 'redux-thunk';\nimport { Redirect } from 'react-router-dom';\nimport { Module, FetchState, FetchActionDescriptor, ThunkDispatch } from '../../../redux/utils/type';\n\nimport { ErrorMessage } from '../../../components';\n\ninterface DispatchProps {\n fetchDatas: (params: U) => void;\n}\n\ninterface StateProps {\n data: T | null;\n isLoading: boolean;\n error: Error | string | null;\n}\n\nexport interface WithDatasFetchingInjectedProps {\n data: T | null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type WithDatasFetchingProps = StateProps & DispatchProps & U & any;\n\nexport const WithDatasFetching = (\n module: Module, FetchActionDescriptor, {}, {}, AnyAction>>>,\n remoteFetchAction: (params: U) => Promise,\n redirectOnNotFound: boolean = false,\n) => {\n return

>(Component: React.ComponentType

) => {\n class WithDatasFetchingWrapper extends React.Component & P> {\n componentDidMount(): void {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { data, isLoading, fetchDatas, error, children, ...rest } = this.props;\n if (fetchDatas) {\n if (!data && !isLoading && !error) {\n fetchDatas(rest);\n }\n }\n }\n\n render(): React.ReactNode {\n const { error, ...rest } = this.props;\n\n if (error) {\n if (error.code === 404 && redirectOnNotFound) {\n return ;\n }\n\n const errorMessage: string = typeof error === 'string' ? error : error.message;\n return ;\n }\n return ;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const mapStateToProps = (states: any): StateProps => {\n const subState = states[module.storeName] as FetchState;\n return {\n data: subState.data,\n isLoading: subState.isLoading,\n error: subState.error,\n };\n };\n\n const mapDispatchToProps = (dispatch: ThunkDispatch): DispatchProps => ({\n fetchDatas: (params: U) => dispatch(module.action.fetchAction(() => remoteFetchAction(params))),\n });\n\n return connect, DispatchProps>(\n mapStateToProps,\n mapDispatchToProps,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n )(WithDatasFetchingWrapper);\n };\n};\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { FetchState } from '../../../redux/utils/type';\nimport { ErrorMessage } from '../../../components';\nimport { Error } from '../../../models';\n\ninterface StateProps {\n data: T | null;\n isLoading: boolean;\n error: Error | string | null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type WithDatasFetchingListeningProps = StateProps & any;\n\nexport const WithDatasFetchingListening = (stateName: string) => {\n return

(Component: React.ComponentType

) => {\n const withDatasFetchingListeningWrapper: React.FC

> = ({\n error,\n ...rest\n }: P & WithDatasFetchingListeningProps) => {\n if (error) {\n const errorMessage: string = typeof error === 'string' ? error : error.message;\n return ;\n }\n return ;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const mapStateToProps = (states: any): StateProps => {\n const subState = states[stateName] as FetchState;\n return {\n data: subState.data,\n isLoading: subState.isLoading,\n error: subState.error,\n };\n };\n\n return connect>(mapStateToProps)(withDatasFetchingListeningWrapper);\n };\n};\n","import React from 'react';\nimport { Dispatch } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { navigationModule } from '../../../redux';\n\nimport { NavigationElement } from '../../../models';\n\nexport interface WithNotifyRessourceLoadedInputProps {\n parentNavigationTree: NavigationElement;\n path: string;\n}\n\ninterface DispatchProps {\n updateNavigation: (data?: NavigationElement) => void;\n}\n\ntype WithNotifyRessourceLoadedProps = WithNotifyRessourceLoadedInputProps & DispatchProps;\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function WithNotifyRessourceLoaded

(\n getRessourceName: (props?: P) => string | undefined,\n getAdditionalParentTree?: (props?: P, parentNavigationTree?: NavigationElement) => NavigationElement | undefined,\n getAdditionalType?: (props?: P) => { typeName: string; value: string } | undefined,\n) {\n return (Component: React.ComponentType

) => {\n class WithNotifyRessourceLoadedWrapper extends React.Component {\n componentDidMount(): void {\n const { updateNavigation, parentNavigationTree, path, ...rest } = this.props;\n\n const name = getRessourceName(rest as P);\n\n const additionalParentTree = getAdditionalParentTree\n ? getAdditionalParentTree(rest as P, parentNavigationTree)\n : null;\n\n const additionalType = getAdditionalType ? getAdditionalType(rest as P) : undefined;\n\n if (updateNavigation) {\n updateNavigation(\n name\n ? {\n name,\n path,\n parent: additionalParentTree || parentNavigationTree,\n additionalType,\n }\n : undefined,\n );\n }\n }\n\n render(): React.ReactNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { updateNavigation, parentNavigationTree, path, ...rest } = this.props;\n return ;\n }\n }\n\n const mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n updateNavigation: (data?: NavigationElement) => dispatch(navigationModule.action.updateNavigation(data)),\n });\n\n return connect(null, mapDispatchToProps)(WithNotifyRessourceLoadedWrapper);\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { ComponentType, useState, useEffect, useMemo, useCallback, useRef } from 'react';\nimport { Redirect } from 'react-router-dom';\n\nimport { Omit, pick } from '../../types/type-utils';\nimport { PagingParams, PaginatedList } from '../../models';\nimport { ErrorMessage, LocalLoader } from '../../components';\n\nimport { Error } from '../../models/error';\n\ninterface InnerStatelessDatasFetchingComponentProps {\n Component: ComponentType

;\n LoaderComponent: React.FunctionComponent | undefined;\n props: P;\n remoteFetchAction: () => Promise | T;\n updateDataAction?: (data: T) => Promise | T;\n notFoundBehavior: 'error' | 'redirect' | 'ignore';\n outputFieldName: string | number | symbol;\n resetFieldName?: string | number | symbol;\n updateDataFieldName?: string | number | symbol;\n errorMessages?: { title: string; message: string; code: number }[];\n}\n\nfunction InnerStatelessDatasFetchingComponent({\n Component,\n LoaderComponent,\n outputFieldName,\n resetFieldName,\n updateDataFieldName,\n props,\n notFoundBehavior,\n remoteFetchAction,\n updateDataAction,\n errorMessages,\n}: InnerStatelessDatasFetchingComponentProps): React.ReactElement<\n InnerStatelessDatasFetchingComponentProps\n> {\n const [data, setData] = useState(null);\n const isInitialized = useRef(false);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState('');\n\n useEffect(() => {\n let isSubscribed = true;\n const fetchData = async (): Promise => {\n if (isSubscribed) {\n setIsLoading(true);\n }\n try {\n const result = await remoteFetchAction();\n if (isSubscribed) {\n setData(result);\n }\n } catch (err) {\n if (isSubscribed) {\n setError(err);\n }\n } finally {\n isInitialized.current = true;\n }\n\n if (isSubscribed) {\n setIsLoading(false);\n }\n };\n\n fetchData();\n\n return () => {\n isSubscribed = false;\n };\n }, [remoteFetchAction]);\n\n const reloadData = useCallback(\n async (bypassLoading: boolean = false): Promise => {\n if (!bypassLoading) {\n setIsLoading(true);\n }\n try {\n const result = await remoteFetchAction();\n setData(result);\n } catch (err) {\n setError(err);\n }\n\n if (!bypassLoading) {\n setIsLoading(false);\n }\n },\n [remoteFetchAction],\n );\n\n const updateData = useCallback(\n async (bypassLoading: boolean = false): Promise => {\n if (!bypassLoading) {\n setIsLoading(true);\n }\n\n if (!data || !updateDataAction) {\n await reloadData();\n return;\n }\n\n try {\n const result = await updateDataAction(data);\n setData(result);\n } catch (err) {\n setError(err);\n }\n\n if (!bypassLoading) {\n setIsLoading(false);\n }\n },\n [reloadData, updateDataAction, data],\n );\n\n if (error && error !== '') {\n if (typeof error === 'string') {\n return ;\n }\n\n if (error.code === 404 && notFoundBehavior === 'redirect') {\n return ;\n }\n\n if (error.code !== 404 || notFoundBehavior === 'error') {\n if (errorMessages && errorMessages.length > 0) {\n const errorMessage = errorMessages.find(e => e.code === error.subCode);\n if (errorMessage) {\n return ;\n }\n }\n\n return ;\n }\n }\n\n if (isLoading || !isInitialized.current) {\n if (LoaderComponent) {\n return ;\n }\n\n return ;\n }\n\n const dataProps = { [outputFieldName]: data };\n let resetProps;\n if (resetFieldName) {\n resetProps = { [resetFieldName]: reloadData };\n }\n\n let updateDataProps;\n if (updateDataFieldName) {\n updateDataProps = { [updateDataFieldName]: updateData };\n }\n\n return ;\n}\n\nexport const WithStatelessDatasFetching = (\n remoteFetchAction: () => Promise | T,\n LoaderComponent: React.FunctionComponent | undefined,\n notFoundBehavior: 'error' | 'redirect' | 'ignore',\n outputFieldName: keyof InjectedProps,\n resetFieldName?: keyof InjectedProps,\n errorMessages?: { title: string; message: string; code: number }[],\n) => {\n return

(\n Component: ComponentType

,\n ): React.FunctionComponent> => (props: Omit) => {\n return (\n \n );\n };\n};\n\nexport const WithStatelessDatasFetchingByParameters = (\n remoteFetchAction: (params: SearchParamsProps) => Promise | T,\n LoaderComponent: React.FunctionComponent | undefined,\n notFoundBehavior: 'error' | 'redirect' | 'ignore',\n outputFieldName: keyof InjectedProps,\n searchFieldNames: (keyof SearchParamsProps)[],\n resetFieldName?: keyof InjectedProps,\n waitForSearchParams?: boolean,\n checkParams?: (searchProps: SearchParamsProps) => boolean,\n errorMessages?: { title: string; message: string; code: number }[],\n) => {\n return

(\n Component: ComponentType

,\n ): React.FunctionComponent & SearchParamsProps> => {\n const WithStatelessDatasFetchingComponent: React.FC & SearchParamsProps> = (\n props: Omit & SearchParamsProps,\n ) => {\n const filterProps: SearchParamsProps = useMemo(() => pick(props, searchFieldNames) as SearchParamsProps, [\n props,\n ]);\n\n const remoteFetchActionWrapper = useCallback(() => {\n return remoteFetchAction(filterProps);\n }, [filterProps]);\n\n if (waitForSearchParams) {\n let missingParams = false;\n if (checkParams) {\n missingParams = !checkParams(props);\n } else {\n searchFieldNames.forEach(s => {\n if (props[s] === undefined) {\n missingParams = true;\n }\n });\n }\n\n if (missingParams) {\n return ;\n }\n }\n\n return (\n \n );\n };\n\n return WithStatelessDatasFetchingComponent;\n };\n};\n\nexport const WithStatelessDatasFetchingByParametersWithPaging = <\n T,\n U extends PaginatedList,\n InjectedProps,\n SearchParamsProps\n>(\n remoteFetchAction: (params: SearchParamsProps, paginParams: PagingParams) => Promise | U,\n remoteFetchMoreAction: (params: SearchParamsProps, paginParams: PagingParams) => Promise | T[],\n LoaderComponent: React.FunctionComponent | undefined,\n notFoundBehavior: 'error' | 'redirect' | 'ignore',\n outputFieldName: keyof InjectedProps,\n searchFieldNames: (keyof SearchParamsProps)[],\n fetchMoreFieldName: keyof InjectedProps,\n resetFieldName?: keyof InjectedProps,\n waitForSearchParams?: boolean,\n errorMessages?: { title: string; message: string; code: number }[],\n) => {\n return

(\n Component: ComponentType

,\n ): React.FunctionComponent & SearchParamsProps> => {\n const WithStatelessDatasFetchingComponent: React.FC & SearchParamsProps> = (\n props: Omit & SearchParamsProps,\n ) => {\n const filterProps: SearchParamsProps = useMemo(() => pick(props, searchFieldNames) as SearchParamsProps, [\n props,\n ]);\n\n const [serverPageIndex, setServerPageIndex] = useState(0);\n\n const remoteFetchActionWrapper = useCallback(() => {\n return remoteFetchAction(filterProps, { pageIndex: 0 });\n }, [filterProps]);\n\n const remoteFetchMoreActionWrapper = useCallback(\n async (data: U): Promise => {\n if (data && serverPageIndex === data.pageCount - 1) {\n return data;\n }\n\n const currentItems = data ? data.items : [];\n const newPageIndex = serverPageIndex + 1;\n const nextItems = await remoteFetchMoreAction(filterProps, { pageIndex: newPageIndex });\n setServerPageIndex(newPageIndex);\n return {\n ...data,\n items: [...currentItems, ...nextItems],\n };\n },\n [filterProps, serverPageIndex],\n );\n\n if (waitForSearchParams) {\n let missingParams = false;\n searchFieldNames.forEach(s => {\n if (!props[s]) {\n missingParams = true;\n }\n });\n\n if (missingParams) {\n return ;\n }\n }\n\n return (\n \n );\n };\n\n return WithStatelessDatasFetchingComponent;\n };\n};\n","import React, { ComponentType } from 'react';\nimport querystring from 'query-string';\n\nimport { useRouter } from '../../hooks';\nimport { Omit } from '../../types/type-utils';\nimport { parse } from '../../utils';\n\nexport const WithQuerystringReading = () => {\n return

(Component: ComponentType

) => {\n type WrapperType = Omit;\n const WithQuerystringReadingComponent: React.FC = (props: WrapperType) => {\n const { location } = useRouter();\n const search = querystring.parse(location.search) as InputParams;\n\n const innerProps = { ...props, ...parse(search) };\n\n return ;\n };\n\n return WithQuerystringReadingComponent;\n };\n};\n","import React, { ComponentType, useState, useCallback, useMemo, useRef, useEffect } from 'react';\n\nimport { Omit } from '../../types/type-utils';\n\nexport interface WithSessionStorageInjectedProps {\n sessionData: T;\n updateSessionData: (updatedData: Partial | null) => void;\n clearSessionData: () => void;\n}\n\nexport const WithSessionStorage = (sessionKey: string) => {\n return

>(Component: ComponentType

) => {\n type WrapperType = Omit>;\n const WithSessionStorageComponent: React.FC = (props: WrapperType) => {\n const [isFirstRun, setIsFirstRun] = useState(true);\n const lastSessionData = useRef(null);\n const [sessionData, setSessionData] = useState(null);\n useEffect(() => {\n const initialValueStr = sessionStorage.getItem(sessionKey);\n if (initialValueStr) {\n const initialValue = JSON.parse(initialValueStr) as T;\n if (initialValue) {\n lastSessionData.current = initialValue;\n setSessionData(initialValue);\n }\n }\n\n setIsFirstRun(false);\n }, []);\n\n const updateSessionData = useCallback((updatedData: Partial | null) => {\n const updatedSessionData = { ...lastSessionData.current, ...updatedData };\n lastSessionData.current = updatedSessionData as T;\n setSessionData(updatedSessionData as T);\n if (!lastSessionData.current) {\n sessionStorage.removeItem(sessionKey);\n } else {\n sessionStorage.setItem(sessionKey, JSON.stringify(lastSessionData.current));\n }\n }, []);\n\n const clearSessionData = useCallback(() => {\n setSessionData(null);\n lastSessionData.current = null;\n sessionStorage.removeItem(sessionKey);\n }, []);\n\n const innerProps = useMemo(() => {\n return { ...props, sessionData, updateSessionData, clearSessionData };\n }, [props, sessionData, updateSessionData, clearSessionData]);\n\n if (isFirstRun) {\n return ;\n }\n return ;\n };\n\n return WithSessionStorageComponent;\n };\n};\n","import React, { ComponentType } from 'react';\n\nimport { Omit } from '../../types/type-utils';\n\nexport const WithPropertyMerge = (additionalProps: AdditionalProps) => {\n return

(Component: ComponentType

) => {\n type WrapperType = Omit;\n const WithPropertyMergeComponent: React.FC = (props: WrapperType) => {\n const innerProps = { ...props, ...additionalProps };\n return ;\n };\n\n return WithPropertyMergeComponent;\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { ComponentType, useState, useMemo } from 'react';\nimport { Dimmer, Loader } from 'vendors/semantic-ui';\n\nimport { alertService } from 'modules/shared-ui/components';\n\nimport { Error } from '../../models';\n\nexport interface WithRemoteActionsCommitProps {\n commitWork: VoidFunction;\n}\n\nexport type WithRemoteActionConfigurationProps = {\n [P in keyof T]: {\n action: T[P];\n errorMessages?: {\n code: number;\n message: string;\n }[];\n\n defaultErrorMessage?: string;\n successMessage?: string;\n };\n};\n\nexport type WithRemoteActionInjectedProps = {\n // Les paramètres de la fonction ne sont pas utilisés directement donc le any a un sens\n [P in keyof T]: (...params: any[]) => Promise;\n};\n\nexport const WithRemoteActions = >(\n remoteActions: WithRemoteActionConfigurationProps,\n injectCommitFunction?: boolean,\n) => {\n return

(Component: ComponentType

) => {\n type WrapperType = Omit;\n const WithRemoteActionsComponent: React.FC = (props: WrapperType) => {\n let innerProps = { ...props };\n const [isUpdating, setIsUpdating] = useState(false);\n\n const additionalActions = useMemo(() => {\n let innerAdditionalActions = {};\n Object.keys(remoteActions).forEach(n => {\n if (n === 'commitWork') {\n return;\n }\n\n const name: keyof InjectedProps = n as keyof InjectedProps;\n const remoteActionInfos = remoteActions[name];\n\n // Les paramètres de la fonction ne sont pas utilisés directement donc le any a un sens\n const enhancedRemoteAction = async (...params: any[]): Promise => {\n setIsUpdating(true);\n\n return remoteActionInfos\n .action(...params)\n .then(async result => {\n if (remoteActionInfos.successMessage) {\n alertService.show(remoteActionInfos.successMessage);\n }\n\n return result;\n })\n .catch(error => {\n let analyzedError = false;\n if ((error as Error).subCode && remoteActionInfos.errorMessages) {\n const errorMessage = remoteActionInfos.errorMessages.find(\n e => e.code === error.subCode,\n );\n if (errorMessage) {\n alertService.show(errorMessage.message);\n analyzedError = true;\n }\n }\n\n if (!analyzedError) {\n alertService.show(remoteActionInfos.defaultErrorMessage || 'Erreur');\n }\n\n setIsUpdating(false);\n throw error;\n })\n .finally(() => {\n if (!injectCommitFunction) {\n setIsUpdating(false);\n }\n });\n };\n\n innerAdditionalActions = { ...innerAdditionalActions, [name]: enhancedRemoteAction };\n });\n\n if (injectCommitFunction) {\n innerAdditionalActions = {\n ...innerAdditionalActions,\n commitWork: () => {\n setIsUpdating(false);\n },\n };\n }\n\n return innerAdditionalActions;\n }, []);\n\n innerProps = useMemo(() => {\n return { ...innerProps, ...additionalActions };\n }, [innerProps, additionalActions]);\n\n return (\n \n \n \n \n \n \n );\n };\n\n return WithRemoteActionsComponent;\n };\n};\n","import React, { ComponentType } from 'react';\nimport { SEO } from '../../components';\n\nexport const WithSEO =

(\n getPageTitle?: (props?: P) => string | undefined,\n getDescription?: (props?: P) => string | undefined,\n getKeywords?: (props?: P) => string[] | undefined,\n getImage?: (props?: P) => string | undefined,\n) => {\n return (Component: ComponentType

) => {\n const WithSeoComponent: React.FC

= (props: P) => {\n const pageTitle = getPageTitle ? getPageTitle(props) : undefined;\n const description = getDescription ? getDescription(props) : undefined;\n const keywords = getKeywords ? getKeywords(props) : undefined;\n const image = getImage ? getImage(props) : undefined;\n\n return (\n \n \n \n \n );\n };\n\n return WithSeoComponent;\n };\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mobileTopMenuItem\":\"panel-component_mobileTopMenuItem__1sb4f\",\"activeElement\":\"panel-component_activeElement__3Lb7S\",\"rootElement\":\"panel-component_rootElement__1iu9R\",\"uppercase\":\"panel-component_uppercase__2YQuF\",\"hidden\":\"panel-component_hidden__187gh\",\"mobileMenuItem\":\"panel-component_mobileMenuItem__1XrtI\",\"prevBtn\":\"panel-component_prevBtn__1Fpu8\",\"nextBtn\":\"panel-component_nextBtn__1ZBC-\",\"secondLevel\":\"panel-component_secondLevel__3upS0\",\"secondLevelTitle\":\"panel-component_secondLevelTitle__2MOed\",\"secondLevelItemsContainer\":\"panel-component_secondLevelItemsContainer__2tSY6\",\"secondLevelItem\":\"panel-component_secondLevelItem__29i-z\",\"active\":\"panel-component_active__1FsdA\",\"thirdLevel\":\"panel-component_thirdLevel__orT81\",\"thirdLevelTitle\":\"panel-component_thirdLevelTitle__2fhEE\",\"thirdLevelItemsContainer\":\"panel-component_thirdLevelItemsContainer__1bDNp\",\"thirdLevelItem\":\"panel-component_thirdLevelItem__3EcAV\",\"ctaContainer\":\"panel-component_ctaContainer__1JABs\"};","const configUI = {\n pagination: {\n thumbList: 12,\n productList: 20,\n },\n responsive: {\n mobile: {\n minWidth: 320,\n maxWidth: 767,\n },\n tablet: {\n minWidth: 768,\n maxWidth: 1024,\n },\n computer: {\n minWidth: 1025,\n },\n largeScreen: {\n minWidth: 1281,\n maxWidth: 1920,\n },\n wideScreen: {\n minWidth: 1921,\n },\n },\n carousel: {\n responsive: [\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 1,\n arrows: false,\n },\n },\n {\n breakpoint: 768,\n settings: {\n className: 'center',\n slidesToShow: 3,\n slidesToScroll: 1,\n initialSlide: 1,\n arrows: false,\n infinite: true,\n autoplay: false,\n centerPadding: '60px',\n },\n },\n {\n breakpoint: 640,\n settings: {\n className: 'center',\n slidesToShow: 1,\n slidesToScroll: 1,\n initialSlide: 2,\n arrows: false,\n centerMode: true,\n infinite: true,\n autoplay: false,\n centerPadding: '20px',\n },\n },\n {\n breakpoint: 320,\n settings: {\n className: 'center',\n slidesToShow: 1,\n slidesToScroll: 1,\n initialSlide: 2,\n arrows: false,\n centerMode: true,\n infinite: true,\n autoplay: false,\n centerPadding: '20px',\n },\n },\n ],\n },\n columnListOptions: {\n mobile: [1, 2],\n tablet: [2, 3],\n computer: [3, 4],\n },\n selects: {\n groups: [\n { key: '0', value: '', text: '--' },\n { key: '1', value: 'printemps', text: 'Printemps.com', url: 'https://www.printemps.com/' },\n {\n key: '3',\n value: 'place-des-tendances',\n text: 'Place des Tendances',\n url: 'https://www.placedestendances.com/',\n },\n { key: '4', value: 'made-in-design', text: 'Made in Design', url: 'https://www.madeindesign.com/' },\n { key: '5', value: 'citadium', text: 'Citadium', url: 'https://www.citadium.com/' },\n ],\n },\n};\n\nexport { configUI };\n","import React from 'react';\nimport { DocumentNode } from 'graphql';\nimport { Query } from 'react-apollo';\nimport { ErrorMessage, NotFound } from 'modules/shared/components';\n\ninterface CMSQueryProps {\n query: DocumentNode;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readPayload: (data: any) => TDatas | null;\n render: (data: TDatas | null) => JSX.Element;\n variables?: TVariables;\n Loader?: React.ComponentType;\n bypassNotFound?: boolean;\n onLoadingStateChange?: (state: boolean) => void;\n}\n\nexport function CMSQuery({\n Loader,\n query,\n variables,\n readPayload,\n render,\n bypassNotFound,\n onLoadingStateChange,\n}: CMSQueryProps): JSX.Element {\n return (\n query={query} variables={variables}>\n {({ loading = false, error = null, data = null }): React.ReactNode => {\n if (onLoadingStateChange) {\n onLoadingStateChange(loading);\n }\n\n if (loading) {\n if (Loader) {\n return ;\n }\n\n return ;\n }\n\n if (error) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ;\n }\n\n const innerData = readPayload(data);\n if (!innerData && !bypassNotFound) {\n return ;\n }\n\n return render(innerData);\n }}\n \n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageTitle\":\"page-title-component_pageTitle__bJCSM\",\"title\":\"page-title-component_title__3f7Ja\",\"subtitle\":\"page-title-component_subtitle__72ke4\",\"border\":\"page-title-component_border__1u5-X\",\"center\":\"page-title-component_center__2ZaDt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lightTitle\":\"light-title-component_lightTitle__2Esec\",\"title\":\"light-title-component_title__1fyn8\",\"subtitle\":\"light-title-component_subtitle__2tsSI\",\"border\":\"light-title-component_border__3R5h4\",\"center\":\"light-title-component_center__U87g8\",\"upper\":\"light-title-component_upper__3IzYH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"banner-group-component_card__1KBZa\",\"image\":\"banner-group-component_image__3SRRD\",\"text\":\"banner-group-component_text__27zEW\",\"cardContent\":\"banner-group-component_cardContent__3hqAJ\",\"ctaContainer\":\"banner-group-component_ctaContainer__3orhe\",\"closeButton\":\"banner-group-component_closeButton__C97Lc\",\"hidden\":\"banner-group-component_hidden__1gu2l\",\"visible\":\"banner-group-component_visible__2n6KR\",\"slide-in\":\"banner-group-component_slide-in__xvENV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"sidebar-layout_container__3Fr7c\",\"filterPanel\":\"sidebar-layout_filterPanel__3sTL6\",\"closeFilterPanelBtn\":\"sidebar-layout_closeFilterPanelBtn__WslZc\",\"mobileContainer\":\"sidebar-layout_mobileContainer__1W6Th\",\"stickyDiv\":\"sidebar-layout_stickyDiv__1TfmE\",\"openFilterPanelBtn\":\"sidebar-layout_openFilterPanelBtn__39Dqu\",\"filterSidebar\":\"sidebar-layout_filterSidebar__2IqWG\",\"filterContainer\":\"sidebar-layout_filterContainer__1yG3u\",\"productsContainer\":\"sidebar-layout_productsContainer__1koYJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"clickable-container\":\"clickable-container-component_clickable-container__30RKd\",\"container\":\"clickable-container-component_container__1FcYR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"classicBtn\":\"classic-button-component_classicBtn__1sX0p\",\"secondary\":\"classic-button-component_secondary__3bi3M\",\"grey\":\"classic-button-component_grey__13jq6\",\"disabled\":\"classic-button-component_disabled__2D9L7\",\"themed\":\"classic-button-component_themed__1OLVb\",\"normalText\":\"classic-button-component_normalText__2sTNd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"confirm-component_header__1VM9f\",\"msg\":\"confirm-component_msg__2mNAa\",\"classicButton\":\"confirm-component_classicButton__2prWU\",\"cancelButton\":\"confirm-component_cancelButton__2Vjjy\",\"actions\":\"confirm-component_actions__3uIyI\"};","import { LightList, FastUpsertListElement, Error } from '../../../models';\n\nexport interface ListState {\n currentList: LightList | null;\n error: Error | null;\n updateTimeout: NodeJS.Timeout | undefined;\n isUpdating: boolean;\n refreshInterval: NodeJS.Timeout | undefined;\n isRefreshing: boolean;\n bufferList: FastUpsertListElement[];\n}\n\nexport const initialState: ListState = {\n currentList: null,\n bufferList: [],\n updateTimeout: undefined,\n refreshInterval: undefined,\n error: null,\n isRefreshing: false,\n isUpdating: false,\n};\n","import { Address } from '..';\nimport { Civility, CivilityTypeValues } from './type';\n\nexport interface LightPerson {\n firstName: string;\n lastName: string;\n civility?: Civility;\n birthDate?: Date;\n}\n\nexport interface Person extends LightPerson {\n email: string;\n}\n\nexport interface PersonWithAddress extends Person, Address {}\n\nexport interface DetailedPerson extends PersonWithAddress {\n phone: string;\n}\n\nexport const buildPersonName = (person: LightPerson | null): string => {\n if (!person) return '';\n return `${CivilityTypeValues.toString(person.civility)} ${person.firstName} ${person.lastName.toUpperCase()}`;\n};\n","export class Subscriptions {\n mariage: boolean = false;\n\n naissance: boolean = false;\n\n cadeaux: boolean = false;\n\n voyage: boolean = false;\n\n robes: boolean = false;\n}\n","import { AnyAction, Dispatch, MiddlewareAPI } from 'redux';\nimport { ThunkDispatch } from 'redux-thunk';\nimport { RootState } from '../store';\n\nimport {\n SUCCESS_LOGIN,\n SUCCESS_REGISTER,\n REQUEST_LOGOUT,\n SUCCESS_INITIALIZE,\n} from '../modules/authentication/sub-modules';\n\nimport {\n SUCCESS_UPDATE_LOCAL_ELEMENTS_QUANTITY,\n SUCCESS_INITIALIZE_BUFFER_LIST,\n SUCCESS_UPDATE_REMOTE_ELEMENTS_QUANTITY,\n ERROR_UPDATE_REMOTE_ELEMENTS_QUANTITY,\n refreshListModule,\n refreshListIntervalModule,\n initializeBufferListModule,\n updateRemoteElementsQuantityModule,\n updateRemoteElementsQuantityTimeoutModule,\n clearListModule,\n} from '../modules/list/sub-modules';\n\nimport { ON_IDLE_START, ON_IDLE_END } from '../modules';\n\nexport const listMiddleware = ({ dispatch, getState }: MiddlewareAPI) => (next: Dispatch) => (\n action: AnyAction,\n) => {\n const thunkDispatch = dispatch as ThunkDispatch;\n switch (action.type) {\n case SUCCESS_LOGIN:\n case SUCCESS_REGISTER:\n case SUCCESS_INITIALIZE:\n if (action.payload.token && action.payload.loggedInFolder) {\n thunkDispatch(initializeBufferListModule.action.initializeBufferList(action.payload.loggedInFolder.id));\n }\n break;\n case REQUEST_LOGOUT:\n // Fin polling\n dispatch(refreshListIntervalModule.action.endRefreshListInterval());\n\n // Synchronisation de la liste tampon\n dispatch(updateRemoteElementsQuantityTimeoutModule.action.stopUpdateRemoteElementsQuantityTimeout());\n thunkDispatch(updateRemoteElementsQuantityModule.action.updateRemoteElementsQuantity()).finally(() => {\n // Vidage de l'état\n dispatch(clearListModule.action.clearList());\n });\n break;\n case SUCCESS_UPDATE_LOCAL_ELEMENTS_QUANTITY:\n dispatch(\n updateRemoteElementsQuantityTimeoutModule.action.startUpdateRemoteElementsQuantityTimeout(() =>\n thunkDispatch(updateRemoteElementsQuantityModule.action.updateRemoteElementsQuantity()),\n ),\n );\n\n // Désactivation polling le temps de l'ajout\n dispatch(refreshListIntervalModule.action.endRefreshListInterval());\n break;\n case SUCCESS_UPDATE_REMOTE_ELEMENTS_QUANTITY:\n case ERROR_UPDATE_REMOTE_ELEMENTS_QUANTITY:\n // Réactivation polling\n dispatch(\n refreshListIntervalModule.action.startRefreshListInterval(() =>\n thunkDispatch(refreshListModule.action.refreshList()),\n ),\n );\n break;\n case SUCCESS_INITIALIZE_BUFFER_LIST:\n // Demarrage polling\n thunkDispatch(refreshListModule.action.refreshList());\n dispatch(\n refreshListIntervalModule.action.startRefreshListInterval(() =>\n thunkDispatch(refreshListModule.action.refreshList()),\n ),\n );\n break;\n case ON_IDLE_START:\n // Désactivation polling si inactivité\n dispatch(refreshListIntervalModule.action.endRefreshListInterval());\n break;\n case ON_IDLE_END:\n {\n // Réactivation polling si necessaire\n const state = getState();\n if (!state.list.refreshInterval && state.authentication.token && state.authentication.token.isValid) {\n // Demarrage polling\n thunkDispatch(refreshListModule.action.refreshList());\n dispatch(\n refreshListIntervalModule.action.startRefreshListInterval(() =>\n thunkDispatch(refreshListModule.action.refreshList()),\n ),\n );\n }\n }\n break;\n default:\n break;\n }\n\n return next(action);\n};\n","import { Dispatch, AnyAction, MiddlewareAPI } from 'redux';\nimport { LOCATION_CHANGE } from 'connected-react-router';\n\nimport { cacheQueryService } from '../../services';\n\nexport const cacheMiddleware = ({ getState }: MiddlewareAPI) => (next: Dispatch) => (action: AnyAction) => {\n switch (action.type) {\n case LOCATION_CHANGE:\n {\n const state = getState().router;\n if (state.location.pathname !== action.payload.location.pathname) {\n cacheQueryService.clearRouteCache();\n }\n }\n break;\n default:\n break;\n }\n\n return next(action);\n};\n","import { Dispatch, AnyAction, MiddlewareAPI } from 'redux';\n\nimport { REQUEST_REGISTER } from '../modules/authentication/sub-modules';\nimport { authenticationModule } from '../modules';\n\nexport const authenticationMiddleware = ({ dispatch }: MiddlewareAPI) => (next: Dispatch) => (action: AnyAction) => {\n switch (action.type) {\n case REQUEST_REGISTER:\n // TODO: voir a deconnecter au debut du tunnel de création de liste\n dispatch(authenticationModule.action.logout());\n break;\n default:\n break;\n }\n\n return next(action);\n};\n","import { Dispatch, AnyAction, MiddlewareAPI } from 'redux';\nimport { LOCATION_CHANGE } from 'connected-react-router';\n\nimport { clearCookies } from 'modules/shared/utils';\nimport { cookieConsentMap } from 'modules/shared/services';\nimport { RootState } from '../store';\nimport { tracerModule } from '../modules';\nimport { REJECT_ALL_CONSENTS, ACCEPT_ALL_CONSENTS, UPDATE_ALL_CONSENTS } from '../modules/tracer/sub-modules';\n\nexport const tracerMiddleware = ({ dispatch, getState }: MiddlewareAPI) => (next: Dispatch) => (\n action: AnyAction,\n) => {\n switch (action.type) {\n case LOCATION_CHANGE:\n {\n const state = getState();\n if (state && state.tracer && state.tracer.adminPanelEnabled) {\n dispatch(tracerModule.action.adminPanel.hide());\n }\n }\n\n break;\n case UPDATE_ALL_CONSENTS:\n {\n const state = getState();\n // TODO : a améliorer\n if (state.tracer && state.tracer.consents && state.tracer.consents.some(c => !c.value)) {\n clearCookies(Object.entries(cookieConsentMap).map(e => e[1]));\n }\n window.location.reload();\n }\n\n break;\n case ACCEPT_ALL_CONSENTS:\n window.location.reload();\n break;\n case REJECT_ALL_CONSENTS:\n clearCookies(Object.entries(cookieConsentMap).map(e => e[1]));\n window.location.reload();\n break;\n default:\n break;\n }\n\n return next(action);\n};\n","import { Dispatch, AnyAction, MiddlewareAPI } from 'redux';\nimport TagManager from 'react-gtm-module';\n\nimport { config } from 'config';\n\nimport { NavigationElement } from 'modules/shared/models';\nimport { TracerTypeValues } from 'modules/shared/models/tracer';\nimport { UPDATE_NAVIGATION, trackingModule } from '../modules';\nimport { RootState } from '../store';\n\nexport const trackingMiddleware = ({ getState, dispatch }: MiddlewareAPI) => (next: Dispatch) => (\n action: AnyAction,\n) => {\n switch (action.type) {\n case UPDATE_NAVIGATION:\n {\n const store = getState();\n const navigationState = store.navigation;\n const tracerState = store.tracer;\n const trackingState = store.tracking;\n\n if (action.payload.currentPage === navigationState.currentPage) {\n break;\n }\n\n let datalayerRest = {};\n\n if (trackingState.datalayer) {\n Object.keys(trackingState.datalayer).forEach(key => {\n datalayerRest = { ...datalayerRest, [key]: undefined };\n });\n }\n\n if (\n !tracerState.consents ||\n tracerState.consents.length === 0 ||\n !tracerState.consents.some(t => t.type === TracerTypeValues.PERFORMANCE_TRACER_TYPE && t.value)\n ) {\n TagManager.dataLayer({ dataLayer: { ...datalayerRest } });\n if (trackingState.datalayer) {\n dispatch(trackingModule.action.updateDatalayer(undefined));\n }\n break;\n }\n\n let newPage: NavigationElement | undefined = action.payload.currentPage as NavigationElement;\n let layers: { name: string; type: string; indexed?: boolean }[] = [];\n\n if (newPage) {\n if (newPage.name) {\n layers.push({ name: newPage.name, type: 'page' });\n if (newPage.additionalType) {\n layers.push({ name: newPage.additionalType.value, type: newPage.additionalType.typeName });\n }\n }\n\n while (newPage.parent) {\n if (newPage.parent.name) {\n layers.push({ name: newPage.parent.name, type: 'niveau', indexed: true });\n }\n\n newPage = newPage.parent;\n }\n }\n\n layers = layers.reverse();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let dataLayer: any = { ...datalayerRest, ...config.tagManager.datalayer };\n for (let i = 0; i < layers.length; i += 1) {\n const currentLayer = layers[i];\n dataLayer = {\n ...dataLayer,\n [`${currentLayer.type}${currentLayer.indexed ? i + 1 : ''}`]: currentLayer.name,\n };\n }\n\n TagManager.dataLayer({ dataLayer });\n dispatch(trackingModule.action.updateDatalayer(dataLayer));\n }\n break;\n default:\n break;\n }\n\n return next(action);\n};\n","import { AnyAction, Store } from 'redux';\nimport { RootState } from '../store';\nimport { idleModule } from '../modules';\n\nexport const eventList = [\n 'mousemove',\n 'keydown',\n 'wheel',\n 'DOMMouseScroll',\n 'mouseWheel',\n 'mousedown',\n 'touchstart',\n 'touchmove',\n 'MSPointerDown',\n 'MSPointerMove',\n];\n\nexport const idleWatcher = (\n store: Store & {\n dispatch: unknown;\n },\n): void => {\n let timeout: NodeJS.Timeout;\n eventList.map(eventName =>\n document.addEventListener(eventName, () => {\n if (store.getState().idle.isIdle) {\n store.dispatch(idleModule.action.onIdleEnd());\n } else {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n timeout = setTimeout(() => store.dispatch(idleModule.action.onIdleStart()), 60000);\n }\n }),\n );\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"noResults\":\"list-container-component_noResults__tKn1G\",\"results\":\"list-container-component_results__1nMV6\",\"fullWidth\":\"list-container-component_fullWidth__1rsRh\",\"header\":\"list-container-component_header__rxvyS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"alert-component_header__3N6-e\",\"msg\":\"alert-component_msg__2urm5\",\"positiveButton\":\"alert-component_positiveButton__61XId\",\"actions\":\"alert-component_actions__1uHam\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"nav\":\"menu-component_nav__12Cvj\",\"mobileMenu\":\"menu-component_mobileMenu__gZOqg\",\"sideBar\":\"menu-component_sideBar__2t5RB\",\"sideBarContent\":\"menu-component_sideBarContent__1n3Dp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"listBtn\":\"list-button-component_listBtn__2rMaV\",\"counter\":\"list-button-component_counter__365-N\",\"productAddedAlert\":\"list-button-component_productAddedAlert__ZRJew\",\"expanded\":\"list-button-component_expanded__38PlX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rootContainer\":\"home-alt-page_rootContainer__2rOFv\",\"description1\":\"home-alt-page_description1__3PsNZ\",\"description2\":\"home-alt-page_description2__33ieg\",\"ribbonContainer\":\"home-alt-page_ribbonContainer__2QrCk\"};","import React from 'react';\n\nimport { ImageContainer } from 'modules/shared-ui/components';\n\nimport { readCMSValue } from '../../utils';\nimport { CMSImageContainerField } from '../../cms-base-type';\n\nimport { CMSImageContainerProps } from './cms-image-container-type';\n\nexport const CMSImageContainer: React.FC = React.memo(\n ({\n picture,\n style,\n color,\n children,\n className,\n placeholderClassName,\n onloaded,\n maxWidth,\n }: CMSImageContainerProps & { children?: React.ReactNode }) => {\n const pic = readCMSValue(picture);\n if (pic && pic.length > 0) {\n pic.sort((a: CMSImageContainerField, b: CMSImageContainerField) => b.fileSize - a.fileSize);\n const large = { large: { ...pic[0], maxWidth: maxWidth ? maxWidth.large : undefined } };\n let medium = {};\n let small = {};\n if (pic.length > 2) small = { small: { ...pic[2], maxWidth: maxWidth ? maxWidth.small : undefined } };\n if (pic.length > 1) medium = { medium: { ...pic[1], maxWidth: maxWidth ? maxWidth.medium : undefined } };\n const image = Object.assign(large, medium, small);\n\n return (\n \n {children}\n \n );\n }\n return (\n \n {children}\n \n );\n },\n);\n","import * as React from 'react';\nimport { Placeholder, Grid } from 'vendors/semantic-ui';\n\nimport { useHover } from 'modules/shared/hooks';\nimport { CtaButton, ClickableContainer } from 'modules/shared-ui/components';\nimport { readCMSValue, getDefault, buildCMSStyles } from 'modules/shared-cms/utils';\nimport { SubTitleProps, TextColorProps, TitleProps } from 'modules/shared-cms/cms-base-type';\nimport { CMSImageContainer } from 'modules/shared-cms/components';\n\nimport { LargeBlocProps } from './large-bloc-type';\n\nimport styles from './large-bloc-component.module.css';\n\nconst LargeBlocContainer: React.FC = props => {\n const { children } = props;\n return

{children}
;\n};\n\nexport const LargeBloc: React.FC = ({\n title: wrappedTitle,\n subTitle: wrappedSubTitle,\n color: wrappedColor,\n picture: wrappedPicture,\n ctaText: wrappedCtaText,\n ctaLink: wrappedCtaLink,\n ctaStyle: wrappedCtaStyle,\n textColor: wrappedTextColor,\n}: LargeBlocProps) => {\n const { hovered, bind } = useHover();\n\n const {\n title = readCMSValue(wrappedTitle),\n subTitle = readCMSValue(wrappedSubTitle),\n color = readCMSValue(wrappedColor),\n picture = getDefault(readCMSValue(wrappedPicture), []),\n ctaText = readCMSValue(wrappedCtaText),\n ctaLink = readCMSValue(wrappedCtaLink),\n ctaStyle = readCMSValue(wrappedCtaStyle),\n textColor = readCMSValue(wrappedTextColor),\n } = {};\n\n return (\n \n \n \n
\n {title ? (\n
\n ({\n title,\n fontSizeTitle: 31,\n textColor,\n })}\n >\n {title}\n \n
\n ) : (\n
 
\n )}\n\n {subTitle ? (\n ({\n subTitle,\n fontSizeSubTitle: 25,\n textColor,\n })}\n >\n {subTitle}\n
\n ) : (\n
 
\n )}\n {ctaText && ctaLink ? (\n
\n \n
\n ) : (\n
 
\n )}\n \n \n
\n
\n );\n};\n\nexport const LargeBlocLoader: React.FC = React.memo(() => {\n return (\n \n \n \n \n \n );\n});\n\nexport const LargeBlocListContainer: React.FC = React.memo(props => {\n const { children } = props;\n return (\n \n {React.Children.toArray(children).map((child, key) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n {child}\n \n );\n })}\n \n );\n});\n","import React from 'react';\n\nimport { buildComponentArray } from 'modules/shared/utils';\nimport { readCMSValue } from '../../utils';\n\nimport { LargeBloc, LargeBlocProps, LargeBlocListContainer } from '..';\nimport { LargeBlocListProps } from './large-bloc-list-type';\n\nexport const LargeBlocList: React.FC = React.memo(({ imageBlocList }: LargeBlocListProps) => {\n const uwImageBlocList = readCMSValue(imageBlocList);\n return (\n \n {uwImageBlocList &&\n buildComponentArray(\n uwImageBlocList,\n (childItem: LargeBlocProps, key: number): JSX.Element => {\n return ;\n },\n )}\n \n );\n});\n","/* FolderState */\nexport type FolderState = 'A' | 'B' | 'F' | 'O' | 'T';\nconst ACTIVE: FolderState = 'A';\nconst BLOQUE: FolderState = 'B';\nconst FERME: FolderState = 'F';\nconst OUVERT: FolderState = 'O';\nconst TRANSFERT: FolderState = 'T';\n\nexport const FolderStateValues = {\n ACTIVE,\n BLOQUE,\n FERME,\n OUVERT,\n TRANSFERT,\n};\n\n/* FolderType */\nexport type FolderType = 0 | 1 | 2;\nconst UNKNOWN_FOLDER_TYPE: FolderType = 0;\nconst PROSPECT: FolderType = 1;\nconst CUSTOMER: FolderType = 2;\n\nexport const FolderTypeValues = {\n UNKNOWN: UNKNOWN_FOLDER_TYPE,\n PROSPECT,\n CUSTOMER,\n};\n\n/* UniverseType */\nexport type UniverseStrType = 'unknown' | 'mariage' | 'naissance' | 'cadeaux' | 'voyage';\nexport type UniverseIntType = 0 | 1 | 2 | 3 | 4;\n\nconst UNIVERS_UNKNOWN_STR: UniverseStrType = 'unknown';\nconst UNIVERS_MARIAGE_STR: UniverseStrType = 'mariage';\nconst UNIVERS_NAISSANCE_STR: UniverseStrType = 'naissance';\nconst UNIVERS_CADEAUX_STR: UniverseStrType = 'cadeaux';\nconst UNIVERS_VOYAGE_STR: UniverseStrType = 'voyage';\n\nconst UNIVERS_UNKNOWN_INT: UniverseIntType = 0;\nconst UNIVERS_MARIAGE_INT: UniverseIntType = 1;\nconst UNIVERS_NAISSANCE_INT: UniverseIntType = 2;\nconst UNIVERS_CADEAUX_INT: UniverseIntType = 3;\nconst UNIVERS_VOYAGE_INT: UniverseIntType = 4;\n\nexport const isUniverseStrType = (str: string): str is UniverseStrType => {\n return str === 'unknown' || str === 'mariage' || str === 'voyage' || str === 'naissance' || str === 'cadeaux';\n};\n\nexport const readUniverseStrType = (str?: string): UniverseStrType | undefined => {\n if (!str) {\n return undefined;\n }\n\n if (isUniverseStrType(str)) {\n return str;\n }\n\n return undefined;\n};\n\nexport const UniverseTypeValues = {\n UNIVERS_UNKNOWN: {\n valInt: UNIVERS_UNKNOWN_INT,\n valStr: UNIVERS_UNKNOWN_STR,\n },\n UNIVERS_MARIAGE: {\n valInt: UNIVERS_MARIAGE_INT,\n valStr: UNIVERS_MARIAGE_STR,\n },\n UNIVERS_NAISSANCE: {\n valInt: UNIVERS_NAISSANCE_INT,\n valStr: UNIVERS_NAISSANCE_STR,\n },\n UNIVERS_CADEAUX: {\n valInt: UNIVERS_CADEAUX_INT,\n valStr: UNIVERS_CADEAUX_STR,\n },\n UNIVERS_VOYAGE: {\n valInt: UNIVERS_VOYAGE_INT,\n valStr: UNIVERS_VOYAGE_STR,\n },\n getIntByString: (str: string): UniverseIntType | undefined => {\n const universeStr = readUniverseStrType(str);\n if (!universeStr) {\n return undefined;\n }\n\n switch (universeStr) {\n case UNIVERS_UNKNOWN_STR:\n return UNIVERS_UNKNOWN_INT;\n case UNIVERS_MARIAGE_STR:\n return UNIVERS_MARIAGE_INT;\n case UNIVERS_NAISSANCE_STR:\n return UNIVERS_NAISSANCE_INT;\n case UNIVERS_CADEAUX_STR:\n return UNIVERS_CADEAUX_INT;\n case UNIVERS_VOYAGE_STR:\n return UNIVERS_VOYAGE_INT;\n default:\n return undefined;\n }\n },\n getStringByInt: (n: number): UniverseStrType | undefined => {\n switch (n) {\n case UNIVERS_UNKNOWN_INT:\n return UNIVERS_UNKNOWN_STR;\n case UNIVERS_MARIAGE_INT:\n return UNIVERS_MARIAGE_STR;\n case UNIVERS_NAISSANCE_INT:\n return UNIVERS_NAISSANCE_STR;\n case UNIVERS_CADEAUX_INT:\n return UNIVERS_CADEAUX_STR;\n case UNIVERS_VOYAGE_INT:\n return UNIVERS_VOYAGE_STR;\n default:\n return undefined;\n }\n },\n};\n\n/* Civility */\nexport type Civility = 0 | 1 | 2 | 3 | 4;\ntype CivilityStr = 'inconnu' | 'mademoiselle' | 'madame' | 'monsieur' | 'autre';\ntype CivilityStrShort = '' | 'Mrs' | 'Ms' | 'Mr';\n\nexport const UNKNOWN_CIVILITY_TYPE: Civility = 0;\nexport const MISS: Civility = 1;\nexport const MRS: Civility = 2;\nexport const MR: Civility = 3;\nexport const OTHER: Civility = 4;\n\nconst UNKNOWN_CIVILITY_TYPE_STR: CivilityStr = 'inconnu';\nconst MISS_STR: CivilityStr = 'mademoiselle';\nconst MRS_STR: CivilityStr = 'madame';\nconst MR_STR: CivilityStr = 'monsieur';\nconst OTHER_STR: CivilityStr = 'autre';\n\nconst UNKNOWN_CIVILITY_TYPE_STR_SHORT: CivilityStrShort = '';\nconst MISS_STR_SHORT: CivilityStrShort = 'Ms';\nconst MRS_STR_SHORT: CivilityStrShort = 'Mrs';\nconst MR_STR_SHORT: CivilityStrShort = 'Mr';\nconst OTHER_STR_SHORT: CivilityStrShort = '';\n\nexport const isCivilityStrType = (str: string): str is CivilityStr => {\n return str === 'inconnu' || str === 'mademoiselle' || str === 'madame' || str === 'monsieur' || str === 'autre';\n};\n\nexport const readCivilityStrType = (str?: string): CivilityStr | undefined => {\n if (!str) {\n return undefined;\n }\n\n if (isCivilityStrType(str)) {\n return str;\n }\n\n return undefined;\n};\nexport const CivilityTypeValues = {\n UNKNOWN: UNKNOWN_CIVILITY_TYPE,\n MISS,\n MRS,\n MR,\n OTHER,\n\n getIntByString: (str: string): Civility | undefined => {\n const civilityStr = readCivilityStrType(str);\n if (!civilityStr) {\n return undefined;\n }\n\n switch (civilityStr) {\n case UNKNOWN_CIVILITY_TYPE_STR:\n return UNKNOWN_CIVILITY_TYPE;\n case MISS_STR:\n return MISS;\n case MRS_STR:\n return MRS;\n case MR_STR:\n return MR;\n case OTHER_STR:\n return OTHER;\n default:\n return undefined;\n }\n },\n getStringByInt: (valueInt: Civility | undefined): string => {\n switch (valueInt) {\n case UNKNOWN_CIVILITY_TYPE:\n return UNKNOWN_CIVILITY_TYPE_STR;\n case MISS:\n return MISS_STR;\n case MRS:\n return MRS_STR;\n case MR:\n return MR_STR;\n case OTHER:\n return OTHER_STR;\n default:\n return '';\n }\n },\n toString: (civility?: Civility): string => {\n switch (civility) {\n case UNKNOWN_CIVILITY_TYPE:\n return UNKNOWN_CIVILITY_TYPE_STR_SHORT;\n case MISS:\n return MISS_STR_SHORT;\n case MRS:\n return MRS_STR_SHORT;\n case MR:\n return MR_STR_SHORT;\n case OTHER:\n return OTHER_STR_SHORT;\n default:\n return '';\n }\n },\n};\n\n/* Denominator */\nexport type DenominatorType = 0 | 1 | 2 | 3;\nconst UNKNOWN_DENOMINATOR_TYPE: DenominatorType = 0;\nconst MARIED: DenominatorType = 1;\nconst PARENTS: DenominatorType = 2;\nconst RECIPIENT: DenominatorType = 3;\n\nexport const DenominatorTypeValues = {\n UNKNOWN: UNKNOWN_DENOMINATOR_TYPE,\n MARIED,\n PARENTS,\n RECIPIENT,\n};\n\nexport type GiftState = 'A' | 'E' | 'G' | 'I' | 'P' | 'R' | 'T';\nconst ANNULE: GiftState = 'A';\nconst EMPORTE: GiftState = 'E';\nconst GENERE: GiftState = 'G';\nconst PERIME: GiftState = 'I';\nconst PAYE: GiftState = 'P';\nconst RESERVE: GiftState = 'R';\nconst EN_ATTENTE: GiftState = 'T';\n\nexport const GiftStateValues = {\n ANNULE,\n EMPORTE,\n GENERE,\n PERIME,\n PAYE,\n RESERVE,\n EN_ATTENTE,\n};\n\nexport type OptinType = 0 | 1 | 2 | 3 | 4;\nconst UNKNOWN_OPTIN_TYPE: OptinType = 0;\nconst PRINTEMPS_LISTES: OptinType = 1;\nconst PRINTEMPS_VOYAGES: OptinType = 2;\nconst PRINTEMPS: OptinType = 3;\nconst PRINTEMPS_PARTENAIRES: OptinType = 4;\n\nexport const OptinTypeValues = {\n UNKNOWN: UNKNOWN_OPTIN_TYPE,\n PRINTEMPS_LISTES,\n PRINTEMPS_VOYAGES,\n PRINTEMPS,\n PRINTEMPS_PARTENAIRES,\n};\n\nexport type OptinPreference = 0 | 1 | 2 | 3 | 4 | 5;\ntype OptinPreferenceStr = 'inconnu' | 'mariage' | 'naissance' | 'cadeaux' | 'voyage' | 'robes';\nconst UNKNOWN_OPTIN_PREFERENCE: OptinPreference = 0;\nconst MARIAGE: OptinPreference = 1;\nconst NAISSANCE: OptinPreference = 2;\nconst CADEAUX: OptinPreference = 3;\nconst VOYAGE: OptinPreference = 4;\nconst ROBES: OptinPreference = 5;\n\nconst UNKNOWN_OPTIN_PREFERENCE_TYPE_STR: OptinPreferenceStr = 'inconnu';\nconst MARIAGE_STR: OptinPreferenceStr = 'mariage';\nconst NAISSANCE_STR: OptinPreferenceStr = 'naissance';\nconst CADEAUX_STR: OptinPreferenceStr = 'cadeaux';\nconst VOYAGE_STR: OptinPreferenceStr = 'voyage';\nconst ROBES_STR: OptinPreferenceStr = 'robes';\n\nexport const isOptinPreferenceStrType = (str: string): str is OptinPreferenceStr => {\n return (\n str === UNKNOWN_OPTIN_PREFERENCE_TYPE_STR ||\n str === MARIAGE_STR ||\n str === NAISSANCE_STR ||\n str === CADEAUX_STR ||\n str === VOYAGE_STR ||\n str === ROBES_STR\n );\n};\nexport const readOptinPreferenceStrType = (str?: string): OptinPreferenceStr | undefined => {\n if (!str) {\n return undefined;\n }\n\n if (isOptinPreferenceStrType(str)) {\n return str;\n }\n\n return undefined;\n};\n\nexport const OptinPreferenceValues = {\n UNKNOWN: UNKNOWN_OPTIN_PREFERENCE,\n MARIAGE,\n NAISSANCE,\n CADEAUX,\n VOYAGE,\n ROBES,\n getIntByString: (str: string): OptinPreference | undefined => {\n const optinPreferenceStr = readOptinPreferenceStrType(str);\n if (!optinPreferenceStr) {\n return undefined;\n }\n\n switch (optinPreferenceStr) {\n case UNKNOWN_OPTIN_PREFERENCE_TYPE_STR:\n return UNKNOWN_OPTIN_PREFERENCE;\n case MARIAGE_STR:\n return MARIAGE;\n case NAISSANCE_STR:\n return NAISSANCE;\n case CADEAUX_STR:\n return CADEAUX;\n case VOYAGE_STR:\n return VOYAGE;\n case ROBES_STR:\n return ROBES;\n default:\n return undefined;\n }\n },\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"footer-component_footer__2Y1_9\",\"selector\":\"footer-component_selector__37NaS\",\"visible\":\"footer-component_visible__barby\",\"menu\":\"footer-component_menu__pJ0af\",\"transition\":\"footer-component_transition__1aAOl\",\"custom-selector\":\"footer-component_custom-selector__3pfhd\",\"ui\":\"footer-component_ui__3bORg\",\"selection\":\"footer-component_selection__1N-hW\",\"dropdown\":\"footer-component_dropdown__mx4bR\",\"default\":\"footer-component_default__1SS8e\",\"text\":\"footer-component_text__X56lV\",\"footerSection\":\"footer-component_footerSection__2zw5c\",\"contactSection\":\"footer-component_contactSection__NDZ8T\",\"legalSection\":\"footer-component_legalSection__BXxSJ\",\"footerColumn\":\"footer-component_footerColumn__2pS49\",\"newsLetterTitle\":\"footer-component_newsLetterTitle__1rF5c\",\"nlInnerForm\":\"footer-component_nlInnerForm__1Fa1B\",\"inputContainer\":\"footer-component_inputContainer__9Sp_k\",\"nlFirstRow\":\"footer-component_nlFirstRow__3LAs-\",\"nlSecondRow\":\"footer-component_nlSecondRow__3CUcz\",\"nlInput\":\"footer-component_nlInput__2bCw0\",\"newsLetterBtn\":\"footer-component_newsLetterBtn__3ZxnX\",\"socialBtn\":\"footer-component_socialBtn__2voH6\",\"instagramBtn\":\"footer-component_instagramBtn__1lEIo\",\"pinterestBtn\":\"footer-component_pinterestBtn__3ziVU\",\"newsLetterBloc\":\"footer-component_newsLetterBloc__19vdy\",\"newsLetterForm\":\"footer-component_newsLetterForm__1lakO\",\"newsLetterHeart\":\"footer-component_newsLetterHeart__1PCp0\",\"newsLetterLink\":\"footer-component_newsLetterLink__2gs-5\",\"link\":\"footer-component_link__6ZM7F\"};","import Responsive from 'semantic-ui-react/dist/commonjs/addons/Responsive';\nimport Select from 'semantic-ui-react/dist/commonjs/addons/Select';\n\nimport Sidebar from 'semantic-ui-react/dist/commonjs/modules/Sidebar';\nimport Popup from 'semantic-ui-react/dist/commonjs/modules/Popup';\nimport Modal from 'semantic-ui-react/dist/commonjs/modules/Modal';\nimport Checkbox, { CheckboxProps as LocalCheckboxProps } from 'semantic-ui-react/dist/commonjs/modules/Checkbox';\nimport { DropdownProps as LocalDropDownProps } from 'semantic-ui-react/dist/commonjs/modules/Dropdown';\nimport { DropdownItemProps as LocalDropdownItemProps } from 'semantic-ui-react/dist/commonjs/modules/Dropdown/DropdownItem';\n\nimport Dimmer from 'semantic-ui-react/dist/commonjs/modules/Dimmer';\n\nimport Grid from 'semantic-ui-react/dist/commonjs/collections/Grid';\nimport Breadcrumb from 'semantic-ui-react/dist/commonjs/collections/Breadcrumb';\n\nimport Container from 'semantic-ui-react/dist/commonjs/elements/Container';\nimport Icon from 'semantic-ui-react/dist/commonjs/elements/Icon';\nimport Placeholder from 'semantic-ui-react/dist/commonjs/elements/Placeholder';\nimport Loader from 'semantic-ui-react/dist/commonjs/elements/Loader';\nimport Header from 'semantic-ui-react/dist/commonjs/elements/Header';\nimport Label from 'semantic-ui-react/dist/commonjs/elements/Label';\n\nexport type CheckboxProps = LocalCheckboxProps;\nexport type DropdownProps = LocalDropDownProps;\nexport type DropdownItemProps = LocalDropdownItemProps;\n\nexport { Responsive, Select };\n\nexport { Sidebar, Popup, Modal, Checkbox, Dimmer };\n\nexport { Grid, Breadcrumb };\n\nexport { Container, Icon, Placeholder, Loader, Header, Label };\n","import { createBrowserHistory } from 'history';\n\nexport const history = createBrowserHistory();\n","import axios from 'axios';\nimport { config } from '../../../../../../../config';\nimport { concatUrl, dateIsExpired } from '../../../../../utils';\nimport { AuthToken } from '../../../../../models';\n\nconst apiClient = axios.create({\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n});\n\nexport const cmsAuthenticationService = {\n authenticate: async (): Promise => {\n const url = concatUrl([config.cms.baseUrl, config.cms.auth.tokenUrl]);\n const { grantType, clientId, clientScope, clientSecret } = config.cms.auth;\n\n const formData = new URLSearchParams();\n formData.append('grant_type', grantType);\n formData.append('client_id', clientId);\n formData.append('client_secret', clientSecret);\n formData.append('scope', clientScope);\n\n const response = await apiClient.post(url, formData);\n\n const expiration = new Date();\n expiration.setSeconds(expiration.getSeconds() + response.data.expires_in);\n\n return {\n value: response.data.access_token,\n expiration,\n isValid: () => expiration && dateIsExpired(expiration),\n };\n },\n};\n","import { cmsAuthenticationService } from './cms-authentication-service';\nimport { AuthToken } from '../../../../../models';\nimport { config } from 'config';\nimport { concatUrl } from 'modules/shared/utils';\n\nexport const cmsTokenService = {\n getToken: async (): Promise => {\n const tokenValue = localStorage.getItem('cms_access_token');\n if (!tokenValue) {\n const token = await cmsAuthenticationService.authenticate();\n localStorage.setItem('cms_access_token', JSON.stringify(token));\n return token.value;\n }\n\n const token = JSON.parse(tokenValue) as AuthToken;\n let tokenContent = null;\n try {\n tokenContent = JSON.parse(atob(token.value.split('.')[1]));\n } catch (e) {}\n\n const issUrls = [config.cms.baseUrl].concat(config.cms.infraUrl ? [config.cms.infraUrl] : []).map(u => concatUrl([u, config.cms.auth.issUrl]))\n if (new Date(token.expiration) < new Date() || (issUrls && issUrls.length > 0 && (!tokenContent || !tokenContent.iss || issUrls.indexOf(tokenContent.iss.toLowerCase()) === -1))) {\n const refreshedToken = await cmsAuthenticationService.authenticate();\n localStorage.setItem('cms_access_token', JSON.stringify(refreshedToken));\n return refreshedToken.value;\n }\n\n return token.value;\n },\n};\n","import axios from 'axios';\nimport { config } from 'config';\nimport { Error } from 'modules/shared/models';\nimport { concatUrl } from 'modules/shared/utils';\nimport { cmsTokenService } from './sub-services';\n\nconst restClient = axios.create({\n baseURL: concatUrl([config.cms.baseUrl, config.cms.rest.url]),\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction errorResponseHandler(error: any): Promise {\n const returnedError: Error = {\n message: error.message,\n code: -1,\n };\n\n return Promise.reject(returnedError);\n}\n\nrestClient.interceptors.request.use(\n async requestConfig => {\n const originalRequestConfig = requestConfig;\n originalRequestConfig.headers.authorization = `Bearer ${await cmsTokenService.getToken()}`;\n return originalRequestConfig;\n },\n err => Promise.reject(err),\n);\n\nrestClient.interceptors.response.use(\n response => response,\n error => errorResponseHandler(error),\n);\n\nexport { restClient };\n","import { ApolloClient } from 'apollo-client';\nimport { createHttpLink } from 'apollo-link-http';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { setContext } from 'apollo-link-context';\nimport { config } from 'config';\nimport { concatUrl } from 'modules/shared/utils';\nimport { cmsTokenService } from './sub-services';\n\nconst httpLink = createHttpLink({\n uri: concatUrl([config.cms.baseUrl, config.cms.graphql.url]),\n});\n\nconst authLink = setContext(\n async (_, { headers }): Promise => {\n const token = await cmsTokenService.getToken();\n // TODO: make it cleaner\n const previewing = window.location.pathname.includes('preview');\n if (previewing) {\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : '',\n 'x-unpublished': true,\n },\n };\n }\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : '',\n },\n };\n },\n);\n\nexport const apolloClient = new ApolloClient({\n link: authLink.concat(httpLink),\n cache: new InMemoryCache(),\n});\n","import { restClient } from './client';\nimport { Structure } from '../../../models';\n\nexport const structureService = {\n get: async () => {\n const response = await restClient.get('/structure');\n return response.data;\n },\n};\n","import React from 'react';\n\nimport { ClassicButton } from 'modules/shared-ui/components';\n\nimport { getPlistesCDNUrl } from '../../utils';\nimport { useRouter } from '../../hooks';\n\nimport styles from './not-found-component.module.css';\n\nexport const NotFound: React.FC = () => {\n const { history } = useRouter();\n if (window.location.search !== '?errorType=404') {\n window.location.replace(`${window.location.href}?errorType=404`);\n }\n\n return (\n \n
\n \n \n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n
404
\n
OUUPS... CETTE PAGE AURAIT-ELLE PRIS LA FUITE ?
\n
\n Pendant que nous partons à sa recherche, trouvez l'inspiration pour votre liste.\n
\n
\n {\n history.push('/');\n }}\n />{' '}\n
\n
\n
\n
\n \n );\n};\n","import React from 'react';\n\nexport const Unhautorized: React.FC = () => {\n return
Unhautorized!
;\n};\n","import React from 'react';\nimport { Switch as BaseSwitch } from 'react-router-dom';\nimport { flattenChildren } from '../../../utils';\nimport { Props } from './flat-switch-type';\n\nexport const Switch: React.FC = ({ children }: Props) => {flattenChildren(children)};\n","import React from 'react';\nimport { Route as BaseRoute } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\n\nimport { navigationModule } from '../../../redux';\n\nimport { NotifiedRouteProps } from './notified-route-type';\n\nexport const NotifiedRoute: React.FC = ({\n navigationTree,\n layout: Layout,\n ...rest\n}: NotifiedRouteProps) => {\n const dispatch = useDispatch();\n dispatch(navigationModule.action.updateNavigation(navigationTree));\n\n if (Layout) {\n return (\n \n \n \n );\n }\n return ;\n};\n","import React from 'react';\nimport { Route as BaseRoute } from 'react-router-dom';\n\nimport { LayoutableRouteProps } from './layoutable-route-type';\n\nexport const LayoutableRoute: React.FC = ({ layout: Layout, ...rest }: LayoutableRouteProps) => {\n if (Layout) {\n return (\n \n \n \n );\n }\n return ;\n};\n","import { connect } from 'react-redux';\nimport { authenticationModule, AuthenticationState } from '../../../redux';\nimport { PrivateRouteStateProps, PrivateRouteOwnProps } from './private-route-type';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst mapStateToProps = (states: any): PrivateRouteStateProps => {\n const subState = states[authenticationModule.storeName] as AuthenticationState;\n return {\n isAuthenticated: !!subState.token && subState.token.isValid(),\n folder: subState.loggedInFolder,\n };\n};\n\nconst enhancer = connect(mapStateToProps);\nexport default enhancer;\n","import React from 'react';\nimport { Redirect, Route } from 'react-router-dom';\n\nimport { PrivateRouteProps } from './private-route-type';\nimport { Unhautorized } from '../../unhautorized';\n\nimport enhancer from './private-route-enhancer';\n\nexport const privateRoute: React.FC = ({\n isAuthenticated,\n folder,\n authenticationPath,\n allowedFolderType,\n render,\n component: Component,\n ...rest\n}: PrivateRouteProps) => {\n return (\n {\n if (!isAuthenticated || !folder) {\n if (!authenticationPath) {\n return ;\n }\n\n return (\n \n );\n }\n\n if (allowedFolderType && folder.type !== allowedFolderType) {\n return ;\n }\n\n if (Component) {\n return ;\n }\n\n if (render) {\n return render(props);\n }\n\n return ;\n }}\n />\n );\n};\n\nexport const PrivateRoute = enhancer(privateRoute);\n","import { connect } from 'react-redux';\nimport { globalLoaderModule, GlobalLoadingState } from '../../redux';\nimport { StateProps } from './global-loader-type';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst mapStateToProps = (states: any): StateProps => {\n const subState = states[globalLoaderModule.storeName] as GlobalLoadingState;\n return {\n count: subState.count,\n };\n};\n\nconst enhancer = connect(mapStateToProps);\nexport default enhancer;\n","import React from 'react';\nimport enhancer from './global-loader-enhancer';\nimport { StateProps } from './global-loader-type';\nimport styles from './global-loader-component.module.css';\n\nconst globalLoader: React.FC = React.memo(({ count }: StateProps) => {\n return (\n \n {count > 0 && (\n
\n
\n
\n )}\n \n );\n});\n\nexport const GlobalLoader = enhancer(globalLoader);\n","import React from 'react';\n\nexport const LocalLoader: React.FC = () => {\n return
Chargement en cours...
;\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/interactive-supports-focus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { useEffect, useRef, useState } from 'react';\nimport { NavLink } from 'react-router-dom';\n\nimport { CtaButton, ClickableContainer } from 'modules/shared-ui/components';\n\nimport { useHover } from '../../../../../../hooks';\nimport { chunk } from '../../../../../../utils';\nimport { GenericList } from '../../../../../generic-list';\nimport { MenuItem, SectionMenuItem } from '../../../../menu-type';\n\nimport { Props } from './panel-type';\n\nimport styles from './panel-component.module.css';\n\ninterface MenuPanelProps {\n elements: MenuItem[] | undefined | null;\n}\n\nconst Level4MenuPanel: React.FC = ({ elements }: MenuPanelProps) => {\n const listContainerRef = useRef(null);\n\n const { bind: topBind, hovered: topIsHovered } = useHover();\n const topRef = useRef(topIsHovered);\n topRef.current = topIsHovered;\n\n const { bind: botBind, hovered: bottomIsHovered } = useHover();\n const botRef = useRef(bottomIsHovered);\n botRef.current = bottomIsHovered;\n\n const [scrolledToTop, setScrolledToTop] = useState(false);\n const [scrolledToBottom, setScrolledToBottom] = useState(false);\n\n const items = elements || [];\n const scrollable = items.length > 10;\n\n const isScrolledToTop = (): boolean => {\n if (listContainerRef && listContainerRef.current) {\n const refCurrent = listContainerRef.current;\n return refCurrent.scrollHeight - refCurrent.scrollTop === 0;\n }\n return false;\n };\n\n const isScrolledToBottom = (): boolean => {\n if (listContainerRef && listContainerRef.current) {\n const refCurrent = listContainerRef.current;\n return refCurrent.scrollHeight - refCurrent.scrollTop === refCurrent.clientHeight;\n }\n return false;\n };\n\n const scroll = (scrollDown: boolean): void => {\n if (listContainerRef && listContainerRef.current && items.length > 0) {\n const refCurrent = listContainerRef.current;\n\n if (scrollDown && !scrolledToBottom) {\n refCurrent.scrollTo(0, refCurrent.scrollTop + 4);\n setScrolledToTop(false);\n setScrolledToBottom(isScrolledToBottom());\n }\n if (!scrollDown && !scrolledToTop) {\n refCurrent.scrollTo(0, refCurrent.scrollTop - 4);\n setScrolledToBottom(false);\n setScrolledToTop(isScrolledToTop());\n }\n }\n };\n\n const loop = (down: boolean): void => {\n if (topRef.current === true || botRef.current === true) {\n scroll(down);\n }\n\n if (topRef.current === true || botRef.current === true) {\n setTimeout(() => loop(down), 20);\n }\n };\n\n const handleHover = (isHovered: boolean, down: boolean): void => {\n if (isHovered) {\n loop(down);\n }\n };\n\n useEffect(() => {\n handleHover(topIsHovered, false);\n }, [topIsHovered]);\n\n useEffect(() => {\n handleHover(bottomIsHovered, true);\n }, [bottomIsHovered]);\n\n if (elements) {\n return (\n
\n {scrollable &&
}\n \n {\n return (\n \n {element.name}\n \n );\n }}\n />\n
\n {scrollable &&
}\n
\n );\n }\n return ;\n};\n\nconst buildLevel3 = (elements: MenuItem[] | undefined | null): JSX.Element => {\n if (elements) {\n const dividedElements = chunk(elements, 8);\n return (\n \n
\n {\n return (\n
\n {\n if (childElement.ctaStyle) {\n if (childElement.ctaStyle === 'container') {\n return ;\n }\n return (\n
\n \n
\n );\n }\n return (\n
\n \n {childElement.name}\n \n \n
\n );\n }}\n />\n
\n );\n }}\n />\n
\n
\n );\n }\n return ;\n};\n\nconst buildLevel2 = (element: MenuItem | undefined | null): JSX.Element => {\n if (element && element.children) {\n return (\n {\n const isCtaContainer = childElement.ctaStyle && childElement.ctaStyle === 'container';\n return (\n \n {!isCtaContainer && (\n \n {childElement.name}\n \n )}\n {buildLevel3(childElement.children)}\n
\n );\n }}\n />\n );\n }\n return ;\n};\n\nconst buildLevel1 = (element: SectionMenuItem, top: number = 0, verticalDisplay: boolean = false): JSX.Element => {\n let thumb: JSX.Element;\n const disableThumbPlaceholder = element.thumbUrl === 'disabled';\n if (element && element.thumbAssetUrl) {\n const innerThumb = (\n
\n \n \"\"\n \n
\n );\n\n if (element.thumbUrl) {\n if (element.thumbCtaText) {\n thumb = (\n
\n {innerThumb}\n
\n \n
\n
\n );\n } else {\n thumb = {innerThumb};\n }\n } else {\n thumb = innerThumb;\n }\n } else {\n thumb = ;\n }\n\n if (element && element.children) {\n return (\n
\n
\n
\n {buildLevel2(element)}\n
\n {!disableThumbPlaceholder &&
{thumb}
}\n
\n
\n );\n }\n return ;\n};\n\nexport const DesktopPanel: React.FC = ({ element, top, verticalDisplay }: Props) => {\n const { bind, hovered } = useHover();\n\n return (\n
\n \n {element.name}\n \n {buildLevel1(element, top, verticalDisplay)}\n
\n );\n};\n","import React from 'react';\n\nimport { GenericList } from '../../../generic-list';\nimport { DesktopMenuProps } from './desktop-menu-type';\nimport { MenuItem } from '../../menu-type';\nimport { DesktopPanel } from './components';\n\nexport const DesktopMenu: React.FC = React.memo(\n ({ elements, top, verticalDisplay }: DesktopMenuProps) => {\n if (elements) {\n return (\n {\n return (\n \n );\n }}\n />\n );\n }\n\n return ;\n },\n);\n","import React from 'react';\nimport { NavLink } from 'react-router-dom';\n\nimport { CtaButton } from 'modules/shared-ui/components';\nimport { GenericList } from '../../../../../generic-list';\nimport { MenuItem } from '../../../..';\n\nimport { PanelProps } from './panel-type';\n\nimport styles from './panel-component.module.css';\n\nconst renderCta = (element: MenuItem, key: number): JSX.Element => {\n return (\n
\n \n
\n );\n};\n\nexport const MobilePanel: React.FC = ({ activeElement, updateActiveElement }: PanelProps) => {\n const isActiveRoot = activeElement && activeElement.name;\n if (activeElement && activeElement.children && activeElement.children.length > 0) {\n return (\n \n {isActiveRoot && (\n
\n {activeElement.parent && (\n {\n if (activeElement.parent) {\n updateActiveElement(activeElement.parent);\n }\n }}\n />\n )}\n {activeElement.name}\n
\n )}\n {\n if (element.ctaStyle) {\n if (element.ctaStyle === 'container') {\n return (\n \n renderCta(subElement, subkey)\n }\n />\n );\n }\n return renderCta(element, key);\n }\n\n return (\n \n \n
\n {element.name}\n
\n {element.children && element.children.length > 0 ? (\n updateActiveElement(element)}\n />\n ) : (\n \n )}\n
\n
\n );\n }}\n />\n
\n );\n }\n\n return ;\n};\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\n\nimport { useRouter } from '../../../../hooks';\nimport { MenuItem, SectionMenuItem, BaseMenuItem } from '../../menu-type';\n\nimport { MobileMenuProps } from './mobile-menu-type';\nimport { MobilePanel } from './components';\n\nconst cleanAndGetCTA = (items?: MenuItem[]): MenuItem[] => {\n let result: MenuItem[] = [];\n\n if (!items || items.length === 0) {\n return result;\n }\n\n for (let i = 0; i < items.length; i += 1) {\n if (items[i].ctaStyle) {\n result = result.concat(items.splice(i, 1));\n i -= 1;\n } else {\n const clonedItem = { ...items[i] };\n if (clonedItem.children) {\n result = result.concat(cleanAndGetCTA([...clonedItem.children]));\n }\n }\n }\n\n return result;\n};\n\nconst getActiveElement = (element: MenuItem, activePath: string): MenuItem | undefined => {\n if (!element || !activePath || !element.children || element.children.length === 0) {\n return undefined;\n }\n\n if (activePath.startsWith(element.levelPath)) {\n for (let i = 0; i < element.children.length; i += 1) {\n const activeChildElement = getActiveElement(element.children[i], activePath);\n if (activeChildElement) {\n return activeChildElement;\n }\n }\n\n return element;\n }\n\n return undefined;\n};\n\nexport const MobileMenu: React.FC = ({ elements }: MobileMenuProps) => {\n const [currentElement, setCurrentElement] = useState(undefined);\n const { history } = useRouter();\n\n const handleUpdateActiveElement = useCallback((activeElement: SectionMenuItem | MenuItem) => {\n setCurrentElement(activeElement);\n }, []);\n\n const mobileRootLevel = useMemo(() => {\n // On rajoute un noeud racine pour la navigation mobile\n const rootLevel: BaseMenuItem = {\n name: '',\n levelPath: '/',\n ressourcePath: '/',\n };\n\n const clonedElements = [];\n for (let i = 0; i < elements.length; i += 1) {\n const currentClonedElement = { ...elements[i] };\n currentClonedElement.parent = rootLevel;\n if (currentClonedElement.children) {\n const clonedChildren = [...currentClonedElement.children];\n currentClonedElement.children = clonedChildren.concat(cleanAndGetCTA(clonedChildren));\n currentClonedElement.children.forEach(menuItem => {\n const currentMenuItem = menuItem;\n currentMenuItem.parent = currentClonedElement;\n });\n }\n\n clonedElements.push(currentClonedElement);\n }\n\n rootLevel.children = clonedElements;\n\n return rootLevel;\n }, [elements]);\n\n useEffect(() => {\n setCurrentElement(getActiveElement(mobileRootLevel, history.location.pathname));\n }, [mobileRootLevel, history]);\n\n if (!currentElement) {\n return ;\n }\n\n return ;\n};\n","import React from 'react';\nimport { Responsive, Sidebar } from 'vendors/semantic-ui';\n\nimport { configUI } from '../../../../config/config-ui';\nimport { MenuProps } from './menu-type';\nimport { DesktopMenu, MobileMenu } from './responsive';\n\nimport styles from './menu-component.module.css';\n\nexport const Menu: React.FC = React.memo(({ elements, visible, top, verticalDisplay }: MenuProps) => {\n return (\n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n );\n});\n","import { structureModule } from '../../redux';\nimport { Structure } from '../../models';\nimport { WithDatasFetchingListening } from '../../hocs';\n\nconst enhancer = WithDatasFetchingListening(structureModule.storeName);\nexport default enhancer;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { useState, useMemo, useEffect, useRef, useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Container, Responsive } from 'vendors/semantic-ui';\n\nimport { configUI } from 'config';\n\nimport { layoutModule } from '../../redux/modules';\nimport { Menu, MenuItem, SectionMenuItem } from '../menu';\nimport { Logo, Banner, ContextualMenu } from '..';\n\nimport { useRouter } from '../../hooks';\nimport { Node, SectionNode } from '../../models';\n\nimport { Props } from './header-type';\n\nimport enhancer from './header-enhancer';\n\nimport styles from './header-component.module.css';\nimport { concatUrl } from '../../utils';\n\nconst findRemplacementChildNode = (workingNode: Node): Node | undefined => {\n const replacementChildNode = workingNode.nodes\n ? workingNode.nodes.find(n => !n.path || n.path === '/' || n.path === '')\n : undefined;\n if (replacementChildNode && (!!replacementChildNode.isHidden || !!replacementChildNode.isModuleEntry)) {\n return findRemplacementChildNode(replacementChildNode);\n }\n\n return replacementChildNode;\n};\n\nconst convertStructureToMenuItems = (nodes?: Node[], parent?: MenuItem, parentPath?: string): MenuItem[] => {\n if (!nodes || nodes.length === 0) {\n return [];\n }\n\n let result: MenuItem[] = [];\n for (let i = 0; i < nodes.length; i += 1) {\n let workingNode: Node | undefined = nodes[i];\n let workingChildren = workingNode.nodes ? workingNode.nodes.slice() : undefined;\n let nodePath = workingNode.path;\n\n if (!!workingNode.isHidden || !!workingNode.isModuleEntry) {\n const replacementChildNode = findRemplacementChildNode(workingNode);\n if (replacementChildNode) {\n nodePath = concatUrl([nodePath || '/', replacementChildNode.path ? replacementChildNode.path : '/']);\n workingChildren = workingNode.nodes ? workingNode.nodes.filter(n => n !== replacementChildNode) : [];\n workingChildren = workingChildren.concat(\n replacementChildNode.nodes ? replacementChildNode.nodes.slice() : [],\n );\n workingNode = replacementChildNode;\n } else {\n if (workingNode.nodes && workingNode.nodes.length > 0 && parent) {\n result = result.concat(\n convertStructureToMenuItems(\n workingNode.nodes,\n parent,\n concatUrl([parentPath || '/', workingNode.path || '/']),\n ),\n );\n }\n\n workingNode = undefined;\n }\n }\n\n if (workingNode && workingNode.name && nodePath) {\n let ressourcePath = '';\n let levelPath = '';\n if (workingNode.isShortcut) {\n ressourcePath = workingNode.path || '/';\n } else {\n levelPath = concatUrl([parentPath || '/', nodePath]);\n if (workingNode.pathId) {\n ressourcePath = concatUrl([parentPath || '/', workingNode.pathId]);\n } else {\n ressourcePath = levelPath;\n }\n }\n\n const currentMenuItem: MenuItem = {\n name: workingNode.name,\n ressourcePath,\n levelPath,\n color: workingNode.color,\n isBold: workingNode.isBold,\n ctaStyle: workingNode.ctaStyle,\n parent,\n children: [],\n };\n\n currentMenuItem.children = convertStructureToMenuItems(workingChildren, currentMenuItem, levelPath);\n\n result.push(currentMenuItem);\n }\n }\n\n return result;\n};\n\nconst convertStructureToSectionMenuItems = (nodes?: SectionNode[]): SectionMenuItem[] => {\n if (!nodes || nodes.length === 0) {\n return [];\n }\n\n const result: SectionMenuItem[] = [];\n for (let i = 0; i < nodes.length; i += 1) {\n const workingNode: SectionNode | undefined = nodes[i];\n\n if (workingNode && workingNode.name && workingNode.path && !workingNode.isHidden) {\n const path = concatUrl(['/', workingNode.path]);\n const currentMenuItem: SectionMenuItem = {\n name: workingNode.name,\n ressourcePath: path,\n levelPath: path,\n thumbUrl: workingNode.thumbUrl,\n thumbAssetUrl: workingNode.thumbAssetUrl,\n thumbCtaText: workingNode.thumbCtaText,\n thumbCtaStyle: workingNode.thumbCtaStyle,\n children: [],\n };\n\n currentMenuItem.children = convertStructureToMenuItems(\n workingNode.nodes,\n currentMenuItem,\n currentMenuItem.levelPath,\n );\n\n result.push(currentMenuItem);\n }\n }\n\n return result;\n};\n\nconst InnerHeader: React.FC = React.memo(({ data }: Props) => {\n const { location } = useRouter();\n let parsedSearch = '';\n if (location.pathname.toLowerCase().startsWith('/recherche/')) {\n [parsedSearch] = location.pathname\n .toLowerCase()\n .replace('/recherche/', '')\n .split('?');\n }\n\n const [visible, setVisible] = useState(false);\n const [searchValue, setSearchValue] = useState(parsedSearch);\n const [searchFieldVisible, setSearchFieldVisible] = useState(false);\n const [headerHeight, setHeaderHeight] = useState(0);\n const isFirstRun = useRef(true);\n const headerRef = useRef(null);\n\n const { history } = useRouter();\n const dispatch = useDispatch();\n\n const updateHeaderHeight = useCallback((): void => {\n const newHeaderHeight = headerRef.current ? headerRef.current.clientHeight : 0;\n const rootElement = document.getElementById('root');\n if (rootElement) {\n rootElement.style.position = 'absolute';\n rootElement.style.top = `${newHeaderHeight}px`;\n }\n setHeaderHeight(newHeaderHeight);\n dispatch(layoutModule.action.updateHeaderHeight(newHeaderHeight));\n }, [dispatch, setHeaderHeight]);\n\n useEffect(() => {\n if (!isFirstRun.current) {\n updateHeaderHeight();\n }\n\n isFirstRun.current = false;\n return (): void => {\n const rootElement = document.getElementById('root');\n if (rootElement) {\n rootElement.style.top = 'initial';\n rootElement.style.position = 'initial';\n }\n dispatch(layoutModule.action.updateHeaderHeight(0));\n };\n }, [dispatch, updateHeaderHeight]);\n\n useEffect(() => {\n setVisible(false);\n }, [history.location.pathname]);\n\n const onSubElementLoaded = useCallback(() => {\n updateHeaderHeight();\n }, [updateHeaderHeight]);\n\n const menuElements = useMemo(() => {\n if (!data || !data.sectionNodes) {\n return [];\n }\n return convertStructureToSectionMenuItems(data.sectionNodes);\n }, [data]);\n\n const handleChange = (e: React.FormEvent): void => {\n setSearchValue(e.currentTarget.value);\n };\n\n const toggleSideNav: () => void = () => {\n if (searchFieldVisible) {\n toggleSearch();\n }\n setVisible(!visible);\n };\n\n const toggleSearch: () => void = () => {\n if (visible) {\n toggleSideNav();\n }\n setSearchFieldVisible(!searchFieldVisible);\n };\n\n return (\n
\n
\n {/* Bannière mobile */}\n \n
\n \n
\n
\n \n {/* header */}\n
\n \n {/* Liens du menu en desktop */}\n \n \n \n {/* Bouton d'ouverture du menu en mobile */}\n \n \n
\n {/* Logo du printemps - renvoie vers la home */}\n
\n \n
\n
\n \n
\n {/* Champ de recherche */}\n {\n history.push(`/recherche/${searchValue}`);\n }}\n >\n \n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n {/* Bannière desktop */}\n \n
\n \n
\n
\n {/* Menu déroulant */}\n \n \n {searchFieldVisible && (\n {\n if (searchValue !== '') {\n history.push(`/recherche/${searchValue}`);\n return true;\n }\n return false;\n }}\n >\n
\n );\n});\n\nexport const Header = enhancer(InnerHeader);\n","import { compose, Dispatch } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { tracerModule } from '../../redux';\nimport { WithRemoteActions, WithStatelessDatasFetching } from '../../hocs';\nimport { LightStore } from '../../models';\nimport { newsletterService, storeService } from '../../services/API/backend';\nimport { cacheQueryService } from '../../services';\n\nimport { FooterDispatchProps, FooterInjectedProps, NewsletterRemoteActionsProps } from './footer-type';\n\nconst mapDispatchToProps = (dispatch: Dispatch): FooterDispatchProps => ({\n showAdminPanel: () => dispatch(tracerModule.action.adminPanel.show()),\n});\n\nconst reduxConnect = connect<{}, FooterDispatchProps, {}, {}>(undefined, mapDispatchToProps);\n\nconst enhancer = compose(\n WithStatelessDatasFetching(\n cacheQueryService.cache('getStores', storeService.getAll, true),\n undefined,\n 'error',\n 'stores',\n ),\n WithRemoteActions({\n createNewsletterLight: {\n action: newsletterService.createLight,\n successMessage: 'Vous êtes maintenant inscrit à la newsletter',\n errorMessages: [\n {\n message: 'Erreur à la création du dossier',\n code: 10.105,\n },\n ],\n },\n }),\n reduxConnect,\n);\n\nexport default enhancer;\n","import React, { useMemo, useCallback } from 'react';\nimport { HashLink } from 'react-router-hash-link';\nimport { Link } from 'react-router-dom';\nimport { Responsive, Select, DropdownProps } from 'vendors/semantic-ui';\n\nimport { configUI, config, routes } from 'config';\n\nimport { createPathId, createPath } from 'modules/shared/utils';\nimport { Separator, LinkButton } from 'modules/shared-ui/components';\n\nimport { GDPRNewsletter } from 'modules/shared-gdpr/components';\nimport { I18nProvider } from 'modules/shared-i18n';\nimport coeur from 'assets/images/coeur.png';\nimport { Form, Formik } from 'formik';\nimport { DatePickerControl, EmailInputControl, InputControl } from 'modules/shared-form';\nimport { CreateNewsletterLight } from 'modules/shared/models';\nimport { useRouter } from '../../hooks';\nimport { SelectControlOption } from '../../types';\n\nimport { FooterProps } from './footer-type';\n\nimport enhancer from './footer-enhancer';\n\nimport styles from './footer-component.module.css';\n\nconst Selectors = (\n stores: SelectControlOption[],\n handleGroupePrintempsChange: (value: string) => void,\n HandleSelectStore: (event: React.SyntheticEvent, data: DropdownProps) => void,\n): JSX.Element => {\n return (\n \n \n
\n \n
\n
\n handleGroupePrintempsChange(data.value as string)}\n style={{ minWidth: '200px' }}\n />\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n handleGroupePrintempsChange(data.value as string)}\n style={{ minWidth: '250px' }}\n />\n
\n
\n
\n
\n );\n};\nconst help = (): JSX.Element => {\n return (\n \n
\n AIDE\n
\n
\n QUESTIONS FRÉQUENTES\n
\n
\n CONTACT\n
\n
\n );\n};\n\ninterface NewsLetterBlocProps {\n manageClickNewsletter: (data: CreateNewsletterLight) => void;\n}\nconst NewsLetterBloc: React.FC = ({ manageClickNewsletter }: NewsLetterBlocProps) => {\n return (\n
\n
\n \"logo\n
\n

OFFRES, ÉVÉNEMENTS ET INSPIRATIONS EN AVANT PREMIÈRE

\n \n initialValues={{ email: '', firstName: '', lastName: '' }}\n onSubmit={values => {\n manageClickNewsletter(values);\n }}\n >\n
\n
\n \n \n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n );\n};\n\nconst legalSection = (openTracerAdminPanel: VoidFunction): JSX.Element => {\n return (\n
\n
\n INFOS LÉGALES\n
\n
\n \n PROTECTION DES DONNÉES\n \n
\n
\n GESTION DES COOKIES\n
\n
\n CENTRE DE PRÉFÉRENCES\n
\n
\n JEUX ET RÈGLEMENTS\n
\n
\n );\n};\nconst InnerFooter: React.FC = React.memo(\n ({ stores, showAdminPanel, createNewsletterLight }: FooterProps) => {\n const convertedStores: SelectControlOption[] = useMemo(\n () =>\n stores\n ? [\n { key: '-1', value: '', text: '--' },\n ...stores.map((store, index) => {\n return {\n key: `${index}`,\n value: `${store.id}`,\n text: store.name,\n };\n }),\n ]\n : [],\n [stores],\n );\n\n const handleGroupePrintempsChange = useCallback((value: string) => {\n const option = configUI.selects.groups.find(o => o.value === value);\n\n if (!option) return;\n\n const win = window.open(option.url, '_blank');\n\n if (!win) return;\n\n win.focus();\n }, []);\n\n const { history } = useRouter();\n const HandleSelectStore = useCallback(\n (event: React.SyntheticEvent, data: DropdownProps) => {\n if (event && data) {\n const selectionText = event.currentTarget.textContent ? event.currentTarget.textContent : '';\n history.push(`${routes.magasin}/${createPathId(createPath(selectionText), `${data.value}`)}`);\n }\n },\n [history],\n );\n\n const HandleClickNewsletter = useCallback((data: CreateNewsletterLight) => {\n createNewsletterLight(data);\n }, []);\n\n return (\n \n
\n \n
\n
\n \n \n
\n {help()}\n {Selectors(convertedStores, handleGroupePrintempsChange, HandleSelectStore)}\n
\n {legalSection(showAdminPanel)}\n
\n \n \n \n \n
{help()}
\n {Selectors(convertedStores, handleGroupePrintempsChange, HandleSelectStore)}\n \n {legalSection(showAdminPanel)}\n
\n \n
\n
\n
\n \n );\n },\n);\n\nexport const Footer = enhancer(InnerFooter);\n","import { connect } from 'react-redux';\n\nimport { FolderTypeValues } from 'modules/shared/models';\nimport { ListState, listModule, AuthenticationState, authenticationModule } from '../../../redux';\n\nimport { ListButtonStateProps } from './list-button-type';\n\nconst sumReducer = (accumulator: number, item: number): number => accumulator + item;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst mapStateToProps = (states: any): ListButtonStateProps => {\n const listSubState = states[listModule.storeName] as ListState;\n const authenticationSubState = states[authenticationModule.storeName] as AuthenticationState;\n\n return {\n productQuantity:\n listSubState &&\n listSubState.currentList &&\n listSubState.currentList.elements &&\n listSubState.currentList.elements.length > 0\n ? listSubState.currentList.elements.map(g => g.quantity).reduce(sumReducer)\n : null,\n productCount:\n listSubState &&\n listSubState.currentList &&\n listSubState.currentList.elements &&\n listSubState.currentList.elements.length > 0\n ? listSubState.currentList.elements.length\n : null,\n isAuthenticated:\n authenticationSubState && authenticationSubState.token && authenticationSubState.loggedInFolder\n ? authenticationSubState.token.isValid() &&\n authenticationSubState.loggedInFolder.type === FolderTypeValues.CUSTOMER\n : false,\n };\n};\n\nconst reduxConnect = connect(mapStateToProps);\n\nconst enhancer = reduxConnect;\n\nexport default enhancer;\n","import React, { useState, useEffect } from 'react';\nimport { Label, Popup } from 'vendors/semantic-ui';\nimport { Link } from 'react-router-dom';\n\nimport { routes } from 'config';\nimport { ListButtonProps } from './list-button-type';\n\nimport enhancer from './list-button-enhancer';\n\nimport styles from './list-button-component.module.css';\n\nconst InnerListButton: React.FC = ({\n productCount,\n productQuantity,\n isAuthenticated,\n}: ListButtonProps) => {\n const [showNotification, setShowNotification] = useState(false);\n const [previousProductCount, setPreviousProductCount] = useState(null);\n\n useEffect(() => {\n let timeout: NodeJS.Timeout;\n if (previousProductCount !== null) {\n if (productCount && productCount > 0 && productCount > previousProductCount) {\n setShowNotification(true);\n timeout = setTimeout(() => {\n setShowNotification(false);\n }, 2500);\n } else {\n setShowNotification(false);\n }\n }\n\n if (productCount !== null) {\n setPreviousProductCount(productCount);\n }\n\n return () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n }, [productCount]);\n\n if (!isAuthenticated) {\n return ;\n }\n\n return (\n \n \n \n \n }\n />\n \n );\n};\n\nexport const ListButton = enhancer(InnerListButton);\n","/* eslint-disable jsx-a11y/control-has-associated-label */\nimport * as React from 'react';\nimport { Popup } from 'vendors/semantic-ui';\n\nimport { routes } from 'config';\n\nimport { confirmService } from 'modules/shared-ui/components';\n\nimport { useRouter } from '../../../hooks';\n\nimport { UserButtonProps } from './user-button-type';\n\nimport styles from './user-button-component.module.css';\n\nexport const UserButton: React.FC = ({ isAuthenticated, logout }: UserButtonProps) => {\n const { history } = useRouter();\n return (\n {\n if (isAuthenticated) {\n const result = await confirmService.show('Voulez-vous vraiment vous déconnecter ?');\n if (result) {\n logout();\n history.push('/');\n }\n } else {\n history.push(routes.espacePerso.login);\n }\n }}\n />\n }\n content={isAuthenticated ? 'Déconnexion' : 'Connexion'}\n basic\n />\n );\n};\n","import * as React from 'react';\nimport { ContextualMenuProps } from './contextual-menu-type';\nimport { ListButton } from './list-button';\nimport { UserButton } from './user-button';\n\nimport styles from './contextual-menu-component.module.css';\n\nimport enhancer from './contextual-menu-enhancer';\n\nconst InnerContextualMenu: React.FC = ({ isAuthenticated, logout }: ContextualMenuProps) => {\n return (\n
\n
\n \n {/* {isAuthenticated &&
} */}\n {isAuthenticated && }\n
\n );\n};\n\nexport const ContextualMenu = enhancer(InnerContextualMenu);\n","import { connect } from 'react-redux';\nimport { Dispatch } from 'redux';\n\nimport { AuthenticationState, authenticationModule } from '../../redux';\n\nimport { ContextualMenuStateProps, ContextualMenuDispatchProps } from './contextual-menu-type';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst mapStateToProps = (states: any): ContextualMenuStateProps => {\n const authenticationSubState = states[authenticationModule.storeName] as AuthenticationState;\n\n return {\n isAuthenticated:\n authenticationSubState && authenticationSubState.token ? authenticationSubState.token.isValid() : false,\n };\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch): ContextualMenuDispatchProps => ({\n logout: () => dispatch(authenticationModule.action.requestLogout()),\n});\n\nconst reduxConnect = connect(\n mapStateToProps,\n mapDispatchToProps,\n);\n\nconst enhancer = reduxConnect;\n\nexport default enhancer;\n","import gql from 'graphql-tag';\n\nexport const QUERY = gql([\n `\nquery FindBannerGroupContent($filter: String!) {\n bannerGroups : queryBannerGroupContents(top: 100, skip: 0, filter: $filter) {\n id\n data {\n banners {\n iv { \n id\n data {\n text { iv }\n backgroundColor { iv }\n textColor { iv }\n startDate { iv }\n endDate { iv }\n linkText { iv }\n linkUrl { iv }\n linkStyle { iv }\n }\n }\n }\n }\n }\n}\n`,\n]);\n","import { compose } from 'redux';\nimport { WithFetchDatasByParamsFromCMS, WithFetchDatasByParamsFromCMSInputProps } from 'modules/shared-cms-advanced';\n\nimport { BannerGroupLoader } from './banner-group-loader';\nimport { BannerGroupInjectedProps, BannerGroupOwnProps } from './banner-group-types';\nimport { QUERY } from './banner-group-query';\n\nconst enhancer = compose>(\n WithFetchDatasByParamsFromCMS(\n BannerGroupLoader,\n QUERY,\n undefined,\n [\n {\n filter: `id in [$ids]`,\n },\n ],\n undefined,\n true,\n ),\n);\n\nexport default enhancer;\n","import React from 'react';\n\nexport const BannerGroupLoader: React.FC = () => {\n return ;\n};\n","/* eslint-disable react/no-array-index-key */\nimport * as React from 'react';\nimport { Icon } from 'vendors/semantic-ui';\n\nimport { buildCMSStyles, extractCMSOrDefault, readCMSValue } from 'modules/shared-cms/utils';\nimport { BackgroundColorProps, CtaStyle, TextColorProps } from 'modules/shared-cms/cms-base-type';\nimport { LinkButton, HtmlContainer, CtaButton, ClickableContainer } from 'modules/shared-ui/components';\n\nimport { BannerGroupProps } from './banner-group-types';\nimport enhancer from './banner-group-enhancer';\nimport styles from './banner-group-component.module.css';\n\ninterface BannerItem {\n id: string;\n text: string;\n linkText: string;\n linkUrl: string;\n linkStyle: CtaStyle;\n backgroundColor: string;\n textColor: string;\n startDate?: Date;\n endDate?: Date;\n}\n\nexport const PlainBannerGroup: React.FC = ({ bannerGroups, bannerOrderList, onLoaded, onClose }) => {\n const groups = (bannerGroups || []).sort((a, b) => bannerOrderList.indexOf(a.id) - bannerOrderList.indexOf(b.id));\n const group = groups.length > 0 ? groups[0] : undefined;\n const groupId = group ? group.id : '';\n\n const banners: BannerItem[] = group\n ? extractCMSOrDefault(group.data.banners, [])\n .map(b => {\n const { id, data } = b;\n return {\n id,\n text: extractCMSOrDefault(data.text, ''),\n linkText: extractCMSOrDefault(data.linkText, ''),\n linkUrl: extractCMSOrDefault(data.linkUrl, ''),\n linkStyle: extractCMSOrDefault(data.linkStyle, 'normal'),\n backgroundColor: extractCMSOrDefault(data.backgroundColor, ''),\n textColor: extractCMSOrDefault(data.textColor, ''),\n startDate: readCMSValue(data.startDate),\n endDate: readCMSValue(data.endDate),\n };\n })\n .filter(item => {\n const { startDate, endDate } = item;\n const startDateObj = startDate == null ? undefined : new Date(startDate).getTime();\n const endDateObj = endDate == null ? undefined : new Date(endDate).getTime();\n const now = Date.now();\n return (startDateObj == null || startDateObj < now) && (endDateObj == null || endDateObj > now);\n })\n : [];\n\n const [currentIndex, setCurrentIndex] = React.useState(0);\n\n React.useEffect(() => {\n // Callback qui va dispatch et mettre a jour la taille du header dynamiquement\n // On execute qu'une seule fois afin de ne pas trigger un render du
a chaque fois\n // Les bannieres font la meme taille donc on execute qu'une fois\n if (onLoaded) {\n onLoaded();\n }\n }, []);\n\n React.useEffect(() => {\n if (banners.length > 1) {\n setTimeout(() => {\n setCurrentIndex((currentIndex + 1) % banners.length);\n }, 3000);\n }\n }, [currentIndex]);\n\n return (\n <>\n {banners.length > 0 &&\n banners.map((item, index) => {\n const style = buildCMSStyles({\n color: item.backgroundColor || 'transparent',\n textColor: item.textColor || 'black',\n });\n\n const darkBackground = item.backgroundColor === '#000000';\n\n return (\n \n \n
\n \n {item.linkUrl && item.linkText && (\n
\n \n
\n )}\n
\n {\n e.stopPropagation();\n e.preventDefault();\n if (onClose) {\n onClose(groupId);\n }\n }}\n >\n \n \n
\n \n );\n })}\n \n );\n};\n\nexport const BannerGroup = enhancer(PlainBannerGroup);\n","import { ComponentType } from 'react';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\n\nimport { RootState } from '../../redux/store';\nimport { NavigationElement } from '../../models';\n\nimport { BannerOwnProps, BannerStateProps, BannerSessionProps } from './banner-type';\nimport { WithSessionStorage } from '../../hocs';\n\nconst getBannerIds = (navigationElement?: NavigationElement): string[] => {\n const result: string[] = [];\n if (!navigationElement) {\n return result;\n }\n\n if (navigationElement.bannerId) {\n result.push(navigationElement.bannerId);\n }\n\n if (!navigationElement.parent) {\n return result;\n }\n\n return result.concat(getBannerIds(navigationElement.parent));\n};\n\nconst mapStateToProps = (state: RootState): BannerStateProps => {\n const ids = getBannerIds(state && state.navigation ? state.navigation.currentPage : undefined);\n return {\n ids,\n };\n};\n\nconst reduxConnect = connect(mapStateToProps);\n\nconst enhancer = compose>(\n WithSessionStorage('banners'),\n reduxConnect,\n);\n\nexport default enhancer;\n","import React, { useCallback } from 'react';\n\nimport { BannerGroup } from './components';\n\nimport { BannerProps } from './banner-type';\nimport enhancer from './banner-enhancer';\n\nconst banner: React.FC = React.memo(({ ids, onLoaded, sessionData, updateSessionData }: BannerProps) => {\n const onClose = useCallback(\n (id: string) => {\n if (!id) {\n return;\n }\n\n const bannerState =\n sessionData && sessionData.bannersState\n ? sessionData.bannersState.find(b => b.bannerId === id)\n : undefined;\n if (bannerState) {\n bannerState.isClosed = true;\n updateSessionData(sessionData);\n } else {\n updateSessionData({\n bannersState: [\n ...(sessionData && sessionData.bannersState ? sessionData.bannersState : []),\n { bannerId: id, isClosed: true },\n ],\n });\n }\n },\n [sessionData, updateSessionData],\n );\n\n if (!ids || ids.length === 0) {\n return ;\n }\n\n let filteredId;\n if (sessionData && sessionData.bannersState) {\n filteredId = ids.filter(i => sessionData.bannersState.findIndex(b => b.bannerId === i && b.isClosed) === -1);\n } else {\n filteredId = ids;\n }\n\n if (!filteredId.length) {\n return ;\n }\n\n return (\n \n );\n});\n\nexport const Banner = enhancer(banner);\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { Container, Breadcrumb as BaseBreadcrumb } from 'vendors/semantic-ui';\nimport { Link } from 'react-router-dom';\n\nimport { RootState } from '../../redux/store';\nimport { NavigationElement } from '../../models';\n\nimport styles from './breadcrumb-component.module.css';\n\ninterface Section {\n href?: string;\n content?: string;\n active: boolean;\n link: boolean;\n}\n\nexport const Breadcrumb: React.FC = React.memo(() => {\n const currentPage = useSelector(state => state.navigation.currentPage);\n\n if (!currentPage) {\n return ;\n }\n\n const sections: Section[] = [];\n\n let navigationTree: NavigationElement | undefined = currentPage;\n do {\n if (navigationTree.name && !navigationTree.isModule) {\n sections.push({\n content: navigationTree.name,\n href: navigationTree.path,\n active: navigationTree.path === currentPage.path,\n link: navigationTree.path !== currentPage.path,\n });\n }\n\n navigationTree = navigationTree.parent;\n } while (navigationTree);\n\n return (\n
\n \n \n {sections.reverse().map((s, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n {s.href && !s.active && (\n \n \n {s.content}\n \n \n \n )}\n {s.active && }\n \n );\n })}\n \n \n
\n );\n});\n","import * as React from 'react';\n\nimport { PageTitle } from 'modules/shared-ui/components';\n\nimport { ErrorMessageProps } from './error-message-type';\n\nimport styles from './error-message-component.module.css';\n\nexport const ErrorMessage: React.FC = React.memo(\n ({ error, title = 'Une erreur est survenue' }: ErrorMessageProps) => {\n return (\n
\n
\n \n
\n
{error}
\n
\n
\n
\n );\n },\n);\n","import * as React from 'react';\nimport { ErrorMessage } from '../error-message';\n\nexport interface ErrorBoundaryState {\n isError: boolean;\n errorInfo: React.ErrorInfo | null;\n}\n\nexport class ErrorBoundary extends React.Component<{}, ErrorBoundaryState> {\n constructor(p: {}) {\n super(p);\n this.state = { isError: false, errorInfo: null };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void {\n this.setState({ isError: true, errorInfo });\n }\n\n render(): React.ReactNode {\n const { isError, errorInfo } = this.state;\n const { children } = this.props;\n\n if (isError) {\n const errorMessage = errorInfo ? errorInfo.componentStack : 'Error without info';\n return ;\n }\n\n return children;\n }\n}\n","import React, { useState, useEffect } from 'react';\n\nimport styles from './back-to-top-component.module.css';\n\nexport const BackToTop: React.FC = () => {\n const [visible, setVisible] = useState(false);\n\n const handleScroll = (): void => {\n if (window.pageYOffset > 300) {\n setVisible(true);\n } else {\n setVisible(false);\n }\n };\n\n useEffect(() => {\n window.addEventListener('scroll', handleScroll);\n return () => window.removeEventListener('scroll', handleScroll);\n }, []);\n\n const scrollToTop = (): void => {\n window.scroll({\n top: 0,\n behavior: 'smooth',\n });\n };\n\n return (\n
\n {visible &&
\n );\n};\n","import { PureComponent } from 'react';\n\nimport { ScrollRestorationProps } from './scroll-restoration-type';\n\nimport enhancer from './scroll-restoration-enhancer';\n\nclass InnerScrollRestoration extends PureComponent {\n componentDidMount = () => {\n window.scrollTo(0, 0);\n };\n\n componentDidUpdate = ({ location: prevLocation }: ScrollRestorationProps) => {\n const { location } = this.props;\n if (location.pathname !== prevLocation.pathname) window.scrollTo(0, 0);\n };\n\n render = () => {\n const { children } = this.props;\n return children;\n };\n}\n\nexport const ScrollRestoration = enhancer(InnerScrollRestoration);\n","import { withRouter } from 'react-router-dom';\n\nconst enhancer = withRouter;\nexport default enhancer;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { getCatalogueCDNUrl } from '../../utils';\n\nimport { Props } from './logo-type';\n\nimport styles from './logo-component.module.css';\n\nexport const Logo: React.FC = ({ maxWidth, maxHeight, noMargin, alignLeft, onLoaded }: Props) => {\n const inlineStyle: React.CSSProperties = {\n maxWidth: maxWidth || 245,\n };\n\n if (maxHeight) {\n inlineStyle.maxHeight = `${maxHeight}px`;\n }\n\n if (noMargin) {\n inlineStyle.marginTop = 0;\n inlineStyle.marginBottom = 0;\n }\n\n if (alignLeft) {\n inlineStyle.marginLeft = 0;\n }\n\n return (\n
\n
\n \n \n \"Site\n \n
Mariage et Cadeaux en toutes occasions
\n \n
\n
\n );\n};\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\nimport { config } from '../../../../config';\n\nimport { SEOProps } from './seo-type';\nimport { concatUrl } from '../../utils';\n\nexport const SEO: React.FC = ({\n pageTitle,\n pageTitleSuffix,\n disablePageTitleSuffix,\n description,\n keywords,\n img,\n}: SEOProps) => {\n let fullPageTitle = pageTitle;\n if (fullPageTitle && !disablePageTitleSuffix) {\n fullPageTitle = `${fullPageTitle} | ${pageTitleSuffix || config.seo.titleSuffix}`;\n }\n\n return (\n \n {fullPageTitle || config.seo.title}\n \n 0 ? keywords.join(',') : config.seo.keywords}\n />\n \n \n \n \n \n \n \n \n \n \n\n {/* OPEN GRAPH */}\n \n \n \n \n \n \n );\n};\n","import React from 'react';\n\nexport const UnknownContent: React.FC = () => Template non trouvée;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { Dimmer, Loader } from 'vendors/semantic-ui';\n\nimport { RootState } from '../../redux/store';\n\nexport const LogoutProgressMessage: React.FC = () => {\n const logoutRequested = useSelector(state => state.authentication.logoutRequested);\n if (logoutRequested) {\n return (\n \n Déconnexion...\n \n );\n }\n\n return ;\n};\n","import React, { Component } from 'react';\nimport { render } from 'react-dom';\n\nimport { config } from 'config';\nimport { HtmlContainer } from 'modules/shared-ui/components';\n\nimport { MapProps } from './map-type';\n\nimport styles from './map-component.module.css';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare const google: any;\n\nconst createInfoWindow = (e: google.maps.MapMouseEvent, map: google.maps.Map, content: string): void => {\n const infoWindow = new google.maps.InfoWindow({\n content: '
',\n position: { lat: e.latLng.lat(), lng: e.latLng.lng() },\n });\n infoWindow.addListener('domready', () => {\n render(, document.getElementById('infoWindow'));\n });\n infoWindow.open(map);\n};\n\nclass Map extends Component {\n constructor(props: MapProps) {\n super(props);\n this.onScriptLoad = this.onScriptLoad.bind(this);\n }\n\n componentDidMount(): void {\n if (typeof google === 'undefined') {\n const s = document.createElement('script');\n s.type = 'text/javascript';\n s.src = `https://maps.google.com/maps/api/js?key=${config.apiKey.googleMap}`;\n const x = document.getElementsByTagName('script')[0];\n if (x && x.parentNode) {\n x.parentNode.insertBefore(s, x);\n // Below is important.\n // We cannot access google.maps until it's finished loading\n s.addEventListener('load', () => {\n this.onScriptLoad();\n });\n }\n } else {\n this.onScriptLoad();\n }\n }\n\n onScriptLoad(): void {\n const { id, options, markers } = this.props;\n const map = new google.maps.Map(document.getElementById(id), {\n ...options,\n mapTypeId: google.maps.MapTypeId.ROADMAP,\n mapTypeControl: true,\n });\n if (markers && markers.length > 0) {\n markers.forEach(m => {\n const { title, lat, lng, content, icon } = m;\n\n const marker = new google.maps.Marker({\n position: { lat, lng },\n map,\n title,\n icon,\n });\n\n if (content) {\n marker.addListener('click', (e: google.maps.MapMouseEvent) => {\n createInfoWindow(e, map, content);\n });\n }\n });\n }\n }\n\n render(): React.ReactNode {\n const { id } = this.props;\n return
;\n }\n}\n\nexport { Map };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contenu-container\":\"image-container-component_contenu-container__3Rf1D\",\"blockImg\":\"image-container-component_blockImg__2B0Pm\",\"backgroundColor\":\"image-container-component_backgroundColor__2Phss\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"htmlContainer\":\"html-container-component_htmlContainer__2tUx3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rootContainer\":\"error-message-component_rootContainer__2HayT\",\"container\":\"error-message-component_container__1JEoj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headerLogo\":\"logo-component_headerLogo__jy_Us\",\"logoLink\":\"logo-component_logoLink__2ZuxK\",\"subtext\":\"logo-component_subtext__1bClu\"};","import React from 'react';\nimport { Container } from 'vendors/semantic-ui';\nimport { Header, Footer, Breadcrumb, BackToTop } from '../../components';\n\nimport styles from './default-layout.module.css';\n\nexport const DefaultLayout: React.FC = ({ children }) => {\n return (\n \n \n
\n \n \n {children}\n \n
\n \n );\n};\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { StaticContext } from 'react-router';\nimport { Container, Responsive, Icon, Sidebar } from 'vendors/semantic-ui';\n\nimport { configUI } from 'config';\nimport { RootState } from 'modules/shared/redux/store';\nimport { useRouter } from 'modules/shared/hooks';\n\nimport { Props } from './sidebar-layout-type';\n\nimport styles from './sidebar-layout.module.css';\n\nexport const SidebarLayout: React.FC = ({ mobileHeaderComponent, sideComponent, contentComponent }: Props) => {\n const { history, location } = useRouter<{}, StaticContext, { sidebarVisibility?: boolean }>();\n const toggleVisibility = (visibility: boolean): void => {\n history.replace({ ...location, state: { ...location.state, sidebarVisibility: visibility } });\n };\n\n const headerHeight = useSelector(state => {\n return state && state.layout ? state.layout.headerHeight : 0;\n });\n\n const visibility: boolean = location && location.state && !!location.state.sidebarVisibility;\n\n return (\n \n \n \n
\n \n {sideComponent}\n
\n
{contentComponent}
\n
\n \n \n \n
\n \n \n toggleVisibility(!visibility)}\n />\n {sideComponent}\n
\n \n {mobileHeaderComponent}\n {contentComponent}\n
\n \n
\n );\n};\n","import { useState } from 'react';\n\ninterface UseHoverProps {\n hovered: boolean;\n bind: {\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n };\n}\n\nexport const useHover = (): UseHoverProps => {\n const [hovered, set] = useState(false);\n return {\n hovered,\n bind: {\n onMouseEnter: () => set(true),\n onMouseLeave: () => set(false),\n },\n };\n};\n","import { LocationState } from 'history';\nimport { Context, useContext, useEffect } from 'react';\nimport { __RouterContext, RouteComponentProps, StaticContext } from 'react-router';\nimport { useForceUpdate } from './use-force-update';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyContext = Context>;\n\nconst MISSING_CONTEXT_ERROR: Error = new Error('useReactRouter may only be called within a context.');\n\nexport const useRouter = <\n P extends { [K in keyof P]?: string } = {},\n C extends StaticContext = StaticContext,\n S = LocationState\n>(): RouteComponentProps => {\n const context: RouteComponentProps = useContext>(\n (__RouterContext as AnyContext) as Context>,\n );\n if (!context) {\n throw MISSING_CONTEXT_ERROR;\n }\n\n const forceUpdate: VoidFunction = useForceUpdate();\n useEffect((): VoidFunction => context.history.listen(forceUpdate), [context, forceUpdate]);\n return context;\n};\n","import { useCallback, useState } from 'react';\n\nexport const useForceUpdate = (): (() => void) => {\n const [, dispatch] = useState<{}>(Object.create(null));\n\n const memoizedDispatch = useCallback((): void => {\n dispatch(Object.create(null));\n }, [dispatch]);\n return memoizedDispatch;\n};\n","import { useState, useEffect, useRef } from 'react';\n\nexport const useInfiniteScroll = (callback: VoidFunction): [boolean, React.Dispatch>] => {\n const [isFetching, setIsFetching] = useState(false);\n // const latestCallback = useRef(callback);\n const latestFetching = useRef(isFetching);\n\n useEffect(() => {\n const handleScroll = (): void => {\n if (\n Math.ceil(window.innerHeight + window.scrollY) < document.documentElement.scrollHeight ||\n latestFetching.current\n ) {\n return;\n }\n setIsFetching(true);\n };\n\n window.addEventListener('scroll', handleScroll);\n return () => window.removeEventListener('scroll', handleScroll);\n }, []);\n\n useEffect(() => {\n if (!isFetching) return;\n callback();\n setIsFetching(false);\n }, [isFetching, callback]);\n\n return [isFetching, setIsFetching];\n};\n\nexport default useInfiniteScroll;\n","import { useState, useCallback, useEffect } from 'react';\nimport { useInfiniteScroll } from './use-infinite-scroll';\n\nexport const useInfiniteScrollPaging = (\n items: T[],\n pagination: number,\n triggerServerPaginationCommand?: VoidFunction,\n): [T[]] => {\n const [itemList, setItemList] = useState([]);\n\n const [count, setCount] = useState(0);\n\n useEffect(() => {\n setItemList(Array.from(Array(count).keys(), n => items[n]));\n }, [items, count]);\n\n useEffect(() => {\n setCount(items.length < pagination ? items.length : pagination);\n }, [items, pagination]);\n\n const loadMoreItems = useCallback((): void => {\n if (count < items.length) {\n const addCount = count + pagination < items.length ? pagination : items.length - count;\n const newcount = count + addCount;\n setCount(newcount);\n } else if (triggerServerPaginationCommand) {\n triggerServerPaginationCommand();\n }\n }, [items, count, pagination, triggerServerPaginationCommand]);\n\n useInfiniteScroll(loadMoreItems);\n return [itemList];\n};\n\nexport default useInfiniteScrollPaging;\n","import { useState, useEffect } from 'react';\n\nexport const useDebounce = (value: T, delay: number): T => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import { useState, useEffect } from 'react';\nimport { printReadyEventName } from '../utils';\n\nexport const usePrintReady = (isReadyToPrint: boolean): void => {\n const [isEventDispatched, setIsEventDispatched] = useState(false);\n\n useEffect(() => {\n if (isReadyToPrint && !isEventDispatched) {\n // -- dès que la liste de produit est disponible, on dispatch un event pour indiquer que la page est prête à être imprimée\n window.dispatchEvent(new Event(printReadyEventName));\n setIsEventDispatched(true);\n }\n }, [isReadyToPrint, isEventDispatched]);\n};\n\ninterface UseDelayedPrintReadyProps {\n dataLoaded: (isReady: boolean) => void;\n}\n\nexport const useDelayedPrintReady = (): UseDelayedPrintReadyProps => {\n const [isEventDispatched, setIsEventDispatched] = useState(false);\n const [isDataLoaded, setIsDataLoaded] = useState(false);\n\n useEffect(() => {\n if (isDataLoaded && !isEventDispatched) {\n // -- dès que la liste de produit est disponible, on dispatch un event pour indiquer que la page est prête à être imprimée\n window.dispatchEvent(new Event(printReadyEventName));\n setIsEventDispatched(true);\n }\n }, [isDataLoaded, isEventDispatched]);\n\n return {\n dataLoaded: setIsDataLoaded,\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { ComponentType } from 'react';\nimport { SEO } from 'modules/shared/components';\n\nimport { PageTitleProps, SEODescriptionProps, SEOKeywordsProps, SEOThumbnailProps } from '../../cms-base-type';\nimport { readCMSValue } from '../../utils';\n\nconst pageTitlePropsCheck = (toBeDetermined: PageTitleProps | any): toBeDetermined is PageTitleProps => {\n if ((toBeDetermined as PageTitleProps).pageTitle) {\n return true;\n }\n\n return false;\n};\n\nconst readPageTitle = (cmsDatas: any): string | undefined => {\n if (cmsDatas && pageTitlePropsCheck(cmsDatas)) {\n const pageTitle = readCMSValue(cmsDatas.pageTitle);\n if (pageTitle) {\n return pageTitle;\n }\n }\n\n return undefined;\n};\n\nconst descriptionPropsCheck = (toBeDetermined: SEODescriptionProps | any): toBeDetermined is SEODescriptionProps => {\n if ((toBeDetermined as SEODescriptionProps).seoDescription) {\n return true;\n }\n\n return false;\n};\n\nconst readDescription = (cmsDatas: any): string | undefined => {\n if (cmsDatas && descriptionPropsCheck(cmsDatas)) {\n const description = readCMSValue(cmsDatas.seoDescription);\n if (description) {\n return description;\n }\n }\n\n return undefined;\n};\n\nconst keywordsPropsCheck = (toBeDetermined: SEOKeywordsProps | any): toBeDetermined is SEOKeywordsProps => {\n if ((toBeDetermined as SEOKeywordsProps).seoKeywords) {\n return true;\n }\n\n return false;\n};\n\nconst readKeywords = (cmsDatas: any): string[] | undefined => {\n if (cmsDatas && keywordsPropsCheck(cmsDatas)) {\n const keywords = readCMSValue(cmsDatas.seoKeywords);\n if (keywords) {\n return keywords;\n }\n }\n\n return undefined;\n};\n\nconst thumbnailPropsCheck = (toBeDetermined: SEOThumbnailProps | any): toBeDetermined is SEOThumbnailProps => {\n if ((toBeDetermined as SEOThumbnailProps).seoThumbnail) {\n return true;\n }\n\n return false;\n};\n\nconst readThumbnail = (cmsDatas: any): string | undefined => {\n if (cmsDatas && thumbnailPropsCheck(cmsDatas)) {\n const thumbnail = readCMSValue(cmsDatas.seoThumbnail);\n if (thumbnail && thumbnail.length > 0) {\n return thumbnail[0].url;\n }\n }\n\n return undefined;\n};\n\nexport const WithCMSSEO =

(\n getPageTitle?: (props?: P) => string | undefined,\n disablePageTitleSuffix?: boolean,\n) => (Component: ComponentType

): React.FC

=> {\n const WithCMSSEOComponent: React.FC

= (props: P) => {\n return (\n \n \n \n \n );\n };\n\n return WithCMSSEOComponent;\n};\n","import React from 'react';\nimport { DocumentNode } from 'graphql';\n\nimport { Omit } from 'modules/shared/types/type-utils';\n\nimport { CMSQuery } from './components';\n\nexport interface WithFetchDatasFromCMSInputProps {\n onLoadingStateChange?: (state: boolean) => void;\n}\n\nexport function WithFetchDatasFromCMS(\n query: DocumentNode,\n Loader?: React.ComponentType,\n queryName?: string,\n) {\n return

(Component: React.ComponentType

) => {\n type WrapperType = Omit & WithFetchDatasFromCMSInputProps;\n const WithFetchDatasFromCMSWrapper: React.FC = ({\n onLoadingStateChange,\n ...rest\n }: WrapperType) => {\n return (\n {\n let innerData: P | null;\n if (queryName) {\n if (!payload || !payload[queryName]) {\n innerData = null;\n } else if (payload[queryName].length === 1) {\n innerData = payload[queryName][0].data;\n } else {\n innerData = payload[queryName].data;\n }\n } else {\n innerData = payload;\n }\n\n return innerData;\n }}\n render={data => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ;\n }}\n />\n );\n };\n\n return WithFetchDatasFromCMSWrapper;\n };\n}\n","import React from 'react';\nimport { DocumentNode } from 'graphql';\n\nimport { Omit } from 'modules/shared/types/type-utils';\n\nimport { CMSQuery } from './components';\n\nexport interface WithFetchDatasByIdFromCMSInputProps {\n id: string;\n onLoadingStateChange?: (state: boolean) => void;\n}\n\nexport function WithFetchDatasByIdFromCMS(\n query: DocumentNode,\n Loader?: React.ComponentType,\n queryName?: string,\n additionalFilterPaths?: { name: string; filter: string }[],\n includeIdInFilters?: boolean,\n) {\n return

(Component: React.ComponentType

) => {\n type WrapperType = Omit & WithFetchDatasByIdFromCMSInputProps;\n const WithFetchDatasFromCMSWrapper: React.FC = ({\n id,\n onLoadingStateChange,\n ...rest\n }: WrapperType) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const variable: any = {};\n if (additionalFilterPaths && additionalFilterPaths.length > 0) {\n additionalFilterPaths.forEach(f => {\n if (includeIdInFilters) {\n variable[f.name] = f.filter.replace('$id', id);\n } else {\n variable[f.name] = f.filter;\n }\n });\n }\n\n if (!includeIdInFilters) {\n variable.id = id;\n }\n\n return (\n {\n let innerData: P | null;\n if (queryName) {\n if (!payload || !payload[queryName]) {\n innerData = null;\n } else if (includeIdInFilters) {\n if (payload[queryName].length === 0) {\n innerData = null;\n } else {\n innerData = payload[queryName][0].data;\n }\n } else {\n innerData = payload[queryName].data;\n }\n } else {\n innerData = payload;\n }\n\n return innerData;\n }}\n render={data => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ;\n }}\n />\n );\n };\n\n return WithFetchDatasFromCMSWrapper;\n };\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"img\":\"cta-image-component_img__34LaU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"separator\":\"separator-component_separator__3l2TC\",\"mask\":\"separator-component_mask__1j50C\"};","import { Action, AnyAction } from 'redux';\nimport { ThunkAction, ThunkDispatch } from 'redux-thunk';\nimport { LightListElement, LightList } from '../../../../models';\nimport { currentListService } from '../../../../services/API/backend';\nimport { ListState } from '..';\n\nconst REQUEST_REFRESH_LIST = 'REQUEST_REFRESH_LIST';\nconst SUCCESS_REFRESH_LIST = 'SUCCESS_REFRESH_LIST';\nconst ERROR_REFRESH_LIST = 'ERROR_REFRESH_LIST';\n\ninterface RequestRefreshListAction extends Action {\n type: typeof REQUEST_REFRESH_LIST;\n}\n\ninterface SuccessRefreshListAction extends Action {\n type: typeof SUCCESS_REFRESH_LIST;\n payload: { updatedElements: LightListElement[] };\n}\n\ninterface ErrorRefreshListAction extends Action {\n type: typeof ERROR_REFRESH_LIST;\n payload: { error: Error };\n}\n\nexport type RefreshListAction = RequestRefreshListAction | SuccessRefreshListAction | ErrorRefreshListAction;\n\n// Action creators\nconst requestAction = (): RequestRefreshListAction => {\n return { type: REQUEST_REFRESH_LIST };\n};\n\nconst successAction = (updatedElements: LightListElement[]): SuccessRefreshListAction => {\n return {\n type: SUCCESS_REFRESH_LIST,\n payload: {\n updatedElements,\n },\n };\n};\n\nconst failureAction = (error: Error): ErrorRefreshListAction => {\n return {\n type: ERROR_REFRESH_LIST,\n payload: {\n error,\n },\n };\n};\n\nconst refreshListAction = (): ThunkAction, {}, {}, RefreshListAction> => {\n return async (dispatch: ThunkDispatch<{}, {}, RefreshListAction>): Promise => {\n return new Promise(async (resolve, reject) => {\n dispatch(requestAction());\n\n try {\n const data = await currentListService.getSummary();\n dispatch(successAction(data ? data.elements : []));\n resolve();\n } catch (error) {\n dispatch(failureAction(error));\n reject(error);\n }\n });\n };\n};\n\nconst updateLocalList = (localList: LightList | null, updatedElements: LightListElement[]): LightList | null => {\n if (!updatedElements) {\n return localList;\n }\n\n if (!localList || !localList.elements) {\n return {\n elements: updatedElements,\n };\n }\n\n const outputElements: LightListElement[] = [];\n\n updatedElements.forEach(e => {\n const existingElement = localList.elements.find(\n ee => (ee.id && ee.id === e.id) || (ee.variantId && ee.variantId === e.variantId),\n );\n if (existingElement) {\n existingElement.id = e.id;\n existingElement.quantity = e.quantity;\n outputElements.push(existingElement);\n } else {\n outputElements.push(e);\n }\n });\n\n return { elements: outputElements.concat(localList.elements.filter(e => !e.id)) };\n};\n\nconst refreshListReducer = (state: ListState, action: AnyAction): ListState => {\n switch (action.type) {\n case REQUEST_REFRESH_LIST:\n return { ...state, isRefreshing: true };\n case SUCCESS_REFRESH_LIST:\n return {\n ...state,\n currentList: updateLocalList(state.currentList, action.payload.updatedElements),\n isRefreshing: false,\n };\n case ERROR_REFRESH_LIST:\n return { ...state, isRefreshing: false, error: action.payload.error };\n default:\n return state;\n }\n};\n\nexport const refreshListModule = {\n reducer: refreshListReducer,\n action: {\n refreshList: refreshListAction,\n },\n};\n","import { Action, AnyAction } from 'redux';\n\nimport { config } from '../../../../../../config';\n\nimport { ListState } from '../list-state';\n\nconst REFRESH_LIST_INTERVAL_START = 'REFRESH_LIST_INTERVAL_START';\nconst REFRESH_LIST_INTERVAL_END = 'REFRESH_LIST_INTERVAL_END';\n\ninterface RefreshListIntervalStartAction extends Action {\n type: typeof REFRESH_LIST_INTERVAL_START;\n payload: { callback: () => void };\n}\n\ninterface RefreshListIntervalEndAction extends Action {\n type: typeof REFRESH_LIST_INTERVAL_END;\n}\n\nexport type RefreshListIntervalAction = RefreshListIntervalStartAction | RefreshListIntervalEndAction;\n\nconst startRefreshListInterval = (callback: () => void): RefreshListIntervalStartAction => {\n return {\n type: REFRESH_LIST_INTERVAL_START,\n payload: {\n callback,\n },\n };\n};\n\nconst endRefreshListInterval = (): RefreshListIntervalEndAction => {\n return {\n type: REFRESH_LIST_INTERVAL_END,\n };\n};\n\nfunction refreshListIntervalReducer(state: ListState, action: AnyAction): ListState {\n switch (action.type) {\n case REFRESH_LIST_INTERVAL_START: {\n return {\n ...state,\n refreshInterval: setInterval(action.payload.callback, config.list.refreshInterval),\n };\n }\n case REFRESH_LIST_INTERVAL_END:\n if (state.refreshInterval) {\n clearInterval(state.refreshInterval);\n }\n return {\n ...state,\n refreshInterval: undefined,\n };\n default:\n return state;\n }\n}\n\nexport const refreshListIntervalModule = {\n action: {\n startRefreshListInterval,\n endRefreshListInterval,\n },\n reducer: refreshListIntervalReducer,\n};\n","import { FastUpsertListElement, LightList, LightListElement } from '../../../../models';\n\nexport const mergeBufferList = (\n oldBufferList: FastUpsertListElement[],\n newBufferList: FastUpsertListElement[],\n): FastUpsertListElement[] => {\n if (!newBufferList) {\n return oldBufferList;\n }\n\n if (!oldBufferList) {\n return newBufferList;\n }\n\n // On repush les éléments dans le SAS\n oldBufferList.forEach(element => {\n if (newBufferList.findIndex(b => b.variantId === element.variantId) === -1) {\n newBufferList.push(element);\n }\n });\n\n return newBufferList;\n};\n\nexport const updateBufferList = (\n currentList: LightList | null,\n bufferList: FastUpsertListElement[],\n elementsToUpdate: FastUpsertListElement[],\n): FastUpsertListElement[] => {\n if (!elementsToUpdate || elementsToUpdate.length === 0) {\n return bufferList;\n }\n\n const currentBufferList = bufferList;\n const currentElements = currentList && currentList.elements ? currentList.elements : [];\n elementsToUpdate.forEach(elementToUpdate => {\n const bufferElementIndex = currentBufferList.findIndex(e => e.variantId === elementToUpdate.variantId);\n const listElementIndex = currentElements.findIndex(e => e.variantId === elementToUpdate.variantId && !!e.id);\n if (bufferElementIndex > -1) {\n if (elementToUpdate.quantity === 0 && listElementIndex === -1) {\n currentBufferList.splice(bufferElementIndex, 1);\n } else {\n currentBufferList[bufferElementIndex] = elementToUpdate;\n }\n } else {\n currentBufferList.push(elementToUpdate);\n }\n });\n\n return currentBufferList;\n};\n\nexport const mergeLocalList = (\n currentList: LightList | null,\n elementsToUpdate: FastUpsertListElement[],\n): LightList | null => {\n if (!elementsToUpdate || elementsToUpdate.length === 0) {\n return currentList;\n }\n\n const elements = currentList && currentList.elements ? currentList.elements : [];\n\n elementsToUpdate.forEach(elementToUpdate => {\n const existingElement = elements.find(e => e.variantId === elementToUpdate.variantId);\n if (existingElement) {\n existingElement.quantity = elementToUpdate.quantity;\n } else {\n elements.push({\n quantity: elementToUpdate.quantity,\n variantId: elementToUpdate.variantId,\n reservedQuantity: 0,\n });\n }\n });\n\n return {\n elements,\n };\n};\n\nexport const updateLocalList = (localList: LightList | null, updatedElements: LightListElement[]): LightList | null => {\n if (!updatedElements) {\n return localList;\n }\n\n if (!localList || !localList.elements) {\n return {\n elements: updatedElements,\n };\n }\n\n updatedElements.forEach(e => {\n const existingElement = localList.elements.find(ee => e.variantId === ee.variantId);\n if (existingElement) {\n existingElement.id = e.id;\n existingElement.quantity = e.quantity;\n } else {\n localList.elements.push(e);\n }\n });\n\n return localList;\n};\n","import { Action, AnyAction } from 'redux';\nimport { ThunkDispatch, ThunkAction } from 'redux-thunk';\n\nimport { RootState } from '../../../store';\n\nimport { FastUpsertListElement, Error } from '../../../../models';\nimport { ListState } from '../list-state';\n\nimport { updateBufferList, mergeLocalList } from './utils';\n\nexport const SUCCESS_UPDATE_LOCAL_ELEMENTS_QUANTITY = 'SUCCESS_UPDATE_LOCAL_ELEMENTS_QUANTITY';\nconst ERROR_UPDATE_LOCAL_ELEMENTS_QUANTITY = 'ERROR_UPDATE_LOCAL_ELEMENTS_QUANTITY';\n\ninterface SuccessUpdateLocalElementsQuantityAction extends Action {\n type: typeof SUCCESS_UPDATE_LOCAL_ELEMENTS_QUANTITY;\n payload: { elements: FastUpsertListElement[] };\n}\n\ninterface ErrorUpdateLocalElementsQuantityAction extends Action {\n type: typeof ERROR_UPDATE_LOCAL_ELEMENTS_QUANTITY;\n payload: { error: Error };\n}\n\nexport type UpdateLocalElementsQuantityAction =\n | SuccessUpdateLocalElementsQuantityAction\n | ErrorUpdateLocalElementsQuantityAction;\n\nconst successAction = (elements: FastUpsertListElement[]): SuccessUpdateLocalElementsQuantityAction => {\n return {\n type: SUCCESS_UPDATE_LOCAL_ELEMENTS_QUANTITY,\n payload: {\n elements,\n },\n };\n};\n\nconst failureAction = (error: Error): ErrorUpdateLocalElementsQuantityAction => {\n return {\n type: ERROR_UPDATE_LOCAL_ELEMENTS_QUANTITY,\n payload: {\n error,\n },\n };\n};\n\nconst updateLocalElementsQuantityAction = (\n ElementsToUpdate: FastUpsertListElement[],\n): ThunkAction => {\n return (\n dispatch: ThunkDispatch,\n getState: () => RootState,\n ): void => {\n const { currentList } = getState().list;\n const currentElements = currentList ? currentList.elements : [];\n for (let index = 0; index < ElementsToUpdate.length; index += 1) {\n const currentUpdatedElement = ElementsToUpdate[index];\n const currentElement = currentElements.find(f => f.variantId === currentUpdatedElement.variantId);\n // On ne peut pas supprimer un element reservé\n if (currentElement && currentElement.reservedQuantity) {\n if (!currentElement.quantity || currentElement.reservedQuantity > currentElement.quantity) {\n dispatch(failureAction({ message: 'ITEM_RESERVED', code: 400, subCode: 32.1 }));\n }\n }\n }\n\n dispatch(successAction(ElementsToUpdate));\n };\n};\n\nconst updateLocalElementsQuantityReducer = (state: ListState, action: AnyAction): ListState => {\n switch (action.type) {\n case SUCCESS_UPDATE_LOCAL_ELEMENTS_QUANTITY:\n return {\n ...state,\n bufferList: updateBufferList(state.currentList, state.bufferList, action.payload.elements),\n currentList: mergeLocalList(state.currentList, action.payload.elements),\n };\n case ERROR_UPDATE_LOCAL_ELEMENTS_QUANTITY:\n return { ...state, error: action.payload.error };\n default:\n return state;\n }\n};\n\nexport const updateLocalElementsQuantityModule = {\n reducer: updateLocalElementsQuantityReducer,\n action: {\n updateLocalElementsQuantity: updateLocalElementsQuantityAction,\n },\n};\n","import { Action, AnyAction } from 'redux';\n\nimport { ThunkAction, ThunkDispatch } from 'redux-thunk';\n\nimport { RootState } from '../../../store';\nimport { FastUpsertListElement, Error, LightListElement } from '../../../../models';\nimport { currentListService } from '../../../../services/API/backend';\n\nimport { ListState } from '../list-state';\n\nimport { mergeBufferList, mergeLocalList, updateLocalList } from './utils';\n\nconst REQUEST_UPDATE_REMOTE_ELEMENTS_QUANTITY = 'REQUEST_UPDATE_REMOTE_ELEMENTS_QUANTITY';\nexport const SUCCESS_UPDATE_REMOTE_ELEMENTS_QUANTITY = 'SUCCESS_UPDATE_REMOTE_ELEMENTS_QUANTITY';\nexport const ERROR_UPDATE_REMOTE_ELEMENTS_QUANTITY = 'ERROR_UPDATE_REMOTE_ELEMENTS_QUANTITY';\n\ninterface RequestUpdateRemoteElementsQuantityAction extends Action {\n type: typeof REQUEST_UPDATE_REMOTE_ELEMENTS_QUANTITY;\n payload: {\n bufferList: FastUpsertListElement[];\n };\n}\n\ninterface SuccessUpdateRemoteElementsQuantityAction extends Action {\n type: typeof SUCCESS_UPDATE_REMOTE_ELEMENTS_QUANTITY;\n payload: {\n updatedElements: LightListElement[];\n };\n}\n\ninterface ErrorUpdateRemoteElementsQuantityAction extends Action {\n type: typeof ERROR_UPDATE_REMOTE_ELEMENTS_QUANTITY;\n payload: { bufferList: FastUpsertListElement[]; error: Error };\n}\n\nexport type UpdateRemoteElementsQuantityAction =\n | RequestUpdateRemoteElementsQuantityAction\n | SuccessUpdateRemoteElementsQuantityAction\n | ErrorUpdateRemoteElementsQuantityAction;\n\nconst requestAction = (bufferList: FastUpsertListElement[]): RequestUpdateRemoteElementsQuantityAction => {\n return {\n type: REQUEST_UPDATE_REMOTE_ELEMENTS_QUANTITY,\n payload: {\n bufferList,\n },\n };\n};\n\nconst successAction = (updatedElements: LightListElement[]): SuccessUpdateRemoteElementsQuantityAction => {\n return {\n type: SUCCESS_UPDATE_REMOTE_ELEMENTS_QUANTITY,\n payload: {\n updatedElements,\n },\n };\n};\n\nconst failureAction = (bufferList: FastUpsertListElement[], error: Error): ErrorUpdateRemoteElementsQuantityAction => {\n return {\n type: ERROR_UPDATE_REMOTE_ELEMENTS_QUANTITY,\n payload: {\n bufferList,\n error,\n },\n };\n};\n\nconst updateRemoteElementsQuantityAction = (): ThunkAction<\n Promise,\n RootState,\n {},\n UpdateRemoteElementsQuantityAction\n> => {\n return async (\n dispatch: ThunkDispatch,\n getState: () => RootState,\n ): Promise => {\n return new Promise(async (resolve, reject) => {\n const { bufferList } = getState().list;\n const elementsToUpdate = [...bufferList];\n\n if (!elementsToUpdate || elementsToUpdate.length === 0) {\n resolve();\n return;\n }\n\n dispatch(requestAction(elementsToUpdate));\n\n await currentListService\n .fastUpsertElements({ elements: elementsToUpdate })\n .then(updatedElements => {\n dispatch(successAction(updatedElements));\n resolve();\n })\n .catch(error => {\n dispatch(failureAction(elementsToUpdate, error));\n reject(error);\n });\n });\n };\n};\n\nconst updateRemoteElementsQuantityReducer = (state: ListState, action: AnyAction): ListState => {\n switch (action.type) {\n case REQUEST_UPDATE_REMOTE_ELEMENTS_QUANTITY:\n return {\n ...state,\n bufferList: [],\n currentList: mergeLocalList(state.currentList, action.payload.bufferList),\n isUpdating: true,\n };\n case SUCCESS_UPDATE_REMOTE_ELEMENTS_QUANTITY:\n return {\n ...state,\n currentList: updateLocalList(state.currentList, action.payload.updatedElements),\n isUpdating: false,\n };\n case ERROR_UPDATE_REMOTE_ELEMENTS_QUANTITY:\n return {\n ...state,\n error: action.payload.error,\n bufferList: mergeBufferList(state.bufferList, action.payload.bufferList),\n isUpdating: false,\n };\n default:\n return state;\n }\n};\n\nexport const updateRemoteElementsQuantityModule = {\n reducer: updateRemoteElementsQuantityReducer,\n action: {\n updateRemoteElementsQuantity: updateRemoteElementsQuantityAction,\n },\n};\n","import { Action, AnyAction } from 'redux';\n\nimport { config } from '../../../../../../config';\n\nimport { ListState } from '../list-state';\n\nconst UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_START = 'UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_START';\nconst UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_STOP = 'UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_STOP';\n\ninterface UpdateRemoteElementsQuantityTimeoutStartAction extends Action {\n type: typeof UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_START;\n payload: { callback: () => void };\n}\n\ninterface UpdateRemoteElementsQuantityTimeoutStopAction extends Action {\n type: typeof UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_STOP;\n}\n\nexport type UpdateRemoteElementsQuantityTimeoutAction =\n | UpdateRemoteElementsQuantityTimeoutStartAction\n | UpdateRemoteElementsQuantityTimeoutStopAction;\n\nconst startUpdateRemoteElementsQuantityTimeoutAction = (\n callback: () => void,\n): UpdateRemoteElementsQuantityTimeoutStartAction => {\n return {\n type: UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_START,\n payload: {\n callback,\n },\n };\n};\n\nconst stopUpdateRemoteElementsQuantityTimeoutAction = (): UpdateRemoteElementsQuantityTimeoutStopAction => {\n return {\n type: UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_STOP,\n };\n};\n\nfunction updateRemoteElementsQuantityTimeoutReducer(state: ListState, action: AnyAction): ListState {\n switch (action.type) {\n case UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_START: {\n if (state.updateTimeout) {\n clearTimeout(state.updateTimeout);\n }\n\n return {\n ...state,\n updateTimeout: setTimeout(action.payload.callback, config.list.updateTimeout),\n };\n }\n case UPDATE_REMOTE_ELEMENTS_QUANTITY_TIMEOUT_STOP: {\n if (state.updateTimeout) {\n clearTimeout(state.updateTimeout);\n }\n\n return {\n ...state,\n updateTimeout: undefined,\n };\n }\n default:\n return state;\n }\n}\n\nexport const updateRemoteElementsQuantityTimeoutModule = {\n action: {\n startUpdateRemoteElementsQuantityTimeout: startUpdateRemoteElementsQuantityTimeoutAction,\n stopUpdateRemoteElementsQuantityTimeout: stopUpdateRemoteElementsQuantityTimeoutAction,\n },\n reducer: updateRemoteElementsQuantityTimeoutReducer,\n};\n","import { Action, AnyAction } from 'redux';\nimport { ThunkAction, ThunkDispatch } from 'redux-thunk';\nimport { currentListService } from '../../../../services/API/backend';\nimport { ListState } from '..';\nimport { FastUpsertListElement, LightListElement } from '../../../../models';\nimport { bufferListService } from '../../../../services';\n\nimport { mergeLocalList, mergeBufferList, updateLocalList } from './utils';\n\nconst REQUEST_INITIALIZE_BUFFER_LIST = 'REQUEST_INITIALIZE_BUFFER_LIST';\nexport const SUCCESS_INITIALIZE_BUFFER_LIST = 'SUCCESS_INITIALIZE_BUFFER_LIST';\nconst ERROR_INITIALIZE_BUFFER_LIST = 'ERROR_INITIALIZE_BUFFER_LIST';\n\ninterface RequestInitializeBufferListAction extends Action {\n type: typeof REQUEST_INITIALIZE_BUFFER_LIST;\n payload: {\n bufferList: FastUpsertListElement[];\n };\n}\n\ninterface SuccessInitializeBufferListAction extends Action {\n type: typeof SUCCESS_INITIALIZE_BUFFER_LIST;\n payload: {\n updatedElements: LightListElement[];\n };\n}\n\ninterface ErrorInitializeBufferListAction extends Action {\n type: typeof ERROR_INITIALIZE_BUFFER_LIST;\n payload: {\n bufferList: FastUpsertListElement[];\n error: Error;\n };\n}\n\nexport type InitializeBufferListAction =\n | RequestInitializeBufferListAction\n | SuccessInitializeBufferListAction\n | ErrorInitializeBufferListAction;\n\n// Action creators\nconst requestAction = (bufferList: FastUpsertListElement[]): RequestInitializeBufferListAction => {\n return {\n type: REQUEST_INITIALIZE_BUFFER_LIST,\n payload: {\n bufferList,\n },\n };\n};\n\nconst successAction = (updatedElements: LightListElement[]): SuccessInitializeBufferListAction => {\n return {\n type: SUCCESS_INITIALIZE_BUFFER_LIST,\n payload: {\n updatedElements,\n },\n };\n};\n\nconst failureAction = (bufferList: FastUpsertListElement[], error: Error): ErrorInitializeBufferListAction => {\n return {\n type: ERROR_INITIALIZE_BUFFER_LIST,\n payload: {\n bufferList,\n error,\n },\n };\n};\n\nconst initializeBufferListAction = (\n folderId: number,\n): ThunkAction, {}, {}, InitializeBufferListAction> => {\n return async (dispatch: ThunkDispatch<{}, {}, InitializeBufferListAction>): Promise => {\n return new Promise(async (resolve, reject) => {\n const previousBufferList = bufferListService.get(folderId);\n dispatch(requestAction(previousBufferList));\n try {\n if (previousBufferList && previousBufferList.length > 0) {\n const updatedElements = await currentListService.fastUpsertElements({\n elements: previousBufferList,\n });\n dispatch(successAction(updatedElements));\n } else {\n dispatch(successAction([]));\n }\n\n resolve();\n } catch (error) {\n dispatch(failureAction(previousBufferList, error));\n reject(error);\n }\n });\n };\n};\n\nconst initializeBufferListReducer = (state: ListState, action: AnyAction): ListState => {\n switch (action.type) {\n case REQUEST_INITIALIZE_BUFFER_LIST:\n return {\n ...state,\n isUpdating: true,\n bufferList: [],\n currentList: mergeLocalList(state.currentList, action.payload.bufferList),\n };\n case SUCCESS_INITIALIZE_BUFFER_LIST:\n return {\n ...state,\n isUpdating: false,\n bufferList: [],\n currentList: updateLocalList(state.currentList, action.payload.updatedElements),\n };\n case ERROR_INITIALIZE_BUFFER_LIST:\n return {\n ...state,\n isUpdating: false,\n error: action.payload.error,\n bufferList: mergeBufferList(state.bufferList, action.payload.bufferList),\n };\n default:\n return state;\n }\n};\n\nexport const initializeBufferListModule = {\n reducer: initializeBufferListReducer,\n action: {\n initializeBufferList: initializeBufferListAction,\n },\n};\n","import { Action, AnyAction } from 'redux';\n\nimport { ListState, initialState } from '../list-state';\n\nconst SUCCESS_CLEAR_LIST = 'SUCCESS_CLEAR_LIST';\n\ninterface SuccessClearListAction extends Action {\n type: typeof SUCCESS_CLEAR_LIST;\n}\n\nexport type ClearListAction = SuccessClearListAction;\n\nconst successClearListAction = (): SuccessClearListAction => {\n return {\n type: SUCCESS_CLEAR_LIST,\n };\n};\n\nfunction clearListReducer(state: ListState, action: AnyAction): ListState {\n switch (action.type) {\n case SUCCESS_CLEAR_LIST: {\n return { ...initialState };\n }\n default:\n return state;\n }\n}\n\nexport const clearListModule = {\n action: {\n clearList: successClearListAction,\n },\n reducer: clearListReducer,\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loaderContainer\":\"global-loader-component_loaderContainer__11zWU\",\"loader\":\"global-loader-component_loader__1ec4z\",\"load7\":\"global-loader-component_load7__214Cr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userBtn\":\"user-button-component_userBtn__y0frX\",\"logged\":\"user-button-component_logged__3e_c7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"contextual-menu-component_container__lV1D-\",\"spacer\":\"contextual-menu-component_spacer__exwci\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rootContainer\":\"home-page_rootContainer__2Svfn\",\"mentions\":\"home-page_mentions__2o8sI\"};","import React from 'react';\nimport { ClassicButtonProps } from './classic-button-type';\nimport styles from './classic-button-component.module.css';\n\nexport const ClassicButton: React.FC = ({\n disabled,\n text,\n secondary,\n grey,\n onClick,\n type = 'button',\n themed = false,\n normal = false,\n}: ClassicButtonProps) => {\n let additionalClass = '';\n if (secondary) {\n additionalClass = styles.secondary;\n }\n\n if (grey) {\n additionalClass = styles.grey;\n }\n\n return (\n // eslint-disable-next-line react/button-has-type\n \n {text}\n \n );\n};\n","import React from 'react';\nimport { SubmitButtonProps } from './submit-button-type';\nimport { ClassicButton } from '../classic-button';\n\nexport const SubmitButton: React.FC = (props: SubmitButtonProps) => {\n return ;\n};\n","import React from 'react';\n\nimport styles from './link-button-component.module.css';\n\nexport const LinkButton: React.FC,\n HTMLButtonElement\n>> = ({\n className,\n ...rest\n}: React.DetailedHTMLProps, HTMLButtonElement>) => {\n return \n

\n\n
\n

\n listes.printemps.com, et les tiers sélectionnés\n , utilisent des cookies sur votre appareil pour analyser et améliorer votre expérience utilisateur,\n la navigation sur le site, notre offre de produits et services, mesurer et analyser l'audience\n et réaliser des statistiques. Pour plus d'informations sur chaque finalités, veuillez cliquer\n dans le gestionnaire ci-dessous sur les compléments d'information.\n
\n
\n Vous pouvez choisir l'usage que nous ferons de vos données en cliquant sur{' '}\n « Paramétrer ».\n
\n
\n Vous pouvez également accepter les cookies en cliquant sur « J'accepte » ou\n refuser tous les cookies qui ne sont pas strictement nécessaires au fonctionnement du site en\n cliquant sur « Continuer sans accepter ». Dans ce cas vous n'aurez plus\n accès à du contenu personnalisé basé sur votre navigation et nous ne tiendrons pas compte de votre\n usage pour améliorer notre site.\n
\n
\n Vous pourrez mettre à jour votre choix à tout moment en cliquant sur le lien{' '}\n Gestion des cookies en bas de notre site.\n
\n
\n Pour plus d'information, consultez notre Politique de gestion des cookies.\n

\n
\n
\n \n \n
\n \n );\n};\n\nexport const ConsentBanner = enhancer(InnerConsentBanner);\n","import { Dispatch } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { RootState } from '../../../redux/store';\nimport { tracerModule } from '../../../redux';\nimport { TracerConsent } from '../../../models/tracer';\n\nimport { TracerAdminPanelStateProps, TracerAdminPanelDispatchProps } from './tracer-admin-panel-type';\n\nconst mapStateToProps = (states: RootState): TracerAdminPanelStateProps => {\n const subState = states.tracer;\n return {\n isVisible: subState && subState.adminPanelEnabled,\n consents: subState && subState.consents ? subState.consents : [],\n };\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch): TracerAdminPanelDispatchProps => ({\n acceptAll: () => dispatch(tracerModule.action.consents.acceptAll()),\n rejectAll: () => dispatch(tracerModule.action.consents.rejectAll()),\n updateAllConsents: (consents: TracerConsent[]) => dispatch(tracerModule.action.consents.updateAll(consents)),\n hideAdminPanel: () => dispatch(tracerModule.action.adminPanel.hide()),\n});\n\nconst reduxConnect = connect(\n mapStateToProps,\n mapDispatchToProps,\n);\n\nconst enhancer = reduxConnect;\n\nexport default enhancer;\n","import React, { useState } from 'react';\nimport { Modal, Checkbox } from 'vendors/semantic-ui';\nimport { HashLink } from 'react-router-hash-link';\nimport { TracerTypeValues } from '../../../models/tracer';\nimport { TracerAdminPanelProps } from './tracer-admin-panel-type';\nimport enhancer from './tracer-admin-panel-enhancer';\n\nimport tracerLabels from '../tracer.json';\n\nimport styles from './tracer-admin-panel-component.module.css';\n\nconst InnerTracerAdminPanel: React.FC = ({\n isVisible,\n consents,\n acceptAll,\n rejectAll,\n updateAllConsents,\n hideAdminPanel,\n}: TracerAdminPanelProps) => {\n const [localConsents, setlocalConsents] = useState(consents);\n\n if (!isVisible) {\n return ;\n }\n\n return (\n \n Gérer les préférences de cookies\n \n

\n Lorsque vous consultez notre site Web, des données peuvent être stockées dans votre navigateur ou\n récupérées à partir de celui-ci par listes.printemps.com, généralement sous la forme de cookies. Ils\n peuvent être activés par nos équipes, ou par des tiers dont les services sont utilisés sur les pages\n de notre site Web. Ces informations peuvent porter sur vous, sur vos préférences ou sur votre\n appareil et sont principalement utilisés pour s'assurer que le site Web fonctionne\n correctement. Les informations ne permettent généralement pas de vous indentifier directement, mais\n peuvent vous permettre de bénéficier d'une expérience Web personnalisée.\n
\n
\n Parce que nous respectons votre droit à la vie privée, nous vous donnons la possibilité de ne pas\n autoriser certains types de cookies qui ne sont pas strictement nécessaires au fonctionnement du\n site.\n
\n
\n Cliquez sur les différentes catégories pour obtenir plus de détails sur chacune d'entre elles,\n et modifier les paramètres par défaut. Toutefois, si vous bloquez certains types de cookies, votre\n expérience de navigation et les services que nous sommes en mesure de vous offrir peuvent être\n impactés.\n
\n
\n Pour plus d'information, consultez notre{' '}\n \n \n Politique de gestion des cookies\n \n \n .\n

\n
\n {Object.values(TracerTypeValues)\n .filter(tr => tr !== TracerTypeValues.UKNOWN)\n .map(tracer => {\n // Pour compiler\n if (!tracer) {\n return ;\n }\n const consent = localConsents ? localConsents.find(c => c.type === tracer) : undefined;\n return (\n
\n \n {tracerLabels[tracer].title}\n \n {\n if (consent) {\n consent.value = data.checked;\n setlocalConsents([...localConsents]);\n }\n }}\n />\n
\n );\n })}\n
\n
\n \n \n {\n updateAllConsents(consents);\n hideAdminPanel();\n }}\n >\n Enregister\n \n \n \n
\n );\n};\n\nexport const TracerAdminPanel = enhancer(InnerTracerAdminPanel);\n","export * from './history';\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"header-component_header__2Xqa3\",\"bannerContainer\":\"header-component_bannerContainer__3gMi9\",\"root\":\"header-component_root__1zThK\",\"headerContainer\":\"header-component_headerContainer__3TKh_\",\"headerContent\":\"header-component_headerContent__3t3CJ\",\"headerCenter\":\"header-component_headerCenter__Hg8gg\",\"headerLeft\":\"header-component_headerLeft__3ozg1\",\"headerRight\":\"header-component_headerRight__sXAcJ\",\"rightActionsContainer\":\"header-component_rightActionsContainer__3NGLH\",\"searchForm\":\"header-component_searchForm__3JtrF\",\"searchBtn\":\"header-component_searchBtn__1SIM0\",\"closeSearchBtn\":\"header-component_closeSearchBtn__J4ocx\",\"searchInput\":\"header-component_searchInput__1iY7d\",\"sideBarContent\":\"header-component_sideBarContent__1kkEF\",\"headerRightContent\":\"header-component_headerRightContent__3HLJB\",\"menuBtn\":\"header-component_menuBtn__1lI9_\",\"active\":\"header-component_active__RIUYA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"errorImgContainer\":\"loadable-image-component_errorImgContainer__22M4r\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partHr\":\"light-separator-component_partHr__N-c2V\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"link-button\":\"link-button-component_link-button__1YX-S\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mentions\":\"container-component_mentions__BJzDr\"};","module.exports = \"data:image/png;base64,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\"","import { structureService as cmsStructureService } from './API/cms';\nimport { structureService as catalogueStructureService } from './API/backend';\nimport { Structure as GlobalStructure, Node as GlobalNode } from '../models';\nimport { Structure as CatalogueStructure, Node as CatalogueNode } from './API/backend/internal-models';\n\nimport { createPath, createPathId } from '../utils';\n\nconst convertCatalogueNodesToGlobalNodes = (catalogueNodes: CatalogueNode[], type: number): GlobalNode[] => {\n const result: GlobalNode[] = [];\n\n if (!catalogueNodes || catalogueNodes.length === 0) {\n return result;\n }\n\n for (let i = 0; i < catalogueNodes.length; i += 1) {\n const catalogueNode = catalogueNodes[i];\n\n const namePath = createPath(catalogueNode.name);\n\n result.push({\n name: catalogueNode.name,\n path: namePath,\n pathId: `${createPathId(namePath, catalogueNode.id)}`,\n nodes: convertCatalogueNodesToGlobalNodes(catalogueNode.nodes, type),\n isDynamic: true,\n });\n }\n\n return result;\n};\n\nconst nodesEnhancer = {\n enhance: (node: GlobalNode, catalogueStructure: CatalogueStructure | undefined): GlobalNode[] => {\n const result: GlobalNode[] = [];\n if (!node) {\n return result;\n }\n\n const currentNode = node;\n const enhancedNodes = nodesEnhancer.enhanceMany(node.nodes, catalogueStructure);\n let additionalNodes: GlobalNode[] | undefined;\n\n if (!currentNode.isCMS) {\n switch (currentNode.contentTemplate) {\n case 'CatalogueEntry':\n case 'CreationListeEntry':\n case 'PartenairesEntry':\n case 'DonsEntry':\n case 'EspacePersoEntry':\n case 'MariageEntry':\n case 'SignEntry':\n case 'ListesEntry':\n // Entrée de module\n currentNode.isModuleEntry = true;\n break;\n case 'UniverseEntry':\n // On pousse la sous hierarchie\n currentNode.isSubModuleEntry = true;\n if (catalogueStructure && catalogueStructure.universes) {\n additionalNodes = convertCatalogueNodesToGlobalNodes(catalogueStructure.universes, 1);\n }\n break;\n case 'BrandEntry':\n // On pousse la sous hierarchie\n if (catalogueStructure && catalogueStructure.brands) {\n additionalNodes = convertCatalogueNodesToGlobalNodes(catalogueStructure.brands, 2);\n }\n break;\n // Autres cas\n default:\n break;\n }\n }\n\n currentNode.nodes = [];\n if (additionalNodes && additionalNodes.length > 0) {\n currentNode.nodes = currentNode.nodes.concat(additionalNodes);\n }\n\n if (enhancedNodes && enhancedNodes.length > 0) {\n currentNode.nodes = currentNode.nodes.concat(enhancedNodes);\n }\n\n result.push(currentNode);\n\n return result;\n },\n\n enhanceMany: (\n nodes: GlobalNode[] | undefined,\n catalogueStructure: CatalogueStructure | undefined,\n ): GlobalNode[] | undefined => {\n if (!nodes || nodes.length === 0) {\n return nodes;\n }\n\n let finalResult: GlobalNode[] = [];\n for (let i = 0; i <= nodes.length; i += 1) {\n const enhancedNodes = nodesEnhancer.enhance(nodes[i], catalogueStructure);\n if (enhancedNodes) {\n finalResult = finalResult.concat(enhancedNodes);\n }\n }\n\n return finalResult;\n },\n};\n\nexport const structureService = {\n get: async (): Promise => {\n // On récupère les hierarchies depuis les différents systèmes\n const structures = await Promise.all([cmsStructureService.get(), catalogueStructureService.get()]);\n if (!structures[0]) {\n return structures[0];\n }\n\n structures[0].sectionNodes = nodesEnhancer.enhanceMany(structures[0].sectionNodes, structures[1]);\n return structures[0];\n },\n};\n","import { authenticationService } from './API/backend';\nimport { LightFolder, AuthToken, AuthenticationResult, RegisterFolder } from '../models';\n\nconst storageKey = 'backend_access_token';\n\nexport const contextService = {\n getLoggedInUserInfos: async (): Promise<{ folder: LightFolder; token: AuthToken } | undefined> => {\n const alreadyLoggedInUserTokenStr = localStorage.getItem(storageKey);\n if (!alreadyLoggedInUserTokenStr) {\n return undefined;\n }\n\n const loggedInFolder = await authenticationService.getLoggedInUser();\n const authToken = JSON.parse(alreadyLoggedInUserTokenStr) as AuthToken;\n if (authToken.expiration) {\n authToken.expiration = new Date(authToken.expiration);\n }\n\n return { folder: loggedInFolder, token: authToken };\n },\n\n authenticateInternalUser: async (folderIdOrEmail: string, password: string): Promise => {\n const result = await authenticationService.authenticateInternalUser(folderIdOrEmail, password);\n const token: AuthToken = { value: result.accessToken, expiration: result.expireAt, isValid: () => true };\n localStorage.setItem(storageKey, JSON.stringify(token));\n return result;\n },\n\n registerInternalUser: async (registerFolderInfos: RegisterFolder): Promise => {\n const result = await authenticationService.registerInternalUser(registerFolderInfos);\n const token: AuthToken = { value: result.accessToken, expiration: result.expireAt, isValid: () => true };\n localStorage.setItem(storageKey, JSON.stringify(token));\n return result;\n },\n\n logout: (): void => {\n localStorage.removeItem(storageKey);\n },\n};\n","import { FastUpsertListElement } from '../models';\n\nexport const bufferListService = {\n update: (folderId: number, bufferList: FastUpsertListElement[]) => {\n if (bufferList && bufferList.length > 0) {\n localStorage.setItem(`${folderId}_bufferList`, JSON.stringify(bufferList));\n } else {\n localStorage.removeItem(`${folderId}_bufferList`);\n }\n },\n get: (folderId: number): FastUpsertListElement[] => {\n const previousBufferListStr = localStorage.getItem(`${folderId}_bufferList`);\n if (previousBufferListStr) {\n return JSON.parse(previousBufferListStr) as FastUpsertListElement[];\n }\n\n return [];\n },\n};\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet datas: { key: string; payload: any; persistOnRouteChange?: boolean }[] = [];\n\nexport const cacheQueryService = {\n cache: (key: string, query: () => Promise, persistOnRouteChange?: boolean): (() => Promise | T) => {\n return async () => {\n const cache = datas.find(f => f.key === key);\n if (cache) {\n return cache.payload;\n }\n\n const data = await query();\n\n datas.push({ key, payload: data, persistOnRouteChange });\n return data;\n };\n },\n cacheWithParams: (\n key: string,\n query: (params: U) => Promise,\n persistOnRouteChange?: boolean,\n ): ((params: U) => Promise | T) => {\n return async (params: U) => {\n const fullKey = `${key}_${JSON.stringify(params)}`;\n const cache = datas.find(f => f.key === fullKey);\n if (cache) {\n return cache.payload;\n }\n\n const data = await query(params);\n\n datas.push({ key: fullKey, payload: data, persistOnRouteChange });\n return data;\n };\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n clearRouteCache: () => {\n datas = datas.filter(d => d.persistOnRouteChange);\n },\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breadcrumb-container\":\"breadcrumb-component_breadcrumb-container__1UJrO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn\":\"back-to-top-component_btn__20D2z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"map\":\"map-component_map__3MwVw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mainContainer\":\"default-layout_mainContainer__3Towq\",\"breadcrumbLanguageSelectionContainer\":\"default-layout_breadcrumbLanguageSelectionContainer__bg3B8\",\"languageSelectionContainer\":\"default-layout_languageSelectionContainer__2YOGt\"};","import { FetchState, LoadingState } from '../../utils/type';\nimport { fetchModuleFactory } from '../../utils/fetch-module-factory';\nimport { Structure } from '../../../models';\n\nexport interface FetchStructureState extends FetchState, LoadingState {}\nexport const structureModule = fetchModuleFactory('structure', true);\n","import { Reducer, AnyAction } from 'redux';\nimport { ThunkAction, ThunkDispatch } from 'redux-thunk';\nimport { LOCATION_CHANGE } from 'connected-react-router';\nimport { Module, FetchState, FetchActionDescriptor } from './type';\nimport { globalLoaderModule } from '../modules/global-loader';\n\nexport function fetchModuleFactory(\n type: string,\n isGlobalLoading: boolean,\n resetOnRouteChange?: boolean,\n): Module, FetchActionDescriptor, {}, {}, AnyAction>>> {\n const REQUEST = `REQUEST_${type.toUpperCase()}`;\n const SUCCESS = `SUCCESS_${type.toUpperCase()}`;\n const ERROR = `ERROR_${type.toUpperCase()}`;\n\n // Action creators\n const requestAction = (): AnyAction => {\n return { type: REQUEST };\n };\n\n const successAction = (data: T): AnyAction => {\n return {\n type: SUCCESS,\n data,\n };\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const failureAction = (error: any): AnyAction => {\n return {\n type: ERROR,\n error,\n };\n };\n\n const fetchAction = (remoteFetchAction: () => Promise): ThunkAction, {}, {}, AnyAction> => {\n return async (dispatch: ThunkDispatch<{}, {}, AnyAction>): Promise => {\n return new Promise(async (resolve, reject) => {\n if (isGlobalLoading) {\n dispatch(globalLoaderModule.action.showLoading());\n }\n\n dispatch(requestAction());\n\n try {\n const data = await remoteFetchAction();\n dispatch(successAction(data));\n resolve();\n } catch (error) {\n dispatch(failureAction(error));\n reject(error);\n } finally {\n if (isGlobalLoading) {\n dispatch(globalLoaderModule.action.hideLoading());\n }\n }\n });\n };\n };\n\n const initialState: FetchState = {\n data: null,\n error: null,\n isLoading: false,\n };\n\n const reducer: Reducer = (state: FetchState = initialState, action: AnyAction): FetchState => {\n switch (action.type) {\n case LOCATION_CHANGE:\n if (resetOnRouteChange) {\n return { ...state, isLoading: false, data: null, error: null };\n }\n return state;\n case REQUEST:\n return { ...state, isLoading: true };\n case SUCCESS:\n return { ...state, isLoading: false, data: action.data };\n case ERROR:\n return { ...state, isLoading: false, error: action.error };\n default:\n return state;\n }\n };\n\n return {\n reducer,\n action: {\n fetchAction,\n },\n storeName: type,\n };\n}\n","import { AnyAction } from 'redux';\nimport { Module } from '../../utils/type';\n\nimport { NavigationElement } from '../../../models';\n\nexport const UPDATE_NAVIGATION = 'UPDATE_NAVIGATION';\n\nconst updateNavigation = (data?: NavigationElement): AnyAction => {\n return {\n type: UPDATE_NAVIGATION,\n payload: {\n currentPage: data,\n },\n };\n};\n\nfunction navigationReducer(state: NavigationState = { currentPage: undefined }, action: AnyAction): NavigationState {\n switch (action.type) {\n case UPDATE_NAVIGATION:\n return { ...state, currentPage: action.payload.currentPage };\n default:\n return state;\n }\n}\n\nexport interface NavigationState {\n currentPage?: NavigationElement;\n}\n\nexport interface NavigationActionDescriptor {\n updateNavigation: (data?: NavigationElement) => AnyAction;\n}\n\nexport const navigationModule: Module = {\n storeName: 'navigation',\n action: {\n updateNavigation,\n },\n reducer: navigationReducer,\n};\n","import { Reducer } from 'redux';\nimport { ThunkAction } from 'redux-thunk';\nimport reduceReducers from 'reduce-reducers';\n\nimport { Module } from '../../utils/type';\nimport { RegisterFolder } from '../../../models';\n\nimport {\n loginModule,\n LoginAction,\n registerModule,\n RegisterAction,\n logoutModule,\n LogoutAction,\n initializeModule,\n InitializeAction,\n} from './sub-modules';\nimport { AuthenticationState } from './authentication-state';\n\nconst initialState: AuthenticationState = {\n loggedInFolder: null,\n token: null,\n error: null,\n isLoading: false,\n logoutRequested: false,\n};\n\ninterface AuthenticationActionDescriptor {\n login: (folderIdOrEmail: string, password: string) => ThunkAction, {}, {}, LoginAction>;\n requestLogout: () => LogoutAction;\n logout: () => LogoutAction;\n register: (registerFolderInfos: RegisterFolder) => ThunkAction, {}, {}, RegisterAction>;\n initialize: () => ThunkAction, {}, {}, InitializeAction>;\n}\n\nexport const authenticationModule: Module = {\n reducer: reduceReducers(\n initialState,\n loginModule.reducer,\n registerModule.reducer,\n logoutModule.reducer,\n initializeModule.reducer,\n ) as Reducer,\n action: {\n login: loginModule.action.login,\n requestLogout: logoutModule.action.requestLogout,\n logout: logoutModule.action.logout,\n register: registerModule.action.register,\n initialize: initializeModule.action.initialize,\n },\n storeName: 'authentication',\n};\n","import { Reducer } from 'redux';\nimport { ThunkAction } from 'redux-thunk';\nimport reduceReducers from 'reduce-reducers';\n\nimport { FastUpsertListElement } from '../../../models';\nimport { RootState } from '../../store';\nimport { Module } from '../../utils/type';\n\nimport {\n refreshListModule,\n refreshListIntervalModule,\n updateLocalElementsQuantityModule,\n UpdateLocalElementsQuantityAction,\n updateRemoteElementsQuantityModule,\n updateRemoteElementsQuantityTimeoutModule,\n initializeBufferListModule,\n clearListModule,\n} from './sub-modules';\nimport { ListState, initialState } from './list-state';\n\nexport interface ListActionDescriptor {\n updateElementsQuantity: (\n updatedElements: FastUpsertListElement[],\n ) => ThunkAction;\n}\n\nexport const listModule: Module = {\n reducer: reduceReducers(\n initialState,\n refreshListModule.reducer,\n refreshListIntervalModule.reducer,\n updateLocalElementsQuantityModule.reducer,\n updateRemoteElementsQuantityModule.reducer,\n updateRemoteElementsQuantityTimeoutModule.reducer,\n initializeBufferListModule.reducer,\n clearListModule.reducer,\n ) as Reducer,\n action: {\n updateElementsQuantity: updateLocalElementsQuantityModule.action.updateLocalElementsQuantity,\n },\n storeName: 'list',\n workInProgress: (state: ListState): boolean =>\n state.isUpdating || (state.bufferList && state.bufferList.length > 0),\n};\n","import { AnyAction } from 'redux';\nimport { Module } from '../../utils/type';\n\nexport const UPDATE_HEADER_HEIGHT = 'UPDATE_HEADER_HEIGHT';\n\nconst updateHeaderHeight = (data: number): AnyAction => {\n return {\n type: UPDATE_HEADER_HEIGHT,\n payload: {\n headerHeight: data,\n },\n };\n};\n\nfunction layoutReducer(state: LayoutState = { headerHeight: 0 }, action: AnyAction): LayoutState {\n switch (action.type) {\n case UPDATE_HEADER_HEIGHT:\n return { ...state, headerHeight: action.payload.headerHeight };\n default:\n return state;\n }\n}\n\nexport interface LayoutState {\n headerHeight: number;\n}\n\nexport interface LayoutActionDescriptor {\n updateHeaderHeight: (data: number) => AnyAction;\n}\n\nexport const layoutModule: Module = {\n storeName: 'layout',\n action: {\n updateHeaderHeight,\n },\n reducer: layoutReducer,\n};\n","import { Reducer } from 'redux';\nimport reduceReducers from 'reduce-reducers';\n\nimport { Module } from '../../utils/type';\nimport { TracerConsent } from '../../../models/tracer';\n\nimport {\n initializeModule,\n InitializeAction,\n updateConsentModule,\n UpdateConsentAction,\n adminPanelModule,\n AdminPanelAction,\n} from './sub-modules';\nimport { TracerState } from './tracer-state';\n\ninterface TracerActionDescriptor {\n initialize: () => InitializeAction;\n consents: {\n updateAll: (consents: TracerConsent[]) => UpdateConsentAction;\n acceptAll: () => UpdateConsentAction;\n rejectAll: () => UpdateConsentAction;\n };\n adminPanel: {\n show: () => AdminPanelAction;\n hide: () => AdminPanelAction;\n };\n}\n\nexport const tracerModule: Module = {\n reducer: reduceReducers(\n {\n consents: [],\n adminPanelEnabled: false,\n },\n initializeModule.reducer,\n updateConsentModule.reducer,\n adminPanelModule.reducer,\n ) as Reducer,\n action: {\n initialize: initializeModule.action.initialize,\n consents: {\n updateAll: updateConsentModule.action.updateAll,\n acceptAll: updateConsentModule.action.acceptAll,\n rejectAll: updateConsentModule.action.rejectAll,\n },\n adminPanel: {\n show: adminPanelModule.action.show,\n hide: adminPanelModule.action.hide,\n },\n },\n storeName: 'tracer',\n};\n","import { AnyAction } from 'redux';\nimport { Module } from '../../utils/type';\n\nexport const UPDATE_DATALAYER = 'UPDATE_DATALAYER';\n\nconst updateDatalayer = (data?: {}): AnyAction => {\n return {\n type: UPDATE_DATALAYER,\n payload: {\n datalayer: data,\n },\n };\n};\n\nfunction trackingReducer(state: TrackingState = { datalayer: undefined }, action: AnyAction): TrackingState {\n switch (action.type) {\n case UPDATE_DATALAYER:\n return { ...state, datalayer: action.payload.datalayer };\n default:\n return state;\n }\n}\n\nexport interface TrackingState {\n datalayer?: {};\n}\n\nexport interface TrackingActionDescriptor {\n updateDatalayer: (data?: {}) => AnyAction;\n}\n\nexport const trackingModule: Module = {\n storeName: 'tracking',\n action: {\n updateDatalayer,\n },\n reducer: trackingReducer,\n};\n","import { AnyAction } from 'redux';\nimport { Module } from '../../utils/type';\n\nexport const ON_IDLE_START = 'ON_IDLE_START';\nexport const ON_IDLE_END = 'ON_IDLE_END';\n\nconst onIdleStart = (): AnyAction => {\n return {\n type: ON_IDLE_START,\n };\n};\n\nconst onIdleEnd = (): AnyAction => {\n return {\n type: ON_IDLE_END,\n };\n};\nfunction idleReducer(state: IdleState = { isIdle: false }, action: AnyAction): IdleState {\n switch (action.type) {\n case ON_IDLE_START:\n return { ...state, isIdle: true };\n case ON_IDLE_END:\n return { ...state, isIdle: false };\n default:\n return state;\n }\n}\n\nexport interface IdleState {\n isIdle: boolean;\n}\n\nexport interface IdleActionDescriptor {\n onIdleStart: () => AnyAction;\n onIdleEnd: () => AnyAction;\n}\n\nexport const idleModule: Module = {\n storeName: 'idle',\n action: {\n onIdleStart,\n onIdleEnd,\n },\n reducer: idleReducer,\n};\n","import axios from 'axios';\n\nimport { config } from 'config';\nimport { Error } from 'modules/shared/models';\nimport { concatUrl } from 'modules/shared/utils';\n\nconst restClient = axios.create({\n baseURL: concatUrl([config.backend.baseUrl, config.backend.rest.url]),\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction errorResponseHandler(error: any): Promise {\n const returnedError: Error = {\n message: error.response && error.response.data ? error.response.data.content : error.message,\n code: error.response ? error.response.status : -1,\n subCode: error.response && error.response.data ? error.response.data.code : -1,\n subCodeLib: error.response && error.response.data ? error.response.data.title : -1,\n };\n\n return Promise.reject(returnedError);\n}\n\nrestClient.interceptors.response.use(\n response => response,\n error => errorResponseHandler(error),\n);\n\nexport { restClient };\n","import { AuthToken } from '../../../../../models';\n\nexport const backendTokenService = {\n getToken: (): AuthToken | undefined => {\n const tokenValue = localStorage.getItem('backend_access_token');\n if (!tokenValue) {\n return undefined;\n }\n\n return JSON.parse(tokenValue) as AuthToken;\n },\n};\n","import axios from 'axios';\n\nimport { config } from 'config';\nimport { Error } from 'modules/shared/models';\nimport { concatUrl } from 'modules/shared/utils';\n\nimport { backendTokenService } from './sub-services';\n\nconst securedRestClient = axios.create({\n baseURL: concatUrl([config.backend.baseUrl, config.backend.rest.url]),\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction errorResponseHandler(error: any): Promise {\n const returnedError: Error = {\n message: error.response && error.response.data ? error.response.data.content : error.message,\n code: error.response ? error.response.status : -1,\n subCode: error.response && error.response.data ? error.response.data.code : -1,\n subCodeLib: error.response && error.response.data ? error.response.data.title : -1,\n };\n\n return Promise.reject(returnedError);\n}\n\nsecuredRestClient.interceptors.request.use(\n async requestConfig => {\n const originalRequestConfig = requestConfig;\n const token = backendTokenService.getToken();\n originalRequestConfig.headers.authorization = `Bearer ${token && token.value ? token.value : ''}`;\n return originalRequestConfig;\n },\n err => Promise.reject(err),\n);\n\nsecuredRestClient.interceptors.response.use(\n response => response,\n error => errorResponseHandler(error),\n);\n\nexport { securedRestClient };\n","import { config } from '../../../../../config';\nimport { restClient } from '.';\nimport { Structure } from './internal-models/structure';\n\nexport const structureService = {\n get: async () => {\n const response = await restClient.get(`${config.backend.rest.catalogueUrl}/hierarchy`);\n return response.data;\n },\n};\n","import { formatTechDate } from 'modules/shared/utils';\nimport { config } from '../../../../../config';\nimport { restClient, securedRestClient } from '.';\nimport {\n AuthenticationResult,\n RegisterFolder,\n LightFolder,\n ResetPasswordValidationRequest,\n ResetPasswordValidationResult,\n} from '../../../models';\n\nexport const authenticationService = {\n authenticateInternalUser: async (folderIdOrEmail: string, password: string) => {\n const response = await restClient.post(\n `${config.backend.rest.listUrl}/Authentication/authenticateInternalUser`,\n {\n folderIdOrEmail,\n password,\n },\n );\n\n if (response.data && response.data.expireAt) {\n response.data.expireAt = new Date(response.data.expireAt);\n }\n return response.data;\n },\n\n registerInternalUser: async (registerFolderInfos: RegisterFolder) => {\n const data = {\n ...registerFolderInfos,\n eventDate: formatTechDate(registerFolderInfos.eventDate),\n contact: {\n ...registerFolderInfos.contact,\n person1: {\n ...registerFolderInfos.contact.person1,\n birthDate: registerFolderInfos.contact.person1.birthDate\n ? formatTechDate(registerFolderInfos.contact.person1.birthDate)\n : undefined,\n },\n person2: {\n ...registerFolderInfos.contact.person2,\n birthDate: registerFolderInfos.contact.person2.birthDate\n ? formatTechDate(registerFolderInfos.contact.person2.birthDate)\n : undefined,\n },\n },\n };\n\n const response = await restClient.post(\n `${config.backend.rest.listUrl}/Authentication/registerInternalCustomer`,\n data,\n );\n\n if (response.data && response.data.expireAt) {\n response.data.expireAt = new Date(response.data.expireAt);\n }\n return response.data;\n },\n\n getLoggedInUser: async () => {\n const response = await securedRestClient.get(\n `${config.backend.rest.listUrl}/Authentication/GetLoggedInUser`,\n );\n\n return response.data;\n },\n\n retrievePassword: async (email: string) => {\n await restClient.post(`${config.backend.rest.listUrl}/Authentication/RetrievePassword`, { email });\n },\n\n getInformationToResetPassword: async ({ IdDossier, Heure, EMail, Operation }: ResetPasswordValidationRequest) => {\n const response = await restClient.get(\n `${config.backend.rest.listUrl}/Authentication/GetFolderAccountInformationToResetPassword/?encodedFolder=${IdDossier}&encodedHour=${Heure}&encodedEmail=${EMail}&additionalParameter=${Operation}`,\n );\n\n return response.data;\n },\n\n resetPassword: async (newPassword: string, folderId: string) => {\n await restClient.post(`${config.backend.rest.listUrl}/Authentication/resetPassword`, {\n folderId,\n newPassword,\n });\n },\n\n acceptTransfer: async (newPassword: string, folderId: string) => {\n await restClient.post(`${config.backend.rest.listUrl}/Authentication/acceptTransfer`, {\n folderId,\n newPassword,\n });\n },\n};\n","import queryString from 'query-string';\nimport { config } from '../../../../../config';\nimport { restClient } from '.';\nimport {\n LocalizableLightFolder,\n PublicFolder,\n PublicDetailedFolder,\n SearchPublicFolder,\n GetPublicFolder,\n SearchResult,\n PublicFolderPicture,\n} from '../../../models';\nimport { formatTechDate } from '../../../utils';\n\nexport const publicFolderService = {\n search: async ({ lastName, firstName, isWedding, privateId, date }: SearchPublicFolder) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const queryParams: any = {\n lastName,\n };\n\n if (firstName) {\n queryParams.firstName = firstName;\n }\n\n if (date) {\n queryParams.date = formatTechDate(date);\n }\n\n if (isWedding !== undefined) {\n queryParams.isWedding = isWedding;\n }\n\n if (privateId) {\n queryParams.privateId = privateId;\n }\n\n const response = await restClient.get>(\n `${config.backend.rest.listUrl}/publicfolder?${queryString.stringify(queryParams)}`,\n );\n\n if (response.data && response.data.items && response.data.items.length > 0) {\n for (let i = 0; i < response.data.items.length; i += 1) {\n response.data.items[i].eventDate = new Date(response.data.items[i].eventDate);\n }\n }\n\n return response.data;\n },\n\n get: async ({ id }: GetPublicFolder) => {\n const response = await restClient.get(`${config.backend.rest.listUrl}/publicfolder/${id}`);\n return response.data;\n },\n\n getDetailed: async ({ id }: GetPublicFolder) => {\n const response = await restClient.get(\n `${config.backend.rest.listUrl}/publicfolder/${id}/detailed`,\n );\n\n return response.data;\n },\n\n getProfilePicture: async ({ id }: GetPublicFolder) => {\n const response = await restClient.get(\n `${config.backend.rest.listUrl}/publicfolder/${id}/profilepicture`,\n );\n\n return response.data ? response.data.base64 : '';\n },\n};\n","import queryString from 'query-string';\nimport { config } from '../../../../../config';\nimport { restClient } from '.';\nimport { GetSummaryPrivateFolderByEmail, SummaryPrivateFolder } from '../../../models';\n\nexport const privateFolderService = {\n getByDateEmailAndUniverse: async ({ date, email, universeId }: GetSummaryPrivateFolderByEmail) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const queryParams: any = {\n email,\n universeId,\n };\n\n // TODO : revoir le formattage des dates et passer par un helper\n const response = await restClient.get(\n `${config.backend.rest.listUrl}/privatefolder/date/${new Date(date).toISOString()}?${queryString.stringify(\n queryParams,\n )}`,\n );\n return response.data;\n },\n};\n","import { config } from '../../../../../config';\nimport { securedRestClient } from '.';\nimport { LightOffer } from '../../../models';\n\nexport const currentFolderService = {\n getOffer: async () => {\n const response = await securedRestClient.get(`${config.backend.rest.listUrl}/folder/current/offer`);\n return response.data;\n },\n};\n","import queryString from 'query-string';\nimport { restClient } from '.';\nimport { config } from '../../../../../config';\nimport { EventType, GetEventType } from '../../../models';\n\nexport const eventTypeService = {\n getByUniverse: async ({ universeId, hasOrganiser }: GetEventType) => {\n const queryParams: any = {\n hasOrganiser: !!(hasOrganiser && hasOrganiser === 1),\n };\n const response = await restClient.get(\n `${config.backend.rest.listUrl}/universe/${universeId}/eventtypes?${queryString.stringify(queryParams)}`,\n );\n return response.data;\n },\n};\n","import { config } from '../../../../../config';\nimport { restClient } from '.';\nimport { LightStore, Store, GetStore } from '../../../models';\n\nexport const storeService = {\n getAll: async () => {\n const response = await restClient.get(`${config.backend.rest.listUrl}/store`);\n return response.data;\n },\n get: async ({ id }: GetStore) => {\n const response = await restClient.get(`${config.backend.rest.listUrl}/Store/${id}`);\n return response.data;\n },\n};\n","import { config } from '../../../../../config';\nimport { restClient } from '.';\nimport { IncentivePartner } from '../../../models';\n\nexport const incentivePartnerService = {\n getByAdvantageCode: async (code: string, eventId: string, storeId: string) => {\n const response = await restClient.get(\n `${config.backend.rest.listUrl}/IncentivePartner/${code}&${eventId}&${storeId}`,\n );\n return response.data;\n },\n};\n","import { config } from '../../../../../config';\nimport { securedRestClient } from '.';\nimport {\n LightList,\n LightListElement,\n FastUpsertListElement,\n FastUpsertListElements,\n DeleteListElementByVariantId,\n} from '../../../models';\n\nexport const currentListService = {\n getSummary: async () => {\n const response = await securedRestClient.get(`${config.backend.rest.listUrl}/list/current/summary`);\n return response.data;\n },\n fastUpsertElement: async (data: FastUpsertListElement) => {\n const response = await securedRestClient.post(\n `${config.backend.rest.listUrl}/list/current/cataloguelement`,\n data,\n );\n return response.data;\n },\n fastUpsertElements: async (data: FastUpsertListElements) => {\n const response = await securedRestClient.post(\n `${config.backend.rest.listUrl}/list/current/cataloguelements`,\n data,\n );\n return response.data;\n },\n deleteElementByVariantId: async ({ variantId }: DeleteListElementByVariantId) => {\n await securedRestClient.delete(`${config.backend.rest.listUrl}/list/current/element/${variantId}`);\n },\n};\n","import { config } from '../../../../../config';\nimport { restClient } from '.';\nimport { PublicList, GetList } from '../../../models';\n\nexport const listService = {\n get: async ({ id }: GetList) => {\n const response = await restClient.get(`${config.backend.rest.listUrl}/list/${id}`);\n return response.data;\n },\n};\n","import queryString from 'query-string';\nimport { config } from '../../../../../config';\nimport { restClient } from '.';\nimport { EmailValidation, EmailContact } from '../../../models';\n\nexport const utilsService = {\n validateEmail: async (email: string, culture?: string) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const queryParams: any = {\n email,\n };\n\n if (culture) {\n queryParams.culture = culture;\n }\n\n const response = await restClient.get(\n `${config.backend.rest.listUrl}/utils/EmailIsValid?${queryString.stringify(queryParams)}`,\n );\n\n return response.data;\n },\n contact: async (data: EmailContact) => {\n await restClient.post(`${config.backend.rest.listUrl}/utils/contact`, data);\n },\n};\n","import { config } from '../../../../../config';\nimport { restClient } from '.';\nimport {\n CreateNewsletter,\n CreateNewsletterLight,\n GetNewsletterByToken,\n Newsletter,\n UpdateNewsletter,\n} from '../../../models';\n\nexport const newsletterService = {\n requestAccess: async (email: string) => {\n const response = await restClient.post(\n `${config.backend.rest.commonUrl}/newsletter/${encodeURIComponent(email)}/requestaccess`,\n );\n return response.data;\n },\n create: async (data: CreateNewsletter) => {\n const response = await restClient.post(`${config.backend.rest.commonUrl}/newsletter`, data);\n return response.data;\n },\n createLight: async (data: CreateNewsletterLight) => {\n const response = await restClient.post(\n `${config.backend.rest.commonUrl}/newsletter/subscribelight`,\n data,\n );\n return response.data;\n },\n update: async (data: UpdateNewsletter) => {\n const response = await restClient.put(`${config.backend.rest.commonUrl}/newsletter`, data);\n return response.data;\n },\n getByToken: async ({ Token }: GetNewsletterByToken) => {\n const response = await restClient.get(\n `${config.backend.rest.commonUrl}/newsletter/token?token=${encodeURIComponent(Token)}`,\n );\n return response.data;\n },\n delete: async (email: string) => {\n const response = await restClient.delete(\n `${config.backend.rest.commonUrl}/newsletter/${encodeURIComponent(email)}/`,\n );\n return response.data;\n },\n};\n","import { config } from '../../../../../config';\nimport { securedRestClient } from '.';\nimport { UpdateSponsorship } from '../../../models';\n\nexport const sponsorshipService = {\n UpdateSponsorship: async (data: UpdateSponsorship) => {\n const response = await securedRestClient.post(`${config.backend.rest.listUrl}/sponsorship`, data);\n return response.data;\n },\n};\n","const config = {\n cms: {\n baseUrl: '',\n infraUrl: '',\n auth: {\n tokenUrl: '/identity-server/connect/token',\n issUrl: '/identity-server',\n grantType: 'client_credentials',\n clientScope: 'squidex-api',\n clientId: 'printemps:default',\n clientSecret: 'dx8qm4ATo2vdLy2kBwnHtShXcd5T/xljtCGZD1q4cyQ=',\n },\n rest: {\n url: '/api/apps/printemps',\n },\n graphql: {\n url: '/api/content/printemps/graphql',\n },\n },\n backend: {\n baseUrl: '',\n rest: {\n url: '/api',\n catalogueUrl: '/catalogue',\n listUrl: 'list',\n weddingUrl: 'wedding',\n commonUrl: 'common',\n },\n },\n cdn: {\n baseUrl: '',\n fileMaxSize: 1000,\n },\n baseUrl: '',\n list: {\n updateTimeout: 5000,\n refreshInterval: 30000,\n },\n seo: {\n titleSuffix: 'Printemps Listes',\n title: 'Printemps Listes : Liste de mariage, liste de naissance, liste de cadeaux',\n description:\n 'Bénéficiez d’avantages exclusifs en déposant votre Voyage de Noces sur votre Liste de Mariage ou de Cadeaux au Printemps.',\n keywords:\n \"listes de mariage,pacs,union,cagnotte mariage,listes de naissance,baptême,listes de voyage,voyage de noces,cadeaux d'anniversaire,crémaillère,cadeau commun,conseils,partenaires mariage,tenues de cérémonie,tenues de mariage,cortège mariage,costume marié,robe de mariée,alliances,printemps joailier,printemps voyages,printempsadeux,Printemps à Deux,boutiqueblanche,boutique blanche,printemps, liste de mariage,liste de naissance, liste de cadeaux, liste de voyage\",\n robots: 'ALL',\n copyright: 'Copyright 2000/2019 - Printemps.com S.A. - https://listes.printemps.com/',\n author: 'Printemps.com S.A.',\n classification: 'Global',\n distribution: 'Global',\n rating: 'General',\n resourceType: 'document',\n revisitAfter: '9 days',\n bulletinText: 'Listes de mariage, naissance et cadeaux - Printemps Listes',\n language: 'fr',\n type: 'website',\n image: {\n url: '/PLISTES/img/catalogue/printempslistesnoir-og.png',\n },\n },\n tagManager: {\n gtmId: 'GTM-TTZXBWW',\n datalayer: {\n 'id-ua-plistes': 'DEV-UA',\n },\n auth: '',\n preview: '',\n },\n apiKey: {\n googleMap: 'AIzaSyDbQF70Ryg2aHzMUglnvEjcvoT_EunUiLk',\n appInsights: '12a247df-a54a-4609-b3bd-87ca8a3459db',\n },\n sn: {\n pinterest: 'https://www.pinterest.fr/printemps1217/',\n instagram: 'https://www.instagram.com/printempsmariage/?hl=fr',\n },\n voyage: {\n scriptSrc: '//js-eu1.hsforms.net/forms/embed/v2.js',\n region: 'eu1',\n portalId: '26122002',\n form: {\n id: 'df6b5255-1850-4dd6-b7de-a2034872dc0d',\n url: 'https://share-eu1.hsforms.com/1dh7o7jteScW4fF-jz6oTzgfjvv6',\n },\n },\n};\n\nif (process.env.REACT_APP_STAGE === 'recette') {\n config.baseUrl = 'https://printemps-dev-refonte-fo.azurewebsites.net';\n config.cms.baseUrl = 'https://printemps-test-refonte-cmsv7.azurewebsites.net';\n config.backend.baseUrl = 'https://printemps-test-refonte-api.azurewebsites.net';\n config.cdn.baseUrl = 'https://printempstestuplaod.blob.core.windows.net/printempsupload/WPCOM.SRC';\n} else if (process.env.REACT_APP_STAGE === 'preprod') {\n config.baseUrl = 'https://ppd-listes.printemps.com';\n config.cms.baseUrl = 'https://ppd-cms-listes.printemps.com';\n config.cms.infraUrl = 'https://fpr-plistes-ppd-cms03.azurewebsites.net';\n config.backend.baseUrl = 'https://ppd-api-listes.printemps.com';\n config.cdn.baseUrl = 'https://ppd-asset-listes.printemps.com';\n config.tagManager.gtmId = 'GTM-TNJZWJL';\n config.tagManager.datalayer['id-ua-plistes'] = 'UA-9680728-10';\n config.tagManager.auth = '4aZlQe1x-rhIGaaKWukWXQ';\n config.tagManager.preview = 'env-24';\n config.apiKey.appInsights = 'f4ba1444-8ca0-4770-9432-91f26af664ad';\n config.cms.auth.clientSecret = 'reb3i4pyzc040aobjfdwrllifgovvouavidhrr9wanwx';\n config.voyage.form.id = 'df6b5255-1850-4dd6-b7de-a2034872dc0d';\n config.voyage.form.url = 'https://share-eu1.hsforms.com/1dh7o7jteScW4fF-jz6oTzgfjvv6';\n} else if (process.env.REACT_APP_STAGE === 'prod') {\n config.baseUrl = 'https://listes.printemps.com';\n config.cms.baseUrl = 'https://cms-listes.printemps.com';\n config.cms.infraUrl = 'https://fpr-plistes-prd-cms03.azurewebsites.net';\n config.backend.baseUrl = 'https://api-listes.printemps.com';\n config.cdn.baseUrl = 'https://asset-listes.printemps.com';\n config.apiKey.googleMap = 'AIzaSyARbGU-QaSW75b3nKJ6bt2ovcrtPaTVOyg';\n config.tagManager.gtmId = 'GTM-TNJZWJL';\n config.tagManager.datalayer['id-ua-plistes'] = 'UA-9680728-2';\n config.tagManager.auth = 'LACa7Oi727mLAeD5oT8dww';\n config.tagManager.preview = 'env-2';\n config.apiKey.appInsights = '260e579b-c16f-47fa-aa26-53a1e5965003';\n config.cms.auth.clientSecret = 'reb3i4pyzc040aobjfdwrllifgovvouavidhrr9wanwx';\n config.voyage.form.id = 'df6b5255-1850-4dd6-b7de-a2034872dc0d';\n config.voyage.form.url = 'https://share-eu1.hsforms.com/1dh7o7jteScW4fF-jz6oTzgfjvv6';\n} else {\n config.baseUrl = 'https://printemps-dev-refonte-fo.azurewebsites.net';\n config.cms.baseUrl = 'https://printemps-test-refonte-cmsv7.azurewebsites.net';\n config.backend.baseUrl = 'https://printemps-test-refonte-api.azurewebsites.net';\n config.cdn.baseUrl = 'https://printempstestuplaod.blob.core.windows.net/printempsupload/WPCOM.SRC';\n}\nexport { config };\n","const routes = {\n catalogue: {\n landing: '/catalogue',\n brand: '/catalogue/marques',\n product: '/catalogue/produit',\n },\n creerListe: {\n cadeauxNaissance: '/listes/creer-liste/nom/', // pour cadeaux et naissance\n voyageMariage: '/listes/creer-liste/type/', // pour voyage et mariage\n },\n espacePerso: {\n login: '/listes/espace-perso/login',\n client: {\n landing: '/listes/espace-perso/client',\n maListe: {\n gerer: '/listes/espace-perso/client/ma-liste/gerer',\n fairePart: '/listes/espace-perso/client/ma-liste/faire-part',\n communiquerMaListe: '/listes/espace-perso/client/ma-liste/communiquer',\n mesAvisCadeaux: '/listes/espace-perso/client/ma-liste/mes-avis-cadeaux',\n imprimerMesAvisCadeaux: '/listes/espace-perso/client/ma-liste/imprimer-mes-avis-cadeaux',\n },\n },\n },\n partenaires: {\n basique: '/listes/avantages-services/partenaires/partenaire',\n privilege: '/listes/avantages-services/partenaires/privilege',\n },\n dons: {\n choixDons: '/dons/choix-dons',\n },\n laRobe: {\n modeles: '/mariage/la-robe/modeles',\n createurs: '/mariage/la-robe/createurs',\n dressFitting: {\n createAppointment: '/mariage/la-robe/essayages-robes-de-mariee/prise-rdv',\n manageAppointment: '/mariage/la-robe/essayages-robes-de-mariee/gerer-rdv',\n },\n },\n magasin: '/magasin',\n};\n\nexport { routes };\n","import { Action, AnyAction } from 'redux';\nimport { ThunkDispatch, ThunkAction } from 'redux-thunk';\n\nimport { dateIsExpiredBuilder } from 'modules/shared/utils';\n\nimport { globalLoaderModule } from '../../global-loader';\nimport { contextService } from '../../../../services';\n\nimport { AuthenticationResult } from '../../../../models/customer';\nimport { AuthenticationState } from '../authentication-state';\n\nimport { AuthToken, LightFolder, Error } from '../../../../models';\n\nexport const REQUEST_LOGIN = 'REQUEST_LOGIN';\nexport const SUCCESS_LOGIN = 'SUCCESS_LOGIN';\nexport const ERROR_LOGIN = 'ERROR_LOGIN';\n\ninterface RequestLoginAction extends Action {\n type: typeof REQUEST_LOGIN;\n}\n\ninterface SuccessLoginAction extends Action {\n type: typeof SUCCESS_LOGIN;\n payload: { loggedInFolder: LightFolder; token: AuthToken };\n}\n\ninterface ErrorLoginAction extends Action {\n type: typeof ERROR_LOGIN;\n payload: { error: Error };\n}\n\nexport type LoginAction = RequestLoginAction | SuccessLoginAction | ErrorLoginAction;\n\n// Action creators\nconst requestAction = (): RequestLoginAction => {\n return { type: REQUEST_LOGIN };\n};\n\nconst successAction = (authenticationResult: AuthenticationResult): SuccessLoginAction => {\n return {\n type: SUCCESS_LOGIN,\n payload: {\n loggedInFolder: authenticationResult.folder,\n token: {\n value: authenticationResult.accessToken,\n expiration: authenticationResult.expireAt,\n isValid: dateIsExpiredBuilder(authenticationResult.expireAt),\n },\n },\n };\n};\n\nconst failureAction = (error: Error): ErrorLoginAction => {\n return {\n type: ERROR_LOGIN,\n payload: {\n error,\n },\n };\n};\n\nconst loginAction = (folderIdOrEmail: string, password: string): ThunkAction, {}, {}, LoginAction> => {\n return async (dispatch: ThunkDispatch<{}, {}, LoginAction>): Promise => {\n return new Promise(async (resolve, reject) => {\n globalLoaderModule.action.showLoading();\n\n dispatch(requestAction());\n\n try {\n const data = await contextService.authenticateInternalUser(folderIdOrEmail, password);\n dispatch(successAction(data));\n resolve();\n } catch (error) {\n dispatch(failureAction(error));\n reject(error);\n } finally {\n globalLoaderModule.action.hideLoading();\n }\n });\n };\n};\n\nfunction loginReducer(state: AuthenticationState, action: AnyAction): AuthenticationState {\n switch (action.type) {\n case REQUEST_LOGIN:\n return { ...state, isLoading: true };\n case SUCCESS_LOGIN:\n return {\n ...state,\n isLoading: false,\n loggedInFolder: action.payload.loggedInFolder,\n token: action.payload.token,\n };\n case ERROR_LOGIN:\n return { ...state, isLoading: false, error: action.payload.error };\n default:\n return state;\n }\n}\n\nexport const loginModule = {\n reducer: loginReducer,\n action: {\n login: loginAction,\n },\n};\n","import { Action, AnyAction } from 'redux';\nimport { ThunkDispatch, ThunkAction } from 'redux-thunk';\n\nimport { dateIsExpiredBuilder } from 'modules/shared/utils';\n\nimport { globalLoaderModule } from '../../global-loader';\nimport { contextService } from '../../../../services';\n\nimport { AuthenticationResult } from '../../../../models/customer';\nimport { AuthenticationState } from '../authentication-state';\n\nimport { AuthToken, LightFolder, RegisterFolder } from '../../../../models';\n\nexport const REQUEST_REGISTER = 'REQUEST_REGISTER';\nexport const SUCCESS_REGISTER = 'SUCCESS_REGISTER';\nexport const ERROR_REGISTER = 'ERROR_REGISTER';\n\ninterface RequestRegisterAction extends Action {\n type: typeof REQUEST_REGISTER;\n}\n\ninterface SuccessRegisterAction extends Action {\n type: typeof SUCCESS_REGISTER;\n payload: { loggedInFolder: LightFolder; token: AuthToken };\n}\n\ninterface ErrorRegisterAction extends Action {\n type: typeof ERROR_REGISTER;\n payload: { error: Error };\n}\n\nexport type RegisterAction = RequestRegisterAction | SuccessRegisterAction | ErrorRegisterAction;\n\n// Action creators\nconst requestAction = (): RequestRegisterAction => {\n return { type: REQUEST_REGISTER };\n};\n\nconst successAction = (authenticationResult: AuthenticationResult): SuccessRegisterAction => {\n return {\n type: SUCCESS_REGISTER,\n payload: {\n loggedInFolder: authenticationResult.folder,\n token: {\n value: authenticationResult.accessToken,\n expiration: authenticationResult.expireAt,\n isValid: dateIsExpiredBuilder(authenticationResult.expireAt),\n },\n },\n };\n};\n\nconst failureAction = (error: Error): ErrorRegisterAction => {\n return {\n type: ERROR_REGISTER,\n payload: {\n error,\n },\n };\n};\n\nconst registerAction = (registerFolderInfos: RegisterFolder): ThunkAction, {}, {}, RegisterAction> => {\n return async (dispatch: ThunkDispatch<{}, {}, RegisterAction>): Promise => {\n return new Promise(async (resolve, reject) => {\n globalLoaderModule.action.showLoading();\n\n dispatch(requestAction());\n\n try {\n const data = await contextService.registerInternalUser(registerFolderInfos);\n\n dispatch(successAction(data));\n resolve();\n } catch (error) {\n dispatch(failureAction(error));\n reject(error);\n } finally {\n globalLoaderModule.action.hideLoading();\n }\n });\n };\n};\n\nfunction registerReducer(state: AuthenticationState, action: AnyAction): AuthenticationState {\n switch (action.type) {\n case REQUEST_REGISTER:\n return { ...state, isLoading: true };\n case SUCCESS_REGISTER:\n return {\n ...state,\n isLoading: false,\n loggedInFolder: action.payload.loggedInFolder,\n token: action.payload.token,\n };\n case ERROR_REGISTER:\n return { ...state, isLoading: false, error: action.payload.error };\n default:\n return state;\n }\n}\n\nexport const registerModule = {\n reducer: registerReducer,\n action: {\n register: registerAction,\n },\n};\n","import { Action, AnyAction } from 'redux';\n\nimport { AuthenticationState } from '../authentication-state';\nimport { contextService } from '../../../../services';\n\nexport const REQUEST_LOGOUT = 'REQUEST_LOGOUT';\nexport const SUCCESS_LOGOUT = 'SUCCESS_LOGOUT';\n\nexport interface RequestLogoutAction extends Action {\n type: typeof REQUEST_LOGOUT;\n}\n\nexport interface SuccessLogoutAction extends Action {\n type: typeof SUCCESS_LOGOUT;\n}\n\nexport type LogoutAction = RequestLogoutAction | SuccessLogoutAction;\n\n// Action creators\nconst requestAction = (): LogoutAction => {\n return { type: REQUEST_LOGOUT };\n};\n\nconst successAction = (): LogoutAction => {\n return { type: SUCCESS_LOGOUT };\n};\n\nconst logoutAction = (): LogoutAction => {\n contextService.logout();\n return successAction();\n};\n\nfunction logoutReducer(state: AuthenticationState, action: AnyAction): AuthenticationState {\n switch (action.type) {\n case REQUEST_LOGOUT:\n return { ...state, logoutRequested: true };\n case SUCCESS_LOGOUT:\n return { ...state, isLoading: false, loggedInFolder: null, token: null, logoutRequested: false };\n default:\n return state;\n }\n}\n\nexport const logoutModule = {\n reducer: logoutReducer,\n action: {\n requestLogout: requestAction,\n logout: logoutAction,\n },\n};\n","import { Action, AnyAction } from 'redux';\nimport { ThunkDispatch, ThunkAction } from 'redux-thunk';\n\nimport { dateIsExpiredBuilder } from 'modules/shared/utils';\n\nimport { globalLoaderModule } from '../../global-loader';\nimport { contextService } from '../../../../services';\n\nimport { logoutModule } from './logout-module';\n\nimport { AuthenticationState } from '../authentication-state';\n\nimport { AuthToken, LightFolder } from '../../../../models';\n\nexport const REQUEST_INITIALIZE = 'REQUEST_INITIALIZE';\nexport const SUCCESS_INITIALIZE = 'SUCCESS_INITIALIZE';\nexport const ERROR_INITIALIZE = 'ERROR_INITIALIZE';\n\ninterface RequestInitializeAction extends Action {\n type: typeof REQUEST_INITIALIZE;\n}\n\ninterface SuccessInitializeAction extends Action {\n type: typeof SUCCESS_INITIALIZE;\n payload: { loggedInFolder: LightFolder | null; token: AuthToken | null };\n}\n\ninterface ErrorInitializeAction extends Action {\n type: typeof ERROR_INITIALIZE;\n payload: { error: Error };\n}\n\nexport type InitializeAction = RequestInitializeAction | SuccessInitializeAction | ErrorInitializeAction;\n\n// Action creators\nconst requestAction = (): RequestInitializeAction => {\n return { type: REQUEST_INITIALIZE };\n};\n\nconst successAction = (loggedInFolder: LightFolder | null, token: AuthToken | null): SuccessInitializeAction => {\n return {\n type: SUCCESS_INITIALIZE,\n payload: {\n loggedInFolder,\n token: token\n ? {\n value: token.value,\n expiration: token.expiration,\n isValid: dateIsExpiredBuilder(token.expiration),\n }\n : null,\n },\n };\n};\n\nconst failureAction = (error: Error): ErrorInitializeAction => {\n return {\n type: ERROR_INITIALIZE,\n payload: {\n error,\n },\n };\n};\n\nconst initializeAction = (): ThunkAction, {}, {}, InitializeAction> => {\n return async (dispatch: ThunkDispatch<{}, {}, InitializeAction>): Promise => {\n return new Promise(async (resolve, reject) => {\n globalLoaderModule.action.showLoading();\n\n dispatch(requestAction());\n\n try {\n const data = await contextService.getLoggedInUserInfos();\n dispatch(successAction(data ? data.folder : null, data && data.token ? data.token : null));\n resolve();\n } catch (error) {\n logoutModule.action.logout();\n dispatch(failureAction(error));\n reject(error);\n } finally {\n globalLoaderModule.action.hideLoading();\n }\n });\n };\n};\n\nfunction initializeReducer(state: AuthenticationState, action: AnyAction): AuthenticationState {\n switch (action.type) {\n case REQUEST_INITIALIZE:\n return { ...state, isLoading: true };\n case SUCCESS_INITIALIZE:\n return {\n ...state,\n isLoading: false,\n loggedInFolder: action.payload.loggedInFolder,\n token: action.payload.token,\n };\n case ERROR_INITIALIZE:\n return { ...state, isLoading: false, error: action.payload.error };\n default:\n return state;\n }\n}\n\nexport const initializeModule = {\n reducer: initializeReducer,\n action: {\n initialize: initializeAction,\n },\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ctaButton\":\"cta-button-component_ctaButton__3urpg\",\"normal\":\"cta-button-component_normal__1v9_6\",\"gris\":\"cta-button-component_gris__3WXlx\",\"fullWidth\":\"cta-button-component_fullWidth__31jzY\",\"forceHover\":\"cta-button-component_forceHover__2twKM\",\"sansBordure\":\"cta-button-component_sansBordure__n8U7x\",\"inversé\":\"cta-button-component_inversé__2ps9Z\",\"thème\":\"cta-button-component_thème__1jDIS\",\"thèmeInversé\":\"cta-button-component_thèmeInversé__2eaRu\"};","export type TracerType = 0 | 1 | 2 | 3;\nconst UKNOWN_CONSENT_TYPE: TracerType = 0;\nconst FUNCTIONNAL_TRACER_TYPE: TracerType = 1;\nconst PERFORMANCE_TRACER_TYPE: TracerType = 2;\nconst ADVERTISING_TRACER_TYPE: TracerType = 3;\n\nexport const TracerTypeValues = {\n UKNOWN: UKNOWN_CONSENT_TYPE,\n FUNCTIONNAL_TRACER_TYPE,\n PERFORMANCE_TRACER_TYPE,\n ADVERTISING_TRACER_TYPE,\n};\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Modal, Header, Icon } from 'vendors/semantic-ui';\nimport { ConfirmProps, ConfirmState } from './confirm-type';\n\nimport styles from './confirm-component.module.css';\n\nlet resolve: (result: boolean) => void;\nconst defaultProps = {\n title: 'Confirmation',\n message: 'Are you sure?',\n};\n\nclass ConfirmDialog extends Component {\n static create(): ConfirmDialog {\n const containerElement = document.createElement('div');\n document.body.appendChild(containerElement);\n const element = React.createRef();\n ReactDOM.render(, containerElement);\n if (!element.current) {\n throw new Error('Error on confirm initialisation');\n }\n\n return element.current;\n }\n\n constructor(props: ConfirmProps) {\n super(props);\n this.state = {\n isOpen: false,\n message: defaultProps.message,\n };\n }\n\n handleCancel = (): void => {\n this.setState({ isOpen: false });\n resolve(false);\n };\n\n handleConfirm = (): void => {\n this.setState({ isOpen: false });\n resolve(true);\n };\n\n show = (message: string): Promise => {\n this.setState({ isOpen: true, message });\n return new Promise(res => {\n resolve = res;\n });\n };\n\n render = (): JSX.Element => {\n const { isOpen, message } = this.state;\n return (\n \n
\n \n

{message}

\n
\n \n \n Annuler\n \n \n \n \n );\n };\n}\n\nexport default ConfirmDialog;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { readCMSValue, getDefault } from 'modules/shared-cms/utils';\n\nimport { CtaButtonProps } from './cta-button-type';\n\nimport styles from './cta-button-component.module.css';\n\nexport const CtaButton: React.FC = React.memo(\n ({ ctaLink, ctaText, ctaStyle, forceHover, target = '_self', fullWidth = false }: CtaButtonProps) => {\n const text = getDefault(readCMSValue(ctaText), '');\n const style = readCMSValue(ctaStyle);\n const link = readCMSValue(ctaLink);\n if (link) {\n const externalUrl = !!(link.startsWith('http') || link.startsWith('www'));\n\n if (externalUrl) {\n return (\n \n {text}\n \n );\n }\n return (\n \n {text}\n \n );\n }\n\n return (\n \n {text}\n \n );\n },\n);\n","import React from 'react';\n\nimport { getDefaultUrlPicture, readCMSValue } from 'modules/shared-cms/utils';\n\nimport { CtaImageProps } from './cta-image-type';\n\nimport styles from './cta-image-component.module.css';\n\nexport const CtaImage: React.FC = React.memo(({ link, target, picture }: CtaImageProps) => {\n const linkValue = readCMSValue(link);\n const targetValue = readCMSValue(target);\n const pictureValue = getDefaultUrlPicture(picture);\n if (linkValue) {\n return (\n \n {pictureValue && \"\"}\n \n );\n }\n return pictureValue ? \"\" : <>;\n});\n","import * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport { ClickablecontainerProps } from './clickable-container-type';\n\nimport styles from './clickable-container-component.module.css';\n\nexport const ClickableContainer: React.FC = ({\n link,\n target,\n style,\n className,\n innerClassName,\n children,\n onHover,\n}: ClickablecontainerProps & { children?: React.ReactNode }) => {\n if (link) {\n const externalUrl = !!(link.startsWith('http') || link.startsWith('www'));\n if (externalUrl) {\n const linkTarget = target === undefined ? '_blank' : target;\n return (\n
\n {\n if (onHover) onHover.onMouseEnter();\n }}\n onMouseLeave={() => {\n if (onHover) onHover.onMouseLeave();\n }}\n href={link}\n target={linkTarget}\n style={style}\n className={`${innerClassName} ${styles['clickable-container']}`}\n >\n {children}\n \n
\n );\n }\n\n return (\n
\n {\n if (onHover) onHover.onMouseEnter();\n }}\n onMouseLeave={() => {\n if (onHover) onHover.onMouseLeave();\n }}\n to={link}\n target={target}\n style={style}\n className={`${innerClassName} ${styles['clickable-container']}`}\n >\n {children}\n \n
\n );\n }\n\n return (\n
\n {\n if (onHover) onHover.onMouseEnter();\n }}\n onMouseLeave={() => {\n if (onHover) onHover.onMouseLeave();\n }}\n style={style}\n className={`${innerClassName} ${styles['clickable-container']}`}\n >\n {children}\n
\n
\n );\n};\n","import React, { useState, CSSProperties } from 'react';\nimport { Placeholder } from 'vendors/semantic-ui';\n\nimport defaultImg from 'assets/images/produit-indispo.png';\n\nimport styles from './loadable-image-component.module.css';\n\nexport const LoadableImage: React.FC,\n HTMLImageElement\n> & {\n placeholderClassName?: string;\n placeholderStyle?: CSSProperties;\n}> = ({\n style,\n className,\n src,\n alt,\n placeholderClassName,\n placeholderStyle,\n onLoad,\n onError,\n ...rest\n}: React.DetailedHTMLProps, HTMLImageElement> & {\n placeholderClassName?: string;\n placeholderStyle?: CSSProperties;\n}) => {\n const [isLoaded, setIsLoaded] = useState(false);\n const [isError, setIsError] = useState(false);\n\n const result = (\n \n {!isLoaded && !isError && (\n \n \n \n )}\n {\n setIsLoaded(true);\n if (onLoad) {\n onLoad(e);\n }\n }}\n onError={e => {\n setIsError(true);\n if (onError) {\n onError(e);\n }\n }}\n />\n \n );\n\n if (isError) {\n return (\n
\n {result}\n {isError && Image non trouvée}\n
\n );\n }\n return result;\n};\n","import * as React from 'react';\nimport { ImageContainerProps } from './image-container-type';\nimport { LoadableImage } from '../loadable-image';\n\nimport styles from './image-container-component.module.css';\n\nexport const ImageContainer: React.FC = ({\n style,\n className,\n placeholderClassName,\n children,\n color,\n small,\n medium,\n large,\n onloaded,\n}: ImageContainerProps & { children?: React.ReactNode }) => {\n return (\n <>\n {large ? (\n \n {small && (\n \n )}\n {medium && (\n \n )}\n \n \n ) : (\n
\n )}\n {children && (\n
\n {children}\n
\n )}\n \n );\n};\n","/* eslint-disable react/no-array-index-key */\nimport React, { useState } from 'react';\n\nimport { configUI } from 'config';\n\nimport { GenericList } from 'modules/shared/components/generic-list';\n\nimport { ColumnListContainerProps, ColumnOptions } from './column-list-container-type';\n\nimport styles from './column-list-container-component.module.css';\n\nconst getColumnOptions = (options: ColumnOptions): number[] => {\n const screenWidth = window.innerWidth;\n if (screenWidth <= configUI.responsive.mobile.maxWidth) {\n return options.mobile;\n }\n if (screenWidth <= configUI.responsive.tablet.maxWidth) {\n return options.tablet;\n }\n return options.computer;\n};\nconst buildColumnOptions = (\n options: number[],\n setOptionIndex: React.Dispatch>,\n currentOptionIndex: number,\n): JSX.Element => {\n return (\n \n Affichage\n {options.map((option, key) => {\n let value = '';\n for (let i = 0; i < option; i += 1) {\n value += '■';\n }\n return (\n \n setOptionIndex(key)}\n >\n {value}\n \n \n );\n })}\n \n );\n};\n\nexport const ColumnListContainer = ({\n items,\n itemRenderer,\n options,\n hideOptions = false,\n headerChildren,\n}: ColumnListContainerProps): JSX.Element => {\n const option = getColumnOptions(options);\n const [optionIndex, setOptionIndex] = useState(0);\n const columns = option[optionIndex];\n const hasEnoughItems = items ? items.length > columns : false;\n const renderer: (item: T, key: number) => JSX.Element = (item: T, key: number) => {\n return (\n
\n {itemRenderer(item, key)}\n
\n );\n };\n return (\n \n
\n
{headerChildren !== undefined && headerChildren}
\n
\n {!hideOptions && buildColumnOptions(option, setOptionIndex, optionIndex)}\n
\n
\n
\n \n
\n
\n );\n};\n","import React from 'react';\nimport { Container } from 'vendors/semantic-ui';\n\nimport { ListContainerProps } from './list-container-type';\n\nimport styles from './list-container-component.module.css';\n\nexport const ListContainer: React.FC = React.memo(\n ({ list, title, noResultsTxt, children, headerChildren, fullWidth }: ListContainerProps) => {\n return (\n \n {list && list.length > 0 ? (\n \n
\n {headerChildren &&
{headerChildren}
}\n
\n {list.length} {list.length === 1 ? title : `${title}S`}\n
\n
\n {children}\n
\n ) : (\n
{noResultsTxt}
\n )}\n
\n );\n },\n);\n","import React from 'react';\n\nimport styles from './separator-component.module.css';\n\nexport const Separator: React.FC = React.memo(() => {\n return (\n
\n
\n
\n );\n});\n","import React from 'react';\n\nimport { LightSeparatorProps } from './light-separator-type';\n\nimport styles from './light-separator-component.module.css';\n\nexport const LightSeparator: React.FC = ({ withMargin }: LightSeparatorProps) => {\n return
;\n};\n","/* eslint-disable react/no-danger */\nimport React from 'react';\nimport { HtmlContainerProps } from './html-container-type';\n\nimport styles from './html-container-component.module.css';\n\nexport const HtmlContainer: React.FC = ({\n htmlContent,\n node = 'div',\n useDefaultClass = true,\n className = '',\n style,\n}: HtmlContainerProps) => {\n let rootNode;\n if (node === 'div') {\n rootNode = (\n \n );\n } else if (node === 'h1') {\n rootNode = (\n \n );\n } else {\n rootNode = (\n \n );\n }\n return rootNode;\n};\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Modal, Header, Icon } from 'vendors/semantic-ui';\nimport { AlertProps, AlertState } from './alert-type';\n\nimport styles from './alert-component.module.css';\n\nlet resolve: (result: boolean) => void;\nconst defaultProps = {\n title: 'Information',\n message: '',\n};\n\nclass AlertDialog extends Component {\n static create(): AlertDialog {\n const containerElement = document.createElement('div');\n document.body.appendChild(containerElement);\n const element = React.createRef();\n ReactDOM.render(, containerElement);\n if (!element.current) {\n throw new Error('Error on alert initialisation');\n }\n\n return element.current;\n }\n\n constructor(props: AlertProps) {\n super(props);\n this.state = {\n isOpen: false,\n message: defaultProps.message,\n };\n }\n\n handleConfirm = (): void => {\n this.setState({ isOpen: false });\n resolve(true);\n };\n\n show = (message: string): Promise => {\n this.setState({ isOpen: true, message });\n return new Promise(res => {\n resolve = res;\n });\n };\n\n render = (): JSX.Element => {\n const { isOpen, message } = this.state;\n return (\n \n
\n \n

{message}

\n
\n \n \n \n \n );\n };\n}\n\nexport default AlertDialog;\n","import ConfirmDialog from './confirm-component';\n\nexport const confirmService = ConfirmDialog.create();\n","import AlertDialog from './alert-component';\n\nexport const alertService = AlertDialog.create();\n","import React from 'react';\nimport { Checkbox } from 'vendors/semantic-ui';\n\nimport { CheckboxListProps, CheckboxValue } from '.';\n\nexport function CheckboxList = CheckboxValue>({\n values,\n onSelectionChange,\n renderLabel,\n}: CheckboxListProps): JSX.Element {\n return (\n \n {values &&\n values.map((cbProps, key) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n
\n {\n const currentCbProps = cbProps;\n const newVals = [...values.filter(v => v.isSelected).map(v => v.value)];\n if (!currentCbProps.isSelected) {\n newVals.push(cbProps.value);\n } else {\n const valIndex = newVals.indexOf(cbProps.value);\n if (valIndex > -1) {\n newVals.splice(valIndex, 1);\n }\n }\n\n currentCbProps.isSelected = !currentCbProps.isSelected;\n onSelectionChange(newVals);\n }}\n label={renderLabel ? renderLabel(cbProps) : cbProps.label}\n checked={cbProps.isSelected}\n />\n
\n );\n })}\n
\n );\n}\n","import { AnyAction } from 'redux';\nimport { Module } from '../../utils/type';\n\nconst START = 'GLOBAL_LOADER_START';\nconst END = 'GLOBAL_LOADER_END';\n\nconst showLoading = (): AnyAction => {\n return {\n type: START,\n };\n};\n\nconst hideLoading = (): AnyAction => {\n return {\n type: END,\n };\n};\n\nfunction globalLoadingReducer(state: GlobalLoadingState = { count: 0 }, action: AnyAction): GlobalLoadingState {\n switch (action.type) {\n case START:\n return {\n ...state,\n count: (state.count || 0) + 1,\n };\n case END:\n return {\n ...state,\n count: Math.max(0, (state.count || 1) - 1),\n };\n default:\n return state;\n }\n}\n\nexport interface GlobalLoadingState {\n count: number;\n}\n\nexport interface GlobalLoadingActionDescriptor {\n showLoading: () => AnyAction;\n hideLoading: () => AnyAction;\n}\n\nexport const globalLoaderModule: Module = {\n storeName: 'globalLoader',\n action: {\n showLoading,\n hideLoading,\n },\n reducer: globalLoadingReducer,\n};\n"],"sourceRoot":""}