{"version":3,"sources":["assets/icons/ic-check.svg","assets/icons/ic-elec-off.svg","assets/icons/ic-gas-off.svg","assets/icons/ic-logo.svg","assets/icons/ic-download.png","assets/icons/ic-arrow-down.svg","assets/icons/ic-info.svg","assets/icons/ic-mister-long-arm.png","assets/icons/ic-dash-lane.svg","assets/icons/ic-small-arrow.png","assets/icons/ic-professional.svg","assets/icons/ic-individual.png","assets/icons/ic-elec-off.png","assets/icons/ic-elec-on.png","assets/icons/ic-gas-off.png","assets/icons/ic-gas-on.png","assets/icons/ic-elec-gas-off.svg","assets/icons/ic-elec-gas-on.svg","assets/icons/ic-apartment.png","assets/icons/ic-secondary.png","assets/icons/ic-collectivity-on.png","assets/icons/ic-collectivity-off.png","assets/icons/ic-bill.svg","assets/icons/ic-wekiwi.svg","assets/icons/ic-envelop.svg","assets/icons/ic-logo-wekiwi.svg","assets/icons/ic-header-logo.svg","assets/icons/ic-bot.svg","assets/icons/ic-elec-green.svg","assets/icons/ic-linkedin.svg","assets/icons/ic-instagram.svg","assets/icons/ic-facebook.svg","assets/icons/ic-youtube.svg","assets/icons/ic-twitter.svg","assets/icons/ic-certification.svg","assets/icons/ic-logo-login.svg","assets/icons/ic-avatar.svg","assets/icons/banners/ic-wkw-switch.png","assets/icons/banners/ic-logoAGLelynx.png","assets/icons/banners/ic-selectra-radins.png","assets/icons/banners/ic-ag-selectra.png","assets/icons/ic-arrow-back.svg","assets/icons/ic-arrow-next.svg","assets/icons/ic-copy-clipboard.svg","assets/icons/ic-warning.svg","assets/icons/ic-world.svg","assets/icons/ic-tree.svg","assets/icons/ic-green-energy.svg","assets/icons/ic-succes.svg","assets/icons/ic-erreur.svg","assets/icons/ic-logo-timer.svg","assets/icons/ic-download-timer.png","assets/icons/ic-close-timer.svg","assets/icons/ic-save-screen.png","assets/icons/ic-businesswoman.png","assets/icons/ic-kiwi.png","assets/documents/Document d'informations.pdf","assets/icons/ic-powered-Slimpay.png","assets/icons/ic-powered-Stripe.png","assets/icons/login-icon.png","assets/icons/confirm-icon.png","assets/icons/ic-home-details.png","assets/icons/ic-validate-details.png","assets/icons/ic-help.svg","assets/icons/ic-stripe.svg","assets/icons/ic-red-cross.svg","assets/icons/ic-elec-circle-on.png","components/CustomButton/CustomButton.js","components/CustomButton/index.js","components/CustomCheckbox/CustomCheckbox.js","components/CustomCheckbox/index.js","components/CustomInput/index.js","components/CustomInput/CustomInput.js","utils/scroll.js","components/CustomModal/CustomModal.js","components/CustomModal/index.js","components/ImageElement/index.js","components/ImageElement/ImageElement.js","constants/enums.js","components/Typography/Typography.js","components/PackageElement/PackageElement.js","components/PackageElement/index.js","utils/config.js","components/CustomDate/CustomDate.js","utils/helpers.js","components/PlanElement/PlanElement.js","components/PlanElement/index.js","components/SummaryElement/SummaryElement.js","components/SummaryElement/index.js","components/Timeline/TimelineDot.js","components/Timeline/Events.js","components/Timeline/EventsLine.js","components/Timeline/EventsBar.js","components/Timeline/HorizontalTimeline.js","components/EnergyDetail/index.js","components/EnergyDetail/EnergyDetail.js","components/EnergyGauge/EnergyGauge.js","components/EnergyGauge/index.js","components/CustomDropdownInput/index.js","components/CustomDropdownInput/CustomDropdownInput.js","components/CustomDate/index.js","utils/resources.js","components/Header/Header.js","components/Header/index.js","components/LabeledInput/LabeledInput.js","components/Footer/Footer.js","components/Footer/index.js","components/SubscriptionReset/SubscriptionReset.js","components/SubscriptionReset/index.js","components/CustomToggle/CustomToggleV2.js","components/OptionElement/OptionElement.js","components/OptionElement/index.js","components/CustomAccordion/CustomAccordion.js","components/CustomAccordion/index.js","components/StripeForm/StripeForm.js","components/StripeForm/index.js","components/TimeOne/index.js","components/CustomCalendar/CustomCalendar.js","components/CustomCalendar/index.js","components/CustomSelector/CustomSelector.js","components/Situation/TimeSlotComponent/TimeSlotComponent.js","screens/FinalSummaryScreen/Contract.actions.js","components/ValidateTimer/ValidateTimer.js","components/ValidateTimer/index.js","screens/types.js","utils/logger.js","containers/PaymentModal/PaymentModal.actions.js","screens/FinalSummaryScreen/FinalSummaryScreen.actions.js","screens/screen.js","screens/DataScreen/DataScreen.actions.js","screens/MainScreen/MainScreen.actions.js","screens/SummaryScreen/SummaryScreen.actions.js","utils/firebase/firebase.js","components/SectionLayout/SectionLayout.js","components/Typography/Title.js","screens/SurveyScreen/SurveyScreen.actions.js","screens/PackageScreen/PackageScreen.actions.js","screens/CodeScreen/CodeScreen.actions.js","components/DividerDashOr/DividerDashOr.js","webpack:///./src/assets/icons/ic-red-cross.svg?5d49","containers/CodeContainer/OfferSelector.js","utils/search.js","containers/SurveyContainer/SurveySelectorStyled.js","components/CustomSelect/CustomSelectV2.js","containers/SurveyContainer/SurveyContainer.js","containers/SurveyContainer/index.js","screens/SurveyScreen/SurveyScreen.js","screens/SurveyScreen/index.js","containers/CodeContainer/CodeContainerV2.js","utils/apiRequest.js","screens/DataScreen/DataScreen.js","screens/DataScreen/ValidateCodeEmail.js","screens/DataScreen/MinimalUserData.js","containers/PackageContainer/PackageContainer.js","containers/PackageContainer/index.js","components/LoadingOverlay/index.js","components/LoadingOverlay/LoadingOverlay.js","screens/PackageScreen/PackageScreen.js","containers/UserContainer/UserContainer.js","containers/UserContainer/index.js","screens/UserScreen/UserScreen.js","screens/UserScreen/index.js","screens/UserScreen/UserScreen.actions.js","screens/FinalPaymentScreen/FinalPaymentScreen.action.js","containers/StripeFormContainer/StripeFormContainer.js","containers/PaymentModal/PaymentCBModal.actions.js","containers/PaymentModal/PaymentModal.js","screens/ValidationDialogScreen/ValidationDialogScreen.js","screens/FailureCBScreen/FailureCBScreen.js","screens/FailureSCScreen/FailureSCScreen.js","screens/CancelSCScreen/CancelSCScreen.js","screens/FinalPaymentScreen/FinalPaymentScreen.js","components/FinalSummary/AddressDetails/AddressDetails.js","components/FinalSummary/AddressDetails/index.js","containers/FinalSummaryContainer/FinalSummaryContainer.js","containers/FinalSummaryContainer/index.js","containers/SwitchContainer/SwitchContainer.js","containers/SwitchContainer/index.js","components/FinalSummary/EnvironmentalOptions/index.js","components/FinalSummary/EnvironmentalOptions/EnvironmentalOptions.js","screens/FinalSummaryScreen/SaveDraftModal.js","screens/FinalSummaryScreen/FinalSummaryScreen.js","screens/SituationScreen/SituationScreen.actions.js","containers/SituationContainer/SituationMovedContainer.js","components/Situation/ChangeSupplierSelectComponent/ChangeSupplierSelectComponent.js","containers/SituationContainer/SituationChangeSupplierContainer.js","containers/SituationContainer/index.js","containers/SituationContainer/SituationContainer.js","screens/SituationScreen/SituationScreen.js","screens/SituationScreen/index.js","containers/SummaryContainer/index.js","containers/SummaryContainer/SummaryContainer.js","screens/SummaryScreen/SummaryScreen.js","screens/SaveScreen/SaveScreen.js","screens/FinalScreen/FinalScreen.js","utils/tags.js","screens/SectionCollapser.js","screens/MainScreen/MainScreen.js","screens/MainScreen/index.js","registerServiceWorker.js","screens/MainScreen/MainScreen.reducer.js","screens/UserScreen/UserScreen.reducer.js","screens/CodeScreen/CodeScreen.reducer.js","screens/SurveyScreen/SurveyScreen.reducer.js","screens/PackageScreen/PackageScreen.reducer.js","screens/SummaryScreen/SummaryScreen.reducer.js","screens/DataScreen/DataScreen.reducer.js","containers/PaymentModal/PaymentModal.reducer.js","store.js","root.js","index.js","assets/icons/ic-gas-circle-on.png","assets/icons/ic-elec-on.svg","assets/icons/ic-gas-on.svg"],"names":["module","exports","__webpack_require__","p","CustomButton","_ref","title","color","_ref$disabledBackgrou","disabledBackgroundColor","onClick","arrowLeft","arrowRight","disabled","onMouseEnter","_ref$lowPadding","lowPadding","className","_ref$loading","loading","react_default","a","createElement","concat","style","backgroundColor","type","index_es","icon","faCircleNotch","spin","size","marginLeft","marginRight","src","Arrow","alt","CheckBoxVariant","Object","freeze","V1","V2","CustomCheckboxV1","_ref2","text","id","checked","handleCheck","imageSrc","link","img","htmlFor","onChange","value","href","target","CustomCheckboxV2","_ref3","children","_ref3$defaultValue","defaultValue","_ref3$setValueOnMount","setValueOnMount","_useState","useState","_useState2","slicedToArray","isChecked","setIsChecked","useEffect","CheckIcon","CustomCheckbox","variant","rest","objectWithoutProperties","CustomCheckbox_CustomCheckboxV1","CustomCheckbox_CustomCheckboxV2","CustomInput","isLocked","isLockedV2","error","onInputChange","onToggleModal","minLength","maxLength","isInterrogationVisible","placeholder","avoidAutoComplete","pattern","onBlur","onKeyDown","role","tabIndex","autoComplete","scrollToRefDelay","ref","delay","setTimeout","current","scrollIntoView","behavior","block","inline","Wording","WordingConstant","Common","CustomModal","show","showCloseButton","handleClick","contentClassName","myRef","createRef","undefined","e","stopPropagation","popup","closeButton","ImageElement","comp","BillingMode","PAYMENT_SCHEDULE","CYCLICAL_BILLING","PAYMENT_SCHEDULE_WITHOUT_PACK","Energy","EL","NG","SituationTypes","NOW","LATER","MOVE_IN","SWITCH","FontSizeVariant","XTRA_SMALL","SMALL","NORMAL","TITLE","SUPRA","FontWeightVariant","500","700","FontFamilyVariant","GOWUN","LEXEND","TypoVariant","PARAGRAPH","SPAN","H1","H2","H3","H4","H5","H6","SectionsSteps","STEP_ONE_ENERGY_SELECTOR","STEP_TOW_USER_VALIDATION","STEP_THREE_PDL_PCE_IDENTIFIER","STEP_FOUR_PACKAGE_SELECTOR","STEP_FIVE_BUDGET_ESTIMATION","STEP_SIX_USER_HABITATION","STEP_SEVEN_USER_SITUATION","STEP_HEIGHT_FINAL_RECAP","STEP_NINE_SIGNATURE","STEP_TEN_SAVE_DRAFT","FAILURE_SCREEN","FINAL_SCREEN","FAILURESC_SCREEN","CANCELSC_SCREEN","STEP_PAYMENT","CodeScreenMode","NONE","OFFERS","SIMULATION","END","FontSize","_Object$freeze","defineProperty","FontWeight","_Object$freeze2","FontFamily","_Object$freeze3","Typography","fontFamily","fontWeight","fontSize","_ref$className","fullClassName","join","assign","PackageElement","price","quantityMonthly","description","chosen","recommended","onKeyPress","Typography_Typography","priceUnit","priceCyclic","utils_config","URL","process","URL_CS","URL_GET_SIRET","ApiKey","CS_LINK","ENV","URL_SUB","window","location","origin","LamdaConfig","region","apiVersion","accessKeyId","secretAccessKey","URL_PASSPHRASE","FunctionName","getPackages","getOffers","EffectiveStartDate","businessDays","calendarDays","DefaultSwitchDueDate","EffectiveStartDateWithoutPack","FirebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","Stripe","publicKey","FACEBOOK_PIXEL_ID_V2","ChannelsFixSwitchLater","ChannelsDoorToDoor","ChannelInformationDocument","FinalCodeScreen","withGetPackages","currentYear","Date","getFullYear","FROM_MONTH","DEFAULT","fromMonth_","toMonth_","renderValueDate","date","pDate","getMonth","getDate","YearMonthForm","moment","locale","months","years","i","push","shift","handleChange_","_e$target$form","form","year","month","name","map","key","toString","modifiersStyles","highlighted","outside","CustomDate","props","_this","classCallCheck","this","_super","call","renderStateFromMonth","renderDate","handleYearMonthChange","bind","assertThisInitialized","state","month_","setState","_this2","_this$props","onDateChange","maxDate","_this$props$styleV","styleV2","DayPickerInput_default","onDayChange","format","parseDate","formatDate","keepFocus","dayPickerProps","modifiers","fromMonth","toMonth","localeUtils","MomentLocaleUtils","disabledDays","after","captionElement","CustomDate_YearMonthForm","React","Component","Price","UserWording","UserScreen","DataWording","DataScreen","offerSimple","offers","some","offer","product","productCode","includes","log","message","Config","console","pad","s","getFormattedDateToBO","d","areListEqual","arr1","arr2","length","filter","sendImage","choiceType","imageSrcOn","addDays","days","result","setDate","getDateString","day","getDateEffectiveString","dateEffectiveStartDate","monthEffectiveStartDate","yearEffectiveStartDate","getTodayDateString","today","handleConditionEmail","test","handleConditionPhone","String","handleConditionPDLPCE","mergeArray","arr","toConsumableArray","temp","forEach","indexOf","addBusinessDays","nDays","now","arguments","dayOfTheWeek","getDay","Math","floor","setTime","getTime","validUserType","userType","individual","professional","validEnergyTypes","energyTypes","types","energyType","reduce","accumulator","currentValue","validCivility","validCompanyType","legalForm","values","find","v","filteredArrNoDuplicates","acc","item","getPointOfDeliveryLogger","pointOfDelivery","energyList","energy","customerIdentificationKey","reference","multiplicationInstallmentFrequency","amount","sumPackageAmountInstallmentFrequency","chosenPackages","installmentFrequency","Array","isArray","b","parseFloat","birthCondition","birthdate","removeFirstPaymentCBFromContract","contract","firstPaymentCB","object","objectSpread","handleResetStore","withUrl","localStorage","clear","document","split","reload","buildPackagesForSlider","packages","init","nbrElmInSection","countSectionNbr","recommendedInfo","pkg","finalBuild","first","isRecommendedPush","idx","prepareEffectiveStartDate","billingModeCode","_ControlConfig$type$e","nextBusinessDate","prepareCyclicBillDate","addMonth","nmMonth","setMonth","prepareFrequenciesToDisplay","priorityOrder","FOURMONTHLY","QUARTERLY","BIMONTHLY","MONTHLY","sort","frequency","searchParamsFromURL","url","parent","referrer","searchParams","getAPEFromObject","obj","etablissement","uniteLegale","activitePrincipaleUniteLegale","replaceAll","isScheduleWithoutPackBillingMode","autorizedBillingModes","Boolean","mode","controlBillingMode","cyclicBill","code","SummaryScreen","PriceWording","SummaryWording","CommonWording","PlanElement","prices","currentAdditionalOptions","consumption","options","details","totalAmount","category","detail","subscription","unitPrices","label","additionalRates","additionalRate","totalBudget","discountRates","discountRate","renderPrice","index","fixPart","unit","displayedUnit","display","totalhour","high","low","paymentFrequency","transformLabel","formattedPrice","toFixed","margin","Fragment","marginBottom","flexDirection","justifyContent","timeframe","lineHeight","border","height","maxWidth","fix","marginTop","grossPrice","rate","idx1","idx2","discountPrice","option","PackageWording","PackageScreen","SummaryElement","isScheduleWithoutPack","addRate","element","categoryCode","additionalRatesDuplicateValue","economy","position","right","top","iconGasCircleOn","iconElecCircleOn","titleCyclic","budget","estimatedEconomy","notice","dots","links","textAlign","base","width","borderRadius","transition",":hover","future","styles","foreground","outline","past","present","background","Radium","selected","distanceFromOrigin","labelWidth","dotType","left","hoverStyle","getState","getDotStyles","Events","events","selectedIndex","handleDateClick","listStyle","event","Timeline_TimelineDot","distance","EventsLine","fillingMotion","dashed","transformOrigin","react_motion","tWidth","spring","tLeft","aria-hidden","EventsBar","totalWidth","barPaddingLeft","barPaddingRight","slidingMotion","indexClick","filledValue","eventLineWidth","overflow","X","WebkitTransform","transform","Timeline_EventsLine","Timeline_Events","HorizontalTimeline","containerWidth","containerHeight","linePadding","Timeline_EventsBar","defaultProps","stiffness","damping","EnergyDetail","sections","WordingOption","FinalSummaryScreen","EnergyGauge","initial","progress","idxConso","ranges","conso","js_default","formatLabel","maxValue","minValue","step","renderProgressBar","plan","gauge","summer","renderRangeSlider","winter","CustomDropdownInput","handleChange","isLoading","inputValue","onFocus","react_select_esm","classNamePrefix","isDisabled","resources","ic-elec-green","IconElecGreen","ic-logo-wekiwi","IconLogo","ic-logo-text","IconLogoText","ic-header-logo","IconHeaderLogo","ic-bot","IconBot","ic-professional","IconProfessional","ic-individual","IconIndividual","ic-logo-timer","IconValidateTimer","ic-download-timer","IconDownloadTimer","ic-elec-off","IconElecOff","ic-elec-on-p","IconElecOn","ic-close-timer","IconCloseTime","ic-save-screen","IcSaveScreen","ic-gas-off-p","IconGasOff","ic-gas-on","IconGasOn","ic-gas-off","IconGasOffSvg","ic-gas-on-s","IconGasOnSvg","ic-elec-on","IconElecOnSvg","ic-elec-off-s","IconElecOffSvg","ic-collectivity-off","IconCollectivityOff","ic-collectivity-on","IconCollectivityOn","ic-elec-gas-on","IconElecGasOn","ic-elec-gas-off","IconElecGasOff","ic-apartment","IconApartment","ic-secondary","IconSecondary","ic-bill","IconBill","ic-cp","IconWeiwi","ic-envelop","IconEnvelop","ic-linkedin","IconLinkedin","ic-instagram","IconInstagram","ic-facebook","IconFacebook","ic-youtube","IconYoutube","ic-twitter","IconTwitter","ic-certification","IconCertification","ic-logo-login","IconLogoLogin","ic-avatar","IconAvatar","ic-arrow-back","IconArrowBack","ic-arrow-next","IconArrowNext","ic-copy-clipboard","IconCopyClipboard","ic-download","IconDownload","ic-warning","IconWarning","ic-world","IconWorld","ic-tree","IconTree","ic-green-energy","IconGreenEnergy","ic-succes","Iconsucces","ic-erreur","Iconerreur","ic-businesswoman","IconBusinessWoman","ic-poweredSlimpay","poweredSlimpay","ic-poweredStripe","poweredStripe","ic-login-details","loginIcon","ic-confirm-details","confirmDetails","ic-home-details","homeDetails","ic-validate-details","validateDetails","ic-kiwi","IconKiwi","banners/wkw-switch","IconWkWSwitch","banners/lelynx","IconLogoLelynx","banners/ag-selectra-radins","IconSelectraRadins","banners/ag-selectra","IconAGSelectra","pdf/informationDocument","pdfFile","Header","wekiwiLink","rel","title1","subTitle","LabeledInput","_ref$messages","messages","_ref$isLocked","_ref$isLockedV","_ref$halfSize","halfSize","_ref$isFilled","isFilled","_ref$disabled","_ref$isUpperCase","isUpperCase","_ref$isCapital","isCapital","info","Wekiwi","isOpenBot","callBotSdk","_callee","regenerator_default","wrap","_context","prev","next","botSDK","close","open","onOpenBot","_","onCloseBot","stop","Footer","usefulLinks","newsletter","LabeledInput_LabeledInput","send","socialLink","facebook","instagram","youtube","linkedin","bottomLinks","copyright","text1","countries","country","text3","SubscriptionReset","isOpen","handelShowModal","bool","body","scrollTop","documentElement","handleReset","history","pushState","renderButtons","components_CustomButton","btn_validate","btn_cancel","renderModal","components_CustomModal","attention","descriptions","question","main_btn","CustomToggleV2","isLinked","_ref$labelSize","labelSize","OptionElement","handleToggleAdditionalOptions","idToggle","getIconByCode","CustomToggle_CustomToggleV2","CustomAccordion","_ref$defaultValue","isAccordionOpen","setIsAccordionOpen","controlledValue","old","HelpIcon","icArrowDown","wording","PaymentModalCB","StripeForm","clientSecret","onFormValidate","clientName","setIsLoading","elements","useElements","stripe","useStripe","_useState3","_useState4","setError","channel","getItem","onValidateForm","asyncToGenerator","mark","currentSearchParams","newUrl","_currentSearchParams","_newUrl","preventDefault","config","toUpperCase","confirmSetup","redirect","sent","confirmCardPayment","payment_method","card","getElement","CardNumberElement","billing_details","setupIntent","status","URLSearchParams","search","set","pathname","paymentIntent","_x","apply","renderFakeCard","cardNumber","_useState5","_useState6","isClicked","setisClicked","navigator","clipboard","writeText","isDebugMode","logoWekiwi","amountMessage","react_stripe_umd","label_card_number","label_card_expiry","label_card_cvc","padding","button_cancel","failureMessage","button_validate","stripeMessage","logoStripe","ConversionTag","transactionId","additionalData","Helmet","GlobalTag","productId","cartAmount","orderID","JSON","stringify","CustomCalendar","currentDate","handleOnSelectedDays","handleOnDisabledDays","handleInputOnFocus","handleOnDayChange","handleOnDayPickerHide","toggle","setToggle","setCurrentValue","selectedDays","firstAvailableDay","helpers","elem","before","weeks","querySelectorAll","innerHTML","DayPicker","renderDay","fr","isNotCurrentWeek","dateToCheck","start","startOfWeek","end","endOfWeek","isWithinInterval","isDateInCurrentWeek","char","showOutsideDays","contractDate","LOCAL","MONTH","weekdaysShort","WEEKDAYS_SHORT","weekdaysLong","WEEKDAYS_LONG","firstDayOfWeek","FIRST_DAY_OF_WEEK","inputProps","readOnly","onDayClick","hideOnDayClick","onDayPickerHide","initialMonth","CustomSelector","_ref$options","onSelect","defaultId","_ref$vertical","vertical","_ref$onMounSetter","onMounSetter","_ref$gap","gap","_ref$style","_ref$notFullWidth","notFullWidth","currentChecked","setCurrentChecked","optionState","setOptionState","or","it","alignItems","selectedValue","fee","TimeSlotComponent","dateContract","handleChangeTimeslotSelect","ts","timeslots","noTimeslotLabel","timeslotOptions","val","timeslotSelectorTitle","getOptions","additionalOptions","chosenProduct","active","prepareContract","summaryReducer","contractData","contracts","summaryData","customerData","dataReducer","common","financeData","finance","_customerData$address","address","_customerData$address2","toArray","slice","number","street","postalCode","townName","city","json","contractNumber","effectiveStartRange","effectiveStartDate","toISOString","subscriptionDate","dueDate","deliveryPoint","gridRate","deliveryStatus","profile","meterNumber","meterType","smartMeterStatus","deliveryPointCategory","readingFrequency","contractualCapacity","contractualCapacityUnit","situation","express","thirdParties","estimates","default","productType","rateOption","customer","customerNumber","paymentReducer","contact","civility","firstName","lastName","surname","birthTown","email","phone","tel","accountOwnerFirstName","accountOwnerLastName","paymentMode","contractCategory","ValidateTimer","WordingLinks","formatTime","seconds","hours","minutes","remainingSeconds","formattedHours","handleContract","_callee2","payloadContract","promises","_context2","loadingContract","parse","headers","res","blob","fileURL","x-api-key","fetch","method","ok","createObjectURL","t0","_x2","Promise","all","isSelectra","handleFilePdf","_callee3","encodedUrl","correctedUrl","_context3","encodeURI","replace","match","timeRemaining","payloadContracts","formattedTime","infos","subInfos","api","linkText","connect","timeUnblock","USER_SCREEN_VALIDATE_SUCCESS","USER_SCREEN_RESET_RECOVER","SUMMARY_SCREEN_STATE_RESET","MINIMAL_DATA_FORM","MINIMAL_DATA_VALIDATE_EMAIL","MINIMAL_DATA_RESET_EMAIL","SEND_EMAIL_CODE_REQUEST","SEND_EMAIL_CODE_REQUEST_FAIL","SEND_EMAIL_CODE_REQUEST_SUCCESS","VERIFY_EMAIL_CODE_REQUEST","VERIFY_EMAIL_CODE_REQUEST_FAIL","VERIFY_EMAIL_CODE_REQUEST_SUCCESS","CODE_SCREEN_MODE_UPDATE","RESET_FULL_CODE_SCREEN","LOG_USER_INFORMATION_REQUEST","LOG_USER_INFORMATION_SUCCESS","LOG_USER_INFORMATION_FAIL","CODE_SCREEN_RESET","CODE_SCREEN_VALIDATE","CODE_SCREEN_VALIDATE_SUCCESS","CODE_SCREEN_VALIDATE_FAILURE","FINAL_CODE_SCREEN_VALIDATE","FINAL_CODE_SCREEN_VALIDATE_SUCCESS","FINAL_CODE_SCREEN_VALIDATE_FAILURE","UPDATE_FINAL_SUMMARY_SCREEN_STATE","SURVEY_SCREEN_LOAD","SURVEY_SCREEN_VALIDATE","SURVEY_SCREEN_VALIDATE_SUCCESS","SURVEY_SCREEN_VALIDATE_FAILURE","PACKAGE_SCREEN_VALIDATE","PACKAGE_SCREEN_VALIDATE_SUCCESS","PACKAGE_SCREEN_VALIDATE_FAILURE","FETCH_CALENDAR_APPOINTMENT","FETCH_CALENDAR_APPOINTMENT_SUCCESS","FETCH_CALENDAR_APPOINTMENT_FAILURE","DATA_SCREEN_VALIDATE_SUCCESS","DATA_SCREEN_VALIDATE_SUCCESS_FINAL","DATA_SCREEN_SAVE_COMMON","SUMMARY_SCREEN_VALIDATE_SUCCESS","SUMMARY_SCREEN_CHANGE_OFFER","SUMMARY_SCREEN_CHANGE_OPTION","SUMMARY_SCREEN_CHANGE_OPTION_SUCCESS","SUMMARY_SCREEN_CHANGE_OPTION_FAILURE","SUMMARY_SCREEN_GET_SPONSOR","SUMMARY_SCREEN_GET_PARTNER","FINAL_SUMMARY_SCREEN_CHANGE_PACKAGES","FINAL_SUMMARY_SCREEN_CHANGE_ADDITIONAL_RATES","FINAL_SUMMARY_SCREEN_VALIDATE","FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS","FINAL_SUMMARY_SCREEN_VALIDATE_FAILURE","FINAL_SUMMARY_SCREEN_SET_REFERENCE","FINAL_PAYMENT_SCREEN_VALIDATE","FINAL_PAYMENT_SCREEN_VALIDATE_SUCCESS","FINAL_PAYMENT_SCREEN_VALIDATE_FAILURE","CLOSE_SAVE_DRAFT_MODAL","PAYMENT_MODAL_LOAD","PAYMENT_MODAL_VALIDATE","PAYMENT_MODAL_VALIDATE_SUCCESS","PAYMENT_MODAL_VALIDATE_FAILURE","PREVIOUS_SCREEN_LOAD","NEXT_SCREEN_LOAD","MAIN_SCREEN_SAVE_ORDER","MAIN_SCREEN_SAVE_ORDER_SUCCESS","MAIN_SCREEN_SAVE_ORDER_FAILURE","MAIN_SCREEN_GET_ORDER","MAIN_SCREEN_GET_ORDER_SUCCESS","MAIN_SCREEN_GET_ORDER_FAILURE","MAIN_SCREEN_GET_PACKAGE_FAILURE","MAIN_SCREEN_GET_OFFER_FAILURE","MAIN_SCREEN_GET_PRODUCT_FAILURE","MAIN_SCREEN_GET_FORM","RECALL_PAYMENT_CB","FIRST_PAYMENT_CB_FAILURE","FAILURE_CB_MESSAGE","VALIDATE_DIRECT_DEBIT_PAYMENT","REDIRECT_FINAL_SCREEN","CHECK_CONTRACT_PAYMENT_CB","REDIRECT_TO_DATA_SCREEN_START_DATE","FINAL_CODE_SCREEN_VALIDATE_V2","GET_LOGGED_USER_INFO_REQUEST","GET_LOGGED_USER_INFO_REQUEST_FAIL","GET_LOGGED_USER_INFO_REQUEST_SUCCESS","controlData","dt","slDt","TagLogger","USER","CODE","SURVEY","PACKAGE","SUMMARY","DATA","FINALSUMMARY","FINALCODE","SAVE","SIGNING","PAYMENT","CONVERSION","RETRY_PAYMENT","TriggerButtonLogger","VALIDATE_BTN","AFTER_SIGN","AUTO_LOAD","FIXED_PRICE","SAVE_BTN","RETRY_PAYMENT_BTN","prepareData","tag","customerType","triggerButton","serviceCalled","statusAction","logMessage","returnCode","dataLS","localStorageData","environnement","timestamp","app","prepareObject","payload","jsonLog","setItem","settings","Content-Type","responseType","crossDomain","ajax","pipe","catchError","response","ajaxError","errorAjax","throwError","subscribe","err","consoleLog","validatePaymentScreen","validatePaymentScreenSuccess","validatePaymentScreenFailure","loadPaymentModal","paymentModalEpic","combineEpics","action$","state$","dependency","ofType","switchMap","action","timer","apiRequest","path","customerNbr","mergeMap","of","errorMessage","mapPostHubSpot","_ref4","orderNumber","orderStatus","condition","firstPaymentCBStatus","mapGetPayment","r","_ref5","_ref6","getOrderStatusResponse","forkJoin","prepareOrder","observables","_ref7","_ref8","order","validateFinalSummaryScreen","validateFinalSummaryScreenFailure","changePackages","formatAddress","modifiedAddress","sliceIndexAddressStreet","substring","part","pro","partnerReference","thirdParty","externalReference","createdBy","currentOrder","isSwitch","switch","newAddress","acDt","socialReason","APECode","SIRET","companyName","companyType","activityCode","identificationNumber","modifiedFinance","newBillingAddress","billingAddress","billingContact","filteredContracts","modifiedContracts","nextContract","_payload$contract$ene","bmc","appointmentTimeslot","timeslot","coholder","coOwner","dString","switchValue","typePayment","retryCB","orderReference","agent","preparePayload","typeOrder","alreadyClient","iframe","paymentType","validateFinalSummaryScreenSuccess","finalSummaryScreenEpic","Screen","DATA_MIN","VALIDATION","SITUATION","FAILURE_CB","CANCEL_SLIMCOLLECT","FAILURE_SLIMCOLLECT","FINAL","FINALPAYMENT","sendEmailCodeRequest","logUserInformationRequestSuccess","mapGetCalendarAndAppointment","fromDate","dates","processType","deliveryState","mapSendEmailCode","savingMode","logger","isCodeSent","saveOrderSuccess","mapVerifyEmailCode","isValid","mapLogUserInformation","dataOff","urlOverride","isFailCredential","isEmailNotFound","isOnlyCheck","onUserExist","isUserExist","onUserNotExist","accessToken","user","mapGetLoggedUserInfo","token","dataScreenEpic","store","calendarResponse","arrFlat","getOrderSuccess","getOrderFailure","mapSaveOrder","mapGetPackages","est","preparePayloadGetPackages","packagesList","mapGetProducts","contextOfUse","productsList","products","_ref9","payloadOffer","preparePayloadGetOffer","mainScreenEpic","mapGetOrder","_ref10","orderReponse","get","diff","d1","d2","dateDiffDays","statuss","firstPaymentSlimCollectStatus","getAction","_ref12","_ref13","packageResponse","productResponse","prepaymentFrequencies","_ref14","curr","currContract","el","subtract","actionCalendar","_ref15","_ref16","calendarResponseBiEnergy","isPaymentCB","newContracts","findDate","daysList","newPayload","changeOffer","changeProductOption","changeProductOptionSuccess","changeProductOptionFailure","mapGetOffer","callbackSuccess","callbackFailure","chosenProducts","lambda","functionName","packageID","summaryScreenEpic","modifiedAction","logScreen","firebase","analytics","logEvent","_unused3","SectionLayout","forwardRef","hidden","_ref$isModal","isModal","Title","titleFormatGowun","titleFormatLexand","_ref$noGap","noGap","loadSurveyScreen","validateSurveyScreen","validateSurveyScreenSuccess","validateSurveyScreenFailure","housingType","residenceType","area","inhabitantsNumber","heatingType","priceOption","netArea","missingEnergy","survey","surveyScreenEpic","WordingCodeScreenError","CodeScreen","validatePackageScreen","validatePackageScreenSuccess","validatePackageScreenFailure","billing","cyclic","schedule","preparePayloadGetProduct","success","failure","_getPointOfDeliveryLo","pointOfDeliveryList","isCyclicalOfferExist","isFinal","currentContract","c","es","quantity","merge","_getPointOfDeliveryLo2","array","isAlreadyClient","every","postalCodeCustomer","_getPointOfDeliveryLo3","inputError","errorNotSamePostalCode","noModeChange","changeCodeMode","loadEstimate","packageScreenEpic","validateCodeScreen","validateCodeScreenSuccess","validateCodeScreenFailure","validateFinalCodeScreenSuccess","validateFinalCodeScreenFailure","PDL","PCE","codeScreenEpic","DividerDashOr","DashLaneIcon","_extends","source","prototype","hasOwnProperty","_objectWithoutProperties","excluded","sourceKeys","keys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ic_red_cross_ref2","clipPath","fill","ic_red_cross_ref3","ic_red_cross_SvgIcRedCross","svgRef","viewBox","ForwardRef","packageState","packageReducer","currentSelection","setCurrentSellection","handleCurrentSelection","isCyclicDisabled","Typography_Title","components_CustomAccordion","about","choiceText","packageDiscount","main","digitalDiscount","descriptionBottom","descriptionBottomBis","DividerDashOr_DividerDashOr","aboutCyclic","bold","second","point","SearchService","tagLogger","unsubscribe","handleSearch$","term","doSearch","promise","from","Subject","debounceTime","distinctUntilChanged","container","image","SurveySelectorStyled","_ref$width","customStyles","dropdownIndicator","provided","CustomSelectV2","isMenuOpen","firstRenderValue","customClassName","customSize","hideArrow","_this$state","selectClasses","onMenuOpen","onMenuClose","SurveyScreen","SurveyContainer","_ref$fields","fields","_ref$setting","setting","postalCodes","isLoadingPC","codeText","showError","handleToggle","handleSelect","handleInputCity","handleInputChangeAddressContainer","handleChangeDropdownSelect","onFocusDropdown","showPriceOption","renderSelector","w","components_ImageElement","SurveyContainer_SurveySelectorStyled","components_CustomDropdownInput","mainText","components_CustomInput","list","k","ss","CustomSelect_CustomSelectV2","renderSelectArea","renderSelectInhabitants","renderRadio","bottomText","_React$Component","inherits","SurveyScreen_createSuper","handleCondition","setCanGoNext","userState","searchService","_this$state2","codeValue","netAreaValue","cityValue","selectedOption","validate","_this$props2","nextScreen","validateSurveyScreenDispatch","surveyState","firstAddress","dataState","summaryState","createClass","getResults","navigationOptions","_this2$state","_this$props3","isCurrentScreen","_this$state3","_this$props4","canGoNext","SectionLayout_SectionLayout","containers_SurveyContainer","previousScreen","buttonNextTitle","nextButton","buttonPreviousTitle","previousButton","screenId","showSaveButton","userReducer","surveyReducer","dispatch","actions","energyWording","ELNG","CodeContainerV2","saveData","offerId","_this$props$userState","validatePackageScreenDispatch","changeCodeModeDispatch","eneryField","offerSelection","currentMode","codeState","validateCodeScreenDispatch","_this$props2$userStat","_this$props2$dataStat","_this$props2$dataStat2","validated","logingInformation","resetScreenTo","handleSimilationValidate","onClickButtonSimulation","resetFullCodeScreenDispatch","field","optionalSetter","cleanValue","errorFields","rgpd","myRefOffers","checkFirstModuleCondition","_this$props5","_this$props5$dataStat","fakeEvent","Event","dynamicNextScreen","_this$props6","_this$props7","_this$props7$dataStat","mainState","isModalOpen","bakcendError","errorFrom","postalCodeError","titleFormatted","noCodeFormatted","noCodeSubFormatted","subTitleFormatted","components_CustomCheckbox","CodeContainer_OfferSelector","screens_SurveyScreen","returnButton","codeReducer","mainReducer","searchAppointmentTimeslot","data","Accept","abrupt","searchSiret","X-INSEE-Api-Key-Integration","_x3","isLocal","modifiedBody","seller","checkPathOrder","trim","URL_LOCAL","Authorization","countriesOptions","cntr","UserScreenWording","CodeScreenWording","AddressContainerWording","AddressContainer","DataScreen_createSuper","prepareField","_this$state$setting","checkedAddCoOwner","checkedNewAddress","checkedNewBillingAddress","modifiedFields","initBirthCountry","params","birthCountry","resetEstimate","handleConditionPro","handleConditionPart","handleConditionCommon","handleConditionDataPro","validSiret","handleConditionCoOwner","handleConditionAddress","_this$state3$setting","handleConditionSituation","handleEmailFormat","accents","remove","showEmailError","handleChangeInput","searchSiretRequest","handleDateChange","onFieldChange","bDate","toDateString","handleChangeSelect","nameObj","ob","_this$state4","codeNewAddressText","codeNewBillingAddressText","codeBirthTown","_this$state5","handleDisplayValue","_this$state6","handleToggleSituation","_this$state7","showBottomText","handleDatePicker","_this$state8","featureDate","newDate","moved","sendRequestTimeslot","calendarAppointments","formattedDate","defaultCB","t","_this$state9","filterCalendarAppointmentResponse","filterDateAppointment","arrSend","available","lastDay","tomorrow","handleDateCalendarOption","_this3","daysOfWeek","handleDropdownContract","_this$state10","dropdownValues","actualDate","checkBirthdate","validateBaseInput","_this$state11","validateCode","_this$state12","showErrorStep1","errorDate","missingBirthDate","dateError","handleChangeCode","currentAddress","fullAddress","nonExistingForm","checkError","birthPostalCode","birthCity","_this4","_this$state13","_this$props8","validateDataScreenDispatch","validateDataScreenFinalDispatch","_this$props8$codeStat","dataScreenSaveCommonDispatch","_this4$props","paymentState","_this$props9","fetchCalendarAppointmentDispatch","_this$state14","_this5","_this$state15","isFranceBirthCountry","validation","invalideBirthDate","components_CustomDate","countryBirth","cityBirth","renderNotLoginProInput","_this6","_this$state16","SIRET_length","SIRET_valid","incorrectSIRET","APE","missingSocialReason","missingLegalForm","NAFCode","_this$props10","renderLoginProInput","why_locked_client_1","why_locked_client_2","_this7","_this$state17","_this8","_this$state18","existingForm","_this$props11","_this9","_this$props12","isLogin","isCodeNotSet","renderLoginBaseInput","renderNotLoginBaseInput","rappel_pdl","components_CustomButton_CustomButton","why_locked_address_1","why_locked_address_2","toggleInputs","renderNewBillingAddressInput","renderAddCoOwnerInput","ValidateCodeEmail","_ref$email","isVerificationFail","_ref$onValidateCode","onValidateCode","_ref$onResendCode","onResendCode","setCode","rootRef","useRef","validate_modal_title","ReactCodeInput_default","RedCross","validate_modal_error_code","CLIENT_MODE","ALREADY_EXIST","NEW","blockedYopmailDomains","MinimalUserData","MinimalUserData_createSuper","storeMinimumUserDataDispatch","emailValid","showValidationModal","pass","fieldChange","isGoingNext","firstname","lastname","loginEmail","onUpdate","changeMode","handleValidate","renderNewClient","handleValidateCode","renderExistingClient","nextScreenValidation","onMouseEnterValidate","getLoggedUserInfoDispatch","logUserInformationRequestDispatch","isYopmailBlocked","password","domain","verificationCode","verifyEmailCodeRequestDispatch","validationEmailCode","charAt","toLowerCase","alreadyExistEmail","resetEmailDispatch","_this$props7$dataStat2","informationSVG","data_collect_title","data_collect_info","DataScreen_ValidateCodeEmail","storeMinimumUserData","sendEmailCodeRequestDispatch","verifyEmailCodeRequest","logUserInformationRequest","resetMinimumUserDataEmail","getLoggedUserInfoRequest","SlickButtonFix","currentSlide","slideCount","NextArrow","BackArrow","PackageContainer","kind","handleChangePackageFields","onChoosePackage","handleOpenModalFrequency","showingModalFrequency","getConsumptionPerMonth","filteredData","total","round","_unused","isCustomSeasons","itemsTitle","frequencyItems","elm","frequencyExemple","packageList","onChangePaymentFrequency","_this$props2$billingM","billingModes","cyclicBillingMode","scheduleBillingMode","scheduleWithoutPackBillingMode","transformAuthorizedPackages","isMultiple","isActiveBilling","SliderClasses","classnames","package-container__slider-carousel--small","disabled-section","FrequenciesClasses","currentPackage","authorizedPackages","initialProgress","findIndex","gaugeMaxValue","max","renderModalFrequency","ElecIcon","GasIcon","lib_default","infinite","speed","slidesToShow","slidesToScroll","arrows","nextArrow","PackageContainer_SlickButtonFix","PackageContainer_NextArrow","prevArrow","PackageContainer_BackArrow","components_PackageElement","currency","MenLongArm","components_EnergyGauge","LoadingOverlay","_ref$radius","radius","_ref$minHeight","minHeight","_ref$fullscreen","fullscreen","_ref$loaderSize","loaderSize","kiwiInstructionVideo","PackageScreen_createSuper","setupPackages","cb","showingModalVideo","raw","handleGoNext","_fields$currentValue","conditionSumFirstPayment","_fields$currentValue2","handleDisplaySum","sumFirstPayment","_fields$currentValue3","handleChoosePackage","handleChangeInstallmentFrequency","handleChangeCyclicBill","handleOpenModalVideo","videoNode","pause","currentTime","controls","play","tmp","x","y","parseInt","findPackages","couple","lastPackageID","lastPrices","getEnergyValue","_this$props5$userStat","_this$props5$summaryS","secondaryTitle","handleNextStep","handlePreselectPackage","isCyclic","package","ReactPlayer_default","playerRef","playing","autoPlay","heigh","_this$props8$packageS","_this$props9$packageS","changeProductOptionDispatch","changePackagesDispatch","changeOfferDispatch","renderModalVideo","letterSpacing","components_LoadingOverlay","containers_PackageContainer","packageTitle","subtitle","onChangeCyclicBill","showSeparator","bothLogo","on","gasLogoOn","off","gasLogoOff","elcLogoOn","elcLogoOff","Custom","txt","UserContainer","imageList","isCustom","UserContainer_Custom","UserScreen_createSuper","handleOnClick","resetAllDispatch","handleHideBanner","resetRecoverDispatch","checkEphemeral","isBetween","m","cgn","setStepById","isRecover","_this$props4$userStat","validateUserScreenDispatch","errorRecovery","items","typeUser","itemType","containers_UserContainer","validateFinalPaymentScreenFailure","validateFinalPaymentScreenSuccess","finalPaymentScreenEpic","stripeProm","loadStripe","StripeContainer","stripeInformations","billName","components_StripeForm","redirectFinalScreen","firstPaymentCBFailure","recallPaymentCB","paymentCBScreenEpic","whenCollected","mapGetPaymentCB","paymentResponse","PaymentModal","firstLoadingCB","firstLoading","componentDidUpdate","prevProps","handleIframe","_this$props$paymentSt","handleValidateModal","_this$props$paymentSt2","validatePaymentModalDispatch","handleTimeout","handleStripePaymentValidate","isSuccess","errMsg","failureCBMessageDispatch","_this$props$paymentSt3","handleQuitModal","onLoad","StripeFormContainer","CBActions","linkPriceAndCGV","articles","ValidationDialogScreen","ValidationDialogScreen_createSuper","searchFrequency","energyByType","renderOptionInformation","itemIndex","labelOption","option_package_title","option_package","callOrderStatus","validatePaymentScreenDispatch","prepareDataToConfirmationModal","_summaryState$current","sumAmountByPackage","sumAmountByPackageFrequency","validateFinalPaymentScreenDispatch","showPaymentModal","resolve","getPriceTotalByMonth","isConfirmed","isCommunicationConfirmed","acceptTerms","acceptEmail","acceptSepa","iframeOpened","cyclicOffer","winterData","season","summerData","packageQuantity","prevState","_this$props5$paymentR","setIsModalOpen","isDirectDebitSuccess","_this$props6$mainStat","allIsCyclicBill","renderIfNotCyclic","elmCyclic","paymentCB","allSum","isDual","_this$props$paymentRe","paymentActivated","recall","renderPackageInformation","checkboxLabel","DownloadIcon","checkboxLabel_mondatSepa","checkboxLabel_communications","containers_PaymentModal_PaymentModal","validateFinalSummaryScreenDispatch","paymentActions","FinalpaymentActions","WordingData","FailureCB","FailureCBScreen","componentDidMount","handleFinalized","handleRecallCB","recallPaymentCBDispatch","failureCBMessage","CB_failure","btn_reload","btn_finalized","actionsCB","redirectFinalScreenDispatch","FailureSC","FailureSCScreen","FailureSCScreen_createSuper","_this$props3$paymentS","newOrder","newWindow","interval","setInterval","closed","clearInterval","redirectToNewPage","startsWith","_this$props7$paymentR","SC_failure","solution_CB","WordingCancel","CancelSC","CancelSCScreen","CancelSCScreen_createSuper","SC_cancel","FinalPaymentScreen","FinalPaymentScreen_createSuper","title2","paymentByCB","ibanDescription","buttonByCB","paymentViaBank","buttonViaBank","showSaveText","AddressDetails","userInfo","civilityLabel","person","FinalSummaryContainer","handleChangeFields","modal","contents","content","FinalSummaryContainer_SlickButtonFix","FinalSummaryContainer_NextArrow","FinalSummaryContainer_BackArrow","handleResetFields","_this$state$toggle","_this$state$fields","tab1","tab2","renderPackages","cancelButton","validateButton","buttonTitle","descriptionBenefit","currentOptions","loadingOption","components_PlanElement","FinalSummary_AddressDetails","components_EnergyDetail","SwitchContainer","handleShowInput","showInput","toggleTitle","showBorder","_ref$thirdParty","select","setInputValue","setInputError","str","Number","isNaN","validateInput","EnvironmentalOptions","additionalRatesList","components_OptionElement","SaveScreen","closeSaveDraftModalDispatch","_ref$mainState$saveDr","saveDraftModal","isValidationEmail","text2","SurveyWording","FinalSummaryScreen_createSuper","intervalId","updateTimeRemaining","newTimeRemaining","handleValide","handleModalToggle","handleValidateScreen","isValidEffectiveStartDate","updateFinalSummaryScreenStateDispatch","redirectToDataScreenDispatch","_ref$target","changeAdditionalRatesDispatch","getDetail","_this$props5$codeStat","providerDetails","changeProviderPDL","changeProviderPCE","_dateContract$energy","dayLabel","monthLabel","dateString","parsedDate","addingDays","totalDate","sectionStartDate","beginDate","separateDetail","settlementFrequency","settlementFrequencyValue","scheduleBill","contractualCapacityEL","meterReading","unshift","contractualCapacityNG","contractualCapacityUnitNG","sectionSpecifications","sectionBillingFrequency","returnParentingCode","valid","handleChangeInputAdvantageCode","_ref3$target","validity","handleChangeSelectAdvantageCode","advantage","currentAdvantageOption","handleShowInputAdvantageCode","op","checkEffectiveStartDate","_dateContract$curr$en","nextDate","reduxStateString","reduxState","initialFields","checkContractPaymentCBDispatch","mergeProps","isReferenceRemoved","setReferenceDispatch","replaceState","_this$state4$toggle","switchProps","containers_SwitchContainer","productOptions","containers_FinalSummaryContainer","ps","_this$props$dataState","handleSave","_this$props11$mainSta","FinalSummary_EnvironmentalOptions","renderBody","renderSwitch","components_ValidateTimer","FinalSummaryScreen_SaveDraftModal","updateFinalSummaryScreenState","actionsSummary","SituationScreen","WordingDate","SituationMovedContainer","titleContainer","suffix","components_CustomCalendar","SituationMovedContainer_this","handleChangeBool","handleChangeBoolSelect","differenceInDays","messageDropdown","Situation_TimeSlotComponent_TimeSlotComponent","ChangeSupplierSelectComponent","placeholderSelector","SituationChangeSupplierContainer","checkIsDisableSwitchSelect","dateChoosen","setdateChoosen","Situation_ChangeSupplierSelectComponent_ChangeSupplierSelectComponent","textCHF","SituationChangeSupplierContainer_this","subtitleCHF","SituationContainer","_ref$fields$common","SituationContainer_SituationMovedContainer","SituationContainer_SituationChangeSupplierContainer","SituationScreen_createSuper","_this$state2$setting","getSwitchLater","disabledSwitchDays","availableSwitchDate","toLocaleDateString","_this$props7$codeStat","changeSupplier","containers_SituationContainer","SummaryContainer","defaultProduct","activateEffect","setActivateEffect","setOption","setId","prepareOffer","components_SummaryElement","SummaryScreen_createSuper","validateSummaryScreenDispatch","packageLoading","containers_SummaryContainer","SaveScreen_createSuper","FinalScreen","FinalScreen_createSuper","gtag","send_to","ReactPixel","fbq","TimeOne_ConversionTag","getPrice","STEPS","component","getStepById","currentCodeMode","steps","setSteps","currentStep","secureSetCanGoNext","handleNext","nextStep","force","fromStep","nextStepIdentifier","identifier","splice","MainScreen","MainScreen_createSuper","myProps","handleLoadScreen","nextScreenDispatch","handleDisabledValidate","handleReturnButton","handlePreviousScreen","previousScreenDispatch","handleSaveOrder","saveOrderDispatch","handleGetContract","getContractDispatch","recovering","debug","autoConfig","pageView","getFormDispatch","_this$props3$mainStat","decodedParams","sparams","decodedUrl","AES256","decrypt","paramsFromUrl","getAll","warn","getParamsFromDecodedUrl","decodedChannel","_firebase$analytics","_unused2","logChannel","getOrderDispatch","sponsorId","promotionId","mywordId","getSponsorDispatch","getPartnerDispatch","urlObj","decodeURIComponent","parseQueryString","energyTypes[]","_this$props$mainState","_this$props4$mainStat","TimeOne","components_Header","screens_SectionCollapser","components_SubscriptionReset","components_Footer","getSponsor","getPartner","hostname","initialState","loadingPaymentStatus","loadingPaymentCB","screenIds","invalidLinkFinalized","invalidLink","invalidLinkNotFound","checkPoinOfDelivery","isHaveChosenPackages","stateReturn","_action$payload","hasNoCode","recoverState","_action$payload2","filterPackages","modifiedPackages","_action$payload3","modifiedState","adtRates","ctr","controlContracts","_action$payload4","_action$payload5","_action$payload6","_action$payload7","_action$payload8","_action$payload9","isCB","lastEmailValidate","isUserLogged","_order$customer","recoverBirthdate","tp","updateAddress","customerFullName","coholderCivility","coholderFirstName","coholderLastName","correctCivility","correctCoholderCivility","exec","orderExternalReference","rootEpic","rootReducer","combineReducers","epicMiddleware","createEpicMiddleware","dependencies","composeEnhancers","compose","expireDate","persistedState","createStore","applyMiddleware","expires","lastScreen","removeItem","run","apps","initializeApp","App","screens_MainScreen","version","ReactDOM","render","src_App","getElementById","serviceWorker","ready","then","registration","unregister","userAgent","initialScale","screen","availWidth","querySelector","setAttribute"],"mappings":"6EAAAA,EAAAC,QAAiBC,EAAAC,EAAuB,0DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,6DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,4DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,uDCAxCH,EAAAC,QAAA,8/RCAAD,EAAAC,QAAiBC,EAAAC,EAAuB,+DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,yDCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,wFCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,4DCAxCH,EAAAC,QAAA,8XCAAD,EAAAC,QAAiBC,EAAAC,EAAuB,+DCAxCH,EAAAC,QAAA,4vPCAAD,EAAAC,QAAA,ghMCAAD,EAAAC,QAAA,44TCAAD,EAAAC,QAAA,s6YCAAD,EAAAC,QAAiBC,EAAAC,EAAuB,2DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,iECAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,8DCAxCH,EAAAC,QAAA,4uJCAAD,EAAAC,QAAA,4mWCAAD,EAAAC,QAAA,4lECAAD,EAAAC,QAAA,s2DCAAD,EAAAC,QAAiBC,EAAAC,EAAuB,yDCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,2DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,4DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,gECAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,gECAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,wDCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,+DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,6DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,8DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,6DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,4DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,4DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,kECAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,+DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,2DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,+DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,iECAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,oECAxCH,EAAAC,QAAiBC,E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","file":"static/js/main.8c2ddcd8.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/ic-check.4c1f6613.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-elec-off.192c6a77.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-gas-off.293d78ea.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-logo.44ca4e63.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/ic-arrow-down.1401cecc.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-info.5af0c781.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-mister-long-arm.bfa4e226.png\";","module.exports = __webpack_public_path__ + \"static/media/ic-dash-lane.18562dd1.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAWCAYAAAD0OH0aAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACRSURBVHgBvZLRDUAwEIYPAzCCEYzQTdQERmATK9jAqzc2YAM24CQSpw/t30Zc8qf38H1tcj2ipzLyqIlzcBoEvm7ebgGWtBBgSRkvdYhUhEqLkAYCJpgb0hQiDQSUKWlEKoTQx4Awiz5FBC361QWX9P4X5YLlurQ2uPaBm99g/RlMArxGqGxgcp8RZ+dUnNEmnHV7RV6nOOH+AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/ic-professional.65b590c3.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACPCAYAAAAVxlL2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAB0dSURBVHgB7V0JkBzVef56Zna0l3ZXFzoRI7QgLAQIQolDHHIMhrLBFsYmxqYiHKeclB3HUBUfsUMFU+WkHFcOHOPYZWMLl2MSjGN8xhgM4hIShw5AIMRKGgkdK7TaXUmzx8zOdPv/+nWjBbTafj3dPd0jfVV/7ezuXN399X+//xk4fpARaRSZ6khOZIpIq0iHSOeo584Y4z0KjhwWGRDZL9Ln/KQcEHkJxxEyqF+kRSaITBZphyLKJChyTBeZI3KS8/c26BHokMigSLdIv0iP85g/Sc4hkWGRfc5PV+oOBuoXJMXpIpeIXAlFmLnO31MIF5tFukR+5jze5UjdoV4IRE3aLPKnIqeJnOcIyZJ1/pd2JGzyEGVHCqN+PifyqMjLIk+iTpBkE0Yi8PvPhzJFJM7ZIieLnCFyKmp3fBkc8bkIl1AkM78nTehOkV4oM0dzaCKBSLIG4gWi/3K9yIUiH3Z+j/tNQV+I/tLvRDaIPOj8nkgfKWkEck3VNSLnilwN5STzbzRXBpJxTNRGJShnPC/yMJSJ+wUShiSZMEY3s0TOEVkKZQpophhppZEsuCYu6/wkmWY4j9dDmbZ+nECgWCzyVyLbocJkq85kyDm2v3aONRGIu7pvgsrPLBe5TmQmlCZKIZpoKmrQtNGh3iLyS5GVULmlIcQUcVX9JEcLlHN8MVR4vgAqeuH/6jV/xWOjSW51HpNQ9O/2O48tnIAn0BfIiXxHZC+SZYqClNedc5BDTP3VON7JZznyFZFpUOWHIE8ek3qsX+0W2Qp1d/MxE3xFR8bKGjObzWiPtTNqCZpXOvbzncdTESzKOFJr+5rIi47EBnFiNVU3o6rLoJzIHI5EKX7B5BwvAv0IRjYkRrfz+A2RPSIHnd+Z2BtxpGeM9yP5aFJoXpuc92NBliRiFEXCu34aSTYX1YHHPsn5vHdDpSwqUMQvIgaIG4HeK/IxkSUIBq5T+oLIOpGHoDRNwfm7LnrG+T/JxWNgGWUhqicQ4Yb8fynyjPP4B4gJgeJiwq6Ccpj/FurOboJ/uKRhIZOkWYUjkQxPOnMuro8RBkiiBhyJIF1ZAVVyycI/hhz5psgaqCx2TVHrKIy1IiYFmVleBpUcbIA+aKpIDmqaZ0UegDq5G6HUPc0USwVRRDIjzncZdD6X5KWp2+n8Tu03EUqT6KYiXGI2Oo+ZyaZ/VEGNUGsC0RH9KFRJ4nz4B08gL9gjUBVvqniaKvo5ZdQGJCpJ6/pea6EIQ7LT16Om8utCzHFey2w1neqambNamjD6CSTNd1Ed2BpBdX4XIihKWoXcDKFBDmbqQvkplf/UDFjmQqFLMwyDpJhzlJcJiS0hkdE9MGgWuraNFP77fw5f8uJLpam/e6jqHCGz86yjrUMNUAsnmnchQ2H6PO+GP9CP4Z3Najar2q9A3Y2BaxurL5dDNjUVaXMKyqnF8u07YBlT5dabI6Rpl2dQi04T8jTAshrk59HeJiXP7ZDXZLLZVGnOrEzpqitamnOnNNhqauMLJfT2VlAagR+wWY7XcRuUSYu0LaRWBGKIewFUxOIHJBC1Df0cOsvhdftlmE4wF4jGOUM0yM1yxel/NL71SQ5pjDEVekr+x2PuaJAzPmVyGu9Z1oQFpzWgVLKwb18FhYIpBPLlnvEc0nz/Fsq/ipRAUZswnnja/99A5UpaoQe3l+Y2KLPVhRBgHc4tk2u+DGnjciHMMoSMbiHQmmeGcesXeuzHw0VtIpE4dNbfB1WQjay3KGoNlBO5CEoD6YazPEl5KI1DB7kXAcI2VdQ2mfQpMK1lojFyYpJyUdxjrS0GOuc34OabJuL+BwaQ3zGCwoAWiXgueU5ZN+QLNyMiRE2gU6AOsgP6IIGocVYiDGfZNlWpZXL6LxfSLFPBfjQKurU1hc5TG7DipjZsEH+op0dM2oBWZJ51hOeW5jwyAkVpwm4W+SBUa4YOXLN1K5TZ6kZAsA50tqG5fC6s1HJxjG9BDDDanO3aU0G5rG3OVorcA5VADR1R9tTInW2bMB3QOaTWucf5WUAAsKyFWTFZHWg0bxLn+AYhz4WICUabs1kz0mhu0r7HuaCANyr9zdAtTJQaiM5dB/TMFx1D5nmofQIzW9Yb01rR0DIV2fS9wqZO8XeCrqJXheFhy9ZEN67oRte2MnoOaJmzfkfYMx76gsYoMtHUPDdDma5Gj69hKMq0/+0i/wJl1wPJ8YjZWoimxpskwvqx3D6nCnlaEDNkMgY6OlK4+MJGCflTeH5d0Q73PRoznmPepMxO85zlESLCNmG8s98FtTpUB7xruEJhE1RyrGpY1rzp1uD8pWgyvyzE+ZAIs8ax7mycPSuD8xZPwAevbUajviljgpHmrBkhImwCsQWVkdcZGq9hkpCm63GRHfDXdvEWWC8tzGIwzZ6dC2EaUvm32C7CqCXWBGpvS2H+vAZctrQJkyel0JDR+rqLoM59qOY5bCeLi/3ooM7ReA17Xhht/QBBYWapE6Z5LVLGV5PWTT1fwnvK2meKeG59Ees2eK6buuUivuB2hISwCUTT5bWpin4Pk4OB9blY23PiRGRbYVQ+K+Q5GwnG8mtb0JA1sPnVEobEyba8OURstaWmpR/pdlsGirAI5Ca2aLraPL6GBGKkRb+n6hk71u1ink+yJqFcOgWZlCQGjVOQYJwrvtCuPWVMnZLCrt0Vrw41G9g42oatsPQlAydQWFEYm+K5FOfPoVpVvYAH+EOoBFjVNa7bf9bJpq33C3m+Ja5OTuN7xBLMVqflajU3p7B+Y8lrvYwKgsfN1R3HWizgG2E50ZyQsVTj+UwQssGdnYR5BIEmXIWMcYGT46mLRYhzZmdw5Xua0dGeQrZBy5ljTmgGQkAYJ5as55ddpPEaJr7Yz7IBVa4Jp+myrGXyHSpLhDxniq53F+klHozKFklAOWtmGi0tWgTioK1QbqQwTiwjLq5I0CkPsCnsHgSBFbks+vNzpL71UVUYrR80iNZpm5jCDde34vJLveZkbfBa0KH26o96RhgEouOsm3ug8xxMb097uhPZ1Beh32uUGFx2aRPOPnOCXSczvCsiRsO6Cd1xEQaByPTJGs+n/9ONAKrsdo2rqTJFnGau8qhbAp0mxdZTJTdEbaRhyJjUDTyVEQaBmDxc6PG5JM/9UL5P9W0azW2XwMpwhYe7aqEu0dqSwsmz07hwyQSdEgdv7CsRMMIgEJcle/X4mZd4CoH1+FiXSYatrvyesTBnTgbXX9dqayGPoFXoRMAI8i51m8112jVIIPo+h1EFrPs+ksayVVxwN08INNd1DEzTkio2sPP1Mg4XKhgaslCpwK4ptUkoPHtmRqIZyXhm/d1HbPYqS71785aSXS2n8PfmZsPO13SemrEr65lM8PWTSR1pnHF61g7nmR+qjN/xwWvDA6VpLzlSNYIkELVODnpg1Z3mq7qC6bJNTWju6IRh8g6b7f55cAh2L81Xbu/Flq4Sdu4q49AhE3OcKvdtX56EuXPSdnbXD/oPmsjvLOPzf39ASDqCnl7Tfv/zzsli8dnq/adOSaM1BAIxpGfjWZv87DlgyLGOm1h0qwM8R4H4nESQmWiutjhT5AMen8+sKJci/whV9vrcfkeLVNqNj8OwLpKftgYkcVY9MYTb7ujF6jVFvNFzRAONjFjYu6+CF14sYs9eEwvf1WD7FV5hStFl3/4K7v7RIdz5rYN4aVMJvf0mikVVo+LF3NNdweqnh9EkPsqM6dR0wXoLhmjZhgYpGj48aB9XX7/n1TxcIesGLlUjyKNi34lO+M7CKYdHVb9ePZVhU9gimKk3m8O2bhvB02uH7f7ivv4KBgeVeSF4gUmwtc8WsemVEjZs1NPmNI0vbSriyaeGsVFISE1E8rhm5KBooV27y/Znb351BC+8FPzK41RKNZ5NEw3X3q51GWkpAotQgzRh/FI66XLeAa8jCAyXJ0rNa7FooFa3xecH9xyy2x8KhbG5OSCkIsn6+kxcfaX3vqteef5d31Gah8Q8GqiluDTn/p8X0LV1BFe8O5y+rnm5DHbv1VLgsSUQByHN13g+TVj1VffB08XnqeREh8mJsd5ca8a+Gd7944ErQnmBdUAT+KSYp4MHx1ec+3tMbM8HXgR/Eyef3IDp22pHoCBNmG4Exup79bOQzdI00efT1ecbbx7PfnFoPTiWKErk1H9QLZ+hafKCkRH6WCZGPCy5GRioSAQY3mrjaRIA0KHWACeqBaYOgyQQ734dZjMCq7pdFZbRiYrpO79BMtDUUEqBBLZvxXARnojsF/PmNWDaVK1YiOdqEgJCkATS9YGogfahWljWZJjWlLf/maG5jnNJM9bbN34yhTmlZ57zvlKmbaKBk6aFt/iluSmFxsba9enWUgNR+1S/4iJltElM+44qMzO0Lc3eT+xz64btyOlYK0H5P+aSnl/vPapiUlEjW6wNvn/jBC0CBbrgMMgjcwdkewXXfR1A1TBmS/Q1++1/nT4tIxfO+53/9X/rxyOPDR1zqAH/9+TqIfzkPu+J8452/4lKL6B2a2vTDuMnIiAkv+BoGFLjsd5R/WemmSs8WWbwAq4Evfe+gq1dPvfpDsw9OWNLYcBEb69pD4D62jf6sOW1Ebyx37tTPH9eBhecr9W7kyjUQ8Wakd87TNi5i7NCCu/hLcnWJcnHPXsrmDmjIJIRSdt5HiYGD0qkturxYXGITbvm5RVckrNgQTWDWeON5BPIQpsz/estWCJ3/ZbX9CokJMvgYAX/+V8HERSYpznrzPolUC17hanXQ2v64pSLBadn8OHrWuzHUYO1NX42i6ozpidtOzPvCJJAjIF1MimccxzarZlKGZh+UgZLL2rCRImCMhHq2kYJJ7gUeelFjTZ5wmjncEGtqTMSjzdTa4C3bZAEInl0EoMkTzUT6cdFbm4Dll/Tgo6OtO4ymKrANVxcOcHPzs0Nl7msyxU0Mt1TJek4dXJw3yloAunkdUiewMLJo6G5mWup0rjlb9qx/APRTXG56soWfPLmNnsdV3NzuMRloEASeQVzUpph/zER5O3B9KwOgUie6lPqBrWeJZ9tvCNWphlj28Pis7J2o9eml0t4dcuInymonsCMMEf3Lj67AWfLZ4ZpulwMDUtNruSdQKZp9wIF1l8SJIFovsbbzWY0mLuZjWphCGktuyg7ZhmFEVk2a9g5HTaAhUYgyQhzCMIVy5qx+JxoVlIz/aBTwysWrR45X9XXIB0ESSCmZ3drPJ/kqb7J27IGhEXjnhD2D9/ymQa7DZSjUh74ZQHdb5h+hli+BdRwdExvvGEiLrm4Eddc3RJpbYrNcF1bvTNo+vQ022gOvbYtmBaTIAkkF9Le3MQrODWi+uFHhtEvJDo03qwoXlTKOWJaxLKhPGJi9dqiZJUrdhbaDxhhsZSw5E8m2OQ5Z1HWHk0XJfa9UUb/Ie83QcoweI1iqYGYfdup8fxgTJgpKtkwPPf3nrVwAubNzeLiC5pw5139UkQt+iYQZzsvOX8CbvvSZNtZppmMGrv3VOxSi1eIv8Qu0MAypUESiPtWvazxfJovd+MVblnjT6da5nYh0DydgNKOzhrT+MoXJ6G/3xRTVsGlV3i3vqyR/eqnM9HebtjN8m1tht3kHiXYFclBU89vKGJ73nvGfdGijJiw1KGnnw3Gjw5DAw3jyDaN4302IzGuYnU3v9WHlZIrb2j1VrvRGZfcMKzlTx2QK6dLtMVVEel0bXpxDhcseynRwIDlyY9jIjUj3/X88xq5Dq/3ez9EIAjSYLtLRdydAb2A2WgOY2iHX1hivlLGXvgEzY6u30IC0Z+qFXkIRpQ7dpY9BwEkD7/zpz4xMS9SfSuxgyAJROLwi+msc2dSfQX0mvHfAqN9a5c40ZsR0n5hcQU7Ix/41YCUMrz5P01NRv+0Kem80ZrfIBLYdhFhhAy8mF7zQbQdzN/QD/KfODErA5LbIHED2Qoh7jh0WK072/BC0fMmdeLk98+elc4jYIRBoFehTyCaMP8EqqQLooW4we5xQiDLIVDJc29Sa0uqf8Hp2TwCRhgE4pxDr9sNubsXvl/kL+AXZkUIm5LPtXQy4YnF7x8ewLoNeltg7N1bWdPbW7kTASMMAtEXoY3Na7yGPhAHQbKepd880yH+V7mcF48ojwC3g4or1m8sYut27+5eU6PRLVHnPil3B35u4kQg7uLsi0CGkR82JuXzYsbyooXqnkA0Xds0VqO2NBvdmTT2/vS3A4kgEEE/6Bcaz3e3y+amb16nmx0F6XukorESdQo6zV/9pz57Tb7OFlA9veadPX3mWoSAsAhEpjMq0skJ0YnmTs6cKO9zmuhIN8rGDtFCedRZSM/Ia8frauJH0XtTv5/UihbiRiCOo+U0UV8EsvMbKSltWPSFrDojkGUnDtc8O2yPkvGIxBLI/eL0+td4fI0bkX1a5BvwixFrhxDoq0KnwLKtcQALvz/9WcGu3Znea6ckTjDzt8dA2L0Hv4fyh3TaB5gX4qSz90JvmyiFjlwBRnkzTOMRSS6+goSD+Z6H/jCEJ54attetaYApDZ77JxEiwiYQ5//kodepSC3ENg9uYT0TmlGZYawq26bMtNaKQ80TmFhTxjrX3u6KPYvota6SbtsJG8e4fUSoW4CHvdiFPdI0YQzP/1HjdSTR56DaPPrgZ4p92ViJdKVfCq2LxaQlcm40OyYfe3IId/xzL3yA7gNNWOA79IxGFO1zbNWgKaMW8mrKWOZmaE8zdj1U56IeASZ3DYkWegaW+XVxqNkqEsL0n3DA8gTD9G9+ux8PPqTdPOj2ptN06TT4+UIUBGILpWvKvDq2JBDXjXFoOUnE5jN3zrG3NzAwgonFnTBGfi3v9gqCmIYWAWi2OLST/s6jjw3pbHHpgseZh9LavlSXDqIgEM8ATdnnoTSRDtj2Sl/oXpEroHbg8wzD2DtoNO/ehUrqs6KN7kICwFnTq9cO48YV++yMs86aLwc8x59HRIiyA5zOHDfUfRx6oCaiCfukyMfgx5yNmLtFC62WUsfdHMuJGMI1W3evPIR77zuMnp6K55mNo/AY1DkO1XEejSgJxEQWTcnzUJGR11vLHc/PJCOr9vrmbPK2g/LsLUhZv5PfuiS8P8RmasQEo80WM80cI8NhVhr5Hj6T5/Q5qL70yOqBUfdk8sKfKvIbKE2iu8yfCUqenFuhojvtE2Ud7lwoiYFrRRt9CSrjbRPRaNnq+T1yp2Sw/eXg9vBlUz+Jc+sXetAtYbuPhY/sg6LjfClCjrrejqhDW2bCGBFJZISPiFwEvQELo80Zifgj6Lay0pylKg9JonEI6ZQUb41pzraYkYNbFOw/UMZ3vn8YL79Sss1WuaJNHjrKz0L1YUXeUBf1fCBmwpjX+TWUOdNZyUqMNmfvgyIRSeVZk9rmrLm0GemR/5Nf14tO2qVMWrRwzRaHoT/19BAefnTQNltl/bQnQ3VGuTynkROodssK1GoMhun3wh94shiq0pw9Bx8nzzrQ2Sb0O08eLTcmbv2c19cFYcICMFsuboRKGEbmOI9GLSeU0X95EYpAfvZLpelj5f5akcvgB0w2wnoZZvoniAhHi7Z8mC2ChJGo0t7xqGZNdLVM79N3YfRAU5J1vktO4/WskTFPdInzmCeS/pXnzJudbMRWJjp11vRXBW57sOaZohRIB/HiptIxxwofAySMmF97u1DefDXLste6PkTfgyeBlp/Rg2czMgpLoIiUd94r0ihEF1yGzD3MOFHDJ3mI/xVZBbVdek0RlwIjQ/LtUN+H5ugs6IHV+89AOZS8KrrOeSRgXctuy9g6giG9RRUuaLbYKvxjxORGiQuBqJKZIV4FFaa7S569gv4QE4x0ymkawyeQQdNhZaTSn7HTAAbPpfx+lElpxPCwVV63sZR+fkPR4LJkDfCGYPTKG+wJqHO0BTEpDsepxcE1ZyQTw3Q/XYmMSNhD9AhCRF+f2WvX1ixrqoQhYj6Nd8llnurMq35HE5yE7OaeveXCz39RaH12XVH3nDN3xpvrH6D8vJpEW2Mhjj0yTMUzq0pNxH3Oz9N4LU0ZtRD3rmdRMZT8TrFkFZFK3S+EyWKk3ICU2YSKPDZSGftvb8P69UMTb/lS77c3v1aiptQ55yQOUxScpbEKiD5fNR7iSCBmVqmeV0FFZbPgfRupJue5S6H2o+fUNH/To44BMUdFo7nLqw/CxCfNMc+1bt6N2mYVVG8PN6YJ/FjqHctFVkL5AV6FKp/Z7kXQ25lP5zO2a7wv0wx/p/n+rjDbPhcxRtzbPBmdMcQ/B8pJ9lKzSjvPu1pkHUL2hzyAa93+DHpgEMDaFjPMsV7vX8tMtBfQoWbEQSJRq3hR4TQTvDHoC3XCn+kICjSnNF85jdfQhLMZfhWU2UpMK25cwbA4J/IQ1Chhr+qfI/e+D9Wg7+VGCdqEUQveDBV667z3/4t8EQlB3DUQwTuQmuhXIg9qvI7+D4c2MCLzuVS6KpD4K+A9n+X3OGuKJBCIWTfmbXkn05QV4K2bkaaLERx7jhoQLah9mI9aBO9NcwzR2ZbBNEYeCUGS1kqxeMj183Qq6Vs0engNc0nMI0V9nKzNnQy9Qeq8MZh6yCMhK0iIJGig0chDLZjz2r7A0XkcF8NIqPptFbyD9bzrNZ7PbgAmDP8DCRuQlTQCMTPLdD4jFS+9ewzpmRmeB7097avFdKhuSa8ggahZqXn8lVlrhCQSiLkdnnCdE83qfpQJOZJVR+Mxq51HAlHLlla/IOk/BVUn+5DH19BBHXJkLOSgh/wx/tfmiFff6xNQAUKsCqVekLiBA1ARGO9Yne0N3AsaJHKoHjTD1KQ0X4mc7Zg0E+aCBNKpR8UVJFAPjvg/iUMSNRDBfMkUKNPEzVCTuq82SePmthKJpGog3rmsjeWR7FoRgwLW+oaQUCSVQARPPpOLgW2eVgMk/hiSTCCqfab9E3v3QmlSmuHENoolmUA8+UwoBrN7bG1A80sHOrFzHJNOIJ78JPtA/O5cipRYLZrUKIygCUv6HmG8CRI9zzrJGsht84jNoKjjEScIdAJVIek+kJ99UnNQNcAwZB6OMySZQCcQA5wg0AlUhXogUAF6kRjXrk9B8GC/kc5mebrfO5aoBwKVoJcL4kqNWQgebJ+dpvH8EwSKCXQJxE7BmQgeJwiUUHC/+A0az2ez+1IEjw9Cb8JaF/zNhowV6oFA7OTbp/F8agn6KldBb0b1WODyosuhmuh1uh51v3csUQ8E4jryHfCeUCSBuEf9DfC+vmwskIA0h5wiQlLqEIgdlTptuScQEtxJHGwwY2VeZx36v0OZHr/gRLS7NT/TlWuA2kzIDxJJbQUdDWoeaoLToK9ROHjBna3Iini78/qxGry40pRRHCfDfhxqfg9Xvk6Gd7AFhRvOcFjm60h4KSbJ1XgXbl8Q14tx/RdJ4HW5EgcfMH/DNez0R7jejLOmxzLtzCHR1+G8Imq92c7n6YANZFyFyjJMknuZ6gp+R8DUQp52vms1vldsUA8mjKAZ4N1MB5lLmXWWFUcJbghHAnEGEHNXie8kqJdaGC8Ek3LrHInj+nI20DNfxe/H75rYNtZ6B/2TR6Gc4riYLU6L/bnImagz1IsJGw1qHzrCdKg5WCqIZGE1oIO/XeRfobZAT3z5YjTqkUDuxi0MzTnmjsm9qCeUuSCZSR6u/fouVHrgRAdlQkDiMFlH00ETErXZogl9VOQ61GZGYySoRw3kgnc6cy40G43O72EPmXKJwz1M/yDyPSjH2d0bre5Q7wRiTigPNVuRF5bH6245HqRv5K4wpe9FwnAfLxLoQefvJ8xWHYB1pxzUHELd2c3HEncjYY7nvcP5jMTXuLwiiRPK/CKDI9tqsgbmTnCd5fyNNa7WUXI0MIJiApA5HY6Y4ZYEe0RWi+yFirj2o06ShF5wPBFoNBiV0axxeivbMVjj0iEQzRLH0bGNhARyk5fHXXLwj2jdixte5uXQAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/ic-gas-on.e7d768cf.png\";","module.exports = __webpack_public_path__ + \"static/media/ic-elec-gas-off.4209a965.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-elec-gas-on.b47434f9.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOoAAAC0CAYAAACaELDJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA2lSURBVHgB7d0/aBxXHgfw3+yutAb5JHMXsOLCMrlYSpGTCEHWpbBzzak5S4Q7Es5FcGNBCqmKO6VIETVBXdwpzWFDAuZSSJ2usg0JNpxhlRCiNYRIRWwFjP/JyGtrNfe+T2zOSfbv7Jt589v9fmAk2SvveHbnu+/Ne2/eCx4/fvyhxGBtbU2uXr0qDx48EOp8Y2NjMjo6KkePHhVyL9jZ2QnFkfv378uNGzdsSDc2Nuz25MkToc43ODgohw8fluHhYTlx4oQNLrmTE0dQeq6ursq1a9ekUChIqVQS6j4IK4J68uRJmZ6elqGhIaH2tV2iosRcWVmRpaUlW5oyoAQDAwMyNTUls7OzLF0daDuoCOiFCxekWCwK0a8hrPPz8wxrm9qq+qKqu7i4KJubm0JUDWpb8Mknn9hqMUWTkYjQcLSwsMCQUkMI68WLF4WiixxUvPi4JiVqBi6R0AtA0USu+uK6tJHXXntN/vjSS9LT2yukXy6XkzD8bZPG1taW/dCu12eOmtfy8rLMzc0JtS5SYxI+GV955ZW6v4Om+bfeeotB7SB9fX2Sz+d/8/cIKrrnLl++bPvQaxkfH7e/R62LVKI2erH/PDFhPznZh9ZZ+vv7bbfLr+F9xqgkfJ+ZmanZRVcvxFRfpGvURtcaZ86cYUi7zIEDB2xXzMjISM3fQYBR+lLrIgW1p6en7uMvmeoudR+EFaOS6mGDUjSRgoo3hKiaRn2lHPsdTaSgZjKRe3WIKIJIiQv39oSIksOikUgBZ7e5RZHNZoX04CWPP16DWq1PjtKrUWs/xcdrUDHShYgaY12GSAEGlUgBBpVIAQaVSAEGlUgBBpVIAQaVSAEGlUgBBpVIAQaVSAGvQwjbgXmFMTt/lBuRceM7poppa0Lo8JHI3g/mh6fSul7zEXlEJPiDROX9+ClR6oKKE7OyGNX6+npbJyqmDZmcnGzthA1LIuWvzHbTBjWIENSwEtTMq+YdeKOlwHo/fvJCVVAxMRYmcsbk3y5mtMMJj+c5f/58cydreFfk2b8l2L1iQnpLogrwpYwfvpJwr2gK2LNNhdX78ZM3aoKKkgPrl2Dib1crxmFSaJz4gIWMDh06VPuXUZI+/UyCZ59LtOputee8bZ7vC7ETK/fOmLD+ruavej9+8kpNYxLmEv7000+dL+uI58PJismj6zJVXYTKWUh/9nT/eXf/U/e3vB8/eaUmqChJ6i2Z0A6crHh+NNDUEjz7zHzdlng83X9+NFDV4Pv4yS8VQa0smRAntKDWvO7DtSkaj+K0t2H2UX2NWe/HT96pCCombU5iJfNCoVD9gb0fxX2Vt9p+qgfV+/GTdyqCmtSkzbWrlgmEVNAaXL1q7f/4yTeOTCJSgEElUoBBJVKAQSVSgEElUoBBJVKAQSVSgEElUoBBJVKAQSVSgEElUoBBJVKAQSVSgEElUoBBJVKAQSVSgEElUoBBJVKAQSVSgEElUoBBJVKAQSVSgEElUoBBfQ6WI/TJLsfoke/jp9pUBBVreSZhZGSk+gPBi5KITPXj9H785J2aoI6Ojkqcjh49ahf2rcouOnxcYoUPg+yfqj7k/fjJOzVV39nZWcnn8xKXd999t+5ivmHPGfM1vqpp2PO3uosZ+z5+8ktNUKempuTtt9+WOOC5caLWlXtTwtxfJQ5h9k3z/Kfr/o734yev1Kw4jtWwsYQ9Gjyw6K6LBY1QQk1PT8v777/f+DoQq4H3npUwyEvwbFXcrJXaa8JvQtpzdr96XUfl+GFlZSX54yev1AQV0NjxwQcfyPDwsFy7ds0uRxhl8V2EHc+F6z6UUk03omSOmWzNmLAO7a9AHv5oisMIgQ1MQINj5prUXPfmJveftwmV48f/28vxkzeRghpkgrqP95pP6r6+PokDrqPm5ubk1KlT9kSNUrLgREXYcYK23CWB68hec71afl3CNoIqwbH9Vt6gtetOlHxej5+8iBTUUqn+eqHZbFb6+/slTmNjY3bzJjtsvgyLL96PP6KLFy/Gvnp6kiofehMTE7E2xkUKaqOFdcvlsuRyqmrVlJBLly5JJ8F1Pmom6NrCZQRqOnFgmsip7W0XjWx6lEolWVtbs9v6+rptQ4gjrBxCSE65aI3WCg18H330kW07cI1BJadefvll6WYIK7oPXWNQySn0y77wwgvSzdBg5hqDSk4dP35c5ufnbR9tt3b9FItF59VfnY1JYUlkr2g282KEt6VlGACP/tDsq/sjjlqEVu9K40GUNwR9oWjKR0shRhxp238j7733nhw5ckRu3bolOzs70qkuXLhQ85oc74vL0V76grr3g8juqukD+kaCNoMaIqgYwpd9vel/WigU7BC+Gzdu2KBsbm5Kq3CnyuDgoA0Kxtm20kroe//NQhW40y0vL8vXX38tSdAV1LIpRZ/9S4LdK+YPTyUyhNtswd43tmQOex6ZV+IvDf8ZQrKwsCCrq6u2WT4qhAsbwobnxJ0xzZzYvvdPvxRHbaQWPUEN75psLklQviJO2TG7jyTEeNs6Y263trZsSFCauYRWQlSf0Gleb8yt7/2TX3oak0x113lIK/ZumQ+Bz+v+CprcXYekAtebuN5J8/7JLx1BNY1HwbMvJE4BrntRaleBxpulpSWJE4KIUjON+yf/lAT19n4Lb6y2TTW4esMAWvDQ5B4nVD9xzZjG/ZN/SoJ6VxJR48MgqZIGrbhp3D/5xwEPzwnaaUl2oNFdSZ2+f6qNQSVSgEElUoBBJVKAN45TKmCStqTuZcXNAtrmMGZQySt0PWEOJQy6iDKjYhSVeY4wxlnLvFMMKnmDMcsYaIGgRrm5oB0DAwN2+GRlYvO035LHoJIXCCfGLvsaZIFqNoZk4qYEdEvNzMxImrExiRKHKi7mFkrDSCiU5IuLizawacagUuJQkqHamRYIa9pvSmBQKXFx32AQBT480nxTAoNKiUMLb9rgmjWOaT5dYVApce3MThGnNI91ZlCJFGBQiRRgUIkUYFCJFGBQiRRgUIkUYFCJFGBQiRRgUIkUYFCJFGBQiRRQEtReSUKINVOrSOru/1rz+Pjev2v5fF7SKM2zPOgIauaI+XJQYpd5tepfY0FaTN0Rt4mJCUnj/l3DauRpg9fX5cLDrukIql0dvPnFhiPJHDdb9TcKJc3JkyclTjh5MeFWGvfvGuYoShu8vmmemVDNNWrY+08T2N9LPHol7Dlrnr92lWxubi62NxJVwfPnz9etevnev0tYNBmrnacFXle8vmmmpzHJlKj7YXIdVoT07yK5N+v+FqaWxMnsOiwICSbWwmx4ad6/S6hizs/Pp6IKjNcTryte3zTTNQuhCVRovtkFjcvfmJ/aXNTJVHdDBLTnH3VL04pz587Z78vLy3ZirnZvgMaJioAgKM2UZr7379Lk5KS9UfvSpUt2RsKkJt+uwAcUSnWU7pXXNc10BRVhQliz5lqq/F+RvdsSYO3UFtnW3eBFU0qbxqPsG02FFHAy403FCY6TC1N3RJm+Y3Bw0JYq4+Pj9oRtNiS+9+8aQoL/B64PMT0L5ixKYpYF7BMbSlGENe1z+oK+eX0RKjQsoYU2vCthhKBKJahB690EeFMrbzBOrChBQXULJ0qUE8T3/l3DTPXYcBxJBhWvgYaAVuidgBshC9Btc0R8wJtc+WTuxv271knHEgeOTCJSgEElUoBBJVKAQSVSgEElUoBBJVKAQSVSgEElUoBBJVJA78gkj7BiNgbFp3k9zUYwhA5D99J8Dyb9H4PaIgyGx6K3COqdO3dEKwzMx+B+jBvGHTSaxr12Iwa1Bbi9DEvIp2lZ+6g2Nzfthw0+eFAzmJ2dFUovXqM2qVAoyMLCQkeE9HnFYlEWFxdtYCm9GNQmoSRN45L2LqBERVjTvOJ2t2NQm4ATGdelnQwlKkpXSicGtQm4qTnpqUKShmldrl+/LpRODGoTuqVKqLm7qdMxqEQKMKhECjCoRAowqEQKMKhECjCoRAowqEQKMKhECjCoRAowqEQKMKhECjCoRAowqEQKMKhECjCoRAowqEQKMKhECjCoRAowqEQKMKhECjCoRAowqEQKMKhECjCoRAowqEQKMKhECjCoRAowqEQKMKhECjCoRAowqEQKMKhECsQS1G5Z+JcoKZGCeuDAgbqPX716VYjInUhBHRoaqvv45cuXZXl5WYjIjVzlh62tLVlfX2/qH6Fqm81mpVwuV318c3NTFhYWpFgsyuHDh6Wvr09yuZxo9e2330o3wPsf5QMWNaxGtaxOs7u7azNTS6FQkHbg9RweHpZDhw7ZPwc7Ozvh6uqqrKysNB1U+PLLL2sGtSKfz9ugHjx4UHVQt7e35fvvv5dOh/cKW6twUuG97iYI6s2bN6VUKlV9fHR0VAYGBiQqvKZ4jpmZmf0a7HfffReeOHEiNI9x48YtRZv58AvPnTsX3rt3L5SPP/5Y1X+eG7du2hDWK1euhBm20BKlF6rW169f54AHorTD9WpmcnJSiCid0CB16tQpyUxPT8vU1FTXtdoRpR1CahqTZGRkZL97Bn0+6J5ZW1uT+/fviwtovn78+LH9ju4N6kyolqGvjx/0bg0ODsr4+Li88847tsssMGH6EA88fPjQdnZvbGyICxgU8dNPP9nvd+7cEepMCOmxY8ekv79fyJ2xsTE5ffr0z3/+H1wUX7rHWNOjAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAAB9CAYAAAAcCNmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAT+SURBVHgB7d09etxUGIbhl0BBx5R0HDo6TEeH6OgwK8iwgpgV2FkB9gpsVpCwgpkdxKzAoqPz0NEZfZbkOJOZSGesoyPle+7rOvlx7OiM9EiW5s+f6n2LanxfjaL586Ya/2l8R9X4qRqhWf5G41s0c/imGl9Wo9T4prg9Pq/GP/pI2Eo9rcZtNe62xqXqGzyGF3vmsBpxDqFZ3vYcbqqx1Dimsj2Oq/FGu9dFoZkLqm/I3QfGjdKv7NOOOdh4rrRsQ992zOFSaQXtjm2K2+NUM9YV/eOjbioves7BojxSGkHd0bfjTOlc9pyDbbeF0lj2nIONQjO0VP8bmPJG3kTMYaU0LiPmYDtIiugKxW2PE6Uxhe2R1CvFrehLDe84cg42UkTX92ifMrrzyDmsNLwicg42vtKMPFP8eWKh4R1y6hI0rKD4nSloeN8qTtDwguJ9rRmx8FOdI6Y2hXl/ofyCEO2ZAIcIHy4RPlz6TMB8LB6NzaMRjfAxZRa43dX9s+p7/sKOz7Hw19X4s/m9VA+Ejymy4O2R/BN133vX7hzHzd+vqvFSHTsA5/iYGgv+RvVTQg65y3qp+nlOpx/6JMLHlPyu+pHrpz5GY19/pvpZCTv/L051MBX21ItCw7LTn1CNH7V1EcwRH1NgR/pCadhF8avtDxI+crNz8VTPMG0VqneuB4SPnILSvq7hMdu5ivYvhI+cTjWuh+URPnIJGu/1y62iGYSPbFKf1+9z/0AX4SOXH5THc/uF8JGDPaiU6g0Dei2b8JFDrugflk/4yCEorwXhwyPCh0+ED482hI8crpXXNeEjBwv/oNfKDrV8wkcuuY769zsd4SOXC+Vxv1zCRy5r5TndWdsvhI9cLPqXGtfDuy8QPnKyF5aPda5fNsu7R/jI7ReNc8rzznIIH7mV1fhVaf2mre8shI8peK108Vv059sfJHxMxZXqn6pSahil6vfTOd/1j4SPKSmr8Z2efh//RfP/rPd9AuFjauwC1F6Pa0f/P9T/O4B93UXzdSfquGDmLQQxVaXevgtDofpVW/aD8ULzsfa98f9SfeG6VgTCxxysFRl2F0514BLhwyXCh0uED5cIHy4RPlwifLhE+HCJ8OES4cMlwodLhA+XCB8uET5cIny4RPhwifDhEuHDJcKHS4QPlwgfLhE+XCJ8uET4cInw4RLhwyXCh0uED5cIHy4RPlwifLhE+HCJ8OES4cMlwodLhA+XCB8uET5cIny4RPhwifDhEuHDJcKHS4QPlwgfLhE+XCJ8uET4cInw4RLhwyXCh0uED5cIHy4RPlwifLhE+HCJ8OES4cMlwodLhA+XCB8uET5cIny4RPhwifDhEuHDJcKHS4QPlwgfLhE+XCJ8uET4cInw4dIh4W+E1r/Kj+1xAAv/WnH+1vBKxYudd585xEY09BxM7PpNMYdS8Wa3A55U4y5iLDW8RTVuI+awUhorxa2LoOEVyr89TMz2uNEMWXQ28dw38Ez9V/SR0jiKmMO50lmp//YISiPmgLjUTAV1x59yJbeu1L2Sz5RWnw3+RvUBI5Wg7u1hR+RUB4DWufJvj+SC9oe3UvroW2fa/W3WQjjWOArtDu+2mV/K6FtB09gediDYty5ONFOf7PhYUH0ksVFWY63DLnaewsIqmjnYRdN1M4+xFc0cbD5lNV5r/Iu4oHe3x7XSXNB2Odbbna2dw2zvUfofaaMpB+oKZUUAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/ic-bill.1d7b6bf4.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-wekiwi.17097f4b.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-envelop.4be5f66f.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-logo-wekiwi.0920f2fc.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-header-logo.1578f4ae.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-bot.74ad43c7.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-elec-green.8121e048.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-linkedin.0495632f.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-instagram.9c8e481b.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-facebook.601d1384.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-youtube.893bee49.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-twitter.2fbbf272.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-certification.b5c45a59.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-logo-login.2d6f9f77.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-avatar.00dd7701.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-wkw-switch.ee0d9558.png\";","module.exports = __webpack_public_path__ + \"static/media/ic-logoAGLelynx.afe7b544.png\";","module.exports = __webpack_public_path__ + \"static/media/ic-selectra-radins.9a64f5e1.png\";","module.exports = __webpack_public_path__ + \"static/media/ic-ag-selectra.e27cb50d.png\";","module.exports = __webpack_public_path__ + \"static/media/ic-arrow-back.f722c6cc.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-arrow-next.1442ff55.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-copy-clipboard.0681c160.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-warning.ef9ea237.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-world.8657244e.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-tree.88db4d17.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-green-energy.05679fb2.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-succes.be630ef5.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-erreur.01c878b1.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-logo-timer.e715998c.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIISURBVHgB7ZgxSwNBEIWfnZUEsVNh7CwU0lsYLOwEe1HXSrBKZyMkP8DCX6CHpU0EBW3EFDaKEizERkkK+4ggdsYJN8vd7d2ZE7KbIPfBg8zuHDu83b05AuTk5PxPRmCHAmuRNSO/n1m3rBaGgFFWhdVmdRJ0wSIMEGI9wS/mm3XFKrN2WPuspsx9sjYxIHQR90h3q4LA1QU4RsnC3UILMlZincB3dJc1JePbkvsKe3ciBiFwkWQs7JhWMzR/LWPLcIQu6EhikviNtcIqsmoydik5GxIfwgGEuEva1a1Q3hjrXdRlVnLqcIAni1UlVgiKNvkQdSnCUZHKKKiA+NnUlBE9EusSH8MyuiAlsXk2NYR48efGs1ZQsshpqJBu3EbcRU/mDoxnm7AIIe6Mh+jZDOemXSwFi3iIbmsJ6c40jIIUojtgBUJ2ZxSixRPSL1ZfqSHZmXpCri6oJLGH5IvVVxSyO2PedEJ8B6ygC1qV2EP6K0f3a5Ixcwes8BdnPGTvQn2DEHxpk1FI2cgtIv7JZu6AFRSyO5O1C1mBELh4h+yvHHMHnDAhi74kzBH8Y0ASe0juQtaZk4XPeuQRHL1ykpiWxRs98pz05994QLSTmCg4eOX0Yk2KaLHmjbkl1pfMz2PAVBF0lRv4H7GPobE9DAkK/n88nZDqSD8GA2USfqcZR05OzvDwA45R0pTl+N3MAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/ic-close-timer.10e159e1.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-save-screen.b1092f7f.png\";","module.exports = __webpack_public_path__ + \"static/media/ic-businesswoman.8f4e43ca.png\";","module.exports = __webpack_public_path__ + \"static/media/ic-kiwi.3e1cb1c7.png\";","module.exports = __webpack_public_path__ + \"static/media/Document d'informations.a00f42de.pdf\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdgAAABiCAYAAADz/8I+AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAACNsSURBVHgB7Z0JlB1HdYZvd8uekUyMbQgBG/AzJoGYBFuQhIQEPAJDIDkYGZKw+mjMnnNIJBZ5NDJGI8DSDAI04rBvHpbDDpbDHrA1Zt8tYWNsg+0xYDCrBXY8M7JeV/7bVW+mX3dVd/Xb5mnmfkelnlddvVW/V7furVu3iARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEIQVQUCCIAiCUMyxSOuIwgdiezdanrLjLqTfEcXfxHY/CYIgCEKXgBCNzsVmGoL1EJJaQekOpHeiDk6jNhANVhAEQciw6ixocm/DH6emMueI1DXY3ooU0/KCZSFr5g/Cn/fO7PsgHvel2P6KBEEQBKF1wrGUJleHwPkMJeZhGqCVwd2RXoTn/nGqHn6JvDNIEARBEFojfMuiUAmuQMbptHJhrfYFqIvfmDq5HZ8fRYIgCIJQjXBbSmN7GwkNapC115t6uQ2fH0yCIAiC4MeqdSnhuoeELCdCyN5kNPsraeWYywVBEIT2CG80wuMyElysRR3NmU7I+SQIgiAIxUTPXdRe6WQSCgjHTV1hXJaOIUEQBEFwE33HCI23k1DGCdrZKemM/DsJgiAIgoN7pLTXtSR4EHzc1Nn7SRAEQRDsRBuMsPgDCZ4smNRvKSsZkiAIgrBCUaeY7ZdJ8CS41vxxItJxRSVFwAqCIKxcjteb4KckeHL4J6kPxxaVFAErCIKwcjnKbO8iwZd0HOZCGSoCVhAEQRD8WeVbUASsIAiCIPgjAlYQBEEQuoB3mERvSSwIK5GRkZFaEEQ3ZfOVqp8yMTExQx1ky5atfJ1aJvu88fEdUyQIQr/gLWBFgxUEQRAEf472LZjTYF09dl+UooNBoPYHQTgVx4ev6HQvXxAEQRCWkEHfgh3XYIOAJ94GQ0qpKQjqfeefP7qJBEEQlh9sKrwP0hoSVhLeArbbY7C1MAx2j4yMnjk/P3ve5OTkQRIEQeg/Augb74IN7kTH7l8TxRvMh+NR9pXYvoC0cD2M/V8nqr8Uf3+PhOWOt9zsiZNTEATrBwdXc0ipdSQIgtA52ArH4f4ehD+Rksg682h1fg6Bx0Nd1yDd5nEeCFg6C5v7O/Zfb7Z/gutAmNKDU/vQjqpHI/9LEMJn4/NXaFmw6jF4nn+maqCzQbfguKuw3Y90Oy07IozBKq+SPfQiDoagye6emNj5EhIEQWiP0yDQXojt05D+LL+bG8DQ/BF8G5sPodHn1U9+T20RPoOahWsaHh6bwLUeScuC+O/xX4sLiyd1fwj1gU5H8EbI3S/Q8qHzXsRhSJuUqq8rS1wOX7AZ2zmgyW7avHnzGSQIgtAaEGLhO5Guxt//TVbh2gQ0U/UIbCdxzI+R2vQJUU+lQgJu304igWFN718gqD+Pev8gPv8pLQ9a9yJ2Ua/XD0xMTEx7FJ0eGRm5FGr0JUFAOWEaRdEwNuL4JAhCVU5FQ/05bP+cWuMEpN04x9+g0X8uJabkytRL9q8miS9gA5p/+FDU+5n4+3d0ZLN0XsSMnppTP4en7GT3KRVu2LRp03EkCILgD7TC8DJqXbimeRbO9V5qiWB/8X7FY74/J8HGQ1Dvb6QjHuXtNd61nhYLWYy57sEXcls6n6fxDAwMsGY7TRWAVjwE7ff0OGatWNUa+UaIH0DPaNpTw05gU3UYhllBP9OrebvcyTD10ESVZ2jUSb2uhsIwqCmljoMZ/mAcJyb6A3F8eO+uXbv2U0V864avzw5seKunL+aqA3Nzc2M+HuNcB2vWrNmQeqc1vn88x0E+TxwH06997c691EH0PUdn4hpn6Clli/fN1zt0aHa6373dG/WuVHBy9hnwXHt9vkM8353yUaOYtn4Dru81U+W7nSfcgf9Ops6BsdvwR2g3tlc6iuI34Tj2JnZ5G78b76FMyz2SuQF18HjHPlbY2EpwX9TDRqRHW8o8E+ntSEfy+rP9Mk0nnoJReFs2Fw1cjTzgH+vg4JqNEKKbuCGJFxYJClLnSjbr+Tpbtmydwd9Tc3N37ilrJKNoFczUwYbM/e6hHpmvBwdXT+avT1NU0vGw1QkaW+5oENcLb/GZG7j1UXRUUif4PLZz50XePXYcdwlZQvaZ+zPBSMKL2XEtf3QwhLovrEMtIMJtXDb7ThvPwfswnr+x8U7Hx3dUbAibOf/80fWoh22NYYsgCHL3zdcbGFhzENfcq1R9e78FSUnXG3/OPQLykbfR851zQJl9+Ww1TW14++O7id8iXWzZNUUVO9Up/g7pXI9yMPkqdmKCmTbwsZK9DOkTSFeTP79AO/EYnP9DSGsXs/m6Ab6j8TLQ0ArhX+iNJWXYqeyTqI9X4O9X53cHLz7CF3j31mC7Gipxfn61VchBwyr98nNjgh/rlfhzrLmXXkiNy/Nxo6MXbCgqqBQL/yzhk6lnBGdmc6IoKNTWWq0TDvqBRvfiTpjmN2/eCgEVXWkXrkzSQFvh64+MbL1EN+yu43PUkMY4Tq/RuirB19yyZXQfNHyrT0AWU6/DfI9l36FeoZ9h68UV6q3xzp11prVJmzNiMNTm92SbLZM7LNQy4fMo3avOnx1CL8CYavxA/P0ApPvh73/AjndQMTzl5rlUnetwjYfjGo9CehLSY/H5gStAuFYkfo0WtFm8f/v9ygm+BbsqYAcGZlv6oW7dunWj6V3XqDUaDcw2VwEI//2WMeIaCzHqMuYateZcNXPRRRdd6jqmA3UyzMK5FSHVgIUrtLx9RcIddXqFLZ+vy9fHseupNWos2Kt4oTeu2eIPumaikW2jJSQI1HGrV6/h9z5M1Um0VNc7x7uyargDA6tbsuLozpft+6mm27QG/GPxboXvVP09pMc+55DuQPomGniexrO1+Fj6D2otEhNrcl9F+jTS5eQ319bFMaSn/gwhQTumv6XyqSDcyJ9G2trAx/ydOU+foV5ryWRv4vsVHMRe2Pxc/470FCR0YJLOcb/Ezi/zXF+gqzesVGhtDI86KnTGOmZBArPhJBWelwWjmrE5UWUYcwnZyckxjplsEWjhEHmiNbIRFsq1ar3+yCJkgmlX6Q7WSS0Mo0uoBSBsalFEl5RrzvF0NsfEt/boHBTfP187DI/a5yNkfa6Ja+0nbbqcKtC8h2kJwbjwNtyn43lZA7VPiUvhFLLz8wOT9voONraixUaRsgpmvLcpah0WNH9ZsP83SN9x7455XuoXkH7qSBwYocrYLjTX4GvuFF6oi4UjxeXor5HuhXKvR7pOjweH+7QjVwgTa/gTJNbAa6lrsxbP5mlYusJrkX6IdLk55lsm793Ueie8G1zvyP+LzGcerjwHzwbTcXi9ea6PIn1CB/AI0VEO8XsNX0X55ztFO58FP2xOScfDEw6qkT2e5/DahlHVvciTro7BQtuxaiuHDx8+YMvnRsAlSIwA2cPjuunesG5IWUNhZ6qgZjl0DONvB2zOMmwmRuPTZAbEufjzGHkwMHAMtDmVNH7QlGZIR5QpBQ3Ok/P3UrdqE0V1wkIB+/ZkHXOMpjmMPzdkBSI31iMjo2MTEzvHqBLstJAVrknjPmM+1Lj+5+fn9+eOdAo6NQPT7WS9Xr80/U71OPPgets75efhMWKUWVs0zo6xyjFyNDToLGyfn5+dtB2/ZcuW4YLvUs/Jd2jUNL6327me0/dvxmeHLeP6jBkzbx5b5U6myxFx9epj+Dta0dM2P+zB73jnzp0teuwmsHZZYB5OIjedSonzjRWM8qsnlpxDlexPA7NyUBRI4iqzPa24XMABK56PdE9Hgfvq/eHZeAQeK/4sjkE9Bk9ynzM55jk45iykYbS0+2jpudORn5Y96OAEb0cqixr11zqF5+px3PpnTD4rbLcj75+aiwfDqLvLyYsYwxDBaZnMy00HLEN4tyWP5GS0rtyPnVfaGR+3m4vsTheJUNg7P3+nNZaxaZinOLHgYEeW/HkDHn/MeYfyOBTGBA9mGrHETFzm8agbNHVG1ePsZjQ14zrO4YgCTS8+z3XMrl07WMhtwv1M6l5xUGs+Z7AN+6aqmO0y3qpJI5+9PncGsnVsLAi17PlYyLmEvDnHFLnfac2YMa3H45rD2FgEjZqp14Nzdu3auZ8cjI+P45oj06553EtJHKuXoKNo7WyZd8Fz0FFf+XeuI6nlv5+sxQ4OHsr9ZvB+h6mCgLUPeyTXnab2mCvZDw03hIaa3C9rsra5rYrKW0RfAdspoOF6WRBhjgzfh+3PyF/Tvj/q40PYsoAvc0jqNvdx5N9htnim8AqqZkWo6chciXn/8zqLnc4oI2CJO1bHU7n5HgKTLJ7R8bvtxdWx5ElXTMTsHFJg0rTmm0axls1n4ToxseMcn6kT3GBzw53N11ODnONKlkYkHKIStLaQyysdrzOaZfbIaVtZd53E63ymPLAA5bI2MyJH1aIW4PodH99pvb5lGk+NLCbWIuGaPye/U9qT31NoxrS+By1cdziF6+I1J2bm549e52F+7SXnuYRrmsY7t5l+bd9P1mL5N5Y/kxbI5Int98C059yUMIt0bUkZDkDxFW1WDThq0GbSjW1lM3cPqdL2ctkqAoiBYI7eTktO9ChLJnd2fqT/DHjs3PZs0BzVr5Bc7T47qL2VFt5xDHNy7jsP60D0WCq/Rxau92jOU98nHUvZxj3IE++XHASreMrHxeVp9CZ2DrGfpdBctM1WnjVXqoBuuG3jaa4GuZ5rXCCQLaauRbTgsJniyhulKuZhpRKzbCZPVZo+Yhrc8/LnaSngx1QV0zK07yGyauvVzNMQdmNZgZGaT92ES5PievMRrg204Ikrffe6R7xnfHzHlG9p/c6V5d5d38/6HvuZwo3kwaZNY8fhu2rxwG/buanBZZ7l7mvMjK81AhdaXwDtKNxN2oHIe/7i8kDBVFw4ft1tTsQ9vCqfrdiMztOpeMw1O07KJtk34DuP+1boOCnWxlkTf4/l/DW822ebv39LC9psGp/fcPzsfJ56m6MwWzqOJ08q9KLUEGltpCQFNecZEm0qj8v7EI3oWCuT/tl8aTnXcWaOXhOsieV7+0lDVCMHZnzPtc+pxVYxD+uxZWUxUdqmFxVje0aXgCqiujaiLEMEfuPbaVjYkcXSoINcZLE5kFUX6oyZyjJNSwoPB6hSzTWL9jnI37utztzP6TdlBybm9TbntygKK9+3nZjP4zfo1QxMf0mwg03Ggegas8zcibRiCB9PSwM01/BTZB82+KjZDluOe7UZc4Y1gv6P9Go83zChLd+SL67+dfHv+J2Wa7Elo8jrF9po8IRMHl/3U+7y/rGIe+n2fJ6rN7tqVSK8M7TuHOFuMGKXQLGZiYdtBd3aawO3cK5iHjbaX4bWNQIe+86dzeHl7aDSmC1rNbbpMbOzs5dSC6ABt2if6QhSjXLqdEu5aWqZoB0HnQ4QtPHOyVLXwem2sq5Oqd+UHWUd7y6adlYRbmy3UPuwE+J2vdxc9FRacpKIZZcgfcx/OEJh7FKxRv9BbG/wOOBB1FkgYMJdjsQe0dA0g+9h+0WUfVj+cHXLoiBUEJjxszLpLe5LxxzN647mvMQxqeFL9E3KO7thvDT8N3IS8Tjt6sw9fhb/3eo44FSqQNeDUmvNqX5O0ZhhHAdnZqPSoNd+gNq6bnAA5xxK56H37jD9spk42thc1m4mznod8/Nle+9mfHNT/tgq5mE6wxapB2b4VnryVioEq2AHm0rvY2BgFsI7yuXDinAbnoE6Q1Cz5A1lc8oCeBQxN3f0XmhoF9MS0c69x3G8F9/X3ek8/C6snSr+fWJ4Z8biHMW/izFyYDqcQ9n8ViwVxcRs9mWP4lI/Bw8w5qc+qsdq4zfQkqBuNSbcHy7eU8BOWgUrzrBwjZ4CK+oXjULP9fHFEq/mu1NnYfPoy4uLOP3FcNPhKNrbX5vPVZewu8WkdKcBY7GJkxJbudhjmVftuTBzWXaGerP9lCzUs/erCn7v0T2rGFO6psFqwRrvwRjqKWUOOTyZ3pLrPV5mPydZNDZ7+LSKZuLh9IcwVJuyx9rGN6t6D1Nn4662TRgGlUz1qIOeO5horTnP4cOH/0AtYpyAKg9TdIpDhw7dTC2ix2LzQwOu8rbAE1z+ggsucEY4s1taEuF+BXWceEwvaK5+SO3Dbd9riJo74b1DcRjB9HPwe3598THBx7RwXQACJXxz8TF9E5xhDvf/QgjX9xeU4SlLT9Rj/yE6PiE6VRGPobKZ/26mTHbaD/fiU88Yf4RynuQBB+GwLRJxEvZlTOiJVcAylrvAvakC3hosBxHnQOwe5W6GwJyZn5/bu5RB06EZzuDHn82uFRzCjcvG5nOEPF61MI5k8+rVDUnYNJcwZVoba+SxGRwCPnNJt+lSdzp6PXOgc0Ag91zA6shhkW3XDLUB3id/j3v+PEwYhm39hmz3zh1Hm9mZp+wMDBzamBXC9XrM32WruZcd8fBdzWZPTXTGuckGxsbUp5Eer4Puq7V4Sg5a0Iog4ZjFGPNTZ1Lv+VE+K/hFiXZ0TT6rfn3/yFAXPFyXODvtcxTgua0voSSmfNaBiOsjeT7ugHDc6DKNHJ0W9S1qXmhgEOeAFhtf1Fw0fBLlKi/4MJmI6HZUpfH7CiZi9mRsZzWMpadYE8mbiTFmyj33yVRW1jyVNCTQnCwNU+K1vBDMII7DDdmGyGUeFoRuMj8/b/0duAJPuObQuhzxevC95h8Sz31lEyMvqM4C9gH4xT4Gf/8NJVGCAs+GkM2r6iHUrE0uFXdRdQ5Tb+G6L1hHV/EzsMXoZm3yjj9OSfB/17OxhqrYTF/WgWWL3kvJC16KUGVX8uGhvXFqWs83eGamQxPj3/uomEpe2X2xMDB6wQez4412s7E/thV7TG/eij3ohPaiZCFp014bDYmtYUprsfaGqNA8bK0TPce3uhexC1dD2y3Y0Qoa/znUJXhxCYyX5vJxzXa1zxotEd249yLLkivwhPE+nm7Os3nTF3+vuwC3kNfpFH/O5B2NbPzewodhi/HCoMgxBRpM9Ai0u/0gYI8EbtCLHDhhgf9HpEPlY5XRMMrwXN2jqKOwshS+jpq1YTYR8+pH3zWfeWGIzHOor5M7tKMhuH+VMdi+ELCk1f8Mdm9Hf9gzOTd4PVNyTK73fvTRq4cp0WLZUzJoOldzQ5Jfmq8RdhFmvvV5o0OpZ2uuTnC+k11RsPqNep32RxlrbRwnoRQPdmvoQHd0tlqczlYNkXvSeCFm7HzJ6PS927zJ03AdbtkyOp11XDJ+BZlpc3mnwc47N7UE97KgNcWsOXGEn8twZw93F+eVcIQK3Ertw4KKx5yzwpUDTPwA74sDPfDc1vtQskJSMt3Gd8yM59j+D+WiuYXQlmMjYENLR18VeDAvlLk/VaAvjPcOh6Qz2ls2yxoXtcQTNh+ons3EenJ+c4OTbUj0mFNualASPpHNw9nzlpnRwjDfGYCQXt+JJed6wV13HT2TzWtl7m1VbALEmPpbwj6FrHe0c+/4Dq3P5sWxKnWa8pmyYwvowUMwnXduimDGC7e406qzSk4Ac2VQ5q3qPa9R6BQhL7yeWfaNv5uxMfPHz0ca1SEw2dwbP6yac5vV0vc0WpyS84zMtVkof5qK4dWKeKUfbxW2LwQsT4XI5vnPwcvjDjGo9hYdZzTSmeZcFqxRLqKNrSGxNUxhGO2uah425+9onfQaHRzCFuigPJxkOzjmfra8xqktmlZvqRaysOnIID9fm9fFLTuuIPDExsVz20KFcljTTltYEjPeTneKP0zloetOKtn/MxJ6jHqcJY8F4FfILsDQcVYc9vD35AfPic06kvH3hJc+5EUD1jbvSn4Xt1MxDyUtM+8gT/pCwLoaY/5BV12/1JS3hl30GRuCELZNVchqAlYvSVvDZF9qrDzwgUMjplbqpEGvtV+XsDv//NGudRJmZwembPnomFxMFeEFK6gPlv5qpVPiWmTBV8N0abENYW8LjdiBuMMWEgFaBBrNiCMDuUx37OxSYgWIryKhxwTZJd94fut3Sg76FVmHE63wIhEfyWdzaMXwGfl8H9+W6BTSwv835Enf+He7ftBFC0ZnYQFi1jutWc41Rl7kzcRZ6vW79rj3qlIPSl8vy07USYPG4uOjo6MbqEewsLN5bkOL2l1VyOq1dy/YPTIyWqiBuTXnYL1rbWAbPH5ZtgZv72AtdnS3b2nznGOWXd7TZ+xzw7WwZwuRbRm9Lk3N+Rrp2LUFKJgVw28gYbw1CQTDC3W/CHcLk1/IZr+ijiWPJ/6AhB4TZLVAXqHmntRRYg46MZvJfLpJKdTV+O+rVIqCBqvYoc57Yfu+EbAFcV9rLFCKJrsz3LNevXrNPrvG6B920W4mXoTH+Hbt2uV0FJmbG9xbPB3I38uyqE7QkFzpI6RYMOkGN7qSj4vjYLJVDbgqOkiDsmo1LGR5cQife+F3y50D1P0mFpRlz81B+h3vYMxHyOL86zH2uY/6CI4Oxp2LovpqdELIEXmphVjStlWMhsgeY3qKugM7vfh0jHhaDhpOXmgkWaj7rbgrjlP7JyXHfQDp1yT0mERQpeHVcTj4RoFM4kXss6bdQn6s58Q2MUA6ZGb6XjytW8kUsBmqEB2rX7yIE+bmBs4ZHJy/0hICr1avq73s3YiGeW+9Xl9wVoqi6PQ4ZmeOYMg2PdhElFpHFWAzsW1dWUOhVuOeS9igWlxcFha29T21JpsIKTZjTqMOLg2C+ODi/qT8Gez9ie1xjSk/WvPIL77dLXiJNbw3dHqs8ZuhCUXDqK+9URRMp98rR4IKw8QT/PS8g1mynq1zvI/zISS3c/1Ydo9pDSwYi+PDVzTOwcKJHbC0OTYf+q8f0FNlItbEp9Lvu1FX/K5d09uqrsLEuAJP5Oun7UXVy2CrBXucvow6CkftUW8iYQmIP6EDhTTxX/h+sxAbh52QTcZsimUHNA4mwsH+W1i4IHyXnlHihOf0fpy8CHgOLEd58l6Vqa9CgJglwgrW4QyG2GzHGm0jaTOeu0HkZbuqm65c9ni/hoQbJpcWW3USftGaroYa0jA7r6TrRQvRcKM9NF4wtHnz5p5NP0HHicNJOrV+FhzZ96qdcThkmjXOLT/TMBWg1051mutrvKQirnMTx3bmxDGSdb1lp6csXZhEw4wlr+l9N+rKHQaRzbfVVxMy5vY95SXbXlTdg/gC/Fd5HN1NstYoB4H3HdMTOsvnUP/fzWerf0C6FN9n7AtvRPqxtkgkyxD6TtNJUefA/b9171dfwn8/pXJ4KhdbSbzHX5m+i7HlIVC84IaxXqe1etmu6vfgcDCaJg9cy6tRi5PwO1UnyR2gXiDk1xWZuTsN18fExI619oXTWyHegzoZKys1Pr5zuL1rcn3XuxYYw5PtbT7D9NzcbMvPwJ3FsjLdcW7K3wre+/NIm7/9Z/pbUdcgcYPds9+AkINN/zwW+suCMhG1z23kXnoOqLLITY1beaj543dUgb4MYpkSKC2anVg41tdWWWA7dwZFlmk4VRqSukWwt97T5zqBJtiykNKCVW33WXyhW0DIbtILILfaUVDT3DkYHx/3dpDia8Kc+pKqmijK74Vg4vGeGVpiGs9Qvd44vOnOde0E9nB7+DfomnOTDQ5lx9HMHqq1nMpwoPiLcCxP1WhrtS6hI9ygF1NPIih5kATibyHIRfwBx/nYK/mT5Hdtni6GTl5wC1Wgr8Zg05gfLcbnRsZMSLYzLWOzC5hl4/ayCbYzAiQbmalaQ2KW/5pOmxyLvY/LMZrxJtTJpE+dMNo0qy6dn5+dXMrFFxpAOE5hM7Vly5ZhPS5bPN6p32v8Xp7D3Op7ZXMxj9miPzlGpXXGQjze3rgWjuvh1Ka8AI2ikHvgC89Q9t5T9TXZKcHH9eFaNadzi6pX4mrcFcajVQ3v9Gw9pzIZH7OERFQwMQbfxO/5f0kHEnD9Blgr5rE4lwNLQ3OZQXo3OYm/bLaX496KYgvfls+qs0m06NxXWzJvLbmfb1DLxNeh7jLjk0EnojilmdEdHvUEMyb799Q8C4TXv8W4ZwiTcvwxXP9CfE45KQXsJTxbcg32EL4W6cHN2QGEq/KM5cyRpJK6rOTp3IJNe+ngqRNBoGoQpAvjh7xyT70e7r/rrjtn+kGA9Br2KuWF01etCk6u11USezOKgtsOH1Y3Hzo0O93vdbLoXBTgOYIa5/H9x3H8BwiJrmhH2e/RkVRfDdizmh38Gu+cfweor5n5+fn93XgGdBb32ZyboCGfQv0DO8Rwh4jD73FQd46JeycJBYQcHvA/kdD5j70tQ12mscYrh7zkjkhMbRPA4hGc3ZzHlhDymQN9AuqJx3FfZ+7pgtQ5+Ps/4zrwiBKwgiAsDRCwUxZP8Knx8R3nkXAE05cCttPcD8/JYRZTU7Y4bK7ydPSM/g1loT3HrGU/Bxn/sbivWMD2+0KCgiAsMXoh+3xs7x45NwlCm4RPodx8aJ/A/gtled1YNiV/Db+DsrCbzVcmQRCEAgYHD2G8MxsdrafOTYLQKizjnpvJYzOv7+wStvJijF/x2DqPB1dacF0ErCAIZVjWh+1a5CZB6CSPJB3cPw0HLvGM3rWKY1nzknmNEK2swdbJExGwgiA44bCRlNdeux25SRA6RGAZV44rfHdj1n7Zw5zn0j6AEkc69kz3QwSsIAhOwpAsy/X1InKTILTN/fBdzYRXTNZD/hz5wdO+zsUxn6Ak4teqxjSwX3geLwJWEAQ7emGB/DzldudzC0JvCNn6knFuCj5I3gQcpxraq3ql/qzMkojBTb5n6NtAE4IgLC0mqEUmr3g1KUHoH2KOEJVd2P175EX4Yvz3BKQ308LC7eqBZueN5IkIWEEQchjt1bYC0lJEbhKEVvAUpjn+CmmXjqymXrGYHfyjHo6ND/gaf8VELAhCDldoxDiOryBBWL7ADBx+hpLpORyOcyG05r1NDGv2IP6+78lEgxUEwQovDpH+HIZ00/i4zH1dZsyb7TEknIRvOS9fByEb8MpNqQUhwnMpUUgVC987SBAEQRCKCS9Agt0z+hKtbE5FPfxE10U4ktl3D+TdovcRR4U6xZTjz39GgiAIgpAneroRFn+gzqy/eiTyT3j+35h6eHl+d/hmvS8wpuFVjzNlOSKUWIEFQRAEKxhbDGOjjT2CVhYQjuGr9bKC4Sz6F+fmi0TPMsKUx15NRCj2rk8E7ldJEARBENzwermJEHkXrRwei+c9YATlNfhsW1nnkdh/p6mbCxezw+tM3hgJgiAIgptogxEY7PDUT+v7dpoT9fzW4DvmeWeNkLQ4eEVPxL4/5jse0Tmp8ddTSRAEQRAKgKk0MA4+ATs7LZfpm7wSzuO1I1dwFbaHzTP+DNtx7Lun5Rg2G1+kTcKJIL2YFuvjbvjzBpNfISKUIAiCsJL558Wx2PBIXed3NdJ67agUfBnb3y9qm4kZfAL7H052Zy4I4+jJKHONOYbr4hU6v0H4frPvdlremr4gCILQWRLNTaWEbL96yLLQezDSM3GfL8XHjyPdqL16k3uHphpcgS0vqn420r0s5+BnY6cl9qLeifTzlDC+EvmPbi4bviNVNy+iCjcqCIIgCCDkUJhmBaXg20T1YVqIxdszBpBORnoQ0gm4pxP0Z/UwbO+L++K5p2tM2duQ/1Xk/YIohhmYLkOCCTgRoHx8DZrpsSjDx/wFtg+hZO5qco6jmi+rvo7EQvkjSIdNJoRw9DbkP9J8fg2ucyF5IgJWEARBSBG+Cv81zKNKRy8KL4Ww5chG1yLdSVqAcWIhdTRpochbFnyrTRpM5a/W23DQ/M2r3NzLCL4TzWeMcQZ3x/ZYWpRN8yjzW3ycM+eBeVbdYFa0YSHI02dOQh6bbI835+BtUWQqnEtdpced6VcQmD8gLZh/avbzcz3ORG96qrkuOzXB9By/gSogAlYQBEHI8i96ubZgOY01/l4L1RgCm2LLfnZmujfKsOabEtAs0NULSQthQRAEQWgbVsCejc3lKQeolZLwvMG38PzD1MZYtGiwgiAIQhls2j0Lgoe1O5hhl6XsgGCN2UP4ZqSvIP2aBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBMGH/wdt4j42B9UkWAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALkSURBVHgBfVTbUdtAFF09xgY7M4gKcAeRK4ioIFCBnQrifDC2RGZkfdiS8AeigsgVgCsAKsAdIDpQfhIrxLs5V7sWCijZGXvvXt09e+5TY/9Y4/G5o2lswJhwcOyRTgi2hm7NuVhdXIQ3Tfe01wrP82zOtUsFxAgAW6Y+9wBqKzkTYnscx3FWv2/WD5OJNxSiBLMY49PNZnOVJEn+N/NxT9f1z7AbMaZfQ9VvZEiGmmY8AizTde10Pp+vR6OR1em8G8DFkhX06+32eUWsyN4wDIvsGgHB7hHuWZxv+3TBdc9HQohL1rCgD+I4nO7OZ2eevVhIYH3nqowPTwhMui4u8UMShLPZ/DiMorlGMnkAwR+P3RLQdb+eGAZ7AIFBBQiiAwQ7p5hJ18pEpEXx8zgMw/t2u2tT1qXc6lOiJOjYabWMO8g5yAwrl8EIZMQN3DglI103j8JwtpSx9R4AYCtX1/RIu922Ee9bnOFR+MV1vWsQOiFPdApuiaxpa7mbPgynu1AQGF0kxrCx2+3OAGG5Y7KUHOUhyazb7R6YDSHv1Q5H9GeaemKa5vei+AX2rCojPGAp5pVOZ41LZK81QRAgTi2K6bKyqgH9D5C6Ia8zoCVb8fkR+8cXhuwtoGwd/glttKRLyvROMpDJmM1mTyhqBf674eGaHQlRFKUEjDobSNvt6sVQKHD+nnbO+RP1uwLN5DfN2oGXgNRiyChlcohfKlvr3EGMyFC1lubQpcVigfbb5lR7ql7Lh0GmlE1qOVaNJ1LyQBqJbxKIX8nSEjTOUtIURZEnSXxIspxOLw8TQzJK8doIRdon48nETeUjfCpDYfjqkRJwb6/zgNa7Vmn4UP7rrJyPJno0YLW1v9+lDkCMeIrYBqrwh1RK1Hq7vsf3RMZUnFAooii8LwHZm8UDuHYQhtFSjbRblZRjZeCrffU6FI2AYFGNdpp3nDOAimEUxZnv+xa6heCnaiYSWI6Rl+zu/AF/IKeUUk7KqAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHaSURBVHgBpZSxUttAEIZ3z5PBTho/gvIGLgk2GecJrJSp4ryBKyTRRC4SSTSRn4D4CaKUVMBg9aajQ7yBKzzMwB3/2oLBtoTH5p/R6G7n9ru9291jKlCv16tXq+9tY6jDTA2YLLFjPsYvU4qTIPg1LPLlZcPBgWdXKurYGFOn15Uxs78MrrycuO5hjEV/MKzSesmGdrPZ4jQdna0AHcfzAXNoQ8GnDWgd0JNnICLr5pFtJfju7u19ukzT9Ipz4DXlF7+tkLDJ3d3tRyXRvRU2j5LqtdqHjsKgQxvLIMOmK/+XVq21rcC2aCOZzBj9JQiCIe5uTAtRckOh3horLsagfCgpg0VRlElV4N7spQWWokLpQRD8/grAsAyGaH4WeQowWzYyV04dx7HCMOhi6uP7+wTLi78QhpON2fMO/xWELkJEDzOITOb9XYux3XcqEYAJ52VzTKXiM5r1Ldnr+lsyr3Z23iU4wqR8mWnj665/LEwmmVf9fh8w/YPeKJzAl/+sl0ej0dX+/meJYJe2kvbDMBw8A+fQi5NWqyl7tWkDSc1GUeg9zRfeQ0R6DugNhih2XpMAmmh9/+3oKBos2MscXNfFk6akzy2UVd5N0sPSbiaZTqf/4zheSeYjovDOj82Z2KQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEsSURBVHgB7ZTBTcMwFIb/ZxeJcsoI2QCYgLJBNiBskFtKONAcjOsTbNAyQUegTELYAC6oEmDznLRVK9Qg1Tn2k3yw5fcn+t/vR2ghz28HRLjjdeaciwCaO4fSGDXfVUNtQoAb7Chj4e9rY0zVKvi/0B+mzv2Um8LUCOUxkWQhpNiPtTAVRcH+0HPj0f6wt+/Wfl32rMWMt0FiHrYqkvJoJogoWGwF/2UkAFuiI4jsY92Uxkd3ijAqrfULumadw+Gw8LEZSUmxUuqN9ynvJ+xxqrV6Wt7ZOlvG7dXXjcf3tXUCHXMQDKfucpZlUb9/MuGkJ0KIzFr7wccXaIbFlNcqX1tn/pVxfh+wORz8LY6Db32MMKrF4vNc5vnNiL+UIBweDr1jHg64QkewVvIL0iZ71XXk8VcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHDSURBVHgBnZTdUcJAEMd3L8w4jA/SgdgBVgBUIFYgVmB4guAD8EAIT9IBSQdYAVCBdCAl5MnhQW/dTYIJmUwO/M8kd7nL/rK3H0Fg9fv9ulLWGwC2iKgGGSFidzabBoPBcHk4fPUWi0UIJVICQ7TWRNDJw3LqXl1V17Zt10qBDBvxWIczxN42TFAGYgcukAmqDMfMiPY56KjorQqYMKS7PASeN7uDM4ScPcohNslWK4XSir16zxt7nutDmYdKwb3rznYyHw6HDSJcS0iSOBfF2s8vqOym67o7x3m1+XqSeZGBSX8esidhPOoHrklJVHBc+xcQERoJOuDrJllt8dyXDqlWr0f8ATs11WO5Z0ITItL4JClEP+35fL6RedJBn8fWE0Ot4eMI8zxvko1zbA9hJoa0V0rdHp8sy5KXxlp/byOEhpcyWHxKCjMxhBXXWhD/KCpN153y0WEnHcGnWPC8Ww4DPjI+5utwD0lf82YYxwVrsaEJBm2pDJUWcqR66nFkUL8EJs/cy3oCpaK9wCQUJlgEjLOqn7PNfyr0Y+PK0gQTRUlhD8TIdxynCbl/o9Z6m3jaMsGiPThTafJooxT2imCiX/bnJFiiFMk/AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/ic-help.646144e4.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-stripe.8b6146ad.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-red-cross.920177d9.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAwaSURBVHgB7Z1fbFtXHcd/514n/Ze2bpkmYGN22vEA0hZXSEx7GHEkkEDqlOQJUCfVfhmIIuK+dNKGFFvQSvSBJGiTgJc4YiDxQhN1D0g8xN1AMF7iggQPtOvNYFNVtsZdmqZNfO/Z+R37Otf3HtvX9r3nOH8+Utr4+m9+33N+/8651wR6GLoSj0IfxMHSE0BoHDQS43cQdkz4BDDY40pgwTJYlgEaGGTAKEIPQ6CHoOvxOJjaGBAyxG4l2ceLQxAQKLDXK0LZugYmFMgxowQ9gnIB6Go8Cbo2ChZJsU8TBRmgIBZdgE1rnolhgEKUCMBdy35tAkySkWb0RnAxYI4M3MyDAqQKUBnt+iTz1UnoPQz2U4ANMydzVkgRoMcNLyIvS4hQBWCuJg79+hT7dQy2HyyLonly4L0chEhoAtD1E5M94eO7x2AJQpocvlGAEAhcgMqo166wl07AToLQaXhk5YJOYQMVgD44McFGS3YHjPpGGCw2jAQZGwIRgKeVFV+fgt0AoefJwfemIQC6FmDHupxWaDQbRIDuSoCq8RcDaxlsP/Lk0M00dEHHAtCVLyag37yyi41fhfWYNqyRToNzRwLwkd+nL+3gYNsmnYugQZvU3M6e8R2w+FdJQtqmLQH2fH5TUiwNb1uE9mbAnvGbQ0mGdwDawLcAFXVJHPZoDitE6erTSb8P9xWEeYVLSSCFxy6hxCrmU34q5pYC7GU8HcIWesjBmyOtH9YCunbilkrXU7pnQfH6I1h4aw2M5TIY75fZMbN2f/Sozn40SDzbD8MvHIDEUD/En+qDnsBHy6KpACpdT+HtdZh54x4U/rwOpZLV1nOTTIjUS4fhLPtRTEtX1FAAVSknGj53aQUK76xDt8RjEcj8IAoTPzwKymjhihoLsHZyFiR2N9G1pF++E4jh3aAQs798HJJfOwBKsMhIowUdoQDVpcRbIAkc9ePfve3L1aAx409FKjfIERYPBlhsuMue27oLkH31OEy+dgyk02QWiAWQOPrRz2cufNTwfgyw6M9HXzwEiWf2QfT48wCRbwDoX2ef/sna44rFIv+Zm5uDQqHQ8PXwtWZ/9ThIp8Es8Aggc/Sjr89evCu8D0f55GvHucE42nMAfT9ihn+u1ctyIWZmZiCfzwvvVyJCg1ngFUDS6J+/ugbj37ktvG/i3FHuLqLRaqHe/2M26lPQLihALpcDQ5CEZM5FYeryZ0AqgllQJ4Cs0Y8B99Tz//X4fHQ3ODLHmLupfDo2+vf9jo3+L0GnoPFHRkaEIkz/7DG5GZJgFtQLcP9kih2ZhZAZ/PIyL6qcoPEX//h5VlDtq34yZvz9V+v8fKdggEYR0DW533Ppb0/KLdw2zGPOdYP6ZhyhbXXyOiH/5qrH+MiV3392y/hI3+VAjI9Eo1FYXFyEOJvgTrDKTr/8f5BKv5Zx3qwJQO+zJUYgcQiZ3CVv0J189RivXmtgsMVMJ0BsEfB/J1h3YBosDUKGnTe3ZgA1UxAyotGP2U6WZTs1yBMdBVw/4AzIZDKe45iNSYNCktLBmH1zSwACwxAyotHvSQf7JniBFRYTExPCWVD8xyOQxhoZt3/lAvDsh4S7rwf/QPfoT76w39se0L8KYYLGF82CBZYWS0Mjo7Vf+b+6HvqmqmuCHs/Zl1wjHf1+QIG3GTgL3BTeeQjSoJDguwnBFoDg+VjhMn/1gecYzoA6NG+Vi/l7Op2G8fFxYS6PYJqJBRemmtiKaAXOgmQyWXcM3RBmRZKIQiTCB32lq8VPigsXt4/FlDMec+XfpL7gsvN32/DY47l165bHh6NA8/PztcfEYjGPgd2MjY15ekaGsckWdPaBFIiFAhSqMwBCdUE4styjq9bRdKI9UXcTCyfnqEdBFhYWPE+zjW/jZxa4awLk+j8lBuLqoNcq+X+4672iNjMuIbbCPdIRtxtyV7eNnudmaMg76UUFYnjQqguim1EgOoSJ8f4mdAKOUjSms9efzWb5sdHR0Vp8cDM8HHpGHQAkjv9qQPU4hAz2XDp6HjM0+mo3mEYODg4Km2womug5PUgUMyGNXwIg7Hc66nOGmX/3HJqcnPTlUpyP94OfFbTQiRI+NEPf71Pr6zsQ+lvrX55DOKJFPRwRaPxUKgV+WF5e9hwbelZSBmSzRo/hDAhfAKZzLFaf9eB2Ew/mn4TPTyQSsLS01DC1RHGmpqZ4fPCLMHh36Co7hkai0t7x1DP1WQ/OAE/hQz9gIrwrfL49E0T+fWVlRdheaIZo3Vj6rglalieA6I+b+80n3gdu/gKa0U48aAQGbrcAnqpcBpouT4DR0wOeY/nf3vc+0Hq34SwIClywd+PpS8nAMkvSBMD9PHWLLlBpTwgXQzYu4AUmIAxw9LsrZ0TJDCCRktSoI9qrmf7+HXEs2PgJhAGOfnftgNtUPH0pSbBCjBggCf6HunpAGIxzFwUrUuYfWsaDdkG/Pz3t3WuMS6JKIGU2AwhIrUhmf+3dEDX9RglmXr/nfTAKsPHTQNxRo7aFytEPm2BoYBGpAmAccMcCJPPKRzD3psDQ5TzAw9OV4NwhjfYG8d13qkY/A7enaKBpRZAMbkERtaNT37sjFgFjwsMzleBs/Q98Q/8Nxo2fw0jyK8LFnKnLj6kb/XhuMWA3dHPTgP5wu6FusOJEEUa++aEnAKMIMSaOsCgqs7hg3fEeZ4YGOFwRihdzrKVhMeMbf2Hv8YGw7YEjv7YDTwmE90IiOA3o2glD9okYuCKGO+FEIuCe0bZ2rK2/6DmE2x+bGb9uK4wKrMoMqKShlF4DBdgiuHswQexYy12827vGR6jlEACI9DhgY4vgBhfJhZmRD3ADWF4QS3rG+EgfOGeApkwABEUQbRXPXrrb0U6FRtsfe8b4LACTA5WsgAtQ3bOudIUC9+u701M0/szr7X0sX9sflbPlcRx7Q60FUIzo/K35tx5AO4jSWEw3ewrTrNl6Kxmnep4tzpwFhdhFmvNMSWzYoVFj1bpBFFjthh7OGPdZljj61aabHkrkiFHrBm4JUC4XWT2A8z30FbJmYMPObUSsDZox8q0PG96XOafwHGExda3YmgviZ21YtPWOppAJerRKX+dthUXqbOxqR2vzoBjR+nE3KDs5WwQBw32SXp0A/E4KBVCMe/14x2CB5zKXoqGGUyQJColGvb0pP+f1Yv7vDNLxAGdSIOhmwX3I8wnxiwzogxOTbKEmDj0ExoZW20bmGpwA2CPk7eLLifgvskgOFCLauIvXDGqFewu87x15MtBMoU2FAvCv8yDUAEWIMpfzr3zctC2BJ9q57/ezA1sOJCca/UjjOW1qXV2StxuwGHO7GxzdeHa9excFGv38hY+F15w4e0b5BZt45gMHy9ON724CvX8SL9CaBAXgOjEatlPGTh9kiz6fA+VQSDf7gqDmAuD3eln6Eiiqjse/fZv1gto/exHbD9jiVrfcWGOeHLo53uwBTdMK7reouoCMOyjGTrdXGfeM8dH1aOb5Vg9ruTGLDNyYVlWc2WvHWAMIzylzgVtMlv76hV4Y+bzoahR4nfi7cCue07pPW1JdG6A7uva29yqKQ0P9kDpzRHgeghIozDC/72u7tu/L1/OT+Yi1CLB3AdemYL/n4M1Bvw/3PWTIwH+KTNmWPm1Xg36fmC2vluukrTnL0ynFVXIPU0Lj+/H7Ttp2mqxjmt0TwUMJqNa28RHfMcANXX06C1r4V9jaBlSMjy66AzoWANkToTvjI10JgOxaEaoBtxO3U/8yAUA/OTkGOr/a4u5IUQktspR8vFvj85eCgOB9I6ot9tpCTuCwIgsOmVlCgvlSz8AEsKGrJ6dZbjUBOw80eJo11wLduBC4AAj/Ehvdmt0xswF7YbqZDsLluAlFAIT3jyKRzLYO0BhozfC+zLnyFiHDY4OpZ9k7Kd322CYlVmzOwEB5Oihf34jQBbDZJkJIM7yNNAFsakJodLhnYgRf76ALcMjKyzK8jXQBnFSv1o4XMVVxiStWxdI5ljrPh+njW6FUABtKWcBe1ZMsfR0LdWbgSKcEz4crqDS6k54QwA13U5s6WwCiCdDIECoEhMTBd6VN2Vo2tocJW8Og1/kpWAPlomz34oeeFKAZXBykHInXDhJSAn2TGzeMXD1MPgWc+flJeiyxAAAAAABJRU5ErkJggg==\"","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\r\nimport Arrow from '../../assets/icons/ic-small-arrow.png';\r\n\r\nconst CustomButton = ({\r\n title,\r\n color,\r\n disabledBackgroundColor = 'white',\r\n onClick,\r\n arrowLeft,\r\n arrowRight,\r\n disabled,\r\n onMouseEnter,\r\n lowPadding = false,\r\n className,\r\n loading = false,\r\n}) => (\r\n \r\n {arrowLeft && }\r\n {title}\r\n {loading && (\r\n \r\n )}\r\n {arrowRight && (\r\n \r\n )}\r\n \r\n);\r\n\r\nexport default CustomButton;\r\n","import CustomButton from './CustomButton';\r\n\r\nexport default CustomButton;\r\n","import React, { useEffect, useState } from 'react';\r\nimport CheckIcon from '../../assets/icons/ic-check.svg';\r\n\r\nexport const CheckBoxVariant = Object.freeze({\r\n V1: 'V1',\r\n V2: 'V2',\r\n});\r\n\r\nconst CustomCheckbox = ({ variant, ...rest }) => {\r\n switch (variant) {\r\n case CheckBoxVariant.V1:\r\n return ;\r\n case CheckBoxVariant.V2:\r\n return ;\r\n default:\r\n return ;\r\n }\r\n};\r\n\r\nconst CustomCheckboxV1 = ({\r\n text,\r\n id,\r\n checked,\r\n handleCheck,\r\n imageSrc,\r\n link,\r\n img,\r\n}) => (\r\n \r\n \r\n\r\n
\r\n

{text}

\r\n
\r\n \r\n {img}\r\n {link}\r\n \r\n
\r\n
\r\n \r\n);\r\n\r\nconst CustomCheckboxV2 = ({\r\n children,\r\n onChange,\r\n id,\r\n defaultValue = false,\r\n setValueOnMount = false,\r\n}) => {\r\n const [isChecked, setIsChecked] = useState(defaultValue);\r\n\r\n const handleChange = () => {\r\n setIsChecked(!isChecked);\r\n if (onChange) onChange(!isChecked);\r\n };\r\n\r\n useEffect(() => {\r\n if (setValueOnMount) onChange(isChecked);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \"check\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CustomCheckbox;\r\n","import CustomCheckbox from './CustomCheckbox';\r\n\r\nexport default CustomCheckbox;\r\n","import CustomInput from './CustomInput';\r\n\r\nexport default CustomInput;\r\n","import React from 'react';\r\n\r\nconst CustomInput = ({\r\n isLocked,\r\n isLockedV2,\r\n text,\r\n value,\r\n type,\r\n error,\r\n onInputChange,\r\n onToggleModal,\r\n minLength,\r\n maxLength,\r\n isInterrogationVisible,\r\n defaultValue,\r\n placeholder,\r\n loading,\r\n avoidAutoComplete,\r\n pattern,\r\n onBlur,\r\n}) => (\r\n
\r\n {text && (\r\n \r\n )}\r\n
\r\n \r\n {error && error !== '' && (\r\n

{error}

\r\n )}\r\n
\r\n
\r\n);\r\n\r\nexport default CustomInput;\r\n","export const scrollToRefDelay = (ref, delay) => {\n setTimeout(() => {\n if (!ref || !ref.current) return;\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest',\n });\n }, delay);\n};\n","import React, { createRef } from 'react';\r\nimport { scrollToRefDelay } from '../../utils/scroll';\r\n\r\nimport WordingConstant from '../../utils/wording.json';\r\n\r\nconst Wording = WordingConstant.Common;\r\n\r\nconst CustomModal = ({\r\n show,\r\n showCloseButton,\r\n handleClick,\r\n children,\r\n contentClassName,\r\n}) => {\r\n const myRef = createRef();\r\n if (show) scrollToRefDelay(myRef, 200);\r\n return (\r\n \r\n {\r\n e.stopPropagation();\r\n }}\r\n onKeyDown={() => {}}\r\n >\r\n
\r\n {showCloseButton && (\r\n {}}\r\n role=\"button\"\r\n tabIndex=\"0\"\r\n >\r\n {Wording.popup.closeButton}\r\n \r\n )}\r\n {children}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CustomModal;\r\n","import CustomModal from './CustomModal';\r\n\r\nexport default CustomModal;\r\n","import ImageElement from './ImageElement';\r\n\r\nexport default ImageElement;\r\n","import React from 'react';\r\n\r\nconst ImageElement = ({ isChecked, text, imageSrc, onClick, comp }) => (\r\n \r\n {comp && comp}\r\n {!comp && (\r\n
\r\n \r\n

{text}

\r\n
\r\n )}\r\n \r\n);\r\n\r\nexport default ImageElement;\r\n","export const BillingMode = Object.freeze({\n PAYMENT_SCHEDULE: 'PAYMENT_SCHEDULE',\n CYCLICAL_BILLING: 'CYCLICAL_BILLING',\n PAYMENT_SCHEDULE_WITHOUT_PACK: 'PAYMENT_SCHEDULE_WITHOUT_PACK',\n});\n\nexport const Energy = Object.freeze({\n EL: 'EL',\n NG: 'NG',\n});\n\nexport const SwitchSituation = Object.freeze({\n NOW: 'NOW',\n LATER: 'LATER',\n});\n\nexport const SituationTypes = Object.freeze({\n MOVE_IN: 'MOVE_IN',\n SWITCH: 'SWITCH',\n});\n\nexport const FontSizeVariant = Object.freeze({\n XTRA_SMALL: 'XTRA_SMALL',\n SMALL: 'SMALL',\n NORMAL: 'NORMAL',\n TITLE: 'TITLE',\n SUPRA: 'SUPRA',\n});\n\nexport const FontWeightVariant = Object.freeze({\n NORMAL: 'NORMAL',\n '500': '500',\n '700': '700',\n});\n\nexport const FontFamilyVariant = Object.freeze({\n GOWUN: 'GOWUN',\n LEXEND: 'LEXEND',\n});\n\nexport const TypoVariant = Object.freeze({\n PARAGRAPH: 'PARAGRAPH',\n SPAN: 'SPAN',\n H1: 'H1',\n H2: 'H2',\n H3: 'H3',\n H4: 'H4',\n H5: 'H5',\n H6: 'H6',\n});\n\nexport const SectionsSteps = Object.freeze({\n STEP_ONE_ENERGY_SELECTOR: 0,\n STEP_TOW_USER_VALIDATION: 1,\n STEP_THREE_PDL_PCE_IDENTIFIER: 2,\n STEP_FOUR_PACKAGE_SELECTOR: 3,\n STEP_FIVE_BUDGET_ESTIMATION: 4,\n STEP_SIX_USER_HABITATION: 5,\n STEP_SEVEN_USER_SITUATION: 6,\n STEP_HEIGHT_FINAL_RECAP: 7,\n STEP_NINE_SIGNATURE: 8,\n STEP_TEN_SAVE_DRAFT: 9,\n FAILURE_SCREEN: 10,\n FINAL_SCREEN: 11,\n FAILURESC_SCREEN: 12,\n CANCELSC_SCREEN: 13,\n STEP_PAYMENT: 14,\n});\n\nexport const CodeScreenMode = Object.freeze({\n NONE: 'NONE',\n OFFERS: 'OFFERS',\n SIMULATION: 'SIMULATION',\n END: 'END',\n});\n","import React from 'react';\nimport {\n FontFamilyVariant,\n FontSizeVariant,\n FontWeightVariant,\n TypoVariant,\n} from '../../constants/enums';\nimport './_Typography.scss';\n\nconst FontSize = Object.freeze({\n [FontSizeVariant.XTRA_SMALL]: 'fsize-xtra_small',\n [FontSizeVariant.SMALL]: 'fsize-small',\n [FontSizeVariant.NORMAL]: 'fsize-normal',\n [FontSizeVariant.TITLE]: 'fsize-title',\n [FontSizeVariant.SUPRA]: 'fsize-supra',\n});\n\nconst FontWeight = Object.freeze({\n [FontWeightVariant.NORMAL]: 'fwheight-normal',\n [FontWeightVariant[500]]: 'fwheight-500',\n [FontWeightVariant[700]]: 'fwheight-700',\n});\n\nconst FontFamily = Object.freeze({\n [FontFamilyVariant.GOWUN]: 'family-gowun',\n [FontFamilyVariant.LEXEND]: 'family-lexend',\n});\n\n/**\n *\n * @param variant define the typographie render element\n * @param rest all props passed into render element\n * @param className added to existing className\n * @param fontFamily font family (use Object in constant FontFamily.*)\n * @param fontSize added font size (use Object in constant FontSize.*)\n * @returns typo\n */\nfunction Typography({\n variant,\n children,\n fontFamily,\n fontWeight,\n fontSize,\n className = '',\n ...rest\n}) {\n const fontSizeClassName = FontSize[fontSize] || FontSize.NORMAL;\n const fontFamilyClassName = FontFamily[fontFamily] || FontFamily.LEXEND;\n const fontWeightClassName = FontWeight[fontWeight] || FontWeight.NORMAL;\n\n const classes = [\n 'base-typo',\n fontSizeClassName,\n fontFamilyClassName,\n fontWeightClassName,\n className,\n ];\n const fullClassName = classes.join(' ');\n\n switch (variant) {\n case TypoVariant.PARAGRAPH:\n return (\n

\n {children}\n

\n );\n case TypoVariant.SPAN:\n return (\n \n {children}\n \n );\n // No styling made for H* element\n case TypoVariant.H1:\n return (\n

\n {children}\n

\n );\n case TypoVariant.H2:\n return (\n

\n {children}\n

\n );\n case TypoVariant.H3:\n return (\n

\n {children}\n

\n );\n case TypoVariant.H4:\n return (\n

\n {children}\n

\n );\n case TypoVariant.H5:\n return (\n
\n {children}\n
\n );\n case TypoVariant.H6:\n return (\n
\n {children}\n
\n );\n default:\n return (\n

\n {children}\n

\n );\n }\n}\n\nexport default Typography;\n","import React from 'react';\r\n\r\nimport WordingConstant from '../../utils/wording.json';\r\nimport Typography from '../Typography/Typography';\r\nimport { FontSizeVariant } from '../../constants/enums';\r\n\r\nconst Wording = WordingConstant.Common;\r\n\r\nconst PackageElement = ({\r\n title,\r\n price,\r\n quantityMonthly,\r\n description,\r\n chosen,\r\n recommended,\r\n onClick,\r\n}) => {\r\n let className = 'package-element';\r\n if (recommended) {\r\n className += ' package-element--recommended';\r\n }\r\n if (chosen) {\r\n className += ' package-element--chosen';\r\n }\r\n return (\r\n {}}\r\n role=\"button\"\r\n tabIndex=\"0\"\r\n >\r\n {title &&

{title}

}\r\n \r\n \r\n Prépaiement de
\r\n {price}\r\n {Wording.priceUnit}\r\n {Wording.priceCyclic}\r\n \r\n {description && (\r\n
\r\n {description}\r\n
\r\n )}\r\n {recommended && (\r\n
\r\n Wekiwi te recommande ce forfait mensuel !\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PackageElement;\r\n","import PackageElement from './PackageElement';\r\n\r\nexport default PackageElement;\r\n","export default {\n URL: process.env.REACT_APP_BACKEND_HOST,\n URL_CS: process.env.REACT_APP_CS_BACKEND_HOST,\n URL_GET_SIRET: 'https://api.insee.fr/api-sirene/3.11/siret',\n ApiKey: process.env.REACT_APP_API_KEY,\n CS_LINK: process.env.REACT_APP_CS_URL,\n ENV: process.env.REACT_APP_ENV,\n URL_SUB: window.location.origin,\n LamdaConfig: {\n region: 'eu-west-3',\n apiVersion: '2015-03-31',\n accessKeyId: process.env.REACT_APP_LAMBDA_ACCESS_KEY,\n secretAccessKey: process.env.REACT_APP_LAMBDA_SECRET_KEY,\n },\n URL_PASSPHRASE: process.env.REACT_APP_URL_PASSPHRASE,\n\n FunctionName: {\n getPackages: process.env.REACT_APP_FUNCTION_GET_PACKAGES,\n getOffers: process.env.REACT_APP_FUNCTION_GET_OFFERS,\n },\n EffectiveStartDate: {\n NOW: {\n EL: {\n businessDays: 7,\n calendarDays: 2,\n },\n NG: {\n businessDays: 7,\n calendarDays: 4,\n },\n },\n LATER: {\n EL: {\n businessDays: 7,\n calendarDays: 2,\n },\n NG: {\n businessDays: 7,\n calendarDays: 4,\n },\n },\n },\n\n DefaultSwitchDueDate: {\n NOW: {\n EL: 0,\n NG: 0,\n },\n LATER: {\n EL: 0,\n NG: 0,\n },\n },\n\n EffectiveStartDateWithoutPack: {\n NOW: {\n EL: {\n businessDays: 0,\n calendarDays: 1,\n },\n NG: {\n businessDays: 0,\n calendarDays: 1,\n },\n },\n LATER: {\n EL: {\n businessDays: 0,\n calendarDays: 0,\n },\n NG: {\n businessDays: 0,\n calendarDays: 0,\n },\n },\n },\n\n FirebaseConfig: {\n apiKey: process.env.REACT_APP_FIREBASE_API_KEY,\n authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,\n databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,\n projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,\n storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,\n messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\n appId: process.env.REACT_APP_FIREBASE_APP_ID,\n measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,\n },\n\n Stripe: {\n publicKey: process.env.REACT_APP_STRIPE_PUBLIC_KEY,\n },\n\n FACEBOOK_PIXEL_ID_V2: process.env.REACT_APP_FACEBOOK_PIXEL_ID,\n\n ChannelsFixSwitchLater: [\n /^UBER-SWITCH_VENTEDOMICILE$/,\n /^PIOUI$/,\n /^PIOUI_.+/,\n /^KOMPAR-ENERGIE$/,\n /^KOMPAR-ENERGIE_.+/,\n ],\n\n ChannelsDoorToDoor: ['C2E', 'DEPANN', 'GROUPE-POWER', 'POWER-DISTRIB'],\n\n ChannelInformationDocument: ['WEB', 'WEB-ADS'],\n\n FinalCodeScreen: {\n withGetPackages: true,\n },\n};\n","import React from 'react';\n\nimport DayPickerInput from 'react-day-picker/DayPickerInput';\nimport 'react-day-picker/lib/style.css';\n\nimport moment from 'moment';\n\nimport MomentLocaleUtils, {\n parseDate,\n formatDate,\n} from 'react-day-picker/moment';\nimport 'moment/locale/fr';\n\nconst currentYear = new Date().getFullYear();\n\nconst FROM_MONTH = 120;\nconst TO_MONTH = 18;\nconst DEFAULT = currentYear - 1975;\nexport const fromMonth_ = new Date(currentYear - FROM_MONTH, 0);\nexport const toMonth_ = new Date(currentYear - TO_MONTH, 11);\n\nexport const renderValueDate = date => {\n const pDate = new Date(date);\n return pDate.getFullYear() === currentYear - FROM_MONTH\n ? new Date(currentYear - DEFAULT, pDate.getMonth(), pDate.getDate())\n : pDate;\n};\n\nexport const YearMonthForm = ({ date, onChange }) => {\n moment.locale('fr');\n const months = moment.months();\n const years = [];\n for (\n let i = fromMonth_.getFullYear();\n i <= toMonth_.getFullYear();\n i += 1\n ) {\n years.push(i);\n }\n\n years.shift();\n\n const handleChange_ = function(e) {\n const { year, month } = e.target.form;\n onChange(new Date(year.value, month.value));\n };\n\n return (\n
\n \n {months.map((month, i) => (\n \n ))}\n \n \n {years.map(year => (\n \n ))}\n \n \n );\n};\n\nconst modifiersStyles = {\n highlighted: {\n color: 'white',\n backgroundColor: '#6f49ce',\n },\n\n outside: { color: '#8954ba', backgroundColor: 'white' },\n};\n\nclass CustomDate extends React.Component {\n constructor(props) {\n super(props);\n this.handleYearMonthChange = this.handleYearMonthChange.bind(this);\n this.state = {\n month_: this.renderStateFromMonth(),\n };\n }\n\n handleYearMonthChange(month) {\n this.setState({ month_: month });\n }\n\n renderStateFromMonth = () =>\n fromMonth_.getFullYear() === currentYear - 80 // 1939\n ? new Date(currentYear - DEFAULT, 1, 1)\n : fromMonth_;\n\n renderDate = (date, value) =>\n value === '' && date.getFullYear() === currentYear - FROM_MONTH\n ? new Date(currentYear - DEFAULT, 0, 1)\n : date;\n\n render() {\n const {\n onDateChange,\n value,\n maxDate,\n text,\n isInterrogationVisible,\n onToggleModal,\n error,\n styleV2 = false,\n } = this.props;\n const { month_ } = this.state;\n\n return (\n
\n {text && !styleV2 && (\n \n )}\n\n \n (\n \n ),\n }}\n />\n {error && error !== '' && (\n

{error}

\n )}\n
\n \n );\n }\n}\n\nexport default CustomDate;\n","import AES256 from 'aes-everywhere';\n\nimport Config from './config';\nimport { toMonth_, fromMonth_ } from '../components/CustomDate/CustomDate';\nimport WordingConstant from './wording.json';\nimport { BillingMode, SituationTypes } from '../constants/enums';\n\nexport const Wording = WordingConstant.Price;\nexport const _MS_PER_DAY = 1000 * 60 * 60 * 24;\n\nconst UserWording = WordingConstant.UserScreen;\nconst DataWording = WordingConstant.DataScreen;\n\n\nconst offerSimple = (offers) => {\n return offers.some(offer => {\n return offer.product.productCode.includes(\"OFFRE-SIMPLE\")\n })\n}\n\nconst log = (title, message) => {\n const debug = Config.ENV === 'PREPRODUCTION';\n if (debug) {\n console.log(title, message);\n }\n};\n\nconst pad = s => (s < 10 ? `0${s}` : s);\n\nconst getFormattedDate = date => {\n const d = new Date(date);\n return d\n ? [pad(d.getDate()), pad(d.getMonth() + 1), d.getFullYear()].join('/')\n : undefined;\n};\n\nconst getFormattedDateToBO = date => {\n const d = new Date(date);\n return d\n ? [d.getFullYear(), pad(d.getMonth() + 1), pad(d.getDate())].join('-')\n : undefined;\n};\n\nconst areListEqual = (arr1, arr2) => {\n if (\n arr1 === undefined ||\n arr2 === undefined ||\n arr1.length !== arr2.length\n ) {\n return false;\n }\n const arr = arr1.filter(e => !arr2.includes(e));\n return arr.length === 0;\n};\n\nconst sendImage = (choiceType, value, imageSrcOn, imageSrc) => {\n if (typeof choiceType === 'string') return imageSrc;\n if (areListEqual(choiceType, value)) return imageSrcOn;\n return imageSrc;\n};\n\nconst addDays = (date, days) => {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n};\n\nconst isWeekend = date => {\n const dt = new Date(date);\n return dt.getDay() === 6 || dt.getDay() === 0;\n};\n\nconst getDateString = date => {\n const day = `${date.date < 10 ? `0${date.date}` : date.date}`;\n const month = `${\n date.month + 1 < 10 ? `0${date.month + 1}` : date.month + 1\n }`;\n return `${date.year}-${month}-${day}`;\n};\n\nconst getDateEffectiveString = date => {\n const day = `${date.dateEffectiveStartDate < 10 ? `0${date.dateEffectiveStartDate}` : date.dateEffectiveStartDate}`;\n const month = `${\n date.monthEffectiveStartDate + 1 < 10 ? `0${date.monthEffectiveStartDate + 1}` : date.monthEffectiveStartDate + 1\n }`;\n return `${date.yearEffectiveStartDate}-${month}-${day}`;\n};\n\nconst getTodayDateString = () => {\n const today = new Date();\n const date = today.getDate();\n const month = today.getMonth();\n const year = today.getFullYear();\n return getDateString({\n date,\n month,\n year,\n });\n};\n\nconst dateDiffDays = date => {\n const today = new Date().toISOString().split('T')[0];\n const d1 = new Date(today);\n const d2 = new Date(date);\n return Math.floor((d1 - d2) / _MS_PER_DAY);\n};\n\nconst handleConditionEmail = value => {\n const regex = /^(([^<>()/[\\]\\\\.,;:\\s@\"]+(\\.[^<>()/[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return regex.test(value);\n};\n\nconst handleConditionPhone = value => {\n const regex = /^((06)|(07))[0-9]{8}$/;\n return regex.test(String(value));\n};\n\nconst handleConditionPDLPCE = value => {\n const regex = /^[0-9]{14}$/;\n return regex.test(value);\n};\n\nconst mergeArray = (arr1, arr2, key) => {\n if (arr1 === undefined || arr1.length === 0) {\n return arr2;\n }\n if (arr2 === undefined || arr2.length === 0) {\n return arr1;\n }\n const arr = [...arr1];\n const temp = arr.map(a => a[key]);\n arr2.forEach(a => {\n if (temp.indexOf(a[key]) < 0) {\n arr.push(a);\n }\n });\n return arr;\n};\n\nconst addBusinessDays = (days, date = new Date()) => {\n let nDays = days;\n const now = date;\n const dayOfTheWeek = now.getDay();\n const deliveryDay = dayOfTheWeek + days;\n let calendarDays = days;\n let deliveryWeeks;\n if (deliveryDay >= 6) {\n nDays -= 6 - dayOfTheWeek;\n calendarDays += 2;\n deliveryWeeks = Math.floor(nDays / 5);\n calendarDays += deliveryWeeks * 2;\n }\n now.setTime(now.getTime() + calendarDays * 24 * 60 * 60 * 1000);\n return now;\n};\n\nconst transformLabel = label => {\n if (label === Wording.totalhour.label) {\n return Wording.totalhour.text;\n }\n if (label === Wording.high.label) {\n return Wording.high.text;\n }\n if (label === Wording.low.label) {\n return Wording.low.text;\n }\n if (label === Wording.paymentFrequency.label) {\n return Wording.paymentFrequency.text;\n }\n return label;\n};\n\nconst displayPhone = phone => {\n if (!phone) {\n return '';\n }\n if (phone.startsWith('+33')) {\n return `0${phone.substring(3)}`;\n }\n return phone;\n};\n\nconst parseQueryString = search => {\n if (search === undefined) {\n return {};\n }\n try {\n return JSON.parse(\n `{\"${search.replace(/&/g, '\",\"').replace(/=/g, '\":\"')}\"}`,\n (key, value) => (key === '' ? value : decodeURIComponent(value))\n );\n } catch (e) {\n return {};\n }\n};\n\nconst isEmptyObject = obj =>\n Object.keys(obj).length === 0 && obj.constructor === Object;\n\nconst validUserType = s =>\n s === UserWording.userType.individual ||\n s === UserWording.userType.professional;\n\nconst validEnergyTypes = energyTypes => {\n if (energyTypes === undefined) {\n return false;\n }\n if (energyTypes.length === 0) {\n return false;\n }\n const types = [UserWording.energyType.EL, UserWording.energyType.NG];\n const reducer = (accumulator, currentValue) =>\n accumulator && types.indexOf(currentValue) !== -1;\n return energyTypes.reduce(reducer, true);\n};\n\nconst validCivility = s => {\n if (s === undefined) {\n return false;\n }\n return s === 'MR' || s === 'MRS' || s === 'MS';\n};\n\nconst validCompanyType = s => {\n if (s === undefined) {\n return false;\n }\n const value = DataWording.legalForm.values.find(v => v.value === s);\n return value !== undefined;\n};\n\nconst filteredArrNoDuplicates = (arr, type) =>\n arr.reduce((acc, current) => {\n const x = acc.find(item => item[type] === current[type]);\n if (!x) {\n return acc.concat([current]);\n }\n return acc;\n }, []);\n\nconst getPointOfDeliveryLogger = pointOfDelivery => ({\n energyList:\n pointOfDelivery.length === 2 ? 'EL/NG' : pointOfDelivery[0].energy,\n customerIdentificationKey:\n pointOfDelivery.length === 2\n ? `${pointOfDelivery[0].reference} | ${pointOfDelivery[1].reference}`\n : pointOfDelivery[0].reference,\n});\n\nconst multiplicationInstallmentFrequency = (type, amount) => {\n switch (type) {\n case 'MONTHLY':\n return amount * 1;\n case 'BIMONTHLY':\n return amount * 2;\n case 'QUARTERLY':\n return amount * 3;\n case 'FOURMONTHLY':\n return amount * 4;\n default:\n return amount;\n }\n};\n\nconst sumPackageAmountInstallmentFrequency = (\n chosenPackages,\n installmentFrequency\n) => {\n if (!chosenPackages || !Array.isArray(chosenPackages)) {\n return 0; \n }\n\n return chosenPackages.reduce(\n (a, b) =>\n a +\n (multiplicationInstallmentFrequency(\n installmentFrequency,\n parseFloat(b.amount)\n ) || 0),\n 0\n );\n};\n\nconst camelToUpperCase = str =>\n Number.isNaN(Number(str)) ? str.toUpperCase() : str;\n\nconst birthCondition = birthdate => {\n const year = new Date(birthdate).getFullYear();\n return year > toMonth_.getFullYear() || year < fromMonth_.getFullYear();\n};\n\nconst removeFirstPaymentCBFromContract = contract => {\n if (contract.firstPaymentCB !== undefined) {\n const object = contract;\n delete object.firstPaymentCB;\n return { ...object };\n }\n\n return { ...contract };\n};\n\nconst removeCodeFromCity = city =>\n city\n .split(' ')\n .map(el => (!Number.isInteger(Number(el)) ? el : ''))\n .join(' ')\n .trim();\n\nconst handleResetStore = withUrl => {\n localStorage.clear();\n\n if (withUrl) {\n document.location = window.location.href.split('?')[0];\n } else window.location.reload();\n};\n\nconst getInitialChannel = group => group.split('_')[0];\nconst getInitialretryCB = group => group.split('_')[0];\n\nconst checkPathOrder = path => path === '/signOrder' || path === '/saveOrder' || path === '/signContract';\n\nconst additionalRatesDuplicateValue = arr => {\n let addRate = {};\n const init = [];\n arr.forEach(element => {\n if (element.categoryCode && element.categoryCode.includes('PP_FREQ')) {\n if (!addRate.amount) {\n addRate = { ...element };\n } else {\n addRate.amount = (\n parseFloat(addRate.amount) + parseFloat(element.amount)\n ).toFixed(2);\n }\n } else init.push(element);\n });\n\n return [...init, { ...addRate }];\n};\n\nconst buildPackagesForSlider = packages => {\n const init = [[]];\n\n let nbrElmInSection = 0;\n let countSectionNbr = 0;\n\n let recommendedInfo = [];\n\n packages.forEach(pkg => {\n if (nbrElmInSection < 4) {\n init[countSectionNbr].push(pkg);\n\n if (pkg.recommended) {\n recommendedInfo = [countSectionNbr, nbrElmInSection];\n }\n nbrElmInSection += 1;\n } else {\n init.push([]);\n\n countSectionNbr += 1;\n nbrElmInSection = 1;\n\n init[countSectionNbr].push(pkg);\n\n if (pkg.recommended) {\n recommendedInfo = [countSectionNbr, nbrElmInSection];\n }\n }\n });\n\n let finalBuild = [];\n let first = [];\n let isRecommendedPush = false;\n\n init.forEach((arr, idx) => {\n if (idx === recommendedInfo[0]) {\n isRecommendedPush = true;\n }\n\n if (isRecommendedPush) finalBuild = [...finalBuild, ...arr];\n else first = [...first, ...arr];\n });\n\n return [...finalBuild, ...first];\n};\n\n/**\n *\n * @param {Date} date\n * @param {'EL' | 'NG'} energy\n * @param {'NOW' | 'LATER'} type\n * @param {string} billingModeCode\n *\n * *SWITCH_NOW\n * ---------- EL => dueDate + 7 business + 2 calenders days\n * ---------- NG => dueDate + 7 business + 4 calenders days\n *\n * *SWITCH_LATER\n * ---------- EL => dueDate + 7 business + 2 calenders\n * ---------- NG => dueDate + 7 business + 4 calenders\n */\nconst prepareEffectiveStartDate = (date, energy, type, billingModeCode) => {\n const { EffectiveStartDate, EffectiveStartDateWithoutPack } = Config;\n\n const ControlConfig =\n billingModeCode !== undefined &&\n billingModeCode === BillingMode.PAYMENT_SCHEDULE_WITHOUT_PACK\n ? EffectiveStartDateWithoutPack\n : EffectiveStartDate;\n\n const { businessDays, calendarDays } = ControlConfig[type][energy];\n\n const nextBusinessDate = addBusinessDays(businessDays, date);\n const nextCalendarDate = addDays(nextBusinessDate, calendarDays);\n\n return nextCalendarDate;\n};\n\nconst prepareCyclicBillDate = (energy, type) =>\n addDays(new Date(), Config.DefaultSwitchDueDate[type][energy]);\n\nconst addMonth = (date, nmMonth) =>\n new Date(date.setMonth(date.getMonth() + nmMonth));\n\nconst prepareFrequenciesToDisplay = arr => {\n const priorityOrder = {\n \"FOURMONTHLY\": 1,\n \"QUARTERLY\": 2,\n \"BIMONTHLY\": 3,\n \"MONTHLY\": 4\n };\n\n return arr.sort((a, b) => {\n const priorityA = priorityOrder[a.frequency] || 5;\n const priorityB = priorityOrder[b.frequency] || 5;\n\n return priorityA - priorityB;\n });\n};\n\nconst searchParamsFromURL = () => {\n const url =\n window.location !== window.parent.location\n ? document.referrer\n : document.location.href;\n return new URL(url).searchParams;\n};\n\nconst getParamsFromDecodedUrl = () => {\n const sparams = searchParamsFromURL().get('sparams');\n if (sparams) {\n try {\n const decodedUrl = AES256.decrypt(\n sparams.replaceAll(' ', '+'),\n Config.URL_PASSPHRASE\n );\n\n const paramsFromUrl = new URL(\n `${window.location.origin}?${decodedUrl}`\n ).searchParams;\n const payload = {};\n paramsFromUrl.forEach((value, k) => {\n payload[k] = value;\n });\n const energyTypes = paramsFromUrl.getAll('energyTypes[]');\n if (payload['energyTypes[]']) delete payload['energyTypes[]'];\n\n return {\n ...payload,\n energyTypes,\n };\n } catch (error) {\n console.warn('URL =>', sparams);\n console.error('URL ERROR =>', error);\n\n return {};\n }\n }\n\n return null;\n};\n\nconst getAPEFromObject = obj =>\n obj\n ? obj.etablissement.uniteLegale.activitePrincipaleUniteLegale.replaceAll(\n '.',\n ''\n )\n : '';\n\nconst isScheduleWithoutPackBillingMode = autorizedBillingModes =>\n Boolean(\n autorizedBillingModes &&\n autorizedBillingModes.find(\n mode =>\n mode.billingModeCode ===\n BillingMode.PAYMENT_SCHEDULE_WITHOUT_PACK\n )\n );\n\nconst controlBillingMode = (cyclicBill, code) => {\n if (cyclicBill) {\n return BillingMode.CYCLICAL_BILLING;\n }\n\n if (code) {\n if (typeof code === 'string') return code;\n\n return code.billingModeCode;\n }\n\n return BillingMode.PAYMENT_SCHEDULE;\n};\n\nconst checkIsDisableSwitchSelect = situation => {\n if (situation === SituationTypes.MOVE_IN) return false;\n\n const channel = localStorage.getItem('channel');\n\n if (channel === null) return false;\n\n return Config.ChannelsFixSwitchLater.some(curr => curr.test(channel));\n};\n\nconst getSwitchLater = () => DataWording.contractDate.dropdownValues[1];\n\nconst pdfToBase64 = file =>\n new Promise((resolve, reject) => {\n fetch(file)\n .then(response => response.blob())\n .then(blob => {\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onload = () => resolve(reader.result);\n reader.onerror = error => reject(error);\n })\n .catch(e => reject(e));\n });\n\nexport {\n offerSimple,\n log,\n controlBillingMode,\n getSwitchLater,\n checkIsDisableSwitchSelect,\n getAPEFromObject,\n isScheduleWithoutPackBillingMode,\n getParamsFromDecodedUrl,\n searchParamsFromURL,\n prepareCyclicBillDate,\n prepareFrequenciesToDisplay,\n addMonth,\n additionalRatesDuplicateValue,\n removeFirstPaymentCBFromContract,\n buildPackagesForSlider,\n getInitialChannel,\n getInitialretryCB,\n handleResetStore,\n checkPathOrder,\n birthCondition,\n removeCodeFromCity,\n multiplicationInstallmentFrequency,\n sumPackageAmountInstallmentFrequency,\n camelToUpperCase,\n filteredArrNoDuplicates,\n getPointOfDeliveryLogger,\n areListEqual,\n sendImage,\n addDays,\n isWeekend,\n getDateString,\n getTodayDateString,\n handleConditionEmail,\n handleConditionPhone,\n mergeArray,\n addBusinessDays,\n dateDiffDays,\n transformLabel,\n displayPhone,\n parseQueryString,\n isEmptyObject,\n validUserType,\n validEnergyTypes,\n validCivility,\n validCompanyType,\n handleConditionPDLPCE,\n getFormattedDate,\n prepareEffectiveStartDate,\n getFormattedDateToBO,\n pdfToBase64,\n getDateEffectiveString,\n};\n","import React from 'react';\n// import CustomToggle from '../CustomToggle';\n\nimport { transformLabel } from '../../utils/helpers';\nimport WordingConstant from '../../utils/wording.json';\n\nconst Wording = WordingConstant.SummaryScreen;\nconst PriceWording = WordingConstant.Price;\nconst SummaryWording = WordingConstant.SummaryScreen;\nconst CommonWording = WordingConstant.Common;\n\nconst PlanElement = ({\n prices,\n offer,\n // products,\n // currentOptions,\n currentAdditionalOptions,\n // handleToggle,\n // loadingOption,\n // idToggle,\n consumption,\n options,\n}) => {\n const details = offer.details || [];\n const totalAmount = details.find(\n d => d.category === SummaryWording.detail.category.totalAmount\n );\n const subscription =\n totalAmount &&\n totalAmount.unitPrices.find(\n p => p.label === PriceWording.subscription.label\n );\n const additionalRates = details.filter(\n d => d.category === SummaryWording.detail.category.additionalRate\n );\n const totalBudget = details.find(\n d => d.category === SummaryWording.detail.category.totalBudget\n );\n const discountRates = details.find(\n d => d.category === SummaryWording.detail.category.discountRate\n );\n\n const renderPrice = ({ label, price, unit }, index, fixPart) => {\n const displayedUnit = CommonWording.unit[unit];\n const display = transformLabel(label);\n const formattedPrice = fixPart ? parseFloat(price).toFixed(2) : price;\n if (display === '') return null;\n return (\n \n {display} :{' '}\n \n {formattedPrice} {displayedUnit}\n \n

\n );\n };\n\n return (\n \n {prices.length !== 0 && (\n 1 ? 'plan-element__prices--larger' : ''\n }`}\n >\n {prices &&\n prices.map((p, index) => (\n <>\n 1\n ? {\n marginBottom: '16px',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n }\n : { marginBottom: '16px' }\n }\n key={index}\n className=\"plan-element__prices__label\"\n >\n {prices.length > 1 && (\n \n {\n WordingConstant.Common\n .timeframe[index]\n }\n \n )}\n 1\n ? {\n display: 'block',\n fontSize: '36px',\n lineHeight: '32px',\n fontWeight: 400,\n }\n : {\n fontSize: '40px',\n fontWeight: 400,\n }\n }\n className=\"plan-element__prices__label__priceDescription\"\n >\n {consumption[index]}\n 1\n ? { fontSize: '16px' }\n : {\n fontSize: '29px',\n margin: '7px 0 0 6px',\n }\n }\n >\n kWh\n

\n \n \n Prépaiement de
\n \n {p}€/mois\n \n {index === 0 && prices.length > 1 && (\n \n )}\n \n ))}\n \n )}\n \n \n
\n
\n \n {Wording.detail.title.fix}\n

\n {subscription && renderPrice(subscription, 0, true)}\n \n
\n
\n \n {Wording.detail.title.consumption}\n

\n

\n {Wording.detail.title.grossPrice}\n

\n {totalAmount &&\n totalAmount.unitPrices &&\n totalAmount.unitPrices\n .filter(\n p =>\n p.label !==\n PriceWording.subscription.label\n )\n .map((e, index) => renderPrice(e, index))}\n
\n {additionalRates.map(\n (rate, idx1) =>\n rate &&\n rate.unitPrices &&\n rate.unitPrices.map((e, idx2) =>\n renderPrice(e, idx1 + idx2)\n )\n )}\n {totalBudget &&\n totalBudget.unitPrices &&\n totalBudget.unitPrices.map((e, index) =>\n renderPrice(e, index)\n )}\n
\n

\n {Wording.detail.title.discountPrice}\n

\n {discountRates &&\n discountRates.unitPrices &&\n discountRates.unitPrices.map((e, index) =>\n renderPrice(e, index)\n )}\n {options &&\n currentAdditionalOptions &&\n currentAdditionalOptions.length > 0 && (\n \n \n

\n {Wording.detail.title.option}\n

\n\n {options.map((e, index) => {\n if (\n currentAdditionalOptions &&\n currentAdditionalOptions.includes(\n e.label\n ) &&\n e.detail\n ) {\n return renderPrice(e.detail, index);\n }\n return null;\n })}\n
\n )}\n
\n \n
\n\n {/* {products.length < 2 && (\n \n
\n {products && products.length !== 0 && (\n

\n {Wording.detail.title.fixPrice}\n

\n )}\n\n {products &&\n products.map((product, index) => (\n \n ))}\n
\n \n )} */}\n \n );\n};\n\nexport default PlanElement;\n","import PlanElement from './PlanElement';\r\n\r\nexport default PlanElement;\r\n","import React from 'react';\r\n\r\nimport WordingConstant from '../../utils/wording.json';\r\nimport { additionalRatesDuplicateValue } from '../../utils/helpers';\r\n\r\nimport iconElecCircleOn from '../../assets/icons/ic-elec-circle-on.png';\r\nimport iconGasCircleOn from '../../assets/icons/ic-gas-circle-on.png';\r\n\r\nconst PackageWording = WordingConstant.PackageScreen;\r\nconst SummaryWording = WordingConstant.SummaryScreen;\r\nconst CommonWording = WordingConstant.Common;\r\n\r\nconst SummaryElement = ({\r\n offer,\r\n paymentFrequency,\r\n // loadingOption,\r\n isScheduleWithoutPack,\r\n}) => {\r\n const frequency =\r\n PackageWording.frequency.values &&\r\n (\r\n PackageWording.frequency.values.find(\r\n v => v.value === paymentFrequency\r\n ) || {}\r\n ).text;\r\n const details = offer.details || [];\r\n const totalAmount = details.find(\r\n d => d.category === SummaryWording.detail.category.totalAmount\r\n );\r\n const additionalRates = additionalRatesDuplicateValue(\r\n details.filter(\r\n d => d.category === SummaryWording.detail.category.additionalRate\r\n )\r\n );\r\n const totalBudget = details.find(\r\n d => d.category === SummaryWording.detail.category.totalBudget\r\n );\r\n const economy = details.find(\r\n d => d.category === SummaryWording.detail.category.economy\r\n );\r\n\r\n const renderPrice = ({ label, amount, unit }, index) => {\r\n const displayedUnit = CommonWording.unit[unit];\r\n return (\r\n \r\n {label !== undefined && (\r\n <>\r\n {label} {index === 101 ? '(TTC) : ' : ' : '}\r\n \r\n )}\r\n \r\n {amount} {displayedUnit}\r\n \r\n

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

\r\n \r\n {' '}\r\n {paymentFrequency === ''\r\n ? PackageWording.frequency.titleCyclic\r\n : PackageWording.frequency.title}\r\n {' '}\r\n {frequency}\r\n

\r\n\r\n \r\n \r\n {SummaryWording.detail.budget.title}\r\n \r\n {totalAmount && renderPrice(totalAmount, 100)}\r\n {additionalRates.map((d, index) =>\r\n renderPrice(d, index)\r\n )}\r\n {totalBudget && renderPrice(totalBudget, 101)}\r\n \r\n
\r\n
\r\n
\r\n {economy && economy.amount > 0 && (\r\n \r\n

\r\n {SummaryWording.detail.budget.estimatedEconomy}\r\n

\r\n {renderPrice(economy, 102)}\r\n
\r\n )}\r\n\r\n {!isScheduleWithoutPack && (\r\n

\r\n {SummaryWording.detail.budget.description}\r\n

\r\n )}\r\n\r\n {economy && economy.amount > 0 && (\r\n

\r\n {SummaryWording.detail.budget.notice}\r\n

\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SummaryElement;\r\n","import SummaryElement from './SummaryElement';\r\n\r\nexport default SummaryElement;\r\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Radium from 'radium';\n\n/**\n * The static/non-static styles Information for a single event dot on the timeline\n */\nconst dots = {\n /**\n * The style information for the clickable dates that apper floating over the timeline\n */\n links: {\n position: 'absolute',\n top: 10,\n textAlign: 'center',\n },\n /**\n * The base style information for the event dot that appers exactly on the timeline\n */\n base: {\n position: 'absolute',\n top: -14,\n height: 9,\n width: 9,\n borderRadius: '50%',\n transition: 'background-color 0.3s, border-color 0.3s',\n ':hover': {}, // We need this to track the hover state of this element\n },\n /**\n * future: The style information for the future dot (wrt selected).\n * @param {object} styles User passed styles ( foreground, background etc info\n */\n future: styles => ({\n // backgroundColor: styles.background,\n backgroundColor: styles.foreground,\n // border: `2px solid ${styles.background}`,\n border: `2px solid ${styles.outline}`,\n }),\n /**\n * past: The styles information for the past dot (wrt selected)\n * @param {object} styles User passed styles ( foreground, background etc info\n */\n past: styles => ({\n // backgroundColor: styles.background,\n backgroundColor: styles.foreground,\n border: `2px solid ${styles.foreground}`,\n }),\n /**\n * present: The styles information for the preset dot\n * @param {object} styles User passed styles ( foreground, background etc info\n */\n present: styles => ({\n // backgroundColor: styles.foreground,\n backgroundColor: styles.background,\n border: `2px solid ${styles.foreground}`,\n }),\n};\n\n/**\n * The markup for one single dot on the timeline\n *\n * @param {object} props The props passed down\n * @return {StatelessFunctionalReactComponent} The markup for a dot\n */\nconst TimelineDot = ({\n index,\n selected,\n date,\n distanceFromOrigin,\n labelWidth,\n label,\n onClick,\n styles,\n}) => {\n const getDotStyles = (dotType, key) => {\n const hoverStyle = {\n backgroundColor: styles.foreground,\n border: `2px solid ${styles.foreground}`,\n };\n\n return [\n dots.base,\n { left: labelWidth / 2 - dots.base.width / 2 },\n dots[dotType](styles),\n Radium.getState({}, key, ':hover') ||\n Radium.getState({}, 'dot-dot', ':hover')\n ? hoverStyle\n : undefined,\n ];\n };\n\n let dotType = 'future';\n if (index < selected) {\n dotType = 'past';\n } else if (index === selected) {\n dotType = 'present';\n }\n\n return (\n onClick(index)}\n role=\"button\"\n tabIndex=\"0\"\n onKeyPress={() => {}}\n style={[\n dots.links,\n {\n left: distanceFromOrigin - labelWidth / 2,\n width: labelWidth,\n fontWeight: 'bold',\n fontSize: 10,\n outline: 'none',\n ':hover': {},\n },\n ]}\n >\n \n {label}\n \n );\n};\n\n/**\n * propTypes\n * @type {Object}\n */\nTimelineDot.propTypes = {\n // The index of the currently selected dot (required to style as old, present, or future event)\n selected: PropTypes.number.isRequired,\n // The index of the present event (used for deciding the styles alongside selected)\n index: PropTypes.number.isRequired,\n // The actual date of the event (used as key and id)\n date: PropTypes.string.isRequired,\n // The onClick handler ( in this case to trigger the fillingMotion of the timeline )\n onClick: PropTypes.func.isRequired,\n // The date of the event (required to display it)\n label: PropTypes.string.isRequired,\n // The width you want the labels to be\n labelWidth: PropTypes.number.isRequired,\n // The numerical value in pixels of the distance from the origin\n distanceFromOrigin: PropTypes.number.isRequired,\n // The styles prefrences of the user\n styles: PropTypes.shape({}).isRequired,\n};\n\nexport default Radium(TimelineDot);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport TimelineDot from './TimelineDot';\n\n/**\n * The markup Information for all the events on the horizontal timeline.\n *\n * @param {object} props The props from parent mainly styles\n * @return {StatelessFunctionalReactComponent} Markup Information for the fader\n */\nconst Events = ({\n events,\n selectedIndex,\n styles,\n handleDateClick,\n labelWidth,\n}) => (\n \n {events.map((event, index) => (\n \n ))}\n \n);\n\n/**\n * The styles that parent will provide\n * @type {Object}\n */\nEvents.propTypes = {\n // Array containing the events\n events: PropTypes.arrayOf(\n PropTypes.shape({\n distance: PropTypes.number.isRequired,\n label: PropTypes.string.isRequired,\n date: PropTypes.string.isRequired,\n })\n ).isRequired,\n // The index of the selected event\n selectedIndex: PropTypes.number.isRequired,\n // a handler for clicks on a datapoint\n handleDateClick: PropTypes.func.isRequired,\n // The width you want the labels to be\n labelWidth: PropTypes.number.isRequired,\n // Custom styling\n styles: PropTypes.shape({}).isRequired,\n};\n\nexport default Events;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Motion, spring } from 'react-motion';\n\n/**\n * The markup Information for an event Line. You can stack multiple lines on top of eachother\n *\n * @param {object} props The props from parent, styling and positioning\n * @return {StatelessFunctionalReactComponent} Markup Information for the event line.\n */\nconst EventsLine = ({\n left,\n width,\n fillingMotion,\n backgroundColor,\n dashed,\n}) => {\n const style = {\n position: 'absolute',\n top: 0,\n height: '100%',\n transformOrigin: 'left center',\n backgroundColor,\n };\n if (dashed) {\n style.background = `repeating-linear-gradient(\n to right,\n #b37e07,\n #b37e07 10px,\n #FFF523 10px,\n #FFF523 20px\n )`;\n }\n return (\n \n {({ tWidth, tLeft }) => (\n \n )}\n \n );\n};\n\nEventsLine.propTypes = {\n // Location and dimension\n left: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n // how the filling motion will look like when in action\n fillingMotion: PropTypes.shape({\n stiffness: PropTypes.number,\n damping: PropTypes.number,\n }).isRequired,\n // What color the line should have\n backgroundColor: PropTypes.string.isRequired,\n dashed: PropTypes.bool.isRequired,\n};\n\nexport default EventsLine;\n","import React from 'react';\nimport { Motion, spring } from 'react-motion';\nimport PropTypes from 'prop-types';\n\nimport Events from './Events';\nimport EventsLine from './EventsLine';\n\nconst EventsBar = ({\n index,\n events,\n totalWidth,\n barPaddingLeft,\n barPaddingRight,\n width,\n height,\n position,\n fillingMotion,\n slidingMotion,\n indexClick,\n labelWidth,\n styles,\n}) => {\n const filledValue = events[index].distance - barPaddingLeft;\n const eventLineWidth = totalWidth - barPaddingLeft - barPaddingRight;\n\n return (\n \n \n \n {({ X }) => (\n \n \n \n \n \n )}\n \n \n \n );\n};\n\nEventsBar.propTypes = {\n width: PropTypes.string.isRequired,\n height: PropTypes.string.isRequired,\n events: PropTypes.arrayOf(\n PropTypes.shape({\n distance: PropTypes.number.isRequired,\n label: PropTypes.string.isRequired,\n date: PropTypes.string.isRequired,\n })\n ).isRequired,\n totalWidth: PropTypes.number.isRequired,\n index: PropTypes.number.isRequired,\n styles: PropTypes.shape({}).isRequired,\n indexClick: PropTypes.func.isRequired,\n labelWidth: PropTypes.number.isRequired,\n fillingMotion: PropTypes.shape({}).isRequired,\n barPaddingRight: PropTypes.number.isRequired,\n barPaddingLeft: PropTypes.number.isRequired,\n};\n\nexport default EventsBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport EventsBar from './EventsBar';\n\nconst HorizontalTimeline = ({\n containerWidth,\n containerHeight,\n values,\n labelWidth,\n linePadding,\n index,\n indexClick,\n styles,\n fillingMotion,\n}) => {\n if (!containerWidth) {\n // As long as we do not know the width of our container, do not render anything!\n return false;\n }\n const events = values.map((v, idx) => ({\n distance: 160 * (idx + 1),\n label: v,\n date: v,\n }));\n const totalWidth = events[events.length - 1].distance + linePadding;\n const barPaddingRight = totalWidth - events[events.length - 1].distance;\n const barPaddingLeft = events[0].distance;\n\n return (\n \n );\n};\n\n/**\n * The expected properties from the parent\n * @type {Object}\n */\nHorizontalTimeline.propTypes = {\n // Selected index\n index: PropTypes.number.isRequired,\n // Array containing the sorted date strings\n values: PropTypes.arrayOf(PropTypes.string).isRequired,\n // Function that takes the index of the array as argument\n indexClick: PropTypes.func.isRequired,\n // Padding at the front and back of the line\n linePadding: PropTypes.number,\n // The width of the label\n labelWidth: PropTypes.number,\n styles: PropTypes.shape({}),\n fillingMotion: PropTypes.shape({}),\n slidingMotion: PropTypes.shape({}),\n};\n\n/**\n * The values that the properties will take if they are not provided\n * by the user.\n * @type {Object}\n */\nHorizontalTimeline.defaultProps = {\n linePadding: 100,\n labelWidth: 80,\n styles: {\n outline: '#dfdfdf',\n background: '#f8f8f8',\n foreground: '#7b9d6f',\n },\n fillingMotion: {\n stiffness: 150,\n damping: 25,\n },\n slidingMotion: {\n stiffness: 150,\n damping: 25,\n },\n};\n\nexport default HorizontalTimeline;\n","import EnergyDetail from './EnergyDetail';\n\nexport default EnergyDetail;\n","import React from 'react';\n\nconst EnergyDetail = ({ sections }) => (\n
\n {sections &&\n sections.map(({ details }, i) => (\n \n {details.map(({ title, value }, index) => {\n if (value)\n return (\n \n {title}{' '}\n \n {value}\n \n

\n );\n return null;\n })}\n
\n ))}\n \n);\n\nexport default EnergyDetail;\n","import React from 'react';\nimport InputRange from 'react-input-range';\nimport 'react-input-range/lib/css/index.css';\n\nimport WordingOption from '../../utils/wording.json';\n\nconst Wording = WordingOption.FinalSummaryScreen;\n\nclass EnergyGauge extends React.Component {\n constructor(props) {\n super(props);\n\n const { initial } = props;\n this.state = {\n progress: initial,\n };\n }\n\n renderProgressBar(title, idx) {\n const idxConso = idx + 2;\n const { progress } = this.state;\n const { ranges } = this.props;\n const height = ranges[progress][idx];\n const conso = ranges[progress][idxConso];\n // const style = {\n // height: `${((maxValue - height) * 100) / maxValue}%`,\n // };\n return (\n
\n
\n
\n {title}\n {conso}\n kWh\n \n Prépaiement de\n \n \n {height} €/mois\n \n
\n
\n );\n }\n\n renderRangeSlider() {\n const { progress } = this.state;\n const { ranges, onChange } = this.props;\n return (\n ''}\n maxValue={ranges.length - 1}\n minValue={0}\n step={1}\n value={progress}\n onChange={value => {\n onChange(ranges[value]);\n this.setState({\n progress: value,\n });\n }}\n />\n );\n }\n\n render() {\n const { ranges } = this.props;\n if (!ranges || ranges.length < 2) {\n return
;\n }\n return (\n
\n
\n {this.renderProgressBar(Wording.plan.gauge.summer, 0)}\n
\n {this.renderRangeSlider()}\n

\n Bouge le curseur pour moduler comme tu le souhaites\n !\n

\n
\n {this.renderProgressBar(Wording.plan.gauge.winter, 1)}\n
\n
\n );\n }\n}\n\nexport default EnergyGauge;\n","import EnergyGauge from './EnergyGauge';\n\nexport default EnergyGauge;\n","import CustomDropdownInput from './CustomDropdownInput';\n\nexport default CustomDropdownInput;\n","import React from 'react';\nimport Select from 'react-select';\nimport './_CustomDropdownInput.scss';\n\nconst CustomDropdownInput = ({\n value,\n defaultValue,\n handleChange,\n onInputChange,\n options,\n styles,\n isLoading,\n placeholder,\n isLocked,\n inputValue,\n onKeyDown,\n onBlur,\n onFocus,\n error,\n}) => (\n
\n
\n \n\n {error && error !== '' && (\n

{error}

\n )}\n
\n
\n);\n\nexport default CustomDropdownInput;\n","import CustomDate from './CustomDate';\n\nexport default CustomDate;\n","import IconProfessional from '../assets/icons/ic-professional.svg';\nimport IconIndividual from '../assets/icons/ic-individual.png';\n\nimport IconElecOff from '../assets/icons/ic-elec-off.png';\nimport IconElecOn from '../assets/icons/ic-elec-on.png';\nimport IconGasOff from '../assets/icons/ic-gas-off.png';\nimport IconGasOn from '../assets/icons/ic-gas-on.png';\n\nimport IconElecOffSvg from '../assets/icons/ic-elec-off.svg';\nimport IconElecOnSvg from '../assets/icons/ic-elec-on.svg';\nimport IconGasOffSvg from '../assets/icons/ic-gas-off.svg';\nimport IconGasOnSvg from '../assets/icons/ic-gas-on.svg';\n\nimport IconElecGasOff from '../assets/icons/ic-elec-gas-off.svg';\nimport IconElecGasOn from '../assets/icons/ic-elec-gas-on.svg';\nimport IconApartment from '../assets/icons/ic-apartment.png';\nimport IconSecondary from '../assets/icons/ic-secondary.png';\nimport IconCollectivityOn from '../assets/icons/ic-collectivity-on.png';\nimport IconCollectivityOff from '../assets/icons/ic-collectivity-off.png';\nimport IconBill from '../assets/icons/ic-bill.svg';\nimport IconWeiwi from '../assets/icons/ic-wekiwi.svg';\nimport IconEnvelop from '../assets/icons/ic-envelop.svg';\nimport IconLogo from '../assets/icons/ic-logo-wekiwi.svg';\nimport IconLogoText from '../assets/icons/ic-logo.svg';\nimport IconHeaderLogo from '../assets/icons/ic-header-logo.svg';\nimport IconBot from '../assets/icons/ic-bot.svg';\nimport IconElecGreen from '../assets/icons/ic-elec-green.svg';\nimport IconLinkedin from '../assets/icons/ic-linkedin.svg';\nimport IconInstagram from '../assets/icons/ic-instagram.svg';\nimport IconFacebook from '../assets/icons/ic-facebook.svg';\nimport IconYoutube from '../assets/icons/ic-youtube.svg';\nimport IconTwitter from '../assets/icons/ic-twitter.svg';\nimport IconCertification from '../assets/icons/ic-certification.svg';\nimport IconLogoLogin from '../assets/icons/ic-logo-login.svg';\nimport IconAvatar from '../assets/icons/ic-avatar.svg';\n\nimport IconWkWSwitch from '../assets/icons/banners/ic-wkw-switch.png';\nimport IconLogoLelynx from '../assets/icons/banners/ic-logoAGLelynx.png';\nimport IconSelectraRadins from '../assets/icons/banners/ic-selectra-radins.png';\nimport IconAGSelectra from '../assets/icons/banners/ic-ag-selectra.png';\n\nimport IconArrowBack from '../assets/icons/ic-arrow-back.svg';\nimport IconArrowNext from '../assets/icons/ic-arrow-next.svg';\n\nimport IconCopyClipboard from '../assets/icons/ic-copy-clipboard.svg';\nimport IconDownload from '../assets/icons/ic-download.png';\nimport IconWarning from '../assets/icons/ic-warning.svg';\nimport IconWorld from '../assets/icons/ic-world.svg';\nimport IconTree from '../assets/icons/ic-tree.svg';\nimport IconGreenEnergy from '../assets/icons/ic-green-energy.svg';\nimport Iconsucces from '../assets/icons/ic-succes.svg';\nimport Iconerreur from '../assets/icons/ic-erreur.svg';\nimport IconValidateTimer from '../assets/icons/ic-logo-timer.svg';\nimport IconDownloadTimer from '../assets/icons/ic-download-timer.png';\nimport IconCloseTime from '../assets/icons/ic-close-timer.svg';\nimport IcSaveScreen from '../assets/icons/ic-save-screen.png';\nimport IconBusinessWoman from '../assets/icons/ic-businesswoman.png';\nimport IconKiwi from '../assets/icons/ic-kiwi.png';\nimport pdfFile from \"../assets/documents/Document d'informations.pdf\";\nimport poweredSlimpay from '../assets/icons/ic-powered-Slimpay.png';\nimport poweredStripe from '../assets/icons/ic-powered-Stripe.png';\nimport loginIcon from '../assets/icons/login-icon.png';\nimport confirmDetails from '../assets/icons/confirm-icon.png';\nimport homeDetails from '../assets/icons/ic-home-details.png';\nimport validateDetails from '../assets/icons/ic-validate-details.png';\n\n\nexport default {\n 'ic-elec-green': IconElecGreen,\n 'ic-logo-wekiwi': IconLogo,\n 'ic-logo-text': IconLogoText,\n 'ic-header-logo': IconHeaderLogo,\n 'ic-bot': IconBot,\n 'ic-professional': IconProfessional,\n 'ic-individual': IconIndividual,\n 'ic-logo-timer': IconValidateTimer,\n 'ic-download-timer': IconDownloadTimer,\n 'ic-elec-off': IconElecOff,\n 'ic-elec-on-p': IconElecOn,\n 'ic-close-timer': IconCloseTime,\n 'ic-save-screen': IcSaveScreen,\n\n 'ic-gas-off-p': IconGasOff,\n 'ic-gas-on': IconGasOn,\n\n 'ic-gas-off': IconGasOffSvg,\n 'ic-gas-on-s': IconGasOnSvg,\n 'ic-elec-on': IconElecOnSvg,\n 'ic-elec-off-s': IconElecOffSvg,\n\n 'ic-collectivity-off': IconCollectivityOff,\n 'ic-collectivity-on': IconCollectivityOn,\n\n 'ic-elec-gas-on': IconElecGasOn,\n 'ic-elec-gas-off': IconElecGasOff,\n 'ic-apartment': IconApartment,\n 'ic-secondary': IconSecondary,\n 'ic-bill': IconBill,\n 'ic-cp': IconWeiwi,\n 'ic-envelop': IconEnvelop,\n 'ic-linkedin': IconLinkedin,\n 'ic-instagram': IconInstagram,\n 'ic-facebook': IconFacebook,\n 'ic-youtube': IconYoutube,\n 'ic-twitter': IconTwitter,\n 'ic-certification': IconCertification,\n 'ic-logo-login': IconLogoLogin,\n 'ic-avatar': IconAvatar,\n 'ic-arrow-back': IconArrowBack,\n 'ic-arrow-next': IconArrowNext,\n 'ic-copy-clipboard': IconCopyClipboard,\n 'ic-download': IconDownload,\n 'ic-warning': IconWarning,\n 'ic-world': IconWorld,\n 'ic-tree': IconTree,\n 'ic-green-energy': IconGreenEnergy,\n 'ic-succes': Iconsucces,\n 'ic-erreur': Iconerreur,\n 'ic-businesswoman': IconBusinessWoman,\n 'ic-poweredSlimpay': poweredSlimpay,\n 'ic-poweredStripe' : poweredStripe,\n 'ic-login-details': loginIcon,\n 'ic-confirm-details': confirmDetails,\n 'ic-home-details': homeDetails,\n 'ic-validate-details': validateDetails,\n\n 'ic-kiwi': IconKiwi,\n\n 'banners/wkw-switch': IconWkWSwitch,\n 'banners/lelynx': IconLogoLelynx,\n 'banners/ag-selectra-radins': IconSelectraRadins,\n 'banners/ag-selectra': IconAGSelectra,\n 'pdf/informationDocument': pdfFile,\n};\n","/* eslint-disable jsx-a11y/alt-text */\nimport React from 'react';\n\n// import Config from '../../utils/config';\n// import resources from '../../utils/resources';\nimport WordingConstant from '../../utils/wording.json';\nimport resources from '../../utils/resources';\n// import { getInitialChannel } from '../../utils/helpers';\n\nconst Wording = WordingConstant.Header;\n\nconst Header = () => (\n
\n
\n
\n \n \"icon\"\n \n
\n
\n
{Wording.title}
\n
{Wording.title1}
\n
\n {Wording.subTitle}\n
\n
\n
\n \"header-logo\"\n
\n
\n
\n);\n\nexport default Header;\n","import Header from './Header';\n\nexport default Header;\n","import React, { useEffect } from 'react';\nimport './_LabeledInput.scss';\nimport Typography from '../Typography/Typography';\n\nfunction LabeledInput({\n label,\n type,\n name,\n onChange,\n value,\n messages = {},\n defaultValue,\n isLocked = false,\n isLockedV2 = false,\n halfSize = false,\n isFilled = false,\n disabled = false,\n isUpperCase = false,\n isCapital = false,\n onBlur,\n onFocus,\n}) {\n const setBackground = () => {\n if (isFilled) return 'labeledinput-root__input__filled';\n if (messages.error) return 'labeledinput-root__input__error';\n return '';\n };\n\n useEffect(() => {\n if (defaultValue) onChange(defaultValue);\n }, []);\n\n return (\n
\n onChange(e.target.value)}\n className={`labeledinput-root__input ${setBackground()} \n ${isLockedV2 ? 'custom-input__div__input--lockedV2' : ''}\n ${isLocked ? ' custom-input__div__input--locked' : ''}\n ${halfSize ? ' custom-input__div__input--halfSize' : ''} \n ${isCapital ? ' isCapital' : ''}\n ${isUpperCase ? ' isUpperCase' : ''}`}\n id={name}\n value={value}\n type={type}\n disabled={disabled}\n placeholder={label}\n defaultValue={defaultValue}\n onBlur={onBlur}\n onFocus={onFocus}\n />\n {!isLockedV2 && (\n
\n \n {messages.error}\n \n \n {messages.info}\n \n
\n )}\n
\n );\n}\n\nexport default LabeledInput;\n","import React from 'react';\n\nimport resources from '../../utils/resources';\nimport WordingConstant from '../../utils/wording.json';\nimport LabeledInput from '../LabeledInput/LabeledInput';\n\nconst Wording = WordingConstant.Wekiwi;\n\nlet isOpenBot = false;\n\nasync function callBotSdk() {\n if (isOpenBot) {\n window.botSDK.close();\n } else {\n window.botSDK.open();\n }\n window.botSDK.onOpenBot(_ => {\n isOpenBot = true;\n });\n window.botSDK.onCloseBot(_ => {\n isOpenBot = false;\n });\n}\n\nconst Footer = () => (\n
\n
\n
\n
\n
\n \"icon\"\n
\n
\n
\n
\n {Wording.usefulLinks.map((link, i) => (\n \n {link.text}\n \n ))}\n
\n
\n
\n {Wording.newsletter.text}\n
\n
\n \n \n \n {Wording.newsletter.send}\n \n
\n
\n
\n
\n
\n
\n

Tu as des questions ?

\n

Viens chatter avec notre bot !

\n
\n
\n \"bot\"\n
\n
\n\n
\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n
\n
\n
\n
\n
\n {Wording.bottomLinks.map((link, i) => (\n \n {link.text}\n \n ))}\n
\n\n
\n

\n \n {Wording.copyright.text1}\n \n {Wording.copyright.countries.map((country, index) => (\n <>\n \n {country.title}{' '}{index === Wording.copyright.countries.length -1 ? '' : '-'}{' '}\n \n \n ))}\n

\n

\n {Wording.copyright.text3}\n

\n
\n
\n
\n
\n);\n\nexport default Footer;\n","import Footer from './Footer';\n\nexport default Footer;\n","import React, { Component } from 'react';\nimport { CustomButton } from '..';\nimport CustomModal from '../CustomModal';\nimport WordingConstant from '../../utils/wording.json';\nimport { handleResetStore } from '../../utils/helpers';\n\nconst Wording = WordingConstant.SubscriptionReset;\n\nclass SubscriptionReset extends Component {\n state = {\n isOpen: false,\n };\n\n handelShowModal = bool => {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n this.setState({ isOpen: bool });\n };\n\n handleReset = () => {\n window.history.pushState({}, '', '/');\n handleResetStore();\n };\n\n renderButtons = () => (\n
\n this.handleReset()}\n />\n this.handelShowModal(false)}\n title={Wording.popup.btn_cancel}\n />\n
\n );\n\n renderModal = () => {\n const { isOpen } = this.state;\n return (\n \n

\n {Wording.popup.attention}\n

\n\n
\n

{Wording.popup.descriptions}

\n
\n

{Wording.popup.question}

\n\n {this.renderButtons()}\n
\n \n );\n };\n\n render() {\n return (\n
\n {this.renderModal()}\n this.handelShowModal(true)}\n />\n
\n );\n }\n}\n\nexport default SubscriptionReset;\n","import SubscriptionReset from './SubscriptionReset';\n\nexport default SubscriptionReset;\n","import React from 'react';\r\nimport Typography from '../Typography/Typography';\r\nimport './_CustomToggleV2.scss';\r\n\r\nconst CustomToggleV2 = ({\r\n text,\r\n value,\r\n checked,\r\n id,\r\n handleCheck,\r\n isLinked,\r\n labelSize = '0.85',\r\n}) => (\r\n <>\r\n
\r\n \r\n
\r\n \r\n
\r\n {text}\r\n
\r\n
\r\n \r\n);\r\n\r\nexport default CustomToggleV2;\r\n","import React from 'react';\n\nimport resources from '../../utils/resources';\nimport CustomToggleV2 from '../CustomToggle/CustomToggleV2';\n\nimport WordingConstant from '../../utils/wording.json';\n\nconst CommonWording = WordingConstant.Common;\n\nconst OptionElement = ({\n options,\n currentAdditionalOptions,\n handleToggleAdditionalOptions,\n idToggle,\n}) => {\n const getIconByCode = code => {\n switch (code) {\n case 'SAVE_TREE':\n return resources['ic-tree'];\n case 'GREEN':\n return resources['ic-green-energy'];\n case 'SOCIAL_PLASTIC':\n return resources['ic-world'];\n\n default:\n return '';\n }\n };\n return (\n
\n
\n
\n {options &&\n options.map((option, index) => (\n \n
\n {option.label}\n
\n\n
\n {option.description && (\n

\n {option.description}\n

\n )}\n
\n\n
\n
\n \n
\n
\n {option.detail.price}{' '}\n {CommonWording.unit[option.detail.unit]}\n
\n
\n \n
\n
\n
\n ))}\n
\n
\n
\n );\n};\n\nexport default OptionElement;\n","import OptionElement from './OptionElement';\n\nexport default OptionElement;\n","import React, { useEffect, useState } from 'react';\nimport icArrowDown from '../../assets/icons/ic-arrow-down.svg';\nimport Typography from '../Typography/Typography';\nimport { FontWeightVariant } from '../../constants/enums';\nimport HelpIcon from '../../assets/icons/ic-help.svg';\nimport './_CustomAccordion.scss';\n\nfunction CustomAccordion({\n defaultValue = false,\n title,\n children,\n value,\n onChange,\n disabled = false,\n}) {\n const [isAccordionOpen, setIsAccordionOpen] = useState(defaultValue);\n\n const handleChangeState = () => {\n if (value !== undefined && onChange) onChange(!value);\n else setIsAccordionOpen(old => !old);\n };\n\n useEffect(() => {\n setIsAccordionOpen(value);\n }, [value]);\n\n const controlledValue = value === undefined ? isAccordionOpen : value;\n return (\n \n \n
\n \n \n {title}\n \n
\n \n \n \n {children}\n
\n
\n );\n}\n\nexport default CustomAccordion;\n","import CustomAccordion from './CustomAccordion';\n\nexport default CustomAccordion;\n","import React, { useState } from 'react';\n\nimport {\n useElements,\n useStripe,\n PaymentElement,\n CardNumberElement,\n CardExpiryElement,\n CardCvcElement,\n} from '@stripe/react-stripe-js';\n\nimport CustomButton from '../CustomButton';\nimport resources from '../../utils/resources';\nimport logoWekiwi from '../../assets/icons/ic-logo.svg';\nimport logoStripe from '../../assets/icons/ic-stripe.svg';\nimport WordingConstant from '../../utils/wording.json';\nimport config from '../../utils/config';\nimport { log } from '../../utils/helpers';\n\nconst wording = WordingConstant.PaymentModalCB;\n\n// eslint-disable-next-line no-unused-vars\nconst StripeForm = ({ clientSecret, amount, onFormValidate, clientName }) => {\n const [isLoading, setIsLoading] = useState(false);\n const elements = useElements();\n const stripe = useStripe();\n const [error, setError] = useState(\"\");\n\n const channel = localStorage.getItem(\"channel\")\n\n const onValidateForm = async e => {\n e.preventDefault();\n\n setIsLoading(true);\n let result;\n if (channel && config.ChannelsDoorToDoor.includes(channel.toUpperCase())) {\n result = await stripe.confirmSetup({\n // `Elements` instance that was used to create the Payment Element\n elements,\n redirect: 'if_required',\n });\n } else {\n result = await stripe.confirmCardPayment(clientSecret, {\n payment_method: {\n card: elements.getElement(CardNumberElement),\n billing_details: {\n name: clientName,\n },\n },\n });\n }\n\n setIsLoading(false);\n log('STRIPE ANSWER ===>', result);\n // if (result.paymentIntent.status === 'succeeded') {\n // const currentSearchParams = new URLSearchParams(window.location.search);\n\n // currentSearchParams.set('status', 'success');\n\n // const newUrl = `${window.location.pathname}?${currentSearchParams.toString()}`;\n\n // window.location.href= newUrl;\n // }\n if (result.setupIntent) {\n if (result.setupIntent.status === 'succeeded') {\n const currentSearchParams = new URLSearchParams(\n window.location.search\n );\n\n currentSearchParams.set('status', 'success');\n\n const newUrl = `${window.location.pathname\n }?${currentSearchParams.toString()}`;\n\n window.location.href = newUrl;\n }\n }\n\n if (result.paymentIntent) {\n if (result.paymentIntent.status === 'succeeded') {\n const currentSearchParams = new URLSearchParams(\n window.location.search\n );\n\n currentSearchParams.set('status', 'success');\n\n const newUrl = `${window.location.pathname\n }?${currentSearchParams.toString()}`;\n\n window.location.href = newUrl;\n }\n }\n\n if (result.error) {\n //if (onFormValidate) onFormValidate(false, result.error.message);\n setError(result.error.message)\n } else if (onFormValidate) onFormValidate(true);\n };\n\n const renderFakeCard = (cardNumber, title) => {\n const [isClicked, setisClicked] = useState(false);\n\n const handleClickCard = () => {\n setisClicked(true);\n setTimeout(() => setisClicked(false), 1600);\n navigator.clipboard.writeText(cardNumber);\n };\n\n return (\n
\n {title}:\n \n
\n );\n };\n\n const onCancel = () => {\n if (onFormValidate) onFormValidate(false, wording.failureMessage);\n };\n\n const isDebugMode = config.ENV === 'PREPRODUCTION';\n\n return (\n
\n
\n
\n \n
\n

\n {wording.amountMessage}\n {`${amount}€`}\n

\n {\n config.ChannelsDoorToDoor.includes(channel) && ()\n }\n\n {\n !config.ChannelsDoorToDoor.includes(channel) && (
\n
\n \n
\n
\n \n \n
\n
)\n }\n\n\n\n {isDebugMode && (\n
\n \n En mode demo vous pouvez choisir une carte de test\n \n {renderFakeCard(\n '4242424242424242',\n 'Paiement direct avec réussite'\n )}\n {renderFakeCard(\n '4000000000003220',\n 'Paiement 3DSecure avec réussite'\n )}\n {renderFakeCard(\n '4000008400001280',\n 'Paiement 3DSecure avec erreur'\n )}\n {renderFakeCard(\n '4000002500003155',\n 'Authentification config initial'\n )}\n {renderFakeCard(\n '4000000000009995',\n 'Carte refusée lors de la configuration'\n )}\n
\n )}\n {\n error && (\n {error}\n )\n }\n
\n \n
\n \n
\n
\n\n
\n

{wording.stripeMessage}

\n \n
\n \n
\n
\n );\n};\n\nexport default StripeForm;\n","import StripeForm from './StripeForm';\n\nexport default StripeForm;\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\n\nconst GlobalTag = ({ productId, cartAmount, orderID }) => (\n \n \n\n {/* */}\n \n {/* */}\n \n);\n\nexport const ConversionTag = ({ transactionId, price, additionalData }) => (\n \n \n \n);\n\nexport default GlobalTag;\n","import React, { useEffect, useState } from 'react';\n\nimport { endOfWeek, format, isWithinInterval, startOfWeek } from 'date-fns';\nimport { fr } from 'date-fns/locale';\n\nimport { DayPicker } from 'react-day-picker/DayPicker';\nimport { formatDate, parseDate } from 'react-day-picker/moment';\n\nimport WordingConstant from '../../utils/wording.json';\nimport resources from '../../utils/resources';\nimport icArrowDown from '../../assets/icons/ic-arrow-down.svg';\nimport * as helpers from '../../utils/helpers';\n\nconst Wording = WordingConstant.DataScreen;\n\nconst CustomCalendar = ({\n currentDate,\n handleOnSelectedDays,\n handleOnDisabledDays,\n handleInputOnFocus,\n handleOnDayChange,\n handleOnDayPickerHide,\n}) => {\n const [toggle, setToggle] = useState(false);\n const [currentValue, setCurrentValue] = useState(currentDate);\n\n const selectedDays = handleOnSelectedDays();\n const disabledDays = handleOnDisabledDays();\n let firstAvailableDay = helpers.addDays(new Date(), 1);\n\n disabledDays.forEach(elem => {\n if (\n elem.before &&\n elem.before.getTime() >= firstAvailableDay.getTime()\n ) {\n firstAvailableDay = elem.before;\n }\n });\n\n useEffect(() => {\n const weeks = document.querySelectorAll('.DayPicker-Week');\n for (let i = 0; i < weeks.length; i += 1) {\n if (weeks[i].innerHTML.includes('hide-me')) {\n weeks[i].style.display = 'none';\n } else {\n weeks[i].style.display = 'table-row';\n }\n }\n }, [toggle]);\n\n useEffect(() => {\n setCurrentValue(currentDate);\n }, [currentDate]);\n\n function renderDay(day) {\n const date = day.getDate();\n const locale = { locale: fr };\n const isDateInCurrentWeek = dateToCheck => {\n const today = currentDate\n ? new Date(currentDate)\n : firstAvailableDay;\n const start = startOfWeek(today, locale);\n const end = endOfWeek(today, locale);\n return isWithinInterval(dateToCheck, { start, end });\n };\n const isNotCurrentWeek = !isDateInCurrentWeek(day);\n return (\n \n \n
\n {[...format(day, 'E', locale).split('.')[0]]\n .map((char, index) =>\n index === 0 ? char.toUpperCase() : char\n )\n .join('')}\n
\n
{date}
\n
\n );\n }\n\n return (\n \n
\n Sélectionner date :\n
\n
\n
\n handleInputOnFocus,\n }}\n onDayChange={d => {\n handleOnDayChange(d);\n }}\n onDayClick={d => {\n handleOnDayChange(d);\n }}\n hideOnDayClick={false}\n onDayPickerHide={handleOnDayPickerHide}\n value={currentValue}\n initialMonth={\n currentValue\n ? new Date(currentValue)\n : new Date(firstAvailableDay)\n }\n month={currentValue}\n />\n
\n setToggle(!toggle)}\n >\n \n \n
\n
\n );\n};\n\nexport default CustomCalendar;\n","import CustomCalendar from './CustomCalendar';\r\n\r\nexport default CustomCalendar;\r\n","/* eslint-disable spaced-comment */\nimport React, { useEffect, useState } from 'react';\nimport './_CustomSelector.scss';\nimport CheckIcon from '../../assets/icons/ic-check.svg';\n\nexport default function CustomSelector({\n options = [],\n onSelect,\n value,\n defaultId,\n vertical = false,\n onMounSetter = false,\n disabled,\n className,\n gap = '10px',\n style = {},\n notFullWidth = false,\n}) {\n const [currentChecked, setCurrentChecked] = useState(defaultId);\n const [optionState, setOptionState] = useState(options);\n const handleCheck = (id, selectedValue) => () => {\n if (onSelect) onSelect(id, selectedValue);\n setCurrentChecked(id);\n };\n const or = vertical ? 'V' : 'H';\n const controlledValue = value !== undefined ? value : currentChecked;\n\n useEffect(() => {\n if (onMounSetter && onSelect)\n onSelect(\n defaultId,\n options.find(option => option.id === defaultId).value\n );\n }, []);\n\n useEffect(() => {\n setOptionState(options);\n }, [options]);\n\n useEffect(() => {\n setCurrentChecked(defaultId);\n }, [defaultId]);\n\n return (\n \n {optionState.map(it => (\n \n
\n \n \"check\n \n \n {it.label}\n \n
\n {it.fee && (\n

{it.fee}

\n )}\n \n ))}\n \n );\n}\n","import React from 'react';\nimport WordingConstant from '../../../utils/wording.json';\nimport CustomSelector from '../../CustomSelector/CustomSelector';\n\nconst Wording = WordingConstant.DataScreen;\n\nconst TimeSlotComponent = ({\n energy,\n dateContract,\n handleChangeTimeslotSelect,\n}) => {\n const ts = dateContract[energy].timeslots;\n if (!ts || ts.length === 0) {\n return null;\n }\n if (ts.indexOf('NONE') !== -1) {\n return (\n \n {Wording.contractDate.noTimeslotLabel}\n

\n );\n }\n const timeslotOptions = Wording.contractDate.timeslots.values.filter(\n element => ts.find(val => val === element.value) !== undefined\n );\n\n /* const searchValue = Wording.contractDate.timeslots.values.find(\n e => e.value === dateContract[energy].timeslot\n ); */\n\n /* const value = searchValue\n ? searchValue.value\n : Wording.contractDate.placeholderSelector; */\n\n return (\n \n \n {Wording.contractDate.timeslotSelectorTitle}\n

\n \n handleChangeTimeslotSelect(value, energy)\n }\n />\n
\n );\n};\n\nexport default TimeSlotComponent;\n","const getOptions = (offer, additionalOptions) => {\n if (offer && offer.product && additionalOptions) {\n const chosenProduct = { ...offer.product };\n if (offer.product.additionalRates) {\n chosenProduct.additionalRates = offer.product.additionalRates.map(rate => {\n if (rate.type !== 'OPTION') {\n return rate;\n }\n const active = additionalOptions.indexOf(rate.label) !== -1;\n return {\n ...rate,\n active,\n };\n });\n } else {\n chosenProduct.additionalRates = [];\n }\n return chosenProduct;\n } else {\n console.error(\"L'objet 'offer', 'offer.product' ou 'additionalOptions' est undefined.\");\n return {};\n }\n};\n\n\nconst prepareContract = object => {\n if (!object || !object.summaryReducer || !object.summaryReducer.EL) {\n console.error(\"La propriété 'EL' n'existe pas dans 'summaryReducer'\");\n return {};\n }\n const contractData = object.summaryReducer.contracts;\n const summaryData = object.summaryReducer;\n const customerData = object.dataReducer.common;\n const financeData = object.dataReducer.finance;\n\n // eslint-disable-next-line prefer-const\n let [first, ...rest] = customerData.address.address.split(' ');\n rest = rest.join(' ');\n const address = {\n number: first,\n street: rest,\n postalCode: customerData.address.postalCode,\n townName: customerData.address.city,\n };\n return contractData.map((contract, index) => {\n const energy = contract.energy || 'Indisponible';\n const json = {\n contract: {\n contractNumber: contract.contractNumber || 'Indisponible',\n effectiveStartRange:\n contract.effectiveStartRange || 'Indisponible',\n effectiveStartDate:\n contract.effectiveStartDate ||\n new Date().toISOString().split('T')[0],\n subscriptionDate:\n contract.subscriptionDate ||\n new Date().toISOString().split('T')[0],\n dueDate:\n contract.dueDate || new Date().toISOString().split('T')[0],\n energy: contract.energy || 'Indisponible',\n deliveryPoint: {\n pointOfDelivery:\n (contract.deliveryPoint &&\n contract.deliveryPoint.pointOfDelivery) ||\n 'Indisponible',\n state:\n (contract.deliveryPoint &&\n contract.deliveryPoint.state) ||\n 'Indisponible',\n gridRate:\n (contract.deliveryPoint &&\n contract.deliveryPoint.gridRate) ||\n 'Indisponible',\n deliveryStatus:\n (contract.deliveryPoint &&\n contract.deliveryPoint.deliveryStatus) ||\n 'Indisponible',\n address: {\n street:\n (contract.deliveryPoint &&\n contract.deliveryPoint.address &&\n contract.deliveryPoint.address.street) ||\n 'Indisponible',\n postalCode:\n (contract.deliveryPoint &&\n contract.deliveryPoint.address &&\n contract.deliveryPoint.address.postalCode) ||\n 'Indisponible',\n townName:\n (contract.deliveryPoint &&\n contract.deliveryPoint.address &&\n contract.deliveryPoint.address.townName) ||\n 'Indisponible',\n },\n profile:\n (contract.deliveryPoint &&\n contract.deliveryPoint.profile) ||\n 'Indisponible',\n meterNumber:\n (contract.deliveryPoint &&\n contract.deliveryPoint.meterNumber) ||\n 'Indisponible',\n meterType:\n (contract.deliveryPoint &&\n contract.deliveryPoint.meterType) ||\n 'Indisponible',\n smartMeterStatus:\n (contract.deliveryPoint &&\n contract.deliveryPoint.smartMeterStatus) ||\n 'Indisponible',\n deliveryPointCategory:\n (contract.deliveryPoint &&\n contract.deliveryPoint.deliveryPointCategory) ||\n 'Indisponible',\n readingFrequency:\n (contract.deliveryPoint &&\n contract.deliveryPoint.readingFrequency) ||\n 'Indisponible',\n contractualCapacity:\n (contract.deliveryPoint &&\n contract.deliveryPoint.contractualCapacity) ||\n 0,\n contractualCapacityUnit:\n (contract.deliveryPoint &&\n contract.deliveryPoint.contractualCapacityUnit) ||\n 'Indisponible',\n process: {\n type:\n (contract.deliveryPoint &&\n contract.deliveryPoint.process &&\n contract.deliveryPoint.process.type) ||\n customerData.situation ||\n 'Indisponible',\n express:\n (contract.deliveryPoint &&\n contract.deliveryPoint.process &&\n contract.deliveryPoint.process.express) ||\n customerData.dateContract[energy].express ||\n false,\n },\n },\n billingModeCode:\n contract.billingModeCode ||\n summaryData[energy].billingModeCode ||\n 'Indisponible',\n installmentFrequency:\n contract.installmentFrequency ||\n summaryData[energy].installmentFrequency ||\n 'Indisponible',\n thirdParties: contract.thirdParties || [],\n estimates: contract.estimates || [],\n chosenProduct: getOptions(\n summaryData.offers[index],\n summaryData[energy].additionalOptions\n ) ||\n summaryData.offers[index].product || {\n default:\n (contract.chosenProduct &&\n contract.chosenProduct.default) ||\n false,\n productCode:\n (contract.chosenProduct &&\n contract.chosenProduct.productCode) ||\n 'Indisponible',\n label:\n (contract.chosenProduct &&\n contract.chosenProduct.label) ||\n 'Indisponible',\n description:\n (contract.chosenProduct &&\n contract.chosenProduct.description) ||\n 'Indisponible',\n productType:\n (contract.chosenProduct &&\n contract.chosenProduct.productType) ||\n 'Indisponible',\n energy:\n (contract.chosenProduct &&\n contract.chosenProduct.energy) ||\n 'Indisponible',\n rateOption:\n (contract.chosenProduct &&\n contract.chosenProduct.rateOption) ||\n 'Indisponible',\n additionalRates:\n (contract.chosenProduct &&\n contract.chosenProduct.additionalRates) ||\n [],\n },\n chosenPackages:\n summaryData[energy].chosenPackages ||\n contractData.chosenPackages ||\n [],\n rateOption: contract.rateOption || 'Indisponible',\n },\n\n customer: {\n customerNumber: object.paymentReducer.reference\n ? object.paymentReducer.reference\n : 'Indisponible',\n type: 'INDIVIDUAL',\n contact: {\n civility: customerData.civility,\n firstName: customerData.name,\n lastName: customerData.surname,\n birthdate: customerData.birthdate\n ? new Date(customerData.birthdate)\n .toISOString()\n .split('T')[0]\n : null,\n address,\n birthTown: customerData.birthTown,\n email: customerData.email,\n phone: customerData.tel,\n },\n finance: financeData || {\n accountOwnerFirstName: customerData.name,\n accountOwnerLastName: customerData.surname,\n paymentMode: 'DIRECT_DEBIT',\n },\n },\n };\n if (contract.energy === 'NG') {\n json.contract.contractCategory = contract.contractCategory;\n }\n return json;\n });\n};\n\nexport { prepareContract };\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\nimport Config from '../../utils/config';\nimport CustomModal from '../CustomModal';\nimport WordingConstant from '../../utils/wording.json';\nimport { handleResetStore, offerSimple } from '../../utils/helpers';\nimport resources from '../../utils/resources';\nimport { prepareContract } from '../../screens/FinalSummaryScreen/Contract.actions';\n\nconst Wording = WordingConstant.ValidateTimer;\nconst WordingLinks = WordingConstant.ValidateTimer;\n\nclass ValidateTimer extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n isOpen: this.isSelectra(),\n loadingContract: false,\n };\n }\n\n handleReset = e => {\n e.preventDefault();\n handleResetStore();\n };\n\n formatTime = seconds => {\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const remainingSeconds = seconds % 60;\n\n const formattedHours =\n hours > 0 ? `${hours < 10 ? '0' : ''}${hours}:` : '';\n\n return `${formattedHours}${minutes < 10 ? '0' : ''}${minutes}:${\n remainingSeconds < 10 ? '0' : ''\n }${remainingSeconds}`;\n };\n\n handleContract = async () => {\n this.setState({ loadingContract: true });\n try {\n if (localStorage.getItem('reduxState')) {\n const payloadContract = prepareContract(\n JSON.parse(localStorage.getItem('reduxState'))\n );\n\n if (\n Array.isArray(payloadContract) &&\n payloadContract.length > 0\n ) {\n const promises = payloadContract.map(\n async (contract, index) => {\n try {\n const headers = {\n 'x-api-key': Config.ApiKey,\n };\n\n const res = await fetch(\n `${Config.URL}/getContract`,\n {\n method: 'POST',\n body: JSON.stringify(contract),\n headers,\n }\n );\n\n if (res.ok) {\n const blob = await res.blob();\n const fileURL = URL.createObjectURL(blob);\n window.open(fileURL, `_blank_${index}`);\n } else {\n console.error(\n `La requête a échoué avec le statut ${res.status}`\n );\n }\n } catch (error) {\n console.error(\n `Erreur lors de la récupération du contrat (index ${index}):`,\n error\n );\n }\n }\n );\n await Promise.all(promises);\n this.setState({ loadingContract: false });\n }\n }\n } catch (error) {\n this.setState({ loadingContract: false });\n console.error(\n 'Erreur générale lors de la récupération des contrats :',\n error\n );\n }\n };\n\n isSelectra = () => localStorage.getItem('channel');\n\n handleFilePdf = async () => {\n try {\n const pdfUrl = '/static/Document d\\'informations.pdf';\n const encodedUrl = encodeURI(pdfUrl);\n const correctedUrl = encodedUrl.replace(/(%2F|%20)/g, match => match === '%2F' ? '/' : ' ');\n \n window.open(\n correctedUrl,\n '_blank',\n 'noopener noreferrer'\n );\n \n \n } catch (e) {\n console.error('Impossible de récupérer le fichier pdf', e);\n }\n };\n \n renderModal = () => {\n const { isOpen, timeRemaining, payloadContracts, offers } = this.props;\n const { loadingContract } = this.state;\n const formattedTime = this.formatTime(timeRemaining);\n return (\n \n this.handleReset(e)}\n />\n

\n <>\n \n \n {formattedTime}\n \n \n

\n\n

\n {Wording.popup.infos}\n

\n

{Wording.popup.subInfos}

\n
\n

\n Tout simplement pour que tu aies le temps de bien lire\n ton document d’informations,\n \n {' '}\n ton contrat, les grilles tarifaires,\n {' '}\n ainsi que{' '}\n \n {' '}\n nos conditions générales de vente.\n \n

\n
\n\n

\n {' '}\n \n {Wording.popup.question}\n

\n\n
\n {WordingLinks.popup.bottomLinks\n .filter(link => link.text && (link.link || link.api))\n .map((link, i) => {\n if (\n (link.value.includes(\n 'INFORMATION_DOCUMENT',\n )) && offerSimple(offers) === true\n ) {\n return null;\n }\n if (link.value === 'INFORMATION_DOCUMENT') {\n return (\n \n {link.text}\n \n );\n }\n if (link.link) {\n return (\n \n {link.text}\n \n );\n }\n if (link.api) {\n const isSingleContract =\n Array.isArray(payloadContracts) &&\n payloadContracts.length === 1;\n const linkText = isSingleContract\n ? 'Ton contrat'\n : 'Tes contrats';\n if (loadingContract) {\n return (\n <>\n \n \n  |\n \n \n );\n }\n return (\n \n {linkText} |\n
\n );\n }\n return (\n \n );\n })}\n \n\n
\n \n );\n };\n\n render() {\n const { isOpen } = this.props;\n if (!isOpen) {\n return null;\n }\n return
{this.renderModal()}
;\n }\n}\n\nconst mapStateToProps = state => ({\n timeUnblock: state.paymentReducer.timeUnblock,\n payloadContracts: state.summaryReducer.contracts,\n offers: state.summaryReducer.offers,\n});\n\nexport default connect(mapStateToProps, null)(ValidateTimer);\n","import ValidateTimer from './ValidateTimer';\n\nexport default ValidateTimer;\n","export const USER_SCREEN_VALIDATE_SUCCESS = 'USER_SCREEN_VALIDATE_SUCCESS';\r\nexport const USER_SCREEN_RESET_RECOVER = 'USER_SCREEN_RESET_RECOVER';\r\nexport const SUMMARY_SCREEN_STATE_RESET = 'SUMMARY_SCREEN_STATE_RESET';\r\n\r\nexport const MINIMAL_DATA_FORM = 'MINIMAL_DATA_FORM';\r\nexport const MINIMAL_DATA_VALIDATE_EMAIL = 'MINIMAL_DATA_VALIDATE_EMAIL';\r\nexport const MINIMAL_DATA_RESET_EMAIL = 'MINIMAL_DATA_RESET_EMAIL';\r\n\r\nexport const SEND_EMAIL_CODE_REQUEST = 'SEND_EMAIL_CODE_REQUEST';\r\nexport const SEND_EMAIL_CODE_REQUEST_FAIL = 'SEND_EMAIL_CODE_REQUEST_FAIL';\r\nexport const SEND_EMAIL_CODE_REQUEST_SUCCESS =\r\n 'SEND_EMAIL_CODE_REQUEST_SUCCESS';\r\n\r\nexport const VERIFY_EMAIL_CODE_REQUEST = 'VERIFY_EMAIL_CODE_REQUEST';\r\nexport const VERIFY_EMAIL_CODE_REQUEST_FAIL = 'VERIFY_EMAIL_CODE_REQUEST_FAIL';\r\nexport const VERIFY_EMAIL_CODE_REQUEST_SUCCESS =\r\n 'VERIFY_EMAIL_CODE_REQUEST_SUCCESS';\r\n\r\nexport const CODE_SCREEN_MODE_UPDATE = 'CODE_SCREEN_MODE_UPDATE';\r\n\r\nexport const RESET_FULL_CODE_SCREEN = 'RESET_FULL_CODE_SCREEN';\r\n\r\nexport const LOG_USER_INFORMATION_REQUEST = 'LOG_USER_INFORMATION_REQUEST';\r\nexport const LOG_USER_INFORMATION_SUCCESS = 'LOG_USER_INFORMATION_SUCCESS';\r\nexport const LOG_USER_INFORMATION_FAIL = 'LOG_USER_INFORMATION_FAIL';\r\n\r\nexport const CODE_SCREEN_RESET = 'CODE_SCREEN_RESET';\r\nexport const CODE_SCREEN_VALIDATE = 'CODE_SCREEN_VALIDATE';\r\nexport const CODE_SCREEN_VALIDATE_SUCCESS = 'CODE_SCREEN_VALIDATE_SUCCESS';\r\nexport const CODE_SCREEN_VALIDATE_FAILURE = 'CODE_SCREEN_VALIDATE_FAILURE';\r\n\r\nexport const GET_CONTRACT = 'GET_CONTRACT';\r\nexport const GET_CONTRACT_SUCCESS = 'GET_CONTRACT_SUCCESS';\r\nexport const GET_CONTRACT_FAILURE = 'GET_CONTRACT_FAILURE';\r\n\r\nexport const FINAL_CODE_SCREEN_VALIDATE = 'FINAL_CODE_SCREEN_VALIDATE';\r\nexport const FINAL_CODE_SCREEN_VALIDATE_SUCCESS =\r\n 'FINAL_CODE_SCREEN_VALIDATE_SUCCESS';\r\nexport const FINAL_CODE_SCREEN_VALIDATE_FAILURE =\r\n 'FINAL_CODE_SCREEN_VALIDATE_FAILURE';\r\nexport const UPDATE_FINAL_SUMMARY_SCREEN_STATE = 'UPDATE_FINAL_SUMMARY_SCREEN_STATE';\r\nexport const SURVEY_SCREEN_LOAD = 'SURVEY_SCREEN_LOAD';\r\nexport const SURVEY_SCREEN_VALIDATE = 'SURVEY_SCREEN_VALIDATE';\r\nexport const SURVEY_SCREEN_VALIDATE_SUCCESS = 'SURVEY_SCREEN_VALIDATE_SUCCESS';\r\nexport const SURVEY_SCREEN_VALIDATE_FAILURE = 'SURVEY_SCREEN_VALIDATE_FAILURE';\r\n\r\nexport const PACKAGE_SCREEN_VALIDATE = 'PACKAGE_SCREEN_VALIDATE';\r\nexport const PACKAGE_SCREEN_VALIDATE_SUCCESS =\r\n 'PACKAGE_SCREEN_VALIDATE_SUCCESS';\r\nexport const PACKAGE_SCREEN_VALIDATE_FAILURE =\r\n 'PACKAGE_SCREEN_VALIDATE_FAILURE';\r\n\r\nexport const FETCH_CALENDAR_APPOINTMENT = 'FETCH_CALENDAR_APPOINTMENT';\r\nexport const FETCH_CALENDAR_APPOINTMENT_SUCCESS =\r\n 'FETCH_CALENDAR_APPOINTMENT_SUCCESS';\r\nexport const FETCH_CALENDAR_APPOINTMENT_FAILURE =\r\n 'FETCH_CALENDAR_APPOINTMENT_FAILURE';\r\n\r\nexport const DATA_SCREEN_VALIDATE_SUCCESS = 'DATA_SCREEN_VALIDATE_SUCCESS';\r\nexport const DATA_SCREEN_VALIDATE_SUCCESS_FINAL =\r\n 'DATA_SCREEN_VALIDATE_SUCCESS_FINAL';\r\nexport const DATA_SCREEN_SAVE_COMMON = 'DATA_SCREEN_SAVE_COMMON';\r\nexport const DATA_SCREEN_SAVE_BIRTHTOWN = 'DATA_SCREEN_SAVE_BIRTHTOWN';\r\n\r\nexport const SUMMARY_SCREEN_VALIDATE_SUCCESS =\r\n 'SUMMARY_SCREEN_VALIDATE_SUCCESS';\r\nexport const SUMMARY_SCREEN_CHANGE_OFFER = 'SUMMARY_SCREEN_CHANGE_OFFER';\r\nexport const SUMMARY_SCREEN_CHANGE_OPTION = 'SUMMARY_SCREEN_CHANGE_OPTION';\r\nexport const SUMMARY_SCREEN_CHANGE_OPTION_SUCCESS =\r\n 'SUMMARY_SCREEN_CHANGE_OPTION_SUCCESS';\r\nexport const SUMMARY_SCREEN_CHANGE_OPTION_FAILURE =\r\n 'SUMMARY_SCREEN_CHANGE_OPTION_FAILURE';\r\nexport const SUMMARY_SCREEN_GET_SPONSOR = 'SUMMARY_SCREEN_GET_SPONSOR';\r\nexport const SUMMARY_SCREEN_GET_PARTNER = 'SUMMARY_SCREEN_GET_PARTNER';\r\n\r\nexport const FINAL_SUMMARY_SCREEN_CHANGE_PACKAGES =\r\n 'FINAL_SUMMARY_SCREEN_CHANGE_PACKAGES';\r\nexport const FINAL_SUMMARY_SCREEN_CHANGE_ADDITIONAL_RATES =\r\n 'FINAL_SUMMARY_SCREEN_CHANGE_ADDITIONAL_RATES';\r\nexport const FINAL_SUMMARY_SCREEN_VALIDATE = 'FINAL_SUMMARY_SCREEN_VALIDATE';\r\nexport const FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS =\r\n 'FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS';\r\nexport const FINAL_SUMMARY_SCREEN_VALIDATE_FAILURE =\r\n 'FINAL_SUMMARY_SCREEN_VALIDATE_FAILURE';\r\nexport const FINAL_SUMMARY_SCREEN_SET_REFERENCE =\r\n 'FINAL_SUMMARY_SCREEN_SET_REFERENCE';\r\n\r\nexport const FINAL_PAYMENT_SCREEN_VALIDATE = 'FINAL_PAYMENT_SCREEN_VALIDATE';\r\nexport const FINAL_PAYMENT_SCREEN_VALIDATE_SUCCESS =\r\n 'FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS';\r\nexport const FINAL_PAYMENT_SCREEN_VALIDATE_FAILURE =\r\n 'FINAL_PAYMENT_SCREEN_VALIDATE_FAILURE';\r\nexport const FINAL_PAYMENT_SCREEN_SET_REFERENCE = 'FINAL_PAYMENT_SCREEN_SET_REFERENCE';\r\nexport const FINAL_PAYMENT_SCREEN_CHANGE_ADDITIONAL_RATES = 'FINAL_PAYMENT_SCREEN_CHANGE_ADDITIONAL_RATES';\r\nexport const FINAL_PAYMENT_SCREEN_CHANGE_PACKAGES = 'FINAL_PAYMENT_SCREEN_CHANGE_PACKAGES';\r\n\r\nexport const CLOSE_SAVE_DRAFT_MODAL = 'CLOSE_SAVE_DRAFT_MODAL';\r\n\r\nexport const PAYMENT_MODAL_LOAD = 'PAYMENT_MODAL_LOAD';\r\nexport const PAYMENT_MODAL_VALIDATE = 'PAYMENT_MODAL_VALIDATE';\r\nexport const PAYMENT_MODAL_VALIDATE_SUCCESS = 'PAYMENT_MODAL_VALIDATE_SUCCESS';\r\nexport const PAYMENT_MODAL_VALIDATE_FAILURE = 'PAYMENT_MODAL_VALIDATE_FAILURE';\r\n\r\nexport const PREVIOUS_SCREEN_LOAD = 'PREVIOUS_SCREEN_LOAD';\r\nexport const NEXT_SCREEN_LOAD = 'NEXT_SCREEN_LOAD';\r\nexport const MAIN_SCREEN_SAVE_ORDER = 'MAIN_SCREEN_SAVE_ORDER';\r\nexport const MAIN_SCREEN_SAVE_ORDER_SUCCESS = 'MAIN_SCREEN_SAVE_ORDER_SUCCESS';\r\nexport const MAIN_SCREEN_SAVE_ORDER_FAILURE = 'MAIN_SCREEN_SAVE_ORDER_FAILURE';\r\nexport const MAIN_SCREEN_GET_ORDER = 'MAIN_SCREEN_GET_ORDER';\r\nexport const MAIN_SCREEN_GET_ORDER_SUCCESS = 'MAIN_SCREEN_GET_ORDER_SUCCESS';\r\nexport const MAIN_SCREEN_GET_ORDER_PACKAGE_SUCCESS =\r\n 'MAIN_SCREEN_GET_ORDER_PACKAGE_SUCCESS';\r\nexport const MAIN_SCREEN_GET_ORDER_PRODUCT_SUCCESS =\r\n 'MAIN_SCREEN_GET_ORDER_PRODUCT_SUCCESS';\r\nexport const MAIN_SCREEN_GET_ORDER_FAILURE = 'MAIN_SCREEN_GET_ORDER_FAILURE';\r\nexport const MAIN_SCREEN_GET_PACKAGE_FAILURE =\r\n 'MAIN_SCREEN_GET_PACKAGE_FAILURE';\r\nexport const MAIN_SCREEN_GET_OFFER_FAILURE = 'MAIN_SCREEN_GET_OFFER_FAILURE';\r\nexport const MAIN_SCREEN_GET_PRODUCT_FAILURE =\r\n 'MAIN_SCREEN_GET_PRODUCT_FAILURE';\r\nexport const MAIN_SCREEN_GET_FORM = 'MAIN_SCREEN_GET_FORM';\r\n\r\nexport const RECALL_PAYMENT_CB = 'RECALL_PAYMENT_CB';\r\nexport const FIRST_PAYMENT_CB_FAILURE = 'FIRST_PAYMENT_CB_FAILURE';\r\nexport const FAILURE_CB_MESSAGE = 'FAILURE_CB_MESSAGE';\r\n\r\nexport const VALIDATE_DIRECT_DEBIT_PAYMENT = 'VALIDATE_DIRECT_DEBIT_PAYMENT';\r\n\r\nexport const REDIRECT_FINAL_SCREEN = 'REDIRECT_FINAL_SCREEN';\r\nexport const CHECK_CONTRACT_PAYMENT_CB = 'CHECK_CONTRACT_PAYMENT_CB';\r\n\r\nexport const REDIRECT_TO_DATA_SCREEN_START_DATE =\r\n 'REDIRECT_TO_DATA_SCREEN_START_DATE';\r\n\r\nexport const FINAL_CODE_SCREEN_VALIDATE_V2 = 'FINAL_CODE_SCREEN_VALIDATE_V2';\r\n\r\nexport const GET_LOGGED_USER_INFO_REQUEST = 'GET_LOGGED_USER_INFO_REQUEST';\r\nexport const GET_LOGGED_USER_INFO_REQUEST_FAIL =\r\n 'GET_LOGGED_USER_INFO_REQUEST_FAIL';\r\nexport const GET_LOGGED_USER_INFO_REQUEST_SUCCESS =\r\n 'GET_LOGGED_USER_INFO_REQUEST_SUCCESS';\r\n","import { throwError } from 'rxjs';\nimport { ajax } from 'rxjs/ajax';\nimport { map, catchError } from 'rxjs/operators';\nimport config from './config';\nimport { log as consoleLog } from './helpers';\nimport Wording from './wording.json';\n\nconst controlData = (dt, slDt) => {\n if (dt === null) return undefined;\n if (dt !== undefined) return dt;\n if (slDt !== undefined) return slDt;\n\n return undefined;\n};\n\n// lol // TODO\n\nconst TagLogger = Object.freeze({\n USER: 'UserScreen',\n CODE: 'CodeScreen',\n SURVEY: 'SurveyScreen',\n PACKAGE: 'PackageScreen',\n SUMMARY: 'SummaryScreen',\n DATA: 'DataScreen',\n FINALSUMMARY: 'FinalSummaryScreen',\n FINALCODE: 'FinalCodeScreen',\n SAVE: 'SaveScreen',\n SIGNING: 'SigningScreen',\n PAYMENT: 'PaymentScreen',\n CONVERSION: 'ConversionScreen',\n RETRY_PAYMENT: 'RetryPaymentScreen',\n});\n\nconst TriggerButtonLogger = Object.freeze({\n VALIDATE_BTN: 'validate-button',\n AFTER_SIGN: 'after-sign-order',\n AUTO_LOAD: 'auto-load',\n FIXED_PRICE: 'fixed-price',\n SAVE_BTN: 'save-button',\n RETRY_PAYMENT_BTN: 'retry-payment-button',\n});\n\nconst prepareObject = props => {\n const {\n tag,\n customerType,\n triggerButton,\n serviceCalled,\n statusAction,\n logMessage,\n returnCode,\n energyList,\n customerIdentificationKey,\n } = props;\n const dataLS = localStorage.getItem('log_streaming');\n const localStorageData = dataLS ? JSON.parse(dataLS) : {};\n\n const prepareData = {\n tag: controlData(tag, localStorageData.tag),\n customerType: controlData(customerType, localStorageData.customerType),\n triggerButton: controlData(\n triggerButton,\n localStorageData.triggerButton\n ),\n serviceCalled: controlData(\n serviceCalled,\n localStorageData.serviceCalled\n ),\n logMessage: controlData(logMessage, localStorageData.logMessage),\n returnCode: controlData(returnCode, localStorageData.returnCode),\n statusAction: controlData(statusAction, localStorageData.statusAction),\n\n energyList: controlData(energyList, localStorageData.energyList),\n\n customerIdentificationKey: controlData(\n customerIdentificationKey,\n localStorageData.customerIdentificationKey\n ),\n\n environnement: config.ENV,\n timestamp: Date.now().toString(),\n app: 'SUBSCRIPTION',\n channel: 'WEB',\n };\n\n const channel = localStorage.getItem('channel');\n if (channel) {\n prepareData.channel = channel;\n }\n\n return prepareData;\n};\n\nconst log = ({\n tag,\n customerType,\n triggerButton,\n serviceCalled,\n statusAction,\n logMessage,\n returnCode,\n energyList,\n customerIdentificationKey,\n}) => {\n const prepareData = prepareObject({\n tag,\n customerType,\n triggerButton,\n serviceCalled,\n statusAction,\n logMessage,\n returnCode,\n energyList,\n customerIdentificationKey,\n });\n\n const payload = {\n jsonLog: JSON.stringify(prepareData),\n };\n\n localStorage.setItem('log_streaming', payload.jsonLog);\n\n const settings = {\n method: 'POST',\n url: `${config.URL}/getLogsStreaming`,\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': config.ApiKey,\n },\n responseType: 'json',\n crossDomain: true,\n body: payload,\n };\n\n // consoleLog(`===> Prepare Object /getLogsStreaming => `, prepareData);\n // consoleLog(`FO Data: POST /getLogsStreaming ====> `, payload);\n\n const call = ajax(settings).pipe(\n catchError(({ message, response, status }) => {\n const error = {\n ajaxError: message,\n code: status,\n message: Wording.Common.errorAjax,\n };\n if (response) {\n error.code = response.code;\n error.message = response.message;\n }\n\n return throwError(error);\n }),\n map(\n ({ response }) =>\n // consoleLog(`BO Response: POST /getLogsStreaming ====> `, response);\n response\n )\n );\n\n const subscribe = call.subscribe(\n err =>\n err && consoleLog(`Error from API /getLogsStreaming ====> `, err),\n res =>\n res && consoleLog(`BO Response: POST /getLogsStreaming ====> `, res)\n );\n\n return subscribe;\n};\n\nexport { log, TagLogger, TriggerButtonLogger };\n","import { combineEpics, ofType } from 'redux-observable';\n\nimport { of, forkJoin, timer } from 'rxjs';\nimport { catchError, mergeMap, switchMap } from 'rxjs/operators';\n\nimport {\n PAYMENT_MODAL_LOAD,\n PAYMENT_MODAL_VALIDATE,\n PAYMENT_MODAL_VALIDATE_SUCCESS,\n PAYMENT_MODAL_VALIDATE_FAILURE,\n VALIDATE_DIRECT_DEBIT_PAYMENT,\n} from '../../screens/types';\nimport { log, TagLogger } from '../../utils/logger';\n/*import {\n mapGetPaymentCB,\n firstPaymentCBFailure,\n} from './PaymentCBModal.actions';*/\n\n//import config from '../../utils/config';\n\nconst validatePaymentScreen = payload => ({\n type: PAYMENT_MODAL_VALIDATE,\n payload,\n});\n\nconst validatePaymentScreenSuccess = payload => ({\n type: PAYMENT_MODAL_VALIDATE_SUCCESS,\n payload,\n});\n\nconst validatePaymentScreenFailure = payload => ({\n type: PAYMENT_MODAL_VALIDATE_FAILURE,\n payload,\n});\n\nconst loadPaymentModal = payload => ({\n type: PAYMENT_MODAL_LOAD,\n payload,\n});\n\nconst validateDirectDebitPayment = payload => ({\n type: VALIDATE_DIRECT_DEBIT_PAYMENT,\n payload,\n});\n\nconst preparePayload = ({ reference }) => ({\n orderNumber: reference,\n});\n\nconst preparePayloadHubSpot = ({ reference }) => ({\n customerNbr: reference,\n});\n\nconst mapPostHubSpot = (action, { apiRequest }) => {\n const payload = preparePayloadHubSpot(action.payload);\n return apiRequest({\n path: '/hubspot',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n\n log({\n tag: TagLogger.SIGNING,\n returnCode: '200',\n logMessage: response,\n serviceCalled: '/hubspot',\n statusAction: 'SUCCESS',\n triggerButton:\n 'after-signing',\n });\n return of(response);\n }),\n catchError(error => {\n log({\n tag: TagLogger.SIGNING,\n returnCode: '500',\n logMessage: error.message || error.errorMessage,\n serviceCalled: '/hubspot',\n statusAction: 'FAILURE',\n triggerButton: 'after-signing',\n });\n return of(null);\n })\n );\n};\n\nconst mapGetPayment = (action, { apiRequest }) => {\n const payload = preparePayload(action.payload);\n return apiRequest({\n path: '/getOrderStatus',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n if (response.orderStatus) {\n const condition =\n (response.orderStatus === 'FINALIZED' ||\n response.orderStatus === 'FINALIZED_WITHOUT_DOC') &&\n response.firstPaymentCBStatus !== undefined &&\n response.firstPaymentCBStatus !== 'PENDING';\n\n log({\n tag: condition ? TagLogger.PAYMENT : TagLogger.SIGNING,\n returnCode: '200',\n logMessage: response,\n serviceCalled: '/getOrderStatus',\n statusAction: 'SUCCESS',\n triggerButton: condition\n ? 'after-signing'\n : 'validate-button',\n });\n\n return of(response);\n }\n\n log({\n tag: TagLogger.SIGNING,\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/getOrderStatus',\n statusAction: 'FAILURE',\n triggerButton: 'validate-button',\n });\n return of(response);\n }),\n catchError(error => of(error))\n );\n};\n\nconst validatePaymentModalEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(PAYMENT_MODAL_VALIDATE),\n switchMap(\n action => timer(45000).pipe(\n switchMap(() =>\n mapPostHubSpot(action, dependency)\n ),\n switchMap(() =>\n mapGetPayment(action, dependency)\n )\n ),\n (action, r) => [action, r]\n ),\n\n switchMap(([action, getOrderStatusResponse]) => {\n const {\n orderStatus,\n firstPaymentCBStatus,\n } = getOrderStatusResponse;\n const orderST =\n orderStatus === 'FINALIZED' ||\n orderStatus === 'FINALIZED_WITHOUT_DOC';\n\n if (orderST && firstPaymentCBStatus === 'PENDING') {\n /*const newAction = {\n payload: {\n order: action.payload.prepareOrder,\n whenCollected: config.ChannelsDoorToDoor.includes(action.payload.prepareOrder.contracts[0].thirdParties[0].code.toUpperCase()) ? 'LATER' : 'NOW',\n },\n };*/\n return forkJoin(\n of(getOrderStatusResponse),\n of(undefined),\n of(action.payload.prepareOrder)\n );\n }\n const observables = [of(getOrderStatusResponse), of(undefined), of(action.payload.prepareOrder)];\n return forkJoin(observables);\n }),\n\n switchMap(([getOrderStatusResponse, paymentCBResponse, order]) => {\n const {\n orderStatus,\n } = getOrderStatusResponse;\n\n /* const orderSTFinalized =\n orderStatus === 'FINALIZED' ||\n orderStatus === 'FINALIZED_WITHOUT_DOC';*/\n\n if (\n orderStatus !== undefined &&\n orderStatus !== 'CANCELED' &&\n orderStatus !== 'IN_FAILURE' &&\n orderStatus !== 'IN_PROGRESS'\n ) {\n\n /* if (firstPaymentCBStatus !== undefined && orderSTFinalized) {\n if (\n paymentCBResponse !== undefined &&\n paymentCBResponse.stripe !== undefined\n ) {\n log({\n tag: TagLogger.PAYMENT,\n returnCode: '200',\n logMessage: paymentCBResponse,\n serviceCalled: '/paymentCB',\n statusAction: 'SUCCESS',\n triggerButton: 'after-sign-order',\n });\n return of(\n loadPaymentModal({\n ...getOrderStatusResponse,\n ...paymentCBResponse,\n order,\n paymentType: 'PAYMENT_CB',\n }),\n validateDirectDebitPayment()\n );\n }\n\n if (firstPaymentCBStatus === 'FINALIZED') {\n log({\n tag: TagLogger.PAYMENT,\n returnCode: '200',\n logMessage: getOrderStatusResponse,\n serviceCalled: '/paymentCB',\n statusAction: 'SUCCESS',\n triggerButton: 'after-sign-order',\n });\n return of(validatePaymentScreenSuccess({}));\n }\n\n // Failure if status === IN_FAILURE || CANCELED || IN_PROGRESS\n return of(firstPaymentCBFailure());\n }*/\n return of(\n validatePaymentScreenSuccess(getOrderStatusResponse),\n validateDirectDebitPayment(order)\n );\n }\n return of(validatePaymentScreenFailure(getOrderStatusResponse));\n }),\n\n catchError(error => {\n const message = error.message || error.errorMessage;\n\n return of(\n validatePaymentScreenFailure({\n error: message,\n })\n );\n })\n );\n\nconst paymentModalEpic = combineEpics(validatePaymentModalEpic);\n\nexport {\n validatePaymentScreen,\n validatePaymentScreenSuccess,\n validatePaymentScreenFailure,\n validateDirectDebitPayment,\n paymentModalEpic,\n loadPaymentModal,\n};","import { combineEpics, ofType } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, mergeMap } from 'rxjs/operators';\nimport { addDays } from 'date-fns';\nimport {\n controlBillingMode,\n getDateString,\n getDateEffectiveString,\n getFormattedDateToBO,\n getTodayDateString,\n prepareCyclicBillDate,\n} from '../../utils/helpers';\n\nimport { loadPaymentModal } from '../../containers/PaymentModal/PaymentModal.actions';\nimport {\n FINAL_SUMMARY_SCREEN_VALIDATE,\n FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS,\n FINAL_SUMMARY_SCREEN_VALIDATE_FAILURE,\n FINAL_SUMMARY_SCREEN_CHANGE_ADDITIONAL_RATES,\n FINAL_SUMMARY_SCREEN_CHANGE_PACKAGES,\n FINAL_SUMMARY_SCREEN_SET_REFERENCE,\n REDIRECT_TO_DATA_SCREEN_START_DATE, UPDATE_FINAL_SUMMARY_SCREEN_STATE,\n} from '../types';\n\nimport { log, TagLogger, TriggerButtonLogger } from '../../utils/logger';\n\nconst validateFinalSummaryScreen = payload => ({\n type: FINAL_SUMMARY_SCREEN_VALIDATE,\n payload,\n});\n\nconst validateFinalSummaryScreenSuccess = payload => ({\n type: FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS,\n payload,\n});\n\nconst validateFinalSummaryScreenFailure = payload => ({\n type: FINAL_SUMMARY_SCREEN_VALIDATE_FAILURE,\n payload,\n});\n\nconst changePackages = payload => ({\n type: FINAL_SUMMARY_SCREEN_CHANGE_PACKAGES,\n payload,\n});\n\nconst changeAdditionalRates = payload => ({\n type: FINAL_SUMMARY_SCREEN_CHANGE_ADDITIONAL_RATES,\n payload,\n});\n\nconst setReference = payload => ({\n type: FINAL_SUMMARY_SCREEN_SET_REFERENCE,\n payload,\n});\n\nconst updateFinalSummaryScreenState = payload => ({\n type: UPDATE_FINAL_SUMMARY_SCREEN_STATE,\n payload,\n});\n\n\nconst redirectToDataScreen = () => ({\n type: REDIRECT_TO_DATA_SCREEN_START_DATE,\n});\n\nconst formatAddress = address => {\n const modifiedAddress = { ...address };\n const sliceIndexAddressStreet = address.street.indexOf(' ');\n if (sliceIndexAddressStreet > 0) {\n modifiedAddress.number = address.street.substring(\n 0,\n sliceIndexAddressStreet\n );\n modifiedAddress.street = address.street.substring(\n sliceIndexAddressStreet + 1\n );\n }\n\n return modifiedAddress;\n};\n\nconst prepareOrder = ({\n userType,\n energyTypes,\n common,\n part,\n pro,\n finance,\n contracts,\n partnerReference,\n thirdParty,\n reference,\n externalReference,\n createdBy,\n status,\n currentOrder,\n ...payload\n}) => {\n const channel = localStorage.getItem('channel');\n\n const isSwitch = common.dateContract\n ? common.dateContract.switch\n : undefined;\n\n let address = {\n street: common.address.address,\n postalCode: `${common.address.postalCode}`,\n townName: common.address.city,\n };\n if (\n common.newAddress.address &&\n common.newAddress.postalCode &&\n common.newAddress.city\n ) {\n address.street = common.newAddress.address;\n address.postalCode = `${common.newAddress.postalCode}`;\n address.townName = common.newAddress.city;\n }\n address = formatAddress(address);\n const acDt = new Date(common.birthdate);\n const contact = {\n address,\n birthTown: common.birthTown,\n civility: common.civility,\n firstName: common.name,\n lastName: common.surname,\n birthdate: common.birthdate\n ? getDateString({\n year: acDt.getFullYear(),\n month: acDt.getMonth(),\n date: acDt.getDate(),\n })\n : '',\n email: common.email,\n phone: common.tel,\n };\n if (\n pro &&\n pro.socialReason !== '' &&\n pro.legalForm !== '' &&\n pro.APECode !== '' &&\n pro.SIRET !== ''\n ) {\n contact.companyName = pro.socialReason;\n contact.companyType = pro.legalForm;\n contact.activityCode = pro.APECode;\n contact.identificationNumber = pro.SIRET;\n }\n let modifiedFinance = {\n paymentMode: 'DIRECT_DEBIT',\n accountOwnerFirstName: common.name,\n accountOwnerLastName: common.surname,\n };\n if (finance) {\n modifiedFinance = { ...finance };\n }\n if (\n common.newBillingAddress.address &&\n common.newBillingAddress.postalCode &&\n common.newBillingAddress.city\n ) {\n let billingAddress = {\n street: common.newBillingAddress.address,\n postalCode: `${common.newBillingAddress.postalCode}`,\n townName: common.newBillingAddress.city,\n };\n billingAddress = formatAddress(billingAddress);\n modifiedFinance.billingContact = {\n civility: common.newBillingAddress.civility,\n firstName: common.newBillingAddress.name,\n lastName: common.newBillingAddress.surname,\n address: billingAddress,\n };\n modifiedFinance.accountOwnerFirstName = common.newBillingAddress.name;\n modifiedFinance.accountOwnerLastName = common.newBillingAddress.surname;\n }\n const filteredContracts =\n contracts &&\n contracts.filter(contract => energyTypes.includes(contract.energy));\n\n const modifiedContracts =\n filteredContracts &&\n filteredContracts.map((contract, index) => {\n const nextContract = { ...contract };\n const {\n chosenPackages,\n offer,\n additionalOptions,\n cyclicBill,\n billingModeCode: bmc,\n } = payload[contract.energy];\n const billingModeCode = controlBillingMode(cyclicBill, bmc);\n\n const process = {\n type: common.situation,\n express: common.dateContract[contract.energy].express,\n appointmentTimeslot:\n common.dateContract[contract.energy].timeslot,\n };\n const effectiveStartRange = (\n common.dateContract.switch || { value: 'NOW' }\n ).value;\n\n const thirdParties = [];\n if (\n thirdParty &&\n !thirdParty.error &&\n thirdParty.code !== '' &&\n thirdParty.role !== ''\n )\n {\n if (contract.energy === \"EL\" && thirdParty.code === \"ELECTRICLIC\" ) {\n thirdParties.push({\n role: thirdParty.role,\n code: thirdParty.code,\n });\n } else if (contract.energy === \"NG\" && thirdParty.code === \"ELECTRICLIC\") {\n\n } else {\n thirdParties.push({\n role: thirdParty.role,\n code: thirdParty.code,\n });\n }\n }\n\n thirdParties.push({\n role: 'PARTNER',\n code:\n channel !== undefined && channel !== null && channel !== ''\n ? channel\n : 'WEB',\n });\n\n const coholder = part.coOwner;\n if (\n coholder &&\n coholder.firstName !== '' &&\n coholder.lastName !== ''\n ) {\n thirdParties.push({\n role: 'COHOLDER',\n code: '',\n civility: coholder.civility,\n firstName: coholder.firstName,\n lastName: coholder.lastName,\n });\n }\n\n const effectiveStartDate = (() => {\n let dString;\n if (currentOrder) {\n dString = currentOrder.contracts[index].effectiveStartDate\n }else {\n dString = getDateEffectiveString(\n common.dateContract[contract.energy]\n );\n }\n\n\n if (isSwitch) {\n const { value: switchValue } = common.dateContract.switch;\n\n let date = cyclicBill\n ? prepareCyclicBillDate(contract.energy, switchValue)\n : new Date(dString);\n if (effectiveStartRange === 'LATER') {\n date = addDays(date, 14)\n }\n\n return getFormattedDateToBO(\n // prepareEffectiveStartDate(\n // date,\n // contract.energy,\n // switchValue,\n // billingModeCode\n // )\n date\n );\n }\n\n return dString;\n })();\n\n const subscriptionDate = getTodayDateString();\n const chosenProduct = { ...offer.product };\n\n if (offer.product && additionalOptions) {\n if (offer.product.additionalRates) {\n chosenProduct.additionalRates = offer.product.additionalRates.map(\n rate => {\n if (rate.type !== 'OPTION') {\n return rate;\n }\n const active =\n additionalOptions.indexOf(rate.label) !== -1;\n return {\n ...rate,\n active,\n };\n }\n );\n } else {\n chosenProduct.additionalRates = [];\n }\n }\n\n if (isSwitch && !cyclicBill) {\n nextContract.dueDate = getDateString(\n common.dateContract[contract.energy]\n );\n }\n\n return {\n ...nextContract,\n thirdParties,\n chosenProduct,\n effectiveStartRange,\n effectiveStartDate,\n subscriptionDate,\n billingModeCode,\n chosenPackages: chosenPackages || [],\n installmentFrequency:\n payload[contract.energy].installmentFrequency,\n deliveryPoint: {\n ...contract.deliveryPoint,\n process,\n },\n };\n });\n const firstPaymentCBStatus = modifiedContracts\n ? modifiedContracts.reduce(\n (\n acc,\n {\n firstPaymentCB,\n deliveryPoint: {\n process: { type },\n },\n }\n ) =>\n acc ||\n (firstPaymentCB !== undefined && type === 'MOVE_IN'\n ? firstPaymentCB\n : false),\n\n false\n )\n : {};\n\n const order = {\n contracts: modifiedContracts,\n customer: {\n contact,\n finance: modifiedFinance,\n type: userType,\n typePayment: common.situation === 'SWITCH' && \n (\n common.dateContract.switch || { value: 'NOW' }\n ).value === 'LATER' ? 'SDD' : 'OTHER',\n },\n };\n if (partnerReference) {\n order.partnerReference = partnerReference;\n }\n\n if (firstPaymentCBStatus || payload.retryCB) {\n order.firstPaymentCBStatus = 'PENDING';\n }\n\n if (createdBy) {\n order.createdBy = createdBy;\n }\n\n if (reference && reference !== '') {\n // In case of FAIL\n // use the same order reference\n return {\n ...order,\n externalReference,\n orderReference: reference,\n orderStatus: status,\n };\n }\n\n return order;\n};\n\nconst preparePayload = payload => {\n const order = prepareOrder(payload);\n\n const agent = localStorage.getItem('agent');\n\n if (agent) {\n order.createdBy = agent;\n }\n\n return { order };\n};\n\nconst mapGetPayment = (action, { apiRequest }) => {\n const payload = preparePayload(action.payload);\n const req = {\n ...payload,\n retryCB:\n action.payload && action.payload.retryCB\n ? action.payload.retryCB\n : false,\n typeOrder: action.payload && action.payload.typeOrder,\n alreadyClient: action.payload && action.payload.alreadyClient,\n };\n const option = {\n path: '/signOrder',\n method: 'post',\n body: req,\n };\n\n return apiRequest(option).pipe(\n mergeMap(response => {\n if (response.iframe) {\n log({\n tag: TagLogger.SIGNING,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/signOrder',\n statusAction: 'SUCCESS',\n triggerButton: 'validate-button',\n });\n return of(\n loadPaymentModal({\n ...response,\n order: payload.order,\n paymentType: 'DIRECT_DEBIT',\n }),\n validateFinalSummaryScreenSuccess(action.payload)\n );\n }\n const message = response.message || response.errorMessage;\n log({\n tag: TagLogger.SIGNING,\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/signOrder',\n statusAction: 'FAILURE',\n triggerButton: 'validate-button',\n });\n return of(\n validateFinalSummaryScreenFailure({\n error: message,\n })\n );\n }),\n catchError(error => {\n log({\n tag: TagLogger.SIGNING,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/signOrder',\n statusAction: 'FAILURE',\n triggerButton: TriggerButtonLogger.VALIDATE_BTN,\n });\n\n return of(\n validateFinalSummaryScreenFailure({\n error: error.message,\n })\n );\n })\n );\n};\n\nconst validateFinalSummaryScreenEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(FINAL_SUMMARY_SCREEN_VALIDATE),\n mergeMap(action => mapGetPayment(action, dependency))\n );\n\nconst finalSummaryScreenEpic = combineEpics(validateFinalSummaryScreenEpic);\n\nexport {\n validateFinalSummaryScreen,\n validateFinalSummaryScreenSuccess,\n validateFinalSummaryScreenFailure,\n updateFinalSummaryScreenState,\n redirectToDataScreen,\n finalSummaryScreenEpic,\n mapGetPayment,\n prepareOrder,\n changeAdditionalRates,\n changePackages,\n setReference,\n};\n","const Screen = Object.freeze({\r\n USER: 'UserScreen',\r\n CODE: 'CodeScreen',\r\n SURVEY: 'SurveyScreen',\r\n PACKAGE: 'PackageScreen',\r\n SUMMARY: 'SummaryScreen',\r\n DATA: 'DataScreen',\r\n DATA_MIN: 'MinimalUserData',\r\n FINALSUMMARY: 'FinalSummaryScreen',\r\n VALIDATION: 'ValidationDialogScreen',\r\n SITUATION: 'SituationScreen',\r\n FAILURE_CB: 'FailureCBScreen',\r\n CANCEL_SLIMCOLLECT: 'CancelSCScreen',\r\n FAILURE_SLIMCOLLECT: 'FailureSCScreen',\r\n FINAL: 'FinalScreen',\r\n FINALPAYMENT: 'FinalPaymentScreen',\r\n SAVE: 'SaveScreen',\r\n});\r\n\r\nexport default Screen;\r\n","import { combineEpics, ofType } from 'redux-observable';\nimport { of, forkJoin, throwError } from 'rxjs';\nimport { catchError, switchMap, mergeMap } from 'rxjs/operators';\n\nimport {\n DATA_SCREEN_VALIDATE_SUCCESS,\n DATA_SCREEN_VALIDATE_SUCCESS_FINAL,\n FETCH_CALENDAR_APPOINTMENT,\n FETCH_CALENDAR_APPOINTMENT_SUCCESS,\n FETCH_CALENDAR_APPOINTMENT_FAILURE,\n DATA_SCREEN_SAVE_COMMON,\n MINIMAL_DATA_FORM,\n MINIMAL_DATA_VALIDATE_EMAIL,\n MINIMAL_DATA_RESET_EMAIL,\n SEND_EMAIL_CODE_REQUEST,\n SEND_EMAIL_CODE_REQUEST_FAIL,\n SEND_EMAIL_CODE_REQUEST_SUCCESS,\n VERIFY_EMAIL_CODE_REQUEST,\n VERIFY_EMAIL_CODE_REQUEST_FAIL,\n VERIFY_EMAIL_CODE_REQUEST_SUCCESS,\n LOG_USER_INFORMATION_REQUEST,\n LOG_USER_INFORMATION_FAIL,\n LOG_USER_INFORMATION_SUCCESS,\n GET_LOGGED_USER_INFO_REQUEST,\n GET_LOGGED_USER_INFO_REQUEST_FAIL,\n GET_LOGGED_USER_INFO_REQUEST_SUCCESS,\n} from '../types';\nimport { log } from '../../utils/logger';\nimport Screen from '../screen';\nimport { saveOrderSuccess } from '../MainScreen/MainScreen.actions';\nimport config from '../../utils/config';\n\nconst dataScreenSaveCommon = payload => ({\n type: DATA_SCREEN_SAVE_COMMON,\n payload,\n});\n\nconst validateDataScreenSuccess = payload => ({\n type: DATA_SCREEN_VALIDATE_SUCCESS,\n payload,\n});\n\nconst validateDataScreenSuccessFinal = payload => ({\n type: DATA_SCREEN_VALIDATE_SUCCESS_FINAL,\n payload,\n});\n\nconst fetchCalendarAppointment = payload => ({\n type: FETCH_CALENDAR_APPOINTMENT,\n payload,\n});\n\nconst fetchCalendarAppointmentSuccess = payload => ({\n type: FETCH_CALENDAR_APPOINTMENT_SUCCESS,\n payload,\n});\n\nconst fetchCalendarAppointmentFailure = payload => ({\n type: FETCH_CALENDAR_APPOINTMENT_FAILURE,\n payload,\n});\n\nconst storeMinimumUserData = payload => ({\n type: MINIMAL_DATA_FORM,\n payload,\n});\n\nconst resetMinimumUserDataEmail = payload => ({\n type: MINIMAL_DATA_RESET_EMAIL,\n payload,\n});\n\nconst validateMinimumUserDataEmail = payload => ({\n type: MINIMAL_DATA_VALIDATE_EMAIL,\n payload,\n});\n\nconst sendEmailCodeRequest = payload => ({\n type: SEND_EMAIL_CODE_REQUEST,\n payload,\n});\n\nconst sendEmailCodeRequestFail = payload => ({\n type: SEND_EMAIL_CODE_REQUEST_FAIL,\n payload,\n});\n\nconst sendEmailCodeRequestSuccess = payload => ({\n type: SEND_EMAIL_CODE_REQUEST_SUCCESS,\n payload,\n});\n\nconst verifyEmailCodeRequest = payload => ({\n type: VERIFY_EMAIL_CODE_REQUEST,\n payload,\n});\n\nconst verifyEmailCodeRequestFail = payload => ({\n type: VERIFY_EMAIL_CODE_REQUEST_FAIL,\n payload,\n});\n\nconst verifyEmailCodeRequestSuccess = payload => ({\n type: VERIFY_EMAIL_CODE_REQUEST_SUCCESS,\n payload,\n});\n\nconst logUserInformationRequest = payload => ({\n type: LOG_USER_INFORMATION_REQUEST,\n payload,\n});\n\nconst logUserInformationRequestFail = payload => ({\n type: LOG_USER_INFORMATION_FAIL,\n payload,\n});\n\nconst logUserInformationRequestSuccess = payload => ({\n type: LOG_USER_INFORMATION_SUCCESS,\n payload,\n});\n\nconst getLoggedUserInfoRequest = payload => ({\n type: GET_LOGGED_USER_INFO_REQUEST,\n payload,\n});\n\nconst getLoggedUserInfoRequestFail = payload => ({\n type: GET_LOGGED_USER_INFO_REQUEST_FAIL,\n payload,\n});\n\nconst getLoggedUserInfoRequestSuccess = payload => ({\n type: GET_LOGGED_USER_INFO_REQUEST_SUCCESS,\n payload,\n});\n\nconst preparePayload = (payload, energy) => {\n\n let fromDate;\n\n if (payload.fromDate !== undefined) {\n fromDate = payload.fromDate;\n } else {\n const dates = new Date().toISOString().split('T');\n if (dates && dates.length > 1) {\n fromDate = dates[0];\n }\n }\n\n const productCode = payload.offers.find(value => value.energy === energy).product.productCode\n\n const result = {\n fromDate,\n energyType: energy,\n customerType: payload.userType,\n processType: 'MOVE_IN',\n deliveryState: payload.contracts[0].deliveryPoint.state || '',\n meterType: payload.contracts[0].deliveryPoint.meterType || '',\n smartMeterStatus:\n payload.contracts[0].deliveryPoint.smartMeterStatus || '',\n deliveryStatus: payload.contracts[0].deliveryPoint.deliveryStatus || '',\n };\n\n if (productCode.includes(\"WEKIPRO\")) {\n result.productCode = productCode;\n }\n\n return result;\n};\n\n\nconst mapGetCalendarAndAppointment = (action, energy, { apiRequest }) => {\n const payload = preparePayload(action.payload, energy);\n return apiRequest({\n path: '/getCalendarAppointment',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n if (Array.isArray(response)) {\n log({\n tag: Screen.DATA,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/getCalendarAppointment',\n statusAction: 'SUCCESS',\n triggerButton: 'auto-load',\n });\n return of(response);\n }\n const message = response.message || response.errorMessage;\n\n log({\n tag: Screen.DATA,\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/getCalendarAppointment',\n statusAction: 'FAILURE',\n triggerButton: 'auto-load',\n });\n return throwError({ message });\n }),\n catchError(error => of(error))\n );\n};\n\nconst validateCalendarAppointementEpic = (action$, store, dependency) =>\n action$.pipe(\n ofType(FETCH_CALENDAR_APPOINTMENT),\n switchMap(action =>\n forkJoin(\n ...action.payload.energyTypes.map(energy =>\n mapGetCalendarAndAppointment(action, energy, dependency)\n )\n )\n ),\n switchMap(calendarResponse => {\n // Float does not work with the current jest version\n // const arrFlat = calendarResponse.flat();\n const arrFlat = [].concat(...calendarResponse);\n return of(fetchCalendarAppointmentSuccess(arrFlat));\n }),\n catchError(error =>\n of(\n fetchCalendarAppointmentFailure({\n error: error.message,\n })\n )\n )\n );\n\nconst mapSendEmailCode = (action, { apiRequest }) => {\n const payload = {\n ...action.payload,\n savingMode: 'CHECK_EMAIL',\n };\n return apiRequest({\n path: '/saveOrder',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n if (response.orderNumber) {\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/saveOrder - CHECK_EMAIL',\n statusAction: 'SUCCESS',\n });\n return of(\n sendEmailCodeRequestSuccess({\n isCodeSent: true,\n }),\n saveOrderSuccess({\n orderNumber: response.orderNumber,\n })\n );\n }\n return throwError({\n message: response.message || response.errorMessage,\n });\n }),\n catchError(error => {\n log({\n ...action.payload.logger,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/saveOrder - CHECK_EMAIL',\n statusAction: 'FAILURE',\n });\n return of(\n sendEmailCodeRequestFail({\n isCodeSent: false,\n })\n );\n })\n );\n};\n\nconst sendEmailCodeEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(SEND_EMAIL_CODE_REQUEST),\n mergeMap(action => mapSendEmailCode(action, dependency))\n );\n\nconst mapVerifyEmailCode = (action, { apiRequest }) => {\n const payload = {\n ...action.payload,\n savingMode: 'CHECK_CODE',\n };\n return apiRequest({\n path: '/saveOrder',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n if (response.orderNumber) {\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/saveOrder - CHECK_CODE',\n statusAction: 'SUCCESS',\n });\n return of(\n verifyEmailCodeRequestSuccess({\n isValid: true,\n })\n );\n }\n return throwError({\n message: response.message || response.errorMessage,\n });\n }),\n catchError(error => {\n log({\n ...action.payload.logger,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/saveOrder - CHECK_CODE',\n statusAction: 'FAILURE',\n });\n return of(\n verifyEmailCodeRequestFail({\n isValid: false,\n error: error.message,\n })\n );\n })\n );\n};\n\nconst verifyEmailCodeEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(VERIFY_EMAIL_CODE_REQUEST),\n mergeMap(action => mapVerifyEmailCode(action, dependency))\n );\n\nconst mapLogUserInformation = (action, { apiRequest }) => {\n const payload = {\n ...action.payload,\n dataOff: undefined,\n };\n return apiRequest({\n path: '/login',\n method: 'post',\n body: payload,\n urlOverride: config.URL_CS,\n }).pipe(\n mergeMap(response => {\n const message = response.message || response.errorMessage;\n const dataOff = action.payload.dataOff;\n const isFailCredential =\n message && message.includes('Incorrect username or password.');\n const isEmailNotFound =\n message && message.includes('User does not exist.');\n\n // This condition only check if the email address is known by the api\n if (dataOff && dataOff.isOnlyCheck) {\n if (isFailCredential) {\n if (dataOff.onUserExist) dataOff.onUserExist();\n return of(\n logUserInformationRequestSuccess({ isUserExist: true })\n );\n }\n if (dataOff.onUserNotExist) dataOff.onUserNotExist();\n return of(\n logUserInformationRequestSuccess({ isUserExist: false }),\n sendEmailCodeRequest({ order: dataOff.order })\n );\n }\n if (response.accessToken) {\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: 'Log success',\n serviceCalled: '/login',\n statusAction: 'SUCCESS',\n });\n return of(\n logUserInformationRequestSuccess(response),\n saveOrderSuccess({\n orderNumber: response.user,\n })\n );\n }\n if (isFailCredential || isEmailNotFound)\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: 'Fail to log with wrong user credential',\n serviceCalled: '/login',\n statusAction: 'SUCCESS',\n });\n\n if (isFailCredential) {\n return of(\n logUserInformationRequestSuccess({\n error: 'Combinaison email et mot de passe invalide.',\n })\n );\n }\n if (isEmailNotFound) {\n return of(\n logUserInformationRequestSuccess({\n error: 'Utilisateur introuvable.',\n })\n );\n }\n return throwError({\n message,\n });\n }),\n catchError(error => {\n log({\n ...action.payload.logger,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/login',\n statusAction: 'FAILURE',\n });\n return of(\n logUserInformationRequestFail({\n error: error.message,\n })\n );\n })\n );\n};\n\nconst logUserInformationEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(LOG_USER_INFORMATION_REQUEST),\n mergeMap(action => mapLogUserInformation(action, dependency))\n );\n\nconst mapGetLoggedUserInfo = (action, { apiRequest }) => {\n const payload = {\n customerNbr: action.payload.customerNbr,\n };\n return apiRequest({\n path: '/getContext',\n method: 'post',\n body: payload,\n urlOverride: config.URL_CS,\n token: action.payload.token,\n }).pipe(\n mergeMap(response => {\n if (response.customer) {\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/getContext - GET_INFO',\n statusAction: 'SUCCESS',\n });\n return of(\n getLoggedUserInfoRequestSuccess(response.customer),\n saveOrderSuccess({\n orderNumber: response.customer.customerNumber,\n })\n );\n }\n return throwError({\n message: response.message || response.errorMessage,\n });\n }),\n catchError(error => {\n log({\n ...action.payload.logger,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/getContext - GET_INFO',\n statusAction: 'FAILURE',\n });\n return of(\n getLoggedUserInfoRequestFail({\n isCodeSent: false,\n })\n );\n })\n );\n};\n\nconst getLoggedUserInfoEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(GET_LOGGED_USER_INFO_REQUEST),\n mergeMap(action => mapGetLoggedUserInfo(action, dependency))\n );\n\nconst dataScreenEpic = combineEpics(\n validateCalendarAppointementEpic,\n sendEmailCodeEpic,\n verifyEmailCodeEpic,\n logUserInformationEpic,\n getLoggedUserInfoEpic\n);\n\nexport {\n validateDataScreenSuccess,\n validateDataScreenSuccessFinal,\n fetchCalendarAppointment,\n mapGetCalendarAndAppointment,\n fetchCalendarAppointmentSuccess,\n fetchCalendarAppointmentFailure,\n dataScreenSaveCommon,\n storeMinimumUserData,\n resetMinimumUserDataEmail,\n validateMinimumUserDataEmail,\n sendEmailCodeRequest,\n sendEmailCodeRequestFail,\n sendEmailCodeRequestSuccess,\n verifyEmailCodeRequest,\n verifyEmailCodeRequestFail,\n verifyEmailCodeRequestSuccess,\n logUserInformationRequest,\n logUserInformationRequestFail,\n logUserInformationRequestSuccess,\n getLoggedUserInfoRequest,\n getLoggedUserInfoRequestFail,\n getLoggedUserInfoRequestSuccess,\n dataScreenEpic,\n};\n","import { combineEpics, ofType } from 'redux-observable';\nimport { forkJoin, of, throwError } from 'rxjs';\nimport { catchError, switchMap, mergeMap } from 'rxjs/operators';\nimport moment from 'moment';\n\nimport {\n PREVIOUS_SCREEN_LOAD,\n NEXT_SCREEN_LOAD,\n MAIN_SCREEN_SAVE_ORDER,\n MAIN_SCREEN_SAVE_ORDER_SUCCESS,\n MAIN_SCREEN_SAVE_ORDER_FAILURE,\n MAIN_SCREEN_GET_ORDER,\n MAIN_SCREEN_GET_ORDER_SUCCESS,\n MAIN_SCREEN_GET_ORDER_FAILURE,\n MAIN_SCREEN_GET_OFFER_FAILURE,\n MAIN_SCREEN_GET_PACKAGE_FAILURE,\n MAIN_SCREEN_GET_PRODUCT_FAILURE,\n MAIN_SCREEN_GET_FORM,\n CLOSE_SAVE_DRAFT_MODAL,\n} from '../types';\n\nimport {\n dateDiffDays,\n removeFirstPaymentCBFromContract,\n} from '../../utils/helpers';\nimport { prepareOrder } from '../FinalSummaryScreen/FinalSummaryScreen.actions';\nimport { log } from '../../utils/logger';\nimport { mapGetCalendarAndAppointment } from '../DataScreen/DataScreen.actions';\n\nexport const goPreviousScreen = payload => ({\n type: PREVIOUS_SCREEN_LOAD,\n payload,\n});\n\nexport const goNextScreen = payload => ({\n type: NEXT_SCREEN_LOAD,\n payload,\n});\n\nexport const saveOrder = payload => ({\n type: MAIN_SCREEN_SAVE_ORDER,\n payload,\n});\n\nexport const saveOrderSuccess = payload => ({\n type: MAIN_SCREEN_SAVE_ORDER_SUCCESS,\n payload,\n});\n\nexport const saveOrderFailure = payload => ({\n type: MAIN_SCREEN_SAVE_ORDER_FAILURE,\n payload,\n});\n\nexport const getOrder = payload => ({\n type: MAIN_SCREEN_GET_ORDER,\n payload,\n});\n\nexport const getOrderSuccess = payload => ({\n type: MAIN_SCREEN_GET_ORDER_SUCCESS,\n payload,\n});\n\nexport const getOrderFailure = payload => ({\n type: MAIN_SCREEN_GET_ORDER_FAILURE,\n payload,\n});\n\nexport const getOfferFailure = payload => ({\n type: MAIN_SCREEN_GET_OFFER_FAILURE,\n payload,\n});\n\nexport const getPackageFailure = payload => ({\n type: MAIN_SCREEN_GET_PACKAGE_FAILURE,\n payload,\n});\n\nexport const getProductFailure = payload => ({\n type: MAIN_SCREEN_GET_PRODUCT_FAILURE,\n payload,\n});\n\nexport const getForm = payload => ({\n type: MAIN_SCREEN_GET_FORM,\n payload,\n});\n\nexport const closeSaveDraftModal = () => ({\n type: CLOSE_SAVE_DRAFT_MODAL,\n});\n\nconst preparePayload = payload => {\n const order = prepareOrder(payload);\n\n const agent = localStorage.getItem('agent');\n\n if (agent) {\n order.createdBy = agent;\n }\n\n return {\n savingMode: 'SEND_EMAIL_LINK',\n order,\n };\n};\n\nconst mapSaveOrder = (action, { apiRequest }) => {\n const payload = preparePayload(action.payload);\n return apiRequest({\n path: '/saveOrder',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n if (response.orderNumber) {\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/saveOrder',\n statusAction: 'SUCCESS',\n });\n return of(\n saveOrderSuccess({\n ...action.payload,\n orderNumber: response.orderNumber,\n })\n );\n }\n const message = response.message || response.errorMessage;\n\n log({\n ...action.payload.logger,\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/saveOrder',\n statusAction: 'FAILURE',\n });\n return throwError({ message });\n }),\n catchError(error => {\n log({\n ...action.payload.logger,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/saveOrder',\n statusAction: 'FAILURE',\n });\n return of(\n saveOrderFailure({\n error: error.message,\n })\n );\n })\n );\n};\n\nconst saveOrderEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(MAIN_SCREEN_SAVE_ORDER),\n mergeMap(action => mapSaveOrder(action, dependency))\n );\n\nconst preparePayloadGetOrder = ({ id }) => ({\n orderNumber: id,\n});\n\nconst mapGetOrder = (action, { apiRequest }) => {\n const payload = preparePayloadGetOrder(action.payload);\n const option = {\n path: '/getOrder',\n method: 'post',\n body: payload,\n };\n return apiRequest(option).pipe(\n mergeMap(response => {\n if (response.order) {\n log({\n tag: 'GET_ORDER',\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/getOrder',\n statusAction: 'SUCCESS',\n triggerButton: 'email-continue-subscription',\n });\n return of(response);\n }\n const message = response.message || response.errorMessage;\n log({\n tag: 'GET_ORDER',\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/getOrder',\n statusAction: 'FAILURE',\n triggerButton: 'email-continue-subscription',\n });\n return throwError({ message });\n }),\n catchError(error =>\n of(\n getOrderFailure({\n error: error.message,\n })\n )\n )\n );\n};\n\nconst preparePayloadGetPackages = ({ userType, contracts }) => {\n const estimates = [];\n // flat() does not work in some browsers\n contracts.forEach(contract => {\n contract.estimates.forEach(est => {\n estimates.push({\n ...est,\n energy: contract.energy,\n });\n });\n });\n return {\n mode: 'ESTIMATE',\n customerType: userType,\n estimates,\n };\n};\n\nconst mapGetPackages = (action, { apiRequest }) => {\n const payload = preparePayloadGetPackages(action.payload);\n return apiRequest({\n path: '/getPackages',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n if (response.packagesList) {\n log({\n tag: 'GET_ORDER',\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/getPackages',\n statusAction: 'SUCCESS',\n triggerButton: 'email-continue-subscription',\n });\n return of(response);\n }\n const message = response.message || response.errorMessage;\n\n log({\n tag: 'GET_ORDER',\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/getPackages',\n statusAction: 'FAILURE',\n triggerButton: 'email-continue-subscription',\n });\n return throwError({ message });\n }),\n catchError(error =>\n of(\n getPackageFailure({\n error: error.message,\n })\n )\n )\n );\n};\n\nconst preparePayloadGetProduct = ({ userType, contracts }) => {\n const modifiedContracts = contracts.map(contract => {\n const {\n effectiveStartRange,\n effectiveStartDate,\n subscriptionDate,\n ...c\n } = contract;\n return c;\n });\n return {\n contextOfUse: 'MARKET',\n customerType: userType,\n contracts: modifiedContracts,\n };\n};\n\nconst preparePayloadGetOffer = ({ contracts, userType }) => {\n const updateArr = contracts.map(contract =>\n contract.chosenPackages === undefined\n ? { ...contract, chosenPackages: [] }\n : contract\n );\n\n return {\n contracts: updateArr,\n customerType: userType,\n };\n};\n\nconst mapGetProducts = (action, { apiRequest }) => {\n const payload = preparePayloadGetProduct(action.payload);\n return apiRequest({\n path: '/getProducts',\n method: 'post',\n body: payload,\n }).pipe(\n switchMap(response => {\n if (response.productsList) {\n log({\n tag: 'GET_ORDER',\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/getProducts',\n statusAction: 'SUCCESS',\n triggerButton: 'email-continue-subscription',\n });\n return of({\n products: response.productsList,\n error: null,\n });\n }\n\n log({\n tag: 'GET_ORDER',\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/getProducts',\n statusAction: 'FAILURE',\n triggerButton: 'email-continue-subscription',\n });\n const message = response.message || response.errorMessage;\n return throwError({ message });\n }),\n switchMap(({ products }) => {\n const payloadOffer = preparePayloadGetOffer(action.payload);\n return apiRequest({\n path: '/getOffers',\n method: 'post',\n body: payloadOffer,\n }).pipe(\n switchMap(response => {\n if (response.offers) {\n log({\n tag: 'GET_ORDER',\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/getOffers',\n statusAction: 'SUCCESS',\n triggerButton: 'email-continue-subscription',\n });\n return of({\n products,\n offers: response.offers,\n });\n }\n const message = response.message || response.errorMessage;\n log({\n tag: 'GET_ORDER',\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/getOffers',\n statusAction: 'FAILURE',\n triggerButton: 'email-continue-subscription',\n });\n return throwError({ message });\n }),\n catchError(error =>\n of(\n getOfferFailure({\n error: error.message,\n })\n )\n )\n );\n }),\n catchError(error =>\n of(\n getProductFailure({\n error: error.message,\n })\n )\n )\n );\n};\n\nconst getOrderEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(MAIN_SCREEN_GET_ORDER),\n switchMap(\n action => mapGetOrder(action, dependency),\n (action, r) => [r]\n ),\n\n switchMap(([orderReponse]) => {\n const { order, channel } = orderReponse;\n const url =\n window.location !== window.parent.location\n ? document.referrer\n : document.location.href;\n const params = new URL(url).searchParams;\n const status = params.get('status');\n const diff = dateDiffDays(order.contracts[0].subscriptionDate);\n\n // Expired link if subscriptionDate > 7 days or status is 'success'\n const statuss =\n status !== 'success' &&\n (order.orderStatus === 'FINALIZED' ||\n order.orderStatus === 'FINALIZED_WITHOUT_DOC') &&\n (order.firstPaymentCBStatus === 'FINALIZED' || \n order.firstPaymentSlimCollectStatus === 'FINALIZED');\n\n if (diff > 7 || !statuss) {\n const getAction = {\n payload: {\n userType: order.customer.type,\n contracts: order.contracts,\n },\n };\n\n if (channel) {\n localStorage.setItem('channel', channel);\n }\n return forkJoin(\n of(order),\n mapGetPackages(getAction, dependency),\n mapGetProducts(getAction, dependency)\n ).pipe(\n catchError(error =>\n // Handle the error here or rethrow it if needed\n throwError({\n code: 2,\n message: 'Error get order',\n })\n )\n );\n }\n // Emit an error observable\n return throwError({\n code: 1,\n message: 'Error get order',\n });\n }),\n\n switchMap(([order, packageResponse, productResponse]) => {\n if (packageResponse.error && productResponse.error) {\n return of(\n getOrderFailure({\n error: 'Serveur répond avec erreur',\n })\n );\n }\n const payload = {\n order,\n products: productResponse.products || [],\n offers: productResponse.offers || [],\n packages: packageResponse.packagesList,\n prepaymentFrequencies: packageResponse.prepaymentFrequencies,\n autorizedBillingModes: packageResponse.autorizedBillingModes,\n };\n\n const moveInCheck = order.contracts.find(\n ({ deliveryPoint, billingModeCode }) =>\n deliveryPoint.process.type === 'MOVE_IN' &&\n billingModeCode !== 'CYCLICAL_BILLING'\n );\n if (moveInCheck !== undefined) {\n const energyTypes = order.contracts.reduce(\n (acc, curr) =>\n curr.billingModeCode !== 'CYCLICAL_BILLING'\n ? [...acc, curr.energy]\n : [...acc],\n []\n );\n\n return forkJoin(\n of(payload),\n ...energyTypes.map(energy => {\n const currContract = order.contracts.find(\n el => el.energy === energy\n );\n let fromDate = '';\n if (currContract && currContract.effectiveStartDate) {\n fromDate = moment(currContract.effectiveStartDate)\n .subtract(1, 'days')\n .format('YYYY-MM-DD');\n }\n\n const actionCalendar = {\n payload: {\n fromDate,\n userType: order.customer.type,\n offers: productResponse.offers || [],\n contracts: [\n {\n deliveryPoint: {\n state:\n currContract.deliveryPoint\n .state || '',\n meterType:\n currContract.deliveryPoint\n .meterType || '',\n smartMeterStatus:\n currContract.deliveryPoint\n .smartMeterStatus || '',\n deliveryStatus:\n currContract.deliveryPoint\n .deliveryStatus || '',\n },\n },\n ],\n },\n };\n\n return mapGetCalendarAndAppointment(\n actionCalendar,\n energy,\n dependency\n );\n })\n );\n }\n\n return forkJoin(of(payload));\n }),\n\n switchMap(([payload, calendarResponse, calendarResponseBiEnergy]) => {\n const { order } = payload;\n\n if (calendarResponse !== undefined) {\n let arr = [...calendarResponse];\n\n if (calendarResponseBiEnergy !== undefined)\n arr = [...arr, ...calendarResponseBiEnergy];\n const arrFlat = [].concat(arr);\n\n let isPaymentCB = false;\n\n let newContracts = order.contracts.reduce((acc, current) => {\n if (current.billingModeCode !== 'CYCLICAL_BILLING') {\n const findAppointment = arrFlat.find(\n el => el.energy === current.energy\n );\n\n const findDate = findAppointment.daysList.find(\n date => date.date === current.effectiveStartDate\n );\n if (findDate !== undefined && findDate.firstPaymentCB) {\n isPaymentCB = true;\n return [\n ...acc,\n { ...current, firstPaymentCB: true },\n ];\n }\n acc.push({\n ...removeFirstPaymentCBFromContract(current),\n });\n\n return acc;\n }\n acc.push({\n ...removeFirstPaymentCBFromContract(current),\n });\n\n return acc;\n }, []);\n\n if (newContracts.length === 2 && isPaymentCB) {\n newContracts = newContracts.map(contract =>\n contract.billingModeCode !== 'CYCLICAL_BILLING'\n ? {\n ...contract,\n firstPaymentCB: true,\n }\n : { ...contract }\n );\n }\n\n const newPayload = {\n ...payload,\n order: {\n ...order,\n contracts: newContracts,\n },\n };\n\n return of(getOrderSuccess(newPayload));\n }\n return of(getOrderSuccess(payload));\n }),\n catchError(error =>\n of(\n getOrderFailure({\n error: error.message,\n code: error.code,\n })\n )\n )\n );\n\nexport const mainScreenEpic = combineEpics(saveOrderEpic, getOrderEpic);\n","import { combineEpics, ofType } from 'redux-observable';\r\n\r\nimport { of, throwError } from 'rxjs';\r\nimport { catchError, mergeMap } from 'rxjs/operators';\r\n\r\nimport {\r\n SUMMARY_SCREEN_VALIDATE_SUCCESS,\r\n SUMMARY_SCREEN_CHANGE_OPTION,\r\n SUMMARY_SCREEN_CHANGE_OFFER,\r\n SUMMARY_SCREEN_CHANGE_OPTION_SUCCESS,\r\n SUMMARY_SCREEN_CHANGE_OPTION_FAILURE,\r\n SUMMARY_SCREEN_GET_SPONSOR,\r\n SUMMARY_SCREEN_GET_PARTNER,\r\n CHECK_CONTRACT_PAYMENT_CB,\r\n} from '../types';\r\nimport Config from '../../utils/config';\r\nimport { log } from '../../utils/logger';\r\nimport { controlBillingMode } from '../../utils/helpers';\r\n\r\nconst validateSummaryScreenSuccess = payload => ({\r\n type: SUMMARY_SCREEN_VALIDATE_SUCCESS,\r\n payload,\r\n});\r\n\r\nconst changeOffer = payload => ({\r\n type: SUMMARY_SCREEN_CHANGE_OFFER,\r\n payload,\r\n});\r\n\r\nconst changeProductOption = payload => ({\r\n type: SUMMARY_SCREEN_CHANGE_OPTION,\r\n payload,\r\n});\r\n\r\nconst changeProductOptionSuccess = payload => ({\r\n type: SUMMARY_SCREEN_CHANGE_OPTION_SUCCESS,\r\n payload,\r\n});\r\n\r\nconst changeProductOptionFailure = payload => ({\r\n type: SUMMARY_SCREEN_CHANGE_OPTION_FAILURE,\r\n payload,\r\n});\r\n\r\nconst getSponsor = payload => ({\r\n type: SUMMARY_SCREEN_GET_SPONSOR,\r\n payload,\r\n});\r\n\r\nconst getPartner = payload => ({\r\n type: SUMMARY_SCREEN_GET_PARTNER,\r\n payload,\r\n});\r\n\r\nconst checkContractPaymentCB = payload => ({\r\n type: CHECK_CONTRACT_PAYMENT_CB,\r\n payload,\r\n});\r\n\r\nconst preparePayloadGetOffer = ({\r\n contracts,\r\n chosenProducts,\r\n userType,\r\n ...payload\r\n}) => {\r\n const date = new Date().toISOString().split('T')[0];\r\n const modifiedContracts =\r\n contracts &&\r\n contracts.map(contract => {\r\n const chosenProduct =\r\n chosenProducts &&\r\n chosenProducts.find(p => p.energy === contract.energy);\r\n const {\r\n chosenPackages,\r\n cyclicBill,\r\n installmentFrequency,\r\n } = payload[contract.energy];\r\n const billingModeCode = controlBillingMode(\r\n cyclicBill,\r\n payload[contract.energy].billingModeCode\r\n );\r\n\r\n return {\r\n ...contract,\r\n installmentFrequency,\r\n billingModeCode,\r\n chosenProduct,\r\n chosenPackages: chosenPackages || [],\r\n effectiveStartDate: date,\r\n subscriptionDate: date,\r\n };\r\n });\r\n return {\r\n contracts: modifiedContracts,\r\n customerType: userType,\r\n };\r\n};\r\n\r\nconst mapGetOffer = (\r\n action,\r\n { apiRequest },\r\n callbackSuccess,\r\n callbackFailure\r\n) => {\r\n const payload = preparePayloadGetOffer(action.payload);\r\n const option = {\r\n path: '/getOffers',\r\n method: 'post',\r\n body: payload,\r\n };\r\n if (Config.FunctionName.getOffers) {\r\n option.lambda = {\r\n functionName: Config.FunctionName.getOffers,\r\n };\r\n }\r\n return apiRequest(option).pipe(\r\n mergeMap(response => {\r\n if (response.offers) {\r\n const { offers } = response;\r\n const result = {};\r\n ['EL', 'NG'].forEach(energy => {\r\n if (action.payload[energy]) {\r\n result[energy] = {\r\n offer:\r\n offers.find(offer => offer.energy === energy) ||\r\n {},\r\n installmentFrequency:\r\n action.payload[energy].installmentFrequency,\r\n cyclicBill: action.payload[energy].cyclicBill,\r\n chosenPackages:\r\n action.payload[energy].chosenPackages,\r\n packageID: action.payload[energy].packageID,\r\n billingModeCode:\r\n action.payload[energy].billingModeCode,\r\n };\r\n }\r\n });\r\n\r\n log({\r\n ...action.payload.logger,\r\n returnCode: '200',\r\n logMessage: null,\r\n serviceCalled: '/getOffers',\r\n statusAction: 'SUCCESS',\r\n });\r\n return of(\r\n callbackSuccess({\r\n ...result,\r\n offers,\r\n products: action.payload.products,\r\n energyType: action.payload.energyType,\r\n })\r\n );\r\n }\r\n const message = response.message || response.errorMessage;\r\n\r\n log({\r\n ...action.payload.logger,\r\n returnCode: response.code,\r\n logMessage: response.message,\r\n serviceCalled: '/getOffers',\r\n statusAction: 'FAILURE',\r\n });\r\n return throwError({ message });\r\n }),\r\n\r\n catchError(error =>\r\n of(\r\n callbackFailure({\r\n error: error.message,\r\n energyType: action.payload.energyType,\r\n })\r\n )\r\n )\r\n );\r\n};\r\n\r\nconst changeProductOptionEpic = (action$, state$, dependency) =>\r\n action$.pipe(\r\n ofType(SUMMARY_SCREEN_CHANGE_OPTION),\r\n mergeMap(action => {\r\n const chosenProducts =\r\n action.payload.products &&\r\n action.payload.products.filter(\r\n product =>\r\n product.productCode === action.payload.productCode\r\n );\r\n const modifiedAction = {\r\n ...action,\r\n payload: {\r\n ...action.payload,\r\n chosenProducts,\r\n },\r\n };\r\n return mapGetOffer(\r\n modifiedAction,\r\n dependency,\r\n changeProductOptionSuccess,\r\n changeProductOptionFailure\r\n );\r\n })\r\n );\r\n\r\nconst summaryScreenEpic = combineEpics(changeProductOptionEpic);\r\n\r\nexport {\r\n validateSummaryScreenSuccess,\r\n summaryScreenEpic,\r\n changeProductOption,\r\n changeProductOptionSuccess,\r\n changeProductOptionFailure,\r\n checkContractPaymentCB,\r\n changeOffer,\r\n getSponsor,\r\n getPartner,\r\n mapGetOffer,\r\n};\r\n","import firebase from 'firebase/app';\nimport 'firebase/analytics';\nimport config from '../config';\n\nconst { FirebaseConfig } = config;\n\nconst initFirebase = () => {\n if (!FirebaseConfig.apiKey) {\n console.error('Need auth for Firebase | Config not found');\n }\n if (typeof window !== 'undefined' && !firebase.apps.length) {\n firebase.initializeApp(FirebaseConfig);\n if ('measurementId' in FirebaseConfig) {\n firebase.analytics();\n }\n }\n};\n\nconst logEvent = (...props) => {\n try {\n firebase.analytics().logEvent(...props);\n } catch {\n console.log('firebase.analytics not found');\n }\n};\n\nconst logChannel = channel => {\n try {\n firebase.analytics().logEvent(`CH-${channel}`);\n } catch {\n console.log('firebase.analytics not found');\n }\n};\n\nconst logScreen = tag => {\n try {\n firebase.analytics().logEvent(`${tag}`);\n } catch {\n console.log('firebase.analytics not found');\n }\n};\n\nexport { initFirebase, logEvent, logChannel, logScreen };\n\nexport default firebase;\n","import React, { forwardRef } from 'react';\nimport './_SectionLayout.scss';\n\n/**\n *\n * @param step to draw on the top left buble (can be use to override style with clasnname 'section-layout-{stepNumber}' )\n * @returns\n */\nconst SectionLayout = forwardRef(\n ({ children, step, hidden, isModal = false }, ref) => (\n
\n )\n);\n\nexport default SectionLayout;\n","import React from 'react';\nimport {\n FontFamilyVariant,\n FontSizeVariant,\n FontWeightVariant,\n TypoVariant,\n} from '../../constants/enums';\nimport Typography from './Typography';\n\nfunction Title({\n titleFormatGowun,\n titleFormatLexand,\n className,\n icon,\n noGap = false,\n style = {},\n}) {\n return (\n
\n \n \n {titleFormatGowun}\n {' '}\n \n {titleFormatLexand}\n \n
\n {icon && (\n
\n \"icon\"{' '}\n
\n )}\n \n );\n}\n\nexport default Title;\n","import { combineEpics, ofType } from 'redux-observable';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { mapGetPackages } from '../PackageScreen/PackageScreen.actions';\r\n\r\nimport {\r\n SURVEY_SCREEN_VALIDATE,\r\n SURVEY_SCREEN_VALIDATE_SUCCESS,\r\n SURVEY_SCREEN_VALIDATE_FAILURE,\r\n SURVEY_SCREEN_LOAD,\r\n} from '../types';\r\n\r\nconst loadSurveyScreen = payload => ({\r\n type: SURVEY_SCREEN_LOAD,\r\n payload,\r\n});\r\n\r\nconst validateSurveyScreen = payload => ({\r\n type: SURVEY_SCREEN_VALIDATE,\r\n payload,\r\n});\r\n\r\nconst validateSurveyScreenSuccess = payload => ({\r\n type: SURVEY_SCREEN_VALIDATE_SUCCESS,\r\n payload,\r\n});\r\n\r\nconst validateSurveyScreenFailure = payload => ({\r\n type: SURVEY_SCREEN_VALIDATE_FAILURE,\r\n payload,\r\n});\r\n\r\nconst preparePayload = ({\r\n housingType,\r\n residenceType,\r\n area,\r\n inhabitantsNumber,\r\n heatingType,\r\n priceOption,\r\n userType,\r\n energyTypes,\r\n postalCode,\r\n city,\r\n netArea,\r\n missingEnergy,\r\n}) => {\r\n let energyList = [];\r\n if (missingEnergy) {\r\n energyList = missingEnergy.length === 0 ? energyTypes : missingEnergy;\r\n } else {\r\n energyList = energyTypes;\r\n }\r\n\r\n const survey = {\r\n energyList,\r\n housingType,\r\n residenceType,\r\n area,\r\n inhabitantsNumber,\r\n heatingType,\r\n rateOption: priceOption === '' ? 'UNKNOWN' : priceOption,\r\n address: {\r\n netArea,\r\n postalCode,\r\n townName: city,\r\n },\r\n };\r\n return {\r\n mode: 'SURVEY',\r\n customerType: userType,\r\n survey,\r\n };\r\n};\r\n\r\nconst validateSurveyScreenEpic = (action$, state$, dependency) =>\r\n action$.pipe(\r\n ofType(SURVEY_SCREEN_VALIDATE),\r\n mergeMap(action =>\r\n mapGetPackages(\r\n action,\r\n dependency,\r\n preparePayload,\r\n validateSurveyScreenSuccess,\r\n validateSurveyScreenFailure\r\n )\r\n )\r\n );\r\n\r\nconst surveyScreenEpic = combineEpics(validateSurveyScreenEpic);\r\n\r\nexport {\r\n preparePayload,\r\n validateSurveyScreen,\r\n validateSurveyScreenSuccess,\r\n validateSurveyScreenFailure,\r\n surveyScreenEpic,\r\n loadSurveyScreen,\r\n};\r\n","import { combineEpics, ofType } from 'redux-observable';\r\n\r\nimport { of, throwError, merge } from 'rxjs';\r\nimport { catchError, mergeMap } from 'rxjs/operators';\r\n\r\nimport { loadSurveyScreen } from '../SurveyScreen/SurveyScreen.actions';\r\nimport { mapGetOffer } from '../SummaryScreen/SummaryScreen.actions';\r\n\r\nimport {\r\n PACKAGE_SCREEN_VALIDATE,\r\n PACKAGE_SCREEN_VALIDATE_SUCCESS,\r\n PACKAGE_SCREEN_VALIDATE_FAILURE,\r\n} from '../types';\r\n\r\nimport WordingConstant from '../../utils/wording';\r\nimport { log } from '../../utils/logger';\r\nimport { getPointOfDeliveryLogger } from '../../utils/helpers';\r\nimport { changeCodeMode } from '../CodeScreen/CodeScreen.actions';\r\nimport { CodeScreenMode } from '../../constants/enums';\r\n\r\nconst WordingCodeScreenError = WordingConstant.CodeScreen;\r\nconst Wording = WordingConstant.Common;\r\n\r\nconst validatePackageScreen = payload => ({\r\n type: PACKAGE_SCREEN_VALIDATE,\r\n payload,\r\n});\r\n\r\nconst validatePackageScreenSuccess = payload => ({\r\n type: PACKAGE_SCREEN_VALIDATE_SUCCESS,\r\n payload,\r\n});\r\n\r\nconst validatePackageScreenFailure = payload => ({\r\n type: PACKAGE_SCREEN_VALIDATE_FAILURE,\r\n payload,\r\n});\r\n\r\nconst preparePayloadGetProduct = ({\r\n userType,\r\n energyTypes,\r\n contracts,\r\n ...payload\r\n }) => {\r\n const modifiedContracts = contracts.map(contract => {\r\n const { energy } = contract;\r\n const billing = {};\r\n\r\n if (payload[energy].cyclicBill) {\r\n billing.billingModeCode = Wording.billingModeCode.cyclic;\r\n } else if (payload[energy].billingModeCode !== undefined) {\r\n billing.billingModeCode = payload[energy].billingModeCode;\r\n } else {\r\n billing.billingModeCode = Wording.billingModeCode.schedule;\r\n }\r\n billing.installmentFrequency = payload[energy].installmentFrequency;\r\n return {\r\n ...contract,\r\n ...billing,\r\n };\r\n });\r\n return {\r\n contextOfUse: 'MARKET',\r\n customerType: userType,\r\n contracts: modifiedContracts,\r\n };\r\n};\r\n\r\nconst mapGetProducts = (action, { apiRequest }) => {\r\n const payload = preparePayloadGetProduct(action.payload);\r\n\r\n return apiRequest({\r\n path: '/getProducts',\r\n method: 'post',\r\n body: payload,\r\n }).pipe(\r\n mergeMap(response => {\r\n if (response.productsList) {\r\n const chosenProducts = response.productsList.filter(\r\n product => product.default,\r\n );\r\n const modifiedAction = {\r\n ...action,\r\n payload: {\r\n ...action.payload,\r\n chosenProducts,\r\n products: response.productsList,\r\n },\r\n };\r\n\r\n log({\r\n ...action.payload.logger,\r\n returnCode: '200',\r\n logMessage: null,\r\n serviceCalled: '/getProducts',\r\n statusAction: 'SUCCESS',\r\n });\r\n\r\n return mapGetOffer(\r\n modifiedAction,\r\n { apiRequest },\r\n validatePackageScreenSuccess,\r\n validatePackageScreenFailure,\r\n );\r\n }\r\n const message = response.message || response.errorMessage;\r\n\r\n log({\r\n ...action.payload.logger,\r\n returnCode: response.code,\r\n logMessage: response.message,\r\n serviceCalled: '/getProducts',\r\n statusAction: 'FAILURE',\r\n });\r\n return throwError({ message });\r\n }),\r\n catchError(error =>\r\n of(validatePackageScreenFailure({ error: error.message })),\r\n ),\r\n );\r\n};\r\n\r\nconst validatePackageScreenEpic = (action$, state$, dependency) =>\r\n action$.pipe(\r\n ofType(PACKAGE_SCREEN_VALIDATE),\r\n mergeMap(action => mapGetProducts(action, dependency)),\r\n );\r\n\r\nconst mapGetPackages = (\r\n action,\r\n { apiRequest },\r\n preparePayload,\r\n success,\r\n failure,\r\n) => {\r\n const payload = preparePayload(action.payload);\r\n const option = {\r\n path: '/getPackages',\r\n method: 'post',\r\n body: payload,\r\n };\r\n // if (Config.FunctionName.getPackages) {\r\n // option.lambda = {\r\n // functionName: Config.FunctionName.getPackages,\r\n // };\r\n // }\r\n\r\n return apiRequest(option).pipe(\r\n mergeMap(response => {\r\n const message = response.message || response.errorMessage;\r\n if (message) {\r\n const {\r\n energyList,\r\n customerIdentificationKey,\r\n } = getPointOfDeliveryLogger(payload.pointOfDeliveryList);\r\n\r\n log({\r\n ...action.payload.logger,\r\n energyList,\r\n customerIdentificationKey,\r\n customerType: payload.customerType,\r\n returnCode: response.code,\r\n logMessage: response.message,\r\n serviceCalled: '/getPackages',\r\n statusAction: 'FAILURE',\r\n });\r\n return throwError({ message });\r\n }\r\n const packages = response.packagesList;\r\n const isCyclicalOfferExist =\r\n response.autorizedBillingModes &&\r\n response.autorizedBillingModes.length > 1;\r\n\r\n if (action.payload.isFinal) {\r\n const { contracts } = action.payload;\r\n const modifiedContracts = response.contracts.map(contract => {\r\n const currentContract = contracts.find(\r\n c => c.energy === contract.energy,\r\n );\r\n\r\n const notNullEstimate = contract.estimates\r\n ? contract.estimates.find(es => es.quantity > 0)\r\n : false;\r\n\r\n const estimates = notNullEstimate\r\n ? contract.estimates\r\n : currentContract.estimates;\r\n return {\r\n ...contract,\r\n estimates,\r\n };\r\n });\r\n const modifiedAction = {\r\n ...action,\r\n payload: {\r\n ...action.payload,\r\n contracts: modifiedContracts,\r\n },\r\n };\r\n\r\n log({\r\n ...action.payload.logger,\r\n customerType: payload.customerType,\r\n returnCode: '200',\r\n logMessage: null,\r\n serviceCalled: '/getPackages',\r\n statusAction: 'SUCCESS',\r\n });\r\n\r\n return merge(\r\n mapGetProducts(modifiedAction, { apiRequest }),\r\n of(\r\n success({\r\n ...action.payload,\r\n packages,\r\n prepaymentFrequencies:\r\n response.prepaymentFrequencies,\r\n autorizedBillingModes:\r\n response.autorizedBillingModes,\r\n contracts: response.contracts,\r\n }),\r\n ),\r\n );\r\n }\r\n\r\n if (payload.pointOfDeliveryList) {\r\n const {\r\n energyList,\r\n customerIdentificationKey,\r\n } = getPointOfDeliveryLogger(payload.pointOfDeliveryList);\r\n\r\n log({\r\n ...action.payload.logger,\r\n energyList,\r\n customerIdentificationKey,\r\n customerType: payload.customerType,\r\n returnCode: '200',\r\n logMessage: null,\r\n serviceCalled: '/getPackages',\r\n statusAction: 'SUCCESS',\r\n });\r\n } else {\r\n const sendEnergyList = () => {\r\n if (payload.survey) {\r\n return payload.survey.energyList.length === 2\r\n ? 'EL/NG'\r\n : payload.survey.energyList[0];\r\n }\r\n return null;\r\n };\r\n log({\r\n ...action.payload.logger,\r\n customerType: payload.customerType,\r\n energyList: sendEnergyList(),\r\n returnCode: '200',\r\n logMessage: null,\r\n serviceCalled: '/getPackages',\r\n statusAction: 'SUCCESS',\r\n });\r\n }\r\n\r\n if (packages) {\r\n const { energyTypes } = action.payload;\r\n const myFilter = function(e) {\r\n return this.indexOf(e) < 0;\r\n };\r\n const array = energyTypes.filter(\r\n myFilter,\r\n packages.map(p => p.energy),\r\n );\r\n if (action.payload.isAlreadyClient === false) {\r\n if (response.contracts &&\r\n (!response.contracts.every(contract => contract.deliveryPoint.address.postalCode === action.payload.postalCodeCustomer)\r\n )) {\r\n const {\r\n energyList,\r\n customerIdentificationKey,\r\n } = getPointOfDeliveryLogger(payload.pointOfDeliveryList);\r\n\r\n log({\r\n ...action.payload.logger,\r\n energyList,\r\n customerIdentificationKey,\r\n customerType: payload.customerType,\r\n returnCode: response.code,\r\n logMessage: response.message,\r\n serviceCalled: '/getPackages',\r\n statusAction: 'FAILURE',\r\n });\r\n return throwError({ message: WordingCodeScreenError.inputError.errorNotSamePostalCode });\r\n\r\n }\r\n }\r\n let condition = false;\r\n if (\r\n !(\r\n action.payload.missingEnergy !== undefined &&\r\n action.payload.missingEnergy[0]\r\n )\r\n ) {\r\n condition = packages.length === 0 || array.length > 0;\r\n }\r\n\r\n if (condition && !action.payload.noModeChange) {\r\n return of(\r\n changeCodeMode({\r\n mode: CodeScreenMode.SIMULATION,\r\n }),\r\n loadSurveyScreen({\r\n ...action.payload,\r\n packages,\r\n contracts: response.contracts,\r\n missingEnergy: array,\r\n }),\r\n );\r\n }\r\n if (!action.payload.loadEstimate) {\r\n return of(\r\n changeCodeMode({\r\n mode: isCyclicalOfferExist\r\n ? CodeScreenMode.OFFERS\r\n : CodeScreenMode.END,\r\n }),\r\n success({\r\n ...action.payload,\r\n packages,\r\n prepaymentFrequencies:\r\n response.prepaymentFrequencies,\r\n autorizedBillingModes:\r\n response.autorizedBillingModes,\r\n contracts: response.contracts,\r\n }),\r\n );\r\n }\r\n return of(\r\n success({\r\n ...action.payload,\r\n packages,\r\n prepaymentFrequencies: response.prepaymentFrequencies,\r\n autorizedBillingModes: response.autorizedBillingModes,\r\n contracts: response.contracts,\r\n }),\r\n );\r\n }\r\n return of(\r\n changeCodeMode({\r\n mode: action.payload.noModeChange\r\n ? CodeScreenMode.END\r\n : CodeScreenMode.SIMULATION,\r\n }),\r\n loadSurveyScreen({\r\n ...action.payload,\r\n packages: [],\r\n contracts: response.contracts,\r\n }),\r\n );\r\n }),\r\n catchError(error =>\r\n of(\r\n failure({\r\n error: error.message,\r\n }),\r\n ),\r\n ),\r\n );\r\n};\r\n\r\nconst packageScreenEpic = combineEpics(validatePackageScreenEpic);\r\n\r\nexport {\r\n validatePackageScreen,\r\n validatePackageScreenSuccess,\r\n validatePackageScreenFailure,\r\n packageScreenEpic,\r\n mapGetPackages,\r\n};\r\n","import { combineEpics, ofType } from 'redux-observable';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { mapGetPackages } from '../PackageScreen/PackageScreen.actions';\r\n\r\nimport {\r\n CODE_SCREEN_VALIDATE,\r\n CODE_SCREEN_VALIDATE_SUCCESS,\r\n CODE_SCREEN_VALIDATE_FAILURE,\r\n CODE_SCREEN_RESET,\r\n FINAL_CODE_SCREEN_VALIDATE,\r\n FINAL_CODE_SCREEN_VALIDATE_SUCCESS,\r\n FINAL_CODE_SCREEN_VALIDATE_FAILURE,\r\n FINAL_CODE_SCREEN_VALIDATE_V2,\r\n CODE_SCREEN_MODE_UPDATE,\r\n RESET_FULL_CODE_SCREEN,\r\n} from '../types';\r\n\r\nconst resetFullCodeScreen = () => ({\r\n type: RESET_FULL_CODE_SCREEN,\r\n});\r\n\r\nconst changeCodeMode = payload => ({\r\n type: CODE_SCREEN_MODE_UPDATE,\r\n payload,\r\n});\r\n\r\nconst validateCodeScreen = payload => ({\r\n type: CODE_SCREEN_VALIDATE,\r\n payload,\r\n});\r\n\r\nconst validateCodeScreenSuccess = payload => ({\r\n type: CODE_SCREEN_VALIDATE_SUCCESS,\r\n payload,\r\n});\r\n\r\nconst validateCodeScreenFailure = payload => ({\r\n type: CODE_SCREEN_VALIDATE_FAILURE,\r\n payload,\r\n});\r\n\r\nconst validateFinalCodeScreen = payload => ({\r\n type: FINAL_CODE_SCREEN_VALIDATE,\r\n payload,\r\n});\r\n\r\nconst validateFinalCodeScreenSuccess = payload => ({\r\n type: FINAL_CODE_SCREEN_VALIDATE_SUCCESS,\r\n payload,\r\n});\r\n\r\nconst validateFinalCodeScreen_V2 = payload => ({\r\n type: FINAL_CODE_SCREEN_VALIDATE_V2,\r\n payload,\r\n});\r\n\r\nconst validateFinalCodeScreenFailure = payload => ({\r\n type: FINAL_CODE_SCREEN_VALIDATE_FAILURE,\r\n payload,\r\n});\r\n\r\nconst resetCodeScreen = payload => ({\r\n type: CODE_SCREEN_RESET,\r\n payload,\r\n});\r\n\r\nconst preparePayload = ({ userType, energyTypes, PDL, PCE, firstName, lastName, email }) => {\r\n const pointOfDeliveryList = energyTypes.map(energy => ({\r\n energy,\r\n reference: energy === 'EL' ? PDL : PCE,\r\n }));\r\n return {\r\n mode: 'POINT_OF_DELIVERY',\r\n customerType: userType,\r\n pointOfDeliveryList,\r\n firstName,\r\n lastName,\r\n email,\r\n };\r\n};\r\n\r\nconst validateCodeScreenEpic = (action$, state$, dependency) =>\r\n action$.pipe(\r\n ofType(CODE_SCREEN_VALIDATE),\r\n mergeMap(action =>\r\n mapGetPackages(\r\n action,\r\n dependency,\r\n preparePayload,\r\n validateCodeScreenSuccess,\r\n validateCodeScreenFailure\r\n )\r\n )\r\n );\r\n\r\nconst validateFinalCodeScreenEpic = (action$, state$, dependency) =>\r\n action$.pipe(\r\n ofType(FINAL_CODE_SCREEN_VALIDATE),\r\n mergeMap(action => {\r\n const modifiedAction = {\r\n ...action,\r\n payload: {\r\n ...action.payload,\r\n isFinal: true,\r\n },\r\n };\r\n\r\n return mapGetPackages(\r\n modifiedAction,\r\n dependency,\r\n preparePayload,\r\n validateFinalCodeScreenSuccess,\r\n validateFinalCodeScreenFailure\r\n );\r\n })\r\n );\r\n\r\nconst codeScreenEpic = combineEpics(\r\n validateCodeScreenEpic,\r\n validateFinalCodeScreenEpic\r\n);\r\n\r\nexport {\r\n resetFullCodeScreen,\r\n resetCodeScreen,\r\n validateCodeScreen,\r\n validateCodeScreenSuccess,\r\n validateCodeScreenFailure,\r\n codeScreenEpic,\r\n validateFinalCodeScreen,\r\n validateFinalCodeScreenSuccess,\r\n validateFinalCodeScreenFailure,\r\n validateFinalCodeScreen_V2,\r\n changeCodeMode,\r\n};\r\n","import React from 'react';\n\nimport DashLaneIcon from '../../assets/icons/ic-dash-lane.svg';\nimport Typography from '../Typography/Typography';\nimport { FontSizeVariant } from '../../constants/enums';\n\nimport './_DividerDashOr.scss';\n\nfunction DividerDashOr() {\n return (\n
\n \n ou\n \n
\n );\n}\n\nexport default DividerDashOr;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"fi-br-cross\",\n clipPath: \"url(#clip0_1516_10906)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M14.1209 12.9453L23.5605 3.50668C24.1465 2.92072 24.1465 1.9707 23.5605 1.38478C22.9745 0.798822 22.0245 0.798822 21.4386 1.38478L12 10.8244L2.56137 1.38478C1.97541 0.798822 1.02538 0.798822 0.43947 1.38478C-0.146443 1.97074 -0.14649 2.92077 0.43947 3.50668L9.87905 12.9453L0.43947 22.3839C-0.14649 22.9699 -0.14649 23.9199 0.43947 24.5058C1.02543 25.0917 1.97545 25.0918 2.56137 24.5058L12 15.0662L21.4386 24.5058C22.0245 25.0918 22.9745 25.0918 23.5605 24.5058C24.1464 23.9199 24.1464 22.9698 23.5605 22.3839L14.1209 12.9453Z\",\n fill: \"#E00A0A\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1516_10906\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"white\",\n transform: \"translate(0 0.945312)\"\n})));\n\nvar SvgIcRedCross = function SvgIcRedCross(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 25,\n viewBox: \"0 0 24 25\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIcRedCross, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ic-red-cross.920177d9.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\n\nimport CustomSelector from '../../components/CustomSelector/CustomSelector';\nimport Title from '../../components/Typography/Title';\nimport { CustomAccordion } from '../../components';\nimport Typography from '../../components/Typography/Typography';\nimport DividerDashOr from '../../components/DividerDashOr/DividerDashOr';\nimport { ReactComponent as RedCross } from '../../assets/icons/ic-red-cross.svg';\nimport { BillingMode } from '../../constants/enums';\nimport WordingConstant from '../../utils/wording.json';\n\nconst Wording = WordingConstant.PackageScreen;\n\nfunction OfferSelector({ packageState, onChange }) {\n const { autorizedBillingModes } = packageState;\n const [currentSelection, setCurrentSellection] = useState(null);\n\n const handleCurrentSelection = id => {\n setCurrentSellection(id);\n };\n\n useEffect(() => {\n if (currentSelection) onChange(currentSelection);\n }, [currentSelection]);\n\n let isCyclicDisabled = true;\n autorizedBillingModes.forEach(it => {\n if (it.billingModeCode === BillingMode.CYCLICAL_BILLING)\n isCyclicDisabled = false;\n });\n\n return (\n <>\n \n\n \n Je choisis{' '}\n \n le forfait Wekiwi\n \n \n ),\n },\n ]}\n />\n \n \n {Wording.about.description}\n \n \n {Wording.about.choiceText}\n \n
    \n
  • \n {Wording.about.packageDiscount.main}{' '}\n \n {Wording.about.packageDiscount.description}\n \n
  • \n
  • \n {Wording.about.digitalDiscount.main}{' '}\n \n {Wording.about.digitalDiscount.description}\n \n
  • \n
\n {Wording.about.descriptionBottom}\n \n {Wording.about.descriptionBottomBis}\n \n
\n \n\n \n Je choisis{' '}\n \n l’offre cyclique (facturation mensuelle ou\n bimestrielle)\n \n \n ),\n },\n ]}\n disabled={isCyclicDisabled}\n />\n \n \n {Wording.aboutCyclic.description.first}\n \n {Wording.aboutCyclic.description.bold}\n \n {Wording.aboutCyclic.description.second}\n \n \n {Wording.aboutCyclic.attention}\n \n
    \n
  • \n {Wording.aboutCyclic.point.main}{' '}\n \n {Wording.aboutCyclic.point.description}\n \n
  • \n
\n \n {isCyclicDisabled && (\n
\n \n\n \n Oups ! Le type de compteur que tu possèdes ne te permet\n pas de choisir l’offre cyclique...\n \n
\n )}\n \n );\n}\n\nconst mapStateToProps = state => ({\n packageState: state.packageReducer,\n});\n\nconst mapDispatchToProps = () => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OfferSelector);\n","import { Subject, of, from, throwError } from 'rxjs';\r\nimport {\r\n debounceTime,\r\n switchMap,\r\n distinctUntilChanged,\r\n mergeMap,\r\n catchError,\r\n} from 'rxjs/operators';\r\nimport { ajax } from 'rxjs/ajax';\r\nimport Config from './config';\r\nimport { filteredArrNoDuplicates } from './helpers';\r\nimport { log } from './logger';\r\n\r\nclass SearchService {\r\n constructor(tagLogger) {\r\n this.handleSearch$ = new Subject().pipe(debounceTime(100));\r\n this.tagLogger = tagLogger;\r\n }\r\n\r\n unsubscribe = () => {\r\n this.handleSearch$.unsubscribe();\r\n };\r\n\r\n search = term => {\r\n this.handleSearch$.next(term);\r\n };\r\n\r\n doSearch = term => {\r\n const settings = {\r\n url: `${Config.URL}/getTowns`,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': Config.ApiKey,\r\n },\r\n responseType: 'json',\r\n method: 'post',\r\n crossDomain: true,\r\n body: {\r\n postalCode: term,\r\n },\r\n };\r\n const promise = ajax(settings).pipe(\r\n catchError(({ message, code }) => {\r\n log({\r\n tag: this.tagLogger,\r\n returnCode: code,\r\n logMessage: message,\r\n serviceCalled: '/getTowns',\r\n statusAction: 'FAILURE',\r\n triggerButton: 'postal-code-input',\r\n });\r\n return throwError({ error: message });\r\n }),\r\n mergeMap(response => {\r\n if (response.response) {\r\n response.response = filteredArrNoDuplicates(\r\n response.response,\r\n 'townName'\r\n );\r\n\r\n response.response.sort((a, b) => {\r\n if (a.townName < b.townName) {\r\n return -1;\r\n }\r\n if (a.townName > b.townName) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n log({\r\n tag: this.tagLogger,\r\n returnCode: '200',\r\n logMessage: null,\r\n serviceCalled: '/getTowns',\r\n statusAction: 'SUCCESS',\r\n triggerButton: 'postal-code-input',\r\n });\r\n\r\n return of(\r\n response.response.map(res => ({\r\n code: res.postalCode,\r\n city: res.townName,\r\n netArea: res.netArea,\r\n }))\r\n );\r\n }\r\n return of([]);\r\n })\r\n );\r\n return from(promise);\r\n };\r\n\r\n getResults() {\r\n return this.handleSearch$.pipe(\r\n debounceTime(500),\r\n distinctUntilChanged(),\r\n switchMap(term => (term ? this.doSearch(term) : of([]))),\r\n catchError(() => of([]))\r\n );\r\n }\r\n}\r\n\r\nexport default SearchService;\r\n","import React from 'react';\nimport Typography from '../../components/Typography/Typography';\n\nconst style = (isChecked, width) => ({\n container: {\n width: '100%',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-evenly',\n alignItems: 'center',\n border: `4px solid ${isChecked ? '#FFF523' : '#FFF0'}`,\n borderRadius: '12px',\n gap: '8px',\n },\n image: {\n width,\n },\n});\n\nfunction SurveySelectorStyled({ imageSrc, text, isChecked, width = '130px' }) {\n const styles = style(isChecked, width);\n return (\n
\n
\n {text}\n {text}\n
\n );\n}\n\nexport default SurveySelectorStyled;\n","import React from 'react';\nimport Select from 'react-select';\nimport './_CustomSelectV2.scss';\n\nconst customStyles = {\n dropdownIndicator: provided => ({\n ...provided,\n display: 'none', // Pour masquer la flèche de droite\n }),\n};\nclass CustomSelectV2 extends React.Component {\n state = {\n isMenuOpen: false,\n firstRenderValue: false,\n };\n\n componentDidMount() {\n const { value } = this.props;\n if (value && value.value !== '' && value.value !== undefined) {\n this.setState({ firstRenderValue: value.value });\n }\n }\n\n render() {\n const {\n value,\n defaultValue,\n handleChange,\n options,\n placeholder,\n error,\n customClassName,\n isLocked,\n isLoading,\n inputValue,\n onFocus,\n onInputChange,\n halfSize,\n customSize,\n onBlur,\n style,\n hideArrow,\n } = this.props;\n const { isMenuOpen, firstRenderValue } = this.state;\n const current = options.find(option => option.value === defaultValue);\n const currentValue =\n firstRenderValue && value && firstRenderValue === value.value\n ? value\n : options.find(option => option.value === value) || current;\n let selectClasses = 'custom-select__selectV2';\n selectClasses += isMenuOpen ? ' custom-select__select--menuOpen' : '';\n selectClasses += halfSize ? ' custom-select__select--halfSize' : '';\n selectClasses += customSize ? ' custom-select__select--customSize' : '';\n\n return (\n \n this.setState({ isMenuOpen: true })}\n onMenuClose={() => this.setState({ isMenuOpen: false })}\n />\n\n {error && error !== '' && (\n

{error}

\n )}\n
\n );\n }\n}\n\nexport default CustomSelectV2;\n","import React from 'react';\r\nimport {\r\n CustomInput,\r\n // CustomRadio,\r\n ImageElement,\r\n CustomDropdownInput,\r\n} from '../../components';\r\nimport resources from '../../utils/resources';\r\nimport WordingConstant from '../../utils/wording.json';\r\nimport SurveySelectorStyled from './SurveySelectorStyled';\r\nimport Title from '../../components/Typography/Title';\r\nimport Typography from '../../components/Typography/Typography';\r\nimport CustomSelectV2 from '../../components/CustomSelect/CustomSelectV2';\r\nimport CustomSelector from '../../components/CustomSelector/CustomSelector';\r\n\r\nconst Wording = WordingConstant.SurveyScreen;\r\n\r\nconst SurveyContainer = ({\r\n fields: {\r\n city,\r\n postalCode,\r\n housingType,\r\n residenceType,\r\n heatingType,\r\n priceOption,\r\n area,\r\n inhabitantsNumber,\r\n },\r\n setting: { postalCodes, isLoadingPC, codeText, showError },\r\n handleToggle,\r\n handleSelect,\r\n handleInputCity,\r\n handleInputChangeAddressContainer,\r\n handleChangeDropdownSelect,\r\n onFocusDropdown,\r\n showPriceOption,\r\n condition,\r\n}) => {\r\n const renderSelectArea = () => {\r\n const {\r\n value: { start },\r\n } = Wording.area;\r\n const {\r\n value: { length },\r\n } = Wording.area;\r\n const {\r\n value: { step },\r\n } = Wording.area;\r\n const list = Array.from({ length }, (v, k) => {\r\n if (k === 0) {\r\n return { value: 20, label: '0 à 20', id: 20 };\r\n }\r\n const s = start + step * (k + 1) + 1;\r\n const ss = start + step * (k + 2);\r\n return { value: ss, label: `${s} à ${ss}`, id: ss };\r\n });\r\n return (\r\n handleSelect(option, 'area')}\r\n defaultId={area}\r\n placeholder=\"Surface en m²\"\r\n options={list}\r\n halfSize\r\n />\r\n );\r\n };\r\n\r\n const renderSelectInhabitants = () => {\r\n const {\r\n value: { start },\r\n } = Wording.inhabitantsNumber;\r\n const {\r\n value: { length },\r\n } = Wording.inhabitantsNumber;\r\n const {\r\n value: { step },\r\n } = Wording.inhabitantsNumber;\r\n const list = Array.from({ length }, (v, k) => {\r\n const s = start + step * k;\r\n return { value: s, label: `${s}`, id: s };\r\n });\r\n return (\r\n \r\n handleSelect(option, 'inhabitantsNumber')\r\n }\r\n defaultValue={inhabitantsNumber}\r\n placeholder={Wording.inhabitantsNumber.title}\r\n options={list}\r\n halfSize\r\n />\r\n );\r\n };\r\n\r\n const renderSelector = (\r\n { values },\r\n choiceType,\r\n handleClick,\r\n error,\r\n w,\r\n totalWidth = '70%'\r\n ) => (\r\n
\r\n \r\n
\r\n {values &&\r\n values.map(({ text, value, imageSrc, imageSrcOn }) => (\r\n \r\n }\r\n onClick={() => handleClick(value)}\r\n />\r\n ))}\r\n
\r\n {error && error !== '' && (\r\n

\r\n {error}\r\n

\r\n )}\r\n
\r\n \r\n );\r\n\r\n const renderRadio = ({ values }, option, handleCheck) => (\r\n <>\r\n \r\n handleCheck(v)}\r\n />\r\n \r\n //
\r\n //
\r\n //
\r\n // {values &&\r\n // values.map(({ id, text, value }, index) => (\r\n // handleCheck(value)}\r\n // />\r\n // ))}\r\n //
\r\n // {error && error !== '' && (\r\n //

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

\r\n // )}\r\n //
\r\n //
\r\n );\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n Notre simulation te permettra de trouver le forfait qui te\r\n correspond le mieux !\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n {renderSelector(\r\n Wording.housingType,\r\n housingType,\r\n e => handleToggle(e, 'housingType'),\r\n housingType === '' && showError ? Wording.error.mainText : null\r\n )}\r\n {renderSelector(\r\n Wording.residenceType,\r\n residenceType,\r\n e => handleToggle(e, 'residenceType'),\r\n residenceType === '' && showError\r\n ? Wording.error.mainText\r\n : null\r\n )}\r\n
\r\n {renderSelectArea()}\r\n {renderSelectInhabitants()}\r\n
\r\n {renderSelector(\r\n Wording.heatingType,\r\n heatingType,\r\n e => handleToggle(e, 'heatingType'),\r\n heatingType === '' && showError ? Wording.error.mainText : null,\r\n '60px',\r\n '82%'\r\n )}\r\n\r\n {showPriceOption &&\r\n renderRadio(\r\n Wording.priceOption,\r\n priceOption,\r\n e => handleToggle(e, 'priceOption'),\r\n priceOption === '' && showError\r\n ? Wording.error.mainText\r\n : null\r\n )}\r\n\r\n {showError &&\r\n !condition({\r\n city,\r\n postalCode,\r\n housingType,\r\n residenceType,\r\n heatingType,\r\n priceOption,\r\n area,\r\n inhabitantsNumber,\r\n }) && (\r\n

\r\n {Wording.error.bottomText}\r\n

\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default SurveyContainer;\r\n","import SurveyContainer from './SurveyContainer';\r\n\r\nexport default SurveyContainer;\r\n","import React, { createRef } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport SearchService from '../../utils/search';\r\n\r\nimport SurveyContainer from '../../containers/SurveyContainer';\r\nimport * as actions from './SurveyScreen.actions';\r\nimport Screen from '../screen';\r\nimport { areListEqual } from '../../utils/helpers';\r\nimport WordingConstant from '../../utils/wording.json';\r\nimport {\r\n TagLogger /* , TriggerButtonLogger */,\r\n TriggerButtonLogger,\r\n} from '../../utils/logger';\r\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\r\nimport { scrollToRefDelay } from '../../utils/scroll';\r\nimport { CustomButton } from '../../components';\r\n\r\nconst Wording = WordingConstant.SurveyScreen;\r\n\r\nexport class SurveyScreen extends React.Component {\r\n static navigationOptions = {\r\n nextScreen: Screen.PACKAGE,\r\n previousScreen: Screen.CODE,\r\n buttonNextTitle: Wording.nextButton,\r\n buttonPreviousTitle: Wording.previousButton,\r\n title: Wording.title,\r\n screenId: Screen.SURVEY,\r\n showSaveButton: false,\r\n step: 3,\r\n validate: () => {},\r\n disabled: () => {},\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const {\r\n surveyState,\r\n dataState: {\r\n common: { firstAddress },\r\n },\r\n summaryState: { contracts },\r\n } = props;\r\n\r\n this.myRef = createRef();\r\n this.state = {\r\n fields: {\r\n ...surveyState,\r\n city:\r\n surveyState.city === ''\r\n ? firstAddress.city\r\n : surveyState.city,\r\n postalCode:\r\n surveyState.postalCode === ''\r\n ? firstAddress.postalCode\r\n : surveyState.postalCode,\r\n },\r\n setting: {\r\n postalCodes: [],\r\n codeText: '',\r\n showError: false,\r\n currentContract: contracts.find(c => c.energy === 'EL'),\r\n },\r\n };\r\n\r\n this.searchService = new SearchService(TagLogger.SURVEY);\r\n }\r\n\r\n componentDidMount() {\r\n this.searchService.getResults().subscribe(res => {\r\n const { setting } = this.state;\r\n if (res.length > 0) {\r\n setting.postalCodes = res.map(dt => ({\r\n id: dt.code,\r\n label: `${dt.code} - - - ${dt.city}`,\r\n value: `${dt.code}__${dt.city}`,\r\n codeValue: dt.code,\r\n cityValue: dt.city,\r\n netAreaValue: dt.netArea,\r\n }));\r\n } else {\r\n setting.postalCodes = [];\r\n }\r\n setting.isLoadingPC = false;\r\n this.setState({ setting });\r\n });\r\n SurveyScreen.navigationOptions.validate = () => {\r\n const {\r\n fields,\r\n setting: { currentContract },\r\n } = this.state;\r\n\r\n if (\r\n currentContract &&\r\n Object.prototype.hasOwnProperty.call(\r\n currentContract,\r\n 'rateOption'\r\n )\r\n ) {\r\n fields.priceOption = currentContract.rateOption;\r\n }\r\n };\r\n\r\n // SurveyScreen.navigationOptions.disabled = () => {\r\n // const { setting } = this.state;\r\n // setting.showError = true;\r\n // this.setState({ setting });\r\n // };\r\n\r\n const { surveyState, isCurrentScreen } = this.props;\r\n this.handleCondition(surveyState);\r\n if (isCurrentScreen) scrollToRefDelay(this.myRef, 100);\r\n }\r\n\r\n componentDidUpdate() {\r\n const { fields } = this.state;\r\n this.handleCondition(fields);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.searchService.unsubscribe();\r\n }\r\n\r\n handleCondition = ({\r\n postalCode,\r\n city,\r\n housingType,\r\n residenceType,\r\n heatingType,\r\n priceOption,\r\n area,\r\n inhabitantsNumber,\r\n }) => {\r\n let condition =\r\n postalCode !== '' &&\r\n city !== '' &&\r\n housingType !== '' &&\r\n residenceType !== '' &&\r\n heatingType !== '' &&\r\n area !== '' &&\r\n inhabitantsNumber !== '';\r\n const {\r\n setCanGoNext,\r\n userState: { energyTypes },\r\n } = this.props;\r\n\r\n const {\r\n setting: { currentContract },\r\n } = this.state;\r\n\r\n if (\r\n !areListEqual(energyTypes, ['NG']) &&\r\n currentContract &&\r\n !Object.prototype.hasOwnProperty.call(currentContract, 'rateOption')\r\n ) {\r\n condition = condition && priceOption !== '';\r\n }\r\n\r\n if (setCanGoNext) {\r\n if (condition) setCanGoNext(true);\r\n else setCanGoNext(false);\r\n }\r\n\r\n return condition;\r\n };\r\n\r\n handleInputChangeAddressContainer = value => {\r\n const { setting } = this.state;\r\n setting.codeText = value.replace(/[^\\d ]/g, '');\r\n setting.isLoadingPC = true;\r\n const val = value.length > 5 ? value.substring(0, 4) : value;\r\n this.searchService.search(val);\r\n this.setState({ setting });\r\n };\r\n\r\n onFocusDropdown = () => {\r\n const { setting, fields } = this.state;\r\n if (fields.postalCode !== undefined) {\r\n setting.codeText = fields.postalCode.toString();\r\n this.setState({ setting });\r\n }\r\n };\r\n\r\n handleChangeDropdownSelect = object => {\r\n const { fields, setting } = this.state;\r\n const { codeValue, netAreaValue, cityValue } = object;\r\n fields.city = cityValue;\r\n fields.postalCode = codeValue;\r\n fields.netArea = netAreaValue;\r\n if (codeValue !== undefined) setting.codeText = codeValue.toString();\r\n setting.isLoadingPC = false;\r\n setting.postalCodes = [];\r\n this.setState({ fields, setting });\r\n };\r\n\r\n handleInputCity = e => {\r\n const { fields } = this.state;\r\n const { value } = e.target;\r\n fields.city = value;\r\n this.setState({ fields });\r\n };\r\n\r\n handleToggle = (value, type) => {\r\n const { fields } = this.state;\r\n if (fields[type] !== value) {\r\n fields[type] = value;\r\n this.setState({ fields });\r\n }\r\n };\r\n\r\n handleSelect = (selectedOption, type) => {\r\n const { fields } = this.state;\r\n if (selectedOption && fields[type] !== selectedOption.value) {\r\n fields[type] = selectedOption.value;\r\n this.setState({ fields });\r\n }\r\n };\r\n\r\n validate = () => {\r\n const {\r\n nextScreen,\r\n userState,\r\n validateSurveyScreenDispatch,\r\n packageState,\r\n } = this.props;\r\n const { fields } = this.state;\r\n validateSurveyScreenDispatch({\r\n ...fields,\r\n ...userState,\r\n missingEnergy: packageState.missingEnergy,\r\n logger: {\r\n tag: TagLogger.SURVEY,\r\n triggerButton: TriggerButtonLogger.VALIDATE_BTN,\r\n },\r\n });\r\n nextScreen();\r\n };\r\n\r\n render() {\r\n const { fields, setting } = this.state;\r\n const {\r\n userState: { energyTypes },\r\n canGoNext,\r\n loading,\r\n isCurrentScreen,\r\n } = this.props;\r\n const showPriceOption =\r\n areListEqual(energyTypes, ['NG']) ||\r\n (setting.currentContract &&\r\n Object.prototype.hasOwnProperty.call(\r\n setting.currentContract,\r\n 'rateOption'\r\n ));\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n
\r\n {isCurrentScreen && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n userState: state.userReducer,\r\n surveyState: state.surveyReducer,\r\n packageState: state.packageReducer,\r\n summaryState: state.summaryReducer,\r\n dataState: state.dataReducer,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n validateSurveyScreenDispatch: payload =>\r\n dispatch(actions.validateSurveyScreen(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SurveyScreen);\r\n","import SurveyScreen from './SurveyScreen';\r\n\r\nexport default SurveyScreen;\r\n","import React, { createRef } from 'react';\nimport { connect } from 'react-redux';\n\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport Screen from '../../screens/screen';\nimport Title from '../../components/Typography/Title';\nimport Typography from '../../components/Typography/Typography';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport LabeledInput from '../../components/LabeledInput/LabeledInput';\nimport { CustomButton, CustomCheckbox } from '../../components';\nimport { CheckBoxVariant } from '../../components/CustomCheckbox/CustomCheckbox';\nimport {\n BillingMode,\n CodeScreenMode,\n FontSizeVariant,\n} from '../../constants/enums';\nimport './_CodeContainer.scss';\nimport WordingConstant from '../../utils/wording.json';\nimport { handleConditionPDLPCE } from '../../utils/helpers';\nimport {\n changeCodeMode,\n validateCodeScreen,\n resetFullCodeScreen,\n} from '../../screens/CodeScreen/CodeScreen.actions';\nimport DividerDashOr from '../../components/DividerDashOr/DividerDashOr';\nimport OfferSelector from './OfferSelector';\nimport { validatePackageScreen } from '../../screens/PackageScreen/PackageScreen.actions';\nimport { TagLogger, TriggerButtonLogger } from '../../utils/logger';\nimport SurveyScreen from '../../screens/SurveyScreen';\n\nconst Wording = WordingConstant.CodeScreen;\n\nconst energyWording = (path, energyTypes) => {\n const isBoth = energyTypes.length === 2;\n return isBoth ? Wording[path].ELNG : Wording[path][energyTypes[0]];\n};\n\nclass CodeContainerV2 extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.CODE,\n previousScreen: Screen.SUMMARY,\n buttonNextTitle: '',\n buttonPreviousTitle: '',\n title: '',\n screenId: Screen.DATA,\n step: 3,\n validate: () => {},\n disabled: () => {},\n returnButton: () => {},\n saveData: () => {},\n checkFirstModuleCondition: () => {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n EL: '',\n NG: '',\n rgpd: false,\n errorFields: {\n EL: undefined,\n NG: undefined,\n },\n showError: true,\n offerSelection: BillingMode.PAYMENT_SCHEDULE,\n };\n this.myRef = createRef();\n this.myRefOffers = createRef();\n this.checkFirstModuleCondition = this.checkFirstModuleCondition.bind(\n this\n );\n this.validate = this.validate.bind(this);\n }\n\n componentDidUpdate() {\n const {\n codeState: { currentMode },\n nextScreen,\n isCurrentScreen,\n changeCodeModeDispatch,\n summaryState: { contracts },\n dataState: {\n common: { firstAddress },\n logingInformation: { accessToken },\n },\n userState: { energyTypes },\n } = this.props;\n const state = this.state;\n const fakeEvent = new Event('click');\n const dynamicNextScreen =\n state.offerSelection === BillingMode.PAYMENT_SCHEDULE ? 3 : 4;\n \n if (currentMode === CodeScreenMode.END && isCurrentScreen)\n nextScreen(fakeEvent, dynamicNextScreen);\n contracts.forEach(contract => {\n if (\n contract.deliveryPoint.address &&\n contract.deliveryPoint.address.postalCode !== firstAddress.postalCode &&\n currentMode !== CodeScreenMode.NONE &&\n !accessToken\n ) {\n energyTypes.forEach(it => {\n if (state[it] !== '') {\n changeCodeModeDispatch({ mode: CodeScreenMode.NONE });\n }\n });\n }\n });\n }\n\n componentDidMount() {\n CodeContainerV2.navigationOptions.validate = this.validate;\n const {\n isCurrentScreen,\n setCanGoNext,\n changeCodeModeDispatch,\n codeState,\n } = this.props;\n const { currentMode } = codeState;\n this.setState({\n EL: codeState.PDL,\n NG: codeState.PCE,\n });\n setCanGoNext(false);\n if (currentMode === CodeScreenMode.END)\n changeCodeModeDispatch({ mode: CodeScreenMode.NONE });\n if (\n isCurrentScreen &&\n (currentMode === CodeScreenMode.NONE ||\n currentMode === CodeScreenMode.END)\n )\n scrollToRefDelay(this.myRef, 200);\n }\n\n saveData = offerId => {\n const {\n userState: { userType, energyTypes },\n summaryState: { contracts },\n validatePackageScreenDispatch,\n setCanGoNext,\n changeCodeModeDispatch,\n } = this.props;\n let payload = {\n userType,\n energyTypes,\n contracts,\n logger: {\n tag: TagLogger.PACKAGE,\n triggerButton: TriggerButtonLogger.VALIDATE_BTN,\n },\n };\n const eneryField = {\n cyclicBill: offerId === BillingMode.CYCLICAL_BILLING,\n packageID: '',\n chosenPackages: [],\n installmentFrequency: '',\n };\n\n this.setState({\n offerSelection: offerId,\n });\n\n payload = Object.assign(\n {},\n payload,\n ...energyTypes.map(it => ({ [it]: eneryField }))\n );\n setCanGoNext(true);\n validatePackageScreenDispatch(payload);\n changeCodeModeDispatch({ mode: CodeScreenMode.END });\n };\n\n validate = (postalCodeCustomer) => {\n const {\n codeState: { currentMode },\n validateCodeScreenDispatch,\n userState: { userType, energyTypes },\n dataState: { common: {email, name, surname}, logingInformation: {validated} },\n isCurrentScreen,\n resetScreenTo,\n } = this.props;\n if (!isCurrentScreen) resetScreenTo();\n this.setState({ showError: true });\n const { EL, NG } = this.state;\n if (currentMode === CodeScreenMode.NONE)\n validateCodeScreenDispatch({\n PDL: EL,\n PCE: NG,\n energyTypes,\n userType,\n postalCodeCustomer,\n firstName: name,\n lastName: surname,\n email,\n isAlreadyClient: validated,\n });\n if (currentMode === CodeScreenMode.SIMULATION)\n SurveyScreen.navigationOptions.validate();\n if (currentMode === CodeScreenMode.END) return true;\n\n return false;\n };\n\n checkFirstModuleCondition() {\n const { rgpd, EL, NG } = this.state;\n const {\n userState: { energyTypes },\n } = this.props;\n const isBoth = energyTypes.length === 2;\n if (isBoth)\n return (\n rgpd && handleConditionPDLPCE(EL) && handleConditionPDLPCE(NG)\n );\n return (\n rgpd &&\n ((energyTypes[0] === 'EL' && handleConditionPDLPCE(EL)) ||\n (energyTypes[0] === 'NG' && handleConditionPDLPCE(NG)))\n );\n }\n\n handleSimilationValidate = state => {\n const { setCanGoNext } = this.props;\n setCanGoNext(state);\n };\n\n onClickButtonSimulation = () => {\n const {\n changeCodeModeDispatch,\n resetFullCodeScreenDispatch,\n isCurrentScreen,\n resetScreenTo,\n } = this.props;\n if (!isCurrentScreen) resetScreenTo();\n resetFullCodeScreenDispatch();\n changeCodeModeDispatch({ mode: CodeScreenMode.SIMULATION });\n };\n\n handleChange = (field, value) => {\n const {\n resetScreenTo,\n isCurrentScreen,\n codeState: { currentMode },\n changeCodeModeDispatch,\n } = this.props;\n const optionalSetter = {};\n let cleanValue = value;\n if (field === 'EL' || field === 'NG') {\n if (cleanValue !== undefined) {\n const regex = /\\D|\\d{15,}/g;\n const tmp = regex.test(cleanValue);\n if (tmp) cleanValue = cleanValue.slice(0, -1);\n }\n optionalSetter.errorFields = {\n [`${field}Error`]: !handleConditionPDLPCE(cleanValue),\n };\n }\n if (currentMode !== CodeScreenMode.NONE) {\n changeCodeModeDispatch({ mode: CodeScreenMode.NONE });\n }\n\n this.setState({\n [field]: cleanValue,\n ...optionalSetter,\n });\n\n if (!isCurrentScreen) resetScreenTo();\n };\n\n render() {\n const {\n userState: { energyTypes },\n codeState,\n isCurrentScreen,\n canGoNext,\n nextScreen,\n summaryState: { contracts },\n dataState: {\n common: { firstAddress },\n logingInformation: { accessToken },\n },\n mainState,\n isModalOpen,\n } = this.props;\n const { rgpd, errorFields, showError } = this.state;\n const { currentMode } = codeState;\n const state = this.state;\n let bakcendError = null;\n if (mainState && mainState.errorFrom === 'CODE_SCREEN_VALIDATE_FAILURE')\n bakcendError = mainState.error;\n if (currentMode === CodeScreenMode.OFFERS) {\n scrollToRefDelay(this.myRefOffers, 100);\n }\n let postalCodeError = false;\n contracts.forEach(contract => {\n if (\n contract.deliveryPoint.address &&\n contract.deliveryPoint.address.postalCode !==\n firstAddress.postalCode &&\n !accessToken\n ) {\n errorFields[contract.energy] =\n Wording.inputError.errorNotSamePostalCode;\n postalCodeError = true\n } else {\n errorFields[contract.energy] = undefined;\n }\n });\n if (!postalCodeError) {\n energyTypes.forEach(it => {\n if (bakcendError) {\n if (currentMode === CodeScreenMode.NONE) {\n errorFields[it] = bakcendError;\n } else {\n errorFields[it] = undefined;\n }\n }\n });\n }\n\n const titleFormatted = energyWording('codeTitle', energyTypes);\n const noCodeFormatted = energyWording('noCodeTitle', energyTypes);\n const noCodeSubFormatted = energyWording('noCodeSubTitle', energyTypes);\n const subTitleFormatted = energyWording('codeSubTitle', energyTypes);\n\n return (\n <>\n
\n \n \n \n {subTitleFormatted}\n \n
\n {energyTypes.map(it => (\n this.handleChange(it, v)}\n onFocus={() =>\n this.setState({ showError: false })\n }\n type=\"text\"\n />\n ))}\n
\n this.handleChange('rgpd', v)}\n >\n \n J’autorise expressément Wekiwi à récupérer auprès des gestionnaires des réseaux ma puissance souscrite et mon option tarifaire, mon historique de consommation (CAR) ainsi que mon profil et mon tarif, nécessaires à l'exécution de mon contrat, ainsi que mes données de consommation annuelles (si je suis équipé d'un compteur communicant - type Linky et Gazpar) me permettant de bénéficier d’un meilleur suivi de consommation. Cette autorisation prend effet aujourd'hui et durera pour les sept prochains jours afin de te permettre de finaliser ta souscription plus tard. Si tu ne finalises pas ta souscription, ces données ne seront pas sauvegardées.\n \n \n this.validate(firstAddress.postalCode)}\n />\n\n \n\n \n \n Si tu n’as pas accès à {noCodeSubFormatted}{' '}\n immédiatement, simule ta consommation afin d’avoir une\n estimation des forfaits qui te correspondraient au\n mieux.\n \n \n \n {currentMode === CodeScreenMode.OFFERS && (\n <>\n
\n \n \n \n \n )}\n {currentMode === CodeScreenMode.SIMULATION && (\n \n )}\n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n userState: state.userReducer,\n packageState: state.packageReducer,\n summaryState: state.summaryReducer,\n dataState: state.dataReducer,\n codeState: state.codeReducer,\n mainState: state.mainReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validateCodeScreenDispatch: payload =>\n dispatch(validateCodeScreen(payload)),\n validatePackageScreenDispatch: payload =>\n dispatch(validatePackageScreen(payload)),\n changeCodeModeDispatch: payload => dispatch(changeCodeMode(payload)),\n resetFullCodeScreenDispatch: () => dispatch(resetFullCodeScreen()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CodeContainerV2);\n","import { throwError } from 'rxjs';\r\nimport { ajax } from 'rxjs/ajax';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport Lambda from 'aws-sdk/clients/lambda';\r\n\r\nimport Config from './config';\r\nimport Wording from './wording.json';\r\nimport { log, getInitialChannel, checkPathOrder } from './helpers';\r\n\r\nimport { log as logger } from './logger';\r\nimport Screen from '../screens/screen';\r\n\r\nexport const invokeLambda = (lambda, payload) => {\r\n const lambdaInstance = new Lambda(Config.LamdaConfig);\r\n\r\n log(`lambda ${lambda.functionName}: payload ====>`, payload);\r\n\r\n return new Promise((resolve, reject) => {\r\n lambdaInstance.invoke(\r\n {\r\n FunctionName: lambda.functionName,\r\n Payload: JSON.stringify(payload),\r\n InvocationType: 'RequestResponse',\r\n LogType: 'None',\r\n },\r\n (err, res) => {\r\n if (err) {\r\n const error = {\r\n ajaxError: 'lambda',\r\n code: err.code,\r\n message: err.message,\r\n };\r\n log(\r\n `Error from lambda ${lambda.functionName} ====> `,\r\n error\r\n );\r\n\r\n logger({\r\n returnCode: error.code,\r\n logMessage: error.message,\r\n serviceCalled: lambda.functionName,\r\n statusAction: 'LAMBDA FAILURE',\r\n });\r\n\r\n reject(error);\r\n } else {\r\n const response = JSON.parse(res.Payload);\r\n log(\r\n `lambda ${lambda.functionName}: response ====>`,\r\n response\r\n );\r\n resolve(response);\r\n }\r\n }\r\n );\r\n });\r\n};\r\n\r\nexport const apiRequest = ({\r\n token,\r\n path,\r\n method,\r\n body,\r\n isLocal,\r\n lambda,\r\n urlOverride,\r\n}) => {\r\n const modifiedBody = {\r\n ...body,\r\n channel: 'WEB',\r\n seller: 'WEKIWI',\r\n };\r\n const channel = localStorage.getItem('channel');\r\n\r\n if (channel) {\r\n modifiedBody.channel = checkPathOrder(path)\r\n ? channel.trim()\r\n : getInitialChannel(channel.trim());\r\n }\r\n\r\n if (lambda) {\r\n // return from(invokeLambda(lambda, modifiedBody));\r\n }\r\n\r\n const url = isLocal ? Config.URL_LOCAL : Config.URL;\r\n\r\n const settings = {\r\n method,\r\n url: `${urlOverride || url}${path}`,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': Config.ApiKey,\r\n },\r\n responseType: 'json',\r\n crossDomain: true,\r\n body: modifiedBody,\r\n };\r\n\r\n\r\n if (token) {\r\n settings.headers.Authorization = `Bearer ${token}`;\r\n }\r\n\r\n return ajax(settings).pipe(\r\n catchError(({ message, response, status }) => {\r\n const error = {\r\n ajaxError: message,\r\n code: status,\r\n message: Wording.Common.errorAjax,\r\n };\r\n if (response) {\r\n error.code = response.code;\r\n error.message = response.message;\r\n }\r\n log(`Error from API ${path} ====> `, error);\r\n return throwError(error);\r\n }),\r\n map(({ response }) => {\r\n return response;\r\n })\r\n );\r\n};\r\n\r\nexport const searchAppointmentTimeslot = async (date, energy) => {\r\n let day = date.getDate();\r\n day = `${day < 10 ? `0${day}` : day}`;\r\n let month = date.getMonth();\r\n month = `${month + 1 < 10 ? `0${month + 1}` : month + 1}`;\r\n const data = {\r\n date: `${date.getFullYear()}-${month}-${day}`,\r\n energy,\r\n };\r\n try {\r\n const res = await fetch(`${Config.URL}/getAppointmentTimeslot`, {\r\n method: 'POST',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': Config.ApiKey,\r\n },\r\n body: JSON.stringify(data),\r\n });\r\n const response = await res.json();\r\n logger({\r\n tag: Screen.DATA,\r\n returnCode: '200',\r\n logMessage: null,\r\n serviceCalled: '/getAppointmentTimeslot',\r\n statusAction: 'SUCCESS',\r\n triggerButton: 'select-date',\r\n });\r\n const ts = response.timeslots;\r\n if (ts) {\r\n return ts;\r\n }\r\n throw res.message || { message: 'Service indisponible' };\r\n } catch (error) {\r\n log(`Error from API /getAppointmentTimeslot ====> `, error);\r\n\r\n logger({\r\n tag: Screen.DATA,\r\n returnCode: error.code,\r\n logMessage: error.message,\r\n serviceCalled: '/getOffers',\r\n statusAction: 'FAILURE',\r\n triggerButton: 'select-date',\r\n });\r\n return [];\r\n }\r\n};\r\n\r\nexport const searchSiret = async value => {\r\n try {\r\n const res = await fetch(`${Config.URL_GET_SIRET}/${value}`, {\r\n method: 'GET',\r\n headers: {\r\n Accept: 'application/json',\r\n 'X-INSEE-Api-Key-Integration': '151030f0-5b98-478c-9030-f05b98478c14',\r\n },\r\n });\r\n if (res.status) {\r\n const response = await res.json();\r\n return {\r\n ...response,\r\n status: res.status,\r\n };\r\n }\r\n throw res.message || { message: 'Service indisponible' };\r\n } catch (error) {\r\n log(`Error from API /getSiret ====> `, error);\r\n return null;\r\n }\r\n};\r\n\r\nexport default apiRequest;\r\n","import React, { createRef } from 'react';\nimport { connect } from 'react-redux';\n\nimport accents from 'remove-accents';\nimport Screen from '../screen';\nimport SearchService from '../../utils/search';\nimport * as actions from './DataScreen.actions';\nimport * as helpers from '../../utils/helpers';\nimport Config from '../../utils/config';\nimport { searchSiret, searchAppointmentTimeslot } from '../../utils/apiRequest';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport Title from '../../components/Typography/Title';\nimport Typography from '../../components/Typography/Typography';\nimport LabeledInput from '../../components/LabeledInput/LabeledInput';\nimport CustomSelectV2 from '../../components/CustomSelect/CustomSelectV2';\nimport CustomButton from '../../components/CustomButton/CustomButton';\nimport CustomDate from '../../components/CustomDate';\nimport './_DataScreen.scss';\nimport WordingConstant from '../../utils/wording.json';\nimport { renderValueDate } from '../../components/CustomDate/CustomDate';\nimport { TagLogger, TriggerButtonLogger } from '../../utils/logger';\nimport { logScreen } from '../../utils/firebase';\nimport { SituationTypes, BillingMode } from '../../constants/enums';\nimport countries from '../../utils/countries.json';\nimport CustomToggleV2 from '../../components/CustomToggle/CustomToggleV2';\nimport { validateCodeScreen } from '../CodeScreen/CodeScreen.actions';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport { validateSurveyScreen } from '../SurveyScreen/SurveyScreen.actions';\n\n\nconst countriesOptions = countries.map(cntr => ({\n value: cntr.name.toUpperCase(),\n label: `${cntr.name}`,\n id: `${cntr.name}`,\n}));\n\nconst Wording = WordingConstant.DataScreen;\nconst UserScreenWording = WordingConstant.UserScreen;\nconst CodeScreenWording = WordingConstant.CodeScreen;\nconst AddressContainerWording = WordingConstant.AddressContainer;\n\nexport class DataScreen extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.FINALSUMMARY,\n previousScreen: Screen.SUMMARY,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n screenId: Screen.DATA,\n step: 6,\n validate: () => {},\n disabled: () => {},\n returnButton: () => {},\n saveData: () => {},\n };\n\n constructor(props) {\n super(props);\n const {\n dataState,\n summaryState: { contracts },\n } = props;\n const { address } = contracts[0].deliveryPoint;\n let currentAddress;\n const { common, part } = dataState;\n if (address && address.address) {\n let fullAddress = `${address.street || ''}`;\n if (address.number) {\n fullAddress = `${address.number} ${fullAddress}`;\n }\n currentAddress = {\n address: fullAddress,\n postalCode: address.postalCode || '',\n city: address.townName || '',\n netArea: address.netArea,\n };\n } else {\n currentAddress = common.address;\n }\n const checkedNewAddress =\n common.newAddress &&\n (common.newAddress.address ||\n common.newAddress.postalCode ||\n common.newAddress.city);\n const checkedAddCoOwner =\n part.coOwner &&\n (part.coOwner.firstName !== '' || part.coOwner.lastName !== '');\n const checkedNewBillingAddress =\n common.newBillingAddress &&\n (common.newBillingAddress.name ||\n common.newBillingAddress.surname ||\n common.newBillingAddress.address ||\n common.newBillingAddress.postalCode ||\n common.newBillingAddress.city);\n\n this.state = {\n fields: {\n ...dataState,\n common: {\n ...dataState.common,\n address: currentAddress,\n },\n },\n EL: '',\n NG: '',\n nonExistingForm: {},\n setting: {\n checkedAddCoOwner,\n checkedNewAddress: checkedNewAddress !== null,\n checkedNewBillingAddress:\n checkedNewBillingAddress !== null &&\n checkedNewBillingAddress !== '',\n postalCodes: [],\n isLoadingPC: false,\n codeText: '',\n codeNewAddressText: '',\n codeNewBillingAddressText: '',\n codeBirthTown: '',\n checkError: {\n birthdate: false,\n birthCountry: false,\n birthPostalCode: false,\n birthCity: false,\n SIRET: false,\n APECode: false,\n socialReason: false,\n legalForm: false,\n },\n showError: false,\n showEmailError: false,\n showBottomText: false,\n validSiret: null,\n resetEstimate: false,\n },\n errorFields: {\n EL: undefined,\n NG: undefined,\n },\n };\n\n this.searchService = new SearchService(TagLogger.DATA);\n this.myRef = createRef();\n }\n\n componentDidMount() {\n logScreen(TagLogger.DATA);\n\n this.initBirthCountry();\n scrollToRefDelay(this.myRef, 200);\n\n const { setting, fields } = this.state;\n\n const {\n validateDataScreenDispatch,\n validateDataScreenFinalDispatch,\n userState: { energyTypes },\n codeState: { PDL, PCE },\n dataState,\n } = this.props;\n this.searchService.getResults().subscribe(res => {\n if (res.length > 0) {\n setting.postalCodes = res.map(dt => ({\n id: dt.code,\n label: `${dt.code} - - - ${dt.city}`,\n value: `${dt.code}__${dt.city}`,\n codeValue: dt.code,\n cityValue: dt.city,\n netAreaValue: dt.netArea,\n }));\n } else {\n setting.postalCodes = [];\n }\n setting.isLoadingPC = false;\n this.setState({ setting });\n });\n // DataScreen.navigationOptions.validate = this.handleCondition;\n DataScreen.navigationOptions.validate = () => {\n const modifiedFields = {\n ...this.prepareField(fields),\n logger: {\n tag: TagLogger.DATA,\n triggerButton: TriggerButtonLogger.VALIDATE_BTN,\n },\n };\n const reducer = (accumulator, currentValue) =>\n accumulator &&\n (currentValue === 'EL' ? PDL.length === 0 : PCE.length === 0);\n const condition = energyTypes.reduce(reducer, true);\n if (condition) {\n return validateDataScreenFinalDispatch(modifiedFields);\n }\n return validateDataScreenDispatch(modifiedFields);\n };\n\n DataScreen.navigationOptions.disabled = () => {\n setting.showError = true;\n this.setState({ setting });\n };\n\n DataScreen.navigationOptions.returnButton = () => {\n const { dataScreenSaveCommonDispatch } = this.props;\n dataScreenSaveCommonDispatch({ ...fields.common });\n };\n\n DataScreen.navigationOptions.saveData = () => {\n if (this.handleCondition()) {\n const { userState, summaryState, paymentState } = this.props;\n return {\n ...userState,\n ...fields,\n ...summaryState,\n ...paymentState,\n logger: {\n tag: TagLogger.DATA,\n triggerButton: TriggerButtonLogger.SAVE_BTN,\n },\n };\n }\n setting.showError = true;\n this.setState({ setting });\n return null;\n };\n\n this.handleCondition();\n\n const {\n userState,\n fetchCalendarAppointmentDispatch,\n summaryState,\n } = this.props;\n fetchCalendarAppointmentDispatch({\n ...userState,\n ...summaryState,\n });\n\n const { common } = dataState;\n\n energyTypes.forEach(energy => {\n if (common.dateContract[energy].timeslot) {\n const newDate = new Date(\n common.dateContract[energy].year,\n common.dateContract[energy].month,\n common.dateContract[energy].date\n );\n this.sendRequestTimeslot(newDate, energy);\n }\n });\n\n if (fields.pro.SIRET) {\n const identificationNumber = fields.pro.SIRET.replace(\n /[^\\d ]/g,\n ''\n );\n if (identificationNumber.length === 14) {\n this.searchSiretRequest(identificationNumber);\n }\n }\n }\n\n componentDidUpdate() {\n this.handleCondition();\n }\n\n componentWillUnmount() {\n this.searchService.unsubscribe();\n }\n\n prepareField = fields => {\n const {\n setting: {\n checkedAddCoOwner,\n checkedNewAddress,\n checkedNewBillingAddress,\n },\n } = this.state;\n const {\n userState: { energyTypes },\n } = this.props;\n const modifiedFields = { ...fields, energyTypes };\n\n if (!checkedAddCoOwner) {\n modifiedFields.part = {\n coOwner: {\n civility: 'MR',\n firstName: '',\n lastName: '',\n },\n };\n }\n if (!checkedNewAddress) {\n modifiedFields.common.newAddress = {\n address: null,\n postalCode: null,\n city: null,\n netArea: null,\n };\n }\n if (!checkedNewBillingAddress) {\n modifiedFields.common.newBillingAddress = {\n civility: 'MR',\n name: null,\n surname: null,\n address: null,\n postalCode: null,\n city: null,\n netArea: null,\n };\n }\n return modifiedFields;\n };\n\n initBirthCountry = () => {\n const { fields } = this.state;\n const params = helpers.searchParamsFromURL();\n\n let birthCountry = params.get('birthCountry');\n if (birthCountry) birthCountry = birthCountry.toUpperCase();\n\n const birthTown = params.get('birthTown');\n const postalCode = params.get('postalCode');\n\n if (birthCountry === 'FRANCE') {\n if (birthTown && postalCode && postalCode.length === 5) {\n fields.common.birthTown = {\n ...fields.common.birthTown,\n country: birthCountry,\n townName: birthTown,\n postalCode,\n };\n\n return this.setState({\n fields,\n });\n }\n\n return null;\n }\n\n if (birthCountry && birthTown) {\n fields.common.birthTown = {\n ...fields.common.birthTown,\n country: birthCountry,\n townName: birthTown,\n postalCode: '',\n };\n\n return this.setState({\n fields,\n });\n }\n return null;\n };\n\n handleCondition = () => {\n const {\n setCanGoNext,\n userState,\n mainState: { loading },\n validateSurveyScreenDispatch,\n surveyState,\n packageState,\n summaryState,\n } = this.props;\n const { fields, setting } = this.state;\n const {\n dataState: {\n common: { address },\n },\n } = this.props;\n fields.common.address = address;\n if (\n address &&\n address.address &&\n address.address !== '' &&\n address.address !== fields.common.address.address\n ) {\n this.setState({ fields });\n }\n if (\n !loading &&\n setting.resetEstimate &&\n summaryState.contracts.length > 0 &&\n summaryState.contracts[0].estimates === undefined\n ) {\n validateSurveyScreenDispatch({\n ...surveyState,\n ...userState,\n missingEnergy: packageState.missingEnergy,\n loadEstimate: true,\n logger: {\n tag: TagLogger.SURVEY,\n triggerButton: TriggerButtonLogger.VALIDATE_BTN,\n },\n });\n setting.resetEstimate = false;\n this.setState({ setting });\n }\n const condition =\n userState.userType === UserScreenWording.userType.professional\n ? this.handleConditionPro()\n : this.handleConditionPart();\n if (setCanGoNext) {\n if (condition) setCanGoNext(true);\n else setCanGoNext(false);\n return condition;\n }\n return condition;\n };\n\n handleConditionPro = () => {\n const { fields, setting } = this.state;\n\n let condition = this.handleConditionCommon(fields.common);\n condition =\n condition &&\n this.handleConditionDataPro(fields.pro, setting.validSiret);\n if (setting.checkedAddCoOwner)\n condition =\n condition && this.handleConditionCoOwner(fields.part.coOwner);\n if (setting.checkedNewAddress)\n condition =\n condition &&\n this.handleConditionAddress(fields.common.newAddress);\n if (setting.checkedNewBillingAddress)\n condition =\n condition &&\n this.handleConditionAddress(fields.common.newBillingAddress);\n return condition;\n };\n\n handleConditionPart = () => {\n const {\n fields,\n setting: {\n checkedAddCoOwner,\n checkedNewAddress,\n checkedNewBillingAddress,\n },\n } = this.state;\n\n let condition =\n this.handleConditionCommon(fields.common) &&\n this.handleConditionAddress(fields.common.address);\n if (checkedAddCoOwner)\n condition =\n condition && this.handleConditionCoOwner(fields.part.coOwner);\n if (checkedNewAddress)\n condition =\n condition &&\n this.handleConditionAddress(fields.common.newAddress);\n if (checkedNewBillingAddress)\n condition =\n condition &&\n this.handleConditionAddress(fields.common.newBillingAddress);\n return condition;\n };\n\n handleConditionSituation = () => {\n const {\n fields: {\n common: { dateContract },\n },\n } = this.state;\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n const isSwitch = dateContract.switch;\n\n const reducerSwitch = (accumulator, energy) =>\n accumulator && !summaryState[energy].cyclicBill\n ? dateContract[energy] &&\n dateContract[energy].date !== null &&\n dateContract[energy].month !== null &&\n dateContract[energy].year !== null\n : accumulator;\n\n const reducer = (accumulator, energy) =>\n accumulator &&\n dateContract[energy] &&\n dateContract[energy].date !== null &&\n dateContract[energy].month !== null &&\n dateContract[energy].year !== null &&\n (!dateContract.switch\n ? dateContract[energy].timeslot !== ''\n : true);\n\n return energyTypes.reduce(isSwitch ? reducerSwitch : reducer, true);\n };\n\n handleConditionCoOwner = ({ firstName, lastName }) =>\n firstName !== '' && lastName !== '';\n\n handleConditionAddress = ({ address, city, postalCode }) =>\n address !== '' &&\n address !== null &&\n city !== '' &&\n city !== null &&\n postalCode !== '' &&\n postalCode !== null;\n\n handleConditionCommon = ({\n birthdate,\n birthTown,\n civility,\n name,\n surname,\n email,\n tel,\n }) => {\n const { dataState } = this.props;\n const { accessToken } = dataState.logingInformation;\n return (\n civility !== '' &&\n civility !== undefined &&\n name !== '' &&\n surname !== '' &&\n (accessToken ||\n (birthTown.country !== '' &&\n birthTown.townName !== '' &&\n (!(birthTown.country === 'FRANCE') ||\n birthTown.postalCode !== '') &&\n birthdate !== '' &&\n !helpers.birthCondition(birthdate))) &&\n email !== '' &&\n helpers.handleConditionEmail(email) &&\n tel !== null &&\n helpers.handleConditionPhone(tel)\n );\n };\n\n handleConditionDataPro = (\n { socialReason, legalForm, APECode, SIRET },\n validSiret\n ) =>\n socialReason !== '' &&\n legalForm !== '' &&\n APECode &&\n APECode.length !== '' &&\n SIRET &&\n SIRET.length === 14 &&\n validSiret === 200;\n\n handleEmailFormat = value => {\n const { setting } = this.state;\n const cleanValue = accents.remove(value);\n if (!helpers.handleConditionEmail(cleanValue)) {\n setting.showEmailError = true;\n this.setState({ setting });\n return cleanValue;\n }\n setting.showEmailError = false;\n this.setState({ setting });\n return cleanValue;\n };\n\n handleChangeInput = (value, name, type) => {\n const { fields } = this.state;\n const { isCurrentScreen, resetScreenTo } = this.props;\n if (!isCurrentScreen) resetScreenTo();\n let cleanValue = value;\n if (value.target !== undefined) cleanValue = value.target.value;\n if (name === null) {\n switch (type) {\n case 'email':\n fields.common.email = this.handleEmailFormat(cleanValue);\n break;\n case 'surname':\n case 'name':\n fields.common[type] = cleanValue.replace(/[0-9]/g, '');\n break;\n case 'tel':\n fields.common.tel = cleanValue.replace(/[^\\d ]/g, '');\n break;\n case 'SIRET': {\n fields.pro.SIRET = cleanValue.replace(/[^\\d ]/g, '');\n if (fields.pro.SIRET.length === 14)\n this.searchSiretRequest(cleanValue);\n if (cleanValue === '') fields.pro.APECode = '';\n\n break;\n }\n case 'APECode':\n fields.pro.APECode = cleanValue;\n break;\n case 'socialReason':\n fields.pro.socialReason = cleanValue;\n break;\n case 'coOwner':\n fields.part.coOwner[type] = cleanValue;\n break;\n default:\n fields.common[type] = cleanValue;\n break;\n }\n } else if (name === 'coOwner') {\n fields.part.coOwner[type] = cleanValue;\n } else {\n fields.common[name][type] = cleanValue;\n }\n this.setState({ fields });\n };\n\n handleDateChange = date => {\n const { fields } = this.state;\n this.onFieldChange('birthdate', date, 'new');\n if (date !== undefined) {\n const bDate = renderValueDate(date);\n fields.common.birthdate = bDate.toDateString();\n this.setState({ fields });\n }\n };\n\n handleChangeSelect = ({ value }, nameObj, type, ob) => {\n const { fields } = this.state;\n const { isCurrentScreen, resetScreenTo } = this.props;\n if (!isCurrentScreen) resetScreenTo();\n if (ob === undefined) fields[nameObj][type] = value;\n else if (type === 'birthTown' && ob === 'country') {\n fields[nameObj].birthTown.country = value;\n fields[nameObj].birthTown.postalCode = '';\n fields[nameObj].birthTown.townName = '';\n fields[nameObj].birthTown.netArea = '';\n } else fields[nameObj][type][ob] = value;\n this.setState({ fields });\n };\n\n handleInputChangeAddressContainer = (value, type) => {\n const { setting } = this.state;\n setting[type] = value.replace(/[^\\d ]/g, '');\n if (value !== '') {\n setting.isLoadingPC = true;\n }\n\n const val = value.length > 5 ? value.substring(0, 4) : value;\n this.searchService.search(val);\n this.setState({ setting });\n };\n\n onFocusDropdown = (e, type) => {\n const { setting, fields } = this.state;\n if (type === 'address') {\n if (fields.common.address.postalCode !== '') {\n setting.codeText = fields.common.address.postalCode.toString();\n }\n } else if (type === 'newAddress') {\n if (fields.common.newAddress.postalCode) {\n setting.codeNewAddressText = fields.common.newAddress.postalCode.toString();\n }\n } else if (type === 'newBillingAddress') {\n if (fields.common.newBillingAddress.postalCode) {\n setting.codeNewBillingAddressText = fields.common.newBillingAddress.postalCode.toString();\n }\n } else if (type === 'birthTown') {\n if (fields.common.birthTown.postalCode) {\n setting.codeBirthTown = fields.common.birthTown.postalCode.toString();\n }\n }\n this.setState({ setting });\n };\n\n handleChangeDropdownSelect = (object, type) => {\n const { fields, setting } = this.state;\n const { codeValue, cityValue, netAreaValue } = object;\n if (type === 'address') {\n fields.common.address.city = cityValue;\n fields.common.address.postalCode = codeValue;\n fields.common.address.netArea = netAreaValue;\n if (codeValue !== undefined)\n setting.codeText = codeValue.toString();\n setting.isLoadingPC = false;\n setting.postalCodes = [];\n this.setState({ fields, setting });\n } else if (type === 'newAddress') {\n fields.common.newAddress.city = cityValue;\n fields.common.newAddress.postalCode = codeValue;\n fields.common.newAddress.netArea = netAreaValue;\n if (codeValue !== undefined)\n setting.codeNewAddressText = codeValue.toString();\n setting.isLoadingPC = false;\n setting.postalCodes = [];\n this.setState({ fields, setting });\n } else if (type === 'newBillingAddress') {\n fields.common.newBillingAddress.city = cityValue;\n fields.common.newBillingAddress.postalCode = codeValue;\n fields.common.newBillingAddress.netArea = netAreaValue;\n if (codeValue !== undefined)\n setting.codeNewBillingAddressText = codeValue.toString();\n setting.isLoadingPC = false;\n setting.postalCodes = [];\n this.setState({ fields, setting });\n } else if (type === 'birthTown') {\n fields.common.birthTown.townName = cityValue;\n fields.common.birthTown.postalCode = codeValue;\n fields.common.birthTown.netArea = netAreaValue;\n fields.common.birthTown.country = 'FRANCE';\n if (codeValue !== undefined)\n setting.codeBirthTown = codeValue.toString();\n setting.isLoadingPC = false;\n setting.postalCodes = [];\n this.setState({ fields, setting });\n }\n };\n\n handleDisplayValue = (value, type) => {\n switch (type) {\n case 'tel':\n case 'SIRET':\n return value.replace(/[^\\d ]/g, '');\n\n case 'name':\n return value.replace(/[0-9]/g, '');\n\n default:\n return value;\n }\n };\n\n handleToggle = ({ target: { checked } }, type) => {\n const { setting, fields } = this.state;\n const { isCurrentScreen, resetScreenTo } = this.props;\n if (!isCurrentScreen) resetScreenTo();\n if (type === 'checkedNewAddress') {\n setting.checkedNewAddress = setting.checkedNewAddress !== checked;\n } else {\n setting[type] = !setting[type];\n }\n this.setState({ setting, fields });\n };\n\n handleToggleSituation = ({ target: { value } }, type) => {\n const { fields, setting } = this.state;\n setting.showBottomText = false;\n fields.common[type] = value;\n const defaultValue = {\n date: null,\n month: null,\n year: null,\n dateEffectiveStartDate: null,\n monthEffectiveStartDate: null,\n yearEffectiveStartDate: null,\n timeslot: '',\n timeslots: [],\n };\n fields.common.dateContract = {\n EL: { ...defaultValue },\n NG: { ...defaultValue },\n switch:\n value === SituationTypes.MOVE_IN\n ? null\n : fields.common.dateContract.switch,\n };\n\n this.setState({ fields, setting });\n };\n\n handleDatePicker = (date, type) => {\n const { fields, setting } = this.state;\n\n const { summaryState } = this.props;\n const day = Config.ChannelsDoorToDoor.includes(localStorage.getItem(\"channel\")) ? 7 : 3;\n const featureDate = helpers.addBusinessDays(day);\n const newDate = new Date(date);\n\n const isSwitch = fields.common.dateContract.switch;\n\n if (fields.common.situation === Wording.situation.values.moved.value)\n setting.showBottomText = newDate.getTime() <= featureDate.getTime();\n if (newDate.getTime() > new Date().getTime()) {\n this.sendRequestTimeslot(newDate, type);\n const {\n dataState: { calendarAppointments },\n } = this.props;\n fields.common.dateContract[type].date = newDate.getDate();\n fields.common.dateContract[type].year = newDate.getFullYear();\n fields.common.dateContract[type].month = newDate.getMonth();\n const daysList = (\n calendarAppointments.find(c => c.energy === type) || {\n daysList: [],\n }\n ).daysList;\n const formattedDate = newDate.toISOString().split('T')[0];\n const express = (\n daysList.find(d => d.date === formattedDate) || {\n express: false,\n }\n ).express;\n\n const defaultCB = {\n firstPaymentCB: false,\n };\n const firstPaymentCB = (!isSwitch\n ? daysList.find(d => d.date === formattedDate) || defaultCB\n : defaultCB\n ).firstPaymentCB;\n\n fields.common.dateContract[type].express = express;\n fields.common.dateContract[type].firstPaymentCB = !summaryState[\n type\n ].cyclicBill\n ? firstPaymentCB\n : false;\n\n this.setState({ fields, setting });\n }\n };\n\n sendRequestTimeslot = async (date, type) => {\n const { fields } = this.state;\n const ts = await searchAppointmentTimeslot(date, type);\n fields.common.dateContract[type].timeslots = ts.filter(\n t => t !== 'NONE'\n );\n this.setState({ fields });\n };\n\n searchSiretRequest = async value => {\n const { setting, fields } = this.state;\n const res = await searchSiret(value);\n if (res) {\n if (res.etablissement) {\n fields.pro.APECode = helpers.getAPEFromObject(res);\n }\n setting.validSiret = res.status;\n this.setState({ setting, fields });\n }\n };\n\n handleChangeTimeslotSelect = (e, type) => {\n const { fields } = this.state;\n fields.common.dateContract[type].timeslot = e.value;\n this.setState({ fields });\n };\n\n filterCalendarAppointmentResponse = (energyType, process) => {\n const { dataState } = this.props;\n const { calendarAppointments } = dataState;\n\n return calendarAppointments.filter(\n object => object.energy === energyType && object.process === process\n );\n };\n\n filterDateAppointment = ({ daysList: values }, type, condition) => {\n const arrSend = [];\n if (values !== undefined)\n values\n .filter(element =>\n type === 'express'\n ? element[type] === condition && element.available\n : element[type] === condition\n )\n .forEach(val => arrSend.push(new Date(val.date)));\n if (type === 'available' && !condition) {\n const lastDay = values && new Date(values.slice(-1)[0].date);\n const today = new Date();\n const tomorrow = new Date();\n tomorrow.setDate(today.getDate() + 1);\n\n arrSend.push({\n before: tomorrow,\n after: lastDay,\n });\n }\n return arrSend;\n };\n\n handleDateCalendarOption = (energyType, type) => {\n const { fields } = this.state;\n const { dateContract } = fields.common;\n const isSwitch = dateContract.switch;\n\n // render disabled day is situation === SWITCH\n if (isSwitch) {\n if (type === 'disabled') {\n const switchDropdownValues = (() => {\n const day =\n Config.DefaultSwitchDueDate[dateContract.switch.value][\n energyType\n ];\n\n return helpers.addDays(new Date(), day);\n })();\n\n return [\n {\n before: switchDropdownValues,\n after: helpers.addMonth(new Date(), 1),\n },\n\n {\n daysOfWeek: [0, 6],\n },\n ];\n }\n\n return [];\n }\n\n if (type === 'selected')\n return this.filterDateAppointment(\n ...this.filterCalendarAppointmentResponse(\n energyType,\n 'MOVE_IN'\n ),\n 'express',\n true\n );\n return this.filterDateAppointment(\n ...this.filterCalendarAppointmentResponse(energyType, 'MOVE_IN'),\n 'available',\n false\n );\n };\n\n handleDropdownContract = object => {\n const { fields, setting } = this.state;\n const { dateContract } = fields.common;\n const {\n userState: { energyTypes },\n } = this.props;\n\n if (object.value === Wording.contractDate.dropdownValues[0].value) {\n dateContract.switch = object;\n setting.showBottomText = true;\n } else if (\n object.value === Wording.contractDate.dropdownValues[1].value\n ) {\n dateContract.switch = object;\n setting.showBottomText = false;\n }\n energyTypes.forEach(energy => {\n let day = 0;\n if (object.value === Wording.contractDate.dropdownValues[0].value) {\n day = Config.DefaultSwitchDueDate.NOW[energy];\n } else if (\n object.value === Wording.contractDate.dropdownValues[1].value\n ) {\n day = Config.DefaultSwitchDueDate.LATER[energy];\n }\n\n const actualDate = new Date();\n const newDate = helpers.addDays(actualDate, day);\n dateContract[energy].date = newDate.getDate();\n dateContract[energy].month = newDate.getMonth();\n dateContract[energy].year = newDate.getFullYear();\n });\n\n return this.setState({\n fields,\n setting,\n });\n };\n\n checkBirthdate = birthdate => {\n const reg = /^(((0[1-9]|[12]\\d|3[01])\\/(0[13578]|1[02])\\/((19|[2-9]\\d)\\d{2}))|((0[1-9]|[12]\\d|30)\\/(0[13456789]|1[012])\\/((19|[2-9]\\d)\\d{2}))|((0[1-9]|1\\d|2[0-8])\\/02\\/((19|[2-9]\\d)\\d{2}))|(29\\/02\\/((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|(([1][26]|[2468][048]|[3579][26])00))))$/g;\n return reg.test(birthdate);\n };\n\n validateBaseInput = () => {\n const { fields, setting } = this.state;\n const { userState } = this.props;\n if (userState.userType === UserScreenWording.userType.professional) {\n return (\n this.handleConditionCommon(fields.common) &&\n this.handleConditionDataPro(fields.pro, setting.validSiret)\n );\n }\n return this.handleConditionCommon(fields.common);\n };\n\n validateCode = () => {\n const { validateCodeScreenDispatch, userState } = this.props;\n const { EL, NG, setting } = this.state;\n\n validateCodeScreenDispatch({\n noModeChange: true,\n PDL: EL,\n PCE: NG,\n energyTypes: userState.energyTypes,\n userType: userState.userType,\n });\n setting.showErrorStep1 = true;\n setting.resetEstimate = true;\n this.setState({ setting });\n };\n\n errorDate = birthdate => {\n if (birthdate === '' || birthdate === undefined)\n return Wording.error.missingBirthDate;\n\n if (\n birthdate !== undefined &&\n birthdate !== '' &&\n helpers.birthCondition(birthdate)\n )\n return Wording.error.dateError;\n\n return null;\n };\n\n checkFirstModuleCondition() {\n const { EL, NG } = this.state;\n const {\n userState: { energyTypes },\n } = this.props;\n const isBoth = energyTypes.length === 2;\n if (isBoth)\n return (\n helpers.handleConditionPDLPCE(EL) &&\n helpers.handleConditionPDLPCE(NG)\n );\n return (\n (energyTypes[0] === 'EL' && helpers.handleConditionPDLPCE(EL)) ||\n (energyTypes[0] === 'NG' && helpers.handleConditionPDLPCE(NG))\n );\n }\n\n renderNotLoginBaseInput() {\n const { userState } = this.props;\n const { setting, nonExistingForm, fields } = this.state;\n const isFranceBirthCountry =\n fields.common.birthTown.country === 'FRANCE';\n const validation = {\n birthdate:\n setting.checkError.birthdate &&\n (!nonExistingForm ||\n !this.checkBirthdate(nonExistingForm.birthdate)) &&\n Wording.error.invalideBirthDate,\n birthCountry:\n setting.checkError.birthCountry &&\n !fields.common.birthTown.country &&\n AddressContainerWording.error.mainText,\n birthPostalCode:\n setting.checkError.birthPostalCode &&\n isFranceBirthCountry &&\n !fields.common.birthTown.postalCode &&\n AddressContainerWording.error.mainText,\n birthCity:\n setting.checkError.birthCity &&\n !fields.common.birthTown.townName &&\n AddressContainerWording.error.mainText,\n };\n return (\n <>\n
\n this.handleDateChange(date)}\n error={\n setting.showError &&\n this.errorDate(fields.common.birthdate)\n }\n />\n
\n {\n this.handleChangeSelect(\n obj,\n 'common',\n 'birthTown',\n 'country'\n );\n }}\n value={fields.common.birthTown.country}\n onBlur={() => this.onBlur('birthCountry')}\n error={validation.birthCountry}\n />\n\n {isFranceBirthCountry && (\n this.onBlur('birthPostalCode')}\n placeholder=\"Code Postal\"\n isLoading={setting.isLoadingPC}\n halfSize\n onInputChange={value =>\n this.handleInputChangeAddressContainer(\n value,\n 'codeBirthTown'\n )\n }\n options={setting.postalCodes}\n handleChange={obj =>\n this.handleChangeDropdownSelect(\n obj,\n 'birthTown'\n )\n }\n value={{\n id: fields.common.birthTown.postalCode,\n label: fields.common.birthTown.postalCode,\n value: fields.common.birthTown.postalCode,\n }}\n onFocus={e =>\n this.onFocusDropdown(e, 'birthTown')\n }\n error={validation.birthPostalCode}\n />\n )}\n
\n this.onBlur('birthCity')}\n onChange={e =>\n this.handleChangeSelect(\n { value: e },\n 'common',\n 'birthTown',\n 'townName'\n )\n }\n />\n
\n {userState.userType ===\n UserScreenWording.userType.professional &&\n this.renderNotLoginProInput()}\n \n );\n }\n\n renderNotLoginProInput() {\n const { dataState } = this.props;\n const { setting, fields } = this.state;\n const validation = {\n SIRET_length:\n setting.checkError.SIRET &&\n (!fields.pro.SIRET || fields.pro.SIRET.length !== 14) &&\n Wording.error.SIRET,\n SIRET_valid:\n setting.checkError.SIRET &&\n (!fields.pro.SIRET ||\n fields.pro.SIRET.length !== 14 ||\n setting.validSiret !== 200) &&\n Wording.error.incorrectSIRET,\n APECode:\n setting.checkError.APECode &&\n !fields.pro.APECode &&\n Wording.error.APE,\n socialReason:\n setting.checkError.socialReason &&\n !fields.pro.socialReason &&\n Wording.error.missingSocialReason,\n legalForm:\n setting.checkError.legalForm &&\n !dataState.pro.legalForm &&\n Wording.error.missingLegalForm,\n };\n return (\n <>\n this.handleChangeInput(e, null, 'SIRET')}\n messages={{\n error:\n validation.SIRET_length || validation.SIRET_valid,\n }}\n onBlur={() => this.onBlur('SIRET')}\n />\n this.handleChangeInput(e, null, 'APECode')}\n messages={{ error: validation.APECode }}\n onBlur={() => this.onBlur('APECode')}\n isLocked={setting.validSiret === 200}\n />\n \n this.handleChangeInput(e, null, 'socialReason')\n }\n messages={{ error: validation.socialReason }}\n onBlur={() => this.onBlur('socialReason')}\n />\n \n this.handleChangeSelect(e, 'pro', 'legalForm')\n }\n options={Wording.legalForm.values}\n label={Wording.legalForm.title}\n name=\"legalForm\"\n type=\"text\"\n value={dataState.pro.legalForm}\n onBlur={() => this.onBlur('legalForm')}\n error={validation.legalForm}\n />\n \n );\n }\n\n renderLoginBaseInput() {\n const { userState, dataState } = this.props;\n return (\n
\n
\n \n \n \n \n \n {/* \n
\n \n \n
\n */}\n {userState.userType ===\n UserScreenWording.userType.professional &&\n this.renderLoginProInput()}\n
\n
\n \n {Wording.why_locked_client_1}\n \n \n {Wording.why_locked_client_2}\n \n
\n
\n );\n }\n\n renderLoginProInput() {\n const { dataState } = this.props;\n return (\n <>\n \n \n \n \n \n );\n }\n\n renderNewBillingAddressInput() {\n const { setting, fields } = this.state;\n return (\n <>\n \n this.handleChangeInput(\n e,\n 'newBillingAddress',\n 'address'\n )\n }\n />\n
\n {\n this.handleInputChangeAddressContainer(\n value,\n 'codeNewBillingAddressText'\n );\n }}\n options={setting.postalCodes}\n handleChange={obj => {\n this.handleChangeDropdownSelect(\n obj,\n 'newBillingAddress'\n );\n }}\n value={{\n id: fields.common.newBillingAddress.postalCode,\n label: fields.common.newBillingAddress.postalCode,\n value: fields.common.newBillingAddress.postalCode,\n }}\n onFocus={e => {\n this.onFocusDropdown(e, 'newBillingAddress');\n }}\n />\n
\n \n this.onFieldChange('newBillingCity', e, 'new')\n }\n />\n \n );\n }\n\n renderAddCoOwnerInput() {\n const { dataState } = this.props;\n\n return (\n <>\n <>\n \n this.handleChangeSelect(\n e,\n 'part',\n 'coOwner',\n 'civility'\n )\n }\n value={dataState.part.coOwner.civility}\n />\n
\n \n this.handleChangeInput(e, 'coOwner', 'firstName')\n }\n />\n
\n \n this.handleChangeInput(e, 'coOwner', 'lastName')\n }\n />\n \n \n );\n }\n\n handleChangeCode = (field, value) => {\n const { resetScreenTo, isCurrentScreen } = this.props;\n const optionalSetter = {};\n let cleanValue = value;\n if (field === 'EL' || field === 'NG')\n if (cleanValue !== undefined) {\n const regex = /\\D|\\d{15,}/g;\n const tmp = regex.test(cleanValue);\n if (tmp) cleanValue = cleanValue.slice(0, -1);\n }\n optionalSetter.errorFields = {\n [`${field}Error`]: !helpers.handleConditionPDLPCE(cleanValue),\n };\n this.setState({\n [field]: cleanValue,\n ...optionalSetter,\n });\n\n if (!isCurrentScreen) {\n resetScreenTo();\n }\n };\n\n onFieldChange(field, value, form = undefined) {\n const { existingForm, nonExistingForm } = this.state;\n const { isCurrentScreen, resetScreenTo } = this.props;\n if (!isCurrentScreen) resetScreenTo();\n\n if (form === undefined)\n this.setState({\n [field]: value,\n });\n else if (form === 'exist')\n this.setState({\n existingForm: {\n ...existingForm,\n [field]: value,\n },\n });\n else if (form === 'new')\n this.setState({\n nonExistingForm: {\n ...nonExistingForm,\n [field]: value,\n },\n });\n }\n\n onBlur(field) {\n const { setting } = this.state;\n if (setting.checkError[field] !== undefined) {\n setting.checkError[field] = true;\n this.setState({ setting });\n }\n }\n\n render() {\n const {\n codeState,\n dataState,\n summaryState: { contracts },\n userState: { energyTypes },\n mainState,\n nextScreen,\n canGoNext,\n isCurrentScreen,\n isModalOpen,\n } = this.props;\n const state = this.state;\n const { errorFields } = this.state;\n const { setting } = this.state;\n const isLogin =\n dataState.logingInformation &&\n dataState.logingInformation.accessToken !== '';\n let bakcendError = null;\n const isCodeNotSet = codeState.PDL === '' && codeState.PCE === '';\n if (mainState && mainState.errorFrom === 'CODE_SCREEN_VALIDATE_FAILURE')\n bakcendError = mainState.error;\n\n contracts.forEach(contract => {\n if (\n contract.deliveryPoint.address &&\n contract.deliveryPoint.address.postalCode !==\n dataState.common.firstAddress.postalCode &&\n !dataState.logingInformation.accessToken\n ) {\n errorFields[contract.energy] =\n CodeScreenWording.inputError.errorNotSamePostalCode;\n } else {\n errorFields[contract.energy] = undefined;\n }\n });\n\n energyTypes.forEach(it => {\n if (bakcendError) {\n if (codeState.PDL === '' && codeState.PCE === '') {\n errorFields[it] = bakcendError;\n } else {\n errorFields[it] = undefined;\n }\n }\n });\n\n const isCyclic = autorizedBillingModes =>\n Boolean(\n autorizedBillingModes &&\n autorizedBillingModes.find(\n mode =>\n mode.billingModeCode ===\n BillingMode.CYCLICAL_BILLING\n )\n );\n\n return (\n <>\n
\n \n \n
\n \n Pour éviter les erreurs, vérifie attentivement que\n les informations sont correctes !\n \n {isLogin\n ? this.renderLoginBaseInput()\n : this.renderNotLoginBaseInput()}\n {isCodeNotSet ? (\n <>\n \n {Wording.rappel_pdl}\n \n {energyTypes.map(it => (\n \n this.handleChangeCode(it, v)\n }\n type=\"text\"\n />\n ))}\n
\n {\n this.validateCode();\n }}\n />\n
\n \n ) : (\n
\n
\n \n this.onFieldChange(\n 'address',\n e,\n 'new'\n )\n }\n />\n \n this.onFieldChange(\n 'postalCode',\n e,\n 'new'\n )\n }\n />\n \n this.onFieldChange('city', e, 'new')\n }\n />\n
\n \n \n {Wording.why_locked_address_1}\n \n \n {Wording.why_locked_address_2}\n \n
\n
\n )}\n
\n \n this.handleToggle(e, 'checkedNewBillingAddress')\n }\n />\n {setting.checkedNewBillingAddress &&\n this.renderNewBillingAddressInput()}\n \n this.handleToggle(e, 'checkedAddCoOwner')\n }\n />\n {setting.checkedAddCoOwner && this.renderAddCoOwnerInput()}\n {isCurrentScreen && !isCodeNotSet && (\n
\n \n
\n )}\n \n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n dataState: state.dataReducer,\n userState: state.userReducer,\n codeState: state.codeReducer,\n summaryState: state.summaryReducer,\n surveyState: state.surveyReducer,\n paymentState: state.paymentReducer,\n packageState: state.packageReducer,\n autorizedBillingModes: state.packageReducer.autorizedBillingModes,\n mainState: state.mainReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validateCodeScreenDispatch: payload =>\n dispatch(validateCodeScreen(payload)),\n validateDataScreenDispatch: payload =>\n dispatch(actions.validateDataScreenSuccess(payload)),\n validateDataScreenFinalDispatch: payload =>\n dispatch(actions.validateDataScreenSuccessFinal(payload)),\n fetchCalendarAppointmentDispatch: payload =>\n dispatch(actions.fetchCalendarAppointment(payload)),\n dataScreenSaveCommonDispatch: payload =>\n dispatch(actions.dataScreenSaveCommon(payload)),\n validateSurveyScreenDispatch: payload =>\n dispatch(validateSurveyScreen(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(DataScreen);\n","import React, { useEffect, useRef, useState } from 'react';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport ReactCodeInput from 'react-code-input';\nimport Title from '../../components/Typography/Title';\nimport Typography from '../../components/Typography/Typography';\nimport { CustomButton } from '../../components';\nimport wording from '../../utils/wording.json';\nimport RedCross from '../../assets/icons/ic-red-cross.svg';\nimport { scrollToRefDelay } from '../../utils/scroll';\n\nconst Wording = wording.DataScreen;\n\nfunction ValidateCodeEmail({\n email = 'ton addresse renseigné.',\n isVerificationFail,\n loading,\n onValidateCode = () => {},\n onResendCode = () => {},\n}) {\n const [code, setCode] = useState('');\n const rootRef = useRef(null);\n\n useEffect(() => {\n scrollToRefDelay(rootRef, 0);\n }, []);\n\n return (\n
\n \n \n Merci de confirmer ton adresse e-mail en écrivant le code que tu\n as reçu sur {email}\n \n
\n setCode(v)}\n className={`validate-email-container__inputs__input${\n isVerificationFail ? '-error' : ''\n }`}\n type=\"number\"\n fields={6}\n />\n
\n {isVerificationFail && (\n
\n \"red\n \n {Wording.validate_modal_error_code}\n \n
\n )}\n
\n onValidateCode(code)}\n title=\"Valider\"\n color=\"orange\"\n loading={loading}\n />\n \n
\n
\n );\n}\n\nexport default ValidateCodeEmail;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport Title from '../../components/Typography/Title';\nimport WordingConstant from '../../utils/wording.json';\nimport Screen from '../screen';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport Typography from '../../components/Typography/Typography';\nimport { FontSizeVariant } from '../../constants/enums';\nimport informationSVG from '../../assets/icons/ic-info.svg';\nimport './_MinimalUserData.scss';\nimport LabeledInput from '../../components/LabeledInput/LabeledInput';\nimport CustomSelector from '../../components/CustomSelector/CustomSelector';\nimport { CustomButton } from '../../components';\nimport {\n handleConditionEmail,\n handleConditionPhone,\n} from '../../utils/helpers';\nimport {\n logUserInformationRequest,\n resetMinimumUserDataEmail,\n sendEmailCodeRequest,\n storeMinimumUserData,\n verifyEmailCodeRequest,\n getLoggedUserInfoRequest,\n} from './DataScreen.actions';\nimport ValidateCodeEmail from './ValidateCodeEmail';\nimport { prepareOrder } from '../FinalSummaryScreen/FinalSummaryScreen.actions';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport CustomSelectV2 from '../../components/CustomSelect/CustomSelectV2';\nimport SearchService from '../../utils/search';\n\nconst Wording = WordingConstant.DataScreen;\nconst AddressContainerWording = WordingConstant.AddressContainer;\n\nexport const CLIENT_MODE = Object.freeze({\n ALREADY_EXIST: 'ALREADY_EXIST',\n NEW: 'NEW',\n});\n\nconst blockedYopmailDomains = ['yopmail.com', 'yopmail.fr'];\n\nexport class MinimalUserData extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.FINALSUMMARY,\n previousScreen: Screen.SUMMARY,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n screenId: Screen.DATA,\n step: 2,\n validate: () => {},\n disabled: () => {},\n returnButton: () => {},\n saveData: () => {},\n };\n\n constructor(props) {\n super(props);\n const { dataState } = props;\n this.state = {\n mode: CLIENT_MODE.NEW,\n showValidationModal: false,\n nonExistingForm: {\n civility: dataState.common.civility,\n surname: dataState.common.surname,\n email: dataState.common.email,\n name: dataState.common.name,\n tel: dataState.common.tel,\n firstAddress: dataState.common.firstAddress,\n postalCode: dataState.common.firstAddress.postalCode,\n city: dataState.common.firstAddress.city,\n netArea: dataState.common.firstAddress.netArea,\n },\n existingForm: {\n email: dataState.common.email,\n pass: '',\n },\n setting: {\n fieldChange: false,\n isGoingNext: false,\n postalCodes: [],\n codeText: '',\n showError: false,\n isLoadingPC: false,\n checkError: {\n email: false,\n phone: false,\n firstname: false,\n lastname: false,\n loginEmail: false,\n },\n },\n errorMessage: '',\n };\n this.myRef = React.createRef();\n this.onUpdate = this.onUpdate.bind(this);\n this.changeMode = this.changeMode.bind(this);\n this.onFieldChange = this.onFieldChange.bind(this);\n this.handleValidate = this.handleValidate.bind(this);\n this.renderNewClient = this.renderNewClient.bind(this);\n this.handleValidateCode = this.handleValidateCode.bind(this);\n this.renderExistingClient = this.renderExistingClient.bind(this);\n this.nextScreenValidation = this.nextScreenValidation.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onMouseEnterValidate = this.onMouseEnterValidate.bind(this);\n this.searchService = new SearchService();\n }\n\n onUpdate() {\n const { dataState, getLoggedUserInfoDispatch, nextScreen } = this.props;\n const { showValidationModal, setting, mode } = this.state;\n if (dataState.emailValid.isValid && showValidationModal)\n this.setState({ showValidationModal: false });\n if (this.nextScreenValidation() && !setting.isGoingNext) {\n if (mode === CLIENT_MODE.ALREADY_EXIST) {\n getLoggedUserInfoDispatch({\n token: dataState.logingInformation.token,\n customerNbr: dataState.logingInformation.user,\n });\n }\n if (mode !== CLIENT_MODE.NEW || this.checkFirstModuleCondition()) {\n setting.isGoingNext = true;\n this.setState({ setting });\n nextScreen(null, null, false, 2);\n }\n }\n }\n\n componentDidMount() {\n this.searchService.getResults().subscribe(res => {\n const { setting } = this.state;\n if (res.length > 0) {\n setting.postalCodes = res.map(dt => ({\n id: dt.code,\n label: `${dt.code} - - - ${dt.city}`,\n value: `${dt.code}__${dt.city}`,\n codeValue: dt.code,\n cityValue: dt.city,\n netAreaValue: dt.netArea,\n }));\n } else {\n setting.postalCodes = [];\n }\n setting.isLoadingPC = false;\n this.setState({ setting });\n });\n // const { dataState } = this.props;\n // console.log(dataState.common.firstAddress.postalCode)\n // this.handleInputChangeAddressContainer(dataState.common.firstAddress.postalCode)\n // this.onFocusDropdown()\n // this.handleChangeDropdownSelect({\n // codeValue: dataState.common.firstAddress.postalCode,\n // cityValue: dataState.common.firstAddress.city,\n // netAreaValue: dataState.common.firstAddress.netArea,\n // })\n MinimalUserData.navigationOptions.validate = this.nextScreenValidation;\n const { setCanGoNext, isCurrentScreen } = this.props;\n const { showValidationModal } = this.state;\n if (this.nextScreenValidation()) setCanGoNext(true);\n else setCanGoNext(false);\n if (!showValidationModal && isCurrentScreen)\n scrollToRefDelay(this.myRef, 400);\n const { nextScreen } = this.props;\n const { setting } = this.state;\n if (this.nextScreenValidation() && !setting.isGoingNext) {\n setting.isGoingNext = true;\n this.setState({ setting });\n nextScreen(null, null, false, 2);\n }\n }\n\n componentDidUpdate() {\n this.onUpdate();\n const { setCanGoNext } = this.props;\n if (this.nextScreenValidation()) setCanGoNext(true);\n else setCanGoNext(false);\n }\n\n changeMode(id) {\n const { setting, showValidationModal } = this.state;\n if (setting.isGoingNext === true) {\n setting.isGoingNext = false;\n this.setState({ setting });\n }\n if (showValidationModal === true && id === CLIENT_MODE.ALREADY_EXIST) {\n this.setState({ showValidationModal: false });\n }\n this.setState({\n mode: id,\n });\n }\n\n nextScreenValidation() {\n const { dataState } = this.props;\n const {\n mode,\n showValidationModal,\n setting: { fieldChange },\n } = this.state;\n return Boolean(\n (!fieldChange &&\n dataState.emailValid.isValid &&\n mode === CLIENT_MODE.NEW &&\n !showValidationModal) ||\n (dataState.logingInformation.accessToken &&\n mode === CLIENT_MODE.ALREADY_EXIST)\n );\n }\n\n checkFirstModuleCondition() {\n const { nonExistingForm, existingForm, mode } = this.state;\n if (mode === CLIENT_MODE.NEW) {\n const {\n civility,\n surname,\n email,\n name,\n tel,\n firstAddress,\n } = nonExistingForm;\n const valid =\n handleConditionEmail(email) &&\n handleConditionPhone(tel) &&\n civility !== undefined &&\n civility !== '' &&\n surname !== undefined &&\n surname !== '' &&\n name !== undefined &&\n name !== '' &&\n firstAddress.postalCode !== undefined &&\n firstAddress.postalCode !== '' &&\n firstAddress.city !== undefined &&\n firstAddress.city !== '';\n return valid;\n }\n const { email, pass } = existingForm;\n const valid = handleConditionEmail(email) && pass !== '';\n return valid;\n }\n\n handleValidate() {\n const {\n storeMinimumUserDataDispatch,\n logUserInformationRequestDispatch,\n dataState,\n nextScreen,\n } = this.props;\n\n const { mode, nonExistingForm, existingForm, setting } = this.state;\n\n const isYopmailBlocked = this.isYopmailBlocked(nonExistingForm.email);\n if (isYopmailBlocked) {\n this.setState(\n { errorMessage: \"Merci d'entrer un email valide\" },\n () => {}\n );\n return;\n }\n\n this.setState({ setting: { ...setting, fieldChange: false } }, () => {\n if (mode === CLIENT_MODE.NEW) {\n storeMinimumUserDataDispatch(nonExistingForm);\n\n if (!dataState.emailValid.isValid) {\n const order = prepareOrder({ common: dataState.common });\n logUserInformationRequestDispatch({\n user: nonExistingForm.email,\n password: ' ',\n dataOff: {\n onUserNotExist: () =>\n this.setState({ showValidationModal: true }),\n onUserExist: () =>\n this.setState({ showValidationModal: false }),\n isOnlyCheck: true,\n order,\n },\n });\n } else {\n setting.isGoingNext = true;\n this.setState({ setting }, () => {\n nextScreen(null, null, false, 2);\n });\n }\n } else {\n storeMinimumUserDataDispatch({ email: existingForm.email });\n logUserInformationRequestDispatch({\n user: existingForm.email,\n password: existingForm.pass,\n });\n }\n });\n }\n\n isYopmailBlocked(email) {\n const domain = email.split('@')[1];\n return blockedYopmailDomains.includes(domain);\n }\n\n handleValidateCode(verificationCode) {\n const {\n storeMinimumUserDataDispatch,\n verifyEmailCodeRequestDispatch,\n paymentReducer,\n dataState,\n } = this.props;\n const { mode, nonExistingForm } = this.state;\n if (mode === CLIENT_MODE.NEW)\n storeMinimumUserDataDispatch(nonExistingForm);\n const order = prepareOrder({\n common: dataState.common,\n ...paymentReducer,\n });\n verifyEmailCodeRequestDispatch({\n order: { ...order },\n validationEmailCode: verificationCode,\n });\n }\n\n onBlur(field) {\n const { setting, nonExistingForm } = this.state;\n if (field === 'lastname') {\n const value = nonExistingForm.name;\n const cleanValue = value.toUpperCase();\n this.setState({\n nonExistingForm: {\n ...nonExistingForm,\n name: cleanValue,\n },\n });\n } else if (field === 'firstname') {\n const value = nonExistingForm.surname;\n const cleanValue =\n value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();\n this.setState({\n nonExistingForm: {\n ...nonExistingForm,\n surname: cleanValue,\n },\n });\n }\n if (setting.checkError[field] !== undefined) {\n setting.checkError[field] = true;\n this.setState({ setting });\n }\n }\n\n handleInputChangeAddressContainer = value => {\n const { setting } = this.state;\n setting.codeText = value.replace(/[^\\d ]/g, '');\n if (value !== '') {\n setting.isLoadingPC = true;\n }\n const val = value.length > 5 ? value.substring(0, 4) : value;\n this.searchService.search(val);\n this.setState({ setting });\n };\n\n // onFocusDropdown = () => {\n // const { setting, fields } = this.state;\n // if (fields.postalCode !== undefined) {\n // setting.codeText = fields.postalCode.toString();\n // this.setState({ setting });\n // }\n // };\n\n handleChangeDropdownSelect = object => {\n const { fields, setting, nonExistingForm } = this.state;\n const {\n storeMinimumUserDataDispatch,\n dataState,\n isCurrentScreen,\n resetScreenTo,\n } = this.props;\n const { codeValue, netAreaValue, cityValue } = object;\n if (codeValue !== undefined) setting.codeText = codeValue.toString();\n setting.isLoadingPC = false;\n setting.postalCodes = [];\n this.setState({\n fields,\n setting,\n nonExistingForm: {\n ...nonExistingForm,\n firstAddress: {\n postalCode: codeValue,\n city: cityValue,\n netArea: netAreaValue,\n },\n },\n });\n if (!isCurrentScreen) resetScreenTo();\n if (dataState.emailValid.isValid || dataState.logingInformation.token) {\n storeMinimumUserDataDispatch({\n ...nonExistingForm,\n firstAddress: {\n postalCode: codeValue,\n city: cityValue,\n netArea: netAreaValue,\n },\n });\n }\n };\n\n renderNewClient() {\n const { nonExistingForm, setting } = this.state;\n const { dataState } = this.props;\n const emailValidation = () => {\n if (dataState.logingInformation.isUserExist === true)\n return Wording.error.alreadyExistEmail;\n return !handleConditionEmail(nonExistingForm.email)\n ? Wording.error.email\n : undefined;\n };\n const validation = {\n phone:\n setting.checkError.phone &&\n !handleConditionPhone(nonExistingForm.tel) &&\n Wording.error.phone,\n email:\n (setting.checkError.email && emailValidation()) ||\n (dataState.logingInformation.isUserExist === true &&\n Wording.error.alreadyExistEmail),\n firstname:\n setting.checkError.firstname &&\n !nonExistingForm.surname &&\n Wording.error.mainText,\n lastname:\n setting.checkError.lastname &&\n !nonExistingForm.name &&\n Wording.error.mainText,\n };\n return (\n
\n \n this.onFieldChange('civility', e ? e.value : e, 'new')\n }\n value={nonExistingForm.civility}\n />\n this.onBlur('lastname')}\n onChange={e => this.onFieldChange('surname', e, 'new')}\n isUpperCase\n />\n this.onBlur('firstname')}\n onChange={e => this.onFieldChange('name', e, 'new')}\n isCapital\n />\n this.onBlur('email')}\n onChange={e => this.onFieldChange('email', e, 'new')}\n />\n {!this.state.errorMessage && (\n
\n {this.state.errorMessage}\n
\n )}\n this.onBlur('phone')}\n onChange={e => this.onFieldChange('tel', e, 'new')}\n />\n {\n this.handleInputChangeAddressContainer(value);\n }}\n options={setting.postalCodes}\n handleChange={obj => {\n this.handleChangeDropdownSelect(obj);\n }}\n value={{\n id: nonExistingForm.firstAddress.postalCode,\n label: nonExistingForm.firstAddress.postalCode,\n value: nonExistingForm.firstAddress.postalCode,\n }}\n />\n \n this.onFieldChange('newBillingCity', e, 'new')\n }\n />\n
\n );\n }\n\n renderExistingClient() {\n const { existingForm, setting } = this.state;\n const { dataState } = this.props;\n const emailValidation = () => {\n if (dataState.logingInformation.error)\n return dataState.logingInformation.error;\n return !handleConditionEmail(existingForm.email)\n ? Wording.error.email\n : undefined;\n };\n const validation = {\n loginEmail: setting.checkError.loginEmail && emailValidation(),\n password: dataState.logingInformation.error,\n };\n return (\n
\n this.onBlur('loginEmail')}\n defaultValue={dataState.common.email}\n onChange={e => this.onFieldChange('email', e, 'exist')}\n />\n this.onFieldChange('pass', e, 'exist')}\n messages={{ error: validation.password ? ' ' : undefined }}\n label=\"Mot de passe\"\n type=\"password\"\n name=\"password\"\n />\n
\n );\n }\n\n onMouseEnterValidate() {\n const { storeMinimumUserDataDispatch } = this.props;\n const { nonExistingForm } = this.state;\n storeMinimumUserDataDispatch(nonExistingForm);\n }\n\n onFieldChange(field, value, form = undefined) {\n const {\n existingForm,\n nonExistingForm,\n setting,\n showValidationModal,\n mode,\n } = this.state;\n const {\n dataState,\n resetEmailDispatch,\n resetScreenTo,\n isCurrentScreen,\n } = this.props;\n let cleanValue = value;\n\n if (\n (dataState.emailValid.isValid ||\n dataState.logingInformation.token) &&\n field === 'email' &&\n dataState.common.email !== value\n ) {\n resetEmailDispatch();\n }\n if (\n field === 'email' &&\n showValidationModal === true &&\n mode === CLIENT_MODE.NEW\n ) {\n this.setState({ showValidationModal: false });\n }\n // TODO Remove the order number of previously validate\n\n if (field === 'tel' && cleanValue !== undefined) {\n const regex = /\\D|\\d{11,}/g;\n const tmp = regex.test(cleanValue);\n if (tmp) {\n cleanValue = cleanValue.slice(0, -1);\n }\n }\n if (!isCurrentScreen) resetScreenTo();\n if (setting.isGoingNext === true) {\n setting.isGoingNext = false;\n }\n setting.fieldChange = true;\n this.setState({ setting });\n if (form === undefined)\n this.setState({\n [field]: cleanValue,\n });\n else if (form === 'exist')\n this.setState({\n existingForm: {\n ...existingForm,\n [field]: cleanValue,\n },\n });\n else if (form === 'new')\n this.setState({\n nonExistingForm: {\n ...nonExistingForm,\n [field]: cleanValue,\n },\n });\n }\n\n render() {\n const { mode, showValidationModal } = this.state;\n const {\n dataState: {\n emailValid: { error, isValid },\n logingInformation,\n common: { email },\n },\n isCurrentScreen,\n mainState,\n isModalOpen,\n } = this.props;\n\n const defaultValueSelector = () => {\n if (mode === CLIENT_MODE.ALREADY_EXIST)\n return CLIENT_MODE.ALREADY_EXIST;\n if (logingInformation.token) return CLIENT_MODE.ALREADY_EXIST;\n if (isValid) return CLIENT_MODE.NEW;\n return CLIENT_MODE.NEW;\n };\n\n return (\n <>\n
\n \n \n \n Afin de simplifier le contact entre nous, remplis les\n champs ci-dessous :\n \n\n
\n \n Je suis{' '}\n \n nouveau client !\n \n \n ),\n },\n {\n id: CLIENT_MODE.ALREADY_EXIST,\n label: (\n \n Je suis déjà{' '}\n \n client Wekiwi !\n \n \n ),\n },\n ]}\n defaultId={defaultValueSelector()}\n onMounSetter\n onSelect={this.changeMode}\n gap=\"4rem\"\n notFullWidth\n />\n
\n\n {mode === CLIENT_MODE.ALREADY_EXIST &&\n this.renderExistingClient()}\n\n {mode === CLIENT_MODE.NEW && this.renderNewClient()}\n\n
\n \n \n {Wording.data_collect_title}\n \n
\n\n \n {Wording.data_collect_info}\n \n\n {isCurrentScreen && !showValidationModal && (\n
\n \n
\n )}\n \n {showValidationModal && isCurrentScreen && (\n \n \n \n )}\n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n dataState: state.dataReducer,\n paymentReducer: state.paymentReducer,\n mainState: state.mainReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n storeMinimumUserDataDispatch: payload =>\n dispatch(storeMinimumUserData(payload)),\n sendEmailCodeRequestDispatch: payload =>\n dispatch(sendEmailCodeRequest(payload)),\n verifyEmailCodeRequestDispatch: payload =>\n dispatch(verifyEmailCodeRequest(payload)),\n logUserInformationRequestDispatch: payload =>\n dispatch(logUserInformationRequest(payload)),\n resetEmailDispatch: payload => dispatch(resetMinimumUserDataEmail(payload)),\n getLoggedUserInfoDispatch: payload =>\n dispatch(getLoggedUserInfoRequest(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MinimalUserData);\n","import React from 'react';\r\n\r\nimport Slider from 'react-slick';\r\nimport classnames from 'classnames';\r\n\r\nimport { PackageElement, CustomModal, EnergyGauge } from '../../components';\r\n\r\nimport WordingConstant from '../../utils/wording.json';\r\nimport resources from '../../utils/resources';\r\nimport {\r\n buildPackagesForSlider,\r\n prepareFrequenciesToDisplay,\r\n} from '../../utils/helpers';\r\nimport CustomSelector from '../../components/CustomSelector/CustomSelector';\r\nimport Typography from '../../components/Typography/Typography';\r\nimport { TypoVariant } from '../../constants/enums';\r\nimport MenLongArm from '../../assets/icons/ic-mister-long-arm.png';\r\nimport GasIcon from '../../assets/icons/ic-gas-on.svg';\r\nimport ElecIcon from '../../assets/icons/ic-elec-on.svg';\r\nimport CustomToggleV2 from '../../components/CustomToggle/CustomToggleV2';\r\nimport informationSVG from '../../assets/icons/ic-info.svg';\r\n\r\nconst Wording = WordingConstant.PackageScreen;\r\n\r\nconst SlickButtonFix = ({ currentSlide, slideCount, children, ...props }) => (\r\n {children}\r\n);\r\n\r\nconst NextArrow = () => (\r\n \"ic-arrow-next\"\r\n);\r\nconst BackArrow = () => (\r\n \"ic-arrow-back\"\r\n);\r\n\r\nclass PackageContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showingModalFrequency: false,\r\n isCustomSeasons: false,\r\n fields: {\r\n prices: [],\r\n },\r\n };\r\n }\r\n\r\n handleToggle = ({ target: { checked } }, ranges) => {\r\n const {\r\n kind,\r\n handleChangePackageFields,\r\n packageID,\r\n onChoosePackage,\r\n } = this.props;\r\n if (checked) {\r\n handleChangePackageFields([ranges[0][0], ranges[0][1]], '', kind);\r\n } else {\r\n onChoosePackage(packageID);\r\n }\r\n };\r\n\r\n handleOpenModalFrequency = () => {\r\n const { showingModalFrequency } = this.state;\r\n this.setState({ showingModalFrequency: !showingModalFrequency });\r\n };\r\n\r\n getConsumptionPerMonth = energy => {\r\n const { summaryState } = this.props;\r\n try {\r\n const filteredData = summaryState.contracts.filter(\r\n item => item.energy === energy\r\n )[0];\r\n let total = 0;\r\n filteredData.estimates.forEach(element => {\r\n total += element.quantity;\r\n });\r\n return Math.round(total / 12);\r\n } catch {\r\n return 0;\r\n }\r\n };\r\n\r\n renderModalFrequency() {\r\n const { showingModalFrequency } = this.state;\r\n return (\r\n \r\n
\r\n
\r\n
?
\r\n

{Wording.popup.frequency.title}

\r\n
\r\n

{Wording.popup.frequency.description}

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

{Wording.popup.frequency.itemsTitle}

\r\n\r\n
    \r\n {Wording.popup.frequency.frequencyItems.map(\r\n (elm, index) => (\r\n
  • {elm}
  • \r\n )\r\n )}\r\n
\r\n

{Wording.popup.frequency.frequencyExemple}

\r\n
\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n // packageTitle,\r\n packageList,\r\n onChangePaymentFrequency,\r\n onChoosePackage,\r\n // onChangeCyclicBill,\r\n kind,\r\n paymentFrequency,\r\n packageID,\r\n // showSeparator,\r\n prepaymentFrequencies,\r\n // showError,\r\n\r\n billingModes: {\r\n cyclicBillingMode,\r\n scheduleBillingMode,\r\n scheduleWithoutPackBillingMode,\r\n },\r\n handleChangePackageFields,\r\n // packages,\r\n transformAuthorizedPackages,\r\n // summaryState,\r\n loading,\r\n } = this.props;\r\n const {\r\n fields: { prices },\r\n isCustomSeasons,\r\n } = this.state;\r\n const isMultiple = packageList.length > 4;\r\n const isActiveBilling = cyclicBillingMode || loading;\r\n\r\n const SliderClasses = classnames('package-container__slider-carousel', {\r\n 'package-container__slider-carousel--small': packageList.length < 4,\r\n 'disabled-section': isActiveBilling,\r\n });\r\n\r\n const FrequenciesClasses = classnames('package-container__frequency', {\r\n 'disabled-section': isActiveBilling,\r\n });\r\n\r\n const currentPackage =\r\n packageList.find(p => p.id === packageID) ||\r\n packageList.find(p => p.recommended) ||\r\n {};\r\n\r\n const ranges = transformAuthorizedPackages\r\n ? transformAuthorizedPackages(currentPackage.authorizedPackages)\r\n : [];\r\n\r\n let initialProgress = 0;\r\n if (prices && prices.length > 1) {\r\n initialProgress = ranges.findIndex(\r\n r => r[0] === prices[0] && r[1] === prices[1]\r\n );\r\n initialProgress = initialProgress === -1 ? 0 : initialProgress;\r\n }\r\n const reducer = (accumulator, current) => {\r\n const max = current[0] > current[1] ? current[0] : current[1];\r\n return accumulator > max ? accumulator : max;\r\n };\r\n const gaugeMaxValue = ranges ? ranges.reduce(reducer, 0) : 0;\r\n return (\r\n
\r\n {this.renderModalFrequency()}\r\n
\r\n
\r\n \r\n
\r\n \r\n Tu consommes en moyenne{' '}\r\n \r\n ~{this.getConsumptionPerMonth(kind)} kWh{' '}\r\n {kind === 'EL' ? 'd’électricité' : 'de gaz'}\r\n {' '}\r\n par mois\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n }\r\n prevArrow={\r\n \r\n \r\n \r\n }\r\n >\r\n {packageList &&\r\n (isMultiple\r\n ? buildPackagesForSlider(packageList)\r\n : packageList\r\n ).map(\r\n (\r\n {\r\n amount,\r\n id,\r\n recommended,\r\n quantityMonthly,\r\n },\r\n index\r\n ) => (\r\n {\r\n this.setState({\r\n isCustomSeasons: false,\r\n });\r\n onChoosePackage(id);\r\n }}\r\n />\r\n )\r\n )}\r\n \r\n
\r\n {(scheduleBillingMode || scheduleWithoutPackBillingMode) && (\r\n
\r\n
\r\n

\r\n {Wording.frequency.title}\r\n

\r\n

\r\n Par exemple, si tu choisis un forfait avec un\r\n prépaiement mensuel de 50€ et une fréquence\r\n trimestrielle, tu paieras 150€ tous les 3 mois.\r\n

\r\n
\r\n {prepaymentFrequencies && (\r\n ({\r\n label: (\r\n \r\n {it.label}\r\n \r\n ),\r\n id: it.frequency,\r\n fee: it.fee + it.currency,\r\n }))}\r\n value={paymentFrequency}\r\n onSelect={e =>\r\n onChangePaymentFrequency({\r\n target: { value: e },\r\n })\r\n }\r\n />\r\n )}\r\n {/* {prepaymentFrequencies &&\r\n prepareFrequenciesToDisplay(\r\n prepaymentFrequencies\r\n ).map(({ frequency, fee, currency }, index) => {\r\n const label = (\r\n Wording.frequency.values.find(\r\n v => v.value === frequency\r\n ) || {}\r\n ).text;\r\n return (\r\n \r\n );\r\n })} */}\r\n
\r\n )}\r\n {/* {cyclicBillingMode ? (\r\n
\r\n
\r\n

{Wording.option.title}

\r\n \r\n
\r\n {Wording.option.descriptions.map((d, index) => (\r\n

{d}

\r\n ))}\r\n
\r\n ) : (\r\n <>\r\n {showError && (\r\n <>\r\n {packageID === '' && (\r\n
\r\n !\r\n

{Wording.error.missingPackage}

\r\n
\r\n )}\r\n {paymentFrequency === '' ||\r\n (!paymentFrequency && (\r\n
\r\n !\r\n\r\n

\r\n {Wording.error.missingFrequency}\r\n

\r\n
\r\n ))}\r\n \r\n )}\r\n \r\n )} */}\r\n {packageID !== '' && ranges !== undefined && (\r\n
\r\n \r\n Tu as des besoins saisonniers : chauffage en hiver,\r\n climatisation en été ?\r\n \r\n \r\n Module ton forfait été/hiver et profite de la remise\r\n forfait toute l’année !\r\n \r\n
\r\n {\r\n this.handleToggle(v, ranges);\r\n this.setState({\r\n isCustomSeasons: v.target.checked,\r\n });\r\n }}\r\n />\r\n \r\n Je module mon forfait été/hiver{' '}\r\n {kind === 'EL' ? 'électricité' : 'gaz'}\r\n \r\n
\r\n \r\n {isCustomSeasons && (\r\n
\r\n
\r\n
\r\n \r\n

\r\n Ta consommation énergétique peut\r\n varier d’un mois à l’autre.\r\n

\r\n
\r\n

\r\n C’est pour cela que Wekiwi a développé\r\n l’option été/hiver. En activant cette\r\n option tu as la possibilité de choisir\r\n un forfait différent pour l’été et pour\r\n l’hiver. C’est gratuit et cela te permet\r\n de bénéficier pleinement de la remise\r\n forfait.\r\n

\r\n

\r\n Le forfait été est valable pour les mois\r\n d’avril à octobre, et le forfait hiver\r\n pour les mois de novembre à mars.\r\n

\r\n
\r\n \r\n handleChangePackageFields(\r\n [v[0], v[1]],\r\n ''\r\n )\r\n }\r\n />\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PackageContainer;\r\n","import PackageContainer from './PackageContainer';\r\n\r\nexport default PackageContainer;\r\n","import LoadingOverlay from './LoadingOverlay';\r\n\r\nexport default LoadingOverlay;\r\n","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\r\nimport './_LoadingOverlay.scss';\r\n\r\nconst LoadingOverlay = ({\r\n children,\r\n loading,\r\n radius = '0px',\r\n minHeight = '32px',\r\n fullscreen = false,\r\n loaderSize = 'lg',\r\n}) => (\r\n \r\n {loading && (\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n {children}\r\n
\r\n);\r\n\r\nexport default LoadingOverlay;\r\n","import React, { createRef } from 'react';\r\nimport ReactPlayer from 'react-player';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { CustomAccordion, CustomModal } from '../../components';\r\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\r\nimport Title from '../../components/Typography/Title';\r\nimport Typography from '../../components/Typography/Typography';\r\nimport { BillingMode } from '../../constants/enums';\r\nimport PackageContainer from '../../containers/PackageContainer';\r\nimport { logScreen } from '../../utils/firebase';\r\nimport { sumPackageAmountInstallmentFrequency } from '../../utils/helpers';\r\nimport { TagLogger, TriggerButtonLogger } from '../../utils/logger';\r\nimport WordingConstant from '../../utils/wording.json';\r\nimport { changePackages } from '../FinalSummaryScreen/FinalSummaryScreen.actions';\r\nimport {\r\n changeProductOption,\r\n changeOffer,\r\n} from '../SummaryScreen/SummaryScreen.actions';\r\nimport Screen from '../screen';\r\nimport { validatePackageScreen } from './PackageScreen.actions';\r\nimport CustomButton from '../../components/CustomButton/CustomButton';\r\nimport { scrollToRefDelay } from '../../utils/scroll';\r\nimport LoadingOverlay from '../../components/LoadingOverlay';\r\n\r\nconst Wording = WordingConstant.PackageScreen;\r\n\r\nconst kiwiInstructionVideo = `${process.env.PUBLIC_URL}/static/wekiwi-offer-short.mov`;\r\n\r\nexport class PackageScreen extends React.Component {\r\n static navigationOptions = {\r\n nextScreen: Screen.SUMMARY,\r\n previousScreen: Screen.CODE,\r\n buttonNextTitle: Wording.nextButton,\r\n buttonPreviousTitle: Wording.previousButton,\r\n title: Wording.title,\r\n screenId: Screen.PACKAGE,\r\n showSaveButton: false,\r\n step: 4,\r\n validate: () => {},\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = this.setupPackages();\r\n this.myRef = createRef();\r\n }\r\n\r\n setupPackages = cb => {\r\n const { packageState, summaryState } = this.props;\r\n const cyclicBillingMode =\r\n packageState.autorizedBillingModes &&\r\n packageState.autorizedBillingModes.find(\r\n mode => mode.billingModeCode === BillingMode.CYCLICAL_BILLING\r\n );\r\n const scheduleBillingMode =\r\n packageState.autorizedBillingModes &&\r\n packageState.autorizedBillingModes.find(\r\n mode => mode.billingModeCode === BillingMode.PAYMENT_SCHEDULE\r\n );\r\n\r\n const scheduleWithoutPackBillingMode =\r\n packageState.autorizedBillingModes &&\r\n packageState.autorizedBillingModes.find(\r\n mode =>\r\n mode.billingModeCode ===\r\n BillingMode.PAYMENT_SCHEDULE_WITHOUT_PACK\r\n );\r\n\r\n const fields = {};\r\n ['EL', 'NG'].forEach(energy => {\r\n fields[energy] = {\r\n installmentFrequency: summaryState[energy].installmentFrequency,\r\n cyclicBill: summaryState[energy].cyclicBill,\r\n chosenPackages:\r\n summaryState[energy].chosenPackages || [\r\n packageState.packages.find(p => p.recommended),\r\n ] ||\r\n [],\r\n packageID: summaryState[energy].packageID,\r\n billingModeCode: summaryState[energy].billingModeCode,\r\n };\r\n });\r\n\r\n const state = {\r\n fields,\r\n setting: {\r\n showError: false,\r\n },\r\n showingModalVideo: false,\r\n cyclicBillingMode,\r\n scheduleBillingMode,\r\n scheduleWithoutPackBillingMode,\r\n raw: packageState.autorizedBillingModes,\r\n };\r\n if (cb) cb(state);\r\n return state;\r\n };\r\n\r\n componentDidMount() {\r\n logScreen(TagLogger.PACKAGE);\r\n\r\n const {\r\n validatePackageScreenDispatch,\r\n userState: { userType, energyTypes },\r\n summaryState: { EL, NG },\r\n } = this.props;\r\n\r\n PackageScreen.navigationOptions.validate = () => {\r\n const { fields } = this.state;\r\n const {\r\n summaryState: { contracts },\r\n } = this.props;\r\n validatePackageScreenDispatch({\r\n ...fields,\r\n userType,\r\n energyTypes,\r\n contracts,\r\n logger: {\r\n tag: TagLogger.PACKAGE,\r\n triggerButton: TriggerButtonLogger.VALIDATE_BTN,\r\n },\r\n });\r\n return true;\r\n };\r\n\r\n PackageScreen.navigationOptions.disabled = () => {\r\n const { setting } = this.state;\r\n setting.showError = true;\r\n this.setState({ setting });\r\n };\r\n\r\n PackageScreen.navigationOptions.title =\r\n energyTypes.length > 1 ? Wording.secondaryTitle : Wording.title;\r\n\r\n // if (setCanGoNext) setCanGoNext(true);\r\n this.handleNextStep();\r\n\r\n const fields = {\r\n EL,\r\n NG,\r\n };\r\n this.handleCondition({ fields, energyTypes });\r\n\r\n this.handlePreselectPackage();\r\n scrollToRefDelay(this.myRef, 200);\r\n // let isCyclic = false;\r\n // for (let i = 0; i < energyTypes.length; i += 1) {\r\n // if (fields[energyTypes[i]].cyclicBill === true) {\r\n // isCyclic = true;\r\n // break;\r\n // }\r\n // }\r\n // this.setState({ cyclicBillingMode: isCyclic });\r\n }\r\n\r\n componentDidUpdate() {\r\n const { fields, raw } = this.state;\r\n const {\r\n userState: { energyTypes },\r\n packageState,\r\n } = this.props;\r\n\r\n this.handleNextStep();\r\n this.handleCondition({ fields, energyTypes });\r\n if (raw !== packageState.autorizedBillingModes) {\r\n this.setupPackages(data => this.setState(data));\r\n }\r\n }\r\n\r\n handleNextStep() {\r\n const { fields, cyclicBillingMode } = this.state;\r\n const {\r\n userState: { energyTypes },\r\n setCanGoNext,\r\n summaryState,\r\n } = this.props;\r\n let canGoNext = true;\r\n let isCyclic = false;\r\n for (let i = 0; i < energyTypes.length; i += 1) {\r\n if (summaryState[energyTypes[i]].cyclicBill === true) {\r\n isCyclic = true;\r\n canGoNext = true;\r\n break;\r\n }\r\n if (\r\n fields[energyTypes[i]].installmentFrequency === '' ||\r\n fields[energyTypes[i]].packageID === ''\r\n ) {\r\n canGoNext = false;\r\n }\r\n }\r\n if (isCyclic !== cyclicBillingMode) {\r\n this.setupPackages(data =>\r\n this.setState({ ...data, cyclicBillingMode: isCyclic })\r\n );\r\n }\r\n setCanGoNext(canGoNext);\r\n }\r\n\r\n handleCondition = ({ fields, energyTypes }) => {\r\n const { handleGoNext } = this.props;\r\n if (handleGoNext) {\r\n const reducer = (accumulator, currentValue) => {\r\n const { installmentFrequency, packageID, cyclicBill } = fields[\r\n currentValue\r\n ];\r\n return (\r\n accumulator &&\r\n ((installmentFrequency &&\r\n installmentFrequency !== '' &&\r\n packageID !== '') ||\r\n cyclicBill)\r\n );\r\n };\r\n const condition = energyTypes.reduce(reducer, true);\r\n handleGoNext(condition);\r\n }\r\n };\r\n\r\n conditionSumFirstPayment = () => {\r\n const { fields } = this.state;\r\n const {\r\n userState: { energyTypes },\r\n } = this.props;\r\n\r\n const reducer = (accumulator, currentValue) => {\r\n const { installmentFrequency, packageID, cyclicBill } = fields[\r\n currentValue\r\n ];\r\n\r\n if (energyTypes.length === 2) {\r\n return (\r\n accumulator &&\r\n ((installmentFrequency &&\r\n installmentFrequency !== '' &&\r\n packageID !== '') ||\r\n cyclicBill)\r\n );\r\n }\r\n\r\n return (\r\n accumulator &&\r\n installmentFrequency &&\r\n installmentFrequency !== '' &&\r\n packageID !== '' &&\r\n !cyclicBill\r\n );\r\n };\r\n\r\n const allCheckedCyclicBill = energyTypes.filter(\r\n el => fields[el].cyclicBill === true\r\n ).length;\r\n\r\n return allCheckedCyclicBill !== 2 && energyTypes.reduce(reducer, true);\r\n };\r\n\r\n handleDisplaySum = () => {\r\n const { fields } = this.state;\r\n const {\r\n userState: { energyTypes },\r\n } = this.props;\r\n const reducer = (accumulator, currentValue) => {\r\n const { chosenPackages, installmentFrequency } = fields[\r\n currentValue\r\n ];\r\n\r\n return (\r\n accumulator +\r\n sumPackageAmountInstallmentFrequency(\r\n chosenPackages,\r\n installmentFrequency\r\n )\r\n );\r\n };\r\n return this.conditionSumFirstPayment() ? (\r\n

{`${\r\n Wording.sumFirstPayment\r\n } ${energyTypes.reduce(reducer, 0)}€`}

\r\n ) : (\r\n undefined\r\n );\r\n };\r\n\r\n handleChoosePackage = (id, kind) => {\r\n const {\r\n fields,\r\n cyclicBillingMode,\r\n scheduleWithoutPackBillingMode,\r\n scheduleBillingMode,\r\n } = this.state;\r\n const {\r\n packageState: { packages },\r\n resetScreenTo,\r\n isCurrentScreen,\r\n } = this.props;\r\n\r\n if (!isCurrentScreen && resetScreenTo) resetScreenTo();\r\n if (cyclicBillingMode && fields[kind].cyclicBill) return;\r\n fields[kind].packageID = id;\r\n const pkg = packages.find(p => p.id === id);\r\n fields[kind].chosenPackages = pkg ? [pkg] : [];\r\n\r\n fields[kind].billingModeCode =\r\n scheduleWithoutPackBillingMode !== undefined\r\n ? scheduleWithoutPackBillingMode.billingModeCode\r\n : scheduleBillingMode.billingModeCode;\r\n this.setState({ fields });\r\n };\r\n\r\n handleChangeInstallmentFrequency = (e, kind) => {\r\n const { value } = e.target;\r\n const { fields, cyclicBillingMode } = this.state;\r\n const { resetScreenTo, isCurrentScreen } = this.props;\r\n if (!isCurrentScreen) resetScreenTo();\r\n if (cyclicBillingMode && fields[kind].cyclicBill) {\r\n return;\r\n }\r\n fields[kind].installmentFrequency = value;\r\n fields[kind].cyclicBill = false;\r\n this.setState({ fields });\r\n };\r\n\r\n handleChangeCyclicBill = kind => {\r\n const { fields } = this.state;\r\n fields[kind].cyclicBill = !fields[kind].cyclicBill;\r\n fields[kind].packageID = '';\r\n fields[kind].chosenPackages = [];\r\n fields[kind].installmentFrequency = '';\r\n this.setState({ fields });\r\n };\r\n\r\n handleOpenModalVideo = () => {\r\n const { showingModalVideo } = this.state;\r\n this.setState({ showingModalVideo: !showingModalVideo });\r\n if (this.videoNode && !showingModalVideo) {\r\n this.videoNode.pause();\r\n this.videoNode.currentTime = 0;\r\n this.videoNode.controls = true;\r\n this.videoNode.play();\r\n }\r\n };\r\n\r\n renderModalVideo() {\r\n const { showingModalVideo } = this.state;\r\n return (\r\n \r\n
\r\n
\r\n
?
\r\n

{Wording.popup.package.title}

\r\n
\r\n {\r\n this.playerRef = ref;\r\n }}\r\n url={showingModalVideo ? kiwiInstructionVideo : null}\r\n playing={showingModalVideo}\r\n autoPlay\r\n controls\r\n width=\"100%\"\r\n heigh=\"100%\"\r\n />\r\n
\r\n \r\n );\r\n }\r\n\r\n handlePreselectPackage() {\r\n const {\r\n userState: { energyTypes },\r\n packageState: { packages, prepaymentFrequencies },\r\n } = this.props;\r\n\r\n if (energyTypes) {\r\n energyTypes.forEach(energy => {\r\n const packageList = packages.filter(p => p.energy === energy);\r\n\r\n if (packageList.length === 1) {\r\n const { id } = packageList[0];\r\n this.handleChoosePackage(id, energy);\r\n }\r\n\r\n if (prepaymentFrequencies.length === 1) {\r\n const { frequency } = prepaymentFrequencies[0];\r\n this.handleChangeInstallmentFrequency(\r\n { target: { value: frequency } },\r\n energy\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n transformAuthorizedPackages = packages => {\r\n const res =\r\n packages &&\r\n packages\r\n .map(p => {\r\n if (p && p.length === 2) {\r\n const tmp = p\r\n .sort((x, y) =>\r\n x.timeframe < y.timeframe ? -1 : 1\r\n )\r\n .map(x => parseInt(x.amount, 0));\r\n return [...tmp, ...p.map(it => it.quantityMonthly)];\r\n }\r\n return [0, 0, ...p.map(it => it.quantityMonthly)];\r\n })\r\n .sort((x, y) => (x[0] < y[0] ? -1 : 1));\r\n return res;\r\n };\r\n\r\n findPackages = (packages, couple) => {\r\n const res = (packages &&\r\n packages.find(\r\n p =>\r\n p &&\r\n p.length === 2 &&\r\n p[0].amount === `${couple[0]}` &&\r\n p[1].amount === `${couple[1]}`\r\n )) || [{}, {}];\r\n return res;\r\n };\r\n\r\n handleChangePackageFields = (prices, packageID, energy) => {\r\n const { fields } = this.state;\r\n const { isCurrentScreen, resetScreenTo } = this.props;\r\n fields[energy].prices = prices;\r\n // fields[energy].packageID = packageID;\r\n if (!isCurrentScreen) resetScreenTo();\r\n const {\r\n // changePackagesDispatch,\r\n packageState,\r\n // summaryState,\r\n } = this.props;\r\n let packages = [];\r\n let id = packageID;\r\n if (packageID === '') {\r\n fields[energy].lastPackageID = packageID;\r\n id = fields[energy].packageID;\r\n const currentPackage =\r\n packageState.packages.find(p => p.id === id) ||\r\n packageState.packages.find(p => p.recommended);\r\n\r\n if (currentPackage) {\r\n packages = this.findPackages(\r\n currentPackage.authorizedPackages,\r\n prices\r\n );\r\n\r\n id = currentPackage.id;\r\n }\r\n } else {\r\n fields[energy].lastPrices = prices;\r\n packages = packageState.packages\r\n ? packageState.packages.filter(\r\n p => p.energy === energy && p.id === packageID\r\n )\r\n : [];\r\n }\r\n fields[energy].chosenPackages = packages;\r\n // changePackagesDispatch({ packages, packageID: id, energyType: energy });\r\n this.setState({ fields });\r\n };\r\n\r\n getEnergyValue = energy =>\r\n energy === 'EL' ? ' forfait électricité' : ' forfait gaz';\r\n\r\n render() {\r\n const {\r\n userState: { energyTypes },\r\n packageState: { packages, prepaymentFrequencies },\r\n summaryState,\r\n userState,\r\n changeProductOptionDispatch,\r\n changePackagesDispatch,\r\n mainState: { loading },\r\n nextScreen,\r\n canGoNext,\r\n isCurrentScreen,\r\n isModalOpen,\r\n changeOfferDispatch,\r\n } = this.props;\r\n const {\r\n fields,\r\n setting: { showError },\r\n cyclicBillingMode,\r\n scheduleBillingMode,\r\n scheduleWithoutPackBillingMode,\r\n } = this.state;\r\n // let forfaitType;\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {this.renderModalVideo()}\r\n 1 ? 'mes' : 'mon'\r\n }`}\r\n titleFormatLexand={\r\n energyTypes.length > 1\r\n ? ' forfaits'\r\n : this.getEnergyValue(energyTypes[0])\r\n }\r\n />\r\n \r\n Le forfait mensuel suggéré se base sur tes\r\n consommations historiques. Cependant tu peux choisir\r\n ton propre forfait, nous t’invitons à prendre une\r\n légère marge afin d’être sûr de ne pas le dépasser !\r\n \r\n\r\n {/* {!scheduleWithoutPackBillingMode && (\r\n {}}\r\n role=\"button\"\r\n >\r\n {Wording.instruction}\r\n
\r\n )} */}\r\n\r\n \r\n \r\n {Wording.about.description}\r\n \r\n \r\n {Wording.about.choiceText}\r\n \r\n
    \r\n
  • \r\n {Wording.about.packageDiscount.main}{' '}\r\n \r\n {\r\n Wording.about.packageDiscount\r\n .description\r\n }\r\n \r\n
  • \r\n
  • \r\n {Wording.about.digitalDiscount.main}{' '}\r\n \r\n {\r\n Wording.about.digitalDiscount\r\n .description\r\n }\r\n \r\n
  • \r\n
\r\n \r\n {Wording.about.descriptionBottom}\r\n \r\n \r\n {Wording.about.descriptionBottomBis}\r\n \r\n
\r\n\r\n {energyTypes &&\r\n energyTypes.map((energy, index) => {\r\n const obj = fields[energy];\r\n const packageList = packages.filter(\r\n p => p.energy === energy\r\n );\r\n return (\r\n \r\n \r\n this.handleChangePackageFields(\r\n a,\r\n b,\r\n energy\r\n )\r\n }\r\n onChangePaymentFrequency={e =>\r\n this.handleChangeInstallmentFrequency(\r\n e,\r\n energy\r\n )\r\n }\r\n onChoosePackage={id =>\r\n this.handleChoosePackage(\r\n id,\r\n energy\r\n )\r\n }\r\n paymentFrequency={\r\n obj.installmentFrequency\r\n }\r\n prepaymentFrequencies={\r\n prepaymentFrequencies\r\n }\r\n billingModes={{\r\n cyclicBillingMode,\r\n scheduleBillingMode,\r\n scheduleWithoutPackBillingMode,\r\n }}\r\n packageID={obj.packageID}\r\n kind={energy}\r\n cyclicBill={obj.cyclicBill}\r\n showError={showError}\r\n onChangeCyclicBill={() =>\r\n this.handleChangeCyclicBill(\r\n energy\r\n )\r\n }\r\n changePackagesDispatch={\r\n changePackagesDispatch\r\n }\r\n changeProductOptionDispatch={\r\n changeProductOptionDispatch\r\n }\r\n changeOfferDispatch={\r\n changeOfferDispatch\r\n }\r\n showSeparator={\r\n index === 0 &&\r\n energyTypes.length > 1\r\n }\r\n loading={loading}\r\n />\r\n \r\n );\r\n })}\r\n\r\n {/* {this.handleDisplaySum()} */}\r\n
\r\n {isCurrentScreen && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n userState: state.userReducer,\r\n packageState: state.packageReducer,\r\n summaryState: state.summaryReducer,\r\n mainState: state.mainReducer,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n validatePackageScreenDispatch: payload =>\r\n dispatch(validatePackageScreen(payload)),\r\n changePackagesDispatch: payload => dispatch(changePackages(payload)),\r\n changeProductOptionDispatch: payload =>\r\n dispatch(changeProductOption(payload)),\r\n changeOfferDispatch: payload => dispatch(changeOffer(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PackageScreen);\r\n","import React from 'react';\r\nimport { ImageElement } from '../../components';\r\n\r\nimport resources from '../../utils/resources';\r\nimport { areListEqual, sendImage } from '../../utils/helpers';\r\n\r\nimport gasLogoOn from '../../assets/icons/ic-gas-on.svg';\r\nimport elcLogoOn from '../../assets/icons/ic-elec-on.svg';\r\nimport gasLogoOff from '../../assets/icons/ic-gas-off.svg';\r\nimport elcLogoOff from '../../assets/icons/ic-elec-off.svg';\r\n\r\nconst bothLogo = [\r\n { on: gasLogoOn, off: gasLogoOff },\r\n { on: elcLogoOn, off: elcLogoOff },\r\n];\r\n\r\nconst Custom = ({ text, isChecked }) => (\r\n \r\n {text.map((txt, i) => (\r\n \r\n \r\n \r\n \r\n {txt}\r\n

\r\n
\r\n
\r\n ))}\r\n
\r\n);\r\n\r\nconst UserContainer = ({ imageList, choiceType, onClick }) => (\r\n
\r\n {imageList &&\r\n imageList.map(\r\n ({ text, value, imageSrc, imageSrcOn, isCustom }, index) => (\r\n \r\n ) : (\r\n undefined\r\n )\r\n }\r\n text={text}\r\n imageSrc={\r\n resources[\r\n sendImage(\r\n choiceType,\r\n value,\r\n imageSrcOn,\r\n imageSrc\r\n )\r\n ]\r\n }\r\n onClick={() => onClick(value)}\r\n />\r\n )\r\n )}\r\n
\r\n);\r\n\r\nexport default UserContainer;\r\n","import UserContainer from './UserContainer';\r\n\r\nexport default UserContainer;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\n\r\nimport UserContainer from '../../containers/UserContainer';\r\nimport * as actions from './UserScreen.actions';\r\n\r\nimport Screen from '../screen';\r\nimport WordingConstant from '../../utils/wording.json';\r\n\r\nimport { logScreen, TagLogger } from '../../utils/firebase';\r\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\r\nimport './_UserScreen.scss';\r\nimport CustomSelector from '../../components/CustomSelector/CustomSelector';\r\nimport Title from '../../components/Typography/Title';\r\nimport Typography from '../../components/Typography/Typography';\r\n\r\nconst Wording = WordingConstant.UserScreen;\r\n\r\nexport class UserScreen extends React.Component {\r\n static navigationOptions = {\r\n nextScreen: Screen.DATA,\r\n previousScreen: null,\r\n buttonNextTitle: Wording.nextButton,\r\n buttonPreviousTitle: Wording.previousButton,\r\n title: Wording.title,\r\n screenId: Screen.USER,\r\n showSaveButton: false,\r\n step: 1,\r\n validate: () => {},\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n const { userState } = props;\r\n this.state = {\r\n fields: userState,\r\n setting: {\r\n isGoingNext: false,\r\n },\r\n };\r\n this.handleValidate = this.handleValidate.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n logScreen(TagLogger.USER);\r\n\r\n const {\r\n userState: { userType, energyTypes },\r\n setCanGoNext,\r\n } = this.props;\r\n UserScreen.navigationOptions.validate = this.handleValidate;\r\n\r\n let cgn = false;\r\n if (userType && energyTypes.length > 0) cgn = true;\r\n if (setCanGoNext) setCanGoNext(cgn);\r\n }\r\n\r\n componentDidUpdate() {\r\n const { fields } = this.state;\r\n const { setCanGoNext } = this.props;\r\n this.onUpdate();\r\n if (fields.userType && fields.energyTypes.length > 0)\r\n setCanGoNext(true);\r\n else setCanGoNext(false);\r\n }\r\n\r\n onUpdate() {\r\n const { fields, setting } = this.state;\r\n const { nextScreen } = this.props;\r\n if (\r\n fields.userType &&\r\n fields.energyTypes.length > 0 &&\r\n !setting.isGoingNext\r\n ) {\r\n this.setState({ setting: { isGoingNext: true } });\r\n nextScreen();\r\n }\r\n const { mainState, setStepById } = this.props;\r\n if (mainState.isRecover) {\r\n setStepById('STEP_HEIGHT_FINAL_RECAP');\r\n }\r\n }\r\n\r\n handleOnClick = (value, type) => {\r\n const { fields, setting } = this.state;\r\n const { resetScreenTo, isCurrentScreen, resetAllDispatch } = this.props;\r\n fields[type] = value;\r\n this.setState({ fields });\r\n\r\n resetAllDispatch();\r\n\r\n if (!isCurrentScreen) resetScreenTo();\r\n if (setting.isGoingNext === true) {\r\n setting.isGoingNext = false;\r\n this.setState({ setting });\r\n }\r\n };\r\n\r\n handleHideBanner = () => {\r\n const { resetRecoverDispatch } = this.props;\r\n resetRecoverDispatch();\r\n };\r\n\r\n checkEphemeral = () => {\r\n if (\r\n moment(new Date()).isBetween(\r\n moment('2022-11-14'),\r\n moment('2022-11-30')\r\n )\r\n ) {\r\n const title = `Attention :`;\r\n const messages = [\r\n `Nous avons momentanément désactivé la souscription à nos offres GAZ!`,\r\n `L'équipe Wekiwi`,\r\n ];\r\n\r\n return (\r\n
\r\n
\r\n

{title}

\r\n {messages.map((m, idx) => (\r\n

{m}

\r\n ))}\r\n
\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n handleValidate() {\r\n const {\r\n userState: { userType, energyTypes },\r\n validateUserScreenDispatch,\r\n } = this.props;\r\n const { fields } = this.state;\r\n validateUserScreenDispatch(fields);\r\n return userType && energyTypes;\r\n }\r\n\r\n render() {\r\n const { fields } = this.state;\r\n const {\r\n mainState: { errorRecovery },\r\n isModalOpen,\r\n } = this.props;\r\n const { items, typeUser } = Wording;\r\n return (\r\n \r\n {}}\r\n role=\"button\"\r\n tabIndex=\"0\"\r\n >\r\n {errorRecovery && (\r\n
\r\n
?
\r\n

{errorRecovery}

\r\n {}}\r\n role=\"button\"\r\n tabIndex=\"-1\"\r\n >\r\n X\r\n \r\n
\r\n )}\r\n {this.checkEphemeral()}\r\n
\r\n \r\n \r\n Afin de bien t’accompagner dans ta souscription, dis\r\n nous
si tu es un particulier ou un\r\n professionnel !\r\n
\r\n
\r\n\r\n \r\n Je suis un{' '}\r\n \r\n particulier\r\n \r\n \r\n ),\r\n },\r\n {\r\n id: typeUser.values[1].id,\r\n label: (\r\n \r\n Je suis un{' '}\r\n \r\n professionnel\r\n \r\n \r\n ),\r\n },\r\n ]}\r\n value={fields.userType}\r\n onSelect={e => this.handleOnClick(e, 'userType')}\r\n gap=\"4rem\"\r\n notFullWidth\r\n />\r\n
\r\n \r\n \r\n Besoin de lumière ou bien de quoi vous chauffer ?\r\n Wekiwi vous propose de l’électricité, du gaz, ou les\r\n deux !\r\n \r\n
\r\n {items &&\r\n items.map(({ itemType, title, values }, index) => (\r\n \r\n this.handleOnClick(value, itemType)\r\n }\r\n />\r\n ))}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n userState: state.userReducer,\r\n mainState: state.mainReducer,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n validateUserScreenDispatch: payload =>\r\n dispatch(actions.validateUserScreenSuccess(payload)),\r\n resetRecoverDispatch: payload => dispatch(actions.resetRecover(payload)),\r\n resetAllDispatch: payload => dispatch(actions.resetAll(payload))\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UserScreen);\r\n","import UserScreen from './UserScreen';\r\n\r\nexport default UserScreen;\r\n","import {\r\n USER_SCREEN_VALIDATE_SUCCESS,\r\n USER_SCREEN_RESET_RECOVER,\r\n SUMMARY_SCREEN_STATE_RESET,\r\n} from '../types';\r\n\r\nconst validateUserScreenSuccess = payload => ({\r\n type: USER_SCREEN_VALIDATE_SUCCESS,\r\n payload,\r\n});\r\n\r\nconst resetRecover = payload => ({\r\n type: USER_SCREEN_RESET_RECOVER,\r\n payload,\r\n});\r\n\r\nconst resetAll = payload => ({\r\n type: SUMMARY_SCREEN_STATE_RESET,\r\n payload,\r\n})\r\n\r\nexport { validateUserScreenSuccess, resetRecover, resetAll };\r\n","import { combineEpics, ofType } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, mergeMap } from 'rxjs/operators';\n\nimport { addDays } from 'date-fns';\nimport {\n controlBillingMode,\n getDateString,\n getDateEffectiveString,\n getFormattedDateToBO,\n getTodayDateString,\n prepareCyclicBillDate,\n} from '../../utils/helpers';\n\nimport { loadPaymentModal } from '../../containers/PaymentModal/PaymentModal.actions';\nimport {\n FINAL_PAYMENT_SCREEN_VALIDATE,\n FINAL_PAYMENT_SCREEN_VALIDATE_SUCCESS,\n FINAL_PAYMENT_SCREEN_VALIDATE_FAILURE,\n FINAL_PAYMENT_SCREEN_CHANGE_ADDITIONAL_RATES,\n FINAL_PAYMENT_SCREEN_CHANGE_PACKAGES,\n FINAL_PAYMENT_SCREEN_SET_REFERENCE,\n REDIRECT_TO_DATA_SCREEN_START_DATE,\n} from '../types';\n\nimport { log, TagLogger, TriggerButtonLogger } from '../../utils/logger';\n\nconst validateFinalPaymentScreen = payload => ({\n type: FINAL_PAYMENT_SCREEN_VALIDATE,\n payload,\n});\n\nconst validateFinalPaymentScreenSuccess = payload => ({\n type: FINAL_PAYMENT_SCREEN_VALIDATE_SUCCESS,\n payload,\n});\n\nconst validateFinalPaymentScreenFailure = payload => ({\n type: FINAL_PAYMENT_SCREEN_VALIDATE_FAILURE,\n payload,\n});\n\nconst changePackages = payload => ({\n type: FINAL_PAYMENT_SCREEN_CHANGE_PACKAGES,\n payload,\n});\n\nconst changeAdditionalRates = payload => ({\n type: FINAL_PAYMENT_SCREEN_CHANGE_ADDITIONAL_RATES,\n payload,\n});\n\nconst setReference = payload => ({\n type: FINAL_PAYMENT_SCREEN_SET_REFERENCE,\n payload,\n});\n\nconst redirectToDataScreen = () => ({\n type: REDIRECT_TO_DATA_SCREEN_START_DATE,\n});\n\nconst formatAddress = address => {\n const modifiedAddress = { ...address };\n const sliceIndexAddressStreet = address.street.indexOf(' ');\n if (sliceIndexAddressStreet > 0) {\n modifiedAddress.number = address.street.substring(\n 0,\n sliceIndexAddressStreet\n );\n modifiedAddress.street = address.street.substring(\n sliceIndexAddressStreet + 1\n );\n }\n\n return modifiedAddress;\n};\n\nconst prepareOrder = ({\n userType,\n energyTypes,\n common,\n part,\n pro,\n finance,\n contracts,\n partnerReference,\n thirdParty,\n reference,\n externalReference,\n createdBy,\n status,\n currentOrder,\n ...payload\n}) => {\n const channel = localStorage.getItem('channel');\n\n const isSwitch = common.dateContract\n ? common.dateContract.switch\n : undefined;\n\n let address = {\n street: common.address.address,\n postalCode: `${common.address.postalCode}`,\n townName: common.address.city,\n };\n if (\n common.newAddress.address &&\n common.newAddress.postalCode &&\n common.newAddress.city\n ) {\n address.street = common.newAddress.address;\n address.postalCode = `${common.newAddress.postalCode}`;\n address.townName = common.newAddress.city;\n }\n address = formatAddress(address);\n const acDt = new Date(common.birthdate);\n const contact = {\n address,\n birthTown: common.birthTown,\n civility: common.civility,\n firstName: common.name,\n lastName: common.surname,\n birthdate: common.birthdate\n ? getDateString({\n year: acDt.getFullYear(),\n month: acDt.getMonth(),\n date: acDt.getDate(),\n })\n : '',\n email: common.email,\n phone: common.tel,\n };\n if (\n pro &&\n pro.socialReason !== '' &&\n pro.legalForm !== '' &&\n pro.APECode !== '' &&\n pro.SIRET !== ''\n ) {\n contact.companyName = pro.socialReason;\n contact.companyType = pro.legalForm;\n contact.activityCode = pro.APECode;\n contact.identificationNumber = pro.SIRET;\n }\n let modifiedFinance = {\n paymentMode: 'DIRECT_DEBIT',\n accountOwnerFirstName: common.name,\n accountOwnerLastName: common.surname,\n };\n if (finance) {\n modifiedFinance = { ...finance };\n }\n if (\n common.newBillingAddress.address &&\n common.newBillingAddress.postalCode &&\n common.newBillingAddress.city\n ) {\n let billingAddress = {\n street: common.newBillingAddress.address,\n postalCode: `${common.newBillingAddress.postalCode}`,\n townName: common.newBillingAddress.city,\n };\n billingAddress = formatAddress(billingAddress);\n modifiedFinance.billingContact = {\n civility: common.newBillingAddress.civility,\n firstName: common.newBillingAddress.name,\n lastName: common.newBillingAddress.surname,\n address: billingAddress,\n };\n modifiedFinance.accountOwnerFirstName = common.newBillingAddress.name;\n modifiedFinance.accountOwnerLastName = common.newBillingAddress.surname;\n }\n const filteredContracts =\n contracts &&\n contracts.filter(contract => energyTypes.includes(contract.energy));\n\n const modifiedContracts =\n filteredContracts &&\n filteredContracts.map((contract, index) => {\n const nextContract = { ...contract };\n const {\n chosenPackages,\n offer,\n additionalOptions,\n cyclicBill,\n billingModeCode: bmc,\n } = payload[contract.energy];\n const billingModeCode = controlBillingMode(cyclicBill, bmc);\n\n const process = {\n type: common.situation,\n express: common.dateContract[contract.energy].express,\n appointmentTimeslot:\n common.dateContract[contract.energy].timeslot,\n };\n const effectiveStartRange = (\n common.dateContract.switch || { value: 'NOW' }\n ).value;\n\n const thirdParties = [];\n if (\n thirdParty &&\n !thirdParty.error &&\n thirdParty.code !== '' &&\n thirdParty.role !== ''\n ) {\n thirdParties.push({\n role: thirdParty.role,\n code: thirdParty.code,\n });\n }\n\n thirdParties.push({\n role: 'PARTNER',\n code:\n channel !== undefined && channel !== null && channel !== ''\n ? channel\n : 'WEB',\n });\n\n const coholder = part.coOwner;\n if (\n coholder &&\n coholder.firstName !== '' &&\n coholder.lastName !== ''\n ) {\n thirdParties.push({\n role: 'COHOLDER',\n code: '',\n civility: coholder.civility,\n firstName: coholder.firstName,\n lastName: coholder.lastName,\n });\n }\n\n const effectiveStartDate = (() => {\n const url =\n window.location !== window.parent.location\n ? document.referrer\n : document.location.href;\n const params = new URL(url).searchParams;\n const id = params.get('id');\n let dString;\n if (currentOrder && id) {\n dString = currentOrder.contracts[index].effectiveStartDate\n }\n else {\n dString = getDateEffectiveString(\n common.dateContract[contract.energy]\n );\n }\n\n if (isSwitch) {\n const { value: switchValue } = common.dateContract.switch;\n\n let date = cyclicBill\n ? prepareCyclicBillDate(contract.energy, switchValue)\n : new Date(dString);\n if (effectiveStartRange === 'LATER' && !id) {\n date = addDays(date, 14)\n }\n return getFormattedDateToBO(\n // prepareEffectiveStartDate(\n // date,\n // contract.energy,\n // switchValue,\n // billingModeCode\n // )\n date\n );\n }\n\n return dString;\n })();\n\n const subscriptionDate = getTodayDateString();\n const chosenProduct = { ...offer.product };\n\n if (offer.product && additionalOptions) {\n if (offer.product.additionalRates) {\n chosenProduct.additionalRates = offer.product.additionalRates.map(\n rate => {\n if (rate.type !== 'OPTION') {\n return rate;\n }\n const active =\n additionalOptions.indexOf(rate.label) !== -1;\n return {\n ...rate,\n active,\n };\n }\n );\n } else {\n chosenProduct.additionalRates = [];\n }\n }\n\n if (isSwitch && !cyclicBill) {\n nextContract.dueDate = getDateString(\n common.dateContract[contract.energy]\n );\n }\n\n return {\n ...nextContract,\n thirdParties,\n chosenProduct,\n effectiveStartRange,\n effectiveStartDate,\n subscriptionDate,\n billingModeCode,\n chosenPackages: chosenPackages || [],\n installmentFrequency:\n payload[contract.energy].installmentFrequency,\n deliveryPoint: {\n ...contract.deliveryPoint,\n process,\n },\n };\n });\n const firstPaymentCBStatus = modifiedContracts\n ? modifiedContracts.reduce(\n (\n acc,\n {\n firstPaymentCB,\n deliveryPoint: {\n process: { type },\n },\n }\n ) =>\n acc ||\n (firstPaymentCB !== undefined && type === 'MOVE_IN'\n ? firstPaymentCB\n : false),\n\n false\n )\n : {};\n\n const order = {\n contracts: modifiedContracts,\n customer: {\n contact,\n finance: modifiedFinance,\n type: userType,\n typePayment: common.situation === 'SWITCH' && \n (\n common.dateContract.switch || { value: 'NOW' }\n ).value === 'LATER' ? 'SDD' : 'OTHER',\n },\n };\n if (partnerReference) {\n order.partnerReference = partnerReference;\n }\n\n if (firstPaymentCBStatus || payload.retryCB) {\n order.firstPaymentCBStatus = 'PENDING';\n }\n\n if (createdBy) {\n order.createdBy = createdBy;\n }\n\n if (reference && reference !== '') {\n // In case of FAIL\n // use the same order reference\n return {\n ...order,\n externalReference,\n orderReference: reference,\n orderStatus: status,\n };\n }\n\n return order;\n};\n\nconst preparePayload = payload => {\n const order = prepareOrder(payload);\n\n const agent = localStorage.getItem('agent');\n\n if (agent) {\n order.createdBy = agent;\n }\n\n return { order };\n};\n\nconst mapGetPayment = (action, { apiRequest }) => {\n const payload = preparePayload(action.payload);\n const req = {\n ...payload,\n retryCB:\n action.payload && action.payload.retryCB\n ? action.payload.retryCB\n : false,\n typeOrder: action.payload && action.payload.typeOrder,\n alreadyClient: action.payload && action.payload.alreadyClient,\n };\n const option = {\n path: '/signContract',\n method: 'post',\n body: req,\n };\n\n return apiRequest(option).pipe(\n mergeMap(response => {\n if (response.iframe) {\n log({\n tag: TagLogger.SIGNING,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/signContract',\n statusAction: 'SUCCESS',\n triggerButton: 'validate-button',\n });\n return of(\n loadPaymentModal({\n ...response,\n order: payload.order,\n paymentType: 'DIRECT_DEBIT',\n }),\n validateFinalPaymentScreenSuccess(action.payload)\n );\n }\n const message = response.message || response.errorMessage;\n log({\n tag: TagLogger.SIGNING,\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/signContract',\n statusAction: 'FAILURE',\n triggerButton: 'validate-button',\n });\n return of(\n validateFinalPaymentScreenFailure({\n error: message,\n })\n );\n }),\n catchError(error => {\n log({\n tag: TagLogger.SIGNING,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/signContract',\n statusAction: 'FAILURE',\n triggerButton: TriggerButtonLogger.VALIDATE_BTN,\n });\n\n return of(\n validateFinalPaymentScreenFailure({\n error: error.message,\n })\n );\n })\n );\n};\n\nconst validateFinalPaymentScreenEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(FINAL_PAYMENT_SCREEN_VALIDATE),\n mergeMap(action => mapGetPayment(action, dependency))\n );\n\nconst finalPaymentScreenEpic = combineEpics(validateFinalPaymentScreenEpic);\n\nexport {\n validateFinalPaymentScreen,\n validateFinalPaymentScreenSuccess,\n validateFinalPaymentScreenFailure,\n redirectToDataScreen,\n finalPaymentScreenEpic,\n mapGetPayment,\n prepareOrder,\n changeAdditionalRates,\n changePackages,\n setReference,\n};\n","import React from 'react';\n\nimport { loadStripe } from '@stripe/stripe-js';\nimport { Elements } from '@stripe/react-stripe-js';\n\nimport { StripeForm } from '../../components';\nimport config from '../../utils/config';\n\nconst stripeProm = loadStripe(config.Stripe.publicKey);\n\nconst StripeContainer = ({ stripeInformations, onFormValidate }) => {\n if (!stripeInformations || !stripeInformations.clientSecret) return <>;\n const { clientSecret, billName, amount } = stripeInformations;\n return (\n \n \n \n );\n};\n\nexport default StripeContainer;\n","import { of, throwError } from 'rxjs';\nimport { catchError, mergeMap, switchMap } from 'rxjs/operators';\nimport { ofType, combineEpics } from 'redux-observable';\n\nimport {\n FIRST_PAYMENT_CB_FAILURE,\n REDIRECT_FINAL_SCREEN,\n RECALL_PAYMENT_CB,\n FAILURE_CB_MESSAGE,\n} from '../../screens/types';\nimport { loadPaymentModal } from './PaymentModal.actions';\nimport { log, TagLogger, TriggerButtonLogger } from '../../utils/logger';\n\nconst redirectFinalScreen = () => ({\n type: REDIRECT_FINAL_SCREEN,\n});\n\nconst firstPaymentCBFailure = payload => ({\n type: FIRST_PAYMENT_CB_FAILURE,\n payload,\n});\n\nconst recallPaymentCB = payload => ({\n type: RECALL_PAYMENT_CB,\n payload,\n});\n\nconst failureCBMessage = payload => ({\n type: FAILURE_CB_MESSAGE,\n payload,\n});\n\nconst mapGetPaymentCB = (action, { apiRequest }) => {\n const payload = { order: action.payload.order, whenCollected: action.payload.whenCollected };\n\n const option = {\n path: '/paymentCB',\n method: 'post',\n body: {...payload}\n };\n\n return apiRequest(option).pipe(\n mergeMap(response => {\n if (response.stripe !== undefined) {\n return of(response);\n }\n const message = response.message || response.errorMessage;\n\n return throwError({ message });\n }),\n catchError(error => of(error))\n );\n};\n\nconst recallPaymentCBEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(RECALL_PAYMENT_CB),\n\n switchMap(\n action => mapGetPaymentCB(action, dependency),\n\n (action, r) => [action, r]\n ),\n switchMap(([action, paymentResponse]) => {\n if (\n paymentResponse.code === 'NO_RESPONSE_FROM_PARTNER' ||\n paymentResponse.message\n ) {\n log({\n tag: TagLogger.PAYMENT,\n returnCode: paymentResponse.code,\n logMessage: paymentResponse.message,\n serviceCalled: '/paymentCB',\n statusAction: 'FAILURE',\n triggerButton: TriggerButtonLogger.RETRY_PAYMENT_BTN,\n });\n return of(\n firstPaymentCBFailure({\n error: paymentResponse.message,\n })\n );\n }\n\n log({\n tag: TagLogger.PAYMENT,\n returnCode: '200',\n logMessage: paymentResponse,\n serviceCalled: '/paymentCB',\n statusAction: 'SUCCESS',\n triggerButton: TriggerButtonLogger.RETRY_PAYMENT_BTN,\n });\n return of(\n loadPaymentModal({\n ...paymentResponse,\n order: action.payload.order,\n paymentType: 'PAYMENT_CB',\n })\n );\n }),\n catchError(error =>\n of(\n firstPaymentCBFailure({\n error: error.message,\n })\n )\n )\n );\nconst paymentCBScreenEpic = combineEpics(recallPaymentCBEpic);\n\nexport {\n firstPaymentCBFailure,\n paymentCBScreenEpic,\n mapGetPaymentCB,\n redirectFinalScreen,\n recallPaymentCB,\n failureCBMessage,\n};\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport StripeContainer from '../StripeFormContainer/StripeFormContainer';\nimport WordingConstant from '../../utils/wording.json';\nimport { CustomModal } from '../../components';\n\nimport * as CBActions from './PaymentCBModal.actions';\nimport * as actions from './PaymentModal.actions';\n\nconst wording = WordingConstant.PaymentModalCB;\n\nclass PaymentModal extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n isLoading: false, // Initialiser isLoading à false\n };\n }\n\n firstLoadingCB = true;\n\n firstLoading = true;\n\n componentDidUpdate = prevProps => {\n const { paymentState } = this.props;\n if (paymentState.iframe !== prevProps.paymentState.iframe) {\n this.firstLoading = true;\n this.firstLoadingCB = true;\n }\n };\n\n handleIframe = () => {\n const {\n paymentState: { iframe, paymentType },\n } = this.props;\n\n const isIframe = iframe !== null;\n\n if (paymentType === 'DIRECT_DEBIT' && isIframe) {\n if (!this.firstLoading) this.handleValidateModal();\n this.firstLoading = false;\n }\n };\n\n handleValidateModal = () => {\n const {\n paymentState: { reference, currentOrder, externalReference, status },\n validatePaymentModalDispatch,\n } = this.props;\n \n const prepareOrder = {\n ...currentOrder,\n externalReference,\n orderReference: reference,\n };\n \n this.setState({ isLoading: true });\n \n const handleTimeout = () => {\n if (status === 'IN_PROGRESS') {\n this.handleValidateModal();\n } else {\n validatePaymentModalDispatch({ reference, prepareOrder });\n this.setState({ isLoading: false });\n }\n };\n \n if (status === 'IN_PROGRESS') {\n setTimeout(handleTimeout, 15000);\n } else {\n handleTimeout();\n }\n };\n \n\n handleStripePaymentValidate = (isSuccess, errMsg) => {\n const {\n validatePaymentScreenSuccess,\n firstPaymentCBFailure,\n failureCBMessageDispatch,\n setStepById,\n } = this.props;\n if (isSuccess) {\n validatePaymentScreenSuccess({ orderStatus: true });\n setStepById('FINAL_SCREEN');\n } else {\n failureCBMessageDispatch({ message: errMsg });\n firstPaymentCBFailure();\n setStepById('FAILURE_SCREEN');\n }\n };\n\n render() {\n const {\n paymentState: { iframe, paymentType, stripe },\n } = this.props;\n const isPaymentCB = paymentType === 'PAYMENT_CB';\n const { isLoading } = this.state;\n\n const handleQuitModal = isPaymentCB\n ? () =>\n this.handleStripePaymentValidate(\n false,\n wording.failureMessage\n )\n : this.handleValidateModal;\n\n return (\n
\n \n {isLoading &&
{isLoading}
}\n\n {!isPaymentCB && iframe && (\n <>\n \n \n \n )}\n\n {isPaymentCB && (\n \n )}\n \n
\n );\n }\n}\n\nconst mapStateToProps = state => ({\n paymentState: state.paymentReducer,\n mainState: state.mainReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validatePaymentModalDispatch: payload =>\n dispatch(actions.validatePaymentScreen(payload)),\n validatePaymentScreenSuccess: payload =>\n dispatch(actions.validatePaymentScreenSuccess(payload)),\n firstPaymentCBFailure: payload =>\n dispatch(CBActions.firstPaymentCBFailure(payload)),\n failureCBMessageDispatch: payload =>\n dispatch(CBActions.failureCBMessage(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PaymentModal);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport Title from '../../components/Typography/Title';\nimport WordingConstant from '../../utils/wording.json';\nimport Screen from '../screen';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport Typography from '../../components/Typography/Typography';\nimport { FontFamilyVariant, BillingMode } from '../../constants/enums';\nimport './_ValidationDialogScreen.scss';\nimport * as actions from '../FinalSummaryScreen/FinalSummaryScreen.actions';\nimport { CustomButton, CustomCheckbox } from '../../components';\nimport MenLongArm from '../../assets/icons/ic-mister-long-arm.png';\nimport DownloadIcon from '../../assets/icons/ic-download.png';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport { CheckBoxVariant } from '../../components/CustomCheckbox/CustomCheckbox';\nimport {\n isScheduleWithoutPackBillingMode,\n multiplicationInstallmentFrequency,\n} from '../../utils/helpers';\nimport * as paymentActions from '../../containers/PaymentModal/PaymentModal.actions';\nimport * as FinalpaymentActions from '../FinalPaymentScreen/FinalPaymentScreen.action';\nimport LoadingOverlay from '../../components/LoadingOverlay';\nimport PaymentModal from '../../containers/PaymentModal/PaymentModal';\n\nconst Wording = WordingConstant.FinalSummaryScreen;\nconst linkPriceAndCGV = WordingConstant.Wekiwi.articles[4].link;\n\nexport class ValidationDialogScreen extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.FINALPAYMENT,\n previousScreen: Screen.SUMMARY,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n screenId: Screen.DATA,\n step: 9,\n setStepById: null,\n validate: () => {},\n disabled: () => {},\n returnButton: () => {},\n saveData: () => {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n // mode: CLIENT_MODE.NEW,\n isConfirmed: false,\n isCommunicationConfirmed: false,\n showValidationModal: false,\n acceptTerms: false,\n acceptEmail: false,\n acceptSepa: false,\n iframeOpened: false,\n typePayment: false,\n };\n this.myRef = React.createRef();\n this.onUpdate = this.onUpdate.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.energyByType = this.energyByType.bind(this);\n this.searchFrequency = this.searchFrequency.bind(this);\n }\n\n searchFrequency = (val, type) =>\n Wording.frequency[type].find(el => el.value === val).text || '';\n\n onUpdate() {\n const { dataState } = this.props;\n const { showValidationModal } = this.state;\n if (dataState.emailValid.isValid && showValidationModal)\n this.setState({ showValidationModal: false });\n }\n\n componentDidMount() {\n ValidationDialogScreen.navigationOptions.validate = this.nextScreenValidation;\n const { isCurrentScreen } = this.props;\n const { showValidationModal } = this.state;\n if (!showValidationModal && isCurrentScreen)\n scrollToRefDelay(this.myRef, 200);\n }\n\n nextScreenValidation = () => true;\n\n energyByType = energy => {\n switch (energy) {\n case 'EL':\n return 'électricité';\n case 'NG':\n return 'gaz naturel';\n default:\n return '';\n }\n };\n\n renderOptionInformation = (energy, summaryState) => (\n
    \n {summaryState[energy].additionalOptions.map((item, itemIndex) => {\n const labelOption = item;\n const option = summaryState[\n energy\n ].offer.product.additionalRates.filter(\n items => items.label === labelOption\n )[0];\n if (!option) {\n return null;\n }\n return (\n
  • \n {`L'option ${Wording.option_package_title[\n item\n ].toLowerCase()}`}{' '}\n {`qui ajoute + ${option.detail.price}${\n option.detail.unit === '€/MONTH' ? '€/mois' : '€'\n } ${Wording.option_package[item]}`}\n
  • \n );\n })}\n
\n );\n\n renderPackageInformation() {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n return (\n
    \n {energyTypes.map((item, itemIndex) => {\n if (summaryState[item].cyclicBill === true) {\n return (\n
  • \n {`Un offre ${this.energyByType(\n item\n )} avec facturation cyclique `}\n {Wording.cyclicOffer}\n {this.renderOptionInformation(\n item,\n summaryState\n )}\n
  • \n );\n }\n if (summaryState[item].chosenPackages.length > 1) {\n const winterData = summaryState[\n item\n ].chosenPackages.filter(\n season => season.timeframe === 'WINTER'\n )[0];\n const summerData = summaryState[\n item\n ].chosenPackages.filter(\n season => season.timeframe === 'SUMMER'\n )[0];\n\n return (\n
  • \n {`Un forfait ${this.energyByType(\n item\n )} été/hiver`}\n {` de ${\n summerData.packageQuantity\n } kWh (été) à ${summerData.amount}${\n summerData.currency\n }/mois et \n ${\n winterData.packageQuantity\n } kWh (hiver) à ${winterData.amount}${\n winterData.currency\n }/mois avec une frequence de prélèvement \n ${this.searchFrequency(\n summaryState[item].installmentFrequency,\n 'values'\n ).toLowerCase()}.`}\n {this.renderOptionInformation(\n item,\n summaryState\n )}\n
  • \n );\n }\n return (\n
  • \n {`Un forfait ${this.energyByType(\n item\n )} `}\n {`de ${\n summaryState[item].chosenPackages[0]\n .packageQuantity\n } kWh à ${\n summaryState[item].chosenPackages[0].amount\n }${\n summaryState[item].chosenPackages[0].currency\n }/mois avec une frequence de prélèvement\n ${this.searchFrequency(\n summaryState[item].installmentFrequency,\n 'values'\n ).toLowerCase()}.`}\n {this.renderOptionInformation(item, summaryState)}\n
  • \n );\n })}\n
\n );\n }\n\n componentDidUpdate(prevState) {\n const isCyclic = autorizedBillingModes =>\n Boolean(\n autorizedBillingModes &&\n autorizedBillingModes.find(\n mode =>\n mode.billingModeCode ===\n BillingMode.CYCLICAL_BILLING\n )\n );\n const {\n paymentState,\n summaryState,\n paymentReducer: { iframe, stripe, situation },\n setIsModalOpen,\n } = this.props;\n const { isConfirmed, isCommunicationConfirmed } = this.state;\n const paymentActivated =\n (isConfirmed && isCommunicationConfirmed) ||\n iframe !== null ||\n stripe !== null ||\n situation !== 'MES';\n\n if (paymentActivated) setIsModalOpen(true);\n else setIsModalOpen(false);\n this.onUpdate();\n const { setCanGoNext } = this.props;\n if (this.nextScreenValidation()) setCanGoNext(true);\n else setCanGoNext(false);\n if (\n paymentState &&\n ((paymentState.typePayment === 'SDD' &&\n paymentState.isDirectDebitSuccess &&\n (paymentState.status === 'FINALIZED' ||\n paymentState.status === 'FINALIZED_WITHOUT_DOC')) ||\n (paymentState.isDirectDebitSuccess &&\n (paymentState.firstPaymentCBStatus === 'PENDING' ||\n paymentState.firstPaymentSlimCollectStatus ===\n 'PENDING') &&\n (paymentState.status === 'FINALIZED' ||\n paymentState.status === 'FINALIZED_WITHOUT_DOC')))\n ) {\n const { setStepById } = this.props;\n if (\n paymentState.typePayment === 'SDD' ||\n (summaryState &&\n ((summaryState.EL.cyclicBill === true && isCyclic) ||\n (summaryState.NG.cyclicBill === true && isCyclic)))\n ) {\n setStepById('FINAL_SCREEN');\n } else {\n setStepById('STEP_PAYMENT');\n }\n return Promise.resolve();\n }\n }\n\n callOrderStatus = () => {\n const {\n paymentState: { currentOrder, externalReference, reference },\n validatePaymentScreenDispatch,\n } = this.props;\n\n const prepareOrder = {\n ...currentOrder,\n externalReference,\n orderReference: reference,\n };\n\n validatePaymentScreenDispatch({\n reference,\n prepareOrder,\n // logger: {\n // tag: TagLogger.FINALSUMMARY,\n // triggerButton: TriggerButtonLogger.VALIDATE_BTN,\n // },\n });\n };\n\n handleChange = (field, value) => {\n this.setState({\n [field]: value,\n });\n };\n\n prepareDataToConfirmationModal = () => {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n const { LATER } = this.state;\n const reduce = (acc, current) => {\n const {\n installmentFrequency,\n chosenPackages,\n cyclicBill,\n } = summaryState[current];\n\n if (!cyclicBill && LATER === 'LATER') {\n if (chosenPackages.length > 1) {\n return [\n ...acc,\n {\n energy: current,\n type: 'SUMMER_WINTER',\n },\n ];\n }\n const sumAmountByPackage = chosenPackages.reduce(\n (a, c) => parseFloat(c.amount) + a,\n 0\n );\n const sumAmountByPackageFrequency = multiplicationInstallmentFrequency(\n installmentFrequency,\n sumAmountByPackage\n );\n\n return [\n ...acc,\n {\n energy: current,\n sumAmountByPackage,\n sumAmountByPackageFrequency,\n installmentFrequency,\n type: 'BASE',\n },\n ];\n }\n\n return [\n ...acc,\n {\n energy: current,\n type: 'CYCLIC_BILL',\n },\n ];\n };\n\n return energyTypes.reduce(reduce, []);\n };\n\n isPaymentCB = () => {\n const {\n summaryState: { contracts },\n } = this.props;\n\n return contracts.reduce(\n (acc, { firstPaymentCB }) =>\n acc || (firstPaymentCB !== undefined ? firstPaymentCB : false),\n false\n );\n };\n\n handleValidate = () => {\n const isCyclic = autorizedBillingModes =>\n Boolean(\n autorizedBillingModes &&\n autorizedBillingModes.find(\n mode =>\n mode.billingModeCode ===\n BillingMode.CYCLICAL_BILLING\n )\n );\n const {\n userState,\n dataState,\n summaryState,\n paymentState,\n validateFinalPaymentScreenDispatch,\n } = this.props;\n\n if (\n dataState &&\n dataState.common &&\n dataState.common.birthdate === 'Invalid Date'\n ) {\n dataState.common.birthdate = '';\n }\n this.setState({ showPaymentModal: true });\n if (\n paymentState &&\n (paymentState.firstPaymentCBStatus === 'PENDING' ||\n paymentState.firstPaymentSlimCollectStatus === 'PENDING') &&\n (paymentState.status === 'FINALIZED' ||\n paymentState.status === 'FINALIZED_WITHOUT_DOC')\n ) {\n const { setStepById } = this.props;\n\n if (\n paymentState.typePayment === 'SDD' ||\n (summaryState &&\n ((summaryState.EL.cyclicBill === true && isCyclic) ||\n (summaryState.NG.cyclicBill === true && isCyclic)))\n ) {\n setStepById('FINAL_SCREEN');\n } else {\n setStepById('STEP_PAYMENT');\n }\n return Promise.resolve();\n }\n\n const typeOrder =\n dataState &&\n dataState.common.dateContract.switch &&\n dataState.common.dateContract.switch.value === 'LATER'\n ? 'SDD'\n : 'SLMCLT';\n\n return validateFinalPaymentScreenDispatch({\n ...userState,\n ...dataState,\n ...summaryState,\n ...paymentState,\n retryCB: typeOrder !== 'SDD',\n typeOrder,\n alreadyClient:\n dataState.logingInformation.validated === true ||\n dataState.logingInformation.validated === 'true',\n nextScreen: true,\n });\n };\n\n getPriceTotalByMonth = frequency => {\n const foundNumberOfMonth = Wording.frequency.days.find(\n day => day.value === frequency\n );\n return foundNumberOfMonth.text;\n };\n\n render() {\n const { acceptTerms, acceptEmail, acceptSepa } = this.state;\n const {\n packageState: { autorizedBillingModes },\n mainState: { loading, error },\n summaryState,\n } = this.props;\n const isScheduleWithoutPack = isScheduleWithoutPackBillingMode(\n autorizedBillingModes\n );\n const data = this.prepareDataToConfirmationModal();\n const allIsCyclicBill = data.reduce(\n (acc, current) => current.type === 'CYCLIC_BILL' && acc,\n true\n );\n const renderIfNotCyclic = (elm, elmCyclic) => {\n if (summaryState && summaryState.EL && summaryState.NG) {\n return summaryState.EL.cyclicBill === true ||\n summaryState.NG.cyclicBill === true\n ? elmCyclic\n : elm;\n }\n return elm;\n };\n const paymentCB = this.isPaymentCB();\n const allSum = data.reduce(\n (acc, { sumAmountByPackageFrequency }) =>\n sumAmountByPackageFrequency\n ? acc + sumAmountByPackageFrequency\n : acc,\n 0\n );\n const isDual = data.find(({ type }) => type === 'SUMMER_WINTER');\n\n const {\n paymentReducer: { iframe, stripe, situation },\n } = this.props;\n const { isConfirmed, isCommunicationConfirmed } = this.state;\n const paymentActivated =\n (isConfirmed && isCommunicationConfirmed) ||\n iframe !== null ||\n stripe !== null ||\n situation !== 'MES';\n\n const isCyclic = autorizedBillingModes =>\n Boolean(\n autorizedBillingModes &&\n autorizedBillingModes.find(\n mode =>\n mode.billingModeCode ===\n BillingMode.CYCLICAL_BILLING\n )\n );\n\n return (\n <>\n \n
\n \n \n \n {Wording.validation.recall}\n \n {renderIfNotCyclic(\n \n

\n {Wording.validation.frequency.base}\n

\n
,\n \n

\n {Wording.validation.frequency.cyclic}\n

\n
\n )}\n
\n \n En bref :\n \n {this.renderPackageInformation()}\n \n
\n\n {!isScheduleWithoutPack &&\n renderIfNotCyclic(\n

\n \n {\n Wording.validation[\n paymentCB\n ? 'attentionCB'\n : 'attention'\n ]\n }\n {allSum !== 0 &&\n !isDual &&\n !allIsCyclicBill &&\n data.map((item, itemIndex) => {\n const text = ` de ${\n item.sumAmountByPackageFrequency\n }€ en ${this.energyByType(\n item.energy\n )} (${item.sumAmountByPackage}€ x ${\n allIsCyclicBill === false\n ? this.getPriceTotalByMonth(\n item.installmentFrequency\n )\n : ''\n })`;\n return itemIndex === data.length - 1\n ? text\n : `${text} et`;\n })}\n \n

,\n
\n )}\n
\n this.handleChange('acceptTerms', v)}\n >\n \n {Wording.validation.checkboxLabel}\n \n
\n \n \n {Wording.validation.link}\n \n
\n \n this.handleChange('acceptSepa', v)}\n >\n \n {Wording.validation.checkboxLabel_mondatSepa}\n \n \n this.handleChange('acceptEmail', v)}\n >\n \n {\n Wording.validation\n .checkboxLabel_communications\n }\n \n \n
\n
\n this.handleValidate()}\n disabled={!acceptTerms || !acceptSepa}\n title={Wording.validation.btn_validate}\n color=\"orange\"\n loading={loading}\n />\n

{error}

\n
\n {this.state.showPaymentModal && paymentActivated ? (\n {}} />\n ) : null}\n \n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n dataState: state.dataReducer,\n paymentReducer: state.paymentReducer,\n summaryState: state.summaryReducer,\n userState: state.userReducer,\n packageState: state.packageReducer,\n mainState: state.mainReducer,\n paymentState: state.paymentReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validateFinalSummaryScreenDispatch: payload =>\n dispatch(actions.validateFinalSummaryScreen(payload)),\n validatePaymentScreenDispatch: payload =>\n dispatch(paymentActions.validatePaymentScreen(payload)),\n validateFinalPaymentScreenDispatch: payload =>\n dispatch(FinalpaymentActions.validateFinalPaymentScreen(payload)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ValidationDialogScreen);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\nimport Screen from '../screen';\n\nimport WordingData from '../../utils/wording.json';\nimport PaymentModal from '../../containers/PaymentModal/PaymentModal';\n\nimport * as actionsCB from '../../containers/PaymentModal/PaymentCBModal.actions';\nimport resources from '../../utils/resources';\nimport { CustomButton } from '../../components';\nimport { TagLogger, log } from '../../utils/logger';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\n\nconst Wording = WordingData.FailureCB;\n\nclass FailureCBScreen extends Component {\n static navigationOptions = {\n previousScreen: null,\n buttonNextTitle: '',\n buttonPreviousTitle: '',\n title: Wording.title,\n screenId: Screen.FAILURE_CB,\n showSaveButton: false,\n step: 4,\n validate: () => true,\n };\n\n componentDidMount = () => {\n log({\n tag: TagLogger.RETRY_PAYMENT,\n returnCode: '200',\n logMessage: null,\n serviceCalled: null,\n statusAction: 'SUCCESS',\n triggerButton: 'auto-loading',\n });\n };\n\n handleFinalized = () => {\n // const { redirectFinalScreenDispatch } = this.props;\n // redirectFinalScreenDispatch();\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n };\n\n handleRecallCB = () => {\n const {\n paymentState: { reference, currentOrder, externalReference },\n recallPaymentCBDispatch,\n } = this.props;\n\n const prepareOrder = {\n ...currentOrder,\n externalReference,\n orderReference: reference,\n };\n recallPaymentCBDispatch({ order: { ...prepareOrder } });\n };\n\n render() {\n const {\n paymentState: { failureCBMessage },\n mainState: { loading },\n setStepById,\n } = this.props;\n return (\n \n
\n
\n \"ic-erreur\"\n
\n {Wording.CB_failure}\n
\n {failureCBMessage && (\n
\n

\n {failureCBMessage}\n

\n
\n )}{' '}\n
\n {Wording.attention}\n
\n
\n\n
\n \n
\n \n
\n
\n \n
\n\n
\n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n paymentState: state.paymentReducer,\n mainState: state.mainReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n recallPaymentCBDispatch: payload =>\n dispatch(actionsCB.recallPaymentCB(payload)),\n redirectFinalScreenDispatch: () =>\n dispatch(actionsCB.redirectFinalScreen()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FailureCBScreen);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport Screen from '../screen';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport * as actions from '../FinalSummaryScreen/FinalSummaryScreen.actions';\nimport * as actionsCB from '../../containers/PaymentModal/PaymentCBModal.actions';\nimport { CustomButton } from '../../components';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport { multiplicationInstallmentFrequency } from '../../utils/helpers';\nimport * as paymentActions from '../../containers/PaymentModal/PaymentModal.actions';\nimport WordingData from '../../utils/wording.json';\nimport PaymentModal from '../../containers/PaymentModal/PaymentModal';\nimport resources from '../../utils/resources';\nimport { TagLogger, log } from '../../utils/logger';\nimport LoadingOverlay from '../../components/LoadingOverlay';\nimport config from '../../utils/config';\n\nconst Wording = WordingData.FailureSC;\n\nexport class FailureSCScreen extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.FINALSUMMARY,\n previousScreen: Screen.SUMMARY,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n step: 12,\n validate: () => {},\n disabled: () => {},\n returnButton: () => {},\n saveData: () => {},\n setStepById: null,\n screenId: Screen.FAILURE_SLIMCOLLECT,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isConfirmed: false,\n isCommunicationConfirmed: false,\n showValidationModal: false,\n acceptTerms: false,\n acceptEmail: false,\n iframeOpened: false,\n showPaymentModal: false,\n };\n this.myRef = React.createRef();\n this.onUpdate = this.onUpdate.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.energyByType = this.energyByType.bind(this);\n this.searchFrequency = this.searchFrequency.bind(this);\n }\n\n searchFrequency = (val, type) =>\n Wording.frequency[type].find(el => el.value === val).text || '';\n\n onUpdate() {\n const { dataState } = this.props;\n const { showValidationModal } = this.state;\n if (dataState.emailValid.isValid && showValidationModal)\n this.setState({ showValidationModal: false });\n }\n\n componentDidMount() {\n const { isCurrentScreen } = this.props;\n const { showValidationModal } = this.state;\n if (!showValidationModal && isCurrentScreen)\n scrollToRefDelay(this.myRef, 200);\n log({\n tag: TagLogger.RETRY_PAYMENT,\n returnCode: '200',\n logMessage: null,\n serviceCalled: null,\n statusAction: 'SUCCESS',\n triggerButton: 'auto-loading',\n });\n }\n\n nextScreenValidation = () => true;\n\n energyByType = energy => {\n switch (energy) {\n case 'EL':\n return 'électricité';\n case 'NG':\n return 'gaz naturel';\n default:\n return '';\n }\n };\n\n renderOptionInformation = (energy, summaryState) => (\n
    \n {summaryState[energy].additionalOptions.map((item, itemIndex) => {\n const labelOption = item;\n const option = summaryState[\n energy\n ].offer.product.additionalRates.filter(\n items => items.label === labelOption\n )[0];\n return (\n
  • \n {`L'option ${Wording.option_package_title[\n item\n ].toLowerCase()}`}{' '}\n {`qui ajoute + ${option.detail.price}${\n option.detail.unit === '€/MONTH' ? '€/mois' : '€'\n } ${Wording.option_package[item]}`}\n
  • \n );\n })}\n
\n );\n\n renderPackageInformation() {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n return (\n
    \n {energyTypes.map((item, itemIndex) => {\n if (summaryState[item].cyclicBill === true) {\n return (\n
  • \n {`Un offre ${this.energyByType(\n item\n )} avec facturation cyclique `}\n {Wording.cyclicOffer}\n {this.renderOptionInformation(\n item,\n summaryState\n )}\n
  • \n );\n }\n if (summaryState[item].chosenPackages.length > 1) {\n const winterData = summaryState[\n item\n ].chosenPackages.filter(\n season => season.timeframe === 'WINTER'\n )[0];\n const summerData = summaryState[\n item\n ].chosenPackages.filter(\n season => season.timeframe === 'SUMMER'\n )[0];\n\n return (\n
  • \n {`Un forfait ${this.energyByType(\n item\n )} été/hiver`}\n {` de ${\n summerData.packageQuantity\n } kWh (été) à ${summerData.amount}${\n summerData.currency\n }/mois et \n ${\n winterData.packageQuantity\n } kWh (hiver) à ${winterData.amount}${\n winterData.currency\n }/mois avec une frequence de prélèvement \n ${this.searchFrequency(\n summaryState[item].installmentFrequency,\n 'values'\n ).toLowerCase()}.`}\n {this.renderOptionInformation(\n item,\n summaryState\n )}\n
  • \n );\n }\n return (\n
  • \n {`Un forfait ${this.energyByType(\n item\n )} `}\n {`de ${\n summaryState[item].chosenPackages[0]\n .packageQuantity\n } kWh à ${\n summaryState[item].chosenPackages[0].amount\n }${\n summaryState[item].chosenPackages[0].currency\n }/mois avec une frequence de prélèvement\n ${this.searchFrequency(\n summaryState[item].installmentFrequency,\n 'values'\n ).toLowerCase()}.`}\n {this.renderOptionInformation(item, summaryState)}\n
  • \n );\n })}\n
\n );\n }\n\n componentDidUpdate(prevProps) {\n const {\n paymentState,\n paymentReducer: { iframe },\n } = this.props;\n\n this.onUpdate();\n\n if (\n paymentState &&\n paymentState.isDirectDebitSuccess &&\n paymentState.firstPaymentCBStatus !== 'PENDING' &&\n paymentState.orderStatus === 'FINALIZED'\n ) {\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n }\n\n if (\n iframe &&\n iframe !== prevProps.paymentReducer.iframe &&\n !this.state.iframeOpened\n ) {\n if (iframe.startsWith(' {\n const {\n paymentState: { currentOrder, externalReference, reference },\n validatePaymentScreenDispatch,\n } = this.props;\n\n const prepareOrder = {\n ...currentOrder,\n externalReference,\n orderReference: reference,\n };\n\n validatePaymentScreenDispatch({\n reference,\n prepareOrder,\n });\n };\n\n handleChange = (field, value) => {\n this.setState({\n [field]: value,\n });\n };\n\n prepareDataToConfirmationModal = () => {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n const reduce = (acc, current) => {\n const {\n installmentFrequency,\n chosenPackages,\n cyclicBill,\n } = summaryState[current];\n\n if (!cyclicBill) {\n if (chosenPackages.length > 1) {\n return [\n ...acc,\n {\n energy: current,\n type: 'SUMMER_WINTER',\n },\n ];\n }\n const sumAmountByPackage = chosenPackages.reduce(\n (a, c) => parseFloat(c.amount) + a,\n 0\n );\n const sumAmountByPackageFrequency = multiplicationInstallmentFrequency(\n installmentFrequency,\n sumAmountByPackage\n );\n\n return [\n ...acc,\n {\n energy: current,\n sumAmountByPackage,\n sumAmountByPackageFrequency,\n installmentFrequency,\n type: 'BASE',\n },\n ];\n }\n\n return [\n ...acc,\n {\n energy: current,\n type: 'CYCLIC_BILL',\n },\n ];\n };\n\n return energyTypes.reduce(reduce, []);\n };\n\n isPaymentCB = () => {\n const {\n summaryState: { contracts },\n } = this.props;\n\n return contracts.reduce(\n (acc, { firstPaymentCB }) =>\n acc || (firstPaymentCB !== undefined ? firstPaymentCB : false),\n false\n );\n };\n\n handleRecallCB = () => {\n const {\n paymentState: { reference, currentOrder, externalReference },\n recallPaymentCBDispatch,\n } = this.props;\n this.setState({ showPaymentModal: true });\n const newOrder = {\n ...currentOrder,\n externalReference,\n orderReference: reference,\n };\n recallPaymentCBDispatch({\n order: { ...newOrder },\n whenCollected: config.ChannelsDoorToDoor.includes(\n localStorage.getItem('channel')\n )\n ? 'LATER'\n : 'NOW',\n });\n };\n\n handleValidate = async () => {\n const {\n userState,\n dataState,\n summaryState,\n paymentState,\n paymentReducer,\n validateFinalSummaryScreenDispatch,\n } = this.props;\n\n if (\n dataState &&\n dataState.common &&\n dataState.common.birthdate === 'Invalid Date'\n ) {\n dataState.common.birthdate = '';\n }\n\n const { iframe } = paymentReducer;\n\n if (\n paymentState &&\n paymentState.isDirectDebitSuccess &&\n paymentState.firstPaymentCBStatus !== 'PENDING' &&\n paymentState.orderStatus === 'FINALIZED'\n ) {\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n return Promise.resolve();\n }\n\n if (iframe && !this.state.iframeOpened) {\n await new Promise(resolve => {\n const newWindow = window.open(iframe, '_blank');\n\n if (newWindow) {\n const interval = setInterval(() => {\n if (newWindow.closed) {\n clearInterval(interval);\n resolve();\n }\n }, 100);\n } else {\n resolve();\n }\n });\n }\n\n const typeOrder =\n dataState &&\n dataState.common.dateContract.switch &&\n dataState.common.dateContract.switch.value === 'LATER'\n ? 'SDD'\n : 'SLMCLT';\n\n await validateFinalSummaryScreenDispatch({\n ...userState,\n ...dataState,\n ...summaryState,\n ...paymentState,\n retryCB: false,\n typeOrder,\n alreadyClient:\n dataState.logingInformation.validated === true ||\n dataState.logingInformation.validated === 'true',\n });\n\n this.setState({\n iframeOpened: false,\n redirectToNewPage: true,\n showPaymentModal: false,\n });\n return Promise.resolve();\n };\n\n getPriceTotalByMonth = frequency => {\n const foundNumberOfMonth = Wording.frequency.days.find(\n day => day.value === frequency\n );\n return foundNumberOfMonth.text;\n };\n\n handleFinalized = () => {\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n };\n\n render() {\n const {\n mainState: { loading },\n paymentReducer: { iframe, stripe, situation },\n } = this.props;\n const { isConfirmed, isCommunicationConfirmed } = this.state;\n const paymentActivated =\n (isConfirmed && isCommunicationConfirmed) ||\n iframe !== null ||\n stripe !== null ||\n situation !== 'MES';\n\n return (\n
\n \n \n
\n
\n \"ic-erreur\"\n
\n {Wording.SC_failure}\n
\n
\n {Wording.attention}\n
\n
\n {Wording.solution_CB}\n
\n
\n\n
\n \n\n
\n \n
\n
\n {this.state.showPaymentModal && paymentActivated ? (\n {}} />\n ) : null}\n
\n\n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = state => ({\n dataState: state.dataReducer,\n paymentReducer: state.paymentReducer,\n summaryState: state.summaryReducer,\n userState: state.userReducer,\n packageState: state.packageReducer,\n mainState: state.mainReducer,\n paymentState: state.paymentReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validateFinalSummaryScreenDispatch: payload => {\n dispatch(actions.validateFinalSummaryScreen(payload));\n },\n validatePaymentScreenDispatch: payload =>\n dispatch(paymentActions.validatePaymentScreen(payload)),\n recallPaymentCBDispatch: payload =>\n dispatch(actionsCB.recallPaymentCB(payload)),\n redirectFinalScreenDispatch: () =>\n dispatch(actionsCB.redirectFinalScreen()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FailureSCScreen);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport Screen from '../screen';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport './_CancelSCScreen.scss';\nimport * as actions from '../FinalSummaryScreen/FinalSummaryScreen.actions';\nimport * as actionsCB from '../../containers/PaymentModal/PaymentCBModal.actions';\nimport { CustomButton } from '../../components';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport { multiplicationInstallmentFrequency } from '../../utils/helpers';\nimport * as paymentActions from '../../containers/PaymentModal/PaymentModal.actions';\nimport WordingData from '../../utils/wording.json';\nimport PaymentModal from '../../containers/PaymentModal/PaymentModal';\nimport resources from '../../utils/resources';\nimport { TagLogger, log } from '../../utils/logger';\nimport LoadingOverlay from '../../components/LoadingOverlay';\nimport config from '../../utils/config';\n\nconst Wording = WordingData.FailureSC;\nconst WordingCancel = WordingData.CancelSC;\n\nexport class CancelSCScreen extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.FINALSUMMARY,\n previousScreen: Screen.SUMMARY,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n step: 13,\n validate: () => {},\n disabled: () => {},\n returnButton: () => {},\n saveData: () => {},\n setStepById: null,\n screenId: Screen.CANCEL_SLIMCOLLECT,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isConfirmed: false,\n isCommunicationConfirmed: false,\n showValidationModal: false,\n acceptTerms: false,\n acceptEmail: false,\n iframeOpened: false,\n showPaymentModal: false,\n };\n this.myRef = React.createRef();\n this.onUpdate = this.onUpdate.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.energyByType = this.energyByType.bind(this);\n this.searchFrequency = this.searchFrequency.bind(this);\n }\n\n searchFrequency = (val, type) =>\n Wording.frequency[type].find(el => el.value === val).text || '';\n\n onUpdate() {\n const { dataState } = this.props;\n const { showValidationModal } = this.state;\n if (dataState.emailValid.isValid && showValidationModal)\n this.setState({ showValidationModal: false });\n }\n\n componentDidMount() {\n const { isCurrentScreen } = this.props;\n const { showValidationModal } = this.state;\n if (!showValidationModal && isCurrentScreen)\n scrollToRefDelay(this.myRef, 200);\n log({\n tag: TagLogger.RETRY_PAYMENT,\n returnCode: '200',\n logMessage: null,\n serviceCalled: null,\n statusAction: 'SUCCESS',\n triggerButton: 'auto-loading',\n });\n }\n\n nextScreenValidation = () => true;\n\n energyByType = energy => {\n switch (energy) {\n case 'EL':\n return 'électricité';\n case 'NG':\n return 'gaz naturel';\n default:\n return '';\n }\n };\n\n renderOptionInformation = (energy, summaryState) => (\n
    \n {summaryState[energy].additionalOptions.map((item, itemIndex) => {\n const labelOption = item;\n const option = summaryState[\n energy\n ].offer.product.additionalRates.filter(\n items => items.label === labelOption\n )[0];\n return (\n
  • \n {`L'option ${Wording.option_package_title[\n item\n ].toLowerCase()}`}{' '}\n {`qui ajoute + ${option.detail.price}${\n option.detail.unit === '€/MONTH' ? '€/mois' : '€'\n } ${Wording.option_package[item]}`}\n
  • \n );\n })}\n
\n );\n\n renderPackageInformation() {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n return (\n
    \n {energyTypes.map((item, itemIndex) => {\n if (summaryState[item].cyclicBill === true) {\n return (\n
  • \n {`Un offre ${this.energyByType(\n item\n )} avec facturation cyclique `}\n {Wording.cyclicOffer}\n {this.renderOptionInformation(\n item,\n summaryState\n )}\n
  • \n );\n }\n if (summaryState[item].chosenPackages.length > 1) {\n const winterData = summaryState[\n item\n ].chosenPackages.filter(\n season => season.timeframe === 'WINTER'\n )[0];\n const summerData = summaryState[\n item\n ].chosenPackages.filter(\n season => season.timeframe === 'SUMMER'\n )[0];\n\n return (\n
  • \n {`Un forfait ${this.energyByType(\n item\n )} été/hiver`}\n {` de ${\n summerData.packageQuantity\n } kWh (été) à ${summerData.amount}${\n summerData.currency\n }/mois et \n ${\n winterData.packageQuantity\n } kWh (hiver) à ${winterData.amount}${\n winterData.currency\n }/mois avec une frequence de prélèvement \n ${this.searchFrequency(\n summaryState[item].installmentFrequency,\n 'values'\n ).toLowerCase()}.`}\n {this.renderOptionInformation(\n item,\n summaryState\n )}\n
  • \n );\n }\n return (\n
  • \n {`Un forfait ${this.energyByType(\n item\n )} `}\n {`de ${\n summaryState[item].chosenPackages[0]\n .packageQuantity\n } kWh à ${\n summaryState[item].chosenPackages[0].amount\n }${\n summaryState[item].chosenPackages[0].currency\n }/mois avec une frequence de prélèvement\n ${this.searchFrequency(\n summaryState[item].installmentFrequency,\n 'values'\n ).toLowerCase()}.`}\n {this.renderOptionInformation(item, summaryState)}\n
  • \n );\n })}\n
\n );\n }\n\n componentDidUpdate(prevProps) {\n const {\n paymentState,\n paymentReducer: { iframe },\n } = this.props;\n\n this.onUpdate();\n\n if (\n paymentState &&\n paymentState.isDirectDebitSuccess &&\n paymentState.firstPaymentCBStatus !== 'PENDING' &&\n paymentState.orderStatus === 'FINALIZED'\n ) {\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n }\n\n if (\n iframe &&\n iframe !== prevProps.paymentReducer.iframe &&\n !this.state.iframeOpened\n ) {\n if (iframe.startsWith(' {\n const {\n paymentState: { currentOrder, externalReference, reference },\n validatePaymentScreenDispatch,\n } = this.props;\n\n const prepareOrder = {\n ...currentOrder,\n externalReference,\n orderReference: reference,\n };\n\n validatePaymentScreenDispatch({\n reference,\n prepareOrder,\n });\n };\n\n handleChange = (field, value) => {\n this.setState({\n [field]: value,\n });\n };\n\n prepareDataToConfirmationModal = () => {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n const reduce = (acc, current) => {\n const {\n installmentFrequency,\n chosenPackages,\n cyclicBill,\n } = summaryState[current];\n\n if (!cyclicBill) {\n if (chosenPackages.length > 1) {\n return [\n ...acc,\n {\n energy: current,\n type: 'SUMMER_WINTER',\n },\n ];\n }\n const sumAmountByPackage = chosenPackages.reduce(\n (a, c) => parseFloat(c.amount) + a,\n 0\n );\n const sumAmountByPackageFrequency = multiplicationInstallmentFrequency(\n installmentFrequency,\n sumAmountByPackage\n );\n\n return [\n ...acc,\n {\n energy: current,\n sumAmountByPackage,\n sumAmountByPackageFrequency,\n installmentFrequency,\n type: 'BASE',\n },\n ];\n }\n\n return [\n ...acc,\n {\n energy: current,\n type: 'CYCLIC_BILL',\n },\n ];\n };\n\n return energyTypes.reduce(reduce, []);\n };\n\n isPaymentCB = () => {\n const {\n summaryState: { contracts },\n } = this.props;\n\n return contracts.reduce(\n (acc, { firstPaymentCB }) =>\n acc || (firstPaymentCB !== undefined ? firstPaymentCB : false),\n false\n );\n };\n\n handleRecallCB = () => {\n const {\n paymentState: { reference, currentOrder, externalReference },\n recallPaymentCBDispatch,\n } = this.props;\n this.setState({ showPaymentModal: true });\n const newOrder = {\n ...currentOrder,\n externalReference,\n orderReference: reference,\n };\n recallPaymentCBDispatch({\n order: { ...newOrder },\n whenCollected: config.ChannelsDoorToDoor.includes(\n localStorage.getItem('channel')\n )\n ? 'LATER'\n : 'NOW',\n });\n };\n\n handleValidate = async () => {\n const {\n userState,\n dataState,\n summaryState,\n paymentState,\n paymentReducer,\n validateFinalSummaryScreenDispatch,\n } = this.props;\n\n if (\n dataState &&\n dataState.common &&\n dataState.common.birthdate === 'Invalid Date'\n ) {\n dataState.common.birthdate = '';\n }\n\n const { iframe } = paymentReducer;\n\n if (\n paymentState &&\n paymentState.isDirectDebitSuccess &&\n paymentState.firstPaymentCBStatus !== 'PENDING' &&\n paymentState.orderStatus === 'FINALIZED'\n ) {\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n return Promise.resolve();\n }\n\n if (iframe && !this.state.iframeOpened) {\n await new Promise(resolve => {\n const newWindow = window.open(iframe, '_blank');\n\n if (newWindow) {\n const interval = setInterval(() => {\n if (newWindow.closed) {\n clearInterval(interval);\n resolve();\n }\n }, 100);\n } else {\n resolve();\n }\n });\n }\n const typeOrder =\n dataState &&\n dataState.common.dateContract.switch &&\n dataState.common.dateContract.switch.value === 'LATER'\n ? 'SDD'\n : 'SLMCLT';\n\n await validateFinalSummaryScreenDispatch({\n ...userState,\n ...dataState,\n ...summaryState,\n ...paymentState,\n retryCB: false,\n typeOrder,\n alreadyClient:\n dataState.logingInformation.validated === true ||\n dataState.logingInformation.validated === 'true',\n });\n\n this.setState({\n iframeOpened: false,\n redirectToNewPage: true,\n showPaymentModal: false,\n });\n return Promise.resolve();\n };\n\n getPriceTotalByMonth = frequency => {\n const foundNumberOfMonth = Wording.frequency.days.find(\n day => day.value === frequency\n );\n return foundNumberOfMonth.text;\n };\n\n handleFinalized = () => {\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n };\n\n render() {\n const {\n mainState: { loading },\n paymentReducer: { iframe, stripe, situation },\n } = this.props;\n const { isConfirmed, isCommunicationConfirmed } = this.state;\n const paymentActivated =\n (isConfirmed && isCommunicationConfirmed) ||\n iframe !== null ||\n stripe !== null ||\n situation !== 'MES';\n\n return (\n <>\n
\n \n \n
\n
\n \n
\n {WordingCancel.SC_cancel}\n
\n
\n {Wording.attention}\n
\n
\n {Wording.solution_CB}\n
\n
\n\n
\n \n
\n \n
\n
\n {this.state.showPaymentModal && paymentActivated ? (\n {}} />\n ) : null}\n
\n\n
\n \n
\n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n dataState: state.dataReducer,\n paymentReducer: state.paymentReducer,\n summaryState: state.summaryReducer,\n userState: state.userReducer,\n packageState: state.packageReducer,\n mainState: state.mainReducer,\n paymentState: state.paymentReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validateFinalSummaryScreenDispatch: payload =>\n dispatch(actions.validateFinalSummaryScreen(payload)),\n validatePaymentScreenDispatch: payload =>\n dispatch(paymentActions.validatePaymentScreen(payload)),\n recallPaymentCBDispatch: payload =>\n dispatch(actionsCB.recallPaymentCB(payload)),\n redirectFinalScreenDispatch: payload =>\n dispatch(actionsCB.redirectFinalScreen(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CancelSCScreen);\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport { CustomButton } from '../../components';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport { TagLogger, log } from '../../utils/logger';\nimport { multiplicationInstallmentFrequency } from '../../utils/helpers';\nimport * as actions from '../FinalSummaryScreen/FinalSummaryScreen.actions';\nimport * as actionsCB from '../../containers/PaymentModal/PaymentCBModal.actions';\nimport * as paymentActions from '../../containers/PaymentModal/PaymentModal.actions';\nimport PaymentModal from '../../containers/PaymentModal/PaymentModal';\nimport resources from '../../utils/resources';\nimport WordingConstant from '../../utils/wording.json';\nimport Screen from '../screen';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport LoadingOverlay from '../../components/LoadingOverlay';\nimport config from '../../utils/config';\n\nconst Wording = WordingConstant.FinalPaymentScreen;\n\nexport class FinalPaymentScreen extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.VALIDATION,\n previousScreen: Screen.SITUATION,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n screenId: Screen.FINALPAYMENT,\n showSaveText: true,\n step: 4,\n validate: () => { },\n saveData: () => { },\n disabled: () => { },\n returnButton: () => { },\n setStepById: null,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isConfirmed: false,\n isCommunicationConfirmed: false,\n showValidationModal: false,\n acceptTerms: false,\n acceptEmail: false,\n iframeOpened: false,\n showPaymentModal: false,\n };\n this.myRef = React.createRef();\n this.onUpdate = this.onUpdate.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.energyByType = this.energyByType.bind(this);\n this.searchFrequency = this.searchFrequency.bind(this);\n }\n\n searchFrequency = (val, type) =>\n Wording.frequency[type].find(el => el.value === val).text || '';\n\n onUpdate() {\n const { dataState } = this.props;\n const { showValidationModal } = this.state;\n if (dataState.emailValid.isValid && showValidationModal)\n this.setState({ showValidationModal: false });\n }\n\n componentDidMount() {\n const { isCurrentScreen } = this.props;\n const { showValidationModal } = this.state;\n if (!showValidationModal && isCurrentScreen)\n scrollToRefDelay(this.myRef, 200);\n log({\n tag: TagLogger.RETRY_PAYMENT,\n returnCode: '200',\n logMessage: null,\n serviceCalled: null,\n statusAction: 'SUCCESS',\n triggerButton: 'auto-loading',\n });\n }\n\n nextScreenValidation = () => true;\n\n energyByType = energy => {\n switch (energy) {\n case 'EL':\n return 'électricité';\n case 'NG':\n return 'gaz naturel';\n default:\n return '';\n }\n };\n\n renderOptionInformation = (energy, summaryState) => (\n
    \n {summaryState[energy].additionalOptions.map((item, itemIndex) => {\n const labelOption = item;\n const option = summaryState[\n energy\n ].offer.product.additionalRates.filter(\n items => items.label === labelOption\n )[0];\n return (\n
  • \n {`L'option ${Wording.option_package_title[\n item\n ].toLowerCase()}`}{' '}\n {`qui ajoute + ${option.detail.price}${option.detail.unit === '€/MONTH' ? '€/mois' : '€'\n } ${Wording.option_package[item]}`}\n
  • \n );\n })}\n
\n );\n\n renderPackageInformation() {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n return (\n
    \n {energyTypes.map((item, itemIndex) => {\n if (summaryState[item].cyclicBill === true) {\n return (\n
  • \n {`Un offre ${this.energyByType(\n item\n )} avec facturation cyclique `}\n {Wording.cyclicOffer}\n {this.renderOptionInformation(\n item,\n summaryState\n )}\n
  • \n );\n }\n if (summaryState[item].chosenPackages.length > 1) {\n const winterData = summaryState[\n item\n ].chosenPackages.filter(\n season => season.timeframe === 'WINTER'\n )[0];\n const summerData = summaryState[\n item\n ].chosenPackages.filter(\n season => season.timeframe === 'SUMMER'\n )[0];\n\n return (\n
  • \n {`Un forfait ${this.energyByType(\n item\n )} été/hiver`}\n {` de ${summerData.packageQuantity\n } kWh (été) à ${summerData.amount}${summerData.currency\n }/mois et \n ${winterData.packageQuantity\n } kWh (hiver) à ${winterData.amount}${winterData.currency\n }/mois avec une frequence de prélèvement \n ${this.searchFrequency(\n summaryState[item].installmentFrequency,\n 'values'\n ).toLowerCase()}.`}\n {this.renderOptionInformation(\n item,\n summaryState\n )}\n
  • \n );\n }\n return (\n
  • \n {`Un forfait ${this.energyByType(\n item\n )} `}\n {`de ${summaryState[item].chosenPackages[0]\n .packageQuantity\n } kWh à ${summaryState[item].chosenPackages[0].amount\n }${summaryState[item].chosenPackages[0].currency\n }/mois avec une frequence de prélèvement\n ${this.searchFrequency(\n summaryState[item].installmentFrequency,\n 'values'\n ).toLowerCase()}.`}\n {this.renderOptionInformation(item, summaryState)}\n
  • \n );\n })}\n
\n );\n }\n\n componentDidUpdate(prevProps) {\n const {\n paymentState,\n paymentReducer: { iframe },\n } = this.props;\n\n this.onUpdate();\n\n if (\n paymentState &&\n paymentState.isDirectDebitSuccess &&\n paymentState.firstPaymentCBStatus !== 'PENDING' &&\n paymentState.orderStatus === 'FINALIZED'\n ) {\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n }\n\n if (\n iframe &&\n iframe !== prevProps.paymentReducer.iframe &&\n !this.state.iframeOpened\n ) {\n if (iframe.startsWith(' {\n const {\n paymentState: { currentOrder, externalReference, reference },\n validatePaymentScreenDispatch,\n } = this.props;\n\n const prepareOrder = {\n ...currentOrder,\n externalReference,\n orderReference: reference,\n };\n\n validatePaymentScreenDispatch({\n reference,\n prepareOrder,\n });\n };\n\n handleChange = (field, value) => {\n this.setState({\n [field]: value,\n });\n };\n\n prepareDataToConfirmationModal = () => {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n const reduce = (acc, current) => {\n const {\n installmentFrequency,\n chosenPackages,\n cyclicBill,\n } = summaryState[current];\n\n if (!cyclicBill) {\n if (chosenPackages.length > 1) {\n return [\n ...acc,\n {\n energy: current,\n type: 'SUMMER_WINTER',\n },\n ];\n }\n const sumAmountByPackage = chosenPackages.reduce(\n (a, c) => parseFloat(c.amount) + a,\n 0\n );\n const sumAmountByPackageFrequency = multiplicationInstallmentFrequency(\n installmentFrequency,\n sumAmountByPackage\n );\n\n return [\n ...acc,\n {\n energy: current,\n sumAmountByPackage,\n sumAmountByPackageFrequency,\n installmentFrequency,\n type: 'BASE',\n },\n ];\n }\n\n return [\n ...acc,\n {\n energy: current,\n type: 'CYCLIC_BILL',\n },\n ];\n };\n\n return energyTypes.reduce(reduce, []);\n };\n\n isPaymentCB = () => {\n const {\n summaryState: { contracts },\n } = this.props;\n\n return contracts.reduce(\n (acc, { firstPaymentCB }) =>\n acc || (firstPaymentCB !== undefined ? firstPaymentCB : false),\n false\n );\n };\n\n handleRecallCB = () => {\n const {\n paymentState: { reference, currentOrder, externalReference },\n recallPaymentCBDispatch,\n } = this.props;\n this.setState({ showPaymentModal: true });\n const newOrder = {\n ...currentOrder,\n externalReference,\n orderReference: reference,\n };\n recallPaymentCBDispatch({ order: { ...newOrder }, whenCollected: config.ChannelsDoorToDoor.includes(localStorage.getItem('channel')) ? 'LATER' : 'NOW'});\n };\n\n handleValidate = async () => {\n const {\n userState,\n dataState,\n summaryState,\n paymentState,\n paymentReducer,\n validateFinalSummaryScreenDispatch,\n } = this.props;\n\n if (\n dataState &&\n dataState.common &&\n dataState.common.birthdate === 'Invalid Date'\n ) {\n dataState.common.birthdate = '';\n }\n\n const { iframe } = paymentReducer;\n\n if (\n paymentState &&\n paymentState.isDirectDebitSuccess &&\n paymentState.firstPaymentCBStatus !== 'PENDING' &&\n paymentState.orderStatus === 'FINALIZED'\n ) {\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n return Promise.resolve();\n }\n\n if (iframe && !this.state.iframeOpened && !config.ChannelsDoorToDoor.includes('channel')) {\n await new Promise(resolve => {\n const newWindow = window.open(iframe, '_blank');\n\n if (newWindow) {\n const interval = setInterval(() => {\n if (newWindow.closed) {\n clearInterval(interval);\n resolve();\n }\n }, 100);\n } else {\n resolve();\n }\n });\n }\n const typeOrder = (dataState && dataState.common.dateContract.switch && dataState.common.dateContract.switch.value === 'LATER') \n ? 'SDD' : 'SLMCLT';\n await validateFinalSummaryScreenDispatch({\n ...userState,\n ...dataState,\n ...summaryState,\n ...paymentState,\n retryCB: false,\n typeOrder,\n alreadyClient: dataState.logingInformation.validated === true || dataState.logingInformation.validated === 'true',\n });\n\n this.setState({\n iframeOpened: false,\n redirectToNewPage: true,\n showPaymentModal: false,\n });\n return Promise.resolve();\n };\n\n\n\n getPriceTotalByMonth = frequency => {\n const foundNumberOfMonth = Wording.frequency.days.find(\n day => day.value === frequency\n );\n return foundNumberOfMonth.text;\n };\n\n handleFinalized = () => {\n const { setStepById } = this.props;\n setStepById('FINAL_SCREEN');\n };\n\n render() {\n const {\n mainState: { loading },\n paymentReducer: { iframe, stripe, situation },\n } = this.props;\n const { isConfirmed, isCommunicationConfirmed } = this.state;\n const paymentActivated =\n (isConfirmed && isCommunicationConfirmed) ||\n iframe !== null ||\n stripe !== null ||\n situation !== 'MES';\n\n return (\n <>\n \n\n \n
\n
\n
\n {Wording.title}\n {Wording.title2}\n
\n
\n
\n
\n
{Wording.paymentByCB}
\n
\n

{Wording.ibanDescription}

\n {/*

{Wording.firstPaymentDescription}

*/}\n
\n
\n \n
\n
\n \"ic-poweredStripe\"\n
\n
\n {!config.ChannelsDoorToDoor.includes(localStorage.getItem('channel'))&& (
\n
\n New\n
\n
{Wording.paymentViaBank} via ta banque
\n

Un nouveau processus plus rapide et sécurisé !

\n
\n
\n \"ic-home-details\"\n Sélectionne ta banque\n
\n
\n \"ic-login-details\"\n Connecte-toi avec tes identifiants\n
\n
\n \"ic-validate-details\"\n Valide la transaction, signe ton mandat SEPA \n
\n
\n \"ic-login-details\"\n Ton paiement est confirmé ! \n
\n
\n
\n \n
\n
\n \"ic-poweredSlimpay\"\n
\n
)}\n {/*
\n
Prélèvement automatique
\n
\n

{Wording.ibanDescription}

\n

{Wording.firstPaymentDescription}

\n
\n
\n \n
\n
\n \"ic-poweredStripe\"\n
\n
*/}\n
\n {this.state.showPaymentModal && paymentActivated ? (\n { }} />\n ) : null}\n
\n
\n \n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n dataState: state.dataReducer,\n paymentReducer: state.paymentReducer,\n summaryState: state.summaryReducer,\n userState: state.userReducer,\n packageState: state.packageReducer,\n mainState: state.mainReducer,\n paymentState: state.paymentReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validateFinalSummaryScreenDispatch: payload =>\n dispatch(actions.validateFinalSummaryScreen(payload)),\n validatePaymentScreenDispatch: payload =>\n dispatch(paymentActions.validatePaymentScreen(payload)),\n recallPaymentCBDispatch: payload =>\n dispatch(actionsCB.recallPaymentCB(payload)),\n redirectFinalScreenDispatch: payload =>\n dispatch(actionsCB.redirectFinalScreen(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FinalPaymentScreen);\n\n","import React from 'react';\nimport WordingConstant from '../../../utils/wording.json';\n\nconst DataWording = WordingConstant.DataScreen;\n\nconst AddressDetails = ({ userInfo }) => {\n const { civility, name, surname, address, newAddress } = userInfo;\n const civilityLabel = (\n DataWording.civility.values.find(v => v.value === civility) || {}\n ).label;\n const person = {\n name: `${civilityLabel} ${name} ${surname}`,\n address: `${newAddress.address ||\n address.address} ${newAddress.postalCode ||\n address.postalCode} ${newAddress.city || address.city}`,\n };\n return (\n
\n
\n Adresse de consommation:\n
\n
\n

{person.name}

\n

{person.address}

\n
\n
\n );\n};\n\nexport default AddressDetails;\n","import AddressDetails from './AddressDetails';\n\nexport default AddressDetails;\n","import React from 'react';\n\nimport Slider from 'react-slick';\nimport {\n PlanElement,\n EnergyDetail,\n EnergyGauge,\n CustomButton,\n CustomModal,\n PackageElement,\n} from '../../components';\nimport WordingConstant from '../../utils/wording.json';\n\nimport { buildPackagesForSlider } from '../../utils/helpers';\nimport resources from '../../utils/resources';\nimport AddressDetails from '../../components/FinalSummary/AddressDetails';\nimport GasIcon from '../../assets/icons/ic-gas-circle-on.png';\nimport ElecIcon from '../../assets/icons/ic-elec-circle-on.png';\n\nconst SlickButtonFix = ({ currentSlide, slideCount, children, ...props }) => (\n {children}\n);\n\nconst NextArrow = () => (\n \"ic-arrow-next\"\n);\nconst BackArrow = () => (\n \"ic-arrow-back\"\n);\n\nconst Wording = WordingConstant.FinalSummaryScreen;\n\nclass FinalSummaryContainer extends React.Component {\n constructor(props) {\n super(props);\n const { currentPackage } = props;\n this.state = {\n toggle: {\n setting: false,\n gauge: false,\n modal: false,\n },\n fields: {\n prices: [],\n packageID: currentPackage.id,\n },\n };\n }\n\n handleToggle = (type, val) => {\n const { toggle } = this.state;\n toggle[type] = val;\n this.setState({ toggle });\n };\n\n handleChangeFields = (name, value) => {\n const { fields } = this.state;\n fields[name] = value;\n this.setState({ fields });\n };\n\n renderModal() {\n const {\n toggle: { modal },\n } = this.state;\n return (\n this.handleToggle('modal', !modal)}\n >\n
\n
\n
?
\n

{Wording.popup.title}

\n
\n {Wording.popup.contents.map((content, index) => (\n \n {content}\n

\n ))}\n
\n \n );\n }\n\n renderPackages(packageList) {\n const {\n fields: { packageID },\n } = this.state;\n const isMultiple = packageList.length > 4;\n return (\n \n \n \n \n }\n prevArrow={\n \n \n \n }\n >\n {packageList &&\n (isMultiple\n ? buildPackagesForSlider(packageList)\n : packageList\n ).map(({ amount, id, recommended }, index) => (\n \n this.handleChangeFields('packageID', id)\n }\n />\n ))}\n \n
\n );\n }\n\n renderGauge(energy) {\n const {\n packages,\n ranges,\n handleChangeFields,\n handleResetFields,\n } = this.props;\n const {\n toggle: { setting, gauge, modal },\n fields: { packageID, prices },\n } = this.state;\n let initialProgress = 0;\n if (prices && prices.length > 1) {\n initialProgress = ranges.findIndex(\n r => r[0] === prices[0] && r[1] === prices[1]\n );\n initialProgress = initialProgress === -1 ? 0 : initialProgress;\n }\n const reducer = (accumulator, current) => {\n const max = current[0] > current[1] ? current[0] : current[1];\n return accumulator > max ? accumulator : max;\n };\n const gaugeMaxValue = ranges ? ranges.reduce(reducer, 0) : 0;\n if (!setting) {\n return (\n
\n this.handleToggle('setting', !setting)}\n />\n this.handleToggle('modal', !modal)}\n tabIndex=\"0\"\n onKeyPress={() => {}}\n role=\"button\"\n >\n {Wording.plan.descriptionBenefit}\n
\n
\n );\n }\n return (\n
\n

\n {Wording.plan.gauge.title}\n

\n\n
\n this.handleToggle('gauge', false)}\n />\n this.handleToggle('gauge', true)}\n />\n\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
\n\n
\n {!gauge ? (\n
\n {this.renderPackages(packages)}\n
\n ) : (\n
\n \n this.handleChangeFields('prices', p)\n }\n />\n
\n )}\n
\n
\n
\n {\n this.handleToggle('setting', !setting);\n if (gauge) {\n handleResetFields('prices');\n } else {\n handleResetFields('packageID');\n }\n }}\n />\n {\n this.handleToggle('setting', !setting);\n if (gauge) {\n handleChangeFields(\n prices.length === 0 ? ranges[0] : prices,\n ''\n );\n } else {\n handleChangeFields([], packageID);\n }\n }}\n />\n
\n
\n );\n }\n\n render() {\n const {\n prices,\n currentOptions,\n currentAdditionalOptions,\n handleToggle,\n offer,\n products,\n energy,\n details,\n loadingOption,\n options,\n // showSeparator,\n userInfo,\n consumption,\n } = this.props;\n\n return (\n
\n {this.renderModal()}\n
\n
\n \n\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n }\n}\n\nexport default FinalSummaryContainer;\n","import FinalSummaryContainer from './FinalSummaryContainer';\n\nexport default FinalSummaryContainer;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { CustomInput } from '../../components';\nimport CustomSelectV2 from '../../components/CustomSelect/CustomSelectV2';\nimport CustomToggleV2 from '../../components/CustomToggle/CustomToggleV2';\nimport { camelToUpperCase } from '../../utils/helpers';\n\nconst SwitchContainer = ({\n handleShowInput,\n handleChangeInput,\n showInput,\n toggleTitle,\n showBorder,\n thirdParty: { code, message, error, loading },\n select,\n contracts,\n }) => {\n const [inputValue, setInputValue] = useState('');\n const [inputError, setInputError] = useState('');\n\n useEffect(() => {\n setInputError('');\n setInputValue('');\n }, [select.currentValue.value]);\n\n const channel = localStorage.getItem('channel');\n\n const validateInput = (value) => {\n const safeContracts = contracts || [];\n\n const isNG = safeContracts.some(contract => contract.energy === \"NG\");\n if (isNG && select.currentValue.value === 'PROMOTION' && value === 'ELECTRICLIC') {\n setInputError('Le code promo n\\'est pas disponible pour l\\'offre que tu as choisis');\n return false;\n }\n if ((!channel || (channel.toUpperCase() === \"WEB\" && channel.toUpperCase() === \"WEB-ADS\"))&& select.currentValue.value === 'PROMOTION' && value !== 'ELECTRICLIC') {\n setInputError('Code promo non disponible');\n return false;\n }\n\n if (select.currentValue.value === 'SPONSOR') {\n if (!value.startsWith('CUF') || value.length !== 11) {\n setInputError('Le code parrain doit commencer par \"CUF\" et faire 11 caractères');\n return false;\n }\n }\n\n if (!value) {\n setInputError('');\n return true;\n }\n\n setInputError('');\n return true;\n };\n\n const handleInputChange = (e) => {\n const value = e.target.value;\n setInputValue(value);\n\n if (validateInput(value)) {\n handleChangeInput(e, code);\n } else {\n handleChangeInput(e, null);\n }\n };\n\n return (\n
\n {}}\n >\n {}}\n />\n
\n {showInput && (\n
\n \n\n \n
\n )}\n {message && (\n \n {message}\n

\n )}\n {inputError && (\n \n {inputError}\n

\n )}\n {select.currentValue.description && (\n

\n {select.currentValue.description}\n

\n )}\n
\n );\n};\n\nSwitchContainer.propTypes = {\n handleShowInput: PropTypes.func.isRequired,\n handleChangeInput: PropTypes.func.isRequired,\n toggleTitle: PropTypes.string.isRequired,\n showBorder: PropTypes.bool,\n select: PropTypes.shape({\n currentValue: PropTypes.object,\n defaultValue: PropTypes.object,\n options: PropTypes.array,\n handleChange: PropTypes.func,\n }).isRequired,\n};\n\nSwitchContainer.defaultProps = {\n showBorder: false,\n};\n\nexport default SwitchContainer;\n","import SwitchContainer from './SwitchContainer';\n\nexport default SwitchContainer;\n","import EnvironmentalOptions from './EnvironmentalOptions';\n\nexport default EnvironmentalOptions;\n","import React from 'react';\nimport OptionElement from '../../OptionElement';\n\nconst EnvironmentalOptions = ({\n summaryState,\n energyTypes,\n fields,\n handleToggleAdditionalOptions,\n}) => {\n const energy = energyTypes.find(_ => _ === 'EL') ? 'EL' : 'NG';\n\n const additionalOptions = fields[energy].additionalOptions;\n const { offer } = summaryState[energy];\n const additionalRatesList =\n (offer &&\n offer.product &&\n offer.product.additionalRates &&\n offer.product.additionalRates.filter(a => a.type === 'OPTION')) ||\n [];\n return (\n
\n {additionalRatesList && additionalRatesList.length !== 0 && (\n \n )}\n
\n );\n};\n\nexport default EnvironmentalOptions;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport { CustomModal } from '../../components';\n\nimport resources from '../../utils/resources';\n\nimport WordingData from '../../utils/wording.json';\n\nimport * as actions from '../MainScreen/MainScreen.actions';\n\nconst Wording = WordingData.SaveScreen;\n\nconst SaveDraftModal = ({\n mainState: {\n // saveDraftModal: { open, loading, orderNumber, isValidationEmail },\n saveDraftModal: { open, orderNumber, isValidationEmail },\n },\n closeSaveDraftModalDispatch,\n}) => (\n closeSaveDraftModalDispatch()}\n >\n
\n \n

\n {isValidationEmail ? Wording.text3 : Wording.text1}\n

\n

\n {isValidationEmail ? '' : Wording.text2}\n

\n {orderNumber !== null && (\n
\n Voici ton numéro de souscription :
\n {orderNumber}\n
\n )}\n
\n
\n \n);\n\n// export default SaveDraftModal;\nconst mapStateToProps = state => ({\n mainState: state.mainReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n closeSaveDraftModalDispatch: payload =>\n dispatch(actions.closeSaveDraftModal(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SaveDraftModal);\n","import React, { createRef } from 'react';\nimport { connect } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\nimport { addDays, format, parse } from 'date-fns';\nimport Config from '../../utils/config';\n\nimport FinalSummaryContainer from '../../containers/FinalSummaryContainer';\nimport SwitchContainer from '../../containers/SwitchContainer';\nimport WordingConstant from '../../utils/wording.json';\nimport Screen from '../screen';\n\nimport * as paymentActions from '../../containers/PaymentModal/PaymentModal.actions';\nimport { logScreen } from '../../utils/firebase';\nimport { log, TagLogger, TriggerButtonLogger } from '../../utils/logger';\nimport * as actionsSummary from '../SummaryScreen/SummaryScreen.actions';\nimport * as actions from './FinalSummaryScreen.actions';\nimport ValidateTimer from '../../components/ValidateTimer';\nimport resources from '../../utils/resources';\nimport { prepareContract } from './Contract.actions';\n// import PaymentModal from '../../containers/PaymentModal/PaymentModal';\nimport {\n isScheduleWithoutPackBillingMode,\n multiplicationInstallmentFrequency,\n prepareEffectiveStartDate,\n offerSimple,\n} from '../../utils/helpers';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport EnvironmentalOptions from '../../components/FinalSummary/EnvironmentalOptions';\nimport Title from '../../components/Typography/Title';\nimport { CustomButton } from '../../components';\nimport SaveDraftModal from './SaveDraftModal';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport { updateFinalSummaryScreenState } from './FinalSummaryScreen.actions';\n\nconst Wording = WordingConstant.FinalSummaryScreen;\nconst SurveyWording = WordingConstant.SurveyScreen;\nconst DataWording = WordingConstant.DataScreen;\nconst WordingLinks = WordingConstant.ValidateTimer;\n\nexport class FinalSummaryScreen extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.VALIDATION,\n previousScreen: Screen.SITUATION,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n screenId: Screen.FINALSUMMARY,\n showSaveText: true,\n step: 4,\n validate: () => {\n },\n saveData: () => {\n },\n };\n\n constructor(props) {\n super(props);\n const { summaryState } = props;\n const initialFields = {\n additionalOptions: [],\n packageID: '',\n prices: [],\n lastPackageID: '',\n lastPrices: [],\n };\n const currentAdvantageOption = Wording.advantage.body.options.find(\n op => op.value === summaryState.advantage.role,\n );\n\n this.state = {\n // isOpen: this.isSelectra() || false,\n // isConfirmed: false,\n // isCommunicationConfirmed: false,\n isOpen: false,\n timeRemaining: 0,\n loadingContract: false,\n toggle: {\n showInput: currentAdvantageOption !== undefined,\n currentAdvantageOption: currentAdvantageOption || {},\n },\n fields: {\n EL: {\n ...initialFields,\n additionalOptions: summaryState.EL.additionalOptions,\n },\n NG: {\n ...initialFields,\n additionalOptions: summaryState.NG.additionalOptions,\n },\n thirdParty: {\n code: summaryState.advantage.code,\n role: summaryState.advantage.role,\n message: '',\n error: false,\n loading: false,\n },\n },\n isValidEffectiveStartDate: this.checkEffectiveStartDate(),\n // showSaveDraftModal: false,\n };\n this.myRef = createRef();\n }\n\n intervalId = null;\n\n componentDidMount() {\n if (this.props.timeUnblock) {\n const timeUnblock = this.props.timeUnblock;\n const currentTime = Math.floor(Date.now() / 1000);\n const timeRemaining = timeUnblock - currentTime;\n\n this.setState({ timeRemaining });\n\n this.intervalId = setInterval(this.updateTimeRemaining, 1000);\n }\n logScreen(TagLogger.FINALSUMMARY);\n const {\n userState: { energyTypes },\n dataState: {\n common: { dateContract },\n },\n\n checkContractPaymentCBDispatch,\n } = this.props;\n const { fields } = this.state;\n FinalSummaryScreen.navigationOptions.saveData = () => ({\n thirdParty: fields.thirdParty,\n logger: {\n tag: TagLogger.FINALSUMMARY,\n triggerButton: TriggerButtonLogger.SAVE_BTN,\n },\n mergeProps: true,\n });\n\n checkContractPaymentCBDispatch({ energyTypes, dateContract });\n FinalSummaryScreen.navigationOptions.validate = () =>\n this.handleValidateScreen();\n\n const { handleGoNext } = this.props;\n if (handleGoNext) {\n handleGoNext(true);\n }\n scrollToRefDelay(this.myRef, 200);\n }\n\n componentWillUnmount() {\n // Nettoie l'intervalle lorsqu'il n'est plus nécessaire\n clearInterval(this.intervalId);\n }\n\n updateTimeRemaining = () => {\n this.setState(prevState => {\n const newTimeRemaining = prevState.timeRemaining - 1;\n\n if (newTimeRemaining <= 0) {\n // Le temps est écoulé, ferme la popin\n this.handelShowModal(false); // Décommentez cette ligne\n clearInterval(this.intervalId); // Arrête l'intervalle\n }\n\n return { timeRemaining: newTimeRemaining };\n });\n };\n\n handelShowModal = bool => {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n this.setState({ isOpen: bool });\n };\n\n formatTime = seconds => {\n // Convertit les secondes en format \"mm:ss\"\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = seconds % 60;\n return `${minutes}:${\n remainingSeconds < 10 ? '0' : ''\n }${remainingSeconds}`;\n };\n\n handleValide = () => {\n if (\n this.state.timeRemaining === null ||\n this.state.timeRemaining <= 0\n ) {\n this.handelShowModal(false);\n this.props.nextScreen();\n } else {\n this.handelShowModal(true);\n }\n };\n\n componentDidUpdate() {\n const {\n paymentState: { isReferenceRemoved },\n setReferenceDispatch,\n } = this.props;\n if (isReferenceRemoved) {\n window.history.replaceState(null, null, window.location.pathname);\n setReferenceDispatch({});\n }\n\n // if (isDirectDebitSuccess) {\n // FinalSummaryScreen.navigationOptions.validate = () => {\n // // this.callOrderStatus();\n // // const { handleGoNext } = this.props;\n // // if (handleGoNext)\n // // handleGoNext(true);\n // console.log(\"true\")\n // };\n // }\n }\n\n callOrderStatus = () =>\n // const {\n // paymentState: { currentOrder, externalReference, reference },\n // validatePaymentScreenDispatch,\n // } = this.props;\n\n // const prepareOrder = {\n // ...currentOrder,\n // externalReference,\n // orderReference: reference,\n // };\n\n // validatePaymentScreenDispatch({\n // reference,\n // prepareOrder,\n // // logger: {\n // // tag: TagLogger.FINALSUMMARY,\n // // triggerButton: TriggerButtonLogger.VALIDATE_BTN,\n // // },\n // });\n true;\n\n isSelectra = () => {\n const channel = localStorage.getItem('channel');\n\n return channel !== undefined && channel === 'SELECTRA';\n };\n\n channel = () => localStorage.getItem('channel');\n\n handleModalToggle = (type, val) => {\n this.setState({ [type]: val });\n };\n\n handleValidateScreen = () => {\n const {\n fields: { thirdParty },\n isValidEffectiveStartDate,\n } = this.state;\n const {\n userState,\n dataState,\n summaryState,\n paymentState,\n updateFinalSummaryScreenStateDispatch,\n redirectToDataScreenDispatch,\n } = this.props;\n\n if (!isValidEffectiveStartDate) {\n return redirectToDataScreenDispatch();\n }\n\n // Créez le payload avec les données nécessaires\n const payload = {\n ...userState,\n ...dataState,\n ...summaryState,\n ...paymentState,\n thirdParty,\n };\n\n // Dispatch l'action pour mettre à jour le state Redux\n updateFinalSummaryScreenStateDispatch(payload);\n\n return true;\n };\n\n\n handleToggle = ({ target: { value, checked } }, type) => {\n const {\n userState: { userType },\n summaryState,\n changeOfferDispatch,\n changeProductOptionDispatch,\n } = this.props;\n const offer = summaryState.offers.find(\n off =>\n off.energy === type &&\n (checked ? !off.product.default : off.product.default),\n );\n if (offer) {\n const options = checked ? [value] : [];\n changeOfferDispatch({\n offer,\n options,\n energyType: type,\n });\n } else {\n const productCode = checked\n ? value\n : (\n summaryState.products.find(\n p => p.energy === type && p.default,\n ) || {}\n ).productCode || '';\n\n changeProductOptionDispatch({\n ...summaryState,\n userType,\n productCode,\n energyType: type,\n contracts: summaryState.contracts.filter(\n p => p.energy === type,\n ),\n logger: {\n tag: TagLogger.FINALSUMMARY,\n triggerButton: TriggerButtonLogger.FIXED_PRICE,\n },\n });\n }\n };\n\n handleToggleAdditionalOptions = ({ target: { value } }) => {\n const { fields } = this.state;\n const {\n userState: { energyTypes },\n isCurrentScreen,\n resetScreenTo,\n } = this.props;\n if (!isCurrentScreen) resetScreenTo();\n energyTypes.forEach(energy => {\n const currentOptions = fields[energy].additionalOptions;\n if (currentOptions.includes(value)) {\n fields[energy].additionalOptions = currentOptions.filter(\n option => option !== value,\n );\n } else {\n currentOptions.push(value);\n }\n const { changeAdditionalRatesDispatch } = this.props;\n log({\n tag: TagLogger.FINALSUMMARY,\n returnCode: null,\n logMessage: null,\n serviceCalled: null,\n statusAction: null,\n triggerButton: `option-${value}`,\n });\n\n changeAdditionalRatesDispatch({\n additionalOptions: fields[energy].additionalOptions,\n energyType: energy,\n });\n this.setState({ fields });\n });\n };\n\n handleChangeFields = (prices, packageID, energy) => {\n const { fields } = this.state;\n fields[energy].prices = prices;\n fields[energy].packageID = packageID;\n\n const {\n changePackagesDispatch,\n packageState,\n summaryState,\n } = this.props;\n let packages = [];\n let id = packageID;\n if (packageID === '') {\n fields[energy].lastPackageID = packageID;\n id = summaryState[energy].packageID;\n const currentPackage =\n packageState.packages.find(p => p.id === id) ||\n packageState.packages.find(p => p.recommended);\n\n if (currentPackage) {\n packages = this.findPackages(\n currentPackage.authorizedPackages,\n prices,\n );\n\n id = currentPackage.id;\n }\n } else {\n fields[energy].lastPrices = prices;\n packages = packageState.packages\n ? packageState.packages.filter(\n p => p.energy === energy && p.id === packageID,\n )\n : [];\n }\n\n changePackagesDispatch({ packages, packageID: id, energyType: energy });\n this.setState({ fields });\n };\n\n handleResetFields = (name, energy) => {\n const { fields } = this.state;\n if (name === 'packageID') {\n fields[energy].packageID = fields[energy].lastPackageID || '';\n } else {\n fields[energy].prices = fields[energy].lastPrices || [];\n }\n this.setState({ fields });\n };\n\n findPackages = (packages, couple) => {\n const res = (packages &&\n packages.find(\n p =>\n p &&\n p.length === 2 &&\n p[0].amount === `${couple[0]}` &&\n p[1].amount === `${couple[1]}`,\n )) || [{}, {}];\n return res;\n };\n\n getDetail = energy => {\n const {\n codeState: { PDL, PCE },\n dataState: {\n common: { dateContract },\n },\n summaryState,\n userState: { energyTypes },\n } = this.props;\n\n const sections = [\n {\n name: 'providerDetails',\n details: [],\n },\n {\n name: 'startDate',\n details: [],\n },\n {\n name: 'specifications',\n details: [],\n },\n {\n name: 'billingFrequency',\n details: [],\n },\n ];\n\n const providerDetails = sections.find(_ => _.name === 'providerDetails')\n .details;\n\n if (energy === 'EL' && PDL !== '') {\n providerDetails.push({\n title: Wording.changeProviderPDL,\n value: PDL,\n });\n } else if (energy === 'NG' && PCE !== '') {\n providerDetails.push({\n title: Wording.changeProviderPCE,\n value: PCE,\n });\n }\n\n let isCyclic = false;\n for (let i = 0; i < energyTypes.length; i += 1) {\n if (summaryState[energyTypes[i]].cyclicBill === true) {\n isCyclic = true;\n break;\n }\n }\n\n const { date, month, year } = dateContract[energy];\n const dayLabel = `${date < 10 ? `0${date}` : date}`;\n const monthLabel = `${month + 1 < 10 ? `0${month + 1}` : month + 1}`;\n const dateString = `${dayLabel}/${monthLabel}/${year}`; // format JJ/MM/AAAA\n const dateFormat = 'dd/MM/yyyy';\n const parsedDate = parse(dateString, dateFormat, new Date());\n const addingDays = isCyclic ? 0 : 14\n const totalDate = format(addDays(parsedDate, addingDays), dateFormat);\n\n const sectionStartDate = sections.find(_ => _.name === 'startDate')\n .details;\n\n if (dateContract.switch && dateContract.switch.value === 'LATER') {\n sectionStartDate.push({\n title: Wording.beginDate,\n value: totalDate,\n });\n } else {\n sectionStartDate.push({\n title: Wording.beginDate,\n value: `${dayLabel}/${monthLabel}/${year}`,\n });\n }\n\n\n const contract =\n summaryState.contracts &&\n summaryState.contracts.find(c => c && c.energy === energy);\n if (contract === undefined) {\n return sections;\n }\n const { deliveryPoint } = contract;\n const readingFrequency = (\n Wording.frequency.values.find(\n v => v.value === deliveryPoint.readingFrequency,\n ) || {}\n ).text;\n\n const installmentFrequency = (\n Wording.frequency.values.find(\n v => v.value === summaryState[energy].installmentFrequency,\n ) || {}\n ).text;\n const settlementFrequency = summaryState[energy].cyclicBill\n ? Wording.settlementFrequencyValue.scheduleBill\n : Wording.settlementFrequencyValue.cyclicBill;\n\n let separateDetail;\n if (energy === 'EL') {\n const priceOption = (\n SurveyWording.priceOption.values.find(\n v => v.value === contract.rateOption,\n ) || {}\n ).text;\n separateDetail = [\n {\n title: Wording.contractualCapacityEL,\n value: `${deliveryPoint.contractualCapacity} ${deliveryPoint.contractualCapacityUnit}`,\n },\n {\n title: Wording.meterReading,\n value: deliveryPoint.meterNumber,\n },\n {\n title: Wording.priceOption,\n value: priceOption,\n },\n ];\n } else {\n separateDetail = [\n {\n title: Wording.profile,\n value: deliveryPoint.profile,\n },\n {\n title: Wording.meterReading,\n value: deliveryPoint.meterNumber,\n },\n {\n title: Wording.priceOption,\n value: deliveryPoint.gridRate,\n },\n ];\n if (contract.estimates && contract.estimates.length > 0) {\n separateDetail.unshift({\n title: Wording.contractualCapacityNG,\n value: `${contract.estimates[0].quantity} ${Wording.contractualCapacityUnitNG}`,\n });\n }\n }\n\n const sectionSpecifications = sections.find(\n _ => _.name === 'specifications',\n ).details;\n separateDetail.forEach(_ => sectionSpecifications.push(_));\n\n const sectionBillingFrequency = sections.find(\n _ => _.name === 'billingFrequency',\n ).details;\n\n sectionBillingFrequency.push({\n title: Wording.readingFrequency,\n value: readingFrequency,\n });\n\n sectionBillingFrequency.push({\n title: Wording.installmentFrequency,\n value: installmentFrequency,\n });\n\n sectionBillingFrequency.push({\n title: Wording.settlementFrequency,\n value: settlementFrequency,\n });\n\n return sections;\n };\n\n transformAuthorizedPackages = packages => {\n const res =\n packages &&\n packages\n .map(p => {\n if (p && p.length === 2) {\n return p\n .sort((x, y) =>\n x.timeframe < y.timeframe ? -1 : 1,\n )\n .map(x => parseInt(x.amount, 0));\n }\n return [0, 0];\n })\n .sort((x, y) => (x[0] < y[0] ? -1 : 1));\n return res;\n };\n\n returnParentingCode = (value, valid) => {\n const { fields } = this.state;\n\n if (fields.thirdParty.role === 'SPONSOR') {\n return valid ? value : fields.thirdParty.code;\n }\n return value;\n };\n\n handleChangeInputAdvantageCode = ({ target: { value, validity } }) => {\n const { fields } = this.state;\n fields.thirdParty = {\n ...fields.thirdParty,\n code: this.returnParentingCode(value, validity.valid),\n };\n this.setState({ fields });\n };\n\n handleChangeSelectAdvantageCode = value => {\n const { toggle, fields } = this.state;\n const {\n summaryState: { advantage },\n } = this.props;\n toggle.currentAdvantageOption = value;\n fields.thirdParty = {\n code: value.value === advantage.role ? advantage.code : '',\n role: value.value,\n message: '',\n error: false,\n loading: false,\n };\n this.setState({ toggle, fields });\n };\n\n handleShowInputAdvantageCode = () => {\n const { toggle, fields } = this.state;\n const {\n summaryState: { advantage },\n } = this.props;\n toggle.showInput = !toggle.showInput;\n toggle.currentAdvantageOption =\n Wording.advantage.body.options.find(\n op => op.value === advantage.role,\n ) || {};\n fields.thirdParty = {\n code: toggle.showInput ? advantage.code : '',\n role: toggle.showInput ? advantage.role : '',\n message: '',\n error: false,\n loading: false,\n };\n this.setState({ toggle, fields });\n };\n\n isPaymentCB = () => {\n const {\n summaryState: { contracts },\n } = this.props;\n\n return contracts.reduce(\n (acc, { firstPaymentCB }) =>\n acc || (firstPaymentCB !== undefined ? firstPaymentCB : false),\n false,\n );\n };\n\n checkEffectiveStartDate = () => {\n const {\n summaryState: { contracts },\n dataState: {\n common: { dateContract },\n },\n } = this.props;\n\n return contracts.reduce(\n (acc, curr) => {\n const { date, month, year } = dateContract[curr.energy];\n const d = new Date(year, month, date);\n const isSwitch = dateContract.switch;\n const nextDate = isSwitch\n ? prepareEffectiveStartDate(\n d,\n curr.energy,\n dateContract.switch.value,\n )\n : d;\n return acc || nextDate.getTime() > new Date().getTime();\n },\n\n false,\n );\n };\n\n prepareDataToConfirmationModal = () => {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n\n const reduce = (acc, current) => {\n const {\n installmentFrequency,\n chosenPackages,\n cyclicBill,\n } = summaryState[current];\n\n if (!cyclicBill) {\n if (chosenPackages.length > 1) {\n return [\n ...acc,\n {\n energy: current,\n type: 'SUMMER_WINTER',\n },\n ];\n }\n const sumAmountByPackage = chosenPackages.reduce(\n (a, c) => parseFloat(c.amount) + a,\n 0,\n );\n const sumAmountByPackageFrequency = multiplicationInstallmentFrequency(\n installmentFrequency,\n sumAmountByPackage,\n );\n\n return [\n ...acc,\n {\n energy: current,\n sumAmountByPackage,\n sumAmountByPackageFrequency,\n installmentFrequency,\n type: 'BASE',\n },\n ];\n }\n\n return [\n ...acc,\n {\n energy: current,\n type: 'CYCLIC_BILL',\n },\n ];\n };\n\n return energyTypes.reduce(reduce, []);\n };\n\n renderSwitch() {\n const {\n toggle: { showInput, currentAdvantageOption },\n fields: { thirdParty },\n } = this.state;\n const { summaryState } = this.props;\n const { options } = Wording.advantage.body;\n const switchProps = {\n showInput,\n toggleTitle: Wording.advantage.title,\n thirdParty: {\n code: thirdParty.code,\n message: thirdParty.message,\n error: thirdParty.error,\n loading: thirdParty.loading,\n },\n select: {\n options,\n currentValue: currentAdvantageOption,\n defaultValue: currentAdvantageOption,\n handleChange: this.handleChangeSelectAdvantageCode,\n },\n handleShowInput: this.handleShowInputAdvantageCode,\n handleChangeInput: this.handleChangeInputAdvantageCode,\n contracts: summaryState.contracts,\n };\n return ;\n }\n\n // renderEnvironmentalOptions() {}\n\n renderBody(energy, index) {\n const {\n userState: { energyTypes },\n summaryState,\n packageState,\n dataState: { common },\n } = this.props;\n const { fields } = this.state;\n const s = summaryState[energy];\n const offer = s.offer;\n const productOptions = s.options;\n const details = this.getDetail(energy);\n const additionalRatesList =\n (offer &&\n offer.product &&\n offer.product.additionalRates &&\n offer.product.additionalRates.filter(\n a => a.type === 'OPTION',\n )) ||\n [];\n const packages = packageState.packages\n ? packageState.packages.filter(p => p.energy === energy)\n : [];\n const prices = s.chosenPackages\n ? s.chosenPackages.map(p => p.amount)\n : [];\n const consumption = s.chosenPackages\n ? s.chosenPackages.map(p => p.quantityMonthly)\n : [];\n const products = summaryState.products\n ? summaryState.products.filter(\n product => !product.default && product.energy === energy,\n )\n : [];\n const currentPackage =\n packages.find(p => p.id === summaryState[energy].packageID) ||\n packages.find(p => p.recommended) ||\n {};\n const ranges = this.transformAuthorizedPackages(\n currentPackage.authorizedPackages,\n );\n\n return (\n this.handleToggle(e, energy)}\n handleToggleAdditionalOptions={e =>\n this.handleToggleAdditionalOptions(e, energy)\n }\n handleChangeFields={(ps, id) =>\n this.handleChangeFields(ps, id, energy)\n }\n handleResetFields={name => this.handleResetFields(name, energy)}\n loadingOption={s.loadingOption}\n energy={energy}\n details={details}\n userInfo={common}\n showSeparator={index + 1 < energyTypes.length}\n />\n );\n }\n\n handleFilePdf = async () => {\n try {\n const pdfUrl = '/static/Document d\\'informations.pdf';\n const encodedUrl = encodeURI(pdfUrl);\n const correctedUrl = encodedUrl.replace(/(%2F|%20)/g, match => match === '%2F' ? '/' : ' ');\n\n window.open(\n correctedUrl,\n '_blank',\n 'noopener noreferrer',\n );\n\n\n } catch (e) {\n console.error('Impossible de récupérer le fichier pdf', e);\n }\n };\n\n renderHeader() {\n const {\n dataState: {\n common: { civility, name, surname, address, newAddress },\n },\n } = this.props;\n const civilityLabel = (\n DataWording.civility.values.find(v => v.value === civility) || {}\n ).label;\n const person = {\n name: `${civilityLabel} ${name} ${surname}`,\n address: `${newAddress.address ||\n address.address} ${newAddress.postalCode ||\n address.postalCode} ${newAddress.city || address.city}`,\n };\n return (\n
\n

{person.name}

\n

{person.address}

\n
\n );\n }\n\n handleContract = async () => {\n try {\n this.setState({ loadingContract: true });\n const reduxStateString = localStorage.getItem('reduxState');\n if (reduxStateString) {\n const reduxState = JSON.parse(reduxStateString);\n const payloadContract = prepareContract(reduxState);\n\n if (\n Array.isArray(payloadContract) &&\n payloadContract.length > 0\n ) {\n payloadContract.map(async (contract, index) => {\n try {\n const headers = {\n 'x-api-key': Config.ApiKey,\n };\n\n const res = await fetch(\n `${Config.URL}/getContract`,\n {\n method: 'POST',\n body: JSON.stringify(contract),\n headers,\n },\n );\n\n if (res.ok) {\n const blob = await res.blob();\n const fileURL = URL.createObjectURL(blob);\n this.setState({ loadingContract: false });\n window.open(fileURL, `_blank_${index}`);\n } else {\n this.setState({ loadingContract: false });\n console.error(\n `La requête a échoué avec le statut ${res.status}`,\n );\n }\n } catch (error) {\n this.setState({ loadingContract: false });\n console.error(\n `Erreur lors de la récupération du contrat (index ${index}):`,\n error,\n );\n }\n });\n }\n }\n } catch (error) {\n console.error(\n 'Erreur générale lors de la récupération des contrats :',\n error,\n );\n }\n };\n\n render() {\n const {\n userState: { energyTypes },\n // paymentState: { iframe, stripe },\n packageState: { autorizedBillingModes },\n summaryState,\n handleSave,\n mainState: { loading, isRecover },\n isCurrentScreen,\n isModalOpen,\n } = this.props;\n const isScheduleWithoutPack = isScheduleWithoutPackBillingMode(\n autorizedBillingModes,\n );\n let isCyclic = false;\n for (let i = 0; i < energyTypes.length; i += 1) {\n if (summaryState[energyTypes[i]].cyclicBill === true) {\n isCyclic = true;\n break;\n }\n }\n const {\n // isOpen,\n // isConfirmed,\n // isCommunicationConfirmed,\n fields,\n loadingContract,\n // isValidEffectiveStartDate,\n } = this.state;\n const payloadContract = prepareContract(\n JSON.parse(localStorage.getItem('reduxState')),\n );\n return (\n <>\n
\n \n
\n
\n
\n \n
\n\n
\n \n this.handleToggleAdditionalOptions(e)\n }\n />\n
\n
\n
\n
\n \n
\n {energyTypes &&\n energyTypes.map((energy, index) =>\n this.renderBody(energy, index),\n )}\n {!isScheduleWithoutPack && this.renderSwitch()}\n
\n
\n \n Avant de valider, prends bien connaissance\n de tes documents :\n
\n\n

\n {WordingLinks.popup.bottomLinks\n .filter(\n link =>\n link.text &&\n (link.link || link.api),\n )\n .map((link, i) => {\n if (\n (link.value.includes(\n 'INFORMATION_DOCUMENT',\n ) ||\n link.value.includes(\n 'GET_CONTRACT',\n )) &&\n isCyclic === true\n ) {\n return null;\n }\n if (\n (link.value.includes(\n 'INFORMATION_DOCUMENT',\n )) && offerSimple(summaryState.offers) === true\n ) {\n return null;\n }\n if (\n link.value ===\n 'INFORMATION_DOCUMENT' &&\n (Config.ChannelInformationDocument.includes(\n this.channel(),\n ) ||\n !this.channel())\n ) {\n return null;\n }\n if (\n link.value ===\n 'INFORMATION_DOCUMENT'\n ) {\n return (\n \n {link.text}\n \n );\n }\n if (link.link) {\n return (\n \n {link.text}\n \n );\n }\n if (link.api) {\n const isSingleContract =\n Array.isArray(\n payloadContract,\n ) &&\n payloadContract.length ===\n 1;\n const linkText = isSingleContract\n ? 'Ton contrat'\n : 'Tes contrats';\n if (loadingContract) {\n return (\n <>\n \n \n  |\n \n \n );\n }\n return (\n \n {linkText} |\n \n );\n }\n return (\n \n );\n })}\n

\n
\n {isCurrentScreen && (\n
\n this.handleValide()}\n loading={loading}\n />\n {this.state.timeRemaining > 0 && (\n \n )}\n\n \n\n {!isRecover && (\n <>\n handleSave()}\n loading={loading}\n />\n

\n Enregistrer mes données : un\n lien t’est envoyé par mail afin\n de te permettre de poursuivre ta\n souscription à tout moment.\n
\n Attention : l’offre est\n sauvegardée durant 7 jours\n uniquement.\n

\n \n )}\n
\n )}\n {/* {((isConfirmed && isCommunicationConfirmed) ||\n iframe !== null ||\n stripe !== null) && } */}\n\n {/* */}\n {!isRecover && }\n
\n
\n
\n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n userState: state.userReducer,\n codeState: state.codeReducer,\n packageState: state.packageReducer,\n summaryState: state.summaryReducer,\n dataState: state.dataReducer,\n paymentState: state.paymentReducer,\n mainState: state.mainReducer,\n timeUnblock: state.paymentReducer.timeUnblock,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validatePaymentScreenDispatch: payload =>\n dispatch(paymentActions.validatePaymentScreen(payload)),\n validateFinalSummaryScreenDispatch: payload =>\n dispatch(actions.validateFinalSummaryScreen(payload)),\n updateFinalSummaryScreenStateDispatch: payload => dispatch(updateFinalSummaryScreenState(payload)),\n checkContractPaymentCBDispatch: payload =>\n dispatch(actionsSummary.checkContractPaymentCB(payload)),\n changePackagesDispatch: payload =>\n dispatch(actions.changePackages(payload)),\n redirectToDataScreenDispatch: () =>\n dispatch(actions.redirectToDataScreen()),\n changeAdditionalRatesDispatch: payload =>\n dispatch(actions.changeAdditionalRates(payload)),\n changeProductOptionDispatch: payload =>\n dispatch(actionsSummary.changeProductOption(payload)),\n changeOfferDispatch: payload =>\n dispatch(actionsSummary.changeOffer(payload)),\n setReferenceDispatch: payload => dispatch(actions.setReference(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FinalSummaryScreen);\n","import { combineEpics, ofType } from 'redux-observable';\nimport { of, forkJoin, throwError } from 'rxjs';\nimport { catchError, switchMap, mergeMap } from 'rxjs/operators';\n\nimport {\n DATA_SCREEN_VALIDATE_SUCCESS,\n DATA_SCREEN_VALIDATE_SUCCESS_FINAL,\n FETCH_CALENDAR_APPOINTMENT,\n FETCH_CALENDAR_APPOINTMENT_SUCCESS,\n FETCH_CALENDAR_APPOINTMENT_FAILURE,\n DATA_SCREEN_SAVE_COMMON,\n MINIMAL_DATA_FORM,\n MINIMAL_DATA_VALIDATE_EMAIL,\n MINIMAL_DATA_RESET_EMAIL,\n SEND_EMAIL_CODE_REQUEST,\n SEND_EMAIL_CODE_REQUEST_FAIL,\n SEND_EMAIL_CODE_REQUEST_SUCCESS,\n VERIFY_EMAIL_CODE_REQUEST,\n VERIFY_EMAIL_CODE_REQUEST_FAIL,\n VERIFY_EMAIL_CODE_REQUEST_SUCCESS,\n LOG_USER_INFORMATION_REQUEST,\n LOG_USER_INFORMATION_FAIL,\n LOG_USER_INFORMATION_SUCCESS,\n} from '../types';\nimport { log } from '../../utils/logger';\nimport Screen from '../screen';\nimport { saveOrderSuccess } from '../MainScreen/MainScreen.actions';\nimport config from '../../utils/config';\n\nconst dataScreenSaveCommon = payload => ({\n type: DATA_SCREEN_SAVE_COMMON,\n payload,\n});\n\nconst validateDataScreenSuccess = payload => ({\n type: DATA_SCREEN_VALIDATE_SUCCESS,\n payload,\n});\n\nconst validateDataScreenSuccessFinal = payload => ({\n type: DATA_SCREEN_VALIDATE_SUCCESS_FINAL,\n payload,\n});\n\nconst fetchCalendarAppointment = payload => ({\n type: FETCH_CALENDAR_APPOINTMENT,\n payload,\n});\n\nconst fetchCalendarAppointmentSuccess = payload => ({\n type: FETCH_CALENDAR_APPOINTMENT_SUCCESS,\n payload,\n});\n\nconst fetchCalendarAppointmentFailure = payload => ({\n type: FETCH_CALENDAR_APPOINTMENT_FAILURE,\n payload,\n});\n\nconst storeMinimumUserData = payload => ({\n type: MINIMAL_DATA_FORM,\n payload,\n});\n\nconst resetMinimumUserDataEmail = payload => ({\n type: MINIMAL_DATA_RESET_EMAIL,\n payload,\n});\n\nconst validateMinimumUserDataEmail = payload => ({\n type: MINIMAL_DATA_VALIDATE_EMAIL,\n payload,\n});\n\nconst sendEmailCodeRequest = payload => ({\n type: SEND_EMAIL_CODE_REQUEST,\n payload,\n});\n\nconst sendEmailCodeRequestFail = payload => ({\n type: SEND_EMAIL_CODE_REQUEST_FAIL,\n payload,\n});\n\nconst sendEmailCodeRequestSuccess = payload => ({\n type: SEND_EMAIL_CODE_REQUEST_SUCCESS,\n payload,\n});\n\nconst verifyEmailCodeRequest = payload => ({\n type: VERIFY_EMAIL_CODE_REQUEST,\n payload,\n});\n\nconst verifyEmailCodeRequestFail = payload => ({\n type: VERIFY_EMAIL_CODE_REQUEST_FAIL,\n payload,\n});\n\nconst verifyEmailCodeRequestSuccess = payload => ({\n type: VERIFY_EMAIL_CODE_REQUEST_SUCCESS,\n payload,\n});\n\nconst logUserInformationRequest = payload => ({\n type: LOG_USER_INFORMATION_REQUEST,\n payload,\n});\n\nconst logUserInformationRequestFail = payload => ({\n type: LOG_USER_INFORMATION_FAIL,\n payload,\n});\n\nconst logUserInformationRequestSuccess = payload => ({\n type: LOG_USER_INFORMATION_SUCCESS,\n payload,\n});\n\nconst preparePayload = (payload, energy) => {\n\n let fromDate;\n\n if (payload.fromDate !== undefined) {\n fromDate = payload.fromDate;\n } else {\n const dates = new Date().toISOString().split('T');\n if (dates && dates.length > 1) {\n fromDate = dates[0];\n }\n }\n\n const productCode = payload.offers.find(value => value.energy === energy).product.productCode\n\n return {\n fromDate,\n energyType: energy,\n customerType: payload.userType,\n productCode: productCode.includes(\"WEKIPRO\") ? productCode : null,\n processType: 'MOVE_IN',\n deliveryState: payload.contracts[0].deliveryPoint.state || '',\n meterType: payload.contracts[0].deliveryPoint.meterType || '',\n smartMeterStatus:\n payload.contracts[0].deliveryPoint.smartMeterStatus || '',\n deliveryStatus: payload.contracts[0].deliveryPoint.deliveryStatus || '',\n };\n};\n\nconst mapGetCalendarAndAppointment = (action, energy, { apiRequest }) => {\n const payload = preparePayload(action.payload, energy);\n return apiRequest({\n path: '/getCalendarAppointment',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n if (Array.isArray(response)) {\n log({\n tag: Screen.DATA,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/getCalendarAppointment',\n statusAction: 'SUCCESS',\n triggerButton: 'auto-load',\n });\n return of(response);\n }\n const message = response.message || response.errorMessage;\n\n log({\n tag: Screen.DATA,\n returnCode: response.code,\n logMessage: response.message,\n serviceCalled: '/getCalendarAppointment',\n statusAction: 'FAILURE',\n triggerButton: 'auto-load',\n });\n return throwError({ message });\n }),\n catchError(error => of(error))\n );\n};\n\nconst validateCalendarAppointementEpic = (action$, store, dependency) =>\n action$.pipe(\n ofType(FETCH_CALENDAR_APPOINTMENT),\n switchMap(action =>\n forkJoin(\n ...action.payload.energyTypes.map(energy =>\n mapGetCalendarAndAppointment(action, energy, dependency)\n )\n )\n ),\n switchMap(calendarResponse => {\n // Float does not work with the current jest version\n // const arrFlat = calendarResponse.flat();\n const arrFlat = [].concat(...calendarResponse);\n return of(fetchCalendarAppointmentSuccess(arrFlat));\n }),\n catchError(error =>\n of(\n fetchCalendarAppointmentFailure({\n error: error.message,\n })\n )\n )\n );\n\nconst mapSendEmailCode = (action, { apiRequest }) => {\n const payload = {\n ...action.payload,\n savingMode: 'CHECK_EMAIL',\n };\n return apiRequest({\n path: '/saveOrder',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n if (response.orderNumber) {\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/saveOrder - CHECK_EMAIL',\n statusAction: 'SUCCESS',\n });\n return of(\n sendEmailCodeRequestSuccess({\n isCodeSent: true,\n }),\n saveOrderSuccess({\n orderNumber: response.orderNumber,\n })\n );\n }\n return throwError({\n message: response.message || response.errorMessage,\n });\n }),\n catchError(error => {\n log({\n ...action.payload.logger,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/saveOrder - CHECK_EMAIL',\n statusAction: 'FAILURE',\n });\n return of(\n sendEmailCodeRequestFail({\n isCodeSent: false,\n })\n );\n })\n );\n};\n\nconst sendEmailCodeEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(SEND_EMAIL_CODE_REQUEST),\n mergeMap(action => mapSendEmailCode(action, dependency))\n );\n\nconst mapVerifyEmailCode = (action, { apiRequest }) => {\n const payload = {\n ...action.payload,\n savingMode: 'CHECK_CODE',\n };\n return apiRequest({\n path: '/saveOrder',\n method: 'post',\n body: payload,\n }).pipe(\n mergeMap(response => {\n if (response.orderNumber) {\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: null,\n serviceCalled: '/saveOrder - CHECK_CODE',\n statusAction: 'SUCCESS',\n });\n return of(\n verifyEmailCodeRequestSuccess({\n isValid: true,\n })\n );\n }\n return throwError({\n message: response.message || response.errorMessage,\n });\n }),\n catchError(error => {\n log({\n ...action.payload.logger,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/saveOrder - CHECK_CODE',\n statusAction: 'FAILURE',\n });\n return of(\n verifyEmailCodeRequestFail({\n isValid: false,\n error: error.message,\n })\n );\n })\n );\n};\n\nconst verifyEmailCodeEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(VERIFY_EMAIL_CODE_REQUEST),\n mergeMap(action => mapVerifyEmailCode(action, dependency))\n );\n\nconst mapLogUserInformation = (action, { apiRequest }) => {\n const payload = {\n ...action.payload,\n dataOff: undefined,\n };\n return apiRequest({\n path: '/login',\n method: 'post',\n body: payload,\n urlOverride: config.URL_CS,\n }).pipe(\n mergeMap(response => {\n const message = response.message || response.errorMessage;\n const dataOff = action.payload.dataOff;\n const isFailCredential =\n message && message.includes('Incorrect username or password.');\n const isEmailNotFound =\n message && message.includes('User does not exist.');\n\n // This condition only check if the email address is known by the api\n if (dataOff && dataOff.isOnlyCheck) {\n if (isFailCredential) {\n if (dataOff.onUserExist) dataOff.onUserExist();\n return of(\n logUserInformationRequestSuccess({ isUserExist: true })\n );\n }\n if (dataOff.onUserNotExist) dataOff.onUserNotExist();\n return of(\n logUserInformationRequestSuccess({ isUserExist: false }),\n sendEmailCodeRequest({ order: dataOff.order })\n );\n }\n if (response.accessToken) {\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: 'Log success',\n serviceCalled: '/login',\n statusAction: 'SUCCESS',\n });\n return of(\n logUserInformationRequestSuccess(response),\n saveOrderSuccess({\n orderNumber: response.user,\n })\n );\n }\n if (isFailCredential || isEmailNotFound)\n log({\n ...action.payload.logger,\n returnCode: '200',\n logMessage: 'Fail to log with wrong user credential',\n serviceCalled: '/login',\n statusAction: 'SUCCESS',\n });\n\n if (isFailCredential) {\n return of(\n logUserInformationRequestSuccess({\n error: 'Combinaison email et mot de passe invalide.',\n })\n );\n }\n if (isEmailNotFound) {\n return of(\n logUserInformationRequestSuccess({\n error: 'Utilisateur introuvable.',\n })\n );\n }\n return throwError({\n message,\n });\n }),\n catchError(error => {\n log({\n ...action.payload.logger,\n returnCode: error.code,\n logMessage: error.message,\n serviceCalled: '/login',\n statusAction: 'FAILURE',\n });\n return of(\n logUserInformationRequestFail({\n error: error.message,\n })\n );\n })\n );\n};\n\nconst logUserInformationEpic = (action$, state$, dependency) =>\n action$.pipe(\n ofType(LOG_USER_INFORMATION_REQUEST),\n mergeMap(action => mapLogUserInformation(action, dependency))\n );\n\nconst dataScreenEpic = combineEpics(\n validateCalendarAppointementEpic,\n sendEmailCodeEpic,\n verifyEmailCodeEpic,\n logUserInformationEpic\n);\n\nexport {\n validateDataScreenSuccess,\n validateDataScreenSuccessFinal,\n fetchCalendarAppointment,\n mapGetCalendarAndAppointment,\n fetchCalendarAppointmentSuccess,\n fetchCalendarAppointmentFailure,\n dataScreenSaveCommon,\n storeMinimumUserData,\n resetMinimumUserDataEmail,\n validateMinimumUserDataEmail,\n sendEmailCodeRequest,\n sendEmailCodeRequestFail,\n sendEmailCodeRequestSuccess,\n verifyEmailCodeRequest,\n verifyEmailCodeRequestFail,\n verifyEmailCodeRequestSuccess,\n logUserInformationRequest,\n logUserInformationRequestFail,\n logUserInformationRequestSuccess,\n dataScreenEpic,\n};\n","import React from 'react';\nimport { differenceInDays } from 'date-fns';\nimport WordingConstant from '../../utils/wording.json';\n\nimport Title from '../../components/Typography/Title';\nimport Typography from '../../components/Typography/Typography';\nimport GasIcon from '../../assets/icons/ic-gas-circle-on.png';\nimport ElecIcon from '../../assets/icons/ic-elec-circle-on.png';\nimport resources from '../../utils/resources';\nimport {\n CustomAccordion,\n CustomCalendar,\n TimeSlotComponent,\n} from '../../components';\nimport LoadingOverlay from '../../components/LoadingOverlay';\n\n\nconst Wording = WordingConstant.SituationScreen;\nconst WordingDate = WordingConstant.DataScreen;\n\nconst SituationMovedContainer = ({\n // setting,\n energyTypes,\n dateContract,\n handleDatePicker,\n handleChangeTimeslotSelect,\n handleDateCalendarOption,\n isCyclic,\n}) => (\n
\n {energyTypes.map(energy => {\n const currentDate = dateContract[energy].date\n ? new Date(\n dateContract[energy].year,\n dateContract[energy].month,\n dateContract[energy].date\n )\n : undefined;\n return (\n \n \n\n \n Attention ! Les dates et créneaux\n horaires sont\n indicatifs et non définitifs,
\n le gestionnaire de réseau est le seul à pouvoir fixer la\n date de l’intervention.\n
\n\n
\n \n handleDateCalendarOption(energy, 'selected')\n }\n handleOnDisabledDays={() =>\n handleDateCalendarOption(energy, 'disabled')\n }\n handleInputOnFocus={() => {\n this.handleChangeBool(energy, 'open');\n this.handleChangeBoolSelect(energy);\n }}\n handleOnDayChange={day =>\n handleDatePicker(day, energy)\n }\n handleOnDayPickerHide={() =>\n this.handleChangeBool(energy, 'close')\n }\n />\n
\n\n
\n Les dates avec un{' '}\n {' '}\n entraînent un surcoût.\n
\n {differenceInDays(currentDate, new Date()) < 14 && (\n

\n {WordingDate.contractDate.messageDropdown}\n

\n )}\n \n
\n \n
\n \n {isCyclic ? : <>\n \n \n Dans le cadre d'une mise en service, le paiement d'activation se fait par
\n carte bancaire ou via connexion à ta banque juste après ta souscription pour accélérer ton activation.\n
\n \n \n Le paiement d’activation correspond à ta\n \n {' '}1ère échéance de prépaiement.\n \n
\n Tu peux choisir la date qui te convient le mieux.\n
\n
\n Tes autres échéances seront prélevées\n \n {' '}le 5 du mois\n {' '}\n selon la fréquence de prépaiement que tu as choisie\n (tu pourras modifier cette date plus tard).\n \n
\n }\n\n
\n );\n })}\n
\n);\nexport default SituationMovedContainer;\n","import React, { useEffect, useState } from 'react';\nimport WordingConstant from '../../../utils/wording.json';\nimport CustomSelectV2 from '../../CustomSelect/CustomSelectV2';\n\nconst Wording = WordingConstant.DataScreen;\n\nconst ChangeSupplierSelectComponent = ({\n dateContract,\n handleDropdownContract,\n energy,\n isCyclic,\n}) => {\n const defaultValue = 'LATER';\n const [currentValue, setCurrentValue] = useState(defaultValue);\n\n useEffect(() => {\n if (dateContract.switch && dateContract.switch.value)\n setCurrentValue(dateContract.switch.value);\n }, [dateContract.switch]);\n\n return (\n
\n {isCyclic ? <> :\n\n \n\n <>

Pour pouvoir te donner une date d’activation de ton contrat, indique-nous d’abord quel moyen de paiement tu souhaites utiliser pour ton paiement d’activation.

\n\n
\n }\n
\n );\n};\n\nexport default ChangeSupplierSelectComponent;\n","import React, { useState, useEffect } from 'react';\nimport { differenceInDays } from 'date-fns';\nimport WordingConstant from '../../utils/wording.json';\n\nimport Title from '../../components/Typography/Title';\nimport Typography from '../../components/Typography/Typography';\nimport GasIcon from '../../assets/icons/ic-gas-circle-on.png';\nimport ElecIcon from '../../assets/icons/ic-elec-circle-on.png';\nimport { CustomAccordion, CustomCalendar } from '../../components';\nimport ChangeSupplierSelectComponent from '../../components/Situation/ChangeSupplierSelectComponent/ChangeSupplierSelectComponent';\nimport { checkIsDisableSwitchSelect } from '../../utils/helpers';\nimport { SituationTypes } from '../../constants/enums';\nimport { addDays, format } from 'date-fns';\nimport { fr } from 'date-fns/locale';\n\nconst Wording = WordingConstant.SituationScreen;\nconst WordingDate = WordingConstant.DataScreen;\n\nconst SituationChangeSupplierContainer = ({\n // setting,\n energyTypes,\n dateContract,\n handleDatePicker,\n handleDateCalendarOption,\n handleDropdownContract,\n isCyclic,\n}) => {\n useEffect(() => {\n const getSwitchLater = () => WordingDate.contractDate.dropdownValues[1];\n\n if (checkIsDisableSwitchSelect(SituationTypes.SWITCH)) {\n handleDropdownContract(getSwitchLater());\n }\n }, [handleDropdownContract]);\n const defaultValue = 'NOW';\n const [currentValue, setCurrentValue] = useState(defaultValue);\n const [dateChoosen, setdateChoosen] = useState();\n\n useEffect(() => {\n if (dateContract.switch && dateContract.switch.value)\n setCurrentValue(dateContract.switch.value);\n }, [dateContract.switch]);\n\n\n\n return (\n
\n {energyTypes.map(energy => {\n const currentDate = dateContract[energy].date\n ? new Date(\n dateContract[energy].year,\n dateContract[energy].month,\n dateContract[energy].date\n )\n : undefined;\n return (\n <>\n {isCyclic ? <> :\n \n\n
\n \n
\n
}\n\n \n {\n currentValue === \"NOW\" ? (\n \n ) : (\n isCyclic ? (\n <>\n \n \n ) : (\n <>\n \n \n )\n )\n }\n\n {isCyclic ? (\n \n ) : (\n
\n \n \n Le paiement d’activation correspond à ta\n 1ère échéance de prépaiement.\n
\n Tu peux choisir la date qui te convient le mieux.\n
\n
\n Tes autres échéances seront prélevées\n le 5 du mois selon la fréquence de prépaiement que tu as choisie (tu pourras modifier cette date plus tard).\n \n
\n
\n )}\n\n
\n \n handleDateCalendarOption(energy, 'selected')\n }\n handleOnDisabledDays={() =>\n handleDateCalendarOption(energy, 'disabled')\n }\n handleInputOnFocus={() => {\n this.handleChangeBool(energy, 'open');\n this.handleChangeBoolSelect(energy);\n }}\n handleOnDayChange={day => {\n handleDatePicker(day, energy)\n setdateChoosen(day)\n }\n }\n handleOnDayPickerHide={() =>\n this.handleChangeBool(energy, 'close')\n }\n />\n
\n {differenceInDays(currentDate, new Date()) < 14 && (\n

\n {WordingDate.contractDate.messageDropdown}\n

\n )}\n {/* */}\n {\n currentValue === \"NOW\" ? (\n <>\n \n \n Le paiement d'activation se fait par\n carte bancaire ou via connexion à ta banque juste après ta souscription pour accélérer ton activation.\n \n \n ) : (\n dateChoosen && (\n <>\n {isCyclic ? (\n \n ) : (\n <>\n \n

\n Avec la date de paiement d’activation que tu viens de choisir, l’activation de ton contrat gaz est prévue le :\n {format(addDays(dateChoosen, 14), \"dd/MM/yyyy\", { locale: fr })}.\n Cette date n’est qu’indicative.\n

\n \n )}\n \n )\n\n )\n }\n\n\n
\n \n );\n })}\n
\n );\n};\n\nexport default SituationChangeSupplierContainer;\n","import SituationContainer from './SituationContainer';\r\n\r\nexport default SituationContainer;\r\n","import React from 'react';\nimport SituationMovedContainer from './SituationMovedContainer';\nimport SituationChangeSupplierContainer from './SituationChangeSupplierContainer';\n\nconst SituationContainer = ({\n userState: { energyTypes },\n fields: {\n common: { situation, dateContract },\n },\n // setting: { showError },\n handleDatePicker,\n handleDropdownContract,\n handleDateCalendarOption,\n handleChangeTimeslotSelect,\n isCyclic,\n}) => (\n
\n {situation === 'MOVE_IN' && (\n \n )}\n\n {situation === 'SWITCH' && (\n \n )}\n
\n);\nexport default SituationContainer;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport accents from 'remove-accents';\nimport Screen from '../screen';\nimport SearchService from '../../utils/search';\nimport * as actions from './SituationScreen.actions';\nimport * as helpers from '../../utils/helpers';\nimport Config from '../../utils/config';\nimport { searchSiret, searchAppointmentTimeslot } from '../../utils/apiRequest';\n\nimport WordingConstant from '../../utils/wording.json';\nimport { renderValueDate } from '../../components/CustomDate/CustomDate';\nimport { TagLogger, TriggerButtonLogger } from '../../utils/logger';\nimport { logScreen } from '../../utils/firebase';\nimport { SituationTypes, BillingMode } from '../../constants/enums';\nimport SituationContainer from '../../containers/SituationContainer';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport Title from '../../components/Typography/Title';\nimport Typography from '../../components/Typography/Typography';\nimport CustomSelector from '../../components/CustomSelector/CustomSelector';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport { CustomButton } from '../../components';\nimport { addDays } from 'date-fns';\n\n\nconst Wording = WordingConstant.DataScreen;\nconst UserScreenWording = WordingConstant.UserScreen;\n\nexport class SituationScreen extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.FINALSUMMARY,\n previousScreen: Screen.SUMMARY,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n screenId: Screen.DATA,\n step: 7,\n validate: () => {},\n disabled: () => {},\n returnButton: () => {},\n saveData: () => {},\n };\n\n constructor(props) {\n super(props);\n const {\n dataState,\n summaryState: { contracts },\n } = props;\n const { address } = contracts[0].deliveryPoint;\n let currentAddress;\n const { common, part } = dataState;\n if (address && address.address) {\n let fullAddress = `${address.street || ''}`;\n if (address.number) {\n fullAddress = `${address.number} ${fullAddress}`;\n }\n currentAddress = {\n address: fullAddress,\n postalCode: address.postalCode || '',\n city: address.townName || '',\n netArea: address.netArea,\n };\n } else {\n currentAddress = common.address;\n }\n const checkedNewAddress =\n common.newAddress &&\n (common.newAddress.address ||\n common.newAddress.postalCode ||\n common.newAddress.city);\n const checkedAddCoOwner =\n part.coOwner &&\n (part.coOwner.firstName !== '' || part.coOwner.lastName !== '');\n const checkedNewBillingAddress =\n common.newBillingAddress &&\n (common.newBillingAddress.name ||\n common.newBillingAddress.surname ||\n common.newBillingAddress.address ||\n common.newBillingAddress.postalCode ||\n common.newBillingAddress.city);\n\n this.state = {\n fields: {\n ...dataState,\n common: {\n ...dataState.common,\n address: currentAddress,\n },\n },\n setting: {\n checkedAddCoOwner,\n checkedNewAddress: checkedNewAddress !== null,\n checkedNewBillingAddress: checkedNewBillingAddress !== null,\n postalCodes: [],\n isLoadingPC: false,\n codeText: '',\n codeNewAddressText: '',\n codeNewBillingAddressText: '',\n codeBirthTown: '',\n showError: false,\n showEmailError: false,\n showBottomText: false,\n validSiret: null,\n isGoingNext: false,\n },\n getSwitchLater: false,\n };\n\n this.searchService = new SearchService(TagLogger.DATA);\n this.myRef = React.createRef();\n }\n\n componentDidMount() {\n logScreen(TagLogger.DATA);\n\n this.initBirthCountry();\n\n const { setting, fields } = this.state;\n\n const {\n validateDataScreenDispatch,\n validateDataScreenFinalDispatch,\n userState: { energyTypes },\n codeState: { PDL, PCE },\n dataState,\n isCurrentScreen,\n } = this.props;\n this.searchService.getResults().subscribe(res => {\n if (res.length > 0) {\n setting.postalCodes = res.map(dt => ({\n id: dt.code,\n label: `${dt.code} - - - ${dt.city}`,\n value: `${dt.code}__${dt.city}`,\n codeValue: dt.code,\n cityValue: dt.city,\n netAreaValue: dt.netArea,\n }));\n } else {\n setting.postalCodes = [];\n }\n setting.isLoadingPC = false;\n this.setState({ setting });\n });\n\n SituationScreen.navigationOptions.validate = () => {\n const modifiedFields = {\n ...this.prepareField(fields),\n logger: {\n tag: TagLogger.DATA,\n triggerButton: TriggerButtonLogger.VALIDATE_BTN,\n },\n };\n const reducer = (accumulator, currentValue) =>\n accumulator &&\n (currentValue === 'EL' ? PDL.length === 0 : PCE.length === 0);\n const condition = energyTypes.reduce(reducer, true);\n if (condition) {\n return validateDataScreenFinalDispatch(modifiedFields);\n }\n return validateDataScreenDispatch(modifiedFields);\n };\n\n SituationScreen.navigationOptions.disabled = () => {\n setting.showError = true;\n this.setState({ setting });\n };\n\n SituationScreen.navigationOptions.returnButton = () => {\n const { dataScreenSaveCommonDispatch } = this.props;\n dataScreenSaveCommonDispatch({ ...fields.common });\n };\n\n SituationScreen.navigationOptions.saveData = () => {\n if (this.handleCondition()) {\n const { userState, summaryState, paymentState } = this.props;\n return {\n ...userState,\n ...fields,\n ...summaryState,\n ...paymentState,\n logger: {\n tag: TagLogger.DATA,\n triggerButton: TriggerButtonLogger.SAVE_BTN,\n },\n };\n }\n setting.showError = true;\n this.setState({ setting });\n return null;\n };\n\n this.handleCondition();\n\n const {\n userState,\n fetchCalendarAppointmentDispatch,\n summaryState,\n } = this.props;\n fetchCalendarAppointmentDispatch({\n ...userState,\n ...summaryState,\n });\n\n const { common } = dataState;\n\n energyTypes.forEach(energy => {\n if (common.dateContract[energy].timeslot) {\n const newDate = new Date(\n common.dateContract[energy].year,\n common.dateContract[energy].month,\n common.dateContract[energy].date\n );\n this.sendRequestTimeslot(newDate, energy);\n }\n });\n\n if (fields.pro.SIRET) {\n const identificationNumber = fields.pro.SIRET.replace(\n /[^\\d ]/g,\n ''\n );\n if (identificationNumber.length === 14) {\n this.searchSiretRequest(identificationNumber);\n }\n }\n if (isCurrentScreen) {\n scrollToRefDelay(this.myRef, 400);\n }\n }\n\n componentDidUpdate() {\n this.handleCondition();\n }\n\n componentWillUnmount() {\n this.searchService.unsubscribe();\n }\n\n prepareField = fields => {\n const {\n setting: {\n checkedAddCoOwner,\n checkedNewAddress,\n checkedNewBillingAddress,\n },\n } = this.state;\n const {\n userState: { energyTypes },\n } = this.props;\n const modifiedFields = { ...fields, energyTypes };\n\n if (!checkedAddCoOwner) {\n modifiedFields.part = {\n coOwner: {\n civility: 'MR',\n firstName: '',\n lastName: '',\n },\n };\n }\n if (!checkedNewAddress) {\n modifiedFields.common.newAddress = {\n address: null,\n postalCode: null,\n city: null,\n netArea: null,\n };\n }\n if (!checkedNewBillingAddress) {\n modifiedFields.common.newBillingAddress = {\n civility: 'MR',\n name: null,\n surname: null,\n address: null,\n postalCode: null,\n city: null,\n netArea: null,\n };\n }\n return modifiedFields;\n };\n\n initBirthCountry = () => {\n const { fields } = this.state;\n const params = helpers.searchParamsFromURL();\n\n let birthCountry = params.get('birthCountry');\n if (birthCountry) birthCountry = birthCountry.toUpperCase();\n\n const birthTown = params.get('birthTown');\n const postalCode = params.get('postalCode');\n\n if (birthCountry === 'FRANCE') {\n if (birthTown && postalCode && postalCode.length === 5) {\n fields.common.birthTown = {\n ...fields.common.birthTown,\n country: birthCountry,\n townName: birthTown,\n postalCode,\n };\n\n return this.setState({\n fields,\n });\n }\n\n return null;\n }\n\n if (birthCountry && birthTown) {\n fields.common.birthTown = {\n ...fields.common.birthTown,\n country: birthCountry,\n townName: birthTown,\n postalCode: '',\n };\n\n return this.setState({\n fields,\n });\n }\n return null;\n };\n\n handleCondition = () => {\n const { setCanGoNext, userState } = this.props;\n // const { setting } = this.state;\n const condition =\n userState.userType === UserScreenWording.userType.professional\n ? this.handleConditionPro()\n : this.handleConditionPart();\n\n // if (condition && !setting.isGoingNext) {\n // setting.isGoingNext = true;\n // this.setState({ setting });\n // nextScreen();\n // }\n\n if (setCanGoNext) {\n if (condition) setCanGoNext(true);\n else setCanGoNext(false);\n return condition;\n }\n return condition;\n };\n\n handleConditionPro = () => {\n const {\n fields,\n checkedNewAddress,\n checkedNewBillingAddress,\n setting,\n } = this.state;\n\n let condition = this.handleConditionSituation();\n condition = condition && this.handleConditionCommon(fields.common);\n condition =\n condition &&\n this.handleConditionDataPro(fields.pro, setting.validSiret);\n if (checkedNewAddress)\n condition =\n condition &&\n this.handleConditionAddress(fields.common.newAddress);\n if (checkedNewBillingAddress)\n condition =\n condition &&\n this.handleConditionAddress(fields.common.newBillingAddress);\n return condition;\n };\n\n handleConditionPart = () => {\n const {\n fields,\n setting: {\n checkedAddCoOwner,\n checkedNewAddress,\n checkedNewBillingAddress,\n },\n } = this.state;\n\n let condition = this.handleConditionSituation();\n\n condition =\n condition &&\n this.handleConditionCommon(fields.common) &&\n this.handleConditionAddress(fields.common.address);\n if (checkedAddCoOwner)\n condition =\n condition && this.handleConditionCoOwner(fields.part.coOwner);\n if (checkedNewAddress)\n condition =\n condition &&\n this.handleConditionAddress(fields.common.newAddress);\n if (checkedNewBillingAddress)\n condition =\n condition &&\n this.handleConditionAddress(fields.common.newBillingAddress);\n return condition;\n };\n\n handleConditionSituation = () => {\n const {\n fields: {\n common: { dateContract },\n },\n } = this.state;\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n const isSwitch = dateContract.switch;\n\n const reducerSwitch = (accumulator, energy) =>\n accumulator && !summaryState[energy].cyclicBill\n ? dateContract[energy] &&\n dateContract[energy].date !== null &&\n dateContract[energy].month !== null &&\n dateContract[energy].year !== null\n : accumulator;\n\n const reducer = (accumulator, energy) =>\n accumulator &&\n dateContract[energy] &&\n dateContract[energy].date !== null &&\n dateContract[energy].month !== null &&\n dateContract[energy].year !== null &&\n (!dateContract.switch\n ? dateContract[energy].timeslot !== ''\n : true);\n\n return energyTypes.reduce(isSwitch ? reducerSwitch : reducer, true);\n };\n\n handleConditionCoOwner = ({ firstName, lastName }) =>\n firstName !== '' && lastName !== '';\n\n handleConditionAddress = ({ address, city, postalCode }) =>\n address !== '' &&\n address !== null &&\n city !== '' &&\n city !== null &&\n postalCode !== '' &&\n postalCode !== null;\n\n handleConditionCommon = ({\n birthdate,\n birthTown,\n civility,\n name,\n surname,\n email,\n tel,\n }) => {\n const { dataState } = this.props;\n const { accessToken } = dataState.logingInformation;\n return (\n civility !== '' &&\n civility !== undefined &&\n name !== '' &&\n surname !== '' &&\n (accessToken ||\n (birthTown.country !== '' &&\n birthTown.townName !== '' &&\n (!(birthTown.country === 'FRANCE') ||\n birthTown.postalCode !== '') &&\n birthdate !== '' &&\n !helpers.birthCondition(birthdate))) &&\n email !== '' &&\n helpers.handleConditionEmail(email) &&\n tel !== null &&\n helpers.handleConditionPhone(tel)\n );\n };\n\n handleConditionDataPro = (\n { socialReason, legalForm, APECode, SIRET },\n validSiret\n ) =>\n socialReason !== '' &&\n legalForm !== '' &&\n APECode.length !== '' &&\n SIRET.length === 14 &&\n validSiret === 200;\n\n handleEmailFormat = value => {\n const { setting } = this.state;\n const cleanValue = accents.remove(value);\n if (!helpers.handleConditionEmail(cleanValue)) {\n setting.showEmailError = true;\n this.setState({ setting });\n return cleanValue;\n }\n setting.showEmailError = false;\n this.setState({ setting });\n return cleanValue;\n };\n\n handleChangeInput = ({ target: { value } }, name, type) => {\n const { fields } = this.state;\n if (name === null) {\n switch (type) {\n case 'email':\n fields.common.email = this.handleEmailFormat(value);\n break;\n case 'surname':\n case 'name':\n fields.common[type] = value.replace(/[0-9]/g, '');\n break;\n case 'tel':\n fields.common.tel = value.replace(/[^\\d ]/g, '');\n break;\n case 'SIRET': {\n fields.pro.SIRET = value.replace(/[^\\d ]/g, '');\n if (fields.pro.SIRET.length === 14)\n this.searchSiretRequest(value);\n if (value === '') fields.pro.APECode = '';\n\n break;\n }\n case 'APECode':\n fields.pro.APECode = value;\n break;\n case 'socialReason':\n fields.pro.socialReason = value;\n break;\n case 'coOwner':\n fields.part.coOwner[type] = value;\n break;\n default:\n fields.common[type] = value;\n break;\n }\n } else if (name === 'coOwner') {\n fields.part.coOwner[type] = value;\n } else {\n fields.common[name][type] = value;\n }\n this.setState({ fields });\n };\n\n handleDateChange = date => {\n const { fields } = this.state;\n if (date !== undefined) {\n const bDate = renderValueDate(date);\n fields.common.birthdate = bDate.toDateString();\n this.setState({ fields });\n }\n };\n\n handleChangeSelect = ({ value }, nameObj, type, ob) => {\n const { fields } = this.state;\n if (ob === undefined) fields[nameObj][type] = value;\n else if (type === 'birthTown' && ob === 'country') {\n fields[nameObj].birthTown.country = value;\n fields[nameObj].birthTown.postalCode = '';\n fields[nameObj].birthTown.townName = '';\n fields[nameObj].birthTown.netArea = '';\n } else fields[nameObj][type][ob] = value;\n this.setState({ fields });\n };\n\n handleInputChangeAddressContainer = (value, type) => {\n const { setting } = this.state;\n setting[type] = value.replace(/[^\\d ]/g, '');\n if (value !== '') {\n setting.isLoadingPC = true;\n }\n\n const val = value.length > 5 ? value.substring(0, 4) : value;\n this.searchService.search(val);\n this.setState({ setting });\n };\n\n onFocusDropdown = (e, type) => {\n const { setting, fields } = this.state;\n if (type === 'address') {\n if (fields.common.address.postalCode !== '') {\n setting.codeText = fields.common.address.postalCode.toString();\n }\n } else if (type === 'newAddress') {\n if (fields.common.newAddress.postalCode) {\n setting.codeNewAddressText = fields.common.newAddress.postalCode.toString();\n }\n } else if (type === 'newBillingAddress') {\n if (fields.common.newBillingAddress.postalCode) {\n setting.codeNewBillingAddressText = fields.common.newBillingAddress.postalCode.toString();\n }\n } else if (type === 'birthTown') {\n if (fields.common.birthTown.postalCode) {\n setting.codeBirthTown = fields.common.birthTown.postalCode.toString();\n }\n }\n this.setState({ setting });\n };\n\n handleChangeDropdownSelect = (object, type) => {\n const { fields, setting } = this.state;\n const { codeValue, cityValue, netAreaValue } = object;\n if (type === 'address') {\n fields.common.address.city = cityValue;\n fields.common.address.postalCode = codeValue;\n fields.common.address.netArea = netAreaValue;\n if (codeValue !== undefined)\n setting.codeText = codeValue.toString();\n setting.isLoadingPC = false;\n setting.postalCodes = [];\n this.setState({ fields, setting });\n } else if (type === 'newAddress') {\n fields.common.newAddress.city = cityValue;\n fields.common.newAddress.postalCode = codeValue;\n fields.common.newAddress.netArea = netAreaValue;\n if (codeValue !== undefined)\n setting.codeNewAddressText = codeValue.toString();\n setting.isLoadingPC = false;\n setting.postalCodes = [];\n this.setState({ fields, setting });\n } else if (type === 'newBillingAddress') {\n fields.common.newBillingAddress.city = cityValue;\n fields.common.newBillingAddress.postalCode = codeValue;\n fields.common.newBillingAddress.netArea = netAreaValue;\n if (codeValue !== undefined)\n setting.codeNewBillingAddressText = codeValue.toString();\n setting.isLoadingPC = false;\n setting.postalCodes = [];\n this.setState({ fields, setting });\n } else if (type === 'birthTown') {\n fields.common.birthTown.townName = cityValue;\n fields.common.birthTown.postalCode = codeValue;\n fields.common.birthTown.netArea = netAreaValue;\n fields.common.birthTown.country = 'FRANCE';\n if (codeValue !== undefined)\n setting.codeBirthTown = codeValue.toString();\n setting.isLoadingPC = false;\n setting.postalCodes = [];\n this.setState({ fields, setting });\n }\n };\n\n handleDisplayValue = (value, type) => {\n switch (type) {\n case 'tel':\n case 'SIRET':\n return value.replace(/[^\\d ]/g, '');\n\n case 'name':\n return value.replace(/[0-9]/g, '');\n\n default:\n return value;\n }\n };\n\n handleToggle = ({ target: { checked } }, type) => {\n const { setting, fields } = this.state;\n if (type === 'checkedNewAddress') {\n setting.checkedNewAddress = setting.checkedNewAddress !== checked;\n } else {\n setting[type] = !setting[type];\n }\n this.setState({ setting, fields });\n };\n\n handleToggleSituation = (value, type) => {\n const { fields, setting } = this.state;\n const { resetScreenTo, isCurrentScreen } = this.props;\n setting.showBottomText = false;\n fields.common[type] = value;\n const defaultValue = {\n date: null,\n month: null,\n year: null,\n timeslot: '',\n timeslots: [],\n dateEffectiveStartDate: null,\n monthEffectiveStartDate: null,\n yearEffectiveStartDate: null,\n };\n fields.common.dateContract = {\n EL: { ...defaultValue },\n NG: { ...defaultValue },\n switch:\n value === SituationTypes.MOVE_IN\n ? null\n : fields.common.dateContract.switch,\n };\n if (value === SituationTypes.SWITCH) {\n const getSwitchLater = () => Wording.contractDate.dropdownValues[1];\n this.handleDropdownContract(getSwitchLater());\n this.setState({getSwitchLater: getSwitchLater()? true : false})\n }\n if (!isCurrentScreen) {\n setting.isGoingNext = false;\n this.setState({ setting });\n resetScreenTo();\n }\n this.setState({ fields, setting });\n };\n\n handleDatePicker = (date, type) => {\n const { fields, setting } = this.state;\n const { resetScreenTo, isCurrentScreen } = this.props;\n\n const {\n summaryState,\n dataState: { calendarAppointments },\n } = this.props;\n const day = Config.ChannelsDoorToDoor.includes(localStorage.getItem(\"channel\")) ? 7 : 3;\n const featureDate = helpers.addBusinessDays(day);\n const newDate = new Date(date);\n const disabledSwitchDays = this.handleDateCalendarOption(\n type,\n 'disabled'\n );\n let availableSwitchDate = true;\n disabledSwitchDays.forEach(elem => {\n if (\n (elem.before &&\n newDate.getTime() < elem.before.getTime() &&\n newDate.toLocaleDateString() !==\n elem.before.toLocaleDateString()) ||\n (elem.after &&\n newDate.getTime() > elem.after.getTime() &&\n newDate.toLocaleDateString() !==\n elem.after.toLocaleDateString()) ||\n (elem.daysOfWeek && elem.daysOfWeek.includes(newDate.getDay()))\n ) {\n availableSwitchDate = false;\n }\n });\n\n const isSwitch = fields.common.dateContract.switch;\n\n const daysList = (\n calendarAppointments.find(c => c.energy === type) || {\n daysList: [],\n }\n ).daysList;\n const formattedDate = newDate.toISOString().split('T')[0];\n const available = (\n daysList.find(d => d.date === formattedDate) || {\n available: false,\n }\n ).available;\n\n if (fields.common.situation === Wording.situation.values.moved.value)\n setting.showBottomText = newDate.getTime() <= featureDate.getTime();\n if (\n newDate.getTime() > new Date().getTime() &&\n ((!isSwitch && available) || (isSwitch && availableSwitchDate))\n ) {\n this.sendRequestTimeslot(newDate, type);\n fields.common.dateContract[type].date = newDate.getDate();\n fields.common.dateContract[type].year = newDate.getFullYear();\n fields.common.dateContract[type].month = newDate.getMonth();\n fields.common.dateContract[type].dateEffectiveStartDate = newDate.getDate();\n fields.common.dateContract[type].yearEffectiveStartDate = newDate.getFullYear();\n fields.common.dateContract[type].monthEffectiveStartDate = newDate.getMonth();\n\n const express = (\n daysList.find(d => d.date === formattedDate) || {\n express: false,\n }\n ).express;\n\n const defaultCB = {\n firstPaymentCB: false,\n };\n const firstPaymentCB = (!isSwitch\n ? daysList.find(d => d.date === formattedDate) || defaultCB\n : defaultCB\n ).firstPaymentCB;\n\n fields.common.dateContract[type].express = express;\n fields.common.dateContract[type].firstPaymentCB = !summaryState[\n type\n ].cyclicBill\n ? firstPaymentCB\n : false;\n\n this.setState({ fields, setting });\n if (!isCurrentScreen) {\n setting.isGoingNext = false;\n this.setState({ setting });\n resetScreenTo();\n }\n }\n };\n\n sendRequestTimeslot = async (date, type) => {\n const { fields } = this.state;\n const ts = await searchAppointmentTimeslot(date, type);\n fields.common.dateContract[type].timeslots = ts.filter(\n t => t !== 'NONE'\n );\n this.setState({ fields });\n };\n\n searchSiretRequest = async value => {\n const { setting, fields } = this.state;\n const res = await searchSiret(value);\n if (res) {\n if (res.etablissement) {\n fields.pro.APECode = helpers.getAPEFromObject(res);\n }\n setting.validSiret = res.status;\n this.setState({ setting, fields });\n }\n };\n\n handleChangeTimeslotSelect = (value, type) => {\n const { fields } = this.state;\n fields.common.dateContract[type].timeslot = value;\n this.setState({ fields });\n };\n\n filterCalendarAppointmentResponse = (energyType, process) => {\n const { dataState } = this.props;\n const { calendarAppointments } = dataState;\n\n return calendarAppointments.filter(\n object => object.energy === energyType && object.process === process\n );\n };\n\n filterDateAppointment = ({ daysList: values }, type, condition) => {\n const arrSend = [];\n if (values !== undefined)\n values\n .filter(element =>\n type === 'express'\n ? element[type] === condition && element.available\n : element[type] === condition\n )\n .forEach(val => arrSend.push(new Date(val.date)));\n if (type === 'available' && !condition) {\n const lastDay = values && new Date(values.slice(-1)[0].date);\n const today = new Date();\n const tomorrow = new Date();\n tomorrow.setDate(today.getDate() + 1);\n if (Config.ChannelsDoorToDoor.includes(localStorage.getItem(\"channel\"))) {\n addDays(tomorrow, 6)\n }\n arrSend.push({\n before: tomorrow,\n after: lastDay,\n });\n }\n return arrSend;\n };\n\n handleDateCalendarOption = (energyType, type) => {\n const { fields } = this.state;\n const { dateContract } = fields.common;\n const isSwitch = dateContract.switch;\n\n // render disabled day is situation === SWITCH\n if (isSwitch) {\n if (type === 'disabled') {\n const switchDropdownValues = (() => {\n let day =\n Config.DefaultSwitchDueDate[dateContract.switch.value][\n energyType\n ];\n day = (dateContract.switch.value === \"LATER\" || dateContract.switch.value === \"NOW\") && Config.ChannelsDoorToDoor.includes(localStorage.getItem(\"channel\")) ? day+=7 : day+=3; \n return helpers.addDays(new Date(), day);\n })();\n\n return [\n {\n before: switchDropdownValues,\n after: helpers.addMonth(new Date(), 1),\n },\n\n {\n daysOfWeek: [0, 6],\n },\n ];\n }\n\n return [];\n }\n\n if (type === 'selected')\n return this.filterDateAppointment(\n ...this.filterCalendarAppointmentResponse(\n energyType,\n 'MOVE_IN'\n ),\n 'express',\n true\n );\n return this.filterDateAppointment(\n ...this.filterCalendarAppointmentResponse(energyType, 'MOVE_IN'),\n 'available',\n false\n );\n };\n\n handleDropdownContract = object => {\n const { fields, setting } = this.state;\n const { dateContract } = fields.common;\n const {\n userState: { energyTypes },\n // dataState: { calendarAppointments },\n } = this.props;\n const { resetScreenTo, isCurrentScreen } = this.props;\n\n if (object.value === Wording.contractDate.dropdownValues[0].value) {\n dateContract.switch = object;\n setting.showBottomText = true;\n } else if (\n object.value === Wording.contractDate.dropdownValues[1].value\n ) {\n dateContract.switch = object;\n setting.showBottomText = false;\n }\n energyTypes.forEach(energy => {\n dateContract[energy].date = null;\n dateContract[energy].month = null;\n dateContract[energy].year = null;\n });\n\n if (!isCurrentScreen) {\n setting.isGoingNext = false;\n this.setState({ setting });\n resetScreenTo();\n }\n\n // energyTypes.forEach(energy => {\n // let day = 0;\n // if (object.value === Wording.contractDate.dropdownValues[0].value) {\n // day = Config.DefaultSwitchDueDate.NOW[energy];\n // } else if (\n // object.value === Wording.contractDate.dropdownValues[1].value\n // ) {\n // day = Config.DefaultSwitchDueDate.LATER[energy];\n // }\n // const daysList = (\n // calendarAppointments.find(c => c.energy === energy) || {\n // daysList: [],\n // }\n // ).daysList;\n // const actualDate = new Date();\n // const newDate = helpers.addDays(actualDate, day);\n // for (let i = 0; i !== daysList.length; i += 1) {\n // const correctNewDate = new Date(daysList[i].date)\n // if (correctNewDate.getDate() >= newDate.getDate() && correctNewDate.getMonth() >= newDate.getMonth() && correctNewDate.getFullYear() >= newDate.getFullYear()) {\n // dateContract[energy].date = correctNewDate.getDate();\n // dateContract[energy].month = correctNewDate.getMonth();\n // dateContract[energy].year = correctNewDate.getFullYear();\n // break;\n // }\n // }\n // });\n\n return this.setState({\n fields,\n setting,\n });\n };\n\n render() {\n const {\n userState,\n codeState,\n summaryState,\n autorizedBillingModes,\n isCurrentScreen,\n nextScreen,\n canGoNext,\n mainState: { loading },\n isModalOpen,\n } = this.props;\n const { fields, setting } = this.state;\n\n const isScheduleWithoutPack = helpers.isScheduleWithoutPackBillingMode(\n autorizedBillingModes\n );\n\n const isCyclic = \n Boolean(\n autorizedBillingModes &&\n autorizedBillingModes.find(\n mode =>\n mode.billingModeCode ===\n BillingMode.CYCLICAL_BILLING\n )\n );\n\n return (\n <>\n
\n \n
\n
\n \n
\n
\n \n Tu emménages ou changes juste de fournisseur ?\n Dis nous tout et indique
\n nous la date idéale à laquelle tu aimerais voir\n ton contrat commencer.\n
\n
\n\n
\n
\n \n this.handleToggleSituation(\n value,\n 'situation'\n )\n }\n className=\"situation-container__situationCheckbox__content__radios__selector\"\n gap=\"0\"\n style={{ width: '80%' }}\n />\n
\n
\n \n
\n {isCurrentScreen && (\n
\n \n
\n )}\n \n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n dataState: state.dataReducer,\n userState: state.userReducer,\n codeState: state.codeReducer,\n summaryState: state.summaryReducer,\n paymentState: state.paymentReducer,\n autorizedBillingModes: state.packageReducer.autorizedBillingModes,\n mainState: state.mainReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validateDataScreenDispatch: payload =>\n dispatch(actions.validateDataScreenSuccess(payload)),\n validateDataScreenFinalDispatch: payload =>\n dispatch(actions.validateDataScreenSuccessFinal(payload)),\n fetchCalendarAppointmentDispatch: payload =>\n dispatch(actions.fetchCalendarAppointment(payload)),\n dataScreenSaveCommonDispatch: payload =>\n dispatch(actions.dataScreenSaveCommon(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SituationScreen);\n","import SituationScreen from './SituationScreen';\r\n\r\nexport default SituationScreen;\r\n","import SummaryContainer from './SummaryContainer';\r\n\r\nexport default SummaryContainer;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport SummaryElement from '../../components/SummaryElement';\r\nimport PlanElement from '../../components/PlanElement';\r\n\r\n// import WordingConstant from '../../utils/wording.json';\r\nimport CustomSelector from '../../components/CustomSelector/CustomSelector';\r\nimport Typography from '../../components/Typography/Typography';\r\nimport GasIcon from '../../assets/icons/ic-gas-on.svg';\r\nimport ElecIcon from '../../assets/icons/ic-elec-on.svg';\r\nimport LoadingOverlay from '../../components/LoadingOverlay';\r\n\r\n// const SummaryWording = WordingConstant.SummaryScreen;\r\n\r\nconst SummaryContainer = ({\r\n prices,\r\n currentOptions,\r\n handleToggle,\r\n paymentFrequency,\r\n offer,\r\n products,\r\n energy,\r\n loadingOption,\r\n loading,\r\n showSeparator,\r\n isScheduleWithoutPack,\r\n consumption,\r\n // changeOfferDispatch,\r\n defaultProduct,\r\n}) => {\r\n const [activateEffect, setActivateEffect] = useState(true);\r\n const [option, setOption] = useState([]);\r\n const [id, setId] = useState(1);\r\n\r\n useEffect(() => {\r\n if (offer.product && activateEffect) {\r\n const options = [\r\n {\r\n label: 'Je veux un prix indexé',\r\n id: 1,\r\n },\r\n { label: 'Je veux un prix fixe', id: 2 },\r\n ];\r\n if (products.length < 1) {\r\n if (offer.product.productType === 'VARIABLE') {\r\n options[1].disabled = true;\r\n } else {\r\n options[0].disabled = true;\r\n }\r\n }\r\n setOption(options);\r\n setId(offer.product.productType === 'VARIABLE' ? 1 : 2);\r\n setActivateEffect(false);\r\n }\r\n }, [offer]);\r\n\r\n function prepareOffer(e) {\r\n if (defaultProduct.length > 0) {\r\n const base = defaultProduct[0].productType;\r\n if (e === 1) {\r\n const product =\r\n base === 'VARIABLE'\r\n ? defaultProduct.find(\r\n item => item.productType === 'VARIABLE'\r\n )\r\n : products.find(\r\n item => item.productType === 'VARIABLE'\r\n );\r\n const event = {\r\n target: {\r\n value: product.productCode,\r\n checked: false,\r\n },\r\n };\r\n handleToggle(event, energy);\r\n } else {\r\n const product =\r\n base === 'VARIABLE'\r\n ? products.find(item => item.productType === 'FIXED')\r\n : defaultProduct.find(\r\n item => item.productType === 'FIXED'\r\n );\r\n const event = {\r\n target: {\r\n value: product.productCode,\r\n checked: true,\r\n },\r\n };\r\n handleToggle(event, energy);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Plutôt prix fixe ou{' '}\r\n prix indexé ?\r\n \r\n {/* */}\r\n
\r\n \r\n Le prix indexé varie d’un mois à l’autre selon les prix du\r\n marché.\r\n
Tandis que le prix fixe est garanti sans évolution\r\n pendant 12 mois.\r\n \r\n prepareOffer(e)}\r\n options={option}\r\n defaultId={id}\r\n className=\"selector-offer\"\r\n />\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n {showSeparator && <>}\r\n
\r\n );\r\n};\r\n\r\nexport default SummaryContainer;\r\n","import React, { createRef } from 'react';\nimport { connect } from 'react-redux';\n\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport SummaryContainer from '../../containers/SummaryContainer';\nimport { logScreen } from '../../utils/firebase';\nimport { isScheduleWithoutPackBillingMode } from '../../utils/helpers';\nimport { TagLogger, TriggerButtonLogger } from '../../utils/logger';\nimport WordingConstant from '../../utils/wording.json';\nimport Screen from '../screen';\nimport * as actions from './SummaryScreen.actions';\nimport { CustomButton } from '../../components';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport Title from '../../components/Typography/Title';\nimport { BillingMode } from '../../constants/enums';\n\nconst Wording = WordingConstant.SummaryScreen;\n\nexport class SummaryScreen extends React.Component {\n static navigationOptions = {\n nextScreen: Screen.DATA,\n previousScreen: Screen.PACKAGE,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n screenId: Screen.SUMMARY,\n showSaveButton: false,\n step: 2,\n validate: () => {},\n };\n\n constructor(props) {\n super(props);\n this.myRef = createRef();\n }\n\n componentDidMount() {\n logScreen(TagLogger.SUMMARY);\n\n SummaryScreen.navigationOptions.validate = () => {\n const { validateSummaryScreenDispatch } = this.props;\n validateSummaryScreenDispatch({});\n return true;\n };\n\n const { handleGoNext } = this.props;\n if (handleGoNext) {\n handleGoNext(true);\n }\n scrollToRefDelay(this.myRef, 200);\n }\n\n componentDidUpdate() {\n const {\n setCanGoNext,\n isCurrentScreen,\n mainState: { loading },\n } = this.props;\n\n if (setCanGoNext && isCurrentScreen && !loading) {\n setCanGoNext(true);\n }\n }\n\n /**\n * Function to handle toggle in multiple choice products\n * options save offer.product.productCode\n */\n handleToggle = ({ target: { value, checked } }, type) => {\n const {\n userState: { userType },\n summaryState,\n changeOfferDispatch,\n changeProductOptionDispatch,\n resetScreenTo,\n isCurrentScreen,\n } = this.props;\n if (!isCurrentScreen) resetScreenTo();\n const offer = summaryState.offers.find(\n off =>\n off.energy === type &&\n (checked ? !off.product.default : off.product.default)\n );\n if (offer) {\n const options = checked ? [value] : [];\n changeOfferDispatch({\n offer,\n options,\n energyType: type,\n });\n } else {\n const productCode = checked\n ? value\n : (\n summaryState.products.find(\n p => p.energy === type && p.default\n ) || {}\n ).productCode || '';\n changeProductOptionDispatch({\n ...summaryState,\n userType,\n productCode,\n energyType: type,\n contracts: summaryState.contracts.filter(\n p => p.energy === type\n ),\n logger: {\n tag: TagLogger.SUMMARY,\n triggerButton: TriggerButtonLogger.FIXED_PRICE,\n },\n });\n }\n };\n\n render() {\n const {\n userState: { energyTypes },\n summaryState,\n autorizedBillingModes,\n changeOfferDispatch,\n changeProductOptionDispatch,\n canGoNext,\n nextScreen,\n isCurrentScreen,\n mainState: { loading },\n isModalOpen,\n } = this.props;\n const isScheduleWithoutPack = isScheduleWithoutPackBillingMode(\n autorizedBillingModes\n );\n let packageLoading = false;\n if (energyTypes) {\n energyTypes.forEach(energy => {\n const s = summaryState[energy];\n if (s.loadingOption) {\n packageLoading = true;\n }\n });\n }\n const isCyclic = autorizedBillingModes =>\n Boolean(\n autorizedBillingModes &&\n autorizedBillingModes.find(\n mode =>\n mode.billingModeCode ===\n BillingMode.CYCLICAL_BILLING\n )\n );\n return (\n <>\n
\n \n \n
\n {energyTypes &&\n energyTypes.map((energy, index) => {\n const s = summaryState[energy];\n const offer = s.offer;\n const options = s.options;\n const prices = s.chosenPackages\n ? s.chosenPackages.map(\n p => (p || {}).amount\n )\n : [];\n const products = summaryState.products\n ? summaryState.products.filter(\n product =>\n !product.default &&\n product.energy === energy\n )\n : [];\n const defaultProduct = summaryState.products\n ? summaryState.products.filter(\n product =>\n product.default &&\n product.energy === energy\n )\n : [];\n const consumption = s.chosenPackages\n ? s.chosenPackages.map(\n p => (p || {}).quantityMonthly\n )\n : [];\n return (\n \n this.handleToggle(e, energy)\n }\n loadingOption={s.loadingOption}\n loading={loading}\n energy={energy}\n showSeparator={\n index + 1 < energyTypes.length\n }\n isScheduleWithoutPack={\n isScheduleWithoutPack\n }\n defaultProduct={defaultProduct}\n />\n );\n })}\n
\n {isCurrentScreen && (\n
\n \n
\n )}\n
\n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n userState: state.userReducer,\n summaryState: state.summaryReducer,\n autorizedBillingModes: state.packageReducer.autorizedBillingModes,\n mainState: state.mainReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n validateSummaryScreenDispatch: payload =>\n dispatch(actions.validateSummaryScreenSuccess(payload)),\n changeProductOptionDispatch: payload =>\n dispatch(actions.changeProductOption(payload)),\n changeOfferDispatch: payload => dispatch(actions.changeOffer(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SummaryScreen);\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport resources from '../../utils/resources';\nimport { logScreen, TagLogger } from '../../utils/firebase';\n\nimport Screen from '../screen';\n\nimport WordingData from '../../utils/wording.json';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\n\nconst Wording = WordingData.SaveScreen;\nexport class SaveScreen extends React.Component {\n static navigationOptions = {\n nextScreen: null,\n previousScreen: Screen.FINALSUMMARY,\n buttonNextTitle: Wording.nextButton,\n buttonPreviousTitle: Wording.previousButton,\n title: Wording.title,\n screenId: Screen.SAVE,\n showSaveText: true,\n step: 9,\n validate: () => {},\n saveData: () => {},\n };\n /* static navigationOptions = {\n nextScreen: null,\n previousScreen: null,\n buttonNextTitle: '',\n buttonPreviousTitle: '',\n title: Wording.title,\n screenId: Screen.SAVE,\n showSaveButton: false,\n step: 9,\n validate: () => {},\n }; */\n\n componentDidMount() {\n logScreen(TagLogger.SAVE);\n }\n\n render() {\n const { orderReference, isValidationEmail } = this.props;\n return (\n \n
\n \n

\n {isValidationEmail ? Wording.text3 : Wording.text1}\n

\n

\n {isValidationEmail ? '' : Wording.text2}\n

\n {orderReference !== null && (\n
\n Voici ton numéro de souscription :
\n {orderReference}\n
\n )}\n
\n
\n );\n }\n}\n\nconst mapStateToProps = state => ({\n orderReference: state.paymentReducer.reference,\n});\n\nexport default connect(mapStateToProps, null)(SaveScreen);\n","import React, { createRef } from 'react';\nimport { connect } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\nimport resources from '../../utils/resources';\n\nimport Screen from '../screen';\n\nimport WordingData from '../../utils/wording.json';\nimport { log, TagLogger } from '../../utils/logger';\nimport { logScreen } from '../../utils/firebase';\nimport { sumPackageAmountInstallmentFrequency, offerSimple } from '../../utils/helpers';\n\nimport { gtagReportConversion, facebookPixel } from '../../utils/tags';\n\nimport { TimeOneConversionTag } from '../../components';\nimport SectionLayout from '../../components/SectionLayout/SectionLayout';\nimport { scrollToRefDelay } from '../../utils/scroll';\nimport { prepareContract } from '../FinalSummaryScreen/Contract.actions';\nimport Config from '../../utils/config';\nimport WordingConstant from '../../utils/wording.json';\n\nconst Wording = WordingData.FinalScreen;\nconst WordingLinks = WordingConstant.ValidateTimer;\n\nexport class FinalScreen extends React.Component {\n static navigationOptions = {\n nextScreen: null,\n previousScreen: null,\n buttonNextTitle: '',\n buttonPreviousTitle: '',\n title: Wording.title,\n screenId: Screen.FINAL,\n showSaveButton: false,\n step: 4,\n validate: () => {},\n };\n\n constructor(props) {\n super(props);\n this.myRef = createRef();\n this.state = {\n isLoading: true,\n isOpen: this.isSelectra(),\n loadingContract: false,\n };\n }\n\n componentDidMount() {\n gtagReportConversion();\n facebookPixel();\n\n logScreen(TagLogger.CONVERSION);\n\n log({\n tag: TagLogger.CONVERSION,\n returnCode: '200',\n logMessage: null,\n serviceCalled: null,\n statusAction: 'SUCCESS',\n triggerButton: 'auto-loading',\n });\n\n // if (this.props.orderReference !== null) {\n // this.setState({ isLoading: false });\n // scrollToRefDelay(this.myRef);\n // }\n setTimeout(() => {\n this.setState({ isLoading: false });\n scrollToRefDelay(this.myRef, 200);\n }, 10000);\n }\n\n getPrice() {\n const {\n userState: { energyTypes },\n summaryState,\n } = this.props;\n\n const reducer = (accumulator, currentValue) => {\n const { chosenPackages, installmentFrequency } = summaryState[\n currentValue\n ];\n\n return (\n accumulator +\n sumPackageAmountInstallmentFrequency(\n chosenPackages,\n installmentFrequency\n )\n );\n };\n return energyTypes.reduce(reducer, 0);\n }\n\n isSelectra = () => {\n const channel = localStorage.getItem('channel');\n\n return channel;\n };\n\n handleContract = async () => {\n this.setState({ loadingContract: true });\n try {\n if (localStorage.getItem('reduxState')) {\n const payloadContract = prepareContract(\n JSON.parse(localStorage.getItem('reduxState'))\n );\n\n if (\n Array.isArray(payloadContract) &&\n payloadContract.length > 0\n ) {\n const promises = payloadContract.map(\n async (contract, index) => {\n try {\n const headers = {\n 'x-api-key': Config.ApiKey,\n };\n\n const res = await fetch(\n `${Config.URL}/getContract`,\n {\n method: 'POST',\n body: JSON.stringify(contract),\n headers,\n }\n );\n\n if (res.ok) {\n const blob = await res.blob();\n const fileURL = URL.createObjectURL(blob);\n\n window.open(fileURL, `_blank_${index}`);\n } else {\n console.error(\n `La requête a échoué avec le statut ${res.status}`\n );\n }\n } catch (error) {\n console.error(\n `Erreur lors de la récupération du contrat (index ${index}):`,\n error\n );\n }\n }\n );\n await Promise.all(promises);\n this.setState({ loadingContract: false });\n }\n }\n } catch (error) {\n this.setState({ loadingContract: false });\n console.error(\n 'Erreur générale lors de la récupération des contrats :',\n error\n );\n }\n };\n\n handleFilePdf = async () => {\n try {\n const pdfUrl = \"/static/Document d'informations.pdf\";\n const encodedUrl = encodeURI(pdfUrl);\n const correctedUrl = encodedUrl.replace(/(%2F|%20)/g, match =>\n match === '%2F' ? '/' : ' '\n );\n\n window.open(correctedUrl, '_blank', 'noopener noreferrer');\n } catch (e) {\n console.error('Impossible de récupérer le fichier pdf', e);\n }\n };\n\n render() {\n const {\n orderReference,\n userState: { energyTypes },\n summaryState,\n } = this.props;\n\n const payloadContracts = summaryState.contracts;\n const { isLoading, loadingContract } = this.state;\n\n return (\n <>\n
\n \n
\n \n\n <>\n \n

\n {Wording.text1}\n

\n
\n {Wording.text2}\n
\n
\n Note dès maintenant ton numéro client :\n
\n {isLoading && (\n
\n Loading...\n
\n )}\n {!isLoading && orderReference !== null && (\n
\n {orderReference}\n
\n )}\n {[\n 'C2E',\n 'DEPANN',\n 'GROUPE-POWER',\n 'POWER-DISTRIB',\n ].includes(this.state.isOpen) ? (\n
\n

\n {WordingLinks.popup.bottomLinks\n .filter(\n link =>\n link.text &&\n (link.link || link.api)\n )\n .map((link, i) => {\n if (\n (link.value.includes(\n 'INFORMATION_DOCUMENT',\n )) && offerSimple(summaryState.offers) === true\n ) {\n return null;\n }\n if (\n link.value ===\n 'INFORMATION_DOCUMENT'\n ) {\n return (\n \n {link.text}\n \n \n );\n }\n if (link.link) {\n return (\n \n {link.text}\n \n );\n }\n if (link.api) {\n const isSingleContract =\n Array.isArray(\n payloadContracts\n ) &&\n payloadContracts.length ===\n 1;\n const linkText = isSingleContract\n ? 'Ton contrat'\n : 'Tes contrats';\n if (loadingContract) {\n return (\n <>\n \n \n  |\n \n \n );\n }\n return (\n \n {linkText} |\n

\n );\n }\n return (\n \n );\n })}\n

\n
\n ) : (\n
\n {Wording.text3}\n
\n )}\n \n
\n
\n \n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n userState: state.userReducer,\n orderReference: state.paymentReducer.reference,\n summaryState: state.summaryReducer,\n});\n\nexport default connect(mapStateToProps, null)(FinalScreen);\n","import ReactPixel from 'react-facebook-pixel';\nimport Config from './config';\n\nfunction gtagReportConversion() {\n if (Config.ENV !== 'PREPRODUCTION') {\n window.gtag('event', 'conversion', {\n send_to: 'AW-687511518/hJu0CLS7nbgBEN6v6scC',\n });\n }\n return false;\n}\n\nfunction facebookPixel() {\n if (Config.ENV !== 'PREPRODUCTION') {\n ReactPixel.fbq('track', 'Purchase', {});\n }\n}\n\nfunction initFacebookPixel_v2() {\n if (Config.ENV !== 'PREPRODUCTION') {\n ReactPixel.init(\n Config.FACEBOOK_PIXEL_ID_V2,\n {},\n { debug: true, autoConfig: false }\n );\n ReactPixel.pageView();\n }\n}\n\nexport { gtagReportConversion, facebookPixel, initFacebookPixel_v2 };\n","import React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\n\nimport CodeContainerV2 from '../containers/CodeContainer/CodeContainerV2';\nimport DataScreen from './DataScreen/DataScreen';\nimport MinimalUserData from './DataScreen/MinimalUserData';\nimport PackageScreen from './PackageScreen/PackageScreen';\nimport UserScreen from './UserScreen';\nimport ValidationDialogScreen from './ValidationDialogScreen/ValidationDialogScreen';\nimport FailureCBScreen from './FailureCBScreen/FailureCBScreen';\nimport FailureSCScreen from './FailureSCScreen/FailureSCScreen';\nimport CancelSCScreen from './CancelSCScreen/CancelSCScreen';\nimport FinalPaymentScreen from './FinalPaymentScreen/FinalPaymentScreen';\n\nimport { CustomButton } from '../components';\nimport { CodeScreenMode, SectionsSteps } from '../constants/enums';\n\nimport { changeCodeMode } from './CodeScreen/CodeScreen.actions';\nimport FinalSummaryScreen from './FinalSummaryScreen/FinalSummaryScreen';\nimport SituationScreen from './SituationScreen';\nimport SummaryScreen from './SummaryScreen/SummaryScreen';\nimport './_SectionCollapser.scss';\nimport SaveScreen from './SaveScreen/SaveScreen';\nimport FinalScreen from './FinalScreen/FinalScreen';\n\nconst STEPS = [\n {\n id: SectionsSteps.STEP_ONE_ENERGY_SELECTOR,\n component: UserScreen,\n },\n {\n id: SectionsSteps.STEP_TOW_USER_VALIDATION,\n component: MinimalUserData,\n },\n {\n id: SectionsSteps.STEP_THREE_PDL_PCE_IDENTIFIER,\n component: CodeContainerV2,\n },\n {\n id: SectionsSteps.STEP_FOUR_PACKAGE_SELECTOR,\n component: PackageScreen,\n },\n {\n id: SectionsSteps.STEP_FIVE_BUDGET_ESTIMATION,\n component: SummaryScreen,\n },\n {\n id: SectionsSteps.STEP_SIX_USER_HABITATION,\n component: DataScreen,\n },\n {\n id: SectionsSteps.STEP_SEVEN_USER_SITUATION,\n component: SituationScreen,\n },\n {\n id: SectionsSteps.STEP_HEIGHT_FINAL_RECAP,\n component: FinalSummaryScreen,\n },\n {\n id: SectionsSteps.STEP_NINE_SIGNATURE,\n component: ValidationDialogScreen,\n },\n {\n id: SectionsSteps.STEP_PAYMENT,\n component: FinalPaymentScreen,\n },\n {\n id: SectionsSteps.FAILURE_SCREEN,\n component: FailureCBScreen,\n },\n {\n id: SectionsSteps.CANCELSC_SCREEN,\n component: CancelSCScreen,\n },\n {\n id: SectionsSteps.FAILURESC_SCREEN,\n component: FailureSCScreen,\n },\n {\n id: SectionsSteps.STEP_TEN_SAVE_DRAFT,\n component: SaveScreen,\n },\n {\n id: SectionsSteps.FINAL_SCREEN,\n component: FinalScreen,\n },\n];\n\nconst getStepById = id => STEPS.find(it => id === it.id);\n\nfunction SectionCollapser({\n currentCodeMode,\n changeCodeModeDispatch,\n handleSave,\n}) {\n const [steps, setSteps] = useState([\n getStepById(SectionsSteps.STEP_ONE_ENERGY_SELECTOR), // STEP_ONE_ENERGY_SELECTOR\n ]);\n const [canGoNext, setCanGoNext] = useState(false);\n const currentStep = steps[steps.length - 1];\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n\n useEffect(() => {\n\n if (\n currentCodeMode !== CodeScreenMode.NONE &&\n currentCodeMode !== CodeScreenMode.END\n )\n changeCodeModeDispatch({ mode: CodeScreenMode.NONE });\n const url =\n window.location !== window.parent.location\n ? document.referrer\n : document.location.href;\n const params = new URL(url).searchParams;\n const status = params.get('status');\n if(status){\n switch(status){\n case 'failure':\n setSteps([getStepById(SectionsSteps.FAILURESC_SCREEN)])\n break;\n case 'cancel':\n setSteps([getStepById(SectionsSteps.CANCELSC_SCREEN)])\n break\n case 'success':\n setSteps([getStepById(SectionsSteps.FINAL_SCREEN)])\n break\n default:\n break\n }\n }\n }, []);\n\n const resetScreenTo = id => () => {\n const identifier = STEPS.findIndex(step => step.id === id);\n if (identifier === -1) return;\n setSteps(old => {\n const tmp = [...old];\n tmp.splice(identifier + 1, old.length - 1);\n return tmp;\n });\n };\n\n const secureSetCanGoNext = id => state => {\n if (currentStep.id !== id || state === canGoNext) return;\n setCanGoNext(state);\n };\n\n const setStepById = id => {\n setSteps([getStepById(SectionsSteps[id])]);\n };\n\n const handleNext = (e, nextStep, force = false, fromStep = -1) => {\n if (fromStep !== -1 && fromStep !== currentStep.id + 1) return;\n\n if (!force) {\n const validation = currentStep.component.navigationOptions.validate();\n if (!validation) return;\n }\n\n let nextStepIdentifier;\n if (nextStep) {\n nextStepIdentifier = STEPS[nextStep];\n } else {\n const identifier = STEPS.findIndex(\n step => step.id === currentStep.id\n );\n if (identifier === -1) return;\n nextStepIdentifier = STEPS[identifier + 1];\n }\n\n setSteps(old => [...old, nextStepIdentifier]);\n };\n\n return (\n
\n {\n steps.map(step => (\n \n ))}\n
\n \n
\n
\n );\n}\n\nconst mapStateToProps = state => ({\n currentCodeMode: state.codeReducer.currentMode,\n});\n\nconst mapDispatchToProps = dispatch => ({\n changeCodeModeDispatch: payload => dispatch(changeCodeMode(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SectionCollapser);\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport { connect } from 'react-redux';\n\n// import FooterContainer from '../../containers/FooterContainer';\n// import NavigationController from '../NavigationController';\n// import Screen from '../screen';\n\n// import Lottie from 'react-lottie';\nimport {\n Header,\n Footer,\n SubscriptionReset,\n TimeOneGlobalTag,\n} from '../../components';\n// import resources from '../../utils/resources';\nimport { getParamsFromDecodedUrl, parseQueryString } from '../../utils/helpers';\n\nimport * as actions from './MainScreen.actions';\nimport { getSponsor, getPartner } from '../SummaryScreen/SummaryScreen.actions';\n\nimport { logEvent, logChannel } from '../../utils/firebase';\nimport { initFacebookPixel_v2 } from '../../utils/tags';\nimport SectionCollapser from '../SectionCollapser';\n// import animationData from '../../assets/loader.json';\nimport LoadingOverlay from '../../components/LoadingOverlay';\n\nexport class MainScreen extends React.Component {\n myProps = {\n handleGoNext: () => {\n // this.setState({ canGoNext: bool });\n },\n handleLoadScreen: screenId => {\n const { nextScreenDispatch } = this.props;\n nextScreenDispatch({ screenId });\n },\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n recovering: false,\n // canGoNext: false,\n // isData: false,\n // isReturnUrl: false,\n // isValidationEmail: false,\n };\n }\n\n componentDidMount() {\n initFacebookPixel_v2();\n const {\n getFormDispatch,\n mainState: { isRecover, errorRecovery },\n } = this.props;\n\n const url =\n window.location !== window.parent.location\n ? document.referrer\n : document.location.href;\n\n const params = new URL(url).searchParams;\n const status = params.get('status');\n const id = params.get('id');\n this.setState({ id, status });\n\n const decodedParams = getParamsFromDecodedUrl();\n const decodedChannel = decodedParams && decodedParams.channel;\n\n const channel = params.get('channel');\n if (channel || decodedChannel) {\n logEvent('channel', { name: channel || decodedChannel });\n localStorage.setItem('channel', channel || decodedChannel);\n }\n\n logChannel(channel || decodedChannel || 'WEB');\n\n const agent = params.get('agent');\n if (agent) {\n localStorage.setItem('agent', agent);\n }\n\n if (id) {\n const { getOrderDispatch } = this.props;\n this.setState({ recovering: true });\n getOrderDispatch({ id });\n } else {\n // const test = params.get('returnUrl');\n // if (test === 'true') {\n // this.setState({ isReturnUrl: true });\n // }\n }\n if (isRecover || errorRecovery !== null) {\n this.setState({ recovering: false });\n }\n\n const sponsorId = params.get('sponsor');\n const promotionId = params.get('promotion');\n const mywordId = params.get('myword');\n if (sponsorId) {\n const { getSponsorDispatch } = this.props;\n getSponsorDispatch({ code: sponsorId, role: 'SPONSOR' });\n } else if (promotionId) {\n const { getSponsorDispatch } = this.props;\n getSponsorDispatch({ code: promotionId, role: 'PROMOTION' });\n } else if (mywordId) {\n const { getSponsorDispatch } = this.props;\n getSponsorDispatch({ code: mywordId, role: 'MY_WORLD' });\n }\n\n const partnerReference = params.get('partnerReference');\n if (partnerReference) {\n const { getPartnerDispatch } = this.props;\n getPartnerDispatch({ partnerReference });\n }\n const urlObj = new URL(url);\n if (urlObj.search && urlObj.search.length > 0) {\n const obj = parseQueryString(urlObj.search.substring(1));\n const energyTypes = params.getAll('energyTypes[]');\n const payload = {\n ...obj,\n energyTypes,\n 'energyTypes[]': undefined,\n };\n getFormDispatch(payload);\n }\n\n if (decodedParams && Object.keys(decodedParams).length > 0) {\n getFormDispatch(decodedParams);\n }\n }\n\n componentDidUpdate() {\n this.onUpdate();\n }\n\n onUpdate() {\n const {\n mainState: { isRecover, errorRecovery },\n } = this.props;\n const { recovering } = this.state;\n\n if (recovering && (isRecover || errorRecovery !== null)) {\n this.setState({ recovering: false });\n }\n }\n\n handleLoadScreen = () => {\n // const { canGoNext, isData } = this.state;\n // if (canGoNext || isData) {\n // document.body.scrollTop = 0;\n // document.documentElement.scrollTop = 0;\n // if (validate) {\n // validate();\n // }\n // }\n };\n\n handleDisabledValidate = disabled => {\n if (disabled !== undefined) {\n disabled();\n }\n };\n\n handleReturnButton = returnButton => {\n if (returnButton !== undefined) {\n returnButton();\n }\n };\n\n // handleValidationEmail = statut => {\n // this.setState({ isValidationEmail: statut });\n // };\n\n handlePreviousScreen = () => {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n const { previousScreenDispatch } = this.props;\n previousScreenDispatch({});\n };\n\n handleSaveOrder = saveData => {\n const {\n dataState,\n summaryState,\n userState,\n paymentState,\n saveOrderDispatch,\n } = this.props;\n if (saveData !== undefined) {\n const payload = saveData();\n if (payload) {\n if (payload.mergeProps) {\n saveOrderDispatch({\n ...userState,\n ...dataState,\n ...summaryState,\n ...paymentState,\n ...payload,\n });\n return;\n }\n saveOrderDispatch(payload);\n return;\n }\n }\n saveOrderDispatch({\n ...userState,\n ...dataState,\n ...summaryState,\n ...paymentState,\n });\n };\n\n\n\n handleGetContract = saveData => {\n const {\n dataState,\n summaryState,\n userState,\n paymentState,\n getContractDispatch,\n } = this.props;\n if (saveData !== undefined) {\n const payload = saveData();\n if (payload) {\n if (payload.mergeProps) {\n getContractDispatch({\n ...userState,\n ...dataState,\n ...summaryState,\n ...paymentState,\n ...payload,\n });\n return;\n }\n getContractDispatch(payload);\n return;\n }\n }\n getContractDispatch({\n ...userState,\n ...dataState,\n ...summaryState,\n ...paymentState,\n });\n };\n\n render() {\n const {\n mainState: { isRecover, errorRecovery },\n userState: { energyTypes },\n paymentState: { reference },\n summaryState,\n } = this.props;\n const { recovering } = this.state;\n\n // const { isReturnUrl, isValidationEmail } = this.state;\n // const currentScreen = NavigationController({\n // type: (screenIds.slice(-1) || [Screen.USER])[0],\n // ...this.myProps,\n // isValidationEmail,\n // });\n\n // // const { title } = currentScreen.type.navigationOptions;\n\n // // const mainTitle = isValidationEmail\n // // ? 'Validation adresse email'\n // // : title;\n\n // const defaultOptions = {\n // loop: true,\n // autoplay: true,\n // animationData,\n // };\n // if (isReturnUrl) {\n // return null;\n // }\n\n const prices = {};\n energyTypes.forEach(energy => {\n if (!summaryState[energy].cyclicBill) {\n prices[energy] = summaryState[energy].chosenPackages.map(\n p => p.amount\n );\n }\n });\n return (\n
\n \n
\n
\n \n {/* {mainTitle && (\n
\n

{mainTitle}

\n \n
\n )} */}\n\n {/*
{currentScreen}
*/}\n {/* {status === 'failure' ? (\n \n ) : status === 'cancel' ? (\n \n ) : status === 'success' ? (\n \n ) : (\n \n )} */}\n \n\n {/* {loading && (\n
\n \n
\n )} */}\n\n {/* */}\n
\n\n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = state => ({\n mainState: state.mainReducer,\n userState: state.userReducer,\n dataState: state.dataReducer,\n packageState: state.packageReducer,\n summaryState: state.summaryReducer,\n paymentState: state.paymentReducer,\n});\n\nconst mapDispatchToProps = dispatch => ({\n previousScreenDispatch: payload =>\n dispatch(actions.goPreviousScreen(payload)),\n nextScreenDispatch: payload => dispatch(actions.goNextScreen(payload)),\n saveOrderDispatch: payload => dispatch(actions.saveOrder(payload)),\n getOrderDispatch: payload => dispatch(actions.getOrder(payload)),\n getSponsorDispatch: payload => dispatch(getSponsor(payload)),\n getPartnerDispatch: payload => dispatch(getPartner(payload)),\n getFormDispatch: payload => dispatch(actions.getForm(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MainScreen);\n","import MainScreen from './MainScreen';\r\n\r\nexport default MainScreen;\r\n","// In production, we register a service worker to serve assets from local cache.\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 the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\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/facebookincubator/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. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\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://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log(\n 'New content is available; please refresh.'\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 }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') ===\n -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);\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.then(registration => {\n registration.unregister();\n });\n }\n}\n","import {\r\n PREVIOUS_SCREEN_LOAD,\r\n NEXT_SCREEN_LOAD,\r\n MAIN_SCREEN_SAVE_ORDER,\r\n MAIN_SCREEN_SAVE_ORDER_SUCCESS,\r\n MAIN_SCREEN_SAVE_ORDER_FAILURE,\r\n MAIN_SCREEN_GET_ORDER,\r\n MAIN_SCREEN_GET_ORDER_SUCCESS,\r\n MAIN_SCREEN_GET_ORDER_FAILURE,\r\n MAIN_SCREEN_GET_OFFER_FAILURE,\r\n MAIN_SCREEN_GET_PACKAGE_FAILURE,\r\n MAIN_SCREEN_GET_PRODUCT_FAILURE,\r\n MAIN_SCREEN_GET_FORM,\r\n USER_SCREEN_VALIDATE_SUCCESS,\r\n USER_SCREEN_RESET_RECOVER,\r\n CODE_SCREEN_VALIDATE,\r\n CODE_SCREEN_VALIDATE_SUCCESS,\r\n CODE_SCREEN_VALIDATE_FAILURE,\r\n FINAL_CODE_SCREEN_VALIDATE,\r\n FINAL_CODE_SCREEN_VALIDATE_SUCCESS,\r\n FINAL_CODE_SCREEN_VALIDATE_FAILURE,\r\n SURVEY_SCREEN_LOAD,\r\n SURVEY_SCREEN_VALIDATE,\r\n SURVEY_SCREEN_VALIDATE_SUCCESS,\r\n SURVEY_SCREEN_VALIDATE_FAILURE,\r\n PACKAGE_SCREEN_VALIDATE,\r\n PACKAGE_SCREEN_VALIDATE_SUCCESS,\r\n PACKAGE_SCREEN_VALIDATE_FAILURE,\r\n DATA_SCREEN_VALIDATE_SUCCESS,\r\n DATA_SCREEN_VALIDATE_SUCCESS_FINAL,\r\n SUMMARY_SCREEN_VALIDATE_SUCCESS,\r\n FINAL_SUMMARY_SCREEN_VALIDATE,\r\n FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS,\r\n FINAL_SUMMARY_SCREEN_VALIDATE_FAILURE,\r\n PAYMENT_MODAL_VALIDATE,\r\n PAYMENT_MODAL_VALIDATE_SUCCESS,\r\n PAYMENT_MODAL_VALIDATE_FAILURE,\r\n FETCH_CALENDAR_APPOINTMENT_FAILURE,\r\n SUMMARY_SCREEN_CHANGE_OPTION_FAILURE,\r\n SUMMARY_SCREEN_CHANGE_OPTION_SUCCESS,\r\n FIRST_PAYMENT_CB_FAILURE,\r\n REDIRECT_FINAL_SCREEN,\r\n RECALL_PAYMENT_CB,\r\n PAYMENT_MODAL_LOAD,\r\n REDIRECT_TO_DATA_SCREEN_START_DATE,\r\n FINAL_CODE_SCREEN_VALIDATE_V2,\r\n SEND_EMAIL_CODE_REQUEST,\r\n VERIFY_EMAIL_CODE_REQUEST,\r\n SEND_EMAIL_CODE_REQUEST_FAIL,\r\n SEND_EMAIL_CODE_REQUEST_SUCCESS,\r\n VERIFY_EMAIL_CODE_REQUEST_FAIL,\r\n VERIFY_EMAIL_CODE_REQUEST_SUCCESS,\r\n LOG_USER_INFORMATION_SUCCESS,\r\n LOG_USER_INFORMATION_REQUEST,\r\n LOG_USER_INFORMATION_FAIL,\r\n CLOSE_SAVE_DRAFT_MODAL,\r\n FINAL_PAYMENT_SCREEN_VALIDATE,\r\n FINAL_PAYMENT_SCREEN_VALIDATE_SUCCESS,\r\n FINAL_PAYMENT_SCREEN_VALIDATE_FAILURE, UPDATE_FINAL_SUMMARY_SCREEN_STATE,\r\n} from '../types';\r\nimport Screen from '../screen';\r\n\r\nimport { validUserType, validEnergyTypes } from '../../utils/helpers';\r\nimport WordingConstant from '../../utils/wording.json';\r\n\r\nconst Wording = WordingConstant.UserScreen;\r\n\r\nexport const initialState = {\r\n loading: false,\r\n isRecover: false,\r\n errorRecovery: null,\r\n loadingPaymentStatus: false,\r\n loadingPaymentCB: false,\r\n screenIds: [Screen.USER],\r\n error: null,\r\n errorFrom: null,\r\n};\r\n\r\nfunction mainReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case PREVIOUS_SCREEN_LOAD: {\r\n const screenIds = state.screenIds.slice(0, -1);\r\n return {\r\n ...state,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case NEXT_SCREEN_LOAD: {\r\n const screenIds = [...state.screenIds, action.payload.screenId];\r\n return {\r\n ...state,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case SURVEY_SCREEN_LOAD: {\r\n const screenIds = [...state.screenIds, Screen.SURVEY];\r\n return {\r\n ...state,\r\n screenIds,\r\n loading: false,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case SURVEY_SCREEN_VALIDATE:\r\n case PACKAGE_SCREEN_VALIDATE:\r\n case CODE_SCREEN_VALIDATE:\r\n case FINAL_CODE_SCREEN_VALIDATE:\r\n case FINAL_SUMMARY_SCREEN_VALIDATE:\r\n case LOG_USER_INFORMATION_REQUEST:\r\n case SEND_EMAIL_CODE_REQUEST:\r\n case VERIFY_EMAIL_CODE_REQUEST:\r\n case MAIN_SCREEN_SAVE_ORDER:\r\n return {\r\n ...state,\r\n loading: true,\r\n saveDraftModal: {\r\n open: false,\r\n orderNumber: null,\r\n },\r\n };\r\n\r\n case MAIN_SCREEN_GET_ORDER: {\r\n return {\r\n ...state,\r\n ...initialState,\r\n loading: true,\r\n };\r\n }\r\n // Only trigger of loading\r\n case LOG_USER_INFORMATION_SUCCESS:\r\n case LOG_USER_INFORMATION_FAIL:\r\n case SEND_EMAIL_CODE_REQUEST_FAIL:\r\n case SEND_EMAIL_CODE_REQUEST_SUCCESS:\r\n case VERIFY_EMAIL_CODE_REQUEST_FAIL:\r\n case VERIFY_EMAIL_CODE_REQUEST_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n\r\n case CODE_SCREEN_VALIDATE_FAILURE:\r\n case FINAL_CODE_SCREEN_VALIDATE_FAILURE:\r\n case PACKAGE_SCREEN_VALIDATE_FAILURE:\r\n case SURVEY_SCREEN_VALIDATE_FAILURE:\r\n case FINAL_SUMMARY_SCREEN_VALIDATE_FAILURE:\r\n case FETCH_CALENDAR_APPOINTMENT_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.payload.error,\r\n errorFrom: action.type,\r\n };\r\n\r\n case MAIN_SCREEN_SAVE_ORDER_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n saveDraftModal: {\r\n open: true,\r\n error: action.payload.error,\r\n errorFrom: action.type,\r\n },\r\n\r\n error: action.payload.error,\r\n errorFrom: action.type,\r\n };\r\n case MAIN_SCREEN_GET_OFFER_FAILURE:\r\n case MAIN_SCREEN_GET_PACKAGE_FAILURE:\r\n case MAIN_SCREEN_GET_PRODUCT_FAILURE:\r\n case SUMMARY_SCREEN_CHANGE_OPTION_FAILURE:\r\n return {\r\n ...state,\r\n error: action.payload.error,\r\n errorFrom: action.type,\r\n };\r\n case USER_SCREEN_VALIDATE_SUCCESS: {\r\n const screenIds = [...state.screenIds, Screen.DATA];\r\n return {\r\n ...state,\r\n loading: false,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case CODE_SCREEN_VALIDATE_SUCCESS: {\r\n const screenIds = [...state.screenIds, Screen.PACKAGE];\r\n return {\r\n ...state,\r\n loading: false,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case SURVEY_SCREEN_VALIDATE_SUCCESS: {\r\n const screenIds = [...state.screenIds, Screen.PACKAGE];\r\n return {\r\n ...state,\r\n loading: false,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case PACKAGE_SCREEN_VALIDATE_SUCCESS: {\r\n const isFinal = state.screenIds.indexOf(Screen.DATA) > -1;\r\n let screenIds = state.screenIds;\r\n if (!isFinal) {\r\n screenIds = [...state.screenIds, Screen.SUMMARY];\r\n }\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case SUMMARY_SCREEN_VALIDATE_SUCCESS: {\r\n const screenIds = [...state.screenIds, Screen.DATA];\r\n return {\r\n ...state,\r\n loading: false,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case SUMMARY_SCREEN_CHANGE_OPTION_SUCCESS: {\r\n return {\r\n ...state,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case DATA_SCREEN_VALIDATE_SUCCESS: {\r\n const screenIds = [...state.screenIds, Screen.FINALSUMMARY];\r\n return {\r\n ...state,\r\n loading: false,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case DATA_SCREEN_VALIDATE_SUCCESS_FINAL: {\r\n const screenIds = [...state.screenIds, Screen.CODE];\r\n return {\r\n ...state,\r\n loading: false,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS: {\r\n return {\r\n ...state,\r\n loading: false,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case UPDATE_FINAL_SUMMARY_SCREEN_STATE: {\r\n return {\r\n ...state,\r\n ...action.payload,\r\n };\r\n }\r\n case FINAL_CODE_SCREEN_VALIDATE_V2:\r\n case FINAL_CODE_SCREEN_VALIDATE_SUCCESS: {\r\n const screenIds = [...state.screenIds, Screen.FINALSUMMARY];\r\n return {\r\n ...state,\r\n loading: false,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n\r\n case REDIRECT_TO_DATA_SCREEN_START_DATE: {\r\n const screenIds = [...state.screenIds, Screen.DATA];\r\n return {\r\n ...state,\r\n screenIds,\r\n };\r\n }\r\n case PAYMENT_MODAL_VALIDATE:\r\n return {\r\n ...state,\r\n loading: true,\r\n loadingPaymentStatus: true,\r\n };\r\n\r\n case RECALL_PAYMENT_CB: {\r\n return {\r\n ...state,\r\n loading: true,\r\n loadingPaymentStatus: true,\r\n };\r\n }\r\n\r\n case FINAL_PAYMENT_SCREEN_VALIDATE: {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n }\r\n\r\n case FINAL_PAYMENT_SCREEN_VALIDATE_FAILURE: {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n }\r\n\r\n case FINAL_PAYMENT_SCREEN_VALIDATE_SUCCESS: {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n }\r\n\r\n case FIRST_PAYMENT_CB_FAILURE: {\r\n const screenIds = [...state.screenIds, Screen.FAILURE_CB];\r\n return {\r\n ...state,\r\n loading: false,\r\n loadingPaymentStatus: false,\r\n screenIds,\r\n };\r\n }\r\n\r\n case PAYMENT_MODAL_VALIDATE_SUCCESS: {\r\n const screenIds = [...state.screenIds, Screen.FINALPAYMENT];\r\n return {\r\n ...state,\r\n loading: false,\r\n loadingPaymentStatus: false,\r\n screenIds,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n\r\n case REDIRECT_FINAL_SCREEN: {\r\n const screenIds = [...state.screenIds, Screen.FINALPAYMENT];\r\n\r\n return {\r\n ...state,\r\n screenIds,\r\n loading: false,\r\n loadingPaymentStatus: false,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case PAYMENT_MODAL_LOAD:\r\n case PAYMENT_MODAL_VALIDATE_FAILURE: {\r\n return {\r\n ...state,\r\n loading: false,\r\n loadingPaymentStatus: false,\r\n };\r\n }\r\n case MAIN_SCREEN_SAVE_ORDER_SUCCESS: {\r\n // const screenIds = [...state.screenIds, Screen.SAVE];\r\n return {\r\n ...state,\r\n loading: false,\r\n saveDraftModal: {\r\n open: true,\r\n orderNumber: action.payload.orderNumber,\r\n },\r\n // loading: false,\r\n // screenIds,\r\n // error: null,\r\n // errorFrom: null,\r\n };\r\n }\r\n\r\n case CLOSE_SAVE_DRAFT_MODAL: {\r\n return {\r\n ...state,\r\n loading: false,\r\n saveDraftModal: {\r\n open: false,\r\n orderNumber: null,\r\n },\r\n };\r\n }\r\n\r\n case MAIN_SCREEN_GET_ORDER_FAILURE: {\r\n const { code } = action.payload;\r\n const screenIds = [Screen.USER];\r\n let errorRecovery;\r\n // 1: orderStatus === 'FINALIZED'\r\n // 2: expired link\r\n if (code === 1) {\r\n errorRecovery = Wording.invalidLinkFinalized;\r\n } else if (code === 2) {\r\n errorRecovery = Wording.invalidLink;\r\n } else {\r\n errorRecovery = Wording.invalidLinkNotFound;\r\n }\r\n return {\r\n ...state,\r\n screenIds,\r\n errorRecovery,\r\n loading: false,\r\n };\r\n }\r\n case MAIN_SCREEN_GET_ORDER_SUCCESS: {\r\n const { order } = action.payload;\r\n const checkPoinOfDelivery = order.contracts.find(\r\n c => c.deliveryPoint.pointOfDelivery\r\n );\r\n\r\n const isHaveChosenPackages = order.contracts.reduce(\r\n (acc, curr) => {\r\n if (curr.billingModeCode === 'PAYMENT_SCHEDULE')\r\n return (\r\n acc &&\r\n curr.chosenPackages !== undefined &&\r\n curr.chosenPackages.length !== 0\r\n );\r\n\r\n return acc;\r\n },\r\n\r\n true\r\n );\r\n\r\n const stateReturn = {\r\n ...state,\r\n isRecover: true,\r\n loading: false,\r\n error: null,\r\n errorFrom: null,\r\n };\r\n\r\n if (!isHaveChosenPackages) {\r\n return {\r\n ...stateReturn,\r\n screenIds: [Screen.USER, Screen.CODE, Screen.PACKAGE],\r\n };\r\n }\r\n\r\n if (checkPoinOfDelivery !== undefined) {\r\n return {\r\n ...stateReturn,\r\n screenIds: [\r\n Screen.USER,\r\n Screen.CODE,\r\n Screen.PACKAGE,\r\n Screen.SUMMARY,\r\n Screen.DATA,\r\n Screen.FINALSUMMARY,\r\n ],\r\n };\r\n }\r\n return {\r\n ...state,\r\n isRecover: true,\r\n loading: false,\r\n screenIds: [\r\n Screen.USER,\r\n Screen.SURVEY,\r\n Screen.CODE,\r\n Screen.PACKAGE,\r\n Screen.SUMMARY,\r\n Screen.DATA,\r\n Screen.CODE,\r\n ],\r\n error: null,\r\n errorFrom: null,\r\n };\r\n }\r\n case MAIN_SCREEN_GET_FORM: {\r\n const { customerType, energyTypes } = action.payload;\r\n const screenIds =\r\n validUserType(customerType) && validEnergyTypes(energyTypes)\r\n ? [Screen.USER, Screen.CODE]\r\n : state.screenIds;\r\n return {\r\n ...state,\r\n screenIds,\r\n };\r\n }\r\n case USER_SCREEN_RESET_RECOVER: {\r\n return {\r\n ...state,\r\n isRecover: false,\r\n errorRecovery: null,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default mainReducer;\r\n","import {\r\n USER_SCREEN_VALIDATE_SUCCESS,\r\n MAIN_SCREEN_GET_ORDER_SUCCESS,\r\n MAIN_SCREEN_GET_FORM,\r\n MAIN_SCREEN_GET_ORDER,\r\n} from '../types';\r\nimport { validUserType, validEnergyTypes } from '../../utils/helpers';\r\n\r\nexport const initialState = {\r\n userType: '',\r\n energyTypes: [],\r\n};\r\n\r\nfunction userReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case MAIN_SCREEN_GET_ORDER: {\r\n return {\r\n ...state,\r\n ...initialState,\r\n };\r\n }\r\n case USER_SCREEN_VALIDATE_SUCCESS:\r\n return {\r\n ...state,\r\n userType: action.payload.userType,\r\n energyTypes: action.payload.energyTypes,\r\n };\r\n case MAIN_SCREEN_GET_ORDER_SUCCESS:\r\n const { order } = action.payload;\r\n return {\r\n ...state,\r\n userType: order.customer.type,\r\n energyTypes: order.contracts.map(a => a.energy),\r\n };\r\n case MAIN_SCREEN_GET_FORM: {\r\n const { customerType, energyTypes } = action.payload;\r\n if (\r\n !validUserType(customerType) ||\r\n !validEnergyTypes(energyTypes)\r\n ) {\r\n return {\r\n ...state,\r\n };\r\n }\r\n return {\r\n ...state,\r\n userType: customerType || state.userType,\r\n energyTypes:\r\n energyTypes && energyTypes.length > 0\r\n ? energyTypes\r\n : state.energyTypes,\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default userReducer;\r\n","import { CodeScreenMode } from '../../constants/enums';\nimport {\n CODE_SCREEN_VALIDATE,\n CODE_SCREEN_VALIDATE_SUCCESS,\n CODE_SCREEN_VALIDATE_FAILURE,\n FINAL_CODE_SCREEN_VALIDATE,\n FINAL_CODE_SCREEN_VALIDATE_SUCCESS,\n FINAL_CODE_SCREEN_VALIDATE_FAILURE,\n CODE_SCREEN_RESET,\n SURVEY_SCREEN_LOAD,\n MAIN_SCREEN_GET_ORDER_SUCCESS,\n MAIN_SCREEN_GET_ORDER,\n FINAL_CODE_SCREEN_VALIDATE_V2,\n CODE_SCREEN_MODE_UPDATE,\n RESET_FULL_CODE_SCREEN,\n} from '../types';\n\nexport const initialState = {\n PDL: '',\n PCE: '',\n hasNoCode: false,\n error: '',\n currentMode: CodeScreenMode.NONE,\n};\n\nfunction codeReducer(state = initialState, action) {\n switch (action.type) {\n case CODE_SCREEN_VALIDATE:\n case FINAL_CODE_SCREEN_VALIDATE:\n return {\n ...state,\n };\n\n case MAIN_SCREEN_GET_ORDER: {\n return {\n ...state,\n ...initialState,\n };\n }\n\n case RESET_FULL_CODE_SCREEN: {\n return {\n ...initialState,\n };\n }\n\n case CODE_SCREEN_RESET:\n case SURVEY_SCREEN_LOAD:\n case CODE_SCREEN_VALIDATE_SUCCESS:\n case FINAL_CODE_SCREEN_VALIDATE_V2:\n case FINAL_CODE_SCREEN_VALIDATE_SUCCESS:\n return {\n ...state,\n PDL: action.payload.PDL,\n PCE: action.payload.PCE,\n hasNoCode:\n action.payload.PDL === '' && action.payload.PCE === '',\n };\n case CODE_SCREEN_VALIDATE_FAILURE:\n case FINAL_CODE_SCREEN_VALIDATE_FAILURE:\n return {\n ...state,\n error: '',\n };\n\n case CODE_SCREEN_MODE_UPDATE:\n const { mode } = action.payload;\n return {\n ...state,\n currentMode: mode,\n };\n\n case MAIN_SCREEN_GET_ORDER_SUCCESS:\n const { order } = action.payload;\n let PDL = '';\n let PCE = '';\n order.contracts.forEach(contract => {\n if (contract.energy === 'EL') {\n PDL = (contract.deliveryPoint || {}).pointOfDelivery || '';\n } else {\n PCE = (contract.deliveryPoint || {}).pointOfDelivery || '';\n }\n });\n return {\n ...state,\n PDL,\n PCE,\n hasNoCode: PDL === '' && PCE === '',\n };\n default:\n return state;\n }\n}\n\nexport default codeReducer;\n","import {\r\n SURVEY_SCREEN_VALIDATE,\r\n SURVEY_SCREEN_VALIDATE_SUCCESS,\r\n MAIN_SCREEN_GET_ORDER,\r\n} from '../types';\r\n\r\nexport const initialState = {\r\n postalCode: '',\r\n city: '',\r\n netArea: '',\r\n housingType: '',\r\n residenceType: '',\r\n area: '',\r\n inhabitantsNumber: '',\r\n heatingType: '',\r\n priceOption: '',\r\n};\r\n\r\nfunction surveyReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case MAIN_SCREEN_GET_ORDER: {\r\n return {\r\n ...state,\r\n ...initialState,\r\n };\r\n }\r\n case SURVEY_SCREEN_VALIDATE:\r\n return {\r\n ...state,\r\n };\r\n case SURVEY_SCREEN_VALIDATE_SUCCESS: {\r\n return {\r\n ...state,\r\n postalCode: action.payload.postalCode,\r\n city: action.payload.city,\r\n netArea: action.payload.netArea,\r\n housingType: action.payload.housingType,\r\n residenceType: action.payload.residenceType,\r\n area: action.payload.area,\r\n inhabitantsNumber: action.payload.inhabitantsNumber,\r\n heatingType: action.payload.heatingType,\r\n priceOption: action.payload.priceOption,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default surveyReducer;\r\n","import {\r\n CODE_SCREEN_VALIDATE_SUCCESS,\r\n FINAL_CODE_SCREEN_VALIDATE_SUCCESS,\r\n SURVEY_SCREEN_VALIDATE_SUCCESS,\r\n MAIN_SCREEN_GET_ORDER_SUCCESS,\r\n SURVEY_SCREEN_LOAD,\r\n MAIN_SCREEN_GET_ORDER,\r\n CODE_SCREEN_VALIDATE,\r\n} from '../types';\r\n\r\nimport * as helpers from '../../utils/helpers';\r\n\r\nexport const initialState = {\r\n packages: [],\r\n prepaymentFrequencies: [],\r\n autorizedBillingModes: [],\r\n missingEnergy: [],\r\n};\r\n\r\nconst recoverState = (\r\n state,\r\n { packages, prepaymentFrequencies, autorizedBillingModes, missingEnergy }\r\n) => ({\r\n ...state,\r\n prepaymentFrequencies,\r\n autorizedBillingModes,\r\n packages,\r\n missingEnergy,\r\n});\r\n\r\nfunction packageReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case CODE_SCREEN_VALIDATE:\r\n case MAIN_SCREEN_GET_ORDER: {\r\n return {\r\n ...initialState,\r\n ...state,\r\n };\r\n }\r\n case CODE_SCREEN_VALIDATE_SUCCESS: {\r\n const {\r\n prepaymentFrequencies,\r\n autorizedBillingModes,\r\n packages,\r\n } = action.payload;\r\n return {\r\n ...state,\r\n packages,\r\n prepaymentFrequencies,\r\n autorizedBillingModes,\r\n };\r\n }\r\n\r\n case SURVEY_SCREEN_VALIDATE_SUCCESS: {\r\n const {\r\n prepaymentFrequencies,\r\n autorizedBillingModes,\r\n packages,\r\n } = action.payload;\r\n\r\n if (state.missingEnergy && state.missingEnergy[0] !== undefined) {\r\n const filterPackages = state.packages.filter(\r\n pkg => pkg.energy !== state.missingEnergy[0]\r\n );\r\n const modifiedPackages = [...filterPackages, ...packages];\r\n\r\n return {\r\n ...state,\r\n packages: modifiedPackages,\r\n prepaymentFrequencies,\r\n autorizedBillingModes,\r\n };\r\n }\r\n\r\n return {\r\n ...state,\r\n packages,\r\n prepaymentFrequencies,\r\n autorizedBillingModes,\r\n };\r\n }\r\n\r\n case FINAL_CODE_SCREEN_VALIDATE_SUCCESS: {\r\n const {\r\n prepaymentFrequencies,\r\n autorizedBillingModes,\r\n packages,\r\n } = action.payload;\r\n const modifiedPackages = helpers.mergeArray(\r\n packages,\r\n state.packages\r\n );\r\n return {\r\n ...state,\r\n packages: modifiedPackages,\r\n prepaymentFrequencies,\r\n autorizedBillingModes,\r\n };\r\n }\r\n case SURVEY_SCREEN_LOAD: {\r\n return {\r\n ...state,\r\n missingEnergy: action.payload.missingEnergy,\r\n packages: [...state.packages, ...action.payload.packages],\r\n };\r\n }\r\n\r\n case MAIN_SCREEN_GET_ORDER_SUCCESS:\r\n return recoverState(state, action.payload);\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default packageReducer;\r\n","import {\r\n PACKAGE_SCREEN_VALIDATE_SUCCESS,\r\n SUMMARY_SCREEN_VALIDATE_SUCCESS,\r\n SUMMARY_SCREEN_CHANGE_OFFER,\r\n SUMMARY_SCREEN_CHANGE_OPTION,\r\n SUMMARY_SCREEN_CHANGE_OPTION_SUCCESS,\r\n SUMMARY_SCREEN_CHANGE_OPTION_FAILURE,\r\n SUMMARY_SCREEN_GET_SPONSOR,\r\n SUMMARY_SCREEN_GET_PARTNER,\r\n FINAL_SUMMARY_SCREEN_VALIDATE,\r\n FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS,\r\n FINAL_SUMMARY_SCREEN_CHANGE_PACKAGES,\r\n FINAL_SUMMARY_SCREEN_CHANGE_ADDITIONAL_RATES,\r\n CODE_SCREEN_VALIDATE_SUCCESS,\r\n FINAL_CODE_SCREEN_VALIDATE_SUCCESS,\r\n SURVEY_SCREEN_VALIDATE_SUCCESS,\r\n MAIN_SCREEN_GET_ORDER_SUCCESS,\r\n SURVEY_SCREEN_LOAD,\r\n CHECK_CONTRACT_PAYMENT_CB,\r\n MAIN_SCREEN_GET_ORDER,\r\n FINAL_CODE_SCREEN_VALIDATE_V2, UPDATE_FINAL_SUMMARY_SCREEN_STATE,\r\n SUMMARY_SCREEN_STATE_RESET,\r\n} from '../types';\r\nimport { removeFirstPaymentCBFromContract } from '../../utils/helpers';\r\nimport { Energy } from '../../constants/enums';\r\n\r\n// options: list of product.productCode\r\n// additionalOptions: list of additionalRate.label\r\nconst defaultValue = {\r\n offer: {},\r\n loadingOption: false,\r\n installmentFrequency: '',\r\n chosenPackages: [],\r\n packageID: '',\r\n cyclicBill: false,\r\n options: [],\r\n additionalOptions: [],\r\n error: null,\r\n billingModeCode: null,\r\n};\r\n\r\nexport const initialState = {\r\n EL: { ...defaultValue },\r\n NG: { ...defaultValue },\r\n offers: [],\r\n products: [],\r\n contracts: [],\r\n advantage: {\r\n code: '',\r\n role: '',\r\n },\r\n partnerReference: undefined,\r\n};\r\n\r\nconst recoverState = (state, { order, products, offers, packages }) => {\r\n const { contracts, partnerReference } = order;\r\n const modifiedState = state;\r\n contracts.forEach(contract => {\r\n const adtRates =\r\n contract.chosenProduct.additionalRates &&\r\n contract.chosenProduct.additionalRates\r\n .filter(\r\n ({ active, type }) => active === true && type === 'OPTION'\r\n )\r\n .map(({ label }) => label);\r\n modifiedState[contract.energy].additionalOptions = adtRates;\r\n modifiedState[contract.energy].cyclicBill =\r\n contract.billingModeCode === 'CYCLICAL_BILLING';\r\n\r\n modifiedState[contract.energy].billingModeCode =\r\n contract.billingModeCode;\r\n modifiedState[contract.energy].chosenPackages = contract.chosenPackages;\r\n modifiedState[contract.energy].installmentFrequency =\r\n contract.installmentFrequency;\r\n const offer = offers.find(off => off.energy === contract.energy) || {};\r\n modifiedState[contract.energy].offer = offer;\r\n const pkg = packages.find(\r\n p => p.energy === contract.energy && p.recommended\r\n );\r\n modifiedState[contract.energy].packageID = (pkg || {}).id || '';\r\n modifiedState[contract.energy].options = contract.chosenProduct.default\r\n ? []\r\n : [contract.chosenProduct.productCode];\r\n });\r\n\r\n return {\r\n ...modifiedState,\r\n contracts,\r\n offers,\r\n products,\r\n partnerReference,\r\n };\r\n};\r\n\r\nfunction summaryReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case MAIN_SCREEN_GET_ORDER: {\r\n return {\r\n ...state,\r\n ...initialState,\r\n };\r\n }\r\n case PACKAGE_SCREEN_VALIDATE_SUCCESS: {\r\n const { EL, NG, offers, products } = action.payload;\r\n\r\n return {\r\n ...state,\r\n products,\r\n offers,\r\n EL: {\r\n ...state.EL,\r\n ...EL,\r\n options: [],\r\n additionalOptions: [],\r\n error: null,\r\n },\r\n NG: {\r\n ...state.NG,\r\n ...NG,\r\n options: [],\r\n additionalOptions: [],\r\n error: null,\r\n },\r\n };\r\n }\r\n case SURVEY_SCREEN_LOAD:\r\n case CODE_SCREEN_VALIDATE_SUCCESS: {\r\n return {\r\n ...state,\r\n contracts: action.payload.contracts,\r\n };\r\n }\r\n\r\n case FINAL_CODE_SCREEN_VALIDATE_V2: {\r\n const { contracts, PCE, PDL } = action.payload;\r\n\r\n const modifiedContracts = contracts.map(ctr => ({\r\n ...ctr,\r\n\r\n deliveryPoint: {\r\n ...ctr.deliveryPoint,\r\n pointOfDelivery: ctr.energy === Energy.EL ? PDL : PCE,\r\n },\r\n }));\r\n\r\n return {\r\n ...state,\r\n contracts: modifiedContracts,\r\n };\r\n }\r\n case FINAL_CODE_SCREEN_VALIDATE_SUCCESS: {\r\n const { contracts, packages } = action.payload;\r\n const modifiedContracts = contracts.map(contract => {\r\n const currentContract = state.contracts.find(\r\n c => c.energy === contract.energy\r\n );\r\n\r\n const notNullEstimate = contract.estimates\r\n ? contract.estimates.find(es => es.quantity > 0)\r\n : false;\r\n\r\n const estimates = notNullEstimate\r\n ? contract.estimates\r\n : currentContract.estimates;\r\n return {\r\n ...currentContract,\r\n contractCategory: contract.contractCategory,\r\n estimates,\r\n deliveryPoint: contract.deliveryPoint,\r\n rateOption: contract.rateOption,\r\n };\r\n });\r\n const res = {\r\n EL: { ...state.EL },\r\n NG: { ...state.NG },\r\n };\r\n if (packages) {\r\n res.EL.packageID =\r\n (\r\n packages.find(\r\n p => p.energy === 'EL' && p.recommended\r\n ) || {}\r\n ).id || '';\r\n res.NG.packageID =\r\n (\r\n packages.find(\r\n p => p.energy === 'NG' && p.recommended\r\n ) || {}\r\n ).id || '';\r\n }\r\n\r\n return {\r\n ...state,\r\n ...res,\r\n contracts: modifiedContracts,\r\n };\r\n }\r\n case SURVEY_SCREEN_VALIDATE_SUCCESS: {\r\n const { contracts } = action.payload;\r\n const modifiedContracts = contracts.map(contract => {\r\n const current = state.contracts.find(\r\n c => c.energy === contract.energy\r\n );\r\n if (current === undefined) {\r\n return contract;\r\n }\r\n const deliveryPoint = { ...current.deliveryPoint };\r\n if (contract.deliveryPoint) {\r\n deliveryPoint.deliveryPointCategory =\r\n contract.deliveryPoint.deliveryPointCategory;\r\n deliveryPoint.gridRate = contract.deliveryPoint.gridRate;\r\n deliveryPoint.profile = contract.deliveryPoint.profile;\r\n }\r\n let estimates = current.estimates;\r\n if (contract.estimates) {\r\n estimates = contract.estimates.map(es => {\r\n if (es.quantity === 0) {\r\n return (\r\n current.estimates.find(\r\n e => e.timeframe === es.timeframe\r\n ) || es\r\n );\r\n }\r\n return es;\r\n });\r\n }\r\n return {\r\n ...current,\r\n deliveryPoint,\r\n estimates,\r\n };\r\n });\r\n\r\n let controlContracts = [];\r\n\r\n if (\r\n action.payload.missingEnergy !== undefined &&\r\n action.payload.missingEnergy[0]\r\n ) {\r\n const contract = state.contracts.filter(\r\n ctr => ctr.energy !== action.payload.missingEnergy[0]\r\n );\r\n\r\n controlContracts = [...contract, ...modifiedContracts];\r\n } else {\r\n controlContracts = [...modifiedContracts];\r\n }\r\n\r\n return {\r\n ...state,\r\n contracts: controlContracts,\r\n };\r\n }\r\n case SUMMARY_SCREEN_VALIDATE_SUCCESS: {\r\n const p = state;\r\n p.EL.error = null;\r\n p.NG.error = null;\r\n return {\r\n ...p,\r\n };\r\n }\r\n case SUMMARY_SCREEN_CHANGE_OFFER: {\r\n const p = state;\r\n const { offer, energyType, options } = action.payload;\r\n p[energyType].offer = offer;\r\n p[energyType].options = options;\r\n p[energyType].error = null;\r\n return {\r\n ...p,\r\n };\r\n }\r\n case FINAL_SUMMARY_SCREEN_CHANGE_PACKAGES: {\r\n const p = state;\r\n const { packages, packageID, energyType } = action.payload;\r\n p[energyType].chosenPackages = packages;\r\n p[energyType].packageID = packageID;\r\n return {\r\n ...p,\r\n };\r\n }\r\n case FINAL_SUMMARY_SCREEN_CHANGE_ADDITIONAL_RATES: {\r\n const p = state;\r\n const { additionalOptions, energyType } = action.payload;\r\n p[energyType].additionalOptions = additionalOptions;\r\n return {\r\n ...p,\r\n };\r\n }\r\n case SUMMARY_SCREEN_CHANGE_OPTION: {\r\n const p = state;\r\n const { energyType } = action.payload;\r\n p[energyType].loadingOption = true;\r\n p[energyType].error = null;\r\n return {\r\n ...p,\r\n };\r\n }\r\n case SUMMARY_SCREEN_CHANGE_OPTION_SUCCESS: {\r\n const p = state;\r\n const { energyType, offers } = action.payload;\r\n p[energyType].loadingOption = false;\r\n p[energyType].offer = action.payload[energyType].offer;\r\n p[energyType].options = [\r\n action.payload[energyType].offer.product.productCode,\r\n ];\r\n p[energyType].error = null;\r\n return {\r\n ...p,\r\n offers: [...state.offers, ...offers],\r\n };\r\n }\r\n case SUMMARY_SCREEN_CHANGE_OPTION_FAILURE: {\r\n const p = state;\r\n const { energyType, error } = action.payload;\r\n p[energyType].loadingOption = false;\r\n p[energyType].options = [];\r\n p[energyType].error = error;\r\n return {\r\n ...p,\r\n };\r\n }\r\n case SUMMARY_SCREEN_GET_SPONSOR: {\r\n return {\r\n ...state,\r\n advantage: {\r\n code: action.payload.code,\r\n role: action.payload.role,\r\n },\r\n };\r\n }\r\n case SUMMARY_SCREEN_GET_PARTNER: {\r\n return {\r\n ...state,\r\n partnerReference: action.payload.partnerReference,\r\n };\r\n }\r\n case FINAL_SUMMARY_SCREEN_VALIDATE: {\r\n return {\r\n ...state,\r\n };\r\n }\r\n case UPDATE_FINAL_SUMMARY_SCREEN_STATE: {\r\n return {\r\n ...state,\r\n ...action.payload,\r\n };\r\n }\r\n case SUMMARY_SCREEN_STATE_RESET: {\r\n return {\r\n ...initialState,\r\n };\r\n }\r\n case CHECK_CONTRACT_PAYMENT_CB: {\r\n const { dateContract, energyTypes } = action.payload;\r\n let isCB = false;\r\n\r\n let contracts = energyTypes.reduce((acc, current) => {\r\n const contract = state.contracts.find(\r\n el => el.energy === current\r\n );\r\n\r\n if (!state[current].cyclicBill) {\r\n const { firstPaymentCB } = dateContract[current];\r\n isCB = false;\r\n // firstPaymentCB !== undefined ? firstPaymentCB : false;\r\n\r\n return isCB\r\n ? [...acc, { ...contract, firstPaymentCB }]\r\n : [...acc, removeFirstPaymentCBFromContract(contract)];\r\n }\r\n return [\r\n ...acc,\r\n { ...removeFirstPaymentCBFromContract(contract) },\r\n ];\r\n }, []);\r\n\r\n if (contracts.length === 2 && isCB) {\r\n contracts = contracts.map(contract =>\r\n contract.billingModeCode !== 'CYCLICAL_BILLING'\r\n ? {\r\n ...contract,\r\n firstPaymentCB: false,\r\n }\r\n : { ...contract }\r\n );\r\n }\r\n\r\n return { ...state, contracts };\r\n }\r\n case FINAL_SUMMARY_SCREEN_VALIDATE_SUCCESS: {\r\n return {\r\n ...state,\r\n advantage: action.payload.advantage,\r\n };\r\n }\r\n\r\n case MAIN_SCREEN_GET_ORDER_SUCCESS:\r\n return recoverState(state, action.payload);\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default summaryReducer;\r\n","import {\n DATA_SCREEN_VALIDATE_SUCCESS,\n DATA_SCREEN_VALIDATE_SUCCESS_FINAL,\n FETCH_CALENDAR_APPOINTMENT,\n FETCH_CALENDAR_APPOINTMENT_SUCCESS,\n CODE_SCREEN_VALIDATE_SUCCESS,\n SURVEY_SCREEN_VALIDATE_SUCCESS,\n MAIN_SCREEN_GET_ORDER_SUCCESS,\n FINAL_CODE_SCREEN_VALIDATE_SUCCESS,\n DATA_SCREEN_SAVE_COMMON,\n SURVEY_SCREEN_LOAD,\n MAIN_SCREEN_GET_FORM,\n REDIRECT_TO_DATA_SCREEN_START_DATE,\n MAIN_SCREEN_GET_ORDER,\n MINIMAL_DATA_FORM,\n MINIMAL_DATA_VALIDATE_EMAIL,\n MINIMAL_DATA_RESET_EMAIL,\n SEND_EMAIL_CODE_REQUEST_FAIL,\n SEND_EMAIL_CODE_REQUEST_SUCCESS,\n SEND_EMAIL_CODE_REQUEST,\n VERIFY_EMAIL_CODE_REQUEST,\n VERIFY_EMAIL_CODE_REQUEST_FAIL,\n VERIFY_EMAIL_CODE_REQUEST_SUCCESS,\n LOG_USER_INFORMATION_REQUEST,\n LOG_USER_INFORMATION_FAIL,\n LOG_USER_INFORMATION_SUCCESS,\n GET_LOGGED_USER_INFO_REQUEST,\n GET_LOGGED_USER_INFO_REQUEST_FAIL,\n GET_LOGGED_USER_INFO_REQUEST_SUCCESS,\n} from '../types';\nimport * as helpers from '../../utils/helpers';\nimport WordingConstant from '../../utils/wording';\n\nconst Wording = WordingConstant.DataScreen;\nconst UserWording = WordingConstant.UserScreen;\n\nexport const initialState = {\n common: {\n situation: '',\n civility: 'MR',\n name: '',\n surname: '',\n birthdate: '',\n email: '',\n tel: '',\n firstAddress: {\n postalCode: '',\n city: '',\n netArea: '',\n },\n address: {\n address: '',\n postalCode: '',\n city: '',\n netArea: '',\n },\n birthTown: {\n number: '',\n street: '',\n netArea: '',\n postalCode: '',\n townName: '',\n country: '',\n },\n newAddress: {\n address: null,\n postalCode: null,\n city: null,\n netArea: null,\n },\n newBillingAddress: {\n civility: 'MR',\n name: '',\n surname: '',\n address: '',\n postalCode: '',\n city: '',\n netArea: '',\n },\n dateContract: {\n EL: {\n date: null,\n month: null,\n year: null,\n express: false,\n firstPaymentCB: false,\n timeslot: '',\n timeslots: [],\n dateEffectiveStartDate: null,\n monthEffectiveStartDate: null,\n yearEffectiveStartDate: null,\n },\n NG: {\n date: null,\n month: null,\n firstPaymentCB: false,\n year: null,\n express: false,\n timeslot: '',\n timeslots: [],\n dateEffectiveStartDate: null,\n monthEffectiveStartDate: null,\n yearEffectiveStartDate: null,\n },\n switch: null,\n },\n },\n part: {\n coOwner: {\n civility: 'MR',\n firstName: '',\n lastName: '',\n },\n },\n pro: {\n socialReason: '',\n legalForm: '',\n APECode: '',\n SIRET: '',\n },\n calendarAppointments: [],\n modifiedAddress: false,\n firstPaymentCB: false,\n finance: undefined,\n emailValid: {\n isValid: false,\n lastEmailValidate: '',\n error: '',\n isCodeSent: undefined,\n },\n logingInformation: {\n accessToken: '',\n email: '',\n token: '',\n user: '',\n validated: false,\n isUserLogged: false,\n error: '',\n isUserExist: undefined,\n },\n};\n\nconst recoverState = (state, order) => {\n const {\n customer: { contact, finance },\n contracts,\n } = order;\n // Remove +33 and add 0\n\n const tel = helpers.displayPhone(contact.phone);\n const recoverBirthdate = new Date(contact.birthdate).toDateString();\n const common = {\n tel,\n civility: contact.civility || '',\n name: contact.firstName || '',\n surname: contact.lastName || '',\n birthdate: recoverBirthdate || '',\n email: contact.email || '',\n birthTown: contact.birthTown || '',\n };\n const part = {\n coOwner: {\n civility: 'MR',\n firstName: '',\n lastName: '',\n },\n };\n\n const { billingContact } = finance;\n if (billingContact) {\n let billingAddress = billingContact.address.street || '';\n if (billingContact.address.number) {\n billingAddress = `${billingContact.address.number ||\n ''} ${billingAddress}`;\n }\n common.newBillingAddress = {\n civility: billingContact.civility || '',\n name: billingContact.firstName || '',\n surname: billingContact.lastName || '',\n address: billingAddress || '',\n postalCode: billingContact.address.postalCode || '',\n city: billingContact.address.townName || '',\n netArea: billingContact.address.netArea || '',\n };\n }\n if (contracts.length > 0) {\n common.situation = contracts[0].deliveryPoint.process.type || '';\n const thirdParty =\n (contracts[0].thirdParties &&\n contracts[0].thirdParties.find(tp => tp.role === 'COHOLDER')) ||\n {};\n part.coOwner = {\n civility: thirdParty.civility || 'MR',\n firstName: thirdParty.firstName || '',\n lastName: thirdParty.lastName || '',\n };\n }\n if (contact.address) {\n let address = contact.address.street || '';\n if (contact.address.number) {\n address = `${contact.address.number} ${address}`;\n }\n const modifiedAddress = {\n address,\n postalCode: contact.address.postalCode || '',\n netArea: contact.address.netArea || '',\n city: contact.address.townName || '',\n };\n common.address = modifiedAddress;\n }\n const pro = {\n socialReason: contact.companyName || '',\n legalForm: contact.companyType || '',\n APECode: contact.activityCode || '',\n SIRET: contact.identificationNumber || '',\n };\n if (contracts) {\n common.dateContract = { EL: {}, NG: {} };\n contracts.forEach(contract => {\n const effectiveStartDate = new Date(\n contract.effectiveStartDate\n )\n const date = new Date(\n contract.dueDate\n ? contract.dueDate\n : contract.effectiveStartDate\n );\n const timeslot =\n contract.deliveryPoint.process.appointmentTimeslot || '';\n const express = contract.deliveryPoint.process.express || false;\n const firstPaymentCB = contract.firstPaymentCB || false;\n common.dateContract[contract.energy] = {\n timeslot,\n firstPaymentCB,\n express,\n date: date.getDate(),\n month: date.getMonth(),\n year: date.getFullYear(),\n dateEffectiveStartDate: effectiveStartDate.getDate(),\n monthEffectiveStartDate: effectiveStartDate.getMonth(),\n yearEffectiveStartDate: effectiveStartDate.getFullYear(),\n };\n if (\n common.situation ===\n Wording.situation.values.changeSupplier.value\n ) {\n common.dateContract.switch = Wording.contractDate.dropdownValues.find(\n v => v.value === contract.effectiveStartRange\n );\n }\n });\n }\n const firstPaymentCB = ['EL', 'NG'].reduce((acc, current) => {\n const paymentCB = common.dateContract[current].firstPaymentCB;\n return acc || paymentCB;\n }, false);\n return {\n ...state,\n common: {\n ...state.common,\n ...common,\n },\n part,\n firstPaymentCB,\n pro,\n finance,\n };\n};\n\nconst updateAddress = (state, address) => {\n if (!address) {\n return {\n ...state,\n };\n }\n let fullAddress = `${address.street || ''}`;\n if (address.number) {\n fullAddress = `${address.number} ${fullAddress}`;\n }\n const modifiedAddress = {\n address: fullAddress,\n postalCode: address.postalCode || '',\n city: address.townName || '',\n netArea: address.netArea,\n };\n\n return {\n ...state,\n common: {\n ...state.common,\n address: modifiedAddress,\n },\n };\n};\n\nfunction dataReducer(state = initialState, action) {\n switch (action.type) {\n case MAIN_SCREEN_GET_ORDER: {\n return {\n ...state,\n ...initialState,\n };\n }\n\n case MINIMAL_DATA_FORM:\n const data = action.payload;\n return {\n ...state,\n common: {\n ...state.common,\n ...data,\n },\n };\n\n case MINIMAL_DATA_RESET_EMAIL:\n return {\n ...state,\n emailValid: initialState.emailValid,\n logingInformation: initialState.logingInformation,\n };\n\n case SEND_EMAIL_CODE_REQUEST:\n return {\n ...state,\n emailValid: {\n ...state.emailValid,\n isCodeSent: undefined,\n isValid: false,\n },\n };\n case SEND_EMAIL_CODE_REQUEST_FAIL:\n case SEND_EMAIL_CODE_REQUEST_SUCCESS:\n return {\n ...state,\n emailValid: {\n ...state.emailValid,\n ...action.payload,\n },\n };\n\n case GET_LOGGED_USER_INFO_REQUEST:\n case GET_LOGGED_USER_INFO_REQUEST_FAIL:\n return {\n ...state,\n };\n case GET_LOGGED_USER_INFO_REQUEST_SUCCESS:\n return {\n ...state,\n common: {\n ...state.common,\n civility: action.payload.contact.customerFullName.civility,\n name: action.payload.contact.customerFullName.firstName,\n surname: action.payload.contact.customerFullName.lastName,\n tel: action.payload.contact.phone,\n },\n pro: {\n socialReason: action.payload.contact.companyName,\n legalForm: action.payload.contact.companyType,\n APECode: action.payload.contact.activityCode,\n SIRET: action.payload.contact.identificationNumber,\n },\n };\n\n case VERIFY_EMAIL_CODE_REQUEST:\n return {\n ...state,\n emailValid: {\n ...state.emailValid,\n ...action.payload,\n isValid: false,\n error: '',\n },\n };\n case VERIFY_EMAIL_CODE_REQUEST_FAIL:\n case VERIFY_EMAIL_CODE_REQUEST_SUCCESS:\n return {\n ...state,\n emailValid: {\n ...state.emailValid,\n ...action.payload,\n },\n };\n\n case MINIMAL_DATA_VALIDATE_EMAIL:\n return {\n ...state,\n emailValid: {\n ...initialState.emailValid,\n },\n };\n\n case LOG_USER_INFORMATION_REQUEST:\n return {\n ...state,\n logingInformation: initialState.logingInformation,\n };\n case LOG_USER_INFORMATION_SUCCESS:\n case LOG_USER_INFORMATION_FAIL:\n return {\n ...state,\n logingInformation: {\n ...state.logingInformation,\n ...action.payload,\n },\n };\n\n case DATA_SCREEN_VALIDATE_SUCCESS:\n case DATA_SCREEN_VALIDATE_SUCCESS_FINAL:\n // const { dateContract } = action.payload.common;\n const firstPaymentCB = false;\n\n return {\n ...state,\n firstPaymentCB,\n common: action.payload.common,\n part: action.payload.part,\n pro: action.payload.pro,\n };\n case FETCH_CALENDAR_APPOINTMENT:\n return {\n ...state,\n };\n case FETCH_CALENDAR_APPOINTMENT_SUCCESS:\n return {\n ...state,\n calendarAppointments: [...action.payload],\n };\n case SURVEY_SCREEN_LOAD: {\n const { contracts } = action.payload;\n const { address } = contracts[0].deliveryPoint;\n return updateAddress(\n {\n ...state,\n modifiedAddress: true,\n },\n address\n );\n }\n\n case REDIRECT_TO_DATA_SCREEN_START_DATE: {\n return {\n ...state,\n common: {\n ...state.common,\n dateContract: initialState.common.dateContract,\n },\n };\n }\n\n case SURVEY_SCREEN_VALIDATE_SUCCESS: {\n const { contracts } = action.payload;\n const { address } = contracts[0].deliveryPoint;\n if (state.modifiedAddress) {\n return {\n ...state,\n modifiedAddress: false,\n };\n }\n return updateAddress(state, address);\n }\n case FINAL_CODE_SCREEN_VALIDATE_SUCCESS:\n case CODE_SCREEN_VALIDATE_SUCCESS: {\n const { contracts } = action.payload;\n const { address } = contracts[0].deliveryPoint;\n return updateAddress(state, address);\n }\n case MAIN_SCREEN_GET_ORDER_SUCCESS: {\n const { order } = action.payload;\n return recoverState(state, order);\n }\n case DATA_SCREEN_SAVE_COMMON: {\n return {\n ...state,\n common: {\n ...state.common,\n ...action.payload,\n },\n };\n }\n case MAIN_SCREEN_GET_FORM: {\n const {\n customerType,\n civility,\n firstName,\n lastName,\n email,\n phone,\n birthdate,\n companyName,\n companyType,\n identificationNumber,\n activityCode,\n coholderCivility,\n coholderFirstName,\n coholderLastName,\n } = action.payload;\n const correctCivility = helpers.validCivility(civility)\n ? civility\n : state.common.civility;\n const common = {\n ...state.common,\n civility: correctCivility,\n name: firstName || state.common.name,\n surname: lastName || state.common.surname,\n email: email || state.common.email,\n tel: phone || state.common.tel,\n birthdate: birthdate || state.common.birthdate,\n };\n if (customerType === UserWording.userType.individual) {\n const correctCoholderCivility = helpers.validCivility(\n coholderCivility\n )\n ? coholderCivility\n : state.part.coOwner.civility;\n const part = {\n ...state.part,\n coOwner: {\n civility: correctCoholderCivility,\n firstName:\n coholderFirstName || state.part.coOwner.firstName,\n lastName:\n coholderLastName || state.part.coOwner.lastName,\n },\n };\n return {\n ...state,\n common,\n part,\n };\n }\n if (customerType === UserWording.userType.professional) {\n const legalForm = helpers.validCompanyType(companyType)\n ? companyType\n : state.pro.legalForm;\n const pro = {\n ...state.pro,\n legalForm,\n socialReason: companyName || state.pro.socialReason,\n SIRET: identificationNumber || state.pro.APECode,\n APECode: activityCode || state.pro.SIRET,\n };\n\n return {\n ...state,\n common,\n pro,\n };\n }\n return {\n ...state,\n common,\n };\n }\n default:\n return state;\n }\n}\n\nexport default dataReducer;\n","import {\n PAYMENT_MODAL_LOAD,\n PAYMENT_MODAL_VALIDATE,\n PAYMENT_MODAL_VALIDATE_SUCCESS,\n PAYMENT_MODAL_VALIDATE_FAILURE,\n MAIN_SCREEN_GET_ORDER_SUCCESS,\n FINAL_SUMMARY_SCREEN_VALIDATE_FAILURE,\n FINAL_SUMMARY_SCREEN_SET_REFERENCE,\n FIRST_PAYMENT_CB_FAILURE,\n VALIDATE_DIRECT_DEBIT_PAYMENT,\n MAIN_SCREEN_GET_ORDER,\n MAIN_SCREEN_SAVE_ORDER_SUCCESS,\n FAILURE_CB_MESSAGE,\n} from '../../screens/types';\n\nexport const initialState = {\n reference: '',\n externalReference: '',\n iframe: null,\n paymentType: '',\n status: '',\n firstPaymentCBStatus: '',\n stripe: null,\n isReferenceRemoved: false,\n currentOrder: undefined,\n isDirectDebitSuccess: false,\n createdBy: undefined,\n failureCBMessage: null,\n situation: '',\n firstPaymentSlimCollectStatus: '',\n typePayment: '',\n};\n\nfunction paymentReducer(state = initialState, action) {\n switch (action.type) {\n case MAIN_SCREEN_GET_ORDER: {\n return {\n ...state,\n ...initialState,\n };\n }\n case PAYMENT_MODAL_LOAD: {\n \n const regex = / ({\r\n ...str,\r\n\r\n paymentReducer: {\r\n ...str.paymentReducer,\r\n iframe: null,\r\n },\r\n});\r\n\r\nconst persistedState =\r\n new Date().getTime() < expireDate && reduxState\r\n ? prepareToStore(JSON.parse(reduxState))\r\n : {};\r\n\r\nconst store = createStore(\r\n rootReducer,\r\n persistedState,\r\n composeEnhancers(applyMiddleware(epicMiddleware))\r\n);\r\n\r\n// Expires in 30 days\r\nconst expires = new Date().getTime() + 1000 * 3600 * 24 * 30;\r\n\r\nstore.subscribe(() => {\r\n const lastScreen = store.getState().mainReducer.screenIds.slice(-1)[0];\r\n if (lastScreen === Screen.FINAL || lastScreen === Screen.SAVE) {\r\n localStorage.setItem('reduxState', {});\r\n localStorage.setItem('expires', 0);\r\n localStorage.removeItem('channel');\r\n } else {\r\n localStorage.setItem('reduxState', JSON.stringify(store.getState()));\r\n localStorage.setItem('expires', expires);\r\n }\r\n});\r\n\r\nepicMiddleware.run(rootEpic);\r\n\r\nexport default store;\r\n","import { combineEpics } from 'redux-observable';\r\nimport { combineReducers } from 'redux';\r\n\r\nimport { codeScreenEpic } from './screens/CodeScreen/CodeScreen.actions';\r\nimport { surveyScreenEpic } from './screens/SurveyScreen/SurveyScreen.actions';\r\nimport { packageScreenEpic } from './screens/PackageScreen/PackageScreen.actions';\r\nimport { summaryScreenEpic } from './screens/SummaryScreen/SummaryScreen.actions';\r\nimport { dataScreenEpic } from './screens/DataScreen/DataScreen.actions';\r\nimport { finalSummaryScreenEpic } from './screens/FinalSummaryScreen/FinalSummaryScreen.actions';\r\nimport { finalPaymentScreenEpic } from './screens/FinalPaymentScreen/FinalPaymentScreen.action';\r\nimport { paymentModalEpic } from './containers/PaymentModal/PaymentModal.actions';\r\nimport { paymentCBScreenEpic } from './containers/PaymentModal/PaymentCBModal.actions';\r\nimport { mainScreenEpic } from './screens/MainScreen/MainScreen.actions';\r\n\r\nimport mainReducer from './screens/MainScreen/MainScreen.reducer';\r\nimport userReducer from './screens/UserScreen/UserScreen.reducer';\r\nimport codeReducer from './screens/CodeScreen/CodeScreen.reducer';\r\nimport surveyReducer from './screens/SurveyScreen/SurveyScreen.reducer';\r\nimport packageReducer from './screens/PackageScreen/PackageScreen.reducer';\r\nimport summaryReducer from './screens/SummaryScreen/SummaryScreen.reducer';\r\nimport dataReducer from './screens/DataScreen/DataScreen.reducer';\r\nimport paymentReducer from './containers/PaymentModal/PaymentModal.reducer';\r\n\r\nexport const rootEpic = combineEpics(\r\n codeScreenEpic,\r\n surveyScreenEpic,\r\n packageScreenEpic,\r\n summaryScreenEpic,\r\n dataScreenEpic,\r\n finalSummaryScreenEpic,\r\n finalPaymentScreenEpic,\r\n paymentModalEpic,\r\n mainScreenEpic,\r\n paymentCBScreenEpic\r\n);\r\n\r\nexport const rootReducer = combineReducers({\r\n mainReducer,\r\n userReducer,\r\n codeReducer,\r\n surveyReducer,\r\n packageReducer,\r\n dataReducer,\r\n summaryReducer,\r\n paymentReducer,\r\n});\r\n","/**\r\n * @author Ivan Naluzhnyi | Nawin Kim\r\n * @email [ivan.naluzhnyi@gmail.com]\r\n * @email [nawin.kim@uppli.fr]\r\n * @create date 2019-09-16 16:44:55\r\n * @modify date 2019-09-16 16:50:47\r\n * @desc [client-space | Uppli]\r\n */\r\n\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport ReactPixel from 'react-facebook-pixel';\r\n\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\n\r\nimport MainScreen from './screens/MainScreen';\r\nimport { unregister } from './registerServiceWorker';\r\nimport store from './store';\r\nimport Config from './utils/config';\r\n\r\nimport { initFirebase } from './utils/firebase';\r\n\r\nimport { version } from '../package.json';\r\n\r\nimport './index.css';\r\n\r\nif (Config.ENV !== 'PREPRODUCTION') {\r\n ReactPixel.init('741997262974944', {}, { debug: false, autoConfig: false });\r\n ReactPixel.pageView();\r\n}\r\n\r\ninitFirebase();\r\n\r\nconst App = () => (\r\n \r\n \r\n \r\n);\r\n\r\nconsole.log('Version : ', version);\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n// registerServiceWorker();\r\nunregister();\r\n\r\nif (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {\r\n const siteWidth = 380;\r\n\r\n const initialScale = window.screen.availWidth / 980;\r\n\r\n document\r\n .querySelector('meta[name=\"viewport\"]')\r\n .setAttribute(\r\n 'content',\r\n `width=${siteWidth}, initial-scale=${initialScale}`\r\n );\r\n}\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/ic-elec-on.36b3bc07.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic-gas-on.383ab38d.svg\";"],"sourceRoot":""}