{"version":3,"sources":["templates/BubbleHeader.tsx","common/useEventListener.tsx","common/useExpireToken.tsx","common/useLogout.ts","common/isAnalyticClientAgree.ts","common/setHotFixCss.tsx","store/settingsEffetcs.ts","automated-tests-ids/ids.js","common/translation.ts","common/navigation.tsx","common/styles.ts","configStore.ts","components/Icons/AccountIcon.tsx","components/CustomLink.tsx","common/useDisplayExchanges.ts","components/MobileMenu.tsx","hooks/useShowSectionsByLocationUri.ts","hooks/useWidgetsEventListeners.ts","components/CookiesBanner.tsx","templates/AppFooter.tsx","components/Icons/BurgerMenuIcon.tsx","components/DesktopMenu.tsx","templates/AppHeader.tsx","templates/ContentLoggedWrapper.tsx","templates/ContentUnloggedWrapper.tsx","screens/CCLLoadingScreen.tsx","screens/SubscriptionScreen.tsx","screens/AlertContactScreen.tsx","screens/DeliveryRequestTrackingScreen.tsx","screens/ContractCancellationScreen.tsx","components/Navigation.tsx","AppStyles.tsx","App.tsx","serviceWorker.ts","index.tsx","common/useRequestScript.tsx"],"names":["BubbleHeaderStyles","css","props","theme","colors","primaryLight","elevation","sup","default","device","mobile","primaryDark","tablet","onlyForMobile","white","onlyForDesktop","texts","lightColor","base","BubbleHeader","goBack","wide","title","translation","useContext","geti18nContext","className","mode","onClick","type","content","value","getTransation","t","common","clientArea","textStyle","variant","useEventListener","eventName","handler","element","savedHandler","useRef","useEffect","current","addEventListener","eventListener","event","removeEventListener","useExpireToken","getPath","usePath","history","useHistory","expireDateToken","useSelector","state","auth","data","expireDate","currentLang","getLanguage","Date","getTime","push","useLogout","dispatch","useDispatch","authenticatedUser","getAuthenticatedUser","s","logoutV2Enabled","isFeatureEnabled","clientId","authActions","logoutV2","logout","isAnalyticClientAgree","cookies","getCookiesSettings","analyticCookie","find","item","id","accepted","setHotFixCss","brand","dom","document","querySelector","url","process","link","createElement","href","rel","head","appendChild","createFaviconEffect","settingsEffetcs","setFavicon","favElement","setFaviconByTheme","select","getSettingsState","settingsState","params","BrandReference","takeEvery","settingsActions","getBrandDataSuccess","DASHBOARD","ID_VALUES","welcomeUser","userName","accessMyProfile","contracts","payments","consumption","billings","help","dashboard","exchange","menuDesktopButton","widgetInvoiceButtonDebitInvoice","createAccount","contractCancellationScreen","alertConactValidation","alertConactValidationSecondParagraphe","loginScreen","qrCode","qrTextDownloadLinkGooglePlay","qrTextDownloadLinkIos","footer","cgu","userData","legalMentions","i18nContext","createContext","navigations","home","uri","login","createAccountFirstSteps","moveIn","createAccountThirdStep","myConsumption","myContract","myPaiements","myExchanges","helpAndContacts","myProfile","forgetPassword","updateEmailByBillingOrIban","updateEmailValidation","paymentReturn","cclAccess","contactEmailValidation","deliveryPointRequestsTracking","contractCancelation","onlyForLargeScreen","desktop","localsagas","savedState","key","saveds","includes","initialStates","resetStateStatus","errorMessage","loading","loaded","GeneralSettings","createTransform","inboundState","next","filterInCommingStateToStorage","outboundState","persistConfig","storage","sessionStorage","transforms","configStore","store","persistor","PersistGate","AccountIconStyles","Circle","xmlns","viewBox","fillRule","d","UserIcon","fill","AccountIcon","CustomLink","to","activeOnlyWhenExact","children","automatedTestId","finalRoute","match","useRouteMatch","path","exact","isActive","useDisplayExchanges","clientWorkOrderState","getClientWorkOrderState","overConsumptionList","getOverConsumptionAlerts","overConsumptionListFiltred","filter","oc","notificationsList","length","pairingTechnologyCode","MobileMenuStyles","black","high","under","MobileMenu","visible","toggleMenu","logoutHook","displayExchanges","consumerIsContractTerminated","defaultContract","isContractTerminated","menu","initial","left","animate","transition","duration","ease","overlay","opacity","useState","ssoRef","setSsoRef","getElementById","motion","div","label","flush","purge","pause","contentWindow","postMessage","setTimeout","getItem","window","location","assign","removeItem","useShowSectionsByLocationUri","subTitle","setSubtitle","showActionButtons","setShowActionButtons","showContractSection","setShowContractSection","showSectionSubscription","setShowSectionSubscription","pathname","useLocation","clientAccountsState","getClientAccountsState","isFamilyMode","useWidgetsEventListeners","contractWidgetRef","setContractWidgetRef","eventListenerExist","setEventListenerExist","consumer","getConsumer","isInterventionHistorique","e","selectFamilyEvent","detail","sectionSubscriptionIds","setAuthentifiedUserFamily","widgetsList","useMemo","forEach","widget","ref","sectionsubscriptionid","defaultSectionId","sectionsubscriptionids","defaultSectionIds","customeraccountid","defaultCustomerAccountId","refclient","clientReference","clientid","clientreference","clientfirstname","firstName","familymode","familyid","defaultFamilyId","pairingtechnologycode","component","customerAccountId","sectionSubscriptionId","setAuthentifiedUserInformations","deliveryPointActions","fetchClientWorkOrder","updateSelectedContract","delete_cookie","name","cookieName","targetCookieName","cookie","split","startsWith","get_cookie","CookiesBanner","cookieSettings","showBanner","settings","isCookiesSet","requiredCookie","rule","React","cookiesPanelState","setCookiesPanelState","toCookie","option","active","toOption","cookiesConfig","panel","optionAnalytic","desc","soft","acceptAllCookies","nextState","map","cs","updateCookiesSetting","optionsData","v","infoText","banner","toggleMenuCookies","toggleMenuCookiesLabel","toggleMenuPanelLabel","acceptCookies","OptionsTitleList","contentPanel","weburl","HomeUrl","titlePanel","alwayActifLabel","rejectAllCookiesLabel","acceptAllCookiesLabel","options","acceptCustomCookies","values","rejectAllCookies","closeMenuPanel","policyTitle","policyMessage","policyLink","CookiesUrl","AppFooterStyles","AppFooter","settingState","CguUrl","brandParameter","DataProtectionPolicyUrl","LegalNoticeUrl","open","copyRight","BrandFullName","BurgerMenuIcon","width","height","DesktopMenuStyles","top","primaryAccent","DesktopMenu","scale","goToProfile","clear","userinformation","disconnect","AppHeader","menuStatus","showClientProMenu","showExchanges","welcome","lastName","AppHeaderStyles","fontFamilyBold","ContractSelector","memo","isMultiContrats","accessToken","currentVersion","showcontractsection","showmodal","showactionbuttons","token","lang","currentversion","showsectionsubscription","ContentLoggedWrapperStyles","ContentLoggedWrapper","isDashboard","undefined","visibleMobileMenu","setVisibleMobileMenu","getAccessToken","ContentUnloggedWrapperStyles","ContentUnloggedWrapper","Styles","createGlobalStyle","CCLLoadingScreen","useRequestScript","loginInformation","setLoginInformation","origin","command","source","targetOrigin","JSON","parse","goToDashboard","useCallback","persist","setToken","user","UserLight","defaultContractId","defaultDeliveryPointId","isEligibleCoachConso","isEligibleNewFeaturesMessage","isMultiTargetAlertsEnabled","setAuthentifiedUser","getUserBrandParameters","setExpireDateToken","setRefreshToken","refreshToken","setItem","stringify","alt","src","error","CreateAccountScreen","trackEvent","useMatomo","_isAnalyticClientAgree","moveInWidgetRef","setMoveInWidgetRef","allowCookies","qs","search","toString","handlerMatomoEvent","categorie","action","category","goToLogin","MatomoTags","direflowEventName","scrollY","scrollTo","step","AlertContactScreen","URLSearchParams","get","validationStatus","getValidateAlertContactStatus","status","setStatus","codeError","setCodeError","exchangeAction","validateAlertContact","errorCode","getValue","firstParagraph","secondParagraph","icon","statusOfValidation","translations","exchanges","titleSuccess","firstParagraphSuccess","alreadyAddedAsCoReceiver","alertCoReceiver","titleFailure","firstParagraphFailure","secondParagraphFailure","DeliveryPointRequestTracking","requestId","runTime","requestid","String","ContractCancellationScreen","screenTitle","ContractCancellation","contractCancellationEnabled","unloggeduser","LoginScreen","lazy","DashboardScreen","MyConsomptionScreen","HelpContactsScreen","MyContractScreen","MyExchangesScreen","MyPaiementsScreen","ForgetPasswordScreen","PaymentResultScreen","UpdateEmailValidationScreen","UpdateEmailWithBillingOrIbanScreen","MyProfil","PageNamesForMatomo","CheckLang","useParams","setLanguage","LoaderScreen","LoaderScreenStyles","PrivateRoute","supportedLanguages","render","Navigation","_state","nav","cookiesSettings","trackPageView","prevHistoryPath","usePrevious","getMatomoName","uriPathName","hash","route","replace","isAnalyticsAgree","documentTitle","renderRouteContent","isLogged","fallback","SubscriptionScreen","AppStyles","initSagaMiddleware","ThemeWrapper","getTheme","StoreWrapper","TranslationProvider","translationInst","i18n","htmlElement","setHtmlLang","Provider","App","matomoId","MatomoId","errorMsg","renderApp","getBrandData","instanceMatomo","createInstance","urlBase","siteId","MatomoProvider","LoadingStyles","switchApp","StoreProvider","Boolean","hostname","urlsConfig","setURls","KEYCLOAK_URL","BASE_URL","ADMIN_BASE_URL","KEYCLOAK_CLIENT_ID","KEYCLOAK_SCOPE","DELIVERYPOINT_BASE_URL","HISTORY_INTERVENTION","CONSUMER_BASE_URL","ReactDOM","StrictMode","widgetName","featureId","navigator","serviceWorker","ready","then","registration","unregister","catch","console","message","scriptTypes","st","scriptType"],"mappings":"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","file":"static/js/main.0dc6438f.chunk.js","sourcesContent":["import React, { FC, useContext } from \"react\";\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport Word from \"saur-design-sys-web/lib/Atoms/Word/Word\";\nimport Button from \"saur-design-sys-web/lib/Atoms/Input/Button/Button\";\nimport AppLogo from \"saur-design-sys-web/lib/Atoms/AppLogo/AppLogo\";\nimport LeftArrow from \"saur-design-sys-web/lib/Icons/LeftArrow\";\nimport { ThemeType } from \"saur-design-sys-web/lib/BrandsConfig\";\nimport { colors, onlyForDesktop, device, onlyForMobile, elevation } from \"saur-design-sys-web/lib/Theme\";\nimport { css } from \"styled-components\";\nimport { geti18nContext } from \"../common/translation\";\nimport { getTransation } from \"saur-states-management/lib/i18n\";\n\n\ntype BubbleHeaderProps = {\n goBack: () => void;\n wide?: boolean;\n title?: string\n};\n\nconst BubbleHeader: FC = ({ goBack, wide = false, title }) => {\n const translation = useContext(geti18nContext());\n return (\n \n \n \n \n \n \n \n \n t.common.clientArea)(translation)}\n textStyle=\"title\"\n variant=\"p\"\n />\n \n \n \n \n );\n};\n\nexport const BubbleHeaderStyles = css`\n .BubbleHeader {\n z-index:0;\n position: relative;\n background-color: ${(props: ThemeType) =>\n props.theme.colors.primaryLight};\n .BubbleHeader-header { \n z-index: ${elevation.sup.default};\n align-items: center;\n justify-content: center;\n @media ${device.mobile} {\n position: relative;\n width: 100%;\n background-color: ${(props: ThemeType) => props.theme.colors.primaryDark};\n transform: translateX(0%);\n height: 51px;\n top: 0;\n left: 0;\n border-bottom-left-radius: 30px;\n }\n @media ${device.tablet} {\n position: absolute;\n transform: translateX(-50%);\n height: 400px;\n background-color: transparent;\n top: 0;\n left: 50%;\n border-bottom-left-radius: 0;\n padding: 0;\n\n }\n .BubbleHeader-header-row {\n align-items: center;\n @media ${device.mobile} {\n width: 100%;\n flex-direction: column;\n\n }\n @media ${device.tablet} {\n transform: translateY(-125%);\n flex-direction: row;\n width: auto;\n }\n .BubbleHeader-BackButtonMobile {\n ${onlyForMobile}\n position: absolute;\n left: 4%;\n top: 50%;\n transform: translateY(-50%);\n svg {\n width: 20px;\n height: 20px;\n path {\n fill: ${colors.white}\n }\n }\n }\n }\n .BubbleHeader-header-separator {\n ${onlyForDesktop}\n width: 5px;\n height: 42px;\n background-color: ${(props: ThemeType) => props.theme.texts.lightColor};\n border-radius: 9px;\n margin: 0 20px;\n }\n .BubbleHeader-header-title-desktop {\n ${onlyForDesktop}\n color: ${(props: ThemeType) => props.theme.texts.lightColor};\n white-space: nowrap;\n }\n .BubbleHeader-header-title-mobile {\n ${onlyForMobile}\n color: ${(props: ThemeType) => props.theme.texts.lightColor};\n }\n }\n .BubbleHeader-header-circle {\n ${onlyForDesktop}\n position: absolute;\n top: 0;\n left: 50%;\n width: 100%;\n max-width: 830px;\n height: 800px;\n background-color: ${(props) => props.theme.colors.primaryDark};\n border-radius: 100%;\n transform: translateY(-50%) translateX(-50%);\n z-index: ${elevation.base.default};\n }\n .BubbleHeader-header-circle.wide-bubble {\n max-width: 1150px;\n height: 1150px;\n\n }\n\n }\n`;\n\nexport default BubbleHeader;\n","import { useEffect, useRef } from \"react\";\n\nfunction useEventListener(eventName: string, handler: (e: Event) => void, element: Element | null){\n\n // Create a ref that stores handler\n const savedHandler = useRef(null);\n \n // Update ref.current value if handler changes.\n // This allows our effect below to always get latest handler ...\n // ... without us needing to pass it in effect deps array ...\n // ... and potentially cause effect to re-run every render.\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n \n useEffect(\n () => {\n // Make sure element supports addEventListener\n // On \n const isSupported = element && element.addEventListener;\n if (!isSupported) return;\n \n // Create event listener that calls handler function stored in ref\n const eventListener = (event: Event) => savedHandler.current(event);\n \n // Add event listener\n if (element) element.addEventListener(eventName, eventListener);\n \n // Remove event listener on cleanup\n return () => {\n if (element) element.removeEventListener(eventName, eventListener);\n };\n },\n [eventName, element] // Re-run if eventName or element changes\n );\n };\n\n export default useEventListener","import { useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport { usePath } from \"../common/navigation\";\nimport { States } from \"saur-states-management\";\nimport { getLanguage } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport { langTypes } from \"saur-states-management/lib/i18n\";\n\nfunction useExpireToken() {\n const { getPath } = usePath();\n const history = useHistory();\n const expireDateToken = useSelector(\n (state: States) => state.auth.data.expireDate\n );\n const currentLang = useSelector(getLanguage) as langTypes;\n useEffect(() => {\n if (\n expireDateToken &&\n new Date(expireDateToken).getTime() < new Date().getTime()\n ) {\n history.push(`/${currentLang}${getPath(\"login\")}`);\n }\n });\n}\n\nexport default useExpireToken;\n","import { useDispatch, useSelector } from \"react-redux\";\nimport { authActions } from \"saur-states-management/lib/states/authState\";\nimport { getAuthenticatedUser } from \"saur-states-management/lib/selectors/authSelectors\";\nimport { isFeatureEnabled } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport { States } from \"saur-states-management\";\nconst useLogout = () => {\n const dispatch = useDispatch();\n const authenticatedUser = useSelector(getAuthenticatedUser);\n const state = useSelector((s: States) => s);\n const logoutV2Enabled = isFeatureEnabled(state, \"User-Logout\")\n \n const logout = () => {\n if (logoutV2Enabled) {\n if (authenticatedUser?.clientId) {\n dispatch(authActions.logoutV2(authenticatedUser?.clientId));\n }\n } else {\n dispatch(authActions.logout());\n }\n };\n\n return logout;\n};\n\nexport default useLogout;\n","import { States } from \"saur-states-management/lib/index\";\nimport { getCookiesSettings } from \"saur-states-management/lib/selectors/settingsSelectors\";\n\n\nfunction isAnalyticClientAgree(state: States): boolean {\n const cookies = getCookiesSettings(state)\n if (cookies) {\n const analyticCookie = cookies.find((item) => {\n return item.id === 2\n })\n \n if (analyticCookie) {\n return analyticCookie.accepted\n }\n }\n\n\n return false\n}\n\nexport default isAnalyticClientAgree","import { Brands } from \"saur-design-sys-web/lib/BrandsConfig\";\n\nfunction getPath(brand: Brands) {\n if (brand === \"atlantic-eau\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/atlantic-eau.css`\n if (brand === \"sem\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/sem.css`\n if (brand === \"eau-de-garonne\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/eau-de-garonne.css`\n if (brand === \"saur\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/saur.css`\n if (brand === \"accm\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/accm.css`\n if (brand === \"cer\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/cer.css`\n if (brand === \"cgsp\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/cgsp.css`\n if (brand === \"cise-reunion\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/cise-reunion.css`\n if (brand === \"grand-lac\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/grand-lac.css`\n if (brand === \"saint-affo\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/saint-affo.css`\n if (brand === \"saint-martin\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/saint-martin.css`\n if (brand === \"sateg\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/sateg.css`\n if (brand === \"se3r\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/se3r.css`\n if (brand === \"sepig\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/sepig.css`\n if (brand === \"sudeau\") return `${process.env.REACT_APP_HOTFIX_CSS_URL}/sudeau.css`\n return null\n}\n\n\nfunction setHotFixCss(brand: Brands) {\n const dom = document.querySelector(`#${brand}-hotfix-css`)\n const url = getPath(brand);\n\n if (!dom && url) {\n // add script tag at lazy way\n let link = document.createElement('link')\n link.id = `${brand}-hotfix-css`;\n link.href = url;\n link.rel = \"stylesheet\"\n document.head.appendChild(link)\n }\n \n}\n\nexport default setHotFixCss;\n","import { takeEvery, select } from \"redux-saga/effects\";\nimport {\n settingsActions,\n State as settingState,\n} from \"saur-states-management/lib/states/settingsState\";\nimport { getSettingsState } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport { Brands } from \"saur-design-sys-web/lib/BrandsConfig\";\nimport setHotFixCss from \"../common/setHotFixCss\";\n\nexport function setFavicon(url: string) {\n let favElement = document.querySelector(\"#meta-favicon\");\n if (favElement) {\n // @ts-ignore\n favElement.href = url;\n }\n}\n\nexport function setFaviconByTheme(theme: Brands) {\n switch (theme) {\n case \"se3r\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-SE3R.ico`);\n break;\n }\n case \"sepig\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/sepig-16x16.ico`);\n break;\n }\n case \"accm\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-ACCM.ico`);\n break;\n }\n case \"atlantic-eau\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-Atlantic.ico`);\n break;\n }\n case \"cer\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-CER.ico`);\n break;\n }\n case \"cgsp\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-CGSP.ico`);\n break;\n }\n case \"eau-de-garonne\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-Garonne.ico`);\n break;\n }\n case \"grand-lac\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-Grand-lac.ico`);\n break;\n }\n case \"saint-affo\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-Saint-affo.ico`);\n break;\n }\n case \"sateg\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/saur-16x16.ico`);\n break;\n }\n case \"sudeau\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-Sudeau.ico`);\n break;\n }\n case \"eaux-saumur-val-de-loire\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-ESVDL.ico`);\n break;\n }\n case \"saur-eau-du-morbihan\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-EDM.ico`);\n break;\n }\n case \"sepra\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-SEPRA.ico`);\n break;\n }\n case \"sbaa\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-Sbaa.ico`);\n break;\n }\n case \"gmva\": {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/Favicon-GMVA.ico`);\n break;\n }\n default: {\n setFavicon(`${process.env.PUBLIC_URL}/favicons/saur-16x16.ico`);\n break;\n }\n }\n}\n\nfunction* createFaviconEffect() {\n const settingsState: settingState = yield select(getSettingsState);\n if (settingsState && settingsState.params.BrandReference) {\n setFaviconByTheme(settingsState.params.BrandReference);\n setHotFixCss(settingsState.params.BrandReference);\n }\n}\n\nfunction* settingsEffetcs() {\n yield takeEvery(\n settingsActions.getBrandDataSuccess.type,\n createFaviconEffect\n );\n}\n\nexport default settingsEffetcs;\n","const DASHBOARD = 'dashboard_';\nconst PAYMENTS = \"payments_\";\n\nconst ID_VALUES = {\n welcomeUser: `${DASHBOARD}welcome-user`,\n userName: `${DASHBOARD}header-user-name`,\n accessMyProfile: `${DASHBOARD}access-my-profile`,\n contracts: `${DASHBOARD}contracts`,\n payments: `${DASHBOARD}payements`,\n consumption: `${DASHBOARD}consumption`,\n billings: `${DASHBOARD}billings`,\n help: `${DASHBOARD}help`,\n dashboard: `${DASHBOARD}dashboard`,\n exchange: `${DASHBOARD}exchange`,\n logout: `${DASHBOARD}logout`,\n menuDesktopButton: `${DASHBOARD}menu-desktop-button`,\n widgetInvoiceButtonDebitInvoice: `${PAYMENTS}widget-invoice-button-debit-invoice`,\n createAccount: `create_account-redirect-button`,\n contractCancellationScreen: `contract_cancellation-screen`,\n alertConactValidation: \"alert_contact_validation-screen\",\n alertConactValidationSecondParagraphe: \"alert_contact_validation-seconde-paragraphe\",\n loginScreen: {\n qrCode: \"qr-code\",\n qrTextDownloadLinkGooglePlay: \"qr-text-download-link-google-play\",\n qrTextDownloadLinkIos : \"qr-text-download-link-ios\"\n },\n footer: {\n cgu: \"cgu-redirect-link-button\",\n userData: \"userData-redirect-link-button\",\n legalMentions: \"legalMentions-redirect-link-button\",\n cookies: \"cookies-open-banner-button\",\n }\n \n};\nexport default ID_VALUES;\n","import { createContext, Context } from 'react'\nimport { langProperty } from \"saur-states-management/lib/i18n\";\n\nconst i18nContext = createContext(null)\n\nfunction geti18nContext(): Context {\n const value = i18nContext as Context\n return value \n}\n\n\n\nexport {\n i18nContext,\n geti18nContext,\n}","import { useContext } from \"react\";\nimport { getTransation } from \"saur-states-management/lib/i18n\";\nimport { geti18nContext } from \"./translation\";\n\nconst _routes = {\n dashboard: \"dashboard\",\n login: \"login\",\n createAccount: \"createAccount\",\n myConsumption: \"my-consumption\",\n myContract: \"my-contract\",\n myBillings: \"invoices\",\n exchanges: \"exchanges\",\n help: \"help\",\n profile: \"profile\",\n forgetPassword: \"forgetPassword\",\n paymentReturn: \"paymentReturn\",\n createAccountThirdStep: \"createAccountThirdStep\",\n updateEmailValidation: \"updateEmailValidation\",\n UpdateEmailOffline: \"UpdateEmailOffline\",\n ccl: \"ccl\",\n moveIn: \"moveIn\",\n contactEmailValidation: \"contactEmailValidation\",\n deliveryPointRequestsTracking: \"deliveryPointRequestsTracking\",\n contractCancelation: \"contractCancelation\",\n};\n\nconst routes = () => _routes;\n\nexport function usePath() {\n const translation = useContext(geti18nContext());\n\n function getPath(value: keyof typeof _routes): string {\n switch (value) {\n case \"dashboard\":\n return `/${getTransation((t) => t.navigations.home.uri)(translation)}`;\n case \"login\":\n return `/${getTransation((t) => t.navigations.login.uri)(translation)}`;\n case \"createAccount\":\n return `/${getTransation(\n (t) => t.navigations.createAccountFirstSteps.uri\n )(translation)}`;\n case \"moveIn\":\n return `/${getTransation(\n (t) => t.navigations.moveIn.uri\n )(translation)}`;\n case \"createAccountThirdStep\":\n return `/${getTransation(\n (t) => t.navigations.createAccountThirdStep.uri\n )(translation)}`;\n case \"myConsumption\":\n return `/${getTransation((t) => t.navigations.myConsumption.uri)(\n translation\n )}`;\n case \"myContract\":\n return `/${getTransation((t) => t.navigations.myContract.uri)(\n translation\n )}`;\n case \"myBillings\":\n return `/${getTransation((t) => t.navigations.myPaiements.uri)(\n translation\n )}`;\n case \"exchanges\":\n return `/${getTransation((t) => t.navigations.myExchanges.uri)(\n translation\n )}`;\n case \"help\":\n return `/${getTransation((t) => t.navigations.helpAndContacts.uri)(\n translation\n )}`;\n case \"profile\":\n return `/${getTransation((t) => t.navigations.myProfile.uri)(\n translation\n )}`;\n case \"forgetPassword\":\n return `/${getTransation((t) => t.navigations.forgetPassword.uri)(\n translation\n )}`;\n case \"UpdateEmailOffline\":\n return `/${getTransation((t) => t.navigations.updateEmailByBillingOrIban.uri)(\n translation\n )}`;\n case \"updateEmailValidation\":\n return `/${getTransation(\n (t) => t.navigations.updateEmailValidation.uri\n )(translation)}`;\n case \"paymentReturn\":\n return `/${getTransation((t) => t.navigations.paymentReturn.uri)(\n translation\n )}`;\n case \"ccl\":\n return `/${getTransation((t) => t.navigations.cclAccess.uri)(\n translation\n )}`;\n case \"contactEmailValidation\":\n return `/${getTransation((t) => t.navigations.contactEmailValidation.uri)(\n translation\n )}`;\n case \"deliveryPointRequestsTracking\":\n return `/${getTransation((t) => t.navigations.deliveryPointRequestsTracking.uri)(\n translation\n )}`;\n case \"contractCancelation\":\n return `/${getTransation((t) => t.navigations.contractCancelation.uri)(\n translation\n )}`;\n default:\n return `/`;\n }\n }\n return { getPath };\n}\n\nexport default routes;\n","import { css } from 'styled-components'\nimport { device } from 'saur-design-sys-web/lib/Theme'\n\nconst onlyForDesktop = css`\n @media ${device.mobile} {\n display: none;\n }\n @media ${device.tablet} {\n display: flex;\n }\n`\n\nconst onlyForMobile = css`\n @media ${device.mobile} {\n display: flex;\n }\n @media ${device.tablet} {\n display: none;\n }\n`\n\nconst onlyForLargeScreen = css`\n @media ${device.mobile} {\n display: none;\n }\n @media ${device.tablet} {\n display: none;\n }\n @media ${device.desktop} {\n display: flex;\n }\n`\n\nexport {\n onlyForDesktop,\n onlyForMobile,\n onlyForLargeScreen\n}","import { createTransform } from \"redux-persist\";\nimport sessionStorage from 'redux-persist/lib/storage/session'\nimport configStore, { initialStates, StateName } from \"saur-states-management\";\nimport settingsEffetcs from './store/settingsEffetcs'\n\nconst localsagas: Array = [settingsEffetcs];\n\nconst savedState = (key: StateName, state: any) => {\n\tconst saveds: Array = ['settings', 'auth', 'account', 'consumer'];\n\tif (state && saveds.includes(key)) {\n\t\treturn {\n\t\t\t...initialStates[key],\n\t\t\t...state,\n\t\t}\n\t}\n\tif (state && !saveds.includes(key)) {\n\t\treturn initialStates[key]\n\n\t}\n\tif (!state) {\n\t\treturn initialStates[key]\n\t}\n}\n\nconst resetStateStatus = (state: any) => ({\n\t...state,\n\terrorMessage: null,\n\tloading: false,\n\tloaded: false\n})\n\nconst filterInCommingStateToStorage = (key: StateName, state: any) => {\n\tswitch (key) {\n\t\tcase 'consumer':\n\t\t\treturn resetStateStatus(state)\n\t\tcase 'account':\n\t\t\treturn resetStateStatus(state)\n\t\tcase 'auth':\n\t\t\treturn resetStateStatus(state)\n\t\tcase 'settings':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloading: false\n\t\t\t}\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n\n\nconst GeneralSettings = createTransform(\n\t// transform state on its way to being serialized and persisted.\n\t(inboundState: any, key: StateName) => {\n\t\tconst next = filterInCommingStateToStorage(key, inboundState)\n\t\t// convert mySet to an Array.\n\t\treturn savedState(key, next)\n\t},\n\t(outboundState, key: StateName) => {\n\t\t// convert mySet back to a Set.\n\t\treturn savedState(key, outboundState)\n\t},\n);\n\n// custom config for react-native with AsyncStorage\nconst persistConfig = {\n\tkey: \"root\",\n\tstorage: sessionStorage,\n\ttransforms: [GeneralSettings]\n};\n\n// Initalize the redux store\nconst { store, persistor, PersistGate } = configStore(\n\t// [reduxLogger],\n\t[],\n\t// @ts-ignore\n\tpersistConfig\n);\n\nexport { store, persistor, PersistGate, localsagas };\n","import React, { FC } from 'react';\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport {css} from 'styled-components'\n\n\nconst AccountIcon: FC<{}> = () => {\n return (\n \n \n \n \n \n \n )\n}\n\nexport const AccountIconStyles = css`\n .AccountIconContainer {\n position: relative;\n width: 31px;\n height: 40px;\n .StyledCircle {\n position: absolute;\n width: 31px;\n height: 32px;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n svg {\n width: 100%;\n height: 100%;\n }\n }\n .StyledUser {\n position: absolute;\n width: 26px;\n height: 26px;\n top: 25%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n svg {\n width: 100%;\n height: 100%;\n }\n }\n }\n .headerUserIcon{\n fill: #008CD2;\n }\n`\n\nconst Circle = () => (\n \n \n \n \n)\n\n\nexport const UserIcon = () => (\n \n \n \n \n)\n\n\nexport default AccountIcon;","import React, { FC, ReactElement } from \"react\";\nimport { Link, useRouteMatch } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport { getLanguage } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport { langTypes } from \"saur-states-management/lib/i18n\";\nimport Nav from \"saur-design-sys-web/lib/Molecules/Nav/Nav\";\n\nconst CustomLink: FC<{\n to: string;\n activeOnlyWhenExact?: boolean;\n children: ReactElement;\n automatedTestId?: string;\n}> = ({ to, activeOnlyWhenExact = false, children, automatedTestId = \"\" }) => {\n const currentLang = useSelector(getLanguage) as langTypes;\n\n const finalRoute = `/${currentLang}${to}`;\n\n const match = useRouteMatch({\n path: finalRoute,\n exact: activeOnlyWhenExact,\n });\n\n return (\n \n );\n};\n\nexport default CustomLink;\n","import { useSelector } from \"react-redux\";\nimport { getAuthenticatedUser } from \"saur-states-management/lib/selectors/authSelectors\";\nimport { isFeatureEnabled } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport { States } from \"saur-states-management\";\nimport {\n getOverConsumptionAlerts,\n getClientWorkOrderState,\n} from \"saur-states-management/lib/selectors/deliveryPointSelector\";\n\nconst useDisplayExchanges = () => {\n const authenticatedUser = useSelector(getAuthenticatedUser);\n const clientWorkOrderState = useSelector(getClientWorkOrderState);\n const overConsumptionList = useSelector(getOverConsumptionAlerts);\n const state = useSelector((s: States) => s);\n const overConsumptionListFiltred = overConsumptionList.filter(\n (oc) => oc?.notificationsList.length !== 0\n );\n if (\n isFeatureEnabled(state, \"AlertesSurconso\") &&\n overConsumptionListFiltred.length !== 0\n ) {\n return true;\n }\n if (\n isFeatureEnabled(state, \"Intervention-Afficher-Historique\") &&\n clientWorkOrderState.data.length > 0\n ) {\n return true;\n }\n if (\n isFeatureEnabled(state, \"Alertes-Surconsommations-Fuites-Residuelles\") &&\n authenticatedUser?.pairingTechnologyCode === \"TeleCoronis\"\n ) {\n return true;\n }\n return false;\n};\n\nexport default useDisplayExchanges\n","import React, { FC, useContext, useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport Word from \"saur-design-sys-web/lib/Atoms/Word/Word\";\nimport Button from \"saur-design-sys-web/lib/Atoms/Input/Button/Button\";\nimport CloseIcon from \"saur-design-sys-web/lib/Icons/Close\";\nimport { useHistory } from \"react-router-dom\";\nimport { motion } from \"framer-motion\";\nimport { css } from \"styled-components\";\nimport {\n colors,\n onlyForMobile,\n elevation,\n} from \"saur-design-sys-web/lib/Theme\";\nimport { UserIcon } from \"../components/Icons/AccountIcon\";\nimport CustomLink from \"../components/CustomLink\";\nimport { usePath } from \"../common/navigation\";\nimport { geti18nContext } from \"../common/translation\";\nimport { getTransation, langTypes } from \"saur-states-management/lib/i18n\";\nimport useExpireToken from \"../common/useExpireToken\";\nimport {\n getLanguage,\n} from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport { getAuthenticatedUser } from \"saur-states-management/lib/selectors/authSelectors\";\nimport {persistor} from \"../configStore\";\nimport useLogout from \"../common/useLogout\";\nimport useDisplayExchanges from \"../common/useDisplayExchanges\";\n\ntype modalMode = \"in\" | \"out\" | undefined;\n\ntype MobileMenuProps = {\n visible: modalMode;\n toggleMenu: (option: modalMode) => void;\n};\n\nconst MobileMenu: FC = ({ visible, toggleMenu }) => {\n useExpireToken();\n const history = useHistory();\n const { getPath } = usePath();\n const translation = useContext(geti18nContext());\n const currentLang = useSelector(getLanguage) as langTypes;\n const authenticatedUser = useSelector(getAuthenticatedUser);\n const logoutHook = useLogout()\n const displayExchanges = useDisplayExchanges()\n\n const consumerIsContractTerminated= authenticatedUser?.defaultContract?.isContractTerminated;\n\n function getAnimationProperties() {\n if (visible === \"in\") {\n return {\n menu: {\n initial: {\n left: -243,\n },\n animate: {\n left: 0,\n },\n transition: {\n duration: 0.3,\n ease: \"easeIn\",\n },\n },\n overlay: {\n animate: {\n opacity: 0.6,\n },\n transition: {\n duration: 0.5,\n ease: \"easeIn\",\n },\n },\n };\n } else if (visible === \"out\") {\n return {\n menu: {\n initial: {\n left: 0,\n },\n animate: {\n left: -243,\n },\n transition: {\n duration: 0.2,\n ease: \"easeOut\",\n },\n },\n overlay: {\n animate: {\n opacity: 0,\n },\n transition: {\n duration: 0.2,\n ease: \"easeOut\",\n },\n },\n };\n }\n return {\n menu: {\n animate: {},\n transition: {},\n },\n overlay: {\n animate: {},\n transition: {},\n },\n };\n }\n\n const { menu, overlay } = getAnimationProperties();\n\n function logout() {\n toggleMenu(\"out\");\n logoutHook()\n persistor.flush();\n persistor.purge();\n persistor.pause();\n if(ssoRef){\n let helperFrameWindow = ssoRef.contentWindow;\n helperFrameWindow.postMessage(\"removeUser\", \"*\");\n }\n setTimeout(() => {\n if (sessionStorage.getItem(\"sso-connection\")) {\n setTimeout(() => {\n let url = process.env.REACT_APP_CCL_URL;\n if (url)\n window.location.assign(url);\n }, 200)\n }\n else {\n history.push(`/${currentLang}${getPath(\"login\")}`);\n }\n sessionStorage.removeItem(\"sso-connection\");\n }, 100);\n }\n const [ssoRef, setSsoRef] = useState(null)\n\n useEffect(() => {\n setSsoRef(document.getElementById(\"sso-ccl\"))\n }, []);\n\n function showExchanges(): boolean {\n return displayExchanges\n }\n\n return (\n \n \n \n {\n toggleMenu(\"out\");\n }}\n mode=\"basic\"\n >\n \n \n\n \n {!consumerIsContractTerminated && \n {\n toggleMenu(\"out\");\n }}\n >\n \n t.navigations.home.label)(\n translation\n )}\n textStyle=\"normalMed\"\n variant=\"span\"\n />\n \n \n }\n\n \n {\n toggleMenu(\"out\");\n }}\n >\n \n t.navigations.myContract.label)(\n translation\n )}\n textStyle=\"normalMed\"\n variant=\"span\"\n />\n \n \n \n\n \n {\n toggleMenu(\"out\");\n }}\n >\n \n t.navigations.myPaiements.label\n )(translation)}\n textStyle=\"normalMed\"\n variant=\"span\"\n />\n \n \n \n\n {!consumerIsContractTerminated && \n {\n toggleMenu(\"out\");\n }}\n >\n \n t.navigations.myConsumption.label\n )(translation)}\n textStyle=\"normalMed\"\n variant=\"span\"\n />\n \n \n }\n\n {showExchanges() && !consumerIsContractTerminated && (\n \n {\n toggleMenu(\"out\");\n }}\n >\n \n t.navigations.myExchanges.label\n )(translation)}\n textStyle=\"normalMed\"\n variant=\"span\"\n />\n \n \n \n )}\n\n \n {\n toggleMenu(\"out\");\n }}\n >\n \n t.navigations.helpAndContacts.label\n )(translation)}\n textStyle=\"normalMed\"\n variant=\"span\"\n />\n \n \n \n \n\n \n \n {!visible || visible === \"in\" ? (\n {\n toggleMenu(\"out\");\n }}\n animate={overlay.animate}\n transition={overlay.transition}\n />\n ) : null}\n \n \n );\n};\n\nexport const MobileMenuStyles = css`\n .MobileMenu {\n .MobileMenuContent {\n ${onlyForMobile}\n .CloseButton {\n width: 41px;\n height: 41px;\n margin-bottom: 94px;\n padding: 0;\n justify-content: flex-start;\n }\n .DisconnectButton {\n svg {\n width: 18px;\n height: 18px;\n margin-right: 11px;\n path {\n fill: ${colors.black};\n }\n }\n }\n .MenuNavigation {\n flex: 1;\n }\n .NavigationItem {\n margin-bottom: 40px;\n }\n .OverlayMenu {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: ${colors.black};\n opacity: 0;\n z-index: ${elevation.high.under};\n }\n .MainMobileMenuContainer {\n display: flex;\n flex-direction: column;\n position: fixed;\n top: 0;\n bottom: 0;\n width: 203px;\n left: -243px;\n background-color: ${colors.white};\n border-top-right-radius: 30px;\n z-index: ${elevation.high.default};\n padding-left: 40px;\n padding-bottom: 25px;\n padding-top: 11px;\n }\n }\n }\n`;\n\nexport default MobileMenu;\n","import { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport { getAuthenticatedUser } from \"saur-states-management/lib/selectors/authSelectors\";\nimport { getClientAccountsState } from \"saur-states-management/lib/selectors/clientAccountsSelector\";\nimport { usePath } from \"../common/navigation\";\n\n// Define types for subTitle and show/hide states\ntype TytleType = \"clientRef\" | \"address\";\ntype ShowHideType = \"show\" | \"hide\";\n\n/**\n * Custom hook for managing sections visibility based on the current URL location and isFamilyMode\n *\n * @returns {Object} An object containing states for section visibility\n */\nconst useShowSectionsByLocationUri = () => {\n const [subTitle, setSubtitle] = useState(\"clientRef\");\n const [showActionButtons, setShowActionButtons] =\n useState(\"hide\");\n const [showContractSection, setShowContractSection] =\n useState(\"hide\");\n const [showSectionSubscription, setShowSectionSubscription] =\n useState(\"show\");\n\n const { pathname } = useLocation();\n const { getPath } = usePath();\n\n const clientAccountsState = useSelector(getClientAccountsState);\n const authenticatedUser = useSelector(getAuthenticatedUser);\n const isFamilyMode = authenticatedUser?.isFamilyMode ?? false;\n\n useEffect(() => {\n if (\n pathname.includes(getPath(\"dashboard\")) ||\n pathname.includes(getPath(\"profile\"))\n ) {\n setSubtitle(\"address\");\n setShowActionButtons(\"hide\");\n setShowContractSection(\"show\");\n setShowSectionSubscription(\"show\");\n } else if (pathname.includes(getPath(\"myContract\"))) {\n setSubtitle(\"clientRef\");\n setShowActionButtons(\"show\");\n setShowContractSection(\"show\");\n setShowSectionSubscription(\"show\");\n } else {\n setSubtitle(\"clientRef\");\n setShowActionButtons(\"hide\");\n setShowContractSection(\"hide\");\n setShowSectionSubscription(\"show\");\n }\n\n if (pathname.includes(getPath(\"dashboard\")) && isFamilyMode) {\n setShowSectionSubscription(\"hide\");\n setShowActionButtons(\"hide\");\n setShowContractSection(\"hide\");\n }\n }, [pathname, getPath, clientAccountsState, isFamilyMode]);\n\n return {\n subTitle,\n showActionButtons,\n showContractSection,\n showSectionSubscription,\n };\n};\n\nexport default useShowSectionsByLocationUri;\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { States } from \"saur-states-management\";\nimport Consumer from \"saur-states-management/lib/models/consumer\";\nimport { getAuthenticatedUser } from \"saur-states-management/lib/selectors/authSelectors\";\nimport { getConsumer } from \"saur-states-management/lib/selectors/consumerSelector\";\nimport { isFeatureEnabled } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport { authActions } from \"saur-states-management/lib/states/authState\";\nimport { deliveryPointActions } from \"saur-states-management/lib/states/deliveryPointState\";\nimport useEventListener from \"../common/useEventListener\";\n\n\n/**\n * Custom hook for managing event listeners for specific widgets based on user authentication\n * @returns nothing is retunred\n */\nconst useWidgetsEventListeners = () => {\n const [contractWidgetRef, setContractWidgetRef] = useState(\n null\n );\n const [eventListenerExist, setEventListenerExist] = useState(false);\n\n const dispatch = useDispatch();\n\n const authenticatedUser = useSelector(getAuthenticatedUser);\n const consumer = useSelector(getConsumer) as Consumer;\n const isInterventionHistorique = useSelector((s: States) =>\n isFeatureEnabled(s, \"Intervention-Afficher-Historique\")\n );\n\n const consumerIsContractTerminated =\n authenticatedUser?.defaultContract?.isContractTerminated;\n\n // Use Effect\n useEffect(() => {\n setContractWidgetRef(document.querySelector(\"contract-widget\"));\n }, []);\n\n useEventListener(\n \"select-family-on-click-event\",\n (e) => {\n const selectFamilyEvent = e as CustomEvent;\n if (selectFamilyEvent.detail.sectionSubscriptionIds)\n dispatch(\n authActions.setAuthentifiedUserFamily(selectFamilyEvent.detail)\n );\n },\n contractWidgetRef\n );\n\n const widgetsList = useMemo(\n () => [\n \"create-account-widget\",\n \"overconsuming-alerts-list\",\n \"forget-password-widget\",\n \"user-information-widget\",\n \"update-email-result-widget\",\n \"login-widget\",\n \"widget-exchanges\",\n \"coachconso-widget\",\n \"widget-articles\",\n \"header-payments\",\n \"next-payment\",\n \"invoice-history\",\n \"payments-history\",\n \"my-services\",\n \"last-invoice-widget\",\n \"last-meter-widget\",\n \"consumption-graph\",\n \"widget-delivery-info\",\n \"contact-us-widget\",\n \"contract-widget\",\n \"contact-widget\",\n \"widget-exchanges-switch\",\n ],\n []\n );\n\n useEffect(() => {\n if (authenticatedUser) {\n widgetsList.forEach((widget) => {\n const ref: any = document.querySelector(widget);\n if (ref) {\n ref.sectionsubscriptionid = authenticatedUser.defaultSectionId;\n ref.sectionsubscriptionids = authenticatedUser.defaultSectionIds;\n ref.customeraccountid = authenticatedUser.defaultCustomerAccountId;\n ref.refclient = authenticatedUser.clientReference;\n ref.clientid = authenticatedUser.clientId;\n ref.clientreference = authenticatedUser.clientReference;\n ref.clientfirstname = consumer?.firstName ?? \"\";\n ref.familymode = authenticatedUser.isFamilyMode;\n ref.familyid = authenticatedUser.defaultFamilyId;\n ref.pairingtechnologycode = authenticatedUser.pairingTechnologyCode;\n }\n });\n }\n }, [\n widgetsList,\n authenticatedUser?.clientId,\n authenticatedUser?.isFamilyMode,\n consumer?.firstName,\n ]);\n\n function updateSelectedContract(e: any) {\n if (\n e?.detail?.clientId &&\n e?.detail?.clientReference &&\n e?.detail?.customerAccountId &&\n e?.detail?.sectionSubscriptionId\n ) {\n\n dispatch(authActions.setAuthentifiedUserInformations(e.detail));\n \n if (isInterventionHistorique && !e.detail.isContractTerminated) {\n dispatch(\n deliveryPointActions.fetchClientWorkOrder(\n e.detail.sectionSubscriptionId\n )\n );\n }\n }\n }\n\n useEffect(() => {\n \n const component = document.querySelector(\"contract-widget\");\n\n if (component && !eventListenerExist) {\n component.addEventListener(\"contract-clicked\", (e) => {\n updateSelectedContract(e);\n });\n setEventListenerExist(true);\n }\n if (component)\n return component.removeEventListener(\"contract-clicked\", () => null);\n\n }, [\n eventListenerExist,\n authenticatedUser,\n dispatch,\n isInterventionHistorique,\n consumerIsContractTerminated,\n ]);\n};\n\nexport default useWidgetsEventListeners;\n","import React, { FC, useContext } from \"react\";\nimport CookiesBannerUI from \"saur-design-sys-web/lib/Molecules/CookiesBanner/CookiesBanner\";\nimport CookiesMenuPanel from \"saur-design-sys-web/lib/Molecules/CookiesMenuPanel/CookiesMenuPanel\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { getCookiesSettings } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport {\n settingsActions,\n CookieSetting,\n} from \"saur-states-management/lib/states/settingsState\";\n\nimport { geti18nContext } from \"../common/translation\";\nimport { States } from \"saur-states-management\";\n\nimport { getTransation } from \"saur-states-management/lib/i18n\";\nimport Button from \"saur-design-sys-web/lib/Atoms/Input/Button/Button\";\nimport Word from \"saur-design-sys-web/lib/Atoms/Word/Word\";\nimport ID_VALUES from \"../automated-tests-ids/ids\";\n\ntype Option = {\n id: number;\n title: string;\n desc: string;\n default: boolean;\n active: boolean;\n};\n\ntype Props = {\n mode: 'banner' | 'button'\n};\n\nfunction get_cookie(cookieName:string){ \n let targetCookieName = null;\n for (const cookie of document.cookie.split(\"; \")) {\n const name = cookie.split(\"=\")[0];\n if (name.startsWith(cookieName)) {\n targetCookieName = name;\n break; // Exit the loop if the cookie is found\n }\n }\n return targetCookieName;\n}\n\nfunction delete_cookie( name: string, path: string) { \n const cookieName =get_cookie( name ) \n if(cookieName) { \n document.cookie = cookieName + \"=\" +\n ((path) ? \";path=\"+path:\"\")+\n \";expires=Thu, 01 Jan 1970 00:00:01 GMT\";\n }\n}\n\nconst CookiesBanner: FC = ({mode}) => {\n const dispatch = useDispatch();\n const translation = useContext(geti18nContext());\n const cookieSettings = useSelector(getCookiesSettings) as Array<\n CookieSetting\n >;\n const showBanner = useSelector((state: States) => !state.settings.isCookiesSet);\n const params = useSelector((state: States) => state.settings.params)\n\n\n function getBrandWebSiteUrl(): string {\n if (params && params.HomeUrl) {\n return params.HomeUrl\n }\n return ''\n }\n\n const requiredCookie = { id: 3, rule: \"required\", accepted: true }\n\n\n const [cookiesPanelState, setCookiesPanelState] = React.useState(false);\n\n function toCookie(option: Option): CookieSetting | null {\n switch (option.id) {\n // case 1 session, deprecated\n case 2:\n // ANALYTIC\n return {\n id: option.id,\n rule: \"analytic\",\n accepted: option.active,\n };\n case 3:\n return {\n id: option.id,\n rule: \"required\",\n accepted: true\n }\n default:\n return null;\n }\n }\n\n function toOption(cookie: CookieSetting): Option | null {\n switch (cookie.rule) {\n // case session, deprecated\n case \"analytic\":\n return {\n id: 2,\n title: getTransation(\n (t) => t.cookiesConfig.panel.optionAnalytic.title\n )(translation),\n desc: getTransation((t) => t.cookiesConfig.panel.optionAnalytic.desc, { soft: 'Piwik' })(\n translation\n ),\n default: false,\n active: cookie.accepted,\n };\n case \"required\":\n return {\n id: 3,\n title: getTransation(\n (t) => t.cookiesConfig.panel.requiredCookie.title\n )(translation),\n desc: getTransation((t) => t.cookiesConfig.panel.requiredCookie.desc, { soft: 'Piwik' })(\n translation\n ),\n default: true,\n active: cookie.accepted,\n };\n default:\n return null;\n }\n }\n\n function getComputedData(): Array\n );\n};\n\ninterface IProps {\n isMultiContrats: boolean;\n showContractSection?: \"show\" | \"hide\";\n showActionButtons?: \"hide\" | \"show\";\n subTitle?: \"address\" | \"clientRef\";\n accessToken: string;\n currentLang: string;\n theme: string;\n currentVersion?: \"v1\" | \"v2\";\n showSectionSubscription?: \"show\" | \"hide\";\n}\n\nconst ContractSelector = memo(\n ({\n isMultiContrats,\n showContractSection,\n showActionButtons,\n subTitle,\n accessToken,\n currentLang,\n theme,\n currentVersion,\n showSectionSubscription,\n }: IProps) => {\n \n return (\n <>\n {isMultiContrats && (\n \n \n \n )}\n \n );\n }\n);\n\nexport const ContentLoggedWrapperStyles = css`\n .content-logged-wrapper {\n .multiContractContainer {\n margin-bottom: 20px;\n }\n .clw-background-wave {\n ${onlyForDesktop}\n width: 100%;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n }\n .clw-background-wave-mobile {\n ${onlyForMobile}\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n .clw-main-content-row {\n position: relative;\n flex: 1;\n flex-grow: 1;\n background-color: ${(props: ThemeType) =>\n props.theme.colors.primaryLight};\n min-height: 100vh;\n @media ${device.mobile} {\n padding-top: 64px;\n }\n @media ${device.tablet} {\n padding-top: 90px;\n }\n }\n .clw-content {\n width: calc(100% - 40px);\n @media ${device.mobile} {\n padding: 30px 20px 20px 20px;\n align-self: auto;\n }\n @media ${device.tablet} {\n padding: 30px 20px 20px 20px;\n max-width: 1063px;\n align-self: auto;\n }\n @media ${device.desktop} {\n align-self: center;\n }\n }\n .clw-main-content {\n background-color: ${(props: ThemeType) =>\n props.theme.colors.primaryLight};\n min-height: 100vh;\n @media ${device.mobile} {\n border-top-left-radius: 0;\n background: url(\"/assets/bgWave-consumption-mobile.svg\") no-repeat;\n background-position: bottom;\n }\n @media ${device.tablet} {\n border-top-left-radius: 60px;\n background: url(\"/assets/bgWave-consumption-desktop.svg\") no-repeat;\n background-position: bottom;\n }\n &.dashboard {\n @media ${device.mobile} {\n border-top-left-radius: 0;\n background: url(\"/assets/wave-mobile.svg\") no-repeat;\n background-position: bottom;\n }\n @media ${device.tablet} {\n border-top-left-radius: 60px;\n background: url(\"/assets/wave-desktop.svg\") no-repeat;\n background-position: bottom;\n }\n }\n }\n }\n`;\n\nexport default ContentLoggedWrapper;\n","import React, { FC, ReactElement } from \"react\";\nimport AppFooter from \"./AppFooter\";\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport { css } from \"styled-components\";\n\ntype IProps = {\n children: ReactElement;\n};\n\n\n// to wrap unlogged screens with footer\nconst ContentUnloggedWrapper: FC = ({ children }) => {\n return (\n <>\n \n {children}\n \n \n \n );\n};\n\nexport const ContentUnloggedWrapperStyles = css`\n .content-unlogged-wrapper {\n min-height: 100vh;\n }\n`;\n\nexport default ContentUnloggedWrapper;\n","import React, { FC, useCallback, useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport { getLanguage } from \"saur-states-management/lib/selectors/settingsSelectors\";\n\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport Word from \"saur-design-sys-web/lib/Atoms/Word/Word\";\nimport AppLogo from \"saur-design-sys-web/lib/Atoms/AppLogo/AppLogo\";\nimport { device, colors } from \"saur-design-sys-web/lib/Theme\";\nimport { ThemeType } from \"saur-design-sys-web/lib/BrandsConfig\";\nimport { createGlobalStyle } from \"styled-components\";\nimport { onlyForDesktop, onlyForMobile } from \"../common/styles\";\nimport { usePath } from \"../common/navigation\";\nimport { langTypes } from \"saur-states-management/lib/i18n\";\nimport { authActions } from \"saur-states-management/lib/states/authState\";\nimport { settingsActions } from \"saur-states-management/lib/states/settingsState\";\nimport useRequestScript from \"../common/useRequestScript\";\nimport UserLight from \"saur-states-management/lib/models/userLight\";\nimport { persistor } from \"../configStore\";\n\ntype LoginScreenProps = {};\n\nconst CCLLoadingScreen: FC = () => {\n useRequestScript([\"login-script\"]);\n const lang = useSelector(getLanguage) as langTypes;\n const dispatch = useDispatch();\n const history = useHistory();\n const { getPath } = usePath();\n const [ssoRef, setSsoRef] = useState(null)\n const [loginInformation, setLoginInformation] = useState(null)\n\n useEffect(() => {\n setSsoRef(document.getElementById(\"sso-ccl\"))\n }, []);\n\n useEffect(() => {\n if (ssoRef && !loginInformation) {\n window.addEventListener(\"message\", (event) => {\n if (event.origin !== process.env.REACT_APP_CCL_URL)\n return;\n\n if (event?.data?.command === 'init' && event.source)\n event.source.postMessage({ command: 'acknowledged' }, { targetOrigin: event.origin });\n else if (event.data && !loginInformation) {\n setLoginInformation(JSON.parse(event.data))\n }\n });\n }\n }, [ssoRef, loginInformation])\n\n const goToDashboard = useCallback((e: any) => {\n persistor.persist();\n dispatch(authActions.setToken(e.detail.token));\n const user = new UserLight({\n clientId: e.detail.clientId,\n firstName: e.detail.firstName,\n lastName: e.detail.lastName,\n defaultContractId: e.detail.defaultContractId,\n defaultDeliveryPointId: e.detail.defaultDeliveryPointId,\n defaultContract: e.detail.defaultContract,\n defaultSectionId: e.detail.defaultSectionId,\n defaultSectionIds: [e.detail.defaultSectionId],\n clientReference: e.detail.clientReference,\n defaultCustomerAccountId: e.detail.defaultCustomerAccountId,\n isFamilyMode: false,\n isEligibleCoachConso: false,\n isEligibleNewFeaturesMessage: false,\n pairingTechnologyCode: e.detail.pairingTechnologyCode,\n isMultiTargetAlertsEnabled: e.detail.isMultiTargetAlertsEnabled,\n defaultFamilyId: \"\"\n })\n\n dispatch(authActions.setAuthentifiedUser(user));\n dispatch(settingsActions.getUserBrandParameters());\n dispatch(authActions.setExpireDateToken(e.detail.expireDate));\n dispatch(authActions.setRefreshToken(e.detail.refreshToken));\n history.push(`/${lang}${getPath(\"dashboard\")}`);\n }, [dispatch, getPath, history, lang])\n\n useEffect(() => {\n if (loginInformation && loginInformation.token?.length && loginInformation.clientId?.length) {\n sessionStorage.setItem(\"sso-connection\", JSON.stringify(true));\n goToDashboard({ detail: loginInformation })\n }\n }, [loginInformation, goToDashboard])\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst Styles = createGlobalStyle`\n.sds-reset-style{\n .CCLLoadingScreen {\n height: 100vh;\n .LoginScreen-main-content {\n flex: 1;\n @media ${device.mobile} {\n flex-direction: column;\n }\n @media ${device.tablet} {\n flex-direction: row;\n align-items: stretch;\n }\n .LeftPanelContainerTitle {\n ${onlyForDesktop}\n justify-content: center;\n align-items: center;\n }\n .BackButtonMobile {\n ${onlyForMobile}\n position: absolute;\n left: 4%;\n top: 50%;\n transform: translateY(-50%);\n svg {\n width: 20px;\n height: 20px;\n path {\n fill: ${colors.white}\n }\n }\n }\n .BackButtonDesktop {\n ${onlyForDesktop}\n .sds-button {\n background-color: ${colors.white};\n }\n .sds-word {\n color: ${colors.black}\n }\n }\n .LeftPanelRow {\n position: relative;\n background-color: ${(props: ThemeType) =>\n props.theme.colors.primaryLight};\n @media ${device.mobile} {\n width: 100%;\n height: 51px;\n }\n @media ${device.tablet} {\n width: 100%;\n height: auto;\n }\n }\n .LeftPanel {\n flex: 1;\n align-self: stretch;\n background-color: ${(props: ThemeType) =>\n props.theme.colors.primaryDark};\n @media ${device.mobile} {\n justify-content: center;\n flex-direction: row;\n border-bottom-left-radius: 30px;\n border-bottom-right-radius: 0px;\n height: none;\n }\n @media ${device.tablet} {\n justify-content: space-around;\n align-items: center;\n flex-direction: column;\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 60px;\n }\n }\n .LeftPanelTitle {\n ${onlyForDesktop};\n text-align: center;\n color: ${(props: ThemeType) =>\n props.theme.texts.lightColor};\n &:first-child {\n margin-bottom: 10px;\n }\n }\n .LeftPanelDescWord {\n padding: 0 8%;\n color: ${(props: ThemeType) =>\n props.theme.texts.lightColor};\n ${onlyForDesktop}\n }\n .MobileTitle {\n color: ${(props: ThemeType) =>\n props.theme.texts.lightColor};\n text-align: center;\n ${onlyForMobile}\n }\n .LeftPanelIllustration {\n max-width: 380px;\n margin-bottom:100px;\n ${onlyForDesktop}\n }\n .RightPanelRow {\n position: relative;\n text-align:center;\n \n background-color: ${(props: ThemeType) =>\n props.theme.colors.primaryDark};\n align-items: stretch;\n @media ${device.mobile} {\n width: 100%;\n height: calc(100vh - 51px);\n }\n @media ${device.tablet} {\n width: 50%;\n height: 100vh;\n display:none\n }\n }\n .mobile-ccl-access-title{\n margin-bottom:50px;\n }\n .RightPanel {\n flex: 1;\n align-self: stretch;\n @media ${device.mobile} {\n border-top-right-radius: 30px;\n border-top-left-radius: 0px;\n padding: 4% 6%;\n height: none;\n }\n @media ${device.tablet} {\n padding: 0 8%;\n border-top-right-radius: 0px;\n border-top-left-radius: 60px;\n }\n background-color: ${(props: ThemeType) =>\n props.theme.colors.primaryLight};\n }\n .RightPanelContent {\n flex: 1;\n justify-content: center;\n padding: 20px 0;\n }\n .ImageBadge {\n width: 90px;\n height: 44px;\n &:first-child {\n margin: 0 30px;\n }\n }\n .RightPanelFooter {\n ${onlyForDesktop} \n flex-direction: row;\n margin-bottom: 8%;\n align-items: center;\n }\n .BadgesContainer {\n flex-direction: row;\n align-self: flex-end;\n justify-content: center;\n }\n }\n\n .LoginScreen-disco-modal {\n .card-header {\n display: none;\n }\n }\n }\n}\n`;\n\nexport default CCLLoadingScreen;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useCallback, useState } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { getLanguage } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport {\n onlyForDesktop,\n onlyForMobile,\n device,\n elevation,\n colors,\n} from 'saur-design-sys-web/lib/Theme'\nimport { usePath } from \"../common/navigation\";\nimport { useHistory } from \"react-router-dom\";\nimport { createGlobalStyle } from \"styled-components\";\nimport BubbleHeader from \"../templates/BubbleHeader\";\nimport { langTypes } from \"saur-states-management/lib/i18n\";\nimport { States } from \"saur-states-management\";\nimport qs from \"querystring\";\nimport useRequestScript from \"../common/useRequestScript\";\nimport { useMatomo } from '@datapunt/matomo-tracker-react';\nimport MatomoTags from 'saur-states-management/lib/i18n/matomo-tags';\nimport useEventListener from '../common/useEventListener'\nimport isAnalyticClientAgree from '../common/isAnalyticClientAgree'\n\nimport { settingsActions } from \"saur-states-management/lib/states/settingsState\";\nimport { ThemeType } from \"saur-design-sys-web/lib/BrandsConfig\";\n\n// for testing on browser\n// const exempleTokenNotValid = \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVfYXQiOiIyMDIwLTA2LTAzVDEwOjMwOjMyLjQ0OVoifQ.yBIztqRk7qsv74Q-pI0vJJGCcUNy-l5h3yRN0mWc2-w\"\n// const exempleTokenNewValid = \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVfYXQiOiIyMDMwLTA2LTAzVDEwOjMwOjMyLjQ0OVoifQ.Cj440bnNhsx2HY8Cqzk2zLuxmYMeoNtQ4EbGVpdCKy8\"\n\nconst CreateAccountScreen = () => {\n useRequestScript([\"move-in-script\"]);\n const history = useHistory();\n const lang = useSelector(getLanguage) as langTypes;\n const { getPath } = usePath();\n const settingState = useSelector((state: States) => state.settings);\n const { trackEvent } = useMatomo()\n const _isAnalyticClientAgree = useSelector(isAnalyticClientAgree)\n const [moveInWidgetRef, setMoveInWidgetRef] = useState(null)\n const dispatch = useDispatch();\n\n\n useEffect(() => {\n const allowCookies = qs.parse(history.location.search)[\"?allowCookies\"]?.toString();\n if (allowCookies === \"accept-all\") {\n dispatch(settingsActions.updateCookiesSetting([{\n id: 1,\n rule: \"session\",\n accepted: true,\n }, {\n id: 2,\n rule: \"analytic\",\n accepted: true,\n }]));\n } else if (allowCookies === \"reject-all\") {\n dispatch(settingsActions.updateCookiesSetting([{\n id: 1,\n rule: \"session\",\n accepted: false,\n }, {\n id: 2,\n rule: \"analytic\",\n accepted: false,\n }]));\n }\n }, [history.location, dispatch])\n\n const handlerMatomoEvent = useCallback(\n ({ detail }) => {\n let cclAccess = \"\";\n if (sessionStorage.getItem(\"sso-connection\"))\n cclAccess = \" [Accès CCL]\"\n if (_isAnalyticClientAgree) {\n const { categorie, action, name } = detail\n trackEvent({\n category: categorie,\n action: action + cclAccess,\n name: name\n })\n }\n },\n [_isAnalyticClientAgree]\n );\n\n useEventListener(MatomoTags.direflowEventName, handlerMatomoEvent, moveInWidgetRef);\n\n useEventListener('go-to-log-in-page', (e) => {\n goToLogin();\n }, moveInWidgetRef);\n\n useEffect(() => {\n setMoveInWidgetRef(document.querySelector(\n \"move-in-widget\"\n ))\n if (window.scrollY > 0) {\n // reset scroll page\n window.scrollTo(0, 0);\n }\n\n }, []);\n\n function goToLogin() {\n history.push(`/${lang}${getPath(\"login\")}`);\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst Styles = createGlobalStyle`\n .sds-reset-style {\n .subscription-screen {\n .BubbleHeader .BubbleHeader-header .BubbleHeader-header-row .BubbleHeader-BackButtonMobile{\n display:none;\n }\n .subscription-page-background{\n min-height:100vh;\n background-color: ${(props: ThemeType) =>\n props.theme.colors.primaryLight};\n }\n .move-in-back-button{\n @media ${device.mobile} {\n position:absolute;\n top:0;\n }\n @media ${device.tablet} {\n position:initial;\n }\n }\n \n .error-card{\n margin-top:30px;\n svg{\n vertical-align: middle;\n }\n .error-message{\n color: ${colors.error};\n padding-left:10px;\n display: inline-block;\n vertical-align: middle;\n }\n .redirect-button{\n margin: 30px auto 15px auto;\n }\n }\n .subscription-screen-content {\n .move-in-widget .card-wrapper {\n @media ${device.tablet} {\n width:600px;\n margin:auto;\n }\n }\n\t\t\tflex: 1;\n\t\t\t@media ${device.mobile} {\n\t\t\t\tpadding: 20px;\n\t\t\t}\n\t\t\t@media ${device.desktop} {\n\t\t\t\tpadding: 0;\n width: 30%;\n min-width: 920px;\n\t\t\t}\n @media ${device.tablet} {\n margin: 200px auto;\n }\n\t\t\tmargin-top: 10px;\n\t\t\tz-index:2;\n\t\t}\n .subscription-screen-background {\n position: fixed;\n bottom: 0;\n z-index: ${elevation.base.default};\n &.mobile {\n ${onlyForMobile}\n }\n &.desktop {\n ${onlyForDesktop}\n }\n }\n }\n }\n`;\n\nexport default CreateAccountScreen;\n","import React, { FC, useState, useEffect, useContext } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { getValidateAlertContactStatus } from \"saur-states-management/lib/selectors/exchangeSelectors\";\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport { device } from \"saur-design-sys-web/lib/Theme\";\nimport { useLocation } from \"react-router-dom\";\nimport { createGlobalStyle } from \"styled-components\";\nimport ContentUnloggedWrapper from \"../templates/ContentUnloggedWrapper\";\nimport { geti18nContext } from \"../common/translation\";\nimport Word from \"saur-design-sys-web/lib/Atoms/Word/Word\";\nimport { exchangeAction } from \"saur-states-management/lib/states/exchangeState\";\nimport Loader from \"saur-design-sys-web/lib/Atoms/Loader/Loader\";\nimport RainIcon from \"saur-design-sys-web/lib/Icons/RainIcon\";\nimport WaterSavingBig from \"saur-design-sys-web/lib/Icons/WaterSavingBig\";\nimport ID_VALUES from \"../automated-tests-ids/ids\";\n\nconst AlertContactScreen: FC<{}> = () => {\n const translation = useContext(geti18nContext()); \n const dispatch = useDispatch();\n const location = useLocation();\n const searchParams = new URLSearchParams(location.search);\n const token = searchParams.get(\"token\");\n const validationStatus = useSelector(getValidateAlertContactStatus);\n const [status, setStatus] = useState(null);\n const [codeError, setCodeError] = useState(null);\n \n useEffect(() => {\n if (token) {\n setTimeout(\n () => dispatch(exchangeAction.validateAlertContact(token)),\n 100\n );\n }\n }, [token, dispatch]);\n\n useEffect(() => {\n setStatus(validationStatus.status);\n setCodeError(validationStatus.errorCode);\n }, [validationStatus]);\n\n const getValue = () => {\n const statusOfValidation = status === \"success\";\n const translations = translation?.exchanges.validateAlertContact;\n let title;\n let firstParagraph;\n let secondParagraph;\n let icon;\n\n if (statusOfValidation) {\n title = translations?.titleSuccess;\n firstParagraph = translations?.firstParagraphSuccess;\n secondParagraph = \"\";\n icon = ;\n } else {\n if (codeError === 409) {\n title = translations?.alreadyAddedAsCoReceiver;\n firstParagraph = translations?.alertCoReceiver;\n secondParagraph = \"\";\n icon = ;\n } else {\n title = translations?.titleFailure;\n firstParagraph = translations?.firstParagraphFailure;\n secondParagraph = translations?.secondParagraphFailure;\n icon = ;\n }\n }\n\n return {\n title,\n firstParagraph,\n secondParagraph,\n icon\n };\n };\n\n return (\n <>\n \n \n \n \n \n {status ? (\n \n \n \n {getValue().icon}\n \n \n {codeError !== 409 &&\n \n }\n \n ) : (\n \n )}\n \n \n \n \n \n );\n};\n\nconst Styles = createGlobalStyle`\n.sds-reset-style{\n .alert_contact_screen-container {\n position: relative;\n min-height: 100vh;\n\n .alert_contact_screen-row { \n flex: 1;\n .alert_contact_screen-content-container {\n flex: 1;\n padding: 0 20px;\n align-items: center;\n @media ${device.mobile} {\n justify-content: flex-start;\n background: url('/assets/wave-mobile.svg');\n background-size: cover;\n }\n @media ${device.tablet} {\n border-top-right-radius: 0;\n justify-content: center;\n background: url('/assets/wave-desktop.svg');\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover; \n } \n .alert_contact_screen-content {\n display: flex;\n align-items: center;\n .alert_contact_screen-title {\n margin-top: 20px;\n text-align: center;\n }\n .alert_contact_screen-first-paragraph, .alert_contact_screen-second-paragraph {\n text-align: center;\n }\n .alert_contact_screen-icon svg {\n margin-top: 28px;\n margin-bottom: 14px;\n width: 200px;\n height: 200px;\n \n @media ${device.tablet} {\n position: initial;\n display: initial;\n }\n }\n }\n }\n }\n }\n}\n`;\n\nexport default AlertContactScreen;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport { useLocation } from \"react-router-dom\";\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport {\n elevation,\n onlyForDesktop,\n onlyForMobile,\n device\n} from \"saur-design-sys-web/lib/Theme\";\nimport { States } from \"saur-states-management\";\nimport { getLanguage } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport { createGlobalStyle } from \"styled-components\";\nimport useRequestScript from \"../common/useRequestScript\";\n\nconst DeliveryPointRequestTracking = () => {\n useRequestScript([\"delivery-point-request-tracking-script\"]);\n\n const lang = useSelector(getLanguage) as string;\n const theme = useSelector((state: States) => state.settings.theme);\n\n const { search } = useLocation();\n const requestId = new URLSearchParams(search).get(\"id\"); // get from query params ?id={connectionRequestId}\n\n return (\n \n \n\n \n \n \n \n \n \n );\n};\n\nconst Styles = createGlobalStyle`\n.sds-reset-style {\n .screen-deliverypoint-request-tracking {\n padding: 20px;\n z-index: ${elevation.sup.top};\n @media ${device.tablet} {\n padding: 60px 0;\n }\n }\n .CreateAccountScreen-background {\n position: fixed;\n bottom: 0;\n &.mobile {\n ${onlyForMobile}\n }\n &.desktop {\n ${onlyForDesktop}\n z-index: ${elevation.sup.under};\n height: 100%;\n width: 100%;\n }\n }\n .content-unlogged-wrapper {\n min-height: 90vh !important;\n background-color: rgb(247, 249, 251);\n min-width: fit-content;\n }\n .AppFooter{\n z-index: ${elevation.sup.top};\n position: relative;\n width: 100%;\n height: fit-content;\n @media ${device.tablet} {\n height: 10vh !important;\n } \n .MainFooterContainer {\n height: fit-content;\n @media ${device.tablet} {\n height: 10vh !important;\n } \n }\n }\n .sds-m-cookiebanner{\n z-index: ${elevation.high.top};\n }\n}\n\n`;\n\nexport default DeliveryPointRequestTracking;\n","import React, { FC, useContext, useEffect } from \"react\";\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport { createGlobalStyle } from \"styled-components\";\nimport useRequestScript from \"../common/useRequestScript\";\nimport { States } from \"saur-states-management\";\nimport ID_VALUES from \"../automated-tests-ids/ids\";\nimport { langTypes } from \"saur-states-management/lib/i18n\";\nimport { useSelector } from \"react-redux\";\nimport { getLanguage, isFeatureEnabled } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport BubbleHeader from \"../templates/BubbleHeader\";\nimport { useHistory } from \"react-router-dom\";\nimport { usePath } from \"../common/navigation\";\nimport { device } from \"saur-design-sys-web/lib/Theme\";\nimport { geti18nContext } from \"../common/translation\";\n\nconst ContractCancellationScreen : FC<{}> = () => {\n const translation = useContext(geti18nContext()); \n const history = useHistory();\n const { getPath } = usePath();\n const screenTitle = translation?.ContractCancellation.title;\n const state = useSelector((s: States) => s);\n const contractCancellationEnabled = isFeatureEnabled(state, \"Cancel-Ease\")\n\n\n useRequestScript([\n \"delivery-point-info-script\",\n ]);\n \n const settingState = useSelector((state: States) => state.settings);\n const lang = useSelector(getLanguage) as langTypes;\n\n useEffect(() => {\n if(!contractCancellationEnabled){\n goToLogin();\n }\n }, []);\n \n function goToLogin() {\n history.push(`/${lang}${getPath(\"login\")}`);\n }\n\n return (\n <>\n \n \n \n \n \n \n \n );\n};\n\nconst Styles = createGlobalStyle`\n&.cancelation_contract_contact_screen-container{\n widget-delivery-info{\n @media ${device.mobile} {\n padding: 20px;\n }\n @media ${device.desktop} {\n padding: 0;\n min-width: 1130px;\n width: 30%;\n }\n @media ${device.tablet} {\n margin: 200px auto;\n }\n }\n}\n`;\n\nexport default ContractCancellationScreen;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, {\n useEffect,\n FC,\n ReactElement,\n useContext,\n lazy,\n Suspense,\n useRef\n} from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { settingsActions } from \"saur-states-management/lib/states/settingsState\";\nimport { getAccessToken, getAuthenticatedUser } from \"saur-states-management/lib/selectors/authSelectors\";\nimport {\n getLanguage,\n isFeatureEnabled,\n getCookiesSettings\n} from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport { useMatomo } from '@datapunt/matomo-tracker-react';\nimport { langTypes, getTransation } from \"saur-states-management/lib/i18n\";\nimport { Switch, Route, Redirect, useParams, useHistory, useLocation } from \"react-router-dom\";\nimport { usePath } from \"../common/navigation\";\nimport ContentLoggedWrapper from \"../templates/ContentLoggedWrapper\";\nimport ContentUnloggedWrapper from \"../templates/ContentUnloggedWrapper\";\nimport { States } from \"saur-states-management\";\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport Loader from \"saur-design-sys-web/lib/Atoms/Loader/Loader\";\n\nimport { css } from \"styled-components\";\nimport CookiesBanner from \"../components/CookiesBanner\";\n\nimport { geti18nContext } from \"../common/translation\";\nimport CCLLoadingScreen from \"../screens/CCLLoadingScreen\";\nimport SubscriptionScreen from \"../screens/SubscriptionScreen\";\nimport AlertContactScreen from \"../screens/AlertContactScreen\";\nimport DeliveryPointRequestTrackingScreen from \"../screens/DeliveryRequestTrackingScreen\";\nimport ContractCancellationScreen from \"../screens/ContractCancellationScreen\";\n\n\nconst LoginScreen = lazy(() => import(\"../screens/LoginScreen\"));\nconst DashboardScreen = lazy(() => import(\"../screens/DashboardScreen\"));\nconst MyConsomptionScreen = lazy(() =>\n import(\"../screens/MyConsomptionScreen\")\n);\nconst HelpContactsScreen = lazy(() => import(\"../screens/HelpContactsScreen\"));\nconst MyContractScreen = lazy(() => import(\"../screens/MyContractScreen\"));\nconst MyExchangesScreen = lazy(() => import(\"../screens/MyExchangesScreen\"));\nconst MyPaiementsScreen = lazy(() => import(\"../screens/MyPaiementsScreen\"));\nconst ForgetPasswordScreen = lazy(() =>\n import(\"../screens/ForgetPasswordScreen\")\n);\nconst PaymentResultScreen = lazy(() =>\n import(\"../screens/PaymentResultScreen\")\n);\nconst CreateAccountScreen = lazy(() =>\n import(\"../screens/CreateAccountScreen\")\n);\nconst UpdateEmailValidationScreen = lazy(() =>\n import(\"../screens/UpdateEmailValidationScreen\")\n);\n\nconst UpdateEmailWithBillingOrIbanScreen = lazy(() =>\n import(\"../screens/UpdateEmailWithBillingOrIbanScreen\")\n);\nconst MyProfil = lazy(() => import(\"../screens/MyProfil\"));\n\nexport const PageNamesForMatomo = {\n login: 'Authent',\n forgetPassword: 'Mdp oublié',\n createAccount: 'Création compte',\n home: 'Homepage',\n contract: 'Contrat',\n consumption: 'Conso',\n help: 'Aide-contact',\n exchanges: 'Echanges',\n paiements: 'Paiements-facture',\n profil: 'Profile',\n paiementResult: 'Paiement-resultat',\n createAccountThirdStep: 'Création compte - confirmation',\n updateEmailValidation: 'Mise à jour email - validation',\n paymentReturn: 'Retour de paiement',\n updateEmailOffline: 'Changer mon adresse email avec mon iban ou ma facture',\n subscription: \"page d'abonnement\",\n contactEmailValidation: \"Validation email contact\",\n deliveryPointRequestsTracking: \"Suivi des demandes de branchement\",\n contractCancelation: \"Résiliation de contract\",\n}\n\nexport const CheckLang: FC<{ children: ReactElement }> = ({ children }) => {\n const params = useParams<{ lang: string }>();\n const dispatch = useDispatch();\n const currentLang = useSelector(getLanguage) as langTypes;\n const settingState = useSelector((state: States) => state.settings);\n const translation = useContext(geti18nContext());\n const clientArea = getTransation((t) => t.common.clientArea)(translation);\n\n if (settingState.params) {\n document.title = `${settingState.params.BrandFullName} - ${clientArea}`;\n }\n\n useEffect(() => {\n if (params.lang && params.lang !== currentLang) {\n dispatch(settingsActions.setLanguage(params.lang));\n }\n }, [params]);\n return children;\n};\n\nconst LoaderScreen = () => (\n \n \n \n);\n\nexport const LoaderScreenStyles = css`\n .LoaderScreen {\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n position: fixed;\n .LoaderScreenLoader {\n top: 50%;\n left: 50%;\n position: fixed;\n transform: translateX(-50%) translateY(-50%);\n }\n }\n`;\n\nconst Navigation = () => {\n const { getPath } = usePath();\n const currentLang = useSelector(getLanguage) as langTypes;\n const state = useSelector((_state: States) => _state);\n const translation = useContext(geti18nContext());\n\n function usePrevious(value: any) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n }\n\n\n const history = useLocation();\n const nav = useHistory();\n const cookiesSettings = useSelector(getCookiesSettings);\n const { trackPageView } = useMatomo();\n const prevHistoryPath = usePrevious(history.pathname);\n\n\n useEffect(() => {\n if (history.hash.length) {\n let route = history.hash.replace('#', '');\n nav.push(route);\n }\n }, [history])\n\n function getMatomoName(uriPathName: string) {\n switch (history.pathname) {\n case `/${currentLang}/${getTransation((t) => t.navigations.login.uri)(translation)}`:\n return PageNamesForMatomo.login\n case `/${currentLang}/${getTransation((t) => t.navigations.home.uri)(translation)}`:\n return PageNamesForMatomo.home\n case `/${currentLang}/${getTransation((t) => t.navigations.createAccountFirstSteps.uri)(translation)}`:\n return PageNamesForMatomo.createAccount\n case `/${currentLang}/${getTransation((t) => t.navigations.forgetPassword.uri)(translation)}`:\n return PageNamesForMatomo.forgetPassword\n case `/${currentLang}/${getTransation((t) => t.navigations.myContract.uri)(translation)}`:\n return PageNamesForMatomo.contract\n case `/${currentLang}/${getTransation((t) => t.navigations.myPaiements.uri)(translation)}`:\n return PageNamesForMatomo.paiementResult\n case `/${currentLang}/${getTransation((t) => t.navigations.myConsumption.uri)(translation)}`:\n return PageNamesForMatomo.consumption\n case `/${currentLang}/${getTransation((t) => t.navigations.helpAndContacts.uri)(translation)}`:\n return PageNamesForMatomo.help\n case `/${currentLang}/${getTransation((t) => t.navigations.myProfile.uri)(translation)}`:\n return PageNamesForMatomo.profil\n case `/${currentLang}/${getTransation((t) => t.navigations.myExchanges.uri)(translation)}`:\n return PageNamesForMatomo.exchanges\n case `/${currentLang}/${getTransation((t) => t.navigations.createAccountThirdStep.uri)(translation)}`:\n return PageNamesForMatomo.createAccountThirdStep\n case `/${currentLang}/${getTransation((t) => t.navigations.updateEmailValidation.uri)(translation)}`:\n return PageNamesForMatomo.updateEmailValidation\n case `/${currentLang}/${getTransation((t) => t.navigations.paymentReturn.uri)(translation)}`:\n return PageNamesForMatomo.paymentReturn\n case `/${currentLang}/${getTransation((t) => t.navigations.updateEmailByBillingOrIban.uri)(translation)}`:\n return PageNamesForMatomo.updateEmailOffline\n case `/${currentLang}/${getTransation((t) => t.navigations.moveIn.uri)(translation)}`:\n return PageNamesForMatomo.subscription\n case `/${currentLang}/${getTransation((t) => t.navigations.contactEmailValidation.uri)(translation)}`:\n return PageNamesForMatomo.contactEmailValidation\n case `/${currentLang}/${getTransation((t) => t.navigations.deliveryPointRequestsTracking.uri)(translation)}`:\n return PageNamesForMatomo.contactEmailValidation\n case `/${currentLang}/${getTransation((t) => t.navigations.contractCancelation.uri)(translation)}`:\n return PageNamesForMatomo.contractCancelation\n }\n }\n\n useEffect(() => {\n const isAnalyticsAgree = (): boolean => {\n if (cookiesSettings) {\n const cookie = cookiesSettings.find((cs) => cs.id === 2)\n if (cookie) {\n return cookie.accepted\n }\n }\n return true\n }\n if (isAnalyticsAgree() && process.env.NODE_ENV === 'production') {\n if (history.pathname !== prevHistoryPath) {\n let cclAccess = \"\";\n if (sessionStorage.getItem(\"sso-connection\"))\n cclAccess = \" [Accès CCL]\"\n trackPageView({ documentTitle: getMatomoName(history.pathname) + cclAccess })\n }\n }\n }, [cookiesSettings, trackPageView, history.pathname])\n\n const authenticatedUser = useSelector(getAuthenticatedUser);\n\n const consumerIsContractTerminated = authenticatedUser?.defaultContract?.isContractTerminated;\n const isFamilyMode = authenticatedUser?.isFamilyMode || false\n\n function renderRouteContent(\n element: React.ReactElement,\n isLogged: boolean,\n isDashboard: boolean = false\n ) {\n return (\n \n <>\n {isLogged ? (\n \n {element}\n \n ) : (\n \n {element}\n \n )}\n \n \n \n );\n }\n\n\n function showUpdateEmail(): boolean {\n return isFeatureEnabled(state, \"Client-Identifiant-Bloque\")\n }\n\n return (\n }>\n \n {(!consumerIsContractTerminated || isFamilyMode) && (\n \n {renderRouteContent(, true, true)}\n \n )}\n {(!consumerIsContractTerminated || isFamilyMode) && (\n \n {renderRouteContent(, true)}\n \n )}\n \n {renderRouteContent(, true)}\n \n\n {!isFamilyMode && \n {renderRouteContent(, true)}\n }\n {!isFamilyMode && \n {renderRouteContent(, true)}\n }\n {!isFamilyMode && \n {renderRouteContent(, true)}\n }\n \n {renderRouteContent(, true)}\n \n {!isFamilyMode && \n {renderRouteContent(, false)}\n }\n \n {renderRouteContent(, false)}\n \n \n {renderRouteContent(, false)}\n \n\n {showUpdateEmail() && (\n \n {renderRouteContent(, false)}\n \n )}\n\n \n {renderRouteContent(\n ,\n false\n )}\n \n \n {renderRouteContent(\n ,\n false\n )}\n \n \n {renderRouteContent(\n ,\n false\n )}\n \n \n {renderRouteContent(, false)}\n \n \n \n \n \n {renderRouteContent(, false)}\n \n \n {renderRouteContent(, false)}\n \n \n {renderRouteContent(, false)}\n \n \n {renderRouteContent(\n ,\n false\n )}\n \n \n {\n !consumerIsContractTerminated || isFamilyMode ?\n < Redirect to={`/${currentLang}${getPath(\"dashboard\")}`} /> :\n < Redirect to={`/${currentLang}${getPath(\"myBillings\")}`} />\n }\n \n \n \n );\n};\n\n\nconst PrivateRoute: FC<{\n children: ReactElement;\n path: string;\n exact?: boolean;\n}> = ({ children, path, exact = false }) => {\n const accessToken = useSelector(getAccessToken);\n const currentLang = useSelector(getLanguage) as langTypes;\n\n const { getPath } = usePath();\n const supportedLanguages = [\"fr\", \"en\"];\n\n return (\n {\n function checkLang() {\n if (props.match.params.lang && supportedLanguages.includes(props.match.params.lang)) {\n return ;\n } else {\n return ;\n }\n }\n if (!!accessToken) {\n return children;\n } else {\n return checkLang();\n }\n }}\n />\n );\n};\n\nexport default Navigation;\n","import { createGlobalStyle } from \"styled-components\";\nimport { DesktopMenuStyles } from \"./components/DesktopMenu\";\nimport { MobileMenuStyles } from \"./components/MobileMenu\";\nimport { AccountIconStyles } from \"./components/Icons/AccountIcon\";\nimport { AppFooterStyles } from \"./templates/AppFooter\";\nimport { AppHeaderStyles } from \"./templates/AppHeader\";\nimport { BubbleHeaderStyles } from \"./templates/BubbleHeader\";\nimport { ContentLoggedWrapperStyles } from \"./templates/ContentLoggedWrapper\";\nimport { ContentUnloggedWrapperStyles } from \"./templates/ContentUnloggedWrapper\";\nimport { LoaderScreenStyles } from './components/Navigation'\n\nconst AppStyles = createGlobalStyle`\n.sds-reset-style{\n ${DesktopMenuStyles}\n ${MobileMenuStyles}\n ${AccountIconStyles}\n ${AppFooterStyles}\n ${AppHeaderStyles}\n ${BubbleHeaderStyles}\n ${ContentLoggedWrapperStyles}\n ${ContentUnloggedWrapperStyles}\n ${LoaderScreenStyles}\n}\n`;\n\nexport default AppStyles;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { ReactElement, FC, useEffect } from \"react\";\nimport { createGlobalStyle, ThemeProvider } from 'styled-components'\nimport { BrowserRouter as Router} from \"react-router-dom\";\nimport { Provider, useSelector, useDispatch } from \"react-redux\";\nimport { store, persistor, PersistGate, localsagas } from \"./configStore\";\nimport { initSagaMiddleware, States } from \"saur-states-management\";\nimport { getLanguage } from \"saur-states-management/lib/selectors/settingsSelectors\";\nimport i18n from \"saur-states-management/lib/i18n\";\nimport { getTheme, Brands } from \"saur-design-sys-web/lib/BrandsConfig\";\nimport AtomsStyles from \"saur-design-sys-web/lib/Atoms/Styles\";\nimport MoleculesStyles from \"saur-design-sys-web/lib/Molecules/Styles\";\nimport { useMatomo } from '@datapunt/matomo-tracker-react';\nimport OrganismsStyles from \"saur-design-sys-web/lib/Organisms/Styles\";\nimport ResetMeyer from \"saur-design-sys-web/lib/Common/ResetMeyer\";\nimport GlobalStyles from \"saur-design-sys-web/lib/Common/GlobalStyles\";\nimport GlobalFonts from \"saur-design-sys-web/lib/Common/GlobalFonts\";\nimport ResetInputs from \"saur-design-sys-web/lib/Common/ResetInputs\";\nimport Container from \"saur-design-sys-web/lib/Atoms/Container/Container\";\nimport Loader from \"saur-design-sys-web/lib/Atoms/Loader/Loader\";\nimport { i18nContext } from \"./common/translation\";\nimport Navigation from \"./components/Navigation\";\nimport AppStyles from \"./AppStyles\";\nimport { MatomoProvider, createInstance } from \"@datapunt/matomo-tracker-react\";\nimport { settingsActions } from \"saur-states-management/lib/states/settingsState\";\n\ninitSagaMiddleware(localsagas);\nfunction setHtmlLang(lang: string): void {\n\tlet htmlElement = document.querySelector(\"html\");\n\tif (htmlElement) {\n\t\t// @ts-ignore\n\t\thtmlElement.lang = lang;\n\t}\n}\n\n// it dispatch the theme configuration into all children\nconst ThemeWrapper: FC<{ children: ReactElement }> = ({ children }) => {\n\tconst theme = useSelector((state: States) => state.settings.theme) as Brands;\n\n\treturn {children};\n};\n\n// it dispatch the store and localstorage data into all children\nconst StoreWrapper: FC<{ children: ReactElement }> = ({ children }) => (\n\t\n\t\t\n\t\t\t{children}\n\t\t\n\t\n);\n\n// it dispatch translation into all children\nconst TranslationProvider: FC<{ children: ReactElement }> = ({ children }) => {\n\tconst lang = useSelector(getLanguage) as string;\n\tconst translationInst = i18n(lang);\n\tsetHtmlLang(lang);\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\n// Main App\nconst StoreProvider = () => (\n\t\n\t\t\n\t\n);\n\nconst App = () => {\n\tconst dispatch = useDispatch();\n\tconst isProduction = process.env.NODE_ENV === \"production\";\n\tconst matomoId = useSelector(\n\t\t(state: States) => state.settings.params?.MatomoId\n\t) as number;\n\tconst errorMsg = useSelector((state: States) => state.settings?.errorMsg);\n\tconst loading = useSelector((state: States) => state.settings?.loading);\n\tconst { trackEvent } = useMatomo();\n\tuseEffect(() => {\n\t\tdispatch(settingsActions.getBrandData());\n\t}, []);\n\n\tfunction renderLoading() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\tfunction renderApp() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\tfunction switchApp(): any {\n\t\tif (isProduction && matomoId && !errorMsg) {\n\t\t\tconst instanceMatomo = createInstance({\n\t\t\t\turlBase: process.env.REACT_APP_MATOMO_URL as string,\n\t\t\t\tsiteId: matomoId,\n\t\t\t});\n\t\t\treturn (\n\t\t\t\t{renderApp()}\n\t\t\t);\n\t\t} else if (!isProduction) {\n\t\t\treturn renderApp();\n\t\t} else if (loading) {\n\t\t\treturn renderLoading();\n\t\t} else if (errorMsg) {\n\t\t\treturn renderError();\n\t\t}\n\t\treturn ;\n\t}\n\n\tfunction renderError() {\n\t\ttrackEvent({\n category: \"Maintenance\",\n action: \"Redirection\",\n name: \"Maintenance Page\",\n });\n\t\treturn window.location.assign(\"/maintenance.html\");\n\t}\n\n\treturn (\n\t\t\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t{switchApp()}\n\t\t\t\n\t\t\n\t);\n};\n\nconst LoadingStyles = createGlobalStyle`\n.sds-reset-style{\n .main-loader {\n position: fixed;\n width: 40px;\n height: 40px;\n top: 50%;\n left: 50%; \n transform: translateX(-50%) translateY(-50%); \n }\n}\n`;\n\nexport default StoreProvider;\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.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype 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(\n process.env.PUBLIC_URL,\n window.location.href\n );\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 headers: { 'Service-Worker': 'script' }\n })\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 (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\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(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\n\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport { urlsConfig } from \"saur-states-management\";\nimport ErrorBoundary from \"saur-states-management/lib/components/ErrorBoundary\";\n// for IE11\n\nurlsConfig.setURls({\n KEYCLOAK_URL: process.env.REACT_APP_KEYCLOAK_URL,\n BASE_URL: process.env.REACT_APP_BACK_END_URL,\n ADMIN_BASE_URL: process.env.REACT_APP_ADMIN_URL,\n KEYCLOAK_CLIENT_ID: process.env.REACT_APP_KEYCLOACK_CLIENT_ID,\n KEYCLOAK_SCOPE: process.env.REACT_APP_KEYCLOACK_SCOPE,\n DELIVERYPOINT_BASE_URL: process.env.REACT_APP_DELIVERYPOINT_URL,\n HISTORY_INTERVENTION: process.env.REACT_APP_HISTORY_INTERVENTION_API,\n CONSUMER_BASE_URL: process.env.REACT_APP_CONSUMER_URL\n});\n\nReactDOM.render(\n \n \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 { useEffect } from \"react\";\n\ntype Scripts =\n | \"login-script\"\n | \"articles-script\"\n | \"exchanges-script\"\n | \"meter-script\"\n | \"delivery-point-info-script\"\n | \"delivery-point-request-tracking-script\"\n | \"user-info-script\"\n | \"contract-script\"\n | \"invoice-script\"\n | \"payment-script\"\n | \"move-in-script\"\n | \"move-in-button-script\"\n | \"consumption-script\"\n | \"coach-conso-script\"\n | \"adv-cdn\";\n\nfunction getURl(scriptType: Scripts) {\n if (scriptType === \"articles-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/articles/widget-articles.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"contract-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/contract/widget-contract.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"consumption-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/consumption/details/consumption-widget.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"delivery-point-info-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/deliverypoint/info/widget-delivery-info.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"delivery-point-request-tracking-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/deliverypointRequests/deliverypoint-requests-widgets.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"exchanges-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/exchanges/widget-exchanges.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"invoice-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/invoice/billing-widget.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"login-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/login/loginWidget.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"meter-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/meter/last-meter-widget.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"move-in-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/movein/move-in-widget.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"move-in-button-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/movein/move-in-button-widget.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"payment-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/payment/payment.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"user-info-script\")\n return `${process.env.REACT_APP_URL_TO_WIDGETS}/client/profile/userinformation-widget.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"coach-conso-script\")\n\t\treturn `${process.env.REACT_APP_URL_TO_WIDGETS}/coach_conso/widget-coach-conso.js?v=${process.env.REACT_APP_VERSION}`;\n if (scriptType === \"adv-cdn\")\n return `https://adv-cdn.net/widgets/production/bundle.js`;\n\n return null;\n}\n\nfunction useRequestScript(scriptTypes: Array) {\n useEffect(() => {\n scriptTypes.forEach((st) => {\n const dom = document.querySelector(`#${st}`);\n const url = getURl(st);\n if (!dom && url) {\n // add script tag at lazy way\n let link = document.createElement(\"script\");\n link.id = st;\n link.src = url;\n document.head.appendChild(link);\n }\n });\n }, [scriptTypes]);\n}\n\nexport default useRequestScript;\n"],"sourceRoot":""}